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

来源:互联网 发布:石大在线网络教育 编辑:程序博客网 时间:2024/05/01 15:06

推导什么的都写得好清楚,一口气就读懂了,这行文才是水平

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

上面《MaxEnt: 最大熵模型(Maximum Entropy Models)(一)》其实就是讲了下熵,下面我们继续最大熵模型(Maximum Entropy Models)。

最大熵原理指出,当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。在这种情况下,概率分布最均匀,预测的风险最小。因为这时概率分布的信息熵最大,所以人们称这种模型叫“最大熵模型”。我们常说,不要把所有的鸡蛋放在一个篮子里,其实就是最大熵原理的一个朴素的说法,因为当我们遇到不确定性时,就要保留各种可能性。说白了,就是要保留全部的不确定性,将风险降到最小。----摘自《Google黑板报》作者:吴军

http://homepage.univie.ac.at/nigel.mitchell/OWLS/FLASH_topdown_A15M12g53zkicks.png

========

继续用【参考5】的例子。

“学习”这个词可能是动词,也可能是名词。可以可以被标为主语、谓语、宾语、定语……
x1表示“学习”被标为名词, x2表示“学习”被标为动词。令y1表示“学习”被标为主语, y2表示被标为谓语,y3表示宾语, y4表示定语。得到下面的表示:

p(x1)+p(x2)=1i=14p(yi)=1

如果没有其他的知识,根据信息熵的理论,概率趋向于均匀。所以有:

p(x1)=p(x2)=0.5p(y1)=p(y2)=p(y3)=p(y4)=0.25

但是在实际情况中,“学习”被标为定语的可能性很小,只有0.05。我们引入这个新的知识:p(y4)=0.05,在满足了这个约束的情况下,其他的事件我们尽可能的让他们符合自然,符合均匀分布:

p(x1)=p(x2)=0.5p(y1)=p(y2)=p(y3)=0.953

嗯,如果再加入一个知识,当“学习”被标作动词的时候,它被标作谓语的概率为0.95,这个其实是很自然的事情。都已经是动词了,那么是谓语的可能性就很大了:

p(y2|x2)=0.95

已经有了两个知识了,第二个还是条件概率的知识,那么其他的我们尽可能的让他们不受约束,不受影响,分布的均匀一些,现在应该怎么让他们符合尽可能的均匀分布呢?

其实就是使熵尽可能的大就行了。也就是有个分布p,他尽可能的把训练集中的知识表示出来,损失最小,并且还能够保证p的熵最大:

p=argmaxpH(p)

那约束是什么呢?

用概率分布的极大似然对训练语料表示如下,其中是Count(x,y)在语料中出现的次数,N为总次数:

p¯(x,y)=1N×Count(x,y)

在实际问题中,由于条件x和结果y取值比较多样化,为模型表示方便起见,通常我们将条件x和结果y表示为一些二制特征。对于一个特征(x0,y0),定义特征函数:

f(x,y)={1:y=y0&x=x00:others

特征函数在样本中的期望值为:

p¯(f)=(xi,yi)p¯(xi,yi)f(xi,yi)

其中p¯(x,y)在前面已经数了,数数次数就行。

有了训练集,我们就能够训练一个模型出来,特征f在这个模型中的期望值为:

p(f)=(xi,yi)p(xi,yi)f(xi,yi)=(xi,yi)p(yi|xi)p(xi)f(xi,yi)=(xi,yi)p(yi|xi)p¯(xi)f(xi,yi)

其中p¯(xi)为x出现的概率,数数归一化就行。

好了,约束来了,有了样本的分布,有了模型,那么对每一个特征(x,y),模型所建立的条件概率分布要与训练样本表现出来的分布相同:

p(f)=p¯(f)

==========

目标函数有了,约束有了,归纳一下最大熵模型(Maximum Entropy Models)。

p=argmaxpPH(Y|X)

P={p|p是y|x的概率分布并且满足下面的条件},对训练样本,对任意给定的特征fi

p(fi)=p¯(fi)

展开:

p=argmaxpP(x,y)p(y|x)p¯(x)log1p(y|x)

约束P为:


========

都齐了,该求解了吧?哈哈,有没有看过wiki上的关于拉格朗日乘子Lagrange Multiplier的问题,恰好这里面有个例子就是求最大熵的,哈哈。所以我们可以用拉格朗日乘子法来求解。

对于有k个约束的优化问题:

maxH(p)s.t.:Ci(p)=bi,i=1,2,...,k

可以引入k个拉格朗日算子

Λ=[λ1,λ2,...,λk]T

,那么拉格朗日函数为:

L(p,λ)=H(p)+i=1kλi[Ci(p)bi]

OK,咱们开始一步一步的带入求解Lp=0

由于约束中有两部分组成,对于第二部分,我们引入拉格朗日算子为γ:



下面就是就偏微分=0计算最优解了:

Lp(y|x)=p¯(x)(log1p(y|x)1)+i=1kλip¯(x)fi(x,y)+γ=0

求得最优解的参数形式:

p(y|x)=eiλifi(x,y)+γp¯(x)1

但是里面还有参数,所以我们必须求得γΛ

巧妙的是我们发现最后节的后面部分有个类似的常数项:

eiλifi(x,y)+γp¯(x)1=eiλifi(x,y)eγp¯(x)1

而且有意思的是,前面问题的第二个约束中有:

x:yp(y|x)=1

从而:

yp(y|x)=y(eiλifi(x,y)eγp¯(x)1)=1eγp¯(x)1yeiλifi(x,y)=1eγp¯(x)1=1yeiλifi(x,y)=Z(x)

也就是式子中的关于γ的常数项我们用关于Λ的常数项进行代替了,这样参数就剩下一个了:

p(y|x)=Z(x)eiλifi(x,y)Z(x)=1yeiλifi(x,y)

那么剩下的一个参数Λ应该怎么进行求解呢?

解法以及最大熵模型与最大似然估计的关系在参考5中很详细,还有GIS以及IIS的方法进行求解,以后再写《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.

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 食品经营许可证过期了怎么办 40年的产权满后怎么办 五证合一后税务怎么办 互联业务登录页怎么办 vivo音量键坏了怎么办 琴岛通学生卡怎么办 云卡会员删除了怎么办 办健康证没空腹怎么办 办健康证吃饭了怎么办 发票盖了财务章怎么办 发票盖成公章了怎么办 发票上盖了公章怎么办 进京证怎么办在哪里办 去北京没进京证怎么办 单位的车怎么办进京证 房贷合同丢了怎么办 农合医疗卡丢失怎么办 手指断了怎么办能好吗? 被劳务派遣公司骗了怎么办 餐饮服务许可证过期了怎么办 中行u盾证书过期怎么办 84消毒液吸多了怎么办 八四消毒液烧手怎么办 怀孕了下身痒怎么办啊 4s店态度差怎么办 小区的卡丢了怎么办 开老板的车撞了怎么办 车后保险杠撞裂怎么办 车到期了忘了审怎么办 改过气的车费油怎么办 车内容易进灰尘怎么办 东风天龙油耗高怎么办 国六出来了国五怎么办 手动挡有7个档位怎么办 东风天锦160没劲怎么办 奇骏2.0动力不足怎么办 修汽车被师傅骂怎么办 转院证明不给开怎么办 被强制退市散户怎么办 股票卖没有人买怎么办 三星s6关不了机怎么办