๐ก ์ฃผ์ : Backpropagation and Computation Graphs
๐ ๋ชฉ์ฐจ ์ ๋ฆฌ
1. Matrix gradient for NN
(1) NN ์ ๊ณผ์
- feedforward : X * W = output vector = predict ๊ฐ
- backpropagation : output vector ๋ฅผ weight matrix ์ ๋ํด ๋ฏธ๋ถ
(2) ๊ฐ์ค์น ํ๋ ฌ (parameter) ์ ๋ฏธ๋ถ
- Chain Rule : ํจ์์ ์ฐ์๋ฒ์น์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ๊ณ์ฐ ๊ท์น (ํฉ์ฑํจ์์ ๋ฏธ๋ถ)
- NN ์ chain rule ์ ์ด์ฉํด ์ต์ข scalar ๊ฐ์ weight ๋ก ๋ฏธ๋ถํด๊ฐ๋ฉฐ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธ ํ๋ ๋ฐฉ์์ผ๋ก ํ์ต์ ์งํํ๋ค.
- dz/dw ๋ฅผ ๊ณ์ฐํ๋ ๊ณผ์
(3) Gradient Tips
- ๋ณ์๋ฅผ ์ ์ ์ํ๊ณ ์ฐจ์์ ๊ณ์ ์๊ฐํ๊ณ ์์ ๊ฒ
- Chain Rule ์ ์ ์์งํ ๊ฒ
- ๋ชจ๋ธ ๋ง์ง๋ง softmax ๊ฐ์ ๋ํด์ correct class ์ incorrect class ์ ๋ํด ๋ฐ๋ก ๋ฏธ๋ถํ์ฌ ๊ณ์ฐํ ๊ฒ
- ํ๋ ฌ ๋ฏธ๋ถ ๋ฐฉ๋ฒ์ด ํท๊ฐ๋ฆฌ๋ฉด element-wise ๋ถ๋ถ ๋ฏธ๋ถ์ ์ฐ์ตํ ๊ฒ
- Shape convention ์ ์ด์ฉํ ๊ฒ ( error message
(4) Word vector ์ ๋ํ ๋ฏธ๋ถ
- window ๋จ์๋ก ๋จ์ด ๋ฒกํฐ๋ฅผ ์ ์ํ๊ฒ ๋๋ค.
- ๋จ์ด๋ฒกํฐ๋ค์ด task ์ ๋์์ด ๋๋ ๋ฐฉํฅ์ผ๋ก ๋ณํํ๋ค.
(4) Word vector ๋ฅผ ํ์ต์ํค๋ ๊ฒ ๐ค
ํ์ต ๋ฐ์ดํฐ์ TV, telly ๊ฐ ์๊ณ television ์ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์
๐ TV ์ telly ๋ ๋ชจ๋ธ์ ๋ชฉ์ ์ ๋ง๊ฒ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธ ํ๋ฉฐ ์์ง์
๐ ๊ทธ๋ฌ๋ television ์ ํ์ต ๋ฐ์ดํฐ์ ์ ํฌํจ๋์ง ์๋๋ค๋ ์ด์ ๋ก ๊ฐ์ค์น๊ฐ ์ ๋ฐ์ดํธ ๋์ง ๋ชปํ์ฌ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ์ง๋ ๋จ์ด๋ก ์๋ชป ๋ถ๋ฅ๋จ
๐ ์์ ๊ฒฝ์ฐ์๋ Pre-trained ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ๋๋ค!
(5) Pre-trained Model
- ๊ท๋ชจ๊ฐ ํฐ corpus ๋ฐ์ดํฐ์ ์ ์ด๋ฏธ ํ์ต๋์ด ์๋ ๋ชจ๋ธ
- Word2vec, Glove ๋ชจ๋ pre-trained ๋ชจ๋ธ์ด๋ค.
- pre-trained ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด TV, telly, television ๊ฐ์ด ๋น์ทํ ๋จ์ด์ ๊ฒฝ์ฐ ํ๋ จ ๋ฐ์ดํฐ ์ ํฌํจ ์ ๋ฌด์ ๊ด๊ณ ์์ด ์ผ์ ์์ค์ ์ ์ฌ ๊ด๊ณ๊ฐ ํ์ฑ๋๋ค.
- ๋ฐ์ดํฐ์์ด 100๋ง๊ฐ ์ด์์ด๋ฉด ๋๋ค ์๋ ๋ฒกํฐ๋ก๋ถํฐ ์์ํด์ ๋ชจ๋ธ์ ํ์ต์์ผ๋ ๊ด์ฐฎ์
(6) Fine - Tuning
- ๊ธฐ์กด์ ํ์ต๋ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ธ์ ๊ตฌ์กฐ๋ฅผ ๋ชฉ์ task ์ ๋ง๊ฒ ๋ณํํ๊ณ ์ด๋ฏธ ํ์ต๋ Weight ๋ก ๋ถํฐ ํ์ต์ ์ ๋ฐ์ดํธ ํ๋ ๋ฐฉ๋ฒ
- Training Dataset ์ด ๋ง์ ๊ฒฝ์ฐ์ fine tuning ์ ํ์ฌ word vector ๋ฅผ ํ์ต์ํค๋ฉด ์ฑ๋ฅ์ด ์ข์์ง
* retraining : data ๋ฅผ ์๋ก ๊ฐ์ ธ์์ train ๊ณผ์ ๋ถํฐ ๋ค์ ํ์ต์ํค๋ ๊ฒ
2. Computation Graphs and Backpropagation
(1) Computational Graph
- ๊ณ์ฐ ๊ทธ๋ํ : ๊ณ์ฐ ๊ณผ์ ์ ๊ทธ๋ํ๋ก ๋ํ๋ธ ๊ฒ์ผ๋ก ์ฌ๋ฌ๊ฐ์ node ์ ์ (edge) ๋ก ํํ๋๋ค.
(2) Forward Propagation
- x (input) ์์ ์์ํ์ฌ s ๋ฅผ ๊ตฌํ๋ ๋ฐฉํฅ๊น์ง์ ์ฐ์ฐ ๊ณผ์
(3) Back Propagation
- ์์ ํ๋ฅผ ํตํด ์ป์ด์ง ๊ฒฐ๊ณผ๊ฐ๊ณผ ์ค์ ๊ฐ์ ๋น๊ตํ์ฌ ์ค์ฐจ๋ฅผ ๊ณ์ฐ ๐ ์ค์ฐจ๋ฅผ ๋ฏธ๋ถํ์ฌ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธ!
- Single Node (single input)
- upstream gradient → local gradient → downstream gradient
Downstream = Local * Upstrean
โจ chain rule โจ
- single node (muliple input)
- ๊ณ์ฐ ํจ์จ์ฑ : ์ญ์ ํ๋ฅผ ์ํํ ๋ ํจ์จ์ ์ผ๋ก ๋ฏธ๋ถ๊ฐ์ ์ป๋ ๊ฒ
(4) Gradient ๋ฅผ ๊ณ์ฐํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ
- Analytic ํด์์ ๋ฐฉ๋ฒ ๐ ์์์ ์ค๋ช
ํ๋ computational graph ๋ฅผ ํตํ Chain rule ๊ธฐ๋ฐ ๊ณ์ฐ ๋ฐฉ์์ผ๋ก ๋น ๋ฅด๊ฒ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ ๊ณ์ฐ ๊ณผ์ ์์ ์ค์๊ฐ ์์ ์ ์๋ค๋ ๋จ์ ์ด ์กด์ฌ
- ์ฐธ๊ณ . pytorch ๋ tensorflow ๋ฑ์ ๋ฅ๋ฌ๋ ํ๋ ์์ํฌ ๋ฐ๋ฌ ์ด์ ์๋ ์ง์ Gradient ๋ฅผ ๊ณ์ฐํ์ฌ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธ ํ์์
- Numerical ์์น์ ๋ฐฉ๋ฒ : ์ฝ๊ฒ ๋ฏธ๋ถ๊ฐ์ ์ป์ ์ ์์ง๋ง ์ฐ์ฐ๋์ด ๋งค์ฐ ๋ง์
- (hybrid) : ํน์ weight ์ ๋ํ ๋ฏธ๋ถ์ด ์ ๊ณ์ฐ๋์๋์ง ํ์ธํ๊ธฐ ์ํด ์์น์ ๋ฐฉ๋ฒ์ผ๋ก check ํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
3. Tips for NN
(1) Regularization to prevent overfitting
- ๊ณผ์ ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด feature ๋ค์ด ๋ง์ ๋ฐ์ดํฐ์ ์ ๊ฒฝ์ฐ θ ์ ๋ํ ๊ท์ ๋ฅผ ์ถ๊ฐํ๋ค.
(2) Vectorization
- for loop ์ ์ฌ์ฉํด์ ๊ฐ element ์ ์ผ์ผํ ์ ๊ทผํ๋ ์ฐ์ฐ๋ณด๋ค ํ๋ ฌ & ๋ฒกํฐ ๊ธฐ๋ฐ์ ์ฐ์ฐ์ ์๋๊ฐ ํจ์ฌ ๋น ๋ฅด๋ค.
(3) Nonlinearities
- ReLU ์ ๊ฐ์ ๋น์ ํ ํ์ฑํ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
(4) Initialization
- ๊ฐ์ค์น๋ฅผ small random value ๋ก ์ด๊ธฐํํ๋ค.
- ์๋์ธต & ์ถ๋ ฅ์ธต์ bias ๋ 0์ผ๋ก ์ด๊ธฐํ ํ๋ค.
- ๋ค๋ฅธ Weight๋ค์ ๋๋ฌด ํฌ์ง๋, ์์ง๋ ์์ ๋ฒ์ ๋ด์ Uniform distribution์์ ์์๋ก ์ถ์ถํ๋ค.
(5) Optimizers
- SGD ์ ๋ณดํต ์ฌ์ฉ
- ๋ณต์กํ ์ ๊ฒฝ๋ง์ผ ๋ Adaptive ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
- Adaptive Optimizer ๐ ๊ณ์ฐ๋ Gradient ์ ๋ํ ์ ๋ณด๋ฅผ ์ถ์ ํ๋ฉฐ ํ๋ผ๋ฏธํฐ๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ์
- Adagrad, RMSprop, Adam, SparseAdam
(6) Learning Rates
- 0.001 ์ ๋
- ๊ฐ์ด ๋๋ฌด ํฌ๋ฉด ๋ชจ๋ธ์ด ๋ฐ์ฐ, ๋๋ฌด ์์ผ๋ฉด ์ ๋ฐ์ดํธ์์ด ์์ ํ์ต์ด ๋๋ ค์ง
- ํ์ต์ ์งํ ์ํค๋ฉด์ ํ์ต๋ฅ ์ ๊ฐ์์ํค๋ ๊ฒ์ด ์ฑ๋ฅ ํฅ์์ ๋์์ด ๋จ!
'1๏ธโฃ AIโขDS > ๐ NLP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[cs224n] 6๊ฐ ๋ด์ฉ ์ ๋ฆฌ (0) | 2022.03.24 |
---|---|
[cs224n] 5๊ฐ ๋ด์ฉ ์ ๋ฆฌ (0) | 2022.03.22 |
NLP deep learning (0) | 2022.03.15 |
[cs224n] 3๊ฐ ๋ด์ฉ ์ ๋ฆฌ (0) | 2022.03.14 |
[cs224n] 2๊ฐ ๋ด์ฉ ์ ๋ฆฌ (0) | 2022.03.14 |
๋๊ธ