손실 및 정확도 곡선 이해

Aug 20 2020

이것은 내가 몇 번이고 마주 치는 문제입니다. 의미가없는 손실 (이 경우 교차 엔트로피) 및 정확도 플롯입니다. 여기에 예가 있습니다.

여기에서는 CIFAR10에서 ReNet18을 교육하고 있습니다. Optimizer는 0.1 학습률, 0.9 Nesterov 모멘텀, 1e-4 가중치 감소가있는 SGD입니다. 학습률은 epoch 60, 120, 160에서 ⅕로 감소합니다.

  • 처음에는 곡선이 모두 멋지고 멋집니다. 교육 및 검증 손실이 감소하고 정확도가 증가하고 있음을 의미합니다.
  • epoch 65 ~ 70 즈음에는 과적 합 징후를 볼 수 있습니다. 발로. 손실은 증가하기 시작합니다. 정확도가 감소하기 시작합니다 ( 빨간색 상자). 여기에는 여전히 이상한 것이 없습니다.

이제 나에게 의미가없는 두 가지가 있습니다.

  1. epoch 120 이후 (LR이 감소 된 경우) val. 손실과 정확도는 몇 epoch ( 녹색 상자) 동안 개선되기 시작 합니다. 학습률을 낮추면 이미 과적 합 된 모델의 검증 성능이 갑자기 향상되는 이유는 무엇입니까?! LR의 하락이 실제로 과적 합을 가속화 할 것으로 예상합니다.

  2. epoch ~ 125 ( 파란색 상자) 이후 손실이 증가하기 시작하지만 정확도는 계속 향상됩니다. 정확성이 일정하게 유지되는 동안 손실이 증가 할 수 있음을 이해합니다 (모델이 잘못된 예측에 대해 더 확신하거나 올바른 예측에 대해 덜 확신 함). 그러나 손실이 증가하는 동안 정확도가 어떻게 향상 될 수 있는지 알 수 없습니다.

답변

hH1sG0n3 Aug 20 2020 at 18:52

아래 몇 가지 포인트

  • 빨간색 상자 : 엄밀히 말하면 모델이 검증 세트보다 훈련에서 더 잘할 때 과적 합이 발생합니다. 그래서 저는 여기서 빨간색으로 표시된 것보다 일찍 시작한다고 말하고 아마도 훈련 세트에만 적용되는 더 나은 매개 변수를 찾는 모델과 관련이있을 것입니다. 특히 열차 손실은 크게 감소하지 않습니다.
  • 녹색 상자 : 훈련 중 손실이 크게 감소합니다. 훨씬 더 나은 최소값의 발견은 검증 세트에도 적용될 수 있으며 실제로 val loss 곡선에 반영된다는 것을 의미합니다. 그럼에도 불구하고 손실은 빨간색 상자의 시작 부분에있는 체크 포인트보다 낫지 않습니다.
  • 파란색 상자 : 손실과 정확도는 공존하는 메트릭이 아닙니다. 정확도는 정확한 추측 수 (수)의 척도 인 반면, 손실은 주어진 데이터 포인트 (얼마나 멀리 떨어져 있는지)에서 정답으로부터의 거리 척도입니다.

일반적으로 lr이 작을수록 모델이 형상 공간에서 매우 멀리 뛰어 다닐 수있는 "자유"가 적다는 것을 의미합니다. 따라서 현저하고 빠른 손실 감소를 볼 기회가 적습니다. 당신이 제안했듯이, 당신의 val loss에는 약간의 과적 합 경향이 있지만 더 작은 lr이 훈련에서 허용하는만큼 중요하거나 빠릅니다.

또한 훈련의 상당량 (~ 55 세대)에 대해 열차 손실이 val loss보다 큽니다. 진단을 더 잘 추론하는 데 도움이 될 수있는 방식으로 학습 곡선에 영향을 미칠 수 있으므로 모델이 어떻게 정규화되는지 조사 할 수 있습니다. 예를 들어 pytorch에서 모델 상태 (model.train () 및 model.eval ()) 간의 기차 손실은 크게 다릅니다.