2016-12-05 131 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.平均值將更接近0,因爲有更多的背景像素。簡單地呈現具有100的平均像素值的圖像可以將預測偏向於通常具有更多像素的數字(可能像8)。你只能期望網絡能推廣到相似類型的刺激。對於你的任務,你應該做很多數據增加。

您希望允許所有數字的概率爲零,您可以通過使用交叉熵損失來做到這一點。這也會使得概率也可以大於1(最大10)。您也可以嘗試用Softmax添加另一個「非數字」類,但是,您應該呈現非數字刺激和與自然刺激更相似的數字刺激(以便它們不是微不足道的)。

0

根據caffe/examples/mnist訓練好mnist後,在部署時必須使用0-1範圍內的圖像而不是0-255範圍內的圖像進行網絡饋送。嘗試一下,看看你是否得到正確的probs Illustration image