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

'AI > 이론' 카테고리의 다른 글

Self-Supervised Pre-training Models  (0) 2021.02.19
Transformer 이론  (0) 2021.02.18
Beam search and BLEU  (0) 2021.02.17
Seq2Seq  (0) 2021.02.17
RNN and Language modeling  (0) 2021.02.16
Bag of Words  (0) 2021.02.15
Word Embedding  (0) 2021.02.15
Generative Model  (0) 2021.02.05

+ Recent posts