softmax函式與交叉熵損失函式

2021-10-11 11:06:20 字數 1851 閱讀 8419

本文主要介紹了當前機器學習模型中廣泛應用的交叉熵損失函式與softmax激勵函式。

這個損失函式主要應用於多分類問題,用於衡量**值與實際值之間的相似程度。

交叉熵損失函式定義如下: lce

(y^,

y∗)=

−∑i=

1ncl

asse

syi∗

log(

yi^)

l_(\hat, y^*) = - \sum_^ y_i^*log(\hat)

lce​(y

^​,y

∗)=−

i=1∑

ncla

sses

​yi∗

​log

(yi​

^​)其中 y

^\hat

y^​ 為**向量,y

∗y^*

y∗為真實標籤向量。在多分類問題機器學習中,y

∗y^*

y∗一般使用獨熱編碼。例如,在乙個三分類問題中, y

∗y^*

y∗向量的維度就是三維,對應屬於某一類則該位為1,其餘位為0。第一類對應的真實標籤向量即為[1,

0,0]

t[1, 0, 0]^t

[1,0,0

]t,第二類對應的真實標籤向量為[0,

1,0]

[0,1,0]

[0,1,0

] 等等以此類推。

很顯然,對於這個損失函式而言,取到最小值的時候就是當求和部分取得最大值,即**向量與標籤向量相似度最大時,其乘積也最大。以下圖為例,例如該類真實標籤為class2,當向量y

^\hat

y^​的第二項趨向於於1,此時損失函式取得最小值,我們也保證了**值與真實值之間的誤差最小了。

很顯然,這裡我們有兩個問題,其一是為什麼要使用**值的log函式值與真實的標籤相乘而不直接使用兩者原始值相乘。其原因在於,由於我們的概率範圍總是在0-1之間,直接獲取乘積往往會使得不同的損失之間的差別不大,不利於我們進一步通過這個誤差來優化我們的模型。

第二個問題是,如何保證**向量滿足概率分布。我們都知道標籤向量y

∗y^*

y∗由於使用了獨熱編碼,因此他永遠滿足概率分布即∑p(

x)=1

\sum p(x) = 1

∑p(x)=

1,但是我們的**向量 y

^\hat

y^​ 卻不一定。這裡就要用到我們的softmax激勵函式了。簡單的來說,softmax函式就幫助我們將乙個隨機數值的向量,轉化為了乙個所有值在0-1之間,且和為1的向量,以滿足概率分布關係。softmax函式的定義如下: yt,

k=e(

yt,k

)∑ke

(yt,

k)y_ = \frac)}})}}

yt,k​=

∑k​e

(yt,

k​)e

(yt,

k​)​

其中下標t對應第t個樣本,k對應輸出層的第k個神經元。softmax函式首先將所有輸出層神經元對應的值通過指數函式轉換為正值,再通過歸一化處理,除以他們的指數函式值之和,以保證所有項對應的值之和為1。

通過softmax函式構建概率分布再通過交叉熵,我們就構建了交叉熵損失函式。

softmax回歸與交叉熵損失函式

交叉熵損失函式 在 動手學深度學習 softmax回歸一節中,交叉熵損失函式比較晦澀,學習csdn上其他部落格後有了一定了解,做此記錄 softmax回歸同線性回歸一樣,也是乙個單層神經網路,但和線性回歸不同,softmax回歸的輸出單元從乙個變成了多個,且引入了softmax運算使輸出更適合離散值...

softmax交叉熵損失函式求導

來寫乙個softmax求導的推導過程,不僅可以給自己理清思路,還可以造福大眾,豈不美哉 softmax經常被新增在分類任務的神經網路中的輸出層,神經網路的反向傳播中關鍵的步驟就是求導,從這個過程也可以更深刻地理解反向傳播的過程,還可以對梯度傳播的問題有更多的思考。softmax 柔性最大值 函式,一...

交叉熵損失函式以及softmax損失函式

週六總結 參考資料 本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,...