真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

計算熵函數python 熵 計算公式

在熵編碼中,熵值的計算

計算步驟如下圖:

我們提供的服務有:成都網站制作、網站設計、微信公眾號開發(fā)、網站優(yōu)化、網站認證、蓮池ssl等。為上1000家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的蓮池網站制作公司

在信息論中,熵是對不確定性的一種度量。信息量越大,不確定性就越小,熵也就越?。恍畔⒘吭叫?,不確定性越大,熵也越大。根據熵的特性,我們可以通過計算熵值來判斷一個事件的隨機性及無序程度,也可以用熵值來判斷某個指標的離散程度,指標的離散程度越大,該指標對綜合評價的影響越大。

熵的公式

熵的公式如下:

1、克勞修斯首次從宏觀角度提出熵概念,其計算公式為:S=Q/T,(計算熵差時,式中應為△Q);

2、波爾茲曼又從微觀角度提出熵概念,公式為:S=klnΩ,Ω是微觀狀態(tài)數,通常又把S當作描述混亂成度的量。

理想氣體的體積熵為:SV=klnΩv=klnV,溫度熵為:ST=klnΩT=(3/2)klnT,計算任意過程的熵差公式為:△S=(3/2)kln(T'/T)+kln(V'/V)。

什么是熵,如何計算?

熵(Entropy)原本是一個熱力學概念,用來描述物質的混亂程度。熵越大,物質越混亂。

香濃借鑒了熱力學中的概念,把信息中排除了冗余后的平均信息量稱為“信息熵”,并給出了計算信息熵的數學表達式。

通常,一個信源發(fā)送出什么符號是不確定的,衡量它可以根據其出現的概率來度量。概率大,出現機會多,不確定性??;反之不確定性就大。不確定性函數f是概率P的減函數;兩個獨立符號所產生的不確定性應等于各自不確定性之和,即f(P 1, P 2 )=f(P 1 )+f(P 2 ),這稱為可加性。同時滿足這兩個條件的函數f是對數函數,即

當0和1各占50%時,發(fā)射的信號0和1各占50%,此時信號最為混亂;當0或1出現概率為100%時,信號中只有一個值,此時所包含的信息非?!罢麧崱?,所以信息熵時0。

已知男女所占比率各為50%,所有人群中抽煙占40%,不抽煙占60%,而在抽煙人群中95%都是男性,不抽煙人群中80%是女性。如果我們已知一個人抽煙,那么我們可以很有信心的說該煙民為男性,但是我們如何去度量這種信心呢?因此,我們引入了熵, 熵是用來度量該系統(tǒng)的不確定性,我們有多大的把握說出該煙民為男性 。試想一下,當煙民中男女比例各占50%的時候,這是最不容易確定該煙民性別的情況,所以這個時候熵很高(信息很混亂)。

當男女煙民各占50%時,熵的計算過程為(以2為底):

我們令事件X不抽煙為a,抽煙為b,則X:{a=No-smoking, b=smoking}。

則不抽煙的人的熵為:

抽煙的人的熵為為:

可以看到煙民中性別分布要比非煙民更加不均衡,在這種情況下如果我們知道ta抽煙,則我們對ta的性別的判斷更加準確。

抽煙事件整體的熵為:

我們在知道了煙民和非煙民中男女比例后要比瞎猜要準確多少如何度量呢,這時候引入新的概念,信息增益:

參考:

1. 百度百科-信息熵

[損失函數]——交叉熵

在了解交叉熵之前我們需要關于熵的一些基本知識,可以參考我的上一篇 博客 [1] 。

信息熵的定義為離散隨機事件的出現概率 [2] 。當一個事件出現的概率更高的時候,我們認為該事件會傳播的更廣,因此可以使用信息熵來衡量信息的價值。

當一個信源具有多種不同的結果,記為:U1,U2,...,Un,每個事件相互獨立,對應的概率記為:P1,P2,...,Pn。信息熵為各個事件方式概率的期望,公式為:

對于二分類問題,當一種事件發(fā)生的概率為p時,另一種事件發(fā)生的概率就為(1-p),因此,對于二分類問題的信息熵計算公式為:

相對熵(relative entropy),又被稱為Kullback-Leibler散度(Kullback-leibler divergence),是兩個概率分布間差異的一種度量 [3] 。在信息論中,相對熵等于兩個概率分布的信息熵的差值。

相對熵的計算公式為:

其中 代表事件的真實概率, 代表事件的預測概率。例如三分類問題的標簽為 ,預測標簽為 。

因此該公式的字面上含義就是真實事件的信息熵與理論擬合的事件的香農信息量與真實事件的概率的乘積的差的累加。[4]

當p(x)和q(x)相等時相對熵為0,其它情況下大于0。證明如下:

KL散度在 Pytorch 中的使用方法為:

在使用過程中, reduction 一般設置為 batchmean 這樣才符合數學公式而不是 mean ,在以后的版本中 mean 會被替換掉。

此外,還要注意 log_target 參數,因為在計算的過程中我們往往使用的是log softmax函數而不是softmax函數來避免underflow和overflow問題,因此我們要提前了解target是否經過了log運算。

torch.nn.KLDivLoss() 會傳入兩個參數 (input, target) , input 是模型的預測輸出, target 是樣本的觀測標簽。

下面我們用一個例子來看看 torch.nn.KLDivLoss() 是如何使用的:

輸出結果如下:

相對熵可以寫成如下形式:

等式的前一項為真實事件的熵,后一部分為 交叉熵 [4] :

在機器學習中,使用KL散度就可以評價真實標簽與預測標簽間的差異,但由于KL散度的第一項是個定值,故在優(yōu)化過程中只關注交叉熵就可以了。一般大多數機器學習算法會選擇交叉熵作為損失函數。

交叉熵在pytorch中可以調用如下函數實現:

其計算方法如下所示 [5] :

假設batch size為4,待分類標簽有3個,隱藏層的輸出為:

經過 softmax 激活函數之后得到預測值:

softmax函數的輸出結果每一行相加為1。

假設這一個mini batch的標簽為

根據交叉熵的公式:

代表真實標簽,在真實標簽中,除了對應類別其它類別的概率都為0,實際上,交叉熵可以簡寫為:

所以該mini batch的loss的計算公式為(別忘了除以batch size,我們最后求得的是mini batch的平均loss):

因此,我們還需要計算一次對數:

計算結果為:

根據交叉熵的計算公式,loss的最終計算等式為:

運算結果和pytorch內置的交叉熵函數相同:

結果為:

除了 torch.nn.CrosEntropyLoss() 函數外還有一個計算交叉熵的函數 torch.nn.BCELoss() 。與前者不同,該函數是用來計算二項分布(0-1分布)的交叉熵,因此輸出層只有一個神經元(只能輸出0或者1)。其公式為:

在pytorch中的函數為:

用一個實例來看看如何使用該函數:

輸出結果為:

它是如何計算的呢,我們接下來一步步分析:

首先輸入是:

需要經過 sigmoid 函數得到一個輸出

輸出結果為:

然后我們根據二項分布交叉熵的公式:

得到 loss 的如下計算公式:

和pytorch的內置函數計算結果相同。

另外,需要注意的是, 當使用交叉熵作為損失函數的時候,標簽不能為onehot形式,只能是一維的向量 ,例如,當batch size是5時,這一個batch的標簽只能時[0,1,4,2,6]這樣的形式。

熵怎么計算

熱力學中表征物質狀態(tài)的參量之一,通常用符號S表示。在經典熱力學中,可用增量定義為dS=(dQ/T),式中T為物質的熱力學溫度;dQ為熵增過程中加入物質的熱量;下標“可逆”表示加熱過程所引起的變化過程是可逆的。若過程是不可逆的,則dS>(dQ/T)不可逆。單位質量物質的熵稱為比熵,記為 s。熵最初是根據熱力學第二定律引出的一個反映自發(fā)過程不可逆性的物質狀態(tài)參量。熱力學第二定律是根據大量觀察結果總結出來的規(guī)律,有下述表述方式:①熱量總是從高溫物體傳到低溫物體,不可能作相反的傳遞而不引起其他的變化;②功可以全部轉化為熱,但任何熱機不能全部地、連續(xù)不斷地把所接受的熱量轉變?yōu)楣Γ礋o法制造第二類永動機);③在孤立系統(tǒng)中,實際發(fā)生的過程,總使整個系統(tǒng)的熵值增大,此即熵增原理。摩擦使一部分機械能不可逆地轉變?yōu)闊?,使熵增加。熱量dQ由高溫(T1)物體傳至低溫(T2)物體,高溫物體的熵減少dS1=dQ/T1,低溫物體的熵增加dS2=dQ/T2,把兩個物體合起來當成一個系統(tǒng)來看,熵的變化是dS=dS2-dS1>0,即熵是增加的。

物理學上指熱能除以溫度所得的商,標志熱量轉化為功的程度。物質都有自己的標準熵,一個反應可以根據各種物質的熵來計算熵變。ΔH-TΔs是計算自由能的公式,用來判斷反應的自發(fā)性。


網頁名稱:計算熵函數python 熵 計算公式
文章URL:http://weahome.cn/article/hjieis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部