首先看熵的定义
熵
熵是信息论中的概念,首先需要定义一个事件 X = x X=x X=x的信息量,要求满足以下两个条件:
- 越不可能发生的事情,信息越大
- 几个独立事件同时发生的信息量=每一个事件的信息量之和
个满足以上两个条件的且最为简单的函数就是对数函数了,s.t. I ( x ) = − l o g P ( x ) I(x) = -logP(x) I(x)=−logP(x)
Proof: P ( x ) P(x) P(x)越大, I ( x ) = − l o g P ( x ) I(x) = -logP(x) I(x)=−logP(x)越小
I ( x 1 , x 2 , x 3 ) = − l o g P ( x 1 , x 2 , x 3 ) = − l o g P ( x 1 ) P ( x 2 ) P ( x 3 ) = − ( l o g P ( x 1 ) + l o g P ( x 2 ) + l o g P ( x 3 ) ) = I ( x 1 ) + I ( x 2 ) + I ( x 3 ) \begin{aligned} I(x_1,x_2,x_3) &= -logP(x_1,x_2,x_3)\\ &= -logP(x_1)P(x_2)P(x_3)\\ &= -(logP(x_1)+logP(x_2)+logP(x_3))\\ &= I(x_1)+I(x_2)+I(x_3) \end{aligned} I(x1,x2,x3)=−logP(x1,x2,x3)=−logP(x1)P(x2)P(x3)=−(logP(x1)+logP(x2)+logP(x3))=I(x1)+I(x2)+I(x3)
有了事件的信息量之后,可以定义熵为满足分布P的事件所产生的期望信息量:
H
(
P
)
=
E
x
∼
P
[
I
(
x
)
]
=
−
E
x
∼
P
[
l
o
g
P
(
x
)
]
=
−
∑
i
P
(
x
i
)
l
o
g
P
(
x
i
)
H(P) = E_{x\sim P}[I(x)]= -E_{x\sim P}[logP(x)] = -\sum_{i}P(x_i)logP(x_i)
H(P)=Ex∼P[I(x)]=−Ex∼P[logP(x)]=−i∑P(xi)logP(xi)
最大熵原则与最大熵模型
最大熵原则 的含义是在 满足约束的情况下,对未知的信息不做任何假设,尽量保持可能性最大。
下面证明对于一个离散变量 X X X,在没有任何其他先验的情况下,根据最大熵原则 X X X 满足均匀分布:
Proof: 假设 X X X 为离散变量且取值范围是 { 1 , ⋯ , k } \{1,\cdots,k\} {1,⋯,k},记 P ( X = i ) = p i P(X = i) = p_i P(X=i)=pi,那么根据最大熵原则:
max − ∑ i = 1 k p i log p i ⟺ min ∑ i = 1 k p i log p i s . t . ∑ i = 1 k p i = 1 \begin{aligned} \text{max} -\sum_{i=1}^k p_i \text{log}p_i &\iff \text{min} \sum_{i=1}^k p_i \text{log}p_i\\ s.t. &\sum_{i=1}^k p_i =1 \end{aligned} max−i=1∑kpilogpis.t.⟺mini=1∑kpilogpii=1∑kpi=1
由拉格朗日对偶法:
L
(
p
,
λ
)
=
∑
i
=
1
k
p
i
log
p
i
+
λ
(
1
−
∑
i
=
1
k
p
i
)
∂
L
(
p
,
λ
)
∂
p
i
=
log
p
i
+
p
i
∗
1
p
i
−
λ
=
0
⇒
p
i
=
1
λ
−
1
∀
i
\begin{aligned} L(p,\lambda) &= \sum_{i=1}^k p_i \text{log}p_i + \lambda(1-\sum_{i=1}^k p_i)\\ \frac{\partial L(p,\lambda)}{\partial p_i} &= \text{log}p_i + p_i * \frac{1}{p_i} - \lambda = 0\\ & \Rightarrow p_i = \frac{1}{\lambda -1} \quad \forall i \end{aligned}
L(p,λ)∂pi∂L(p,λ)=i=1∑kpilogpi+λ(1−i=1∑kpi)=logpi+pi∗pi1−λ=0⇒pi=λ−11∀i
所有的 p i p_i pi 是相等的常值,因此 X X X 服从均匀分布。得证。
下面介绍 最大熵模型,对于给定数据集
{
X
,
Y
}
\{X,Y\}
{X,Y},不失一般性,可以用特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)来描述,特征函数可以是任何形式,例如:
f
(
x
,
y
)
=
{
1
(
x
,
y
)
满
足
某
一
事
实
0
否
则
f(x,y)= \left\{ \begin{array}{c} 1& (x,y)满足某一事实\\ 0 & 否则\end{array}\right.
f(x,y)={10(x,y)满足某一事实否则
如果模型可以获取训练数据中的信息,那么对于任意特征函数,我们可以假设: f ( x , y ) f(x,y) f(x,y)关于经验分布 P ~ ( x , y ) \tilde{P}(x,y) P~(x,y)的期望值= f ( x , y ) f(x,y) f(x,y)关于预测分布 P ( x , y ) P(x,y) P(x,y)的期望值:
E
(
x
,
y
)
−
P
~
(
x
,
y
)
(
f
)
=
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
E_{(x,y)-\tilde{P}(x,y)}(f) = \sum_{x,y}\tilde{P}(x,y)f(x,y)
E(x,y)−P~(x,y)(f)=x,y∑P~(x,y)f(x,y)
E
(
x
,
y
)
−
P
(
x
,
y
)
(
f
)
=
∑
x
,
y
P
(
x
,
y
)
f
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
E_{(x,y)-P(x,y)}(f) = \sum_{x,y}P(x,y)f(x,y) = \sum_{x,y} \tilde{P}(x)P(y|x)f(x,y)
E(x,y)−P(x,y)(f)=x,y∑P(x,y)f(x,y)=x,y∑P~(x)P(y∣x)f(x,y)
⇒
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
\Rightarrow \sum_{x,y}\tilde{P}(x,y)f(x,y) = \sum_{x,y} \tilde{P}(x)P(y|x)f(x,y)
⇒x,y∑P~(x,y)f(x,y)=x,y∑P~(x)P(y∣x)f(x,y)
根据 最大熵原则,首先给出条件熵:
H
(
Y
∣
X
)
=
∑
i
P
(
x
i
)
H
(
Y
∣
X
=
x
i
)
=
−
∑
i
P
(
x
i
)
∑
j
P
(
y
i
∣
x
i
)
l
o
g
P
(
y
i
∣
x
i
)
H(Y|X) = \sum_i P(x_i)H(Y|X=x_i) = -\sum_{i}P(x_i)\sum_j P(y_i|x_i)logP(y_i|x_i)
H(Y∣X)=i∑P(xi)H(Y∣X=xi)=−i∑P(xi)j∑P(yi∣xi)logP(yi∣xi)
那么,最大熵模型 的目标函数就是:
m
i
n
P
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
s
.
t
.
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
∑
y
P
(
y
∣
x
)
=
1
\begin{aligned} min_P \sum_{x,y}\tilde{P}(x)P(y|&x)logP(y|x)\\ s.t. \sum_{x,y}\tilde{P}(x,y)f(x,y) &= \sum_{x,y} \tilde{P}(x)P(y|x)f(x,y)\\ \sum_{y}P(y|x)& =1 \end{aligned}
minPx,y∑P~(x)P(y∣s.t.x,y∑P~(x,y)f(x,y)y∑P(y∣x)x)logP(y∣x)=x,y∑P~(x)P(y∣x)f(x,y)=1
求解带约束的最小化问题可以用拉格朗日对偶法。首先定义Lagrange函数:
L
(
P
,
w
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
+
w
0
(
1
−
∑
y
P
(
y
∣
x
)
)
+
∑
i
w
i
(
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
)
L(P,w) = \sum_{x,y}\tilde{P}(x)P(y|x)logP(y|x) + w_0 (1-\sum_{y}P(y|x))+ \\ \sum_i w_i(\sum_{x,y}\tilde{P}(x,y)f(x,y)-\sum_{x,y} \tilde{P}(x)P(y|x)f(x,y))
L(P,w)=x,y∑P~(x)P(y∣x)logP(y∣x)+w0(1−y∑P(y∣x))+i∑wi(x,y∑P~(x,y)f(x,y)−x,y∑P~(x)P(y∣x)f(x,y))
则有:
L ( P , w ) = { ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) 当 P 满 足 所 有 约 束 条 件 + ∞ 否 则 L(P,w)= \left\{ \begin{array}{c} \sum_{x,y}\tilde{P}(x)P(y|x)logP(y|x)& 当P满足所有约束条件\\ +\infty & 否则\end{array}\right. L(P,w)={∑x,yP~(x)P(y∣x)logP(y∣x)+∞当P满足所有约束条件否则
所以求解目标函数等价于求解
m
i
n
P
m
a
x
w
L
(
P
,
w
)
min_P max_w L(P,w)
minPmaxwL(P,w)又由于
L
(
P
,
w
)
L(P,w)
L(P,w)是关于P的凸函数,因此可以通过解对偶问题
m
a
x
w
m
i
n
P
L
(
P
,
w
)
max_w min_P L(P,w)
maxwminPL(P,w)来得到原始问题的解。首先求
m
i
n
P
L
(
P
,
w
)
min_P L(P,w)
minPL(P,w),记
P
w
(
y
∣
x
)
=
a
r
g
m
i
n
P
L
(
P
,
w
)
P_w(y|x) = argmin_P L(P,w)
Pw(y∣x)=argminPL(P,w),
L
(
P
,
w
)
L(P,w)
L(P,w)关于
P
(
y
∣
x
)
P(y|x)
P(y∣x)求导:
∂
L
(
P
,
w
)
∂
P
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
)
(
l
o
g
P
(
y
∣
x
)
+
1
)
−
∑
y
w
0
−
∑
i
w
i
∑
x
,
y
P
~
(
x
)
f
i
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
)
[
l
o
g
P
(
y
∣
x
)
+
1
−
w
0
−
∑
i
w
i
f
i
(
x
,
y
)
]
\begin{aligned} \frac{\partial L(P,w)}{\partial P(y|x)}& = \sum_{x,y} \tilde{P}(x)(logP(y|x)+1) -\sum_{y} w_0 -\sum_iw_i\sum_{x,y}\tilde{P}(x)f_i(x,y)\\ & = \sum_{x,y} \tilde{P}(x)[logP(y|x)+1-w_0-\sum_iw_if_i(x,y)] \end{aligned}
∂P(y∣x)∂L(P,w)=x,y∑P~(x)(logP(y∣x)+1)−y∑w0−i∑wix,y∑P~(x)fi(x,y)=x,y∑P~(x)[logP(y∣x)+1−w0−i∑wifi(x,y)]
由
∂
L
(
P
,
w
)
∂
P
(
y
∣
x
)
=
0
⇒
P
(
y
∣
x
)
=
e
x
p
(
∑
i
w
i
f
i
(
x
,
y
)
+
w
0
−
1
)
=
e
x
p
(
∑
i
w
i
f
i
(
x
,
y
)
)
e
x
p
(
1
−
w
0
)
\frac{\partial L(P,w)}{\partial P(y|x)} = 0 \Rightarrow P(y|x) = exp(\sum_iw_if_i(x,y)+w_0-1) = \frac{exp(\sum_iw_if_i(x,y))}{exp(1-w_0)}
∂P(y∣x)∂L(P,w)=0⇒P(y∣x)=exp(i∑wifi(x,y)+w0−1)=exp(1−w0)exp(∑iwifi(x,y))
由于
∑
y
P
(
y
∣
x
)
=
1
\sum_{y}P(y|x) =1
∑yP(y∣x)=1
⇒
P
w
(
y
∣
x
)
=
e
x
p
(
∑
i
w
i
f
i
(
x
,
y
)
)
Z
w
\Rightarrow P_w(y|x) = \frac{exp(\sum_iw_if_i(x,y))}{Z_w}
⇒Pw(y∣x)=Zwexp(∑iwifi(x,y))
其中
Z
w
Z_w
Zw为归一化因子。
在这一步我们发现 满足约束条件的函数形式有很多种,但是还要满足最大熵原则这个条件,就只能是指数函数形式!! 因此之后的很多通过特征函数来定义目标函数的算法例如CRF,MEMM都用到了最大熵的这个思想,因此它们的目标函数也是指数形式的!
再深究一下,最后结果中的指数函数 e x p exp exp,其实是来自于熵定义中的对数函数 l o g log log,而这个 l o g log log的形式又来自于信息量的定义,而 l o g log log正是可以满足信息量两个要求的最简单的函数了!很奇妙有木有~
言归正传,现在还需要求解
m
a
x
w
ϕ
(
w
)
max_w\phi(w)
maxwϕ(w),其中
ϕ
(
w
)
=
m
i
n
P
L
(
P
,
w
)
=
L
(
P
w
,
w
)
\phi(w) = min_P L(P,w) = L(P_w,w)
ϕ(w)=minPL(P,w)=L(Pw,w),因此
ϕ
(
w
)
=
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
l
o
g
P
w
(
y
∣
x
)
+
∑
i
w
i
(
∑
x
,
y
P
~
(
x
,
y
)
f
i
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
f
i
(
x
,
y
)
)
=
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
(
l
o
g
P
w
(
y
∣
x
)
−
∑
i
w
i
f
i
(
x
,
y
)
)
+
∑
x
,
y
P
~
(
x
,
y
)
∑
i
w
i
f
i
(
x
,
y
)
=
−
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
l
o
g
Z
w
+
∑
x
,
y
P
~
(
x
,
y
)
∑
i
w
i
f
i
(
x
,
y
)
\begin{aligned} \phi(w) & = \sum_{x,y}\tilde{P}(x)P_w(y|x)logP_w(y|x)+ \sum_iw_i(\sum_{x,y}\tilde{P}(x,y)f_i(x,y)-\sum_{x,y}\tilde{P}(x)P_w(y|x)f_i(x,y))\\ & = \sum_{x,y}\tilde{P}(x)P_w(y|x)(logP_w(y|x)-\sum_{i}w_if_i(x,y))+ \sum_{x,y}\tilde{P}(x,y)\sum_{i}w_if_i(x,y)\\ & = -\sum_{x,y}\tilde{P}(x)P_w(y|x)logZ_w + \sum_{x,y}\tilde{P}(x,y)\sum_{i}w_if_i(x,y) \end{aligned}
ϕ(w)=x,y∑P~(x)Pw(y∣x)logPw(y∣x)+i∑wi(x,y∑P~(x,y)fi(x,y)−x,y∑P~(x)Pw(y∣x)fi(x,y))=x,y∑P~(x)Pw(y∣x)(logPw(y∣x)−i∑wifi(x,y))+x,y∑P~(x,y)i∑wifi(x,y)=−x,y∑P~(x)Pw(y∣x)logZw+x,y∑P~(x,y)i∑wifi(x,y)
与此同时,我们可以来看一下最大熵函数的似然函数,由上面说到的最大似然的第二种形式:
L
(
P
;
w
)
=
l
o
g
∏
x
,
y
P
(
x
,
y
)
P
~
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
P
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
P
~
(
x
)
P
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
P
(
y
∣
x
)
+
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
P
~
(
x
)
\begin{aligned} L(P;w) &= log\prod_{x,y}P(x,y)^{\tilde{P}(x,y)}\\ & = \sum_{x,y}\tilde{P}(x,y)logP(x,y)\\ & =\sum_{x,y}\tilde{P}(x,y) log\tilde{P}(x)P(y|x)\\ & =\sum_{x,y}\tilde{P}(x,y)logP(y|x)+\sum_{x,y}\tilde{P}(x,y)log\tilde{P}(x) \end{aligned}
L(P;w)=logx,y∏P(x,y)P~(x,y)=x,y∑P~(x,y)logP(x,y)=x,y∑P~(x,y)logP~(x)P(y∣x)=x,y∑P~(x,y)logP(y∣x)+x,y∑P~(x,y)logP~(x)
后面一项
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
P
~
(
x
)
\sum_{x,y}\tilde{P}(x,y)log\tilde{P}(x)
∑x,yP~(x,y)logP~(x)为固定项,因此
L
(
P
w
;
w
)
=
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
P
w
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
,
y
)
(
∑
i
w
i
f
i
(
x
,
y
)
−
l
o
g
Z
w
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
w
i
f
i
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
l
o
g
Z
w
\begin{aligned} L(P_w;w) &=\sum_{x,y}\tilde{P}(x,y)logP_w(y|x)\\ & = \sum_{x,y}\tilde{P}(x,y) (\sum_{i}w_if_i(x,y)-logZ_w)\\ & = \sum_{x,y}\tilde{P}(x,y)\sum_{i}w_if_i(x,y) - \sum_{x,y}\tilde{P}(x)P_w(y|x)logZ_w \end{aligned}
L(Pw;w)=x,y∑P~(x,y)logPw(y∣x)=x,y∑P~(x,y)(i∑wifi(x,y)−logZw)=x,y∑P~(x,y)i∑wifi(x,y)−x,y∑P~(x)Pw(y∣x)logZw
因此 m a x w ϕ ( w ) = m a x w L ( P w ; w ) max_w\phi(w) = max_w L(P_w;w) maxwϕ(w)=maxwL(Pw;w)
所以最优化最大熵模型,等价于最大化最大似然函数 L ( P w ; w ) L(P_w;w) L(Pw;w)
最大熵模型与指数族分布的关系
首先介绍指数族分布,满足以下形式的分布称为指数族分布:
P
(
y
;
η
)
=
b
(
y
)
e
x
p
(
η
T
T
(
y
)
−
a
(
η
)
)
P(y;\eta) = b(y) exp(\eta^T T(y) - a(\eta))
P(y;η)=b(y)exp(ηTT(y)−a(η))
其中
T
(
y
)
T(y)
T(y) 称为充分统计量,该函数可以包含样本的完整特征;
a
(
η
)
a(\eta)
a(η) 称为对数配分函数,或 归一化因子,用来保证概率质量函数
P
(
y
;
η
)
P(y;\eta)
P(y;η) 满足
∑
i
P
(
y
i
;
η
)
=
1
\sum_{i}P(y_i;\eta) = 1
∑iP(yi;η)=1。
在 广义线性模型推导 线性回归模型,Logistic模型,多项Logistic模型 一文中,我们已经证明过常见的 高斯分布,伯努利分布都属于指数族分布。这里我们要证明 最大熵模型也满足指数族分布形式。
观察上一节中由最大熵原则得到的概率密度函数
P
w
(
y
∣
x
)
P_w(y|x)
Pw(y∣x):
P
w
(
y
∣
x
)
=
e
x
p
(
∑
i
w
i
f
i
(
x
,
y
)
+
w
0
−
1
)
=
e
x
p
(
w
T
f
(
x
,
y
)
+
w
0
−
1
)
P_w(y|x) = exp(\sum_iw_if_i(x,y)+w_0-1) = exp(w^Tf(x,y)+w_0-1)
Pw(y∣x)=exp(i∑wifi(x,y)+w0−1)=exp(wTf(x,y)+w0−1)
不难发现 P w ( y ∣ x ) P_w(y|x) Pw(y∣x) 满足指数族分布形式,且:
- b ( y ) = 1 b(y) = 1 b(y)=1
- T ( y ) = f ( x , y ) T(y) = f(x,y) T(y)=f(x,y)
- η = w \eta = w η=w
- a ( η ) = 1 − w 0 a(\eta) = 1-w_0 a(η)=1−w0
因此 最大熵模型也属于指数族分布,且其充分统计量就是特征函数本身。