caffe中的損失函式
損失函式,一般由兩項組成,一項是loss term,另外一項是regularization term。
J=L+R
先說損失項loss,再說regularization項。
1. 分對得分1,分錯得分0.gold standard
2. hinge loss(for softmargin svm),J=1/2||w||^2 + sum(max(0,1-yf(w,x)))
3. log los, cross entropy loss function in logistic regression model.J=lamda||w||^2+sum(log(1+e(-yf(wx))))
4. squared loss, in linear regression. loss=(y-f(w,x))^2
5. exponential loss in boosting. J=lambda*R+exp(-yf(w,x))
再說regularization項,
一般用的多的是R2=1/2||w||^2,R1=sum(|w|)。R1和R2是凸的,同時R1會使得損失函式更加具有sparse,而R2則會更加光滑些。具體可以參見下圖:
caffe的損失函式,目前已經囊括了所有可以用的了吧,損失函式由最後一層分類器決定,同時有時會加入regularization,在BP過程中,使得誤差傳遞得以良好執行。
contrastive_loss,對應contrastive_loss_layer,我看了看程式碼,這個應該是輸入是一對用來做驗證的資料,比如兩張人臉圖,可能是同一個人的(正樣本),也可能是不同個人(負樣本)。在caffe的examples中,
euclidean_loss,對應euclidean_loss_layer,該損失函式就是l=(y-f(wx))^2,是線性迴歸常用的損失函式。
hinge_loss,對應hinge_loss_layer,該損失函式就是。主要用在SVM分類器中。
infogain_loss,對應infogain_loss_layer,損失函式表示式沒找到,只知道這是在文字處理中用到的損失函式。
multinomial_logistic_loss,對應multinomial_logistic_loss_layer,
sigmoid_cross_entropy,對應sigmoid_cross_entropy_loss_layer,也就是logistic regression使用的損失函式。
softmax_loss,對應softmax_loss_layer,損失函式等可以見UFLDL中關於softmax章節。在caffe中多類分類問題,損失函式就是softmax_loss,比如imagenet, mnist等。softmax_loss是sigmoid的多類問題。但是,我就沒明白,multinomial_logistic_loss和這個有什麼區別,看程式碼,輸入有點差別,softmax的輸入是probability,而multinomial好像不要求是probability,但是還是沒明白,如果只是這樣,豈不是一樣啊?
這裡詳細說明了兩者之間的差異,並且有詳細的測試結果,非常贊。簡單理解,multinomial 是將loss分成兩個層進行,而softmax則是合在一起了。或者說,multinomial loss是按部就班的計算反向梯度,而softmax則是把兩個步驟直接合併為一個步驟進行了,減少了中間的精度損失等 ,從計算穩定性講,softmax更好,multinomial是標準做法,softmax則是一種優化吧。
轉自caffe:
Softmax
- LayerType:
SOFTMAX_LOSS
The softmax loss layer computes the multinomial logistic loss of the softmax of its inputs. It’s conceptually identical to a softmax layer followed by a multinomial logistic loss layer, but provides a more numerically stable gradient.
references:
http://caffe.berkeleyvision.org/tutorial/layers.html
Bishop, pattern recognition and machine learning
http://deeplearning.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92
http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/