tf常見的損失函式(LOSS)總結
阿新 • • 發佈:2021-06-17
運算公式
1、均方差函式
均方差函式主要用於評估迴歸模型的使用效果,其概念相對簡單,就是真實值與預測值差值的平方的均值,具體運算公式可以表達如下:
其中\(f(x_i)\)是預測值,\(y_i\)是真實值
在二維影象中,該函式代表每個散點到擬合曲線y軸距離的總和,非常直觀。
2、交叉熵函式
出自資訊理論中的一個概念,原來的含義是用來估算平均編碼長度的。在機器學習領域中,其常常作為分類問題的損失函式。
其中\(f(x_i)\)
交叉熵函式是怎麼工作的呢?假設在分類問題中,被預測的物體只有是或者不是,預測值常常不是1或者0這樣絕對的預測結果,預測是常用的做法是將預測結果中大於0.5的當作1,小於0.5的當作0。此時假設如果存在一個樣本,預測值接近於0,實際值卻是1,那麼在交叉熵函式的前半部分: \[y_ilog(f(x_i)) \]
其運算結果會遠遠小於0,取符號後會遠遠大於0,導致該模型的損失函式巨大。通過減小交叉熵函式可以使得模型的預測精度大大提升。
tensorflow種損失函式的表達
1、均方差函式
loss = tf.reduce_mean(tf.square(logits-labels)) loss = tf.reduce_mean(tf.square(tf.sub(logits, labels))) loss = tf.losses.mean_squared_error(logits,labels)
2、交叉熵函式
loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=y,logits=logits)
#計算方式:對輸入的logits先通過sigmoid函式計算,再計算它們的交叉熵
#但是它對交叉熵的計算方式進行了優化,使得結果不至於溢位。
loss = tf.nn.softmax_cross_entropy_with_logits(labels=y,logits=logits)
#計算方式:對輸入的logits先通過softmax函式計算,再計算它們的交叉熵,
#但是它對交叉熵的計算方式進行了優化,使得結果不至於溢位。