[DL] 딥러닝 과대적합

최윤진·2023년 2월 28일
0

DL

목록 보기
3/5
post-thumbnail

📌과대적합

과대 적합
훈련 세트를 과도하게 학습해 훈련 세트에서는 정확도(손실)가 높고, 검증 세트에서는 정확도가 낮은 상황

과대 적합 이유?

  • 매개 변수가 상당히 많음
  • 학습 횟수에 제한이 없음

과대 적합 해결 방법

  • 드롭 아웃
  • 조기 종료

📍 드롭아웃

  • 훈련과정에서 은닉층에 있는 뉴런을 무작위로 삭제해서 과대적합을 막는 방법
    = 뉴런의 출력을 0으로 만들어 버린다. (=신호를 전달하지 않게 됨)

[학습 단계]
뉴런을 드롭아웃할 때는 뉴런의 50% 이상은 유지되어야 함
드롭아웃은 입력 계층과 은닉 계층에 적용
이 뉴런을 얼마나 삭제 할 것인가? = 하이퍼파라미터로 조정

[추론 단계]

  • 뉴런을 드롭아웃 하지 않고 훈련 과정에서 확률적으로 생성했던 다양한 모델의 평균을 예측 해야함

Ex) 입력 뉴런이 2개, 출력 뉴런이 1개인 신경망에 뉴런을 유지할 확률 p=0.5로 드롭아웃을 적용

각 모델이 생성될 확률은 1/4 이므로 네 모델의 평균을 계산하면

1/4(w1x+𝑤2𝑦)+1/4(w1x+0𝑦)+1/4(0x+0𝑦)+1/4(0x+𝑤2𝑦)=1/2(w1x+𝑤2𝑦)1/4(w_1x+𝑤_2𝑦)+1/4 (w_1x+0𝑦)+1/4(0x+0𝑦)+ 1/4(0x+𝑤_2𝑦) = 1/2 (w_1x+𝑤_2𝑦)

드롭아웃을 하지 않은 전체모델의 출력 (w1x+𝑤2𝑦)과 뉴런 유지 확률 p의 곱으로 표현됨
![](https://velog.velcdn.com/images/dbswls6685/post/f2ccb1da-e703-4999-8827-aeddf7a76369/image.png

💡 예시로 이해하는 드롭아웃

얼굴인식을 하는 데이터가 10,000건이 존재, 데이터가 충분하지 않기 때문에 이 데이터를 전부 training에 사용했다고 가정

눈의 모양, 코의 모양, 눈썹의 모양, 입의 모양, 피부색, 얼굴모양, 쌍커풀 라인 등등이 포함

얼굴인식을 구분할 때 10가지의 특징을 보고 결정했다면 학습할 때, 4가지의 특징 정도를 빼 버리는 것!

이렇게 하면, 데이터가 느슨해지기 때문에 다양한 경우의 모델이 대응 할 수 있게 됨

내부적으로는 정확도가 떨어지겠지만 더 많은 데이터를 학습한 것 같은 효과가 남

📍 조기종료

  • 훈련하는 동안 주기적으로 성능을 검증, 성능이 더 좋아지지 않으면 과적합이라 판단, 훈련 stop!

[조기 종료 기준]
모델의 성능이 향상하지 않더라도 바로 종료해서는 안됨
미니배치로 근사한 그레이디언트 ≠ 실제 그레이디언트 때문

👉 신경망을 학습할 때 단계마다 미니 배치로 근사한 그레이디언트는 실제 그레이디언트와 차이가 있으므로 성능이 조금씩 좋아졌다 나빠졌다 할 수 있다. 따라서 일시적인 성능 변동이 아닌, 지속적인 성능의 정체 또는 하락이 판단되면 그때 종료하는 것이 바람직!

profile
yunjin.log

0개의 댓글