从信息量到各种熵

本篇文章从数学角度深度探讨一下 信息量、熵、条件熵、信息增益、KL散度和交叉熵 之间的爱恨情仇,也藉此记录一下自己理解的心路历程。

信息量

信息量通常与概率相关,它可以表示一个事件携带了多少信息。从我们自身感受角度来看,信息量可以理解为这个事件给我们反馈了多少信息。比如我们常听闻有人夸张地说一件事 信息量爆炸 ,试想,如果这件事经常发生,我们已经习以为常,还会觉得它 信息量爆炸 吗?显然不会。只有当这件事发生概率很小,然后在它发生时才会让人感到信息量很大,因此,可以认为事件包含信息量的大小与事件发生的概率成反比。

基于以上结论,你可能会想如何用数学来表示信息量,因为信息量与概率成反比,我们只要找一个函数,它满足自变量(概率)与因变量(信息量)负相关即可,事实上,信息量的数学表示为: h ( x i ) = − l o g P ( X = x i ) h(x_i)=-logP(X=x_i) h(xi)=logP(X=xi)

其中,假设 X X X 是一个取有限个值的离散随机变量, x i x_i xi X X X 的一个取值。 P ( X = x i ) P(X=x_i) P(X=xi) 表示事件发生的概率; h ( x i ) h(x_i) h(xi) 表示事件的信息量, l o g log log 通常用 2 2 2 e e e 为底。

下图为 h ( x ) = − l o g p ( x ) h(x)=-logp(x) h(x)=logp(x) 的图像,可以看出来随着概率 p ( x ) p(x) p(x) 的增大,信息量 h ( x ) h(x) h(x) 越来越小。


在这里插入图片描述


信息熵

在信息论与概率统计中,熵是用来度量随机变量不确定性的程度的。熵越大,不确定性就越大。

上面说信息量度量的是一个具体事件发生带来的信息,而熵则是在结果出来之前对随机变量所有可能发生事件所带来的信息量的期望。按信息量公式,我们可以计算出 X = x i X=x_i X=xi 时的信息量,那我们如何评估随机变量 X X X 的信息量呢?此时,就轮到熵登场了。

熵可以用来表示信息量关于随机变量在其概率分布 P P P 上的期望,令 P ( X = x i ) = p i ,    i = 1 , 2 , 3... , n P(X=x_i)=p_i, \ \ i=1,2,3...,n P(X=xi)=pi,  i=1,2,3...,n

则熵的公式为:

H ( X ) = − ∑ i = 1 n p i l o g p i H(X)=-\sum_{i=1}^np_ilogp_i H(X)=i=1npilogpi

假设随机变量 X X X n n n 个值的概率相等,即 p i = 1 n p_i={1\over{n}} pi=n1,则随机变量 X X X 的熵为:

H ( X ) = − ∑ i = 1 n 1 n l o g 1 n = − l o g 1 n = − l o g 1 + l o g n = l o g n H(X)={-\sum_{i=1}^n{1\over{n}}log{1\over{n}}}=-log{1\over{n}}=-log1+logn=logn H(X)=i=1nn1logn1=logn1=log1+logn=logn

从上式可以直观地看出,熵可以看作随机变量的"平均信息量"(仅限概率相等时)。

上面说过,熵是用来度量随机变量不确定性的程度的,熵越大,不确定性就越大。为了理解这句话,我们来看组成熵的每一项: − p i l o g p i -p_ilogp_i pilogpi

结合上面的 − l o g p ( x ) -logp(x) logp(x) 的图像可以看出,不论 p i p_i pi 往越大或越小的方向走(接近确定性的分布), − p i l o g p i -p_ilogp_i pilogpi 都会接近0, 而当 p i p_i pi 接近均匀分布的概率时, − p i l o g p i -p_ilogp_i pilogpi 相对比较大。直觉来看,当随机变量的概率分布越接近均匀分布时,我们会觉得这个随机变量越不确定。

事实上,熵 H ( X ) H(X) H(X) 的最大值就是在 p i = 1 n p_i={1\over{n}} pi=n1时取到的,即 l o g n logn logn

举个栗子,假设随机变量 X X X 只有两个取值,概率分别为 p p p 1 − p 1-p 1p ,代入熵的公式得到:

H ( X ) = − p l o g p − ( 1 − p ) l o g ( 1 − p ) H(X)=-plogp-(1-p)log(1-p) H(X)=plogp(1p)log(1p)

对应的图像如下所示,在概率 p = 0.5 p=0.5 p=0.5 时熵最大。


在这里插入图片描述


这就是为什么说熵是随机变量不确定性的度量。

条件熵

条件熵的定义为在 随机变量 X X X 给定条件下 随机变量 Y Y Y 关于 X X X 的条件概率分布的熵 X X X 的数学期望

这句话很拗口,我们从这句话中提取出三部分

  • 随机变量 X X X : 令 P ( X = x i ) = p i ,    i = 1 , 2 , 3... , n P(X=x_i)=p_i, \ \ i=1,2,3...,n P(X=xi)=pi,  i=1,2,3...,n
  • 随机变量 Y Y Y 关于 X X X 的条件概率分布的熵:对于 X = x i X=x_i X=xi Y Y Y 关于 x i x_i xi 的条件概率可以表示为 P ( Y ∣ X = x i ) P(Y|X=x_i) P(YX=xi) ,由上面熵的定义,我们可以求 P ( Y ∣ X = x i ) P(Y|X=x_i) P(YX=xi) 的熵: H ( Y ∣ X = x i ) = − ∑ y ∈ Y P ( Y ∣ X = x i ) l o g P ( Y ∣ X = x i ) H(Y|X=x_i)=-\sum_{y∈Y}P(Y|X=x_i)logP(Y|X=x_i) H(YX=xi)=yYP(YX=xi)logP(YX=xi) ,这里的 ∑ y ∈ Y \sum_{y∈Y} yY可以理解为在已经 X = x i X=x_i X=xi 情况下, Y Y Y 的可能取值个数,因为上面对随机变量 X X X 的熵 H ( X ) = − ∑ i = 1 n p i l o g p i H(X)=-\sum_{i=1}^np_ilogp_i H(X)=i=1npilogpi ,其中的 n n n 就表示 p i p_i pi 的 可能取值个数。
  • X X X 的数学期望:即随机变量 Y Y Y 关于 X X X 的条件概率分布的熵 H ( Y ∣ X = x i ) H(Y|X=x_i) H(YX=xi) 对随机变量 X X X 概率分布的期望,用公式表示为: H ( Y ∣ X ) = − ∑ i = 1 n p i H ( Y ∣ X = x i ) = − ∑ i = 1 n P ( X = x i ) ∑ y ∈ Y P ( Y ∣ X = x i ) l o g P ( Y ∣ X = x i ) H(Y|X)=-\sum_{i=1}^np_iH(Y|X=x_i)=-\sum_{i=1}^nP(X=x_i)\sum_{y∈Y}P(Y|X=x_i)logP(Y|X=x_i) H(YX)=i=1npiH(YX=xi)=i=1nP(X=xi)yYP(YX=xi)logP(YX=xi)

举个栗子来理解,下图是《统计学习方法》里面的样例数据。


在这里插入图片描述


比如,我们想计算已知年龄情况下(随机变量 X X X 给定条件下)是否批复贷款的条件熵(随机变量 Y Y Y 关于 X X X 的条件概率分布的熵 X X X 的数学期望)。

照着条件熵公式,我们先来看随机变量 X X X (即年龄)有几种取值,对于年龄,有 青年、中年、老年 三种取值,年龄为 青年 的概率为 5 15 5\over{15} 155 ,即 p i = 1 3 p_i={1\over{3}} pi=31 ,此时对应数据样本中的前5条数据,在这5条数据中,我们再来看随机变量 Y Y Y (即类别)有几种取值,对于类别,5条中有3条为 ,2条为 ,则类别关于年龄的条件概率分布的熵为: H ( Y ∣ X = 青年 ) = − 3 5 l o g − 3 5 − 2 5 l o g − 2 5 H(Y|X=青年)=-{3\over{5}}log{-3\over{5}}-{2\over{5}}log{-2\over{5}} H(YX=青年)=53log5352log52 ,所以对于年龄为 青年 时的条件熵分项为 H ( Y ∣ X ) = p i H ( Y ∣ X = 青年 ) = 1 3 ( − 3 5 l o g − 3 5 − 2 5 l o g − 2 5 ) H(Y|X)=p_iH(Y|X=青年)={1\over{3}}(-{3\over{5}}log{-3\over{5}}-{2\over{5}}log{-2\over{5}}) H(YX)=piH(YX=青年)=31(53log5352log52)

参照上面年龄为 青年 时的算法, 可以计算出 中年和老年 的条件熵分项,然后把它们加起来,即可得到已知年龄情况下是否批复贷款的条件熵。

之前说过,熵表示随机变量不确定性的程度,熵越大,表示随机变量不确定性越高,现在我们又有了条件熵(本质上也是一种熵)。

信息增益

如果我们在已知某随机变量 X X X 时,随机变量 Y Y Y 的条件熵很小,即 Y Y Y 的不确定性变得很小了,那我们可以说 X X X 对于降低 Y Y Y 的不确定性贡献很大,对这种贡献的度量,可以用信息增益。随机变量 X X X 对随机变量 Y Y Y 的信息增益 g ( Y , X ) g(Y,X) g(Y,X), 定义为随机变量 Y Y Y 的熵 H ( Y ) H(Y) H(Y) 与随机变量 X X X 给定条件下随机变量 Y Y Y 的条件煽 H ( Y ∣ X ) H(Y|X) H(YX) 之差,即 g ( Y , X ) = H ( Y ) − H ( Y ∣ X ) g(Y,X)=H(Y)-H(Y|X) g(Y,X)=H(Y)H(YX)

交叉熵

交叉熵本质上也是一种熵,且其和KL散度息息相关。为此,我们先引入KL散度的介绍。

KL散度

KL散度用来衡量两个概率分布之间的相似度(差异),也是一种损失函数。

对于离散型随机变量 X X X ,令 P ( X ) P(X) P(X) 作为它的真实概率分布, Q ( X ) Q(X) Q(X) 作为它拟合 P ( X ) P(X) P(X) 的近似概率分布。只有当 Q ( X ) Q(X) Q(X) P ( X ) P(X) P(X) 完全一样时,这两个概率分布的相似度才会达到最大,亦即差异最小。参照上面信息量、熵的公式,我们也可以用数学公式来描述这两个概率分布间的这种关系:

D K L ( P ∣ ∣ Q ) = ∑ i = 1 n p i ( l n p i q i ) D_{KL}(P||Q)=\sum_{i=1}^np_i(ln{p_i\over{q_i}}) DKL(P∣∣Q)=i=1npi(lnqipi)

其中 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 为两个概率分布的KL散度, P ( X = x i ) = p i ,   Q ( X = x i ) = q i ,    i = 1 , 2 , 3... , n P(X=x_i)=p_i, \ Q(X=x_i)=q_i, \ \ i=1,2,3...,n P(X=xi)=pi, Q(X=xi)=qi,  i=1,2,3...,n

对于KL散度,可以证明 D K L ( P ∣ ∣ Q ) > = 0 D_{KL}(P||Q)>=0 DKL(P∣∣Q)>=0

证明:

  1. D K L ( P ∣ ∣ Q ) = ∑ i = 1 n p i ( l n p i q i ) = ∑ i = 1 n p i ( l n p i − l n q i ) = − ∑ i = 1 n p i ( l n q i p i ) D_{KL}(P||Q)=\sum_{i=1}^np_i(ln{p_i\over{q_i}})=\sum_{i=1}^np_i(lnp_i-lnq_i)=-\sum_{i=1}^npi(ln{q_i\over{p_i}}) DKL(P∣∣Q)=i=1npi(lnqipi)=i=1npi(lnpilnqi)=i=1npi(lnpiqi),因为 q i 、 p i q_i、p_i qipi 都是概率,所以 q i p i > 0 {q_i\over{p_i}}>0 piqi>0

  2. 有不等式(证明过程可以自行度娘): l n ( x ) < = x − 1 ,  其中 x > 0 ln(x)<=x-1, \ 其中 x>0 ln(x)<=x1, 其中x>0

  3. ∑ i = 1 n q i = 1 ,    ∑ i = 1 n p i = 1 \sum_{i=1}^nq_i=1 ,\ \ \sum_{i=1}^np_i=1 i=1nqi=1,  i=1npi=1

由上面不等式可以推导出 l n q i p i < = q i p i − 1 ln{q_i\over{p_i}}<={q_i\over{p_i}}-1 lnpiqi<=piqi1

故得: D K L ( P ∣ ∣ Q ) = − ∑ i = 1 n p i ( l n q i p i ) < = − ∑ i = 1 n p i ( q i p i − 1 ) > = ∑ i = 1 n p i ( q i p i − 1 ) = ∑ i = 1 n q i − ∑ i = 1 n p i = 0 D_{KL}(P||Q)=-\sum_{i=1}^npi(ln{q_i\over{p_i}})<=-\sum_{i=1}^np_i({q_i\over{p_i}}-1)>=\sum_{i=1}^np_i({q_i\over{p_i}}-1)=\sum_{i=1}^nq_i-\sum_{i=1}^np_i=0 DKL(P∣∣Q)=i=1npi(lnpiqi)<=i=1npi(piqi1)>=i=1npi(piqi1)=i=1nqii=1npi=0

可以看出,当且仅当所有的 q i = p i q_i=p_i qi=pi 时(此时 l n p i q i = l n 1 = 0 ln{p_i\over{q_i}}=ln1=0 lnqipi=ln1=0 ),即 Q = P Q=P Q=P ,两个概率分布完全相同时KL散度取到最小。

这就是KL散度能表达两个概率分布之间相似度(差异)的本质。

交叉熵与KL散度的关系

当真实概率分布 P ( X ) P(X) P(X) 已知时,我们是可以求得其熵: H ( P ) = − ∑ i = 1 n p i l n p i H(P)=-\sum_{i=1}^np_ilnp_i H(P)=i=1npilnpi

从KL散度公式可得: D K L ( P ∣ ∣ Q ) = ∑ i = 1 n p i ( l n p i q i ) = ∑ i = 1 n p i ( l n p i − l n q i ) = − ( − ∑ i = 1 n p i l n p i ) + ( − ∑ i = 1 n p i l n q i ) D_{KL}(P||Q)=\sum_{i=1}^np_i(ln{p_i\over{q_i}})=\sum_{i=1}^np_i(lnp_i-lnq_i)=-(-\sum_{i=1}^np_ilnp_i)+(-\sum_{i=1}^np_ilnq_i) DKL(P∣∣Q)=i=1npi(lnqipi)=i=1npi(lnpilnqi)=(i=1npilnpi)+(i=1npilnqi)

我们令概率分布 Q ( X ) Q(X) Q(X) P ( X ) P(X) P(X) 的交叉熵为 H ( P , Q ) = − ∑ i = 1 n p i l n q i H(P,Q)=-\sum_{i=1}^np_ilnq_i H(P,Q)=i=1npilnqi

所以: H ( P , Q ) = H ( P ) + D K L ( P ∣ ∣ Q ) H(P,Q)=H(P)+D_{KL}(P||Q) H(P,Q)=H(P)+DKL(P∣∣Q)

即概率分布 Q ( X ) Q(X) Q(X) P ( X ) P(X) P(X) 的交叉熵等于概率分布 P ( X ) P(X) P(X) 的熵加上两个概率分布的KL散度,其中概率分布 P ( X ) P(X) P(X) 的熵是一个常数,也就是说交叉熵在某种意义上就是KL散度,所以交叉熵也常用来衡量两个概率分布之间的相似度(差异),是一种常用在分类算法里面的损失函数。

另外,交叉熵具有如下几个性质:

  • 交叉熵具有非负性
  • 当概率分布 Q ( X ) Q(X) Q(X) P ( X ) P(X) P(X) 相同时,交叉熵等同于概率分布 P ( X ) P(X) P(X) 的熵(因为此时KL散度=0)
  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值