最大熵模型
序
本次记录的主要内容有:
1、熵的概念
2、最大熵模型推导
模型属性
ME是经典的分类模型
ME是对数线性模型
最大熵模型由最大熵原理推导出来
最大熵原理是,学习概率模型时,在所有可能的概率模型中,熵最大的模型认为是最好的模型。通常用约束条件来约束模型的范围,所以最大熵原理也可以认为是在满足约束条件的模型集合中选取熵最大的模型。其中,熵最大意味着在没有更多信息下,那些不确定的部分都是等可能的,最大熵原理通过熵的最大化来表示等可能性。
熵的概念
- 经验熵
随机变量X的熵表示如下:
- 联合熵
随机变量 X Y 的联合熵:
- 条件熵
由联合熵和X的熵,可以得到条件熵,它度量了我们的Y在知道X以后剩下的不确定性。表达式如下:
最大熵模型的定义
-
模型的基本原理
在已有的一些限制条件下估计未知的概率分布,最大熵的目标就是在这些特征函数的期望值等于观测值的限制条件下,求具有最大熵的那个分布。 -
为什么要寻求熵最大?
最大熵原理认为要选择的概率模型首先必须满足自己已有的事实(约束条件),在没有更多信息的情况下希望不确定的部分都是等可能的,最大熵模型就是通过熵的最大化来表示这种等可能性。 -
原理介绍
- 经验分布的计算
给定训练集的情况下,我们可以通过统计计数的方式获取 总体联合概率分布 的经验分布 ,和边缘分布的经验分布 。 -
特征函数
- 经验分布的计算
理解最大熵中的特征函数:
最大熵模型中的特征是指输入和输出共同的特征,而一般模型的特征就只是输入特征。
最大熵模型中的特征都会有一个权重,可以把它理解为这个特征所描述的输入和输出有多么倾向于同时出现。
-
特征函数关于经验分布的期望求解
(ps:之所以这里可以假设两个期望相等,其原因在于联合分布=条件分布*边缘分布)
-
约束条件
最大熵模型是在具有约束条件情况下求解熵最大的模型,那么上面的特征函数就是约束,特征函数的期望相等的公式是约束的具体数学体现 -
得到最大熵模型
- 优化方法
-
推导
上面得到了最大熵模型的目标函数,即损失函数 H(P),因此下面对进行损失极小化:
因为最大熵模型存在约束条件,因此自然引入拉格朗日算子,并利用对偶性将极小极大问题转化为极大极小问题进行优化求解。原问题:
引入拉格朗日转换为对偶问题:
求解对偶问题第一步:求min
第二步求 L 关于P(y | x)的偏导数:
上面通过min的部分就得到了最大熵模型的表示,即(1)式,其中我们的未知参数是 w,这里可以思考参数估计可以使用极大似然吗?还是需要按照外部的 max(w)继续常规求偏导而获得?
第三步,求max:
这样便得到了条件概率与参数w的关系,进而可以将原始对偶问题中的条件概率全使用w表示,继而可以进行外面的max求解。求解对偶函数的极大化时可以使用最大熵模型的极大似然估计来求解。(李航书中已证明其等价性)
既然最大熵模型的学习归结为了以似然函数为目标函数的最优化问题,因此通常通过迭代算法进行求解,因此,转为极大似然函数的形式具有较好的性质(凸函数),可用梯度下降、牛顿法等进行优化求解。
最大熵模型的优缺点
最大熵模型在分类方法里算是比较优的模型,但是由于它的约束函数的数目一般来说会随着样本量的增大而增大,导致样本量很大的时候,对偶函数优化求解的迭代过程非常慢,scikit-learn甚至都没有最大熵模型对应的类库。但是理解它仍然很有意义,尤其是它和很多分类方法都有千丝万缕的联系。
最大熵模型的优点有:
a) 最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。
b) 可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度
最大熵模型的缺点有:
a) 由于约束函数数量和样本数目有关系,导致迭代过程计算量巨大,实际应用比较难。