机器学习笔记(二十)——求解最大熵模型

一、问题的引出

    最大熵模型的学习过程就是求解最大熵模型的过程。最大熵模型的学习可以形式化为约束最优化问题。
    对于给定的训练数据集 T={(x1,y1),(x2,y2),,(xn,yn)} 及特征函数 fi(x,y)i=1,2,,n ,最大熵模型的学习等价于约束最优化问题:

maxPCH(P)=x,yP˜(x)P(y|x)logP(y|x)s.t.Ep(fi)=Ep˜(fi),i=1,2,,nyP(y|x)=1

上式等价于:
minPCH(P)=x,yP˜(x)P(y|x)logP(y|x)s.t.Ep(fi)Ep˜(fi)=0,i=1,2,,nyP(y|x)=1

    求解上式有约束的最优化问题,所得出的解,就是最大熵模型学习的解。

二、推导过程

    将约束最优化的原问题转换为无约束最优化问题的对偶问题,通过求解对偶问题求解原问题。
     首先,引入拉格朗日乘子 w0,w1,wn , 定义拉格朗日函数 L(P,w) :

L(P,w)=H(P)+w0(1yP(y|x))+inwi(Ep(fi)Ep˜(fi))=x,yP˜(x)P(y|x)logP(y|x)+w0(1yP(y|x))+inwi(x,yP˜(x,y)fi(x,y)x,yP˜(x)P(y|x)fi(x,y))

最优化的原始问题是:
minPCmaxwL(P,w)

对偶问题是:
maxwminPCL(P,w)

由于拉格朗日函数 L(P,w) P 的凸函数, 原问题的解与对偶问题的解是等价的。
首先求 minPCL(P,w) , minPCL(P,w) w 的函数,记为:
Ψ(w)=minPCL(Pw,w),

Ψ(w) 的解 记为:
Pw=argminPCL(P,w)=Pw(y|x)

L(P,w) P(y|x) 的偏导数:
L(P,w)P(y|x)=x,yP˜(x)(logP(y|x)+1)yw0x,y(P˜(x)i=1nwifi(x,y))

令 偏导数=0 ,当 P˜(x)>0 时,
P(y|x)=exp(i=1nwifi(x,y)+w01)=exp(ni=1wifi(x,y))exp(1w0)

由于 yP(y|x)=1 得:
exp(1w0)=yexp(i=1nwifi(x,y))=Zw(x)Pw(y|x)=1Zw(x)exp(i=1nwifi(x,y))

其中, Zw(x) 称为规范化因子, fi(x,y) 为特征函数, wi 是特征权值。 Pw(y|x) 就是最大熵模型。之后,求解对偶问题的最大化:
maxwΨ(w)

将其解记为:
w=argmaxwΨ(w)

你可能感兴趣的:(机器学习)