Skip to content

最大熵模型

📅 发表于 2017/09/21
🔄 更新于 2017/09/21
👁️ 次访问
📝 0 字
0 分钟
自然语言处理
#各种熵
#自然语言处理
#最大熵模型
#IIS
#机器学习
#期望

机器学习中最大熵模型的介绍,包括模型思想、学习问题、学习算法等

最大熵原理

预备知识

离散型变量X的概率分布是P(X)。它的H(X)orH(P)越大,代表越均匀、越混乱、越不确定各种熵点这里

H(P)=xXP(x)logP(x)

熵满足下面不等式

0H(P)log|X|,|X|X

当前仅当X的分布是均匀分布的时候等号成立。当X服从均匀分布时,熵最大。

最大熵的思想

最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型

事情分为两个部分:确定的部分(约束条件)和不确定的部分。选择模型时要

  • 要满足所有的约束条件,即满足已有的确定的事实
  • 均分不确定的部分

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)=310

则,满足约束条件不确定的平分(熵最大):这样的模型是最好的模型

P(A)=P(B)=320,P(C)=P(D)=P(E)=730

即:约束条件,熵最大

最大熵模型

假设分类模型是一个条件概率分布P(YX)。(有的不是选择条件模型,如论文里面)。训练数据集N个样本 T={(x1,y1),(x2,y2),,(xN,yN)}

基本概念

  • 联合分布:P(X,Y)
  • 边缘分布:P(X)
  • 联合经验分布:P~(X,Y)=v(X=x,Y=y)N,其中v(x,y)为频数
  • 联合边缘分布:P~(X)=v(X=x)N

特征函数f(x,y)用来描述xy满足的一个事实约束条件

f(x,y)={1,xy0,

如果有n个特征函数fi(x,y),i=1,2,,n, 就有n个约束条件。

概率期望的计算

X的期望

X 是随机变量,概率分布是P(X) ,或概率密度函数是f(x)

E(X)={ixiP(xi),离散+xf(x)dx,连续

下面只考虑离散型的期望,连续型同理,求积分即可。

一元函数的期望

Y=g(X),期望是

E[Y]=E[g(X)]=ig(xi)P(xi)

二元函数的期望

Z=g(X,Y) ,期望是

E(Z)=x,yg(x,y)p(x,y)=i=1j=1g(xi,yj)p(xi,yj)

期望其实就是E= 。可离散,可连续。

约束条件等式

实际分布期望

特征函数f(x,y)关于经验分布P~(x,y)的期望EP~(f),即实际应该有的特征 ,也就是一个给模型加的约束条件

EP~(f)=x,yP~(x,y)f(x,y)

理论模型期望

特征函数f(x,y) 关于模型P(YX)和经验分布P~(X)的期望EP(f) ,即理论上模型学得后的期望:

EP(f)=x,yP~(x)P(yx)f(x,y)

要从训练数据中获取信息,特征函数关于实际经验分布和理论模型的两个期望就得相等,即理论模型要满足实际约束条件

EP~(f)=EP(f)

最大熵模型思想

条件概率分布P(YX)条件熵H(P)如下,条件熵

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

则满足约束条件EP~(f)=EP(f)的模型中,条件熵H(P)最大的模型就是最大熵模型

最大熵模型的学习

学习问题

最大熵模型的学习等价于约束最优化问题,这类问题可以用拉格朗日对偶性去求解。

给定数据集T={(x1,y1),(x2,y2),,(xN,yN)}特征函数fi(x,y),i=1,2,,n

要满足2个约束条件

EP~(f)=EP(f),x,yP(yx)=1

要得到最大化熵

maxPCH(P)=x,yP~(x)P(yx)logP(yx)

按照最优化问题的习惯,将求最大值问题改写为等价的求最小值问题 ,如下

minPCH(P)=x,yP~(x)P(yx)logP(yx)

推导最大熵模型

一般使用拉格朗日对偶性去求解,可以见李航书附录。 引入拉格朗日乘子w=(w0,w1,,wn),即参数向量,构造拉格朗日函数L(P,w)

L(P,w)=H(P)+w0(1x,yP(yx))+i=1nwi(EP~(f)EP(f))

由于是凸函数,根据相关性质,所以原始问题和对偶问题同解,原始问题如下:

minPCmaxwL(P,w)

对应的对偶问题如下:

maxwminPCL(P,w)

主要思路是:先固定w,去计算minPCL(P,w),即去找到一个合适的P(YX)。再去找到一个合适的w

第一步:求解P 。设对偶函数Ψ(w)如下:

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

对偶函数的解,即我们找到的P(YX),记作Pw,如下:

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

L(P,w)P进行求偏导,令偏导为0,可以解得Pw,即最大熵模型 如下:

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

其中Zw(x)归一化因子fi(x,y)特征函数wi特征的权值Pw(yx) 就是最大熵模型w是最大熵模型中的参数向量

第二步:求解w。即求w去最大化对偶函数,设解为w 。可以使用最优化算法去求极大化。

w=argmaxwΨ(w)

最终,求到的P=Pw=Pw(yx)就是学习得到的最大熵模型

最大熵模型

最大熵模型如下,其中Zw(x)归一化因子fi(x,y)特征函数wi特征的权值

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

极大似然估计

其实对偶函数Ψ(w)的极大化等价于最大熵模型的极大似然估计。

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

LP~(Pw)=logx,yP(yx)P~(X,Y)=x,yP~(x,y)logP(yx)=x,yP~(X,Y)i=1nwifi(x,y)xP~(X)logZw(x)

可以证明得到,$L_{\widetilde P}(P_w) = \Psi (w) $,极大似然函数等于对偶函数。

模型学习的最优化算法

逻辑回归最大熵模型的学习都是以似然函数为目标函数的最优化问题,可以通过迭代算法求解。这个目标函数是个光滑的凸函数。通过很多方法都可以保证找到全局最优解,常用的有改进的迭代尺度法梯度下降法牛顿法拟牛顿法,其中牛顿法和拟牛顿法一般收敛速度更快。

改进的迭代尺度法

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

已知最大熵模型如下:

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

对数似然函数如下:

LP~(Pw)=x,yP~(X,Y)i=1nwifi(x,y)xP~(X)logZw(x)

目标是:通过极大似然估计学习模型参数,即求对数似然函数的极大值w^

基本思想

当前参数向量w=(w1,w2,,wn)T,找到一个新的参数向量w+δ=(w1+δ1,w2+δ2,,wn+δn),使得每次更新都使似然函数值增大。

由于δ是一个向量,含有多个变量,不易同时优化。所以IIS 每次只优化其中一个变量δi,而固定其他变量δj

设所有特征在(x,y)中的出现次数f#(x,y)=M

f#(x,y)=ifi(x,y)

计算每次的改变量:

L(w+δ)L(w)B(δw),

如果找到适当的δ使得改变量的下界B(δw)提高,则对数似然函数也能提高。

计算B(δw)δi求偏导,令偏导等于0,得如下方程

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

然后,依次对δi求解该方程,就可以求得δ,也就能够更新w,即ww+δ

算法步骤

输入:特征函数f1,,fn;经验分布P~(x,y),模型Pw(yx)

输出:最优参数值wi;最优模型Pw

(1) 初始化参数,取初值 wi=0

(2) 求解方程 δi

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

(3) 更新参数 wi+δiwi

其中解方程的时候,如果特征出现次数f#(x,y) 是常数M,则可以直接计算δi

δi=1MlogEp~(fi)Ep(fi)

如果f#(x,y)不是常数,则必须通过数值计算δi。最简单就是通过牛顿迭代法迭代求解δi。以g(δi)=0 表示该方程,进行如下迭代:

δi(k+1)=δi(k)g(δi(k))g(δi(k))
总访客数:   ·   总访问量:
PLM's Blog @ 2016 - 2025