最大熵模型与学习算法(附加拉格朗日对偶性详解)

本文深入探讨最大熵模型,解释最大熵原理及其在自然语言处理中的应用。通过几何解释阐述为何选择熵最大的模型,并详细讲解最大熵模型的学习过程,涉及拉格朗日对偶性、原始与对偶问题的关系以及模型参数的优化算法,如改进的迭代尺度法。最大熵模型学习与极大似然估计的关系也被揭示,强调它们在解决约束最优化问题中的重要性。
摘要由CSDN通过智能技术生成


该篇笔记主要思路源自《统计学习方法》

最大熵模型

最大熵原理

这是在自然语言处理中常用到的模型,熵代表信息的混乱程度。最大熵模型就是要在满足约束条件的模型集合中选择熵最大的模型,为什么要选择熵最大的模型呢?因为在不清楚真实数据分布的情况下,我们只能假设数据的分布是平均的,而概率越平均分布的模型的预测结果,它的熵就越大。个人认为熵越大从某种程度上说也能避免过拟合。
下图提供了用最大熵原理进行概率模型选择的几何解释。概率模型的集合可由欧式空间中的单纯形(simplex)表示,如下左图的三角形(2-单纯形)。一个点代表一个模型,整个单纯形代表模型集合。右图的一条直线对应一个约束条件,直线的交集对应满足所有约束条件的模型集合。一般这样的模型还是有无穷多个。而最大熵原理就是给出这无穷多个模型中,最优模型选择的一个准则。(下图来自《统计学习方法》)
在这里插入图片描述

最大熵模型的定义

假设分类模型是一个条件概率分布P(Y|X),X是n维向量,Y是以条件概率的输出。给定一个训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={ (x1,y1),(x2,y2),,(xN,yN)}
学习的目标是用最大熵原理选择最好的分类模型。
首先考虑模型应该满足的条件。给定训练集,可确定联合分布P(X, Y)的经验分布和边缘分布P(X)的经验分布
P ~ ( X = x , Y = y ) = ν ( X = x , Y = y ) N P ~ ( X = x ) = ν ( X = x ) N \begin{array}{l} \tilde{P}(X=x, Y=y)=\frac{\nu(X=x, Y=y)}{N} \\ \tilde{P}(X=x)=\frac{\nu(X=x)}{N} \end{array} P~(X=x,Y=y)=Nν(X=x,Y=y)P~(X=x)=Nν(X=x)
其中 ν \nu ν代表频数,N代表样本个数。
接下来,用特征函数来描述输入x和输出y之间的某个关系,特征函数定义为
f ( x , y ) = { 1 , x 与 y 满 足 某 种 待 指 定 的 关 系 0 , 不 满 足 f(x, y)=\left\{\begin{array}{l} 1,x与y满足某种待指定的关系 \\ 0,不满足 \end{array}\right. f(x,y)={ 1,xy0,
也就是当指定好特征函数描述的关系之后,x与y满足那就取值为1,不满足那就取值为0。
特征函数关于经验分布 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,yP~(x,y)f(x,y)
那引入预测模型之后,特征函数的期望值为
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)
如果预测模型能很好地预测准,能准确获取训练数据中的信息,那就可以假设这两个期望值相等,即
∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) = ∑ x , y P ~ ( x , y ) f ( x , y ) \sum_{x, y} \tilde{P}(x) P(y | x) f(x, y)=\sum_{x, y} \tilde{P}(x, y) f(x, y) x,yP~(x)P(yx)f(x,y)=x,yP~(x,y)f(x,y)
这就是模型学习的约束条件,有多少个特征函数就有多少个约束条件。因为特征函数相当于指定x和y之间的某种关系,x和y可能有多种关系。训练数据和某种关系已指定, E P ~ ( f ) E_{\tilde{P}}(f) EP~(f)就确定,由此就需要通过上面的等式寻找合适的P(Y|X)也就是预测模型了。那有可能有很多个模型能满足这些约束条件,由此就需要一个评判标准,来找到那个最合适的模型。这就引入了最大熵模型的概念,《统计学习方法》中如下定义
在这里插入图片描述

最大熵模型的学习

最大熵模型的学习过程就是求解最大熵模型的过程。最大熵模型的学习可以形式化为约束最优化问题。
对于给定的训练数据集与特征函数,最大熵模型的学习等价于约束最优化问题:
max ⁡ P ∈ C H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x )  s.t.  E P ( f i ) = E P ~ ( f i ) , i = 1 , 2 , ⋯   , n ∑ y P ( y ∣ x ) = 1 \begin{aligned} &\max _{P \in \mathbf{C}} H(P)=-\sum_{x, y} \tilde{P}(x) P(y | x) \log P(y | x)\\ &\text { s.t. } \quad E_{P}\left(f_{i}\right)=E_{\tilde{P}}\left(f_{i}\right), \quad i=1,2, \cdots, n\\ &\sum_{y} P(y | x)=1 \end{aligned} 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 ) log ⁡ P ( y ∣ x )  s.t.  E P ( f i ) − E P ~ ( f i ) = 0 , i = 1 , 2 , ⋯   , n ∑ y P ( y ∣ x ) = 1 \begin{aligned} &\min _{P \in \mathbf{C}}-H(P)=\sum_{x, y} \tilde{P}(x) P(y | x) \log P(y | x)\\ &\text { s.t. } \quad E_{P}\left(f_{i}\right)-E_{\tilde{P}}\left(f_{i}\right)=0, \quad i=1,2, \cdots, n\\ &\sum_{y} P(y | x)=1 \end{aligned} 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}, \cdots, w_{n} w0,w1,w2,,wn,定义如下拉格朗日函数
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 ) log ⁡ 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 ) ) \begin{aligned} L(P, w) \equiv &-H(P)+w_{0}\left(1-\sum_{y} P(y | x)\right)+\sum_{i=1}^{n} w_{i}\left(E_{\tilde{P}}\left(f_{i}\right)-E_{P}\left(f_{i}\right)\right) \\ =& \sum_{x, y} \tilde{P}(x) P(y | x) \log P(y | x)+w_{0}\left(1-\sum_{y} P(y | x)\right)+\\ & \sum_{i=1}^{n} w_{i}\left(\sum_{x, y} \tilde{P}(x, y) f_{i}(x, y)-\sum_{x, y} \tilde{P}(x) P(y | x) f_{i}(x, y)\right) \end{aligned} 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))


求解这个问题就涉及到——拉格朗日对偶性。这里插播一下相关的概念。

拉格朗日对偶性

对任意优化问题,都有需要优化的目标函数,以及优化变量X,还有约束条件(不等式约束或等式约束)。前提是在可行域(所有不等式等式变量定义域的交集)内找到这样的X,使得拉格朗日函数最大化原始问题如下
min ⁡ x ∈ R n f ( x )  s.t.  c i ( x ) ⩽ 0 , i = 1 , 2 , ⋯   , k h j ( x ) = 0 , j = 1 , 2 , ⋯   , l \begin{aligned} &\min _{x \in \mathbf{R}^{n}} f(x)\\ &\text { s.t. } \quad c_{i}(x) \leqslant 0, \quad i=1,2, \cdots, k\\ &h_{j}(x)=0, \quad j=1,2, \cdots, l \end{aligned} xRnminf(x) s.t. ci(x)0,i=1,2,,khj(x)=0,j=1,2,,l
其拉格朗日函数为
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) L(x, \alpha, \beta)=f(x)+\sum_{i=1}^{k} \alpha_{i} c_{i}(x)+\sum_{j=1}^{l} \beta_{j} h_{j}(x) L(x,α,β)=f(x)+i=1kαici(x)+j=1lβjhj(x)
为什么最大化呢,因为这是强迫x满足约束条件。如果不满足,有大于0的 c i c_i ci,就令 c i c_i ci前面那个系数无穷大,其他系数都是0,这样就无解了。那如果满足条件,找到的拉格朗日函数的极大值就是目标函数f(x)。
所以原始的问题就等价于极小极大化拉格朗日函数
min ⁡ x θ P ( x ) = min ⁡ x max ⁡ α , β : α i ⩾ 0 L ( x , α , β ) \min _{x} \theta_{P}(x)=\min _{x} \max _{\alpha, \beta: \alpha_{i} \geqslant 0} L(x, \alpha, \beta) xminθP(x)=xminα,β:αi0maxL(x,α,β)
上面就是一般拉格朗日乘子法的应用思路,需要注意的是上面的 α i \alpha_i αi都是大于等于0的。而拉格朗日对偶问题就是极大极小化拉格朗日函数。
定义
θ D ( α , β ) = min ⁡ x L ( x , α , β ) \theta_{D}(\alpha, \beta)=\min _{x} L(x, \alpha, \beta) θD(α,β)=xminL(x,α,β)
再考虑极大化 θ D \theta_D θD,即
max ⁡ α , β : α i ⩾ 0 θ D ( α , β ) = max ⁡ α , β : α i ⩾ 0 min ⁡ x L ( x , α , β ) \max _{\alpha, \beta: \alpha_{i} \geqslant 0} \theta_{D}(\alpha, \beta)=\max _{\alpha

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值