最大熵模型 推导

1、似然函数

  概率和似然的区别:概率是已知参数的条件下预测未知事情发生的概率,而似然性是已知事情发生的前提下估计模型的参数。我们通常都是将似然函数取最大值时的参数作为模型的参数。

  那么为何要取似然函数取最大值的参数作为模型的参数?我们基于这样的假设:对于已经发生的事情,在同样条件下再次发生的概率就会很大。假如模型的参数固定,然后用这个参数固定的模型来预测已经发生的事情,这时我们得到的概率不一定很大,并且不同的参数得到概率是不一样的,但是事实上这个事情已经发生了,也就是说发生这个事情的概率为1,此时我们就需要让模型对这个事情的预测概率越大越好。即概率越大其发生的可能性越大,也就越符合已经发生的事情!(写得好啰嗦!)

  最大似然估计也是统计学中经验风险最小化的例子。计算极大似然估计的方法:首先写出似然函数,对似然函数取对数并整理,然后求导数,最后解似然方程。其中似然函数常用概率密度函数。

 

2、预分析

  假设分类模型为条件概率分布P(y|x),训练集为T={(x1,y1),(x2,y2),…,(xn,yn)}。则联合分布P(x,y)的经验分布和边缘分布P(x)的经验分布为:

  对于训练集特征i的函数fi(x,y),设:

:表示特征函数f在训练数据T上关于的数学期望。其计算公式为:

:表示特征函数f在模型上关于P(x,y)的数学期望。其计算公式为:

  由于P(x)是未知的,我们使用 来近似表示。于是有:

  最终我们需要计算的条件概率为:P(y|x)。

 

3、最大熵模型分析

  最大熵模型的依据是最大熵原理,最大熵原理是:在没用更多信息的前提下,使用等概率的方法会使得模型的效果最好。最大熵模型基本围绕下面两点而展开:

  1)保证模型满足已知的所有约束。

  2)在第一点的基础上使得模型的熵最大。        

  最大熵模型的分析过程:

  1)从训练集合中抽取若干特征。(抽取特征的方法在此略)

  2)对于抽取出的每个特征i,我们使用特征函数fi(x,y)来表示。当特征i符合某一条件时,我们将特征函数设置一个值1,否则设置0。

  3)找出特征函数的约束条件。为了让模型拟合训练数据,我们需要让:

  4)我们的分类模型为条件概率分布P(y|x),在满足约束条件的前提下使得模型的熵最大,即:max H(P(y|x))。

  在第4步中,条件熵为:

  同样,我们需要将P(x)的值进行近似处理:

 

  另外,对于任意输入样例,它总是属于某一个输出类别,因而:

  现在,我们将上述问题转变成了一个有条件的最优化问题:

 

  在支持向量机中,有过对此类问题的专门分析。首先我们需要将上述问题转化成无条件的最优化问题,这时需要用Lagrange定理,但是上述问题并不满足Lagrange定理,于是我们先将最大化问题转化成最小化问题:

  引进Lagrange乘子,得到:

  于是得到最优化的原始问题为:

  为了便于计算,我们将最小最大化问题转化成它的对偶问题:即最大最小化问题。要进行这种转化需要满足为凸函数,以及为仿射函数。于是我们可以将原始问题等价转化成它的对偶问题来进行求解:

  现在我们先考虑对L的最小化问题,想法很简单,先求导:

 

  令导数为0,即:

  另外:

  所以有:

  即:

(式2.1)

  另外,还有约束条件:

  代入上式得:

  称为规范化因子。

  将上式代入(式2.1)得到对偶问题的极小解为:

(式2.2)

  这就是我们所需要的最大熵模型下的概率估计,实际上,对偶问题的极大化等价于最大熵模型的极大似然估计。至此,我们已经得到了最大熵模型的目标估计,而模型中的最优参数则是对偶问题最大时的参数。

/*******************分割线

  现在我们开始求对偶函数最大时参数的值,首先将看成一个关于的函数,设

  于是有:

  根据(式2.2),所以:

  所以:

  现在我们需要:

  上式并没有一个显式的解析解,因此需要借助于数值的方法。由于 是一个光滑的凸函数,所以可以求解的方法很多。可以使用的方法有:

  1)通用迭代尺度法(GIS: Generalized Iterative Scaling)。

  2)改进的迭代尺度法(IIS: Improved Iterative Scaling)。

  3)梯度下降算法

  4)拟牛顿法(牛顿法)

  其中,前两个方法是专门为最大熵模型而设计的,后两种方法为通用的算法。

  此处对优化方法暂不介绍,下次专门进行讨论!

 

总结

  此文有较多的公式化简过程,看起来很复杂,实际上是纸老虎。总的来说,最大熵模型是个相对简单的算法,简单来说,它主要就是约束条件+最大化条件熵。其中约束条件主要是提取训练集的特征,得到每个特征的特征函数,然后将特征函数关于经验联合分布的期望近似为特征函数关于模型的联合分布期望,这样对每个特征函数都到一个约束条件,另外,还要附加上,然后在满足约束条件的基础上求最大化条件熵max H(P(y|x))。

 

 

 

参考文献:

[1] 李航,统计学习方法。

[2] peghoty, http://blog.csdn.net/itplus/article/details/26550201

 

posted @ 2015-07-23 22:58  liuwu265  阅读(5877)  评论(4编辑  收藏  举报