Title: Boosting Transferability and Discriminability for Time Series Domain Adaptation
Venue: NeurIPS 2024
Accepted: yes
Keywords: Time-series; Domain Adaptation; Transferability; Discriminability; Frequency domain
Abstract: Unsupervised domain adaptation excels in transferring knowledge from a labeled source domain to an unlabeled target domain, playing a critical role in time series applications. Existing time series domain adaptation methods either ignore frequency features or treat temporal and frequency features equally, which makes it challenging to fully exploit the advantages of both types of features. In this paper, we delve into transferability and discriminability, two crucial properties in transferable representation learning. It's insightful to note that frequency features are more discriminative within a specific domain, while temporal features show better transferability across domains. Based on the findings, we propose **A**dversarial **CO**-learning **N**etworks (**ACON**), to enhance transferable representation learning through a collaborative learning manner in three aspects: (1) Considering the multi-periodicity in time series, multi-period frequency feature learning is proposed to enhance the discriminability of frequency features; (2) Temporal-frequency domain mutual learning is proposed to enhance the discriminability of temporal features in the source domain and improve the transferability of frequency features in the target domain; (3) Domain adversarial learning is conducted in the correlation subspaces of temporal-frequency features instead of original feature spaces to further enhance the transferability of both features. Extensive experiments conducted on a wide range of time series datasets and five common applications demonstrate the state-of-the-art performance of ACON. Code is available at <https://github.com/mingyangliu1024/ACON>.

Boosting Transferability and Discriminability for Time Series Domain Adaptation

Abstract

Unsupervised domain adaptation excels in transferring knowledge from a labeled source domain to an unlabeled target domain, playing a critical role in time series applications. Existing time series domain adaptation methods either ignore frequency features or treat temporal and frequency features equally, which makes it challenging to fully exploit the advantages of both types of features. In this paper, we delve into transferability and discriminability, two crucial properties in transferable representation learning. It's insightful to note that frequency features are more discriminative within a specific domain, while temporal features show better transferability across domains. Based on the findings, we propose A dversarial CO -learning N etworks ( ACON ), to enhance transferable representation learning through a collaborative learning manner in three aspects: (1) Considering the multi-periodicity in time series, multi-period frequency feature learning is proposed to enhance the discriminability of frequency features; (2) Temporalfrequency domain mutual learning is proposed to enhance the discriminability of temporal features in the source domain and improve the transferability of frequency features in the target domain; (3) Domain adversarial learning is conducted in the correlation subspaces of temporal-frequency features instead of original feature spaces to further enhance the transferability of both features. Extensive experiments conducted on a wide range of time series datasets and five common applications demonstrate the state-of-the-art performance of ACON. Code is available at https://github.com/mingyangliu1024/ACON .

1 Introduction

Time series classification has achieved significant success in the deep learning era by leveraging discriminative features learned from extensive labeled data [18]. However, the presence of distribution shift may arise when deploying the model, potentially impeding the generalization ability of deep models [31]. Unsupervised domain adaptation [13], offering the potential to transfer knowledge from a labeled source domain to an unlabeled target domain, emerges as a promising solution.

Existing domain adaptation methods tailored for time series primarily focus on learning domaininvariant temporal features [30, 41, 29], yielding promising results. Recently, the significance of frequency features for enhancing domain-invariant representation has also been recognized [16]. However, frequency features and temporal features are treated equally, and their distinct properties are overlooked, leading to the inability to fully leverage both types of features to boost transfer learning.

In this paper, we analyze the two most important properties of features in transfer learning: transferability and discriminability, to investigate the characteristics of the frequency features and temporal

features. We find that under the premise of adopting advanced backbones in state-of-the-art works [31, 16], frequency features are more discriminative within a specific domain, while temporal features show better transferability across domains.

Based on the findings, we propose A dversarial CO -learning N etworks ( ACON ) to maximize the potential of temporal features and frequency features in terms of both transferability and discriminability in a collaborative learning manner. Firstly, to fully leverage the properties of multi-periodicity in time series, we propose multi-period frequency feature learning to further enhance the discriminability of frequency features. Secondly, we propose temporal-frequency domain mutual learning to enhance the discriminability of temporal features in the source domain and improve the transferability of frequency features in the target domain. Specifically, to harness the potent discriminability of frequency features within the domain, we enable the transfer of knowledge from frequency features to temporal features within the source domain via knowledge distillation. To leverage the strong transferability of temporal features across domains, we facilitate the transfer of knowledge from temporal features to frequency features in the target domain through knowledge distillation. Thirdly, we propose to learn transferable representations via domain adversarial learning in temporal-frequency correlation subspace instead of the original temporal feature space. The temporal-frequency correlation subspace not only possesses the properties of the original temporal feature space and original frequency feature space but also incorporates the correlation between the two types of features. Learning transferable representations in the temporal-frequency correlation subspace can further enhance the transferability of features. Our main contributions can be summarized as follows:

We uncover the characteristics wherein temporal features and frequency features cannot be equally treated in transfer learning. Specifically, we observe that frequency features are more discriminative within a specific domain, while temporal features show better transferability across domains through empirical findings.

We design ACON, which enhances UDA in three key aspects: a multi-period feature learning module to enhance the discriminability of frequency features, a temporal-frequency domain mutual learning module to enhance the discriminability of temporal features in the source domain and improve the transferability of frequency features in the target domain, and a domain adversarial learning module in temporal-frequency correlation subspace to further enhance transferability of features.

Experiments conducted on a wide range of time series datasets and five common applications verify the effectiveness of ACON.

2 Related Work

General Unsupervised Domain Adaptation Methods Unsupervised domain adaptation leverages the labeled source domain to predict the labels of a different but related, unlabeled target domain. It finds wide applications in computer vision [46, 15, 8] and natural language processing [40, 39, 44]. Existing UDA methods can be classified into three categories: (1) Methods based on adversarial training aim to learn domain-invariant representations via the game between the feature extractor and the domain discriminator. Widely used methods include DANN [13], CDAN [26] and DIRT-T [34]. (2) Methods based on statistical divergence aim to reduce the domain discrepancy by minimizing domain discrepancy in a latent feature space. Widely used methods include DAN [25], DeepCoral [36] and HoMM [5]. (3) Methods based on self-training produce pseudo-labels on unlabeled data and use confident pseudo-labels together with the labeled data to train the model. Widely used methods include PFAN[6], CST [22] and AdaMatch [2]. However, these methods are generally designed and do not fully leverage the properties of time series. Although these methods can be applied to time series through tailored feature extractors, they often obtain suboptimal performance and UDA algorithm specially designed for time series is needed.

Unsupervised Domain Adaptation for Time Series To date, a few methods have been tailored to unsupervised domain adaptation for time series data. VRADA [30] is the first UDA method for multivariate time series that uses adversarial learning for reducing domain discrepancy. In VRADA, a variational recurrent neural network (VRNN) [10] is trained in an adversarial way to learn domain-invariant temporal features. CoDATS [41] builds upon VRADA but uses a convolutional neural network for the feature extractor, proposing a solution for multi-source domain adaptation in

time series classification. SASA [3] adopts LSTM [33] as feature extractors to capture the domaininvariant association, and aligns sparse associative structure between source and target domain via the minimization of maximum mean discrepancy (MMD) [38]. AdvSKM [23] modifies MMD to make it more suitable for time series data. CLUDA [29] learns contextual representation via contrastive learning, and aligns features between source and target domain via adversarial training. RAINCOAT [16] is the first to introduce frequency features into domain adaptation, aligning temporal features and frequency features respectively via Sinkhorn divergence.

Research gap In general, in terms of representation learning, most methods only focus on the temporal domain or assume that the temporal domain and the frequency domain are independent of each other, hindering the full utilization of two types of features. In terms of feature adaptation, existing works only focus on aligning temporal features or adopting simple statistical divergence to align frequency features, ignoring the different properties of the temporal features and frequency features in transfer learning. In terms of evaluation, the existing evaluations are conducted on several datasets of limited scale in a few specific tasks, and more general evaluations are needed.

3 Transferability and Discriminability in Time Series

3.1 Problem setup

In this paper, we study the UDA problem for time series classification. In time series classification problem, the model receives a set of n labeled samples { ( x i , y i ) } n i =1 , where i -th sample x i ∈ R C × T contains observation of C variates over T time steps. We allow for both univariate and multivariate time series. In UDA setup, we are given n s labeled samples from a source domain ˆ P = { ( x s i , y s i ) } n s i =1 and n t unlabeled samples from a target domain ˆ Q = { ( x t i ) } n t i =1 , which are sampled from different distributions P and Q . Superscripts s and t are adopted to distinguish the source domain and the target domain. UDA for time series aims to learn a time series classification model with labeled source data ˆ P and unlabeled target data ˆ Q , which can make accurate predictions on the target domain.

In addition to the source domain and target domain in UDA, time series naturally can be represented in the temporal domain and frequency domain. By Fast Fourier Transform (FFT), the raw time series input x i in the temporal domain can be transformed to corresponding frequency input v i in the frequency domain:

where the complex variable v i ∈ C C ×⌊ T 2 ⌋ contains observation of C variates over ⌊ T 2 ⌋ different frequencies. Due to the conjugacy of frequency domain, we only consider the frequencies within { 1 , ..., ⌊ T 2 ⌋} .

3.2 Discriminability of frequency feature

GLYPH<c=13,font=/AAAAAC+DejaVuSans>!*GLYPH<c=4,font=/AAAAAC+DejaVuSans>GLYPH<c=11,font=/AAAAAC+DejaVuSans>*GLYPH<c=3,font=/AAAAAC+DejaVuSans> GLYPH<c=25,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=14,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=18,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>GLYPH<c=26,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>$

GLYPH<c=8,font=/AAAAAB+DejaVuSans>

GLYPH<c=9,font=/AAAAAB+DejaVuSans>

GLYPH<c=10,font=/AAAAAB+DejaVuSans>

GLYPH<c=11,font=/AAAAAB+DejaVuSans>

GLYPH<c=12,font=/AAAAAB+DejaVuSans>

GLYPH<c=18,font=/AAAAAB+DejaVuSans>GLYPH<c=29,font=/AAAAAB+DejaVuSans>GLYPH<c=23,font=/AAAAAB+DejaVuSans>GLYPH<c=24,font=/AAAAAB+DejaVuSans>%

GLYPH<c=13,font=/AAAAAB+DejaVuSans>GLYPH<c=12,font=/AAAAAB+DejaVuSans>

GLYPH<c=14,font=/AAAAAB+DejaVuSans>GLYPH<c=7,font=/AAAAAB+DejaVuSans>

GLYPH<c=14,font=/AAAAAB+DejaVuSans>GLYPH<c=12,font=/AAAAAB+DejaVuSans>

GLYPH<c=15,font=/AAAAAB+DejaVuSans> GLYPH<c=22,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>$!GLYPH<c=21,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>&GLYPH<c=3,font=/AAAAAB+DejaVuSans>GLYPH<c=5,font=/AAAAAB+DejaVuSans>GLYPH<c=4,font=/AAAAAB+DejaVuSans>GLYPH<c=6,font=/AAAAAB+DejaVuSans>

GLYPH<c=16,font=/AAAAAB+DejaVuSans>GLYPH<c=27,font=/AAAAAB+DejaVuSans>GLYPH<c=21,font=/AAAAAB+DejaVuSans>""GLYPH<c=26,font=/AAAAAB+DejaVuSans>GLYPH<c=25,font=/AAAAAB+DejaVuSans>GLYPH<c=26,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>GLYPH<c=21,font=/AAAAAB+DejaVuSans>#GLYPH<c=26,font=/AAAAAB+DejaVuSans>GLYPH<c=30,font=/AAAAAB+DejaVuSans>GLYPH<c=29,font=/AAAAAB+DejaVuSans>GLYPH<c=3,font=/AAAAAB+DejaVuSans>GLYPH<c=19,font=/AAAAAB+DejaVuSans>

GLYPH<c=24,font=/AAAAAB+DejaVuSans>"$GLYPH<c=27,font=/AAAAAB+DejaVuSans>#"

GLYPH<c=20,font=/AAAAAB+DejaVuSans>

GLYPH<c=24,font=/AAAAAB+DejaVuSans>GLYPH<c=28,font=/AAAAAB+DejaVuSans>GLYPH<c=31,font=/AAAAAB+DejaVuSans>GLYPH<c=30,font=/AAAAAB+DejaVuSans>!GLYPH<c=21,font=/AAAAAB+DejaVuSans>GLYPH<c=27,font=/AAAAAB+DejaVuSans>

GLYPH<c=17,font=/AAAAAB+DejaVuSans>

!GLYPH<c=24,font=/AAAAAB+DejaVuSans> $GLYPH<c=24,font=/AAAAAB+DejaVuSans>GLYPH<c=29,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>&

+GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=13,font=/AAAAAC+DejaVuSans>!*GLYPH<c=4,font=/AAAAAC+DejaVuSans>GLYPH<c=11,font=/AAAAAC+DejaVuSans>*GLYPH<c=3,font=/AAAAAC+DejaVuSans> GLYPH<c=25,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=14,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=18,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>GLYPH<c=26,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>$

GLYPH<c=19,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>! #GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>'$GLYPH<c=5,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=13,font=/AAAAAC+DejaVuSans>

#GLYPH<c=24,font=/AAAAAC+DejaVuSans>"&GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=22,font=/AAAAAC+DejaVuSans>)GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>

GLYPH<c=15,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>(

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=8,font=/AAAAAC+DejaVuSans>

GLYPH<c=9,font=/AAAAAC+DejaVuSans>

GLYPH<c=10,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>!GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>%&GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=20,font=/AAAAAC+DejaVuSans>

GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=28,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=17,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=16,font=/AAAAAC+DejaVuSans>

+GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=13,font=/AAAAAC+DejaVuSans>!*GLYPH<c=4,font=/AAAAAC+DejaVuSans>GLYPH<c=11,font=/AAAAAC+DejaVuSans>*GLYPH<c=3,font=/AAAAAC+DejaVuSans> GLYPH<c=25,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=14,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=18,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>GLYPH<c=26,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>$

GLYPH<c=19,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>! #GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>'$GLYPH<c=5,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=13,font=/AAAAAC+DejaVuSans>

#GLYPH<c=24,font=/AAAAAC+DejaVuSans>"&GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=22,font=/AAAAAC+DejaVuSans>)GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>

GLYPH<c=15,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>(

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=8,font=/AAAAAC+DejaVuSans>

GLYPH<c=9,font=/AAAAAC+DejaVuSans>

GLYPH<c=10,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>!GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>%&GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=20,font=/AAAAAC+DejaVuSans>

GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=28,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=17,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=16,font=/AAAAAC+DejaVuSans>

GLYPH<c=9,font=/AAAAAD+DejaVuSans>

GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=11,font=/AAAAAD+DejaVuSans>

GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=20,font=/AAAAAD+DejaVuSans>!GLYPH<c=27,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans> '

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=15,font=/AAAAAD+DejaVuSans>

GLYPH<c=14,font=/AAAAAD+DejaVuSans>GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=15,font=/AAAAAD+DejaVuSans>GLYPH<c=8,font=/AAAAAD+DejaVuSans>

GLYPH<c=16,font=/AAAAAD+DejaVuSans> GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>&#GLYPH<c=25,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>(GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=5,font=/AAAAAD+DejaVuSans>GLYPH<c=4,font=/AAAAAD+DejaVuSans>GLYPH<c=6,font=/AAAAAD+DejaVuSans>

GLYPH<c=17,font=/AAAAAD+DejaVuSans> GLYPH<c=25,font=/AAAAAD+DejaVuSans>$$GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=29,font=/AAAAAD+DejaVuSans>GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=25,font=/AAAAAD+DejaVuSans>%GLYPH<c=31,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=22,font=/AAAAAD+DejaVuSans>

GLYPH<c=28,font=/AAAAAD+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=25,font=/AAAAAD+DejaVuSans># GLYPH<c=30,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>%

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=9,font=/AAAAAD+DejaVuSans>

GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=11,font=/AAAAAD+DejaVuSans>

GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=20,font=/AAAAAD+DejaVuSans>!GLYPH<c=27,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans> '

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=15,font=/AAAAAD+DejaVuSans>

GLYPH<c=14,font=/AAAAAD+DejaVuSans>GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=15,font=/AAAAAD+DejaVuSans>GLYPH<c=8,font=/AAAAAD+DejaVuSans>

GLYPH<c=16,font=/AAAAAD+DejaVuSans> GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>&#GLYPH<c=25,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>(GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=5,font=/AAAAAD+DejaVuSans>GLYPH<c=4,font=/AAAAAD+DejaVuSans>GLYPH<c=6,font=/AAAAAD+DejaVuSans>

GLYPH<c=17,font=/AAAAAD+DejaVuSans> GLYPH<c=25,font=/AAAAAD+DejaVuSans>$$GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=29,font=/AAAAAD+DejaVuSans>GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=25,font=/AAAAAD+DejaVuSans>%GLYPH<c=31,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=22,font=/AAAAAD+DejaVuSans>

GLYPH<c=28,font=/AAAAAD+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=25,font=/AAAAAD+DejaVuSans># GLYPH<c=30,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>%

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=9,font=/AAAAAE+DejaVuSans>

GLYPH<c=10,font=/AAAAAE+DejaVuSans>

GLYPH<c=11,font=/AAAAAE+DejaVuSans>

GLYPH<c=12,font=/AAAAAE+DejaVuSans>

GLYPH<c=20,font=/AAAAAE+DejaVuSans>!GLYPH<c=27,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans> '

GLYPH<c=13,font=/AAAAAE+DejaVuSans>GLYPH<c=10,font=/AAAAAE+DejaVuSans>

GLYPH<c=13,font=/AAAAAE+DejaVuSans>GLYPH<c=15,font=/AAAAAE+DejaVuSans>

GLYPH<c=14,font=/AAAAAE+DejaVuSans>GLYPH<c=12,font=/AAAAAE+DejaVuSans>

GLYPH<c=15,font=/AAAAAE+DejaVuSans>GLYPH<c=8,font=/AAAAAE+DejaVuSans>

GLYPH<c=16,font=/AAAAAE+DejaVuSans> GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=26,font=/AAAAAE+DejaVuSans>&#GLYPH<c=25,font=/AAAAAE+DejaVuSans>GLYPH<c=26,font=/AAAAAE+DejaVuSans>(GLYPH<c=3,font=/AAAAAE+DejaVuSans>GLYPH<c=5,font=/AAAAAE+DejaVuSans>GLYPH<c=4,font=/AAAAAE+DejaVuSans>GLYPH<c=6,font=/AAAAAE+DejaVuSans>

GLYPH<c=17,font=/AAAAAE+DejaVuSans> GLYPH<c=25,font=/AAAAAE+DejaVuSans>$$GLYPH<c=31,font=/AAAAAE+DejaVuSans>GLYPH<c=29,font=/AAAAAE+DejaVuSans>GLYPH<c=31,font=/AAAAAE+DejaVuSans>GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=25,font=/AAAAAE+DejaVuSans>%GLYPH<c=31,font=/AAAAAE+DejaVuSans>"!GLYPH<c=3,font=/AAAAAE+DejaVuSans>GLYPH<c=22,font=/AAAAAE+DejaVuSans>

GLYPH<c=28,font=/AAAAAE+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAE+DejaVuSans>"!GLYPH<c=3,font=/AAAAAE+DejaVuSans>GLYPH<c=24,font=/AAAAAE+DejaVuSans>

GLYPH<c=25,font=/AAAAAE+DejaVuSans># GLYPH<c=30,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans>%

GLYPH<c=23,font=/AAAAAE+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAE+DejaVuSans>

GLYPH<c=24,font=/AAAAAE+DejaVuSans>

GLYPH<c=23,font=/AAAAAE+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAE+DejaVuSans>GLYPH<c=19,font=/AAAAAE+DejaVuSans>

GLYPH<c=18,font=/AAAAAE+DejaVuSans> GLYPH<c=16,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans>

GLYPH<c=24,font=/AAAAAE+DejaVuSans>

GLYPH<c=18,font=/AAAAAE+DejaVuSans> GLYPH<c=16,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans>GLYPH<c=19,font=/AAAAAE+DejaVuSans>

GLYPH<c=9,font=/AAAAAD+DejaVuSans>

GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=11,font=/AAAAAD+DejaVuSans>

GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=20,font=/AAAAAD+DejaVuSans>!GLYPH<c=27,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans> '

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=15,font=/AAAAAD+DejaVuSans>

GLYPH<c=14,font=/AAAAAD+DejaVuSans>GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=15,font=/AAAAAD+DejaVuSans>GLYPH<c=8,font=/AAAAAD+DejaVuSans>

GLYPH<c=16,font=/AAAAAD+DejaVuSans> GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>&#GLYPH<c=25,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>(GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=5,font=/AAAAAD+DejaVuSans>GLYPH<c=4,font=/AAAAAD+DejaVuSans>GLYPH<c=6,font=/AAAAAD+DejaVuSans>

GLYPH<c=17,font=/AAAAAD+DejaVuSans> GLYPH<c=25,font=/AAAAAD+DejaVuSans>$$GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=29,font=/AAAAAD+DejaVuSans>GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=25,font=/AAAAAD+DejaVuSans>%GLYPH<c=31,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=22,font=/AAAAAD+DejaVuSans>

GLYPH<c=28,font=/AAAAAD+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=25,font=/AAAAAD+DejaVuSans># GLYPH<c=30,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>%

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

(a) Temporal data vs. Frequency data

GLYPH<c=8,font=/AAAAAB+DejaVuSans>

GLYPH<c=9,font=/AAAAAB+DejaVuSans>

GLYPH<c=10,font=/AAAAAB+DejaVuSans>

GLYPH<c=11,font=/AAAAAB+DejaVuSans>

GLYPH<c=12,font=/AAAAAB+DejaVuSans>

GLYPH<c=18,font=/AAAAAB+DejaVuSans>GLYPH<c=29,font=/AAAAAB+DejaVuSans>GLYPH<c=23,font=/AAAAAB+DejaVuSans>GLYPH<c=24,font=/AAAAAB+DejaVuSans>%

GLYPH<c=13,font=/AAAAAB+DejaVuSans>GLYPH<c=12,font=/AAAAAB+DejaVuSans>

GLYPH<c=14,font=/AAAAAB+DejaVuSans>GLYPH<c=7,font=/AAAAAB+DejaVuSans>

GLYPH<c=14,font=/AAAAAB+DejaVuSans>GLYPH<c=12,font=/AAAAAB+DejaVuSans>

GLYPH<c=15,font=/AAAAAB+DejaVuSans> GLYPH<c=22,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>$!GLYPH<c=21,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>&GLYPH<c=3,font=/AAAAAB+DejaVuSans>GLYPH<c=5,font=/AAAAAB+DejaVuSans>GLYPH<c=4,font=/AAAAAB+DejaVuSans>GLYPH<c=6,font=/AAAAAB+DejaVuSans>

GLYPH<c=16,font=/AAAAAB+DejaVuSans>GLYPH<c=27,font=/AAAAAB+DejaVuSans>GLYPH<c=21,font=/AAAAAB+DejaVuSans>""GLYPH<c=26,font=/AAAAAB+DejaVuSans>GLYPH<c=25,font=/AAAAAB+DejaVuSans>GLYPH<c=26,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>GLYPH<c=21,font=/AAAAAB+DejaVuSans>#GLYPH<c=26,font=/AAAAAB+DejaVuSans>GLYPH<c=30,font=/AAAAAB+DejaVuSans>GLYPH<c=29,font=/AAAAAB+DejaVuSans>GLYPH<c=3,font=/AAAAAB+DejaVuSans>GLYPH<c=19,font=/AAAAAB+DejaVuSans>

GLYPH<c=24,font=/AAAAAB+DejaVuSans>"$GLYPH<c=27,font=/AAAAAB+DejaVuSans>#"

GLYPH<c=20,font=/AAAAAB+DejaVuSans>

GLYPH<c=24,font=/AAAAAB+DejaVuSans>GLYPH<c=28,font=/AAAAAB+DejaVuSans>GLYPH<c=31,font=/AAAAAB+DejaVuSans>GLYPH<c=30,font=/AAAAAB+DejaVuSans>!GLYPH<c=21,font=/AAAAAB+DejaVuSans>GLYPH<c=27,font=/AAAAAB+DejaVuSans>

GLYPH<c=17,font=/AAAAAB+DejaVuSans>

!GLYPH<c=24,font=/AAAAAB+DejaVuSans> $GLYPH<c=24,font=/AAAAAB+DejaVuSans>GLYPH<c=29,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>&

+GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=13,font=/AAAAAC+DejaVuSans>!*GLYPH<c=4,font=/AAAAAC+DejaVuSans>GLYPH<c=11,font=/AAAAAC+DejaVuSans>*GLYPH<c=3,font=/AAAAAC+DejaVuSans> GLYPH<c=25,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=14,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=18,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>GLYPH<c=26,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>$

GLYPH<c=19,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>! #GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>'$GLYPH<c=5,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=13,font=/AAAAAC+DejaVuSans>

#GLYPH<c=24,font=/AAAAAC+DejaVuSans>"&GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=22,font=/AAAAAC+DejaVuSans>)GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>

GLYPH<c=15,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>(

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=8,font=/AAAAAC+DejaVuSans>

GLYPH<c=9,font=/AAAAAC+DejaVuSans>

GLYPH<c=10,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>!GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>%&GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=20,font=/AAAAAC+DejaVuSans>

GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=28,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=17,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=16,font=/AAAAAC+DejaVuSans>

+GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=19,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>! #GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>'$GLYPH<c=5,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=13,font=/AAAAAC+DejaVuSans>

#GLYPH<c=24,font=/AAAAAC+DejaVuSans>"&GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=22,font=/AAAAAC+DejaVuSans>)GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>

GLYPH<c=15,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>(

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=8,font=/AAAAAC+DejaVuSans>

GLYPH<c=9,font=/AAAAAC+DejaVuSans>

GLYPH<c=10,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>!GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>%&GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=20,font=/AAAAAC+DejaVuSans>

GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=28,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=17,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=16,font=/AAAAAC+DejaVuSans>

GLYPH<c=9,font=/AAAAAD+DejaVuSans>

GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=11,font=/AAAAAD+DejaVuSans>

GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=20,font=/AAAAAD+DejaVuSans>!GLYPH<c=27,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans> '

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=15,font=/AAAAAD+DejaVuSans>

GLYPH<c=14,font=/AAAAAD+DejaVuSans>GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=15,font=/AAAAAD+DejaVuSans>GLYPH<c=8,font=/AAAAAD+DejaVuSans>

GLYPH<c=16,font=/AAAAAD+DejaVuSans> GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>&#GLYPH<c=25,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>(GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=5,font=/AAAAAD+DejaVuSans>GLYPH<c=4,font=/AAAAAD+DejaVuSans>GLYPH<c=6,font=/AAAAAD+DejaVuSans>

GLYPH<c=17,font=/AAAAAD+DejaVuSans> GLYPH<c=25,font=/AAAAAD+DejaVuSans>$$GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=29,font=/AAAAAD+DejaVuSans>GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=25,font=/AAAAAD+DejaVuSans>%GLYPH<c=31,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=22,font=/AAAAAD+DejaVuSans>

GLYPH<c=28,font=/AAAAAD+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=25,font=/AAAAAD+DejaVuSans># GLYPH<c=30,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>%

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=9,font=/AAAAAD+DejaVuSans>

GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=11,font=/AAAAAD+DejaVuSans>

GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=20,font=/AAAAAD+DejaVuSans>!GLYPH<c=27,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans> '

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=15,font=/AAAAAD+DejaVuSans>

GLYPH<c=14,font=/AAAAAD+DejaVuSans>GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=15,font=/AAAAAD+DejaVuSans>GLYPH<c=8,font=/AAAAAD+DejaVuSans>

GLYPH<c=16,font=/AAAAAD+DejaVuSans> GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>&#GLYPH<c=25,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>(GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=5,font=/AAAAAD+DejaVuSans>GLYPH<c=4,font=/AAAAAD+DejaVuSans>GLYPH<c=6,font=/AAAAAD+DejaVuSans>

GLYPH<c=17,font=/AAAAAD+DejaVuSans> GLYPH<c=25,font=/AAAAAD+DejaVuSans>$$GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=29,font=/AAAAAD+DejaVuSans>GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=25,font=/AAAAAD+DejaVuSans>%GLYPH<c=31,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=22,font=/AAAAAD+DejaVuSans>

GLYPH<c=28,font=/AAAAAD+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=25,font=/AAAAAD+DejaVuSans># GLYPH<c=30,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>%

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=9,font=/AAAAAE+DejaVuSans>

GLYPH<c=10,font=/AAAAAE+DejaVuSans>

GLYPH<c=11,font=/AAAAAE+DejaVuSans>

GLYPH<c=12,font=/AAAAAE+DejaVuSans>

GLYPH<c=20,font=/AAAAAE+DejaVuSans>!GLYPH<c=27,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans> '

GLYPH<c=13,font=/AAAAAE+DejaVuSans>GLYPH<c=10,font=/AAAAAE+DejaVuSans>

GLYPH<c=13,font=/AAAAAE+DejaVuSans>GLYPH<c=15,font=/AAAAAE+DejaVuSans>

GLYPH<c=14,font=/AAAAAE+DejaVuSans>GLYPH<c=12,font=/AAAAAE+DejaVuSans>

GLYPH<c=15,font=/AAAAAE+DejaVuSans>GLYPH<c=8,font=/AAAAAE+DejaVuSans>

GLYPH<c=16,font=/AAAAAE+DejaVuSans> GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=26,font=/AAAAAE+DejaVuSans>&#GLYPH<c=25,font=/AAAAAE+DejaVuSans>GLYPH<c=26,font=/AAAAAE+DejaVuSans>(GLYPH<c=3,font=/AAAAAE+DejaVuSans>GLYPH<c=5,font=/AAAAAE+DejaVuSans>GLYPH<c=4,font=/AAAAAE+DejaVuSans>GLYPH<c=6,font=/AAAAAE+DejaVuSans>

GLYPH<c=17,font=/AAAAAE+DejaVuSans> GLYPH<c=25,font=/AAAAAE+DejaVuSans>$$GLYPH<c=31,font=/AAAAAE+DejaVuSans>GLYPH<c=29,font=/AAAAAE+DejaVuSans>GLYPH<c=31,font=/AAAAAE+DejaVuSans>GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=25,font=/AAAAAE+DejaVuSans>%GLYPH<c=31,font=/AAAAAE+DejaVuSans>"!GLYPH<c=3,font=/AAAAAE+DejaVuSans>GLYPH<c=22,font=/AAAAAE+DejaVuSans>

GLYPH<c=28,font=/AAAAAE+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAE+DejaVuSans>"!GLYPH<c=3,font=/AAAAAE+DejaVuSans>GLYPH<c=24,font=/AAAAAE+DejaVuSans>

GLYPH<c=25,font=/AAAAAE+DejaVuSans># GLYPH<c=30,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans>%

GLYPH<c=23,font=/AAAAAE+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAE+DejaVuSans>

GLYPH<c=24,font=/AAAAAE+DejaVuSans>

GLYPH<c=23,font=/AAAAAE+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAE+DejaVuSans>GLYPH<c=19,font=/AAAAAE+DejaVuSans>

GLYPH<c=18,font=/AAAAAE+DejaVuSans> GLYPH<c=16,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans>

GLYPH<c=24,font=/AAAAAE+DejaVuSans>

GLYPH<c=18,font=/AAAAAE+DejaVuSans> GLYPH<c=16,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans>GLYPH<c=19,font=/AAAAAE+DejaVuSans>

GLYPH<c=9,font=/AAAAAD+DejaVuSans>

GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=11,font=/AAAAAD+DejaVuSans>

GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=20,font=/AAAAAD+DejaVuSans>!GLYPH<c=27,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans> '

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=15,font=/AAAAAD+DejaVuSans>

GLYPH<c=14,font=/AAAAAD+DejaVuSans>GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=15,font=/AAAAAD+DejaVuSans>GLYPH<c=8,font=/AAAAAD+DejaVuSans>

GLYPH<c=16,font=/AAAAAD+DejaVuSans> GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>&#GLYPH<c=25,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>(GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=5,font=/AAAAAD+DejaVuSans>GLYPH<c=4,font=/AAAAAD+DejaVuSans>GLYPH<c=6,font=/AAAAAD+DejaVuSans>

GLYPH<c=17,font=/AAAAAD+DejaVuSans> GLYPH<c=25,font=/AAAAAD+DejaVuSans>$$GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=29,font=/AAAAAD+DejaVuSans>GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=25,font=/AAAAAD+DejaVuSans>%GLYPH<c=31,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=22,font=/AAAAAD+DejaVuSans>

GLYPH<c=28,font=/AAAAAD+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=25,font=/AAAAAD+DejaVuSans># GLYPH<c=30,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>%

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

(b) Source classification

GLYPH<c=8,font=/AAAAAB+DejaVuSans>

GLYPH<c=9,font=/AAAAAB+DejaVuSans>

GLYPH<c=10,font=/AAAAAB+DejaVuSans>

GLYPH<c=11,font=/AAAAAB+DejaVuSans>

GLYPH<c=12,font=/AAAAAB+DejaVuSans>

GLYPH<c=18,font=/AAAAAB+DejaVuSans>GLYPH<c=29,font=/AAAAAB+DejaVuSans>GLYPH<c=23,font=/AAAAAB+DejaVuSans>GLYPH<c=24,font=/AAAAAB+DejaVuSans>%

GLYPH<c=13,font=/AAAAAB+DejaVuSans>GLYPH<c=12,font=/AAAAAB+DejaVuSans>

GLYPH<c=14,font=/AAAAAB+DejaVuSans>GLYPH<c=7,font=/AAAAAB+DejaVuSans>

GLYPH<c=14,font=/AAAAAB+DejaVuSans>GLYPH<c=12,font=/AAAAAB+DejaVuSans>

GLYPH<c=15,font=/AAAAAB+DejaVuSans> GLYPH<c=22,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>$!GLYPH<c=21,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>&GLYPH<c=3,font=/AAAAAB+DejaVuSans>GLYPH<c=5,font=/AAAAAB+DejaVuSans>GLYPH<c=4,font=/AAAAAB+DejaVuSans>GLYPH<c=6,font=/AAAAAB+DejaVuSans>

GLYPH<c=16,font=/AAAAAB+DejaVuSans>GLYPH<c=27,font=/AAAAAB+DejaVuSans>GLYPH<c=21,font=/AAAAAB+DejaVuSans>""GLYPH<c=26,font=/AAAAAB+DejaVuSans>GLYPH<c=25,font=/AAAAAB+DejaVuSans>GLYPH<c=26,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>GLYPH<c=21,font=/AAAAAB+DejaVuSans>#GLYPH<c=26,font=/AAAAAB+DejaVuSans>GLYPH<c=30,font=/AAAAAB+DejaVuSans>GLYPH<c=29,font=/AAAAAB+DejaVuSans>GLYPH<c=3,font=/AAAAAB+DejaVuSans>GLYPH<c=19,font=/AAAAAB+DejaVuSans>

GLYPH<c=24,font=/AAAAAB+DejaVuSans>"$GLYPH<c=27,font=/AAAAAB+DejaVuSans>#"

GLYPH<c=20,font=/AAAAAB+DejaVuSans>

GLYPH<c=24,font=/AAAAAB+DejaVuSans>GLYPH<c=28,font=/AAAAAB+DejaVuSans>GLYPH<c=31,font=/AAAAAB+DejaVuSans>GLYPH<c=30,font=/AAAAAB+DejaVuSans>!GLYPH<c=21,font=/AAAAAB+DejaVuSans>GLYPH<c=27,font=/AAAAAB+DejaVuSans>

GLYPH<c=17,font=/AAAAAB+DejaVuSans>

!GLYPH<c=24,font=/AAAAAB+DejaVuSans> $GLYPH<c=24,font=/AAAAAB+DejaVuSans>GLYPH<c=29,font=/AAAAAB+DejaVuSans>GLYPH<c=22,font=/AAAAAB+DejaVuSans>&

+GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=13,font=/AAAAAC+DejaVuSans>!*GLYPH<c=4,font=/AAAAAC+DejaVuSans>GLYPH<c=11,font=/AAAAAC+DejaVuSans>*GLYPH<c=3,font=/AAAAAC+DejaVuSans> GLYPH<c=25,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=14,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=18,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>GLYPH<c=26,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>$

GLYPH<c=19,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>! #GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>'$GLYPH<c=5,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=13,font=/AAAAAC+DejaVuSans>

#GLYPH<c=24,font=/AAAAAC+DejaVuSans>"&GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=22,font=/AAAAAC+DejaVuSans>)GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>

GLYPH<c=15,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>(

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=8,font=/AAAAAC+DejaVuSans>

GLYPH<c=9,font=/AAAAAC+DejaVuSans>

GLYPH<c=10,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>!GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>%&GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=20,font=/AAAAAC+DejaVuSans>

GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=28,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=17,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=16,font=/AAAAAC+DejaVuSans>

+GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=13,font=/AAAAAC+DejaVuSans>!*GLYPH<c=4,font=/AAAAAC+DejaVuSans>GLYPH<c=11,font=/AAAAAC+DejaVuSans>*GLYPH<c=3,font=/AAAAAC+DejaVuSans> GLYPH<c=25,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=14,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=18,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>GLYPH<c=26,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>$

GLYPH<c=19,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>! #GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>'$GLYPH<c=5,font=/AAAAAC+DejaVuSans>GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=13,font=/AAAAAC+DejaVuSans>

#GLYPH<c=24,font=/AAAAAC+DejaVuSans>"&GLYPH<c=24,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=22,font=/AAAAAC+DejaVuSans>)GLYPH<c=3,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=21,font=/AAAAAC+DejaVuSans>%GLYPH<c=21,font=/AAAAAC+DejaVuSans>

GLYPH<c=15,font=/AAAAAC+DejaVuSans>GLYPH<c=31,font=/AAAAAC+DejaVuSans>GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>(

GLYPH<c=6,font=/AAAAAC+DejaVuSans>

GLYPH<c=7,font=/AAAAAC+DejaVuSans>

GLYPH<c=8,font=/AAAAAC+DejaVuSans>

GLYPH<c=9,font=/AAAAAC+DejaVuSans>

GLYPH<c=10,font=/AAAAAC+DejaVuSans>GLYPH<c=30,font=/AAAAAC+DejaVuSans>!GLYPH<c=29,font=/AAAAAC+DejaVuSans>GLYPH<c=27,font=/AAAAAC+DejaVuSans>%&GLYPH<c=23,font=/AAAAAC+DejaVuSans>GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=20,font=/AAAAAC+DejaVuSans>

GLYPH<c=21,font=/AAAAAC+DejaVuSans>GLYPH<c=28,font=/AAAAAC+DejaVuSans>

GLYPH<c=24,font=/AAAAAC+DejaVuSans>

GLYPH<c=17,font=/AAAAAC+DejaVuSans>GLYPH<c=12,font=/AAAAAC+DejaVuSans>GLYPH<c=16,font=/AAAAAC+DejaVuSans>

GLYPH<c=9,font=/AAAAAD+DejaVuSans>

GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=11,font=/AAAAAD+DejaVuSans>

GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=20,font=/AAAAAD+DejaVuSans>!GLYPH<c=27,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans> '

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=15,font=/AAAAAD+DejaVuSans>

GLYPH<c=14,font=/AAAAAD+DejaVuSans>GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=15,font=/AAAAAD+DejaVuSans>GLYPH<c=8,font=/AAAAAD+DejaVuSans>

GLYPH<c=16,font=/AAAAAD+DejaVuSans> GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>&#GLYPH<c=25,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>(GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=5,font=/AAAAAD+DejaVuSans>GLYPH<c=4,font=/AAAAAD+DejaVuSans>GLYPH<c=6,font=/AAAAAD+DejaVuSans>

GLYPH<c=17,font=/AAAAAD+DejaVuSans> GLYPH<c=25,font=/AAAAAD+DejaVuSans>$$GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=29,font=/AAAAAD+DejaVuSans>GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=25,font=/AAAAAD+DejaVuSans>%GLYPH<c=31,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=22,font=/AAAAAD+DejaVuSans>

GLYPH<c=28,font=/AAAAAD+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=25,font=/AAAAAD+DejaVuSans># GLYPH<c=30,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>%

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=9,font=/AAAAAD+DejaVuSans>

GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=11,font=/AAAAAD+DejaVuSans>

GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=20,font=/AAAAAD+DejaVuSans>!GLYPH<c=27,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans> '

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=15,font=/AAAAAD+DejaVuSans>

GLYPH<c=14,font=/AAAAAD+DejaVuSans>GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=15,font=/AAAAAD+DejaVuSans>GLYPH<c=8,font=/AAAAAD+DejaVuSans>

GLYPH<c=16,font=/AAAAAD+DejaVuSans> GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>&#GLYPH<c=25,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>(GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=5,font=/AAAAAD+DejaVuSans>GLYPH<c=4,font=/AAAAAD+DejaVuSans>GLYPH<c=6,font=/AAAAAD+DejaVuSans>

GLYPH<c=17,font=/AAAAAD+DejaVuSans> GLYPH<c=25,font=/AAAAAD+DejaVuSans>$$GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=29,font=/AAAAAD+DejaVuSans>GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=25,font=/AAAAAD+DejaVuSans>%GLYPH<c=31,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=22,font=/AAAAAD+DejaVuSans>

GLYPH<c=28,font=/AAAAAD+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=25,font=/AAAAAD+DejaVuSans># GLYPH<c=30,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>%

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=9,font=/AAAAAE+DejaVuSans>

GLYPH<c=10,font=/AAAAAE+DejaVuSans>

GLYPH<c=11,font=/AAAAAE+DejaVuSans>

GLYPH<c=12,font=/AAAAAE+DejaVuSans>

GLYPH<c=20,font=/AAAAAE+DejaVuSans>!GLYPH<c=27,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans> '

GLYPH<c=13,font=/AAAAAE+DejaVuSans>GLYPH<c=10,font=/AAAAAE+DejaVuSans>

GLYPH<c=13,font=/AAAAAE+DejaVuSans>GLYPH<c=15,font=/AAAAAE+DejaVuSans>

GLYPH<c=14,font=/AAAAAE+DejaVuSans>GLYPH<c=12,font=/AAAAAE+DejaVuSans>

GLYPH<c=15,font=/AAAAAE+DejaVuSans>GLYPH<c=8,font=/AAAAAE+DejaVuSans>

GLYPH<c=16,font=/AAAAAE+DejaVuSans> GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=26,font=/AAAAAE+DejaVuSans>&#GLYPH<c=25,font=/AAAAAE+DejaVuSans>GLYPH<c=26,font=/AAAAAE+DejaVuSans>(GLYPH<c=3,font=/AAAAAE+DejaVuSans>GLYPH<c=5,font=/AAAAAE+DejaVuSans>GLYPH<c=4,font=/AAAAAE+DejaVuSans>GLYPH<c=6,font=/AAAAAE+DejaVuSans>

GLYPH<c=17,font=/AAAAAE+DejaVuSans> GLYPH<c=25,font=/AAAAAE+DejaVuSans>$$GLYPH<c=31,font=/AAAAAE+DejaVuSans>GLYPH<c=29,font=/AAAAAE+DejaVuSans>GLYPH<c=31,font=/AAAAAE+DejaVuSans>GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=25,font=/AAAAAE+DejaVuSans>%GLYPH<c=31,font=/AAAAAE+DejaVuSans>"!GLYPH<c=3,font=/AAAAAE+DejaVuSans>GLYPH<c=22,font=/AAAAAE+DejaVuSans>

GLYPH<c=28,font=/AAAAAE+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAE+DejaVuSans>"!GLYPH<c=3,font=/AAAAAE+DejaVuSans>GLYPH<c=24,font=/AAAAAE+DejaVuSans>

GLYPH<c=25,font=/AAAAAE+DejaVuSans># GLYPH<c=30,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans>%

GLYPH<c=23,font=/AAAAAE+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAE+DejaVuSans>

GLYPH<c=24,font=/AAAAAE+DejaVuSans>

GLYPH<c=23,font=/AAAAAE+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAE+DejaVuSans>GLYPH<c=28,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAE+DejaVuSans>GLYPH<c=19,font=/AAAAAE+DejaVuSans>

GLYPH<c=18,font=/AAAAAE+DejaVuSans> GLYPH<c=16,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans>

GLYPH<c=24,font=/AAAAAE+DejaVuSans>

GLYPH<c=18,font=/AAAAAE+DejaVuSans> GLYPH<c=16,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=21,font=/AAAAAE+DejaVuSans>GLYPH<c=7,font=/AAAAAE+DejaVuSans>GLYPH<c=19,font=/AAAAAE+DejaVuSans>

GLYPH<c=9,font=/AAAAAD+DejaVuSans>

GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=11,font=/AAAAAD+DejaVuSans>

GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=20,font=/AAAAAD+DejaVuSans>!GLYPH<c=27,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans> '

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=10,font=/AAAAAD+DejaVuSans>

GLYPH<c=13,font=/AAAAAD+DejaVuSans>GLYPH<c=15,font=/AAAAAD+DejaVuSans>

GLYPH<c=14,font=/AAAAAD+DejaVuSans>GLYPH<c=12,font=/AAAAAD+DejaVuSans>

GLYPH<c=15,font=/AAAAAD+DejaVuSans>GLYPH<c=8,font=/AAAAAD+DejaVuSans>

GLYPH<c=16,font=/AAAAAD+DejaVuSans> GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>&#GLYPH<c=25,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>(GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=5,font=/AAAAAD+DejaVuSans>GLYPH<c=4,font=/AAAAAD+DejaVuSans>GLYPH<c=6,font=/AAAAAD+DejaVuSans>

GLYPH<c=17,font=/AAAAAD+DejaVuSans> GLYPH<c=25,font=/AAAAAD+DejaVuSans>$$GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=29,font=/AAAAAD+DejaVuSans>GLYPH<c=31,font=/AAAAAD+DejaVuSans>GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=25,font=/AAAAAD+DejaVuSans>%GLYPH<c=31,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=22,font=/AAAAAD+DejaVuSans>

GLYPH<c=28,font=/AAAAAD+DejaVuSans>$& %$GLYPH<c=3,font=/AAAAAD+DejaVuSans>"!GLYPH<c=3,font=/AAAAAD+DejaVuSans>GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=25,font=/AAAAAD+DejaVuSans># GLYPH<c=30,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>%

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=23,font=/AAAAAD+DejaVuSans>"&# GLYPH<c=26,font=/AAAAAD+DejaVuSans>GLYPH<c=28,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans> "! ( GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>

GLYPH<c=24,font=/AAAAAD+DejaVuSans>

GLYPH<c=18,font=/AAAAAD+DejaVuSans> GLYPH<c=16,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=21,font=/AAAAAD+DejaVuSans>GLYPH<c=7,font=/AAAAAD+DejaVuSans>GLYPH<c=19,font=/AAAAAD+DejaVuSans>

(c) Target classification

As Figure 1(a) presented, compared to the uniform distribution of temporal data for different classes, the frequency data for different classes shows distinct differences in the dominant frequencies and peaks, which holds more discriminative information. To further investigate the discriminability of

frequency features, we perform the single data domain classification task in the frequency domain and temporal domain respectively on all five data domains of the CAP [37, 14] dataset.

In order to minimize the impact of specific model structures, we adopt 3-layer 1D-CNN, a generic structure as the temporal feature extractor, and 1-layer linear as the frequency feature extractor, which have both widely validated for their effectiveness in existing time series analysis methods [23, 16, 42, 43]. We only retain the low-frequency data to ensure that the temporal feature extractor and the frequency feature extractor have comparable parameter quantities. For the classifiers, we uniformly use 1-layer linear. As Figure 1(b) shown, with a simple feature extractor, the frequency classification outperforms the temporal classification, demonstrating that the frequency features have better discriminability. More analysis results on different datasets are included in Appendix C.1.

3.3 Transferability of temporal feature

Another key criterion that characterizes the performance of domain adaptation is transferability [7]. Transferability indicates the ability to learn invariant features across domains. Since the frequency features have better discriminability within the source domain, it is natural to raise the question: Will the frequency features also have better discriminability in the target domain?

We investigate this problem starting with the comparison of four methods: (1) Source-only-F, a model trained in the frequency domain without UDA. (2) Source-only-T, a model trained in the temporal domain without UDA. (3) DANN-F, a model aligning the source features and the target features in the frequency domain via DANN. (4) DANN-T. a model aligning the source features and the target features in the temporal domain via DANN. Figure 1(c) shows the accuracy in the target domains of four source-target domain pairs from the CAP dataset. Compared with Figure 1(b), the frequency classification, which has better discriminability performance in the source domain, actually slightly underperforms in the target domain. It indicates that better discriminability in the source domain does not necessarily imply better discriminability in the target domain. Compared with Source-only methods, the gap between DANN-F and DANN-T is further exacerbated. This suggests that the temporal feature extractor more easily learns domain-invariant features. More analysis results on different datasets are included in Appendix C.2.

The above analysis reveals two insights for time series domain adaptation: With better discriminability but worse transferability, domain adaptation in the frequency domain obtains suboptimal performance; while with better transferability, domain adaptation in the temporal domain has the potential to achieve superior performance under the guidance of more discriminative information.

4 Approach

Based on the above observations, our motivation is to simultaneously leverage the strong discriminability of frequency features and the strong transferability of temporal features to enhance domain adaptation. This inspires us to learn domain-invariant temporal and frequency features in a collaborative learning manner.

Figure 2 illustrates the overall structure of our A dversarial CO -learning N etworks ( ACON ). To avoid confusion, subscripts T and F are adopted to distinguish the temporal domain and the frequency domain. Specifically, in the temporal domain, we have a temporal feature extractor with temporal input f = ψ T ( x ) and a temporal classifier ˆ y T = g T ( f ) ; while in the frequency domain, we have a frequency feature extractor with frequency input z = ψ F ( v ) and a frequency classifier ˆ y F = g F ( z ) . Additionally, we have a domain discriminator g D , which is trained to distinguish the source feature and the target feature. In the following, we will introduce three main contributions in ACON: multi-period frequency feature learning in Section 4.1, temporal-frequency domain mutual learning in Section 4.2, and domain adversarial learning in temporal-frequency correlation subspace in Section 4.3.

4.1 Multi-period frequency feature learning

The real-world time series usually present multi-periodicity, which is reflected in the frequency domain as the presence of a few dominant frequencies with significantly larger amplitudes. Data from different periods can have different discriminative patterns. Based on this, before performing FFT, we segment the raw time series according to the top-k significant periods, enhancing the

<latexi sh

1_b

64="Z0jHIkzAQ

D

p

K

P

X

o

/U

>

B73

c

V

NS8

EJ

r

q

9L

F

2

+

uT

m

G

Y

w

y

C

O

W

d

gf

n

M

R

v

5

<latexi sh

1_b

64="

7v jz0mC

F

HUE

D

5

ZM

I

>A

B

3

c

V

NS8

J

W

X

O

9

g

G

+w

p

2

Td

/

Q

P

k

r

f

q

uL

R

n

y

Y

<latexi sh

1_b

64="WXL/N+uZ

p

foq

n

3

UKyBmI

>A

H

c

VD

EO

r

Y9

P

R

Mw

z

7

Q

v

5

2

G

k

8

C

j

T

d

0

J

F

<latexi sh

1_b

64="S

AqF

n

2

KVd9X/Wp gwrz8

>

B+H

c

DL

N

ofj

0M

E

yUR

u

J

Q

vCZ

mY

k

P

O

75

T

I

G

3

<latexi sh

1_b

64="MQN

E

Tmck+nB

C

R

P0

F7

>A

H

V

S8

9L

I

Z

u

Y

g

Dd

2z

X

w

v

p

5

K

f

W

o

G

O

y

j

<latexi sh

1_b

64="fSmZdCNj

Y0AH

yK

R2

Q

>

B7

c

V

8

EJ3Ur q/

9L

F

T

u

g

D

I

+

z

X

w

v

p

5

O

WM

k

Go

n

P

<latexi sh

1_b

64="ZYE

Kd jw

r

3Ic

Ug

Q

D

7m

>A

C

V

JS

NB

O

XGL

v

y

R

TM

F

H0

o

f

k

/8

P

q2

5

z

9

n

p

+

<latexi sh

1_b

64="K

9

fd

20XGPrvno

Cz/

w

>A

c

VDLS

N

FJ3U

qB

T

I

k

W

M

ym

5

H

jR

g

O

Y

7

u

Z

8

+Q

p

E

<latexi sh

1_b

64="r juBJ

2

9k7O

P

QFL+0

XS8

>A

C

c

VD

N

3U

vq

T

I

o

W

Zw

g

Eyn

R

m

f

/

Y

H

5

z

G

M

K

d

p

<latexi sh

1_b

64="oJH7nr

Gpv+

/3RY

d

y

>A

I

c

V

LSgM

F

P

m

U2Z

q

K

k

f0

5

j

wX

z

W

O

9

N

u

T

B

<latexi sh

1_b

64="cr

IPvkN8O

jL+

yn3Y

SU

>A

C

X

VD

FJ

2

qB

T

o

0W

M

m

Z

f

E

/

uH

5

7

d

K

pG

z

R

g

9

w

Q

<latexi sh

1_b

64="HMVBI9v

A

Q

T

KoSL

E

Cc

>

X

D

N

FJ3U

2

q

rk

0W

Zw

g

yn

R

5

f+

j

z

7

O

d

m

u

8

p

/

P

Y

G

<latexi sh

1_b

64="

fwjdL37

PE

zKTAW

kuSq

Q

>

B/H

c

VD

N

F

2pr

Ivg

C5

OY

M

y

G

J

Z

o

9

R

8

n

U+

m

<latexi sh

1_b

64="K

ER

+A0yLrI

F

2

nz oX

pc

>

B/H

VD

S

N

f

7d

U

q

5

Og

m

k

PJ

Z

3

vw

W

8

u

9

G

YC

M

T

ˆ

y

s

T

ˆ

y

s

F

L

C

T

L

C

F

g

T

g

F

L

D

D

ψ

T

ψ

F

ˆ

y

t

F

ˆ

y

t

T

FFT

Average

Period 1

Period k

D

KL

(ˆ

y

t

T

||

ˆ

y

t

F

)

D

KL

(ˆ

y

s

F

||

ˆ

y

s

T

)

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

FFT

Average

.

.

.

.

.

.

.

.

.

.

.

.

FFT

discriminability of the frequency domain. Additionally, by period-based segmentation, the noises brought by meaningless high frequencies are effectively filtered out [4, 45].

To capture the overall multi-periodicity, before training, we randomly sample mini-batches from the training set to perform FFT and select the frequencies with the top-k amplitudes { f 1 , . . . , f k } . Given the frequency f j , the corresponding period is p j = ⌈ T f j ⌉ . For each selected period p j in { p 1 , . . . , p k } and frequency f j in the corresponding { f 1 , . . . , f k } , we perform the following transform on input x i :

where X j i ∈ R C × f j × p j , v j i ∈ C C ×⌊ p j 2 ⌋ is averaged from f j dimensions by Avg ( · ) . In other words, we perform FFT on each segment obtained by segmenting x i with period p j , and average the FFT results across segments to obtain the distribution v j i over the frequencies within { 1 , . . . , ⌊ p j 2 ⌋} . In this way, we obtain the overall frequency pattern for each period. To keep the discriminative patterns derived from different periods, we concatenate the different v j i , obtaining v i as the frequency input corresponding to the temporal input x i :

We extend the source sample set ˆ P and the target sample set ˆ Q to the frequency domain: ˆ P = { ( x s i , v s i , y s i ) } n s i =1 and ˆ Q = { ( x t i , v t i ) } n t i =1 . To learn features in both real part and imaginary part of complex frequency data, we adopt a complex-valued linear layer as the frequency feature extractor ψ F . Since the phase generally does not provide strong discriminative information, we only retain the amplitudes of each frequency to construct the frequency domain feature z i :

where Amp ( · ) denotes the calculation of amplitude values. For multivariate time series, we convert v i into a single-channel vector by concatenating across different variates.

4.2 Temporal-frequency domain mutual learning

Discriminability and transferability are two key criteria that characterize the goodness of feature representations to enable domain adaptation. In Section 3, we reveal that the frequency features are more discriminative within the source domain, while the temporal features are more transferable across domains. Based on this discovery, we propose temporal-frequency domain mutual learning, aiming to leverage the respective advantages of the temporal domain and frequency domain.

The essence of domain mutual learning relies on how to transfer knowledge between the temporal domain and frequency domain. Inspired by model distillation, where the knowledge is transferred by matching the predictions between the teacher and student via the Kullback Leibler (KL) divergence [17], we focus mutual learning on the alignment between the temporal predictions and the frequency predictions. The KL divergence between two predictions p 1 and p 2 is formulated as:

The KL divergence is asymmetric, that is, D KL ( p 1 || p 2 ) emphasizes aligning p 2 to p 1 , while D KL ( p 2 || p 1 ) emphasizes aligning p 1 to p 2 . Based on the asymmetry, we use different alignment strategies in the source domain and target domain. Specifically, in the source domain, the frequency model serves as a more discriminative teacher, helping the temporal model make more accurate predictions; conversely, in the target domain, the temporal model acts as a more transferable teacher, assisting the frequency model in learning domain-invariant representations. We achieve temporalfrequency domain mutual learning by minimizing the KL Divergence. Formally, domain mutual learning is formulated as:

where ˆ y s F and ˆ y s T refer to the frequency prediction and temporal prediction in the source domain respectively; while ˆ y t F and ˆ y t T refer to the frequency prediction and temporal prediction in the target domain respectively. By aligning ˆ y s T to ˆ y s F , the training of the temporal feature extractor and classifier is guided with more discriminative information; by aligning ˆ y t F to ˆ y t T , the transferable knowledge contained in the temporal features is transferred to frequency domain.

4.3 Domain adversarial learning in temporal-frequency correlation subspace

Domain adversarial learning [13] is one of the most popular transferable representation learning methods, and it can be employed to learn transferable representation in time series. The key to the effectiveness of the method lies in how to fully utilize two types of features to learn transferable representations. Given time series in temporal domain and frequency domain, domain adversarial learning can be formulated as a minimax optimization problem with three competitive loss terms: (a) L C T on the temporal feature extractor ψ T and classifier g T , which is minimized to guarantee lower source risk of the temporal classifier; (b) L C F on the frequency feature extractor ψ F and classifier g F , which is minimized to guarantee lower source risk of the frequency classifier; (c) L D on the temporal feature extractor ψ T , the frequency feature extractor ψ F and the domain discriminator g D , which is minimized over g D but maximized over ψ T and ψ F :

where ℓ denotes cross-entropy loss. Different from standard domain adversarial learning, where there is only one type of feature, domain adversarial learning in time series needs to consider the temporal features and frequency features simultaneously. A simple strategy is to concatenate the temporal feature f and the frequency feature z . However, with the concatenation strategy, the adversarial game between the domain discriminator and the feature extractors can be viewed as two independent components: the game between g D and ψ T and the game between g D and ψ F . With the worse transferability, z provides g D with rich domain-label relevant information. In this case, g D only needs to focus on the game with ψ F , ignoring the domain adversarial learning in the temporal domain.

To achieve co-alignment in the temporal domain and frequency domain, we propose domain adversarial learning in temporal-frequency correlation subspace. The temporal-frequency correlation subspace not only possesses statistical characteristics of the original temporal feature subspace and original frequency feature subspace but also reflects the correlation between temporal features and frequency features. Reducing the discrepancy of the temporal-frequency correlation subspace not only reduces the discrepancy in the cross-domain temporal and frequency features but also decreases the differences in cross-domain temporal-frequency correlations.

Formally, the vectors in temporal-frequency correlation subspace can be calculated as the outer product ⊗ between the temporal feature f and the frequency feature z :

where z ∈ R 1 × l . By adjusting the order of dimensions, z ⊗ f is equivalent to f ⊗ z . Considering the sparsity of the frequency domain and the modeling of long-length time series, the direct outer product

leads to dimension explosion and the sparsity in temporal-frequency feature subspace. We address the problem by performing average pooling over z . Average pooling, which calculates the average value for the amplitudes of neighboring frequencies, yields dense frequency features with smaller dimensions. With outer product and average pooling, the adversarial loss L D is formulated as:

where h ( · ) denotes the mapping from the inputs of the overall model to the inputs of the domain discriminator, and P ( · ) denotes the calculation of average pooling.

4.4 Overview

During alignment, our method trains the temporal feature extractor ψ T and classifier g T by minimizing the loss L C T and trains the frequency feature extractor ψ F and classifier g F by minimizing the loss L C F using the source sample set ˆ P . Additionally, our method promotes mutual learning between the temporal domain and frequency domain by minimizing the loss L M s on the source domain and the loss L M t on the target domain. Meanwhile, our method aligns distributions of the source domain and target domain in the temporal-frequency correlation subspace. With two gradient reversal layers between the two feature extractors and the domain discriminator, the adversarial training is achieved by minimizing the loss L D . To simplify notation, we denote θ F as parameters containing ψ F and g F , and θ T is parameters containing ψ T and g T . The minimax optimization problem is formulated as:

5 Experiments

5.1 Setup

Datasets We conduct extensive experiments using a wide range of time series datasets. (1) Experiments using benchmark datasets in sensor-based human activity recognition (HAR) task: UCIHAR [1], HHAR [35] and WISDM[20]. For HHAR, we first split domains from the perspective of participants, denoted as HHAR-P [16, 31] dataset. Then, we split domains from the perspective of devices, denoted as HHAR-D [12] datasets. (2) Experiments using the benchmark dataset in sleep stage classification (SSC) task: CAP [14, 37]. (3) Experiments using EMG [24, 27] dataset in gesture recognition (GR) task. (4) Experiments using PCL [32, 9, 21, 19] dataset in motor imagery classification (MIC) task. (5) Experiments using FD [31] dataset in machine fault diagnosis (MFD) task. For each dataset, following the existing DA methods on time series [2, 16], we randomly sample 10 source-target domain pairs for evaluation. If the dataset has less than 10 pairs, we evaluate all available domain pairs. Further details, processing and domain splits are included in Appendix A.

Baselines (1) We report the performance of a model without UDA (Source-only) in the temporal domain to show the overall contribution of UDA methods. (2) We implement the following stateof-the-art baselines for UDA of time series data: CODATS[41], AdvSKM[23], CLUDA[29] and RAINCOAT[16]. (3) We additionally implement general unsupervised DA methods: CDAN [26], DeepCoral [36], AdaMatch [2], HoMM [5] and DIRT-T [34].

Evaluation We report accuracy and Macro-F1 Score calculated using target test datasets. Accuracy is computed by dividing the number of correctly classified samples by the total number of samples. Macro-F1 Score is calculated using the unweighted mean of all the per-class F1 scores.

Implementation We adopt the implementation of AdaTime [31] as a benchmarking suite for domain adaptation on time series data, using 1D-CNN as the temporal feature extractor and 1-lyer complex-valued linear as the frequency feature extractor. We use the same feature extractor across all algorithms, ensuring a fair comparison. In all experiments, we use the prediction of the temporal classifier to calculate accuracy and Macro-F1 Score. More experimental details are provided in Appendix B.

5.2 Results

Table 1 shows the average accuracy of each method on all datasets and tasks. Overall, our method has won 5 out of 5 tasks and 8 out of 8 datasets (2 metrics). Specifically, our method improves accuracy by 2.75% on GR task, 5.20% on SSC task, 1.31% on MI task, 9.86% on HAR task and 1.30% on MFD task over the advanced baseline on each dataset respectively.

Due to the limited pages, we report the results for selected source-target domain pairs with metric accuracy on the representative datasets EMG (GR task), CAP (SSC task) and HHAR-P (HAR task). More accuracy results are given in Table 11-15. Average macro-f1 score results are given in Table 16. Full macro-f1 score results are given in Table 17-24.

Table 2 presents the results on CAP dataset. CAP contains over 40,000 samples of 3000 time steps, so adaptation on it is more challenging. Our method outperforms general DA and time series DA methods on 9 out of 10 source-target domain pairs, achieving an average improvement of 5.20% over the advanced baseline, DIRT-T. Table 3 presents the results on HHAR-P dataset. Our method significantly outperforms RAINCOAT, the state-of-the-art DA method for time series, by 10.15% .

5.3 Analysis

Ablation Study We conduct ablation experiments on three datasets, UCIHAR, HHAR-P and WISDM. For each datasets, we select the same 10 source-target domain pairs as mentioned in Section 5.1. The ablation results (average accuracy of 10 domain pairs) are presented in Table 4. We can observe that all learning modules in the proposed method are effective. Further discussions are included in Appendix C.3.

0.6

0.8

1.0

1.2

1.4

95

96

97

Accuracy (%)

Sensitivity analysis on UCIHAR

ACON-

λD

ACON-

λMt

ACON-

λMs

RAINCOAT

0.6

0.8

1.0

1.2

1.4

76

79

82

Accuracy (%)

Sensitivity analysis on HHAR-P

ACON-

λD

ACON-

λMt

ACON-

λMs

RAINCOAT

0.6

0.8

1.0

1.2

1.4

78

82

86

Accuracy (%)

Sensitivity analysis on WISDM

ACON-

λD

ACON-

λMt

ACON-

λMs

RAINCOAT

Sensitivity Analysis It's worth noting that our total loss in Equation (10) does not include any hyperparameters. In UDA setup, how to search the optimal trade-offs without access to labeled target samples is still an open problem. Considering that, we choose to set all the trade-offs to 1, as it is the most intuitive choice. Without tuning the trade-offs, our proposed ACON still achieves significant improvements. To further investigate the sensitivity of ACON, we update Equation (10) as:

where hyperparameters λ D , λ M s and λ M t control the contribution of each component. We investigate the sensitivity of the model to the hyperparameters λ D , λ M s and λ M t . ACONλ D refers that the currently investigated hyperparameter is λ D , and others are analogous. From Figure 3, we observe that the performance of ACON is quite stable to the hyperparameters in Equation (11). Although setting all the trade-offs to 1 may not achieve the optimal performance, ACON still significantly outperforms the advanced baseline. This implies that ACON can achieve superior performance on a wider range of datasets without the need for careful hyperparameter tuning.

6 Conclusion

In this paper, the phenomenon is revealed--that temporal features exhibit better transferability across domains, whereas frequency features tend to be more discriminative within a specific domain. Based on the findings, A dversarial CO -learning N etworks ( ACON ) is proposed to boost the transferability and discriminability in a collaborative learning manner. Specifically, multi-period feature learning is proposed to enhance the discriminability of frequency features; temporal-frequency domain mutual learning is proposed to enhance the discriminability of temporal features in the source domain and improve the transferability of frequency features in the target domain; domain adversarial learning in temporal-frequency correlation subspace is proposed to further enhance transferability of features. ACON achieves state-of-the-art performance on a wide range of time series datasets.

References

Davide Anguita, Alessandro Ghio, Luca Oneto, Xavier Parra, Jorge Luis Reyes-Ortiz, et al. A public domain dataset for human activity recognition using smartphones. In Esann , 2013.

David Berthelot, Rebecca Roelofs, Kihyuk Sohn, Nicholas Carlini, and Alexey Kurakin. Adamatch: A unified approach to semi-supervised learning and domain adaptation. In ICLR , 2021.

Ruichu Cai, Jiawei Chen, Zijian Li, Wei Chen, Keli Zhang, Junjian Ye, Zhuozhang Li, Xiaoyan Yang, and Zhenjie Zhang. Time series domain adaptation via sparse associative structure alignment. In AAAI , 2021.

Chris Chatfield and Haipeng Xing. The analysis of time series: an introduction with R . 1981.

Chao Chen, Zhihang Fu, Zhihong Chen, Sheng Jin, Zhaowei Cheng, Xinyu Jin, and Xian-Sheng Hua. Homm: Higher-order moment matching for unsupervised domain adaptation. In AAAI , 2020.

Chaoqi Chen, Weiping Xie, Wenbing Huang, Yu Rong, Xinghao Ding, Yue Huang, Tingyang Xu, and Junzhou Huang. Progressive feature alignment for unsupervised domain adaptation. In CVPR , 2019.

Xinyang Chen, Sinan Wang, Mingsheng Long, and Jianmin Wang. Transferability vs. discriminability: Batch spectral penalization for adversarial domain adaptation. In ICML , 2019.

Xinyang Chen, Sinan Wang, Jianmin Wang, and Mingsheng Long. Representation subspace distance for domain adaptation regression. In ICML , 2021.

Hohyun Cho, Minkyu Ahn, Sangtae Ahn, Moonyoung Kwon, and Sung Chan Jun. Eeg datasets for motor imagery brain-computer interface. GigaScience , 2017.

Junyoung Chung, Kyle Kastner, Laurent Dinh, Kratarth Goel, Aaron C Courville, and Yoshua Bengio. A recurrent latent variable model for sequential data. In NeurIPS , 2015.

Jean-Christophe Gagnon-Audet, Kartik Ahuja, Mohammad Javad Darvishi Bayazi, Pooneh Mousavi, Guillaume Dumas, and Irina Rish. Woods: Benchmarks for out-of-distribution generalization in time series. TMLR .

Jean-Christophe Gagnon-Audet, Kartik Ahuja, Mohammad Javad Darvishi Bayazi, Pooneh Mousavi, Guillaume Dumas, and Irina Rish. Woods: Benchmarks for out-of-distribution generalization in time series. TMLR , 2023.

Yaroslav Ganin, Evgeniya Ustinova, Hana Ajakan, Pascal Germain, Hugo Larochelle, François Laviolette, Mario March, and Victor Lempitsky. Domain-adversarial training of neural networks. JMLR , 2016.

Ary L Goldberger, Luis AN Amaral, Leon Glass, Jeffrey M Hausdorff, Plamen Ch Ivanov, Roger G Mark, Joseph E Mietus, George B Moody, Chung-Kang Peng, and H Eugene Stanley. Physiobank, physiotoolkit, and physionet: components of a new research resource for complex physiologic signals. Circulation , 2000.

Xiaoqing Guo, Chen Yang, Baopu Li, and Yixuan Yuan. Metacorrection: Domain-aware meta loss correction for unsupervised domain adaptation in semantic segmentation. In CVPR , 2021.

Huan He, Owen Queen, Teddy Koker, Consuelo Cuevas, Theodoros Tsiligkaridis, and Marinka Zitnik. Domain adaptation for time series under feature and label shifts. In ICML , 2023.

Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. Distilling the knowledge in a neural network. In NeurIPS Deep Learning Workshop , 2014.

Hassan Ismail Fawaz, Germain Forestier, Jonathan Weber, Lhassane Idoumghar, and PierreAlain Muller. Deep learning for time series classification: a review. Data mining and knowledge discovery , 2019.

Vinay Jayaram and Alexandre Barachant. Moabb: trustworthy algorithm benchmarking for bcis. Journal of neural engineering , 2018.

Jennifer R Kwapisz, Gary M Weiss, and Samuel A Moore. Activity recognition using cell phone accelerometers. ACM SIGKDD , 2011.

Min-Ho Lee, O-Yeon Kwon, Yong-Jeong Kim, Hong-Kyung Kim, Young-Eun Lee, John Williamson, Siamac Fazli, and Seong-Whan Lee. Eeg dataset and openbmi toolbox for three bci paradigms: An investigation into bci illiteracy. GigaScience , 2019.

Hong Liu, Jianmin Wang, and Mingsheng Long. Cycle self-training for domain adaptation. In NeurIPS , 2021.

Qiao Liu and Hui Xue. Adversarial spectral kernel matching for unsupervised time series domain adaptation. In IJCAI , 2021.

Sergey Lobov, Nadia Krilova, Innokentiy Kastalskiy, Victor Kazantsev, and Valeri A. Makarov. Latent factors limiting the performance of semg-interfaces. Sensors , 2018.

Mingsheng Long, Yue Cao, Jianmin Wang, and Michael Jordan. Learning transferable features with deep adaptation networks. In ICML , 2015.

Mingsheng Long, Zhangjie Cao, Jianmin Wang, and Michael I Jordan. Conditional adversarial domain adaptation. In NeurIPS , 2018.

Wang Lu, Jindong Wang, Xinwei Sun, Yiqiang Chen, and Xing Xie. Out-of-distribution representation learning for time series classification. In ICLR , 2022.

Wang Lu, Jindong Wang, Xinwei Sun, Yiqiang Chen, and Xing Xie. Out-of-distribution representation learning for time series classification. In ICLR , 2023.

Yilmazcan Ozyurt, Stefan Feuerriegel, and Ce Zhang. Contrastive learning for unsupervised domain adaptation of time series. In ICLR , 2022.

Sanjay Purushotham, Wilka Carvalho, Tanachat Nilanon, and Yan Liu. Variational recurrent adversarial deep domain adaptation. In ICLR , 2017.

Mohamed Ragab, Emadeldeen Eldele, Wee Ling Tan, Chuan-Sheng Foo, Zhenghua Chen, Min Wu, Chee-Keong Kwoh, and Xiaoli Li. Adatime: A benchmarking suite for domain adaptation on time series data. ACM TKDD , 2023.

Gerwin Schalk, Dennis J McFarland, Thilo Hinterberger, Niels Birbaumer, and Jonathan R Wolpaw. Bci2000: a general-purpose brain-computer interface (bci) system. IEEE Transactions on biomedical engineering , 2004.

Xingjian Shi, Zhourong Chen, Hao Wang, Dit-Yan Yeung, Wai-Kin Wong, and Wang-chun Woo. Convolutional lstm network: A machine learning approach for precipitation nowcasting. In NeurIPS , 2015.

Rui Shu, Hung Bui, Hirokazu Narui, and Stefano Ermon. A dirt-t approach to unsupervised domain adaptation. In ICLR , 2018.

Allan Stisen, Henrik Blunck, Sourav Bhattacharya, Thor Siiger Prentow, Mikkel Baun Kjærgaard, Anind Dey, Tobias Sonne, and Mads Møller Jensen. Smart devices are different: Assessing and mitigatingmobile sensing heterogeneities for activity recognition. In ACM SenSys , 2015.

Baochen Sun and Kate Saenko. Deep coral: Correlation alignment for deep domain adaptation. In ECCV , 2016.

Mario Giovanni Terzano, Liborio Parrino, Adriano Sherieri, Ronald Chervin, Sudhansu Chokroverty, Christian Guilleminault, Max Hirshkowitz, Mark Mahowald, Harvey Moldofsky, Agostino Rosa, et al. Atlas, rules, and recording techniques for the scoring of cyclic alternating pattern (cap) in human sleep. Sleep medicine , 2001.

Eric Tzeng, Judy Hoffman, Ning Zhang, Kate Saenko, and Trevor Darrell. Deep domain confusion: Maximizing for domain invariance. arXiv preprint arXiv:1412.3474 , 2014.

Rui Wang, Masao Utiyama, Andrew Finch, Lemao Liu, Kehai Chen, and Eiichiro Sumita. Sentence selection and weighting for neural machine translation domain adaptation. IEEE/ACM Transactions on Audio, Speech, and Language Processing , 2018.

Rui Wang, Masao Utiyama, Lemao Liu, Kehai Chen, and Eiichiro Sumita. Instance weighting for neural machine translation domain adaptation. In EMNLP , 2017.

Garrett Wilson, Janardhan Rao Doppa, and Diane J Cook. Multi-source deep domain adaptation with weak supervision for time-series sensor data. In KDD , 2020.

Zhijian Xu, Ailing Zeng, and Qiang Xu. Fits: Modeling time series with 10 k parameters. In ICLR , 2023.

Kun Yi, Qi Zhang, Wei Fan, Shoujin Wang, Pengyang Wang, Hui He, Ning An, Defu Lian, Longbing Cao, and Zhendong Niu. Frequency-domain mlps are more effective learners in time series forecasting. In NeurIPS , 2023.

Wangjie You, Pei Guo, Juntao Li, Kehai Chen, and Min Zhang. Efficient domain adaptation for non-autoregressive machine translation. In ACL , 2024.

Tian Zhou, Ziqing Ma, Qingsong Wen, Xue Wang, Liang Sun, and Rong Jin. Fedformer: Frequency enhanced decomposed transformer for long-term series forecasting. In ICML , 2022.

Yang Zou, Zhiding Yu, B.V.K. Vijaya Kumar, and Jinsong Wang. Unsupervised domain adaptation for semantic segmentation via class-balanced self-training. In ECCV , 2018.

A Dataset

A.1 Detailed Statistics

We conduct extensive experiments using a wide range of time series datasets. The detailed statistics for each dataset is included in Table 5. For EMG dataset, we use the processed version released by DIVERSIFY [28]. For PCL, CAP and HHAR-D datasets, we use the processed versions released by WOODS [11]. For UCIHAR, HHAR-P, WISDM and FD datasets, we use the processed versions released by AdaTime [31].

A.2 Dataset Processing

Each domain of datasets is randomly divided into 80% training, and 20% testing. We follow [31], apply Z-score normalization to both the training and testing splits of the data, using the following equation:

where N = N s for the source domain data and N = N t for the target domain data. Note that both the training and testing splits are normalized based on the training set statistics only.

B Experimental Details

The experiments were conducted on a single NVIDIA GeForce696 RTX 4090 with 24GiB of memory. As shown in Figure 3, without tuning the trade-offs of training loss, ACON still achieves significant improvements. Here we report other key hyperparameters for ACON in Table 6. Additional hyperparameters can be found in our code. In all experiments, we adopt 3-layer 1D-CNN as the temporal feature extractor (the specific structure is kept consistent with the existing works [31, 16]). For frequency feature extraction, we adopt a 1-layer complex-valued linear as the frequency feature extractor.

C Further Analysis

C.1 Discriminability of Frequency Feature

In Table 7, we report the average accuracy of classification experiments under the setting of Section 3.2 using five different datasets: UCIAHR[1], HHAR-P[35], WISDM[20], CAP[14, 37] and FD[31]. For each dataset, we collect all the domains involved in the selected 10 domain pairs as mentioned in Section 5.1, and perform the classification task on them.

C.2 Transferability of Temporal Feature

In Table 8, we report the average accuracy of classification experiments under the setting of Section 3.3 using three different datasets: UCIAHR[1], HHAR-P[35], WISDM[20], CAP[14, 37] and FD[31]. For each dataset, we perform the domain adaptation and classification task on the selected 10 domain pairs as mentioned in Section 5.1.

C.3 Ablation Study

C.3.1 Ablation Study on different modules

We conduct ablation experiments on three datasets, UCIHAR, HHAR-P and WISDM. For each datasets, we select the same 10 source-target domain pairs as mentioned in Section 5.1. The ablation results (average accuracy of 10 domain pairs) are presented in Table 9. We verify the effectiveness of all learning modules in the proposed method by answering the following questions.

Can multi-period frequency feature learning enhance the discriminability of frequency feature? By comparing the 2nd and 3rd rows, we can observe that with multi-period frequency feature learning, the model makes more accurate predictions on the target domain. Meanwhile, compared with 1st row, even with multi-period frequency feature learning, the performance on the target domain is still inferior to the classification on the temporal domain, which is consistent with our conclusion in Section 3.3 that the temporal features have better transferability.

Can aligning distributions in temporal-frequency subspace effectively learn domain-invariant features? By comparing the 1st, 3rd and 4th rows, we can observe that distribution alignment significantly improves the performance. It indicates that by aligning the distributions in the temporalfrequency subspace, the model learns more domain-invariant features.

Can temporal-frequency domain mutual learning leverage the respective advantages? By comparing the 1st, 3rd and 5th rows, we can observe that the model with domain mutual learning outperforms the model using only the temporal domain or only the frequency domain. It demonstrates that via domain mutual learning, the temporal domain and frequency domain successfully transfer meaningful knowledge, leveraging their respective advantages.

Can the different modules mutually promote each other? By comparing the 3rd, 4th, 5th and 6th rows, we can observe that with all modules, the model achieves the optimal performance. Specifically, with multi-period frequency feature learning, the frequency domain transfers more discriminative knowledge to the temporal domain; with aligning distribution in temporal-frequency subspace, the temporal domain transfers more transferable knowledge to the frequency domain; with aligning distribution in temporal-frequency subspace and the temporal domain as a more tranferbale teacher, both the temporal domain and frequency domain learn domain-invariant features; with domain mutual learning, the frequency domain and the temporal domain enhance each other in the transfer progress, achieving a synergistic effect.

D Limitations

Although ACON boosts transferability and discriminability for time series Domain adaptation, like existing DA methods, it is still unstable enough in time series with relatively large variances. This is a problem that needs to be solved urgently in the future.

E Broader Impacts

We investigate how to boost Transferability and discriminability for domain adaptation in time series classification. We reveal that the frequency features are more discriminative, while the temporal features are more transferable. Upon this, we propose multi-period frequency feature learning, domain mutual learning, and distribution alignment in temporal-frequency feature subspace. The purpose of our research is to advance the research progress in the relevant community without any negative social impact.

F Full Resluts

We present all experimental results in this section. Notably, our model achieves superior performance, yielding improvements of more than 6% in terms of accuracy and 4% in terms of Macro-F1 across 8 cross-domain time series datasets and 5 common applications on average.

NeurIPS Paper Checklist

The checklist is designed to encourage best practices for responsible machine learning research, addressing issues of reproducibility, transparency, research ethics, and societal impact. Do not remove the checklist: The papers not including the checklist will be desk rejected. The checklist should follow the references and precede the (optional) supplemental material. The checklist does NOT count towards the page limit.

Please read the checklist guidelines carefully for information on how to answer these questions. For each question in the checklist:

You should answer [Yes] , [No] , or [NA] .

[NA] means either that the question is Not Applicable for that particular paper or the relevant information is Not Available.

Please provide a short (1-2 sentence) justification right after your answer (even for NA).

The checklist answers are an integral part of your paper submission. They are visible to the reviewers, area chairs, senior area chairs, and ethics reviewers. You will be asked to also include it (after eventual revisions) with the final version of your paper, and its final version will be published with the paper.

The reviewers of your paper will be asked to use the checklist as one of the factors in their evaluation. While "[Yes] " is generally preferable to "[No] ", it is perfectly acceptable to answer "[No] " provided a proper justification is given (e.g., "error bars are not reported because it would be too computationally expensive" or "we were unable to find the license for the dataset we used"). In general, answering "[No] " or "[NA] " is not grounds for rejection. While the questions are phrased in a binary way, we acknowledge that the true answer is often more nuanced, so please just use your best judgment and write a justification to elaborate. All supporting evidence can appear either in the main paper or the supplemental material, provided in appendix. If you answer [Yes] to a question, in the justification please point to the section(s) where related material for the question can be found.

IMPORTANT, please:

Delete this instruction block, but keep the section heading 'NeurIPS paper checklist" ,

Keep the checklist subsection headings, questions/answers and guidelines below.

Do not modify the questions and only use the provided macros for your answers .

1. Claims

Question: Do the main claims made in the abstract and introduction accurately reflect the paper's contributions and scope?

Answer: [Yes]

Justification: We include detailed information in Section 1.

Guidelines:

The answer NA means that the abstract and introduction do not include the claims made in the paper.

The abstract and/or introduction should clearly state the claims made, including the contributions made in the paper and important assumptions and limitations. A No or NA answer to this question will not be perceived well by the reviewers.

The claims made should match theoretical and experimental results, and reflect how much the results can be expected to generalize to other settings.

It is fine to include aspirational goals as motivation as long as it is clear that these goals are not attained by the paper.

2. Limitations

Question: Does the paper discuss the limitations of the work performed by the authors?

Answer: [Yes]

Justification: The limitations are included in Appendix D.

Guidelines:

The answer NA means that the paper has no limitation while the answer No means that the paper has limitations, but those are not discussed in the paper.

The authors are encouraged to create a separate "Limitations" section in their paper.

The paper should point out any strong assumptions and how robust the results are to violations of these assumptions (e.g., independence assumptions, noiseless settings, model well-specification, asymptotic approximations only holding locally). The authors should reflect on how these assumptions might be violated in practice and what the implications would be.

The authors should reflect on the scope of the claims made, e.g., if the approach was only tested on a few datasets or with a few runs. In general, empirical results often depend on implicit assumptions, which should be articulated.

The authors should reflect on the factors that influence the performance of the approach. For example, a facial recognition algorithm may perform poorly when image resolution is low or images are taken in low lighting. Or a speech-to-text system might not be used reliably to provide closed captions for online lectures because it fails to handle technical jargon.

The authors should discuss the computational efficiency of the proposed algorithms and how they scale with dataset size.

If applicable, the authors should discuss possible limitations of their approach to address problems of privacy and fairness.

While the authors might fear that complete honesty about limitations might be used by reviewers as grounds for rejection, a worse outcome might be that reviewers discover limitations that aren't acknowledged in the paper. The authors should use their best judgment and recognize that individual actions in favor of transparency play an important role in developing norms that preserve the integrity of the community. Reviewers will be specifically instructed to not penalize honesty concerning limitations.

3. Theory Assumptions and Proofs

Question: For each theoretical result, does the paper provide the full set of assumptions and a complete (and correct) proof?

Answer: [Yes]

Justification: The theory assumptions are included in Section 4.

Guidelines:

The answer NA means that the paper does not include theoretical results.

All the theorems, formulas, and proofs in the paper should be numbered and crossreferenced.

All assumptions should be clearly stated or referenced in the statement of any theorems.

The proofs can either appear in the main paper or the supplemental material, but if they appear in the supplemental material, the authors are encouraged to provide a short proof sketch to provide intuition.

Inversely, any informal proof provided in the core of the paper should be complemented by formal proofs provided in appendix or supplemental material.

Theorems and Lemmas that the proof relies upon should be properly referenced.

4. Experimental Result Reproducibility

Question: Does the paper fully disclose all the information needed to reproduce the main experimental results of the paper to the extent that it affects the main claims and/or conclusions of the paper (regardless of whether the code and data are provided or not)?

Answer: [Yes]

Justification: We include the detailed experimental settings in Appendix B.

Guidelines:

The answer NA means that the paper does not include experiments.

If the paper includes experiments, a No answer to this question will not be perceived well by the reviewers: Making the paper reproducible is important, regardless of whether the code and data are provided or not.

If the contribution is a dataset and/or model, the authors should describe the steps taken to make their results reproducible or verifiable.

Depending on the contribution, reproducibility can be accomplished in various ways. For example, if the contribution is a novel architecture, describing the architecture fully might suffice, or if the contribution is a specific model and empirical evaluation, it may be necessary to either make it possible for others to replicate the model with the same dataset, or provide access to the model. In general. releasing code and data is often one good way to accomplish this, but reproducibility can also be provided via detailed instructions for how to replicate the results, access to a hosted model (e.g., in the case of a large language model), releasing of a model checkpoint, or other means that are appropriate to the research performed.

While NeurIPS does not require releasing code, the conference does require all submissions to provide some reasonable avenue for reproducibility, which may depend on the nature of the contribution. For example

(a) If the contribution is primarily a new algorithm, the paper should make it clear how to reproduce that algorithm.

(b) If the contribution is primarily a new model architecture, the paper should describe the architecture clearly and fully.

(c) If the contribution is a new model (e.g., a large language model), then there should either be a way to access this model for reproducing the results or a way to reproduce the model (e.g., with an open-source dataset or instructions for how to construct the dataset).

(d) We recognize that reproducibility may be tricky in some cases, in which case authors are welcome to describe the particular way they provide for reproducibility. In the case of closed-source models, it may be that access to the model is limited in some way (e.g., to registered users), but it should be possible for other researchers to have some path to reproducing or verifying the results.

5. Open access to data and code

Question: Does the paper provide open access to the data and code, with sufficient instructions to faithfully reproduce the main experimental results, as described in supplemental material?

Answer: [Yes]

Justification: Code is available at the anonymous link: https://anonymous.4open. science/r/ACON .

Guidelines:

The answer NA means that paper does not include experiments requiring code.

Please see the NeurIPS code and data submission guidelines ( https://nips.cc/ public/guides/CodeSubmissionPolicy ) for more details.

While we encourage the release of code and data, we understand that this might not be possible, so 'No' is an acceptable answer. Papers cannot be rejected simply for not including code, unless this is central to the contribution (e.g., for a new open-source benchmark).

The instructions should contain the exact command and environment needed to run to reproduce the results. See the NeurIPS code and data submission guidelines ( https: //nips.cc/public/guides/CodeSubmissionPolicy ) for more details.

The authors should provide instructions on data access and preparation, including how to access the raw data, preprocessed data, intermediate data, and generated data, etc.

The authors should provide scripts to reproduce all experimental results for the new proposed method and baselines. If only a subset of experiments are reproducible, they should state which ones are omitted from the script and why.

At submission time, to preserve anonymity, the authors should release anonymized versions (if applicable).

Providing as much information as possible in supplemental material (appended to the paper) is recommended, but including URLs to data and code is permitted.

6. Experimental Setting/Details

Question: Does the paper specify all the training and test details (e.g., data splits, hyperparameters, how they were chosen, type of optimizer, etc.) necessary to understand the results?

Answer: [Yes]

Justification: We include the detailed experimental settings in Appendix B.

Guidelines:

The answer NA means that the paper does not include experiments.

The experimental setting should be presented in the core of the paper to a level of detail that is necessary to appreciate the results and make sense of them.

The full details can be provided either with the code, in appendix, or as supplemental material.

7. Experiment Statistical Significance

Question: Does the paper report error bars suitably and correctly defined or other appropriate information about the statistical significance of the experiments?

Answer: [Yes]

Justification: The results are included in Appendix F.

Guidelines:

The answer NA means that the paper does not include experiments.

The authors should answer "Yes" if the results are accompanied by error bars, confidence intervals, or statistical significance tests, at least for the experiments that support the main claims of the paper.

The factors of variability that the error bars are capturing should be clearly stated (for example, train/test split, initialization, random drawing of some parameter, or overall run with given experimental conditions).

The method for calculating the error bars should be explained (closed form formula, call to a library function, bootstrap, etc.)

The assumptions made should be given (e.g., Normally distributed errors).

It should be clear whether the error bar is the standard deviation or the standard error of the mean.

It is OK to report 1-sigma error bars, but one should state it. The authors should preferably report a 2-sigma error bar than state that they have a 96% CI, if the hypothesis of Normality of errors is not verified.

For asymmetric distributions, the authors should be careful not to show in tables or figures symmetric error bars that would yield results that are out of range (e.g. negative error rates).

If error bars are reported in tables or plots, The authors should explain in the text how they were calculated and reference the corresponding figures or tables in the text.

8. Experiments Compute Resources

Question: For each experiment, does the paper provide sufficient information on the computer resources (type of compute workers, memory, time of execution) needed to reproduce the experiments?

Answer: [Yes]

Justification: All the experiments in this paper are conducted on a single NVIDIA GeForce RTX 4090 with 24GiB of memory.

Guidelines:

The answer NA means that the paper does not include experiments.

The paper should indicate the type of compute workers CPU or GPU, internal cluster, or cloud provider, including relevant memory and storage.

The paper should provide the amount of compute required for each of the individual experimental runs as well as estimate the total compute.

The paper should disclose whether the full research project required more compute than the experiments reported in the paper (e.g., preliminary or failed experiments that didn't make it into the paper).

9. Code Of Ethics

Question: Does the research conducted in the paper conform, in every respect, with the NeurIPS Code of Ethics https://neurips.cc/public/EthicsGuidelines ?

Answer: [Yes]

Justification: In every respect in the paper, we follow the NeurIPS Code of Ethics.

Guidelines:

The answer NA means that the authors have not reviewed the NeurIPS Code of Ethics.

If the authors answer No, they should explain the special circumstances that require a deviation from the Code of Ethics.

The authors should make sure to preserve anonymity (e.g., if there is a special consideration due to laws or regulations in their jurisdiction).

10. Broader Impacts

Question: Does the paper discuss both potential positive societal impacts and negative societal impacts of the work performed?

Answer: [Yes]

Justification: Broader impacts is included in Appendix E.

Guidelines:

The answer NA means that there is no societal impact of the work performed.

If the authors answer NA or No, they should explain why their work has no societal impact or why the paper does not address societal impact.

Examples of negative societal impacts include potential malicious or unintended uses (e.g., disinformation, generating fake profiles, surveillance), fairness considerations (e.g., deployment of technologies that could make decisions that unfairly impact specific groups), privacy considerations, and security considerations.

The conference expects that many papers will be foundational research and not tied to particular applications, let alone deployments. However, if there is a direct path to any negative applications, the authors should point it out. For example, it is legitimate to point out that an improvement in the quality of generative models could be used to generate deepfakes for disinformation. On the other hand, it is not needed to point out that a generic algorithm for optimizing neural networks could enable people to train models that generate Deepfakes faster.

The authors should consider possible harms that could arise when the technology is being used as intended and functioning correctly, harms that could arise when the technology is being used as intended but gives incorrect results, and harms following from (intentional or unintentional) misuse of the technology.

If there are negative societal impacts, the authors could also discuss possible mitigation strategies (e.g., gated release of models, providing defenses in addition to attacks, mechanisms for monitoring misuse, mechanisms to monitor how a system learns from feedback over time, improving the efficiency and accessibility of ML).

11. Safeguards

Question: Does the paper describe safeguards that have been put in place for responsible release of data or models that have a high risk for misuse (e.g., pretrained language models, image generators, or scraped datasets)?

Answer:[NA]

Justification: The paper poses no such risks.

Guidelines:

The answer NA means that the paper poses no such risks.

Released models that have a high risk for misuse or dual-use should be released with necessary safeguards to allow for controlled use of the model, for example by requiring that users adhere to usage guidelines or restrictions to access the model or implementing safety filters.

Datasets that have been scraped from the Internet could pose safety risks. The authors should describe how they avoided releasing unsafe images.

We recognize that providing effective safeguards is challenging, and many papers do not require this, but we encourage authors to take this into account and make a best faith effort.

12. Licenses for existing assets

Question: Are the creators or original owners of assets (e.g., code, data, models), used in the paper, properly credited and are the license and terms of use explicitly mentioned and properly respected?

Answer: [Yes]

Justification: All data, models, and code in the paper respect the license.

Guidelines:

The answer NA means that the paper does not use existing assets.

The authors should cite the original paper that produced the code package or dataset.

The authors should state which version of the asset is used and, if possible, include a URL.

The name of the license (e.g., CC-BY 4.0) should be included for each asset.

For scraped data from a particular source (e.g., website), the copyright and terms of service of that source should be provided.

If assets are released, the license, copyright information, and terms of use in the package should be provided. For popular datasets, paperswithcode.com/datasets has curated licenses for some datasets. Their licensing guide can help determine the license of a dataset.

For existing datasets that are re-packaged, both the original license and the license of the derived asset (if it has changed) should be provided.

If this information is not available online, the authors are encouraged to reach out to the asset's creators.

13. New Assets

Question: Are new assets introduced in the paper well documented and is the documentation provided alongside the assets?

Answer: [NA]

Justification: The paper does not release new assets.

Guidelines:

The answer NA means that the paper does not release new assets.

Researchers should communicate the details of the dataset/code/model as part of their submissions via structured templates. This includes details about training, license, limitations, etc.

The paper should discuss whether and how consent was obtained from people whose asset is used.

At submission time, remember to anonymize your assets (if applicable). You can either create an anonymized URL or include an anonymized zip file.

14. Crowdsourcing and Research with Human Subjects

Question: For crowdsourcing experiments and research with human subjects, does the paper include the full text of instructions given to participants and screenshots, if applicable, as well as details about compensation (if any)?

Answer: [NA]

Justification: The paper does not involve crowdsourcing nor research with human subjects.

Guidelines:

The answer NA means that the paper does not involve crowdsourcing nor research with human subjects.

Including this information in the supplemental material is fine, but if the main contribution of the paper involves human subjects, then as much detail as possible should be included in the main paper.

According to the NeurIPS Code of Ethics, workers involved in data collection, curation, or other labor should be paid at least the minimum wage in the country of the data collector.

15. Institutional Review Board (IRB) Approvals or Equivalent for Research with Human Subjects

Question: Does the paper describe potential risks incurred by study participants, whether such risks were disclosed to the subjects, and whether Institutional Review Board (IRB) approvals (or an equivalent approval/review based on the requirements of your country or institution) were obtained?

Answer: [NA]

Justification: The paper does not involve crowdsourcing nor research with human subjects.

Guidelines:

The answer NA means that the paper does not involve crowdsourcing nor research with human subjects.

Depending on the country in which research is conducted, IRB approval (or equivalent) may be required for any human subjects research. If you obtained IRB approval, you should clearly state this in the paper.

We recognize that the procedures for this may vary significantly between institutions and locations, and we expect authors to adhere to the NeurIPS Code of Ethics and the guidelines for their institution.

For initial submissions, do not include any information that would break anonymity (if applicable), such as the institution conducting the review.

Peer reviews:
{"IS_META_REVIEW": false, "comments": "SUMMARY:\nThe paper introduces Adversarial CO-learning Networks (ACON) to improve unsupervised domain adaptation (UDA) for time series classification by enhancing the transferability and discriminability of temporal and frequency features. The proposed approach incorporates multi-period frequency feature learning, temporal-frequency domain mutual learning, and domain adversarial learning in temporal-frequency correlation subspaces. Extensive experiments demonstrate ACON's superior performance over existing methods on various time series datasets.\n\nSTRENGTHS:\n- The introduction of Adversarial CO-learning Networks (ACON) that integrates multi-period frequency feature learning, temporal-frequency domain mutual learning, and domain adversarial learning is a novel and promising direction for enhancing unsupervised domain adaptation (UDA) in time series classification.  \n- The paper demonstrates extensive experiments across a wide range of time series datasets and five common applications, providing strong empirical evidence of the proposed method's effectiveness.  \n- The paper effectively highlights the distinct properties of temporal and frequency features, proposing mechanisms to leverage their respective strengths for improved transfer learning.\n\nWEAKNESSES:\n- Methodological Complexity: The proposed ACON framework is highly complex, involving multiple components and phases (multi-period frequency feature learning, temporal-frequency domain mutual learning, and domain adversarial learning). This complexity may hinder reproducibility and practical implementation, especially in real-world applications.\n- Insufficient Scalability Analysis: The paper lacks a detailed discussion on the scalability and computational efficiency of ACON. It remains unclear how the model performs with larger datasets and whether it introduces significant computational challenges.\n- Presentation and Clarity Issues: Some sections of the paper are dense and difficult to follow. Simplifying the language and providing clearer explanations would improve readability and accessibility.\n- Lack of Detailed Comparative Analysis: While the paper includes experiments against various baselines, it falls short in providing a detailed comparative analysis. More in-depth discussion on why ACON outperforms other methods and the specific contributions of its individual components would strengthen the paper.\n\nQUESTIONS:\n1. The preliminary study assumes that low-frequency components are the most discriminative. However, the choice between phase and amplitude for frequency feature extraction can significantly impact results. Why were only the human activity recognition datasets used for this preliminary study, and how might this assumption affect other types of time series data?\n2. The ablation study indicates that the domain loss contributes more significantly to the model's performance than the two KL losses. Could you explain why this is the case, and provide more insights into the individual contributions of each loss component?\n3. The paper proposes domain adversarial learning to align features in both source and target domains. However, this seems to conflict with the novel aspect of different alignment strategies based on domain-specific characteristics. Could you clarify how these two approaches are reconciled in your framework?\n\n~~4. How are classification predictions made during inference? The paper mentions a voting mechanism, but additional details on how the final prediction is derived from the individual components would be helpful.~~  \n\n5. In Section 4.1, how is the value of k (the number of top amplitudes) determined for multi-period frequency feature learning? Is it dataset-specific, or is there a general guideline for selecting this parameter?\n\n~~6. Can you provide more details on what the learned latent variables represent? Do they capture the essential features that define each class, and how can this be validated?~~\n\n(The issues in Questions 4 and 6 were errors that occurred while I was switching between different pages during the review process of multiple articles. I sincerely apologize to the authors for this.)\n\nLIMITATIONS:\nThe authors acknowledge that while ACON enhances transferability and discriminability for time series domain adaptation, it remains unstable when dealing with time series data that exhibit relatively large variances. Addressing this instability is a critical challenge that needs to be tackled in future research.", "TITLE": "Official Review", "RECOMMENDATION": 6, "REVIEWER_CONFIDENCE": 4, "SOUNDNESS_CORRECTNESS": 3, "DATE": "2024-07-09"}

{"IS_META_REVIEW": false, "comments": "SUMMARY:\nThis paper studies the Unsupervised Domain Adaptation (UDA) problem in time series classification. The authors first proposed an insight that temporal features enhance transferability while frequency features enhance discriminability. Based on the insight, the authors designed a model that leverages temporal and frequency features. Other techniques include but not limited to Knowledge Distillation and Domain Adversarial Learning. The evaluations show SOTA performance, and the ablation study indicates that the designed components are helpful.\n\nSTRENGTHS:\n1.\tEmpirical insights into temporal and frequency features of time series data in terms of transferability and discriminability.\n2.\tIt is interesting to see how the authors managed to achieve better transferability and discriminability through knowledge distillation.\n3.\tThe designed temporal-frequency subspace for domain adversarial learning showed notable performance increase.\n\nWEAKNESSES:\n1.\tThis paper is derived from the empirical insight of temporal and frequency features. It would be better if the authors can explain a little bit about why temporal or frequency features excel in different properties. \n2.\tThe preliminary experiment on transferability and discriminability could use more datasets and more analysis to justify the motivation of the paper.\n3.\tSince there are other papers utilizing temporal and frequency features as mentioned in the related work, it would be better if the author can illustrate the differences and the advantages of the current design compared to other works.\n4.\tIt would be helpful to improve clarity if the author can explain the “index” in figure 1.\n5.\tDuring the illustration of the model proposed, the author did not cover the design of the domain discriminator.\n\nQUESTIONS:\nIt’s a great idea to exploit the advantages of both temporal and frequency features using distillation. But I also wonder why a simple fusion of temporal and frequency features is not used and compared. Will the fused features maintain both good transferability and discriminability?\n\nLIMITATIONS:\nYes", "TITLE": "Official Review", "RECOMMENDATION": 6, "REVIEWER_CONFIDENCE": 4, "SOUNDNESS_CORRECTNESS": 3, "DATE": "2024-07-12"}

comments: SUMMARY:
The paper shows that temporal features and frequency features should not be equally treated in model training, the expression of those features are different. Frequency features show strong discriminability and temporal features show strong transferability. Then the author propose the Multi-period frequency feature learning; Temporal-frequency domain mutual learning and Domain adversarial learning in temporal-frequency correlation subspace to leverage the advantages. The proposed results are impressively good.

STRENGTHS:
The proposed differences of frequency feature and temporal feature is interesting. 
The proposed methods are novel.
The results are impressively good.

WEAKNESSES:
The motivation of the proposed methods should be clarified.

1. Why the alignment between the temporal predictions and the frequency predictions can leverage the respective advantages of the temporal domain and frequency domain? There is no guarantee to keep both advantages.
2. Why the Multi-period frequency feature learning can enhancing the discriminability of the frequency domain?
3. Why Domain adversarial learning can let the model learn transferable representations?

QUESTIONS:
See weaknesses.

LIMITATIONS:
The authors have addressed the limitations.
TITLE: Official Review
SOUNDNESS_CORRECTNESS: 3
DATE: 2024-07-13

comments: SUMMARY:
This paper uncovers an empirical insight in time series domain adaptation - frequency features are more discriminative within a specific domain, while temporal features show better transferability across domains. Based on this insight, it develops ACON (Adversarial CO-learning Networks), which achieves clear improvement over baselines.

STRENGTHS:
- Empirical insight: it is great to see such empirical analysis to provide an interesting insight about the properties of frequency/temporal features.
- Technical solution, which leverages the insight to improve accuracy.
- Experiments: it is good to see solid experimental efforts in the paper and appendix.

WEAKNESSES:
- It would be better to explain (or explore) “why” behind the insight? Is it because the distinguished frequency patterns shift across domains dramatically?

- Usually, neural networks can capture some frequency patterns from time series data. Why it avoids most distinguished frequency patterns, but extracts more transferable ones?

QUESTIONS:
See weakness.

LIMITATIONS:
The limitation of stability has been discussed.
TITLE: Official Review
SOUNDNESS_CORRECTNESS: 3
DATE: 2024-07-15