机器学习中的熵

1 信息熵

熵是热力学中的一个参量,反映了体系的混乱程度。1948年,克劳德·爱尔伍德·香农将热力学中的熵引入信息论,所以也被称为香农熵 ,信息熵 。

为引出信息熵,首先定义信息量。当我们观测一个随机变量的具体值的时候会从中获得一定信息,而获得了多少信息则由信息量来度量。一般来说,一件越小概率的事情发生了,产生的信息量就越大;而越大概率的事情发生了产生的信息量越小,比如太阳从西边落下,这件事情肯定发生,没有任何信息量。

从以上可知,信息量应该依赖于概率分布,且随着概率的增加递减,为了找到这个函数,首先考虑一条性质:假设有两个不相关的随机变量 x x x y y y,那么同时观测两个随机变量所获得的信息量应该等于分别观测所获得的信息量之和,即
h ( x , y ) = h ( x ) + h ( y ) h(x,y)=h(x)+h(y) h(x,y)=h(x)+h(y)
因为两个变量不相关,因此 p ( x , y ) = p ( x ) p ( y ) p(x,y)=p(x)p(y) p(x,y)=p(x)p(y),从这可以看出信息量一定与 p ( x ) p(x) p(x)的对数有关,因为 log ⁡ x y = log ⁡ x + log ⁡ y \log xy=\log x+\log y logxy=logx+logy,最终信息量的表达式是
h ( x ) = − log ⁡ p ( x ) h(x)=-\log p(x) h(x)=logp(x)
之所以加上符号是为了确保信息量是正数,当 p ( x ) = 0 p(x)=0 p(x)=0时规定 h ( x ) = 0 h(x)=0 h(x)=0 log ⁡ \log log函数底数的选择是任意的,通常是 2 2 2或者自然对数 e e e

最后给出信息熵的定义,信息熵是随机变量所有可能结果所产生的信息量的期望,即
H ( X ) = − ∑ i = 1 n p ( x i ) log ⁡ p ( x i ) H(X)=-\sum_{i=1}^np(x_i)\log p(x_i) H(X)=i=1np(xi)logp(xi)
它是随机变量不确定性的度量。随机变量的取值个数越多,信息熵就越大,不确定性就越高。当随机变量服从均匀分布时,信息熵最大,为 log ⁡ n \log n logn。对于多维随机变量可以将信息熵推广为联合熵
H ( X 1 , . . . X n ) = − ∑ x 1 , . . . x n p ( x 1 , . . . , x n ) log ⁡ p ( x 1 , . . . , x n ) H(X_1,...X_n)=-\sum_{x_1,...x_n} p(x_1,...,x_n)\log p(x_1,...,x_n) H(X1,...Xn)=x1,...xnp(x1,...,xn)logp(x1,...,xn)

2 条件熵

条件熵 H ( Y ∣ X ) H(Y\mid X) H(YX)表示在已知随机变量 X X X的条件下随机变量 Y Y Y的不确定性,定义为已知 X X X的条件下 Y Y Y的条件概率分布的熵对 X X X的期望
H ( Y ∣ X ) = ∑ x p ( x ) H ( Y ∣ X = x ) = − ∑ x p ( x ) ∑ y p ( y ∣ x ) log ⁡ p ( y ∣ x ) = − ∑ x ∑ y p ( x , y ) log ⁡ p ( y ∣ x ) = − ∑ x , y p ( x , y ) log ⁡ p ( y ∣ x ) \begin{aligned} H(Y\mid X)&=\sum_{x}p(x)H(Y\mid X=x)\\ &=-\sum_xp(x)\sum_yp(y\mid x)\log p(y\mid x)\\ &=-\sum_x\sum_yp(x,y)\log p(y\mid x)\\ &=-\sum_{x,y}p(x,y)\log p(y\mid x) \end{aligned} H(YX)=xp(x)H(YX=x)=xp(x)yp(yx)logp(yx)=xyp(x,y)logp(yx)=x,yp(x,y)logp(yx)
条件熵相当于联合熵 H ( X , Y ) H(X,Y) H(X,Y)减去单独的熵 H ( X ) H(X) H(X)
H ( X , Y ) − H ( X ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x p ( x ) log ⁡ p ( x ) = − ∑ x , y p ( x , y ) log ⁡ p ( y ∣ x ) − ∑ x , y p ( x , y ) log ⁡ p ( x ) + ∑ x p ( x ) log ⁡ p ( x ) = H ( Y ∣ X ) − ∑ x ∑ y p ( x , y ) log ⁡ p ( x ) + ∑ x p ( x ) log ⁡ p ( x ) = H ( Y ∣ X ) − ∑ x p ( x ) log ⁡ p ( x ) + ∑ x p ( x ) log ⁡ p ( x ) = H ( Y ∣ X ) \begin{aligned} H(X,Y)-H(X)&=-\sum_{x,y}p(x,y)\log p(x,y)+\sum_x p(x)\log p(x)\\ &=-\sum_{x,y}p(x,y)\log p(y\mid x)-\sum_{x,y}p(x,y)\log p(x)+\sum_xp(x)\log p(x)\\ &=H(Y\mid X)-\sum_{x}\sum_yp(x,y)\log p(x)+\sum_xp(x)\log p(x)\\ &=H(Y\mid X)-\sum_{x}p(x)\log p(x)+\sum_xp(x)\log p(x)\\ &=H(Y \mid X) \end{aligned} H(X,Y)H(X)=x,yp(x,y)logp(x,y)+xp(x)logp(x)=x,yp(x,y)logp(yx)x,yp(x,y)logp(x)+xp(x)logp(x)=H(YX)xyp(x,y)logp(x)+xp(x)logp(x)=H(YX)xp(x)logp(x)+xp(x)logp(x)=H(YX)
可以理解为描述 X X X Y Y Y所需要的信息等于描述 X X X所需要的信息加上已知 X X X描述 Y Y Y所需要的信息。

3 相对熵

相对熵又称为 K L KL KL散度,可以用来衡量两个分布之间的差异,假设随机变量 X X X有两个单独的概率分布 p ( x ) p(x) p(x) q ( x ) q(x) q(x),则 p p p q q q的相对熵是
D K L ( p ∥ q ) = ∑ x p ( x ) log ⁡ p ( x ) q ( x ) D_{KL}(p\|q)=\sum_xp(x)\log \frac{p(x)}{q(x)} DKL(pq)=xp(x)logq(x)p(x)
这个公式所表示的意义是 p p p q q q的对数差相对 p p p的期望,显然 D K L D_{KL} DKL越小, q q q分布和 p p p分布越接近。在机器学习中,相对熵表示用 p p p来描述问题而不是用 q q q来描述问题所获得的信息增益,可以将 p p p理解为真实分布, q q q理解为预测分布。

有一点需要注意的是,相对熵不具有对称性,即
D K L ( p ∥ q ) ≠ D K L ( q ∥ p ) D_{KL}(p\|q)\neq D_{KL}(q\|p) DKL(pq)=DKL(qp)

4 交叉熵

对相对熵的公式进行变形可得
D K L ( p ∥ q ) = ∑ x p ( x ) log ⁡ p ( x ) − ∑ x p ( x ) log ⁡ q ( x ) = − H ( p ) + [ − ∑ x p ( x ) log ⁡ q ( x ) ] \begin{aligned} D_{KL}(p\|q)&=\sum_xp(x)\log p(x)-\sum_xp(x)\log q(x)\\ &=-H(p)+[-\sum_xp(x)\log q(x)] \end{aligned} DKL(pq)=xp(x)logp(x)xp(x)logq(x)=H(p)+[xp(x)logq(x)]
等式左侧的前一部分是 p p p的信息熵,后一部分被称作交叉熵
H ( p , q ) = − ∑ x p ( x ) log ⁡ q ( x ) H(p,q)=-\sum_xp(x)\log q(x) H(p,q)=xp(x)logq(x)
交叉熵可以看作使用非真实分布 q q q所得到的信息熵,信息熵则是真实分布,使用非真实分布多出来的一部分熵就是相对熵
D K L ( p ∥ q ) = H ( p , q ) − H ( p ) D_{KL}(p\|q)=H(p,q)-H(p) DKL(pq)=H(p,q)H(p)
在机器学习中,可以使用相对熵衡量真实分布与预测分布之间的差异,由于 H ( p ) H(p) H(p)固定,因此只需关注交叉熵。逻辑回归的损失函数就是交叉熵。

参考

1、https://www.cnblogs.com/kyrieng/p/8694705.html#name2

2、https://blog.csdn.net/tsyccnh/article/details/79163834

3、https://www.cnblogs.com/IamJiangXiaoKun/p/9455689.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值