日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

交叉熵

發(fā)布時間:2025/3/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 交叉熵 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

信息論

交叉熵是信息論中的一個概念,要想了解交叉熵的本質(zhì),需要先從最基本的概念講起。

1 信息量

每件事情都有一定的發(fā)生概率,不同概率的事情發(fā)生帶來的信息量是不同的。舉例來說:
事件A:巴西隊(duì)進(jìn)入了2018世界杯決賽圈。
事件B:中國隊(duì)進(jìn)入了2018世界杯決賽圈。
可以知道,B事件發(fā)生的信息量是比A事件發(fā)生的信息量要大的,因?yàn)锳事件的概率明顯比B事件的概率大。那么我們?nèi)绾蝸砗饬坎煌录l(fā)生帶來的信息量呢?公式如下:
其中p(x)表示事件x發(fā)生的概率
信息量=?log(p(x))信息量=-log(p(x)) =?log(p(x))

2 熵

熵用來表示所有信息量的期望。熵衡量了預(yù)測隨機(jī)變量的不確定度,不確定性越大熵越大。
公式如下:
H(X)=?∑i=1np(xi)log(p(xi))H(X)=-\sum_{i=1}^{n}p(x_{i})log(p(x_{i})) H(X)=?i=1n?p(xi?)log(p(xi?))
其中n代表所有可能發(fā)生的事件數(shù)量。
舉例來說:

序號事件概率p信息量I
A電腦正常開機(jī)0.6?log(p(A))=0.22-log(p(A))=0.22?log(p(A))=0.22
B電腦無法開機(jī)0.2?log(p(B))=0.69-log(p(B))=0.69?log(p(B))=0.69
C電腦爆炸0.2?log(p(C))=0.69-log(p(C))=0.69?log(p(C))=0.69

H(x)=?[p(A)log(p(A))+p(B)log(p(B))+p(C))log(p(C))]=0.6?0.22+0.2?0.69+0.2?0.69=0.408H(x) = ?[p(A)log(p(A))+p(B)log(p(B))+p(C))log(p(C))] =0.6*0.22+0.2*0.69+0.2*0.69 =0.408 H(x)=?[p(A)log(p(A))+p(B)log(p(B))+p(C))log(p(C))]=0.6?0.22+0.2?0.69+0.2?0.69=0.408

3 相對熵(KL散度)

相對熵又稱KL散度,如果我們對于同一個隨機(jī)變量 x 有兩個單獨(dú)的概率分布 P(x) 和 Q(x),我們可以使用 KL 散度(Kullback-Leibler (KL) divergence)來衡量這兩個分布的差異

維基百科對相對熵的定義

In the context of machine learning, DKL(P‖Q) is often called the information gain achieved if P is used instead of Q.

即 使用P來描述問題所帶來的信息增量,相對于Q來說。

在機(jī)器學(xué)習(xí)中,P往往用來表示樣本的真實(shí)分布,比如[1,0,0]表示當(dāng)前樣本屬于第一類。Q用來表示模型所預(yù)測的分布,比如[0.7,0.2,0.1]
直觀的理解就是如果用P來描述樣本,那么就非常完美。而用Q來描述樣本,雖然可以大致描述,但是不是那么的完美,信息量不足,需要額外的一些“信息增量”才能達(dá)到和P一樣完美的描述。如果我們的Q通過反復(fù)訓(xùn)練,也能完美的描述樣本,那么就不再需要額外的“信息增量”,Q等價于P。
KL散度的計(jì)算公式:
DKL(p∣∣q)=∑i=1np(xi)log(p(xi)q(xi))D_{KL}(p||q)=\sum_{i=1}^{n}p(x_{i})log( \frac{ p(x_{i}) } {q(x_{i}) }) DKL?(pq)=i=1n?p(xi?)log(q(xi?)p(xi?)?)
DKLD_{KL}DKL?的值越小,表示q分布和p分布越接近。

4 交叉熵

對KL散度公式變形得到:
DKL([∣∣q)=∑i=1np(xi)log(p(xi))?∑i=1np(xi)log(q(xi))=?H(p(x))+[?∑i=1np(xi)log(q(xi))]D_{KL}([||q) = \sum_{i=1}^{n}p(x_{i})log(p(x_{i})) - \sum_{i=1}^{n}p(x_{i})log(q(x_{i})) =-H(p(x)) + [-\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))] DKL?([q)=i=1n?p(xi?)log(p(xi?))?i=1n?p(xi?)log(q(xi?))=?H(p(x))+[?i=1n?p(xi?)log(q(xi?))]
等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:
H(p,q)=?∑i=1np(xi)log(q(xi))H(p,q) = -\sum_{i=1}^{n}p(x_{i})log(q(x_{i})) H(p,q)=?i=1n?p(xi?)log(q(xi?))
在機(jī)器學(xué)習(xí)中,我們需要評估label和predicts之間的差距,使用KL散度剛剛好,即DKL(y∣∣y^)D_{KL}(y||\hat{y})DKL?(yy^?),由于KL散度中的前一部分?H(y)?H(y)?H(y)不變,故在優(yōu)化過程中,只需要關(guān)注交叉熵就可以了。所以一般在機(jī)器學(xué)習(xí)中直接用用交叉熵做loss,評估模型。

下一篇將會講解為什么要使用交叉熵作為損失函數(shù)

轉(zhuǎn)自:博客

總結(jié)

以上是生活随笔為你收集整理的交叉熵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。