最大熵模型(maximum entropy model )由最大熵原理推导出来。
1. 最大熵原理
最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
假设离散随机变量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有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
等概率表示了对事实的无知。因为没有更多的信息,这种判断是合理的。
有时,能从一些先验知识中得到一些对概率值的约束条件,例如:
P
(
A
)
+
P
(
B
)
=
3
10
P
(
A
)
+
P
(
B
)
+
P
(
C
)
+
P
(
D
)
+
P
(
E
)
=
1
P(A)+P(B)=\frac{3}{10} \\ P(A)+P(B)+P(C)+P(D)+P(E)=1
P(A)+P(B)=103P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这两个约束条件的概率分布仍然有无穷多个。在缺少其他信息的情况下,可以认为A与B是等概率的,C,D与E是等概率的,于是,
P
(
A
)
=
P
(
B
)
=
3
20
P
(
C
)
=
P
(
D
)
=
P
(
E
)
=
7
30
P(A)=P(B)=\frac{3}{20} \\ P(C)=P(D)=P(E) = \frac{7}{30}
P(A)=P(B)=203P(C)=P(D)=P(E)=307
如果还有第3个约束条件:
P
(
A
)
+
P
(
C
)
=
1
2
P
(
A
)
+
P
(
B
)
=
3
10
P
(
A
)
+
P
(
B
)
+
P
(
C
)
+
P
(
D
)
+
P
(
E
)
=
1
P(A)+P(C)=\frac{1}{2} \\ P(A)+P(B)=\frac{3}{10} \\ P(A)+P(B)+P(C)+P(D)+P(E)=1
P(A)+P(C)=21P(A)+P(B)=103P(A)+P(B)+P(C)+P(D)+P(E)=1
可以继续按照满足约束条件下求等概率的方法估计概率分布。这里不再继续讨论。以上概率模型学习的方法正式遵循了最大熵原理。
下图提供了用最大熵原理进行概率模型选择的几何解释。概率模型集合P可由欧式空间中的单纯形表示,如左图的三角形(2-单纯性)。一个点代表一个模型,整个单存形代表模型集合。一般地,这样的模型仍有无穷多个。学习的目的是在可能的模型集合中选择最优模型,而最大熵原理则给出最优模型选择的一个准则。
2. 最大熵模型的定义
最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型。
假设分类模型是一个条件概率分布 P ( Y ∣ X ) , X ∈ χ ⊂ R n P(Y|X),X\in \chi \subset \bold R^n P(Y∣X),X∈χ⊂Rn表示输入, Y ∈ γ Y\in \gamma Y∈γ表示输出, χ \chi χ和 γ \gamma γ分别是输入和输出的集合。这个模型表示的是对于给定的输入 X X X,以条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)输出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
)
\hat P(X,Y)
P^(X,Y)和
P
^
(
X
)
\hat P(X)
P^(X)表示。这里,
P
^
(
X
=
x
,
Y
=
y
)
=
v
(
X
=
x
,
Y
=
y
)
N
P
^
(
X
=
x
)
=
v
(
X
=
x
)
N
\hat P(X=x,Y=y)=\frac{v(X=x,Y=y)}{N} \\ \hat P(X=x)=\frac{v(X=x)}{N}
P^(X=x,Y=y)=Nv(X=x,Y=y)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出现的频数,N表示训练样本容量。
用特征函数(feature function,可以是任何实值函数)
f
(
x
,
y
)
f(x,y)
f(x,y)描述输入x和输出y之间的某一个事实。其定义是
f
(
x
,
y
)
=
{
1
,
x
与
y
满
足
某
一
事
实
0
,
否
则
f(x,y)=\begin{cases} 1, & x与y满足某一事实 \\ 0, & 否则 \end{cases}
f(x,y)={1,0,x与y满足某一事实否则
它是一个二值函数,当x和y满足这个事实时取值为1,否则取值为0.
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于经验分布
P
^
(
X
,
Y
)
\hat P(X,Y)
P^(X,Y)的期望值,用
E
P
^
(
f
)
E_{\hat P}(f)
EP^(f)表示。
E
p
^
(
f
)
=
∑
x
,
y
P
^
(
x
,
y
)
f
(
x
,
y
)
E_{\hat p}(f)=\sum_{x,y}\hat 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
)
\hat 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}\hat 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
)
(5)
E_p(f)=E_{\hat p}(f) \tag{5}
Ep(f)=Ep^(f)(5)
或
∑
x
,
y
P
^
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
=
∑
x
,
y
P
^
(
x
,
y
)
f
(
x
,
y
)
(6)
\sum_{x,y}\hat P(x)P(y|x)f(x,y)=\sum_{x,y}\hat P(x,y)f(x,y) \tag{6}
x,y∑P^(x)P(y∣x)f(x,y)=x,y∑P^(x,y)f(x,y)(6)
将式(5)或式(6)作为模型学习的约束条件。假如有n个特征函数
f
i
(
x
,
y
)
,
i
=
1
,
2
,
⋅
⋅
⋅
,
n
f_i(x,y),\quad i=1,2,···,n
fi(x,y),i=1,2,⋅⋅⋅,n,那么就有n个约束条件。
定义:(最大熵模型)假设满足所有约束条件的模型集合为
C
≡
{
P
∈
P
∣
E
p
(
f
i
)
=
E
P
^
(
f
i
)
,
i
=
1
,
2
,
⋅
⋅
⋅
,
n
}
C\equiv \{P\in \Rho|E_p(f_i)=E_{\hat 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}\hat P(x)P(y|x)logP(y|x)
H(P)=−x,y∑P^(x)P(y∣x)logP(y∣x)
则模型集合C中条件熵
H
(
P
)
H(P)
H(P)最大的模型称为最大熵模型。式中的对数为自然对数。