1 基本思想
先说说熵的定义,假设我们有随机变量 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)=∑