2016-12-05 6 views
0

나는 숫자를 분류하기 위해 caffe/example/mnist 네트워크를 사용하고 있습니다. 내가 네트워크에 숫자의 그림을 줄 때 잘 작동하는 것처럼 보입니다. 그러나 네트워크에 숫자가 아닌 그림을 주면 무언가 훈련 된 네트워크 softmax 계층이 항상 확률 1과 다른 값 0을 갖는 확률을 제공합니다.확률 항상 1

[0,0,0, ..., 1 , 0,0,0].

나는 그것을해야한다고 생각 뭔가 같은 :

[0,0.1,0.2, ..., 0.4,0.1,0.2], 나는 이것이이어야한다 말할 수있는 경우에

번호. 문제가 무엇입니까?

답변

0

숫자가 아닌 숫자에 대한 교육을받지 않았기 때문에 예상되는 것을 알기가 어려우며 결과의 합이 1이되어야합니다. Softmax를 사용하면 번호가 있음을 네트워크에 알리고, 숫자가 아닌 숫자를 보여줍니다. 출력을보고 숫자인지 여부를 판별 할 수는 없습니다.

또한, MNIST의 교육 데이터는 매우 고정 관념이며 일반화에는 적합하지 않습니다. 전경 번호는 이고 항상255이고 배경은 입니다. 항상입니다. 배경 픽셀이 더 많으므로 평균값은 0에 훨씬 가깝습니다. 단순히 평균 픽셀 값이 100 인 이미지를 표시하면 일반적으로 더 많은 픽셀 (예 : 8 개)이있는 숫자로 예측을 조정할 수 있습니다. 비슷한 유형의 자극으로 일반화하기 위해 네트워크에만 기대할 수 있습니다. 당신의 작업을 위해, 당신은 많은 데이터 증가를해야합니다.

모든 엔트로피에 대해 확률을 허용하려면 크로스 엔트로피 손실을 사용하면됩니다. 이것은 또한 1보다 큰 합계 (최대 10)의 확률을 허용합니다. 당신은 또한 Softmax로 "non-number"를위한 또 다른 클래스를 추가 할 수 있습니다.하지만 자연스러운 자극과 더 비슷한 숫자가 아닌 자극을 제시해야합니다 (그래서 쉽게 분리 할 수 ​​없습니다).

0

caffe/examples/mnist에 따라 mnist를 교육 한 후에는 배포 할 때 0-255가 아닌 0-1 범위의 이미지를 네트워크에 공급해야합니다. 시도해보고 올바른 probs가 있는지 확인하십시오. Illustration image