Skip to content

Overfitting

BIBI edited this page Oct 2, 2019 · 5 revisions

Overfitting

01. 개요

스크린샷 2019-10-02 오후 8 43 27

만약 동일한 점들이 주어지고 이 점을 대표할 수 있는 함수(곡선)을 추정하는 경우에서, 가운데가 optimize하다고 한다면

  • 왼쪽은 지나친 단순화로 인해 에러가 많이 발생해 underfitting이라 한다
  • 오른쪽은 너무 정확하게 표현한 나머지 training data에 대한 정확도는 좋지만 실제 test에서는 에러가 날 수 있는 상황이라 overfitting이라 한다.

모델은 과대적합(Overfitting)과 과소적합(Underfitting)이 발생하지 않도록 설계하는 것이 가장 중요하다.

Test set Accuracy가 최대가 되면서, Training(validation) Set Accuracy보다 조금 낮은 상태가 이상적이다.

02. Overfitting이란?

스크린샷 2019-10-02 오후 8 48 21
  • 학습 데이터(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

Clone this wiki locally