首先我們來介紹一下資訊熵。資訊熵又叫kl散度,是資訊的平均編碼長度。給定資訊出現的概率向量p=(
p1,p
2,..
.,pn
)p = (p_1,p_2,...,p_n)
p=(p1
,p2
,...
,pn
),其中p
ip_i
pi為第i
ii條資訊出現的概率,那麼資訊的平均編碼長度為h(p
)=∑i
npilog1
pih(p)=\sum_i^np_i\log\frac
h(p)=∑
inp
ilogpi
1。舉乙個例子,比如現在要用為8個字元進行編碼,每個字元出現的概率為1/8
1/81/
8,用huffman樹可求出最短編碼方案,此時的huffman樹為:
可以計算出各點的深度為log1
pi\log\frac
logpi
1,再乘上期望求和便是資訊熵。當然,公式中log1
pi\log\frac
logpi
1指的是只看概率p
ip_i
pi而不了解其他資訊概率時,該資訊編碼在對應的huffman樹中最大可能達到深度,因為有可能只有兩個資訊,乙個資訊出現概率為7/8,另外乙個為1/8,這時候的深度就是1。但是無論概率分布是怎麼樣的,深度不可能超過log1
pi\log\frac
logpi
1。交叉熵是針對兩個概率向量p
pp和q
qq而言的,公式為h(p
,q)=
∑i=1
npilog1
qih(p,q)=\sum_^np_i\log\frac
h(p,q)
=∑i=
1np
ilogqi
1。他指的是在資訊出現的概率分布為p
pp的情況下,不用p
pp匯出的huffman樹進行編碼,而是用另外的乙個概率分布q
qq匯出的huffman樹進行編碼的編碼長度,而這種編碼方案並不是最優的編碼方案,h(p
,q)≤
h(p)
h(p,q)\leq h(p)
h(p,q)
≤h(p
)。接下來我們看如何用交叉熵構建損失函式。比如在多型別分類問題中,對每個類別我們會得到乙個評分(可正可負),要使用交叉熵構建損失函式首先要將這些得分轉化成概率分布(都是正值)。最著名的方法就是使用softmax。通過softmax可以得到乙個概率分布,且是非線性的,更重要的是容易求導。假設得分向量為z
zz,轉化後的概率向量為y
yy,那麼sofrtmax做的就是令yi=
ezi/
∑j=1
nezj
y_i=e^/\sum_^ne^
yi=ez
i/∑
j=1n
ezj
。之後交叉熵損失函式為l=∑
yi^log1
yil=\sum\hat\log}
l=∑yi
^logyi
1,這裡y
iy_i
yi是網路估計為第i類的概率,而yi^
\hat
yi^
是真實的概率分布,一般狀況下訓練樣本屬於哪一類是確定的,y
^\hat
y^向量裡只有一項是1其他都是0,因此損失函式l
ll最終只會保留求和裡面的一項,即l
=log1
yi^l=\log}}}
l=logyi^
1,其中i
^\hat
i^是樣本屬於的類別。這樣的交叉熵損失函式就叫做softmax損失函式。在模型訓練過程中就是通過對損失函式求導,用梯度下降降低損失函式,這意味著分布y
yy越接近y
^\hat
y^。
交叉熵損失函式以及softmax損失函式
週六總結 參考資料 本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,...
softmax函式與交叉熵損失函式
本文主要介紹了當前機器學習模型中廣泛應用的交叉熵損失函式與softmax激勵函式。這個損失函式主要應用於多分類問題,用於衡量 值與實際值之間的相似程度。交叉熵損失函式定義如下 lce y y i 1ncl asse syi log yi l hat,y sum y i log hat lce y y...
softmax交叉熵損失函式求導
來寫乙個softmax求導的推導過程,不僅可以給自己理清思路,還可以造福大眾,豈不美哉 softmax經常被新增在分類任務的神經網路中的輸出層,神經網路的反向傳播中關鍵的步驟就是求導,從這個過程也可以更深刻地理解反向傳播的過程,還可以對梯度傳播的問題有更多的思考。softmax 柔性最大值 函式,一...