信息熵(上)

翻译:http://colah.github.io/posts/2015-09-Visual-Information/
如有侵权,请联系我~
小白学习笔记,欢迎大神批评指正~

信息理论可以描述许多事情的不确定性:知道问题A的答案后,对问题B的答案可以推测出多少;一个置信的集合与另外一个集合的相似程度…
应用:压缩数据,量子物理,机器学习…

概率分布可视化

首先对于一个普通的概率分布进行可视化:

如果一个城市,艳阳高照的时候较多,下雨的时候较少,频率分布大致如下,即75%的时间都是晴天:

大多数的时候,我穿T恤,有时候会穿外套,比例如下:

如果我想要同时可视化两种情况:如果他们之间没有相互作用(即相互独立,如我今天穿什么与下周的天气没有关系),情况变的很简单,如下图所示。

从图中可以看出,我穿着一件外套,下星期下雨的概率就是我穿外套的概率,乘以它会下雨的概率,因为他们不相互作用。如果变量之间存在相互作用的关系,则对于特定的变量对会有额外的概率,对于一些其他的变量会缺失一些概率。我正穿着外套,并且这会外面在下雨这两个情况存在额外的概率,因为他们之间是相关的,他们有趋于一致的概率趋势。如果,我这会穿着外套,那么现在下雨的可能性比其他天下雨的可能性大很多。如下图所示:

对于那些存在额外概率的情况,对应的方形会变的膨大,反之,对于不可能在一起的情况,方框会紧缩。

为能够更好理解,考虑条件概率:如果天气晴朗,我穿T恤的可能性有多大,如果下雨,我穿外套的可能性有多大呢?

图示表示有25%的可能性会下雨,若下雨,我有75%的可能性会穿外套,下雨并且我在穿外套的可能性,根据计算,取值大小大致为19%:

p(rain,coat) = p(rain) * p(coat|rain)

如果随机选择一天,有38%的可能性穿外套。那么如果你知道我穿外套,今天下雨的可能性多大呢?

p(rain,coat) = p(coat) * p(rain|coat)

根据上面的公式,可以得出,我穿外套,今天下雨的可能性是50%。根据上面的公式,可以得到图如下:

上图中,所穿的衣服是边缘分布(不考虑天气因素穿各种衣服的概率)

恩~懂得一点贝叶斯公式的人应该比较熟悉~

辛普森悖论

辛普森悖论是一种不直观的统计情形,Michael Nielsen写的一篇文章:Reinventing Explanation,尝试用几种方式来解释辛普森悖论。

假设对于肾结石有两种治疗方法,分别将两种方法用在相同数量的病人身上,接受B疗法的病人治愈的可能性比A疗法的多一些,如图:

但是对于小肾结石,A疗法的效果要比B疗法好些,大肾结石的病人也如此,为什么?

问题的核心是该项研究没有被合适的随机化。接受A疗法的病人可能有大的肾结石,但是接受B疗法的很可能有小结石。

事实证明,有小结石的病人通常更可能治愈。将前面的两个图组合成下面的图,可以看到不管是小结石还是大结石,A疗法的效果都要好。

啊哈~好神奇~

我和我“城会玩”的假想朋友

我有一个假想的朋友Tom,他很喜欢动物,包括,狗,猫,鱼和鸟儿这四种。我们两个约定好,我们交流起来用二进制,就像这样:

我们俩建立如下的编码方式 :

我们发信息的时候,Tom就用相应的编码来对应单词,组成编码串:

编码的可变长度

但是,Tom是个话唠,所以,我想研究是否一些方法可以缩短信息的长度。

由于小话唠对于这些单词说到的频率并不是相同的,他特别喜欢狗,我们总会谈论狗,偶尔也会谈到其他的动物,就像他的狗总追赶的那只猫,以下是他各个单词提到的频率:

下图中,用垂直轴可视化每个单词的概率p(x),水平轴可视化相应单词的长度L(x):

这样我就和我的话唠小伙伴商量用下面可变长度的编码来对单词进行编码,经常用的就用短的编码,不经常用的单词就用长的字节数编码,最终的目的是用最短的编码长度,编码如下:

这样编码起来,平均的单词编码长度为1.75(之前方法是2,因为每个单词都是2)

但是,这只是一个基本的限制。没有办法得到更短的编码了,这种最优的编码长度就是熵:

若要理解该限制,主要需要理解让哪些编码短,让哪些编码长之间如何进行权衡。

编码空间

1位编码时候,有两种编码情况,2位编码时,有四种情况,每增加一位编码位,都会得到成倍的可能的编码情形。

在我们更改编码方式之后,新的对应关系如下:

因为现在采用了可变长度的编码,怎么变回到单词(解码)就有点意思了,编码应该遵从前缀属性,即一个编码方式不应该给是另一种物体编码的前缀,这样就区分不出到底是那种物体编码而来,带有这种属性的编码,叫做前缀编码。这样,就不能用01开始的编码,因为这样就区分不出来010或011010110这样的编码。这样就会去掉四分之一的编码空间。

最优编码

编码长度为0的代价为1,因为,若长度为0,则不能够有其他的编码了,长度为1的编码的代价是1/2,因为可能存在0,1两种情况,同理,长度为2,代价1/4.通常,编码的代价都是随着编码长度增加按照指数形式递减:

目的是缩短编码长度,每个编码通过它的概率乘以编码的长度,得到平均信息长度(及平均的长度贡献值)

这两个值与码字的长度有关,码字的长度控制平均信息长度增加的量,如下:

短的码字减少平均信息长度,但是代价高,长码字反之。有限预算下,怎么选取合适呢?

比较自然的解决这个问题的方法:把预算按照各个事件发生的概率成比例的分布。

很幸运的是,这也是最优的方法。后面证明,前方高能预警!!!

假设有两个事件可能发生,分别为a,b,概率分别为p(a),p(b),那么预算分布:预算中p(a)放在让a有短码字上面,预算中的p(b)放在让b有短码字上面

如果让码字a更短一些的代价为p(a),可以看到同时收益也是p(a),这样代价和收益相同,说明稍微有一定多少,都不会影响结果,即极小的变化几乎不会改变预算

为证明上面所说,考虑不同的预算,考虑如下图的预算,这样可以使a的码字稍微短些,b的稍微长些,这时候benefit/cost将会不再等于1,对于a比1少一些,对于b,比1多一些,此时b的方法比a更好

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值