LSTM and GRU¶
$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})$$
그 전 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})$$
이전 셀 상태에 현재 정보를 추가하여 새 셀 상태 생성
$$C_{t} = f_{t}\cdot C_{t-1} + i_{t}\cdot\tilde{C_{t}}$$
위 그림의 형태를 다시 나타내면 아래와 같이 진행 된다.
3️⃣ Output gate¶
$$o_{t} = \sigma(W_{o}[h_{t-1},x_{t}]+b_{o})$$$$h_{t} = o_{t}\cdot tanh(C_{t})$$
hidden state는 next time step으로 전달하고 필요한 경우 출력할 수 있다.
✅ LSTM의 전체 결과 값을 한번에 보면 아래 그림과 같다.
GRU¶
❗ LSTM과 가장 큰 차이점은 아래 그림과 같은 구조로 된다.
전체적인 구조
'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 |