深度學習基礎:
前言
本文主要總結一下常見目標檢測的損失函數以及一些基礎的函數,主要損失函數爲mask-rcnn涉及到的損失函數包括:
- MSE均方誤差損失函數、
- Cross Entropy交叉熵損失函數
- 目標檢測中常用的Smooth L1損失函數
- focal loss,log loss
- dice loss ,iou loss
損失函數:
共分爲兩類,分類問題的損失,和迴歸問題的損失。
分類損失:
- cross entropy loss
- focal loss
- log loss
迴歸損失:
- L1 loss
- L2 loss
- smooth L1 loss
均方差損失函數(僅爲比較經典)
均方差損失函數常用在最小二乘法中。它的思想是使得各個訓練點到最優擬合線的距離最小(平方和最小)。均方差損失函數也是我們最常見的損失函數,定義如下:
其中, a=f(z)=f(w·x+b) :x是輸入、w和b是網絡的參數、 f(·) 是激活函數。
交叉熵損失函數(分類)
- 熵:是信息論中最基本、最核心的一個概念,它衡量了一個概率分佈的隨機程度,或者說包含的信息量的大小。
- 交叉熵:的定義與熵類似,不同的是定義在兩個概率分佈而不是一個概率分佈之上。對於離散型隨機變量,交叉熵定義爲
交叉熵刻畫的是兩個概率分佈之間的距離,或可以說它刻畫的是通過概率分佈q來表達概率分佈p的困難程度,p代表正確答案,q代表的是預測值,交叉熵越小,兩個概率的分佈約接近。
-
softmax:(指在max的數據經常被取得,而小的數據也能被取得的softmax)計算公式:
softmax直白來說就是將原來輸出是3,1,-3通過softmax函數一作用,就映射成爲(0,1)的值,而這些值的累和爲1(滿足概率的性質),那麼我們就可以將它理解成概率,在最後選取輸出結點的時候,我們就可以選取概率最大(也就是值對應最大的)結點,作爲我們的預測目標! -
交叉熵損失:計算神經網絡gt分數和預測分數之間的差距,交叉熵損失函數公式爲:
log loss(二分類)
focal loss(二分類)
focal loss爲凱明大神的大作,主要用於解決多分類任務中樣本不平衡的現象,可以獲得比softmax_cross_entropy更好的分類效果。由log loss改進而來的,爲了於log loss進行對比,公式如下:
比log loss多了一個
Smooth L1損失函數(迴歸)
Smooth L1損失函數是在Fast R-CNN中被提出,他的bound box的迴歸方式使用了該損失函數
對於目標檢測中的迴歸問題,最初大多采用均方誤差損失 這樣反向傳播對w或者b求導時仍存在 那麼當預測值和目標值相差很大時,就容易造成梯度爆炸。
所以我們將 這種均方誤差形式,轉變成 這種形式
smoothL1主要公式如下:
- 當預測框與 ground truth 差別過大時,梯度值不至於過大;
- 當預測框與 ground truth 差別很小時,梯度值足夠小。
- Smooth L1 Loss結合了L2 Loss收斂更快,且在0點有導數,便於收斂的好處。也在邊界區域結合了L1 Loss的好處,讓網絡對異常值更加robust,能夠在偏移值較大時還能拉回來
dice loss
Dice 可以理解爲是兩個輪廓區域的相似程度,用A、B表示兩個輪廓區域所包含的點集,定義爲:
或者可表示爲: