神經網絡中的損失函數


tf.keras 有很多內置的損失函數,具體可見官方文檔,這里介紹一部分。

MSE、MAE、BinaryCrossentropy、CategoricalCrossentropy...

1 回歸問題

1.1 均方誤差 (MeanSquaredError,MSE)

   這是最簡單也是最常用的損失函數,在線性回歸中,可以通過極大似然估計 (MLE) 推導。

1.2 絕對值誤差 (MeanAbsoluteError,MAE)

1.3 絕對值百分比誤差 (MeanAbsolutePercentageError,MAPE)

1.4 平方對數誤差 (MeanSquaredLogarithmicError,MSLE)

1.5 Hinge

1.6 SquaredHinge

1.7 Huber

  當預測偏差小於 δ 時,它采用平方誤差;當預測偏差大於 δ 時,采用的線性誤差。

   增強了 MSE 對離群點的魯棒性。

2 分類問題

2.1 BinaryCrossentropy

  一般用於二分類,這是針對概率之間的損失函數,只有 yi 和 ˆyi 相等時,loss才為0,否則 loss 是一個正數,且概率相差越大,loss就越大,這種度量概率距離的方式稱為交叉熵。一般最后一層使用 sigmoid 激活函數。

2.2 CategoricalCrossentropy

   m 是樣本數,n 是分類數。這是一個多輸出的 loss 函數。一般最后一層使用 softmax 激活函數。

2.3 SparseCategoricalCrossentropy

  SparseCategoricalCrossentropy 損失函數同 CategoricalCrossentropy 類似,唯一的區別在於輸入的 y_true 是 one-hot 編碼還是數字編碼。

  如果是 one-hot 編碼,例如 [0, 0, 1], [1, 0, 0], [0, 1, 0],用 CategoricalCrossentropy;

  如果是數字編碼,例如 2, 0, 1,用 SparseCategoricalCrossentropy 。

  關於參數 from_logits 的設置:如果輸入的 y_pred 經過了 softmax 激活函數的處理,設置為 False;否則,設置為 True,表示該值為 logits,沒有經過 softmax 激活函數的 fully connect 輸出。

2.4 KLD (KL散度,相對熵)

 


免責聲明!

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



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