机器学习中最大熵模型的介绍,包括模型思想、学习问题、学习算法等
最大熵原理
预备知识
离散型变量
熵满足下面不等式
当前仅当
最大熵的思想
最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。
事情分为两个部分:确定的部分(约束条件)和不确定的部分。选择模型时要
- 要满足所有的约束条件,即满足已有的确定的事实
- 要均分不确定的部分
满足这个条件的模型有很多。再加一个约束条件
则,满足约束条件,不确定的平分(熵最大):这样的模型是最好的模型
即:约束条件,熵最大
最大熵模型
假设分类模型是一个条件概率分布
基本概念
- 联合分布:
- 边缘分布:
- 联合经验分布:
,其中 为频数 - 联合边缘分布:
特征函数
如果有
概率期望的计算
下面只考虑离散型的期望,连续型同理,求积分即可。
一元函数的期望
二元函数的期望
期望其实就是
约束条件等式
实际分布期望
特征函数
理论模型期望
特征函数
要从训练数据中获取信息,特征函数关于实际经验分布和理论模型的两个期望就得相等,即理论模型要满足实际约束条件
最大熵模型思想
条件概率分布
则满足约束条件最大熵模型
。
最大熵模型的学习
学习问题
最大熵模型的学习等价于约束最优化问题,这类问题可以用拉格朗日对偶性
去求解。
给定数据集
要满足2个约束条件
要得到最大化熵
按照最优化问题的习惯,将求最大值问题改写为等价的求最小值问题 ,如下
推导最大熵模型
一般使用拉格朗日对偶性
去求解,可以见李航书附录。 引入拉格朗日乘子
由于是凸函数,根据相关性质,所以原始问题和对偶问题同解,原始问题
如下:
对应的对偶问题
如下:
主要思路是:先固定
第一步:求解对偶函数
对偶函数的解,即我们找到的
用最大熵模型
如下:
其中归一化因子
,特征函数
,特征的权值
,最大熵模型
, 参数向量
。
第二步:求解
最终,求到的
最大熵模型
最大熵模型如下,其中归一化因子
,特征函数
,特征的权值
。
极大似然估计
其实对偶函数
已知训练数据的经验分布对数似然函数
是:
可以证明得到,$L_{\widetilde P}(P_w) = \Psi (w) $,极大似然函数等于对偶函数。
模型学习的最优化算法
逻辑回归
、最大熵模型
的学习都是以似然函数为目标函数的最优化问题,可以通过迭代算法求解。这个目标函数是个光滑的凸函数。通过很多方法都可以保证找到全局最优解,常用的有改进的迭代尺度法
、梯度下降法
、牛顿法
或拟牛顿法
,其中牛顿法和拟牛顿法一般收敛速度更快。
改进的迭代尺度法
改进的迭代尺度法(improved iterative scaling, IIS)是一种最大熵模型学习的最优化算法。
已知最大熵模型如下:
对数似然函数如下:
目标是:通过极大似然估计学习模型参数,即求对数似然函数的极大值
基本思想
当前参数向量
由于IIS
每次只优化其中一个变量
设所有特征在
计算每次的改变量:
如果找到适当的
计算
然后,依次对
算法步骤
输入:特征函数
输出:最优参数值
(1) 初始化参数,取初值
(2) 求解方程
(3) 更新参数
其中解方程的时候,如果特征出现次数
如果牛顿迭代法
去迭代求解