deep learning loss總結

在深度學習中會遇到各類各樣的任務,咱們指望經過優化最終的loss使網絡模型達到指望的效果,所以loss的選擇是十分重要的。網絡

cross entropy loss框架

cross entropy loss和log loss,logistic loss是同一種loss。經常使用於分類問題,通常是配合softmax使用的,經過softmax操做獲得每一個類別的機率值,而後計算loss。機器學習

softmax函數爲:函數

學習

除了e,還可使用另外一個底數b,b>0,選擇一個較大的b值,將建立一個機率分佈,該分佈更集中於輸入值最大的位置。,所以,softmax函數又能夠寫做優化

3d

softmax函數的輸出是一個機率分佈,機率和爲1。blog

cross entropy loss爲:深度學習

cross entropy loss用來度量模型預測分佈和真實分佈之間的距離,是平方偏差(MSE)的一種普遍應用的替代方法。通常用於當輸出特徵爲機率分佈時,輸出特徵的每一個值表明估計爲對應類別的機率。神經網絡

 

hingle loss

hingle loss是機器學習模型中用於訓練分類器的loss,用於「最大間隔」分類。對於二分類,ground truth t=1,預測結果爲y,則hingle loss爲

注意y是分類器決策函數的原始輸出,而不是通過處理德奧的預測類別。

 

Mean Squre Error (MSE/L2 loss)

表示ground truth,表示預測結果。

 

Mean Absolute Error (MAE/ L1 loss)

表示ground truth,表示預測結果。

 

L1 loss和L2 loss的區別:

L2 loss對異常值比較敏感,L1 loss比起L2 loss不易受異常值的影響,更加魯棒,但在0處不可導。L2 loss有穩定的惟一的解決方案,而L1 loss的解決方案則不必定惟一。

L2 loss優化能力較L1 loss更強一些。在訓練神經網絡時,L1 loss更新的梯度始終相同,也就是說,即便對於很小的損失值,梯度也很大。這樣不利於模型的學習。爲了解決這個缺陷,咱們可使用變化的學習率,在損失接近最小值時下降學習率。而L2 loss在這種狀況下的表現就很好,即使使用固定的學習率也能夠有效收斂。L2 loss的梯度隨損失增大而增大,而損失趨於0時則會減少。這使得在訓練結束時,使用L2 loss的模型的結果會更精確。

若是異常值表明在商業中很重要的異常狀況,而且須要被檢測出來,則應選用L2 loss。相反,若是隻把異常值看成受損數據,則應選用L1 loss。

 

Huber loss (smooth L1 loss)

是一個可調參數。

Huber loss相對於L2 loss,對異常值不敏感,並且在0處可導。Huber loss能夠看做是L1 loss和L2 loss的結合體,在偏差較大時,Huber loss等效於L1 loss,在偏差較小時,Huber loss等效於L2 loss。

 

Log-cos loss

log-cos是另外一種應用於迴歸問題中的,且比L2更平滑的損失函數。它的計算方式是預測偏差的雙曲餘弦的對數。

 優勢:對於較小的x,log(cos(x))近似等於,對於較大的x,近似等於abs(x)-log2。這意味着log-cos基本相似於均方偏差,但不易受到異常點的影響。它具備Huber loss的全部優勢,但不一樣於Huber loss的是,log-cos二階到處可微。

爲何須要二階導數?許多機器學習模型如XGBoost,即便採用牛頓法來尋找最優勢。而牛頓法就須要求解二階導數(Hessian)。所以對於諸如XGBoost這類機器學習框架,損失函數的二階可微是頗有必要的。

相關文章
相關標籤/搜索