溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進行損失函數(shù)losses分析

發(fā)布時間:2021-12-10 10:36:28 來源:億速云 閱讀:158 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細講解有關(guān)如何進行損失函數(shù)losses分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

一,損失函數(shù)概述

一般來說,監(jiān)督學習的目標函數(shù)由損失函數(shù)和正則化項組成。(Objective = Loss + Regularization)

對于keras模型,目標函數(shù)中的正則化項一般在各層中指定,例如使用Dense的 kernel_regularizer 和 bias_regularizer等參數(shù)指定權(quán)重使用l1或者l2正則化項,此外還可以用kernel_constraint 和 bias_constraint等參數(shù)約束權(quán)重的取值范圍,這也是一種正則化手段。

損失函數(shù)在模型編譯時候指定。對于回歸模型,通常使用的損失函數(shù)是平方損失函數(shù) mean_squared_error。

對于二分類模型,通常使用的是二元交叉熵損失函數(shù) binary_crossentropy。

對于多分類模型,如果label是類別序號編碼的,則使用類別交叉熵損失函數(shù) categorical_crossentropy。如果label進行了one-hot編碼,則需要使用稀疏類別交叉熵損失函數(shù) sparse_categorical_crossentropy。

如果有需要,也可以自定義損失函數(shù),自定義損失函數(shù)需要接收兩個張量y_true,y_pred作為輸入?yún)?shù),并輸出一個標量作為損失函數(shù)值。

二,損失函數(shù)和正則化項

對于keras模型,目標函數(shù)中的正則化項一般在各層中指定,損失函數(shù)在模型編譯時候指定。

如何進行損失函數(shù)losses分析

如何進行損失函數(shù)losses分析

三,內(nèi)置損失函數(shù)

內(nèi)置的損失函數(shù)一般有類的實現(xiàn)和函數(shù)的實現(xiàn)兩種形式。

如:CategoricalCrossentropy 和 categorical_crossentropy 都是類別交叉熵損失函數(shù),前者是類的實現(xiàn)形式,后者是函數(shù)的實現(xiàn)形式。

常用的一些內(nèi)置損失函數(shù)說明如下。

  • mean_squared_error(平方差誤差損失,用于回歸,簡寫為 mse, 類實現(xiàn)形式為 MeanSquaredError 和 MSE)

  • mean_absolute_error (絕對值誤差損失,用于回歸,簡寫為 mae, 類實現(xiàn)形式為 MeanAbsoluteError 和 MAE)

  • mean_absolute_percentage_error (平均百分比誤差損失,用于回歸,簡寫為 mape, 類實現(xiàn)形式為 MeanAbsolutePercentageError 和 MAPE)

  • Huber(Huber損失,只有類實現(xiàn)形式,用于回歸,介于mse和mae之間,對異常值比較魯棒,相對mse有一定的優(yōu)勢)

  • binary_crossentropy(二元交叉熵,用于二分類,類實現(xiàn)形式為 BinaryCrossentropy)

  • categorical_crossentropy(類別交叉熵,用于多分類,要求label為onehot編碼,類實現(xiàn)形式為 CategoricalCrossentropy)

  • sparse_categorical_crossentropy(稀疏類別交叉熵,用于多分類,要求label為序號編碼形式,類實現(xiàn)形式為 SparseCategoricalCrossentropy)

  • hinge(合頁損失函數(shù),用于二分類,最著名的應(yīng)用是作為支持向量機SVM的損失函數(shù),類實現(xiàn)形式為 Hinge)

  • kld(相對熵損失,也叫KL散度,常用于最大期望算法EM的損失函數(shù),兩個概率分布差異的一種信息度量。類實現(xiàn)形式為 KLDivergence 或 KLD)

  • cosine_similarity(余弦相似度,可用于多分類,類實現(xiàn)形式為 CosineSimilarity)

三,自定義損失函數(shù)

自定義損失函數(shù)接收兩個張量y_true,y_pred作為輸入?yún)?shù),并輸出一個標量作為損失函數(shù)值。

也可以對tf.keras.losses.Loss進行子類化,重寫call方法實現(xiàn)損失的計算邏輯,從而得到損失函數(shù)的類的實現(xiàn)。

下面是一個Focal Loss的自定義實現(xiàn)示范。Focal Loss是一種對binary_crossentropy的改進損失函數(shù)形式。

在類別不平衡和存在難以訓練樣本的情形下相對于二元交叉熵能夠取得更好的效果。

詳見《如何評價Kaiming的Focal Loss for Dense Object Detection?》

https://www.zhihu.com/question/63581984

如何進行損失函數(shù)losses分析

關(guān)于如何進行損失函數(shù)losses分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI