统计学习方法读书笔记(六)-逻辑斯蒂回归与最大熵模型(迭代尺度法(IIS))

全部笔记的汇总贴:统计学习方法读书笔记汇总贴

PDF免费下载:《统计学习方法(第二版)》

逻辑斯谛回归 (logistic regression )是统计学习中的经典分类方法。最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model) 。逻辑斯谛回归模型与最大熵模型都属于对数线性模型。

一、逻辑斯谛回归模型

X X X是连续随机变量, X X X服从逻辑斯谛分布是指 X X X具有下列分布函数和密度函数: F ( x ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) γ f ( x ) = F ′ ( x ) = e − ( x − μ ) γ γ ( 1 + e − ( x − μ ) γ ) 2 F(x)=P(X\le x)=\frac1{1+e^{-\frac{(x-\mu)}\gamma}}\\f(x)=F'(x)=\frac{e^{-\frac{(x-\mu)}\gamma}}{\gamma(1+e^{-\frac{(x-\mu)}\gamma})^2} F(x)=P(Xx)=1+eγ(xμ)1f(x)=F(x)=γ(1+eγ(xμ))2eγ(xμ)其中, μ \mu μ为位置参数, γ > 0 \gamma>0 γ>0为形状参数。
在这里插入图片描述
分布函数 F ( x ) F(x) F(x)属于逻辑斯蒂函数,图形是一条 S S S形曲线,该曲线以 ( μ , 1 2 ) (\mu,\frac12) (μ,21)为中心对称,即满足 F ( − x + μ ) − 1 2 = − F ( x + μ ) + 1 2 F(-x+\mu)-\frac12=-F(x+\mu)+\frac12 F(x+μ)21=F(x+μ)+21曲线在中心附近增长速度较快,在两端增长速度较慢。形状参数 γ \gamma γ的值越小,曲线在中心附近增长得越快。

二项逻辑斯谛回归模型(binomial logistic regression model)是一种分类模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX) 表示,形式为参数化的逻辑斯蒂分布。条件概率分布为: P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x ) 1 + exp ⁡ ( w ⋅ x ) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x ) P(Y=1|x)=\frac{\exp(w\cdot x)}{1+\exp(w\cdot x)}\\P(Y=0|x)=\frac1{1+\exp(w\cdot x)} P(Y=1x)=1+exp(wx)exp(wx)P(Y=0x)=1+exp(wx)1

一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。逻辑斯蒂回归的对数几率为 log ⁡ P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = w ⋅ x \log \frac{P(Y=1|x)}{1-P(Y=1|x)}=w\cdot x log1P(Y=1x)P(Y=1x)=wx这就是说,在逻辑斯谛回归模型中,输出 Y = 1 Y=1 Y=1的对数几率是输入 x x x的线性函数。或者说,输出 Y = 1 Y= 1 Y=1的对数几率是由输入 x x x的线性函数表示的模型,即逻辑斯谛回归模型。

多项逻辑斯蒂回归模型 P ( Y = k ∣ x ) = exp ⁡ ( w k ⋅ x ) 1 + ∑ k = 1 K − 1 exp ⁡ ( w k ⋅ x ) P ( Y = K ∣ x ) = 1 1 + ∑ k = 1 K − 1 exp ⁡ ( w k ⋅ x ) P(Y=k|x)=\frac{\exp(w_k\cdot x)}{1+\sum_{k=1}^{K-1}\exp(w_k\cdot x)}\\P(Y=K|x)=\frac1{1+\sum_{k=1}^{K-1}\exp(w_k\cdot x)} P(Y=kx)=1+k=1K1exp(wkx)exp(wkx)P(Y=Kx)=1+k=1K1exp(wkx)1

二、最大熵模型

最大熵模型(maximum entropy model) 由最大熵原理推导实现,最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。
H ( P ) = − ∑ x P ( x ) log ⁡ P ( x ) 0 ≤ H ( P ) ≤ log ⁡ ∣ X ∣ H(P)=-\sum_xP(x)\log P(x)\\0\le H(P)\le \log|X| H(P)=xP(x)logP(x)0H(P)logX其中, ∣ X ∣ |X| X X X X的取值个数,当且仅当 X X X是均匀分布时右边等号成立,也就是说,当 X X X服从均匀分布时,熵最大。

直观的可以把它看作等可能事件,具体的解析解求法可以用有约束的拉格朗日法。

三、模型学习的最优化算法

常用的方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法。牛顿法或拟牛顿法一般收敛速度更快,但约束过多。

这里讲解一个书上提到的迭代尺度法(IIS)。可以看看这篇文献,讲的很详细:The Improved Iterative Scaling Algorithm
已知最大熵模型为: P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) )              ( 1 ) P_w(y|x)=\frac1{Z_w(x)}\exp\Big(\sum_{i=1}^nw_if_i(x,y)\Big)\;\;\;\;\;\;(1) Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))(1)
其中, Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) ( 规 范 化 因 子 )            ( 2 ) Z_w(x)=\sum_y\exp\Big(\sum_{i=1}^nw_if_i(x,y)\Big)(规范化因子)\;\;\;\;\;(2) Zw(x)=yexp(i=1nwifi(x,y))(2)
对数似然函数为 L p ^ ( w ) = ∑ x , y P ^ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ^ ( x ) log ⁡ Z w ( x )          ( 3 ) L_{\hat p}(w)=\sum_{x,y}\hat P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_x\hat P(x)\log Z_w(x)\;\;\;\;(3) Lp^(w)=x,yP^(x,y)i=1nwifi(x,y)xP^(x)logZw(x)(3)
给定联合经验分布函数 p ^ ( x , y ) \hat p(x,y) p^(x,y),根据条件模型 p w ( y ∣ x ) p_w(y|x) pw(yx),其对数似然函数为 L p ^ ( w ) = ∑ x , y p ^ ( x , y ) log ⁡ p w ( y ∣ x )              ( 4 ) L_{\hat p}(w)=\sum_{x,y}\hat p(x,y)\log p_w(y|x)\;\;\;\;\;\;(4) Lp^(w)=x,yp^(x,y)logpw(yx)(4)
由(1)、(2)式可得 L p ^ ( w ) = ∑ x , y P ^ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x , y P ^ ( x , y ) log ⁡ Z w ( x )              ( 5 ) L_{\hat p}(w)=\sum_{x,y}\hat P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_{x,y}\hat P(x,y)\log Z_w(x)\;\;\;\;\;\;(5) Lp^(w)=x,yP^(x,y)i=1nwifi(x,y)x,yP^(x,y)logZw(x)(5)
对比(3)和(5),可得 ∑ x P ^ ( x ) = ∑ x , y P ^ ( x , y ) \sum_x\hat P(x)=\sum_{x,y}\hat P(x,y) xP^(x)=x,yP^(x,y)

将(2)代入(3)得 L p ^ ( w ) = ∑ 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 ) ) L_{\hat p}(w)=\sum_{x,y}\hat P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_x\hat P(x)\log \sum_y\exp\Big(\sum_{i=1}^nw_if_i(x,y)\Big) Lp^(w)=x,yP^(x,y)i=1nwifi(x,y)xP^(x)logyexp(i=1nwifi(x,y))
w i w_i wi求偏导 ∂ L p ^ ( w ) ∂ w i = ∑ x , y P ^ ( x , y ) f i ( x , y ) − ∑ x , y p ^ ( x ) p w ( y ∣ x ) f i ( x , y ) \frac{\partial L_{\hat p}(w)}{\partial w_i}=\sum_{x,y}\hat P(x,y)f_i(x,y)-\sum_{x,y}\hat p(x)p_w(y|x)f_i(x,y) wiLp^(w)=x,yP^(x,y)fi(x,y)x,yp^(x)pw(yx)fi(x,y)
令导数等于0得 ∑ x , y P ^ ( x , y ) f i ( x , y ) = ∑ x , y p ^ ( x ) p w ( y ∣ x ) f i ( x , y ) \sum_{x,y}\hat P(x,y)f_i(x,y)=\sum_{x,y}\hat p(x)p_w(y|x)f_i(x,y) x,yP^(x,y)fi(x,y)=x,yp^(x)pw(yx)fi(x,y)
即经验分布 p ^ ( x , y ) \hat p(x,y) p^(x,y)的期望于经验分布 p ^ ( x ) \hat p(x) p^(x)的值相等是一个很自然的条件。

IIS 的想法是:假设最大熵模型当前的参数向量是 w = ( w 1 , w 2 , ⋯ , w n ) T w = (w_1 ,w_2,\cdots,w_n)^T w=(w1,w2wn)T,我们希望找到一个新的参数向量 w + δ = ( w 1 + δ 1 , w 2 + δ 2 , ⋯ , w n + δ n ) T w+\delta = (w_1+\delta_1 ,w_2+\delta_2,\cdots,w_n+\delta_n)^T w+δ=(w1+δ1,w2+δ2wn+δn)T,使得模型的对数似然函数值增大。如果能有这样一种参数向量更新的方法 τ : w → w + δ \tau :w\rightarrow w+\delta τ:ww+δ,那么就可以重复使用这一方法,直至找到对数似然函数的最大值。

根据(4)得 L p ^ ( w + δ ) − L p ^ ( 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 ( w i + δ − w i ) f i ( x , y ) − ∑ x P ^ ( x ) log ⁡ Z w + δ ( x ) + ∑ x P ^ ( x ) log ⁡ Z w ( x ) = ∑ x , y P ^ ( x , y ) ∑ i = 1 n ( w i + δ − w i ) f i ( x , y ) − ∑ x P ^ ( x ) log ⁡ Z w + δ ( x ) Z w ( x ) L_{\hat p}(w+\delta)-L_{\hat p}(w)=\sum_{x,y}\hat p(x,y)\log p_{w+\delta}(y|x)-\sum_{x,y}\hat p(x,y)\log p_w(y|x)\\=\sum_{x,y}\hat P(x,y)\sum_{i=1}^n(w_i+\delta-w_i)f_i(x,y)-\sum_{x}\hat P(x)\log Z_{w+\delta}(x)+\sum_{x}\hat P(x)\log Z_w(x)\\=\sum_{x,y}\hat P(x,y)\sum_{i=1}^n(w_i+\delta-w_i)f_i(x,y)-{\color{blue}\sum_{x}\hat P(x)\log \frac{Z_{w+\delta}(x)}{ Z_w(x)}} Lp^(w+δ)Lp^(w)=x,yp^(x,y)logpw+δ(yx)x,yp^(x,y)logpw(yx)=x,yP^(x,y)i=1n(wi+δwi)fi(x,y)xP^(x)logZw+δ(x)+xP^(x)logZw(x)=x,yP^(x,y)i=1n(wi+δwi)fi(x,y)xP^(x)logZw(x)Zw+δ(x)
利用不等式 − log ⁡ a ≥ 1 − a ( a > 0 ) -\log a\ge1-a(a>0) loga1a(a>0)
所以 L p ^ ( w + δ ) − L p ^ ( w ) ≥ ∑ x , y P ^ ( x , y ) ∑ i = 1 n δ f i ( x , y ) + ∑ x P ^ ( x ) − ∑ x P ^ ( x ) Z w + δ ( x ) Z w ( x )              ( 又 ∑ x P ^ ( x ) = 1 ) = ∑ x , y P ^ ( x , y ) ∑ i = 1 n δ f i ( x , y ) + 1 − ∑ x P ^ ( x ) Z w + δ ( x ) Z w ( x ) L_{\hat p}(w+\delta)-L_{\hat p}(w)\ge\sum_{x,y}\hat P(x,y)\sum_{i=1}^n\delta f_i(x,y)+{\color{blue}\sum_{x}\hat P(x)-\sum_{x}\hat P(x) \frac{Z_{w+\delta}(x)}{ Z_w(x)}}\;\;\;\;\;\;(又\sum_{x}\hat P(x) =1)\\=\sum_{x,y}\hat P(x,y)\sum_{i=1}^n\delta f_i(x,y)+{\color{blue}1-\sum_{x}\hat P(x) \frac{Z_{w+\delta}(x)}{ Z_w(x)}} Lp^(w+δ)Lp^(w)x,yP^(x,y)i=1nδfi(x,y)+xP^(x)xP^(x)Zw(x)Zw+δ(x)(xP^(x)=1)=x,yP^(x,y)i=1nδfi(x,y)+1xP^(x)Zw(x)Zw+δ(x)
又因为 Z w + δ ( x ) Z w ( x ) = 1 Z w ( x ) ⋅ ∑ y exp ⁡ ( ∑ i = 1 n ( w i + δ i ) f i ( x , y ) ) = 1 Z w ( x ) ⋅ ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) + ∑ i = 1 n δ i f i ( x , y ) ) = ∑ y 1 Z w ( x ) ⋅ exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) exp ⁡ ( ∑ i = 1 n δ i f i ( x , y ) ) = ∑ y p w ( y ∣ x ) exp ⁡ ( ∑ i = 1 n δ i f i ( x , y ) ) \frac{Z_{w+\delta}(x)}{ Z_w(x)}=\frac1{ Z_w(x)}\cdot \sum_y\exp\Big(\sum_{i=1}^n(w_i+\delta_i)f_i(x,y)\Big)\\=\frac1{ Z_w(x)}\cdot \sum_y\exp\Big(\sum_{i=1}^nw_if_i(x,y)+\sum_{i=1}^n\delta_if_i(x,y)\Big)\\=\sum_y\frac1{ Z_w(x)}\cdot \exp\Big(\sum_{i=1}^nw_if_i(x,y)\Big)\exp\Big(\sum_{i=1}^n\delta_if_i(x,y)\Big)\\=\sum_yp_w(y|x)\exp\Big(\sum_{i=1}^n\delta_if_i(x,y)\Big) Zw(x)Zw+δ(x)=Zw(x)1yexp(i=1n(wi+δi)fi(x,y))=Zw(x)1yexp(i=1nwifi(x,y)+i=1nδifi(x,y))=yZw(x)1exp(i=1nwifi(x,y))exp(i=1nδifi(x,y))=ypw(yx)exp(i=1nδifi(x,y))
L p ^ ( w + δ ) − L p ^ ( w ) ≥ ∑ x , y P ^ ( x , y ) ∑ i = 1 n δ f i ( x , y ) + 1 − ∑ x P ^ ( x ) ∑ y p w ( y ∣ x ) exp ⁡ ( ∑ i = 1 n δ i f i ( x , y ) ) L_{\hat p}(w+\delta)-L_{\hat p}(w)\ge \sum_{x,y}\hat P(x,y)\sum_{i=1}^n\delta f_i(x,y)+1-\sum_{x}\hat P(x) \sum_yp_w(y|x)\exp\Big(\sum_{i=1}^n\delta_if_i(x,y)\Big) Lp^(w+δ)Lp^(w)x,yP^(x,y)i=1nδfi(x,y)+1xP^(x)ypw(yx)exp(i=1nδifi(x,y))
将右端记作 A ( δ ∣ w ) A(\delta|w) A(δw)

所以 L p ^ ( w + δ ) − L p ^ ( w ) ≥ A ( δ ∣ w ) L_{\hat p}(w+\delta)-L_{\hat p}(w)\ge A(\delta|w) Lp^(w+δ)Lp^(w)A(δw) A ( δ ∣ w ) A(\delta|w) A(δw)是对数似然函数改变量的一个下界。

如果能找到适当的 δ \delta δ使下界 A ( δ ∣ w ) A(\delta|w) A(δw)提高,那么对数似然函数也会提高。但是 A ( δ ∣ w ) A(\delta|w) A(δw)是一个 n n n维向量,不易于同时优化。IIS试图每次优化其中一个 δ i \delta_i δi,而固定其他变量 δ j , i ≠ j \delta_j,i\ne j δj,i=j。我们引入新的量 f # ( x , y ) = ∑ i f i ( x , y ) f^\#(x,y)=\sum_if_i(x,y) f#(x,y)=ifi(x,y)因为 f i ( x , y ) f_i(x,y) fi(x,y)是一个二值函数, f # ( x , y ) f^\#(x,y) f#(x,y)表示特征 ( x , y ) (x,y) (x,y)出现的次数。所以我们重写 A ( δ ∣ w ) A(\delta|w) A(δw)得到 A ( δ ∣ w ) = ∑ x , y P ^ ( x , y ) ∑ i = 1 n δ 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 ) )            ( 6 ) A(\delta|w)=\sum_{x,y}\hat P(x,y)\sum_{i=1}^n\delta f_i(x,y)+1-\sum_{x}\hat P(x) \sum_yp_w(y|x)\exp\Big({\color{blue}f^\#(x,y)}\sum_{i=1}^n\frac{\delta_if_i(x,y)}{\color{blue}f^\#(x,y)}\Big)\;\;\;\;\;(6) A(δw)=x,yP^(x,y)i=1nδfi(x,y)+1xP^(x)ypw(yx)exp(f#(x,y)i=1nf#(x,y)δifi(x,y))(6)
利用指数函数的凸函数性质以及对任意 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_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}=1%+ i=1nf#(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\Big(\sum_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}\delta_i f^\#(x,y)\Big)\le \sum_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}\exp\Big(\delta_i f^\#(x,y)\Big) exp(i=1nf#(x,y)fi(x,y)δif#(x,y))i=1nf#(x,y)fi(x,y)exp(δif#(x,y))
p ( x ) = f i ( x , y ) f # ( x , y ) , q ( x ) = δ i f # ( x , y ) p(x)=\frac{f_i(x,y)}{f^\#(x,y)},q(x)=\delta_i f^\#(x,y) p(x)=f#(x,y)fi(x,y),q(x)=δif#(x,y),重写(6)得到 A ( δ ∣ w ) ≥ ∑ x , y P ^ ( x , y ) ∑ i = 1 n δ 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|w)\ge \sum_{x,y}\hat P(x,y)\sum_{i=1}^n\delta f_i(x,y)+1-\sum_{x}\hat P(x) \sum_yp_w(y|x) \sum_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}\exp\Big(\delta_i f^\#(x,y)\Big) A(δw)x,yP^(x,y)i=1nδfi(x,y)+1xP^(x)ypw(yx)i=1nf#(x,y)fi(x,y)exp(δif#(x,y))
不等式右边记为 B ( δ ∣ w ) = ∑ x , y P ^ ( x , y ) ∑ i = 1 n δ 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|w)= \sum_{x,y}\hat P(x,y)\sum_{i=1}^n\delta f_i(x,y)+1-\sum_{x}\hat P(x) \sum_yp_w(y|x) \sum_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}\exp\Big(\delta_i f^\#(x,y)\Big) B(δw)=x,yP^(x,y)i=1nδfi(x,y)+1xP^(x)ypw(yx)i=1nf#(x,y)fi(x,y)exp(δif#(x,y))
所以 L p ^ ( w + δ ) − L p ^ ( w ) ≥ B ( δ ∣ w ) L_{\hat p}(w+\delta)-L_{\hat p}(w)\ge B(\delta|w) Lp^(w+δ)Lp^(w)B(δw)
对于新的下界 B ( δ ∣ w ) B(\delta|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 ) ∑ i = 1 n f i ( x , y ) exp ⁡ ( δ i f # ( x , y ) ) \frac{\partial B(\delta|w)}{\partial\delta_i}=\sum_{x,y}\hat P(x,y) f_i(x,y)-\sum_{x}\hat P(x) \sum_yp_w(y|x) \sum_{i=1}^n{f_i(x,y)}\exp\Big(\delta_i f^\#(x,y)\Big) δiB(δw)=x,yP^(x,y)fi(x,y)xP^(x)ypw(yx)i=1nfi(x,y)exp(δif#(x,y))令导数为0,得 ∑ x , y P ^ ( x , y ) f i ( x , y ) = ∑ x P ^ ( x ) ∑ y p w ( y ∣ x ) ∑ i = 1 n f i ( x , y ) exp ⁡ ( δ i f # ( x , y ) ) \sum_{x,y}\hat P(x,y) f_i(x,y)=\sum_{x}\hat P(x) \sum_yp_w(y|x) \sum_{i=1}^n{f_i(x,y)}\exp\Big(\delta_i f^\#(x,y)\Big) x,yP^(x,y)fi(x,y)=xP^(x)ypw(yx)i=1nfi(x,y)exp(δif#(x,y))
∑ x , y P ^ ( x ) p w ( y ∣ x ) ∑ i = 1 n f i ( x , y ) exp ⁡ ( δ i f # ( x , y ) ) = E p ^ ( f i )                      ( 7 ) \sum_{x,y}\hat P(x) p_w(y|x) \sum_{i=1}^n{f_i(x,y)}\exp\Big(\delta_i f^\#(x,y)\Big)=E_{\hat p}(f_i)\;\;\;\;\;\;\;\;\;\;(7) x,yP^(x)pw(yx)i=1nfi(x,y)exp(δif#(x,y))=Ep^(fi)(7)

依次对 δ i \delta_i δi求解方程(7)从而求出 δ \delta δ

改进的迭代尺度算法
输入:特征函数 f 1 , f 2 , ⋯   , f n ; f_1,f_2,\cdots,f_n; f1,f2,,fn;对于经验分布函数 P ^ ( X , Y ) \hat P(X,Y) P^(X,Y),模型 P w ( y ∣ x ) P_w(y|x) Pw(yx)
输出:最优参数值 w i ∗ w_i^* wi;最优模型 P w ∗ P_{w^*} Pw

  1. 对所有 i ∈ { 1 , 2 , ⋯   , n } i\in\{1,2,\cdots,n\} i{ 1,2,,n},取初值 w i = 0 w_i=0 wi=0
  2. 对每一 i ∈ { 1 , 2 , ⋯   , n } i\in\{1,2,\cdots,n\} i{ 1,2,,n}

(1)令 δ i \delta_i δi是方程 ∑ x , y P ^ ( x ) p w ( y ∣ x ) ∑ i = 1 n f i ( x , y ) exp ⁡ ( δ i f # ( x , y ) ) = E p ^ ( f i ) \sum_{x,y}\hat P(x) p_w(y|x) \sum_{i=1}^n{f_i(x,y)}\exp\Big(\delta_i f^\#(x,y)\Big)=E_{\hat p}(f_i) x,yP^(x)pw(yx)i=1nfi(x,y)exp(δif#(x,y))=Ep^(fi)的解,这里 f # ( x , y ) = ∑ i f i ( x , y ) f^\#(x,y)=\sum_if_i(x,y) f#(x,y)=ifi(x,y)
(2)更新 w i w_i wi值: w i → w i + δ i w_i\rightarrow w_i+\delta_i wiwi+δi

  1. 如果不是所有的 w i w_i wi都收敛,重复2。

这一算法的关键是(1),即求解方程(7)中的 δ i \delta_i δi,如果 f # ( x , y ) f^\#(x,y) f#(x,y)是常数,即对任何 x , y x,y x,y f # ( x , y ) = M f^\#(x,y)=M f#(x,y)=M那么 δ i \delta_i δi可以显示地表示成 δ i = 1 M log ⁡ E p ^ ( f i ) E p ( f i ) \delta_i=\frac1M\log\frac{E_{\hat p}(f_i)}{E_p(f_i)} δi=M1logEp(fi)Ep^(fi)如果 f # ( x , y ) f^\#(x,y) f#(x,y)不是常数,那么必须通过数值计算求 δ i \delta_i δi。简单有效地方法是牛顿法,以 g ( δ i ) = 0 g(\delta_i)=0 g(δi)=0表示方程(7),牛顿法通过迭代求得 δ i ∗ \delta_i^* δi,使得 g ( δ i ∗ ) = 0 g(\delta^*_i)=0 g(δi)=0迭代公式是 δ i ( k + 1 ) = δ i ( k ) − g ( δ i ( k ) ) g ′ ( δ i ( k ) ) \delta_i^{(k+1)}=\delta_i^{(k)}-\frac{g(\delta_i^{(k)})}{g'(\delta_i^{(k)})} δi(k+1)=δi(k)g(δi(k))g(δi(k))
只要适当的选取初始值 δ i ( 0 ) \delta_i^{(0)} δi(0),由于 δ i \delta_i δi的方程(7)有单根,因此牛顿法恒收敛,而且收敛的速度很快。

另一种方法是拟牛顿法,可以查看附录B

下一章传送门:统计学习方法读书笔记(七)-支持向量机

猜你喜欢

转载自blog.csdn.net/qq_41485273/article/details/112771034