后续会补充案例。
1 最大熵模型
最大熵模型(Maximum Entropy Model,MEM)是由最大熵原理推导实现。这里先介绍最大熵定理,然后讲解最大熵模型的推导等过程。
1.1 最大熵原理
最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型时最好的模型。其数学表达式如下:
假设离散随机变量
X
X
X的概率分布是
P
(
X
)
P(X)
P(X),则其熵为
H
(
P
)
=
−
∑
x
P
(
x
)
l
o
g
(
x
)
,并且
0
≤
H
(
P
)
≤
l
o
g
∣
X
∣
H(P)=-\sum_{x}P(x)log(x) ,并且 0\le H(P)\le log|X|
H(P)=−x∑P(x)log(x),并且0≤H(P)≤log∣X∣其中,
∣
X
∣
|X|
∣X∣是
X
X
X的取值个数,当且仅当
X
X
X的分布是均匀分布时,熵最大。直观地,最大熵原理认为,要选择的概率模型首先必须满足已有##的事实(即约束条件),而在没有更多信息的情况下,那些不确定的部分都是“等可能的”。
1.2 最大熵模型定义及学习
1.2.1 最大熵模型定义
给定训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } T=\{(x_{1},y_{1}),(x_{2},y_{2}),\dots,(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 = 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)表示 T T T中样本 ( x , y ) (x,y) (x,y)出现的频数。 - 特征函数及约束条件
在使用最大熵模型对训练数据进行学习时,必须重现训练数据的一些统计信息,这些统计信息即构成了最大熵模型的约束条件。一般使用特征函数来表示这些统计信息。特征函数可以是任意实数函数,也可以是简单的二值定义方式。举例如下: f ( x , y ) = { 1 x,y满足某个条件 0 其他情况 f(x,y)=\begin{cases}1 \space \text{x,y满足某个条件} \\ 0 \space \text{其他情况}\end{cases} f(x,y)={1 x,y满足某个条件0 其他情况这里的 f ( x , y ) f(x,y) f(x,y)除了表示特征 f f f对某个特征的训练样本 ( x , y ) (x,y) (x,y)的取值,还表示整个特征函数 f f f。
f f f在经验分布 p ~ ( x , y ) \tilde{p}(x,y) p~(x,y)中的经验期望就是模型要重现的统计量。即: 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 f f在模型中的期望可以表示为: E p ( f ) = ∑ x , y p ( x , y ) f ( x , y ) = ∑ x , y p ( x ) p ( y ∣ x ) f ( x , y ) ≈ ∑ x , y p ~ ( x ) p ( y ∣ x ) f ( x , y ) E_{p}(f)=\sum_{x,y}p(x,y)f(x,y)=\sum_{x,y}p(x)p(y|x)f(x,y)\approx\sum_{x,y}\tilde{p}(x)p(y|x)f(x,y) Ep(f)=x,y∑p(x,y)f(x,y)=x,y∑p(x)p(y∣x)f(x,y)≈x,y∑p~(x)p(y∣x)f(x,y)其中 p ~ ( x ) \tilde{p}(x) p~(x)是 x x x在训练样本中的概率分布。为了使模型重现训练样本中的统计量,限制 f f f的经验期望与模型期望相等,即 E p ~ ( f ) = E p ( f ) E_{\tilde{p}}(f)=E_{p}(f) Ep~(f)=Ep(f)。这个公式即为最大熵模型的约束条件。另外要注意,如果有 n n n个特征函数 f i f_{i} fi,那么就有 n n n个约束条件。 - 最大熵模型完整定义
对于给定的训练数据集 T T T和特征函数集合 f i f_{i} fi,最大熵模型就是求解如下带约束的极值问题: m a x p H ( P ) = − ∑ x , y p ~ ( x ) p ( y ∣ x ) l o g p ( y ∣ x ) s . t . ∑ y p ( y ∣ x ) = 1 E p ( f i ) = E p ~ ( f i ) , i = 1 , 2 , … , n (1) \begin{aligned}\underset {p}{max} H(P) &=-\sum_{x,y}\tilde{p}(x)p(y|x)logp(y|x)\\ s.t. \space & \sum_{y}p(y|x)=1\\ & E{p}(f_{i})=E_{\tilde{p}}(f_{i}),i=1,2,\dots,n\end{aligned} \tag{1} pmaxH(P)s.t. =−x,y∑p~(x)p(y∣x)logp(y∣x)y∑p(y∣x)=1Ep(fi)=Ep~(fi),i=1,2,…,n(1)
1.2.2 最大熵模型学习
最大熵模型的学习过程就是依据训练数据集求解最大熵模型的参数过程。可以将式(1)转化为下述等价问题。
m
a
x
w
m
i
n
p
L
(
P
,
w
)
(2)
\underset{w}{max} \underset{p}{min}L(P,w)\tag{2}
wmaxpminL(P,w)(2)其中
L
(
P
,
w
)
=
−
H
(
P
)
+
w
0
(
1
−
∑
y
p
(
y
∣
x
)
)
+
∑
i
=
0
n
w
i
(
E
p
(
f
i
)
−
E
p
~
(
f
i
)
)
L(P,w)=-H(P)+w_{0}(1-\sum_{y}p(y|x))+\sum_{i=0}^{n}w_{i}(E_{p}(f_{i})-E_{\tilde{p}}(f_{i}))
L(P,w)=−H(P)+w0(1−∑yp(y∣x))+∑i=0nwi(Ep(fi)−Ep~(fi))
先求解式(2)内部的极小化问题
m
i
n
p
L
(
p
,
w
)
\underset{p}{min}L(p,w)
pminL(p,w),并将其记为
w
w
w的函数。如下:
Ψ
(
w
)
=
m
i
n
p
L
(
P
,
w
)
=
L
(
P
w
,
w
)
\Psi(w)=\underset{p}{min}L(P,w)=L(P_{w},w)
Ψ(w)=pminL(P,w)=L(Pw,w)其中,
P
w
(
y
∣
x
)
=
1
Z
w
(
x
)
e
x
p
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
,
Z
w
(
x
)
=
∑
y
e
x
p
(
∑
i
n
w
i
f
i
(
x
,
y
)
)
P_{w}(y|x)=\frac{1}{Z_{w}(x)}exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y)),Z_{w}(x)=\sum_{y}exp(\sum_{i}^{n}w_{i}f_{i}(x,y))
Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y)),Zw(x)=y∑exp(i∑nwifi(x,y))所以,最大熵模型最后要求解的问题为:
m
a
x
w
Ψ
(
w
)
(3)
\underset{w}{max}\Psi(w)\tag{3}
wmaxΨ(w)(3)
w
w
w即为要从训练集中学习的参数,也是特征特征的权重。
1.3 最大熵模型的应用
最大熵模型学习完成之后,就可以用模型来完成各种应用了,这就是模型执行。模型执行就是从头到尾扫描测试数据集,根据模型训练阶段确定的特征生成所有可能的特征,并根据这些特征,调用最大熵模型的参数,得到当前上下文环境中的参数值。哪个标签的参数值最大,最大熵模型就认为在当前语境中应该将结果标注为该标签。
参考资料
- https://zhuanlan.zhihu.com/p/540422527
- 《统计学习方法》
- 《模型思维:简化世界的人工智能模型》