李航. 统计学习方法[M]. 清华大学出版社, 2012.
6.2 最大熵模型
最大熵原理:学习概率模型时,在所有可能(即满足所有约束条件的)的概率模型(分布)中,熵最大的模型是最好的模型。
离散随机变量的概率分布是,其熵满足不等式
式中是的取值的个数,当且仅当的分布是均匀分布时右边等号成立,即熵最大。
用特征函数(feature function)描述输入和输出之间的某一个事实。其定义是
于是,特征函数关于经验分布的期望值
特征函数关于模型和经验分布的期望值
如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等。加入有个特征函数,那么就有个约束条件。
最大熵模型
假设满足所有约束条件的模型集合为,定义在条件概率分布上的条件熵为
则模型集合中条件熵最大的模型称为最大熵模型。式中对数为自然对数。
最大熵模型的学习(书P98-102,配合附录C中的对偶问题求解)
原问题求解,引入拉格朗日乘子(目的是消除约束)后求解,利用对偶问题及其凸性质求解,即先对求偏导置0,后对求偏导置0。
最大熵模型学习中对偶问题极大化等价于最大熵模型的极大似然估计。最大熵模型为
对数似然函数为
6.3 模型学习的最优化算法
逻辑斯谛回归模型、最大熵模型学习归结为以似然函数为目标函数的最优化问题,通常通过迭代算法求解。
改进的迭代尺度法(improved iterative scaling,IIS)是一种最大熵模型学习的最优化算法。目标是通过极大似然估计学习模型参数,即求对数似然函数的极大值。
IIS的想法是:假设最大熵模型当前的参数向量是,我们希望找到一个新的参数向量,使得模型的对数似然函数值增大。
改进的迭代尺度法(improved iterative scaling, IIS)
输入:特征函数;经验分布,模型
输出:最优参数值;最优模型
(1) 对所有,取初值。
(2) 对每一个,令是方程
的解,其中。更新的值:。
* 如果$$f^{\#}(x,y)=M$$是常数,那么$$\delta_i$$可以显式地表示为$$\delta_i = \dfrac{1}{M}\log{\dfrac{E_{\widetilde{P}}(f_i)}{E_{P}(f_i)}}$$
* 如果不是常数,需要用牛顿法迭代公式$$\delta_i^{(k+1)} = \delta_i^{(k)} - \dfrac{g(\delta_i^{(k)})}{g(\delta_i^{(k)})}$$求$$\delta_i^*$$使$$g(\delta_i^*)=0$$
(3) 如果不是所有都收敛,重复步骤(2)
最大熵模型学习的BFGS算法
输入:特征函数;经验分布,目标函数,梯度,精度要求;
输出:最优参数值;最优模型。
(1) 选定初始点,取为正定对称矩阵,置
(2) 计算。若,则停止计算,得到;否则转(3)
(3) 由求出
(4) 一维搜索:求使得
(5) 置
(6) 计算,若,则停止计算,得;否则按下式求出:。其中,
(7) 置,转(3)