最大熵模型

1. 最大熵原理

最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。

假设离散随机变量XXX的概率分布是P(X)P(X)P(X),则熵为
H(P)=−∑xP(x)logP(x)H(P)=-\sum_xP(x)logP(x)H(P)=xP(x)logP(x)
熵满足下列不等式:
0≤H(P)≤log∣X∣0 \leq H(P) \leq log|X|0H(P)logX
其中,∣X∣|X|XXXX的取值个数,当XXX服从均匀分布时,熵最大。

例: 假如随机变量XXX有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)=1P(A)+P(B)+P(C)+P(D)+P(E)=1P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这个约束条件的概率分布有无穷多个。如果没有任何其他信息,仍要对概率分布进行估计,一个办法就是认为这个分布中取各个值的概率是相等的:
P(A)=P(B)=P(C)=P(D)=P(E)=15P(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⊆RnP(Y|X),X \in \Chi \subseteq R^nP(YX),XXRn表示输入,Y∈ΥY \in \UpsilonYΥ表示输出,X\ChiXΥ\UpsilonΥ分别是输入和输出集合。此模型表示的是对于给定的输入XXX,以条件概率P(Y∣X)P(Y|X)P(YX)输出YYY。给定训练集T={(x1,y1),(x2,y2),...,(xN,yN)}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)表示训练样本中输入xxx出现的频数,NNN表示训练样本的容量。

用特征函数f(x,y)f(x,y)f(x,y)描述输入xxx和输出yyy之间的某一个事实。定义如下:
f(x,y)={1,x与y满足某一事实0,otherf(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)的期望值用EP~(f)E_{\tilde P}(f)EP~(f)表示:
EP~(f)=∑x,yP~(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)的期望值用EP(f)E_P(f)EP(f)表示:
EP(f)=∑x,yP~(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)

如果模型能够获取训练数据中的信息,那么就可以假设这两个期望相等。即:
EP(f)=EP~(f)E_P (f)=E_{\tilde P} (f)EP(f)=EP~(f)

最大熵模型: 假设满足所有约束条件的模型集合为:
C={P∈P∣EP(fi)=Ep(fi),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,yP~(x)P(y∣x)logP(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)
则模型集合CCC中条件熵H(P)H(P)H(P)最大的模型称为最大熵模型

3. 最大熵模型的学习

对于给定的训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)}以及特征函数fi(x,y),i=1,2,...,nf_i(x,y), i=1,2,...,nfi(x,y),i=1,2,...,n,最大熵模型的学习等价于约束最优化问题:
max⁡P∈CH(P)=−∑x,yP~(x)P(y∣x)logP(y∣x)s.t.EP(fi)=EP~(fi),i=1,2,...,n∑yP(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 \quadPCmaxH(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,yP~(x)P(y∣x)logP(y∣x)s.t.EP(fi)−EP~(fi)=0,i=1,2,...,n∑yP(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 \quadPCminH(P)=x,yP~(x)P(yx)logP(yx)s.t.EP(fi)EP~(fi)=0,i=1,2,...,nyP(yx)=1
引入拉格朗日乘子w0,w1,w2,...,wnw_0,w_1,w_2,...,w_nw0,w1,w2,...,wn,定义拉格朗日函数L(P,w)L(P,w)L(P,w)
L(P,w)=−H(P)+w0(1−∑yP(y∣x))+∑i=1nwi(EP(fi)−EP~(fi))=∑x,yP~(x)P(y∣x)logP(y∣x)+w0(1−∑yP(y∣x))+∑i=1nwi(∑x,yP~(x,y)fi(x,y)−∑x,yP~(x)P(y∣x)fi(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∈Cmax⁡wL(P,w)\min_{P \in C} \max_{w} L(P,w)PCminwmaxL(P,w)
对偶问题为:
max⁡wmin⁡P∈CL(P,w)\max_{w} \min_{P \in C}L(P,w)wmaxPCminL(P,w)
由于拉格朗日函数L(P,w)L(P,w)L(P,w)PPP的凸函数,所有原始问题的解与对偶问题的解等价。首先求解对偶问题内部的极小化问题min⁡P∈CL(P,w)\min_{P \in C}L(P,w)minPCL(P,w)min⁡P∈CL(P,w)\min_{P \in C}L(P,w)minPCL(P,w)www的函数,记作
Ψ(w)=min⁡P∈CL(P,w)=L(Pw,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)称为对偶函数,其解记作:
Pw=arg min⁡P∈CL(P,w)=Pw(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,yP~(x)(logP(y∣x)+1)−∑yw0−∑x,y(P~(x)∑i=1nwifi(x,y))=∑x,yP~(x)(logP(y∣x)+1−w0−∑i=1nwifi(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)=exp(∑i=1nwifi(x,y)+w0−1)=exp(∑i=1nwifi(x,y))exp(1−w0)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))
由于∑yP(y∣x)=1\sum_yP(y|x)=1yP(yx)=1,得
Pw(y∣x)=1Zw(x)exp(∑i=1nwifi(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))
其中
Zw(x)=∑yexp(∑i=1nwifi(x,y))Z_w(x)=\sum_yexp(\sum_{i=1}^nw_if_i(x,y))Zw(x)=yexp(i=1nwifi(x,y))
Zw(x)Z_w(x)Zw(x)称为规范化因子;fi(x,y)f_i(x,y)fi(x,y)是特征函数;wiw_iwi是特征的权值。

Pw=Pw(y∣x)P_w=P_w(y|x)Pw=Pw(yx)就是最大熵模型。www是最大熵模型中的参数向量。

之后,求解对偶问题外部的极大化问题
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∗=Pw∗=Pw∗(y∣x)P^*=P_{w^*}=P_{w^*}(y|x)P=Pw=Pw(yx)是学习到的最优化模型,即最大熵模型的学习为对偶函数Ψ(w)\Psi(w)Ψ(w)的极大化。

4. 例子分析

假设随机变量 XXX有5个取值 {A,B,C,D,E}\{A, B, C, D, E\}{A,B,C,D,E},满足约束条件P(A)+P(B)=310P(A)+P(B)=\frac {3} {10}P(A)+P(B)=103,求取各个值的概率。

解:

y1,y2,y3,y4,y5y_1,y_2,y_3,y_4,y_5y1,y2,y3,y4,y5分别表示A,B,C,D,EA,B,C,D,EA,B,C,D,E,于是最大熵模型学习的最优化问题为:
在这里插入图片描述

引进拉格朗日乘子w0,w1w_0,w_1w0,w1,定义拉格朗日函数
在这里插入图片描述

根据拉格朗日对偶性,可以通过求解对偶最优化问题得到原始最优化问题的解,所以求解
max⁡wmin⁡PL(P,w)\max_{w}\min_{P}L(P,w)wmaxPminL(P,w)
首先求解L(P,w)L(P,w)L(P,w)关于PPP的最小化问题,求偏导并
在这里插入图片描述

令其等于0,解得:
在这里插入图片描述

于是
在这里插入图片描述

再求解L(Pw,w)L(P_w,w)L(Pw,w)关于www的极大值问题:
在这里插入图片描述

分别对w0,w1w_0,w_1w0,w1求偏导并令其为0,得到
e−w0−w1−1=320e−w0−1=730e^{-w_0-w_1-1}=\frac{3} {20}\\ e^{-w_0-1}=\frac {7} {30}ew0w11=203ew01=307
于是得到所要求的概率分别为
P(y1)=P(y2)=320P(y_1)=P(y_2)=\frac {3} {20}P(y1)=P(y2)=203
P(y3)=P(y4)=P(y5)=720P(y_3)=P(y_4)= P(y_5) = \frac {7} {20}P(y3)=P(y4)=P(y5)=207

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐