您的位置:首页 > 运维架构

MaxEnt: 最大熵模型(Maximum Entropy Models)(一)

2014-09-14 15:18 288 查看
之前看最大熵的讲解,都搞不懂那个称硬币的例子。。

这个转载自丕子的blog,我增加了一些自己的理解,希望对其他有疑问的人有些帮助,发现有问题一定要留言给我。

转载自:http://www.zhizhihu.com/html/y2011/3489.html

刚看完HMM,因为有个ME-HMM方法,所以再看看最大熵模型,最后再把CRF模型看看,这一系列理论大体消化一下,补充一下自己的大脑,方便面试什么的能够应付一些问题。

多读书,多思考,肚子里才有东西。

==========



什么是熵?咱们这里只看信息以及自然界的熵吧。《Big Bang Theory》中Sheldon也经常把这个熵挂在嘴边。在咱们的生活中,你打碎了一块玻璃,或者洒落了一盒火柴,很自然的事情就是玻璃碎的一塌糊涂,根本没有规律可言。火柴也是,很乱,你难道从中找到规律么?规律是什么东西?规律的反面是什么?其实很有意思的事情就是自然界的东西尽可能的互补以及平衡,火柴很乱,那就规律性很小。

乱+序=1.

既然=1,那么这个乱也能描述啦?这就是熵的概念,熵是描述事物无序性的参数,熵越大则无序性越强。

我们更关注的是信息熵,怎么用熵来描述信息,不确定性等等。怎么用数学式子进行形式化描述呢?前人已经做了很多工作了:

设随机变量ξ,他有A1、A2....An共n个不同的结果,每个结果出现的概率为p1,p2....pn,那么ξ的不确定度,即信息熵为:

H(ξ)=∑i=1npilog1pi=−∑i=1npilogpi

熵越大,越不确定。熵为0,事件是确定的。例如抛硬币,每次事件发生的概率都是1/2的话,那么熵=1:H(X)=-(0.5log0.5+0.5log0.5)=1。

那么这个式子是怎么来的呢?为什么会用log表示?我也不知道啊,查查文献。不过【参考5】中举了几个简单的例子来说明一下过程,这里引用下。

==========

例子:称硬币的问题,说有5个硬币,其中有一个是假的,这个假硬币的重量很轻,所以打算用一个天平称称,问需要最少称几次就能够保证把这个假硬币给找出来?这个问题其实是一个很经典的问题,也有另外一个类似的问题是毒水和白鼠的问题,5瓶水其中一瓶有毒,用最少几只白鼠能够保证把毒水找出来?

其实这个问题有个统一的解法就是对半分呗,二叉树,二进制等。

拿硬币的例子,可以取四个放在天平两端,如果相等那么剩下的那个就是假的。如果不相等,把轻的一端的两个硬币再称一次就知道假的了。因为这样称两次就能够保证把假硬币找出来了。这里称的事件是有三个结果的:左边重、相等、右边重。

拿小白鼠的例子,小白鼠只有活着和中毒两种状态,咱们这里人性一点儿,有解药可以解毒的,只要实验达到目的就行。那么把水分成两组,一组两瓶,一组三瓶,让一只小白鼠和一组,如果中毒,假设是三瓶的那一组,那么再递归的讲这三瓶分组,最坏情况下是用3只小白鼠。这里小白鼠的事件只有两个结果:中毒、健康。

我们假设x是那瓶毒水的序号,x∈X={1,2,3,4,5},y是第i只小白鼠的症状,y∈Y={1,2},,1表示健康,2表示中毒。

用二进制的思想的话就是设计编码y1y2...yn使他能够把x全部表示出来。因为一个y只有两个状态,所以要有三个y并列起来才能表示2×2×2=2^3=|Y|^3=8>5。所以是用三只小白鼠。上面称硬币的问题由于一个y可以表示三个状态,所以需要两个3∗3=9>5就可以表示完所有的x了。

思想是这样的,从上面的分析可以看出,我们只用到的是x,y的状态,而没有用x,y的内容以及意义。也就是说只用了X的“总不确定度”以及Y的“描述能力”。

拿小白鼠和毒水的例子,X的"总不确定度":H(X)=log|X|=log5。Y的“描述能力”为:H(Y)=log|Y|=log2。

所以至少要用多少个Y才能够完全准确的把X表示出来呢?

H(X)/H(Y)=log5/log2=2.31

所以得用三只小白鼠。

称硬币那个问题由于Y的表示能力强啊,log3的表示能力,所以表示X的时候期望上仅仅需要1.46的y就行了,所以取整就是最少称2次。【这样子思考貌似有问题。。。】

那么为什么用log来表示“不确定度”和“描述能力”呢?前面已经讲过了,假设一个Y的表达能力是H(Y)。显然,H(Y)与Y的具体内容无关,只与|Y|有关。所以像是log|Y|n这种形式,把n就可以拿出来了,因为关系不大所以扔掉n就剩下log|Y|了。

“不确定度”和“描述能力”都表达了一个变量所能变化的程度。在这个变量是用来表示别的变量的时候,这个程度是表达能力。在这个变量是被表示变量的时候,这个程度是不确定度。而这个可变化程度,就是一个变量的熵(Entropy)。显然:熵与变量本身含义无关,仅与变量的可能取值范围有关。

“描述能力”这里举一个简单的例子,就是一句话的描述能力。假设一个字符长度为n的句子,用中文和英文两种表达(假设中英文都只用一个字符,忽略标点符号),问哪种表达能力更强?

英文一个字符有26种可能选择,故这个句子有26^n个英文的呈现方式。中文呢?GB2312共收录6763个汉字,也就是说长度为n的中文句子可以有6763^n个可能表达方式。。虽说有很多罕见字,但也体现了汉语的博大精深~

反过来怎样理解“不确定度”呢?假设你和朋友用qq聊天,你的朋友发了一句话过来,结果两个字符丢失了,变成了xx,你就需要猜这两个字符是什么含义。同上,用英语的话就是26^2种可能,中文就是6763^n种可能,中文的不确定度要比英语的高上许多。

==========

下面看称硬币以及小白鼠毒水问题的一个变种:

(1)还是5个硬币里有一个假币。已知第一个硬币是假硬币的概率是三分之一;第二个硬币是假硬币的概率也是三分之一,其他硬币是假硬币的概率都是九分之一。(2)毒水也是,第一瓶是毒水的概率是1/3。。。以此类推。

最后求称次数或者小白鼠数量n的期望。因为第一个、第二个硬币是假硬币的概率是三分之一,比其他硬币的概率大,我们首先“怀疑”这两个。第一次可以把这两个做比较,天平的情况y∈Y={1,2,3}分别代表左倾、持平以及右倾,成功的概率,也就是其中一个是假币的概率是三分之二。失败的概率是三分之一,如果失败了,第二次称剩下的三个。所以,期望值是:



小白鼠的也可以同理求出来。为什么分子会有log3、log9呢?其实分子的log3、log9表示的都是“不确定度”。事件发生的确定性为1/3,即第一个硬币是假的概率,等同于天平放第一个硬币那一侧翘起来的概率1/3,那么不确定度可以理解为log3=log1/1/3(其实这里为什么是1/3我还是不太理解),再除以y的“表达能力”(一次称量有3种表达),就是每一次猜测的输出结果了,再根据期望公式∑ixipi就可以求一下期望。不知道理解的对不对?

其实按照上面文字(先称头两个,再称后3个)的解释,写成这样可能更容易理解:



左边第一个部分是一次称量找到伪币(头两个硬币里面出现)的期望,第二个部分是需要两次称量(第二次称量类比上面5个里面有一个假币的例子理解)的期望。

==========

更广泛的,如果一个随机变量x的可能取值为X={x1,x2,...,xk},要用n位y:y1y2...yn表示出X来,那么n的期望是:



其实分子式不确定度,分母就是表达能力。那么X的信息量为:



这就是熵的定义了是吧?我们就算凑出来了。X的具体内容跟信息量无关,我们只关心概率分布,于是H(X)可以写成:



==========

有时候我们知道x,y变量不是相互独立的,y的作用会影响x的发生,举个例子就是监督学习了,有了标记y之后肯定会对x的分布有影响,生成x的概率就会发生变化,x的信息量也会变化。那么此时X的不确定度怎么表示呢?



这个其实就是条件熵Conditional Entropy。很显然,Y加入进来进行了标记之后,就引入了知识了,所以会减小X的不确定性,也就是减小了熵。所以知识能够减小熵。

类比到上面称硬币的例子,原来我们没有给硬币的概率增加限制的时候,期望log5/log2=1.46次才能够完成测量,第二个题目中仅仅需要4/3=1.25次即可,知识改变了熵,减少了不确定性。这里条件熵中的Y应该理解为增加的约束(监督学习中的特征规则),而不是前面题目中的关于描述表达的Y。

那么有了部分标记,我们就有了知识,就可以预测一部分模型,这个模型对未知的知识还是保留着熵,只是这个熵被减少了。但是我们知道熵越大,数据分布越均匀,越趋向于自然。

所以我们就想,能够弄出个模型,在符合已知知识的前提下,对未知事物不做任何假设,没有任何偏见。也就是让未知数据尽可能的自然。这就是最大熵模型(Maximum Entropy Models)了。

==========

【【未完待续:MaxEnt: 最大熵模型(Maximum Entropy Models)(二)】】

==========

参考:

1、A maximum entropy approach to natural language processing (Adam Berger)

2、A Brief MaxEnt Tutorial (Adam Berger)

3、Learning to parse natural language with maximum entropy models (Adwait Ratnaparkhi)

4、中科院刘群教授《计算语言学-词法分析(四)》

5、《最大熵模型与自然语言处理》:laputa,NLP Group, AI Lab, Tsinghua Univ.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: