最大熵模型(Maximum entropy model)
本文你将知道:
- 什么是最大熵原理,最大熵模型
- 最大熵模型的推导(约束最优化问题求解)
- 最大熵模型的含义与优缺点
1 最大熵原理
最大熵原理:在满足已知约束条件的模型集合中,选择熵最大的模型。熵最大,对应着随机性最大。最大熵首先要满足已知事实,对于其他未知的情况,不做任何的假设,认为他们是等可能性的,此时随机性最大。
2 最大熵模型
最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型。最大熵模型的求解可以看做是约束最优化问题。引入拉个朗日乘子求解。先来说下最优化目标和约束条件分别是什么。
假设分类模型是判别式模型,对条件概率 p ( y ∣ x ) p(y|x) p(y∣x)建模。
最优化目标:
选择使得熵最大的条件概率分布
p
(
y
∣
x
)
p(y|x)
p(y∣x)
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(y∣x)=pargmaxx,y∑−p~(x)p(y∣x)logp(y∣x)
约束条件:
首先,使用特征函数来描述
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,y满足某一事实else
我们需要根据经验,定义多个特征函数。那每个特征如何对要求解的分布
p
(
y
∣
x
)
p(y|x)
p(y∣x)产生约束呢?要求特征函数对于联合经验分布
p
(
x
,
y
)
p(x,y)
p(x,y)的期望要等于对条件分布
p
(
y
∣
x
)
p(y|x)
p(y∣x)和经验分布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,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))
综合起来,约束最优化问题是:
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,y∑−p(x)~p(y∣x)logp(y∣x)s.t.E∼p~(fi)=E∼p(fi),i=1,2,...,ny∑p(y∣x)=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(1−y∑p(y∣x))+i=1∑nwi[E∼p~(fi(x,y))−E∼p(fi(x,y))]x,y∑p~(x)p(y∣x)logp(y∣x)+w0(1−y∑p(y∣x))+i=1∑nwi(x,y∑p~(x,y)fi(x,y)−x,y∑p~(x)p(y∣x)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(y∣x)∂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(y∣x)∂L(p,w)=x,y∑[p~(x)logp(y∣x)+p~(x)]−y∑w0−i=1∑nwix,y∑p~(x)fi(x,y)=x,y∑p~(x)[logp(y∣x)+1−wo−i∑nwifi(x,y)]
上面的偏导计算需要用到边缘概率的计算:
∑
y
w
0
=
∑
x
,
y
p
~
(
x
)
w
0
\sum_yw_0=\sum_{x,y}\tilde p(x)w_0
y∑w0=x,y∑p~(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(y∣x)=exp(i∑nwifi(x,y)+w0−1)=exp(1−w0)exp(∑inwifi(x,y))
在考虑到约束
∑
y
p
(
y
∣
x
)
=
1
\sum\limits_yp(y|x)=1
y∑p(y∣x)=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(y∣x)=Zw(X)1expi∑nwifi(x,y)Zw(X)=y∑expi∑nwifi(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(y∣x)。
3对最大熵模型的理解
在最大熵模型中,我们使用最大熵原理去推导用于分类问题的条件概率分布 p ( y ∣ x ) p(y|x) p(y∣x)。得到了公式(2)的概率表示。这说明了:满足给定事实的情况下,能够令熵达到最大的分布是指数族分布。特别的,如果给定方差和均值,使熵达到最大的分布是高斯分布。高斯分布也是指数族分布的一种。
最大熵模型的优缺点:
优点:
- 最大熵模型是所有满足约束条件的模型中熵最大的模型
- 可以灵活的设置约束条件,通过约束条件可以调节对未知数据的适应性和已有数据的拟合程度。
- 自然的解决统计模型中的参数平滑问题
缺点:
- 设计的特征只能记录某特征是否出现,是个二值特征。类似one-hot,但在一些例如文本分类的任务,还需要知道不同特征的强度。
- 数据稀疏问题严重,ont-hot最大的问题
- 收敛较慢,计算代价大
最大熵有点类似支持向量机,都是当满足已知约束的模型有多个时,根据一定的原则选择最优的那个模型。最大熵就是在解集合中选择熵最大的那个。在svm和感知机的对比中,我们知道感知机的线性分割平面不唯一,有很多个解。svm根据分离间隔最大的原则选择最优解。
参考:
[1]李航,统计学习方法