Skip to content

最大熵模型

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

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

最大熵原理 ​

预备知识 ​

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

H(P)=−∑x∈XP(x)log⁡P(x)

熵满足下面不等式

0≤H(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(Y∣X)。(有的不是选择条件模型,如论文里面)。训练数据集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)用来描述x和y满足的一个事实约束条件:

f(x,y)={1,x与y满足一个事实,即约束条件0,否则

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

概率期望的计算 ​

X的期望

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

E(X)={∑ixiP(xi),离散∫−∞+∞x⋅f(x)dx,连续

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

一元函数的期望

Y=g(X),期望是

E[Y]=E[g(X)]=∑i∞g(xi)⋅P(xi)

二元函数的期望

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

E(Z)=∑x,yg(x,y)⋅p(x,y)=∑i=1∑j=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(Y∣X)和经验分布P~(X)的期望EP(f) ,即理论上模型学得后的期望:

EP(f)=∑x,yP~(x)P(y∣x)f(x,y)

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

EP~(f)=EP(f)

最大熵模型思想 ​

条件概率分布P(Y∣X)的条件熵为H(P)如下,条件熵:

H(P)=−∑x,yP~(x)P(y∣x)log⁡P(y∣x)

则满足约束条件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(y∣x)=1

要得到最大化熵

maxP∈CH(P)=−∑x,yP~(x)P(y∣x)log⁡P(y∣x)

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

minP∈C−H(P)=∑x,yP~(x)P(y∣x)log⁡P(y∣x)

推导最大熵模型 ​

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

L(P,w)=−H(P)+w0⋅(1−∑x,yP(y∣x))+∑i=1nwi⋅(EP~(f)−EP(f))

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

minP∈CmaxwL(P,w)

对应的对偶问题如下:

maxwminP∈CL(P,w)

主要思路是:先固定w,去计算minP∈CL(P,w),即去找到一个合适的P(Y∣X)。再去找到一个合适的w。

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

Ψ(w)=minP∈CL(P,w)=L(Pw,w)

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

Pw=arg⁡minP∈CL(P,w)=Pw(y∣x)

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

Pw(y∣x)=1Zw(x)⋅exp⁡(∑i=1nwifi(x,y)),Zw(x)=∑yexp⁡(∑i=1nwifi(x,y))

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

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

w∗=arg⁡maxwΨ(w)

最终,求到的P∗=Pw∗=Pw∗(y∣x)就是学习得到的最大熵模型。

最大熵模型 ​

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

Pw(y∣x)=1Zw(x)⋅exp⁡(∑i=1nwifi(x,y)),Zw(x)=∑yexp⁡(∑i=1nwifi(x,y))

极大似然估计 ​

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

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

LP~(Pw)=log⁡∏x,yP(y∣x)P~(X,Y)=∑x,yP~(x,y)log⁡P(y∣x)=∑x,yP~(X,Y)∑i=1nwifi(x,y)−∑xP~(X)log⁡Zw(x)

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

模型学习的最优化算法 ​

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

改进的迭代尺度法 ​

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

已知最大熵模型如下:

Pw(y∣x)=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)log⁡Zw(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(y∣x)fi(x,y)exp⁡(δif#(x,y))=Ep~(fi),其中Ep~(fi)=∑x,yP~(x,y)fi(x,y)

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

算法步骤

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

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

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

(2) 求解方程 δi

∑x,yP~(x)Pw(y∣x)fi(x,y)exp⁡(δif#(x,y))=Ep~(fi),

(3) 更新参数 wi+δi→wi

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

δi=1Mlog⁡Ep~(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 - 2026