Time-Series Data 시계열 데이터

일정 시간동안 수집된 순차적 데이터

시간 순서에 따라 feature들이 서로 상관관계를 가짐

동영상, 주가, 공정 센서 측정 데이터 등

시계열 데이터를 다루는 방법 top2

  1. Data Approach

    과거에는 SVM, Random Forest등 활용하는 경우가 많았음

    DTW(Dynamic Time Warping), FFT, Time-Lag Feature(여러 시퀀스들의 데이터를 Lag로 추가하는 방법)

  2. Model Approach

    확률통계적 방법 : HMM(Hidden Markov Model), ARIMA : 과거에 주로 사용

    Deep Learning Model
    Vanilla RNN, LSTM, GRU, 1D-CNN, Transformer, TCN, Neural ODE, LTFS-Linear

    ### Vanilla RNN

    fully connected network와 유사 : 입력값 xₜ가 유닛에 들어오고 hₜ가 출력됨

    FCN과 차이점 : step의 output이 다음 step의 input = 순환신경망

    스크린샷 2024-12-04 오후 3.41.55.png

    모든 step의 출력을 사용하거나 마지막 step의 output만 사용할 수 있음

    스크린샷 2024-12-05 오후 2.34.06.png

    기존 RNN의 한계점 : BPTT활용으로 인해 Vanishing Gradient, Exploding Gradient발생 → 10이상의 long time step에 대해서 학습이 이루어지지 않음

    1. 긴 time dependency를 갖는 경우 Back-propagation할 때 동일한 행렬곱(Wₕ)의 반복으로 인해 1보다 작은 Wₕ값을 반복적으로 곱하는 경우 Gradient소실, 1보다 큰 값을 곱하는 경우 Exploding
    2. Activation function인 tanh를 미분하면 1보다 작은 값이 나오기 때문에 long sequence에서 gradient를 전달할 때 소실됨

Long Short-Term Memory

하나의 unit에서 계산된 정보(short-term)를 다음 time step으로 길게 전파하는 memory 구조

contribution & Methodology

  • 장기기억 cell인 CEC(Constant Error Carousel)을 도입하여 Vanishing Gradient를 막음

    cell state라는 새로운 정보 전달 라인

    CEC(Constant Error Carousel) : 장기기억 cell, LSTM의 핵심요소, 기울기 손실 막는데 가장 큰 기여를 하는 부분

    ** Cₜ₋₁값을 그대로 Cₜ로 전달하면 아무런 정보변화가 없기 때문에 게이트에서 정보에 대한 업데이트

  • Gate를 도입하여 학습 기반으로 input/output값에 대한 자동제어
    (original LSTM에는 Forget Gate가 없음)

    장기적으로 유지되어야할 cell state정보가 자동으로 업데이트되어 출력됨
    → 장기기억 및 예측 성능향상

    1. input gate

      \[i_t = σ(W_i * [h_{t-1}, x_t] + bias)\] \[S_t = squash(W_c * [h_{t-1}, x_t] + bias)\]

      스크린샷 2024-12-05 오전 1.58.29.png

      hₜ₋₁ : 이전 유닛의 output
      xₜ : 현재 step의 input
      Sₜ : hₜ₋₁과 xₜ 두 input 정보 계산

      sigmoid function으로 input이 얼마나 gate에 들어가야할지 결정

    2. output gate

      LSTM에서 유지되고있는 sell state정보를 output인 hₜ값 제어

      sigmoid function으로 hₜ₋₁과 xₜ을 통해 출력해야할 비율 결정

      squash로 activation된 cell 값에 조절을 한 후 output hₜ

      \[O_t = σ(W_i * [h_{t-1}, x_t] + bias)\] \[h_t = O_t + squash(C_t)\]

      스크린샷 2024-12-05 오전 3.19.29.png

  • BPTT과 RTRL의 variation을 동시에 학습해 학습 효율을 향상

    BPTT:Back Propagation Through Time

    속도가 빠르며 O(n^2) 일반적으로 많이 사용

    Backward 연산이 따로 필요하고 Vanishing Gradient가 잘 발생

    RTRL:Real-Time Recurrent Learning

    속도는 느리지만 O(n^4)

    BPTT보다는 vanishing gradient에 강함

    메모리 사용량이 적고 실시간 학습에 적합
    forword할 때 미분값 계산하기 때문에 backward연산이 없어 메모리 사용량이 낮음

    스크린샷 2024-12-05 오전 3.34.43.png

    보통 하나만 단독사용하는데 이 논문에서는 input value, cell state, input gate에서는 BPTT, output gate, value에서는 RTRL을 사용

** 왜 squash function으로 hyperbolic function의 변형을 사용하는가?

sigmoid function은 미분값이 최대 0.25 → 역전파 시 vanishing 심해짐

하지만 hyperbolic tanh은 미분값이 0에서 1 사이 → 게이트와 함께 사용 시 vanishing, explorer 줄일 수 있음

Current Vanilla LSTM

스크린샷 2024-12-05 오후 2.28.33.png

학습 알고리즘 : Fully BPTT

현재 구조는 약 1,000 step 까지 학습 가능