유효성 검사 정확도가 향상되는 동안 유효성 검사 손실이 증가하는 방법은 무엇입니까?


27

CIFAR10 데이터 세트에서 간단한 신경망을 훈련하고 있습니다. 얼마 후, 검증 손실이 증가하기 시작했지만 검증 정확도도 증가했습니다. 테스트 손실 및 테스트 정확도는 계속 향상됩니다.

이것이 어떻게 가능한지? 유효성 검증 손실이 증가하면 정확도가 저하되는 것 같습니다.

추신 : 비슷한 질문이 몇 개 있지만 아무도 그 일에 대해 설명하지 못했습니다.여기에 이미지 설명을 입력하십시오


2
내 대답에서 이해할 수있는 힌트를 확인할 수 있습니다 : stats.stackexchange.com/questions/258166/…
ahstat

@ahstat 기술적으로 어떻게 가능한지 이해하지만 여기서 어떻게 발생하는지 이해하지 못합니다.
Konstantin Solomatov

'그림 2'는 나와 당신이 경험 한 것인데 일종의 과적 합입니다. 내 특별한 문제에 대해서는 세트를 섞은 후에 완화되었습니다.
ahstat

@ahstat 과적 합과 싸우는 방법에는 여러 가지가 있습니다. 예를 들어, 드롭 아웃을 사용할 수 있습니다. 내가 가장 흥미로운 것은 이것에 대한 설명입니다. 즉, 왜 점차적으로 증가하고 있습니까?
Konstantin Solomatov

답변:


11

Ankur의 답변과 그 아래의 의견을 바탕으로 다음 시나리오가 가능하지만 그에 대한 증거는 없습니다. 동시에 두 가지 현상이 발생할 수 있습니다.

  1. 경계선 예측이있는 일부 예는 더 잘 예측되므로 출력 클래스 변경 (예 : 0.4는 고양이로, 고양이는 0.6으로 말은 0.4, 말은 0.6, 고양이는 0.6으로 예측됩니다). 이로 인해 손실이 감소하는 동안 정확도는 증가합니다.

  2. 예측이 매우 나쁜 일부 예는 계속 악화되고 있습니다 (예 : 말로 예상되는 고양이 이미지는 말로 0.9로 예측됩니다) 및 / 또는 (특히 멀티 클래스의 경우 더 가능성이 높음) 예측은 조금 더 나빠집니다 (예 : 고양이로 0.9로 예측 된 고양이 이미지는 고양이로 0.8로 예측됩니다). 이 현상으로 정확도는 그대로 유지되면서 손실이 증가합니다.

따라서 현상 2가 어떤 시점에서, 많은 예에서 (예를 들어 어떤 이유로 잘 이해되지 않는 특정 클래스의 경우) 및 / 또는 손실 증가가 1에서 얻는 손실 감소보다 획기적인 경우, 시나리오에서 자신을 찾으십시오.
다시 한 번, 이것이 일어나지 않을 수도 있지만, 그러한 시나리오를 생각해 낼 수 있다면 (교차 엔트로피) 손실과 정확성 사이의 때로는 미끄러운 관계를 상기시켜야한다고 생각합니다.


15

세트의 정확도는 최고 소프트 맥스 출력과 올바른 레이블이있는 클래스를 교차 점검하여 평가되며 소프트 맥스 출력의 높이에 의존하지 않습니다 . 더 명확하게하기 위해 몇 가지 숫자가 있습니다.

개, 고양이, 말의 3 가지 수업이 있다고 가정하자. 우리의 경우 올바른 클래스는 horse 입니다. 이제 softmax의 출력은 [0.9, 0.1]입니다. 이 손실에 대해 ~ 0.37. 분류기는 말이라고 예측합니다. softmax 출력이 [0.6, 0.4] 인 다른 경우를 생각해보십시오. 손실 ~ 0.6. 분류기는 여전히 말임을 예측합니다. 그러나 확실히 손실이 증가했습니다. 출력 분포에 관한 것입니다.


4
관찰 : 귀하의 예에서 정확도는 변하지 않습니다. 여전히 100 %입니다. 손실이 줄고 정확도도 떨어지는 예가 있습니까?
휴 퍼킨스

1

Ankur의 답변에서 다음과 같이 보입니다.

정확도 를 측정 비율의 정확성 예측의 예correctclassestotalclasses

동안

손실은 실제로 예측 의 역 신뢰 (더 나은 단어를 원함)를 추적합니다 . 높은 손실 점수는 모델이 좋은 예측을 만드는 경우에도, 그것은, 즉를 나타냅니다 확인이 만드는 예측의 ... 그 반대의 경우도 마찬가지입니다.less

그래서...

높은 검증 정확도 + 높은 손실 점수높은 훈련 정확도 + 낮은 손실 점수 는 모델이 훈련 데이터에 과도하게 적합 할 수 있음을 나타냅니다.


0

많은 답변들이 이것이 어떻게 가능한지를 설명하는 수학적 계산에 중점을 둡니다. 그러나 그들은 왜 그렇게되는지 설명하지 않습니다. 그리고 그들은 더 명확하게 파는 방법을 제안 할 수 없습니다.

나는 세 가지 가설이 있습니다. 그것들을 검증하기위한 실험을 제안하십시오. 이 문제를 설명하는 데 도움이되기를 바랍니다.

  1. 라벨이 시끄 럽습니다. val_loss가 최소 일 때와 val_acc가 최대 일 때의 잘못된 예측을 비교하십시오. 이 샘플들이 올바르게 라벨링되어 있는지 확인하십시오.
  2. [덜 가능성] 모델에 충분한 정보가 부족하여 확실하지 않습니다. 점점 더 많은 숨겨진 레이어로 실험하십시오.
  3. [매우 거친 추측] 이것은 모델이 특정 훈련을 더 오래 훈련하는 것에 대해 확신이없는 경우입니다. 이러한 상황은 인간에게도 발생합니다. 누군가가 기술을 배우기 시작했을 때, 그는 무엇이 좋고 나쁜지, 어떤 것이 무엇인지 (높은 확실성) 정확하게 알려줍니다. 더 많은 사례와 사례를 살펴보면 더 나은 의사 결정 (보다 정확성)을 내릴 수는 있지만 특정 경계가 흐려질 수 있다는 사실을 알게됩니다. 그리고 그는 수많은 샘플 목록과 많은 시행 착오 (더 많은 훈련 데이터)를 거친 후 마스터가되었을 때 더 확실해 질 수 있습니다. 따라서이 경우 교육 데이터에 더 많은 노이즈를 추가하는 실험 (라벨이 아님)이 도움이 될 수 있습니다.

이 가설에 동의하지 않는다면 이것에 대해 논쟁하지 마십시오. 그것들을 증명하든, 틀리 든 입증하든 실험을 통해 검증하는 것이 더 의미가있을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.