softmax損失函式

2021-09-27 04:03:35 字數 2106 閱讀 2829

首先我們來介紹一下資訊熵。資訊熵又叫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

npilog⁡1

pih(p)=\sum_i^np_i\log\frac

h(p)=∑

in​p

i​logpi​

1​。舉乙個例子,比如現在要用為8個字元進行編碼,每個字元出現的概率為1/8

1/81/

8,用huffman樹可求出最短編碼方案,此時的huffman樹為:

可以計算出各點的深度為log⁡1

pi\log\frac

logpi​

1​,再乘上期望求和便是資訊熵。當然,公式中log⁡1

pi\log\frac

logpi​

1​指的是只看概率p

ip_i

pi​而不了解其他資訊概率時,該資訊編碼在對應的huffman樹中最大可能達到深度,因為有可能只有兩個資訊,乙個資訊出現概率為7/8,另外乙個為1/8,這時候的深度就是1。但是無論概率分布是怎麼樣的,深度不可能超過log⁡1

pi\log\frac

logpi​

1​。交叉熵是針對兩個概率向量p

pp和q

qq而言的,公式為h(p

,q)=

∑i=1

npilog⁡1

qih(p,q)=\sum_^np_i\log\frac

h(p,q)

=∑i=

1n​p

i​logqi​

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^log⁡1

yil=\sum\hat\log}

l=∑yi​

^​logyi​

1​,這裡y

iy_i

yi​是網路估計為第i類的概率,而yi^

\hat

yi​^

​是真實的概率分布,一般狀況下訓練樣本屬於哪一類是確定的,y

^\hat

y^​向量裡只有一項是1其他都是0,因此損失函式l

ll最終只會保留求和裡面的一項,即l

=log⁡1

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 柔性最大值 函式,一...