统计学习方法之最大熵模型

最大熵模型

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)=xP(x)logP(x)
熵满足下列不等式:
0 ≤ H ( P ) ≤ l o g ∣ X ∣ 0 \leq H(P) \leq log|X| 0H(P)logX
其中, ∣ 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(YX),XXRn表示输入, Y ∈ Υ Y \in \Upsilon YΥ表示输出, X \Chi X Υ \Upsilon Υ分别是输入和输出集合。此模型表示的是对于给定的输入 X X X,以条件概率 P ( Y ∣ X ) P(Y|X) P(YX)输出 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,xy0,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,yP~(x,y)f(x,y)
特征函数 f ( x , y ) f(x,y) f(x,y)关于模型 P ( Y ∣ X ) P(Y|X) P(YX)与经验分布 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,yP~(x)P(YX)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={PPEP(fi)=Ep(fi),i=1,2,...,n}
定义在条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)上的条件熵为:
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,yP~(x)P(yx)logP(yx)
则模型集合 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 PCmaxH(P)=x,yP~(x)P(yx)logP(yx)s.t.EP(fi)=EP~(fi),i=1,2,...,nyP(yx)=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 PCminH(P)=x,yP~(x)P(yx)logP(yx)s.t.EP(fi)EP~(fi)=0,i=1,2,...,nyP(yx)=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(1yP(yx))+i=1nwi(EP(fi)EP~(fi))=x,yP~(x)P(yx)logP(yx)+w0(1yP(yx))+i=1nwi(x,yP~(x,y)fi(x,y)x,yP~(x)P(yx)fi(x,y))
最优化的原始问题是:
min ⁡ P ∈ C max ⁡ w L ( P , w ) \min_{P \in C} \max_{w} L(P,w) PCminwmaxL(P,w)
对偶问题为:
max ⁡ w min ⁡ P ∈ C L ( P , w ) \max_{w} \min_{P \in C}L(P,w) wmaxPCminL(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) minPCL(P,w) min ⁡ P ∈ C L ( P , w ) \min_{P \in C}L(P,w) minPCL(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)=PCminL(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=PCargminL(P,w)=Pw(yx)

具体地,求 L ( P , w ) L(P,w) L(P,w) P ( y ∣ x ) P(y|x) P(yx)的偏导
∂ 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(yx)L(P,w)=x,yP~(x)(logP(yx)+1)yw0x,y(P~(x)i=1nwifi(x,y))=x,yP~(x)(logP(yx)+1w0i=1nwifi(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(yx)=exp(i=1nwifi(x,y)+w01)=exp(1w0)exp(i=1nwifi(x,y))
由于 ∑ y P ( y ∣ x ) = 1 \sum_yP(y|x)=1 yP(yx)=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(yx)=Zw(x)1exp(i=1nwifi(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)=yexp(i=1nwifi(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(yx)就是最大熵模型。 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(yx)是学习到的最优化模型,即最大熵模型的学习为对偶函数 Ψ ( 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} ew0w11=203ew01=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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值