softmax + cross-entropy交叉熵損失函式詳解及反向傳播中的梯度求導
相關
正文
在大多數教程中, softmax 和 cross-entropy 總是一起出現, 求梯度的時候也是一起考慮. 我們來看看為什麼.
關於 softmax 和 cross-entropy 的梯度的求導過程, 已經在上面的兩篇文章中分別給出, 這裡將他們放在一起看看.
1. 題目
考慮一個輸入向量 X, 經 softmax 函式歸一化處理後得到向量 S 作為預測的概率分佈, 已知向量 Y 為真實的概率分佈, 由 cross-entropy 函式計算得出損失值 L (標量), 求 L 關於 X 的梯度. X=(x1,x2,x3,⋯,xk)Y=(y1,y2,y3,⋯,yk)S=(s1,s2,s3,⋯,sk)=softmax(X)si=∑t=1kextexil=crossEntropy(S,Y)=−i=1∑kyilog(si) 已知 : ∂S∂l=(∂s1∂l,∂s2∂l,⋯,∂sk∂l)=(−s1y1,−s2y2,⋯,−skyk)▽S=∂X∂S=⎝⎜⎜⎜⎛∂s1/∂x1∂s2/∂x1⋮∂sk/∂x1∂s1/∂x2∂s2/∂x2⋮∂sk/∂x2⋯⋯⋱⋯∂s1/∂xk∂s2/∂xk⋮∂sk/∂xk⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛−s1s1+s1−s2s1⋮−sks1−s1s2−s2s2+s2⋮−sks2⋯⋯⋱⋯−s1sk−s2sk⋮−sksk+sk⎠⎟⎟⎟⎞▽S=(▽S)T
2. 求解過程 :
▽l=(∂x1
相關
正文
在大多數教程中, softmax 和 cross-entropy 總是一起出現, 求梯度的時候也是一起考慮.
我們來看看為什麼.
關於 softmax 和 cross-entropy 的梯度的求導過程, 已經在上面的兩篇文章中分別給出, 這裡
相關
關於 softmax + cross-entropy 的詳細介紹, 請參考 :
BrightLamp. 多標籤softmax + cross-entropy交叉熵損失函式詳解及反向傳播中的梯度求導[EB/OL]. https://blog.csdn.net
softmax 函式
softmax(柔性最大值)函式,一般在神經網路中, softmax可以作為分類任務的輸出層。其實可以認為softmax輸出的是幾個類別選擇的概率,比如我有一個分類任務,要分為三個類,softmax函式可以根據它們相對的大小,輸出三個類別選取的概率
目錄
一、softmax 函式
二、損失函式 loss function
三、最後的準備工作
(以下部分基本介紹轉載於點選開啟連結)
在深度學習NN中的output層通常是一個分類輸出,對於多分類問題我們可以採用k-二元分類器來實現,這裡我們介紹softmax。softmax迴歸中,我們解決的是多分類問題(相對於 logistic 迴歸解決的二分類問題),類標
Softmax函式背景與定義在Logistic regression二分類問題中,我們可以使用sigmoid函式將輸入Wx+bWx+b對映到(0,1)(0,1)區間中,從而得到屬於某個類別的概率。將這個問題進行泛化,推廣到多分類問題中,我們可以使用softmax函式,對輸出的
Ouput layer & 代價函式
網路結構
Output later 有K個神經元,有K個輸入和輸出。為了分別標記輸入和輸出,用ai∈[1,K]來表示Output layer的輸入資料,yj∈[1,K]來表示Output layer輸出點資料
1. softmax層的作用
通過神經網路解決多分類問題時,最常用的一種方式就是在最後一層設定n個輸出節點,無論在淺層神經網路還是在CNN中都是如此,比如,在AlexNet中最後的輸出層有1000個節點,即便是ResNet取消了全連線層,但1000個節點的輸出
tf.nn.sparse_softmax_cross_entropy_with_logits
label:不含獨熱編碼,shape:[batch_size, ] logits:原始預測概率分佈向量,shape:[batch_size, num_classes]
logits = np
在利用深度學習模型解決有監督問題時,比如分類、迴歸、去噪等,我們一般的思路如下:
資訊流forward propagation,直到輸出端;
定義損失函式L(x, y | theta);
誤差訊號back propagation。採用數學理論中的“鏈式法則”,求L(x,
一、交叉熵損失原理
一般情況下,在分類任務中,神經網路最後一個輸出層的節點個數與分類任務的標籤數相等。
假設最後的節點數為N,那麼對於每一個樣例,神經網路可以得到一個N維的陣列作為輸出結果,陣列中每一個維度會對應一個類別。在最理想的情況下,如果一個樣本屬於k,那麼這個類別所對應的第k個輸出節
簡述
這裡再添加了一個卷積層。用一個kernal=4的卷積層做一個卷積之後,再做對映。
基於之前的一個版本
【Kaggle-MNIST之路】CNN結構改進+改進過的損失函式(五)
成績:0.9898
排名:1000+
程式碼
注意
交叉熵(Cross-Entropy)
交叉熵是一個在ML領域經常會被提到的名詞。在這篇文章裡將對這個概念進行詳細的分析。
1.什麼是資訊量?
假設是一個離散型隨機變數,其取值集合為,概率分佈函式為
p ( x ) = r (
交叉熵(cross entropy)是深度學習中常用的一個概念,一般用來求目標與預測值之間的差距
1.資訊量
2.熵
3.相對熵
4.交叉熵
5.機器學習中交叉熵的應用
1.為什麼要用交叉熵做loss函式?
線上性迴歸問題中,常常使用MSE
交叉熵損失函式
一般我們學習交叉熵損失函式是在二元分類情況下:
L
=
−
說起交叉熵損失函式「Cross Entropy Loss」,腦海中立馬浮現出它的公式:
L=−[ylogy^+(1−y)log(1−y^)]L=−[ylogy^+(1−y)log(1−y^)]
我們已經對這個交叉熵函式非常熟悉,大多數情況下都是直接拿
交叉熵損失函式
作者在開頭舉了一個生動的例子來說明人類在學習中的自然過程,總結來說就是人類在學習過程中所表現出的錯誤越嚴重學習速度越快的現象,而先前作者介紹的神經網路的學習過程卻並不完全是這樣的,從作者文中給出的兩個實時計算過程的動畫可以輕易看出在w和bi
關於損失函式的概念以及種類特點,可參看博主的部落格:常見的損失函式總結,談到交叉熵,就不得不提資訊熵的概念,同樣可參看博主之前的部落格:決策樹之基 —— ID3 演算法,博文中提到了資訊熵的相關知識。有了上述兩篇博文作為基礎,此文不再贅述相關概念。
交叉熵的離
交叉熵
分類問題中,預測結果是(或可以轉化成)輸入樣本屬於n個不同分類的對應概率。比如對於一個4分類問題,期望輸出應該為 g0=[0,1,0,0] ,實際輸出為 g1=[0.2,0.4,0.4,0] ,計算g1與g0之間的差異所使用的方法,就是損失函式,分類問題中常用損 系列部落格,原文在筆者所維護的github上:https://aka.ms/beginnerAI,
點選star加星不要吝嗇,星越多筆者越努力。
3.2 交叉熵損失函式
交叉熵(Cross Entropy)是Shannon資訊理論中一個重要概念,主要用於度量兩個概率分佈間的差異性資訊。在資訊理論中,交叉熵是表 相關推薦
softmax + cross-entropy交叉熵損失函式詳解及反向傳播中的梯度求導
Python和PyTorch對比實現多標籤softmax + cross-entropy交叉熵損失及反向傳播
softmax交叉熵損失函式求導
softmax交叉熵損失函式反向傳播求導過程分析
在深度學習中Softmax交叉熵損失函式的公式求導
softmax函式和交叉熵損失函式的理解
Softmax 以及 交叉熵損失函式 的求導
深度學習中softmax交叉熵損失函式的理解
Tensorflow 兩個交叉熵損失函式的區別
最大似然損失和交叉熵損失函式的聯絡
交叉熵損失函式及Tensorflow實現
【Kaggle-MNIST之路】CNN結構再改進+交叉熵損失函式(六)
TensorFlow學習筆記(二十三)四種Cross Entropy交叉熵演算法實現和應用
交叉熵損失函式
【深度學習原理】交叉熵損失函式的實現
簡單的交叉熵損失函式,你真的懂了嗎?
nerualnetworkanddeeplearning學習_交叉熵損失函式
談一談交叉熵損失函式
交叉熵損失函式和均方誤差損失函式
[ch03-02] 交叉熵損失函式