最大熵原理

参考文献

核心本质:系统中事件发生的概率满足一切已知约束条件,不对任何未知信息做假设,也就是对于未知的,当作等概率处理。

最大熵模型

【统计学习算法】最大熵原理

我们希望得到的在满足了所有约束的前提下,其余时间的发生概率都是等概率的,也就是熵最大。我们可以从样本集中知道x的经验概率。因此我们希望得到一个模型p(xy)p(x|y)能够做到H(p)H(p) 最大。

最大熵模型的学习

【统计学习算法】最大熵原理

从数据集中我们可以的一些关于x和y的经验分布知识,这里的特征函数fif_i是一种存在关系。
【统计学习算法】最大熵原理【统计学习算法】最大熵原理

可以认为如果(x, y)出现在训练集中,那么它就是1,因为一旦出现在训练集中,说明(x, y)对已经符合了某一样本的事实了。P上面的短横表示这个模型是基于训练集得出来的,只能被称为经验分布。
这个约束实际上要求我们训练出来的模型p(yx)p(y|x)需要很接近pˉ(yx)\bar{p}(y|x).

对于最优化问题我们采用引入拉格朗日乘子,定义为L(P,w)L(P,w)
【统计学习算法】最大熵原理

注意这里可以对偶问题等价的条件是因为是凸函数。我们首先需要找到一个让L(P,w)L(P,w)最小的P(yx)P(y|x)。因此我们对L(P,w)L(P, w)求导。

求导得到结果:
【统计学习算法】最大熵原理

进一步变形整理
【统计学习算法】最大熵原理

这一步其实没有实质性变化,只是化为了标准形式而已。

只需要带回去L(w,p)L(w,p)函数,在进一步对w求导就可以得到极值,但是这里出现了一个问题。将最优的p带回函数后,发现是无法对w求导解决的,因为是不可解析的。

最大化L(w)L(w)与最大似然估计是等价的

关于如何得到的对数似然函数可以参见,参考文献

【统计学习算法】最大熵原理

最大熵模型的最优化算法

希望求解的是对偶函数的最大化条件,但是由于得不到显式的解析解,因此需要借助数值算法。好在目标函数是一个光滑的凸函数,因此可以采用多种方法求解,并且保证得到最优解。

这里采用IIS的方法:
核心在于求解
【统计学习算法】最大熵原理

最大熵的优缺点

  • 最大熵模型的优点有:

a) 最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。

b) 可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度

  • 最大熵模型的缺点有:

a) 由于约束函数数量和样本数目有关系,导致迭代过程计算量巨大,实际应用比较难。

相关文章: