과적합(Overfit)과 일반화(Generalization)

아래의 같이 감기에 걸리 사람과 건강한 사람의 분포 데이터가 주어졌다고 가정하겠습니다. 이 데이터를 우리는 어떻게 분류할 수 있을까요?


과적합(Overfit)

아래와 같이 감기걸린 사람과 건강한 사람을 정확하게 나누는 경계를 그을 수 있을 것입니다.

정확하게 경게를 나눈다면 모델이 학습하는 동안에는 손실이 적지만, 새로운 데이터가 들어왔을 때 잘 예측을 하지 못하는 문제가 발생합니다. 이렇게 주어진 샘플을 필요이상으로 복잡하게 분류한 상태을 과적합하다라고 말합니다.


과적합한 모델: 현재 샘플에 필요 이상으로 정확한(복잡한) 모델


과적합은 모델이 새 데이터에 맞게 잘 일

아래의 그림은 과적합 모델에 새로운 데이터가 들어왔을 때 예측이 어긋나는 경우가 발생하는 것을 보여줍니다.



일반화(Generalization)

그렇다면 감기환자와 건강한 사람을 아래와 같이 나누면 어떨까요?

이렇게 단순하게 모델을 만든다면 모델을 학습시키는데 손실이 조금 발생하지만, 새로운 데이터에 대한 예측은 위에서 다룬 과적합한 모델보다는 더 뛰어날 것입니다.


이렇게 학습에 사용되는 데이터에는 조금 손실이 발생하더라도 새로운 데이터에 대해 올바른 예측을 수행하는 능력을 일반화라고 합니다.

일반화: 모델을 단순화시켜 새로운 데이터에 대한 에측성을 높이는 방법


머신러닝의 목표는 이전에 보지 못한 새 데이터를 잘 예측하는 것입니다. 즉, 학습에 사용되는 데이터에서 조금 손실을 보더라도 일반화를 통해 모델을 단순화시켜 새로운 데이터에 대한 예측 정확도를 높인다면 더 좋은 모델입니다.


어떻게 일반화(단순화) 시킬 것인가?

우리에게는 이미 발생한, 즉 주어진 데이터 밖에 갖고 있지 않습니다. 일반화를 하려면 학습 데이터 뿐만 아니라 새로운 데이터가 필요로 합니다. 그렇다고 새로운 데이터가 발생할 때마다 학습시켜 모델을 일반화 하는 것에는 한계가 있습니다.

그래서 우리는 주어진 데이터는 두 세트로 나누어 모델을 학습시키고 마치 새로운 데이터가 주어진 것처럼 테스트를 하여 일반화를 진행 할 수 있습니다.
  • 학습 세트(Training Set): 모델을 학습시키기 위한 데이터 세트
  • 테스트 세트(Test Set): 모델을 테스트하기 위한 데이터 세트

좋은 일반화를 하려면 테스트 세트가 다음의 조건을 만족해야 합니다.
  • 테스트 세트의 데이터가 충분히 많아야 한다.
  • 같은 테스트 세트를 반복해서 사용하지 않는다.

일반화를 하기 위한 전제 조건

모델을 일반화 하기 위해서는 다음의 세 가지 전제 조건을 총족해야 합니다.

  • 데이터를 독립적이고 동일하게(Independently and Identically => i.i.d) 추출해야 한다.
    즉, 각 예(Example)가 서로 영향을 미치지 않아야 한다.
  • 데이터가 변하지 않아야(Stationary) 합니다.
  • 같은 집단(Same Distribution)에서 데이터의 예를 추출해야 합니다.


+ Recent posts