最大熵模型

前提知识

熵:其实就是定义信息的不确定程度,熵越大,信息的不确定性就越强。其实这在决策树算法中就有提到。

最大熵原理:
第一种定义:学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型被认为是最好的模型。
第二种定义:在满足约束条件的模型集合中选择熵最大的模型。

熵的定义:
最大熵模型熵满足下列不等式:
最大熵模型其中
|x|:表示x取值的个数。
在不等式中,当且仅当x满足均匀分布时,右边的等号成立。即当x服从均匀分布时,熵最大。

所以:按照个人的理解来看,最大熵原理就是在给定的条件下,每种情况均匀分布是最好的。就好比生活中的掷骰子,在不知道形状只知道有六个面时,肯定猜每种情况出现的概率都是1/6最准确。即在没有更多信息的情况下,认为不确定部分是等概率出现的。而等概率不容易操作,但是熵则是一个可优化的值。

最大熵模型定义

给定一个数据集
最大熵模型学习的目标是用最大熵原理选择最好的分类模型

首先:考虑模型应该满足的条件。给定数据集,可以确定联合概率分布P(x,y)的经验分布和边缘分布P(x)的经验分布。公式如下:
最大熵模型

其中V()函数表示:数据集中满足条件的数据的个数,N代表数据集中的数据总数目。

用特征函数f(x,y)描述输入x和输出y之间的某一个事实:
最大熵模型
特征函数f(x,y)关于经验分布p"(X,Y)的期望值,用
最大熵模型特征函数f(x,y)关于模型P(Y|X)与经验分布p"(x)的期望值为:

最大熵模型。如果模型能够获取训练数据集中的信息,那么就可以认为这个两个期望相等。也就是认为经验分布和模型分布是一样的。
即:
最大熵模型
最大熵模型
将上式作为模型的约束条件,当有n个特征函数,即有n个事实时,就有n个约束条件。

模型定义

假设满足所有约束条件的模型集合为:
最大熵模型定义在条件概率分布P(y|x)上的条件熵为:
最大熵模型则模型集合C中条件熵H§最大的模型称为最大熵模型。

最大熵模型的学习

最大熵模型的学习可以转化为约束最优化问题。
对于给定的训练数据集T={(x1,y1),(x2,y2),…,(xn,yn)}以及特征函数fi(x,y)(i=1,2,…,n),最大熵模型的学习等于约束最优化问题:
最大熵模型上式等价于:
最大熵模型利用拉格朗日法求解最优化最大熵模型,得:
最大熵模型原始问题是:
最大熵模型其对偶问题是;
最大熵模型针对上式:
首先,minL(P,w)是w的函数,求这个函数对P(y|x)的偏导数:
最大熵模型注意:这里的p(y|x)有n个,所以这里有n个式子。令这些式子为0,这里的P’’(x)>0,得:
最大熵模型因为:
最大熵模型即:
最大熵模型进而:
最大熵模型

所以:
最大熵模型其中:
最大熵模型Zw(x)被称为规范化因子,f(x,y)是特征函数,wi是特征的权重,Pw(y|x)就是最大熵模型。其中w是最大熵模型中的参数向量。

之后,求解对偶问题外部的极大化问题:max(Pw(y|x))。得到最后的w。即:应用最优化算法求对偶问题max(Pw(y|x))的极大化,得到w,用来表示学习到的最优模型。