๋ฐ์ํ
1. ๊ธฐ๋ณธ RNN ๋ชจ๋ธ (Vanilla RNN Model)์ ํ๊ณ
RNN๋ถ๋ถ์ ์ค๋ช ํ ๊ธ์์ ๊ธฐ๋ณธ RNN Model์ ์์๋ณด๊ณ ๊ตฌํํด ๋ณด์์ต๋๋ค.
- ๋ณดํต RNN Model์ ๊ฐ์ฅ ๋จ์ํ ํํ์ RNN ์ด๋ผ๊ณ ํ๋ฉฐ ๋ฐ๋๋ผ RNN (Vanilla RNN)์ด๋ผ๊ณ ํฉ๋๋ค.
- ๊ทผ๋ฐ, Vanilla RNN ๋ชจ๋ธ์ ๋จ์ ์ผ๋ก ์ธํ์ฌ, ๊ทธ ๋จ์ ๋ค์ ๊ทน๋ณตํ๊ธฐ ์ํ ๋ค์ํ RNN ๋ณํ Model์ด ๋์์ต๋๋ค.
- ๋ํ์ ์ผ๋ก LSTM, GRU ๋ชจ๋ธ์ด ์๋๋ฐ, ์ผ๋จ ์ด๋ฒ๊ธ์์๋ LSTM Model์ ๋ํ ์ค๋ช ์ ํ๊ณ , ๋ค์ ๊ธ์์๋ GRU Model์ ๋ํ์ฌ ์ค๋ช ์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
Vanilla RNN์ ์ด์ ์ ๊ณ์ฐ ๊ฒฐ๊ณผ์ ์์กดํ์ฌ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด ๋ ๋๋ค.
- ์ด๋ฌํ ๋ฐฉ์์ Vanilla RNN์ ์งง์ Sequence์๋ ํจ๊ณผ๊ฐ ์์ง๋ง, ๊ธด Sequnce๋ ์ ๋ณด๊ฐ ์ ์ ๋ฌ์ด ์๋๋ ํ์์ด ๋ฐ์ํฉ๋๋ค.
- ์ด์ ๋ RNN์ ์ํ์ค ๊ธธ์ด๊ฐ ๊ธธ์ด์ง์๋ก ์ ๋ณด ์์ถ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
- RNN์ ์ค๋ช ํ ๊ธ์์๋ ๋์์๋ฏ์ด, RNN์ ์ ๋ ฅ ์ ๋ณด๋ฅผ ์ฐจ๋ก๋๋ก ์ฒ๋ฆฌํ๊ณ ์ค๋ ์ ์ ์ฝ์๋ ๋จ์ด๋ ์์ด๋ฒ๋ฆฌ๋ ๊ฒฝํฅ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด, Vanilla RNN Model์ด ๋์๊ฐ๋ ์ฒซ๋ฒ์งธ๋ก ๋ค์ด๊ฐ๋ input๊ฐ ๊ฒ์์์ด ์งํ๊ฒ ๋ณด์ด๋๊ฑด, ๋ค์ด๊ฐ๋ ๊ฐ์ ๊ธฐ์ต๋ ฅ์ ๋ํ๋ธ๊ฒ์ ๋๋ค.
- ๊ทผ๋ฐ, ์ ์ฐจ ๋ค์ ์์ ์ผ๋ก ๋์ด๊ฐ์๋ก ์๊ฐ์ด ํ๋ ค์ง๋๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
- ์ด๊ฒ์ ๋ค์ ์์ ์ผ๋ก ๋์ด๊ฐ๋ฉด ๋์ด๊ฐ์๋ก Vanilla RNN Model์ ์ฒซ๋ฒ์งธ input์ด ๊ฐ์ด ์์ค๋์ด์ง๋ ๊ณผ์ ์ ๋ํ๋ด์์ต๋๋ค. ๋ค๋ฅธ๋ง๋ก๋ ์ ์ ๊น๋จน๋๋ค ๋ผ๊ณ ๋ณผ์๋ ์๊ฒ ๋ค์.
- ๊ฒฐ๋ก ์ ์ฒซ๋ฒ์งธ๋ก ๋ค์ด๊ฐ input์ ๊ธฐ์ต๋ ฅ์ ์ ์ ์์ค๋๊ณ , ๋ง์ฝ ์์ ์ด ๊ธธ๋ค๊ณ ํ๋ฉด ์ด RNN ๋ชจ๋ธ์ ๋ํ ์ํฅ๋ ฅ์ ์ ์ ์ฌ๋ผ์ง๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
2. Long-Term Dependency ํ์
์ด ํ์์ Long-Term Dependency (์ฅ๊ธฐ ์์กด์ฑ ๋ฌธ์ ) ํ์์ด๋ผ๊ณ ํฉ๋๋ค.
- Long-Term Dependency ํ์์ Time step์ด ์ง๋๋ฉด์ ์ ๋ ฅ๊ฐ์ ์ํฅ๋ ฅ์ด ์ ์ ๊ฐ์ํ๋ค.
- Sequence์ ๊ธธ์ด๊ฐ ๊ธธ์ด์ง์๋ก, ์ค๋ ์ ์ ๋ ฅ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ๋๋ก ๋ฐ์ํ์ง ๋ชปํ๋ค..
๐ก Long-Term Dependency ํ์
ํ๋ฒ ์์๋ก ๋ค์ด์ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค.
- Long-Term Dependency ํ์์ด ๋ํ๋๋ฉด์ ๋ฌธ์ ๊ฐ ๋๋ ๊ฒฝ์ฐ๋ ์ฒซ๋ฒ์งธ๋ ์์ชฝ์ ๋ค์ด๊ฐ input์ด ์ค์ํ ์ ๋ณด ์ผ๋ ์ ๋๋ค.
๐ก example of Long-Term Dependency ํ์
"์์ฆ ์ผ๋ณธ๊ฐ๋ ๋นํ๊ธฐ๊ฐ ์ธ์ฒ๊ณตํญ์์ ๋๋ฆฌํ ๊ณตํญ ๊ฐ๋ ๋นํ๊ธฐ๊ฐ์ด ๊นํฌ๊ณตํญ์์ ํ๋ค๋ค ๊ณตํญ ๊ฐ๋ ๋นํ๊ธฐ ๊ฐ๋ณด๋ค ๋ ๋น์ธ๋๋ผ. ๊ทธ๋ฌ๋ฉด ์ผ ๊ณณ์ผ๋ก ๊ฐ์ผ๊ฒ ๋๋ฐ. ๊ทธ๋์ ๋๋ "
- ๊ธ์ ๋ณด๋ฉด ๋น์นธ์ ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๊ธฐ ์ํด์๋ ์ฅ์์ ๋ํ ๊ธฐ์ต์ด ์์ด์ผ ํฉ๋๋ค.
- ๊ทผ๋ฐ, ์ฅ์ ์ ๋ณด์ ๋ํ "์ธ์ฒ๊ณตํญ"์ ์์ชฝ์ ์์นํ๊ณ ์์ต๋๋ค.
- RNN Model์ด ์ถฉ๋ถํ ๊ธฐ์ต๋ ฅ์ด ์๋ค๋ฉด? ์๋ง ๋ค์ ๋จ์ด๋ฅผ ์๋ฑํ๊ฒ ์์ธก ํ ๊ฒ ์ ๋๋ค.
- ์ด ํ์์ Long-Term Dependency ํ์. ์ฅ๊ธฐ ์์กด์ฑ ๋ฌธ์ ํ์ ์ด๋ผ๊ณ ํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ RNN Model์ด ๋์ํ๋ ๊ณผ์ ์ ํ๋ฒ ๋ณด์ฌ์ฃผ๋ฉด ์ดํด๋ฅผ ํ๋๋ฐ ๋์์ด ๋ ๊ฒธ, ํ๋ฒ Train & Test ํ๋ ๊ณผ์ ์ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค.
3. RNN Training & Test Example
RNN Training Example
๋ณดํต RNN Model์ ํ๋ จ ๋ฐ์ดํฐ์ ๊ณผ ๊ฐ์ ์คํ์ผ์ ๋ฌธ์์ด์ ์์ฑํ๋ ๋ชจ๋ธ๋ก ๊ธ์ ๋จ์๋ก ํ๋ จ์ ํฉ๋๋ค.
- ์๋ฅผ ๋ค๋ฉด, "hello" ๋ผ๋ ๋จ์ด๋ฅผ ๋ง๋ค๊ณ ์ถ์ด์ "h" ๋ฅผ RNN Model์ ์ฒซ๋ฒ์งธ input์ ์ฃผ๋ฉด "ello"๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ๋๋ค.
- ์ฌ๊ธฐ์ ํ๋ จ ๋ฐ์ดํฐ์ ์ ๊ธ์ or ๋จ์ด์ฌ์ (Vocab)์ผ๋ก ์ค๋๋ค.
- Example training Sequence: "hello"
- Vocabulary: [h, e, l, o]
- ์ด์ input์ผ๋ก ์ค ๊ฐ "h"์ ์ด์ฉํด์ 4๊ฐ์ Vocabulary: [h, e, l, o]๋ฅผ One-hot-encoding ํํ๋ก ๋ณํํ๊ฒ ์ต๋๋ค.
- One-hot-encoding ํํ๋ก ๋ณํํ ๊ฐ๊ณผ ์ด์ ์์ ์ hidden state๋ฅผ ์ด์ฉํ์ฌ hidden layer ์ฐ์ฐ์ ์ํํฉ๋๋ค.
- ์ฌ๊ธฐ์ ๊ฐ์ค์น ํ๋ ฌ์ Whh๋ผ๊ณ ํ๊ณ , input๊ฐ (์ฌ๊ธฐ์๋ One-hot-encoding ๊ฐ)๊ณผ hidden state๋ฅผ ๊ณฑํฉ๋๋ค.
- ๊ทธ๋ฆผ์์ ๋์ ์์ง๋ ์์ง๋ง ํธํฅ(bias) ๊ฐ๋ ๋ํด์ ํ์ฑํ ํจ์๋ฅผ ํต๊ณผ์์ผ ์๋ก์ด hidden state๋ฅผ ์ป์ต๋๋ค.
hidden layer ์ฐ์ฐ: htโ= σ(Whh⋅ht−1โ + Why⋅xtโ + bh), *[σ๋ ํ์ฑํ ํจ์์ ๋๋ค. - ์ฌ๊ธฐ์๋ Softmax ํจ์, bh๋ ํธํฅ(bias)]
- ๊ทธ๋ฆฌ๊ณ , hidden layer (์๋์ธต) ์ฐ์ฐ ์์์ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋์ถํํ ๊ฐ์ค์น ํ๋ ฌ Why (input ๊ฐ * hidden state)๋ output layer (์ถ๋ ฅ์ธต)์ ์ ๋ฌ์ ํด์ฃผ๊ณ , Whh(input ๊ฐ * hidden state)๋ ๋ค์ ์์ (time step)์ผ๋ก ์ ๋ฌ์ ํด์ค๋๋ค.
๋ณด์ถฉ์ค๋ช : Whh๋ ์๋์ธต (hidden layer)๊ฐ์ ๊ฐ์ค์น, Why๋ ์๋์ธต (hidden layer) ์์ ์ถ๋ ฅ์ธต (output layer)์ผ๋ก์ ๊ฐ์ค์น๋ฅผ ๋ํ๋ ๋๋ค.
์ถ๋ ฅ์ธต์ผ๋ก ์ ๋ฌ๋๋ ๊ฐ์ค์น ํ๋ ฌ Why ์์: xtโ = Why⋅htโ [yt: ํ์ฌ ์์ ์ ์ถ๋ ฅ๊ฐ, ht๋ ํ์ฌ ์์ ์ hidden state]
๋ค์ ์์ ์ผ๋ก ์ ๋ฌ๋๋ ๊ฐ์ค์น ํ๋ ฌ Whh ์์: ht+1 = Whh⋅ht [ht+1์ ๋ค์ ์์ ์ hidden state]
- ๊ทธ ๋ค์์, softmax ํจ์๋ฅผ ์ด์ฉํ์ฌ ํ๋ฅ ๊ฐ์ ๊ณ์ฐํํ, 4๊ฐ์ vocab [h, e, l ,o] ์ค์ ๊ฐ์ฅ ํ๋ฅ ๊ฐ์ด ๋์๊ฑธ Target์ผ๋ก ์ก์์ฃผ๊ณ ๋ค์ input์ผ๋ก ๋ฃ์ด์ค๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ค์ input์ ๊ฐ์ง๊ณ ๋ค์ One-hot-encoding, ๊ฐ์ค์น ํ๋ ฌ ๊ณ์ฐํด์ output layer, ๋ค์ ์์ ์ผ๋ก ์ ๋ฌ, softmax ํจ์์ ๋ฃ์ด์ค์ Target๊ฐ ์ฐ์ถ.. ๊ณ์ ์ด ๊ณผ์ ์ด input Sequence์ ๊ธธ์ด ๋งํผ ๋ฐ๋ณต๋๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
RNN Test Example
RNN Test ๊ณผ์ ์์๋ฅผ ํ๋ฒ ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
- RNN Test ๊ณผ์ ๋ RNN Training ๊ณผ์ ์ด๋ ๋น์ทํฉ๋๋ค. ๋ค๋ง Training ๊ณผ์ ์์ ๋นผ๋จน์ ์ค๋ช ์ ๋ณด์ถฉ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
- ์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ํ๋ฒ ๊ณผ์ ์ ๋๊ณ Sample๊ฐ "e"๊ฐ ๋์จ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๊ฑธ 2๋ฒ์งธ input์ผ๋ก ๋ฃ์ต๋๋ค.
- ๊ทธ๋ฆฌ๊ณ RNN์ ํ์ต๊ณผ์ ์ ๋ณด๋ฉด input์ผ๋ก "hell"์ ๋ฃ์ผ๋ฉด ์ถ๋ ฅ๊ฐ์ผ๋ก "ello"๊ฐ ๋์จ๋ค. ์ด๋ ๊ฒ ๋ณด์๋ฉด ๋ ๊ฑฐ ๊ฐ์ต๋๋ค.
4. Vanilla RNN ๋ด๋ถ
Vanilla RNN ๋ด๋ถ๋ฅผ ์ด์ด์ ํ๋ฒ ๋ณด๊ฒ ์ต๋๋ค.
- Vanilla RNN์ ๋ด๋ถ๋ ์ด ๊ธ ์์์ ์ค๋ช ํ๋ RNN Training & Test Example์ ์ดํดํ๊ณ ๋ณด์๋ฉด ์ดํด๊ฐ ๋ ๊ฒ๋๋ค.
htโ= tanh(Whh⋅ht−1โ + Why⋅xtโ + bh) *[tanh๋ ํ์ฑํ ํจ์์ ๋๋ค. - ์ฌ๊ธฐ์๋ Softmax ํจ์, bh๋ ํธํฅ(bias)]
- ์ค๋ช ์ ํด๋ณด๋ฉด Whh๋ ์๋์ธต (hidden layer)๊ฐ์ ๊ฐ์ค์น
- Why๋ ์๋์ธต (hidden layer) ์์ ์ถ๋ ฅ์ธต (output layer)์ผ๋ก์ ๊ฐ์ค์น๋ฅผ ๋ํ๋ ๋๋ค.
- ์ถ๋ ฅ์ธต์ผ๋ก ์ ๋ฌ๋๋ ๊ฐ์ค์น ํ๋ ฌ Why ์์: xtโ = Why⋅htโ [xt: ํ์ฌ ์์ ์ ์ถ๋ ฅ๊ฐ, ht๋ ํ์ฌ ์์ ์ hidden state]
- ๋ค์ ์์ ์ผ๋ก ์ ๋ฌ๋๋ ๊ฐ์ค์น ํ๋ ฌ Whh ์์: ht+1 = Whh⋅ht ์
๋๋ค.
- [ht+1์ ๋ค์ ์์ ์ hidden state, ์์์์ ๋์จ ht-1์ ์ด์ ์์ ์ hidden state]
๋ค์ ๊ทธ๋ฆผ์ ๋ณด๊ณ ์ค๋ช ํ๋ค๋ฉด
- ํ์ฌ ์์ xt์์์ input ๊ฐ์ ๋ฐ์ต๋๋ค.
- ht-1 (์ด์ ์์ ์์ hidden state) ๊ฐ์ ์ต๋๋ค.
- ๊ฐ์ค์น ํ๋ ฌ W(Whh, Why)๋ฅผ ๊ณฑํ์ฌ ๊ณ์ฐํฉ๋๋ค.
- ๊ทธ ๋ค์์ ํ์ฑํ ํจ์ tanh๋ฅผ ์ ์ฉํฉ๋๋ค.
- ์ต์ข ์ ์ผ๋ก ๊ณ์ฐ๋ ๊ฐ์ด ํ์ฌ ์์ t์ hidden state ht๊ฐ ๋ฉ๋๋ค.
- Vanilla RNN์ xt์ ht-1์ด๋ผ๋ 2๊ฐ์ input์ด ๊ฐ๊ฐ ๊ฐ์ค์น ํ๋ ฌ W(Whh, Why)์ ๊ณฑํด์ Memory Cell์ ์ ๋ ฅ์ด ๋ฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ tanh (ํ์ดํผ๋ณผ๋ฆญํ์ ํธ) ํจ์์ input์ผ๋ก ์ฌ์ฉํ๊ณ , ์ด ๊ฐ๋ค์ hidden layer(์๋์ธต)์ ์ถ๋ ฅ์ธ hidden state(์๋ ์ํ)๊ฐ ๋ฉ๋๋ค.
๋ฐ์ํ
'๐ NLP (์์ฐ์ด์ฒ๋ฆฌ) > ๐ Natural Language Processing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[NLP] GRU Model - LSTM Model์ ๊ฐ๋ณ๊ฒ ๋ง๋ ๋ชจ๋ธ (0) | 2024.01.30 |
---|---|
[NLP] LSTM - Long Short Term Memory Model (0) | 2024.01.29 |
[NLP] RNN (Recurrent Netural Network) - ์ํ์ ๊ฒฝ๋ง (0) | 2024.01.22 |
[NLP] Seq2Seq, Encoder & Decoder (0) | 2024.01.19 |
[NLP] Pre-Trained Language Model - ๋ฏธ๋ฆฌ ํ์ต๋ ์ธ์ด๋ชจ๋ธ (0) | 2024.01.18 |