摘要:本篇內容和大家一起學習下機器學習和深度學習中常用到的幾種loss函式,
本文分享自華為云社區《【MindSpore易點通】網路實戰之交叉熵類Loss函式》,作者:Skytier ,
本篇內容和大家一起學習下機器學習和深度學習中常用到的幾種loss函式,根據計算分類方式以及場景的不同,我分為了以下三部分進行分析,
CrossEntropy Loss
交叉熵函式是在分類模型中常用的一種損失函式,其運算式為:
其中用到了資訊熵的概念,資訊量是一個事件發生所帶來的資訊,而資訊熵則是在結果出來之前對可能產生的資訊量的期望,考慮該隨機變數的所有可能取值,即所有可能發生事件所帶來的資訊量的期望,
因此我們可以得到資訊熵的計算運算式為:
其中P(xi)表示為在時間點x的發生概率,資訊熵是用來衡量事物不確定性的,資訊熵越大,事物越具不確定性,事物越復雜,
可以理解為對于同一個隨機變數x,有兩個概率分布,判斷這兩個概率分布的差異,假設兩個概率分布對應為p(x),q(x), 如何表示這兩個分布的差異,我們可以使用資訊熵判斷,于是相對熵產生,
p(x)分布的資訊熵為:
q(x)分布的資訊熵為:
相對熵為:
p(x)為樣本真實分布,q(x)為預測分布
于是得到相對熵公式為:

交叉熵的函式表示為:
我們觀察可以看出,這里與相對熵較為相似,由于我們進行模型訓練,有監督訓練,樣本標簽已經確定,相當于真實的概率的分布P(x)已經得知,因此這邊的為固定值,相當于常量,那么可以繼續優化運算式,
在我們模型訓練中完整的相對熵運算式為:
對于其做為損失函式,常量可以忽略,因此得到了交叉熵的表現形式,
對于在二分類損失函式中應用,交叉熵損失函式為以下形式,
了解完交叉熵的基本計算原理,下面關聯下另一種以交叉熵為基礎的loss函式:BCELoss、BCEWithLogitsLoss和softmax_cross_entropy_with_logits,
BCELoss和SoftMarginLoss
這兩種函式都是基于交叉熵的二分類loss函式,所以放在一起分析,
BCELoss中文名稱是二分類交叉熵損失,它是用于做二分類模型的損失函式,因為是二分類,可以用0、1表示兩個類別,如果想用于多分類的模型,可以將類別拆分成兩兩一組進行使用,先來看下BCELoss的運算式,
式子中的pt表示模型的預測值;target表示真實值,;w是權重值,一般是1,因為用0、1表示兩個類別,所以在預測值和真實值相同時,其中一項將會為0,上面這個運算式是計算的單個樣本,當一個batch的N個樣本時,還需要累加再取平均數,
SoftMarginLoss對于包含N個樣本的batch資料D(x,y), x代表模型輸出, y代表真實的類 ,運算式如下:
式子中的x.nelement( )代表x中元素的個數N
如果單個樣本對應一個二分類,則x.nelement( )=N
如果單個樣本對應M個二分類,則x.nelement( )=M?N
我們通過累加前的單個加數來分析
·當x[i]與y[i]同號,即預測正確時,x[i]與y[i]乘積越大,那么loss會越小,分類確信度就會越高;
·同理,當x[i]與y[i]異號,即預測錯誤時,loss越大,
BCEWithLogitsLoss和softmax_cross_entropy_with_logits
BCEWithLogitsLoss將sigmoid操作和與BCELoss組合到了一起使用,計算程序和原理是與BCELoss類似的,在BCELoss的計算表達計算式的基礎中增加一個sigmoid計算,運算式如下,
softmax_cross_entropy_with_logits是在交叉熵前做一次softmax計算,具體的執行流程大概分為兩個部分:
第一部分是對網路模型最后一層的輸出做一個softmax,softmax的用處通常是求取輸出屬于某一類的概率,對于單樣本而言,輸出就是一個num_classes 大小的向量([Y1,Y2,Y3,...]其中Y1,Y2,Y3,...分別代表了是屬于該類的概率),softmax的計算運算式如下:
第二部分是將softmax的輸出向量[Y1,Y2,Y3,...]和樣本的實際標簽做一個交叉熵計算
y`i指實際標簽中第i個的值;yi指softmax的輸出向量[Y1,Y2,Y3...]中,第i個元素的值,從而可以計算出loss值,
總結
本篇首先對交叉熵原理做了決議,再基于交叉熵的基礎,引出了第二部分BCELoss和SoftMarginLoss的二分類loss函式,以及第三部分可用于多分類場景的BCEWithLogitsLoss和softmax_cross_entropy_with_logits損失函式,
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/507205.html
標籤:其他
