最大熵模型 (maximum entropy model)

  • 本文为《统计学习方法》的读书笔记

目录

  • 最大熵原理
  • 最大熵模型的定义
    • 最大熵模型的约束条件
    • 最大熵模型的定义
  • 最大熵模型的学习
    • 约束最优化问题
    • 对偶问题 (求解最大熵模型)
    • 最大熵模型的更一般形式
    • 小例子
  • 极大似然估计
    • 最大熵模型的极大似然函数
    • 最大熵模型的对偶函数
    • 极大似然估计与对偶函数极大化
  • 模型学习的最优化算法
    • 改进的迭代尺度法 (improved iterative scaling, IIS)
    • 拟牛顿法

最大熵原理

  • 最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型 (分布) 中,熵最大的模型是最好的模型。所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型

最大熵原理的直观解释

  • 假设离散随机变量 X X X 的概率分布是 P ( X ) P(X) P(X), 则其熵是
    在这里插入图片描述熵满足下列不等式:
    在这里插入图片描述 X X X 服从均匀分布时,熵最大
  • 直观地,最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是 “等可能的”。最大熵原理通过熵的最大化来表示等可能性

最大熵模型 (maximum entropy model)_第1张图片

最大熵模型的定义

  • 最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型
  • 假设分类模型是一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX) X ∈ R n X\in\R^n XRn. 给定一个训练数据集
    在这里插入图片描述学习的目标是用最大熵原理选择最好的分类模型

最大熵模型的约束条件

  • 给定训练数据集,可以确定联合分布 P ( X , Y ) P(X, Y) P(X,Y) 的经验分布 P ~ ( X , Y ) \tilde P(X, Y) P~(X,Y) 和边缘分布 P ( X ) P(X) P(X) 的经验分布 P ~ ( X ) \tilde P(X) P~(X)
    最大熵模型 (maximum entropy model)_第2张图片其中, ν ( X = x , Y = y ) ν (X = x , Y = y) ν(X=x,Y=y) 表示训练数据中样本 ( x , y ) (x,y) (x,y) 出现的频数, ν ( X = x ) ν(X = x) ν(X=x) 表示训练数据中输入 x x x 出现的频数, N N N 表示训练样本容量
  • 特征函数 (feature function) f ( x , y ) f(x , y) f(x,y) 描述输入 x x x 和输出 y y y 之间的某一个事实:
    在这里插入图片描述特征函数 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) 表示:
    在这里插入图片描述特征函数 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) 表示:
    在这里插入图片描述如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即
    在这里插入图片描述在这里插入图片描述上式即为模型学习的约束条件。假如有 n n n 个特征函数 f i ( x , y ) , i = 1 , . . . , n f_i(x, y) , i = 1 ,...,n fi(x,y),i=1,...,n,那么就有 n n n 个约束条件

最大熵模型的定义

最大熵模型 (maximum entropy model)_第3张图片

最大熵模型的学习

约束最优化问题

  • 最大熵模型的学习等价于约束最优化问题:
    最大熵模型 (maximum entropy model)_第4张图片按照最优化问题的习惯,将求最大值问题改写为等价的求最小值问题:
    最大熵模型 (maximum entropy model)_第5张图片上述约束最优化问题满足 Convex + Slater 条件,因此可以转为求解其对偶问题

对偶问题 (求解最大熵模型)

  • 首先,引进拉格朗日乘子 w 0 , . . . , w n w_0,...,w_n w0,...,wn,定义拉格朗日函数 L ( P , w ) L(P,w) L(P,w)
    最大熵模型 (maximum entropy model)_第6张图片对偶问题是
    在这里插入图片描述
  • 首先求解极小化问题 min ⁡ P ∈ C L ( P , w ) \min_{P\in C}L(P,w) minPCL(P,w)。将 min ⁡ P ∈ C L ( P , w ) \min_{P\in C}L(P,w) minPCL(P,w) 记作 ψ ( w ) \psi(w) ψ(w)
    在这里插入图片描述 ψ ( w ) \psi(w) ψ(w) 称为对偶函数。同时,将其解记作
    在这里插入图片描述具体地,求 L ( P , w ) L(P,w) L(P,w) P ( y ∣ x ) P(y|x) P(yx) 的偏导数
    ∂ L ( P , w ) ∂ P ( y ∣ x ) = P ~ ( x ) ( log ⁡ P ( y ∣ x ) + 1 ) − w 0 − P ~ ( x ) ∑ i = 1 n w i f i ( x , y ) = P ~ ( x ) ( log ⁡ P ( y ∣ x ) + 1 − w 0 − ∑ i = 1 n w i f i ( x , y ) ) \begin{aligned} \frac{\partial L(P, w)}{\partial P(y \mid x)} &=\tilde{P}(x)(\log P(y \mid x)+1)-w_{0}-\tilde{P}(x) \sum_{i=1}^{n} w_{i} f_{i}(x, y) \\ &= \tilde{P}(x)\left(\log P(y \mid x)+1-w_{0}-\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) \end{aligned} P(yx)L(P,w)=P~(x)(logP(yx)+1)w0P~(x)i=1nwifi(x,y)=P~(x)(logP(yx)+1w0i=1nwifi(x,y))令偏导数等于 0,在 P ~ ( x ) > 0 \tilde P(x) > 0 P~(x)>0 的情况下,解得
    在这里插入图片描述由于 ∑ y P ( y ∣ x ) = 1 \sum_yP(y|x)=1 yP(yx)=1,得
    在这里插入图片描述其中,
    在这里插入图片描述 Z w ( x ) Z_w(x) Zw(x) 称为规范化因子; f i ( x , y ) f_i(x,y) fi(x,y) 是特征函数; w i w_i wi 是特征的权值
  • 之后,求解对偶问题外部的极大化问题,并记其解为 w ∗ w^* w
    在这里插入图片描述这就是说,可以应用最优化算法求对偶函数 ψ ( w ) ψ(w) ψ(w) 的极大化,得到 w ∗ w^* w,然后得到的 P w ∗ ( y ∣ x ) P_{w^*}(y|x) Pw(yx) 即为学习到的最大熵模型

最大熵模型的更一般形式

在这里插入图片描述

  • 其中,
    在这里插入图片描述 x ∈ R n x\in\R^n xRn 为输入, y ∈ { 1 , 2 , . . . , k } y\in\{1,2 ,...,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,...,n fi(x,y),i=1,2,...,n 为任意实值特征函数
  • 最大熵模型与逻辑斯谛回归模型有类似的形式,它们又称为对数线性模型 (log linear model)。模型学习就是在给定的训练数据条件下对模型进行极大似然估计或正则化的极大似然估计 (下面会证明对偶函数的极大化等价于最大熵模型的极大似然估计)

小例子

最大熵模型 (maximum entropy model)_第7张图片

极大似然估计

Ref: 最大熵模型中的对数似然函数表示法解释

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

最大熵模型的极大似然函数

  • 已知训练数据的经验概率分布 P ~ ( X , Y ) \tilde P(X,Y) P~(X,Y),则条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX) 的对数似然函数
    L = log ⁡ ∏ i = 1 n P ( x i , y i ) \begin{aligned} L&=\log\prod_{i=1}^nP(x_i,y_i) \end{aligned} L=logi=1nP(xi,yi)样本集中会有很多值相同的样本,即 ( x i , y i ) = ( x j , y j ) ( i ≠ j ) (x_i,y_i)=(x_j,y_j)(i\neq j) (xi,yi)=(xj,yj)(i=j)。假设样本的取值为 k k k 个,分别为 { ( v 1 , w 1 ) , . . . , ( v k , w k ) } \{(v_1,w_1),...,(v_k,w_k)\} { (v1,w1),...,(vk,wk)},用 c ( v i , w i ) c(v_i,w_i) c(vi,wi) 表示训练集中样本值为 ( v i , w i ) (v_i,w_i) (vi,wi) 的频数,则公式对数似然函数可以表示为
    L = log ⁡ ∏ i = 1 k P ( v i , w i ) c ( v i , w i ) \begin{aligned} L&=\log\prod_{i=1}^kP(v_i,w_i)^{c(v_i,w_i)} \end{aligned} L=logi=1kP(vi,wi)c(vi,wi)等号两边同时开 n n n 次方,可得
    L 1 n = log ⁡ ∏ i = 1 k P ( v i , w i ) c ( v i , w i ) n = log ⁡ ∏ i = 1 k P ( v i , w i ) P ~ ( v i , w i ) = log ⁡ ∏ x , y P ( x , y ) P ~ ( x , y ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( x , y ) ≈ ∑ x , y P ~ ( x , y ) log ⁡ [ P ~ ( x ) P ( y ∣ x ) ] = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x ) + ∑ x , y P ~ ( x , y ) log ⁡ P ~ ( x ) \begin{aligned} L^{\frac{1}{n}}&=\log\prod_{i=1}^kP(v_i,w_i)^{\frac{c(v_i,w_i)}{n}} \\&=\log\prod_{i=1}^kP(v_i,w_i)^{\tilde P(v_i,w_i)} \\&=\log\prod_{x,y}P(x,y)^{\tilde P(x,y)} \\&=\sum_{x,y}\tilde P(x,y)\log P(x,y) \\&\approx\sum_{x,y}\tilde P(x,y)\log [\tilde P(x)P(y|x)] \\&=\sum_{x,y}\tilde P(x,y)\log P(y|x)+\sum_{x,y}\tilde P(x,y)\log \tilde P(x) \end{aligned} Ln1=logi=1kP(vi,wi)nc(vi,wi)=logi=1kP(vi,wi)P~(vi,wi)=logx,yP(x,y)P~(x,y)=x,yP~(x,y)logP(x,y)x,yP~(x,y)log[P~(x)P(yx)]=x,yP~(x,y)logP(yx)+x,yP~(x,y)logP~(x)注意到,上式中的后一项 ∑ x , y P ~ ( x , y ) log ⁡ P ~ ( x ) \sum_{x,y}\tilde P(x,y)\log \tilde P(x) x,yP~(x,y)logP~(x) 其实只是一个常数,因此最大化对数似然函数就等价于最大化
    L P ~ ( P w ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x ) \begin{aligned} L_{\tilde P}(P_w)&=\sum_{x,y}\tilde P(x,y)\log P(y|x) \end{aligned} LP~(Pw)=x,yP~(x,y)logP(yx)其中, ∑ x , y \sum_{x,y} x,y 表示遍历 x , y x,y x,y 的所有可能取值,而非遍历整个训练集
  • 当条件概率分布 P ( y ∣ x ) P(y|x) P(yx) 是最大熵模型,即
    最大熵模型 (maximum entropy model)_第8张图片时,对数似然函数 L P ~ ( P w ) L_{\tilde P}(P_w) LP~(Pw)
    最大熵模型 (maximum entropy model)_第9张图片

最大熵模型的对偶函数

最大熵模型 (maximum entropy model)_第10张图片

极大似然估计与对偶函数极大化

  • 可见,
    在这里插入图片描述因此最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然估计。这样,最大熵模型的学习问题就转换为具体求解对数似然函数极大化或对偶函数极大化的问题

模型学习的最优化算法

  • 下面讲解如何极大化对数似然函数 L P ~ ( P w ) L_{\tilde P}(P_w) LP~(Pw),求出 w ∗ w^* w
    w ∗ = arg max ⁡ w ψ ( w ) = arg max ⁡ w L P ~ ( P w ) w^*=\argmax_w\psi(w)=\argmax_w L_{\tilde P}(P_w) w=wargmaxψ(w)=wargmaxLP~(Pw)其中,对数似然函数为
    L P ~ ( P w ) = ∑ x , y P ~ ( x , y ) log ⁡ P w ( y ∣ x ) \begin{aligned} L_{\tilde P}(P_w)&=\sum_{x,y}\tilde P(x,y)\log P_w(y|x) \end{aligned} LP~(Pw)=x,yP~(x,y)logPw(yx)最大熵模型为
    最大熵模型 (maximum entropy model)_第11张图片
  • 从最优化的观点看,这时的目标函数 (对数似然函数) 具有很好的性质。它是光滑的凸函数,因此多种最优化的方法都适用,保证能找到全局最优解
    • 常用的方法有改进的迭代尺度法梯度下降法牛顿法或拟牛顿法。牛顿法或拟牛顿法一般收敛速度更快

下面介绍基于改进的迭代尺度法与拟牛顿法的最大熵模型学习算法

改进的迭代尺度法 (improved iterative scaling, IIS)

  • 改进的迭代尺度法是一种最大熵模型学习的最优化算法。IIS 的想法是: 假设最大熵模型当前的参数向量是 w = ( w 1 , . . . , w n ) T w = (w_1,...,w_n)^T w=(w1,...,wn)T,我们希望找到一个新的参数向量 w + δ = ( w 1 + δ 1 , . . . , w n + δ n ) T w+\delta=(w_1+\delta_1 ,...,w_n+\delta_n)^T w+δ=(w1+δ1,...,wn+δn)T,使得模型的对数似然函数值增大

  • 对于给定的经验分布 P ~ ( x , y ) \tilde P(x ,y) P~(x,y),模型参数从 w w w w + δ w+\delta w+δ,对数似然函数的改变量是
    最大熵模型 (maximum entropy model)_第12张图片利用不等式
    在这里插入图片描述建立对数似然函数改变量的下界:
    最大熵模型 (maximum entropy model)_第13张图片将下界记为 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。但此时如果我们计算 A ( δ ∣ w ) A(\delta|w) A(δw) δ i \delta_i δi 的偏导:
    ∂ A ( δ ∣ 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 = 1 n δ i f i ( x , y ) \frac{\partial A(\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 \mid x)f_i(x,y) \exp \sum_{i=1}^{n} \delta_{i} f_{i}(x, y) δiA(δw)=x,yP~(x,y)fi(x,y)xP~(x)yPw(yx)fi(x,y)expi=1nδifi(x,y)可以发现,这个偏导里含有所有的 δ i , i = 1 , . . . , n \delta_i,i=1,...,n δi,i=1,...,n,因此我们还是没办法一次优化一个变量
  • 为了解决这个问题,IIS 进一步降低下界 A ( δ ∣ w ) A(\delta|w) A(δw)。具体地, IIS 引进一个量 f # ( x , y ) f^\#(x,y) f#(x,y)
    在这里插入图片描述这样, A ( δ ∣ w ) A(\delta|w) A(δw) 可以改写为
    最大熵模型 (maximum entropy model)_第14张图片利用指数函数的凸性以及对任意 i i i,有 f i ( x , y ) f # ( x , y ) ≥ 0 \frac{f_i(x,y)}{f^\#(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^\#(x,y)}=1 i=1nf#(x,y)fi(x,y)=1 这一事实,根据 Jensen 不等式,得到
    在这里插入图片描述于是
    最大熵模型 (maximum entropy model)_第15张图片至此就得到了对数似然函数改变量的一个新的 (相对不紧的) 下界 B ( δ ∣ w ) B(\delta|w) B(δw)
    在这里插入图片描述 B ( δ ∣ w ) B(\delta|w) B(δw) δ i \delta_i δi 的偏导数:
    在这里插入图片描述可以看到上述偏导中,除 δ i \delta_i δi 外不含任何其他变量,这就达到了我们一次只优化一个变量的目的。令偏导数为 0 得到
    在这里插入图片描述于是,依次对 δ i \delta_i δi 求解上述方程可以求出 δ \delta δ
    • 如果 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 可以显式地表示成
      在这里插入图片描述
    • 如果 f # ( x , y ) f^\#(x ,y) f#(x,y) 不是常数,那么求解上述方程的一个简单有效的方法是牛顿法。以 g ( δ i ) = 0 g(\delta_i)=0 g(δi)=0 表示上述方程,牛顿法通过迭代求得 δ i ∗ \delta_i^* δi,使得 g ( δ i ∗ ) = 0 g(\delta_i^*) =0 g(δi)=0。迭代公式是
      在这里插入图片描述只要适当选取初始值 δ i ( 0 ) \delta_i^{(0)} δi(0)由于 δ i \delta_i δi 的方程有单根, 因此牛顿法恒收敛,而且收敛速度很快

最大熵模型 (maximum entropy model)_第16张图片

拟牛顿法

  • 对数似然函数为
    L P ~ ( P w ) = ∑ x , y P ~ ( x , y ) log ⁡ P w ( y ∣ x ) \begin{aligned} L_{\tilde P}(P_w)&=\sum_{x,y}\tilde P(x,y)\log P_w(y|x) \end{aligned} LP~(Pw)=x,yP~(x,y)logPw(yx)最大熵模型为
    最大熵模型 (maximum entropy model)_第17张图片因此目标函数
    在这里插入图片描述
  • 梯度
    在这里插入图片描述其中
    ∂ f ( w ) ∂ w i = ∑ x P ~ ( x ) 1 Z w ( x ) ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) f i ( x , y ) − ∑ x , y P ~ ( x , y ) f i ( x , y ) = ∑ x , y P ~ ( x ) 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) f i ( x , y ) − E P ~ ( f i ) = ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) − E P ~ ( f i ) , i = 1 , 2 , ⋯   , n \begin{aligned} \frac{\partial f(w)}{\partial w_{i}} &=\sum_x\tilde P(x)\frac{1}{Z_w(x)}\sum_y\exp\left(\sum_{i=1}^nw_if_i(x,y)\right)f_i(x,y)-\sum_{x,y}\tilde P(x,y)f_i(x,y) \\&=\sum_{x,y}\tilde P(x)\frac{1}{Z_w(x)}\exp\left(\sum_{i=1}^nw_if_i(x,y)\right)f_i(x,y)-E_{\tilde{P}}\left(f_{i}\right) \\&=\sum_{x, y} \tilde{P}(x) P_{w}(y \mid x) f_{i}(x, y)-E_{\tilde{P}}\left(f_{i}\right), \quad i=1,2, \cdots, n \end{aligned} wif(w)=xP~(x)Zw(x)1yexp(i=1nwifi(x,y))fi(x,y)x,yP~(x,y)fi(x,y)=x,yP~(x)Zw(x)1exp(i=1nwifi(x,y))fi(x,y)EP~(fi)=x,yP~(x)Pw(yx)fi(x,y)EP~(fi),i=1,2,,n

最大熵模型 (maximum entropy model)_第18张图片

你可能感兴趣的:(机器学习,概率论,机器学习,人工智能)