머신러닝에서 오버피팅과 레귤러라이제이션이란?
오버피팅
트레이닝 로스는 줄어들지만, 테스트 로스(밸리데이션 로스)가 줄어들지 않거나 오히려 증가하는 현상을 오버피팅over fitting, 과적합이라 한다.
설명
이와 반대되는 언더 피팅이라는 말도 있으나 솔직히 의미 없는 말이고, 경험상 잘 쓰이지도 않는다.
머신 러닝에서 중요한 점은 가지고 있는 데이터로 학습시킨 함수가 새로운 데이터에 대해서도 잘 작동해야한다는 것이다. 그래서 학습에 사용하지 않은 데이터에 대한 성능을 칭하는 일반화 성능이라는 말이 있으며, 오버피팅이 일어났다는 것은 일반화 성능이 낮다는 말과 같다. 입시에서 모의고사를 풀어보는 것은 결국 수능을 잘보기 위함인데, 모의고사는 만점을 받고 수능을 망친 학생은 모의고사 문제에 대해서 오버피팅된 학생이라고 볼 수 있다. 모의고사에서 만점까지는 아니지라도 좋은 성적을 받고, 수능에서도 비슷하게 좋은 성적을 받은 학생은 일반화 성능이 좋은 것이다.
레귤러라이제이션
(트레이닝 로스가 아니라) 테스트 로스를 줄이기 위해 알고리즘을 수정하는 모든 방법을 레귤러라이제이션 이라 한다.1
Goodfellow defines regularization as “any modification we make to a learning algorithm that is intended to reduce its generalization error but not its training error.”
즉, 오버피팅을 막기 위한 모든 방법을 묶어서 레귤러라이제이션이라 한다. 머신러닝, 딥러닝을 공부할 때 가장 먼저 접하게 되는 건 보통 드롭아웃이다.
종류
- $\ell_{1}$ regularization
- $\ell_{2}$ regularization
- Weight decay
- Early stopping
- 드롭 아웃dropout
- Batch normalization
- Label smoothing
- 데이터 어그멘테이션data augmentation
- Flooding
같이보기
- 표준화: 보통 통계학에서 데이터의 평균을 $0$, 분산 $1$ 로 맞추는 과정을 말한다.
- 정규화: 보통 데이터를 특정 구간에 위치 시키는 과정을 말한다.
- 정칙화: 보통 머신러닝에서 과적합을 막는 과정들을 말한다.
Ian Goodfellow, Yoshua Bengio, and Aaron Courville. (2016) Deep Learning. MIT Press ↩︎