【机器学习】最大熵模型推导

1 基本思想

先说说熵的定义,假设我们有随机变量 x ,其概率分布为 p(x) ,则其熵为:

H(P(x))=xP(x)logP(x)

条件熵:

H(P(y|x))=xP(x)yP(y|x)logP(y|x)

可以证明,在概率相等的时候,熵可以达到最大值。也可以理解为“最混乱”。

一般情况下,如果对一个事物没有任何的先验知识,我们倾向于用“平均概率”去估计它。比如,对于一个骰子,如果事先不知道其内部信息,则我们倾向于说如果抛掷它得到每种点数的概率是相等的。

如果我们知道了某些先验信息,比如某一个面抛出的概率高一些,也就是有了约束,那么我们倾向于说在“该面有较高的概率”这个约束条件下,剩下的那些面概率相等。

这相当于“将猜测每个面出现的概率”这个举动的风险降低到最小。

上面这种说法按照熵的语言来讲,就是最大熵

2 约束

假设我们研究的是分类问题,想要用模型来描述原始数据分布的 P(y|x)

这里,我们将约束抽象为约束函数,也就是说,满足某种条件的数据点 (x,y) ,约束函数 f 的值就是1,否则为0。

fi(x,y)={1, if (x,y) match somecondition0, otherwise

函数 fi(x,y) 在训练集的数学期望:

EP˜=(x,y)P˜(x,y)fi(x,y)

函数 fi(x,y) 在原始数据集的数学期望:

EP=(x,y)P(x,y)fi(x,y)

我们建模的目的,就是希望用训练集可以表示原始数据集某些规律。所以我们可以让上面两个期望相等:

EP˜=EP=(x,y)P(x,y)fi(x,y)=(x,y)P˜(x,y)fi(x,y)

由于我们希望得到的模型最大可能地模拟原始的数据分布,通过贝叶斯公式,用 P˜(x)P(y|x) 来近似 P(x,y) 。得到:

(x,y)P˜(x)P(y|x)fi(x,y)=(x,y)P˜(x,y)fi(x,y)

3 最大熵模型的学习

上面说到,设置好约束条件后,我们希望模型的熵最大,这相当于风险最小。这样,我们就得到了这里分类问题(求的是条件概率,所以算条件熵)最大熵模型的形式:

maxs.t.xP˜(x)yP(y|x)logP(y|x)(x,y)P˜(x)P(y|x)fi(x,y)=(x,y)P˜(x,y)fi(x,y),i=1,2,...,nyP(y|x)=1

等价于:

mins.t.(x,y)P˜(x)P(y|x)logP(y|x)(x,y)P˜(x)P(y|x)fi(x,y)=(x,y)P˜(x,y)fi(x,y),i=1,2,...,nyP(y|x)=1

这是一个等式约束优化问题。可以用拉格朗日乘子法。拉格朗日函数:

L(P(y|x),α)=(x,y)P˜(x)P(y|x)logP(y|x)+α01yP(y|x)+i=1nαi(x,y)P˜(x,y)fi(x,y)P˜(x)P(y|x)fi

原始问题:

minPmaxαL(P(y|x),α)

对偶问题:

maxαminPL(P(y|x),α)

求偏导:
注意,我们求的是 P(y|x) , 这是一个确定的值,也就是给定某一个 x ,它分类到某一确定类别 y 的概率是多少。既然是确定的,那么上面式子如果求偏导后关于 x 和 y 的求和符号应该就没有了。或者说,可以认为这里的 P(y|x) 并不是一个未知数,而是好多个,是 P(y1|x),P(y2|x),P(y3|x) 。这里我认为网上的教程以及李航的《统计学习方法》里面没有表述清楚。所以我这里用 P(yi|x) 来表示。

L(P,α)P(yj|x)=P˜(x)[logP(yj|x)+1]α0i=1nαi[P˜(x)fi(x,yj)]=P˜(x)[logP(yj|x)+1α0P˜(x)i=1nαifi(x,yj)]

令导数为0,并且注意到 P˜(x)>0 ,得:

P(yj|x)=exp(i=1nαifi(x,yj)+α0P˜(x)1)=exp(ni=1αifi(x,yj))exp(1α0P˜(x))

记规范化因子 Z(x)=exp(1α0P˜(x))

P(yj|x)=1Z(x)exp(i=1nαifi(x,yj))

yP(y|x)=1 得:

Z(x)=yexp(i=1nαifi(x,yj))

P(y|x) 表达式代入对偶问题,就只剩下未知数 α 了,再优化出令目标函数值最大的 α ,反过来求的 P(y|x) 就是最优的。注意,上面说求导是针对 P(yj|x) 求的,那么 P(yj|x) 之间的不同是由什么控制的呢?当然是由 fi(x,yj) 控制了。

具体的优化 α 的算法可以参考 http://blog.csdn.net/itplus/article/details/26550369 。

你可能感兴趣的:(机器学习,机器学习,最大熵模型,推导)