1. 程式人生 > >Caffe中Loss Layer原理的簡單梳理

Caffe中Loss Layer原理的簡單梳理

1.SoftmaxWithLoss

對一對多的分類任務計算多項邏輯斯蒂損失,並通過softmax傳遞預測值,來獲得各類的概率分佈。該層可以分解為SoftmaxLayer+MultinomialLogisticLossLayer,但它的梯度計算在數值上更為穩健。在測試時,該層可用SoftmaxLayer替代。

前向傳播

bottom: 1.(N×C×H×W)維的預測得分x,N是batch數,類別總數為K=CHW,目前看到的SoftmaxWithLossLayer的bottom一般是一個InnerProduct層,所以K是寫在一起的。該層將這些得分通過softmax函式(多項logistic迴歸模型)這裡寫圖片描述對映為概率分佈,n∈[0, 1, …, N-1],k、k’∈[0, 1, …, K-1]; 
2.(N×1×1×1)維的標籤l,這裡寫圖片描述

,表示這個bacth中各樣本的正確標籤。 
top:(1×1×1×1)維,對softmax輸出類別概率這裡寫圖片描述的交叉熵分類損失這裡寫圖片描述

反向傳播

top:(1×1×1×1)維,該blob的微分就是loss_weight λ,λ是該層輸出這裡寫圖片描述 的係數,整個網路的損失為這裡寫圖片描述 ,這樣這裡寫圖片描述。 
bottom: 1.(N×C×H×W)維的預測得分x,反向計算微分這裡寫圖片描述; 
2.(N×1×1×1)維的標籤,忽略。 
另外可參考一篇很好的介紹文章:http://blog.csdn.net/u012162613/article/details/44239919

2.EuclideanLoss

迴歸任務計算歐氏距離(L2)損失這裡寫圖片描述,可用於最小二乘迴歸任務。

前向傳播

bottom:

 1.(N×C×H×W)維的預測,這裡寫圖片描述 
2.(N×C×H×W)維的真實結果,這裡寫圖片描述 
top:(1×1×1×1)維的歐氏距離損失:這裡寫圖片描述

反向傳播

top:(1×1×1×1)維,該blob的微分就是loss_weight λ,λ是該層輸出這裡寫圖片描述 的係數,整個網路的損失為這裡寫圖片描述 ,這樣這裡寫圖片描述。 
bottom: 1.(N×C×H×W)維的預測這裡寫圖片描述,反向計算微分這裡寫圖片描述; 
2.(N×C×H×W)維的預測這裡寫圖片描述,反向計算微分這裡寫圖片描述

3.HingeLoss

對一對多的分類任務計算鉸鏈損失。

前向傳播

bottom: 1.(N×C×H×W)維的預測t,blob值的範圍是這裡寫圖片描述,表示對K=CHW中每個類的預測得分。在SVM中,這裡寫圖片描述是D維特徵這裡寫圖片描述和超平面引數這裡寫圖片描述的內積這裡寫圖片描述,因此只有一個InnerProductLayer(num_output = D)提供預測到HingeLossLayer中的網路就相當於一個SVM; 
2.(N×1×1×1)維的真實標籤l,這裡寫圖片描述

。 
top:(1×1×1×1)維的鉸鏈損失:這裡寫圖片描述,對應於這裡寫圖片描述正規化,預設是L1正規化,也可以用L2正規化,這裡寫圖片描述

反向傳播

top:(1×1×1×1)維,該blob的微分就是loss_weight λ,λ是該層輸出這裡寫圖片描述 的係數,整個網路的損失為這裡寫圖片描述 ,這樣這裡寫圖片描述。 
bottom: 1.(N×C×H×W)維的預測得分t,反向計算微分這裡寫圖片描述; 
2.(N×1×1×1)維的標籤,忽略。

4.SigmoidCrossEntropyLoss

計算交叉熵(邏輯斯蒂)損失這裡寫圖片描述,通常用於以概率形式預測目標。該層可以分解為SigmoidLayer+CrossEntropyLayer,但它的梯度計算在數值上更為穩健。在測試時,該層可用SigmoidLayer替代。

前向傳播

bottom: 1.(N×C×H×W)維的預測得分這裡寫圖片描述,是用sigmoid函式這裡寫圖片描述的概率預測這裡寫圖片描述; 
2.(N×C×H×W)維的真實結果,這裡寫圖片描述。 
top:(1×1×1×1)維的交叉熵損失:這裡寫圖片描述

反向傳播

top:(1×1×1×1)維,該blob的微分就是loss_weight λ,λ是該層輸出這裡寫圖片描述 的係數,整個網路的損失為這裡寫圖片描述 ,這樣這裡寫圖片描述。 
bottom: 1.(N×C×H×W)維的預測得分x,反向計算微分這裡寫圖片描述; 
2.(N×1×1×1)維的標籤,忽略。

5.MultinomialLogisticLossLayer

對一對多的分類任務計算多項邏輯斯蒂損失,直接將預測的概率分佈作為輸入。當預測並不是概率分佈時應該用SoftmaxWithLossLayer,因為它在計算多項邏輯斯蒂損失前通過SoftmaxLayer將預測對映為分佈。

前向傳播

bottom: 1.(N×C×H×W)維的預測得分這裡寫圖片描述,blob值的範圍是[0, 1],表示對K=CHW個類中每個類的預測概率。每個預測向量這裡寫圖片描述之和為1,這裡寫圖片描述
2.(N×1×1×1)維的標籤l,這裡寫圖片描述,表示這個bacth中各樣本的正確標籤。 
top:(1×1×1×1)維的多項邏輯斯蒂損失這裡寫圖片描述

反向傳播

top:(1×1×1×1)維,該blob的微分就是loss_weight λ,λ是該層輸出這裡寫圖片描述 的係數,整個網路的損失為這裡寫圖片描述 ,這樣這裡寫圖片描述。 
bottom: 1.(N×C×H×W)維的預測得分這裡寫圖片描述,反向計算微分這裡寫圖片描述; 
2.(N×1×1×1)維的標籤,忽略。

6.InfogainLoss

是MultinomialLogisticLossLayer的泛化,利用“information gain”(infogain)矩陣指定所有標籤對的“value“,如果infogain矩陣一致則與MultinomialLogisticLossLayer等價。

前向傳播

bottom: 1.(N×C×H×W)維的預測得分這裡寫圖片描述,blob值的範圍是[0, 1],表示對K=CHW個類中每個類的預測概率。每個預測向量這裡寫圖片描述之和為1,這裡寫圖片描述
2.(N×1×1×1)維的標籤l,這裡寫圖片描述,表示這個bacth中各樣本的正確標籤; 
3.(1×1×K×K)維的infogain矩陣H(相應的另一個為I),若H=I則該層等價於MultinomialLogisticLossLayer。 
top:(1×1×1×1)維的infogain多項邏輯斯蒂損失這裡寫圖片描述這裡寫圖片描述指的是H的第這裡寫圖片描述行。

反向傳播

top:(1×1×1×1)維,該blob的微分就是loss_weight λ,λ是該層輸出這裡寫圖片描述 的係數,整個網路的損失為這裡寫圖片描述 ,這樣這裡寫圖片描述。 
bottom: 1.(N×C×H×W)維的預測得分這裡寫圖片描述,反向計算微分這裡寫圖片描述; 
2.(N×1×1×1)維的標籤,忽略; 
3.(1×1×K×K)維的infogain矩陣,忽略。

7.ContrastiveLoss

計算對比損失這裡寫圖片描述,其中這裡寫圖片描述,可用於訓練siamese網路。

前向傳播

bottom: 1.(N×C×1×1)維的特徵這裡寫圖片描述; 
2.(N×C×1×1)維的特徵這裡寫圖片描述; 
3.(N×C×1×1)維的二元相似度這裡寫圖片描述。 
top:(1×1×K×K)維的對比損失這裡寫圖片描述

反向傳播

top:(1×1×1×1)維,該blob的微分就是loss_weight λ,λ是該層輸出這裡寫圖片描述 的係數,整個網路的損失為這裡寫圖片描述 ,這樣這裡寫圖片描述。 
bottom: 1.(N×C×1×1)維的特徵a; 
2.(N×C×1×1)維的特徵b。