[Coursera] 6. Opitmization
๐ฅ Coursera์ "Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and
Optimization" ๊ฐ์ข์ ๋ด์ฉ์ ๋ฐฐ์ฐ๋ฉด์ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ Gradient Descent์ ๊ฐ Steop์ ๋ชจ๋ Sample m์ ๋ํด์ Gradient Steps์ ์งํํ๋ค. ์ด๋ฐ Gradient Descent๋ฅผ Batch Gradient Descent๋ผ๊ณ ๋ถ๋ฅธ๋ค.
Parameters Update Rule
- for l = 1, ..., L
- W[l] = W[l] − αdW[l]
- b[l] = b[l] − αdb[l]โ
L์ Layer์ ์, α(lpha)๋ Learning Rate์ด๋ค.
๋ค๋ฅธ Gradient Descent๋ก๋ Stochastic Gradient Descent(SGD)๊ฐ ์๋ค.
ํ๋ฅ ์ ๊ฒฝ์ฌํ๊ฐ๋ฒ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ mini-batch์์์ ํฌ๊ธฐ๊ฐ 1 example์ธ ๊ฒ๊ณผ ๋์ผํ๊ณ update rule์ ๋์ผํ๋ 1๊ฐ์ example์์ ๋ฐ๋ก๋ฐ๋ก gradient๋ฅผ ๊ตฌํด์ ๊ณ์ฐํ๋๊ฒ์ด ํ๋ฆฌ๋ค.
SGD๋ ์ง๋ํ๋ฉด์ ์๋ ดํ๊ฒ๋๋๋ฐ ๋ฐ์ดํฐ๊ฐ training set์ ํฌ๊ธฐ๊ฐ ์์ ๊ฒฝ์ฐ ์ผ๋ฐ GD๊ฐ ๋น ๋ฅด์ง๋ง ํฌ๊ธฐ๊ฐ ํฐ ๊ฒฝ์ฐ๋ SGD๊ฐ ๋น ๋ฅด๋ค.
Mini-Batch Gradient Descent๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๋น ๋ฅด๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
- GD ์ฌ์ฉ ์ ์ ์ฒด training set์ ์ฌ์ฉํ์ง ์๊ฑฐ๋ 1๊ฐ์ training example์ ์ฌ์ฉํ์ง ์๊ณ mini-batch ์ฌ์ฉ.
- mini-batch๋ 1~m ์ฌ์ด์ ํฌ๊ธฐ๋ก GD์ ๊ฐ ์คํ ์ ์งํ.
Mini-Batch Gradient Descent๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์ดํด๋ณด์.
๋ค์ 2๋จ๊ณ๋ฅผ ํตํด ๊ตฌํ๋๋ค.
1. Shuffle
- training set (X,Y)์ ์์ด์ค๋ค.
- X,Y๋ฅผ ๋์ผํ๊ฒ ์์ด์ผํ๋ค.(X,Y๊ฐ ๋ค๋ฅด๊ฒ ์์ด๋ฉด ์๋จ!)
- ์ด ์์ ์ training example๋ค์ด ๋ค๋ฅธ mini-batches๋ก ๋ฌด์์๋ก ๋ถ๋ฆฌ๋๋๋ก ํด์ฃผ๋ ์ญํ
2. Partition
- ์์ธ (X,Y)๋ฅผ mini-batch-size(32, 64 ๋ฑ๋ฑ)๋ก ๋ถ๋ฆฌํด์ค๋ค.
- ํญ์ training examples์ ์๊ฐ mini-batch-size๋ก ๋๋์ด ๋จ์ด์ง์ง ์๊ธฐ ๋๋ฌธ์, ๋ง์ง๋ง mini-batch์ ํฌ๊ธฐ๋ mini-batch-size๋ณด๋ค ์์ ์ ์์ผ๋ ๋ฌธ์ ๋์ง ์๋๋ค.
Momentum
mini-batch GD๋ training example์ ์ผ๋ถ๋ง์ผ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฐ์ดํธ ํ๊ธฐ ๋๋ฌธ์, ์ ๋ฐ์ดํธ์ ๋ณ๋์ด ๊ฝค ์์ผ๋ฉฐ, ์ง๋ํ๋ฉด์ ์๋ ดํ๊ฒ ๋๋ค.
Momentum์ ํตํด ์ง๋์ ๊ฐ์ ์ํฌ ์ ์๋ค.
์ด์ ์ gradient๋ฅผ ์ฌ์ฉํ์ฌ ์ง๋์ ๋ถ๋๋ฝ๊ฒ ํ๋ค. (์ด์ gradient์ ๋ฐฉํฅ ๋ณ์ v(๊ฒฝ์ฌ๋ฅผ ์์ง์ด๋ ์๋)์ ์ ์ฅํด์ ์ฌ์ฉํ๋ค.)
๋ณ์ v๋ 0์ผ๋ก ์ด๊ธฐํํ๊ณ grads ๋์ ๋๋ฆฌ์ ๊ฐ์ ์ฐจ์์ ๊ฐ์ง๋ค.
ํ๋ผ๋ฏธํฐ ์ ๋ฐ์ดํธ๋ ๋ค์๊ณผ ๊ฐ์ ์์ ๋ฐ๋ฅธ๋ค. (l = 1, ..., L)
Adam
Adam์ NN์ ํ๋ธํ๋๋ฐ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ด๋ค.
RMSProp์ Momentum์ ๊ฒฐํฉํด์ ์ฌ์ฉํ๋ค.
Adam์ ๋์ ์์
- ๋ชจ๋ธ์ ์ด๊ธฐ ๋งค๊ฐ ๋ณ์๋ฅผ ์ค์ ํ๋ค.
- ํ์ต๋ฅ (learning rate), ์ผ๋ฐ์ ์ผ๋ก๋ ์์ ์์ ๊ฐ์ผ๋ก ์ค์ ํ๋ค.
- ๋ชจ๋ฉํธ(momentum)์ RMSProp์ ๊ฐ๋ ์ ๊ฒฐํฉํ์ฌ ๋งค๊ฐ ๋ณ์์ ์ ๋ฐ์ดํธ๋ฅผ ์ํํ๋ค.
- ๋งค ๋ฐ๋ณต(iteration)๋ง๋ค ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ์ํํ๋ค:
- ํ์ฌ ๋ฏธ๋๋ฐฐ์น(mini-batch)์ ๊ธฐ์ธ๊ธฐ(gradient)๋ฅผ ๊ณ์ฐํ๋ค.
- ์ผ์ ๋น์จ์ ๋ชจ๋ฉํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ๊ทธ๋๋์ธํธ์ ์ด๋ ํ๊ท ์ ์ ๋ฐ์ดํธํ๋ค.
- ์ผ์ ๋น์จ์ RMSProp์ ์ฌ์ฉํ์ฌ ์ด์ ๊ทธ๋๋์ธํธ์ ์ ๊ณฑ๊ฐ์ ์ด๋ ํ๊ท ์ ์ ๋ฐ์ดํธํ๋ค.
- ํธํฅ ๋ณด์ (bias correction)์ ์ํํ์ฌ ๋ชจ๋ฉํธ์ RMSProp์ ํธํฅ ๋ณด์ ๊ฐ์ ๊ณ์ฐํ๋ค.
- ๊ณ์ฐ๋ ํธํฅ ๋ณด์ ๊ฐ์ ์ฌ์ฉํ์ฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
- ์ง์ ๋ ๋ฐ๋ณต ํ์๋ ๋ค๋ฅธ ์ข ๋ฃ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋ ๋๊น์ง 4๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ค.
Update Rule์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฝ๋ ๊ตฌํ(FP, BP, batch,momentum,Optimizer)
Optimization.ipynb
Colaboratory notebook
colab.research.google.com