Skip to content

Overfitting

In statistics and machine learning, overfitting occurs when a statistical model describes random error or noise instead of the underlying relationship. Overfitting generally occurs when a model is excessively complex, such as having too many parameters relative to the number of observations. A model that has been overfit will generally have poor predictive performance, as it can exaggerate minor fluctuations in the data.

About

데이터마이닝에서 주로 사용하는 기법 중에 기계학습(Machine Learning)이 있습니다. 기계학습은 과거의 데이터를 활용한 학습(Learning) 과정을 거쳐서, 미래의 사례에 대하여 분류, 추청, 예측 등을 하는 방법을 의미합니다. 이러한 기계학습에서 종종 발생하는 문제 중에 하나가 과적합(Overfitting) 입니다. 이 글에서는 이 과적합에 대해서 몇 자 적어봅니다.

기계학습에서 학습 시에 사용하는 데이터 집합을 훈련 데이터 집합(Training Data Set)이라고 합니다. 기계학습 알고리즘에서는 이 훈련 데이터 집합이 세상의 전부인 꼴입니다. 기계학습 알고리즘은 자신에서 주어진 훈련 데이터 집합에 담겨진 패턴이나 관계를 찾아내기 위해서 최대한 노력을 합니다. 그래서, 이 데이터 집합에 담겨진 패턴을 찾아냅니다. 그러면, 이러한 패턴들을 추후에 발생하는 데이터 집합에 적용했을 때도 잘 맞을까요?

답은 잘 맞을 수도, 그렇지 않을 수도 있다는 것입니다. 그 이유는 과연 훈련 데이터 집합이 우리가 관심있는 전체 모집단을 대표할 수 있느냐와 밀접한 관계가 있습니다. 훈련 데이터 집합에는 전체 모집단이 가지고 있는 패턴들을 가지고 있을 수 있습니다. 또, 일부 누락할 수도 있겠지요. 하지만 다른 문제는 전체 모집단은 가지고 있지 않고, 훈련 데이터 집합만 가지고 있는 특징까지도 기계학습 알고리즘이 학습을 한다는 것 입니다. 즉, 너무 열심히 학습을 해서, 불필요한 것까지 배워버린 것이지요. 이러한 현상을 과적합(Overfitting)이라고 부릅니다.

from the Gradient descent

적절한 Hypothesis를 찾기 위하여 Loss function의 최소점을 Gradient descent로 찾을 수 있다. 이제 더 이상 우리가 고민할 것은 없어보인다. 아니, 사실 그렇지 않다. 앞서 가정한 바에 의하면, 우리는 지금 존재하는 데이터셋이 전체 데이터셋의 분포를 대변한다고 가정했다. 하지만 꼭 그러리라는 보장을 할 수 있을까? 당연히 없다. 우리가 보고 있는 자료가 엄청 큰 패턴 중에서 매우 일부의 예외일 수도 있고, 혹은 노이즈 때문에, 너무 샘플 수가 적어서 잘못된 방향으로 pattern을 찾게 될 수도 있다. 이런 경우를 일컬어 Overfitting이라고 한다. 즉, 기존의 데이터에만 너무 충실해서 새로운 데이터가 들어왔을 때 도저히 써먹을 수가 없는 상태를 일컬어 Overfitting이라 한다. 이 것을 해결하기 위하여 여러가지 방법이 있는데 Model Selection과 Regularization이 그것이다.

List of methods

오버피팅 방지를 위한 해결책 방법:

See also

Favorite site