“熵”并不是指热力学上熵的概念,而是由信息论男神克劳德·艾尔伍德·香农(Claude Elwood Shannon
)在1948年提出的“信息熵”,用来描述信息的不确定程度。 这个听起来很神奇的概念,其实蕴含着最朴素最简洁的思想,看下去你就能体会这一点了。 我先来问你个问题,如果给你一颗骰子,你觉得分别掷到1,2,...,6的概率是多少? 你肯定会立刻就回到我,答案是1/6。很好,如果你知道答案是1/6,就说明其实你已经掌握了最大熵原理。 对于这个骰子问题,我们并不知道它到底是均匀的还是不均匀的,我们唯一知道的条件是1-6出现的总概率总是等于1的。 我们把这个已知的条件称为“约束条件”。除了约束条件,我们对这个骰子一无所知,所以最符合现实的假设就是这个骰子是个均匀的骰子,每一点出现的概率是一个等概率事件。
这时有个围观抽奖多时的吃瓜群众根据他的观察事实决定给你点提示,他说,奖品在A和B盒子里的概率总共是3/10。
那么这个时候我再问你,奖品分别在各个盒子里的概率是多少呢? 根据最大熵原理,我们加入新的约束条件,然后继续把剩下的做等概率处理。
因为P(A)+P(B)=3/10,所以P(C)+P(D)+P(E)=7/10,但是我们依然不知道这三者的贡献,所以还是假设它们等概率,因此每一项就是7/30。 这就是通过最大熵原理处理概率问题了。 怎么样?是不是很简单?现在你估计要问这种简单的道理为什么还要搞出什么最大熵原理? 为只有引入“信息熵”的概率,我们才可以把上述这些个看起来很简单的例子“量化”,然后用它来解决更加复杂的问题。 现在我们来看看信息熵到底是怎么定义的,(其实就是上面那张香农的图)。一个系统的信息熵其实就是系统中每一个事件的概率乘以log概率,然后把所有事件相加后取负数。 因为概率总是在0-1之间,所以log后会小于0,取了负号以后熵就是正数了。 log如果以2为底数的话,信息熵的单位就是比特(bit),以e为底数的话,信息熵的单位就是奈特(nat),以10为底数的话,单位就是哈脱特(hat)。
那么它总共的信息熵就是log2,如果以2为底计算话就是1bit的信息熵。
既然我们已经明确给出了信息熵的定义那么根据这个公式计算的话能不能得到0.5这个概率使系统的熵最大呢? 换言之,等概率让系统的熵最大到底是不是真的? 为了验证这一点,我们假设抛硬币出现正面的概率是p,那么出现背面的概率就是1-p(注意,1-p其实就是包含了约束条件,因为两者的总和总是1)。 求最大也就是求这个函数的极值,学过高数的小伙伴们都知道对于这个问题,求导等于0。也就是说H(P)'=0的解,函数在这点的值不是最大就是最小。 我们解方程H(P)'=0,得到当p=0.5的时候,函数H(P)达到极值(此时是极大值,你可以代入其它p值,会发现结果比p=0.5的时候小。)。 所以也就是说p=0.5的时候(等概率),系统的熵最大。
所以对于一个符合最大熵原理的掷骰子模型,每一点出现的概率就是1/6,对于一个从5个盒子中抽奖的事件,奖品在每个盒子中的概率就是1/5。 至此,我们可以发现信息熵的定义的确能够描述并且量化那些生活中看起来很简单但是却总觉得有点说不清楚的问题。 由于下面要继续用到Lagrange乘子法,所以我们给大家简单解释下这个到底是什么东西。 对于一般的求极值问题我们都知道,求导等于0就可以了。但是如果我们不但要求极值,还要求一个满足一定约束条件的极值,那么此时就可以构造Lagrange函数,其实就是把约束项添加到原函数上,然后对构造的新函数求导。 看张图就很容易理解了。 对于一个要求极值的函数f(x,y),图上的蓝圈就是这个函数的等高图,就是说f(x,y)=C1,C2,...Cn分别代表不同的数值(每个值代表一圈,等高图),我要找到一组(x,y),使它的Ci值越大越好,但是这点必须满足约束条件g(x,y)(在黄线上)。 也就是说f(x,y)和g(x,y)相切,或者说它们的梯度▽f和▽g平行,因此它们的梯度(偏导)成倍数关系(假设为λ倍)。 因此把约束条件加到原函数后再对它求导,其实就等于满足了下图上的式子。
并且包含两个约束条件:1. 总概率和=1; 2. p1+p2=3/10。
对概率pi求偏导等于0(首先固定λ0,λ1,假设它们是已知参数):
好了,至此我觉得你应该已经了解了什么是最大熵原理,并且如何根据最大熵原理处理系统中的概率问题。 再次强调一下最大熵原理的本质:系统中事件发生的概率满足一切已知约束条件,不对任何未知信息做假设,也就是对于未知的,当作等概率处理。 当使用数学方法计算时,寻找满足系统的熵最大时的事件概率。 我们之前提过信息熵表示不确定程度,所以熵最大,也就是系统的不确定程度最大,系统中没有任何个人的主观假设。 以硬币为例,你当然也可以硬币正面出现的概率是0.6,背面是0.4,但是这种假设中就包含了你的个人假设,并不是完全客观的,当然你可以通过后续实验验证你的观点,但是在一开始,在你没有得到任何信息的前提下,假设正面和背面出现的概率各是0.5才是最客观的。 这里我们只是通过简单的例子让大家理解最大熵原理,在语音处理等领域,很多时候是无法直接通过代入约束条件得到满足极值的解的,也就是说往往当你得到了pi(λ)后(用λ表示的pi)后,便无法继续通过对λ求偏导得到最终pi。 所以则需要通过迭代算法等数值解法继续求解pi,这里我们就不展开了,有兴趣的小伙伴们可以查阅诸如改进的迭代尺度法和牛顿法等(参考资料)。 参考资料: 《最大熵学习笔记》http://blog.csdn.net/itplus/article/details/26549871 |
|
来自: 昵称40046059 > 《公式》