最大熵模型原理小结
Posted 郑兴鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大熵模型原理小结相关的知识,希望对你有一定的参考价值。
最大熵模型(maximum entropy model, MaxEnt)也是很典型的分类算法了,它和逻辑回归类似,都是属于对数线性分类模型。在损失函数优化的过程中,使用了和支持向量机类似的凸优化技术。而对熵的使用,让我们想起了决策树算法中的ID3和C4.5算法。理解了最大熵模型,对逻辑回归,支持向量机以及决策树算法都会加深理解。本文就对最大熵模型的原理做一个小结。
1. 熵和条件熵的回顾
在决策树算法原理(上)一文中,我们已经讲到了熵和条件熵的概念,这里我们对它们做一个简单的回顾。
熵度量了事物的不确定性,越不确定的事物,它的熵就越大。具体的,随机变量X的熵的表达式如下:
其中n代表X的n种不同的离散取值。而pipi代表了X取值为i的概率,log为以2或者e为底的对数。
熟悉了一个变量X的熵,很容易推广到多个个变量的联合熵,这里给出两个变量X和Y的联合熵表达式:
有了联合熵,又可以得到条件熵的表达式H(Y|X),条件熵类似于条件概率,它度量了我们的Y在知道X以后剩下的不确定性。表达式如下:
用下面这个图很容易明白他们的关系。左边的椭圆代表H(X),右边的椭圆代表H(Y),中间重合的部分就是我们的互信息或者信息增益I(X,Y), 左边的椭圆去掉重合部分就是H(X|Y),右边的椭圆去掉重合部分就是H(Y|X)。两个椭圆的并就是H(X,Y)。
2. 最大熵模型的定义
最大熵模型假设分类模型是一个条件概率分布P(Y|X)P(Y|X),X为特征,Y为输出。
给定一个训练集(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)),其中x为n维特征向量,y为类别输出。我们的目标就是用最大熵模型选择一个最好的分类类型。
在给定训练集的情况下,我们可以得到总体联合分布P(X,Y)P(X,Y)的经验分布P¯¯¯¯(X,Y)P¯(X,Y),和边缘分布P(X)P(X)的经验分布P¯¯¯¯(X)P¯(X)。P¯¯¯¯(X,Y)P¯(X,Y)即为训练集中X,Y同时出现的次数除以样本总数m,P¯¯¯¯(X)P¯(X)即为训练集中X出现的次数除以样本总数m。
用特征函数f(x,y)f(x,y)描述输入x和输出y之间的关系。定义为:
可以认为只要出现在训练集中出现的(x(i),y(i))(x(i),y(i)),其f(x(i),y(i))=1f(x(i),y(i))=1.
特征函数f(x,y)f(x,y)关于经验分布P¯¯¯¯(X,Y)P¯(X,Y)的期望值,用EP¯¯¯¯(f)EP¯(f)表示为:
特征函数f(x,y)f(x,y)关于条件分布P(Y|X)P(Y|X)和经验分布P¯¯¯¯(X)P¯(X)的期望值,用EP(f)EP(f)表示为:
如果模型可以从训练集中学习,我们就可以假设这两个期望相等。即:
上式就是最大熵模型学习的约束条件,假如我们有M个特征函数fi(x,y)(i=1,2...,M)fi(x,y)(i=1,2...,M)就有M个约束条件。可以理解为我们如果训练集里有m个样本,就有和这m个样本对应的M个约束条件。
这样我们就得到了最大熵模型的定义如下:
假设满足所有约束条件的模型集合为:
定义在条件概率分布P(Y|X)P(Y|X)上的条件熵为:
我们的目标是得到使H(P)H(P)最小的时候对应的P(y|x)P(y|x),这里可以看到上式右边加了个负号,这样做的目的是为了使H(P)H(P)为凸函数,方便使用凸优化的方法来求极值。
3 . 最大熵模型损失函数的优化
在上一节我们已经得到了最大熵模型的损失函数H(P)H(P)。它的定义为: