最大熵模型凡是知道的,就把它考虑进去,凡是不知道的,通通均匀分布。2021-08-27
最大熵原理
原理简介
最大熵原理:学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
直观地说,最大熵原理认为要选择的模型需要满足:
- 已有的事实(约束条件):必须满足
- 不确定的部分:等可能
如何表示“等可能”呢?我们知道,均匀分布的熵最大,反过来讲,熵最大时,数据趋向于均匀分布,即等可能。因此,可以使用熵--可优化的数值目标,来实现“等可能”的要求。
最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型(Maximum Entropy Model)。
例题
问题:假设随机变量有5个取值,估计取各个值的概率。
概率值需要满足如下约束条件:
满足这个约束条件的概率分布有无穷多个。按照最大熵原理,在没有其它信息的情况下,需要假定等可能分布,即:
有时,能从一些先验知识中得到一些对概率值的约束条件,如:
满足这两个约束条件的概率分布依然有无穷多个。在缺少其它信息的情况下,可以认为是等概率的,是等概率的,于是:
最大熵模型
模型定义
假设分类模型是一个条件概率分布,表示输入,表示输出。该模型表示的是对于给定的输入,以条件概率输出。
给定训练数据集:
学习目标:使用最大熵原理选择最好的分类模型。
构造模型条件
对于给定的训练数据集,可以确定联合分布的经验分布和边缘分布的经验分布,分别记作和。
用特征函数描述输入和输出之间的某一事实,其定义为:
与满足某一事实否则 特征函数为二值函数,当和满足这个事实时取值为1,否则取值为0。
特征函数关于经验分布的期望值,用表示:
特征函数关于模型与经验分布的期望值,用表示:
如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即:
我们将式作为模型学习的约束条件。假设有个特征函数,那么就有个约束条件。
最大熵模型
假设满足所有约束条件的模型集合为:
定义在模型上的条件熵为:
则模型集合中条件熵最大的模型称为最大熵模型。
模型学习
最大熵模型的学习可以形式化为约束最优化问题。
对于给定的训练数据集以及特征函数,最大熵模型的学习等价于约束最优化问题:
按照最优化问题的习惯,将求max问题改为等价的求min问题:
对于上述原始的最优化问题,可以转为无约束最优化的对偶问题,通过求解对偶问题进而求解原始问题。
构建拉格朗日函数
引入拉格朗日乘子,定义拉格朗日函数:
定义对偶问题
最优化的原始问题为:
对偶问题是:
求对偶问题中的极小化问题
首先需要求解对偶问题内部的最小化问题,是的函数,将其记作:
称为对偶函数,同时,将其解记作:
具体地,为了求的最小值, 求对的偏导数:
令偏导数等于0,在 的情况下,解得:
由于,两边求和得:
其中,称为规范化因子,是特征函数,是特征的权值 就是最大熵模型,是最大熵模型中的参数向量。
求对偶问题中的极大化问题
求解对偶问题外部的极大化问题:
将其解记为,即:
因此, 可以使用最优化问题求解对偶函数的极大化,得到,从而可以得到最优化模型,这里,是学习到的最优化模型(最大熵模型)。
对上述总结,最大熵模型的一般形式为:
其中,这里为输入为输出为权值向量为任意实值特征函数。 极大似然估计
已知训练数据的经验概率分布,条件概率分布的对数似然函数表示为:
当条件概率分布是最大熵模型的解(公式)时,对数似然函数为:
根据公式,对偶函数可化简为:
比较式和式,可得:
因此,对偶函数等价于对数似然函数。因此,最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然估计。
模型学习的最优化算法
已知最大熵模型为:
其中, 最大熵模型的对数似然函数为:
目标:通过极大似然法估计模型参数,即求使得对数函数达到极大的。
改进的迭代尺度法
改进的迭代尺度法 (improved iterative scaling, IIS) 是一种最大熵模型学习的最优化算法。
IIS的思想:
- 初始化最大熵模型的参数向量:。
- 找到新的参数向量:,使得模型的对数似然函数值增大。
- 重复步骤,迭代更新参数 ,直到满足退出条件。
推导过程:
寻找下界函数1
对于给定的经验分布,模型参数从增加到,对数似然函数的改变量是:
利用不等式:
建立对数似然函数改变量的下界:
将右端记为:
于是有:
即是对数似然函数改变量的一个下界。
然而,若对求的导数,由于,那么 的结果耦合了多个,导致不易优化。为了能够继续优化,IIS试图一次只优化其中一个变量,而固定其它变量。
寻找下界函数2
引入变量。因为是二值函数,故表示所有特征在出现的次数。
将进行改写:
利用指数函数的凸性以及对任意,有且,根据Jensen不等式,得到:
于是:
记不等式右侧为:
于是得到:
这里,为对数似然函数改变量的一个新的下界。
求对的偏导数:
在上式中,除外不含任何其它变量。令偏导数为0得到:
于是,根据上式可依次求解,求得后,可进一步得到,从而可以重复迭代过程。
基于上述推导,给出改进的迭代尺度法IIS。
算法改进的迭代尺度法
输入:特征函数经验分布模型
输出:最优参数值最优模型
算法步骤:
对所有的,取初值
对每一个
- 令是方程的解。其中,
- 更新的值:
如果不是所有的都收敛,重复步骤
算法的核心是求解。分以下情况进行讨论:
是常数
即对任何,有,那么可以显式地表示为:
不是常数
必须通过数值法求解,简单有效的方法是牛顿法。令,牛顿法通过迭代求得,使得,迭代公式是:
只要适当选取初始值,由于有单根,因此牛顿法恒收敛,而且收敛速度很快。
拟牛顿法
最大熵模型:
目标函数:
梯度:
其中,梯度具体为:
相应的拟牛顿法BFGS算法如下。
算法最大熵模型学习的算法
输入:特征函数经验分布目标函数梯度精度要求
输出:最优参数值最优模型
算法步骤:
- 选定初始点,取为正定对称矩阵,置
- 计算。若则停止计算得否则转
- 由求出
- 一维搜索:求使得:
- 置
- 计算,若,则停止计算,得;否则,按下式求出:,其中,
- 置,转。
例题:最大熵模型学习
问题:假设随机变量有5个取值,已知,估计取各个值的概率。
解 为了方便,分别以表示。于是,最大熵模型学习的最优化问题是:
引入拉格朗日乘子、,定义拉格朗日函数:
根据拉格朗日对偶性,可以通过求解对偶最优化问题得到原始最优化问题的解,因此,接下来求解:
首先求解关于的极小化问题。为此,固定、,求偏导数:
令各偏导数等于0,解得:
于是:
再求解关于的极大化问题:
分别求对、的偏导数并令其为0,得到:
于是,得到所要求的概率分布为:
参考文档
- (52条消息) 最大熵模型中的对数似然函数的解释_wkebj的博客-CSDN博客
- 为什么最大熵模型的极大似然估计中带有指数? - 知乎 (zhihu.com)
- 最大熵模型中的对数似然函数表示法解释 - 知乎 (zhihu.com)
- (52条消息) 最大熵模型中的数学推导_结构之法 算法之道-CSDN博客