code:
center loss的caffe實現:
center
loss是通過將特徵和特徵中心的距離和softmax loss一同作為損失函式,使得類內距離更小,有點l1,l2正則化的意思。
最關鍵是在
訓練時要使用
2個loss函式:s
oftmax
loss
+ lamda
* center
loss:
和metric learning(度量學習)的想法一致,希望同類樣本之間緊湊,不同類樣本之間分散。現有的cnn最常用的softmax損失函式來訓練網路,得到的深度特徵通常具有比較強的區分性,也就是比較強的類間判別力。關於softmax的類內判別力,直接看圖:
上面給的是mnist的最後一層特徵在二維空間的乙個分布情況,可以看到類間是可分的,但類內存在的差距還是比較大的,在某種程度上類內間距大於類間的間距。對於像人臉這種複雜分布的資料,我們通常不僅希望資料在特徵空間不僅是類間可分,更重要的是類內緊湊
(分類任務中類別較多時均存在這個問題)
。因為同乙個人的類內變化很可能會大於類間的變化,只有保持類內緊湊,我們才能對那些類內大變化的樣本有乙個更加魯棒的判定結果。也就是學習一種discriminative的特徵。
下圖就是我們希望達到的一種效果:
考慮保持softmax loss的類間判別力,提出center loss,center loss就是為了約束類內緊湊
的條件。相比於傳統的cnn,僅改變了原有的損失函式,易於訓練和優化網路。
下面公式中log函式的輸入就是softmax的結果(是概率),而ls表示的是softmax loss的結果(是損失)。wx+b是全連線層的輸出,因此log的輸入就表示xi屬於類別yi的概率。
先看看center loss的公式lc。cyi表示第yi個類別的特徵中心,xi表示全連線層之前的特徵。實際使用的時候,m表示mini-batch的大小。因此這個公式就是希望乙個batch中的每個樣本的feature離feature 的中心的距離的平方和要越小越好,也就是類內距離要越小越好。
關於lc的梯度和cyi的更新公式如下:
這個公式裡面有個條件表示式如下式,這裡當condition滿足的時候,下面這個式子等於1,當不滿足的時候,下面這個式子等於0。
因此上面關於cyi的更新的公式中,當yi(表示yi類別)和cj的類別j不一樣的時候,cj是不需要更新的,只有當yi和j一樣才需要更新。
nncc:當我們在更新yi類的特徵中心cyi時,如果類別yi和該特徵中心對應的類別不一樣時不更新,即某類別的特徵只負責更新它對應的類別中心cyi。
完整的loss function:
作者文中用的損失l的包含softmax loss和center loss,用引數lamda控制二者的比重,如下式所示。這裡的m表示mini-batch的包含的樣本數量,n表示類別數。
具體的演算法實現:
資料準備
與基於 softmax loss 的分類問題的資料格式一致,即:
img1 label1
img2 label2
img3 label3
......
...
其中,label 從 0 開始。
根據資料集 labels 的總數設定 centerlosslayer 的 num_output。
網路訓練
類似於分類問題的訓練,進行網路訓練即可。
cnn框架:
總結:center loss損失函式對分類數不多的工程專案並沒有明顯的改善,如果你的分類任務中分類數大於1000,例如人臉識別,使用它效果會有明顯提公升。
center loss使得類內距離縮小,類間距離擴大,有效的將各個類別區分開。
使用了centerloss之後,每個類的樣本更加聚合,因此類間的距離也隨著增大。隨著loss_weight的值越來越大,類間距越來越大。達到了增大類間距,縮小類內距離的效果。
損失函式 損失函式 Hinge
本文討論hinge損失函式,該函式是機器學習中常用的損失函式之一。在機器學習中,hinge loss是一種損失函式,它通常用於 maximum margin 的分類任務中,如支援向量機。數學表示式為 其中 表示 輸出,通常都是軟結果 就是說輸出不是0,1這種,可能是0.87。表示正確的類別。其函式影...
常見損失函式 損失函式選擇方法
神經網路的學習通過某個指標表示現在的狀態,然後以這個指標為基準,尋找最優權重引數,這個指標就是損失函式 loss function 如上介紹,神經網路損失函式 loss function 也叫目標函式 objective function 的作用 衡量神經網路的輸出與預期值之間的距離,以便控制 調節...
損失函式 SRGAN損失函式(目標函式)詳解
srgan的特點之一就是引進了損失感知函式,由此提公升了超解析度之後的細節資訊。本文主要像您介紹srgan使用的損失函式,及其keras實現。這是原文中給出的損失函式。容易看出,此損失函式包括兩部分,第一部分是感知損失,第二部分是正則化損失。感知損失是由李飛飛團隊提出的一種損失函式。感知損失分了兩部...