인공지능(Audio Task)/Paper Review

Time Series Data Augmentation for Deep Learning: A Survey

growbigger 2023. 3. 4. 12:48

 

본 논문은 시계열 데이터 분야에 적용할 수 있는 데이터 증강 기법들에 대한 전반적인 조사를 수행한 논문입니다. 이미지와 다르게 각도를 조정하면서 데이터 증강을 할 수는 없지만 시계열 데이터만의 특수한 특성을 이용하여 데이터 증강을 할 수 있습니다. 거기에 GAN모델을 활용한 고차원적인 증강을 시도해 볼 수도 있습니다. Audio 자체가 time series data라서 audio domain research에  참고하거나 cross application을 기대해볼 수 도 있겠습니다. 

 

1. Introduction

심층학습이 성공적으로 작동하려면 많은 양의 데이터가 필요합니다. 그렇지 않으면 데이터에 과적합이 될 수 있습니다. 그런데 시계열 데이터는 라벨링 된 데이터가 충분하지 않습니다. 따라서 증강기법이 중요합니다. 다만 시계열 데이터에 증강 기법들을 적용할 때 몇가지 직면한 문제가 있습니다.

 

  1. 현재는 시계열 데이터의 내재된 속성들이 완전히 이용되지 못한채 데이터 증강이 수행되는 점
  2. 데이터 증강은 각 과제의 특성에 의존적이라는 점

 

위의 두가지는 저자들이 주목하는 직면한 문제들입니다. 첫번째 문제는 전반적으로 시간에 의존적인 데이터들이 복잡성이 높은 것입니다. 주파수 domain으로 변환될 수도 있고 시간-주파수 도매인으로 변환될 수도 있어서 이렇게 변환된 데이터에 증강 기법이 적용될 수 있습니다. 그런데 시계열 데이터의 값에 영향을 주는 변수(요인)이 늘면 복잡성이 더 늘어나버릴 것입니다. 이미지라면 그냥 이미지 자체를 뒤집고 또는 잡음 추가하고 등등 직관적인 방식들이 많은데 뒤에서도 나오겠지만 다른 두개의 도매인으로 분리한 후 하나의 도매인만 섞는다거나 등등의 다소 복잡한 방식들이 있습니다. 두번째 도전 과제는 데이터 증강이 task에 의존적이라는 건데, 이 의미는 시계열이라고 동일한 증강 기법들이 공통적으로 효과가 있지 않을 수 있다는 것입니다. 본 논문에서는 이상치 탐지, 분류, 예측의 시계열 데이터에서 수행되는 세부 분야에 대해 효과적인 데이터 증강 기법들을 살펴봅니다. 그런데 한 증강 기법이 유효한 분야가 세개 중에 세개가 다 해당되는 경우가 많지는 않습니다. specAugment라고 speech분야에서 굉장히 유효한 성능향상을 가지는 증강기법이 있는데 역시 spectrogram을 입력으로 자주 쓰는 speech분야에서 유효한 기법이지 범용적이라고 하기는 힘듭니다.

 

저자들은 아래와 같이 시계열 데이터에 대한 데이터 증강 기법을 분류하였습니다.

2. Basic data Augmentation Methods

2.1 Time Domain

아래의 시계열데이터에 각각의 데이터 증강 기법을 적용합니다.

[Window Cropping or Window slicing]:

window cropping은 시계열의 일부를 잘라내는 기법입니다.분류 과제에서는 잘라낸 데이터와 원본 데이터의 라벨은 동일합니다. 새소리가 녹음된 파일의 중간부터 끝까지를 하나의 별도의 데이터로 만들때 라벨은 동일하게 새소리인 것입니다.

Random erasing같은 주제를 다룬논문을 참고할 수 있겠습니다. 

 

[Window warping]:

특정한 시간 범위를 늘리거나 줄이는 기법입니다. 10초길이의 time series data라면 2~3초는 늘리고 나머지는 변동이 없지만 2~3초의 시간길이가 변하면서 전체 시간길이가 늘거나 줄기 때문에 crop기법을 같이 적용할 수 있습니다.

 

[Flipping]:

부호를 뒤집는 기법입니다. 이상치 탐지나 분류 과제에서 라벨은 그대로입니다.

 

[Noise Injection]:

적은 양의 잡음이나 이상치를 데이터에 주입하는 방식입니다. 잡음을 섞을 때 라벨이 변하지는 않습니다. 가우시안 노이즈, spike, slope-like trend, slope-like trend등 다양한 방식으로 잡음을 데이터에 섞을 수 있습니다.

아래 사진은 slope-like trend를 나타냅니다. 선형 trend를 추가하는 방식입니다.

 

[label expansion]

이싱치 탐지에서 특수하게 사용할 수 있는 데이터 증강방식입니다. 이상치 지점의 근처 값이나 비슷한 시간에 대해서 이 부분들도 이상치로 취급하는 방식입니다. 시계열 데이터의 경우 일반적으로 연속적인 값 분포를 가지게 되므로 가능한 방법인 것으로 보입니다.

 

2.2 Frequency Domain

[APP: amplitude and phse perturbations]

푸리에 변환을 통해 주파수 스팩트럼을 구하면 진폭 스펙트럼과 위상 스펙트럼을 성분으로 같는 스펙트럼을 구할 수 있습니다. APP방식은 이 진폭과 위상(phase) 스펙트럼에 각각 변형을 가하는 방식입니다. 진폭값은 일부분을 가우시안 노이즈로 대체하고, 위상 값은 extra zero-mean Gaussian noise가 더해지는 변형이 일어납니다.

 

[AAFT & IAAFT]

amplitude adjusted Fourier transform(AAFT)와 iterated AAFT(IAAFT)가 대체 데이터로 사용되어 rehabilitaitve time series의 분류 성능 향상이 일어날 수 있습니다.

푸리에 변환 후 위상 스펙트럼의 위상은 무작위로 섞고 역푸리에 변환을 한 후 시기열에 대해 순위 정렬을 하는 방식으로 대용 데이터를 생성합니다. 이렇게 생성된 데이터는 시간에 대한 상관관계나 power spectra, 진폭 분포등을 원 데이터에 근사하게 갖습니다.

 

2.3 Time-Frequency Domain

[STFT]:

STFT(short Fourier transform)를 이용하여 feature을 생성하고 여기에 데이터 증강을 시도하는 방법도 있습니다. local averaging방법이나 feature vector을 섞는 방식을 이용해볼 수 있습니다. local averaging은 feature 집합 끝에 추가된 생성 feature로 정의된 기준에 기반한 방법이라고 합니다. feature vector은 데이터에 변동을 주기 위해 feature vector을 섞는 방식입니다. 자세한 내용은 "Feature representation and data augmentation for human activity classification based on wearable IMU sensor data using a deep LSTM neural network"를 참고해야 할 것 같습니다.

추가로 이렇게 시간-주파수 도매인을 활용하는 방식은 specAugmentation이라는 음성 인식 분야의 데이터 증강 기법에 사용되는 방식입니다. time warping, time masking, frequency masking 이렇게 세가지가 있습니다. 여기서 주로 뒤에 두개 masking기법들이 성능향상에 결정적인 기능을 가져옵니다. LAS모델에 이 증강기법을 사용하여 음성인식 결과를 비교하는데 SOTA의 결과가 나왔다고 합니다. LAS모델이 나올떄도 20배의 데이터 증강을 통해서 나름 좋은 결과가 나왔는데 specAugmenation까지 적용하니 최고의 결과가 나왔습니다.

 

아래 링크는 specAugment를 하기 위해 음성 신호를 로그 멜 스택트로그램으로 변환하는 코드입니다.

Create LogMelSpectrogram | Kaggle

 

3. Advanced Data Augmentation Methods

3.1 Decomposition-based MEthods

예측이나 이상치탐지에서 많이 사용되는 방법입니다. STL이나 robust STL같은 방식이 있고 일반적으로 시계열 데이터를 trend signal, seasonal/periodic signal, remainer signal로 분해하는 방식입니다. 일부 연구에서는 이 decomposition 방식을 통해 새로운 시계열을 만드는 방법도 수행되었습니다. 한 연구에서는 통계 모델에 의해 생성된 확률 요소와 base, trend, seasonality에 가중치를 적용하여 구축한 결정론적인 요소를 재결합하여 새로운 시계열을 만들어 내었습니다. 그러니까 분해하고 약간의 변동을 주어 다시 합한 데이터는 전반적으로 중요한 정보들은 보존하되, 기존의 데이터와는 조금 다른 데이터가 되어 데이터 증강의 효과가 나타나도록 하는 방식입니다.

다른 연구에서는 robust STL로 분해된 결과물들에 시간과 주파수 도매인에 대해 각각 증강을 하면 이상치 탐지에 성능 향상을 가져오는 것을 보여주는 연구도 있습니다.

 

3.2 Statistical Generative Models

통계 모델은 시계열 데이터가 이전 지점의 데이터에 의존적이라고 가정합니다. 전반적으로 시계열 데이터는 연속적인 분포를 갖기 때문에(연속적인 인데이터에서 추출한 데이터이기 떄문에) 이러한 모델들은 이러한 시계열 데이터의 conditional distribution을 설명해줄 수 있습니다. 시간 상관관계를 고려하는 등의 방법을 통해 이전 데이터에 영향을 받는 점을 이용한다고 보면 될 것 같습니다.

 

[parsimonious statistical model]

multi modal에서 minority class인 시계열 데이터(데이터가 적은 클래스)에 대해 mixture of Gaussian treess모델을 사용합니다. 인접지점간 시간 상관관계를 사용하지 않는 오버샘플링 기법에 비해 클래스간 데이터가 불균형한 문제를 완화하는데 효과적입니다.

 

[LGT]

LGT(local and Global Trend) 통계 알고리즘으로 계산한 parameter과 forecast paths의 샘플들을 이용하는 방식입니다.

그 외에 MAR(mixture autoregressive)모델을 사용하여 시계열 데이터의 다양성 및 coverage같은 정보를 를파악하는 모델도 있다고 합니다.

 

3.3 Learning-based Methods

실제 데이터를 모방하는 데이터 증강 기법들입니다. 생성 모델을 이용하거나 임베딩 공간에서 데이터 증강을 수행하는 방법들이 있습니다.

 

[Embedding Space]

sequence autoencoder같은 모델을 통해 인코딩이 된 입력에 대한 변형이 보다 더 그럴듯한 합성 데이터를 생성할 수 있다고 합니다. 특징 공간에 대해 manifold가 전개되기 때문이라고 합니다. raw data의 경우 처리가 전혀 되지 않았기 때문에 값에 영향을 주는 변수가 많은데 representation model을 통과한 경우 값은 근사되면서 값에 영향을 주는 변수들이 줄어 특징 벡터의 차원이 낮아집니다. 실제로 모델이 데이터를 분류하기도 쉬워지게 되는데 이러한 이유 떄문에 데이터 증강을 할 때도 비교적 분석이 쉬워진 상태가 되어 합성 데이터가 더 그럴듯하게 나오는 것이 아닌가 싶습니다.

 

아래는 핸즈온 머신러닝 2판의 매니폴드 이미지입니다. 좌측을 우측의 이미지로 펼치는 것을 나타낸 것입니다.

[Deep Generative Models]

RGAN, RCGAN, TimeGAN등 GAN모델이 주로 DGM방식에서 사용됩니다.

 

[Automated Data Augmentation]

강화학습, meta learning, evolutionary search등의 방식으로 데이터 증강 정책을 자동적으로 찾는 방법입니다. TANDA, MODALS등이 있습니다.

 

728x90