본문 바로가기

Machine Learning/기타

시계열 분류 모델을 위한 딥러닝 아키텍쳐

Deep learning for time series classification: a review

본 페이지는 위 논문을 읽고, 일부분을 정리한 글입니다.

 

시계열 분류 모델에 대한 기본 정의와, 

자주 사용하는 구조인 MLP, CNN, ESN(RNN) 에 대해서 정리를 해 두었습니다

 


 

Time series classification

시계열 데이터는 순서가 있는 실수 값들을 의미합니다.

이 시계열의 길이는 실수 T와 같습니다.

M차원의 다변량 시계열 데이터(MTS, Multivariate Time Series)는 M개의 단변량 시계열 데이터로 이루어져 있습니다.

각 X^i의 값은 실수 T개로 이루어져 있습니다.

데이터셋 D는 (X_i, Y_i)의 페어의 집합으로 이루어져 있습니다. 

X_i는 단별량 혹은 다변량 시계열이며, Y_i는 이에 대응되는 원핫 라벨 벡터입니다.

K클래스들을 가지고 있는 데이터셋의 경우, 원핫 라벨 벡터 Y_i는 K개의 길이를 가지고 있으며, X_i가 j클래스에 속한 경우 j번째 위치만 1이고 그 외에는 0으로 이루어져 있습니다.

TSC의 작업은 가능한 입력 공간에서 클래스 변수 값(레이블)에 대한 확률 분포로 매핑하기 위해 데이터 세트 D에 대한 분류기를 훈련하는 것으로 구성됩니다.

 

 

Deep learning for time series classification

TSC를 위한 일반적인 딥러닝 구조는 다음과 같습니다.

이러한 네트워크는 데이터의 representation을 계층적으로 학습하도록 설계되었습니다. 또 이런 네트워크는 parametric function인 L의 조합입니다. 신경망을 가지고 있는 하나의 레이어 l(i)는 이전 레이어 l(i-1)의 출력을 입력으로 받아 시그모이드와 같은 비선형함수를 적용하여 자체적인 출력으로 만들어 줍니다.

각 레이어의 계층적인 구조를 다음과 같이 표현할 수 있습니다.

앞으로 이를 단순화해서 f(x)로 표현을 할 것입니다!

이후의 학습과정은 일반적인 모델과 같아서 생략합니다!

 

많은 타입의 DNN모델이 있지만, 우리는 특히 3가지의 주요한 DNN구조를 볼 것입니다.

이 세 가지 구조는 TSC를 위한 end-to-end 딥러닝 모델로 널리 사용되고 있습니다.

 

Multi Layer Perceptrons

MLP는 가장 단순하고 전통적인 딥러닝 모델 아키텍처입니다.

Fully-connected(FC)로도 잘 알려져 있습니다.

입력 시계열 데이터 X에 대해 일반적인 비선형 형태는 다음과 같습니다.

ω는 X와 같은 길이를 같은 가중치의 집합이며, b는 바이어스, A_i는 레이어 l_i에 있는 활성화 함수입니다.

신경망의 수는 하이퍼 파라미터입니다.

 

MLP가 시계열 데이터를 방해하는 것 중 하나는 공간 불변성을 표현 하지 않는 것입니다.

각 상태의 시간은 해당 시간의 가중치를 가지고 있으며, 순간적인 정보를 잃게 됩니다. 이는 시계열의 각 데이터가 독립적인 것으로 취급됩니다

 

TSC에서는 마지막 레이어를 각 클래스일 확률을 출력하도록 합니다. 대부분 FC레이어의 마지막 활성화 함수로 클래스의 개수의 확률을 표현해 주는 softmax를 사용합니다. 이는 확률의 합을 1로 맞춰 줍니다, 이 함수는 미분 가능하며, 이는 다항식에 대한 로지스틱 회귀의 적용입니다. 소프트맥스 함수는 다음과 같이 정의됩니다

Y^_j는 X의 클래스 Y가 K개의 클래스 중 j번째와 같을 확률을 의미합니다.

각 클래스 j의 가중치 w_j의 집합과 바이어스 bj는 이전 레이어의 활성화 함수와 연결됩니다.

 

MLP 함수들의 가중치는 목적함수를 최소화해 주는 최적화 알고리즘을 사용해 학습됩니다.

학습을 위해서 미분 가능한 목적함수를 사용합니다. 분류 모델을 위해 DNN에서 가장 많이 사용하는 로스 함수는 cross entropy입니다

전체 데이터셋 D의 평균 로스는 다음과 같이 정의됩니다.

Ω는 웨이트(w)의 집합입니다.

 

로스 함수는 Ω의 웨이트에 gradient descent를 사용해 목적함수를 최소화합니다.

α 는 최적화 알고리즘의 learning rate입니다.

Convolutional Neural Networks

CNN은 이미지 인식뿐 아니라, 자연어 처리와 같은 다른 도메인에서도 잘 사용되고 있습니다.

convolution은 시계열에 필터를 적용하고 슬라이싱 하는 것으로 볼 수 있습니다.

이미지와 다르게 필터는 오직 일차원(시간)으로 존재합니다. (다변량 시계열인 경우 일차원이 아닐 수 있습니다)

그 필터는 시계열 데이터의 비선형 변환으로 볼 수 있습니다.

예를 들어서 같은 가중치를 갖는 필터는 평균값을 나타냅니다

 

시간 t를 기준으로 convolution을 하는 일반적인 형태는 다음과 같습니다.

데이터 X는 길이가 T인 시계열, ω는 길이가 l인 필터, b는 바이어스, ReLU와 같은 비선형 함수 f입니다.

 

시계열 데이터의 컨볼루션 결과는 또 다른 시계열 이므로, 여러 번의 convolution을 통해 해당 횟수만큼의 다변량 시계열 데이터를 생성할 수 있습니다.

MLP와는 다르게 필터링을 모든 시간에 걸쳐서 사용할 수 있습니다. 이는 weight sharing이라고 하는 시계열 데이터 전체에 걸쳐 필터를 학습하게 해 주는 매우 강력한 특성입니다.

일반적으로 필터가 잘 학습되려면 convolution후에 분류기가 와야 하며, 지역적 혹은 전역적 풀링 작업이 같이 있어야 합니다.

 

지역적 풀링은 평균 혹은 최대 풀링을 사용해서 길이를 줄여줍니다. 전역적 풀링의 경우 모든 시계열 값이 집계되어 하나의 값이 됩니다. 전역적 풀링을 사용하게 되는 경우 오버 피팅을 줄여 줄 수 있습니다.

풀링 레이어 외에도, 몇몇 딥러닝 아키택쳐는 빠른 수렴을 위해 정규화 레이어를 포함하기도 합니다., 시계열 데이터에서 배치 정규화는 각 채널에 걸쳐서 사용되기 때문에 하나의 미니 배치 내 내부 공변량 이동을 예방합니다. 다른 타입의 정규화는 각 각 배치 바이어스 대신 인스턴스를 정규화해서 평균과 표준편차를 학습하도록 해주었습니다. 이는 인스턴스 정규화라고 합니다.

마지막 판별 레이어는 컨볼루젼 결과인 시계열 데이터의 representation을 받아 각 클래스에 속할 확률을 줍니다. MLP와 유사하게 소프트맥스를 많이 사용합니다. 몇몇의 리서치에서는 비선형 FC레이어를 마지막 소프트맥스 레이어 전에 추가하기도 합니다.

학습 과정은 MLP와 동일하게 역전파를 통해 수행됩니다.

 

Echo State Networks

다른 유명한 딥러닝 구조는 Recurrent Neural Network입니다. 시계열 예측 외에, 이러한 신경망이 분류 모델에 사용되지 않는 이유는 다음의 세 가지가 있었습니다.

 

1) 이러한 구조의 신경망은 각 timestamp별 하나의 값을 예측하도록 설계되었습니다.

2) RNN은 긴 시계열 데이터를 학습하면서 발생하는 vanishing gradient problem을 가지고 있습니다.

3) RNN은 학습하는데 병렬화가 어려워 리소스 문제로 사용하지 않았습니다.

이러한 제약을 가지고, 최근에 재귀 구조의 네트워크가 제안되었습니다. Echo State Networks. (ESNs)

 

히든 레이어의 그래디언트를 계산하지 않도록 하면서 vanishing gradient problem 문제를 해소하였습니다. 이 히든 레이어는 무작위 값으로 초기화되고, 희박하게 연결된 임의의 RNN 인 ESN의 코어(reservoir)로 구성되어 있습니다.

reservoir의 뉴런들은 자체적으로 입력 시그널의 활성화 함수를 생성합니다. reservoir 내부의 가중치들은 그래디언트를 통해 학습되지 않으며, 로지스틱 회귀, Ridge classifier와 같은 학습 알고리즘으로만 학습됩니다.

 

입력 차원이 M, reservoir의 뉴런 N_r, 분류할 클래스 수와 같은 출력 차원 K로 되어있다고 생각합시다.

X(t)는 R^M에 속하고, I(t)는 R^N_r, Y^(t) in R^K를 각각 t시간의 M차원의 다변량 시계열의 입력, 히든 스테이트, 출력이라고 정의합니다. W_in in R^(N_r*M), W in R^(N_r * N_r), W_out in R^(C * N_r)를 각각 입력 시계열 데이터의 가중치 행렬, 내부의 커넥션, 출력 커넥션이라고 합시다.

시간 t의 내부 유닛 액티비티 I(t)는 t-1시간의 내부 상태와 t시간의 입력 시계열 데이터를 사용해서 업데이트됩니다.

f는 활성화 함수이며, 보통 tanh를 사용합니다.

출력은 다음 수식에 따라 나옵니다.

ESN는 미리 정해진 하이퍼 파라미터인 reservoir의 내부 값에 매우 의존하고 있습니다.

 

 

마지막으로 모든 종류의 DNN에 대해, 신경망의 일반적 기능을 향상하기 위해 일련의 기술을 제안했습니다.

l2-norm weight decay와 같은 정규화, drop out은 오버 피팅을 줄일 수 있습니다.

학습 데이터를 늘려서 작은 데이터셋에 오버 피팅하지 않도록 하는 data augmentation (데이터 증강)이 있습니다. cropping, rotating, blurring images와 관련된 방법은 컴퓨터 비전에 강력한 성능 향상을 가져왔습니다.

이 논문에서의 두 가지 접근방법은 데이터 증강은 포함하지 않습니다.

TSC에 대한 데이터 증강은 제한적입니다.

 


 

이 이후에는 Generative, discriminative 접근 방법에 대한 설명이 나옵니다.

그 후 본 세션에서는 9가지 end-to-end 딥러닝 아키텍처에 대한 설명과 장단점. (모델 구조가 아주 자세하게 나옵니다)

평가까지 나옵니다.

실제 시계열 분류 모델링을 해 보고 싶으시다면, 논문의 Approaches를 읽어보신 후에 구현 & 실험해보시길 바랍니다!