关于最大熵模型的一些见解

1. 前言

本文主要涉及最大熵模型中的一些推导,旨在理顺内部之间的逻辑关系

求解目的:获取最好的模型

2. 最大熵原理

最大熵原理是概率模型学习的一个准则,最大熵原理认为,学校概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。最大熵原理任务要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是等可能的。最大熵原理通过熵的最大化来表示等可能性。结合求解的目的可知,当前的求解目标变为求解熵最大的模型。由此引出了两个问题:(1)什么是熵? (2)怎么求解?

  1. 什么是熵?

参考5.2.2 信息增益,可知熵的定义式:                        

H(P)=-\sum_{x}P(x)logP(x) (1.1)

结合例6.1可知,不确定条件的等可能假设使熵最大

 

 

在这里我们进一步得出了X给定条件下Y的条件概率分布

假设分类模型是一个条件概率分布P(Y|X),结合熵的定义,定义在条件概率分布P(Y|X)上的条件熵为:

H(P)=-\sum_{x,y}\widetilde{P}(x)P(y|x)logP(y|x) (1.2)

 

观察公式,有一个疑问,\widetilde{P}(x)是什么意思?它来源于训练数据集,如果给我们一个数据集让我们获取一个模型,那么我们可以从数据集中获取一些有价值的信息,例如,联合分布P(X,Y)经验分布\widetilde{P}(Y|X)、边缘分布P(X)经验分布\widetilde{P}(X)。因此式1.2中,H(P)只是P(y|x)的函数(类似y=f(x))。

前文设定最优模型是在熵H(P)取最大值时取得。又假设P(y|x)是分类模型,那么问题就转化为求解使熵H(P)取最大值时的分类模型P(y|x),即使1.2式取最大值时的P(y|x)。最大熵问题转化为求使H(P)最大的P(y|x)

实际上,对一个模型求解问题,不可能仅利用一个公式既可,它还包含很多的约束条件:比如,我们用一个训练数据集去求解一个模型,那么求解出的这个模型必须符合数据集的规律,否则训练毫无意义(不符合数据集规律的模型有无数种)。

怎样用公式表达出这个含义?

//数学公式表示该约束条件\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

引入特征函数的概念,特征函数f(x,y)描述输入x和输出y之间的某一个事实:

                                        关于最大熵模型的一些见解_第1张图片

特征函数f(x,y)关于经验分布\widetilde{P}(X,Y)的期望值E{_{\widetilde{p}}}(f):                

E{_{\widetilde{p}}}(f)=\sum_{x,y}\widetilde{P}(x,y)f(x,y) (1.3)

特征函数f(x,y)关于模型P(Y|X)经验分布\widetilde{P}(X)的期望值E{_{p}}(f):

E{_{p}}(f)=\sum_{x,y}\widetilde{P}(x)P(y|x)f(x,y) (1.4)

(注意:对于条件概率,有P(X,Y)=P(Y|X)P(X)。这个公式是用\widetilde{P}(X)近似代替P(X)

如果模型和训练数据集相适应,那么必然有E{_{\widetilde{p}}}(f)=E{_{p}}(f)。这就是前边说的约束条件,满足这些约束条件的的所有模型构成了模型集合:

C\equiv \{P\in \mathbb{P}|E{_{\widetilde{p}}}(f)=E{_{p}}(f),i=1,2,...,n\} (1.5)

求解的目的就是从C中找出熵最大的模型。

//数学公式表示该约束条件\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

还有一个约束条件为对于模型而言,所有可能发生的概率之和为1:

\sum_{y}P(y|x)=1\sum_{y}P(y|x)=1 (1.6)

    2. 怎么求解?

求解问题:满足约束条件的模型构成一个模型集合(条件),从中找出对应熵H(P)最大的那个模型。

最大熵模型的学习过程就是求解最大熵模型的过程,最大熵模型的学习过程可以形式化为约束最优化问题

_{P\in C}^{max}\textrm{H(P)}=-\sum_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)

s.t.E{_{\widetilde{p}}}(f)=E{_{p}}(f)

\sum_{y} P(y|x)=1

(1.7)

按照最优化问题的习惯,将求最大值问题改写为等价的求最小值问题(提出一个“-”):

_{P\in C}^{min}\textrm{H(P)}=\sum_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)

s.t.E{_{\widetilde{p}}}(f)=E{_{p}}(f)

\sum_{y} P(y|x)=1

(1.8)

对上式(1.8)引入拉格朗日乘子w_{0},w_{1},w_{2},....,w_{n},,定义拉格朗日函数L(P,w)

求解,其中,w为拉格朗日乘子

关于最大熵模型的一些见解_第2张图片

(1.9)

结合对偶问题可得,最优化的原始问题是:

_{P\in C}^{min}_{w}^{max}L(P,w)

(1.10)

对偶问题是:

_{w}^{max}_{P\in C}^{min}L(P,w)

(1.11)

由于原始问题满足凸优化理论中的KKT条件,因此原始问题的解和对偶问题的解是一致的。这样我们对原始问题(1.9/1.10)的求解变成了对拉格朗日对偶问题(1.11)的求解。

在求解对偶问题1.11时,是先求解内部的_{P\in C}^{min}L(P,w),再对其解关于w求最大值,记:

\psi (w)=_{P\in C}^{min}\textrm{L(P,w)}=P_{w}(y|x) (1.12)

(注意:这里需要理解_{P\in C}^{min}\textrm{L(P,w)}是在模型集合C中找出一个最小的P,那么说明它的解是一个P的表达式,这个P是关于w的函数)

P_{w}(y|x)就是L(P,w)中关于P的最小解。(先假设最小解是这个表达式)

式1.11中首先对L(P,w)求解关于P(Y|X)的最小值,对L(P,w)关于P(Y|X)求偏导:

关于最大熵模型的一些见解_第3张图片

(1.13)

 

令偏导=0,而当\widetilde{P}(x)>0时,只有括号内=0才可,故得:

P(y|x)=exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y)+w_{0}-1)=\frac{exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))}{exp(1-w_{0})}

(1.14)

又有等式约束\sum_{y}P(y|x)=1,将上式中解得的P(y|x)带入约束:

\sum_{y}\frac{exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))}{exp(1-w_{0})}=1

这是对w的约束,化简上式:

1=\sum_{y}\frac{exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))}{exp(1-w_{0})} =\frac{\sum_{y}exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y))}{exp(1-w_{0})} \Rightarrow

\sum_{y}{exp({\sum_{i=1}^{n}w_{i}f_{i(x,y)})}=exp(1-w_{0})

(1.15)

(注意:这里exp(1-w_{0})不是y的函数,相当于一个常量,所以不需要在分式下方添加求和符号)

Z_{w}(x)=\sum_{y}exp(\sum_{i=1}^{n}w_{i}f_{i(x,y)})

(1.16)

由1.15和1.16得

Z_{w}(x)=exp(1-w_{0})

(1.17)

将1.17带入1.14得

P_{w}(y|x)=\frac{1}{Z_{w}(x)}exp(\sum_{i=1}^{n}w_{i}f_{i}(x,y)) P_{w}{(y|x)}

(1.18)

这就是式1.12中P_{w}(y|x)的表达式,也是所谓的最大熵模型

结合1.11,1.12考虑对偶问题:

_{w}^{max}_{P\in C}^{min}L(P,w)=_{w}^{max}\psi (w)=_{w}^{max}P_{w}(y|x)

(1.19)

式1.19中的P_{w}(y|x)由式1.18给出,那么这种求解的逻辑关系为

原始问题_{P\in C}^{min}_{w}^{max}L(P,w)\Rightarrow对偶问题_{w}^{max}_{P\in C}^{min}L(P,w)\Rightarrow进而转换为求解_{w}^{max}P_{w}(y|x)

(1.20)

至此,第二个问题:怎么求解就转换为怎么求解_{w}^{max}P_{w}(y|x)。由此,我们设定第三个问题:怎么求解_{w}^{max}P_{w}(y|x)

书中的办法是将其转换为最大熵模型的极大似然估计,由此第三个问题又转换出了两个问题:4.怎么证明对偶函数的极大化问题即_{w}^{max}P_{w}(y|x)与最大熵模型的极大似然估计间的等价关系;5.转换完之后怎么求(假设二者确实等价)?

这里先证明第4个问题,即对偶函数的极大化等价于最大熵模型的极大似然估计[1]

//等价关系证明\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

首先,对于条件概率P_{w}(y|x)的似然函数:

L((x_{1},y_{1}),(x_{2},y_{2}),(x_{3},y_{3}),...(x_{N},y_{N});\theta )=\prod_{j}^{N}P(y_{j}|x_{j})=\prod_{i}^{n}P(y_{i}|x_{i})^{C(X=x_{i},Y=y_{i})} (1.21)

这里,连乘符号上方N区分大小写:大写N表示训练数据集X中样本点的总个数;小写n表示X的取值个数,即合并相同样本点后的数量,C(X=x_{i},Y=y_{i})表示X=x_{i},Y=y_{i}的点出现的频数。如果我们对式1.21开N次方,即

 

L((x,y);\theta)^{\frac{1}{N}}=\prod_{i}^{n}P(y_{i}|x_{i})^{\frac{C(X=x_{i},Y=y_{i})}{N}} (1.22)

\frac{C(X=x_{i},Y=y_{i})}{N}表示的是经验概率\widetilde{P}(x,y)X=x_{i},Y=y_{i}的取值\widetilde{P}(x=x_{i},y=y_{i}),即

\widetilde{P}(x,y)=\frac{C(X=x_{i},Y=y_{i})}{N} (1.23)

那么式1.22化简为

L((x,y);\theta)^{\frac{1}{N}}=\prod_{i}^{n}P(y_{i}|x_{i})^{\widetilde{P}(x_{i},y_{i})}

(1.24)

对似然函数1.24取对数:

L_{\widetilde{P}}(P_{w})=ln(L((x,y);\theta)^{\frac{1}{N}})=ln(\prod_{i}^{n}P(y_{i}|x_{i})^{\widetilde{P}(x,y)})={\widetilde{P}(x_{i},y_{i})}ln(\prod_{i}^{n}P(y_{i}|x_{i}))=\sum_{i=1}^{n}{\widetilde{P}(x_{i},y_{i})}ln(P(y_{i}|x_{i}))=\sum_{x,y}{\widetilde{P}(x,y)}ln(P(y|x))

(1.25)

当条件概率分布P(y|x)是最大熵模型1.18时,将前文求解出的P_{w}(y|x)带入上式,得

(1.26)

(注意:不要忘记最初的问题是求解_{w}^{max}P_{w}(y|x)

对于对偶问题\psi (w),由1.9和1.12可得

关于最大熵模型的一些见解_第4张图片

(1.27)

对比1.26和1.27,发现二者相同,说明

\psi (w)=L_{\widetilde{P}}(P_{w})

(1.28)

等式关系得证,说明对偶函数的极大化等价于最大熵模型的极大似然估计。

//等价关系证明\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

至此,求解最优模型最终转化为最大熵模型的极大似然估计:

L(w)=\sum_{x,y}\widetilde{P}(x,y)w_{i}f_{i}(x,y)-\sum_{x}\widetilde{P}(x)lnZ_{w}(x)

(1.29)

第5个问题就是求解上式。具体为6.3节中的各种算法[4]

 

 

 

 

参考:

[1].最大熵模型中的对数似然函数的解释

[2].Maximum Entropy Model最大熵模型

[3].最大熵模型原理小结

[4]. 统计学习方法.李航

你可能感兴趣的:(关于最大熵模型的一些见解)