損失函數用於描述模型預測值與真實值的差距大小,一般有兩種比較常見的算法——均值平方差(MSE)和交叉熵。
1、均值平方差(MSE):指參數估計值與參數真實值之差平方的期望值。
在神經網絡計算時,預測值要與真實值控制在同樣的數據分布內,假設將預測值經過Sigmoid激活函數得到取值范圍在0~1之間,那么真實值也歸一化到0~1之間。
2、交叉熵:預測輸入樣本屬於某一類的概率。
其中y代表真實值分類(0或1),a代表預測值,交叉熵值越小,預測結果越准。
3、損失函數的選取
損失函數的選取取決於輸入標簽數據的類型,如果輸入的是實數、無界的值,損失函數使用平方差;如果輸入標簽是位矢量(分類標簽),使用交叉熵會更合適。
4、Tensorflow常見的loss函數
- 均值平方差
# logits代表標簽值,outputs代表預測值 MSE = tf.reduce_mean(tf.pow(tf.sub(logits,outputs),2.0)) MSE = tf.reduce_mean(tf.square(logits-outputs))
- 交叉熵:Sigmoid交叉熵、softmax交叉熵、Sparse交叉熵、加權Sigmoid交叉熵