最大熵模型 - 最大熵模型的学习
对于给定的训练数据集
T={(x1,y1),(x2,y2),⋅⋅⋅,(xN,yN)}
以及特征函数
fi(x,y)
,最大熵模型的学习等价于约束最优化问题:
maxp∈CH(p)s.t.Ep(fi)∑yp(y|x)=−∑x,yp˜(x)p(y|x)logp(y|x)=Ep˜(fi)=1
将求最大值改为等价求最小值问题:
minp∈C−H(p)s.t.Ep(fi)∑yp(y|x)=sumx,yp˜(x)p(y|x)logp(y|x)=Ep˜(fi)=1
引进拉格朗日乘子
w0,w1,⋅⋅⋅,wN
,定义拉格朗日函数:
L(P,w)=−H(p)+w0(1−∑yp(y|x))+∑i=1nwi(Ep˜(fi)−Ep(fi))=∑x,yp˜(x)p(y|x)logp(y|x)+w0(1−∑yp(y|x))+∑i=1nwi(∑x,yp˜(x,y)fi(x,y)−∑x,yp˜(x)p(y|x)fi(x,y))
最优化问题的原始问题是:
minP∈CmaxwL(P,w)
对偶问题为:
maxwminP∈CL(P,w)
因为拉格朗日函数
L(P,w)
是
P
的凸函数,原始问题与对偶问题的解是等价的。
首先计算内部计算极小值,拉个朗日函数
L(P,w)
对
P(Y|X)
的偏倒数:
∂L(P,w)∂P=∑x,yp˜(x)(1+logp(y|x))−w0−∑i=1nwi(∑x,yp˜(x)fi(x,y))=∑x,yp˜(x)(1+logp(y|x))−∑x,yp˜(x)w0−∑x,yp˜(x)(∑i=1nwifi(x,y))=∑x,yp˜(x)(1+logp(y|x)−w0−∑i=1Nwifi(x,y))
注:
w0=w0×1=w0∑xp˜(x)=∑x,yp˜(x)w0
令偏导数为0,在
p˜(x)>0
的情况下,有:
p(y|x)=exp(∑i=1nwifi(x,y)+w0−1)=exp(∑ni=1wifi(x,y))exp(1−w0)
由于
∑yp(y|x)=1
,得:
于
∑yexp(∑ni=1wifi(x,y))exp(1−w0)=1
则:
exp(1−w0)=∑yexp(∑i=1nwifi(x,y))
内部极大值得解为:
Pw(y|x)=1Zwexp(∑i=1nwifi(x,y)))
其中:
Zw(x)=∑yexp(∑i=1nwifi(x,y))
Zw(x)
称为规范化因子;
fi(x,y)
为特征值函数;
wi
为特征权值;
Pw(y|x)
为最大熵模型。之后再求解外部极大值,用
w∗
表示其解,即:
w∗=argmaxwΨ(w)