统计学习方法读书笔记第六章:逻辑斯谛回归与最大熵模型

统计学习方法第六章:逻辑斯谛回归与最大熵模型

  • 统计学习方法读书笔记第六章:逻辑斯谛回归与最大熵模型
    • 逻辑斯谛回归模型
    • 最大熵模型
    • 模型学习的最优化方法

统计学习方法读书笔记第六章:逻辑斯谛回归与最大熵模型

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

逻辑斯谛回归模型

  • 逻辑斯谛分布
    X X X是连续随机变量, X X X服从逻辑斯d谛分布是指 X X X具有下列分布函数和密度函数:
    (1) F ( x ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) / γ F(x)=P(X\leq x)=\frac{1}{1+e^{-(x-\mu)/\gamma}} \tag{1} F(x)=P(Xx)=1+e(xμ)/γ1(1)
    (2) f ( x ) = F ′ ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 f(x)=F^{'}(x)=\frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2} \tag{2} f(x)=F(x)=γ(1+e(xμ)/γ)2e(xμ)/γ(2)
    式中, μ \mu μ为位置参数, γ > 0 \gamma >0 γ>0为形状参数。
    逻辑斯谛分布的密度函数 f ( x ) f(x) f(x)和分布函数 F ( x ) F(x) F(x)的图形如图所示。分布函数属于逻辑斯谛函数,其图形是一条 S S S形曲线。该曲线以点 ( μ , 1 2 ) \bigg(\mu,\frac{1}{2}\bigg) (μ,21)为中心对称,即满足
    F ( − x + μ ) − 1 2 = − F ( x − μ ) + 1 2 F(-x+\mu)-\frac{1}{2}=-F(x-\mu)+\frac{1}{2} F(x+μ)21=F(xμ)+21
    曲线在中心附近增长速度较快,在两端增长速度较慢。形状参数 γ \gamma γ的值越小,曲线在中心附近增长得越快。
    统计学习方法读书笔记第六章:逻辑斯谛回归与最大熵模型_第1张图片
  • 二项逻辑斯谛回归模型
    二项逻辑斯谛回归模型是一种分类模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)表示,形式为参数化的逻辑斯谛分布。这里,随机变量 X X X取值为实数,随机变量 Y Y Y取值为1或0。通过监督学习的方法来估计模型参数。
    逻辑斯谛回归模型 二项逻辑斯谛回归模型是如下的条件概率分布:
    (3) P ( Y = 1 ∣ x ) = e x p ( w ⋅ x + b ) 1 + e x p ( w ⋅ x + b ) P(Y=1|x)=\frac{exp(w\cdot x+b)}{1+exp(w\cdot x+b)} \tag{3} P(Y=1x)=1+exp(wx+b)exp(wx+b)(3)
    (4) P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ⋅ x + b ) P(Y=0|x)=\frac{1}{1+exp(w\cdot x+b)} \tag{4} P(Y=0x)=1+exp(wx+b)1(4)
    这里, x ∈ R n x\in R^n xRn是输入, Y ∈ { 0 , 1 } Y\in \{0,1\} Y{0,1}是输出, w ∈ R n w\in R^n wRn b ∈ R b\in R bR是参数, w w w称为权值向量, b b b称为偏置, w ⋅ x w\cdot x wx w w w x x x的内积。对于给定的输入实例 x x x,可以求得 P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1x) P ( Y = 0 ∣ x ) P(Y=0|x) P(Y=0x)。逻辑斯谛回归比较两个条件概率值得大小,将实例 x x x分到概率值较大的那一类。
    为了方便,将权值向量和输入向量加以扩充,仍记作 w w w x x x,即 w = ( w ( 1 ) , w ( 2 ) , ⋯   , w ( n ) , b ) T w=(w^{(1)},w^{(2)},\cdots,w^{(n)},b)^{T} w=(w(1),w(2),,w(n),b)T x = ( x ( 1 ) , x ( 2 ) , ⋯   , x ( n ) , 1 ) T x=(x^{(1)},x^{(2)},\cdots,x^{(n)},1)^{T} x=(x(1),x(2),,x(n),1)T。这时,逻辑斯谛回归模型如下:
    (5) P ( Y = 1 ∣ x ) = e x p ( w ⋅ x ) 1 + e x p ( w ⋅ x ) P(Y=1|x)=\frac{exp(w\cdot x)}{1+exp(w\cdot x)} \tag{5} P(Y=1x)=1+exp(wx)exp(wx)(5)
    (6) P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ⋅ x ) P(Y=0|x)=\frac{1}{1+exp(w\cdot x)} \tag{6} P(Y=0x)=1+exp(wx)1(6)
    逻辑斯谛回归模型的特点。一个事件的几率是指该事件发生与该事件不发生的概率的壁纸。如果事件发生的概率是 p p p,那么该事件的几率是 p 1 − p \frac{p}{1-p} 1pp,该事件的对数几率或logit函数是
    l o g i t ( p ) = l o g p 1 − p logit(p)=log\frac{p}{1-p} logit(p)=log1pp
    对逻辑斯谛回归而言,可得
    l o g 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的线性函数。换一个角度看,考虑对输入 x x x进行分类的线性函数 w ⋅ x w\cdot x wx,其值域为实数域。这时,线性函数的值越接近正无穷,概率值就越接近1;线性函数的值越接近负无穷,概率值就越接近0。这样的模型就是逻辑斯谛回归模型。
  • 模型参数估计
    逻辑斯谛回归模型学习时,对于给定的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)},其中, x i ∈ R n x_i\in R^n xiRn y i ∈ { 0 , 1 } y_i\in \{0,1\} yi{0,1},可以用极大似然估计法估计模型参数,从而得到逻辑斯谛回归模型。
    设: P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1|x)=\pi(x),P(Y=0|x)=1-\pi(x) P(Y=1x)=π(x),P(Y=0x)=1π(x)
    似然函数为
    ∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^{N}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i} i=1N[π(xi)]yi[1π(xi)]1yi
    对数似然函数为
    L ( w ) = ∑ i = 1 N [ y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i l o g π ( x i ) 1 − π ( x i ) + l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i ( w ⋅ x i ) − l o g ( 1 + e x p ( w ⋅ x i ) ) ] \begin{aligned} L(w) & = \sum_{i=1}^{N}[y_ilog\pi(x_i)+(1-y_i)log(1-\pi(x_i))] \\ & = \sum_{i=1}^{N}\bigg[y_ilog\frac{\pi(x_i)}{1-\pi(x_i)}+log(1-\pi(x_i))\bigg] \\ & = \sum_{i=1}^{N}[y_i(w\cdot x_i)-log(1+exp(w\cdot x_i))] \end{aligned} L(w)=i=1N[yilogπ(xi)+(1yi)log(1π(xi))]=i=1N[yilog1π(xi)π(xi)+log(1π(xi))]=i=1N[yi(wxi)log(1+exp(wxi))]
    L ( w ) L(w) L(w)求极大值,得到 w w w的估计值。这样,问题变成了以对数似然函数为目标函数的最优化问题。逻辑斯谛回归学习中通常采用的方法是梯度下降法及拟牛顿法。
  • 多项逻辑斯谛回归
    可以将二项分类模型推广位多项逻辑斯谛回归模型,用于多类分类。假设离散型随机变量 Y Y Y的取值集合石 { 1 , 2 , ⋯   , K } \{1,2,\cdots,K\} {1,2,,K}。那么多项逻辑斯谛回归模型是
    (7) P ( Y = k ∣ x ) = e x p ( w k ⋅ x ) 1 + ∑ k = 1 K − 1 e x p ( w k ⋅ x ) , k = 1 , 2 , ⋯   , K − 1 P(Y=k|x)=\frac{exp(w_k\cdot x)}{1+\sum_{k=1}^{K-1}exp(w_k\cdot x)},k=1,2,\cdots,K-1 \tag{7} P(Y=kx)=1+k=1K1exp(wkx)exp(wkx)k=1,2,,K1(7)
    (8) P ( Y = K ∣ x ) = 1 1 + ∑ k = 1 K − 1 e x p ( w k ⋅ x ) P(Y=K|x)=\frac{1}{1+\sum_{k=1}^{K-1}exp(w_k\cdot x)} \tag{8} P(Y=Kx)=1+k=1K1exp(wkx)1(8)
    这里, x ∈ R n + 1 x\in R^{n+1} xRn+1 w k ∈ R n + 1 w_k\in R^{n+1} wkRn+1。二项逻辑斯谛回归的参数估计法也可以推广到多项逻辑斯谛回归。

最大熵模型

最大熵模型由最大熵原理推导实现。

  • 最大熵原理
    最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
    假设离散随机变量 X X X的概率分布是 P ( X ) P(X) P(X),则其熵是
    (9) H ( P ) = − ∑ x P ( x ) l o g P ( x ) H(P) = -\sum_{x}P(x)logP(x) \tag{9} H(P)=xP(x)logP(x)(9)
    熵满足下列不等式:
    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服从均匀分布时,熵最大。直观地,最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性。“等可能”不容易操作,而熵则是一个可优化的数值指标。
  • 最大熵模型的定义
    最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型。
    假设分类模型是一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX) X ∈ X ⊆ R n X\in\mathcal{X}\subseteq R^n XXRn表示输入, Y ∈ Y Y\in \mathcal{Y} YY表示输出, X \mathcal{X} X Y \mathcal{Y} Y分别是输入和输出的集合。这个模型表示的是对于给定的输入 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),\cdots,(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 ) = ν ( X = x , Y = y ) N P ~ ( X = x ) = ν ( X = x ) N \begin{aligned} & \tilde P(X=x,Y=y) = \frac{\nu(X=x,Y=y)}{N} \\ & \tilde P(X=x) = \frac{\nu(X=x)}{N} \end{aligned} P~(X=x,Y=y)=Nν(X=x,Y=y)P~(X=x)=Nν(X=x)
    其中, ν ( X = x , Y = y ) \nu(X=x,Y=y) ν(X=x,Y=y)表示训练数据中样本 ( x , y ) (x,y) (x,y)出现的频数, ν ( X = x ) \nu(X=x) ν(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 , 否 则 f(x,y) = \left\{ \begin{array}{} 1,& x与y满足某一事实 \\ 0,& 否则 \end{array} \right. f(x,y)={1,0,xy
    它是一个二值函数,当 x x x y y y满足这个事实时取值为1,否则取值为0。
    特征函数 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)
    如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即
    (10) E P ( f ) = E P ~ ( f ) E_P(f)=E_{\tilde P}(f) \tag{10} EP(f)=EP~(f)(10)

    (11) ∑ 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) \tag{11} x,yP~(x)P(yx)f(x,y)=x,yP~(x,y)f(x,y)(11)
    将式(10)或式(11)作为模型学习的约束条件。假如有 n n n个特征函数 f i ( x , y ) , i = 1 , 2 , ⋯   , n f_i(x,y),i=1,2,\cdots,n fi(x,y),i=1,2,,n,那么就有 n n n个约束条件。
    最大熵模型 假设满足所有约束条件的模型集合为
    (12) C ≡ { P ∈ P ∣ E P ( f i ) = E P ~ ( f i ) , i = 1 , 2 , ⋯   , n } \mathcal C\equiv\{P\in\mathcal P|E_P(f_i)=E_{\tilde P}(f_i),i=1,2,\cdots,n\} \tag{12} C{PPEP(fi)=EP~(fi),i=1,2,,n}(12)
    定义在条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)上的条件熵为
    (13) 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) \tag{13} H(P)=x,yP~(x)P(yx)logP(yx)(13)
    则模型集合 C \mathcal C C中条件熵 H ( P ) H(P) H(P)最大的模型称为最大熵模型。式中的对数为自然对数。
  • 最大熵模型的学习
    最大熵模型的学习过程就是求解最大熵模型的过程。最大熵模型的学习可以形式化为约束最优化问题。
    对于给定的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(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,\cdots,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 \begin{aligned} \max_{P\in C} \qquad &H(P)=-\sum_{x,y}\tilde P(x)P(y|x)logP(y|x)\\ s.t. \qquad &E_P(f_i)=E_{\tilde P}(F_i), i=1,2,\cdots,n \\ &\sum_y P(y|x)=1 \end{aligned} PCmaxs.t.H(P)=x,yP~(x)P(yx)logP(yx)EP(fi)=EP~(Fi),i=1,2,,nyP(yx)=1
    按照最优化问题的习惯,将求最大值问题改写为等价的求最小值问题:
    (14) min ⁡ P ∈ C − H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) \min_{P\in C} \qquad -H(P)=-\sum_{x,y}\tilde P(x)P(y|x)logP(y|x) \tag{14} PCminH(P)=x,yP~(x)P(yx)logP(yx)(14)
    (15) s . t . E P ( f i ) − E P ~ ( F i ) = 0 , i = 1 , 2 , ⋯   , n s.t. \qquad E_P(f_i)-E_{\tilde P}(F_i)=0, i=1,2,\cdots,n \tag{15} s.t.EP(fi)EP~(Fi)=0,i=1,2,,n(15)
    (16) ∑ y P ( y ∣ x ) = 1 \sum_y P(y|x)=1 \tag{16} yP(yx)=1(16)
    求解约束最优化问题所得出的解,就是最大熵模型学习的解。下面给出具体推导。
    这里,将约束最优化的原始问题转换为无约束最优化的对偶问题。通过求解对偶问题求解原始问题。
    首先,引进拉格朗日乘子 w 0 , w 1 , w 2 , ⋯   , w n w_0,w_1,w_2,\cdots,w_n w0,w1,w2,,wn,定义拉格朗日函数 L ( P , w ) L(P,w) L(P,w)
    (17) 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 ( ∑ 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\bigg(1-\sum_yP(y|x)\bigg)+\sum_{i=1}^nw_i(E_{\tilde P}(f_i)-E_P(f_i)) \\ &=\sum_{x,y}\tilde P(x)P(y|x)logP(y|x)+w_0\bigg(1-\sum_yP(y|x)\bigg) \\ & \quad +\sum_{i=1}^n\bigg(\sum_{x,y}\tilde P(x,y)f_i(x,y)-\sum_{x,y}\tilde P(x)P(y|x)f_i(x,y)\bigg) \tag{17} \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=1n(x,yP~(x,y)fi(x,y)x,yP~(x)P(yx)fi(x,y))(17)
    最优化的原始问题是
    (18) min ⁡ P ∈ C max ⁡ w L ( P , w ) \min_{P\in C}\max_{w}L(P,w) \tag{18} PCminwmaxL(P,w)(18)
    对偶问题是
    (19) max ⁡ w min ⁡ P ∈ C L ( P , w ) \max_{w}\min_{P\in C}L(P,w) \tag{19} wmaxPCminL(P,w)(19)
    由于拉格朗日函数 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 \min_{P\in C} minPC w w w的函数,将其记作
    (20) Ψ ( w ) = min ⁡ P ∈ C L ( P , w ) = L ( P w , w ) \Psi(w)=\min_{P\in C}L(P,w)=L(P_w,w) \tag{20} Ψ(w)=PCminL(P,w)=L(Pw,w)(20)
    Ψ ( w ) \Psi(w) Ψ(w)称为对偶函数。同时,将其解记作
    (21) P w = a r g min ⁡ P ∈ C L ( P , w ) = P w ( y ∣ x ) P_w=arg\min_{P\in C}L(P,w)=P_w(y|x) \tag{21} Pw=argPCminL(P,w)=Pw(yx)(21)
    具体地,求 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 = 2 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_yw_0-\sum_{x,y}\bigg(\tilde P(x)\sum_{i=1}^nw_if_i(x,y)\bigg) \\ &=\sum_{x,y}\tilde P(x)\bigg(logP(y|x)+1-w_0-\sum_{i=2}^nw_if_i(x,y)\bigg) \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=2nwifi(x,y))
    令偏导数等于0,在 P ~ ( x ) > 0 \tilde P(x)>0 P~(x)>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\bigg(\sum_{i=1}^nw_if_i(x,y)+w_0-1\bigg)=\frac{exp\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg)}{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,得
    (22) 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\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg) \tag{22} Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))(22)
    其中
    (23) Z w ( x ) = ∑ y e x p ( ∑ i = 1 n w i f i ( x , y ) ) Z_w(x)=\sum_yexp\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg) \tag{23} Zw(x)=yexp(i=1nwifi(x,y))(23)
    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是最大熵模型中的参数向量。
    之后,求解对偶问题外部的极大化问题
    (24) max ⁡ w Ψ ( w ) \max_{w}\Psi(w) \tag{24} wmaxΨ(w)(24)
    将其解记为 w ∗ w^{*} w,即
    (25) w ∗ = arg ⁡ max ⁡ w Ψ ( w ) w^{*}=\arg\max_{w}\Psi(w) \tag{25} w=argwmaxΨ(w)(25)
    这就是说,可以应用最优化算法求对偶函数 Ψ ( w ) \Psi(w) Ψ(w)的极大化,得到 w ∗ w^{*} w,用来表示 P ∗ ∈ ( C ) P^{*}\in\mathcal(C) P(C)。这里, P ∗ = P w ∗ = P w ∗ ( y ∣ x ) P^{*}=P_{w^{*}}=P_{w^{*}}(y|x) P=Pw=Pw(yx)是学习到的最优模型(最大熵模型)。也就是说,最大熵模型的学习归结为对偶函数 Ψ ( w ) \Psi(w) Ψ(w)的极大化。
  • 极大似然估计
    对偶函数的极大化等价于最大熵模型的极大似然估计。
    已知训练数据的经验概率分布 P ~ ( X , Y ) \tilde P(X,Y) P~(X,Y),条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)的对数似然函数表示为
    L P ~ ( P w ) = log ⁡ ∏ x , y P ( y ∣ x ) P ~ ( x , y ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x ) L_{\tilde P}(P_w)=\log\prod_{x,y}P(y|x)^{\tilde P(x,y)}=\sum_{x,y}\tilde P(x,y)\log P(y|x) LP~(Pw)=logx,yP(yx)P~(x,y)=x,yP~(x,y)logP(yx)
    当条件概率分布 P ( y ∣ x ) P(y|x) P(yx)是最大熵模型(22)和(23)时,对数似然函数 L P ~ ( P w ) L_{\tilde P}(P_w) LP~(Pw)
    (26) L P ~ ( P w ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x , y P ~ ( x , y ) log ⁡ Z w ( x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ Z w ( x ) \begin{aligned} L_{\tilde P}(P_w)&=\sum_{x,y}\tilde P(x,y)\log P(y|x) \\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_{x,y}\tilde P(x,y)\log Z_w(x) \\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_x\tilde P(x)\log Z_w(x) \tag{26} \end{aligned} LP~(Pw)=x,yP~(x,y)logP(yx)=x,yP~(x,y)i=1nwifi(x,y)x,yP~(x,y)logZw(x)=x,yP~(x,y)i=1nwifi(x,y)xP~(x)logZw(x)(26)
    再看对偶函数 Ψ ( w ) \Psi(w) Ψ(w)。由式(17)及式(20)可得
    (27) Ψ ( w ) = ∑ x , y P ~ ( x ) P w ( y ∣ x ) log ⁡ P w ( y ∣ x ) + ∑ i = 1 n w i ( ∑ x , y P ~ ( x , y ) f i ( x , y ) − ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) + ∑ x , y P ~ ( x ) P w ( y ∣ x ) ( log ⁡ P w ( y ∣ x ) − ∑ i = 1 n w i f i ( x , y ) ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ − x , y P ~ ( x ) P w ( y ∣ x ) log ⁡ Z w ( x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ Z w ( x ) \begin{aligned} \Psi(w)&=\sum_{x,y}\tilde P(x)P_w(y|x)\log P_w(y|x) \\ &+\sum_{i=1}^nw_i\bigg(\sum_{x,y}\tilde P(x,y)f_i(x,y)-\sum_{x,y}\tilde P(x)P_w(y|x)f_i(x,y)\bigg) \\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y)+\sum_{x,y}\tilde P(x)P_w(y|x)\bigg(\log P_w(y|x)-\sum_{i=1}^nw_if_i(x,y)\bigg) \\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_{-x,y}\tilde P(x)P_w(y|x)\log Z_w(x) \\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_x\tilde P(x)\log Z_w(x) \tag{27} \end{aligned} Ψ(w)=x,yP~(x)Pw(yx)logPw(yx)+i=1nwi(x,yP~(x,y)fi(x,y)x,yP~(x)Pw(yx)fi(x,y))=x,yP~(x,y)i=1nwifi(x,y)+x,yP~(x)Pw(yx)(logPw(yx)i=1nwifi(x,y))=x,yP~(x,y)i=1nwifi(x,y)x,yP~(x)Pw(yx)logZw(x)=x,yP~(x,y)i=1nwifi(x,y)xP~(x)logZw(x)(27)
    最后一步用到 ∑ y P ( y ∣ x ) = 1 \sum_yP(y|x)=1 yP(yx)=1
    比较式(26)和式(27),可得
    Ψ ( w ) = L P ~ ( P w ) \Psi(w)=L_{\tilde P}(P_w) Ψ(w)=LP~(Pw)
    既然对偶函数 Ψ ( w ) \Psi(w) Ψ(w)等价于对数似然函数 L P ~ ( P w ) L_{\tilde P}(P_w) LP~(Pw),于是证明了最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然估计这一事实。
    这样,最大熵模型的学习问题就转换为具体求解对数似然函数极大化或对偶函数极大化的问题。
    可以将最大熵模型写成更一般的形式。
    (28) P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P_w(y|x)=\frac{1}{Z_w(x)}\exp\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg) \tag{28} Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))(28)
    其中,
    (29) Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) Z_w(x)=\sum_y\exp\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg) \tag{29} Zw(x)=yexp(i=1nwifi(x,y))(29)
    这里, x ∈ R n x\in R^n xRn为输入, y ∈ { 1 , 2 , ⋯   , K } y\in\{1,2,\cdots,K\} y{1,2,,K}为输出, w ∈ R n w\in R^n wRn为权值向量, f i ( x , y ) , i = 1 , 2 , ⋯   , n f_i(x,y),i=1,2,\cdots,n fi(x,y),i=1,2,,n为任意实值特征函数。
    最大熵模型与逻辑斯蒂回归模型有类似的形式,它们又称为对数线性模型。模型学习就是在给定的训练数据条件下对模型进行极大似然估计或正则化的极大似然估计。

模型学习的最优化方法

逻辑斯蒂回归模型、最大熵模型学习归结为以似然函数为目标函数的最优化问题,通常通过迭代算法求解。从最优化的观点看,这时的目标函数具有很好的性质。它是光滑的凸函数,因此多种最优化的方法都适用,保证能找到全局最优解。常用的方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法。牛顿法或拟牛顿法一般收敛速度更快。
下面介绍基于改进的迭代尺度法与拟牛顿法的最大熵模型学习算法。

  • 改进的迭代尺度法
    改进的迭代尺度法(improved iterative scaling, IIS)是一种最大熵模型学习的最优化算法。
    已知最大熵模型为
    P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P_w(y|x)=\frac{1}{Z_w(x)}\exp\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg) Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))
    其中,
    Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) Z_w(x)=\sum_y\exp\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg) Zw(x)=yexp(i=1nwifi(x,y))
    对数似然函数为
    L ( w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ Z w ( x ) L(w)=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y)-\sum_x\tilde P(x)\log Z_w(x) L(w)=x,yP~(x,y)i=1nwifi(x,y)xP~(x)logZw(x)
    目标是通过极大似然估计学习模型参数,即求对数似然函数的极大值 w ^ \hat w w^
    IIS的想法是:假设最大熵模型当前的参数向量是 w = ( w 1 , w 2 , ⋯   , w n ) T w=(w_1,w_2,\cdots,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,\cdots,w_n+\delta_n)^T w+δ=(w1+δ1,w2+δ2,,wn+δn)T,使得模型的对数似然函数值增大。如果能有这样一种参数向量更新的方法 τ \tau τ w → w + δ w\rightarrow w+\delta ww+δ,那么就可以重复使用这一方法,直至找到对数似然函数的极大值。
    对于给定的经验分布 P ~ ( x , y ) \tilde P(x,y) P~(x,y),模型参数从 w w w w + δ w+\delta 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{aligned} L(w+\delta)-L(w)&=\sum_{x,y}\tilde P(x,y)\log P_{w+\delta}(y|x)-\sum_{x,y}\tilde P(x,y)\log P_w(y|x) \\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^n\delta_if_i(x,y)-\sum_x\tilde P(x)\log\frac{Z_{w+\delta}(x)}{Z_w(x)} \end{aligned} L(w+δ)L(w)=x,yP~(x,y)logPw+δ(yx)x,yP~(x,y)logPw(yx)=x,yP~(x,y)i=1nδifi(x,y)xP~(x)logZw(x)Zw+δ(x)
    利用不等式
    − log ⁡ α ≥ 1 − α , α > 0 -\log\alpha \geq 1-\alpha, \alpha>0 logα1α,α>0
    建立对数似然函数改变量的下界:
    L ( w + δ ) − L ( w ) ≥ ∑ 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 P w ( y ∣ x ) exp ⁡ ∑ i = 1 n δ i f i ( x , y ) \begin{aligned} L(w+\delta)-L(w)&\geq\sum_{x,y}\tilde P(x,y)\sum_{i=1}^n\delta_if_i(x,y)+1-\sum_x\tilde P(x)\frac{Z_{w+\delta}(x)}{Z_w(x)} \\ &=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^n\delta_if_i(x,y)+1-\sum_x\tilde P(x)\sum_yP_w(y|x)\exp\sum_{i=1}^n\delta_if_i(x,y) \end{aligned} L(w+δ)L(w)x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)Zw(x)Zw+δ(x)=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)expi=1nδ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|w)=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^n\delta_if_i(x,y)+1-\sum_x\tilde P(x)\sum_y P_w(y|x)\exp\sum_{i=1}^n\delta_if_i(x,y) A(δw)=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)expi=1nδifi(x,y)
    于是有
    L ( w + δ ) − L ( w ) ≥ A ( δ ∣ w ) L(w+\delta)-L(w)\geq A(\delta|w) L(w+δ)L(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)中的 δ \delta δ是一个向量,含有多个变量,不易同时优化。IIS试图一次只优化其中一个变量 δ i \delta_i δi,而固定其他变量 δ j \delta_j δj i ≠ j i\neq j i̸=j
    为达到这一目的,IIS进一步降低下界 A ( δ ∣ w ) A(\delta|w) A(δw)。具体地,IIS引进一个量 f ∗ ( x , y ) f^*(x,y) f(x,y)
    f ♯ ( x , y ) = ∑ i f i ( x , y ) f^{\sharp}(x,y)=\sum_if_i(x,y) f(x,y)=ifi(x,y)
    因为 f i f_i fi是二值函数,故 f ♯ ( x , y ) f^{\sharp}(x,y) f(x,y)表示所有特征在 ( x , y ) (x,y) (x,y)出现的次数。这样, A ( δ ∣ w ) A(\delta|w) A(δw)可以改写成
    (30) 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 ) ) A(\delta|w)=\sum_{x,y}\tilde P(x,y)\sum_{i=1}^n\delta_if_i(x,y)+1-\sum_x\tilde P(x)\sum_yP_w(y|x)\exp\bigg(f^{\sharp}(x,y)\sum_{i=1}^n\frac{\delta_if_i(x,y)}{f^{\sharp}(x,y)}\bigg) \tag{30} A(δw)=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)exp(f(x,y)i=1nf(x,y)δifi(x,y))(30)
    利用指数函数的凸性以及对任意 i i i,有 f i ( x , y ) f ♯ ( x , y ) ≥ 0 \frac{f_i(x,y)}{f^{\sharp}(x,y)}\geq0 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^{\sharp}(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\bigg(\sum_{i=1}^n\frac{f_i(x,y)}{f^{\sharp}(x,y)}\delta_if^{\sharp}(x,y)\bigg)\leq \sum_{i=1}^n\frac{f_i(x,y)}{f^{\sharp}(x,y)}\exp(\delta_if^{\sharp}(x,y)) exp(i=1nf(x,y)fi(x,y)δif(x,y))i=1nf(x,y)fi(x,y)exp(δif(x,y))
    于是式(30)可写成
    (31) 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|w)\geq \sum_{x,y}\tilde P(x,y)\sum_{i=1}^n\delta_if_i(x,y)+1-\sum_x\tilde P(x)\sum_yP_w(y|x)\sum_{i=1}^n\bigg(\frac{f_i(x,y)}{f^{\sharp}(x,y)}\bigg)\exp(\delta_if^*(x,y)) \tag{31} A(δw)x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)i=1n(f(x,y)fi(x,y))exp(δif(x,y))(31)
    记不等式(31)右端为
    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|w)=\sum{x,y}\tilde P(x,y)\sum_{i=1}^n\delta_if_i(x,y)+1-\sum_x\tilde P(x)\sum_yP_w(y|x)\sum_{i=1}^n\frac{f_i(x,y)}{f^{\sharp}(x,y)}\exp(\delta_if^*(x,y)) B(δw)=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)i=1nf(x,y)fi(x,y)exp(δif(x,y))
    于是得到
    L ( w + δ ) − L ( w ) ≥ B ( δ ∣ w ) L(w+\delta)-L(w)\geq B(\delta|w) L(w+δ)L(w)B(δw)
    这里, B ( δ ∣ w ) B(\delta|w) B(δw)是对数似然函数改变量的一个新的(相对不紧的)下界。
    B ( δ ∣ w ) B(\delta|w) B(δw) δ i \delta_i δi的偏导数:
    (32) ∂ 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|w)}{\partial\delta_i}=\sum_{x,y}\tilde P(x,y)f_i(x,y)-\sum_x\tilde P(x)\sum_yP_w(y|x)f_i(x,y)\exp(\delta_if^{\sharp}(x,y)) \tag{32} δiB(δw)=x,yP~(x,y)fi(x,y)xP~(x)yPw(yx)fi(x,y)exp(δif(x,y))(32)
    在式(32)里,除 δ i \delta_i δi外不含任何其他变量。令偏导数为0得到
    (33) ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) exp ⁡ ( δ i f ♯ ( x , y ) ) = E P ~ ( f i ) \sum_{x,y}\tilde P(x)P_w(y|x)f_i(x,y)\exp(\delta_if^{\sharp}(x,y))=E_{\tilde P}(f_i) \tag{33} x,yP~(x)Pw(yx)fi(x,y)exp(δif(x,y))=EP~(fi)(33)
    于是,依次对 δ i \delta_i δi求解方程(33)可以求出 δ \delta δ
    这就给出了一种求 w w w的最优解的迭代方法,即改进的迭代尺度算法IIS。
    算法1(改进的迭代尺度算法IIS)
    输入:特征函数 f 1 , f 2 , ⋯   , f n f_1,f_2,\cdots,f_n f1,f2,,fn;经验分布 P ~ ( X , Y ) \tilde 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}
    (a) 令 δ i \delta_i δi是方程
    ∑ x , y P ~ ( x ) P ( y ∣ x ) f i ( x , y ) exp ⁡ ( δ i f ♯ ( x , y ) ) = E P ~ ( f i ) \sum_{x,y}\tilde P(x)P(y|x)f_i(x,y)\exp(\delta_if^{\sharp}(x,y))=E_{\tilde P}(f_i) x,yP~(x)P(yx)fi(x,y)exp(δif(x,y))=EP~(fi)
    的解,这里,
    f ♯ ( x , y ) = ∑ i = 1 n f i ( x , y ) f^{\sharp}(x,y)=\sum_{i=1}^nf_i(x,y) f(x,y)=i=1nfi(x,y)
    (b) 更新 w i w_i wi值: w i ← w i + δ i w_i\leftarrow w_i+\delta_i wiwi+δi
    (3) 如果不是所有 w i w_i wi都收敛,重复步(2)。
    这一算法关键的一步是(a),即求解方程(33)中的 δ i \delta_i δi。如果 f ♯ ( x , y ) f^{\sharp}(x,y) f(x,y)是常数,即对任何 x x x,y,有 f ♯ ( x , y ) = M f^{\sharp}(x,y)=M f(x,y)=M,那么 δ i \delta_i δi可以显式地表示成
    (34) δ i = 1 M log ⁡ E P ~ ( f i ) E P ( f i ) \delta_i=\frac{1}{M}\log\frac{E_{\tilde P}(f_i)}{E_P(f_i)} \tag{34} δi=M1logEP(fi)EP~(fi)(34)
    如果 f ♯ ( x , y ) f^{\sharp}(x,y) f(x,y)不是常数,那么必须通过数值计算求 δ i \delta_i δi,简单有效的方法是牛顿法。以 g ( δ i ) = 0 g(\delta_i)=0 g(δi)=0表示方程(33),牛顿法通过迭代求得 δ i ∗ \delta_i^* δi,使得 g ( δ i ∗ ) = 0 g(\delta_i^*)=0 g(δi)=0。迭代公式是
    (35) δ 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)})} \tag{35} δi(k+1)=δi(k)g(δi(k))g(δi(k))(35)
    只要适当选取初始值 δ i ( 0 ) \delta_i^{(0)} δi(0),由于 δ i \delta_i δi的方程(33)有单根,因此牛顿法恒收敛,而且收敛速度很快。

  • 拟牛顿法
    最大熵模型学习还可以应用牛顿法或拟牛顿法。
    对于最大熵模型而言
    P w ( y ∣ x ) = exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P_w(y|x)=\frac{\exp\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg)}{\sum_y\exp\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg)} Pw(yx)=yexp(i=1nwifi(x,y))exp(i=1nwifi(x,y))
    目标函数:
    min ⁡ w ∈ R n f ( w ) = ∑ 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 ) \min_{w\in R^n} f(w)=\sum_x\tilde P(x)\log\sum_y\exp\bigg(\sum_{i=1}^nw_if_i(x,y)\bigg)-\sum_{x,y}\tilde P(x,y)\sum_{i=1}^nw_if_i(x,y) wRnminf(w)=xP~(x)logyexp(i=1nwifi(x,y))x,yP~(x,y)i=1nwifi(x,y)
    梯度:
    g ( w ) = ( ∂ f ( w ) ∂ w 1 , ∂ f ( w ) ∂ w 2 , ⋯   , ∂ f ( w ) ∂ w n ) T g(w)=\bigg(\frac{\partial f(w)}{\partial w_1},\frac{\partial f(w)}{\partial w_2},\cdots,\frac{\partial f(w)}{\partial w_n}\bigg)^T g(w)=(w1f(w),w2f(w),,wnf(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|x)f_i(x,y)-E_{\tilde P}(f_i), i=1,2,\cdots,n wif(w)=x,yP~(x)Pw(yx)fi(x,y)EP~(fi),i=1,2,,n
    相应的拟牛顿法BFGS算法如下。
    算法2(最大熵模型学习的BFGS算法)
    输入:特征函数 f 1 , f 2 , ⋯   , f n f_1,f_2,\cdots,f_n f1,f2,,fn;经验分布 P ~ ( x , y ) \tilde P(x,y) P~(x,y),目标函数 f ( w ) f(w) f(w),梯度 g ( w ) = ▽ f ( w ) g(w)=\triangledown f(w) g(w)=f(w),精度要求 ε \varepsilon ε
    输出:最有参数值 w ∗ w^* w;最优模型 P w ∗ ( y ∣ x ) P_{w^*}(y|x) Pw(yx)
    (1) 选定初始值 w ( 0 ) w^{(0)} w(0),取 B 0 B_0 B0为正定对称矩阵,置 k = 0 k=0 k=0
    (2) 计算 g k = g ( w ( k ) ) g_k=g(w^{(k)}) gk=g(w(k))。若 ∣ ∣ g k ∣ ∣ < ε ||g_k||<\varepsilon gk<ε,则停止计算,得 w ∗ = w ( k ) w^*=w^{(k)} w=w(k);否则转(3)
    (3) 由 B k p k = − g k B_kp_k=-g_k Bkpk=gk求出 p k p_k pk
    (4) 一维搜索:求 λ k \lambda_k λk使得
    f ( w ( k ) + λ k p k ) = min ⁡ λ ≥ 0 f ( w ( k ) + λ p k ) f(w^{(k)}+\lambda_kp_k)=\min_{\lambda\geq0}f(w^{(k)}+\lambda p_k) f(w(k)+λkpk)=λ0minf(w(k)+λpk)
    (5) 置 w ( k + 1 ) = w ( k ) + λ k p k w^{(k+1)}=w^{(k)}+\lambda_kp_k w(k+1)=w(k)+λkpk
    (6) 计算 g k + 1 = g ( w ( k + 1 ) ) g_{k+1}=g(w^{(k+1)}) gk+1=g(w(k+1)),若 ∣ ∣ g k ∣ ∣ < ε ||g_k||<\varepsilon gk<ε,则停止计算,得 w ∗ = w ( k + 1 ) w^*=w^{(k+1)} w=w(k+1),否则,按下式求出 B k + 1 B_{k+1} Bk+1:
    B k + 1 = B k + y k y k T y k T δ k − B k δ k δ k T B k δ k T B k δ k B_{k+1}=B_k+\frac{y_ky_k^T}{y_k^T\delta_k}-\frac{B_k\delta_k\delta_k^TB_k}{\delta_k^TB_k\delta_k} Bk+1=Bk+ykTδkykykTδkTBkδkBkδkδkTBk
    其中,
    y k = g k + 1 − g k , δ k = w ( k + 1 ) − w ( k ) y_k=g_{k+1}-g_k, \delta_k=w^{(k+1)}-w^{(k)} yk=gk+1gk,δk=w(k+1)w(k)
    (7) 置 k = k + 1 k=k+1 k=k+1,转(3)。

你可能感兴趣的:(统计学习方法读书笔记第六章:逻辑斯谛回归与最大熵模型)