본문 바로가기

Experience/SKADA

[SKADA] DRAM 내부 회로의 파형 예측 (3)

📁 시계열 모델을 통한 파형 예측

 

📌 Recurrent Neural Network

  • RNN은 시계열 데이터에 적용할 수 있는 대표적인 신경망 모델

 

📌 RNN 모델의 구현

  • RNN에 데이터를 적용하기 위해 읽어온 데이터를 시계열 데이터 형식으로 변환해 주어야 함

  • Window size: 하나의 data sequence를 구성하는 시간별 데이터의 개수
  • 데이터의 전처리
    • window size를 조절하여 sequence의 길이 조절
    • interval를 조절하여 window 내 데이터 사이 시간 간격 조절
    • stride를 조절하여 window 간 시간 간격 조절

 

📌 RNN 모델 한계

  • Sequence가 길어지면 예전 데이터를 잘 기억하지 못함
    • Short-term memory problem
    • Gradient vanishing problem

 

📌 LSTM (Long short-term memory)

  • 대표적인 RNN 기반 신경망 모델
  • RNN의 short-term memory를 완화
  • 중요한 부분만 기억하고, 중요하지 않은 부분은 삭제

 

📌 LSTM 구조

  • 3개 변수
    • Cell state $(C_i)$: $i$ 시간까지 기억하고 있는 기억 메모리
    • Hidden state $(H_i)$: $i$ 시간에서의 모델 출력 값
    • Input $(X_i)$ : $i$ 시간에서의 입력 값
  • 3개 게이트
    • Forget gate
      • $F_{t-1}=C_{t-1}\times sigmoid(f_i(X_t, h_{t-1}))$
      • 0: 이전 기억을 지워라
      • 1: 이전 기억을 유지해라
    • Input gate
      • $I_t=sigmoid(f_2(X_t, h_{t-1}))\times tanh(f_3(X_t, h_{t-1}))$ 
      • 0: 새로운 데이터를 지워라
      • 1: 새로운 데이터를 반영해라
    • Cell state update
      • $C_t=F_{t+1}+I_t$ 
      • 이전 기억과 새로운 데이터의 조합
    • Output gate
      • $h_t=sigmoid(f_4(X_t, h_{t-1}))\times tanh(C_t)$
      • $t$ 에서의 출력 값으로 중요하면 1, 중요하지 않으면 0

 

📌 GRU (Gated Recurrent Unit)

  • LSTM과 더불어 대표적인 RNN 기반 신경망 모델
  • LSTM과 동등한 성능을 보이지만, 모델의 weight 수가 더 적어 효율적
  • LSTM의 3개 gate를 2개로 줄임

 

📌 GRU의 구조

  • Reset gate
    •  $R_t=sigmoid(f_1(X_t, h_{t-1}))\times h_{t-1}$
    • 이전 기억에서 지워야 할 부분을 결정
  • Update gate
    • LSTM의 forget gate와 input gate의 역할과 유사
    • 이전 기억에서 지워야 할 부분이 새로운 데이터에서 가져와야 할 부분과 같다는 intuition
    • $z_t=sigmoid(f_2(X_t, h_{t-1}))$
    • $h_t=(1-z_t)\times h_{t-1}+z_t\times tanh(f_3(R_t,X_t))$

 

📌 LSTM과 GRU의 성능 비교

  • GRU가 LSTM보다 메모리에서 효율적
    • GRU가 같은 학습 parameter 수로 hidden state의 차원을 더 크게 설정할 수 있음
  • 비슷한 parameter수로 설정한 GRU와 LSTM의 성능은 학습 데이터에 따라 상이