損失函式分析

2021-09-22 10:00:05 字數 1050 閱讀 6529

一、處理回歸問題

1. tf.losses.mean_squared_error:均方根誤差(mse)

# tensorflow中整合的函式

mse = tf.losses.mean_squared_error(y_true, y_pred)

# 利用tensorflow基礎函式手工實現

mse = tf.reduce_mean(tf.square(y_true - y_pred))

優點是便於梯度下降,誤差大時下降快,誤差小時下降慢,有利於函式收斂。

缺點是受明顯偏離正常範圍的離群樣本的影響較大

2. tf.losses.absolute_difference:平均絕對誤差(mae)

maes = tf.losses.absolute_difference(y_true, y_pred)

maes_loss = tf.reduce_sum(maes)

優點是其克服了 mse 的缺點,受偏離正常範圍的離群樣本影響較小。

缺點是收斂速度比 mse 慢,因為當誤差大或小時其都保持同等速度下降,而且在某一點處還不可導,計算機求導比較困難。

3. tf.losses.huber_loss:huber loss —— 集合 mse 和 mae 的優點,但是需要手動調超引數

sklearn 關於 huber 回歸的文件中建議將 δ=1.35 以達到 95% 的有效性。

二、處理分類問題

經常使用交叉熵損失(ce loss)

參考:tensorflow 中的損失函式 —— loss 專題彙總

白話tensorflow+實戰系列(三)常用損失函式以及引數優化

交叉熵損失函式分類 交叉熵損失函式的應用

本文以二分類交叉熵損失函式為例,詳細分析了交叉熵損失函式在實際應用中遇到的問題,以及解決辦法,並給出了在深度學習中使用的交叉熵損失函式的具體形式。通過本文的敘述,相信能夠使讀者對深度學習的理解更加深入。其中y為label,為 的正類別概率,即在二分類中通過sigmoid函式得出的正類別概率大小。對於...

OSTaskCreate()函式分析

int8u ostaskcreate void task void pd void p arg,os stk ptos,int8u prio 函式返回乙個8位的整型數,呼叫該函式需要四個引數。第乙個引數乙個指標,也就是使用者 的首位址,在平時使用中我們把自己建立的任務的名字作為這個引數就可以了 第三...

getopt函式分析

函式getopt主要用於拆分命令列引數,用這個函式就不自己寫命令列引數解析程式了,以下 摘自tcpdump原始碼,對這個函式比較感興趣,故對此進行分析注釋,因水平實在不敢恭維,不足之處希望能一起 函式getopt 有三個引數,nargc,nargv就是命令列傳過來的argc和argv字串ostr,它...