分享

编码通信与魔术初步(三)——最大熵模型

 MatheMagician 2023-07-05 发布于广东
在前面的文章中,我们已经引入了通信和信息的概念,并介绍了信息度量的公式信息量和信息熵,相关内容请戳:

编码通信与魔术初步(二)——信息论基础
编码通信与魔术初步(一)——通信浅谈

今天我们围绕熵,来看信息论中最核心的一个模型——最大熵模型。


为什么最大熵模型可以估计概率分布?


上一讲提到,要计算一个事件的期望信息量熵,根据公式,需要知道这个随机事件的分布,那估计分布这个问题怎么解决呢?

但说白了,在上帝那里,压根就没有什么分布。在一些类似斗地主这样的非完美信息博弈游戏的解说中,经常听到“从上帝视角看,地主只要不要,下一手出XXX,就能XXX”的话,说的就是在局部的上帝视角效果,有些影视剧也是按这个视角来拍摄的。在上帝视角中,所有的事情都是确定的,机理也都是明确的。而分布是人类发明出来,用来描述在实在没法搞清楚全部机理,也对信息有所缺失或者有了也不知道解码的情况下对系统状态的描述的。它缓解了当机理模型无法准确建立时候,用数学模型描述实际问题的困难。对事物了解本身的有限,加上观察的局限度,真相,它确实是有真实解的,而我们只能估计它。比如,假设抽象到你只是接收到从二进制的管道里吐出来的一个个编码,对你而言毫无规律可循。但是,那个吐这些编码的人,是明确知道以什么方式每次吐哪一个的。而你却只能通过已经吐的这些来估计这个分布而已,并且假设这是一个稳定的分布,不随时间变化而变化。注意,时齐性是非常重要的性质,表明某性质不会随时间改变,iid样本中的identical的同分布的意思才成立,否则,这些估计都要推倒重来。

这时候,最大熵模型派上了用场,这也绝不是什么纯数学理论,而是在科学估计分布时候,最朴素的思想的推演结果。

我们假定,满足所有认同的给定约束条件下,使得整个模型的不确定度最大的那个分布是我们的真实分布:


这样可以得到指数分布族函数的概率密度函数结论,而市面上见得到的分布函数,基本上都可以看作是最大熵分布在某个支撑集下的特例。这里的给定约束,实际上就是以其分布作为变量的某个特定意义的泛函,比如期望,方差,二阶原点矩等等。我们可以认为根据经验去约定一个值,也可以从样本中统计出来给出这个估计的值。当然一般以第二种为主,第一种除非你信奉贝叶斯的那套理论,任何所谓的经验和先验知识都可以无缝纳入模型来考察计算。

这部分的详细推导,在MatheMagician开号时就曾经写过,当时的排版还很混乱但绝对的是干货,对相关内容感兴趣的同学可以回顾下:《最大熵准则背后的一连串秘密》。

一般地,我们认同了最大熵原理,很多问题就迎刃而解了。但我曾经在学这个问题的时候特意多想了一步,为什么最大熵模型是有效的?吴军老师的经典解释是,这是一个最朴素的方案,最不坏的估计。但是,我再一推导发现,其真实的物理意义应该是,是对所有可能分布来看,最差情况下,交叉熵最小的分布。即,这是一个不求有功,但求无过的估计,它在最差的情况下表现得最好。这一点大家仔细观察公式的物理意义,或者会看最大熵准则背后的一连串秘密》,都可以进一步了解。

这里提示一点,就是在上一篇中,我们说熵是期望编码长度最小的理想二进制编码的期望长度,对应- logp即为对应随机变量的分配编码长度。这里是给定的分布f(x),变量是对随机变量所有取值可行的编码方案。而今天的最大熵模型,是在分布未知的时候,在给定限定下,求出变量f(x)本身的最大熵分布,f(x)是变量,熵是给定的这个分布的最优期望编码长度,我们取的是用最优编码的条件下,编码效率最高的分布,也就是前文分析的,最不坏的分布。

这里每个概念里涉及的变量是谁,对谁求的最值,都值得好好回味记忆一番。


交叉熵,相对熵,互信息,条件熵


上述看上去又通用又复杂的最大熵模型,竟然令人惊喜地是有通用解的!其解也很简单,就是以其约束函数对应的指数分布族函数为函数形式函数下,代入所有样本后的最大似然值,而这个值,恰好也和交叉熵有着一模一样的增减规律。

这里引入一下交叉熵的概念,其引入恰好解决了我们往往是在用一个分布族加参数估计来近似一个分布的问题。假设有一个分布p,代表了某信息条件下,描述某事件的随机变量分布的真值,q是估计的分布,则:

CE(p||q) = sum(- pi * log(qi))

这个式子的物理意义是用估计的q分布对应的最优编码方式来编码该信息,平均所需的编码长度。显然,当q = p时,此式子取最小值H(p),即找到了p的值以及用了最佳的理想编码策略来编码他们了。这个值本身也是似然函数的相反数除以样本量后取对数的结果,这使得交叉熵这个概念十分关键,左边链接着概率统计中估计参数最重要的方法似然函数,右边则有着明确的信息论含义,把这两个看似千差万别的领域神奇的统一在了一起,这等数学之美是令我长时间着迷过的。

另外,另一个相关概念是相对熵,是交叉熵减去H(p):

H(p||q) = CE(p||q) - H(p)

因为p是常数,所以只是把这个q的函数向下平移了H(p)而已,但是这样其最小值就是0了,那么整个物理意义就变成这个离最优编码的距离的概念,也是不错的表达。

当然,CE也是一个不可以直接观测的量,但是往往我们会有p分布的样本,所以,我们可以求估计的CE,去在某个分布族内的q里,找最佳参数使得CE取最小值H。这便是我们常用的极大似然估计法了,只不过这个值是那个玩意除以样本数再取相反数,所以一个要大,一个要小。

特别地,当p是一个二元变量(x, y)的联合分布,而qx,qy是其两个边缘分布的时候,我们称此时的交叉熵为互信息:

MI(x, y) = H(pxy||qx * qy) = CE(pxy||qx * qy) - H(p) = sum(pxy * log(p/(qx * qy)))

当x, y互相独立时,MI(x, y) = 0,其边缘分布的乘积即为联合分布,否则,这个量表达的是其中一个变量中平均含有另一个的信息的多少:

MI(x, y) = H(x) + H(y) - H(x, y) = H(x) - H(x | y) = H(y) - H(y | x)

其中H(x | y)表示的是x变量在y条件下的条件熵,如果y是常数,那和普通熵也没什么两样,如果也是随机变量,可以看作Ey(H(x | y)),即条件是作为随机变量要在上面求分布的。可以看到,后两个式子恰好表达了这个物理意义:一个变量中平均含有另一个的信息的多少,而且这个式子是对称的,互相含有的信息量大小相等。

最后提一点,根据样本矩约束来的最大熵模型得出来的解,和用对应最大熵模型的解的形式计算的交叉熵最小或者极大似然的解是完全等价的。或者说,之前你们学的极大似然,物理意义就是交叉熵最小,就是最大熵模型用拉格朗日乘子法求解以后得到的解,略去了求解步骤罢了。而这一切,都是为了根据样本和其他信息,估计一个最差情况下,最好的解,来作为我们对实际随机情况的描述,进行下面的工作。至于中间的问题,已经交代清楚了,历史原因,大家已经跨过这个问题转向后面的研究了。

好了,以上这3篇内容,挂一漏万式地就把通信和编码,以及其中涉及到的最基本的信息和信息论知识给梳理了一遍。本系列数学的核心内容也差不多到这里结束了。从下期开始,我们将逐渐从魔术的视角出发,来研究基于编码和通信的魔术,究竟有着怎样的秘密,敬请期待!

老规矩,后面魔术抢先看!

视频1 我的心灵感应

我们是谁:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多