最大熵模型
1. 最大熵原理
最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。
假设离散随机变量
X
X
X的概率分布是
P
(
X
)
P(X)
P(X),则熵为
H
(
P
)
=
−
∑
x
P
(
x
)
l
o
g
P
(
x
)
H(P)=-\sum_xP(x)logP(x)
H(P)=−x∑P(x)logP(x)
熵满足下列不等式:
0
≤
H
(
P
)
≤
l
o
g
∣
X
∣
0 \leq H(P) \leq log|X|
0≤H(P)≤log∣X∣
其中,
∣
X
∣
|X|
∣X∣是
X
X
X的取值个数,当
X
X
X服从均匀分布时,熵最大。
例: 假如随机变量 X X X有5个取值 { A , B , C , D , E } \{A,B,C,D,E\} {A,B,C,D,E},要估计取各个值的概率 P ( A ) , P ( B ) , P ( C ) , P ( D ) , P ( E ) P(A),P(B),P(C),P(D),P(E) P(A),P(B),P(C),P(D),P(E)。
解:
这些概率值满足
P
(
A
)
+
P
(
B
)
+
P
(
C
)
+
P
(
D
)
+
P
(
E
)
=
1
P(A)+P(B)+P(C)+P(D)+P(E)=1
P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这个约束条件的概率分布有无穷多个。如果没有任何其他信息,仍要对概率分布进行估计,一个办法就是认为这个分布中取各个值的概率是相等的:
P
(
A
)
=
P
(
B
)
=
P
(
C
)
=
P
(
D
)
=
P
(
E
)
=
1
5
P(A)=P(B)=P(C)=P(D)=P(E)=\frac {1} {5}
P(A)=P(B)=P(C)=P(D)=P(E)=51
2. 最大熵模型的定义
假设分类模型是一个条件概率分布 P ( Y ∣ X ) , X ∈ X ⊆ R n P(Y|X),X \in \Chi \subseteq R^n P(Y∣X),X∈X⊆Rn表示输入, Y ∈ Υ Y \in \Upsilon Y∈Υ表示输出, X \Chi X和 Υ \Upsilon Υ分别是输入和输出集合。此模型表示的是对于给定的输入 X X X,以条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)输出 Y Y Y。给定训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},学习的目标是用最大熵原理选择最好的分类模型。
模型应该满足的条件:可以确定联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)的经验分布和边缘分布
P
(
X
)
P(X)
P(X)的经验分布,分布以
P
~
(
X
,
y
)
\tilde{P}(X,y)
P~(X,y)和
P
~
(
X
)
\tilde {P}(X)
P~(X)表示。
P
~
(
X
=
x
,
Y
=
y
)
=
v
(
X
=
x
,
Y
=
y
)
N
\tilde P(X=x, Y=y) = \frac {v(X=x, Y=y)} {N}
P~(X=x,Y=y)=Nv(X=x,Y=y)
P
~
(
X
=
x
)
=
v
(
X
=
x
)
N
\tilde P(X=x) = \frac {v(X=x)} {N}
P~(X=x)=Nv(X=x)
其中,
v
(
X
=
x
,
Y
=
y
)
v(X=x, Y=y)
v(X=x,Y=y)表示训练样本中样本
(
x
,
y
)
(x,y)
(x,y)出现的频数,
v
(
X
=
x
)
v(X=x)
v(X=x)表示训练样本中输入
x
x
x出现的频数,
N
N
N表示训练样本的容量。
用特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)描述输入
x
x
x和输出
y
y
y之间的某一个事实。定义如下:
f
(
x
,
y
)
=
{
1
,
x
与
y
满
足
某
一
事
实
0
,
o
t
h
e
r
f(x,y)=\begin{cases} 1, \quad x与y满足某一事实 \\ 0, \quad other \end{cases}
f(x,y)={1,x与y满足某一事实0,other
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于经验分布
P
~
(
X
,
Y
)
\tilde P(X, Y)
P~(X,Y)的期望值用
E
P
~
(
f
)
E_{\tilde P}(f)
EP~(f)表示:
E
P
~
(
f
)
=
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
E_{\tilde P}(f)=\sum_{x,y}\tilde P(x,y)f(x,y)
EP~(f)=x,y∑P~(x,y)f(x,y)
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于模型
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)与经验分布
P
~
(
x
)
\tilde P(x)
P~(x)的期望值用
E
P
(
f
)
E_P(f)
EP(f)表示:
E
P
(
f
)
=
∑
x
,
y
P
~
(
x
)
P
(
Y
∣
X
)
f
(
x
,
y
)
E_P(f)=\sum_{x,y}\tilde P(x) P(Y|X)f(x,y)
EP(f)=x,y∑P~(x)P(Y∣X)f(x,y)
如果模型能够获取训练数据中的信息,那么就可以假设这两个期望相等。即:
E
P
(
f
)
=
E
P
~
(
f
)
E_P (f)=E_{\tilde P} (f)
EP(f)=EP~(f)
最大熵模型: 假设满足所有约束条件的模型集合为:
C
=
{
P
∈
P
∣
E
P
(
f
i
)
=
E
p
(
f
i
)
,
i
=
1
,
2
,
.
.
.
,
n
}
C=\{P \in \Rho|E_P(f_i)=E_p(f_i), \quad i=1,2,...,n\}
C={P∈P∣EP(fi)=Ep(fi),i=1,2,...,n}
定义在条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)上的条件熵为:
H
(
P
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
H(P)=-\sum_{x,y} \tilde P (x)P(y|x)logP(y|x)
H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)
则模型集合
C
C
C中条件熵
H
(
P
)
H(P)
H(P)最大的模型称为最大熵模型
3. 最大熵模型的学习
对于给定的训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}
T={(x1,y1),(x2,y2),...,(xN,yN)}以及特征函数
f
i
(
x
,
y
)
,
i
=
1
,
2
,
.
.
.
,
n
f_i(x,y), i=1,2,...,n
fi(x,y),i=1,2,...,n,最大熵模型的学习等价于约束最优化问题:
max
P
∈
C
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
\max_{P \in C}H(P)=-\sum_{x,y}\tilde P(x)P(y|x)logP(y|x)\\ s.t. \quad E_P(f_i)=E_{\tilde P}(f_i), \quad i=1,2,...,n\\ \sum_{y}P(y|x)=1 \quad \quad \quad \quad \quad
P∈CmaxH(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)s.t.EP(fi)=EP~(fi),i=1,2,...,ny∑P(y∣x)=1
将最大值问题改写为等价的最小值问题:
min
P
∈
C
−
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
)
=
0
,
i
=
1
,
2
,
.
.
.
,
n
∑
y
P
(
y
∣
x
)
=
1
\min_{P \in C}-H(P)=\sum_{x,y}\tilde P(x)P(y|x)logP(y|x)\\ s.t. \quad E_P(f_i)-E_{\tilde P}(f_i)=0, \quad i=1,2,...,n\\ \sum_{y}P(y|x)=1 \quad \quad \quad \quad \quad \quad \quad
P∈Cmin−H(P)=x,y∑P~(x)P(y∣x)logP(y∣x)s.t.EP(fi)−EP~(fi)=0,i=1,2,...,ny∑P(y∣x)=1
引入拉格朗日乘子
w
0
,
w
1
,
w
2
,
.
.
.
,
w
n
w_0,w_1,w_2,...,w_n
w0,w1,w2,...,wn,定义拉格朗日函数
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
)
−
E
P
~
(
f
i
)
)
=
∑
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_{y}P(y|x))+\sum_{i=1}^nw_i(E_P(f_i)-E_{\tilde P}(f_i)) \\ =\sum_{x,y}\tilde P(x)P(y|x)logP(y|x)+w_0(1-\sum_{y}P(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(EP(fi)−EP~(fi))=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))
最优化的原始问题是:
min
P
∈
C
max
w
L
(
P
,
w
)
\min_{P \in C} \max_{w} L(P,w)
P∈CminwmaxL(P,w)
对偶问题为:
max
w
min
P
∈
C
L
(
P
,
w
)
\max_{w} \min_{P \in C}L(P,w)
wmaxP∈CminL(P,w)
由于拉格朗日函数
L
(
P
,
w
)
L(P,w)
L(P,w)是
P
P
P的凸函数,所有原始问题的解与对偶问题的解等价。首先求解对偶问题内部的极小化问题
min
P
∈
C
L
(
P
,
w
)
\min_{P \in C}L(P,w)
minP∈CL(P,w)。
min
P
∈
C
L
(
P
,
w
)
\min_{P \in C}L(P,w)
minP∈CL(P,w)是
w
w
w的函数,记作
Ψ
(
w
)
=
min
P
∈
C
L
(
P
,
w
)
=
L
(
P
w
,
w
)
\Psi(w)=\min_{P \in C}L(P,w)=L(P_w,w)
Ψ(w)=P∈CminL(P,w)=L(Pw,w)
Ψ
(
w
)
\Psi(w)
Ψ(w)称为对偶函数,其解记作:
P
w
=
arg min
P
∈
C
L
(
P
,
w
)
=
P
w
(
y
∣
x
)
P_w=\argmin_{P\in C}L(P,w)=P_w(y|x)
Pw=P∈CargminL(P,w)=Pw(y∣x)
具体地,求
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
−
∑
x
,
y
(
P
~
(
x
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
=
∑
x
,
y
P
~
(
x
)
(
l
o
g
P
(
y
∣
x
)
+
1
−
w
0
−
∑
i
=
1
n
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_{x,y}(\tilde P(x)\sum_{i=1}^nw_if_i(x,y)) \\ =\sum_{x,y}\tilde P(x)(logP(y|x)+1-w_0-\sum_{i=1}^nw_if_i(x,y)) \quad \quad \quad \quad \quad \quad\end{aligned}
∂P(y∣x)∂L(P,w)=x,y∑P~(x)(logP(y∣x)+1)−y∑w0−x,y∑(P~(x)i=1∑nwifi(x,y))=x,y∑P~(x)(logP(y∣x)+1−w0−i=1∑nwifi(x,y))
令偏导等于0,则有
P
(
y
∣
x
)
=
e
x
p
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
+
w
0
−
1
)
=
e
x
p
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
e
x
p
(
1
−
w
0
)
P(y|x)=exp(\sum_{i=1}^nw_if_i(x,y)+w_0-1)=\frac {exp(\sum_{i=1}^nw_if_i(x,y))} {exp(1-w_0)}
P(y∣x)=exp(i=1∑nwifi(x,y)+w0−1)=exp(1−w0)exp(∑i=1nwifi(x,y))
由于
∑
y
P
(
y
∣
x
)
=
1
\sum_yP(y|x)=1
∑yP(y∣x)=1,得
P
w
(
y
∣
x
)
=
1
Z
w
(
x
)
e
x
p
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
P_w(y|x)= \frac {1} {Z_w(x)}exp(\sum_{i=1}^nw_if_i(x,y))
Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y))
其中
Z
w
(
x
)
=
∑
y
e
x
p
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
Z_w(x)=\sum_yexp(\sum_{i=1}^nw_if_i(x,y))
Zw(x)=y∑exp(i=1∑nwifi(x,y))
Z
w
(
x
)
Z_w(x)
Zw(x)称为规范化因子;
f
i
(
x
,
y
)
f_i(x,y)
fi(x,y)是特征函数;
w
i
w_i
wi是特征的权值。
P w = P w ( y ∣ x ) P_w=P_w(y|x) Pw=Pw(y∣x)就是最大熵模型。 w w w是最大熵模型中的参数向量。
之后,求解对偶问题外部的极大化问题
max
w
Ψ
(
w
)
\max_{w} \Psi(w)
wmaxΨ(w)
将其解记为
w
∗
w^*
w∗,即
w
∗
=
arg max
w
Ψ
(
w
)
w^*=\argmax_{w} \Psi(w)
w∗=wargmaxΨ(w)
这里,
P
∗
=
P
w
∗
=
P
w
∗
(
y
∣
x
)
P^*=P_{w^*}=P_{w^*}(y|x)
P∗=Pw∗=Pw∗(y∣x)是学习到的最优化模型,即最大熵模型的学习为对偶函数
Ψ
(
w
)
\Psi(w)
Ψ(w)的极大化。
4. 例子分析
假设随机变量 X X X有5个取值 { A , B , C , D , E } \{A, B, C, D, E\} {A,B,C,D,E},满足约束条件 P ( A ) + P ( B ) = 3 10 P(A)+P(B)=\frac {3} {10} P(A)+P(B)=103,求取各个值的概率。
解:
用
y
1
,
y
2
,
y
3
,
y
4
,
y
5
y_1,y_2,y_3,y_4,y_5
y1,y2,y3,y4,y5分别表示
A
,
B
,
C
,
D
,
E
A,B,C,D,E
A,B,C,D,E,于是最大熵模型学习的最优化问题为:
引进拉格朗日乘子
w
0
,
w
1
w_0,w_1
w0,w1,定义拉格朗日函数
根据拉格朗日对偶性,可以通过求解对偶最优化问题得到原始最优化问题的解,所以求解
max
w
min
P
L
(
P
,
w
)
\max_{w}\min_{P}L(P,w)
wmaxPminL(P,w)
首先求解
L
(
P
,
w
)
L(P,w)
L(P,w)关于
P
P
P的最小化问题,求偏导并
令其等于0,解得:
于是
再求解
L
(
P
w
,
w
)
L(P_w,w)
L(Pw,w)关于
w
w
w的极大值问题:
分别对
w
0
,
w
1
w_0,w_1
w0,w1求偏导并令其为0,得到
e
−
w
0
−
w
1
−
1
=
3
20
e
−
w
0
−
1
=
7
30
e^{-w_0-w_1-1}=\frac{3} {20}\\ e^{-w_0-1}=\frac {7} {30}
e−w0−w1−1=203e−w0−1=307
于是得到所要求的概率分别为
P
(
y
1
)
=
P
(
y
2
)
=
3
20
P(y_1)=P(y_2)=\frac {3} {20}
P(y1)=P(y2)=203
P
(
y
3
)
=
P
(
y
4
)
=
P
(
y
5
)
=
7
20
P(y_3)=P(y_4)= P(y_5) = \frac {7} {20}
P(y3)=P(y4)=P(y5)=207