ํด๋น ๊ธ์ FastCampus - '[skill-up] ์ฒ์๋ถํฐ ์์ํ๋ ๋ฅ๋ฌ๋ ์ ์น์ ๊ฐ์๋ฅผ ๋ฃ๊ณ ,
์ถ๊ฐ ํ์ตํ ๋ด์ฉ์ ๋ง๋ถ์ฌ ์์ฑํ์์ต๋๋ค.
1. Regularization์ด๋?
-
Overfitting(๊ณผ์ ํฉ)์ ๋ฐฉ์งํ๊ธฐ ์ํด Generalization Error๋ฅผ ์ค์ด๋ ๋ค์ํ ๊ธฐ๋ฒ
-
์ผ๋ฐ์ ์ผ๋ก training error๋ฅผ ์ต์ํํ๋ ๊ฒ์ ์ผ๋ถ๋ฌ ๋ฐฉํดํ๋ ํํ
โ ์ด ๊ณผ์ ์์ training error๊ฐ ๋์์ง ์ ์์
-
loss๊ฐ ์ต์ํ ๋ ์๋ก ์ต๋ํ ๋๋ term์ ์ถ๊ฐํ๋ ์๋ฆฌ
โ ์ต์ํ term๊ณผ ์ต๋ํ term์ ๊ท ํ์ ์ฐพ๋๋ก ํจ
-
๋ชจ๋ธ์ด noise์ ๊ฐํ๊ณ unseen ๋ฐ์ดํฐ์๋ ์ ์๋ํ๋๋ก ์ ๋
Overfitting
Training error๊ฐ generalization error์ ๋นํด ํ์ ํ ๋ฎ์์ง๋ ํ์
2. ์ฃผ์ Regularization ๊ธฐ๋ฒ ๋ถ๋ฅ
| ์ ์ฉ ์์ญ | ๊ธฐ๋ฒ |
|---|
| ๋ฐ์ดํฐ | Data Augmentation, Noise Injection |
| ์์ค ํจ์ | Weight Decay (L1, L2) |
| Layer ์ถ๊ฐ | Dropout, Batch Normalization |
| ํ์ต ๋ฐฉ์ | Early Stopping, Bagging & Ensemble |
Ensemble Learning
์ฌ๋ฌ ๊ฐ์ ๋ชจ๋ธ์ ์กฐํฉํด ํ๋์ ๊ฐ๋ ฅํ ์์ธก ๋ชจ๋ธ์ ๋ง๋๋ ๊ธฐ๋ฒ
Bagging (Bootstrap Aggregating)
Ensemble์ ํ ์ข
๋ฅ๋ก, ์ฌ๋ฌ ๋ชจ๋ธ์ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ํ์ ํ์ต์์ผ ์์ธก์ ํ๊ท ๋๋ ํฌํ๋ก ๊ฒฐํฉํ๋ ๋ฐฉ์
e.g. ๋๋คํฌ๋ ์คํธ(Random Forest)
Boosting
์ฝํ ๋ชจ๋ธ(weak learner)์ ์์ฐจ์ ์ผ๋ก ์ฐ๊ฒฐํด์ ์ฑ๋ฅ์ ์ ์ ๋์ด๋ ๋ฐฉ์
์ด์ ๋ชจ๋ธ์ด ํ๋ฆฐ ๋ถ๋ถ์ ๋ณด์ํ๋ ๋ฐฉํฅ์ผ๋ก ๋ค์ ๋ชจ๋ธ์ด ํ์ต
Stacking
์ฌ๋ฌ ๋ค๋ฅธ ์ข
๋ฅ์ ๋ชจ๋ธ์ ์ถ๋ ฅ์ ๋ค์ ์กฐํฉํด์ ์ต์ข
์์ธก์ ํ๋ ๋ฐฉ์
๋ณดํต 1๋จ๊ณ ๋ชจ๋ธ๋ค์ ๊ฒฐ๊ณผ๋ฅผ ๋ฉํ ๋ชจ๋ธ(meta-model)์ด ์
๋ ฅ์ผ๋ก ๋ฐ์ ์ต์ข
์์ธก
3. Weight Decay
- Weight parameter๋ ๋
ธ๋์ ๋
ธ๋ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋
โ ์ซ์๊ฐ ์ปค์ง์๋ก ๊ฐํ ๊ด๊ณ
- ๋ํ, ๋ณดํต ํ์ต์ด ์งํ๋ ์๋ก Weight์ ํฌ๊ธฐ๊ฐ ์ปค์ง
- ์์ค ํจ์์ Weight์ ๊ฐ์ค์น ํฌ๊ธฐ์ ๋ํ ํจ๋ํฐ ํญ์ ์ถ๊ฐ
โ ์ ์ฒด์ ์ธ ๊ด๊ณ์ ๊ฐ๋๋ฅผ ์ ํํ์ฌ ์ถ๋ ฅ ๋
ธ๋๊ฐ ๋ค์์ ์
๋ ฅ ๋
ธ๋๋ก๋ถํฐ ๋ง์ด ๋ฐฐ์ฐ์ง ์๋๋ก ์ ํ
โ ๊ณผ๋ํ weight ํ์ฅ์ ๋ฐฉ์งํ์ฌ ๊ณผ์ ํฉ ๋ฐฉ์ง
L2 Regularization (๊ฐ์ฅ ์ผ๋ฐ์ )
L(ฮธ)=Loriginalโ(ฮธ)+ฮฑโโฃโฃWโฃโฃยฒ

L1 Regularization
L(ฮธ)=Loriginalโ(ฮธ)+ฮฑโโฃโฃWโฃโฃ

| ํญ๋ชฉ | L1 Norm | L2 Norm |
|---|
| ์์ | Loss+ฮปโabs(wiโ) | Loss+ฮปโwi2โ |
| ๋ณ๋ช
| Lasso | Ridge |
| ๊ฐ์ค์น ์ฒ๋ฆฌ | ์ผ๋ถ ๊ฐ์ค์น๋ฅผ ์์ ํ 0์ผ๋ก ๋ง๋ฆ | ๋ชจ๋ ๊ฐ์ค์น๋ฅผ ์๊ฒ ์ ์ง |
| ํจ๊ณผ | Feature Selection ๊ฐ๋ฅ | Regularization ์ค์ฌ |
| ๊ฒฐ๊ณผ | ํฌ์ํ ๋ชจ๋ธ ์์ฑ | ๋ถ๋๋ฌ์ด ๋ชจ๋ธ ์์ฑ |
- ์ผ๋ฐ์ ์ผ๋ก bias๋ regularization ๋์์์ ์ ์ธ
- Hyper-parameter ฮฑ๋ฅผ ํตํด ๋ term ์ฌ์ด์ ๊ท ํ์ ์กฐ์
- PyTorch์์๋ optimizer ํ๋ผ๋ฏธํฐ๋ก
weight_decay ์ฌ์ฉ
- ๋๋ฌด ๊ฐํ๊ฒ regularization์ ๊ฑธ๊ฒ ๋๋๊ฑฐ๋ผ, ์ค์ ๋ก ๋ง์ด ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋
4. Data Augmentation
- ๊ธฐ์กด ๋ฐ์ดํฐ์ ๋
ธ์ด์ฆ๋ ๋ณํ์ ์ฃผ์ด ํ์ต ๋ฐ์ดํฐ๋ฅผ ํ์ฅ
- ํนํ, ๋ฐ์ดํฐ๊ฐ ์ ์ ์ํ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
โ ๋ฐ์ดํฐ๊ฐ ์ ์ผ๋ฉด bias๊ฐ ๋๊ฒ ์ฌํ ๊ฒ์ด๋๊น!
- ํต์ฌ ํน์ง(feature)์ ์ ์งํ ์ฑ, ์
๋ ฅ ๋ถํฌ๋ฅผ ๋ค์ํํ์ฌ ๊ณผ์ ํฉ ๋ฐฉ์ง
- ๋ณดํต์ ํต์ฌ ํน์ง์ ๋ณด์กดํ๊ธฐ ์ํด ํด๋ฆฌ์คํฑํ ๋ฐฉ๋ฒ์ ์ฌ์ฉ
- ๊ท์น์ ํตํด ์ฆ๊ฐ(augment)ํ๋ ๊ฒ์ ์ณ์ง ์์
โ ๋ชจ๋ธ์ด ๊ทธ ๊ท์น์ ๋ฐฐ์๋ฒ๋ฆผ
โ Ramdomness๊ฐ ํ์ํจ!
์ด๋ฏธ์ง ๋ถ์ผ ์์
- Salt & Pepper noise: ๋
ธ์ด์ฆ๋ฅผ ์ถ๊ฐํ์ฌ ํ์ง์ ์ผ๋ถ๋ก ์ ์ข๊ฒ ํ๋ ๊ฒ
(์ด๋ฏธ์ง์ ๊ฐ์๊ธฐ ์๊ธฐ๋ ํฐ ์ (์๊ธ)๊ณผ ๊ฒ์ ์ (ํ์ถ) ๊ฐ์ ์ก์)
- RGB ๋
ธ์ด์ฆ ์ถ๊ฐ
- ํ์ (Rotation)
- ์ข์ฐ ๋ฐ์ (Flipping)
- ์์น ์ด๋ (Shifting)
ํ
์คํธ ๋ถ์ผ ์์
- ๋จ์ด ์๋ต (Dropping): ๋ฌธ์ฅ์ ์์๋ก ๋จ์ด ๋นต๊พธ ๋ซ๊ธฐ
- ๋จ์ด ์์น ๋ฐ๊พธ๊ธฐ (Exchange): ์์๋ก ๋์ ๋จ์ด๋ฅผ ์ฃผ๋ณ ๋จ์ด์ ์์น ๊ตํ (ํ๊ตญ์ด๋ ๋งค์ฐ ํจ๊ณผ์ )
์์ฑ ๋ชจ๋ธ ํ์ฉ
- AutoEncoder(AE), GAN ๋ฑ์ ํตํด ์๋ก์ด ์ํ ์์ฑ
- ๋จ์ : ์์ ํ ์๋ก์ด ๊ฐ๋
ํ์ต์ ์ด๋ ค์ (์์ฑ ๋ชจ๋ธ๋ ์ด๋ฏธ ํน์ ๋ฐ์ดํฐ๋ง ๋ณด๊ณ ํ์ต๋ ๋ชจ๋ธ์ด๊ธฐ ๋๋ฌธ์)
- ์ฅ์ : ์ต์ ํ์์ ์ ๋ฆฌ, ๋
ธ์ด์ฆ ๊ฐ๊ฑด์ฑ ํฅ์
5. Dropout
- ๊ณผ์ ํฉ(overfitting)์ ๋ง๊ธฐ ์ํ Regularization ๊ธฐ๋ฒ ์ค ํ๋๋ก, ํ์ต ์ ์์๋ก ๋ด๋ฐ์ ๋นํ์ฑํํ์ฌ ํน์ ๋
ธ๋์ ์์กดํ์ง ์๋๋ก ํจ
ํจ๊ณผ
- ๊ณต๋ ์ ํฉ(Co-adaptation) ๋ฐฉ์ง
๊ณต๋ ์ ํฉ (Co-adaptation)
์ฌ๋ฌ ๋ด๋ฐ๋ค์ด ๊ฐ์ ๋ฐฉ์์ผ๋ก ํญ์ ํจ๊ป ์๋ํ๋ฉด ํ์ต์ด ํธ์ค๋ ์ ์์
e.g. ๋ด๋ฐ A๊ฐ ํญ์ B์ ๊ฐ์ด ์๋ํด์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ ๋ฐฉ์์ด๋ฉด, A๋ B๊ฐ ์์ด์ง๋ฉด ์ฑ๋ฅ์ด ํ ๋จ์ด์ง
โ ํ์ต ์ค ๋๋ค์ผ๋ก ๋ด๋ฐ์ ์ ๊ฑฐํด์, ๊ฐ ๋ด๋ฐ์ด ๋
๋ฆฝ์ ์ผ๋ก๋ ์ ์๋ํ๋๋ก ๊ฐ์
- ํ์ต ์๋ง๋ค ๋ค๋ฅธ ๋ด๋ฐ ์กฐํฉ์ผ๋ก ๋คํธ์ํฌ๊ฐ ๋ง๋ค์ด์ง
โ ์ฆ, ๋งค๋ฒ ๋ค๋ฅธ ์์ ๋ชจ๋ธ๋ค์ด ํ์ต๋๊ณ , ์ถ๋ก ํ ๋๋ ๊ทธ๊ฒ๋ค์ ํ๊ท ๋ธ ํจ๊ณผ๊ฐ ๋ฐ์
โ ์์๋ธ ํจ๊ณผ (๊ณผ์ ํฉ ๋ฐฉ์ง, ์ผ๋ฐํ ์ฑ๋ฅ โ)

๋์ ๋ฐฉ์
- ํ์ต(Training) ์
model.train()
- ํ๋ฅ p๋ก ๋ด๋ฐ์ ๋๋คํ๊ฒ drop (turn-off)
- ์ถ๋ก (Validataion, Test) ์
model.eval()
- drop out ๊ผญ ๊บผ์ค์ผ ํจ!
- ๋ชจ๋ ๋ด๋ฐ ์ฌ์ฉ, ๋์ weight์ p๋ฅผ ๊ณฑํด ๋ณด์
- ํ์ง๋ง ํ์ต ๋๋ณด๋ค ํ๊ท ์ ์ผ๋ก p1โ๋ฐฐ ๋ ํฐ ์
๋ ฅ์ ๋ฐ๊ฒ ๋ ๊ฒ
- ์ฆ, ๋ ์ ์ ๋ด๋ฐ์ ์ฌ์ฉํด์ ํ์ต๋์์ผ๋, ์ถ๋ก ์์๋ ๋์ผํ ์ค์ผ์ผ๋ก ๋ณด์ ํ์!

์ ์ฉ ์์น
- ์ผ๋ฐ์ ์ผ๋ก: Linear Layer โ Activation โ Dropout โ ๋ค์ Layer
- ํ์ดํผ ํ๋ผ๋ฏธํฐ p ํ์

์ฅ๋จ์
- ์ฅ์ :
- Generalization error ๊ฐ์
- ๋จ์ :
- ํ์ต ์๋ ์ ํ
- ํ์ดํผํ๋ผ๋ฏธํฐ p ์ถ๊ฐ
6. Batch Normalization
๊ฐ์
- ํ์ต ์๋๋ฅผ ๋์ด๊ณ ์ผ๋ฐํ ์ฑ๋ฅ ํฅ์
- ๊ฐ ์ธต์ ์
๋ ฅ์ ์ ๊ทํํ์ฌ internal covariance shift ๋ฌธ์ ์ํ
- ์
๋ ฅ์ ์ ๊ทํ(Standardization)ํ scaling(ฮณ), shifting(ฮฒ) ํ๋ผ๋ฏธํฐ๋ก ๋ณด์
- Hyper-Parameter์ ์ถ๊ฐ ์์ด ๋น ๋ฅธ ํ์ต๊ณผ ๋์ ์ฑ๋ฅ ๋ชจ๋ ๋ณด์ฅ!
- RNN ๋นผ๊ณ ๋ชจ๋ ์ฌ์ฉ๊ฐ๋ฅ (๋์ Layer Normalization ์ฌ์ฉ ๊ฐ๋ฅ)
๋ด๋ถ ๊ณต๋ณ๋ ๋ณํ(Internal Covariance Shift)
- ํ์ต ์ค ๋คํธ์ํฌ ๊ฐ ์ธต์ ๋ค์ด์ค๋ ์
๋ ฅ๊ฐ์ ๋ถํฌ๊ฐ ๊ณ์ ๋ฐ๋๋ ํ์
- ์ฆ, Layer๋ง๋ค Input data์ ๋ถํฌ๊ฐ ๋ฌ๋ผ์ง๊ฒ ๋์ด, ๋ชจ๋ธ์ ๊ฒฐ๊ตญ ์ผ๊ด์ ์ธ ํ์ต์ด ์ด๋ ค์์ง
e.g.
์ด๋ค ์ธต์ ์ถ๋ ฅ์ด ์๋ ํ๊ท 0, ํ์คํธ์ฐจ๊ฐ 1
๊ทธ๋ฐ๋ฐ ํ์ต์ด ๋๋ฉด์ ํ๊ท ์ด 10, ํ์คํธ์ฐจ๊ฐ 5๋ก ๋ฐ๋๋ค๋ฉด?
โ ๋ค์ ์ธต์ ์์ ํ ๋ค๋ฅธ ๋ถํฌ์ ์
๋ ฅ์ ๋ฐ๊ฒ ๋๊ณ , ๋ค์ ์ ์ํด์ผ ํจ
๊ณต๋ณ๋ ๋ณํ(covariate shift)
ํ์ต ๋ฐ์ดํฐ์ ๋ถํฌ๊ฐ ํ
์คํธ ๋ฐ์ดํฐ์ ๋ถํฌ์ ๋ค๋ฅธ ์ํฉ์ ์๋ฏธ

์์
y=ฮณโ(ฯ+ฮต)(xโฮผ)โ+ฮฒ
- x: ์
๋ ฅ, ฮผ: ํ๊ท , ฯ: ํ์คํธ์ฐจ, ฮณ, ฮฒ: ํ์ต ๊ฐ๋ฅํ ํ๋ผ๋ฏธํฐ, ฮต: ๋งค์ฐ ์์ ๊ฐ
- |ฮผ| = |ฯ| = (vector_size, )

- ์ ๊ทํํ๊ณ ํํ๋ ฅ์ ์์ง ์๋๋ก ๋ค์ ์ค์ผ์ผ ์กฐ์ ๋ฐ ์ด๋
ํ์ต vs ์ถ๋ก
- Drop out๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์ต๊ณผ ์ถ๋ก ๋จ๊ณ์์ ๋ชจ๋๊ฐ ๋ฌ๋ผ์ ธ์ผ ํจ
- ํ์ต(Training) ์
model.train()
- mini-batch ๊ธฐ์ค ํ๊ท /ํ์คํธ์ฐจ ๊ณ์ฐ
- ์ถ๋ก (Validataion, Test) ์
model.eval()
- moving average ํต๊ณ ์ฌ์ฉ (๋ฏธ๋ ๋ฐ์ดํฐ ๋ณด๋ ๊ฒ์ cheating)
- ์ง๊ธ๊น์ง์ ์
๋ ฅ์ ํตํด ํ๊ท /ํ์คํธ์ฐจ ๊ณ์ฐ
์ ์ฉ ์์น
- ๋ณดํต ๋ ๊ฐ์ง ๋ฐฉ์:
1) Linear โ Activation โ BN
2) Linear โ BN โ Activation
- Dropout ๋์ฒด ๊ฐ๋ฅ
7. Dropout vs Batch Normalization
| ํญ๋ชฉ | Dropout | Batch Normalization |
|---|
| ๋ชฉ์ | ๊ณผ์ ํฉ ๋ฐฉ์ง | ํ์ต ์์ ํ ๋ฐ ์ผ๋ฐํ |
| ๋ฐฉ์ | ๋ด๋ฐ ๋ฌด์์ ๋นํ์ฑํ | ์
๋ ฅ ์ ๊ทํ + ์ฌ์ค์ผ์ผ๋ง |
| ์ฅ์ | Generalization ํฅ์ | ๋น ๋ฅธ ์๋ ด, ์ฑ๋ฅ ํฅ์ |
| ๋จ์ | ํ์ต ๋๋ฆผ, p ์ค์ ํ์ | ์ถ๊ฐ ๊ณ์ฐ ํ์ |
| Mode ์ ํ | ํ์ (train/eval) | ํ์ (train/eval) |
model.eval()์ ํธ์ถํ๋ฉด Dropout๊ณผ Batch Normalization์ด ์๋์ผ๋ก "inference ๋ชจ๋"๋ก ์ ํ