最大熵模型
先说一下最大熵原理:保留各种可能性,不加入人为的猜想假设,也就是说当我们遇到不确定的事情,保留各种可能性,在这种情况下,预测的风险是最小的,概率分布最均匀(这个均匀是怎么回事一会说),信息熵是最大的
最大熵认为,熵最大的模型(概率分布最均匀的)模型是最好的。
比如说,明天的天气可能是,晴,雨,雪这三种,我们预测的概率都是1/3.
这是因为我们没加入主观的判断,就像现在是夏天应该不会下雪的这样的猜想。
把它们都认为是1/3这样的话,猜错的风险是最小的,信息熵最大的,概率是均匀的。
我们也可以通过公式算出,当概率均匀的时候(当不确定的部分 概率是相等的时候)熵最大。即
H(X)=−∑p(xi)log(p(xi)) (i=1,2,…,n) ,式中对数一般取2为底
继续回来刚才的列子,
显然p(雪)+p(雨)+p(晴)的概率=1 这就是个约束条件,在这个显然的约束条件下,每个概率(p(雪),p(雨),p(晴))都是难以准确预知的,它们三个可以有很多取值,但要满足约束条件,我们也说有不同的模型。
最大熵就是在满足一定约束模型的条件下,从这些模型中选择熵最大的。
接下来再举个列子,
再给定 些输入的训练数据比如{(股票,经济类),(马克思,政治类),(周杰伦,经济类),(股票,经济类),(股票,文化).....}
如果股票在经济类上出现的次数多,在文化上出现的次数少,我们认为每一个成对数据的前者为输入X,后者为输出Y
那么p(Y=经济|X=股票)>p(Y=文化|X=股票 )
那么下次出现股票的时候就给他分到经济类。
因此,我们需要求每一个分类的合理条件概率,这样就可以尽量正确的分类
如何求这样合理的条件概率呢,我们就需要最大熵模型了
由于最大熵,可以得知风险最小的概率。也就是说是最准确的,出错率小。
最大熵模型就是通过约束条件和条件熵来求得的。
因此求解最大熵模型就转化为在约束条件下最优化问题。
我们很自然的就可以想到利用拉格朗日中值定理来求解概率。
最大熵模型为:
就是条件熵H(Y|X)=Σp(x)p(y|x)log1/p(y|x) 自己推到下 没有几步
约束条件:
在这里的约束条件就是给出的训练数据中(周杰伦,经济类)是否符合事实f(x,y)=1符合事实,反之为0
我们称f(x,y)为特征函数
我们求得每个“对”出现的p(x,y)*f(x,y)的期望也即p(y|x)*p(x)*f(x,y)的期望和理论的期望相等