熵——信息的度量

熵的定义

熵的定义式为:
H ( X ) = − ∑ x ∈ X P ( x ) log ⁡ P ( x ) H(X) = -\sum_{x\in X} P(x) \log P(x) H(X)=xXP(x)logP(x)

单位为比特。

公式可写为 H ( X ) = E ( log ⁡ 1 P ( x ) ) H(X)=E(\log \frac {1} {P(x)}) H(X)=E(logP(x)1)

在信息论中, log ⁡ 1 P ( x ) \log \frac{1}{P(x)} logP(x)1称为信息量,或者叫自信息,其代表一个事件所能够提供信息的多少。其是基于这样的想法进行信息量化的,一个不太可能发生的事件发生了,要比一个非常可能发生的事件提供更多的信息(概率小,log值高)。然而一个随机变量有多个取值, log ⁡ 1 P ( x ) \log \frac{1}{P(x)} logP(x)1的期望就表示了这个随机变量所有取值提供信息的期望,也就是熵。

从公式意义上来说,信息熵代表的是随机变量或整个系统的不确定性,熵越大,随机变量或系统的不确定性就越大。

下面我来证明当所有取值的概率相同时,熵最大。

首先假设变量X只有两个取值,概率分别为 p 1 p_1 p1 p 2 p_2 p2
H ( X ) = p 1 log ⁡ p 1 + ( 1 − p 1 ) log ⁡ ( 1 − p 1 ) H(X)=p_1 \log p_1 + (1-p_1) \log (1 - p_1) H(X)=p1logp1+(1p1)log(1p1)
d H d p 1 = log ⁡ ( p 1 1 − p 1 ) \frac{\mathrm{d} H}{\mathrm{d} p_1 } = \log (\frac{p_1}{1-p_1}) dp1dH=log(1p1p1)
另上式等于0, p 1 p_1 p1为0.5。
将情况扩展至多个取值的情况,我们可以这样操作,每次取出不同概率的两个取值。这两个取值的加和固定,由上面这种情况可知,当两个取值的概率相等时,熵最大。所以我们将这两个取值的概率置为相等,熵就会增加。多次执行此操作,直到所有概率值都相等,此时熵最大,证毕。

当所有取值的概率相等时,也就是不确定性最大的情况,此时熵最大,印证了我上面那个观点。

条件熵

公式定义如下:
H ( X ∣ Y ) = − ∑ x ∈ X , y ∈ Y P ( x , y ) log ⁡ P ( x ∣ y ) H(X|Y)=-\sum_{x\in X, y\in Y} P(x,y)\log P(x|y) H(XY)=xX,yYP(x,y)logP(xy)
公式意义:在了解Y的条件下,关于X的不确定性。

有如下关系: H ( X ) ≥ H ( X ∣ Y ) ≥ H ( X ∣ Y , Z ) H(X)\geq H(X|Y) \geq H(X|Y,Z) H(X)H(XY)H(XY,Z),即提前知道的变量越多,熵就越小。等号成立的条件是变量之间毫无关系。

互信息

互信息是用来度量两个随机事件“相关性”的量化度量。假定有两个随机事件X和Y,它们的互信息定义如下:
I ( X ; Y ) = ∑ x ∈ X , y ∈ Y P ( x , y ) log ⁡ P ( x , y ) P ( x ) P ( y ) I(X;Y)=\sum_{x\in X,y\in Y} P(x, y)\log \frac{P(x,y)}{P(x)P(y)} I(X;Y)=xX,yYP(x,y)logP(x)P(y)P(x,y)
容易推导得: I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) I(X;Y) = H(X) - H(X|Y) I(X;Y)=H(X)H(XY)

所谓两个事件相关性的量化度量,就是在了解了其中一个Y的情况下,对消除另一个X不确定性所提供的信息量。

互信息的范围是 [ 0 ,   m i n ( H ( X ) , H ( Y ) ) ] [0,\ min(H(X),H(Y))] [0, min(H(X),H(Y))]

相对熵(KL散度)

公式为:(f(x),g(x)表示概率分布)
K L ( f ( x ) ∣ ∣ g ( x ) ) = ∑ x ∈ X f ( x ) log ⁡ f ( x ) g ( x ) KL(f(x)||g(x))=\sum_{x\in X} f(x) \log \frac {f(x)} {g(x)} KL(f(x)g(x))=xXf(x)logg(x)f(x)

在机器学习中,f 往往用来表示样本的真实分布,g 用来表示模型所预测的分布,那么KL散度就可以计算两个分布的差异,也就是Loss损失值。

从KL散度公式中可以看到 f 的分布越接近 g( f 分布越拟合 g),那么散度值越小,即损失值越小。

关于相对熵,有不等式 K L ( f ( x ) ∣ ∣ g ( x ) ) ≥ 0 KL(f(x)||g(x)) \geq 0 KL(f(x)g(x))0成立。证明如下:

以下推导基于Jensen 不等式,不了解的可以搜索一下。
− K L = ∑ x ∈ X f ( x ) log ⁡ g ( x ) f ( x ) ≤ log ⁡ ∑ x ∈ X f ( x ) g ( x ) f ( x ) = log ⁡ ∑ x ∈ X g ( x ) = 0 -KL = \sum_{x\in X} f(x) \log \frac {g(x)} {f(x)} \\ \leq \log \sum_{x\in X} f(x) \frac{g(x)} {f(x)} \\ = \log \sum_{x\in X} g(x) \\ = 0 KL=xXf(x)logf(x)g(x)logxXf(x)f(x)g(x)=logxXg(x)=0
因此 K L ≥ 0 KL\geq 0 KL0成立。

有如下三条结论:

  1. 对于两个完全相同的函数,它们的相对熵等于零。
  2. 相对熵越大,两个函数差异越大;反之,相对熵越小,两个函数差异越小。
  3. 对于概率分布或概率密度函数,如果取值均大于零,相对熵可以度量两个随机分布的差异性。

交叉熵

公式为:
H ( f ( x ) , g ( x ) ) = − ∑ x ∈ X f ( x ) log ⁡ g ( x ) H(f(x),g(x)) = -\sum_{x\in X} f(x)\log g(x) H(f(x),g(x))=xXf(x)logg(x)
容易推导得到: K L ( f ( x ) ∣ ∣ g ( x ) ) = − H ( f ( x ) ) + H ( f ( x ) , g ( x ) ) KL(f(x)||g(x)) = -H(f(x)) + H(f(x),g(x)) KL(f(x)g(x))=H(f(x))+H(f(x),g(x))

第一部分是 f ( x ) f(x) f(x)的熵,第二部分是两个分布的相对熵。在机器学习中,我们需要评估 labels 和 predictions 之间的差距,由于KL散度中的前一部分 − H ( f ( x ) ) −H(f(x)) H(f(x))不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做Loss,评估模型。

机器学习中, f ( x ) f(x) f(x)一般是类别标签,而 g ( x ) g(x) g(x)一般是预测概率,所以 f ( x ) f(x) f(x)的熵不会变化。因此交叉熵随着两者的相对熵变化而变化。即交叉熵越大,两个函数差异越大;反之,交叉熵越小,两个函数差异越小。

由于 K L ≥ 0 KL \geq 0 KL0,所以交叉熵 ≥ \geq 熵,当 f ( x ) f(x) f(x) g ( x ) g(x) g(x)分布相同时,交叉熵最小。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值