x,y∑P~(x)Pw(y∣x)fi(x,y)exp(δi)f#(x,y))=EP~(fi)f#=i∑fi(x,y) 算法原理
假设最大熵模型当前的参数向量是w=(w1,w2,⋯,wn)T,
我们希望找到一个新的参数向量w+δ=(w1+δ1,w2+δ2,⋯,wn+δn)T使得L(w)增大。
如果有这样一种参数向量更新的方法τ(w):w→w+δ,
那么就可以重复使用这一方法,直至找到L(w)的最大值。
令A(δ∣w)是L(w+δ)−L(w)的下界,即满足L(w+δ)−L(w)≥A(δ∣w),那么
找到适当的δ使下界A(δ∣w)提高,那么L(w)也会提高。
推导
计算L(w+δ)−L(w)的下界A(δ∣w),得:
A(δ∣w)=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)expi=1∑nδifi(x,y) 需要找到适当的δ使下界A(δ∣w)提高。但A(δ∣w)中的δ是一个向量,含有多个变量,不易同时优化。因此,一次只优化其中一个变量δi,而固定其它变量δj,i=j。基于此得到新的下界B(δ∣w)。
B(δ∣w)=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)i=1∑n(f#(x,y)fi(x,y))exp(δif#(x,y))f#=i∑fi(x,y)3 B(δ∣w)对δi求偏导,并令偏导=0,得到等式:
x,y∑P~(x)Pw(y∣x)fi(x,y)exp(δi)f#(x,y))=EP~(fi) 即算法中要解的公式
依次解出δi,进一步求出δ,再通过δ更新w
迭代进行以上步骤,直至找到最优的w