softmax交叉熵

多分類問題

神經網絡輸出多個類型,每個類型需要判斷正確的概率,這個時候logisticregression就不行了,我們就需要新的函數來解決這個問題,也就是softmax,稱歸一化指數函數。

softmax

公式
δ(z)=expzij=1mexpzj,i=1,...,m \delta(z) ={ {\exp^{z_i}}\over{ \sum_{j=1}^m \exp^{z_j}}},i=1,...,m

例子
三個輸出爲y1=0.1,y2=0.3y3=0.6
softmax(y1)=e0.1e0.1+e0.3+e0.6e^{0.1}\over{e^{0.1}+e^{0.3}+e^{0.6}}=0.26
softmax(y2)=e0.3e0.1+e0.3+e0.6e^{0.3}\over{e^{0.1}+e^{0.3}+e^{0.6}}=0.32
softmax(y3)=e0.6e0.1+e0.3+e0.6e^{0.6}\over{e^{0.1}+e^{0.3}+e^{0.6}}=0.43

得到每個分類的概率,求loss,需要用交叉熵

交叉熵

什麼是交叉熵

先從幾個概念入手

信息熵

它是表示隨機變量不確定的度量,是對所有可能發生的事件產生的信息量的期望。
一條信息的信息量大小和它的不確定性有直接的關係。
公式
𝐻(𝑋)= -i=1np(xi)logp(xi)\sum_{i=1}^np(x_i) \log p(x_i)
例子
中國和巴西踢球,之前64場,中國贏一場(貌似不太可能)。
中國贏球概率:log26364-log_2{63 \over 64}=0.023
巴西贏球概率:log2164-log_2{1 \over 64}=6
信息熵:0.023×log26364+6×log21640.023 \times-log_2{63 \over 64}+6\times -log_2{1 \over 64}=0.1164

條件熵

述 X 和 Y 所需的信息是描述 X 自己所需的信息,加上給定 X 的條件下具體化 Y 所需的額外信息。
公式
H(Y|X)=-x,yp(x,y)logp(yx\sum\limits_{x,y}p(x,y)\log p(y|x)
例子
中國隊和菲律賓隊比賽統計,隨便造的,實在不知道選哪個國家了。。留給中國隊的弱隊不多了。
根據場地的勝負條件熵計算

jisuan
場地 勝負次數
主場 7
3
客場 4
5
外場 4
4

H(Y|X=主場)= 710×log(710)310×log(310)=0.88-{7 \over 10} \times \log({7 \over 10}) - {3 \over 10} \times \log({3 \over 10}) =0.88
H(Y|X=客場)= 49×log(49)59×log(59)=0.99-{4 \over 9} \times \log({4 \over 9}) - {5 \over 9} \times \log({5 \over 9}) =0.99
H(Y|X=主場)= 48×log(48)48×log(418)=0.88-{4 \over 8} \times \log({4 \over 8}) - {4 \over 8} \times \log({4\over 18}) =0.88
H(Y|X+場地)=0.88×1027+0.99×927+1×8270.88 \times {10 \over 27}+0.99 \times {9 \over 27}+1 \times {8 \over 27}=0.95

交叉熵

主要度量兩個概率分佈間的差異性信息。

公式

H(p,q)=-i=0np(xi)log(q(xi))\sum\limits_{i=0}^n p(x_i)\log(q(x_i))
例子

分類
label 0 1 0
Pred 0.3 0.6 0.1

H(p,q)= (0×log(0.3)+1×log(0.6)+0×log(0.1))=log(0.6)-(0 \times \log(0.3)+1 \times \log(0.6)+0 \times \log(0.1))=-\log(0.6)

推導

正 p(y=1|x)=y^\hat{y}
負 p(y=0|x)=1-y^\hat{y}
兩式合併
p(y|x)=y^×(1y^)(1y^)\hat{y} \times (1-\hat{y})^{(1-\hat{y})}
取對數
logp(yx)=ylogy^+(1y)log((1y^))\log p(y|x)=y log \hat{y}+(1-y) \log ((1-\hat{y}))
L=[ylogy^+(1y)log((1y^))]L=-[ylog\hat{y}+(1-y)\log((1-\hat{y}))]

其實和logistics迴歸類似。

C=1nx[ylogy^+(1y)log((1y^))]C=-{1\over n}\sum\limits_x[ylog\hat{y}+(1-y)\log((1-\hat{y}))]

擴展到多個分類
H(p,q)=-i=0np(xi)log(q(xi))\sum\limits_{i=0}^n p(x_i)\log(q(x_i))

求導

y=1y=1
y^=eijej\hat{y}={{e^i}\over{\sum_je^j}}
lossi=(ylogy^)=1y^(y^)=jejei(eijej)=......=1y^\frac{\partial loss}{\partial i}= (y\log \hat{y})' \\ ={1 \over \hat{y}} (\hat{y})' \\ ={{\sum_j e^j}\over{e^i}} ({{e^i} \over{\sum_j e^j}})' \\ =...複雜過程... \\ =1-\hat{y}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章