交叉熵與softmax的初步了解

2021-08-17 10:46:08 字數 1249 閱讀 2877

前言:

在除錯tensorflow官方教程**時,我發現了交叉熵(

cross entropy

)損失和其之前所用的

softmax

函式。我還沒在《神經網路與機器學習第

3版》中看到交叉熵,就大概先了解一下,並且記錄下我目前了解到的資訊。

正文:先說交叉熵的公式:

如果是在訓練神經網路的情況下,p(i)代表標籤中當前樣本屬於

i類的概率。在

mnist

的標籤中此項非1即

0,而且只有某一類對應的概率是

1,其他都是

0。例如當標籤為

l=[0,0,1,0,0,0,0,0,0,0]

時,只有

p(2)=1

,即p(i)=l[i]

。q(i)

代表**結果中當前樣本屬於

i類的概率。

但是**結果卻不能被直接當作各類對應的概率,例如**結果r=[22.5, 2.44, -2.1, 2.444, 5.6, 62.3, 4.444, -5.565, 6.454, -5.414]。這時就要用

softmax

函式,其公式如下:

其中i=r[i]。此公式把r轉換成了r』,r』如下:

其總合應為1,第6項為

1應該是其小數字太多的原因。

之後根據交叉熵的公式算出r對

l的損失loss=64.4。

結語:為什麼要用softmax而不是計算簡單的線性方法呢?例如線性轉換方法:

其中q(i)為

r[i]

,qmin為q

中最小的值,n為

q的個數,

o(i)

為轉換後的結果。

相比於這種線性轉換的方法,softmax函式的轉換結果中各類的概率之間的差別要大很多,基本達到類似標籤的「一類獨大」的效果,這也有利於後續計算等(參考:

)。關於交叉熵的意義,參考:

交叉熵與Softmax

分類問題中,交叉熵常與softmax結合使用,交叉熵能夠衡量同乙個隨機變數中的兩個不同概率分布的差異程度,在機器學習中就表示為真實概率分布與 概率分布之間的差異。交叉熵的值越小,模型 效果就越好。資訊是用來消除隨機不確定性的東西 資訊量大小與資訊發生的概率成反比,概率越大,資訊量越小 概率越小,資訊...

Softmax函式與交叉熵

在logistic regression二分類問題中,我們可以使用sigmoid函式將輸入wx b對映到 0,1 區間中,從而得到屬於某個類別的概率。將這個問題進行泛化,推廣到多分類問題中,我們可以使用softmax函式,對輸出的值歸一化為概率值 這裡假設在進入softmax函式之前,已經有模型輸出...

softmax和交叉熵

softmax用於多分類過程中,往往加在神經網路的他將多個神經元的輸出,對映到 0,1 區間內,看成概率來解,這些值的累和為1,在選取輸出節點的時候選取概率最大的節點作為我們的 目標,從而進行多分類。softmax 相關求導 當對分類的loss進行改進時,我們通過梯度下降,每次優化乙個step大小的...