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函數又可以寫作

softmax函數的輸出是一個概率分布,概率和為1。

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這類機器學習框架,損失函數的二階可微是很有必要的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM