最大熵模型(Maximum entropy model)

最大熵模型(Maximum entropy model)

本文你将知道:

  • 什么是最大熵原理,最大熵模型
  • 最大熵模型的推导(约束最优化问题求解)
  • 最大熵模型的含义与优缺点

1 最大熵原理

最大熵原理:在满足已知约束条件的模型集合中,选择熵最大的模型。熵最大,对应着随机性最大。最大熵首先要满足已知事实,对于其他未知的情况,不做任何的假设,认为他们是等可能性的,此时随机性最大。

2 最大熵模型

最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型。最大熵模型的求解可以看做是约束最优化问题。引入拉个朗日乘子求解。先来说下最优化目标和约束条件分别是什么。

假设分类模型是判别式模型,对条件概率 p ( y ∣ x ) p(y|x) p(yx)建模。

最优化目标:

选择使得熵最大的条件概率分布 p ( y ∣ x ) p(y|x) p(yx)
p ( y ∣ x ) = a r g m a x p ∑ x , y − p ~ ( x ) p ( y ∣ x ) l o g p ( y ∣ x ) p(y|x)=\mathop{argmax}\limits_p\sum_{x,y}-\tilde{p}(x)p(y|x)\mathop{log}p(y|x) p(yx)=pargmaxx,yp~(x)p(yx)logp(yx)
约束条件:

首先,使用特征函数来描述 x , y x,y x,y的某一个事实。当 x , y x,y x,y满足某一条件时等于1,否则等于0。
f ( x , y ) = { 1 , i f x , y 满 足 某 一 事 实 0 , e l s e f(x,y)=\begin{cases}1,&ifx,y满足某一事实\\0,&else\end{cases} f(x,y)={1,0,ifx,yelse
我们需要根据经验,定义多个特征函数。那每个特征如何对要求解的分布 p ( y ∣ x ) p(y|x) p(yx)产生约束呢?要求特征函数对于联合经验分布 p ( x , y ) p(x,y) p(x,y)的期望要等于对条件分布 p ( y ∣ x ) p(y|x) p(yx)和经验分布p(x)的期望。用公式表示就是:
∑ x , y p ~ ( x , y ) f ( x , y ) = ∑ x , y p ~ ( x ) p ( y ∣ x ) f ( x , y ) E ∼ p ~ ( x , y ) ( f ( x , y ) ) = E ∼ p ( y ∣ x ) ( f ( x , y ) ) \sum_{x,y}\tilde p(x,y)f(x,y)=\sum_{x,y}\tilde p(x)p(y|x)f(x,y)\\E_{\sim \tilde p(x,y)}(f(x,y))=E_{\sim p(y|x)}(f(x,y)) x,yp~(x,y)f(x,y)=x,yp~(x)p(yx)f(x,y)Ep~(x,y)(f(x,y))=Ep(yx)(f(x,y))
综合起来,约束最优化问题是:
m a x H ( p ) = ∑ x , y − p ( x ) ~ p ( y ∣ x ) l o g p ( y ∣ x ) s . t . E ∼ p ~ ( f i ) = E ∼ p ( f i ) , i = 1 , 2 , . . . , n ∑ y p ( y ∣ x ) = 1 \mathop{max}H(p)=\sum_{x,y}-\tilde{p(x)}p(y|x)\mathop{log}p(y|x)\\\mathop{s.t. }E_{\sim \tilde p}(f_i)=E_{\sim p}(f_i),i=1,2,...,n\\\sum_yp(y|x)=1 maxH(p)=x,yp(x)~p(yx)logp(yx)s.t.Ep~(fi)=Ep(fi),i=1,2,...,nyp(yx)=1
下面的求解推导过程主要参考李航的统计学习方法。不想了解推导过程的可直接跳过去看对最大熵的分析结果。

求解引入拉个朗日乘子 w 0 , w 1 , . . . , w n w_0,w_1,...,w_n w0,w1,...,wn将问题转化成无约束的最优化问题。同时,最大化H§等价于最小化-H§。得到拉格朗日函数 L ( p , w ) L(p,w) L(p,w)
L ( p , w ) = − H ( p ) + w 0 ( 1 − ∑ y p ( y ∣ x ) ) + ∑ i = 1 n w i [ E ∼ p ~ ( f i ( x , y ) ) − E ∼ p ( f i ( x , y ) ) ] ∑ x , y p ~ ( x ) p ( y ∣ x ) l o g p ( y ∣ x ) + w 0 ( 1 − ∑ y p ( y ∣ x ) ) + ∑ i = 1 n w i ( ∑ x , y p ~ ( x , y ) f i ( x , y ) − ∑ x , y p ~ ( x ) p ( y ∣ x ) f i ( x , y ) ) L(p,w)=-H(p)+w_0(1-\sum_yp(y|x))+\sum_{i=1}^nw_i[E_{\sim\tilde p}(f_i(x,y))-E_{\sim p}(f_i(x,y))]\\\sum_{x,y}\tilde p(x)p(y|x)\mathop{log}p(y|x)+w_0(1-\sum_yp(y|x))+\sum_{i=1}^nw_i(\sum_{x,y}\tilde p(x,y)f_i(x,y)-\sum_{x,y}\tilde p(x)p(y|x)f_i(x,y)) L(p,w)=H(p)+w0(1yp(yx))+i=1nwi[Ep~(fi(x,y))Ep(fi(x,y))]x,yp~(x)p(yx)logp(yx)+w0(1yp(yx))+i=1nwi(x,yp~(x,y)fi(x,y)x,yp~(x)p(yx)fi(x,y))
这样,最初的问题就变成了拉格朗日函数的极小极大问题。也叫作原始问题:
m i n p m a x w L ( p , w ) \mathop{min}\limits_p\mathop{max}\limits_wL(p,w) pminwmaxL(p,w)
其对偶问题是极大极小问题:
m a x w m i n p L ( p , w ) (1) \mathop{max}\limits_w\mathop{min}\limits_pL(p,w)\tag{1} wmaxpminL(p,w)(1)
先来看公式(1)的内部极小化问题 m i n p L ( p , w ) \mathop{min}\limits_pL(p,w) pminL(p,w),其解是关于w的函数。用 ψ ( w ) \psi(w) ψ(w)表示。
ψ ( w ) = m i n p L ( p , w ) = L ( p w , w ) p w = a r g m i n p L ( p , w ) \psi(w)=\mathop{min}\limits_pL(p,w)=L(p_w,w)\\p_w=\mathop{argmin}\limits_pL(p,w) ψ(w)=pminL(p,w)=L(pw,w)pw=pargminL(p,w)
根据KKT条件, ∂ L ( p , w ) ∂ p ( y ∣ x ) = 0 \frac{\partial L(p,w)}{\partial p(y|x)}=0 p(yx)L(p,w)=0求解 p w p_w pw
∂ L ( p , w ) ∂ p ( y ∣ x ) = ∑ x , y [ p ~ ( x ) l o g p ( y ∣ x ) + p ~ ( x ) ] − ∑ y w 0 − ∑ i = 1 n w i ∑ x , y p ~ ( x ) f i ( x , y ) = ∑ x , y p ~ ( x ) [ l o g p ( y ∣ x ) + 1 − w o − ∑ i n w i f i ( x , y ) ] \frac{\partial L(p,w)}{\partial p(y|x)}=\sum_{x,y}[\tilde p(x)\mathop{log}p(y|x)+\tilde p(x)]-\sum_yw_0-\sum_{i=1}^nw_i\sum_{x,y}\tilde p(x)f_i(x,y)\\=\sum_{x,y}\tilde p(x)[\mathop{log}p(y|x)+1-w_o-\sum_i^nw_if_i(x,y)] p(yx)L(p,w)=x,y[p~(x)logp(yx)+p~(x)]yw0i=1nwix,yp~(x)fi(x,y)=x,yp~(x)[logp(yx)+1woinwifi(x,y)]
上面的偏导计算需要用到边缘概率的计算:
∑ y w 0 = ∑ x , y p ~ ( x ) w 0 \sum_yw_0=\sum_{x,y}\tilde p(x)w_0 yw0=x,yp~(x)w0
令偏导为0。并且 p ~ ( x ) > 0 \tilde p(x)>0 p~(x)>0可求得:
p ( y ∣ x ) = e x p ( ∑ i n w i f i ( x , y ) + w 0 − 1 ) = e x p ( ∑ i n w i f i ( x , y ) ) e x p ( 1 − w 0 ) p(y|x)=exp(\sum_i^nw_if_i(x,y)+w_0-1)=\frac{exp(\sum_i^nw_if_i(x,y))}{exp(1-w_0)} p(yx)=exp(inwifi(x,y)+w01)=exp(1w0)exp(inwifi(x,y))
在考虑到约束 ∑ y p ( y ∣ x ) = 1 \sum\limits_yp(y|x)=1 yp(yx)=1得到:
p ( y ∣ x ) = 1 Z w ( X ) e x p ∑ i n w i f i ( x , y ) Z w ( X ) = ∑ y e x p ∑ i n w i f i ( x , y ) (2) p(y|x)=\frac{1}{Z_w(X)}\mathop{exp}\sum_i^nw_if_i(x,y)\tag{2}\\Z_w(X)=\sum_y\mathop{exp}\sum_i^nw_if_i(x,y) p(yx)=Zw(X)1expinwifi(x,y)Zw(X)=yexpinwifi(x,y)(2)
之后需要在求解对偶问题的外部极大问题:
m a x ψ ( w ) \mathop{max}\psi(w) maxψ(w)
这是一个只关于w的函数。将其解记做 w ∗ w^* w
w ∗ = a r g m a x w ψ ( w ) w^*=\mathop{argmax}\limits_w\psi(w) w=wargmaxψ(w)
得到的解 w ∗ w^* w带入公式(2),即得到了我们想要的由最大熵原理得到的条件概率分布 p ( y ∣ x ) p(y|x) p(yx)

3对最大熵模型的理解

在最大熵模型中,我们使用最大熵原理去推导用于分类问题的条件概率分布 p ( y ∣ x ) p(y|x) p(yx)。得到了公式(2)的概率表示。这说明了:满足给定事实的情况下,能够令熵达到最大的分布是指数族分布。特别的,如果给定方差和均值,使熵达到最大的分布是高斯分布。高斯分布也是指数族分布的一种。

最大熵模型的优缺点:

优点:

  • 最大熵模型是所有满足约束条件的模型中熵最大的模型
  • 可以灵活的设置约束条件,通过约束条件可以调节对未知数据的适应性和已有数据的拟合程度。
  • 自然的解决统计模型中的参数平滑问题

缺点:

  • 设计的特征只能记录某特征是否出现,是个二值特征。类似one-hot,但在一些例如文本分类的任务,还需要知道不同特征的强度。
  • 数据稀疏问题严重,ont-hot最大的问题
  • 收敛较慢,计算代价大

最大熵有点类似支持向量机,都是当满足已知约束的模型有多个时,根据一定的原则选择最优的那个模型。最大熵就是在解集合中选择熵最大的那个。在svm和感知机的对比中,我们知道感知机的线性分割平面不唯一,有很多个解。svm根据分离间隔最大的原则选择最优解。

参考:

[1]李航,统计学习方法

[2]一篇介绍HMM,MEMM,CRF的文字讲解了最大熵的优缺点。

你可能感兴趣的:(机器学习,最大熵模型,最大熵,最大熵原理,指数族分布)