1. 과적합 개념
- 머신러닝/딥러닝 학습에서 과적합은 모델의 성능을 떨어트리는 주요 이슈다.
- 모델이 훈련 데이터에만 과도하게 적합한 상태로, 훈련 데이터에 대한 정확도는 높지만 새로운 데이터(검증 데이터, 테스트 데이터)에 대해서는 제대로 동작하지 않을 수 있다.
- 여기선 인공신경망의 과적합을 막는 방법에 초점을 둔다.
2. 방법
1) 데이터 양 늘리기
- 모델 데이터 양이 적을 경우, 해당 데이터의 특정 패턴이나 노이즈까지 쉽게 암기되므로 과적합이 발생할 확률이 높다.
- 의도적으로 데이터를 늘리는 데이터 증식(증강)을 수행하기도 한다. 예를 들어 이미지를 돌리거나 노이즈를 추가하고, 일부분을 수정하는 등으로 데이터를 증식시키는 것이다.
2) 모델의 복잡도 줄이기 (가중치 규제)
- 복잡한 모델이 간단한 모델보다 과적합될 가능성이 높다.
- 인공신경망의 복잡도는 은닉층의 수나 매개변수의 수(모델의 수용력) 등으로 결정된다.
- 모델의 복잡도를 줄이는 방법으로 가중치 규제가 있다.
- L1규제 : 가중치 W들의 절대값 합계를 비용함수에 추가
(완전히 0이 되는 경향, 특성별 영향을 정확히 측정하고 싶을 때 활용)
- L2규제 : 모든 가중치 W들의 제곱합을 비용함수에 추가
(0에 가까워지는 경향, 일반적으로 더 잘 동작하며, 파이토치에서도 L2규제를 적용)
3) 드롭아웃
- 드롭아웃은 학습 과정에서 신경망의 일부를 사용하지 않는 방법
- 학습 시 인공신경망이 특정 뉴런 또는 특정 조합에 지나치게 의존적이 되는 것을 방지해줌
- 매번 랜덤의 뉴런을 사용하지 않으므로 서로 다른 신경망들을 앙상블하여 사용하는 것 같은 효과를 내며 과적합을 방지