9. 머신러닝 : 오버피팅

2018. 8. 17. 20:34

캡쳐 사진 및 글작성에 대한 도움 출저 : 유튜브 - 허민석님


오버피팅이란?

한마디로 현재의 데이터에서는 잘 예측하는데, 새로운데이터에서는 잘 예측 못한다.


청바지를 만들어 판다고 가정해보자.
우리는 슈퍼모델을 고용하여, 이들에게 맞는 가장 멋진 청바지를 만들 것이다.

그러나 고객들이 사지 않을 것이다. 왜일까?

image


그 이유는 청바지를 슈퍼모델에게만 맞도록 만들었기 때문이다.
하지만, 고객들은 다양한 체형을 가지고 있다.
image


이제 우리는 다양한 체형에 맞춰서 청바지를 만들 것이다.
image



다양한 체형을 생각하지 못하고, 슈퍼모델들의 체형에 맞춰서 청바지를 제작한 경우가 바로 오버피팅(Overfitting)이다.
image


오버피팅 상황이라면, 우리가 가지고 있는 데이터는 슈퍼모델 데이터만 가진체 학습시킨 상황이다.
하지만, 우리가 실제 우리가 보지 못한 다양한 체형들이 존재하므로, 오버피팅이 발생한다.



Key conceps 살펴보기


  1. 슈퍼모델 데이터 = 현재 우리가 가진 데이터
  2. 실제 고객층 데이터 = unseen 데이터
  3. 실제 고객들이 사지 않는 상황 = 오버피팅

즉 요약하자면, unseen data에 우리의 머신러닝이 제대로 예측하지 못하는 상황이 overfitting이다.


그래프로 보기

파란색 점들은 슈퍼모델 데이터들이다.
빨간 선은 Decision Boundary이다.

머신러닝에선 이 Decision Boundary 위 있는 것을 True라고 하고, 밖에 있는 것을 False라 할 것이다.


이 상황에서, 새로운 점을 대입해보자.
만약, 새로운 슈퍼모델 데이터를 입력한다면, Decision Boundary보다 위에 위치할 확률이 높을 것이다.(True)

image

만약, 다양한 체형의 고객층들의 데이터를 입력한다면, Decision Boundary보다 아래에 위치할 확률이 높을 것이다.(False)

image


이러한 오버피팅의 상황을 벗어나기 위해, 우리는 다양한 체형의 고객층의 데이터들도 같이 학습시켜
새로운 Decision Boundary
를 만들어서 Overfitting을 극복할 것이다.
image



Overfitting을 방지하는 방법

  1. Regularization
  2. Cross validation
  3. Add more data(다양한 체형의 데이터 대입하는 방법)


+ Recent posts