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