1. 前言
最大熵模型(maximum entropy model, MaxEnt)也是很典型的分类算法了,它和逻辑回归相似,都是属于对数线性分类模型。在损失函数优化的过程当中,使用了和支持向量机相似的凸优化技术。而对熵的使用,让咱们想起了决策树算法中的ID3和C4.5算法。理解了最大熵模型,对逻辑回归,支持向量机以及决策树算法都会加深理解。本文就对最大熵模型的原理作一个小结。算法
2. 信息论回顾
2.1 信息熵
熵度量了事物的不肯定性,越不肯定的事物,它的熵就越大。在没有外部环境的做用下,事物老是向着熵增大的方向发展,因此熵越大,可能性也越大。 $$ H(X)=-\sum_{i=1}^np_{(i)}logp_{(i)} $$函数
2.2 条件熵
X肯定时,Y的不肯定性度量。 在X发生是前提下,Y发生新带来的熵。 $$ H(Y|X)=H(X,Y)-H(X)=-\sum_{x,y}p(x,y)logp(y|x) $$学习
2.3 联合熵
(X,Y)在一块儿时的不肯定性度量 $$ H(X,Y)=-\sum_{x,y}p(x,y)logp(x,y) $$优化
2.4 互信息(信息增益)
表示两个变量X与Y是否有关系,以及关系的强弱。 $$ I(X,Y)=∫_X∫_YP(X,Y)log\frac{P(X,Y)}{P(X)P(Y)} $$ $$ I(X,Y)=H(Y)-H(Y|X) $$ $$ I(X,Y)=H(Y)+H(X)-H(X,Y) $$ 能够看出,I(X,Y)能够解释为由X引入而使Y的不肯定度减少的量,这个减少的量为H(Y|X)。因此,若是X,Y关系越密切,I(X,Y)就越大,X,Y彻底不相关,I(X,Y)为0,因此互信息越大,表明这个特征的分类效果越好。spa
3. 最大熵模型的定义
最大熵模型假设分类模型是一个条件几率分布$P(Y|X)$,X为特征,$Y$为输出。ci
给定一个训练集$(x_1,y_1),(x_2,y_2),...,(x_m,y_m)$,其中x为n维特征向量,y为类别输出。咱们的目标就是用最大熵模型选择一个最好的分类类型。it
在给定训练集的状况下,咱们能够获得整体联合分布$P(X,Y)$的经验分布$P'(X,Y)$和边缘分布$P(X)$的经验分布$P'(X)$。$P'(X,Y)$即为训练集中$X,Y$同时出现的次数除以样本总数m,$P'(X)$即为训练集中$X$出现的次数除以样本总数m。io
用特征函数$f(x,y)$描述输入x和输出y之间的关系。定义为:class
$$ f(x,y)=\begin{cases} 1, & x,y;has;some;relation\ 0, & others \end{cases} $$ 能够认为只要出如今训练集中出现的$(x_i,y_i)$,其$f(x_i,y_i)=1$. 同一个训练样本能够有多个约束特征函数。变量
特征函数$f(x,y)$关于经验分布$P'(X,Y)$的指望值,用$E_P(f)$表示为:
$$ E_{P'}(f) = \sum\limits_{x,y}{P'}(x,y)f(x,y) $$ 特征函数$f(x,y)$关于条件分布$P(Y|X)$和经验分布$P'(X)$的指望值,用$E_P(f)$表示为: $$ E_{P}(f) = \sum\limits_{x,y}{P'}(x)P(y|x)f(x,y) $$ 若是模型能够从训练集中学习,咱们就能够假设这两个指望相等。即:
$$ E_{{P'}}(f) = E_{P}(f) $$ 上式就是最大熵模型学习的约束条件,假如咱们有M个特征函数$f_i(x,y)(i=1,2...,M)$就有$M$~个约束条件。能够理解为咱们若是训练集里有m个样本,就有和这m个样本对应的M个约束条件。
这样咱们就获得了最大熵模型的定义以下:
假设知足全部约束条件的模型集合为:
$$ E_{{P'}}(f_i) = E_{P}(f_i) (i=1,2,...M) $$ 定义在条件几率分布$P(Y|X)$上的条件熵为:
$$ H(P) = -\sum\limits_{x,y}{P'}(x)P(y|x)logP(y|x) $$ 咱们的目标是获得使$H(P)$最大的时候对应的$P(y|x)$,这里能够对$H(P)$加了个负号求极小值,这样作的目的是为了使$-H(P)$为凸函数,方便使用凸优化的方法来求极值。
4. 最大熵模型小结
最大熵模型在分类方法里算是比较优的模型,可是因为它的约束函数的数目通常来讲会随着样本量的增大而增大,致使样本量很大的时候,对偶函数优化求解的迭代过程很是慢,scikit-learn甚至都没有最大熵模型对应的类库。可是理解它仍然颇有意义,尤为是它和不少分类方法都有千丝万缕的联系。
惯例,咱们总结下最大熵模型做为分类方法的优缺点:
最大熵模型的优势有:
- 最大熵统计模型得到的是全部知足约束条件的模型中信息熵极大的模型,做为经典的分类模型时准确率较高。
- 能够灵活地设置约束条件,经过约束条件的多少能够调节模型对未知数据的适应度和对已知数据的拟合程度
最大熵模型的缺点有:
- 因为约束函数数量和样本数目有关系,致使迭代过程计算量巨大,实际应用比较难。