最大熵模型
前言:艰难的最大熵模型。最大熵有很多很难的地方,这篇文章不会去讲预备知识,而是在这个知识出现的时候,先讲结论,再来叙述。这样做的目的就是你可以记住结论,跳过这一个模块。来吧,让我们开始
最大熵原理
最大熵原理是概率学习的一个准则,最大熵原理认为,学习概率模型时,在所有的概率模型分布中,熵最大的模型是最好的模型。
要记住,我们训练就要使这个式子最大,得到的分布。
条件熵
做分类的时候,我们不光有 x 还有 y 。也就是说,我们要做有条件的最大熵。这时引入条件熵。
结论:推导出条件熵的公式,训练使条件熵最大
一开始看这个式子的时候,搞不清楚 P(x, y) 和 P(y | x) 的区别。
其实
优化条件熵的约束
现在,我们的问题转换成
最大化:
但是习惯于最小化,所以变成
最小化:
约束:
约束条件的由来
-
等式左边是训练模型的期望,等式右边是由数据得出来的期望。
约束条件下的优化
在约束条件下求函数最值,引入拉格朗日函数,文章篇幅不宜过长,我在另一篇文章介绍拉格朗日函数及其对偶性
先记住结论,由于拉格朗日函数及其对偶性,我们把约束条件和要最小化的函数整合到了一块。
最小化:
其中:
求导
对求导数,得到的模型就是我们要求的模型,并记做。
具体推导看《统计学习方法》,在这里补充他没有讲到的地方。
求导得到
记做
现在推导:
在这里 被称为规范因子,是特征的权值,就是学习到的模型。
求解参数
通过上一步的求导,得到,带入最上面提到的拉格朗日的函数。
最后对求导取零得到最优参数
直接求导等于零,太复杂了。不能直接求出解析解。我们要换个思路,在换个思路之前,我们要提一提极大似然估计
极大似然估计
不写公式推导了,《统计学习方法》写的很详细了
只需知道
- 学习到的最大熵模型
其中
- 对数似然函数为
换个思路求最优参数
写到这里,离最后实现代码真的不远了,到最后自己实现的时候,代码真的不难,难的是里面的数学原理,太复杂了
这一节主要告诉你用改进的迭代尺度算法更新参数,具体证明我也不会,只需要知道如何更新参数就能完成代码了
算法(改进的迭代尺度算法IIS)
详见《统计学习方法》,在这里不详细叙述了
实现
实现有一个很难的地方,不知道如何去计算
- 注意这里的 x 是多个 x 和特征函数不同。 是键值对。是一个 x 对应一个 y。
参考
-
《统计学习方法》