1. 程式人生 > >交叉熵損失

交叉熵損失

softmax與交叉熵損失函式

KL散度

KL散度又叫相對熵=交叉熵-原分佈資訊熵,其衡量了一個分佈與另一個分佈之間的差異
D ( P Q )

= p ( x ) log p
( x )
q ( x )
D(P||Q) = \sum p(x)\log \frac{p(x)}{q(x)}
其值始終大於零,且分佈Q和分佈P越相似,則值越小

在資訊理論編碼理論中,一個分佈P可以用其最短編碼長度 H ( P ) = p ( x ) log ( p ( x ) ) H(P )=-\sum p(x)\log(p(x)) 來計算得到,是其資訊量表徵的一種方式(詳情請看編碼理論),若是想使用其他的概率分佈估計的編碼長度來對分佈P進行編碼,則有 H ( p , q ) = p ( x ) log q ( x ) H(p,q) = -\sum p(x) \log q(x) 分佈Q就是我們用來估計分佈P的分佈

先看交叉熵損失函式

交叉熵損失函式經常用於分類損失,在網路學習過程中,我們假設訓練集經驗分佈為P,模型預測分佈為Q,則可以用KL散度來度量Q對於P的擬合程度。
D ( P Q ) = H ( P , Q ) H ( P ) D(P||Q) = H(P,Q) - H(P)
因為 H(P )為定值,所以其當交叉熵最小時,兩個分佈就擬合的最好,由此得到了交叉熵損失函式

softmax 函式

上面已經說明:當我們用一個分佈Q去估計另一個分佈時,期望這兩個分佈的相對熵趨於零。但是不同的分佈可能導致相同的交叉熵損失,這時我們要應用最大熵原理來選擇所含資訊量最大的那一個,意思是我們在擬合原有資料集的同時想讓新得到的分佈具有儘可能大的熵(即編碼期望最長的)。

假設f(x,y)是聯合分佈域上的示性函式 p ( y i x i ) = 1 < = = > f ( x i , y i ) = 1 p(y_i|x_i)=1 <==> f(x_i,y_i)=1 ,表徵了訓練集的屬性.設模型為P(Y|X),則我們希望由訓練集的P(X,Y)和P(X),來推導得出P(Y|X)

假設推匯出的模型能夠很好的表示訓練集,則有 x , y p ~ ( x ) p ( y x ) f ( x , y ) = x , y p ~ ( x , y ) f ( x , y ) \sum_{x,y}\tilde{p}(x)p(y|x)f(x,y) = \sum_{x,y}\tilde{p}(x,y)f(x,y) 帶有上標撇的是訓練集的分佈

下面給出最大熵模型P(Y|X)的定義:
H ( P ) = x , y P ~ ( x ) P ( y x ) log P ( y x ) H(P) = -\sum_{x,y}\tilde{P}(x)P(y|x) \log{P(y|x)}
y P ( y x ) = 1 \sum_y P(y|x) = 1
x , y p ~ ( x ) p ( y x ) f ( x , y ) = x , y p ~ ( x , y ) f ( x , y ) i = 1 , 2 , , , n \sum_{x,y}\tilde{p}(x)p(y|x)f(x,y) = \sum_{x,y}\tilde{p}(x,y)f(x,y) i=1,2,,,n

引入拉格讓日乘子求解,會得到對應的 P ( y x ) = exp ( w i f i ) n o r m a l i z e d P(y|x) = \frac{\exp(\sum w_i f_i)}{normalized} ,即是softmax函式形式

softmax 加交叉熵損失函式求導

在這裡插入圖片描述