[Coursera] 4. Practical Aspects of Deep Learning
๐ฅ Coursera์ "Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and
Optimization" ๊ฐ์ข์ ๋ด์ฉ์ ๋ฐฐ์ฐ๋ฉด์ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค.
Train/Dev/Test
์ฒ์ ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ๊ตฌํํ ๋ ํ๋ฒ์ ์ ์ ํ ํ์ดํผ ํ๋ผ๋ฏธํฐ ๊ฐ์ ์ฐพ๋ ๊ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๋ค.
๊ทธ๋์ ๋ฐ๋ณต์ ์ธ ๊ณผ์ ์ ํตํด ๊ฐ์ ์์ ํ๋ฉฐ ์ ์ ํ ํ์ดํผ ํ๋ผ๋ฏธํฐ ๊ฐ์ ์ฐพ์์ผํ๋ค.
์ด ๋ฐ๋ณต ๊ณผ์ ์์ ๊ฐ์ฅ ์ค์ํ๊ฒ์ ๋ฐ๋ณต ๊ณผ์ ์ ์ผ๋ง๋ ํจ์จ์ ์ผ๋ก ํ๋๋์ด๋ค.
์ฐ๋ฆฌ๋ Data๋ฅผ Train/Dev/Test Set ์ด 3๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋ถ๋ฆฌํ๊ณ ์ ์ ํ ์ค์ ํ๋ฉด ํจ์จ์ ์ผ๋ก ์ํํ ์ ์๋ค.
Training Set
- ํ์ต ์๊ณ ๋ฆฌ์ฆ์ ๊ณ์ ์ํํ๋ค.
Dev or CV Set
- ๋ค๋ฅธ ๋ง์ ๋ชจ๋ธ ์ค์ ์ด๋ ํ ๋ชจ๋ธ์ด ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์์ง ํ๊ฐํ๋ค.
- Test Set๊ณผ ๊ฐ์ ๋ถํฌ๋๋ฅผ ๊ฐ์ง๋ ๊ฒ์ด ์ข๋ค.
Test Set
- Dev or CV Set์ ํตํด ๊ฐ์ฅ ์ ์ ํ ๋ชจ๋ธ์ ์ฐพ์ผ๋ฉด ์ต์ข ์ ์ผ๋ก ๋ชจ๋ธ์ ํ๊ฐํ๋ค.
- bias๊ฐ ์๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋ชฉํ์ด๋ฏ๋ก ์ฌ์ฉ๋๋ค.
- bias๊ฐ ์ค์ํ์ง ์๋ค๋ฉด ์ฌ์ฉํ์ง ์์๋ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก Training ๊ณผ Test๋ก ๋ถ๋ฆฌํ ๊ฒฝ์ฐ 70:30 ๋น์จ๋ก, Dev๊ฐ ์ถ๊ฐ๋๋ฉด 60:20:20์ผ๋ก ๋ถ๋ฆฌํ๊ฒ ๋๋ค.
ํ์ง๋ง, ์ด๊ฒฝ์ฐ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์์ ๊ฒฝ์ฐ ํฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
๋น ๋ฐ์ดํฐ ๊ฐ์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ์ ์๊ฐ ์๋ฐฑ๋ง๊ฐ๊ฐ ๋์ด๊ฐ๊ธฐ ๋๋ฌธ์ Dev, Test๋ ์์ ๋น์จ์ ์ฐจ์งํ๋ค.
์๋ฅผ ๋ค์ด 1,000,000๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ Dev์ Test๋ 10,000๊ฐ ์ ๋๋ฉด ์ถฉ๋ถํ๋ค.
Bias/Variance
๋ฐ์ดํฐ ๋ถํฌ๋ฅผ 3๊ฐ์ง๋ฅผ ๋น๊ตํ๋ฉฐ ์ดํด๋ณด์
High Bias ๊ทธ๋ฆผ์ ๋ฐ์ดํฐ๊ฐ Fitting ๋์ง ์์์ Underfitting์ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๋ค.
High Variance ๊ทธ๋ฆผ์ ์์ฃผ ๋ณต์กํ ๋ถ๋ฅ๊ธฐ(ex. DNN)์ Fitting ์์ผฐ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒฝํ๊ฒ Fittingํ๊ฒ๋์ Overfitting์ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๋ค.
Just Right ๊ทธ๋ฆผ์ ์ ์ ํ๊ฒ Fitting๋ ๋ชจ๋ธ์ด๋ค.
์ด ๊ทธ๋ฆผ๋ค ์ฒ๋ผ 2๊ฐ์ ์ ๋ ฅ์ ๋ํด Decision Boundary๋ฅผ ๊ทธ๋ฆฌ๋ฉด ์๊ฐ์ ์ผ๋ก ํ์ธ์ด ๊ฐ๋ฅํ์ง๋ง ๊ณ ์ฐจ์์ ์ ๋ ฅ์ ๊ฐ์ง๋ ๊ฒฝ์ฐ๋ ์๊ฐ์ ์ผ๋ก ํ์ธ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค.
๋ฐฉ๋ฒ1 : Cross Validation์ ํ์ฉํ ์ฑ๋ฅ ํ๊ฐ
- ๋ฐ์ดํฐ๋ฅผ Train/Val/Test๋ก ๋๋์ด ๋ชจ๋ธ์ ํ๋ จํ๊ณ ์ฑ๋ฅ์ ํ๊ฐ.
- Underfitting : Train๊ณผ Val ๋ชจ๋ ์ฑ๋ฅ์ด ๋ฎ๊ฒ ๋์ด.
- Overfitting : Train์ ๋์ง๋ง Val์ ์ฑ๋ฅ์ด ๋ฎ๊ฒ ๋์ด.
๋ฐฉ๋ฒ2 : ํ์ต ๊ณก์ (Learning Curve) ๋ถ์
- ํ์ต ๊ณก์ ์ ํ๋ จ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ํ๋ จ ์ธํธ์ ๊ฒ์ฆ ์ธํธ์ ์ฑ๋ฅ ๋ณํ๋ฅผ ๋ํ๋ด๋ฏ๋ก ์ด๊ฒ์ ํตํด ํ์ธ.
- Underfitting : Train๊ณผ Val ๋ชจ๋์์ ์ฑ๋ฅ์ด ์๋ ด.
- Overfitting : Train์ ๋์ง๋ง Val์ ์ฑ๋ฅ์ด ์๋ ดํ์ง ์์.
๋ฐฉ๋ฒ3 : ๋ณต์ก๋์ ๋ฐ๋ฅธ ์ฑ๋ฅ ๋น๊ต
- ๋ชจ๋ธ์ ๋ณต์ก๋๋ฅผ ์กฐ์ ํ์ฌ ์ฑ๋ฅ์ ๋น๊ตํจ.
- Underfitting : ๋ชจ๋ธ์ด ๋๋ฌด ๋จ์ํ์ฌ Train์ ์ฑ๋ฅ์ด ๋งค์ฐ ๋ฎ๊ฒ ๋์ด.
- Overfitting : ๋ชจ๋ธ์ด ๋๋ฌด ๋ณต์กํ์ฌ Train์ ์ฑ๋ฅ์ด ๋งค์ฐ ๋๊ฒ ๋์ด.
์ด ์ ๋ณด๋ค์ Basic Recipe๋ผ๊ณ ํ๋ค. ์ด๋ฅผ ํตํด ๋จธ์ ๋ฌ๋์ ์์คํ ์ ์ธ ๋ถ๋ถ์ ์ ์ ์๊ฒ ํด์ฃผ๊ณ ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ์ ๊ธฐ์ฌํ ์ ์๋ค.
์๋ฅผ ๋ค์ด ์ด๊ธฐ ๋ชจ๋ธ ํ์ต ์ดํ ์๊ณ ๋ฆฌ์ฆ์ด High Bias๋ฌธ์ ๊ฐ ์๋ค๋ฉด, ๋ ๋ณต์กํ ๋ชจ๋ธ์ ์ ํํ๊ฑฐ๋ ๋ ๋ง์ ๋ฐ๋ณต ํ์ต, ์ต์ ํ๋ ์๊ณ ๋ฆฌ์ฆ ์ ํ์ ํ ์ ์๊ณ , High Bias ๋ฌธ์ ๊ฐ ์๊ณ High Variance ๋ฌธ์ ๊ฐ ์๋ค๋ฉด, ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ฑฐ๋ ์ ๊ทํ(Regularization)์ ์๋ํ ์ ์๋ค.
Regularization
์ด๋ ๋ชจ๋ธ์ด Overfitting ํ๋ค๋ฉด High Variance ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ด๊ณ , ์ ๊ทํ๋ฅผ ์๋ํด๋ด์ผ ํ๋ค.
๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ๋ ์์งํ๋ ๋ฐฉ๋ฒ์ด ์์ง๋ง ๋ฐ์ดํฐ ์์ง์ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ ต๊ฑฐ๋ ๋น์ฉ์ด ๋ง์ด ๋ค๊ธฐ ๋๋ฌธ์ ์ ๊ทํ๋ฅผ ์ด์ฉํ๋ค.
๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ๊ทํ ๋ฐฉ๋ฒ์ผ๋ก L1๊ณผ L2 ๊ท์ ๊ฐ ์๋ค.
L1 Regularization
- ๊ฐ์ค์น์ ์ ๋๊ฐ์ ๋น๋กํ๋ ํจ๋ํฐ๋ฅผ ๋ถ๊ณผํ์ฌ ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ๊ท์ ํ๋ ์ ๊ทํ ๋ฐฉ๋ฒ์ด๋ค.
- ์ผ๋ถ ๊ฐ์ค์น๋ฅผ 0์ผ๋ก ๋ง๋ค ์ ์์ด Feature Selection ํจ๊ณผ(์ค์ํ์ง ์์ ํน์ฑ ์ ๊ฑฐ)๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ํฌ์์ฑ(Sparsity)์ ๊ฐ์ง๋ ๋ชจ๋ธ์ ๋ง๋ค ์ ์๊ณ ์ ์ ์์ ์ค์ ํน์ฑ๋ค๋ง ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๊ตฌ์ฑํ ์ ์๋ค.
- Lasso ๊ท์ ๋ผ๊ณ ๋ ํ๋ค.
- Manhatten Distance(ํน์ ๋ฐฉํฅ์ผ๋ก๋ง ์์ง์ผ ์ ์๋ ๊ฒฝ์ฐ์ ๋ ๋ฒกํฐ๊ฐ์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ)๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ค์น์ ์ ๋๊ฐ์ ๋น๋กํ๋ ํจ๋ํฐ๋ฅผ ๋ถ๊ณผํ๋ค.
alpha = 0.1 # ๊ท์ ์ ๊ฐ๋๋ฅผ ์กฐ์ ํ๋ ๋งค๊ฐ๋ณ์
# ๊ธฐ์กด ๋น์ฉ ํจ์
cost = ...
# L1 ๊ท์ ๋ฅผ ์ ์ฉํ ๋น์ฉ ํจ์
l1_regularization = alpha * (abs(w1) + abs(w2) + ... + abs(wn))
cost_with_l1 = cost + l1_regularization
L2 Regularization
- ๊ฐ์ค์น์ ์ ๊ณฑ์ ๋น๋กํ๋ ํจ๋ํฐ๋ฅผ ๋ถ๊ณผํ์ฌ ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ๊ท์ ํ๋ ์ ๊ทํ ๋ฐฉ๋ฒ์ด๋ค.
- ๋ชจ๋ ๊ฐ์ค์น๊ฐ 0์ ๊ฐ๊น์์ง๋๋ก ๋ง๋ค์ด ์ ์ฒด์ ์ผ๋ก ๊ฐ์ค์น๋ฅผ ์ค์ด๋ ํจ๊ณผ๊ฐ ์๋ค.
- ๊ฐ์ค์น๋ฅผ 0์ ๊ฐ๊น๊ฒ ๋ง๋ค์ง๋ง 0์ด๋์ง ์๊ณ ์์ฃผ ์์ ๊ฐ์ ๊ฐ์ง๋ค. Feature Selection ํจ๊ณผ๊ฐ L1๋ณด๋ค ์๋ค.
- ์ด์์น์ ์ทจ์ฝํ๋ค.
- Ridge ๊ท์ ๋ผ๊ณ ๋ ํ๋ค.
- Euclidean Distance(๋ ์ ์ฌ์ด์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ ํ ๋ ์ฌ์ฉ)๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ค์น์ ์ ๊ณฑ์ ๋น๋กํ๋ ํจ๋ํฐ๋ฅผ ๋ถ๊ณผํ๋ค.
alpha = 0.1 # ๊ท์ ์ ๊ฐ๋๋ฅผ ์กฐ์ ํ๋ ๋งค๊ฐ๋ณ์
# ๊ธฐ์กด ๋น์ฉ ํจ์
cost = ...
# L2 ๊ท์ ๋ฅผ ์ ์ฉํ ๋น์ฉ ํจ์
l2_regularization = alpha * (w1**2 + w2**2 + ... + wn**2)
cost_with_l2 = cost + l2_regularization
Deep Learning์์ ์ด ๊ท์ ๋ค์ด ์ด๋ป๊ฒ Overfitting์ ๋ง์์ฃผ๋ ๊ฒ์ผ๊น?
์๋ฅผ ๋ค์ด L1 ๋๋ L2 ๊ท์ ๋ฅผ ๊ฐํ๊ฒ ๊ฐํ๊ฒ ๋๋ฉด W๊ฐ์ 0๋๋ 0์ ๊ฐ๊น์ด ๊ฐ์ผ๋ก ๋ง๋ค๊ธฐ ๋๋ฌธ์ Hidden Layer์ Unit๋ค์ ์ํฅ์ 0์ผ๋ก ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ ๊ฒฝ๋ง์ ๊ฐ๋จํ๊ฒ ๋ง๋ค ์ ์๋ค. (* L2์ ๊ฒฝ์ฐ 0์ด ์๋๋ผ 0์ ๊ฐ๊น์ด ๊ฐ์ด๋ฏ๋ก hidden unit์ ์ํฅ์ด ์ค์ด๋ ๊ฒ์ด๊ณ ์ฌ์ฉ ์ํ๋ ๊ฒ์ ์๋!)
Dropout Regularization
ํ๋ จ๊ณผ์ ์์ ์ ๊ฒฝ๋ง์ ์ผ๋ถ ๋ด๋ฐ์ ๋ฌด์์๋ก ์ ํํ์ฌ ์ ์ธํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค.(L2 ์ ๊ทํ์ ๋น์ทํ๊ฒ ๋์)
์ด๋ ๊ฐ ๋ด๋ฐ์ด ํ๋ จ ๋ฐ์ดํฐ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ธฐ์ฌํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
์ฃผ๋ก Computer Vision(๋ฐ์ดํฐ๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ๊ฐ ์ผ๋ฐ์ ์ด๋ฏ๋ก Overfitting์ด ๊ฑฐ์ ํญ์ ์ผ์ด๋จ)๋๋ค.
์ ๊ฒฝ๋ง์ ๋ด๋ฐ๋ค์ ์์กดํ์ง ์๊ณ ์ฌ๋ฌ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ถ๋ถ์งํฉ์ผ๋ก ์๋ํ๋๋ก ์ ๋๋๋ค.
- ์ ๊ฒฝ๋ง์ ์ผ๋ฐํ ๋ฅ๋ ฅ ํฅ์์ํด.
- ์ฌ๋ฌ๊ฐ์ง ํน์ง์ ๊ณจ๊ณ ๋ฃจ ํ์ตํ ์ ์๊ฒ ๋์์ค.
์ผ๋ฐ์ ์ผ๋ก ํ๋ จ๊ณผ์ ์์๋ง ์ ์ฉ๋๋ฉฐ ํ๋ จ ์ข ๋ฃ ํ์๋ ๋๋กญ์์์ ๋นํ์ฑํํ๊ณ ๋ชจ๋ ๋ด๋ฐ์ ์ฌ์ฉํ์ฌ ์์ธก์ ์ํํ๋ค.
ํ์ง๋ง, ์ ์ ํ ๋น์จ๊ณผ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ชจ๋ธ๊ณผ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ๋ค๋ฅด๋ฏ๋ก ์ ์ ํ ์ฌ์ฉํด์ผ ํ๋ค.
๋จ์
- Cross-validation์์ ์ค์ ํด์ผํ ํ์ดํผํ๋ผ๋ฏธํฐ๊ฐ ์ฆ๊ฐํ๋ค.
- Cost Function J๊ฐ ๋ช ํํ๊ฒ ์ ์(๋ฐ๋ณต ๋ง๋ค ๋ ธ๋๋ฅผ ๋ฌด์์๋ฅผ ์ ๊ฑฐํ๊ธฐ ๋๋ฌธ)๋์ง ์๋๋ค.
- Gradient Descent ์ฑ๋ฅ์ ๋๋ธ ์ฒดํฌํ๊ธฐ ์ด๋ ต๋ค.
Data augmentation
๋ฐ์ดํฐ๊ฐ ๋น์ธ๊ณ ์์งํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ธ์ฉ ์์ ํด์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ex. ์ด๋ฏธ์ง๋ฅผ ๋ค์ง๊ธฐ, ํ์ , ์ฐ๊ทธ๋ฌ๋จ๋ฆฌ๊ธฐ, ์ค์ธ ๋ฑ์ ๋ฐฉ๋ฒ์ผ๋ก ์๋ก์ด ๋ฐ์ดํฐ ์์ฑ
์ด ๋ฐฉ๋ฒ์ ํฐ ๋น์ฉ ์์ด overfitting์ ์ค์ด๋ ๋ฐฉ๋ฒ์ด๋ค.
Early Stopping
Gradient Descent๋ฅผ ์คํํ๋ฉด์ Training Set Error๋ Cost function๊ณผ Dev set error ๊ทธ๋ํ๋ฅผ ๊ทธ๋ ค W๊ฐ middle-size์ผ ๋ ์ค๋จ์ํค๋ ๋ฐฉ๋ฒ์ด๋ค.
- ํ์ต์ ํ๋ฉด W๋ ์ฆ๊ฐํ๊ฒ๋๋๋ฐ W์ ๋น์จ์ด ์ค๊ฐ ์ ๋๋๋ ์ง์ ์ ์ค์งํ๋ค.
- ๊ฒ์ฆ ๋ฐ์ดํฐ์ ์์ค์ด ์ผ์ ๊ธฐ๊ฐ ๋์ ๊ฐ์ํ์ง ์๊ฑฐ๋ ์ฆ๊ฐํ๊ธฐ ์์ํ๋ ๊ฒฝ์ฐ ํ๋ จ์ ์กฐ๊ธฐ ์ข ๋ฃํ๋ค.
ํ๋ จ ์๊ฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ์ ์ฝํ ์ ์๋ ์ ๊ทํ ๋ฐฉ๋ฒ์ด๋ค. ๊ทธ๋ฌ๋, ์ต์ ํ๋ฅผ ์๋ฒฝํ๊ฒ ํ์ง ๋ชปํ๊ณ Cost Function์ ๋์ด์ ์ค์ผ ์ ์์ผ๋ฏ๋ก ์ดํ ์ต์ ํ๋ฅผ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ค์ ๋ ๋ณต์กํ๊ฒ ํ๋ ๋จ์ ์ด ์๋ค.
Practical Aspects of Deep Learning.ipynb
Colaboratory notebook
colab.research.google.com