1. 程式人生 > >【MatConvNet代碼解析】 vl_nnsoftmaxloss

【MatConvNet代碼解析】 vl_nnsoftmaxloss

eight ear img src vnet com 會有 分類 bubuko

背景知識:http://deeplearning.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92

技術分享圖片

假設softmax層的輸入(softmax前一次的輸出),或者理解為一般分類器的得分f(x)=</theta,x>中的/theta可以隨便減一個常量。

或者假設現在的類別數目為N,不妨設為N=3,那麽會有三個分類器,假設每個分類器的得分為f_j(x)=</theta_j,x>

我們知道在做softmax操作其實就是將exp(f_j(x))歸一化。

所以這裏每一個f_j(x)其實都可以去減三個分類器得分中任意一個,只要大家減同一個值,不影響結果。

所以在MatConvNet才會有這樣的代碼

技術分享圖片

這裏大家減去的是N個分類器得分中最大的那個得分,代碼中的x就是上面所述的分類器得分。

技術分享圖片

最後的損失函數為t,如果願意硬推,不按照背景知識去解釋,依然可以解釋。解釋如下:

技術分享圖片

技術分享圖片

【MatConvNet代碼解析】 vl_nnsoftmaxloss