最近在看人臉表情識別論文的時候,看到了有用中心損失函數(Cemter Loss),中心損失它僅僅用來減少類內(比如說同一表情)的差異,而不能有效增大類間(比如說不同表情)的差異性。如下圖所示:
上圖中,圖(a)表示softmax loss學習到的特征描述 。圖(b)表示softmax loss + center loss 學習到的特征描述,他能把同一表情的樣本之間的距離拉近一些,使其相似性變大,盡量的往樣本中心靠攏,但可以看出他沒有把不同表情之間的樣本距離拉大。
它的定義是這樣的:
類中心c:每一個樣本的特征需要通過一個好的網絡到達特征層獲得,這樣計算完后所有樣本的特征的平均值為類中心c,而好的網絡需要是在有類中心加入的情況下才能得到...
優化過程:
沒法直接獲得c,所以將其放到網絡里自己生成,在每一個batch里更新center.即隨機初始化center,而后每一個batch里計算當前數據與center的距離,而后將這個梯度形式的距離加到center上.類似於參數修正.同樣的類似於梯度下降法,這里再增加一個scale度量a,使得center不會抖動.