๊ธฐ์กด์ ์ ๊ฒฝ๋ง ๊ตฌ์กฐ์์๋ backpropagation ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ค. RNN์์๋ ์ด๋ฅผ ์ด์ง ๋ณํ์ํจ ๋ฒ์ ์ธ Backpropagation Through Time (BPTT) ์ ์ฌ์ฉํ๋๋ฐ, ๊ทธ ์ด์ ๋ ๊ฐ ํ๋ผ๋ฏธํฐ๋ค์ด ๋คํธ์ํฌ์ ๋งค ์๊ฐ ์คํ ๋ง๋ค ๊ณต์ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, ๊ฐ ์๊ฐ ์คํ ์ ์ถ๋ ฅ๋จ์์์ gradient๋ ํ์ฌ ์๊ฐ ์คํ ์์์ ๊ณ์ฐ์๋ง ์์กดํ๋ ๊ฒ์ด ์๋๋ผ ์ด์ ์๊ฐ ์คํ ์๋ ์์กดํ๋ค.
- RNN Advantages
- ์ด๋ค ๊ธธ์ด์ ์ ๋ ฅ์ด๋ผ๋ ์ฒ๋ฆฌํ ์ ์๋ค.
- ๊ธด ๊ธธ์ด์ ์ ๋ ฅ์ด ๋ค์ด์๋, ๋ชจ๋ธ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์ง ์๋๋ค.
- ์ด๋ก ์ ์ผ๋ก, step t์ ๋ํ ๊ณ์ฐ์, ์ด์ ๋จ๊ณ์ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.
- RNN Disadvantages
- Recurrent ์ฐ์ฐ์ด ๋๋ฆฌ๋ค.
- ํ์ค์ ์ผ๋ก, ์ค๋ ์ ์ step์์์ ์ ๋ณด์ ์ ๊ทผํ๊ธฐ ์ด๋ ต๋ค.
- ๊ธฐ์ธ๊ธฐ ์์ค (Vanashing Gradient)
- ์ญ์ ํ ๊ณผ์ ์์ ์ ๋ ฅ์ธต์ผ๋ก ๊ฐ์๋ก ๊ธฐ์ธ๊ธฐ๊ฐ ์ ์ฐจ ์์์ง๋ ํ์.
- ์ ๋ ฅ์ธต์ ๊ฐ๊น์ด ์ธต๋ค์์ ๊ฐ์ค์น๋ค์ด ์ ๋ฐ์ดํธ๊ฐ ์ ๋๋ก ๋์ง ์์ผ๋ฉด ์ต์ ์ ๋ชจ๋ธ์ ์ฐพ์ ์ ์๊ฒ ๋๋ค.
- ๊ธฐ์ธ๊ธฐ ํญ์ฃผ (Exploding Gradient)
ํ์ฑํ ํจ์๋ก ํํ ์ฌ์ฉ๋๋ sigmoid ํจ์์ tanh ํจ์์ ๋ํจ์๋ ์๋์ ๊ฐ๋ค. ๋ํจ์์ ์ต๋๊ฐ์ด 1๋ณด๋ค ์์ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ญ์ ํ (back-propagation) ๊ณผ์ ์์ ํ์ฑํ ํจ์์ ๋ฏธ๋ถ๊ฐ์ด ์ฌ์ฉ๋๋๋ฐ, 1๋ณด๋ค ์์ ๊ฐ์ด ๋ฐ๋ณตํด์ ๊ณฑํด์ง๋ฉด 0์ ์๋ ดํ๊ฒ ๋๋ค.
๋จผ ๊ฑฐ๋ฆฌ์ gradient signal์ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ์ gradient signal๋ณด๋ค ํจ์ฌ ์๊ธฐ ๋๋ฌธ์ ์์ค๋๋ค.
๋ฐ๋ผ์ ๋จผ ๊ฑฐ๋ฆฌ์ gradient signal์ ๋ชจ๋ธ ๊ฐ์ค์น์ ์ํฅ์ ๋ผ์น์ง ๋ชปํ๊ณ , ๋ชจ๋ธ ๊ฐ์ค์น๋ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ์ gradient signal์ ๋ํด์๋ง ์ ๋ฐ์ดํธ๋๋ค.
Back propagation ์ฐ์ฐ์๋ Activation function์ ํธ๋ฏธ๋ถ ๊ฐ๋ฟ๋ง ์๋๋ผ ๊ฐ์ค์น ๊ฐ๋ค๋ ๊ด์ฌํ๊ฒ ๋๋ค.
๋ง์ฝ, ๋ชจ๋ธ์ ๊ฐ์ค์น๋ค์ด ์ถฉ๋ถํ ํฐ ๊ฐ์ด๋ผ๊ณ ๊ฐ์ ์ ํ๋ฉด, ๋ ์ด์ด๊ฐ ๊น์ด์ง์๋ก ์ถฉ๋ถํ ํฐ ๊ฐ์ค์น๋ค์ด ๋ฐ๋ณต์ ์ผ๋ก ๊ณฑํด์ง๋ฉด์ backward value๊ฐ ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํ๊ฒ ๋๋ค. ์ด๋ฅผ Exploding gradient๋ผ ํ๋ค.
Gradient๊ฐ ๋๋ฌด ํฌ๋ฉด, SGD update step์ด ์ปค์ง๊ฒ ๋๋ค.
๋๋ฌด ํฐ step์ผ๋ก ์ ๋ฐ์ดํธ๋ฅผ ์ํํ์ฌ ์๋ชป๋ ๋งค๊ฐ๋ณ์ ๊ตฌ์ฑ์ ๋๋ฌํ๋ฉด, ํฐ ์์ค์ด ๋ฐ์ํ์ฌ ์๋ชป๋ ์ ๋ฐ์ดํธ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- Two new types of RNN
- LSTM
- GRU
- Other fixes for vanishing (or exploding) gradient:
- Gradient clipping
- ๊ทธ๋ผ๋ฐ์ด์ ์ norm์ด threshold๋ณด๋ค ํฐ ๊ฒฝ์ฐ, SGD ์ ๋ฐ์ดํธ๋ฅผ ์ ์ฉํ๊ธฐ ์ ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ
- Skip connections
- Gradient clipping
- More fancy RNN variants:
- Bidirectional RNNs
- Multi-layer RNNs
- LSTM์ ์ฌ์ฉ ์ด์
- RNN์ ๋ฐ์ดํฐ์ ์ฅ๊ธฐ ์์กด์ฑ(long-term dependency)์ ํ์ตํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ง๋ง, LSTM์ ๋ ๊ธด long-term ์ํ์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ง๋ค์ด์ก๋ค.
- LSTM์ Memory Cell๊ณผ Gate๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ๊ธฐ ๋ฐ ๋จ๊ธฐ Hidden State๋ฅผ ํต๊ณผํ๋ค.
- Cell state๋ฅผ ๋์ ํ๋ฉด์ gradient flow๊ฐ ๋ฐฉํด ๋ฐ์ง ์๊ฒ ํ๋ฉฐ, gradient๊ฐ ์ ํ๋ฌ๊ฐ์ง ์๋ ๊ฒ์ ๋ง์์ค๋ค.
- ๊ณผ๊ฑฐ ์ ๋ณด๋ฅผ ์ผ๋ง๋งํผ ์ ์งํ ๊ฒ์ธ๊ฐ?
- Forget Gate๋ cell state์์ sigmoid(
$\sigma{}$ ) layer๋ฅผ ๊ฑฐ์ณ ์ด์ hidden state๋ฅผ ์ผ๋ง๋ ๊ธฐ์ตํ ์ง ์ ํ๋ค.
- ์๋ก ์ ๋ ฅ๋ ์ ๋ณด๋ ์ผ๋ง๋งํผ ํ์ฉํ ๊ฒ์ธ๊ฐ?
- Input Gate๋ ์๋ก ์
๋ ฅ๋ ์ ๋ณด ์ค ์ด๋ค ๊ฒ์ cell state์ ์ ์ฅํ ๊ฒ์ธ์ง๋ฅผ ์ ํ๋ค. ๋จผ์ sigmoid(
$\sigma{}$ ) layer๋ฅผ ๊ฑฐ์ฒ ์ด๋ค ๊ฐ์ ์ ๋ฐ์ดํธ ํ ๊ฒ์ธ์ง๋ฅผ ์ ํ ํ,$\tanh$ layer์์ ์๋ก์ด ํ๋ณด Vector๋ฅผ ๋ง๋ ๋ค.- ํ์ฑํํจ์๋ก์จ sigmoid๋ฅผ ์ฐ์ง ์๊ณ ,
$\tanh$ ๋ฅผ ์ฐ๋ ์ด์ ๋ ์ฌ๊ธฐ ์ฐธ๊ณ
- ํ์ฑํํจ์๋ก์จ sigmoid๋ฅผ ์ฐ์ง ์๊ณ ,
- ๋ ์ ๋ณด๋ฅผ ๊ณ์ฐํ์ฌ ๋์จ ์ถ๋ ฅ ์ ๋ณด๋ฅผ ์ผ๋ง๋งํผ ๋๊ฒจ์ค ๊ฒ์ธ๊ฐ?
- Output Gate๋ ์ด๋ค ์ ๋ณด๋ฅผ output์ผ๋ก ๋ด๋ณด๋ผ์ง ์ ํ๋ค. ๋จผ์ sigmoid(
$\sigma{}$ ) layer์ input data๋ฅผ ๋ฃ์ด output ์ ๋ณด๋ฅผ ์ ํ ํ Cell state๋ฅผ$\tanh$ layer์ ๋ฃ์ด sigmoid($\sigma{}$ ) layer์ output๊ณผ ๊ณฑํ์ฌ output์ผ๋ก ๋ด๋ณด๋ธ๋ค.
- ์ธ๊ณต์ง๋ฅ ์์ฉ (ICE4104), ์ธํ๋ํ๊ต ์ ๋ณดํต์ ๊ณตํ๊ณผ ํ์ฑ์ ๊ต์๋
- Stanford CS224N - NLP w/ DL | Winter 2021 | Lecture 5 - Recurrent Neural networks (RNNs)
- [๋จธ์ ๋ฌ๋/๋ฅ๋ฌ๋] 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 ๊ฐ์ธ์ ๋ฆฌ