前言
最大熵模型(maximu entropy model)是多类分类方法,属于判别模型。
最大熵原理
最大熵模型是由最大熵原理推导实现。最大熵原理是概率模型学习的一个准则,它认为在满足所有约束条件下,把不确定部分当作等可能的概率模型中,熵最大的模型是最好的模型。
不确定部分等可能是因为我们没有更多的信息,对于不确定的地方我们不清楚不了解,那么公平起见,都是等可能性的吧。
举个例子:给你一个骰子,没有任何其他信息我们认为每个面的概率都是等可能的1/6。
模型
首先提取能拟合模型且对选择模型有用信息(考虑模型应该满足的条件)。
为了能学习到一个条件概率分布的分类模型,我们首先需要计算P(X,Y)经验分布(从抽样样本中得到的信息)和P(X)边缘分布。(这是一个有用的信息)
观察完了样本得到经验分布以及边缘分布,我们可以定义一个特征函数:(这又是一个有用的信息)

为什么我们需要这个特征函数?
因为它描述了一个x与y之间的事实,这个事实是我们形成约束条件的重要信息,有n个特征函数就会有n个约束条件。
在这个经验分布中,f(x,y)的期望是多少?

为什么我们需要这个期望?
期望是随机变量的平均值,这里的随机变量是f(x,y)这个事实,也就是说一个样本中有多少符合这个事实。
与我们已知的信息和想要得到的条件概率相关联得到。

这里两个期望值是相等的,它也是我们最终总结提炼中的约束条件。
我们需要选择的P(Y|X)需要满足这个期望值,才能满足约束条件,才能符合最大熵的要求。

参考条件熵的数学推导:https://blog.csdn.net/v_july_v/article/details/40508465
参考最大熵模型的理解:https://www.jianshu.com/p/e7c13002440d
策略
最大熵原理啊,它就是概率模型学习的一个准则,我们到时候就去取条件熵模型中熵最大的模型就可以了。
以离散随机变量X的概率分布P(X)为例,证明最大熵原理
参考:https://wenku.baidu.com/view/3d4a8ecb9e3143323968937c.html
算法
最大熵模型的学习过程就是求解最大熵模型的过程,也等价于约束最优化问题。求解约束最优化问题得到的解,就是最大熵模型学习的解。
最最最最基本的约束最优化问题如下:

按照最优化的习惯把求最大值变成求最小值:

拉格朗日对偶性
原始问题
求有约束条件的极值问题可以定义广义拉格朗日函数:

我们要求这个上面这个式子的最小值,其实我们的s.t.都是等式约束,像求解最小值可以用高数的知识了。但是如果s.t.是不等式约束呢?那么我们要把约束最优化的原始问题转为无约束最优化的对偶问题,因为这样就没有不等式约束,计算方便许多。
解决这个问题我们需要引入一个函数,这里的下标p表示原始问题:

这里为什么是max的广义拉格朗日函数?不可以是min?
个人理解:一对α,β可以得到一个L,因为我想要L最小,所以我去把所有α,β产生的L中最大值中找出,再选择一个P把它调到最小的L。我连最棘手的L都可以依靠P解决,其他的没什么大不了的。这个极小极大问题与后面支持向量机的极大极小问题是一个道理。
它满足:
注:这里的α,β是我们为了满足上面式子而特定取值的。比如当x满足所有约束的时候我们令α,β为0,不满足条件的时候令α,β为某个值使上式为无穷大。
个人理解:
有点像之前引入特征函数f(x,y)一样,把约束条件可能产生的情况都用特定函数表示。
为什么一个是f(x),一个是无穷大?
是因为当x满足条件的时候为了与原始最优化问题等价,不满足条件的时候无穷大已经无法解它的最小值了。

这样左边就是原始问题,右边叫做广义拉格朗日函数的极小极大问题。定义原始问题的最优值:
对偶问题
定义一个函数,这个叫做对偶函数:

极大化后:

右边是广义拉格朗日函数的极大极小问题。对偶问题的最优值为:

为什么我们需要对偶问题,对偶问题与原始问题是什么关系
对偶问题在求解最小值部分的时候没有约束[3],而且从上面可以知道解决了对偶问题我们就能找到原始问题最优值的下界,在某些条件下又是相等的[2]。
有几个结论直接给出:
- 对偶函数一定是凹函数,且都小于原问题的最优值[1];
- 对偶函数是被定义为L的最小值,求解对偶函数中最大的一个就会与L越接近[1];

参考:
[1]. https://www.cnblogs.com/gczr/p/10521551.html
[2]. https://blog.csdn.net/qq_34531825/article/details/52872819
[3]. https://zhuanlan.zhihu.com/p/31131842
[4]. 李航. 统计学习方法. 附录C
综上,我们把最大熵模型=约束最优化问题->最大值改为求最小值->约束最优化问题改为无约束最优化的对偶问题(为了方便计算)。
计算无约束最优化的对偶问题
- 先解决对偶函数,也就是L(P,w)的极小化问题;
- 固定所有的w,对P(y|x)求偏导,求完后令偏导数为0,这个时候反解出P(y|x),当然肯定是带有w的;
- 把解得的P(y|x)代回对偶函数,之后对对偶函数求极大值;
- 分别对所有的w求偏导,并令其为0,反解w;
- 再把w代入P(y|x)得到实数值。
本文介绍了最大熵模型,它是基于最大熵原理的多类分类方法。通过提取有用信息和定义特征函数来构建模型,并利用拉格朗日对偶性解决约束最优化问题。讨论了对偶问题与原始问题的关系,以及如何通过求解对偶问题来找到最大熵模型的解。
1228

被折叠的 条评论
为什么被折叠?



