最大熵模型
物理学术语
最大熵模型是统计学和机器学习中的一种方法,通过最大化熵(不确定性)来估计概率分布,用于预测和决策,旨在在最不确定的假设下做出决策。
模型介绍
“熵”最初是热力学中的一个概念,上世纪40年代,香农首先在信息论中引入了信息熵的概念。信息熵用来表示不确定度的度量,不确定度越大,熵值越大。极限情况,当一个随机变量均匀分布时,熵值最大;完全确定时,熵值为0
一次系统提出最大熵的原理的一般认为是Jaynes,后来有人提出了相应的算法来估计对应的统计模型的参数。由于当时计算条件的限制,最大熵模型在人工智能和自然语言处理领域都没有得到广泛应用。上世纪90年代,IBM的研究员应用重新深入的研究了这个问题,系统地描述了条件最大熵的框架和实现算法,并在自然语言处理任务上取得了非常好的效果,引起了人们的重视。很快条件最大熵模型技术得到了广泛的传播,在自然语言处理的各个领域都取得了巨大的成功,在此基础上的一些深入研究工作也不断展开。最大熵模型已经成为近年来自然语言处理领域最成功的机器学习方法。
假设我们的分类任务或者预测任务的类别为y,而我们能够依据的上下文信息记为x。我们希望在不同的给定的上下文x条件下,统计模型能够给出判为不同类别y的概率值。因此,我们希望能够建立一种区分性的条件概率模型(注意,我们这里仍然用了的表示形式,但是此处的意义表示的是整个的概率分布,也不再表示具体的实例)。我们用来表示所有这种条件概率模型的集合,而我们期望得到的模型就是中的一种。所谓的条件最大熵模型,就是在一定约束下条件熵最大的模型。
所谓的约束,也就是我们已知的信息,可以认为我们希望模型在这些信息上能和训练数据匹配。而熵最大,则表明除约束外,我们不再做未知的假设。在条件最大熵模型中,约束是通过特征的形式来体现的。这里的特征和语音识别等领域的特征有所不同,它表示成和的函数的形式,表示了x的某种属性和y的共现情况。特征函数理论上可以取任何实数值(早期因为训练算法的原因只能取正值),在自然语言处理领域一般表示为0-1的指示函数的形式,例如:
我们定义特征函数f的经验期望如下:
表示样本在训练语料中出现的经验概率
而特征函数f的模型期望为:
最大熵模型的约束就是使得任意特征的经验期望和模型期望相等:
我们认为我们定义的特征集合描述了训练样本的信息,而我们的模型在这些信息的层面上和训练数据保持了一致。
我们将满足这些约束的条件概率的中的一个子集定义为,而条件熵的定义为:
那我们需要得到的就是在中条件熵最大的模型p:
根据概率公式的定义,我们还有另外一个约束:
那么和构成了一个约束最优化问题,可以用拉格朗日乘子法来计算:
可以解得模型p的形式为:
这就是条件最大熵模型的形式,而对应的
这里的拉格朗日乘子相当于特征的权重,为了以后讨论的方便,换用表示:
如果已知模型是上式的形式,那么在训练数据上的log似然值为:
通过上式我们可以发现,通过最大似然求解最优权将和的结果是一样的。也就是说在约束下的条件熵最大的模型也就是具有形式且使得在训练数据上似然值最大的模型。
训练算法
虽然使得最大的*是我们的最优权值解,但是式子却没有一个直接的数值解,但是幸运的是,具有凸函数的性质,因此我们想求得最优的,只需要使得:
而通过计算我们可以得到:
恰好就是上文所提的约束条件。在设定的权值参数下,似然值的梯度是容易计算的。因此权值参数估计的方法可以通过基于梯度的数值优化算法进行,比如共轭梯度(Conjugate Gradient, CG),拟牛顿方法(quasi-Newton)等等。目前最常用的是一种称为L-BFGS的拟牛顿方法(limited memory BFGS),它在优化性能和速度上都表现良好,特别是相对于早期的以前基于迭代缩放的IIS(improved iterative scaling)、GIS(generalized iterative scaling)最大熵模型参数估计方法优势明显。
正则化
采用最大似然方法训练出的最大熵模型能够在训练数据上表现良好,但是不一定在未知数据上具有好的推广性。特别是出现在参数数量巨大而训练数据又不是很充足的情况下。一种解决方案是设立一定数量的开发集,当在开发集上性能下降时停止训练。但是这并不是一个很好的策略,因为可能暂时的下降之后还会上升。
另一种思路就是在优化目标上改变,可以增加关于参数的先验知识,也被称为一种“正则化”的策略。设定我们的参数集为w,训练样本集合为D,那么根据贝叶斯公式有:
其中,成为给定D下参数w的后验,成为w在D上的似然,称为w的先验。最大似然轨迹其实就是假设w的先验为均匀分布,直接最大化似然就可以了。
而我们可以通过假设一个先验分布,来防止有些权值被过训练,一个常用的分布就是高斯分布
参考资料
最新修订时间:2024-11-17 23:51
目录
概述
模型介绍
参考资料