- 最大熵模型预备知识
信息量:一个事件发生的概率越小,信息量越大,所以信息量应该为概率的减函数,对于相互独立的两个事有p(xy)=p(x)p(y),对于这两个事件信息量应满足h(xy)=h(x)+h(y),那么信息量应为对数函数:
对于一个随机变量可以以不同的概率发生,那么通过信息量期望的方式衡量,即信息熵。
信息熵:一条信息(属性、特征)的信息量大小和它的不确定性程度有直接的关系,不确定性越大,信息量越大。以e为底单位为nat。公式为:
每个xi表示一种特征。
H(X)在每个p(xi) = 1/N是最大,N为信息的个数。在概率为1/N时信息是最不确定的,所以H(X)越大,信息熵越不确定。
注意:均匀分布的信息熵:
N点离散均匀分布:
连续均匀分布:
联合熵:两个随机变量的X与Y的联合分布形成的熵称为联合熵,记为H(X, Y)。
条件熵:X给定的条件下,Y的信息熵,即H (Y | X )。公式为:
条件熵等于(X, Y)的联合熵,减去X熵,即:
相对熵:又称互熵、交叉熵、交叉信息、Kullback熵、Kullback-Leibel散度。设p(x), q(x)是X中的两个概率分布,p对q的相对熵可以表示为:
相对熵可以度量两个随机变量的"距离"。
互信息:两个随机变量X,Y的联合分布与独立分布乘积的相对熵,即:
几种熵之间的关系:
- 最大熵直观理解:在没有任何前提条件的时候,我们猜测骰子每个面出现的概率为1/6;当骰子的重心发生变化时,如果我们已知出现1点的概率为1/3,那么我们会猜测剩下的各面出现的概率为(1-1/3)/5=2/15(在没有任何先验知识的前提下,我们推测为均匀分布)。这个过程实际就是在运用最大熵原理。
最大熵原理指出:对一个随机事件的概率分布进行预测时,预测应当满足全部已知的约束,而对未知的情况不要做任何主观假设。在这种情况下,概率分布最均匀,预测的风险最小,因此得到的概率分布的熵是最大。
最大熵目标:运用观测到的实验样本如何对实验数据分布做出合理的推断。
最大熵模型是建立一个概率判别模型,该模型的任务是对于给定的 X=x以条件概率分布 P(Y|X=x) 预测 Y的取值。
- 最大熵:
无条件最大熵:若随机变量退化为定值,熵最小为0,若随机变量为均匀分布,那么熵最大,所以熵满足:
有条件最大熵:最大熵模型
如果用欧式空间的单纯形(simplex)来描述随机变量的话,那么可以将随机变量A,B,C映射到等边三角形的三个顶点上(等边三角形的内部任意一点到三条边的距离之和相等,等于三角形的高),如(a)所示,这里定义三角形中任意一点到三条边的距离之和为 1,任给一点p,比如P(A) 等于p到边 BC 的距离。图(b)中,P(A)=1, P(B)=P(C)=0。图(c)中,P(A)=P(B)=P(C)=1/3。
上图(a)中没有任何概率约束条件,所以所有的P(Y|X)都是允许的,整个概率空间的取值可以是 三角形(simplex)中的任意一点,只需找到满足最大熵条件的即可。当引入约束时,模型被限制在约束上,如下图所示
(1) 图(a)中,增加了(线性)约束C1,P(Y|X)只能落在定义C1的那条线段上;
(2) 图(b)中,在图(a)的基础上增加了线性约束C2,且C1∩C2≠Φ,所以P(Y|X)必须同时落在C1与C2上,所以只能落在C1与C2的交点上;
(3) 图(c)中,在图(a)的基础上增加了线性约束C2,但C1∩C2=Φ,此时,没有同时满足C1与C2的P(Y|X)。在最大熵模型中,由于约束从训练数据中取得,所以不会出现不一致。即不会出现(c) 的情况。
- 最大熵约束条件
对于一般训练集:
按照最大熵目标,应先找到最大熵对应的全部约束条件。约束条件从何而来?实际上就是从训练集中抽取部分样本,要求这些样本在训练集上的经验分布的期望等于它们在模型中P(X, Y)的期望相同。
从训练集中抽取部分样本,要求样本服从联合经验分布P̃(X, Y)以及边缘经验分布P̃(X)。可以表示为:
其中,v(X=x, Y=y)表示训练集中x与y出现的频数,v(X=x)表示输入x出现的频数。
用特征函数f(x, y)表示训练数据中样本输入x与输出y之间是否为对应关系,其定义为:
f(x, y)为二值函数。
特征函数f(x, y)关于联合经验分布P̃(X, Y)在样本上的期望可以表示为:
特征函数f(x, y)关于模型P(Y|X=x)的期望可以表示为:
上式中P̃(x)应为边缘分布P(x),而实际上,P(x)无法计算得到所以用P̃(x)代替。P(x|y)为所求的模型。
根据约束条件,两个期望相等,即:
- 最大熵模型
假设满足所有约束条件的概率模型的集合为:
其中,i表示约束条件的个数。P为分布的集合。定义在条件概率分布P(X|Y)上的条件熵为:
集合C中条件熵H(P)最大的概率模型称为最大熵模型。
最大熵模型的学习过程就是求解最大熵模型的过程,最大熵模型的学习过程等价于约束最优化问题,模型可以等价于:
按照最优化问题习惯,最大值问题可以等价的求最小值,所以有:
针对约束条件,引入拉格朗日乘子w0, w1, w2,…,wn,定义拉格朗日函数L(P, w):
拉格朗日函数 L(P, w) 的约束是要满足的 ,如果不满足约束的话,只需另 wi →+∞,则可得 L(P, w)→+∞,因为需要得到极小值,所以约束必须要满足。即:
所以原问题转换为:
满足KKT条件,所以可以转换到对偶问题求解,即:
首先将L(P, w)对P(y|x)求导等于0,即
由于一阶导数等于0,而P̃(x)>0,可以解Pw(X|Y),
由于,得:
Zw(x)为规范化因子。
Pw(y|x)为最大熵模型,回带入L(P, w),现在内部的极小化求解得到关于 w的函数,现在求其对偶问题的外部极大化即可,即:
得到w*带入就得到了要求解得最大熵模型。
得到了需要极大化的式子:
最大似然估计
训练数据得经验概率分布P̃(X, Y),条件概率分布P(Y|X)的对数似然函数可以表示为:
将Pw(y|x)带入有:
显而易见,拉格朗日对偶得到的结果与极大似然得到的结果时等价的,现在只需极大化似然函数即可,顺带优化目标中可以加入正则项,这是一个凸优化问题,一般的梯度法、牛顿法都可解之,专门的算法有GIS IIS 算法。
讨论:只给定均值与方差的前提下,最大熵的分布形式?即:
很明显是最值问题,采用Lagrange乘子,有:
一阶导数为0,即:
接下来讨论几种分布的lnp(x)的形式:
(1) 正态分布:
(2) Gamma分布:
(3) 均匀分布:
(4) 指数分布:
所以证据上述分布的特点,已知均值与方差的最大熵分布应该满足正态分布。
谈最大熵模型与最大似然估计自己的理解(此理解非常"不负责任"):最大似然估计是在样本分布的未知的情况下认为样本的乘积最大。最大熵模型是未知部分不做假设。最大熵模型有时可以作为目标函数。
参考:
http://www.cnblogs.com/ooon/p/5677098.html
《统计学习方法》
邹博课件
未经许可不得转载!