最大熵模型
机器学习
最大熵原理
在没有更多信息的情况下,那些不确定的部分都是“等可能的”,最大熵原理通过熵的最大化来表示等可能性。
建模
在给定训练集的情况下,我们可以得到总体联合分布P(X,Y)的经验分布P¯¯¯(X,Y),和边缘分布P(X)的经验分布P¯¯¯(X)。P¯¯¯(X,Y)即为训练集中X,Y同时出现的次数除以样本总数m,P¯¯¯(X)即为训练集中X出现的次数除以样本总数m。
特征函数f(x,y)描述输入x和输出y之间的关系。定义为:
f(x,y)={10x与y满足某个关系否则
可以认为只要训练集中出现的(x(i),y(i)),其f(x(i),y(i))=1。
特征函数f(x,y)关于经验分布P¯¯¯(X,Y)的期望:
EP¯(f)=∑x,yP¯¯¯(x,y)f(x,y)
特征函数f(x,y)关于条件分布P(Y|X)和经验分布P¯¯¯(X)的期望:
EP(f)=∑x,yP¯¯¯(x)P(y|x)f(x,y)
分类模型要求的是条件概率分布P(Y|X),如果模型可以从训练集中学习,我们就可以假设这两个期望相等。即:
EP¯(f)=EP(f)
这是最大熵模型的约束。
定义在条件概率分布P(Y|X)上的条件熵为:
H(P)=−∑x,yP¯¯¯(x)P(y|x)logP(y|x)
目标是得到使H(P)最大的时候对应的P(y|x)。
优化
minPs.t.−H(P)=∑x,yP¯¯¯(x)P(y|x)logP(y|x)EP¯(fi)−EP(fi)=0(i=1,2,...M)∑yP(y|x)=1
拉格朗日函数L(P,w):
L(P,w)≡−H(P)+w0(1−∑yP(y|x))+∑i=1Mwi(EP¯(fi)−EP(fi))
原始问题:
minPmaxwL(P,w)
对偶问题:
maxwminPL(P,w)
第一步就是求
ψ(w)=minPL(P,w)
求L(P,w)关于P(y|x)的偏导数:
∂L(P,w)∂P(y|x)=∑x,yP¯¯¯(x)(logP(y|x)+1)−∑yw0−∑x,y(P¯¯¯(x)∑i=1Mwifi(x,y))=∑x,yP¯¯¯(x)(logP(y|x)+1−w0−∑i=1Mwifi(x,y))
令偏导数为0
P(y|x)=exp(∑i=1Mwifi(x,y)+w0−1)=exp(∑i=1Mwifi(x,y))exp(1−w0)
由于∑yP(y|x)=1,可以得到最优解Pw(y|x):
Pw(y|x)=1Zw(x)exp(∑i=1Mwifi(x,y))
其中,Zw(x)为规范化因子,定义为:
Zw(x)=∑yexp(∑i=1Mwifi(x,y))
第二步对ψ(w)求极大,比如梯度下降法,牛顿法,拟牛顿法都可以。对于最大熵模型还有一种专用的优化方法,叫做改进的迭代尺度法(improved iterative scaling, IIS)。