熵的定义
H(P)=−∑xP(x)logP(x)
熵的范围
0≤H(p)≤log|X||X|是X的取值个数。
熵大于0很显然。下面证明后半部分
0≤KL(p|u)=∑xp(x)logp(x)u(x)=∑xp(x)logp(x)−∑xp(x)logu(x)=−H(x)+log|X|
即
0≤−H(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(x,y)={10{x与y满足某个事实} {否则}
特征函数关于经验分布
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
这个约束条件的含义就是模型跟数据表达的信息是一致的。
最大熵模型的学习就是满足以上条件的约束最优化问题,定义如下:
maxp∈CH(P)=−∑x,yP̂ (x)P(y|x)logP(y|x)s.t.Ep̂ (fi)=Ep(fi)i=1,2,...,n∑yP(y|x)=1
将上述问题转化为等价的最小化问题:
minp∈C−H(P)=∑x,yP̂ (x)P(y|x)logP(y|x)s.t.Ep̂ (fi)−Ep(fi)=0,i=1,2,...,n∑yP(y|x)=1
这里将上述问题转化为无约束最优化的对偶问题,通过求解对偶问题求解原始问题。
L(P,w)=−H(P)+w0⎛⎝⎜⎜1−∑yp(y|x)⎞⎠⎟⎟+∑i=1nwi⎛⎝⎜⎜∑x,yEp̃ (fi)−Ep(fi)⎞⎠⎟⎟=∑x,yp̃ (x)p(y|x)log(p(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)
因为拉格朗日函数是P的凸函数,所以原始问题和对偶问题的解是等价的,这样可以通过求解对偶问题来求解原始问题。
下面求解对偶问题。
将对偶问题中内部的函数表示为
Ψ(w)=minp∈CL(P,w)=Lw(P,w)
这个函数称为
对偶函数。将其解记为
Pw=argminp∈CL(P,w)=Pw(y|x)
下面对拉格朗日函数求关于
p(y|x) 的偏导。
∂L(P,w)∂p(y|x)=∑x,yp̃ (x)(logp(y|x)+1)−∑yw0−∑x,yp̃ (x)∑i=1nwifi(x,y)=∑x,yp̃ (x)(logp(y|x)+1−w0−∑i=1nwifi(x,y))
令偏导为0,求得
p(y|x)=exp(∑i=1nwifi(x,y)+w0−1)=exp(∑ni=1wifi(x,y))exp(1−w0)
然后再求对偶问题外面的最大化问题
maxΨ(w)
其解记为
w∗ ,即
w∗=argmaxwΨ(w)
后面书上证明了对偶函数其实就是对数似然函数。所以对偶函数极大化等价于最大熵模型的极大似然估计。
最大熵模型的一般形式为:
p(y|x)=exp(∑ni=1wifi(x,y))exp(1−w0)=exp(∑ni=1wifi(x,y))Zw(x)
其中,
Zw(x)=∑yexp(∑i=1nwifi(x,y))
从这里可以看出,最大熵模型跟逻辑回归模型形式很像,都是对数线性模型。