1. 程式人生 > >softmax層(無loss)是什麼樣的?

softmax層(無loss)是什麼樣的?

名稱:softmax_layer

連線:softmax層一般連線的是全連線層和loss層

這裡有softmax層的來歷解釋,我感覺解釋的很好:http://zhidao.baidu.com/link?url=brlk4rKSEl3AVbpu5cL8S9FZOeFF1nVES1lydYSa84ctjpSDU5dXZDo-1llgcnwubScZ2jaq194Mr8g52wk7cGZR8J747yxOAB9dM35LY-u

先理解max. 對一個三類問題,某樣本經過NN處理後,最後一層輸出值為[24,3,0.1]的話,那麼經過max之後的結果為[1,0,0]。對不?
  (至於為啥要max,輸出結果本來挺奇怪 經過max以後就是categorical 的了,那麼樣本的類標就可以和他的預測值一起合體 直觀地計算cost function。)
我們最需要的其實是max,但是max有個缺點就是不可導,沒法用在bp裡,於是有人就想出了softmax。思路就是指數級擴大最後一層的輸出,每個值都會增大,然而最大的那個值相比其他值擴大的更多,然後歸一化一下,考慮一下極限,如果最大值x_1經過指數運算後想對其他值為無窮大,那麼exp(x_1)/exp(x_1)+others =1,其他輸出值對應的為0。所以softmax模擬了max的行為,同時他還可導。
softmax層的公式:
其中Z就是輸入,是個向量,也就是上一層(全連線層)的輸出,對於分類問題,上一層全連線層輸出的向量的維數就是類別個數,在softmax層中,K就是類別個數。