1

나는 정확도가 높지는 않지만 분류 작업에 대한 훈련 된 신경 네트워크를 가지고 있으며 학습하고 있습니다. 어떤 테스트 사례가 자신감이없는 것인지 파악하려고 노력 중이므로 어떤 일이 벌어지고 있는지 더 자세히 파악할 수 있습니다.신경망 높은 신뢰도 부정확 한 예측

이렇게하기 위해 Tensorflow에서 표준 softmax 확률을 사용하기로 결정했습니다. 이를 위해 tf.nn.softmax(logits)에 전화하여 여기 제공된 확률을 사용했습니다. 확률이 99 %에 이르는 경우가 많았지 만 예측은 여전히 ​​잘못되었습니다. 따라서 예측 확률이 99 % 이상인 예제 만 고려해도 원래의 정확도보다 2 ~ 3 % 높은 정확도를 얻지 못합니다.

네트워크에서 잘못된 예측에 대한 자신감이있는 이유는 누구입니까? 나는 아직도 새로운 것을 배우고, 그래서 나를 찾고있는 몇 가지 아이디어를 나를 도울 수 있습니다.

또한 softmax 확률을 사용하여 신경망의 예측 신뢰도를 결정합니까? 그렇지 않다면, 더 좋은 방법이 있습니까?

감사합니다.

편집 : 아래 답변에서 내 네트워크가 제대로 작동하지 않는 것 같습니다. 네트워크가 어떤 예측을 내리는가를 확인하는 다른 방법이 있는가? (확신이 잘 안되기 때문에) 자신감을 보는 것 외에 다른 방법이있을 수 있는가?

+0

때로는 잘못된 이니셜 라이저를 사용할 때 이런 일이 발생할 수 있습니다. 이니셜 라이저가 마지막 레이어의 가중치에 너무 높은 분산을 제공하면 한 클래스가 다른 모든 클래스보다 훨씬 높은 logit 값을 가지게되므로 softmax 이후에 높은 신뢰도로 변환 될 가능성이 높습니다. 다른 이니셜 라이저를 사용해 볼 수도 있습니다. https://www.tensorflow.org/api_guides/python/contrib.layers#Initializers – Lior

+0

하나의 클래스 만 높은 확신을 갖고있는 것은 아닙니다. 단지 많은 경우가 있습니다. 잘못된 수업 (어떤 것일 수도 있음)은 정말로 높은 자신감을 가지고 있습니다. 이것이 도움이된다면 이것은 텍스트를 이해하는 문제이기도합니다. 현재 Xavier Initializer를 사용하고 있지만 다른 것들을 시도 할 것입니다. – hockeybro

답변

0

샘플이 세로선으로 나뉘었지만 NN 분류기가 수평선을 학습했다는 것을 상상해보십시오.이 경우 분류기에서 제공 한 예측은 항상 50 %의 정확도 만 얻을 수 있습니다. 그러나 NN은 수평선에서 더 멀리 떨어진 샘플에 높은 신뢰도를 할당합니다.

간단히 말해서 모델이 불량 분류를 할 때 높은 신뢰도는 정확도에 거의 기여하지 않습니다.

제안 : 올바른 분류 작업을 수행하는 데 필요한 정보가 데이터에 있는지 확인한 다음 전반적인 정확도를 먼저 높이십시오.

+0

그래,이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? 아니면 내 일이 너무 어렵다는 뜻인가? – hockeybro

+0

나는 또한 그들 모두가 99 % 신뢰를 가지고있는 것은 아니라는 점을 주목한다. 그렇다면 모델이 실제로 학습 된 사례이므로 60 % 및 90 % 신뢰도를 가진 예제 만 고려할 때 정확도가 더 높아야한다는 의미입니까? – hockeybro

+0

기본적으로 NN이 잘못 분류하는 것을 의미합니다. 제안은 전반적인 정확도를 먼저 향상시키는 것입니다. – zfy