本文主要介紹了當前機器學習模型中廣泛應用的交叉熵損失函式與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=
∑ke
(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頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,...