原博主講的很清楚,此處我只修改了幾個公式(應該是筆誤造成的)
交叉熵損失函式(crossentropy loss)是分類問題中經常使用的一種損失函式,特別是在神經網路做分類問題時,也經常使用交叉熵作為損失函式,交叉熵涉及到計算每個類別的概率,所以交叉熵幾乎每次都和sigmoid(或softmax)函式一起出現。
交叉熵是資訊理論中的乙個重要概念,主要用於度量兩個概率分布間的差異性,要理解交叉熵,需要先了解下面幾個概念。
資訊奠基人夏農(shannon)認為「資訊是用來消除隨機不確定性的東西」,也就是說衡量資訊量的大小就是看這個資訊消除不確定性的程度。
「太陽從東邊公升起」,這條資訊並沒有減少不確定性,因為太陽肯定是從東邊公升起的,這是一句廢話,資訊量為0。
「小明平時不愛學習,考試經常不及格,而小王是個勤奮學習的好學生,經常得滿分」,小明及格的可能性很低(十次考試只有一次及格),因此如果某次考試及格了,必然會引入較大的資訊量。而對於小王而言,考試及格是大概率事件,在事件b發生前,大家普遍認為事件b的發生幾乎是確定的,因此當某次考試小王及格這個事件發生時並不會引入太多的資訊量。
根據上述可總結如下:資訊量的大小與資訊發生的概率成反比。概率越大,資訊量越小。概率越小,資訊量越大。
設某一事件發生的概率為p(x),其資訊量表示為:
其中i(x)表示資訊量,這裡log表示以e為底的自然對數。
資訊熵也被稱為熵,用來表示所有資訊量的期望。
期望是試驗中每次可能結果的概率乘以其結果的總和。
所以資訊量的熵可表示為:(這裡的x是乙個離散型隨機變數)
小例子:使用明天的天氣概率來計算其資訊熵:
序號事件
概率p資訊量
1明天是晴天
0.5-log(0.5)
2明天是雨天
0,2-log(0.2)
3明天是多雲
0.3-log(0.3)
對於0-1分布的問題,由於其結果只用兩種情況,是或不是,設某一件事情發生的概率為p(x),則另一件事情發生的概率為1−p(x),所以對於0-1分布的問題,計算熵的公式可以簡化如下:
如果對於同乙個隨機變數x有兩個單獨的概率分布p(x) q(x) ,則我們可以使用kl散度來衡量這兩個概率分布之間的差異。
下面直接列出公式,再舉例子加以說明。
在機器學習中,常常使用p(x) 來表示樣本的真實分布,q(x) 來表示模型所**的分布,比如在乙個三分類任務中(例如,貓狗馬分類器),x1,x2,x3 分別代表貓,狗,馬,例如一張貓的真實分布p(x)=[1,0,0], **分布q(x)=[0.7,0.2,0.1] 計算kl散度:
kl散度越小,表示p(x)與q(x)的分布更加接近,可以通過反覆訓練q(x) 來使q(x) 的分布逼近p(x)。
首先將kl散度公式拆開:
前者h(p(x)) 表示資訊熵,後者即為交叉熵,kl散度 = 交叉熵 - 資訊熵
交叉熵公式表示為:
在機器學習訓練網路時,輸入資料與標籤常常已經確定,那麼真實概率分布p(x) 也就確定下來了,所以資訊熵在這裡就是乙個常量。由於kl散度的值表示真實概率分布p(x) 與**概率分布q(x) 之間的差異,值越小表示**的結果越好,所以需要最小化kl散度,而交叉熵等於kl散度加上乙個常量(資訊熵),且公式相比kl散度更加容易計算,所以在機器學習中常常使用交叉熵損失函式來計算loss就行了。
下面通過乙個例子來說明如何計算交叉熵損失值。*貓
狗馬label01
0prediction
0.20.7
0.1那麼loss
乙個batch的loss為
其中m表示樣本個數,n為標籤類別的個數。
交叉熵能夠衡量同乙個隨機變數中的兩個不同概率分布的差異程度,在機器學習中就表示為真實概率分布與**概率分布之間的差異。交叉熵的值越小,模型**效果就越好。
交叉熵在分類問題中常常與softmax是標配,softmax將輸出的結果進行處理,使其多個分類的**值和為1,再通過交叉熵來計算損失。
交叉熵損失函式 交叉熵損失函式和均方差損失函式引出
交叉熵 均方差損失函式,加正則項的損失函式,線性回歸 嶺回歸 lasso回歸等回歸問題,邏輯回歸,感知機等分類問題 經驗風險 結構風險,極大似然估計 拉普拉斯平滑估計 最大後驗概率估計 貝葉斯估計,貝葉斯公式,頻率學派 貝葉斯學派,概率 統計 記錄被這些各種概念困擾的我,今天終於理出了一些頭緒。概率...
交叉熵損失函式
公式 分類問題中,我們通常使用 交叉熵來做損失函式,在網路的後面 接上一層softmax 將數值 score 轉換成概率。如果是二分類問題,我們通常使用sigmod函式 2.為什麼使用交叉熵損失函式?如果分類問題使用 mse 均方誤差 的方式,在輸出概率接近0 或者 接近1的時候,偏導數非常的小,學...
交叉熵損失函式
監督學習的兩大種類是分類問題和回歸問題。交叉熵損失函式主要應用於分類問題。先上實現 這個函式的功能就是計算labels和logits之間的交叉熵。tf.nn.softmax cross entropy with logits logits y,labels y 首先乙個問題,什麼是交叉熵?交叉熵 c...