交叉熵(Cross Entropy)
本文介紹交叉熵的概念,涉及到信息量、熵、相對熵、交叉熵;
信息量
信息量是用來衡量一個事件發生的不確定性,一個事件發生的概率越大,不確定性越小,則信息攜帶的信息量則越小;
假設𝑋X是一個離散隨機變量,其取值爲集合𝑋=𝑥0,𝑥1,⋯,𝑥𝑛X=x0,x1,⋯,xn,其概率分佈函數爲:
則定義事件𝑋=𝑥0X=x0的信息量爲:
當𝑝(𝑥0)=1p(x0)=1時,該事件必定發生,其信息量就爲0;
下面詳細說明爲什麼選擇𝑙𝑜𝑔log用於計算信息量:
單調遞減:
首先,事件的概率越大,不確定性越小,則攜帶的信息量越小;所以是一個單調遞減的函數;
隨機變量獨立性:
假設𝑥1,𝑥2x1,x2是兩個獨立的隨機變量,則其聯合概率有:
那麼,對於兩個獨立的事件𝑋=𝑥1X=x1與𝑋=𝑥2X=x2,其聯合後的信息量就有:
因此,考慮隨機變量的獨立性,概率的乘法能轉換到信息量的加法,可以使用𝑙𝑜𝑔log方法,同時爲了滿足單調遞減的性質,再取負;
就有了:
其中𝑝(𝑥)p(x)的取值爲[0,1][0,1];
如下圖所示,橫軸表示事件發生的概率,縱軸表示其攜帶的信息量;
熵
熵是用來衡量一個系統的混亂程度,代表系統中信息量的總和;
熵值越大,則表明這個系統越不穩定;
信息量是衡量一個事件的不確定性,而熵是衡量一個系統(所有事件)的不確定性;
熵的計算公式如下:
其中,𝑝(𝑥𝑖)p(xi)表示事件𝑋=𝑥𝑖X=xi發生的概率,−𝑙𝑜𝑔(𝑝(𝑥𝑖))−log(p(xi))表示事件𝑋=𝑥𝑖X=xi的信息量;
可以看出,熵是信息量的期望值,是一個隨機變量不確定性的度量;
熵值越大,隨機變量的取值就越難確定,系統就越不穩定;
熵值越低,隨機變量的取值就越容易確定,系統就越穩定;
相對熵(Relative Entropy)
相對熵也稱爲KL散度(Kullback-Leibler divergence),表示同一個隨機變量的兩個不同分佈間的距離;
假設,𝑝(𝑥),𝑞(𝑥)p(x),q(x)分別是 離散隨機變量𝑋X的兩個概率分佈,則𝑝p對𝑞q的相對熵是:
具有以下性質:
- 如果𝑝(𝑥)p(x)與𝑞(𝑥)q(x)的分佈相同,則相對熵爲0;
- 相對熵不具有對稱性,即𝐷𝐾𝐿(𝑝||𝑞)≠𝐷𝐾𝐿(𝑞||𝑝)DKL(p||q)≠DKL(q||p),即KL散度也不是一種度量方式;
- 𝐷𝐾𝐿(𝑝||𝑞)≥0DKL(p||q)≥0;
總的來說,相對熵是用來衡量同一個隨機變量的兩個不同分佈之間的距離;在實際應用中,𝑝(𝑥)p(x)表示目標分佈,𝑞(𝑥)q(x)表示預測得到的分佈,任務的目標就是讓兩個分佈儘可能的相似,這就需要最小化KL散度;
交叉熵(Cross Entropy)
對相對熵的計算公式做一步拆分:
在機器學習中,假設𝑝p是目標分佈,則分佈𝑝p的熵就是一個固定的值,其計算方式就是上式的第一項;
那麼,上式的第二項,即
稱爲交叉熵;
設𝑝(𝑥)p(x)是目標分佈,我們的目標就是讓訓練得到的分佈𝑞(𝑥)q(x)儘可能地接近𝑝(𝑥)p(x),這時候就可以最小化𝐷𝐾𝐿(𝑝||𝑞)DKL(p||q),等價於最小化交叉熵𝐻(𝑝,𝑞)H(p,q);
因此,交叉熵衡量的是兩個部分之間的差異,所以在用於分類任務的深度卷積神經網絡中,常在最後一層中加上Softmax層;