甲在A处,乙在B处,现在从一个图库中,随机地选择其中一个图形给甲看然后放回,这样重复多次形成一个图形序列,甲要将自己看到的图形序列信息编码成二进制传递给乙,乙需要根据这个二进制编码还原甲看到的图形序列信息。甲乙可以约定编码,我们的目标是求什么样的编码既能够准确传递信息,又能使得总平均编码长度最短。
情形一:单随机变量
1.1 最简单的情况
均匀分布.png在这种情形下,一个显然的编码方案是,从左到右依次为:00,01,10,11。平均一个图案的编码长度为2。
1.2 如果各种形状不均衡呢?
不均匀分布.png这种情况下,我们可以相应地设计不均衡的编码方案,我们希望出现的频率越高的图案,对应的编码越短:
从左到右依次为:0,10,11。这种编码方案的平均编码长度为1.5。这个编码是可以被乙识别的:从头开始读二进制数,读到0,就直接理解为正方形,读到1,则需要下一位数来决定是什么形状。
1.3 更复杂的情况
假如信息是这样的:A出现概率,B出现概率,C,D出现概率,此时我们的编码为:A=0, B=10, C=110, D=111, 平均长度为1.25。
相信大家已经有能力为这种频率刚好是的n次方的特殊情况进行编码了。
如果将这个结论拓展到一般情形,那么,为了使得信息可读并且最短,出现频率为的信息的编码长度应该是,这个结论也非常符合我们的直觉:频率越高的信息编码长度应该越短。
这个一般结论的证明非常复杂,这里我就不写了(主要还是因为我不会)。我们记住结论即可。在这个编码方案下,一段信息的平均编码长度是:
这个就是信息熵的公式。熵就是最短编码长度,是复杂的程度。
如果用表示随机变量,那么熵可以用来表示。
情形二:双变量
2.1 一个最让人舒服的情形
形状与颜色独立.png令表示图形的形状,表示图形的颜色。
情形一:如果只要求乙答出甲看到的图形的形状,那么我们只需要对形状进行编码,总共四种形状,每种都是,因此。
情形二:如果只要求乙答出甲看到的图形的颜色,同理可得。
情形三:如果要求乙答出甲看到的图形的颜色和形状,那么我们需要考虑联合分布,我们有。
这个结果似乎很好理解,即,我们用两位编码来表示颜色,两位编码来表示形状,那么总共需要四位编码。我们猜测。然而:
2.2 真的这么简单么?
形状与颜色恰好匹配.png显然,如果只考虑形状,。
如果只考虑颜色,。
而如果两个都考虑,。
这是为什么呢?
由于这个图库的特殊性,只要我们知道颜色,我们就可以推断出形状,只要我们知道形状,我们就能推断出颜色,因此,我们没必要把颜色和形状全部编码进去。
从这个分析看出,公式是有条件的,如果我们知道了形状,推测不出颜色的任何关于分布的信息,并且当我们知道形状,也推测不出关于颜色的任何信息,此时,公式应该是成立的。也就是说,形状和颜色需要是独立的。
下面我们用公式来验证一下这个想法,当颜色与形状独立时:
当X与Y独立的时候,H(X, Y)=H(X) + H(Y)
2.3 那么,如果不独立呢?
我们前面分析了,形状与颜色独立的情形,以及形状和颜色恰好一一对应的情形,我们再来分析一下,形状决定颜色的情形:
形状决定颜色.png
此时。
以及颜色决定形状的情形:
此时。
从这两个例子可以看出,如果一个变量A完全决定另外一个变量B,那么,,这个结论也可以很容易地证明。(对任意, 有且仅有一个使得,其他的都等于0)。
但如果既不独立,又谁也决定不了谁呢?
2.4 根据推断
更一般的情形.png通过之前的分析,我们知道,如果能够完全确定的信息,那么我们只需要传递的信息就可以了()。如果对的信息一无所知,我们传递完信息后,要完整地传递的信息()。但是大多数情况,已知就可以部分地推断出的信息,也就是说:。
我们的问题是,如果我们已经知道了的信息,那么我们还需要多少编码,才能确定的信息?
如上面的图库,我们对形状的编码为:正方形=0,三角形=10,菱形=11,此时。
在已知形状以后,对当前形状下的颜色进行编码,需要知道当前形状下各个颜色的概率,然后用信息熵的公式就可以得出在这个颜色下后面还需要加多少长度的编码才能把颜色区分开。即,如果我们关心的是整体编码长度,我们可以定义。于是,我们有:
- 因为正方形的前提下有两个颜色进行区分。此时编码:正方形-蓝=00,正方形-桔=01。
- 因为三角形的前提下有两个颜色进行区分。此时编码:三角形-黑=100,三角形-桔=101。
-
因为菱形的前提下有三个颜色区分,此时编码:菱形-绿=1100,菱形-黄=1101,菱形-桔=111。
既然每个形状下需要增加的编码位数已经确定,那么他们综合的需要增加的编码位数也就可以确定了,即
。
当我们先知道的编码需要位,然后再在已知的基础上计算如果想要区分额外平局需要编码长度为, 此时:
H(X,Y)=H(X)+H(Y|X)
这个公式通过信息熵的定义和条件概率公式可以证明。
理解起来也很容易,代表对的信息编码,代表的是,在已知的基础上,再增加多少位的编码就可以推测出了。
如果无法推测出的任何信息,那么,但是现在的情况是,也就是说,中蕴含了一部分的信息,记为,但是不足以完全推测出, 还需要额外的才能推测出,也就是说,我们认为,即:
H(X,Y)=H(X)+H(Y)-U
2.5 根据来推测
还是刚才的图,为了避免大家屏幕滚来滚去,我们复制一下这个图在这里:
这次我们先对编码,容易算出来,并且,我们可以计算出里面蕴含的的编码长度为,我们可以看出,已知时里可以推断出的的信息长度,与已知时,可以推断出的的长度一致,这是这两个变量公共的一部分信息,叫做互信息,用表示。
2.6 一张图显示关系
几个关系.png这个图可以很好的理解这些值的关系,要证明这张图中的内容,核心是下面的公式:
p(x,y)=p(x)p(y|x)=p(y)p(x|y)
取对数的时候,乘法会变成加法,也就有了上面的图。熵的计算除了取对数外,前面又有个求平均数的算子,这个东西大家都有,因此不用管他。
在这个前提下,利用加法变乘法,根据公式,我们可以迅速推出互信息的公式:,即:
显然,与独立时,。
当时,与毫不相干,彼此独立。
当时,一旦知道的信息,不需要任何额外编码就可以知道,这就意味着,可以完全决定。同理,当时, 可以完全决定。这两种情况表明了推理中的因果关系。
当时,与在信息上是完全等价的。
2.7 信息增益
描述一个事物需要编码越长,说明这个事物越复杂,越不纯粹,确定性越差,当这个事物的编码长度变为0时,事件就变成了确定性事件(1的对数是0)。
从图中我们可以看出这样一个不等式:
在已知的基础上,的编码通常会变短,(除非与独立,这种情况虽然不会使得编码变短,但至少不会边长。)如果了解了足够多的与不独立的信息,总是会一步一步地确定下来。
如果我们要度量这种确定性呢?就是要度量,这个值量化了“当我们知道Y的时候,我们附带可以减少多少比特的关于X的混乱度、复杂度,使得X比原来更清晰,更纯粹了多少?”。这个变化量在决策树算法中被称为信息增益。
I(X,Y)=H(X)-H(X|Y)
2.8 独立程度的度量
我们知道,当时,与是独立的。因此,可以作为与互相不独立的程度的度量。但这个度量只有下限,没有上限。
我们可以用来度量不独立性,这个值有上限,最大为1,当这个值为1时,表明可以完全决定,也就是说,的值可以完全依赖于,因此这个值度量了对的依赖程度。在决策树中,这个依赖程度被称为信息增益率。对称地,我们可以用来度量对的依赖程度。
但是,如果想要度量于的相互依赖程度,我们可以用这两个值的调和平均数。一般被称为NMI。
这个值是介于0到1之间的。并且只有当与等价的时候取1。
另外一个指标是IQR:
从图中的面积关系可以理解这个指标的含义,显然它也是介于0到1的。这个值比小一点,因为它可以由上下都去掉一个得到。
情形三:哎呀,看错图库了
3.1 交叉熵
故事是这样的,一开始出题的时候,我们跟甲、乙约定的是在在下面这个图库中随机取图片:
分布Q.png
甲乙愉快地约定好了规则:正方形-蓝=000,正方形-黄=001,三角形-蓝=01,三角形-黄=1。
但是万万没想到哇,甲乙看错题了,他们的图库不是上图,而是下图:
分布P.png
但是这时候编码已经被确定下来了,只能按照约定进行编码,此时的平均编码长度为,这个结果也是一个熵,但是,它的编码是由Q图库产生的,而实际上传递信息的时候,用的P图库。对的编码会用的分布概率来计算,为,但是这个编码实际出现的概率为,因此交叉熵为:
3.2 KL散度
甲乙真的是悔不当初的,如果当时没有看错题库,他们的结果本来应该是2,但是现在结果2.5,这多出来的0.5就是因为看错题库造成的,这多出来的0.5就是这两个题库(的分布)之间的KL散度。
KL散度的含义就是,两个分布之间有差异,会造成实际分布为但是按照分布为时的编码进行传输信息时,比实际分布为并且按照分布为编码进行传输时,新增加的那部分平均编码长度。这两个分布越接近,KL散度越小,反之,越大。
交叉熵和KL散度都可以用来度量两个分布的接近程度。最小交叉熵与最小KL散度是同一个优化目标,都是期望得到最接近实际统计出来的分布。
3.3 KL散度与互信息的关系
观察KL散度的公式和互信息的计算公式,我们可以看出,互信息公式中对应KL散度的位置,就是实际的的频率分布。而对应的的位置,是假定与独立时的频率分布,也就是说:
互信息本质上是一个KL散度,它度量的是实际的联合分布与假定与独立的条件下的联合分布之间的编码长度的差别。
这个事实也可以从公式中看出。
网友评论