信息论中的三大概念:熵、交叉熵和KL散度

释放双眼,带上耳机,听听看~!
本文介绍了信息论中的三大概念:熵、交叉熵和KL散度,从数学和编码角度解释,帮助读者更好地理解这些概念。

本文从两方面进行解释:数学和编码方面。总有一个角度能让你更好理解。

数学解释

熵 Entropy

熵用于计算一个离散随机变量的信息量。对于一个概率分布XXXX的熵就是它的不确定性。
用大白话来说,假设你预测一个东西,有时候结果会出乎意料,熵就表示出乎意料的程度。熵越大你越不容易预测对,事情就越容易出乎意料。

离散型概率分布XX的熵定义为自信息的平均值:

H(X)=Ep(x)[I(x)]=−∑xp(x)log⁡p(x)H(X)=E_{p(x)}[I(x)]=-sum_{x} p(x) log p(x)

注意:
熵的单位可以是比特(bits)也可以是奈特(nats)。二者区别在于前者是用log⁡2log_2计算,后者是用log⁡elog_e计算。我们这里是用log⁡2log_2计算。

举个栗子算一下熵。

两个城市明天的天气状况如下:

信息论中的三大概念:熵、交叉熵和KL散度
现在有两个事件:

  • A市明天的天气状况
  • B市明天的天气状况

H(A)=−0.8×log⁡0.8−0.15×log⁡0.15−0.05×log⁡0.05=0.884H(A)=-0.8 times log 0.8-0.15 times log 0.15-0.05 times log 0.05=0.884

H(B)=−0.4×log⁡0.4−0.3×log⁡0.3−0.3×log⁡0.3=1.571H(B)=-0.4 times log 0.4-0.3 times log 0.3-0.3 times log 0.3=1.571

可以看到B的熵比A大,因此B城市的天气具有更大的不确定性。

交叉熵 Cross-Entropy

交叉熵用于度量两个概率分布间的差异性信息。
再用大白话说一下,比如你认为一件事有六成概率能成功,实际上你去做的时候你又八成概率能成功。这时候结果出乎意料的程度就是交叉熵。

交叉熵的数学定义:

H(A,B)=−ΣiPA(xi)log⁡(PB(xi))H(A, B)=-Sigma_{i} P_{A}left(x_{i}right) log left(P_{B}left(x_{i}right)right)

举个栗子算一下交叉熵。

改了一下表头。
信息论中的三大概念:熵、交叉熵和KL散度
现在还是有两个事件:

  • PP实际A城市明天的天气状况
  • QQ你以为的A城市的天气状况

H(P,Q)=−0.8×log⁡0.4−0.15×log⁡0.3−0.05×log⁡0.3=1.405H(P,Q)=-0.8 times log0.4-0.15 times log0.3 – 0.05 times log 0.3 = 1.405

KL散度 Kullback-Leibler divergence

KL散度又称相对熵、信息增益,相对于交叉熵来说,是从另一个角度计算两个分布的差异程度。相对于分布X,分布Y有多大的不同?这个不同的程度就是KL散度。

注意,KL散度是不对称的,也就是说X关于Y的KL散度 不等于 Y关于X的KL散度。

AABB 为定义在同一概率空间的两个概率测度,定义 AA 相对于 BB 的相对熵为

D(A∥B)=∑xPA(x)log⁡PA(x)PB(x)D(A | B)=sum_{x} P_A(x) log frac{P_A(x)}{P_B(x)}

举个栗子算一下KL散度。

还是用这个例子:

信息论中的三大概念:熵、交叉熵和KL散度
现在还是有两个事件:

  • PP实际A城市明天的天气状况
  • QQ你以为的A城市的天气状况

D(P∥Q)=0.8×log⁡(0.8÷0.4)+0.15×log⁡(0.15÷0.3)+0.05×log⁡(0.0.5÷0.3)=0.521D(P |Q) = 0.8 times log(0.8 div0.4) + 0.15 times log(0.15 div 0.3) + 0.05 times log(0.0.5div 0.3) =0.521

熵、KL散度和交叉熵的关系

我们从上边三个例子中可以看到:

  • A城市明天实际天气状况的熵H(A)=0.884H(A)=0.884
  • A城市明天实际天气状况和你预测的天气状况的交叉熵为H(P,Q)=1.405H(P,Q)=1.405
  • A城市明天实际天气状况和你预测的天气状况的KL散度为D(P∥Q)=0.521D(P |Q) =0.521

然后我们可以发现:0.884+0.521=1.4050.884+0.521=1.405

这里可以引出一个结论

熵+KL散度=交叉熵熵 + KL散度 = 交叉熵

从编码的角度解释

注意:下边这个举的例子是能整除的情况下,不能整除的情况下是算不出来的。

能整除的例子

假设我们现在有一条消息皮皮卡皮,皮卡丘

让我们对这条消息统计一下:

数量 4 2 1 1
比例 48frac{4}{8} 28frac{2}{8} 18frac{1}{8} 18frac{1}{8}

画个哈夫曼树:

信息论中的三大概念:熵、交叉熵和KL散度

数量 4 2 1 1
比例 48frac{4}{8} 28frac{2}{8} 18frac{1}{8} 18frac{1}{8}
哈夫曼编码 0 11 100 101
编码长度 1 2 3 3

最短编码平均长度:

48×1+28×2+18×3+18×3=1.75frac{4}{8} times 1+frac{2}{8} times 2+frac{1}{8} times 3+frac{1}{8} times 3=1.75

上述编码的熵:

−48×log⁡48−28×log⁡28−18×log⁡18−18×log⁡18=1.75-frac{4}{8} times log frac{4}{8}-frac{2}{8} times log frac{2}{8}-frac{1}{8} times log frac{1}{8}-frac{1}{8} times log frac{1}{8}=1.75

从编码角度看,一串编码的熵等于它的最短编码平均长度。

数量 4 2 1 1
比例 48frac{4}{8} 28frac{2}{8} 18frac{1}{8} 18frac{1}{8}
哈夫曼编码 0 11 100 101
错误的哈夫曼编码 11 0 100 101

如果你编码时候写错了

现在的平均编码长度是:

48×2+28×1+18×3+18×3=2frac{4}{8} times 2+frac{2}{8} times 1+frac{1}{8} times 3+frac{1}{8} times 3=2

此时交叉熵为:

−48×log⁡28−28×log⁡48−18×log⁡18−18×log⁡18=2-frac{4}{8} times log frac{2}{8}-frac{2}{8} times log frac{4}{8}-frac{1}{8} times log frac{1}{8}-frac{1}{8} times log frac{1}{8}=2

使用错误的编码时候,编码平均长度就是交叉熵。

而KL散度呢?

48×log⁡(48÷28)+28×log⁡(28÷48)+18×log⁡(18÷18)+18×log⁡(18÷18)=0.25frac{4}{8} times log(frac{4}{8}divfrac{2}{8})+frac{2}{8} times log (frac{2}{8} div frac{4}{8})+frac{1}{8} times log (frac{1}{8} div frac{1}{8})+frac{1}{8} times log (frac{1}{8} div frac{1}{8})=0.25

KL散度就是错误编码平均长度和正确编码平均长度的差异。

不能整除的例子

注意:你看,不能整除的情况下是算不出来的。

假设我们现在有一条消息皮卡皮卡,皮卡皮,皮卡丘

让我们对这条消息统计一下:

数量 5 4 1 2
比例 512frac{5}{12} 412frac{4}{12} 112frac{1}{12} 212frac{2}{12}

画个哈夫曼树:

信息论中的三大概念:熵、交叉熵和KL散度

数量 5 4 2 1
比例 512frac{5}{12} 412frac{4}{12} 212frac{2}{12} 112frac{1}{12}
哈夫曼编码 0 11 101 100
编码长度 1 2 3 3

最短编码平均长度:

512×1+412×2+212×3+112×3=1.83frac{5}{12} times 1 +frac{4}{12} times 2+frac{2}{12} times 3+frac{1}{12} times 3 = 1.83

上述编码的熵:

−512×log⁡512−412×log⁡412−212×log⁡212−112×log⁡112=1.78-frac{5}{12} times logfrac{5}{12} -frac{4}{12} times logfrac{4}{12}-frac{2}{12} times logfrac{2}{12}-frac{1}{12} times logfrac{1}{12} = 1.78

后边不算了。可以看到不能整除情况下因为一些误差是不相等的。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

鹦鹉视频通话:认知能力的惊人展示

2023-12-6 16:02:14

AI教程

深度学习中的变分自编码器(VAE)基础知识回顾

2023-12-6 16:14:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索