在上一篇讲决策树的文章中,在做特征选择的时候我们用的是信息增益或者信息增益比作为标准,其中就涉及到了熵。熵是信息论中的核心概念,在许多领域都有广泛的应用。这次我们讲的就是利用熵最大的标准来选择模型,这种模型就叫做最大熵模型。
一、 特征函数
在介绍最大熵模型之前我们需要先介绍一下特征函数的概念。最大熵模型最早最成功的应用是在自然语言处理领域,而语言作为人类发明的东西总是包含许多人为设定的规则,比如说在英文中动词后面跟的是名词或者副词,以how开头的是疑问句或者感叹句等等,那么这些规则如何表达为数学的形式进而融入到模型中去呢?答案是利用特征函数!特征函数的定义如下
即当x和y满足某种规则的时候特征函数为1,否则为0。通过这种方式来表示先验知识、专家知识。但是这只是表示问题,接下来如何将其融入到模型中呢?这里我们用到了一个假设,即特征函数关于模型的期望与经验期望相等。
特征函数关于模型P(Y|X)与经验分布
的期望值为
特征函数关于经验分布
的期望值为
如果模型能够获取训练数据中的信息,那么我们就可以假设这两个期望值相等,而这也将是最大熵模型学习的约束条件,这样我们就把先验知识融入到了模型当中。如果有n个特征函数,那么就有n个约束条件。
二、 最大熵模型
最大熵模型的学习等价于约束最优化问题:
按照最优化的习惯,将求最大值问题改写为等价的求最小值问题,只需要加个负号,即
类似于支持向量机中的解法,对于这种带约束的最优化问题我们可以将其转换为无约束最优化的对偶问题,通过求解对偶问题来求解原始问题。
首先引进拉格朗日乘子
则原始问题是
对偶问题则是
由于拉格朗日函数L是凸函数且满足KKT条件,因此两者的解是等价的。
对L求P的偏导
令其等于0得到
由于
因此归一化得到
将带入对偶函数中得到关于
的极大最优化函数。
三、优化求解
对于对偶函数的极大化求解,SVM中采用的是SMO算法,在最大熵模型中则采用IIS、BFGS、LBFGS等优化方法,由于推导比较繁琐,这里就不再赘述了,大家可以参考相关资料。
参考资料
统计学习方法, 李航 著