과적합을 막는 방법

IngCoding·2022년 6월 20일
1

머신러닝

목록 보기
21/34

1. 과적합 개념

  • 머신러닝/딥러닝 학습에서 과적합은 모델의 성능을 떨어트리는 주요 이슈다.
  • 모델이 훈련 데이터에만 과도하게 적합한 상태로, 훈련 데이터에 대한 정확도는 높지만 새로운 데이터(검증 데이터, 테스트 데이터)에 대해서는 제대로 동작하지 않을 수 있다.
  • 여기선 인공신경망의 과적합을 막는 방법에 초점을 둔다.

2. 방법

1) 데이터 양 늘리기

  • 모델 데이터 양이 적을 경우, 해당 데이터의 특정 패턴이나 노이즈까지 쉽게 암기되므로 과적합이 발생할 확률이 높다.
  • 의도적으로 데이터를 늘리는 데이터 증식(증강)을 수행하기도 한다. 예를 들어 이미지를 돌리거나 노이즈를 추가하고, 일부분을 수정하는 등으로 데이터를 증식시키는 것이다.

2) 모델의 복잡도 줄이기 (가중치 규제)

  • 복잡한 모델이 간단한 모델보다 과적합될 가능성이 높다.
  • 인공신경망의 복잡도는 은닉층의 수나 매개변수의 수(모델의 수용력) 등으로 결정된다.
  • 모델의 복잡도를 줄이는 방법으로 가중치 규제가 있다.
    • L1규제 : 가중치 W들의 절대값 합계를 비용함수에 추가
      (완전히 0이 되는 경향, 특성별 영향을 정확히 측정하고 싶을 때 활용)
    • L2규제 : 모든 가중치 W들의 제곱합을 비용함수에 추가
      (0에 가까워지는 경향, 일반적으로 더 잘 동작하며, 파이토치에서도 L2규제를 적용)

3) 드롭아웃

  • 드롭아웃은 학습 과정에서 신경망의 일부를 사용하지 않는 방법
  • 학습 시 인공신경망이 특정 뉴런 또는 특정 조합에 지나치게 의존적이 되는 것을 방지해줌
  • 매번 랜덤의 뉴런을 사용하지 않으므로 서로 다른 신경망들을 앙상블하여 사용하는 것 같은 효과를 내며 과적합을 방지
profile
Data & PM

0개의 댓글