Overfitting - BD-SEARCH/MLtutorial GitHub Wiki
Overfitting
01. ๊ฐ์
๋ง์ฝ ๋์ผํ ์ ๋ค์ด ์ฃผ์ด์ง๊ณ ์ด ์ ์ ๋ํํ ์ ์๋ ํจ์(๊ณก์ )์ ์ถ์ ํ๋ ๊ฒฝ์ฐ์์, ๊ฐ์ด๋ฐ๊ฐ optimizeํ๋ค๊ณ ํ๋ค๋ฉด
- ์ผ์ชฝ์ ์ง๋์น ๋จ์ํ๋ก ์ธํด ์๋ฌ๊ฐ ๋ง์ด ๋ฐ์ํด underfitting์ด๋ผ ํ๋ค
- ์ค๋ฅธ์ชฝ์ ๋๋ฌด ์ ํํ๊ฒ ํํํ ๋๋จธ์ง training data์ ๋ํ ์ ํ๋๋ ์ข์ง๋ง ์ค์ test์์๋ ์๋ฌ๊ฐ ๋ ์ ์๋ ์ํฉ์ด๋ผ overfitting์ด๋ผ ํ๋ค.
๋ชจ๋ธ์ ๊ณผ๋์ ํฉ(Overfitting)๊ณผ ๊ณผ์์ ํฉ(Underfitting)์ด ๋ฐ์ํ์ง ์๋๋ก ์ค๊ณํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๋ค.
Test set Accuracy๊ฐ ์ต๋๊ฐ ๋๋ฉด์, Training(validation) Set Accuracy๋ณด๋ค ์กฐ๊ธ ๋ฎ์ ์ํ๊ฐ ์ด์์ ์ด๋ค.
02. Overfitting์ด๋?
- ํ์ต ๋ฐ์ดํฐ(Training Set)์ ๋ํด ๊ณผํ๊ฒ ํ์ต์ ํ ์ํฉ์ด๋ค.
- Training Set์ ๋ํ ๊ฒฐ๊ณผ๋ ๊ณ์ ์ข์์ง๋๋ฐ Test Set์ ์ด์ฉํ ๊ฒฐ๊ณผ๋ ๊ฐ์ ๋์ง ์๋ ํ์์ด๋ค.
- ํ์ต ๋ฐ์ดํฐ๊ฐ ๋ถ์กฑํ๊ฑฐ๋, ๋ฐ์ดํฐ์ ํน์ฑ์ ๋นํด ๋ชจ๋ธ์ด ๋๋ฌด ๋ณต์กํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ค.
2-1. ์์ธ
- ๋งค๊ฐ๋ณ์๊ฐ ๋ง๊ณ ํํ๋ ฅ์ด ๋์ ๋ชจ๋ธ์ ์ฌ์ฉํ ๋
- ํ์ต ๋ฐ์ดํฐ๊ฐ ์ ์ ๋
2-2. ํด๊ฒฐ์ฑ
-
์ผ๋ฐ์ ์ธ ํด๊ฒฐ์ฑ
- ๋ชจ๋ธ์ด ํ์ต ๋ฐ์ดํฐ์ ๋นํด ๊ณผํ๊ฒ ๋ณต์กํด์ ๋ฐ์ ๊ฐ๋ฅ. ๋ชจ๋ธ์ ๊ฐ๋จํ๊ฒ ๋ง๋ค์ด ํด๊ฒฐ (Hidden layer ํฌ๊ธฐ ์ค์ด๊ธฐ, Input layer ํฌ๊ธฐ ์ค์ด๊ธฐ ๋ฑ)
- Dropout: ํ์ต์ ํ ๋ ์ผ๋ถ ๋ด๋ฐ์ ๋๊ณ ํ์ต.
- L1/L2 ์ ๊ทํ(L1/L2 regularization)
- ํ์ต ๋ฐ์ดํฐ ๋๋ฆฌ๊ธฐ(data augmentation)
-
Test Set Accuracy๊ฐ ์ฆ๊ฐํ๋ค๊ฐ ๊ฐ์ํ๋ ๊ฒฝ์ฐ
- ํ์ต ๋ฐ์ดํฐ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ, ํ์ต ๋ฐ์ดํฐ๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ด ๊ทผ๋ณธ์ ํด๊ฒฐ์ฑ
- ์ด๋ฏธ์ง ๊ฐ์ ๊ฒฝ์ฐ ๋ณํ(๋น์จ ๋ฐ๊พธ๊ธฐ, ๊ฐ๋ฆฌ๊ธฐ, ํ์ ๋ฑ)์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋๋ฆด ์ ์์
-
Training Set Accuracy๊ฐ 100%์ ๊ฐ๊น์ง๋ง Test Set Accuracy๊ฐ ์๋นํ ๋ฎ์ ๊ฒฝ์ฐ
- ํ์ต ๋ฐ์ดํฐ๊ฐ ํธํฅ๋์ด ์์ง ์์์ง ํ์ธ. (์: ํน์ํ ๊ฒฝ์ฐ์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ผ๋ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒฝ์ฐ)
02. Underfitting
- ์ด๋ฏธ ์๋ ๋ฐ์ดํฐ๋ ์ ๋๋ก ํ์ต์ ๋ชป ํ ์ํ๋ก Accuracy๊ฐ ๋ฎ๋ค.
- ์ฌ์ง์ด Training set Accuracy๋ณด๋ค Test Set Accuracy๊ฐ ๋์ ๊ฒฝ์ฐ๋ ์๋ค.
- ๊ณผ์์ ํฉ์ ์์ธ
- ํ์ต ๋ฐ๋ณต ํ์๊ฐ ๋๋ฌด ์ ์
- ๋ฐ์ดํฐ์ ํน์ฑ์ ๋นํด ๋ชจ๋ธ์ด ๋๋ฌด ๊ฐ๋จํจ
- ๋ฐ์ดํฐ ์์ด ๋๋ฌด ์ ์
ํ์ต ๋ฐ๋ณต ํ์๊ฐ ๋ง๊ฑฐ๋, ๋ชจ๋ธ์ด ๋๋ฌด ๊ฐ๋จํ ๊ฒ์ Overfitting๊ณผ ๋ฐ๋๋๋ ๊ฒฝ์ฐ์ด๋ค. ์์ ๋์จ ์์ธ๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ํด๊ฒฐํ๋ค๋ณด๋ฉด ๊ณผ๋์ ํฉ๋ณด๋ค๋ ์ฝ๊ฒ ํด๊ฒฐ์ด ๊ฐ๋ฅํ๋ค.
03. Overfitting์ด ์ผ์ด๋๋ ๋ชจ๋ธ์ ๋จผ์ ๋ง๋ค๊ณ , ์กฐ๊ธ์ฉ ๊ฐ๋จํ๊ฒ ๋ฐ๊พธ๊ธฐ
- ๋ ผ๋ฌธ์ผ๋ก ๋ฐํ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ฝ๋ค.
- ๊ทธ๋ฌ๋, ์ํ์ฐฉ์ค๋ฅผ ํตํด ๋ชจ๋ธ์ ๋ง๋ค์ด์ผ ํ ๊ฒฝ์ฐ Overfitting์ด ์ผ์ด๋๋ ๋ชจ๋ธ์ ๋ง๋ค๊ณ , ๊ทธ ๋ค์ ํ๋ํ๋ ๋ฐฉ๋ฒ์ด ๊ฐ๋จํ๋ค.
- Overfitting์ด ์ผ์ด๋๋ ๋ชจ๋ธ ๋ง๋ค๊ธฐ: ๋งค์ฐ ๋ณต์กํ ๋ชจ๋ธ ๋ง๋ค๊ธฐ. layer ์๊ฐ ๋ง๊ณ , layer์ ํฌ๊ธฐ๋ ํฐ ๋ชจ๋ธ.
- Overfitting์ด ๋ ์ผ์ด๋๊ฒ ํ๋ํ๋ ๋ฐฉ๋ฒ์ ๊ฒฝํ์ ๋ฐฉ๋ฒ์ ์์กดํ๋ค.
04. ํ์ต ๋ฐ์ดํฐ ๋๋ฆฌ๊ธฐ
- ๋ฐ์ดํฐ ์์ด ์ ๋ค๋ฉด ๋ฐ์ดํฐ ์์ ๋๋ ค๋ณธ๋ค. ๋ฐ์ดํฐ๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ฉด, ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๋ณํํด์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ ๋ค.
- ์ ์ ํ ์ ์ฒ๋ฆฌ๊ฐ ๋์ด ์๋์ง ์ ๊ฒํ๋ค. ๋ฐ์ดํฐ ์ข ๋ฅ(ํ ์คํธ, ์ด๋ฏธ์ง, ์์ฑ ๋ฑ)์ ๋ฐ๋ผ ์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ด ์์ดํจ์ ์ ์.
- ํ์ต ๋ฐ์ดํฐ๊ฐ ํธํฅ๋์ด ์๋ ๊ฒ์ ์๋์ง ํ์ธํ๋ค. ํน๋ณํ ๊ฒฝ์ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ชจ๋ธ์ ๋ง๋๋ ๊ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๋ค.
05. Reference
- ๋ฐ๋ฐ๋ฅ๋ถํฐ ์์ํ๋ ๋ฅ๋ฌ๋ 6์ฅ
- ๋ฅ๋ฌ๋ ํ์ต ๊ธฐ์ ๋ค: ๋ฅ๋ฌ๋ ํ์ต ๊ธฐ๋ฒ(์ญ์ ํ)๋ ํ์ฑํ ํจ์ ์ค๋ช
- Machine Learning ์คํฐ๋ Overfitting