最大熵模型
前提知识
熵:其实就是定义信息的不确定程度,熵越大,信息的不确定性就越强。其实这在决策树算法中就有提到。
最大熵原理:
第一种定义:学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型被认为是最好的模型。
第二种定义:在满足约束条件的模型集合中选择熵最大的模型。
熵的定义:熵满足下列不等式:
其中
|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,用来表示学习到的最优模型。