이 포스팅에서는 머신러닝에 있어서 중요한 오버피팅(Overfitting) 문제에 대해 무엇인지 이해하고, 오버피팅이 일어나는 원인과 감지할 수 있는 방법 그리고 예방할 수 있는 여러가지 방법, 오버피팅과 언더피팅의 차이점에 대해 알아본다.
오버피팅 (Overfitting) 이란?
오버피팅 (Overfitting)은 머신러닝에서 모델이 데이터를 너무 많이 학습하게 되면 일어나는 흔한 문제이다. 모델이 오버피팅하게되면 새로 들어오는 데이터에 대해 일반화된 예측을 할 수 없게 된다. Training data에 대해서만 잘 예측하도록 너무 많이 학습이 된 상태이기 때문이다.
학습데이터에 대해 너무 많이 학습을 하게되면 그 데이터 속의 중요한 패턴 뿐만 아니라, 중요하지 않은 노이즈나 임의의 패턴들까지도 모두 학습을 해버리게 된다. 그렇기 때문에 오히려 학습되지 않은 데이터가 들어오면 예측값이 정확도가 더 떨어지게 된다.
오버피팅(Overfitting)이 일어날 가능성이 높은 경우
다음에 해당하는 경우 모델은 오버피팅할 가능성이 높다.
- training accuracy는 높은데 test accuracy가 낮은 경우
- 모델 구조가 너무 복잡한 경우(너무 많은 parameter를 가지는 경우)
- training dataset이 너무 작을 경우
오버피팅(Overfitting) 방지하는 방법
- Regularization: Regularization 또는 정규화는 오버피팅을 방지하기 위한 가장 기본적인 방법이다. loss function에 weight이 너무 커지는 것을 방지하기 위해 penalty term을 두는 것이다.
- Cross-Validation: 이 방법은 데이터를 여러조각으로 나눈다음, 한 조각은 테스트용으로 쓰고 나머지에 대해 학습을 시킨 다음 이 과정을 반복하면서 또 다른 조각을 테스트용으로 빼놓고 나머지에 대해 학습시키고 하는 방법이다. 이 방법을 통해 모델이 전반적으로 테스트셋에 좌우되지 않고 어느정도 퍼포먼스가 유지되는지 확인할 수 있다.
- Ensemble methods: 이 방법은 여러가지 모델을 두고, 각 모델의 예측치를 보고 다수결되로 최종 예측하는 방법을 의미한다. 이 방법을 통해 그 중 한 모델이 오버피팅 되더라도 다른 모델들의 퍼포먼스를 함께 고려함으로써 오버피팅을 감소시키는 효과가 있다.
- Early stopping: 이 방법은 validation set에 대해 모델 퍼포먼스가 더이상 올라가지 않고 오히려 내려가려할 때 학습을 멈춤으로써 오버피팅을 피하는 방법이다.
오버피팅과 언더피팅의 차이점 (Difference between Overfitting and Underfitting)
오버피팅(Overfitting)은 데이터를 너무 많이 학습해서 너무 작은 패턴까지 모두 학습해버리는 것을 의미하는 반면, 언더피팅(Underfitting)은 데이터를 충분히 학습하지 않아서 중요한 패턴들에 대해 학습이 되지 않은 것을 의미한다. 머신러닝에서 좋은 퍼포먼스를 내기 위해서는 이 Overfitting과 Underfitting 사이에서 균형을 잘 찾는 것이 중요하다. 실제로는 Underfitting 문제보다 Overfitting 문제가 더 흔하고 그래서 더 머신러닝 모델을 만들 때 신경써야하는 문제다.
오버피팅은 머신러닝에 있어서 자주 일어나는 문제지만, regularization, cross-validation, ensemble methods 그리고 early stopping 등을 통한 방법을 통해 어느정도 예방할 수 있다. 오늘은 오버피팅이 무엇인지, 어떻게 방지할 수 있는지, 오버피팅과 언더피팅의 차이점에 대해 알아봤다. Cross-Validation에 대해 좀 더 자세한 내용이 궁금하다면 이 포스팅을 참고하자.
'머신러닝' 카테고리의 다른 글
머신러닝 Linear Regression 과 Gradient Descent 알고리즘 이해하기 (0) | 2023.02.12 |
---|---|
챗 GPT로 머신러닝 코딩 하기(파이썬) (0) | 2023.02.12 |
머신러닝 Cross-Validation 이란? (0) | 2023.02.10 |
머신러닝 딥러닝 AI의 개념 및 차이점 이해하기 (0) | 2023.02.02 |
Classification Decision Tree (결정트리) 개념 - Information gain, impurity, Entropy 이해 (1) | 2023.02.01 |
댓글