๐ก ์ฃผ์ : Language models and RNN (Recurrent Neural Network)
๐ ํต์ฌ
- Task : ๋ฌธ์ฅ์ด ์ฃผ์ด์ง ๋ ์ง๊ธ๊น์ง ๋์จ ๋จ์ด๋ค ์ดํ์ ๋์ฌ ๋จ์ด๋ฅผ ์์ธก
- RNN : ๋ค์์ ์ฌ ๋จ์ด๋ฅผ ์์ธกํ๋ ๊ณผ์ ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ํํ๊ธฐ ์ํด ๋์ ํ NN ์ ์ผ์ข
๐ ๋ชฉ์ฐจ / ๋ด์ฉ
1. Language model
(1) Language model ์ด๋
โ ์ ์
- ๋จ์ด์ ์ํ์ค(๋ฌธ์ฅ) ์ ๋ํด ์ผ๋ง๋ ์์ฐ์ค๋ฌ์ด ๋ฌธ์ฅ์ธ์ง๋ฅผ 'ํ๋ฅ ' ์ ์ด์ฉํด ์์ธกํ๋ ๋ชจ๋ธ
- Language modeling = ์ฃผ์ด์ง ๋จ์ด์ ์ํ์ค์ ๋ํด ๋ค์์ ๋ํ๋ ๋จ์ด๊ฐ ์ด๋ค ๊ฒ์ธ์ง๋ฅผ ์์ธกํ๋ ์์
- ํน์ ๋ฌธ์ฅ์ ํ๋ฅ ์ ํ ๋นํ๋ค. ๋ฌธ์ฅ์ ๋จ์ด w(1), w(2) , ... w(t) ๊ฐ ์ฃผ์ด์ก์ ๋ ๋ค์์ ์ฌ ๋จ์ด w(t+1) ์ ํ๋ฅ
โ ํ์ฉ
- ๋ฌธ์ฅ์ ํ๋ฅ ๋๋ ๋จ์ด์ ๋ฑ์ฅ ํ๋ฅ ์ ์์ธก
- ๊ธฐ๊ณ๋ฒ์ญ, ์์ฑ์ธ์, ์๋์์ฑ(ex. ๊ตฌ๊ธ ๊ฒ์)
(2) N-gram Language model
โ ์ ์
- NN (๋ฅ๋ฌ๋ ๋ชจ๋ธ๋ค) ์ด์ ์ ์ฌ์ฉ๋์๋ ์ธ์ด๋ชจ๋ธ์ด๋ค.
- ์์ธก์ ์ฌ์ฉํ ์ ๋จ์ด๋ค์ ๊ฐ์ (window) ๋ฅผ ์ ํ์ฌ ๋ชจ๋ธ๋งํ๋ ๋ฐฉ๋ฒ (์ด์ ์ ๋ฑ์ฅํ n-1 ๊ฐ์ ๋จ์ด๋ค์ ์ด์ฉํด ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋ค)
- N-gram : n ๊ฐ์ ์ฐ์ด์ ๋จ์ด ๋ญ์น
- ๋ค์์ ์ฌ ๋จ์ด๋ ์ด์ ์ ๋ฑ์ฅํ ๋จ์ด๋ค์๋ง ์ํฅ์ ๋ฐ๋๋ค๋ ๊ฐ์ ํ์, corpus ์์ counting ์ ํ๋ ๋ฐฉ์์ผ๋ก ํ๋ฅ ์ ๊ตฌํ๋ค.
- N-gram ๋ฌธ์ฅ์ด ๋ํ๋ ํ๋ฅ ๊ณผ (N-1) gram ์ด ๋ํ๋ ํ๋ฅ ์ ์ด์ฉํด ํ์ฌ ๋ฌธ์ฅ์ด ์ฃผ์ด์ก์ ๋ ๋ค์ ๋จ์ด๊ฐ ์ฌ ํ๋ฅ ์ ๊ณ์ฐํด๋ผ ์ ์๋ค. ์ด๋ ๊ณ์ฐ์ ํ์ํ ํ๋ฅ ์ ํฐ corpus ์์ '์ถํ ๋น๋' ๋ฅผ ์ธ์ ์ป์ ์ ์๋ค.
- N-gram ์ ๋น๋์ ๋ํ ํต๊ณ๋ฅผ ์์งํ๊ณ ์ด๋ฅผ ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋๋ฐ ์ฌ์ฉ
โ ๊ณ์ฐ ์์
โ N-gram ๋ชจ๋ธ์ ๋ฌธ์ ์
- Sparsity ๋ฌธ์ : n (window ํฌ๊ธฐ) ๊ฐ ์ปค์ง์๋ก ์์ข์์ง๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก n < 5 ๋ก ์ค์ ํจ
- ๋ถ๋ชจ์๋ smoothing ๋ฐฉ์์ ์ฐ์ง ์๊ณ backoff ๋ฐฉ์์ ์ฐ๋ ์ด์ : ๋ถ๋ชจ๊ฐ 0์ธ ๊ฒฝ์ฐ๊ฐ ๋ ์ฌ๊ฐํ๊ธฐ ๋๋ฌธ
2. Storage ๋ฌธ์
- n ์ด ์ปค์ง๊ฑฐ๋ corpus ๊ฐ ์ฆ๊ฐํ๋ฉด Corpus ๋ด ๋ชจ๋ n-gram ์ ๋ํ count ๋ฅผ ์ ์ฅํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ธ์ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ๋ค. (์คํ์ด ์ค๋๊ฑธ๋ฆฌ๋ ๋จ์ )
3. Incoherence ๋ฌธ์
๐ค N-gram ๋ฐฉ์์ ์์ ๋จ์ด๋ค๋ง ์ด์ฉํ๋๊น context (๋ฌธ๋งฅ)์ ๋ด๊ธฐ์ ํ๊ณ๊ฐ ์๋ ๊ฒ ๊ฐ์!
- ๋ค์ ๋จ์ด๋ ์์ ๋จ์ด๋ค์๊ฒ๋ง ์ํฅ์ ๋ฐ๋๋ค๋ผ๋ ๊ฐ์ ๋๋ฌธ์ ์ด์ ๋ฌธ๋งฅ์ ์ถฉ๋ถํ ๋ฐ์ํ์ง ๋ชปํจ
- ์ฆ ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋๋ฐ ์์ฃผ ์ค์ํ ์ ๋ณด๊ฐ ๊ทธ ๋จ์ด์ ๋ฌธ์ฅ์์ ๋ฉ๋ฆฌ์ ์์นํ๋ฉด ๊ทธ ์ ๋ณด๋ฅผ ๋์น๊ฒ ๋จ
- N ์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋ฉด ์ด๋์ ๋ ํด๊ฒฐํ ์ ์์ง๋ง sparsity ๋ฌธ์ ๊ฐ ์ฌํด์ง๋ค.
โ Process ์ดํด๋ณด๊ธฐ
- ๊ฐ๋ฅ์ฑ ์๋ ๋จ์ด๋ค์ด ํ๋ฅ ๋ถํฌ๋ก ๋์ถ๋จ
- condition ์กฐ๊ฑด ์ ํ → sampling ํ๋ฅ ๋ถํฌ์์ ์ ์ผ ํ๋ฅ ์ด ๋์ ๋จ์ด๋ฅผ ์ ํ → condition ์กฐ๊ฑด ์ ํ ... ๋ฐ๋ณต
(3) Window-based Neural Network Language model (NNLM)
โ ์ ์
- N-gram ์ ๋ฌธ์ ์ ์ธ Sparsity (์ถฉ๋ถํ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ์ธ์ด๋ฅผ ์ ํํ ๋ชจ๋ธ๋ง ํ์ง ๋ชปํจ) , Incoherence ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์๋ ์ ๊ฒฝ๋ง ๊ธฐ๋ฐ์ ๋ชจ๋ธ
- ํฌ์ ๋ฌธ์ ๋ ๊ธฐ๊ณ๊ฐ ๋จ์ด ๊ฐ ์ ์ฌ๋๋ฅผ ์ ์ ์๋ค๋ฉด ํด๊ฒฐํ ์ ์๊ฒ ๋จ : ํ๋ จ ์ฝํผ์ค์ ์๋ ๋จ์ด ์ํ์ค์ ๋ํ ์์ธก์ด๋ผ๋ ์ ์ฌํ ๋จ์ด๊ฐ ์ฌ์ฉ๋ ๋จ์ด ์ํ์ค๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ ํํ ์์ธก์ ์ํํ ์ ์์ ๐ ์ด๋ฌํ ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ํ์ํ ์ธ์ด๋ชจ๋ธ์ด NNLM
- ๋ค์์ ๋ฑ์ฅํ ๋จ์ด๋ฅผ ์์ธกํ๋ ์ธ์ด๋ชจ๋ธ์ด๋ฉด์ ๋์์ ๋จ์ด์ 'distributed representation' (๋จ์ด ๋ฒกํฐ ํํ) ์ ํ์ตํ๋ค.
- NNLM ๋ N-gram ๊ณผ ์ ์ฌํ๊ฒ ์ ํด์ง n ๊ฐ์ ๋จ์ด๋ง์ ์ฐธ๊ณ ํด์ (์๋์ฐ ๋ฒ์) ์์ธก์ ์ํํ๋ค.
โจ x ์ ์ํ์ค๋ฅผ window ์ฌ์ด์ฆ ๋งํผ ์ ๋ ฅ ๐ ๋จ์ด๋ฅผ ์ํซ์ธ์ฝ๋ฉ ๋ฒกํฐ๋ก ํํ ๐ ๊ฐ ๋จ์ด์ ๋ํด ์๋ฒ ๋ฉ ๋ฒกํฐ๋ฅผ ๋ฝ์๋ด๊ณ ์ด๋ฅผ ์ด์ด๋ถ์ธ๋ค (e) ๐ hidden layer ๐ Softmax ๋ฅผ ํต๊ณผ ๐ ๊ทธ ๋ค์ ๋จ์ด๊ฐ ๋ํ๋ผ 'ํ๋ฅ ๋ถํฌ' ๋ฅผ output ์ผ๋ก ๋์ถ
โพ input : ๋จ์ด๋ค์ ์ํ์ค
๐ฅ output : ๋ค์ ๋จ์ด์ ๋ํ ํ๋ฅ ๋ถํฌ
โ ์ฅ์
- ๋จ์ด ์๋ฒ ๋ฉ์ ํตํด Sparsity ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- ๊ด์ธก๋ n-gram ์ ์ ์ฅํ ํ์๊ฐ ์์ด์ง ← ์๋ฒ ๋ฉ ๋ฐฉ์์ ํตํด ๊ฐ๋ณ ํ๋ฅ ์ด ์๋๋ผ ์ ์ฒด ํ๋ฅ ๋ถํฌ๋ก ํํ๋๊ธฐ ๋๋ฌธ
โ ๋จ์
- ๊ณ ์ ๋ window ํฌ๊ธฐ๊ฐ ๋๋ฌด ์๋ค. (n<5)
- Window ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก W ๋ ์ปค์ง๋ค → window ํฌ๊ธฐ์ ํ๊ณ
- ๊ฐ ๋ฒกํฐ๋ค์ ์์ ํ ๋ค๋ฅธ ๊ฐ์ค์น W๊ฐ ๊ณฑํด์ง๋ฏ๋ก ๋จ์ด์ ๋จ์ด ๊ฐ์ด No symmetry ํ๋ค๋ ๋ฌธ์ ์ ์ด ์กด์ฌ
โ W ์์์ symmetry
โ http://norman3.github.io/prml/docs/chapter05/1.html
- ๊ณต๊ฐ ๋์นญ์ฑ : feed-forward ๋คํธ์ํฌ์์ ์๋ก ๋ค๋ฅธ w์ ๋ํด์๋ ๋์ผํ ์ ๋ ฅ์ ๋ํด ๋์ผํ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ผ ์ ์๋ ์ฑ์ง์ ์๋ฏธํ๋ค.
- Sign-flip symmetry : ๋ถํธ๋ง ๋ฐ๋์ธ ๊ฒฝ์ฐ์ ๋ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ฉด ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค ์ ์๋ค.
- Interchange symmetry : ๊ฐ์ ๋ ์ด์ด ๋ด ์์์ ํ๋ ์ ๋ 2๊ฐ์ ๋ํด ์๋ก ์์น๋ฅผ ๋ฐ๊พธ์ด๋ ์ต์ข ์ถ๋ ฅ๊ฐ์ ๋ณํ๊ฐ ์๋ค.
๐คจ ๊ฐ์ค์น ๊นจ์ง
โ ๋จ์ด์ ๋จ์ด๊ฐ symmetry ํ์ง ์๋ค๋ ๊ฒ์ ์๋ฏธ
- ๋ฃฉ์ ํ ์ด๋ธ : ์ํซ๋ฒกํฐ์ ํน์ฑ์ผ๋ก ์ธํด i ๋ฒ์งธ ์ธ๋ฑ์ค์ 1์ด๋ผ๋ ๊ฐ์ ๊ฐ์ง๊ณ ๊ทธ ์ด์ธ์๋ 0์ ๊ฐ์ ๊ฐ์ง๋ ์ํซ๋จ์ด ๋ฒกํฐ์ ๊ฐ์ค์น W ํ๋ ฌ์ ๊ณฑ์ ์ฌ์ค์ Wํ๋ ฌ์ i ๋ฒ์งธ ํ์ ๊ทธ๋๋ก ์ฝ์ด์ค๋ ๊ฒ (lookup) ๊ณผ ๋์ผํ๋ค๋ ๊ฐ๋
- ๋ฃฉ์ ํ ์ด๋ธ์ ์์ ์ ๊ฑฐ์น๋ฉด V ์ฐจ์์ ๊ฐ์ง๋ ์ํซ๋ฒกํฐ๋ ์ด๋ณด๋ค ๋ ์ฐจ์์ด ์์ M์ฐจ์์ ๋จ์ด๋ก ๋งคํ์ด ๋๋ค. ํ ์ด๋ธ ๋ฃฉ์ ๊ณผ์ ์ ๊ฑฐ์น ํ ์ด ๋จ์ด์ ๋ฒกํฐ๋ฅผ ์๋ฒ ๋ฉ ๋ฒกํฐ๋ผ๊ณ ํ๋ค.
- ๋ฒกํฐ์ ๊ฐ์ค์น ํ๋ ฌ์์์ ์ฐ์ฐ์ ๊ฐ ๋ฒกํฐ๋ค์ด ๊ฐ๊ฐ ๋ค๋ฅธ W ๊ฐ์ค์น ๋ถ๋ถ์ ๊ณฑํ๊ฒ ๋๋ฉด์ ๊ฐ ๋จ์ด๋ค์ด No symmetry ํ๊ฒ ๋๋ ๋ฌธ์ ์ ์ ๊ฐ์ง๊ฒ ๋๋ค.
๐ ๊ฐ์ ๋จ์ด๊ฐ ๋ค๋ฅธ ์์น์ ๋ํ๋๋ฉด ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋ค. ๋จ์ด์ ์์น์ ๋ฐ๋ผ ๊ณฑํด์ง๋ ๊ฐ์ค์น๊ฐ ๋ฌ๋ผ์ง๋ฏ๋ก ๋ชจ๋ธ์ด ๋น์ทํ ๋ด์ฉ์ ์ฌ๋ฌ ๋ฒ ํ์ตํ๋ ๋นํจ์จ์ฑ์ ๊ฐ์ง๋ค.
2. Recurrent Neural Network (RNN)
(1) RNN
โ ๋น๊ต
- FFNN : ์๋์ธต์์ ํ์ฑํ ํจ์๋ฅผ ์ง๋ ๊ฐ์ ์ค์ง ์ถ๋ ฅ์ธต ๋ฐฉํฅ์ผ๋ก๋ง ํฅํ๋ ์ ๊ฒฝ๋ง
- RNN ์ ์๋์ธต์ ๋ ธ๋์์ ํ์ฑํ ํจ์๋ฅผ ํตํด ๋์จ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅ์ธต ๋ฐฉํฅ์ผ๋ก๋ ๋ณด๋ด๋ฉด์ ๋ค์ ์๋์ธต ๋ ธ๋์ ๋ค์ ๊ณ์ฐ์ ์ ๋ ฅ์ผ๋ก ๋ณด๋ด๋ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
โ ์ ์
- ์ํ์ค ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ๋งํ๊ธฐ ์ํด ๋ฑ์ฅํ ๋ชจ๋ธ๋ก ๊ธฐ์กด NN ๊ณผ ๋ค๋ฅธ์ ์ '๊ธฐ์ต(hidden state)' ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ์ ์ด๋ค.
- ๊ธฐ์กด ์ ๊ฒฝ๋ง์ ๋ชจ๋ ์ ๋ ฅ์ด ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ด๋ผ๊ณ ๊ฐ์ ํ๋๋ฐ, NLP ์์๋ ์ด๋ฌํ ๊ฐ์ ์ ์ ์ฉ์ด ์ณ์ง ์์ ์ ์๋ค. ๋ฌธ์ฅ์์ ๋ค์์ ๋์ฌ ๋จ์ด๋ฅผ ์ถ์ธกํ๊ณ ์ถ๋ค๋ฉด ์ด์ ์ ๋์จ ๋จ์ด๋ค์ ์ฐ์์ฑ์ ์๋ ๊ฒ ์์ฒด๊ฐ ํฐ ๋์์ด ๋ ์ ์๋ค.
- Recurrent : ์ง์ ์์ ์ ์๋์ธต์์ ์์ฑ๋ hidden states ๋ฅผ ๋ค์ ์์ ์ input ์ผ๋ก ์ ๋ฌํ๋ ๊ฒ์ด ํน์ง. ์ฆ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ์ด์ ์ ๊ณ์ฐ ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฐ๋๋ค.
- ๋์ผํ ๊ฐ์ค์น W ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ ์ฉ ๐ ๋จ์ด๊ฐ์ symmetric ํ์ง ์์๋ NNLM ์ ๋จ์ ์ ๋ณด์
#python code
hidden_state_t = 0 # ์ด๊ธฐ ์๋ ์ํ๋ฅผ 0(๋ฒกํฐ)๋ก ์ด๊ธฐํ
for input_t in input_length: # ๊ฐ ์์ ๋ง๋ค ์
๋ ฅ์ ๋ฐ๋๋ค.
output_t = tanh(input_t, hidden_state_t) # ๊ฐ ์์ ์ ๋ํด์ ์
๋ ฅ๊ณผ ์๋ ์ํ๋ฅผ ๊ฐ์ง๊ณ ์ฐ์ฐ
hidden_state_t = output_t # ๊ณ์ฐ ๊ฒฐ๊ณผ๋ ํ์ฌ ์์ ์ ์๋ ์ํ๊ฐ ๋๋ค.
โ ํ๊ธฐ
๐ h์ ์ญํ ์ ํตํด ๋ฉ๋ชจ๋ฆฌ(๊ธฐ์ต๋ ฅ) ์ด ์๋ ๊ณ์ธต์ด๋ผ ๋ถ๋ฅธ๋ค.
โ ์ฅ์
- ์ด์ ์ ์ ๋ณด๋ค์ ํ์ฉํ ์ ์๋ค.
- ์ํ์ค ์์์ ๋ง๊ฒ ํ๋์ฉ ์ ๋ ฅํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ์ ๊ธธ์ด์ ์ ํ์ด ์์
- ์ด๋ก ์ ์ผ๋ก๋ ๊ธธ์ด๊ฐ ๊ธด timestamp t ์ ๋ํด ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. (์ด๋ค ๊ธธ์ด์ ํ ์คํธ์ด๋ ๊ณ์ฐ ๊ฐ๋ฅ)
- ๋งค step ๋ง๋ค ๋์ผํ ๊ฐ์ค์น W๊ฐ ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ์ ๋ฐ๋ฅธ ๋ชจ๋ธ์ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ์ง ์๋๋ค. ๋ชจ๋ธ์ ํฌ๊ธฐ๋ Wh ์ We ๋ก ๊ณ ์ ๋์ด ์๋ค.
- ๋งค step ์ ๋์ผํ ๊ฐ์ค์น๋ฅผ ์ ์ฉํ๋ฏ๋ก symmetry ํ๋ค
โ ๋จ์
- ๋จ์ด๊ฐ ํ๋์ฉ ์ ๋ ฅ๋๊ธฐ ๋๋ฌธ์ ์์ฐจ์ ์ธ ๊ณ์ฐ์ด ํ์ํ์ฌ Recurrent ๊ณ์ฐ์ด ๋๋ฆฌ๋ค.
- ์ ๋ณด์ ์์ค ๋ฌธ์ (๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ) ๋๋ฌธ์ ์ค์ ๋ก๋ ๊ธธ์ด๊ฐ ๊ธด timestep ์ ๋ํด์๋ ์ฒ๋ฆฌ๊ฐ ๋๊ธฐ ์ด๋ ต๋ค. ์ฆ, ๋จผ ๊ณณ์ ์๋ ๋จ์ด ์ ๋ณด๋ฅผ ๋ฐ์ํ๊ธฐ๋ ์ด๋ ต๋ค๋ ์๋ฏธ์ด๋ค. = ์ค์ํ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ๋จ๊ณ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ์ด์ง์๋ก ๊ทธ ๊ด๊ณ๋ฅผ ํ์ตํ๊ธฐ ์ด๋ ค์์ง ๐ ๋ณํ ๋ชจ๋ธ์ธ LSTM, attention ๋ชจ๋ธ์ด ์ ์
(2) RNN training
โ ๊ณผ์
1. ๋จ์ด๋ค๋ก ์ด๋ฃจ์ด์ง ์ํ์ค์ corpus ๋ฅผ ์ค๋นํ๋ค.
2. ๋จ์ด๋ค์ ์์๋๋ก RNN ์ ์ ๋ ฅํ๊ณ ๋งค ๋จ๊ณ t ์ ๋ํ ์ถ๋ ฅ๋ถํฌ๋ฅผ ๊ณ์ฐํ๋ค.
3. t ๋จ๊ณ์ ๋ํ ์์คํจ์ Cross-Entropy ๋ฅผ ๊ณ์ฐํ๋ค.
4. ์ ์ฒด training set ์ ๋ํ ์์ค์ ๊ตฌํ๊ธฐ ์ํด ํ๊ท ๊ฐ์ ๊ตฌํ๋ค.
* ์ ์ฒด corpus ์ ๋ํ loss ์ ๊ธฐ์ธ๊ธฐ ๊ณ์ฐ์ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋ฏ๋ก ์ค์ ๋ก ๋ฌธ์ฅ์ด๋ ๋ฌธ์ ๋จ์๋ก ์ ๋ ฅ์ ์ฃผ๊ธฐ๋ ํ๋ค.
* ํน์ SGD ๋ฅผ ํตํด ์ต์ ํ๋ฅผ ํ๊ธฐ๋ ํ๋ค.
โ Backpropagation
- ๊ธฐ์กด ์ญ์ ํ์ ๋ค๋ฅด๊ฒ ์ํ ์ ๊ฒฝ๋ง์ ๊ณ์ฐ์ ์ฌ์ฉ๋ ์๊ฐ, ์์ ์ ์๊ฐ ์ํฅ์ ์ค๋ค. ๋ฐ๋ผ์ ์๊ฐ์ ๋ฐ๋ฅธ ์ญ์ ํ๋ผ๋ BPTT ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค.
- BPTT(Backpropagation Through Time) ๋ฐฉ์ : timestep ์ ๋ฐ๋ผ gradient ๋ฅผ ๋ํด๊ฐ๋ค.
๊ฐ ๋ ์ด์ด๋ง๋ค์ weight๋ ์ค์ ๋ก ๋์ผํ ์จ์ดํธ์ฌ์ผ ํ๋ฏ๋ก ๋ชจ๋ ์ ๋ฐ์ดํธ๋ ๋์ผํ๊ฒ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค. ๋ฐ๋ผ์ ๊ฐ layer๋ง๋ค ๋์ผํ ์์น์ weight์ ํด๋นํ๋ ๋ชจ๋ derivative error๋ฅผ ๋ค ๋ํ๋ค์ (๋ํ๋ ๊ฑฐ๋ ํ๊ท ๋ด๋๊ฑฐ๋ ์ฌ์ค์ ๊ฐ์ ์๋ฏธ) weight๋ฅผ 1๋ฒ ์ ๋ฐ์ดํธ ํด์ค๋ค.
(3) RNN ์ ํ์ฉ
โ RNN ์ ์ ์ถ๋ ฅ์ task ๋ชฉ์ ์ ๋ฐ๋ผ ์ผ๋ง๋ ์ง ๋ฌ๋ผ์ง ์ ์๋ค.
- One-to-One : ์ํ์ ์ธ ๋ถ๋ถ์ด ์์ผ๋ฏ๋ก RNN ์ด ์๋
- One to many : ๊ณ ์ ํฌ๊ธฐ๋ฅผ ์ ๋ ฅํด ์ํ์ค๋ฅผ ์ถ๋ ฅํ๋ค. ์๋ฅผ๋ค์ด ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅํด ์ด๋ฏธ์ง์ ๋ํ ์ค๋ช ์ ๋ฌธ์ฅ์ผ๋ก ์ถ๋ ฅํ๋ ์ด๋ฏธ์ง ์บก์ ์์ฑ task ๋ฅผ ์ํํ๋ค.
- Many to one : ์ํ์ค๋ฅผ ์ ๋ ฅํด ๊ณ ์ ํฌ๊ธฐ๋ฅผ ์ถ๋ ฅํ๋ค. ์๋ฅผ๋ค์ด ๋ฌธ์ฅ์ ์ ๋ ฅํด ๊ธ๋ถ์ ์ ๋๋ฅผ ์ถ๋ ฅํ๋ ๊ฐ์ ๋ถ์๊ธฐ task ๋ฅผ ์ํํ๋ค.
- Many to Many : ์ํ์ค๋ฅผ ์ ๋ ฅํด ์ํ์ค๋ฅผ ์ถ๋ ฅํ๋ค. ์๋ฅผ๋ค์ด ์์ด๋ฅผ ํ๊ตญ์ด๋ก ๋ฒ์ญํ๋ ์๋ ๋ฒ์ญ๊ธฐ task ๋ฅผ ์ํํ๋ค.
- Many to Many(2) : ๋๊ธฐํ๋ ์ํ์ค๋ฅผ ์ ๋ ฅํด ์ํ์ค๋ฅผ ์ถ๋ ฅํ๋ค. ์๋ฅผ๋ค์ด ๋ฌธ์ฅ์์ ๋ค์์ ๋์ฌ ๋จ์ด๋ฅผ ์์ธกํ๋ ์ธ์ด ๋ชจ๋ธ task (์ด๋ฒ chapter ์์ ๋ค๋ฃฌ ๋ด์ฉ) ์ ์ํํ๋ค.
โ tagging : part-of-speech tagging, named entity recognition
โ ๋ฌธ์ฅ๋ถ๋ฅ/๊ฐ์ ๋ถ๋ฅ
โ encoder module : question answering, machine translation
โ generate text : speech recognition, machine translation, summarization
3. Evaluating
(1) Perplexity
โ ์ ์
- ์ธ์ด๋ชจ๋ธ์ ์ฃผ์ด์ง ๊ณผ๊ฑฐ ๋จ์ด ์ ๋ณด๋ก๋ถํฐ ๋ค์์ ์ถํํ ๋จ์ด์ ํ๋ฅ ๋ถํฌ๋ฅผ ์ถ๋ ฅํ๋ ๋ชจ๋ธ
- ์ธ์ด๋ชจ๋ธ์ ํ๊ฐํ๋ ๋ํ์ ์ธ ์ฒ๋๊ฐ Perplexity ๐ ์ถํํ ๋จ์ด์ ํ๋ฅ ์ ๋ํ ์ญ์
- ๊ฐ์ด ์์์๋ก ์ข์ ์ธ์ด๋ชจ๋ธ์ด๋ผ ํ ์ ์๋ค.
โ ์์ ํํ
- ์์คํจ์๋ฅผ ๋์ ํ์ฌ e^L ํํ๋ก ์ ๋ฆฌ๋จ
โ ํ์ด์ค๋ถ ์คํ ๊ฒฐ๊ณผ
๐ ๋ ์์๋ณด๊ธฐ
- ์๋ฐฉํฅ ์ํ ์ ๊ฒฝ๋ง : ์์ t์์์ ์ถ๋ ฅ๊ฐ์ ์์ธกํ ๋ ์ด์ ์์ ์ ์ ๋ ฅ๋ฟ๋ง ์๋๋ผ, ์ดํ ์์ ์ ์ ๋ ฅ ๋ํ ์์ธก์ ๊ธฐ์ฌํ ์ ์๋ค๋ ์์ด๋์ด์ ๊ธฐ๋ฐ
๐ ์ค์ต ์๋ฃ
- pytorch ๋ฌธ์-๋จ์ RNN์ผ๋ก ์ด๋ฆ ๋ถ๋ฅํ๊ธฐ : https://tutorials.pytorch.kr/intermediate/char_rnn_classification_tutorial
- tensorflow ๋ก RNN ์์ฑํด๋ณด๊ธฐ : https://wikidocs.net/22886
- โญโญ ํ ์คํธ ์์ฑ ์์ : https://wikidocs.net/45101
'1๏ธโฃ AIโขDS > ๐ NLP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[cs224n] 8๊ฐ ๋ด์ฉ ์ ๋ฆฌ (0) | 2022.05.09 |
---|---|
[cs224n] 7๊ฐ ๋ด์ฉ ์ ๋ฆฌ (0) | 2022.04.21 |
[cs224n] 5๊ฐ ๋ด์ฉ ์ ๋ฆฌ (0) | 2022.03.22 |
[cs224n] 4๊ฐ ๋ด์ฉ ์ ๋ฆฌ (0) | 2022.03.18 |
NLP deep learning (0) | 2022.03.15 |
๋๊ธ