最大熵模型与逻辑斯蒂回归模型一样,属于对数线性模型,因为推导出的最大熵模型公式满足输入与输出的对数函数成线性关系,如下:
其中,
1、最大熵原理
将最大熵原理使用到具体的应用模型中,就得到了最大熵模型。所以,要了解最大熵模型,首先需要知道最大熵原理。
最大熵原理要求在概率分布中,将使得熵最大的概率分布作为最好的选择。所谓熵,可以理解为系统的不确定程度。熵越大,系统的不确定程度就越高。比如在掷骰子游戏中,在条件未知的情况下,因为无法知道具体是哪一面,其不确定程度程度最高,即熵最大;当加入可能是两点或四点条件后,其不确定性就降低了,因为只有两个选择可以选,这时的熵也就变小了。
下面给出熵的定义:
假设离散随机变量X的概率分布是P(X),则定义熵H(P)为:
由熵的定义可知:
式中|X|表示变量X的取值个数。不等式左侧显然成立,右侧证明如下:
H(P)−log|X|=∑xP(x)log1P(x)−∑xP(x)log|X|
=∑xP(x)log1|X|⋅P(x)
由不等式log x≤x-1,上式可变为:
≤∑xP(x)(1|X|⋅P(x)−1)
=∑x(1|X|−P(x))
=∑x1|X|−1
=0
不等式成立当且仅当:
即:
此时,X满足均匀分布,也就是说当X服从均匀分布时,熵最大。
直观地,最大熵原理要求选择的概率模型必须满足已有事实,而对未知事实不做任何主观假设,也即认为未知事实是等可能的。这个等可能性在最大熵原理中用熵的最大化来度量,用一个例子来说明如下:
假设随机变量X有5个取值{ x1,x2,x3,x4,x5 },要估计出取这五个值的概率 P(x1),P(x2),P(x3),P(x4),P(x5)各是多少?
首先,概率值应满足约束条件:
满足约束条件的概率值有无穷多组,我们在不知道其他信息的情况下,认为其等可能地其服从均匀分布,即:
这个时候得出的概率分布的熵也是最大的。
若我们根据一些先验知识得知,
在满足以上条件情况下,认为未知情况服从均匀分布,即:
这就是用最大熵原理来得出概率分布的方法。
2、最大熵模型
最大熵模型是对最大熵原理的应用。
假设分类模型为条件概率分布P(Y|X),X表示输入,Y表示输出。在给定一组训练数据
的情况下,学习目标是用最大熵原理选择最好的分类模型。
在给定训练数据集的情况下,联合概率分布P(X,Y)和边缘概率分布P(X)的经验分布都可以确定:
其中 ν 表示训练样本中出现的频数,N表示样本总量。
根据最大熵原理,首先要考虑满足已有约束条件。这里我们引入特征函数f(x,y)来表示对模型条件的约束,如下:
f(x,y) 表示输入与输出是否满足某一事实,这里的事实表示对模型的约束事实,如上例中 (x1,y1),(x2,y2)满足约束:
特征函数 f(x,y) 关于模型P(Y|X)和经验分布 P˜(X) 的期望值 Ep(f) ,
在给定数据集足够大的情况下,这两个期望值应该是相等的,即:
该等式将概率模型需要满足的约束条件形式化表示。
在满足约束条件的情况下,我们给出最大熵模型的定义:
假设满足所有约束条件的模型集合为:
定义在条件概率分布P(Y|X)上的条件熵为
称满足模型集合C中条件熵最大的模型为最大熵模型。
3、模型的学习
与支持向量机一样,最大熵模型也是一个有约束的目标最优问题。
对于给定训练数据集 T=(x1,y1),(x2,y2),...,(xn,yn) 及特征函数 fi(x,y),i=1,2,...,n ,最大熵模型的目标问题如下:
s.t.Ep˜(f)=Ep(f)
∑yP(y|x)=1
将其写成等价的求最小值问题:
s.t.Ep˜(f)−Ep(f)=0
∑yP(y|x)=1
根据前面介绍的支持向量机模型经验,引入拉格朗日函数,将约束目标问题转换为无约束目标优化问题,并求其对偶问题,解得:
其中,
即得出了开篇我们提到的最大熵模型公式,可以看出其是一个对数线性模型。
4、最大熵模型的学习算法
支持向量机的学习算法为最小序列最优化(SEO)算法,最大熵模型因为可以归结为以似然函数为目标函数的最优化问题,一些求解最优化的方法都可以拿来使用,如改进的迭代尺度算法(IIS)、牛顿法、拟牛顿法等,希望在接下来继续介绍这些学习算法。