LSTM and GRU¶
W값은 각각의 xt와 ht−1을 한번에 계산하기 위해 열의 길이는 2h가 된다. 정확히 말하면 xt와 ht−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¶
ft=σ(Wf⋅[ht−1,xt]+bf)
그 전 cell의 정보인 Ct−1의 정보가 [3,5,-2]이고 ft가 [0.7,0.4,0.8]이면 다음 단으로 갈때 Ct−1와 ft의 element 곱을 진행한다. 이때 ft의 값은 0~1사이 값을 가지므로 Ct−1값의 일부만 사용하는 효과를 내기때문에 이 gate가 Forget gate이다.
2️⃣ Gate gate¶
it=σ(Wi⋅[ht−1,xt]+bi)~Ct=tanh(WC⋅[ht−1,xt]+bC)
이전 셀 상태에 현재 정보를 추가하여 새 셀 상태 생성
Ct=ft⋅Ct−1+it⋅~Ct
위 그림의 형태를 다시 나타내면 아래와 같이 진행 된다.
3️⃣ Output gate¶
ot=σ(Wo[ht−1,xt]+bo)ht=ot⋅tanh(Ct)
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 |