最大熵模型
最大熵模型
熵的概念
熵度量了事物的不确定性,越不确定的事物,它的熵越大,表示如下:
n代表X的n种不同离散取值,而\(p_i\)代表了X取值为i的概率。
多个变量联合熵表示为
条件熵的表达H(Y|X)表示如下:
可以按式(1)顺序推导证明,注意区别熵H和概率P,条件熵的定义可以理解为在X划分下,Y的纯度。
同时可以证明
最大熵模型的定义
最大熵模型是一个条件概率分布\(P(Y|X)\),X为特征,Y为输出。
给定一个训练集\((x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\),其中x为n维向量,y为类别输出,我们的目标是用最大熵模型选择一个最好的分类类型。
给定训练集情况下,使用联合分布\(P(X,Y)\)的经验分布\(\overline P(X,Y)\)和边缘分布\(P(X)\)的经验分布\(\overline P(X)\),\(\overline P(X,Y)\)即为训练集X,Y同时出现的次数除以样本总数m,\(\overline P(X)\)即为训练集中X出现的次数除以样本总数m。
用特征函数\(f(x,y)\)描述输入x和输出y之间的关系,定义为:
可以认为只要出现在训练集中出现的\((x^{(i)},y^{(i)})\)其\(f(x^{(i)},y^{(i)})=1\),同一个训练样本可以有多个约束特征函数。
特征函数\(f(x,y)\)关于经验分布\(\overline P(X,Y)\)的期望值,用\(E_{\overline P}(f)\)表示为:
特征函数\(f(x,y)\)关于条件分布\(P(Y|X)\)和经验分布\(\overline P(X)\)的期望值,用\(E_P(f)\)表示为:
如果模型可以从训练集中学习,我们可以假设这两个期望相等,即
以上就是最大熵模型学习的约束条件,假如我们有M个特征函数\(f_i(x,y)(i=1,2,...,M)\)就要M个约束条件,可以理解我们如果训练集有m个样本,就有和这m个样本对应的M个约束条件。
这样我们就得到了最大熵模型的定义如下:
假设满足所有约束条件的模型集体为:
定义在条件概率分布$P(Y|X)上的条件熵为
我们的目标是得到使\(H(P)\)最大的时候对应的\(P(y|x)\),这里对\(H(P)\)加一个负号,方便优化求解。
最大熵模型损失函数的优化
定义最大熵模型的损失函数\(-H(P)\)如下:
求解过程使用了拉格朗日乘子,过程略。。。。
最大熵模型总结
越确定的情况,不确定性越小,信息量越少;
不确定的情况,不确定性越大,信息量越大。
信息增益越大,消除了更多的不确定性,越适合做分类特征。
最大熵模型优点:
- 获得满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。
- 可以灵活设置约束条件,来调节模型对未知数据的拟合成度。
最大熵模型缺点:
- 约束条件与样本数量有关,导致迭代过程计算量巨大。实际应用较难。