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

news2025/1/19 22:18:30

最大熵模型

极大似然估计

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

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

  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 ) \tilde P(x,y) P~(x,y),即:
m = N ⋅ P ~ ( x , y ) m = N \cdot \tilde 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 \tilde 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_{\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)是最大熵模型 ( 6.22 ) (6.22) (6.22) ( 6.23 ) (6.23) (6.23)时,对数似然函数 L P ~ ( P w ) L_{\tilde 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) \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) \log \left[ \frac{1}{Z_w(x)} \exp\left(\sum_{i=1}^n w_if_i(x,y)\right) \right] \\ &= \sum_{x,y} \tilde P(x,y) \left(\sum_{i=1}^n w_if_i(x,y) -\log Z_w(x)\right)\\ &= \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n w_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}^n w_if_i(x,y) - \sum_{x} \tilde P(x) \log Z_w(x) \end{aligned} \tag{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) \begin{aligned} \Psi(w) &= \sum_{x,y} \tilde P(x)P_w(y|x) \log P_w(y|x) + \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_w(y|x)f_i(x,y) \right) \\ &= \sum_{x,y} \tilde 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_i\sum_{x,y} \tilde P(x,y)f_i(x,y) -\sum_{i=1}^n w_i \sum_{x,y} \tilde P(x) P_w(y|x)f_i(x,y) \\ &= \sum_{x,y} \tilde P(x) P_w(y|x) \left(\sum_{i=1}^n w_if_i(x,y)) - \log Z_w(x) \right) + \sum_{i=1}^n\sum_{x,y} w_i\tilde P(x,y)f_i(x,y) -\sum_{i=1}^n \sum_{x,y} w_i \tilde P(x) P_w(y|x)f_i(x,y) \\ &= \sum_{x,y} \tilde P(x) P_w(y|x) \sum_{i=1}^n w_if_i(x,y)) - \sum_{x,y} \tilde P(x) P_w(y|x) \log Z_w(x) + \sum_{i=1}^n\sum_{x,y} w_i\tilde P(x,y)f_i(x,y) -\sum_{i=1}^n \sum_{x,y} w_i \tilde P(x) P_w(y|x)f_i(x,y) \\ &= \cancel{\sum_{i=1}^n \sum_{x,y} w_i \tilde P(x) P_w(y|x)f_i(x,y)} - \sum_{x,y} \tilde P(x) P_w(y|x) \log Z_w(x) + \sum_{i=1}^n\sum_{x,y} w_i\tilde P(x,y)f_i(x,y) -\cancel{\sum_{i=1}^n \sum_{x,y} w_i \tilde P(x) P_w(y|x)f_i(x,y) } \\ &= \sum_{i=1}^n\sum_{x,y} w_i\tilde P(x,y)f_i(x,y) - \sum_{x,y} \tilde P(x) P_w(y|x) \log Z_w(x) \\ &= \sum_{i=1}^n\sum_{x,y} w_i\tilde P(x,y)f_i(x,y) - \sum_{x} \tilde P(x) \log Z_w(x) \quad\quad 利用\sum_y P_w(y|x)=1 \\ &= \sum_{x,y} \tilde P(x,y)\sum_{i=1}^n w_if_i(x,y) - \sum_{x} \tilde P(x) \log Z_w(x) \end{aligned} \tag{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_0\left( 1 -\sum_y P_w(y|x) \right) =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_{\tilde P}P(w) Ψ(w)=LP~P(w)
即对偶函数 Ψ ( w ) \Psi(w) Ψ(w)等价于对数似然函数 L P ~ P ( w ) L_{\tilde 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)} \exp\left(\sum_{i=1}^n w_if_i(x,y) \right) \tag{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_y\exp\left(\sum_{i=1}^n w_if_i(x,y) \right) \tag{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)} \exp\left( \sum_{i=1}^n w_if_i(x,y) \right) 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) \right) 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}^n w_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,使得模型的对数似然函数值增大。

如果能有这样一种参数向量更新的方法 τ : w → w + δ \tau: 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 ) ∑ 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 ) \begin{aligned} L(w+\delta) - L(w) &= \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n (w_i+\delta_i)f_i(x,y) - \sum_x \tilde P(x) \log Z_{w+\delta}(x) - \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n w_if_i(x,y) + \sum_x \tilde P(x) \log Z_w(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)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 ) ) \begin{aligned} L(w+\delta) - L(w) &\geq \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)} \\ &= \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_y\exp\left(\sum_{i=1}^n (w_i+\delta_i)f_i(x,y) \right)}{\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 \delta_i f_i(x,y) + 1 - \sum_x \tilde P(x) \frac{\sum_y\exp \left(\sum_{i=1}^n w_if_i(x,y) \right) \cdot \exp(\sum_{i=1}^n\delta_if_i(x,y))}{\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 \delta_i f_i(x,y) + 1 - \sum_x \tilde P(x) \sum_y P_w(y|x) \cdot \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)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} \tilde P(x,y) \sum_{i=1}^n \delta_i f_i(x,y) + 1 - \sum_x \tilde P(x) \sum_y P_w(y|x) \cdot \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)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 \neq 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) \begin{aligned} 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 \left( f^\#(x,y) \sum_{i=1}^n \frac{\delta_i f_i(x,y)}{f^\#(x,y)}\right) \end{aligned} \tag{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) \right) \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} \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) \sum_{i=1}^n \left( \frac{f_i(x,y)}{f^\#(x,y)}\right) \exp(\delta_i f^\#(x,y)) \tag{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} \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) \sum_{i=1}^n \left( \frac{f_i(x,y)}{f^\#(x,y)}\right) \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} \tilde P(x,y) f_i(x,y) - \sum_x \tilde P(x) \sum_y P_w(y|x) f_i(x,y) \exp(\delta_i f^\#(x,y)) \tag{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} \tilde P(x) P_w(y|x) f_i(x,y) \exp(\delta_if^\#(x,y)) = E_{\tilde P}(f_i) \tag{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 ) \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 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^\#(x,y)) = E_{\tilde 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{\exp\left( \sum_{i=1}^n w_if_i(x,y) \right)}{ \sum_y \exp \left( \sum_{i=1}^n w_if_i(x,y) \right)} 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 \Bbb R^n} f(w) = \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_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} \right)^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),\quad i=1,2\cdots,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 ) \tilde P(x,y) P~(x,y),目标函数 f ( w ) f(w) f(w),梯度 g ( w ) = ∇ f ( w ) g(w)=\nabla 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^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,\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. 十分钟机器学习 简博士

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/625744.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[hsctf 2023] crypto,pwn,rev部分

刚完了天津又来个衡水,这个大部分题比较简单,最后两天整了3个crypto有点意思. crypto double-trouble 给了密文 Hvwg gvcizr bch ps hcc vofr. Wb toqh, W kwzz uwjs wh hc mci fwuvh bck! Hvs tzou wg hvs tczzckwbu: OmqemdOubtqdeMdqOaax Vcksjsf, wh wg sbqcrsr gc mci …

刷脸登录(人工智能)

刷脸登录 理解刷脸登录的需求 理解刷脸登录的开发流程实现刷脸登录功能 浅谈人工智能 人工智能的概述 人工智能&#xff08;Artificial Intelligence&#xff09;&#xff0c;英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门…

chatgpt赋能python:Python怎么下pip:简单又方便的工具

Python怎么下pip&#xff1a;简单又方便的工具 Python 是一门广泛应用的高级编程语言&#xff0c;它设计的初衷是让程序员更加愉悦地编写代码&#xff0c;同时提供了多种强大的库和框架。其中&#xff0c;pip 是最为常见的第三方包管理工具&#xff0c;本文将为你介绍如何下载…

uniapp实现主题切换功能实现第一种方式(scss变量+vuex)

随着用户端体验的不断提升&#xff0c;很多应用在上线的时候都要求做不同的主题&#xff0c;最基本的就是白天与夜间主题。 就像b站app主题切换&#xff0c;像这样的 uniapp因为能轻松实现多端发布而得到很多开发者的青睐&#xff0c;但每个端的实现也有可能不同&#xff0c;现…

NLP学习笔记四-word embeding

NLP学习笔记四-word embeding word embeding就是一块重头戏了&#xff0c;因为这里做完&#xff0c;我们的数据处理部分也基本上收尾了。 下面我们附上一张图&#xff1a; 如上图&#xff0c;word embeding实在我们one-hot word之后才可以进行的&#xff0c;每一步处理技术都是…

NVM安装(管理Node.js版本)

NVM可以在一台电脑上安装多个版本Node.js&#xff0c;并且可以一条指令随时下载或切换版本 下载安装 github下载地址&#xff1a;https://github.com/coreybutler/nvm-windows/releases 一路next&#xff0c;注意修改安装路径即可&#xff08;不要安装在有中文名称的目录下&am…

Latex图表制作:关于EPS文件转PDF文件及PDF裁剪自动化的Shell脚本制作

关于EPS文件转PDF文件及PDF裁剪自动化的Shell脚本制作 前言一、EPS文件转PDF文件1. 过去的科研绘图方案2. 未来的科研绘图方案 二、使用步骤1. 单例操作a. 安装epstoolb. 切除EPS文件白边并保存临时EPS文件d. 将EPS文件转换为PDF文件 2. 批处理操作a. Shell 脚本b. 使用说明 参…

贝叶斯公式的理解与推导(简单版本)

院子里面有条狗&#xff0c;过去几十年中&#xff0c;平均100天狗会叫50天&#xff0c;平均100天被偷盗一次&#xff0c;偷盗时有90%概率狗会叫&#xff0c;请问当狗叫的时候&#xff0c;是小偷入侵的概率有多大&#xff1f; 分析&#xff1a; 狗叫为独立事件A&#xff0c;偷盗…

chatgpt赋能python:Python如何将PDF转换为Word文档

Python如何将PDF转换为Word文档 在现代电脑使用的日常工作中&#xff0c;PDF格式的文档已经变得很普遍。这种文件格式十分方便&#xff0c;但是有时候可能需要将PDF文件转换为Word文档。幸运的是&#xff0c;Python提供了多种方法来实现这个目标。 为什么要将PDF转换为Word&a…

6. 常见的文件编码方式及查看网页源码的编码方式

6. 常见的文件编码方式及查看网页源码的编码方式 文章目录 6. 常见的文件编码方式及查看网页源码的编码方式1. 编码的由来2. 编码的作用3. 常见的编码方式4. ASCII码5. Unicode符号集6. UTF-87. GB23128. GBK9. ISO-8859-110. 文件编码查看方式11. 网页编码查看方式12. 留言 1.…

【学习日记2023.6.9】之 SpringCloud入门

文章目录 SpringCloud1. 认识微服务1.1 单体架构1.2 分布式架构1.3 微服务1.4 SpringCloud1.5 总结 2. 服务拆分和远程调用2.1 服务拆分原则2.2 服务拆分示例2.2.1 导入Sql语句2.2.2 导入demo工程 2.3 实现远程调用案例2.3.1 案例需求&#xff1a;2.3.2 注册RestTemplate2.3.3 …

计算机组成原理——总线,输入输出系统

文章目录 **一 总线概述****1 总线基本概念****1.1 定义****1.2 总线设备****1.3 总线特性** **2 总线的分类****2.1 片内总线****2.2 系统总线****2.3 I/O总线****2.4 通信总线** **3 系统总线的结构****3.1 单总线结构****3.2 双总线结构****3.3 三总线结构** **4 常见的总线…

TextDiffuser: Diffusion Models as Text Painters

TextDiffuser: Diffusion Models as Text Painters (Paper reading) Jingye Chen, HKUST, HK, arXiv2023, Cited: 0, Code, Paper 1. 前言 扩散模型因其出色的生成能力而受到越来越多的关注&#xff0c;但目前在生成准确连贯的文本方面仍存在困难。为了解决这个问题&#xf…

chatgpt赋能python:Python怎么进行302跳转以提高SEO

Python怎么进行302跳转以提高SEO 在进行搜索引擎优化时&#xff0c;重点是提高网站的排名和流量。其中一个关键的因素就是网页的重定向。在Python中&#xff0c;使用302重定向可以为您的网页提供更好的SEO效果。 什么是302跳转&#xff1f; 302跳转指的是HTTP状态码302 Foun…

chatgpt赋能python:Python教程:如何使用Python在U盘上新建文件?

Python教程&#xff1a;如何使用Python在U盘上新建文件&#xff1f; 如果您是一名经验丰富的Python开发人员&#xff0c;那么您可能已经使用Python进行过很多任务。但是&#xff0c;您是否曾经问过自己如何在U盘上使用Python来新建文件&#xff1f;这篇文章将带您逐步了解如何…

chatgpt赋能python:Python中如何使用正弦函数进行数学计算

Python中如何使用正弦函数进行数学计算 正弦函数是数学中经常使用的一种三角函数&#xff0c;可用于测量角度和距离等。Python是一种可以跨平台使用的高级编程语言&#xff0c;它具有许多内置函数来进行数学计算。在Python中使用正弦函数&#xff0c;可以通过输入角度或弧度来…

【AI】Ubuntu20.04安装cuda、cuDNN、Anacodna、PyTorch

1、版本选择 1)选择PyTorch版本:2.0.1 2)对应的CUDA版本:11.7或者11.8,选择较新的11.8 3)确定显卡是否支持,使用命令nvidia-smi查看显卡驱动版本及支持的CUDA最高的版本,本人的为12 4)cuDNN版本 选择和CUDA版本对应的最新版本v8.9.1 2、下载 2.1 下载CUDA 各个…

力扣高频SQL50题(基础版)——第九天

力扣高频SQL50题(基础版)——第九天 1 销售分析Ⅲ 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 1.2 示例sql语句 # 找到不在春季销售的产品 然后不是这些的就是符合条件的 # QUARTER 返回日期是第几季度的 SELECT product_id,product_name F…

AJAX:

目录 AJAX简介&#xff1a; 特点&#xff1a; 优点&#xff1a; 缺点&#xff1a; http请求报文和响应报文&#xff1a; AJAX代码实现&#xff1a; 发送get请求&#xff1a; 发送post请求&#xff1a; ​服务器响应json数据&#xff1a; ​AJAX的问题处理&#xff1a…

从零开始:如何用Python建立你的第一个人工智能模型

1. 摘要&#xff1a; 在这篇文章中&#xff0c;我们将介绍如何从零开始使用Python建立你的第一个人工智能模型。无论你是刚接触编程的新手&#xff0c;还是有经验的开发者想进一步探索人工智能领域&#xff0c;这篇文章都将为你提供清晰、详细的指南。我们将一步步探索数据预处…