圖示Softmax及交叉熵損失函式
Softmax函式
Softmax是將神經網路得到的多個值,進行歸一化處理,使得到的值在之間,讓結果變得可解釋。即可以將結果看作是概率,某個類別概率越大,將樣本歸為該類別的可能性也就越高。Softmax就如下圖(借鑑李宏毅老師的課件)
為了更加清晰的看清整個過程,我將其製作成gif,如下圖所示:
交叉熵:
假設和是關於樣本集的兩個分佈,其中是樣本集的真實分佈,是樣本集的估計分佈,那麼按照真是分佈來衡量識別一個樣本所需要編碼長度的期望(即,平均編碼長度):
如果用估計分佈來表示真實分佈的平均編碼長度,應為:
這是因為用來編碼的樣本來自於真是分佈,所以期望值中的概率是。而就是交叉熵。
注:不瞭解什麼是編碼的請看這裡:如何理解用資訊熵來表示最短的平均編碼長度。
在神經網路後面新增Softmax,真實的標籤(或者是類別)就相當於真實的分佈,經過Softmax得出的值就是預測的結果,因此可以使用交叉熵函式來作為損失函式。有了交叉熵的概念,我們就可以得出,Softmax的損失函式:
其中是神經元的輸出也可以作為預測結果,是第i個類別的真實值,只能取值。在Softmax中我們取以為底的對數,因為都是的指數形式,可以方便計算。在反向傳播的過程中,如何對交叉熵損失函式求導呢?可以先看下圖的示例,顯示瞭如何得到損失函式:
由上圖可以看到,損失函式具體形式是什麼。為了計算反向傳播,我們從最後一層開始,也就是首先要對Softmax的輸入求導,得:
,其中
由於每個的分母中都有的貢獻,故我們要考慮每一個輸出值。則:
對於,需要分開討論因為和時的求導結果不同,故需分開討論。則
- 當時,有:
- 當時
故,
注:因為如果給定一個樣本那麼他對應的真實標籤只有一個值為,其餘為0,故,
Sotfmax的交叉熵損失函式,還有另外的形式:
其本質是一樣的,因為是示性函式,只有當大括號內的值為真時才取值為1,否則為0,即。
相關文章
- 談談交叉熵損失函式熵函式
- 交叉熵損失CrossEntropyLoss熵ROS
- 歸一化(softmax)、資訊熵、交叉熵熵
- TensorFlow筆記-06-神經網路優化-損失函式,自定義損失函式,交叉熵筆記神經網路優化函式熵
- 熵、交叉熵及似然函式的關係熵函式
- softmax迴歸——原理、one-hot編碼、結構和運算、交叉熵損失熵
- Java開發者的神經網路進階指南:深入探討交叉熵損失函式Java神經網路熵函式
- 【動手學深度學習】第三章筆記:線性迴歸、SoftMax 迴歸、交叉熵損失深度學習筆記熵
- ML-邏輯迴歸-Softmax-交叉熵(小航)邏輯迴歸熵
- 損失函式函式
- 熵,交叉熵,Focalloss熵
- 損失函式+啟用函式函式
- 3D高斯損失函式(1)單純損失函式3D函式
- 統計學習:邏輯迴歸與交叉熵損失(Pytorch實現)邏輯迴歸熵PyTorch
- 交叉熵、相對熵及KL散度通俗理解熵
- Triplet Loss 損失函式函式
- 損失函式綜述函式
- 大白話5分鐘帶你走進人工智慧-第十七節邏輯迴歸之交叉熵損失函式概念(2)人工智慧邏輯迴歸熵函式
- Pytorch 常用損失函式PyTorch函式
- DDMP中的損失函式函式
- 例項解釋NLLLoss損失函式與CrossEntropyLoss損失函式的關係函式ROS
- Softmax分類函式函式
- 深度學習基礎5:交叉熵損失函式、MSE、CTC損失適用於字識別語音等序列問題、Balanced L1 Loss適用於目標檢測深度學習熵函式
- 熵、資訊量、資訊熵、交叉熵-個人小結熵
- TensorFlow損失函式專題函式
- Pytorch中的損失函式PyTorch函式
- PyTorch:損失函式loss functionPyTorch函式Function
- SSD的損失函式設計函式
- 邏輯迴歸 損失函式邏輯迴歸函式
- 資訊熵,交叉熵與KL散度熵
- 大白話5分鐘帶你走進人工智慧-第十八節邏輯迴歸之交叉熵損失函式梯度求解過程(3)人工智慧邏輯迴歸熵函式梯度
- 聊聊損失函式1. 噪聲魯棒損失函式簡析 & 程式碼實現函式
- 【機器學習基礎】熵、KL散度、交叉熵機器學習熵
- 詳解常見的損失函式函式
- 2.3邏輯迴歸損失函式邏輯迴歸函式
- 交叉熵代價函式定義及其求導推導(讀書筆記)熵函式求導筆記
- 焦點損失函式 Focal Loss 與 GHM函式
- 邏輯迴歸損失函式(cost function)邏輯迴歸函式Function