您现在的位置是:首页 >学无止境 >《统计学习方法》——逻辑斯谛回归与最大熵模型(下)网站首页学无止境

《统计学习方法》——逻辑斯谛回归与最大熵模型(下)

愤怒的可乐 2024-09-17 00:01:04
简介《统计学习方法》——逻辑斯谛回归与最大熵模型(下)

最大熵模型

极大似然估计

下面证明对偶函数的极大化等价于最大熵模型的极大似然估计。

极大似然估计的思想就是通过概率最大化来求出最符合的分类。对应的步骤为:

  1. 根据训练集,写出不同分类下的概率函数
  2. 将不同分类下的概率函数进行汇总,写出联合概率函数
  3. 根据训练集得出似然函数
  4. 假设似然函数可微,求偏导得到极大值,否则遍历。且也可以转换为对数似然函数来求解。

最大熵模型用极大似然估计的目的是为了估计最大条件概率分布,就是为了解决分类问题。

对于训练集中的某一个样本点 ( x , y ) (x,y) (x,y),对应的条件概率是 P w ( y ∣ x ) P_w(y|x) Pw(yx),假设该样本点在训练集中出现了很多次,假设为 m m m次。那么对应的概率函数可以表示为:
P w ( y ∣ x ) m P_w(y|x)^m Pw(yx)m
然后,就可以按照极大似然估计的步骤,求出联合概率函数
∏ x , y P w ( y ∣ x ) m prod_{x,y} P_w(y|x)^m x,yPw(yx)m
那最大熵模型这里的 m m m等于多少呢?对于训练数据集来说,它就是样本总数 N N N乘以对应这组数据出现的经验概率 P ~ ( x , y ) ilde P(x,y) P~(x,y),即:
m = N ⋅ P ~ ( x , y ) m = N cdot ilde P(x,y) m=NP~(x,y)
我们就可以把联合概率函数写成:
∏ x , y P w ( y ∣ x ) N ⋅ P ~ ( x , y ) prod_{x,y} P_w(y|x)^{N cdot ilde P(x,y)} x,yPw(yx)NP~(x,y)
由于对于固定的训练集来说, N N N是常数,故下文省去。

这里我们可以计算对数似然函数,对数似然函数可以表示为
L P ~ ( P w ) = log ⁡ ∏ x , y P ( y ∣ x ) P ~ ( x , y ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x ) L_{ ilde P}(P_w) = log prod_{x,y} P(y|x)^{ ilde P(x,y)} =sum_{x,y} ilde 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)是最大熵模型 ( 6.22 ) (6.22) (6.22) ( 6.23 ) (6.23) (6.23)时,对数似然函数 L P ~ ( P w ) L_{ ilde P}(P_w) LP~(Pw)
L P ~ ( P w ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x ) = ∑ x , y P ~ ( x , y ) log ⁡ [ 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) ] = ∑ x , y P ~ ( x , y ) ( ∑ i = 1 n w i f i ( x , y ) − log ⁡ Z w ( 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 ) (6.26) egin{aligned} L_{ ilde P}(P_w) &= sum_{x,y} ilde P(x,y) log P(y|x) \ &= sum_{x,y} ilde P(x,y) log left[ frac{1}{Z_w(x)} expleft(sum_{i=1}^n w_if_i(x,y) ight) ight] \ &= sum_{x,y} ilde P(x,y) left(sum_{i=1}^n w_if_i(x,y) -log Z_w(x) ight)\ &= sum_{x,y} ilde P(x,y) sum_{i=1}^n w_if_i(x,y) - sum_{x,y} ilde P(x,y) log Z_w(x) \ &= sum_{x,y} ilde P(x,y) sum_{i=1}^n w_if_i(x,y) - sum_{x} ilde P(x) log Z_w(x) end{aligned} ag{6.26} LP~(Pw)=x,yP~(x,y)logP(yx)=x,yP~(x,y)log[Zw(x)1exp(i=1nwifi(x,y))]=x,yP~(x,y)(i=1nwifi(x,y)logZw(x))=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)(6.26)
再看对偶函数 Ψ ( w ) Psi(w) Ψ(w),由式 ( 6.17 ) (6.17) (6.17)和式 ( 6.20 ) (6.20) (6.20)可得
Ψ ( 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 ) P w ( y ∣ x ) log ⁡ exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) Z w ( x ) + ∑ i = 1 n w i ∑ x , y P ~ ( x , y ) f i ( x , y ) − ∑ i = 1 n w i ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) = ∑ x , y P ~ ( x ) P w ( y ∣ x ) ( ∑ i = 1 n w i f i ( x , y ) ) − log ⁡ Z w ( x ) ) + ∑ i = 1 n ∑ x , y w i P ~ ( x , y ) f i ( x , y ) − ∑ i = 1 n ∑ x , y w i P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) = ∑ x , y P ~ ( x ) P w ( y ∣ x ) ∑ i = 1 n w i f i ( x , y ) ) − ∑ x , y P ~ ( x ) P w ( y ∣ x ) log ⁡ Z w ( x ) + ∑ i = 1 n ∑ x , y w i P ~ ( x , y ) f i ( x , y ) − ∑ i = 1 n ∑ x , y w i P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) = ∑ i = 1 n ∑ x , y w i P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) − ∑ x , y P ~ ( x ) P w ( y ∣ x ) log ⁡ Z w ( x ) + ∑ i = 1 n ∑ x , y w i P ~ ( x , y ) f i ( x , y ) − ∑ i = 1 n ∑ x , y w i P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) = ∑ i = 1 n ∑ x , y w i P ~ ( x , y ) f i ( x , y ) − ∑ x , y P ~ ( x ) P w ( y ∣ x ) log ⁡ Z w ( x ) = ∑ i = 1 n ∑ x , y w i P ~ ( x , y ) f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ Z w ( x ) 利用 ∑ y P w ( y ∣ x ) = 1 = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ Z w ( x ) (6.27) egin{aligned} Psi(w) &= sum_{x,y} ilde P(x)P_w(y|x) log P_w(y|x) + sum_{i=1}^n w_i left( sum_{x,y} ilde P(x,y)f_i(x,y) - sum_{x,y} ilde P(x) P_w(y|x)f_i(x,y) ight) \ &= sum_{x,y} ilde P(x) P_w(y|x) log frac{ exp(sum_{i=1}^n w_if_i(x,y))}{Z_w(x)} + sum_{i=1}^n w_isum_{x,y} ilde P(x,y)f_i(x,y) -sum_{i=1}^n w_i sum_{x,y} ilde P(x) P_w(y|x)f_i(x,y) \ &= sum_{x,y} ilde P(x) P_w(y|x) left(sum_{i=1}^n w_if_i(x,y)) - log Z_w(x) ight) + sum_{i=1}^nsum_{x,y} w_i ilde P(x,y)f_i(x,y) -sum_{i=1}^n sum_{x,y} w_i ilde P(x) P_w(y|x)f_i(x,y) \ &= sum_{x,y} ilde P(x) P_w(y|x) sum_{i=1}^n w_if_i(x,y)) - sum_{x,y} ilde P(x) P_w(y|x) log Z_w(x) + sum_{i=1}^nsum_{x,y} w_i ilde P(x,y)f_i(x,y) -sum_{i=1}^n sum_{x,y} w_i ilde P(x) P_w(y|x)f_i(x,y) \ &= cancel{sum_{i=1}^n sum_{x,y} w_i ilde P(x) P_w(y|x)f_i(x,y)} - sum_{x,y} ilde P(x) P_w(y|x) log Z_w(x) + sum_{i=1}^nsum_{x,y} w_i ilde P(x,y)f_i(x,y) -cancel{sum_{i=1}^n sum_{x,y} w_i ilde P(x) P_w(y|x)f_i(x,y) } \ &= sum_{i=1}^nsum_{x,y} w_i ilde P(x,y)f_i(x,y) - sum_{x,y} ilde P(x) P_w(y|x) log Z_w(x) \ &= sum_{i=1}^nsum_{x,y} w_i ilde P(x,y)f_i(x,y) - sum_{x} ilde P(x) log Z_w(x) quadquad 利用sum_y P_w(y|x)=1 \ &= sum_{x,y} ilde P(x,y)sum_{i=1}^n w_if_i(x,y) - sum_{x} ilde P(x) log Z_w(x) end{aligned} ag{6.27} Ψ(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)Pw(yx)logZw(x)exp(i=1nwifi(x,y))+i=1nwix,yP~(x,y)fi(x,y)i=1nwix,yP~(x)Pw(yx)fi(x,y)=x,yP~(x)Pw(yx)(i=1nwifi(x,y))logZw(x))+i=1nx,ywiP~(x,y)fi(x,y)i=1nx,ywiP~(x)Pw(yx)fi(x,y)=x,yP~(x)Pw(yx)i=1nwifi(x,y))x,yP~(x)Pw(yx)logZw(x)+i=1nx,ywiP~(x,y)fi(x,y)i=1nx,ywiP~(x)Pw(yx)fi(x,y)=i=1nx,ywiP~(x)Pw(yx)fi(x,y) x,yP~(x)Pw(yx)logZw(x)+i=1nx,ywiP~(x,y)fi(x,y)i=1nx,ywiP~(x)Pw(yx)fi(x,y) =i=1nx,ywiP~(x,y)fi(x,y)x,yP~(x)Pw(yx)logZw(x)=i=1nx,ywiP~(x,y)fi(x,y)xP~(x)logZw(x)利用yPw(yx)=1=x,yP~(x,y)i=1nwifi(x,y)xP~(x)logZw(x)(6.27)
上面用到了 ∑ y P w ( y ∣ x ) = 1 sum_y P_w(y|x)=1 yPw(yx)=1,以及 w 0 ( 1 − ∑ y P w ( y ∣ x ) ) = 0 w_0left( 1 -sum_y P_w(y|x) ight) =0 w0(1yPw(yx))=0

比较 ( 6.26 ) (6.26) (6.26) ( 6.27 ) (6.27) (6.27),可得
Ψ ( w ) = L P ~ P ( w ) Psi(w) = L_{ ilde P}P(w) Ψ(w)=LP~P(w)
即对偶函数 Ψ ( w ) Psi(w) Ψ(w)等价于对数似然函数 L P ~ P ( w ) L_{ ilde P}P(w) LP~P(w),于是证明了最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然估计。

于是,最大熵模型的学习问题就转换为具体求解对数似然函数极大化或对偶函数极大化的问题。

可以将最大熵模型写成更一般的形式。
P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) (6.28) P_w(y|x) = frac{1}{Z_w(x)} expleft(sum_{i=1}^n w_if_i(x,y) ight) ag{6.28} Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))(6.28)
其中,
Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) (6.29) Z_w(x) = sum_yexpleft(sum_{i=1}^n w_if_i(x,y) ight) ag{6.29} Zw(x)=yexp(i=1nwifi(x,y))(6.29)
这里, x ∈ R n x in Bbb R^n xRn为输入, y ∈ { 1 , 2 , ⋯   , K } y in {1,2,cdots, K} y{1,2,,K}为输出, w ∈ R n w in Bbb R^n wRn为权重向量, f i ( x , y ) ,   i = 1 , ⋯   , n f_i(x,y),,i=1,cdots,n fi(x,y),i=1,,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)} expleft( sum_{i=1}^n w_if_i(x,y) ight) 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 left( sum_{i=1}^n w_if_i(x,y) ight) 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} ilde P(x,y) sum_{i=1}^n w_if_i(x,y) - sum_x ilde 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,使得模型的对数似然函数值增大。

如果能有这样一种参数向量更新的方法 τ : w → w + δ au: w ightarrow w + delta τ:ww+δ,那么久可以重复使用这一方法,直到找到对数似然函数的最大值。

对于给定的经验分布 P ~ ( x , y ) ilde P(x,y) P~(x,y),模型参数从 w w w w + δ w+delta w+δ,对数似然函数的改变量是
L ( w + δ ) − L ( w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n ( w i + δ i ) f i ( x , y ) − ∑ 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 ⁡ Z w ( x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ Z w + δ ( x ) Z w ( x ) egin{aligned} L(w+delta) - L(w) &= sum_{x,y} ilde P(x,y) sum_{i=1}^n (w_i+delta_i)f_i(x,y) - sum_x ilde P(x) log Z_{w+delta}(x) - sum_{x,y} ilde P(x,y) sum_{i=1}^n w_if_i(x,y) + sum_x ilde P(x) log Z_w(x) \ &= sum_{x,y} ilde P(x,y) sum_{i=1}^n delta_if_i(x,y) - sum_x ilde P(x) log frac{Z_{w+delta}(x)}{Z_w(x)} end{aligned} L(w+δ)L(w)=x,yP~(x,y)i=1n(wi+δi)fi(x,y)xP~(x)logZw+δ(x)x,yP~(x,y)i=1nwifi(x,y)+xP~(x)logZw(x)=x,yP~(x,y)i=1nδifi(x,y)xP~(x)logZw(x)Zw+δ(x)
利用不等式
− log ⁡ α ≥ 1 − α , α > 0 -log alpha geq 1 -alpha, quad 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 exp ⁡ ( ∑ i = 1 n ( w i + δ i ) f i ( x , y ) ) ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) = ∑ 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 ) ) ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) = ∑ 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 ) ) egin{aligned} L(w+delta) - L(w) &geq sum_{x,y} ilde P(x,y) sum_{i=1}^n delta_i f_i(x,y) + 1 - sum_x ilde P(x) frac{Z_{w+delta}(x)}{Z_w(x)} \ &= sum_{x,y} ilde P(x,y) sum_{i=1}^n delta_i f_i(x,y) + 1 - sum_x ilde P(x) frac{sum_yexpleft(sum_{i=1}^n (w_i+delta_i)f_i(x,y) ight)}{sum_yexpleft(sum_{i=1}^n w_if_i(x,y) ight)} \ &= sum_{x,y} ilde P(x,y) sum_{i=1}^n delta_i f_i(x,y) + 1 - sum_x ilde P(x) frac{sum_yexp left(sum_{i=1}^n w_if_i(x,y) ight) cdot exp(sum_{i=1}^ndelta_if_i(x,y))}{sum_yexpleft(sum_{i=1}^n w_if_i(x,y) ight)} \ &= sum_{x,y} ilde P(x,y) sum_{i=1}^n delta_i f_i(x,y) + 1 - sum_x ilde P(x) sum_y P_w(y|x) cdot exp(sum_{i=1}^ndelta_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)yexp(i=1nwifi(x,y))yexp(i=1n(wi+δi)fi(x,y))=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yexp(i=1nwifi(x,y))yexp(i=1nwifi(x,y))exp(i=1nδifi(x,y))=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)exp(i=1nδifi(x,y))
记这个关于 δ delta δ的函数为 A ( δ ∣ w ) A(delta|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 ⁡ ( ∑ i = 1 n δ i f i ( x , y ) ) A(delta|w) = sum_{x,y} ilde P(x,y) sum_{i=1}^n delta_i f_i(x,y) + 1 - sum_x ilde P(x) sum_y P_w(y|x) cdot exp(sum_{i=1}^ndelta_if_i(x,y)) A(δw)=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)exp(i=1nδifi(x,y))
代表了在已知参数 w w w的情况下所对应的 δ delta δ的函数。

于是有
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)是对数似然函数该变量的一个下界。

这个不等式为什么成立,这里来证明一下。

把这个不等式写成下面的形式:
f ( α ) = − log ⁡ α − ( 1 − α ) f(alpha) = -log alpha - (1 -alpha) f(α)=logα(1α)
image-20230602173356093

它的函数图像是上面这样子的。

我们需要证明 f ( α ) ≥ 0 f(alpha ) geq 0 f(α)0,其中 α > 0 alpha > 0 α>0。对上式求导数:
f ′ ( α ) = − 1 α + 1 = α − 1 α f^prime(alpha) = -frac{1}{alpha} + 1 = frac{alpha-1}{alpha} f(α)=α1+1=αα1
显然 α = 1 alpha=1 α=1时导数为零。

  • α > 1 alpha > 1 α>1时, f ′ ( α ) > 0 f^prime (alpha) > 0 f(α)>0 ,说明在 α > 1 alpha > 1 α>1 f ( α ) f(alpha) f(α)是单调递增的;
  • 1 > α > 0 1 > alpha > 0 1>α>0时, f ′ ( α ) < 0 f^prime(alpha) < 0 f(α)<0,说明在 1 > α > 0 1 > alpha > 0 1>α>0时, f ( α ) f(alpha) f(α)是单调递减的;

因此, α = 1 alpha=1 α=1是函数的极小值。把 α = 1 alpha=1 α=1代入得
f ( 1 ) = − log ⁡ 1 − ( 1 − 1 ) = 0 f(1) = -log 1 -(1-1) = 0 f(1)=log1(11)=0
说明 f ( α ) ≥ 0 f(alpha ) geq 0 f(α)0

如果能找到合适的 δ delta δ式下界 A ( δ ∣ w ) A(delta|w) A(δw)提高,那么对数似然函数也会提高。但是,函数 A ( δ ∣ w ) A(delta|w) A(δw)中的 δ delta δ是一个向量,含有多个变量,不利于同时优化。IIS试图一次只优化其中一个变量 δ i delta_i δi,而固定其他变量 δ j ,   i ≠ j delta_j ,, i eq j δ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^#(x,y) = sum_i f_i(x,y) f#(x,y)=ifi(x,y)
同时有:
f i ( x , y ) f # ( x , y ) ≥ 0 frac{f_i(x,y)}{f^#(x,y)} geq 0 f#(x,y)fi(x,y)0

∑ i f i ( x , y ) f # ( x , y ) = 1 sum_i frac{f_i(x,y)}{f^#(x,y)} =1 if#(x,y)fi(x,y)=1
显然这是成立的。

因为 f i f_i fi是二值函数,当特征函数满足时取1,否则取0。因此 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 δ 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 ) ) (6.30) egin{aligned} A(delta|w) &= sum_{x,y} ilde P(x,y) sum_{i=1}^n delta_if_i(x,y) + 1 - sum_x ilde P(x) sum_y P_w(y|x) exp left( f^#(x,y) sum_{i=1}^n frac{delta_i f_i(x,y)}{f^#(x,y)} ight) end{aligned} ag{6.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))(6.30)
如果尝试计算 ∂ A ( δ ∣ w ) ∂ δ i frac{partial A(delta|w)}{partial delta_i} δiA(δw),会发现第三项的 exp ⁡ ( ∑ i δ i f i ( x , y ) ) exp (sum_i delta_i f_i(x,y)) exp(iδifi(x,y))项不好消,还是会和所有的 δ i delta_i δi有关,因此我们尝试利用Jesen不等式,改写这个式子。

根据Jesen不等式,得到
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) ight) leq sum_{i=1}^n frac{f_i(x,y)}{f^#(x,y)} exp(delta_i f^#(x,y)) exp(i=1nf#(x,y)fi(x,y)δif#(x,y))i=1nf#(x,y)fi(x,y)exp(δif#(x,y))

Jensen不等式的说明参见:EM算法

于是式 ( 6.30 ) (6.30) (6.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 ) ∑ i = 1 n ( f i ( x , y ) f # ( x , y ) ) exp ⁡ ( δ i f # ( x , y ) ) (6.31) A(delta|w) geq sum_{x,y} ilde P(x,y) sum_{i=1}^n delta_if_i(x,y) + 1 - sum_x ilde P(x) sum_y P_w(y|x) sum_{i=1}^n left( frac{f_i(x,y)}{f^#(x,y)} ight) exp(delta_i f^#(x,y)) ag{6.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))(6.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} ilde P(x,y) sum_{i=1}^n delta_if_i(x,y) + 1 - sum_x ilde P(x) sum_y P_w(y|x) sum_{i=1}^n left( frac{f_i(x,y)}{f^#(x,y)} ight) exp(delta_i f^#(x,y)) B(δ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))
进而得到
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的偏导数:
∂ 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 ) ) (6.32) frac{partial B(delta|w)}{partial delta_i} = sum_{x,y} ilde P(x,y) f_i(x,y) - sum_x ilde P(x) sum_y P_w(y|x) f_i(x,y) exp(delta_i f^#(x,y)) ag{6.32} δiB(δw)=x,yP~(x,y)fi(x,y)xP~(x)yPw(yx)fi(x,y)exp(δif#(x,y))(6.32)
在上式中,除 δ i delta_i δi外不含其他任何变量。令偏导数为0得到
∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) exp ⁡ ( δ i f # ( x , y ) ) = E P ~ ( f i ) (6.33) sum_{x,y} ilde P(x) P_w(y|x) f_i(x,y) exp(delta_if^#(x,y)) = E_{ ilde P}(f_i) ag{6.33} x,yP~(x)Pw(yx)fi(x,y)exp(δif#(x,y))=EP~(fi)(6.33)
于是,依次对 δ i delta_i δi求解方程 ( 6.33 ) (6.33) (6.33)就可以求出 δ delta δ

这样就得到了一种求 w w w的最优解的迭代算法,即改进的迭代尺度算法IIS。

算法6.1 (改进的迭代尺度算法IIS)

输入: 特征函数 f 1 , f 2 , ⋯   , f n f_1,f_2,cdots,f_n f1,f2,,fn;经验分布 P ~ ( X , Y ) ilde 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 w ( y ∣ x ) f i ( x , y ) exp ⁡ ( δ i f # ( x , y ) ) = E P ~ ( f i ) sum_{x,y} ilde P(x) P_w(y|x) f_i(x,y) exp(delta_if^#(x,y)) = E_{ ilde P}(f_i) x,yP~(x)Pw(yx)fi(x,y)exp(δif#(x,y))=EP~(fi)
的解,这里,
f # ( x , y ) = ∑ i = 1 n f i ( x , y ) f^#(x,y) = sum_{i=1}^n f_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)。

拟牛顿法

最大熵模型的学习还可以应用牛顿法或拟牛顿法。

对于最大熵模型而言,
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{expleft( sum_{i=1}^n w_if_i(x,y) ight)}{ sum_y exp left( sum_{i=1}^n w_if_i(x,y) ight)} 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_{win Bbb R^n} f(w) = sum_{x} ilde P(x)log sum_y exp left(sum_{i=1}^n w_if_i(x,y) ight) - sum_{x,y} ilde P(x,y) sum_{i=1}^n w_i f_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) = left(frac{partial f(w)}{partial w_1} ,frac{partial f(w)}{partial w_2},cdots, frac{partial f(w)}{partial w_n} ight)^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} ilde P(x)P_w(y|x) f_i(x,y) - E_{ ilde P}(f_i),quad i=1,2cdots,n wif(w)=x,yP~(x)Pw(yx)fi(x,y)EP~(fi),i=1,2,n

BFGS算法

输入:特征函数 f 1 , f 2 , ⋯   , f n f_1,f_2,cdots,f_n f1,f2,,fn;经验分布 P ~ ( x , y ) ilde P(x,y) P~(x,y),目标函数 f ( w ) f(w) f(w),梯度 g ( w ) = ∇ f ( w ) g(w)= abla f(w) g(w)=f(w),精度要求 ϵ epsilon ϵ

输出:最优化参数 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||<epsilon ∣∣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_k p_k) = min_{lambda geq 0} 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 + 1 ∣ ∣ < ϵ ||g_{k+1} || < epsilon ∣∣gk+1∣∣<ϵ,则停止计算,得近似解 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^T_k}{y_k^Tdelta_k} - frac{B_kdelta_kdelta_k^TB_k}{delta_k^TB_kdelta_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,quad 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)。

参考

  1. 统计学习方法
  2. 维基百科
  3. 十分钟机器学习 简博士
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。