과적합(Overfitting)
과적합이란 모델이 학습 데이터에 대해서만 좋은 성능을 발휘하는 것을 의미합니다. 학습 데이터를 불필요할 정도로 과하게 암기하여 훈련용 데이터의 노이즈까지 학습한 상태입니다. 따라서 모델 학습 시 오버피팅을 방지하기 위한 노력이 필요합니다.
과적합을 방지하기 위한 방법은 다음과 같습니다.
1. 데이터 양 확대
데이터가 부족할 경우 오버피팅 확률이 증가하므로 데이터 양을 늘리면 데이터의 일반적인 규칙을 학습할 확률이 증가합니다. 데이터가 부족하지만 추가 수집이 어려울 경우 데이터 증강(Data Augmentation)을 통해 확장할 수 있습니다. 특히 이미지의 경우 이미지에 노이즈를 조금씩 추가하여 데이터를 증가시키는 것이 가능합니다.
ex) 모의고사 문제를 전부 암기만 한 학생은 모의고사는 잘 풀 수 있으나 실제 수능 문제는 풀 수 없는 경우입니다.
2. 모델 복잡도 축소
모델의 복잡도는 은닉층의 수나 파라미터(가중치) 수로 결정됩니다. 파라미터가 많을 수록 과적합 될 확률이 높습니다. 따라서 불필요한 가중치는 최대한 삭제하는 것이 성능에 긍정적인 영향을 줄 수 있습니다.
ex) 맥주 매출을 예측하는데 가격 외의 모든 잡다한 변수들을 모델에 추가할 경우, 학습 데이터 정확도는 올라가지만 그 외의 데이터는 예측 하지 못할 가능성이 큽니다.
3. 가중치 규제 적용
비용함수(Cost function)에 가중치의 절대값 혹은 제곱한 값을 추가하여 오버피팅을 방지할 수 있습니다. 이 경우 가중치의 최적값만을 구하는 것이 아니라 가중치 자체도 작게 만들어야 합니다. 따라서 규제는 가중치를 작게 만들다보니 0에 가까운 가중치들이 생깁니다. 결과적으로 사용하지 않는 매개변수가 생기므로 과적합 확률이 낮아집니다.
규제(Regularization)의 종류에는 L1 Norm, L2 Norm이 있습니다.
L1 Norm은 Lasso라고 하며 규제 가중치의 절대값을 비용함수에 더해줍니다.
- L1 규제는 영향력이 작은 가중치들을 0으로 만들어 변수를 선택하는 효과가 있습니다.
- 소수의 변수로 모델을 설명하므로 해석력이 좋습니다.
L2 Norm은 Ridge라고 하며 규제 가중치의 제곱값을 비용함수에 더해줍니다.
- L2 규제는 전체적인 가중치의 값들이 작아지는 경향이 있습니다.
- 변수의 상관관계가 강할 경우 성능이 좋습니다.
4. 드랍 아웃
Dropout은 신경망 중 일부 노드들을 사용하지 않는 것을 의미합니다. 드랍 아웃 비율이 0.5라면 학습 시 $\frac{1}{2}$확률로 노드들을 빼놓고 계산합니다. 따라서 과도하게 학습하는 것을 막는 효과가 있습니다.
'데이터사이언스' 카테고리의 다른 글
활성함수의 역할과 종류 이해하기 (0) | 2021.03.03 |
---|---|
구글 플레이 스토어 - 리뷰 데이터 크롤링하기 (21) | 2021.01.14 |
외모지상주의 - 베스트 댓글 크롤링하기 (6) | 2021.01.12 |
Pandas - 데이터프레임 생성/병합/추출하기 (4) | 2021.01.08 |
Pickle과 Write 차이점 + With ... as 구문 (0) | 2020.12.29 |