最大熵(一)

来源:互联网 发布:微商城分销php开发手册 编辑:程序博客网 时间:2024/06/07 18:42

熵的定义

H(P)=xP(x)logP(x)

熵的范围
0H(p)log|X||X|X

熵大于0很显然。下面证明后半部分

0KL(p|u)=xp(x)logp(x)u(x)=xp(x)logp(x)xp(x)logu(x)=H(x)+log|X|


0H(x)+log|X|


H(x)log|X|

其中,KL(p|u)是KL divergence,表示概率分布p和u之间的相似程度,也叫相对熵(relative entropy)。定义如下

KL(p|q)=k=1Kpklogpkqk

这里的u定义为均匀分布,即u(x)=1/|X|

以上证明过程来自MLAPP 第二章。
上述证明说明均匀分布的熵最大。
其实后半部分的证明可以直接用拉格朗日法,约束是概率之和为1,对拉格朗日函数求偏导,令偏导为0,得到每个概率的值。然后再求此时的熵就得到相应的最大值了。

最大熵原理认为在所有满足条件的模型中熵最大的模型是最优的。将最大熵原理应用到分类上就是最大熵模型了。

在分类时我们的求解目标是后验分布P(y|x)
假设满足所有约束条件的模型集合为C,定义在条件概率分布p(y|x)上的条件熵为

H(P)=x,yP̂ (x)P(y|x)logP(y|x)

最大熵模型就是集合C中条件熵H(P)最大的模型。

那么最大熵模型都有哪些约束条件呢
首先定义特征函数f(x,y)

f(xy)={10{xy{

特征函数关于经验分布P̂ (x,y)的期望值Ep̂ (f)定义为

Ep̂ (f)=x,yp̂ (x,y)f(x,y)

特征函数关于模型p(y|x)与经验分布p̂ (x)的期望Ep(f)定义为

Ep(f)=x,yp̂ (x)p(y|x)f(x,y)

最大熵模型的约束条件就是

Ep̂ (fi)=Ep(fi)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

这里将上述问题转化为无约束最优化的对偶问题,通过求解对偶问题求解原始问题。

L(P,w)=H(P)+w01yp(y|x)+i=1nwix,yEp̃ (fi)Ep(fi)=x,yp̃ (x)p(y|x)log(p(y|x))+w01yp(y|x)+i=1nwix,yp̃ (x,y)fi(x,y)x,yp̃ (x)p(y|x)fi(x,y)

原始问题为

minpCmaxwL(P,w)

对偶问题为

maxwminPCL(P,w)

因为拉格朗日函数是P的凸函数,所以原始问题和对偶问题的解是等价的,这样可以通过求解对偶问题来求解原始问题。
下面求解对偶问题。

将对偶问题中内部的函数表示为

Ψ(w)=minpCL(P,w)=Lw(P,w)

这个函数称为对偶函数。将其解记为
Pw=argminpCL(P,w)=Pw(y|x)

下面对拉格朗日函数求关于p(y|x)的偏导。

L(P,w)p(y|x)=x,yp̃ (x)(logp(y|x)+1)yw0x,yp̃ (x)i=1nwifi(x,y)=x,yp̃ (x)(logp(y|x)+1w0i=1nwifi(x,y))

令偏导为0,求得
p(y|x)=exp(i=1nwifi(x,y)+w01)=exp(ni=1wifi(x,y))exp(1w0)

然后再求对偶问题外面的最大化问题

maxΨ(w)

其解记为w,即
w=argmaxwΨ(w)

后面书上证明了对偶函数其实就是对数似然函数。所以对偶函数极大化等价于最大熵模型的极大似然估计。

最大熵模型的一般形式为:

p(y|x)=exp(ni=1wifi(x,y))exp(1w0)=exp(ni=1wifi(x,y))Zw(x)

其中,
Zw(x)=yexp(i=1nwifi(x,y))

从这里可以看出,最大熵模型跟逻辑回归模型形式很像,都是对数线性模型。

0 0