사이토고키의 <밑바닥부터 시작하는 딥러닝>을 공부하고 정리해보았습니다.
이전 포스팅에서 오버피팅에 대해 알아보았습니다. 이번에는 오버피팅을 억제하는 방법에 대해 알아보겠습니다.
오버피팅 억제법
1. 가중치 감소 - weight decay
오버피팅 억제용으로 예로부터 많이 이용해온 방법 중 가중치 감소라는 것이 있습니다.
이는 학습 과정에서 큰 가중치에 대해서는 그에 상응하는 큰 페널티를 부과하여 오버피팅을 억제하는 방법입니다.
원래 오버피팅은 가중치 매개변수의 값이 커서 발생하는 경우가 많기 때문입니다.
복습을 해보겠습니다.
신경망 학습의 목적은 손실 함수의 값을 줄이는 것입니다.
이때, 예를 들어 가중치의 제곱 노름 (L2 노름)을 손실 함수에 더합니다.
그러면 가중치가 커지는 것을 억제할 수 있습니다.
가중치를 W라 하면 L2 노름에 따른 가중치 감소는 $\frac{1}{2} \lambda W^2$이 되고, 이 $\frac{1}{2} \lambda W^2$을 손실 함수에 더합니다.
여기에서 $\lambda$는 정규화의 세기를 조절하는 하이퍼 파라미터입니다.
$\lambda$를 크게 설정할수록 큰 가중치에 대한 패널티가 커집니다.
또 $\frac{1}{2} \lambda W^2$의 앞쪽 $\frac{1}{2}$은 $\frac{1}{2} \lambda W^2$의 미분결과인 $\lambda W$를 조정하는 역할의 상수 입니다.
가중치 감소는 모든 가중치 각각의 손실 함수에 $\frac{1}{2} \lambda W^2$을 더합니다.
따라서 가중치의 기울기를 구하는 계산에서는 그동안의 오차역전파법에 따른 결과에 정규화 항을 미분한 $\lambda W$를 더합니다.
그러면 실험을 해보겠습니다.
그림과 같이 훈련 데이터에 대한 정확도와 시험 데이터에 대한 정확도에는 여전히 차이가 있지만, 가중치 감소를 이용하지 않은 데이터와 비교하면 그 차이가 줄었습니다.
다시 말해 오버피팅이 억제됐다는 소리입니다.
그리고 앞서와 달리 훈련 데이터에 대한 정확도가 100%에 도달하지 못한 점도 주목해야 합니다.
'수학 > 딥러닝 이론' 카테고리의 다른 글
[딥러닝] 검증 데이터 - 하이퍼파라미터의 성능을 평가 (0) | 2020.10.03 |
---|---|
[딥러닝] 3. 오버피팅 억제법 - 드롭아웃 (0) | 2020.10.03 |
[딥러닝] 1. 오버피팅(과적합)이란? (0) | 2020.10.03 |
[딥러닝] 배치 정규화의 알고리즘과 효과 (0) | 2020.10.03 |
[딥러닝] 3. 가중치의 초깃값 - ReLU를 사용할 때의 가중치 초깃값 - He 초깃값 (0) | 2020.10.03 |