个人理解,难免有误
最大熵模型核心思想
0、最大熵模型:supervised learning;
1、最大熵原理认为:学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。而要想达到“熵最大”,即应在满足现有约束条件的前提下,使得那些不确定部分呈“等可能分布”,由此得出的“概率模型”即为“熵最大模型”。
通常,用约束条件来确定“概率模型”的集合,在此基础上,“最大熵原理”也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
2、最大熵模型的目标函数
“最大熵模型”要求解的东西为:给定一training data (X,Y),求在满足一定的约束条件下,使得training data的熵最大化的“条件概率模型 P(y|x)”;
最大熵模型的objective function可以表示如下:
在求得p(y|x)模型后,可以求任意test sample(X)的label值。
objective function的求解可以采用“拉格朗日函数”:
在求拉格朗日的对偶问题时:
首先,对p求导,求出p的w表示;
然后,将原拉格朗日函数中的p全部用w替代,然后,求使得拉格朗日函数最大的w值(可采用改进的迭代算法(improved iterate scaling , IIS),牛顿法,你牛顿法,gradient descent)。
最后,将求得的w值代入p(y|x)模型,即可得到p(y|x)的表示。
当预测test sample(X)的label时,只需将X代入p(y|x)模型,即可求得各个label的概率值,选取概率值最大的label作为最后的分类结果。
note that:在构建“最大熵模型”中,所使用的特征函数f(x,y)可以自定义。
最大熵模型的具体推导过程 及 优化算法
最大熵模型原理小结
最大熵模型 Maximum Entropy Model
改进的迭代尺度算法
最大熵模型的优缺点
最大熵模型在分类方法里算是比较优的模型,但是由于它的约束函数的数目一般来说会随着样本量的增大而增大,导致样本量很大的时候,对偶函数优化求解的迭代过程非常慢,scikit-learn甚至都没有最大熵模型对应的类库。但是理解它仍然很有意义,尤其是它和很多分类方法都有千丝万缕的联系。
总结下最大熵模型作为分类方法的优缺点:
- 最大熵模型的优点有:
a) 最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。
b) 可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度 - 最大熵模型的缺点有:
a) 由于约束函数数量和样本数目有关系,导致迭代过程计算量巨大,实际应用比较难。