hyeonzzz's Tech Blog

순환 신경망 - LSTM / GRU 본문

Deep Learning/Basics

순환 신경망 - LSTM / GRU

hyeonzzz 2024. 3. 8. 16:39

1. LSTM (long short-term memory)

: 기존의 순환 신경망 모델에 장기기억을 담당하는 부분을 추가한 것

출처 : https://colah.github.io/posts/2015-08-Understanding-LSTMs/

 

1) cell state

 

: 장기기억을 담당하는 부분

 

  • x : 기존의 정보를 얼마나 남길 건인지 비중을 곱함
  • + : (현재 들어온 데이터와 기존의 은닉 상태)를 통해 정보를 추가함

 

2) forget gate

 

: 어떤 과거 정보를 잊을지

 

  • (현재의 입력값과 직전 시점의 은닉 상태값)을 입력으로 받음
  • σ : 기존의 정보를 얼마나 전달할지 비중을 정함

 

3) input gate

 

: 어떤 새로운 정보를 셀 상태에 추가할지

 

  • (현재의 입력값과 직전 시점의 은닉 상태값)을 입력으로 받음
  • σ :  새로운 정보를 얼마나 추가할지 비중을 정함
  • tanh : 새롭게 셀 상태에 추가할 정보

 

더보기

fotget gate와 input gate 모두 x_t와 h_t-1을 활용하지만 가중치가 달라 각 요소가 얼마나 중요한지 결정한다.

따라서 각각 과거정보를 얼마나 보존할지, 새로운 정보를 얼마나 추가할지 결정한다.

 

4) cell state update

 

: 현재 시점의 cell state를 update

 

  • f_t * C_t-1 : 이전 시점의 cell 정보 얼마나 유지할지
  • i_t * C_t~ : 현재 기억할 정보
  • 과거에서 유지할 정보 + 현재에서 유지할 정보

 

5) hidden state update

 

: 출력할 출력값, hidden state 계산

 

  • (업데이트된 cell state 값) * (tanh를 통과시킨 -1~1 사이의 비중) = 새로운 hidden state

 

2. GRU (gated recurrent unit)

: 기존 LSTM의 구조를 간단하게 개선한 모델

출처 : https://blog.naver.com/winddori2002/221992543837

 

 

  • LSTM과 달리 셀 상태와 은닉 상태로 분리하지 않고 은닉 상태 하나로 합쳤다

 

1) reset gate

: 이전 은닉 상태를 얼마나 잊을지

  • 과거의 은닉 상태를 얼마나 잊을지를 결정하고, 이를 통해 새로운 정보의 반영 정도를 조절한다

 

2) update gate

: 새로운 정보를 얼마나 반영할지

  • LSTM의 forget gate와 input gate 역할
  • 현재 입력과 이전 상태를 모두 고려하여 현재 정보의 중요성을 결정한다
  • 현재 시점의 입력값과 직전 시점의 hidden state 값에 가중치를 곱함
  • σ를 통과시켜 업데이트할 비중 정함

 

3) 새로운 hidden state h_t ~계산

: reset gate를 사용해 이전 정보와 현재 정보의 비율을 결정한 새로운 hidden state h_t ~계산

  • ((이전 hidden state h_t-1에 가중치를 곱한 값) * reset gate)와 (새로운 입력 x_t에 가중치를 곱한 값)을 tanh에 통과시켜 새로운 h_t~를 계산한다

 

3) 최종 hidden state h_t 계산

: update gate를 사용해 최종 은닉 상태 h_t 계산

 

  • 과거 정보 얼마나 유지할지 + 현재 정보 얼마나 반영할지