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๊ฐ€ ๋†’์€ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.
  • ๊ณผ์†Œ์ ํ•ฉ์˜ ์›์ธ
  1. ํ•™์Šต ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ์ ์Œ
  2. ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์— ๋น„ํ•ด ๋ชจ๋ธ์ด ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•จ
  3. ๋ฐ์ดํ„ฐ ์–‘์ด ๋„ˆ๋ฌด ์ ์Œ

ํ•™์Šต ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ๋งŽ๊ฑฐ๋‚˜, ๋ชจ๋ธ์ด ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•œ ๊ฒƒ์€ Overfitting๊ณผ ๋ฐ˜๋Œ€๋˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์•ž์— ๋‚˜์˜จ ์›์ธ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ํ•ด๊ฒฐํ•˜๋‹ค๋ณด๋ฉด ๊ณผ๋Œ€์ ํ•ฉ๋ณด๋‹ค๋Š” ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

03. Overfitting์ด ์ผ์–ด๋‚˜๋Š” ๋ชจ๋ธ์„ ๋จผ์ € ๋งŒ๋“ค๊ณ , ์กฐ๊ธˆ์”ฉ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ”๊พธ๊ธฐ

  • ๋…ผ๋ฌธ์œผ๋กœ ๋ฐœํ‘œ๋œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์‰ฝ๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜, ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฒฝ์šฐ Overfitting์ด ์ผ์–ด๋‚˜๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ณ , ๊ทธ ๋‹ค์Œ ํŠœ๋‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐ„๋‹จํ•˜๋‹ค.
  • Overfitting์ด ์ผ์–ด๋‚˜๋Š” ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ: ๋งค์šฐ ๋ณต์žกํ•œ ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ. layer ์ˆ˜๊ฐ€ ๋งŽ๊ณ , layer์˜ ํฌ๊ธฐ๋„ ํฐ ๋ชจ๋ธ.
  • Overfitting์ด ๋œ ์ผ์–ด๋‚˜๊ฒŒ ํŠœ๋‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฒฝํ—˜์  ๋ฐฉ๋ฒ•์— ์˜์กดํ•œ๋‹ค.

04. ํ•™์Šต ๋ฐ์ดํ„ฐ ๋Š˜๋ฆฌ๊ธฐ

  • ๋ฐ์ดํ„ฐ ์–‘์ด ์ ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ ์–‘์„ ๋Š˜๋ ค๋ณธ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด, ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ˜•ํ•ด์„œ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ ๋‹ค.
  • ์ ์ ˆํ•œ ์ „์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ์žˆ๋Š”์ง€ ์ ๊ฒ€ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜(ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ์Œ์„ฑ ๋“ฑ)์— ๋”ฐ๋ผ ์ „์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์ด ์ƒ์ดํ•จ์— ์œ ์˜.
  • ํ•™์Šต ๋ฐ์ดํ„ฐ๊ฐ€ ํŽธํ–ฅ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹Œ์ง€ ํ™•์ธํ•œ๋‹ค. ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

05. Reference