首先應該知道Logistic Loss和Crossing Entropy Loss本質上是一回事。
所以所謂的SoftMaxLoss就是一般二分類LogisitcLoss的推廣。之所以在網絡中采取這種損失,而不是均方誤差的原因是LogisticLoss更易於求導:采用交叉熵做損失要比均方誤差更合理。詳細解釋見:https://zhuanlan.zhihu.com/p/61944055。
也可以統一寫成
Loss=ln(1+exp(-(2*y_i-1)*v_i)))
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
上面的推導都是基於Logistic Loss和Crossing Entropy Lossing本質一樣的前提討論的。
其實Logistic Loss和最大似然也是一樣的出發點。
我們假設x為數據輸入。SoftMax層的輸入為(/theta_1^{T}x,/theta_2^{T}x,...,/theta_K^{T}x)^T,即假設x的分類可能有K種。
那么SoftMax層的輸出就是(p_1,p_2,...,p_K),其中 p_i=exp(/theta_i^{T}x)/(/sigma_{j=1}^K{expexp(/theta_j^{T}x)}), i=1,...,K
這里p_i=p(x;/theta_i)就是數據x屬於第i類的概率,也就是x的似然,亦即p_i=p(x;/theta_i)=L(/theta_i;x)
我們假設x的groundtruth為第c類,所以我們訓練的目標就使似然函數L_c=L(/theta_c;x)最大。
當時實際上我們都是求對數似然函數,亦即使得Loss=-log(L(/theta_c;x))最小。
即Loss=-log(p_c)。這個就和SoftMax的損失完全一致了。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++2018.5.15++++++++++++++++++++