๐ฅ Coursera์ "Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and
Optimization" ๊ฐ์ข์ ๋ด์ฉ์ ๋ฐฐ์ฐ๋ฉด์ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค.
Hyperparameter Tuning
ํ์ดํผํ๋ผ๋ฏธํฐ๋ ํ๋ผ๋ฏธํฐ์ ๊ตฌ๋ถํ์ฌ ์ฌ์ฉ์๊ฐ ๋ฅ๋ฌ๋์ ์ํด ์ค์ ํ๋ ๊ฐ๋ค์ ๋ชจ๋ ์ง์นญํ๋ค.
ํ์ดํผํ๋ผ๋ฏธํฐ๋ ๋ค์ํ๊ฒ ์กด์ฌํ์ง๋ง ์ค์์ฑ์ ๋ค๋ฅด๋ค๊ณ ํ ์ ์๋ค.
- Adam์ B1, B2, e์ ๊ฑฐ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ๋ค.(๊ฑฐ์ ์ค์ํ์ง ์์...)
- hidden units, mini-batch size ๋ฑ์ ๋ฐ์ดํฐ ํฌ๊ธฐ์ ์ข ๋ฅ์ ๋ฐ๋ผ ์ค์ ํด์ผํ๋ค.(์ค์!)
์ด๋ฐ ํ์ดํผํ๋ผ๋ฏธํฐ ๊ฐ์ ํ๋ํ๋ ค๊ณ ํ ๋, ํ์ดํผํ๋ผ๋ฏธํฐ๋ ์ด๋ป๊ฒ ์ค์ ํด์ ํ์ ํด์ผํ ๊น?
๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ฐ ์ด๊ธฐ์, 2๊ฐ์ ํ์ดํผํ๋ผ๋ฏธํฐ๊ฐ ์๋ ๊ฒฝ์ฐ 5x5 grid๋ก ์ค์ ํ๊ณ 25๊ฐ์ point ์ค ์ ๋์ํ๋ ๊ฒ์ผ๋ก ๊ณจ๋๋ค.
ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ ํ์ดํผํ๋ผ๋ฏธํฐ์ ๊ฐ์๊ฐ ๋น๊ต์ ๋ง์ง ์์ ๊ฒฝ์ฐ์ ์ ๋์ํ๋ ํธ์ด๋ค.
๋ฅ๋ฌ๋์ ๊ฒฝ์ฐ์ ์ถ์ฒํ๋ ๋ฐฉ๋ฒ์ ๊ฐ point์ ์์น๋ฅผ ์์๋ก ์ ํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ์ด์ ๋, ์ด๋ค ํ์ดํผํ๋ผ๋ฏธํฐ๊ฐ ํด๊ฒฐํ๋ ค๋ ๋ฌธ์ ์์ ๊ฐ์ฅ ์ค์ํ์ง ๋ฏธ๋ฆฌ ์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ๋๋ก ์ํ๋ง์ ์งํํ ๊ฒฝ์ฐ 25๊ฐ์ ๋ชจ๋ธ์ ํ์ตํ๋ 5๊ฐ์ ํ์ดํผํ๋ผ๋ฏธํฐ ๊ฐ(25๊ฐ์ ๋ชจ๋ธ ํ์ต)์ผ๋ก ์๋ํ ์ ์๋ค.
๋๋ฒ์งธ ๋ฐฉ๋ฒ๋๋ก ์ํ๋ง ๋ฌด์์๋ก ์งํํ๋ค๋ฉด, ๊ฐ๊ฐ ๋ชจ๋ธ๋ง๋ค 25๊ฐ์ ํ์ดํผํ๋ผ๋ฏธํฐ ๊ฐ(625๊ฐ์ ๋ชจ๋ธ ํ์ต)์ ์๋ํ๊ฒ ๋๋ค.
ํ์ดํผํ๋ผ๋ฏธํฐ ์ํ๋ง์ ๊ฒฝ์ฐ Coarse to find searching ๋ฐฉ๋ฒ์ด ์์ฃผ ์ฌ์ฉ๋๋ค.
Coarse to find searching
- ์ด๊ธฐ์๋ ๋์ ๋ฒ์์์ ํ์์ ์์ํ์ฌ ์ ์ฐจ์ ์ผ๋ก ์ธ๋ถ ๋ฒ์๋ก ์ขํ๊ฐ๋ฉฐ ํจ์จ์ ์ธ ํ์์ ์ํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ค์๊ณผ ๊ฐ์ ์ ์ฐจ๋ก ์ํ๋๋ค.
1. Coarse Search(๋์ ๋ฒ์ ํ์)
- ์ด๊ธฐ์๋ ๋์ ํ์ดํผํ๋ผ๋ฏธํฐ ๋ฒ์๋ฅผ ์ ์ํ๋ค.
- ์ด ๋ฒ์์์ ๋ช ๊ฐ์ ์ํ ํ์ดํผํ๋ผ๋ฏธํฐ ์กฐํฉ์ ์ ํํ์ฌ ๋ชจ๋ธ์ ํ์ตํ๊ณ ๊ฒ์ฆํ๋ค.
- ์ด ๊ณผ์ ์ ์ด๊ธฐ ํ์ ๋จ๊ณ์ด๋ฏ๋ก ์ธ๋ฐํ ์กฐ์ ๋ณด๋ค๋ ๋๋ต์ ์ธ ํธ๋ ๋ ํ์ ์ ์ด์ ์ ๋๋ค.
2. Fine Search(์ธ๋ถ ๋ฒ์ ํ์)
- Coarse Search๋ฅผ ํตํด ์ป์ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํ๊ณ , ์ฑ๋ฅ์ด ์ฐ์ํ ํ์ดํผํ๋ผ๋ฏธํฐ ์กฐํฉ์ ์ ์ ํ๋ค.
- ์ด ์ ํ๋ ์กฐํฉ ์ฃผ๋ณ์ ์ข์ ๋ฒ์์์ ์ถ๊ฐ์ ์ธ ํ์์ ์งํํ๋ค.
- ์ด ๋จ๊ณ์์๋ ๋ ์ธ๋ถ์ ์ธ ํ์ดํผํ๋ผ๋ฏธํฐ ๊ฐ์ ํ์ํ์ฌ ์ต์ ์ ์กฐํฉ์ ์ฐพ๋๋ค.
์์์ ์ํ๋ง์ ์งํํ๊ณ , ์ถฉ๋ถํ ํ์ํ ํ์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ฒ์๊ฐ ๋ค๋ฅธ ํ์ดํผํ๋ผ๋ฏธํฐ์์ ํจ์จ์ ์ผ๋ก ํ์
๋จ์ํ ์์๋ก ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ํ๋งํ๋ ๊ฒ์ ํน์ ํ ์ ํจํ ๋ฒ์์์ ํ์ํ๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ ๋นํจ์จ์ ์ผ ์ ์๋ค.
๋๋ฌธ์ ์ ํฉํ scale์ ์ ํํด์ ํ์ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
์์1 :
hidden unit์ ๊ฐ์๊ฐ n[l]์ ๊ฐ์ ํ์ํ๋ค๊ณ ๊ฐ์ , ์ ๋์ํ๋ ๋ฒ์๊ฐ 50 ~ 100์ผ ๋
hidden unit์ ๊ฐ์๊ฐ 50 ~ 100 ์ฌ์ด์ ๊ฐ์ผ๋ก ์ ํํ๋ ๊ฒ์ด ๋น๊ต์ ํฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ ์ ์๋ค.
์์2 :
NN์ layer ๊ฐ์๋ฅผ ๊ฒฐ์ ํ๋ ค๊ณ ํ๋ฉด, 2 ~ 4๊ฐ๊ฐ ์ ๋์ํ๋ค๊ณ ์๊ฐํ ๋ 2,3,4 ์ฌ์ด์์ ์ ํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ค.
์์3:
learning rate alpha๋ฅผ ํ์ํ ๋, 0.0001 ~ 1 ๊ฐ ์ฌ์ด๋ก ์์๋ก ๊ท ์ผํ๋๊ฒ ์ํ๋ง์ ์งํํ๋ฉด, ์ฝ 90% ๊ฐ์ด 0.1 ~ 1 ์ฌ์ด์ ์์ ๊ฒ์ด๋ค. ์ด ๋ฐฉ๋ฒ์ ์ํ๋ง์ 90% ์ ๋๋ฅผ 0.1 ~ 1 ๊ฐ์ ์ง์ค, 10% ์ ๋๋ง์ด 0.0001๊ณผ 0.1 ์ฌ์ด์ ๊ฐ์ ์ง์คํ๊ธฐ ๋๋ฌธ์ log scale์ ์ ์ฉํด์ ํ์ํ๋ ๊ฒ์ด ๋ ์ ํฉํ ๊ฒ์ด๋ค.
ํ ๋ถ์ผ์์ ์ฌ์ฉ๋๋ ์ ์ ํ ํ์ดํผํ๋ผ๋ฏธํฐ๊ฐ ๋ค๋ฅธ ๋ถ์ผ์ ์ ์ฉ(Cross-fertilization)์ด ๋ ์ ์๋ค.
Ex. Confonets or ResNets -> NLP
ํ์ดํผํ๋ผ๋ฏธํฐ๋ ์๊ฐ์ด ์ง๋๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ณํ๊ฑฐ๋ ํ๊ธฐ ๋๋ฌธ์ ๋ ์ด์ ์ต์ ์ ํ๋ผ๋ฏธํฐ๊ฐ ์๋๊ฒ ๋ ์ ์๋ค.
๊ทธ๋ฌ๋ฏ๋ก re-evaluateํ๋ ์ถ์ฒํ๋ค.
ํ์ ๋ฐฉ๋ฒ์๋ 2๊ฐ์ง๊ฐ ์๋ค.
1. Babysitting one model
- ํ๋์ ๋ชจ๋ธ์ ํ์ตํ๋ ๋์ ์ง์ค์ ์ผ๋ก ๊ด์ฐฐํ๊ณ ์กฐ์ ํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
- ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ง๊ฑฐ๋, ์ฐ์ฐ์ ์ํ Resource๊ฐ ๋ง์ด ์์ ๋(GPU๋ฑ..๊ฐ ์ถฉ๋ถํ์ง ์๊ณ ํ๋ฒ์ 1๊ฐ์ง ๋ชจ๋ธ๋ง ํ์ตํ ์ ์์ ๊ฒฝ์ฐ)
- ๋ชจ๋ธ ํ์ต ๋์ค ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ์ ์ํ๊ฒ ๊ฐ์งํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํด ๋ชจ๋ธ์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๋ฉฐ, ํ์ดํผํ๋ผ๋ฏธํฐ ์กฐ์ ์ด๋ ํ์ต ๊ณผ์ ์์ ์ ์ํํ๋ค.
- ์ธ๋ฐํ ์กฐ์ ์ ํตํด ์ต์์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ง๋ง, ์๊ฐ๊ณผ ์ธ๋ ฅ์ด ๋ง์ด ์์๋ ์ ์๋ค.
2. Training many models in parallel
- ์ฌ๋ฌ ๊ฐ์ ๋ชจ๋ธ์ ๋์์ ๋ณ๋ ฌ๋ก ํ์ตํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
- ์ด๋ ํ ๋ชจ๋ธ์ ๋ํด์ ํ์ดํผํ๋ผ๋ฏธํฐ์ ๊ฐ์ ์ค์ ํด์ ํ์ตํ ์ ์๊ณ , ์ฌ๋ฌ ๋ชจ๋ธ์ ๋ํ Learning curve๋ฅผ ์ป์ ์ ์๋ค.
- ๋ชจ๋ธ์ ์๊ฐ ๋ง์์๋ก ๊ณ์ฐ ๋น์ฉ์ด ์ฆ๊ฐํ๊ณ ์์์๋ชจ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์ถฉ๋ถํ ์ปดํจํ ์์์ด ํ์ํ๋ค.
Batch Normalization
Batch Normalization์ ํ์ดํผํ๋ผ๋ฏธํฐ ํ์์ ๋ ์ฝ๊ฒ ๋ง๋ค์ด ์ค๋ค.
์์์ ํฌ์คํ Normalization ๋ด์ฉ์ ๋ํด ์ดํด๋ณด๋ฉด Normalization์ input์ ํ๊ท ๊ณผ ๋ถ์ฐ์ ์กฐ์ ํด ๋ ๋๊ทธ๋๊ฒ cost๋ฅผ ๋ณํํด์ GD์ ์๋๋ฅผ ๋ํ์ค๋ค.
deep model์ ๊ฒฝ์ฐ ์ ๋ ฅ์ด X๋ง ์๋๊ฒ ์๋๋ผ a[1],[2](๋ชจ๋ธ์ ๋ ์ด์ด ๊ฐ์ ์ถ๋ ฅ), ํ์ฑํ ํจ์๋ฅผ ํต๊ณผํ ๊ฒฐ๊ณผ ๋ฑ์ด ์๋ค. ์ด ๊ฒฝ์ฐ Batch Normalization ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ๋ค.
์ ์ฉํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. Mini-batch ๋จ์๋ก ์ ๊ทํ
- ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ Mini-batch ๋จ์๋ก ๋๋์ด ์ ๊ทํ๋ฅผ ์ํ
2. ํ๊ท ๊ณผ ๋ถ์ฐ ๊ณ์ฐ
- Mini-batch ๋ด์ ๊ฐ feature map์ ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ณ์ฐ
- ์ด๋ฅผ ํตํด Mini-batch ๋ด์ ๋ฐ์ดํฐ ๋ถํฌ๋ฅผ ํ์ ํ ์ ์์
3. ์ ๊ทํ
- ํ๊ท ๊ณผ ๋ถ์ฐ์ ์ฌ์ฉํ์ฌ Mini-batch ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทํ
- ๊ฐ feature map์ ๊ฐ๋ค์ ํ๊ท ์ ๋นผ๊ณ , ๋ถ์ฐ์ผ๋ก ๋๋์ด ์ ๊ทํ
- ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๋ถํฌ๋ฅผ ํ๊ท ์ด 0์ด๊ณ ๋ถ์ฐ์ด 1์ธ ๋ถํฌ๋ก ์กฐ์
4. ์ค์ผ์ผ ์กฐ์ ๊ณผ ์ด๋
- ์ ๊ทํ๋ ๋ฐ์ดํฐ์ ๋ํด scale ์กฐ์ ๊ณผ shift๋ฅผ ์ํ
- ์ค์ผ์ผ ์กฐ์ ํ๋ผ๋ฏธํฐ์ ์ด๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ๋ถํฌ๋ฅผ ์กฐ์
- ์ด๋ฅผ ํตํด ๋ชจ๋ธ์ด ์ต์ ์ ๋ถํฌ๋ก ํ์ตํ ์ ์๊ฒ ๋์์ ์ค
5. ํ์ฑํ ํจ์ ์ ์ฉ
- ์ ๊ทํ๋ ๋ฐ์ดํฐ์ ํ์ฑํ ํจ์๋ฅผ ์ ์ฉ
- ํ์ฑํ ํจ์๋ ๋น์ ํ์ฑ์ ์ถ๊ฐํ์ฌ ๋ชจ๋ธ์ด ๋ค์ํ ํจํด์ ํ์ตํ ์ ์๋๋ก ๋์์ค
Deep learning Framework๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ง์ ๊ตฌํํ ํ์ ์์ด, tf.nn.batch_normalization์ ์ฌ์ฉํ๋ฉด๋๋ค.
Batch Normalization์ด ์ ์ ๋์ํ๋ ์ด์
- input feature๋ฅผ normalization ํ์ฌ ํ๊ท 0, ๋ถ์ฐ์ 1๋ก ๋ง๋ค์ด ํ์ต์ ์๋๋ฅผ ์ฆ๊ฐ
- ๋ชจ๋ ํน์ฑ์ normalization ํ๊ธฐ ๋๋ฌธ์. input feature x๊ฐ ๋น์ทํ ๋ฒ์๋ฅผ ๊ฐ๊ฒ ๋จ
- batch normalization์ ํตํด ๋ชจ๋ธ์ด weight์ ๋ณํ์ ๋ ๋ฏผ๊ฐํด์ง
Batch Norm์ ๊ณต์
'AI > Coursera' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Coursera] 8. Softmax (0) | 2024.01.01 |
---|---|
[Coursera] 6. Opitmization (0) | 2023.12.31 |
[Coursera] 5. Optimization Problem (0) | 2023.12.28 |
[Coursera] 4. Practical Aspects of Deep Learning (0) | 2023.12.27 |
[Coursera] 3. Gradient Descent (0) | 2023.12.27 |