机器学习算法之--最大熵模型总结

一、最大熵原理

最大熵模型可由最大熵原理推出,最大熵原理是概率模型学习的一个准则。最大熵原理认为在满足已有事实的所有可能的概率模型中,熵最大的模型是最好的模型。
机器学习算法之--最大熵模型总结
|X|是X的取值个数,上式表明当且仅当X的分布是均匀分布时右边的等号成立,当X服从均匀分布时,熵最大。

二、最大熵模型定义

两个步骤

  • 找出满足已有约束条件的概率模型
  • 从中寻找熵最大的模型

给定数据集,考虑模型满足的条件,可以确定联合分布P(X,Y)的经验分布边缘分布P(X)的经验分布,用下列式子表示。
机器学习算法之--最大熵模型总结
v(X=x,Y=y)表示训练数据样本(x,y)出现的频数,N表示样本容量。
用特征函数描述输入与输出的一个事实,当x,y满足这个事实时取值为1,否则为0。特征函数就是先验知识,会有n个
机器学习算法之--最大熵模型总结
特征函数关于经验分布的期望值,用下列式子(1)来表示
机器学习算法之--最大熵模型总结
特征函数关于模型P(Y|X)与边缘分布P(X)的经验分布的期望值,用下列式子(2)来表示
机器学习算法之--最大熵模型总结
如果模型能获取训练数据中的信息,假设两个期望值相等。即式子(3)
机器学习算法之--最大熵模型总结
这是模型的约束条件,若有n个特征函数,就有n个约束条件,则表示如下
机器学习算法之--最大熵模型总结
C为无数个概率分布的集合,即每一个x,都对应一个特定的概率分布P(y|x),每一个概率分布都会有一个熵,此时,所谓的最大熵,就是最大化这些所有的概率分布的熵的和,由于每个x都有一个经验概率,我们还需要对所有这些熵进行加权求和,以此表示哪一个概率分布的熵的最大化更加重要。
所以有如下最优化问题
机器学习算法之--最大熵模型总结

三、最大熵模型学习

最大熵模型可以形式化为约束最优化问题。最大熵模型和逻辑斯谛模型都可以归结为以似然函数为目标函数的最优化问题,通常通过迭代算法求解,此时目标函数为光滑的凸函数,能保证找到全局最优解,常用的方法为

  • 迭代尺度法
  • 梯度下降法
  • 牛顿法或拟牛顿法

四、最大熵模型的优缺点

最大熵模型的优点有

  • a) 最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。
  • b) 可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度。

最大熵模型的缺点有

  • a) 由于约束函数数量和样本数目有关系,导致迭代过程计算量巨大,实际应用比较难。
  • b) 约束函数的数目一般来说会随着样本量的增大而增大,导致样本量很大的时候,对偶函数优化求解的迭代过程非常慢,scikit-learn甚至都没有最大熵模型对应的类库。

五、最大熵模型与逻辑斯谛回归区别

从最大熵的思想出发得出的最大熵模型,最后的最大化求解就是在求P(y|x)的对数似然最大化。逻辑回归也是在求条件概率分布关于样本数据的对数似然最大化。二者唯一的不同就是条件概率分布的表示形式不同。