追根究底 - 最大熵模型

什么是熵

熵在统计物理中用于度量一个热力学系统的无序程度。热力学第二定律,又称“熵增 定律”,表明了在自然过程中,一个孤立系统的总混乱度(即“熵”)不会减小,在信息论中,熵被用来衡量一个随机变量出现的期望值。它代表了在被接收乊前,信 号传输过程中损失的信息量,又被称为信息熵。信息熵也称信源熵、平均自信息量。 在1948年,香农将热力学的熵,引入到信息论,因此它又被称为香农熵。

最大熵模型 - 概念初识

最大熵模型核心的概念是迭代计算一个分布,是的分布在满足已知的约束的情况下,使得分布的熵达到最大。使用数学公式将熵计算表达式写出来,最大化就是求这个式子的最大值,通过迭代计算将里面的一系列参数都能估算出来,背后的原理就是统计物理学里面的熵增原理,就是说当一个系统不清楚他的状态的时候,总是选择一种分布,使得他的熵是最大的。

最大熵模型 - 简单举例

假设有a和b两个随机变量,a的取值是x和y,b这个变量的取值是0或者1,现在唯一知道的就是两个变量的取值。

第一个约束是四个概率加起来等于1。

第二个约束是b=0的时候,竖方向的概率加起来是0.6。

如果仅仅只是满足上面的约束,上面就是可能的解,但是上面的解并不能是整个模型的熵最大。

上面的解就不仅能满足约束条件,同时使得模型的熵最大。

当约束条件非常多的时候,整个模型的参数分布将变的非常复杂。

使用数学公式描述最大熵模型

上面的公式,相比一眼看去肯定懵逼了,下面使用一个简单的例子来对这些公式进行讲解。

假设我们有一些数据样本,数据样本有两个特征,一个特征是a,a的取值是x和y,b的取值是0和1,如下取值。

(x,1),(y,1),(x,0),(y,1),(y,0),(x,0),(x,0),(x,1),(y,0),(x,0)

 01
x0.40.2
y0.20.2

这样就能将上面的这些算法写成一个表格中,(X,0)出现4次就是0.4,(X,1)出现2次是0.2。

假如现在关心的是b=0的概率是多少,我关系的取值组合并不是平等的,我特别关心某一种取值的可能情况,比如金融分析中,突然加减息,所以我认为这个特征对股市有很大的影响,这些是重点需要考虑的特征,像是不是下雨,这些特征可以认为对股市没有特别的影响,或许还不知道有什么影响,也可能没有影响,这些不清楚的特征就不需要关心如何体现不关心呢,就对他不做约束,仅仅使得熵取值最大就可以了,我关心的东西一定要满足我的要求,我不关心的可以任取,但是任取前提是必须使得总体的熵最大,这个就是这里的这个思想,怎么描述我们要关心什么东西呢

 

通过特征函数来体现对特征的关系,特征函数就是一个二值的取值的函数,某种条件下等于1,特征函数就相当于是在联合分布里面我特别关注那些东西,如果关注第一列,b=0.如果不是特别关注第一列的话,b就不是等于0,等于1,如果关注第一行的话就是a=x,如果关注的是左上角的话就是a=x,b=0,反正无论如何要描述的那些是你特别关系的,总是可以通过改写条件得到,所以特征函数描述的是我们关心什么,最大熵就是我们关心的部分应该满足什么,关心的部分加起来满足定义的约束,加起来等于0.8或者0.7等等,在考虑最大熵问题的时候这个特征可以不止一个,可以是很多个,有些特征可能关系第一列,有些可能关心某一个元素,这样也是可以的,这样成为特征函数。

 

上述公式中,使用fj来描述特征函数,,在刚才的样本情况下不同的约束就不一样了, 三个式子表达的意思就是说将来我求出来的概率分布,在约束向上需要和样本计算出来的相同,比如说有特征函数,那么求出的分布在b=1的情况下需要等于0.6,因为样本在b=0的情况下计算出来的概率和为0.6,,因为样本中计算出来b=0占总的样本个数是0.6,就是这个意思,p是我们需要要推算的,表达的就是这个约束,因为j有很多个,所以这种约束也有很多个。

就是特征函数为1的几个特征期望要和样本相同,其他的按照能使熵最大的分布计算。

总结:是样本计算出来的概率分布,符合特征函数的预测概率应该满足真实样本,特征函数使得只有一部分样本是我需要的,并将这些样本挑选出来约束预测概率分布。

最大熵模型参数计算

以上就大致介绍了最大熵模型大致形状,但是如何通过将里面的参数计算出来呢,下面简单介绍一下迭代思想。

迭代的目的,希望找到一个p(也就是计算出来的分布)使得H(p)达到最大,并且满足约束,这个就是我们希望的到的分布。

A : 表示刚才的特征b

B : 表示上文中的特征b  (在自然语言中可以表示成为是不是大写,是不是英文字符等等)

:A和B的笛卡尔积

S : 抽取的样本

 : 真是的样本计算出来的概率分布

 : 最大熵模型推导的概率分布

fj : 约束所在位置的特征函数

P : 满足约束条件的所有概率分布

Q :  表示满足指数分布的概率分布,αj是一个常数,每一个特征函数对应一个αj,因为概率分布要求是1,所以前面要除以一个归一化因子π,αj确定了,π就确定了,最大熵模型的解一定可以写成指数族的形式,求解出αj就可以了,可以通过样本训练出来,从这个式子中可以看出,对于取到的特征族,满足该特征函数的情况下,才会对最后的结果产生影响,特征组满足多个特征函数,最后的结果就是由这些特征函数对应的αj影响的,后面的计算中,特征函数被不同的特征组满足的越多,这个特征函数对应的αj就越大,对应的当预测一个特征组的概率的时候,如果这个特征组满足这个特征函数的话,就会得到更大的概率,这个对理解后续的CRF算法很有帮助。

 

引理1:对于分布P和Q,KL距离一定大于0,当且仅当P和Q相等的时候,KL距离等于0。

定理1:如果一个分布满足P∩Q(P和Q的解释如上),就是说首先满足我们的条件,并且是指数族的形式,那么这个模型一定就是最大熵模型的解。

剩下的问题就是使用算法来迭代求解指数族分布中的参数αj,求出αj,整个模型的概率分布也就求出来了,使用GIS算法来求解模型里面的参数。

首先使得所有的特征函数加起来等于C,如果不满足就构造纠正函数fi使得接受这个想法,可以证明对结果计算没有影响,这里的C=1。

1、将所有的αj初始化为1,也就是说刚开始的时候所有的概率是一样的,这样的熵最大,之后逐渐将特征函数加上去,

2、不停地迭代第n次迭代的预测概率分布在约束fj下计算得到的期望,样本概率分布在约束fj下计算得到的期望,开C次方,也就是说第n次计算出来的结果比真实的样本分布概率大的话就缩小αj,从而使得预测概率减小,第n次计算出来的结果比真实的样本分布概率大小的话就增大αj,从而使得预测概率增大,从而接近真实样本。

3、最后计算相应的归一化因子π,因为当αj计算出来之后,就能知道总的数值大小,加起来就是π相除的话,所有的特征组的概率和就是1。

这样整个最大熵模型就完全得到了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最大熵模型(MaxEnt,Maximum Entropy Model)是一种用于分类和回归的统计模型。它的核心思想是,在给定一些已知约束条件下,选择一种概率分布,使得该分布在未知的部分尽可能的均匀。最大熵模型的名称来源于信息论中的熵的概念。 最大熵模型可以应用于多种领域,比如自然语言处理、文本分类、图像识别等。在自然语言处理中,最大熵模型可用于解决词性标注、命名实体识别和情感分析等问题。 最大熵模型主要有以下特点: 1. 非参数化模型:最大熵模型不对概率分布做出过多的假设,可以在给定约束条件下找到唯一的概率分布。 2. 最大化熵:在给定约束条件下,选择具备最大熵的概率分布。这是因为最大熵的分布是最均匀的,对未知的部分缺乏偏见。 3. 使用拉格朗日乘子法:通过引入拉格朗日乘子,将约束条件转化为优化问题,求解最大熵模型的参数。 根据最大熵原理,最大熵模型可以用来进行分类和回归任务。通过对已知数据进行特征提取和约束条件的定义,可以得到最大熵模型的参数。在预测阶段,根据数据的特征,计算出类别的概率,并选择概率最大的类别作为预测结果。 最大熵模型相对于其他分类模型,具备更好的泛化能力和适应能力。它可以灵活地兼容多种特征和约束条件,适用于不同的问题和数据。然而,最大熵模型的训练过程相对较复杂,需要根据具体问题选择合适的特征和约束条件,并进行参数优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值