이제 데이터 공부 안하는 블로그

과적합을 막기 위한 방법 - Early Stopping, Weight Decay, Weight Constraints, Dropout 본문

딥러닝

과적합을 막기 위한 방법 - Early Stopping, Weight Decay, Weight Constraints, Dropout

공사노비 2021. 8. 11. 13:43

* 제가 공부하기 위해 만든 자료입니다. 혹시 틀린 부분이 있다면 댓글로 알려주시면 수정하겠습니다.

 

인공신경망은 매개변수가 많은 모델이라서 쉽게 과적합(Overfit)될 수 있다. 또 신경망의 층이 깊어질 수록, 학습률이 작을수록 과적합되는 경향이 있다. 그럼 어떻게 과적합을 막을 수 있을까?

 

Overfitting을 막기 위한 방법

  • Early Stopping
  • Weight Decay
  • Weight Constraints
  • Dropout

 

1. Early Stopping 조기 종료 

 

epoch (학습 횟수)가 많을 수록 오차가 줄어든다. 하지만 어느 시점부터 오차가 다시 커지는 과적합(Overfitting)현상을 보여준다. 그래서 너무 많지도, 너무 적지도 않은 epoch를 설정하는 것이 중요한데, Early Stopping은 epoch를 계속 반복하다가 이전 epoch 와 비교해서 오차가 증가했다면 강제로 학습을 조기 중단시키는 것을 말한다. 

 

 

훈련세트로 학습을 진행하기 때문에 훈련세트의 에러는 감소하지만 어느 지점부터는 테스트세트의 에러가 증가하는 것을 볼 수 있다. 이렇게 에러가 증가하는 지점에서 학습을 멈춰주면 과적합을 막을 수 있다. 

 

 

 

2. Weight Decay 가중치 감소

가중치가 큰 것에 대해서는 일종의 패널티를 부과하여 과적합의 위험을 줄이는 방법이다. 손실함수에 대한 

 

3. Weight Constraints

물리적으로 가중치의 크기를 제한하는 방법. 가중치의 범위를 설정해줘서 그 이상으로 커지거나 작아지지 못하게 한다.

 

4. Dropout

신경망의 일부 노드를 사용하지 않도록 노드를 임의로 빼고 학습시키는 방법이다. 훈련시에는 노드를 제외시키지만 테스트 할 때는 모든 뉴런을 사용한다. 노드를 빼는 것이 과적합을 막는 것에 어떤 영향을 줄까? 앙상블과 비슷함. 확률이 낮은 여러 개의 모델을 써서 과적합을 최소하함. 매 회 학습할 때마다 랜덤으로 다른 노드를 제외하기 때문에 매번 가중치가 다른 알고리즘으로 학습하게 되 때문에 과적합을 막을 수 있다.