最大熵算法
1.最大熵原理(条件熵)
- 从符合条件的分布中选择熵最大的分布作为最优秀的分布
- 熵最大的预测出现的概率占绝对的优势
- 均匀分布熵最大
=>
- 当已知部分知识的前提下,对未知部分预测,最合理的推断应该是最符合自然状态的推断(熵最大)
- 概率平均分布=熵最大
- 在满足越是条件的模型中选择熵最大的模型
1.1 问题建模(最大熵是指条件熵)
问题转换:已知: 学习的目标:用最大熵选择最好的分类模型
结果: 对于给定的输入x,以条件概率P(Y|X)输出Y
一般模型
P={p|p是X上满足条件的概率分布}
1.2 预定义
1.2.1 特征函数
对于某个特征(x,y)的样本
- y:这个特征中需要的确定信息
- x: 这个特征中的上下文信息
特征函数: 表示输入x和输出y直接的事实:例如:对于特征:
=>上式是二值函数;x和y满足某个事实,则取值1;否则是0;
1.2.2 特征期望
- 特征函数关于经验分布的期望,记:(样本下的期望)
是(x,y)在样本中的出现概率
- :x出现的概率
- :(x,y)在样本中出现的概率
1.2.3 条件
对于每一个特征(x,y);模型所建立的条件概率分布要与训练样本表现出来的分布相同
特征函数在模型中的期望(理论模型):特征函数在模型和经验分布的期望值
=>; =>:已知
- 关于上式:理论模型应该与训练样本中的分不一致=>
2. 模型求解
2.1. 模型完整建立
- 若模型获取训练数据集中的信息,那么可以假设这两个期望相等
<=>等价于
- 上式是约束条件,假设有,则有n个约束条件
:观察分布上的期望
:条件分布下的期望
2.2 学习模型
已知训练数据集合和特征函数
条件熵的定义:
- 模型目标:
- 特征函数
;
- 约束条件:
;
3. 求解
- 引入拉格朗日函数
- 因为是凸函数,将约束最优化的原问题转换为无约束优化的对偶问题,通过对偶问题求解原问题
=>推导参考李航P84
4 最大熵模型的最优解
- 因为maxent模型包含指数函数,所以不可能有解析解
- 构造目标函数求解
4.1 最大似然估计:MLE
- 带入最大似然函数=>对数似然函数
其中:
- 目标是求对数似然函数的极大值
4.2 IIS法(improved iterative scaling)
工业界还是梯度下降算法
Idea:
- 设最大熵模型当前的参数向量
- 希望找到新的参数向量,使得模型的对数似然函数L增加
- 重复,到找到最大值
4.3 推导
=>推导参考李航P90
5. 最大熵模型碎碎念
5.1 最大熵模型与logistic回归
- 最大熵模型和逻辑回归都是对数线性模型
- 都采用MLE,或者正则化的MLE
- 无约束优化问题:iis法,牛顿法,梯度下降法
- 最大熵模型和Softmax具有相同的目标函数
- 逻辑回归是两点分布的最大熵
=》
自然语言中,最大熵模型,是构造了特征函数,然后特征的发生和不发生就是一堆的伯努利事件,然后才和逻辑回归有了联系
5.2 熵的意义
- 熵是描述不确定性
- 知识是不确定性的补集(不确定性小,模型准确)
5.3 特征与熵
- 加入一个特征,熵少一点
- 特征越多,熵越小