개발/논문 정리

시계열 데이터 Augmentation 방법 정리 - TimeSeries Data Augmentation for Deep Learning: A Survey

용묻이 2022. 7. 9. 15:52

Churn Prediction task를 연구하면서 유저 데이터를 확인해보면, 데이터가 누적되기에 압도적으로 이탈자 데이터가 많다. 이런 Imbalanced Label 조건에서는 데이터 밸런싱을 해줘야 하는데, OverSampling 기법이 주를 이룬다.(UnderSampling은 데이터를 버리는 거라 선호되지 않는다.)

좋은 augmentation 기법이 없나 찾아보던 중에, 적당히 잘 모아둔 서베이 페이퍼 - TimeSeries Data Augmentation for Deep Learning: A Survey - 가 하나 있어서 이 페이퍼를 약간 번역인듯 정리 아닌 정리를 해보려고 한다.

논문의 모든 내용을 담지 않았으니 관심 있으신 분은 원문을 꼭 확인하시길..


Time Series Data Augmentation

Time Series Data Augmentation이 다른 분야와 다른 점

시계열 데이터 증강 기법은 타 major 분야들에 비해 덜 연구되었는데, 다음과 같은 어려움이 있어서이다.

  • 보통의 data augmentation 기법은 시계열 데이터의 내재적인 특성을 활용하지 못한다. 가령 시계열적 의존성(temporal dependency) 등이 해당하는데, 이미지 데이터 등과 다르게 시계열 데이터는 frequency나 time-frequency domain으로 변환이 가능하다. 좋은 data augmentation 기법은 이런 transformed domain에서 잘 적용이 되어야 하는데 이것이 time-series data augmentation을 어렵게 만드는 이유이다. 특히나 multivriate 환경에서 더 어렵다. 따라서 image나 speech에 적용되는 augmentation 기법을 그냥 적용하는 것은 적절한 합성 데이터를 생성하지 않을 것이다.
  • augmentation 기법은 task에 의존적이다. time-series classification에 적용 가능한 augmentation 기법은 time-series anomaly detection에 적용되기 힘들 것이다.

Time-Series Data Augmentation 기법의 분류

그럼 이제 Time Series Data Augmentation 기법들을 나열해보겠다.

Basic Approaches

Time Domain

time domain에서 적용할 수 있는 augmentation 기법은 주로 direct transformation, slicing window, window warping, flipping, warping+ensemble, noise injection, label expansion이 있다.

  • Direct Transformation: 말 그대로 원본 데이터에 직접적으로 변형을 가하는 방법이다. 연구자의 임의로 적당하게 데이터를 수정하는 형식이다. 사실 넓은 범위의 방법론인데, 후술할 Noise Injection도 여기에 해당한다.
  • Slicing Window: 우리가 아는 그 Slicing Window와 동일하며, 이미지의 Cropping과 유사하다. 원본 데이터에서 연속적인 윈도우를 생성해 잘라내며, 윈도우의 길이는 임의로 조절한다. Classification Task에서는 하나의 샘플에서 Slicing Window를 통해 복수의 샘플을 생성한다. window마다의 labeling은 연구 목적에 따라 원본 데이터와 같을 수도 있고, window마다 다를 수도 있다.
  • Window Warping: DTW(Dynamic Time Warping)과 유사하다. 원본 데이터에서 임의의 구간을 설정하고, 해당 구간을 압축(down sample)하거나 확장(up sample)한다. 가령 N 길이 구간의 데이터를 평균내서 1 길이의 단일 데이터로 만든 뒤 그 자리에 삽입을 하는 것이 warping에 해당한다. window warping은 데이터 전체 길이에 영향을 주며, 따라서 딥러닝 모델 구조와 함께 고려되어야 한다.(많은 시계열 모델들이 고정 길이 입력 전제한다.)
  • Flipping: 단순히 데이터의 부호(sign)을 바꾸는 것이다. 구체적으로, 시퀀스 데이터 $$x_1,...,x_N$$가 있을 때, $$x_t'=-x_t$$인 시퀀스 $$x_1',...,x_N'$$를 활용하는 것이다. 연구자가 변경할 수 있는 부분이겠지만, anomaly detection 및 classification에서는 label이 변하지 않는 게 보통이다. 단순히 부호를 변경함으로써 모델은 시계열 데이터에 대해 더 잘 이해할 수 있다.(데이터셋에 따라 Flipping의 효과는 크게 다를 수 있다.)
  • Ensemble: Pertubations(섭동)과 앙상블을 활용한 augmentation 기법도 있다. 이는 [Fawaz et al., 2018]에서 소개되었는데, DTW를 적용한 뒤 해당 각 window sample들이 weighted된 ensemble version의 샘플을 활용하는 것이다. 해당 페이퍼에서는 DBA(Barycentic Averaging) 알고리즘을 적용했다.
  • Noise Injection: 작은 크기의 noise나 outlier를 삽입하며, 레이블은 바꾸지 않는 방식이다. Gaussian noise, spike, step-like trend, slope-like trend 등의 노이즈를 삽입한다. spike는 임의의 인덱스를 택해 임의의 값(but bounded by multiples of standard deviation of the original time series)을 대입한다. step-like trend는 left-index부터 right-index까지의 spike 누적합(cumulative summation)이다. slop-like trend의 경우 선형적인 경향성을 원본 데이터에 더하는 것이다. 이러한 방법론들은 주로 [Wen and Keyes, 2019]에 언급돼 있다.
  • Label Expansion: 시계열 이상 탐지의 경우 이상 샘플들은 연속적인 span 안에서 긴 기간동안 표현되는 경우가 많아 시작점과 끝점을 정하기가 애매하다. 따라서 시간적 거리와 feature 값 사이의 거리를 모두 고려했을 때 이미 이상 샘플로 분류된 데이터와 가까운 데이터의 경우 이상 데이터 샘플일 가능성이 매우 높다. label expansion은 이러한 데이터 샘플들에 대해 데이터 값을 변화시키고 레이블도 같이 바꾸는 방법이다. [Gao et al., 2020]가 이런 방법이 시계열 이상 탐지 task에서 성능 향상이 있었음을 밝혔다.

Frequency Domain

현존하는 대부분의 augmentation 기법들은 time domain에 집중되어 있으며, 소수의 연구만이 frequency domain에서의 augmentation을 다루고 있다.

  • APP(Amplitude and Phase Perturbations): [Gao et al., 2020]은 amplitude spectrum과 phase spectrum 양쪽 모두에서의 섭동을 활용하여 CNN 모델과 시계열 이상 탐지 task에 적합한 방법론을 제안했다. 입력 시퀀스 $${x_i}$$가 있을 때 frequency spectrum $$F(w_k)$$은 푸리에 변환을 통해 $$F(w_k)={1\over N}\sum_{t=0}^{N-1}x_te^{-jw_kt}=A(w_k)\exp(j\theta(w_k))$$로 계산되며, 여기서 $$w_k={2\pi k\over N}$$은 각진동수, $$A(w_k)$$는 amplitude spectrum, $$\theta(w_k)$$는 phase spectrum이다. aplitude spectrum에서의 섭동은 임의로 선택된 부분(segments)의 amplitude 값을 Gaussian Noise로 대체하는 것이다. 이 때 노이즈는 원본 데이터의 평균과 표준 편차를 고려한 가우시안 분포에서 샘플링한다. phase spectrum에서는 평균이 0인 분포에서 노이즈를 샘플링하는 것만 빼면 동일하다. 이러한 APP 방법이 앞서 언급된 time domain에서의 augmentation 기법과 같이 쓰일 때 시계열 이상탐지에서 큰 성능 향상을 보였다.
  • AAFT(Amplitude Adjusted Fourier Transform): [Lee et al., 2019]에서 제안된 이 방법은 재활용되는 시계열 데이터의 분류 성능을 향상시키기 위해 대체 데이터(surrogate data)를 활용한다. 두 가지 conventional한 접근이 있는데, AAFT와 IAAFT(iterated AAFT)이다. main idea는 푸리에 변환에서 random phase shuffle을 적용한 뒤 역 푸리에 변환에서 time-series의 rank-ordering을 적용하는 것이다.
    뭔소린지 모르겠다 페이퍼를 읽어봐야겠다...
    AAFT와 IAAFT로 생성된 데이터는 augmentation 후에도 temporal correlation와 power spectra, aplitude distribution을 원본 데이터와 거의 유사하게 보존한다. classification에서 성능 향상이 있었음이 해당 연구에서 밝혀졌다.

Time-Frequency Domain

time-frequency 분석은 time-series 분야에서 흔히 하는 분석인데, 딥러닝 모델의 입력으로 삼기에 적절하다. 하지만 augmentation 영역에서는 frequency-domain과 마찬가지로 소수의 연구만이 이를 다루고 있다.

  • STFT(Short Fourier Transform): [Steven Eyobu and Han, 2018]에서 제안된 STFT는 센서의 시계열 데이터에 대해 time-frequency feature를 생성하고 human activity classfication task를 진행했다. 두 가지 augmentation 기법이 적용되었는데, 하나는 feature set 끝에 추가된(appended) generated features를 미리 정의된 기준으로 local averaging하는 것이다. 도 다른 하나는 데이터셋에 variation을 주기 위해 feature vector을 랜덤하게 shuffle하는 것이다. speech 관련 분야에서는 이와 유사하게 SpecAugment라는 게 있는데, Mel-Frequency(STFT에 기반한 time-frequency 표현) 영역에서 warping features, masking blocks of frequency channels, masking blocks of time steps 등을 적용했다. SpecAugment는 신경망을 통한 음성 인식 task에서 SOTA를 달성할 정도로 큰 성능 향상을 보였다.

여기까지 Time-Series Data Augmentation의 Basic Approaches를 알아보았다. 이에 관해서 아래 그림을 참조하면 더 큰 도움이 될 것이다.

Advanced Data Augmentation Methods

Decomposition-based Methods

decomposition-based time series augmentation 기법들은 예측 및 이상 탐지 등의 분야에서 자주 차용되며 준수한 성능을 보이고 있다.

  • STL(Seasonal and Trend decomposition using Loess): 흔한 decomposition method 중 하나로(
    무려 1990년에 제안됨
    ), Robust-STL과 같은 변형이 있다. STL은 시퀀스 $${x_t}$$가 있을 때 이를 $$x_t=\tau_t+s_t+r_t$$로 분해한다. $$\tau$$는 경향성에 대한 신호(trend signal), $$s$$는 계절성/주기성에 대한 신호(seasonal/periodic signal), $$r$$은 나머지 신호(remainder signal)이다.
  • [Kegel et al., 2018]: 해당 연구에서는 STL 이후 후처리를 추가하는 방법론이 제안되었다. STL 이후 데이터는 결정적 부분과 확률적 부분(deterministic component and stochastic component)으로 합쳐진다. deterministic part는 base, trend, seasonality 데이터의 가중치를 조절하여 만들어지며(아마 weighted sum), stochastic part는 auto-regressive 모델과 같이 잔차(residual)에 기반한 확률 모델을 만들고 이로부터 데이터를 샘플링해 생성한다. 이들을 합한 시계열 데이터는 다시 feature-based distance를 계산하여 원본 데이터와 특정 거리 안에 있는지 여부를 확인하여 검증된다.
  • Bootstrapping on the STL: [Bergmeir et al., 2016]은 STL decomposition의 residual 데이터에 부트스트래핑을 적용하여 augmentation을 구현했다. 경향성과 주기성을 합해 새로운 시퀀스를 생성하고 잔차를 합하는 등의 방식이다. 예측 모델(forecasting)들을 앙상블하여 상기한 augmented data에 적용하니 꾸준한 성능 향상을 보였다. 또, 이런 유사한 augmentation 기법이 anomaly detection task에서도 큰 성능 향상을 가져온다는 게 최근 연구에서 밝혀졌다.

Statistical Generative Models

SGM 기반의 augmentation 방법론들은 대부분 확률 모델을 통해 시계열 데이터의 dynamics를 모델링하는 게 일반적이다.

  • [Cao et al., 2014]: mixture of Gaussian trees를 활용, 멀티모달 환경에서의 minor class를 oversampling하여 imbalanced classification 문제를 해결한 연구다. 이는 기존의 오버샘플링 기법들과 비교하여 time series correlations between neighboring points를 고려했다는 점에서 발전된 방법론이다. 어떤 연구에서는 LGT(Local and Global Trend)나 MAR(Mixture AutoRegressive)와 같은 모델을 사용하기도 했다.

이러한 SGM들은 시계열 데이터에 대한 조건부 분포를 나타낸다고 할 수 있는데, 특정 지점에서의 값이 시계열상 그 이전 데이터에 종속적임을 전제하기 때문이다. 최초의 값에 섭동이 발생하면 새로 생성되는 데이터는 조건부 분포에서 샘플링된다.

Learning-based Methods

시계열 데이터 augmentation 방법론들은 다양한 샘플 데이터를 생성하기도 하지만, 실제 데이터의 특성을 모방(mimicking)할 수도 있어야 한다. learning-based methods가 그러하다.

이 방법론에는 크게 Embedding Space, Deep Generative Models, Automated Data Augmentation이 있는데, 본문에서는 Embedding Space에 대해서만 다루겠다.

Embedding Space
  • 단순 변환을 통한 임베딩: [DeVries and Taylor, 2017]에서는 raw inputs 대신 선형 변환과 같은 간단한 transform을 적용하면 더욱 그럴듯한(plausible) 데이터를 생성한다고 주장하는데, feature space에서 unfold되는 매니폴드 때문이다. 여기서 임베딩 모델은 정해져있지 않고 task와 데이터 유형에 따라 달라진다. 위 연구의 경우 시퀀스 오토인코더가 사용되었다. 임베딩 이후에는 보간(interpolation/extrapolation)을 적용하여 새로운 샘플을 생성한다. k-nearest 샘플들을 label이 곧 생성된 샘플의 레이블이 된다. 구체적으로, k개의 서로 같은 label을 가지는 그룹을 식별한 뒤 해당 샘플들로부터 데이터를 생성한다. 이러한 과정은 특히나 classfication task에서 유용하다고 밝혀졌다.
  • MODALS(Modality-agnostic Automated Data Augmentation in the Latent Space):
    이름 참 길다.. 그죠?
    MODALS는 임베딩 공간의 이름으로, 최근에 [Cheung and Yeung, 2021]에서 제안되었다. 오토인코더가 임베딩 공간을 학습하여 새로운 합성 데이터를 생성하도록 하지 않고, 다양한 구성의 잠재 공간 증강과 함께 분류 모델을 훈련한다. (the MODALS method train a classification model jointly with different compositions of latent space augmentations)
    이 부분 공부해서 추가하도록 하겠습니다...
    이는 time series classification task에서 좋은 성능을 보였다.

여기까지 해당 Survey Paper에서 정리한 Time Series Augmentation 기법들이다. 이후에는 정량적 비교 실험과 해당 분야의 Future Opportunities 등을 논했는데, 실험 자체는 그렇게 섬세하거나 디테일하다는 생각이 들지 못했다. Future Opportunities도 본문의 핵심 내용은 아니라 생각하여 생략하였으니, 이러한 내용에 관심있으신 분들은 원문을 확인하시길 바란다.