机器学习(八):最大熵模型

版权声明:欢迎转载,转载请注明出处! https://blog.csdn.net/weixin_40871455/article/details/89329844

最大熵原理

最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,最大熵原理可以表述为在满足约束条件的模型集合中选取熵最大的模型

假设离散随机变量X的概率分布式P(X),其熵为:

熵满足下列不等式:

其中,|x|是x的取值个数,当且仅当x的分布式均匀分布时右边的等号成立。i.e.  当X服从均匀分布时,熵最大

直观的,最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,哪些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性。等可能不容易操作,熵就是一个可优化的数值指标

例子:

解:首先,这些概率值必然和为1,即:

满足这个约束条件的概率分布有无穷多个,如果没有任何其他信息,仍要对概率分布进行估计,一个办法就是认为这个分布中取各个值的概率是相等的:

如果接下来又添加了一个可用信息 :

满足这两个约束条件的概率分布仍然有无穷多个,在缺少其他信息的情况下,可以认为A与B是等概率的,C,D,E是等概率的,于是:

最大熵模型的定义

假设分类模型是一个条件概率分布P(Y|X),X表示输入,Y 表示输出,这个模型表示的是对于给定的输入X,以条件概率P(Y|X)输出Y,给定一个训练数据集:

其中,N为训练集中样本个数;

学习的目的:利用最大熵原理,选择一个最好的分类模型;例如:二分类问题:得到的分类器P(Y|X),可以使得对于任何给定的样本x∈X,都可以计算得到P(y=1|x)和P(y=0|x)

给定了训练集,可以确定联合分布P(X,Y)的经验分布和边缘分布P(X)的经验分布,分别以\large \widetilde{P}(X,Y)\large \widetilde{P}(X)表示。这里,

其中,表示训练数据中样本(x,y)出现的频数,表示训练数据中x出现的频数,N是训练样本容量。

用特征函数 f(x,y) 描述输入x和输出y直接的某一个事实,其定义:

它是一个二值函数,当x和y满足这个事实时,取值为1,否则取值为0

特征函数 f(x,y) 关于经验分布\widetilde{P}(X,Y)的期望值,用\large E_{\widetilde{p}}(f)表示

特征函数 f(x,y) 关于模型 P(Y|X) 与经验分布\widetilde{P}(X)的期望值,用E_{p}(f)表示

如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即:

我们将上式作为模型学习的约束条件。假如有n个特征函数f_{i}(x,y), i=1,2...,n ,那么就有n个约束条件

最大熵模型:

假设满足所有约束条件的模型集合为:

定义在条件概率分布 P(Y|X) 上的条件熵为:

则模型集合C中条件熵 H(P) 最大的模型称为最大熵模型,式中对数为自然对数e


最大熵模型的学习

最大熵模型的学习过程就是求解最大熵模型的过程,最大熵模型的学习可以形式化的约束为最优化问题

对于给定的训练数据集T={(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{n},y_{n})},以及特征函数f_{j}(x,y), j=1,2,...,k,最大熵模型的学习等价于约束最优化问题:

按照最优化问题的习惯,将求最大值问题改写为等价的求最小值问题:

求解上式约束最优化问题,所得出的解,就是最大熵模型学习的解,下面是具体推导:

这里,将约束最优化的原始问题转化为无约束最优化的对偶问题,通过求解对偶问题求解原始问题

首先引入拉格朗日乘子w_{0},w_{1},w_{2},...,w_{n},定义拉格朗日函数L(P,w)

最优化的原始问题是

                                                                                   \large \mathop {\min }\limits_{p\in C}\ \mathop {\max}\limits_w L(P,w)

对偶问题:

                                                                                  \large \mathop {\max}\limits_w\ \mathop {\min }\limits_{p\in C}\ L(P,w)

由于拉格朗日函数 L(P,w) 是P 的凸函数,原始问题的解与对偶问题的解是等价的,这样,可以通过求解对偶问题来求解原始问题

首先求解对偶问题的内部的极小化问题 \small \mathop {\min }\limits_{p\in C}\ L(P,w), \small \mathop {\min }\limits_{p\in C}\ L(P,w)是w的函数,将其记作:

                                                                      \large \psi (w)=\mathop {\min }\limits_{p\in C}\ L(P,w)=L(P_{w}\ ,w)

\psi (w)称为对偶问题,同时,将其解记作:

                                                                     \large P_{w}=arg\mathop {\min }\limits_{p\in C}\ L(P,w)=P_{w}(y|x)

具体的,求L(P,w)对P(y|x)的偏导数:

令偏导数等于0,在\widetilde{P}(x)>0 的情况下,只需要让括号内的式子为0即可,解得:

由于 \small \sum_{y}P(y|x)=1,归一化:

其中,

\small Z_{w}(x)称为规范化因子;\small f_{i}(x,y)是特征函数;\small w_{i}是拉格朗日乘子,是特征的权值,以上两个式子表示的模型\small P_{w}=P_{w}(y|x)就是最大熵模型,\small w是最大熵模型中的参数向量


我们再回到最开始的例子,使用最大熵学习模型

为了方便,分别以y_{1},y_{2},y_{3},y_{4},y_{5}表示ABCDE,于是最大熵模型学习的最优化问题是:

引入拉格朗日乘子w_{0},w_{1},定义拉格朗日函数:

根据拉格朗日对偶性,可以通过求解对偶最优化问题得到原始最优化问题的解,所有求解

                                                                                 \large \mathop {\max}\limits_w\ \mathop {\min }\limits_{p}\ L(P,w)

首先求解L(P,w)关于P的极小化问题,固定w_{0},w_{1},求偏导数:

令各偏导数等于0,解得

于是,

再求解L(P_{w},w)关于w的极大化问题:

分别求L(P_{w},w)w_{0},w_{1}的偏导数并令其为0,得到

于是得到所要求的概率分布为

猜你喜欢

转载自blog.csdn.net/weixin_40871455/article/details/89329844