Language Model
Recurrent Neural Networks (RNN)
\[h_t = \tanh (W_{hh}h_{t-1} + W_{xh}x_{t})\]
Backpropagation Through Time (BPTT)
๊ธฐ์กด์ ์ ๊ฒฝ๋ง ๊ตฌ์กฐ์์๋ backpropagation ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ค. RNN์์๋ ์ด๋ฅผ ์ด์ง ๋ณํ์ํจ ๋ฒ์ ์ธ Backpropagation Through Time (BPTT) ์ ์ฌ์ฉํ๋๋ฐ, ๊ทธ ์ด์ ๋ ๊ฐ ํ๋ผ๋ฏธํฐ๋ค์ด ๋คํธ์ํฌ์ ๋งค ์๊ฐ ์คํ
๋ง๋ค ๊ณต์ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, ๊ฐ ์๊ฐ ์คํ
์ ์ถ๋ ฅ๋จ์์์ gradient๋ ํ์ฌ ์๊ฐ ์คํ
์์์ ๊ณ์ฐ์๋ง ์์กดํ๋ ๊ฒ์ด ์๋๋ผ ์ด์ ์๊ฐ ์คํ
์๋ ์์กดํ๋ค.
RNN tradeoffs
- RNN Advantages
- ์ด๋ค ๊ธธ์ด์ ์
๋ ฅ์ด๋ผ๋ ์ฒ๋ฆฌํ ์ ์๋ค.
- ๊ธด ๊ธธ์ด์ ์
๋ ฅ์ด ๋ค์ด์๋, ๋ชจ๋ธ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์ง ์๋๋ค.
- ์ด๋ก ์ ์ผ๋ก, step t์ ๋ํ ๊ณ์ฐ์, ์ด์ ๋จ๊ณ์ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.
- RNN Disadvantages
- Recurrent ์ฐ์ฐ์ด ๋๋ฆฌ๋ค.
- ํ์ค์ ์ผ๋ก, ์ค๋ ์ ์ step์์์ ์ ๋ณด์ ์ ๊ทผํ๊ธฐ ์ด๋ ต๋ค.
- ๊ธฐ์ธ๊ธฐ ์์ค (Vanashing Gradient)
- ์ญ์ ํ ๊ณผ์ ์์ ์
๋ ฅ์ธต์ผ๋ก ๊ฐ์๋ก ๊ธฐ์ธ๊ธฐ๊ฐ ์ ์ฐจ ์์์ง๋ ํ์.
- ์
๋ ฅ์ธต์ ๊ฐ๊น์ด ์ธต๋ค์์ ๊ฐ์ค์น๋ค์ด ์
๋ฐ์ดํธ๊ฐ ์ ๋๋ก ๋์ง ์์ผ๋ฉด ์ต์ ์ ๋ชจ๋ธ์ ์ฐพ์ ์ ์๊ฒ ๋๋ค.
- ๊ธฐ์ธ๊ธฐ ํญ์ฃผ (Exploding Gradient)
Vanishing Gradient๊ฐ ๋ฐ์ํ๋ ์ด์
ํ์ฑํ ํจ์๋ก ํํ ์ฌ์ฉ๋๋ sigmoid ํจ์์ tanh ํจ์์ ๋ํจ์๋ ์๋์ ๊ฐ๋ค. ๋ํจ์์ ์ต๋๊ฐ์ด 1๋ณด๋ค ์์ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ญ์ ํ (back-propagation) ๊ณผ์ ์์ ํ์ฑํ ํจ์์ ๋ฏธ๋ถ๊ฐ์ด ์ฌ์ฉ๋๋๋ฐ, 1๋ณด๋ค ์์ ๊ฐ์ด ๋ฐ๋ณตํด์ ๊ณฑํด์ง๋ฉด 0์ ์๋ ดํ๊ฒ ๋๋ค.
Why is Vanishing Gradient a Problem?
๋จผ ๊ฑฐ๋ฆฌ์ gradient signal์ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ์ gradient signal๋ณด๋ค ํจ์ฌ ์๊ธฐ ๋๋ฌธ์ ์์ค๋๋ค.
๋ฐ๋ผ์ ๋จผ ๊ฑฐ๋ฆฌ์ gradient signal์ ๋ชจ๋ธ ๊ฐ์ค์น์ ์ํฅ์ ๋ผ์น์ง ๋ชปํ๊ณ , ๋ชจ๋ธ ๊ฐ์ค์น๋ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ์ gradient signal์ ๋ํด์๋ง ์
๋ฐ์ดํธ๋๋ค.
Exploding Gradient๊ฐ ๋ฐ์ํ๋ ์ด์
Back propagation ์ฐ์ฐ์๋ Activation function์ ํธ๋ฏธ๋ถ ๊ฐ๋ฟ๋ง ์๋๋ผ ๊ฐ์ค์น ๊ฐ๋ค๋ ๊ด์ฌํ๊ฒ ๋๋ค.
๋ง์ฝ, ๋ชจ๋ธ์ ๊ฐ์ค์น๋ค์ด ์ถฉ๋ถํ ํฐ ๊ฐ์ด๋ผ๊ณ ๊ฐ์ ์ ํ๋ฉด, ๋ ์ด์ด๊ฐ ๊น์ด์ง์๋ก ์ถฉ๋ถํ ํฐ ๊ฐ์ค์น๋ค์ด ๋ฐ๋ณต์ ์ผ๋ก ๊ณฑํด์ง๋ฉด์ backward value๊ฐ ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํ๊ฒ ๋๋ค. ์ด๋ฅผ Exploding gradient๋ผ ํ๋ค.
Why is Exploding Gradient a Problem?
Gradient๊ฐ ๋๋ฌด ํฌ๋ฉด, SGD update step์ด ์ปค์ง๊ฒ ๋๋ค.
๋๋ฌด ํฐ step์ผ๋ก ์
๋ฐ์ดํธ๋ฅผ ์ํํ์ฌ ์๋ชป๋ ๋งค๊ฐ๋ณ์ ๊ตฌ์ฑ์ ๋๋ฌํ๋ฉด, ํฐ ์์ค์ด ๋ฐ์ํ์ฌ ์๋ชป๋ ์
๋ฐ์ดํธ๊ฐ ๋ฐ์ํ ์ ์๋ค.
How to fix vanishing/exploding gradient problem?
- Two new types of RNN
- Other fixes for vanishing (or exploding) gradient:
- Gradient clipping
- ๊ทธ๋ผ๋ฐ์ด์
์ norm์ด threshold๋ณด๋ค ํฐ ๊ฒฝ์ฐ, SGD ์
๋ฐ์ดํธ๋ฅผ ์ ์ฉํ๊ธฐ ์ ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ
- Skip connections
- More fancy RNN variants:
- Bidirectional RNNs
- Multi-layer RNNs
Long Short-Term Memory (LSTM)
- LSTM์ ์ฌ์ฉ ์ด์
- RNN์ ๋ฐ์ดํฐ์ ์ฅ๊ธฐ ์์กด์ฑ(long-term dependency)์ ํ์ตํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ง๋ง, LSTM์ ๋ ๊ธด long-term ์ํ์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ง๋ค์ด์ก๋ค.
- LSTM์ Memory Cell๊ณผ Gate๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ๊ธฐ ๋ฐ ๋จ๊ธฐ Hidden State๋ฅผ ํต๊ณผํ๋ค.
- Cell state๋ฅผ ๋์
ํ๋ฉด์ gradient flow๊ฐ ๋ฐฉํด ๋ฐ์ง ์๊ฒ ํ๋ฉฐ, gradient๊ฐ ์ ํ๋ฌ๊ฐ์ง ์๋ ๊ฒ์ ๋ง์์ค๋ค.
LSTM์ ๊ฐ Gate๋ค์ ์ญํ
1. Forget Gate ($f_{t}$)
- ๊ณผ๊ฑฐ ์ ๋ณด๋ฅผ ์ผ๋ง๋งํผ ์ ์งํ ๊ฒ์ธ๊ฐ?
- Forget Gate๋ cell state์์ sigmoid($\sigma{}$) layer๋ฅผ ๊ฑฐ์ณ ์ด์ hidden state๋ฅผ ์ผ๋ง๋ ๊ธฐ์ตํ ์ง ์ ํ๋ค.
- ์๋ก ์
๋ ฅ๋ ์ ๋ณด๋ ์ผ๋ง๋งํผ ํ์ฉํ ๊ฒ์ธ๊ฐ?
- Input Gate๋ ์๋ก ์
๋ ฅ๋ ์ ๋ณด ์ค ์ด๋ค ๊ฒ์ cell state์ ์ ์ฅํ ๊ฒ์ธ์ง๋ฅผ ์ ํ๋ค. ๋จผ์ sigmoid($\sigma{}$) layer๋ฅผ ๊ฑฐ์ฒ ์ด๋ค ๊ฐ์ ์
๋ฐ์ดํธ ํ ๊ฒ์ธ์ง๋ฅผ ์ ํ ํ, $\tanh$ layer์์ ์๋ก์ด ํ๋ณด Vector๋ฅผ ๋ง๋ ๋ค.
- ํ์ฑํํจ์๋ก์จ sigmoid๋ฅผ ์ฐ์ง ์๊ณ , $\tanh$๋ฅผ ์ฐ๋ ์ด์ ๋ ์ฌ๊ธฐ ์ฐธ๊ณ
3. Output Gate ($o_{t}$)
- ๋ ์ ๋ณด๋ฅผ ๊ณ์ฐํ์ฌ ๋์จ ์ถ๋ ฅ ์ ๋ณด๋ฅผ ์ผ๋ง๋งํผ ๋๊ฒจ์ค ๊ฒ์ธ๊ฐ?
- Output Gate๋ ์ด๋ค ์ ๋ณด๋ฅผ output์ผ๋ก ๋ด๋ณด๋ผ์ง ์ ํ๋ค. ๋จผ์ sigmoid($\sigma{}$) layer์ input data๋ฅผ ๋ฃ์ด output ์ ๋ณด๋ฅผ ์ ํ ํ Cell state๋ฅผ $\tanh$ layer์ ๋ฃ์ด sigmoid($\sigma{}$) layer์ output๊ณผ ๊ณฑํ์ฌ output์ผ๋ก ๋ด๋ณด๋ธ๋ค.
References
- ์ธ๊ณต์ง๋ฅ ์์ฉ (ICE4104), ์ธํ๋ํ๊ต ์ ๋ณดํต์ ๊ณตํ๊ณผ ํ์ฑ์ ๊ต์๋
-
[Stanford CS224N - NLP w/ DL |
Winter 2021 |
Lecture 5 - Recurrent Neural networks (RNNs)](https://www.youtube.com/watch?v=PLryWeHPcBs&list=PLoROMvodv4rMFqRtEuo6SGjY4XbRIVRd4) |
- [๋จธ์ ๋ฌ๋/๋ฅ๋ฌ๋] 10-1. Recurrent Neural Network(RNN)
- RNN Tutorial Part 2 - Python, NumPy์ Theano๋ก RNN ๊ตฌํํ๊ธฐ
- Neural Network Notes
- (2) ํ์ฑํจ์์ ์์ ํ ๋ฐ ์ญ์ ํ
- Vanishing gradient / Exploding gradient
- LSTM(Long-Short Term Memory)๊ณผ GRU(gated Recurrent Unit)(์ฝ๋ ์ถ๊ฐํด์ผํจ)
- 07-07 ๊ธฐ์ธ๊ธฐ ์์ค(Gradient Vanishing)๊ณผ ํญ์ฃผ(Exploding) - ๋ฅ ๋ฌ๋์ ์ด์ฉํ ์์ฐ์ด ์ฒ๋ฆฌ ์
๋ฌธ
- LSTM - ์ธ์ฝ๋ค, ์๋ฌผ์ ๋ณด ์ ๋ฌธ์ํค
- [๋ฅ๋ฌ๋] LSTM ์ฝ๊ฒ ์ดํดํ๊ธฐ - YouTube
- Loner์ ํ์ต๋
ธํธ :: LSTM ๊ฐ์ธ์ ๋ฆฌ