<content>
- L2 regularization
- dropout
- data augmentation
- early stopping
์ ๊ทํ (variance๋ฅผ ์ค์ด๊ธฐ ์ํ ๋ฐฉ๋ฒ)
1. L2 regularization
L2 regularization์ด๋ ๋ฌด์์ธ๊ฐ?
- loss function์ W ํ๋ ฌ์ norm์ ๋ํด์ฃผ์ด W ํ๋ ฌ์ ํฌ๊ธฐ๋ฅผ ์ ์ฝํจ์ผ๋ก์จ overfitting์ ๋ง์ ์ ์๋ค.
- W์ ๊ฐ ์์๊ฐ ์ปค์ง๋ฉด ์ด ๊ฐ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง๋ฉฐ overfitting์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์
W์ ํฌ๊ธฐ๋ฅผ ์ ์ฝํจ์ผ๋ก์จ ์ ๊ทํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค. - $$ J = \frac{1}{m} \sum_{i=1}^{m} L(\hat{y^{(i)}}, y^{(i)})+\frac{\lambda}{2m} \sum_{l=1}^{L} ||W^{[l]}||_F^{2} $$
- $$ ||W^{[l]}||_F^{2} = \sum_{i=1}^{n^{[l]}} \sum_{j=1}^{n^{[l-1]}}w_{ij}^{[l]} $$
- * ์ฌ๊ธฐ์ W^[l] ์ l๋ฒ์งธ layer์์์ weight matrix๋ฅผ ์๋ฏธํ๋ค.
- * ์ฌ๊ธฐ์ n^[l]์ l๋ฒ์งธ layer์์์ ๋ ธ๋์ ์๋ฅผ ์๋ฏธํ๋ค.
- * ์ฌ๊ธฐ์ m์ ๋ฐ์ดํฐ์ ์๋ฅผ ์๋ฏธํ๋ค.
- ์์ ์๊ณผ ๊ฐ์ด loss์ weight matrix์ norm์ ๋ํด์ค ๊ฒ์ ์ต์ข ์ ์ธ loss๋ก ์ฌ์ฉํ๋ค.
backpropagation์์๋ ์ด๋ ํ ์ผ์ด ์ผ์ด๋๋๊ฐ?
- $$ \frac{\partial J}{\partial W^{[l]}} = \frac{1}{m} \sum_{i=1}^{m} \frac{\partial}{\W^{[l]}}L(\hat y^{(i)}, y^{(i)}) + \frac{\lambda}{m}W^{[l]} $$
- $$ W^{[l]} \leftarrow W^{[l]}-\alpha \frac{\partial J}{\partial W^{[l]}}
=W^{[l]} - \alpha \frac{1}{m} \sum_{i=1}^{m} \frac{\partial}{\W^{[l]}}L(\hat y^{(i)}, y^{(i)}) - \alpha \frac{\lambda}{m}W^{[l]} $$ - ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋๋ฉฐ, weight matrix W๋ฅผ ์ ๋ฐ์ดํธํ ๋ ๊ทธ ํฌ๊ธฐ๋ฅผ ๋ ์๊ฒ ๋ง๋ ๋ค.
๊ทธ๋ ๋ค๋ฉด loss์ weight matrix์ norm์ ๋ํด์ฃผ๋ ๊ฒ์ด ์ overfitting์ ๋ง๋ ํจ๊ณผ๊ฐ ์๋ ๊ฒ์ธ๊ฐ?
- W๊ฐ ์ปค์ง๋ ๊ฒ์ ๋ง์ local noise์ ๋ ๋ฏผ๊ฐํ๋๋ก ํด์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.
- W๊ฐ ํฌ๋ค๋ฉด input์ ์ฌ์ํ ์ฐจ์ด๊ฐ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์๋์ด ์์ธก๊ฐ์๋ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ด๋ค.
- activation function ๊ด์ ์์ ์ ๊ทํ์ ํจ๊ณผ๋ฅผ ์ค๋ช ํ๋ฉด,
- $$ z^{[l]}= w^{[l]}a^{[l-1]}+b^{[l]} $$
- W^[l]์ด ์์์ง์๋ก z^[l] ๋ํ 0์ ๊ฐ๊น์์ง๊ฒ ๋๋ค.
- ์ด ๋ 0 ๊ทผ์ฒ์์ ์ ํํํ๋ฅผ ๋๋ sigmoid, tanh๋ฅผ ํ์ฑํํจ์๋ก ์ฌ์ฉํ๋ค๋ฉด,
- ๋น์ ํ ์์ฌ๊ฒฐ์ ์ด ์ผ์ด๋์ง ์๊ณ , ํ์ฑํํจ์๋ฅผ ํต๊ณผํด๋ ์ ํ layer๋ง ์๋ ๊ผด์ด ๋์ด overfitting์ด ๋ฐฉ์ง๋๋ ํจ๊ณผ๊ฐ ์๋ค.
์ ๊ทํ์ ์ ๋๋ ์ด๋ป๊ฒ ์กฐ์ ํ๋๊ฐ?
- lambda๊ฐ์ ํตํด ์กฐ์ ์ด ๊ฐ๋ฅํ๋ค.
- lambda๊ฐ ํฌ๋ค๋ฉด weight matrix๋ฅผ ๋ ์๊ฒ ๋ง๋ค์ด์ฃผ๋ ํจ๊ณผ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ๊ทํ์ ๊ฐ๋๊ฐ ์ธ๋ค.
(underfitting์ ์ํ ์กด์ฌ) - lambda๊ฐ ์๋ค๋ฉด weight matrix๋ฅผ ๋ ์๊ฒ ๋ง๋ค์ด์ฃผ๋ ํจ๊ณผ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ๊ทํ์ ๊ฐ๋๊ฐ ์ฝํ๋ค.
(overfitting์ ์ํ ์กด์ฌ) - ๋ฐ๋ผ์ ์ ์ ํ labmda ๊ฐ์ ์ค์ ์ด ์ค์ํ๋ค.
2. dropout
dropout ์ด๋?
- ์ผ์ ํ๋ฅ ๋ก ๋ ธ๋๋ฅผ ๋๋ ๊ฒ์ด๋ค.
- ์ฌ๊ธฐ์ ๋ ธ๋๋ฅผ ๋๋ค๋ ๊ฒ์ activation function์ ํต๊ณผํ ๊ฐ์ 0์ผ๋ก ๋๊ฒจ์ฃผ๋ ๊ฒ์ด๋ค.
- dropout์ ๊ฒฝ์ฐ, activation function์ ํต๊ณผํ ๋ค ์ ์ฉํด์ฃผ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
- dropout ์ค inverted dropout์ด ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
- inverted dropout์ ๊ฒฝ์ฐ dropout ํ keep_prop์ผ๋ก ๊ฐ์ ๋๋ ์ฃผ๋๋ฐ (=keep_prop์ 0~1 ์ฌ์ด์ ๊ฐ์ด๋ฏ๋ก, keep_prop์ผ๋ก ๋๋ ์ฃผ๋ ๊ฒ์ ๊ฐ์ ์ปค์ง๊ฒ ํ๋ ํจ๊ณผ๋ฅผ ์ค๋ค), ๊ทธ ์ด์ ๋ dropout์ ์งํํ ํ activation function ํต๊ณผํ ๊ฐ๋ค์ ๊ธฐ๋๊ฐ์ ์ ์งํ๊ธฐ ์ํจ์ด๋ค. ๋๋ ์ฃผ์ง ์์ผ๋ฉด ๋ค์ layer๋ฅผ ํต๊ณผํ๋ฉด์ ๊ฐ์ด ์ ์ ์์์ง๊ธฐ ๋๋ฌธ์ด๋ค.
- train ๊ณผ์ ์์ dropout ํ๋ฅ ๋ก ๋๋ ์ฃผ์ง ์๋ ๊ฒฝ์ฐ test ์ dropout์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ํ์ฑํํจ์ ํต๊ณผํด์ ๋์จ ๊ฐ์ scalingํด์ฃผ์ด์ผ ํ๋ค. ํ์ง๋ง inverted dropout์ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๊ณผ์ ์ด ํ์์๋ค.
dropout ์ฌ์ฉํ๋ ์ด์ ?
- dropout์ ์ ์ฉํ๋ฉด ํน์ node๊ฐ ๊บผ์ง๋๋ผ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๊ธฐ ์ํ ํ์ต์ ์งํํ๋ค.
์ด ๊ณผ์ ์์ ํน์ node์ ์์กดํ๋ ํ์์ ์ค์ด๋ ๋ฐฉํฅ์ผ๋ก ํ์ต์ด ์ด๋ค์ง๋ฉฐ overfitting์ ๋ง์ ์ ์๊ฒ ๋๋ค. - ์ฆ ํ๋์ ๋ ธ๋์ ๊ฐ์ค์น๊ฐ ์ง์ค๋๋ ๊ฒ์ด ์๋, ๊ฐ์ค์น๋ฅผ ์ฌ๋ฌ ๋ ธ๋๋ผ๋ฆฌ ๊ณ ๋ฃจ ๋๋ ๊ฐ์ง๊ฒ ๋์ด overfitting์ ๋ง์ ์ ์๊ฒ ๋๋ค.
dropout ์ฌ์ฉํ๋ ์์ ?
- ๋ชจ๋ neural network์ dropout์ ์ ์ฉํ๋ ๊ฒ์ด ์๋๋ค! overfitting ๋๋ ๊ฒฝ์ฐ ์ ์ฉํ๋ ๊ฒ์ด๋ค.
- computer vision์์๋ dropout์ ๊ฑฐ์ ํ์์ ์ผ๋ก ์ฌ์ฉํ๋๋ฐ,
computer vision์์๋ ์ฐจ์ ๋๋น ๋ฐ์ดํฐ์ ์๊ฐ ์ ์ ๊ฒฝ์ฐ๊ฐ ๋ง์ ๋์ ํ๋ฅ ๋ก overfitting์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. - ๋ชจ๋ layer์ dropout์ ๋ฐ๋์ ์ ์ฉํ ํ์๋ ์๋ค.
overfitting์ด ๊ฑฑ์ ๋๋ layer, ์ฆ W ํ๋ ฌ์ ํฌ๊ธฐ๊ฐ ํฐ layer์์ ๋์ ๋น์จ์ dropout์ ์ ์ฉํ๋ฉด ์ข๋ค.
3. data augmentation
- ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ ๋ณด๋ค๋ ํ์ต ํจ๊ณผ๊ฐ ๋ฎ์ง๋ง, ๊ทธ๋๋ ๋ฌด๋ฃ๋ก ๋ฐ์ดํฐ๋ฅผ ๋๋ฆด ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
- ๋ค์ง๊ธฐ, ์๋ฅด๊ธฐ ๋ฑ๋ฑ์ ์ํํ ์ ์๋๋ฐ ๋ฐ์ดํฐ ํน์ง์ ๋ฐ๋ผ ์ ์ํํด์ผ ํ๋ค!
- ์๋ฅผ ๋ค์ด, ์ซ์ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์ข์ฐ๋ฐ์ ์ ํ๋ฉด ์คํ๋ ค ํ์ต์ ๋ฐฉํด๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค.
4. early stopping
- ํ์ต์ ์งํํ๋ฉด์ W ํ๋ ฌ์ ๊ฐ ์์๊ฐ ์ปค์ง๊ฒ ๋๋ค.
- ์ ์ฒด ํ ๋ฒ์ ํ์ต์ ์งํํ๊ณ , W ํ๋ ฌ์ ํฌ๊ธฐ๊ฐ ์ ๋ฐ ์ ๋๊ฐ ๋๋ ์ง์ ์์์ ๊ฐ์ ์ทจํ๋ ๋ฐฉ์์ด๋ค.
- ํน์ epoch์ ๋ฐ๋ผ validation loss๊ฐ ์ฆ๊ฐํ๋ฉด ํ์ต์ ์ค๋จํ๋ ๊ธฐ๋ฒ์ ์๋ฏธํ๊ธฐ๋ ํ๋ค.
'๐ > Coursera_DL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
WEEK3 : weight initialization (๊ฐ์ค์น ์ด๊ธฐํ) (0) | 2020.12.19 |
---|---|
WEEK3 : normalizing input (์ ๋ ฅ ์ ๊ทํ) (0) | 2020.12.19 |
WEEK3 : train test split (with bias) (1) | 2020.12.19 |
WEEK2 : activation function (ํ์ฑํํจ์) (0) | 2020.12.18 |
WEEK1 : introduction to Neural Network (0) | 2020.10.20 |