有任何的书写错误、排版错误、概念错误等,希望大家包含指正。
由于字数限制,分成两篇博客。
【机器学习】最大熵模型【上】最大熵模型概述与约束最优化问题
【机器学习】最大熵模型【下】最大熵模型学习的最优化算法
这里的最优化算法就是用于训练最大熵模型参数的算法,即选取有效的特征函数权重 w i w_i wi。具体来说,就是极大化对偶函数,确定对偶函数取极大值时的权重 w i w_i wi。
极大化目标函数(对偶函数)没有显式的解析解。直观上理解,由于问题的约束条件包含的特征函数并非只会被某个样本触发,而是可能被某类样本触发;而且,一个样本很可能触发多个特征函数。这种复杂性让最大熵模型具备足够的泛化能力,但是当一个样本不只触发一个特征时, P w P_w Pw 中指数项中起作用的权重将不止一个,此时无法求出解析解。
从最优化的观点看,目标函数具有很好的性质。它是光滑的凸函数,因此多种最优化方法都适用,保证能找到全局最优解。常用的方法有梯度下降法、牛顿法以及拟牛顿法。牛顿法和拟牛顿法一般收敛速度较快。但是这里我们不对这些通用方法进行讨论,而将重点放在通用迭代尺度法(Generalized Iterative Scaling,GIS)和改进的迭代尺度法(Improved Iterative Scaling,IIS),因为二者是为最大熵模型量身定制的方法。
不对两种方法进行详细对比。
GIS 算法要求对训练样本集中每个实例的任意 ( x , y ) ∈ X × Y (x,y)\in \mathcal X\times \mathcal Y (x,y)∈X×Y,特征函数之和为常数,即对每个实例的 n n n 个特征函数均满足 ∑ i = 1 n f i ( x , y ) = C \sum\limits_{i=1}^n f_i(x,y)=C i=1∑nfi(x,y)=C( C C C 为常数)。如果该条件不能满足,则在训练集中取:
C = max x ∈ X , y ∈ Y ∑ i = 1 n f i ( x , y ) C = \max_{x\in \mathcal X, y\in \mathcal Y} \sum_{i=1}^n f_i(x,y) C=x∈X,y∈Ymaxi=1∑nfi(x,y)
C C C 表示训练集中包含特征最多的那个样本所包含的特征数。另外,增加一个特征函数 f m : f m ( x , y ) = C − ∑ i = 1 n f i ( x , y ) f_m:f_m(x,y) = C - \sum\limits_{i=1}^nf_i(x,y) fm:fm(x,y)=C−i=1∑nfi(x,y)。其中, m = n + 1 m=n+1 m=n+1。与其他特征函数不一样, f m ( x , y ) f_m(x,y) fm(x,y) 的取值范围为 0 ∼ C 0\sim C 0∼C。
GIS 算法描述如下:
初始化: w i = 0 , i = 1 , 2 , … , m w_i = 0,\space i=1,2,\dots, m wi=0, i=1,2,…,m;
根据公式
E P ~ ( f i ) = ∑ x , y P ~ ( x , y ) f i ( x , y ) E_{\tilde P}(f_i) = \sum_{x,y}\tilde P(x,y)f_i(x,y) EP~(fi)=x,y∑P~(x,y)fi(x,y)
计算每个特征函数 f i f_i fi 的训练样本期望值 E P ~ ( f i ) E_{\tilde P}(f_i) EP~(fi):
利用式 ( 11 ) (11) (11) 和式 ( 12 ) (12) (12) 计算概率 P ( y ∣ x ) P(y\mid x) P(y∣x);
若满足终止条件,则结束迭代;否则,修正每个 w i w_i wi:
w i ( t + 1 ) = w i ( t ) + λ log E P ~ ( f i ) E P ( t ) ( f i ) w^{(t+1)}_i = w^{(t)}_i + \lambda \log \frac{E_{\tilde P}(f_i)}{E_{P^{(t)}}(f_i)} wi(t+1)=wi(t)+λlogEP(t)(fi)EP~(fi)
其中 λ \lambda λ 类似于学习率; t t t 为循环迭代次数。继续下轮迭代。
算法结束,确定参数向量 w w w,计算出每个 P ( y ∣ x ) P(y\mid x) P(y∣x)。
算法中的参数 λ \lambda λ 作用类似于学习率,可将其取为 1 1 1,在实际应用中常取为 1 / C 1/C 1/C。迭代公式中的
Δ w i ( t ) = λ log E P ~ ( f i ) E P ( t ) ( f i ) \Delta w_i^{(t)} = \lambda \log \frac{E_{\tilde P}(f_i)}{E_{P^{(t)}}(f_i)} Δwi(t)=λlogEP(t)(fi)EP~(fi)
为时刻 t t t 对于特征函数 f i f_i fi 权重 w i w_i wi 的校正量。其中 log E P ~ ( f i ) E P ( t ) ( f i ) \log \frac{E_{\tilde P}(f_i)}{E_{P^{(t)}}(f_i)} logEP(t)(fi)EP~(fi) 的地位相当于梯度下降法中的梯度,但它本身并不是梯度,我们可以这样直观地理解迭代公式:
每次迭代,先利用当前时刻 t t t 对应的模型参数 w i ( t ) w^{(t)}_i wi(t) 来计算 E P ( t ) ( f i ) E_{P^{(t)}}(f_i) EP(t)(fi),然后逐个将其与相应的经验分布期望 E P ~ ( f i ) E_{\tilde P}(f_i) EP~(fi) 作比较,其偏差程度通过 log E P ~ ( f i ) E P ( t ) ( f i ) \log \frac{E_{\tilde P}(f_i)}{E_{P^{(t)}}(f_i)} logEP(t)(fi)EP~(fi) 进行刻画。具体地
① 若 E P ( t ) ( f i ) < E P ~ ( f i ) E_{P^{(t)}}(f_i)
② 若 E P ( t ) ( f i ) > E P ~ ( f i ) E_{P^{(t)}}(f_i)>E_{\tilde P}(f_i) EP(t)(fi)>EP~(fi),则 Δ w i ( t ) < 0 \Delta w_i^{(t)}<0 Δwi(t)<0,即将 w i w_i wi 变小;
③ 若 E P ( t ) ( f i ) = E P ~ ( f i ) E_{P^{(t)}}(f_i)=E_{\tilde P}(f_i) EP(t)(fi)=EP~(fi),则 Δ w i ( t ) = 0 \Delta w_i^{(t)}=0 Δwi(t)=0,保持 w i w_i wi 不变。因为当前得到的关于 f i f_i fi 的期望值与经验分布期望值相等。
至于迭代终止的条件,可以为限定迭代的次数,也可以是对数似然 L ( P w ) L(P_w) L(Pw) 的变化量小于某个阈值,或者最大的权重变化量小于阈值,比如 max i ∣ log E P ~ ( f i ) E P ( t ) ( f i ) ∣ < ε \max\limits_i \vert \log \frac{E_{\tilde P}(f_i)}{E_{P^{(t)}}(f_i)} \vert < \varepsilon imax∣logEP(t)(fi)EP~(fi)∣<ε。
由于参数向量 w w w 的收敛速度受 λ \lambda λ 取值的影响,而且不稳定,即使在64位计算机上都会出现溢出。因此,在实际应用中很少有人适用 GIS 算法,而是使用改进后的 GIS 算法,即 IIS 算法。
IIS 的想法是:假设最大熵当前的参数向量是 w = ( w 1 , w 2 , … , w n ) T w=(w_1,w_2,\dots, w_n)^T w=(w1,w2,…,wn)T,我们希望找到一个新的参数向量 w + δ = ( w 1 + δ 1 , w 2 + δ 2 , … , w n + δ n ) T w+\delta = (w_1+\delta_1,w_2+\delta_2,\dots,w_n+\delta_n)^T w+δ=(w1+δ1,w2+δ2,…,wn+δn)T,使得模型的对数似然函数值增大。如果能有这样一种参数向量更新的方法,那么就可以重复使用这一方法,直至找到对数似然函数的最大值。注意,这里的 n n n 可以是引入类似于 GIS 算法中新特征函数后的特征函数总数,也可以是未引入的特征函数总数。
模型参数从 w w w 到 w + δ w+\delta w+δ,对数似然函数 L ( w ) L(w) L(w) 的改变量是
L ( w + δ ) − L ( w ) = ∑ x , y P ~ ( x , y ) log P w + δ ( y ∣ x ) − ∑ x , y P ~ ( x , y ) log P w ( y ∣ x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) − ∑ x P ~ ( x ) log Z w + δ ( x ) Z w ( x ) \begin{align} L({w+\delta}) - L(w) & = \sum_{x,y} \tilde P(x,y) \log P_{w+\delta} (y\mid x) - \sum_{x,y} \tilde P(x,y) \log P_w(y\mid x) \notag\\ &= \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n \delta_i f_i(x,y) - \sum_{x} \tilde P(x) \log \frac{Z_{w+\delta}(x)}{Z_w(x)} \notag\\ \end{align} L(w+δ)−L(w)=x,y∑P~(x,y)logPw+δ(y∣x)−x,y∑P~(x,y)logPw(y∣x)=x,y∑P~(x,y)i=1∑nδifi(x,y)−x∑P~(x)logZw(x)Zw+δ(x)
利用不等式
− log α ≥ 1 − α , α > 0 -\log \alpha \ge 1-\alpha,\space\space\space\space \alpha >0 −logα≥1−α, α>0
建立对数似然函数改变量的下界
L ( w + δ ) − L ( w ) ≥ ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + ∑ x P ~ ( x ) ( 1 − Z w + δ ( x ) Z w ( x ) ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) Z w + δ ( x ) Z w ( x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y exp ( ∑ i = 1 n ( w i + δ i ) f i ( x , y ) ) Z w ( x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) exp ( ∑ i = 1 n δ i f i ( x , y ) ) Z w ( x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) exp ∑ i = 1 n δ i f i ( x , y ) \begin{align} L(w+\delta) - L(w) &\ge \sum_{x,y} \tilde P(x, y) \sum_{i=1}^n \delta_i f_i(x,y) + \sum_x \tilde P(x)\left( 1- \frac{Z_{w+\delta}(x)}{Z_w(x)} \right)\notag\\ &= \sum_{x,y} \tilde P(x, y) \sum_{i=1}^n \delta_i f_i(x,y) + 1- \sum_x \tilde P(x)\frac{Z_{w+\delta}(x)}{Z_w(x)} \notag\\ &= \sum_{x,y} \tilde P(x, y) \sum_{i=1}^n \delta_i f_i(x,y) + 1- \sum_x \tilde P(x)\frac{ \sum\limits_y \exp\left( \sum\limits_{i=1}^n(w_i+\delta_i)f_i(x,y) \right) }{Z_w(x)} \notag \\ &= \sum_{x,y} \tilde P(x, y) \sum_{i=1}^n \delta_i f_i(x,y) + 1- \sum_x \tilde P(x) \sum\limits_y \frac{ \exp\left( \sum\limits_{i=1}^nw_if_i(x,y) \right) \exp\left( \sum\limits_{i=1}^n\delta_if_i(x,y) \right)}{Z_w(x)} \notag\\ &= \sum_{x,y} \tilde P(x, y) \sum_{i=1}^n \delta_i f_i(x,y) + 1- \sum_x \tilde P(x) \sum\limits_y P_w(y\mid x) \exp \sum\limits_{i=1}^n\delta_if_i(x,y) \notag \end{align} L(w+δ)−L(w)≥x,y∑P~(x,y)i=1∑nδifi(x,y)+x∑P~(x)(1−Zw(x)Zw+δ(x))=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)Zw(x)Zw+δ(x)=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)Zw(x)y∑exp(i=1∑n(wi+δi)fi(x,y))=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Zw(x)exp(i=1∑nwifi(x,y))exp(i=1∑nδifi(x,y))=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)expi=1∑nδifi(x,y)
将右端记为
A ( δ ∣ w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) exp ∑ i = 1 n δ i f i ( x , y ) A(\delta \mid w) = \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n \delta_if_i(x,y) + 1 - \sum_x \tilde P(x) \sum\limits_y P_w(y\mid x) \exp \sum\limits_{i=1}^n\delta_if_i(x,y) A(δ∣w)=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)expi=1∑nδifi(x,y)
于是有
L ( w + δ ) − L ( w ) ≥ A ( δ ∣ w ) L(w+\delta) - L(w) \ge A(\delta\mid w) L(w+δ)−L(w)≥A(δ∣w)
即 A ( δ ∣ w ) A(\delta\mid w) A(δ∣w) 是对数似然函数改变量的一个下界。
如果能找到适当的 δ \delta δ 使下界 A ( δ ∣ w ) A(\delta\mid w) A(δ∣w) 提高,那么对数似然函数也会提高。然而,函数 A ( δ ∣ w ) A(\delta \mid w) A(δ∣w) 中的 δ \delta δ 是一个向量,含有多个变量,不易同时优化。因此,一次只优化其中一个变量 δ i \delta_i δi,而固定其他向量 δ j \delta_j δj, i ≠ j i\ne j i=j。
为了达到这一目的,IIS 进一步降低下界 A ( δ ∣ w ) A(\delta\mid w) A(δ∣w)。具体地,IIS 算法引进一个变量 f # ( x , y ) f^\#(x,y) f#(x,y)
f # ( x , y ) = ∑ i f i ( x , y ) f^\#(x,y) = \sum_i f_i(x,y) f#(x,y)=i∑fi(x,y)
因为 f i f_i fi 是二值函数,故 f # ( x , y ) f^\#(x,y) f#(x,y) 表示所有特征信息在 ( x , y ) (x,y) (x,y) 出现的次数。这样, A ( δ ∣ w ) A(\delta\mid w) A(δ∣w) 可以改写为
A ( δ ∣ w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) exp ( f # ( x , y ) ∑ i = 1 n δ i f i ( x , y ) f # ( x , y ) ) (16) A(\delta \mid w) = \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n \delta_if_i(x,y) + 1 - \sum_x \tilde P(x) \sum\limits_y P_w(y\mid x) \exp \left( f^\#(x,y) \sum\limits_{i=1}^n\frac{\delta_if_i(x,y)}{f^\#(x,y)} \right) \tag{16} A(δ∣w)=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)exp(f#(x,y)i=1∑nf#(x,y)δifi(x,y))(16)
利用指数函数的凸性以及对任意 i i i,有 f i ( x , y ) f # ( x , y ) ≥ 0 \frac{f_i(x,y)}{f^\#(x,y)}\ge 0 f#(x,y)fi(x,y)≥0 且 ∑ i = 1 n f i ( x , y ) f # ( x , y ) = 1 \sum\limits_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}=1 i=1∑nf#(x,y)fi(x,y)=1 这一事实,根据 Jensen 不等式,得到
exp ( ∑ i = 1 n f i ( x , y ) f # ( x , y ) δ i f # ( x , y ) ) ≤ ∑ i = 1 n f i ( x , y ) f # ( x , y ) exp ( δ i f # ( x , y ) ) \exp\left( \sum_{i=1}^n \frac{f_i(x,y)}{f^\#(x,y)}\delta_if^\#(x,y) \right) \le \sum_{i=1}^n \frac{f_i(x,y)}{f^\#(x,y)}\exp \left( \delta_i f^\#(x,y) \right) exp(i=1∑nf#(x,y)fi(x,y)δif#(x,y))≤i=1∑nf#(x,y)fi(x,y)exp(δif#(x,y))
于是式 ( 16 ) (16) (16) 可改写为
A ( δ ∣ w ) ≥ ∑ x , y P ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) ∑ i = 1 n ( f i ( x , y ) f # ( x , y ) ) exp ( δ i f # ( x , y ) ) A(\delta \mid w) \ge \sum_{x,y} P(x,y) \sum_{i=1}^n \delta_if_i(x,y) + 1 - \sum_x \tilde P(x) \sum_y P_w(y\mid x) \sum_{i=1}^n\left( \frac{f_i(x,y)}{f^\#(x,y)} \right)\exp\left( \delta_if^\#(x,y) \right) A(δ∣w)≥x,y∑P(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)i=1∑n(f#(x,y)fi(x,y))exp(δif#(x,y))
将右端记为
B ( δ ∣ w ) = ∑ x , y P ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) ∑ i = 1 n ( f i ( x , y ) f # ( x , y ) ) exp ( δ i f # ( x , y ) ) B(\delta \mid w) = \sum_{x,y} P(x,y) \sum_{i=1}^n \delta_if_i(x,y) + 1 - \sum_x \tilde P(x) \sum_y P_w(y\mid x) \sum_{i=1}^n\left( \frac{f_i(x,y)}{f^\#(x,y)} \right)\exp\left( \delta_if^\#(x,y) \right) B(δ∣w)=x,y∑P(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)i=1∑n(f#(x,y)fi(x,y))exp(δif#(x,y))
于是得到
L ( w + δ ) − L ( w ) ≥ B ( δ ∣ w ) L(w+\delta) - L(w) \ge B(\delta\mid w) L(w+δ)−L(w)≥B(δ∣w)
这里, B ( δ ∣ w ) B(\delta\mid w) B(δ∣w) 是对数似然函数改变量的一个新的(相对不紧的)下界。
计算 B ( δ ∣ w ) B(\delta\mid w) B(δ∣w) 对 δ i \delta_i δi 的偏导数:
∂ B ( δ ∣ w ) ∂ δ i = ∑ x , y P ~ ( x , y ) f i ( x , y ) − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) f i ( x , y ) exp ( δ i f # ( x , y ) ) \frac{\partial B(\delta \mid w)}{\partial \delta_i} = \sum_{x,y} \tilde P(x,y) f_i(x,y) - \sum_x \tilde P(x) \sum_y P_w(y\mid x)f_i(x,y)\exp\left( \delta_i f^\#(x,y) \right) ∂δi∂B(δ∣w)=x,y∑P~(x,y)fi(x,y)−x∑P~(x)y∑Pw(y∣x)fi(x,y)exp(δif#(x,y))
上式中,除 δ i \delta_i δi 外不含任何其他变量。令偏导数为 0 0 0 得到
∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) exp ( δ i f # ( x , y ) ) = ∑ x , y P ~ ( x , y ) f i ( x , y ) = E P ~ ( f i ) (17) \sum_{x,y} \tilde P(x) P_w(y\mid x)f_i(x,y)\exp\left( \delta_i f^\#(x,y) \right) =\sum_{x,y} \tilde P(x,y) f_i(x,y) = E_{\tilde P}(f_i)\tag{17} x,y∑P~(x)Pw(y∣x)fi(x,y)exp(δif#(x,y))=x,y∑P~(x,y)fi(x,y)=EP~(fi)(17)
求解式 ( 17 ) (17) (17) 中的 δ i \delta_i δi。如果 f # ( x , y ) f^\#(x,y) f#(x,y) 是常数,即对任何 x , y x,y x,y,有 f # ( x , y ) = 1 / λ f^\#(x,y) = 1/\lambda f#(x,y)=1/λ,那么 δ i \delta_i δi 可以显式地表达成
δ i = λ log E P ~ ( f i ) E P ( f i ) \delta_i = \lambda\log \frac{E_{\tilde P}(f_i)}{E_P(f_i)} δi=λlogEP(fi)EP~(fi)
这与 GIS 算法中的权重校正量不谋而合。可见,IIS 算法是 GIS 算法的推广,GIS 算法是 IIS 算法的一个特例。
如果 f # ( x , y ) f^\#(x,y) f#(x,y) 不是常数,则需要通过数值方法来求解 δ i \delta_i δi,如牛顿法。以 g ( δ i ) = 0 g(\delta_i) = 0 g(δi)=0 表示方程 ( 17 ) (17) (17),牛顿法通过迭代求得 δ i ∗ \delta^*_i δi∗,使得 g ( δ i ∗ ) = 0 g(\delta_i^*)=0 g(δi∗)=0。迭代公式为
δ i ( t + 1 ) = δ i ( t ) − g ( δ i ( t ) ) g ′ ( δ i ( t ) ) \delta_i^{(t+1)} = \delta_i^{(t)} - \frac{g(\delta_i^{(t)})}{g'(\delta_i^{(t)})} δi(t+1)=δi(t)−g′(δi(t))g(δi(t))
注意,函数 g g g 已经是函数 B B B 的导函数了,所以 g ′ g' g′ 相当于 B B B 的二阶导数。
最大熵模型学习还可以直接应用梯度下降法、牛顿法或拟牛顿法。
对于最大熵模型而言,需要最大化对偶函数 ψ ( w ) \psi(w) ψ(w)。令 f ( w ) = − ψ ( w ) f(w) = -\psi(w) f(w)=−ψ(w),则目标函数定义为
min w f ( x ) = ∑ x P ~ ( x ) log Z w ( x ) − ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) = ∑ x P ~ ( x ) log ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) − ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) \begin{align} \min_w\space\space\space\space f(x) &= \sum_{x} \tilde P(x) \log Z_w(x) - \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n w_if_i(x,y) \notag\\ &= \sum_{x} \tilde P(x) \log \sum_y \exp\left( \sum_{i=1}^n w_if_i(x,y) \right) - \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n w_if_i(x,y) \notag \end{align} wmin f(x)=x∑P~(x)logZw(x)−x,y∑P~(x,y)i=1∑nwifi(x,y)=x∑P~(x)logy∑exp(i=1∑nwifi(x,y))−x,y∑P~(x,y)i=1∑nwifi(x,y)
梯度为
g ( w ) = ( ∂ f ( w ) ∂ w 1 , ∂ f ( w ) ∂ w 2 , … , ∂ f ( w ) ∂ w n ) T g(w) = \left( \frac{\partial f(w)}{\partial w_1}, \frac{\partial f(w)}{\partial w_2},\dots, \frac{\partial f(w)}{\partial w_n} \right)^T g(w)=(∂w1∂f(w),∂w2∂f(w),…,∂wn∂f(w))T
其中
∂ f ( w ) ∂ w i = ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) − E P ~ ( f i ) , i = 1 , 2 , … , n \frac{\partial f(w)}{\partial w_i} = \sum_{x,y} \tilde P(x) P_w(y\mid x) f_i(x,y) - E_{\tilde P}(f_i),\space\space\space\space i=1,2,\dots, n ∂wi∂f(w)=x,y∑P~(x)Pw(y∣x)fi(x,y)−EP~(fi), i=1,2,…,n
注意区别 IIS 算法中使用牛顿法和这里的牛顿法。两处牛顿法的目标函数是不同的,IIS 算法中是以下界函数 B B B 为目标函数运用牛顿法优化,而这里是直接以对偶函数或 f ( x ) f(x) f(x) 为目标函数运用牛顿法。
具体的拟牛顿法的相关算法不再展开讲解。关于拟牛顿法的相关算法可以阅读参考 [9] 和 [10]。
[1]《统计学习方法(第二版)》李航著
[2] 《统计自然语言处理(第二版)》宗成庆著
[3] Berger A, Della Pietra S A, Della Pietra V J. A maximum entropy approach to natural language processing[J]. Computational linguistics, 1996, 22(1): 39-71.
[4] 最大熵学习笔记(四)模型求解 - CSDN
[5] 最大熵学习笔记(五)最优化算法 - CSDN
[6] 最大熵模型中的对数似然函数的解释 - CSDN
[7] 李航《统计学习方法》最大熵模型p(y|x)推导的正确过程 - 知乎
[8] 最大熵模型中的对数似然函数表示法解释 - 知乎
[9] 【机器学习】梯度下降法与牛顿法【Ⅱ】牛顿法与修正牛顿法 - CSDN
[10] 【机器学习】梯度下降法与牛顿法【Ⅲ】拟牛顿法 - CSDN