AI/이론

LSTM and GRU

N-analyst 2021. 2. 16. 22:04
LSTM and GRU

LSTM and GRU


image.png

$W$값은 각각의 $x_{t}$와 $h_{t-1}$을 한번에 계산하기 위해 열의 길이는 2h가 된다. 정확히 말하면 $x_{t}$와 $h_{t-1}$의 차원의 합이 $W$의 열의 길이이다. 또한 행의 길이는 4개로 나눠서 각각 cell에 값을 계산하게된다.

  • i: Input gate, Whether to write to cell
  • f: Forget gate, Whether to erase cell
  • o: Output gate, How much to reveal cell
  • g: Gate gate, How much to write to cell

$sigmoid$는 0~1사이 값이 나오고, $tanh$의 값은 -1~1의 값이 나온다.


1️⃣ Forget gate

$$f_{t} = \sigma(W_{f}\cdot[h_{t-1},x_{t}]+b_{f})$$

image.png

그 전 cell의 정보인 $C_{t-1}$의 정보가 [3,5,-2]이고 $f_{t}$가 [0.7,0.4,0.8]이면 다음 단으로 갈때 $C_{t-1}$와 $f_{t}$의 element 곱을 진행한다. 이때 $f_{t}$의 값은 0~1사이 값을 가지므로 $C_{t-1}$값의 일부만 사용하는 효과를 내기때문에 이 gate가 Forget gate이다.


2️⃣ Gate gate

$$i_{t} = \sigma(W_{i}\cdot[h_{t-1},x_{t}]+b_{i})$$$$\tilde{C_{t}} = tanh(W_{C}\cdot[h_{t-1},x_{t}]+b_{C})$$

image.png


이전 셀 상태에 현재 정보를 추가하여 새 셀 상태 생성

$$C_{t} = f_{t}\cdot C_{t-1} + i_{t}\cdot\tilde{C_{t}}$$

image.png


위 그림의 형태를 다시 나타내면 아래와 같이 진행 된다.

image.png


3️⃣ Output gate

$$o_{t} = \sigma(W_{o}[h_{t-1},x_{t}]+b_{o})$$$$h_{t} = o_{t}\cdot tanh(C_{t})$$

image.png

hidden state는 next time step으로 전달하고 필요한 경우 출력할 수 있다.


✅ LSTM의 전체 결과 값을 한번에 보면 아래 그림과 같다. image.png



GRU

❗ LSTM과 가장 큰 차이점은 아래 그림과 같은 구조로 된다. image.png

image.png


전체적인 구조 image.png