最大熵模型
凡是知道的,就把它考虑进去,凡是不知道的,通通均匀分布。
2021-08-27

 

最大熵原理

原理简介

最大熵原理:学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型

直观地说,最大熵原理认为要选择的模型需要满足:

  1. 已有的事实(约束条件):必须满足
  2. 不确定的部分:等可能

如何表示“等可能”呢?我们知道,均匀分布的熵最大,反过来讲,熵最大时,数据趋向于均匀分布,即等可能。因此,可以使用--可优化的数值目标,来实现“等可能”的要求。

最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型(Maximum Entropy Model)。

例题

问题:假设随机变量X有5个取值A,B,C,D,E,估计取各个值的概率P(A),P(B),P(C),P(D),P(E)

概率值需要满足如下约束条件:

P(A)+P(B)+P(C)+P(D)+P(E)=1

满足这个约束条件的概率分布有无穷多个。按照最大熵原理,在没有其它信息的情况下,需要假定等可能分布,即:

P(A)=P(B)=P(C)=P(D)=P(E)=15

 

有时,能从一些先验知识中得到一些对概率值的约束条件,如:

P(A)+P(B)+P(C)+P(D)+P(E)=1P(A)+P(B)=310

满足这两个约束条件的概率分布依然有无穷多个。在缺少其它信息的情况下,可以认为AB是等概率的,CDE是等概率的,于是:

P(A)=P(B)=320P(C)=P(D)=P(E)=720

最大熵模型

模型定义

假设分类模型是一个条件概率分布P(Y|X),XRn,YRX表示输入,Y表示输出。该模型表示的是对于给定的输入X,以条件概率P(Y|X)输出Y

给定训练数据集:T={(x1,y1),(x2,y2),,(xN,yN)}

学习目标:使用最大熵原理选择最好的分类模型。

构造模型条件

对于给定的训练数据集,可以确定联合分布P(X,Y)的经验分布边缘分布P(X)的经验分布,分别记作P~(X,Y)P~(X)

(1)P~(X=x,Y=y)=v(X=x,Y=y)NP~(X=x)=v(X=x)Nv(X=x,Y=y)(x,y)v(X=x)xN

用特征函数f(x,y)描述输入x和输出y之间的某一事实,其定义为:

(2)f(x,y)={1,xy 满足某一事实 0, 否则 

特征函数为二值函数,当xy满足这个事实时取值为1,否则取值为0。

 

特征函数f(x,y)关于经验分布P~(X,Y)的期望值,用EP~(f)表示:

(3)EP~(f)=x,yP~(x,y)f(x,y)=x,yP~(x)P~(y|x)f(x,y)

特征函数f(x,y)关于模型P(Y|X)与经验分布P~(X)的期望值,用Ep(f)表示:

(4)EP(f)=x,yP~(x)P(y|x)f(x,y)

如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即:

(5)EP~(f)=EP(f)

我们将(7)式作为模型学习的约束条件。假设有m个特征函数fi(x,y),i=1,2,,m,那么就有m个约束条件。

 

最大熵模型

假设满足所有约束条件的模型集合为:

(6)C{PPEP(fi)=Ep~(fi),i=1,2,,m}

定义在模型P(YX)上的条件熵为:

(7)H(P)=x,yP~(x)P(yx)logP(yx)

则模型集合C中条件熵最大H(P)的模型称为最大熵模型。

 

模型学习

最大熵模型的学习可以形式化为约束最优化问题。

对于给定的训练数据集T={(x1,y1),(x2,y2),,(xN,yN)}以及特征函数fi(x,y),i=1,2,,m,最大熵模型的学习等价于约束最优化问题:

(8)maxPCH(P)=x,yP~(x)P(yx)logP(yx) s.t. EP(fi)=Ep~(fi),i=1,2,,myP(yx)=1

按照最优化问题的习惯,将求max问题改为等价的求min问题:

(9)minPCH(P)=x,yP~(x)P(yx)logP(yx) s.t. EP(fi)Ep~(fi)=0,i=1,2,,myP(yx)=1

对于上述原始的最优化问题,可以转为无约束最优化的对偶问题,通过求解对偶问题进而求解原始问题。

  1. 构建拉格朗日函数

    引入拉格朗日乘子w0,w1,w2,,wm,定义拉格朗日函数L(P,w)

    (10)L(P,w)H(P)+w0(1yP(yx))+i=1mwi(Ep¯(fi)EP(fi))=x,yP~(x)P(yx)logP(yx)+w0(1yP(yx))+i=1mwi(x,yP~(x,y)fi(x,y)x,yP~(x)P(yx)fi(x,y))
  2. 定义对偶问题

    最优化的原始问题为:

    (11)minPCmaxwL(P,w)

    对偶问题是:

    (12)maxwminPCL(P,w)
  3. 求对偶问题中的极小化问题

    首先需要求解对偶问题内部的最小化问题minPCL(P,w)minPCL(P,w)w的函数,将其记作:

    (13)Ψ(w)=minPCL(P,w)=L(Pw,w)

    Ψ(w)称为对偶函数,同时,将其解记作:

    (14)Pw=argminPCL(P,w)=Pw(yx)

    具体地,为了求Ψ(w)的最小值, 求L(p,w)P(yx)的偏导数:

    (15)L(P,w)P(yx)=x,yP~(x)(logP(yx)+1)yw0x,y(P~(x)i=1mwifi(x,y))=x,yP~(x)(logP(yx)+1w0i=1mwifi(x,y))

    令偏导数等于0,在P~(x)>0 的情况下,解得:

    (16)P(yx)=exp(i=1mwifi(x,y)+w01)=exp(i=1mwifi(x,y))exp(1w0)

    由于yP(yx)=1,两边求和得:

    (17)Pw(yx)=1Zw(x)exp(i=1mwifi(x,y))Zw(x)=yexp(i=1mwifi(x,y))Zw(x)fi(x,y)wi

    Pw=Pw(yx)就是最大熵模型,w是最大熵模型中的参数向量。

  4. 求对偶问题中的极大化问题

    求解对偶问题外部的极大化问题:

    (18)maxwΨ(w)

    将其解记为w,即:

    (19)w=argmaxwΨ(w)

    因此, 可以使用最优化问题求解对偶函数Ψ(w)的极大化,得到w,从而可以得到最优化模型P,这里,P=Pw=Pw(yx)是学习到的最优化模型(最大熵模型)。

 

对上述总结,最大熵模型的一般形式为:

(20)Pw(yx)=1Zw(x)exp(i=1mwifi(x,y))Zw(x)=yexp(i=1mwifi(x,y)),xRn,y{1,2,,K},wRn,fi(x,y),i=1,2,,m

极大似然估计

已知训练数据的经验概率分布P~(X,Y),条件概率分布P(YX)的对数似然函数表示为:

(21)LP~(Pw)=logx,yP(yx)P~(x,y)=x,yP~(x,y)logP(yx)

当条件概率分布P(yx)是最大熵模型的解(17)时,对数似然函数LP~(Pw)为:

(22)LP~(Pw)=x,yP~(x,y)logP(yx)=x,yP~(x,y)i=1mwifi(x,y)x,yP~(x,y)logZw(x)=x,yP~(x,y)i=1mwifi(x,y)xP~(x)logZw(x)

根据17,对偶函数Ψ(w)可化简为:

(23)Ψ(w)=x,yP~(x)Pw(yx)logPw(yx)+i=1mwi(x,yP~(x,y)fi(x,y)x,yP~(x)Pw(yx)fi(x,y))=x,yP~(x,y)i=1mwifi(x,y)+x,yP~(x)Pw(yx)(logPw(yx)i=1mwifi(x,y))=x,yP~(x,y)i=1mwifi(x,y)x,yP~(x)Pw(yx)logZw(x)=x,yP~(x,y)i=1mwifi(x,y)xP~(x)logZw(x)

比较(21)(22),可得:

(24)Ψ(w)=LP~(Pw)

因此,对偶函数Ψ(w)等价于对数似然函数LP~(Pw)。因此,最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然估计

 

模型学习的最优化算法

已知最大熵模型为:

(25)Pw(yx)=1Zw(x)exp(i=1mwifi(x,y))Zw(x)=yexp(i=1mwifi(x,y))

最大熵模型的对数似然函数为:

(26)L(w)=x,yP~(x,y)i=1mwifi(x,y)xP~(x)logZw(x)

目标:通过极大似然法估计模型参数,即求使得对数函数达到极大的w

 

改进的迭代尺度法

改进的迭代尺度法 (improved iterative scaling, IIS) 是一种最大熵模型学习的最优化算法。

IIS的思想:

  1. 初始化最大熵模型的参数向量:w=(w1,w2,,wn)T
  2. 找到新的参数向量:w+δ=(w1+δ1,w2+δ2,,wn+δn),使得模型的对数似然函数值增大。
  3. 重复2,迭代更新参数 w=w+δ,直到满足退出条件。

 

推导过程:

  1. 寻找下界函数1

    对于给定的经验分布P~(x,y),模型参数从w增加到w+δ,对数似然函数的改变量是:

    (27)L(w+δ)L(w)=x,yP~(x,y)logPw+δ(yx)x,yP~(x,y)logPw(yx)=x,yP~(x,y)i=1mδifi(x,y)xP~(x)logZw+δ(x)Zw(x)

    利用不等式:logα1α,α>0

    建立对数似然函数改变量的下界:

    (28)L(w+δ)L(w)x,yP~(x,y)i=1mδifi(x,y)+1xP~(x)Zw+δ(x)Zw(x)=x,yP~(x,y)i=1mδifi(x,y)+1xP~(x)yPw(yx)expi=1mδifi(x,y)

    将右端记为:

    (29)A(δw)=x,yP~(x,y)i=1mδifi(x,y)+1xP~(x)yPw(yx)expi=1mδifi(x,y)

    于是有:

    (30)L(w+δ)L(w)A(δw)

    A(δw)是对数似然函数改变量的一个下界。

    然而,若对A(δw)δi的导数,由于g=expi=1mδifi(x,y)=i=1mexp(δifi(x,y)),那么gδi=i=1mexp(δifi(x,y)) 的结果耦合了多个δi,导致不易优化。为了能够继续优化,IIS试图一次只优化其中一个变量δi,而固定其它变量δj,ij

  2. 寻找下界函数2

    引入变量f#(x,y)=i=1mfi(x,y)。因为fi是二值函数,故f#(x,y)表示所有特征在(x,y)出现的次数。

    A(δw)进行改写:

    (31)A(δw)=x,yP~(x,y)i=1mδifi(x,y)+1xP~(x)yPw(yx)exp(f#(x,y)i=1mδifi(x,y)f#(x,y))

    利用指数函数的凸性以及对任意i,有fi(x,y)f#(x,y)0i=1mfi(x,y)f#(x,y)=1,根据Jensen不等式,得到:

    (32)exp(i=1mfi(x,y)f#(x,y)δif#(x,y))i=1mfi(x,y)f#(x,y)exp(δif#(x,y))

    于是:

    (33)A(δw)x,yP~(x,y)i=1mδifi(x,y)+1xP~(x)yPw(yx)i=1m(fi(x,y)f#(x,y))exp(δif#(x,y))

    记不等式右侧为:

    (34)B(δw)=x,yP~(x,y)i=1mδifi(x,y)+1xP~(x)yPw(yx)i=1m(fi(x,y)f#(x,y))exp(δif#(x,y))

    于是得到:

    (35)L(w+δ)L(w)B(δw)

    这里,B(δw)为对数似然函数改变量的一个新的下界。

     

    B(δw)δi的偏导数:

    (36)B(δw)δi=x,yP~(x,y)fi(x,y)xP~(x)yPw(yx)fi(x,y)exp(δif#(x,y))

    在上式中,除δi外不含任何其它变量。令偏导数为0得到:

    (37)x,yP~(x)Pw(yx)fi(x,y)exp(δif#(x,y))=EP~(fi)

    于是,根据上式可依次求解δi,求得δ后,可进一步得到w,从而可以重复迭代过程。

     

    基于上述推导,给出改进的迭代尺度法IIS。

    1.1(IIS)

    f1,f2,,fm;P~(X,Y);Pw(yx)

    wi;Pw

    1. i{1,2,,n}wi=0

    2. i{1,2,,n}

      1. δix,yP~(x)Pw(yx)fi(x,y)exp(δif#(x,y))=EP~(fi)f#(x,y)=i=1mfi(x,y)
      2. wiwiwi+δi
    3. wi(2)

     

    算法的核心是求解δi。分以下情况进行讨论:

    1. f#(x,y)

      即对任何x,y,有f#(x,y)=M,那么δi可以显式地表示为:

      (38)δi=1MlogEP~(fi)EP(fi)
    2. f#(x,y)

      必须通过数值法求解δi,简单有效的方法是牛顿法。令g(δi)=x,yP~(x)Pw(yx)fi(x,y)exp(δif#(x,y))=EP~(fi),牛顿法通过迭代求得δi,使得g(δi)=0,迭代公式是:

      (39)δi(k+1)=δi(k)g(δi(k))g(δi(k))

      只要适当选取初始值δi(0),由于g(δi)有单根,因此牛顿法恒收敛,而且收敛速度很快。

     

拟牛顿法

最大熵模型:

(40)Pw(yx)=exp(i=1mwifi(x,y))yexp(i=1mwifi(x,y))

目标函数:

(41)minwRmf(w)=xP~(x)logyexp(i=1mwifi(x,y))x,yP~(x,y)i=1mwifi(x,y)

梯度:

(42)g(w)=(f(w)w1,f(w)w2,,f(w)wm)T

其中,梯度具体为:

(43)f(w)wi=x,yP~(x)Pw(yx)fi(x,y)EP~(fi),i=1,2,,m

相应的拟牛顿法BFGS算法如下。

1.2(BFGS)

f1,f2,,fm;P~(X,Y);f(w);g(w)=f(w), 精度要求 ε

w;Pw(yx)

  1. w(0)B0k=0
  2. gk=g(w(k)) 若 gk<ε, 则停止计算, 得 w=w(k); 否则转 (3)
  3.  由 Bkpk=gk 求出 pk
  4. λk使f(w(k)+λkpk)=minλ0f(w(k)+λpk)
  5.  置 w(k+1)=w(k)+λkpk
  6. gk+1=g(w(k+1))gk+1<εw=w(k+1)Bk+1Bk+1=Bk+ykykTykTδkBkδkδkTBkδkTBkδkyk=gk+1gk,δk=w(k+1)w(k)
  7. k=k+1(3)

 

例题:最大熵模型学习

问题:假设随机变量X有5个取值A,B,C,D,E,已知P(A)+P(B)=310,估计取各个值的概率P(A),P(B),P(C),P(D),P(E)

为了方便,分别以y1,y2,y3,y4,y5表示A,B,C,D,E。于是,最大熵模型学习的最优化问题是:

(44)minH(P)=i=15P(yi)logP(yi) s.t. P(y1)+P(y2)=P~(y1)+P~(y2)=310i=15P(yi)=i=15P~(yi)=1

引入拉格朗日乘子w0w1,定义拉格朗日函数:

(45)L(P,w)=i=15P(yi)logP(yi)+w1(P(y1)+P(y2)310)+w0(i=15P(yi)1)

根据拉格朗日对偶性,可以通过求解对偶最优化问题得到原始最优化问题的解,因此,接下来求解:

(46)maxwminPL(P,w)

首先求解L(P,w)关于P的极小化问题。为此,固定w0w1,求偏导数:

(47)L(P,w)P(y1)=1+logP(y1)+w1+w0L(P,w)P(y2)=1+logP(y2)+w1+w0L(P,w)P(y3)=1+logP(y3)+w0L(P,w)P(y4)=1+logP(y4)+w0L(P,w)P(y5)=1+logP(y5)+w0

令各偏导数等于0,解得:

(48)P(y1)=P(y2)=ew1w01P(y3)=P(y4)=P(y5)=ew01

于是:

(49)minPL(P,w)=L(Pw,w)=2ew1w013ew01310w1w0

再求解L(Pw,w)关于w的极大化问题:

(50)maxwL(Pw,w)=2ew1w013ew01310w1w0

分别求L(Pw,w)w0w1的偏导数并令其为0,得到:

(51)ew1w01=320ew01=730

于是,得到所要求的概率分布为:

(52)P(y1)=P(y2)=320P(y3)=P(y4)=P(y5)=730

参考文档

  1. (52条消息) 最大熵模型中的对数似然函数的解释_wkebj的博客-CSDN博客
  2. 为什么最大熵模型的极大似然估计中带有指数? - 知乎 (zhihu.com)
  3. 最大熵模型中的对数似然函数表示法解释 - 知乎 (zhihu.com)
  4. (52条消息) 最大熵模型中的数学推导_结构之法 算法之道-CSDN博客