MIT自然语言处理第五讲:最大熵和对数线性模型

article/2025/8/15 14:44:57

MIT自然语言处理第五讲:最大熵和对数线性模型(第一部分)


自然语言处理:最大熵和对数线性模型
Natural Language Processing: Maximum Entropy and Log-linear Models 
作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
译者:我爱自然语言处理(www.52nlp.cn ,2009年4月25日)

上一讲主要内容回顾(Last time):
* 基于转换的标注器(Transformation-based tagger)
* 基于隐马尔科夫模型的标注器(HMM-based tagger)

遗留的内容(Leftovers): 
a) 词性分布(POS distribution)
 i. 在Brown语料库中按歧义程度排列的词型数目(The number of word types in Brown corpus by degree of ambiguity):
  无歧义(Unambiguous)只有1个标记: 35,340
    歧义(Ambiguous) 有2-7个标记: 4,100
                2个标记:3,764
                3个标记:264
                4个标记:61
                5个标记:12
                6个标记:2
                7个标记:1
b) 无监督的TBL(Unsupervised TBL)
 i. 初始化(Initialization):允许的词性列表(a list of allowable part of speech tags)
 ii. 转换(Transformations): 在上下文C中将一个单词的标记从χ变为Y (Change the tag of a word from χ to Y in context C, where γ ∈ χ).
  例子(Example): “From NN VBP to VBP if previous tag is NNS”
 iii. 评分标准(Scoring criterion):
  tbl

这一讲主要内容(Today):

* 最大熵模型(Maximum entropy models)
* 与对数线性模型的联系(Connection to log-linear models)
* 优化方法(Optimization methods)

一般问题描述(The General Problem):
a) 给定输入域χ(We have some input domain χ);
b) 给定标记集γ(We have some label set γ);
c) 目标(Goal):对于任何x ∈ χ 及 y ∈γ学习一个条件概率P(y|x) (learn a conditional probability P(y|x)for any x ∈ χ and y ∈ γ )。

一、 词性标注(POS tagging):

a) 例子:Our/PRP$ enemies/NNS are/VBP innovative/JJ and/CC resourceful/JJ ,/, and/CC so/RB are/VB we/PRP ?/?.
 i. 输入域(Input domain):χ是可能的“历史”(χ is the set of possible histories);
 ii. 标记集(Label set):γ是所有可能的标注标记(γ is the set of all possible tags);
 iii. 目标(Goal):学习一个条件概率P(tag|history)(learn a conditional probability P(tag|history))。
b) 表现形式(Representation):
 i. “历史”是一个4元组(t1,t2,w[1:n],i) (History is a 4-tuples (t1,t2,w[1:n],i);
 ii. t1,t2是前两个标记(t1,t2 are the previous two tags)
 iii. w[1:n]是输入句子中的n个单词(w[1:n]are the n words in the input sentence)
 iv. i 是将要被标注的单词的位置索引(i is the index of the word being tagged)
 χ是所有可能的“历史”集合(χis the set of all possible histories)

未完待续:第二部分

附:课程及课件pdf下载MIT英文网页地址:
   http://people.csail.mit.edu/regina/6881/




MIT自然语言处理第五讲:最大熵和对数线性模型(第二部分)



自然语言处理:最大熵和对数线性模型
Natural Language Processing: Maximum Entropy and Log-linear Models 
作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
译者:我爱自然语言处理(www.52nlp.cn ,2009年4月29日)

一、 词性标注(POS tagging):
c) 特征向量表示(Feature Vector Representation)
 i. 一个特征就是一个函数f(A feature is a function f ):
特征函数1
 ii. 我们有m个特征fk,k = 1…m(We have m features fk for k =1…m)
d) 词性表示(POS Representation)
 i. 对于所有的单纯/标记对的单词/标记特征,(Word/tag features for all word/tag pairs):
特征函数2
ii. 对于所有特定长度的前缀/后缀的拼写特征(Spelling features for all prefixes/suffixes of certain length):
特征函数3
iii. 上下文特征(Contextual features):
特征函数4
iv. 对于一个给定的“历史”x ∈ X ,每一个γ中的标记都被映射到一个不同的特征向量(For a given history x ∈ X, each label in γ is mapped to a different feature vector):
特征向量
v. 目标(Goal):学习一个条件概率P(tag|history)(learn a conditional probability P(tag|history)

二、 最大熵(Maximum Entropy):
a) 例子(Motivating Example):
 i. 给定约束条件:p(x, 0)+p(y, 0)=0.6,a ∈{x, y}且b ∈0, 1,估计概率分布p(a, b)(Estimate probability distribution p(a, b), given the constraint: p(x, 0) + p(y, 0) =0.6, where a ∈{x, y}and b ∈0, 1)):
       最大熵模型举例1
 ii. 满足约束条件的一种分布(One Way To Satisfy Constraints):
       最大熵模型举例2
 iii. 满足约束条件的另一种分布(Another Way To Satisfy Constraints):
       最大熵模型举例3
b) 最大熵模型(Maximum Entropy Modeling)
 i. 给定一个训练样本集,我们希望寻找一个分布符合如下两个条件(Given a set of training examples, we wish to find a distribution which):
  1. 满足已知的约束条件(satisfies the input constraints)
  2. 最大化其不确定性(maximizes the uncertainty)
 ii. 补充:
  最大熵原理是在1957 年由E.T.Jaynes 提出的,其主要思想是,在只掌握关于未知分布的部分知识时,应该选取符合这些知识但熵值最大的概率分布。因为在这种情况下,符合已知知识的概率分布可能不止一个。我们知道,熵定义的实际上是一个随机变量的不确定性,熵最大的时侯,说明随机变量最不确定,换句话说,也就是随机变量最随机,对其行为做准确预测最困难。从这个意义上讲,那么最大熵原理的实质就是,在已知部分知识的前提下,关于未知分布最合理的推断就是符合已知知识最不确定或最随机的推断,这是我们可以作出的唯一不偏不倚的选择,任何其它的选择都意味着我们增加了其它的约束和假设,这些约束和假设根据我们掌握的信息无法做出。(这一段转自北大常宝宝老师的《自然语言处理的最大熵模型》)

未完待续:第三部分

附:课程及课件pdf下载MIT英文网页地址:
   http://people.csail.mit.edu/regina/6881/



MIT自然语言处理第五讲:最大熵和对数线性模型(第三部分)



自然语言处理:最大熵和对数线性模型
Natural Language Processing: Maximum Entropy and Log-linear Models 
作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
译者:我爱自然语言处理(www.52nlp.cn ,2009年5月5日)

二、 最大熵(Maximum Entropy):
b) 最大熵模型(Maximum Entropy Modeling)
 iii. 约束条件(Constraint):
  每个特征的观察样本期望值与特征模型期望值相一致(observed expectation of each feature has to be the same as the model’s expectation of the feature):
  最大熵模型约束条件
 iv. 最大熵原理(Principle of Maximum Entropy):
  将已知事实作为制约条件,求得可使熵最大化的概率分布作为正确的概率分布:
     最大熵模型原理
 v. 补充:
  自然语言处理中很多问题都可以归结为统计分类问题,很多机器学习方法在这里都能找到应用,在自然语言处理中,统计分类表现在要估计类a 和某上下文b 共现的概率P(a,b) ,不同的问题,类a 和上下文b 的内容和含义也不相同。在词性标注中是类的含义是词性标注集中的词类标记,而上下文指的是当前被处理的词前面一个词及词类,后面一个词及词类或前后若干个词和词类。通常上下文有时是词,有时是词类标记,有时是历史决策等等。大规模语料库中通常包含a 和b 的共现信息,但b 在语料库中的出现常常是稀疏的,要对所有可能的(a,b)计算出可靠的P(a,b) ,语料库规模往往总是不够的。问题是要发现一个方法,利用这个方法在数据稀疏的条件下可靠的估计P(a,b) 。不同的方法可能采用不同的估计方法。
  最大熵模型的优点是:在建模时,试验者只需要集中精力选择特征,而不需要花费精力考虑如何使用这些特征。而且可以很灵活地选择特征,使用各种不同类型的特征,特征容易更换。利用最大熵建模,一般也不需要做在其它方法建模中常常使用的独立性假设,参数平滑可以通过特征选择的方式加以考虑,无需专门使用常规平滑算法单独考虑,当然也不排除使用经典平滑算法进行平滑。每个特征对概率分布的贡献则由参数α决定,该参数可以通过一定的算法迭代训练得到。
(注:以上两段转自北大常宝宝老师的《自然语言处理的最大熵模型》)

三、 最大熵模型详述
a) 概要(Outline)
 i. 我们将首先证明(We will first show that)满足上述条件的概率分布p*具有如下的形式:
     概览分布P
 其中pi是一个归一化常数,α是模型参数(where pi is a normalization constant and the α’s are the model parameters)
 ii. 然后我们将考虑搜寻α的参数估计过程(Then, we will consider an estimation procedure for finding the α’s)
b) 数学符号表示(Notations)
 i. χ是可能的“历史”集(χis the set of possible histories)
 ii. γ是所有可能的标记集(γ is the set of all possible tags)
 iii. S是事件训练样本集(S finite training sample of events)
 iv. p’(x)是S中x的观察概率(p’(x)observed probability of x in S)
 v. p(x)是x的模型概率(p(x) the model’s probability of x)
 vi. 其它符号公式定义如下:
    数学符号表示

未完待续:第四部分

附:课程及课件pdf下载MIT英文网页地址:
   http://people.csail.mit.edu/regina/6881/


MIT自然语言处理第五讲:最大熵和对数线性模型(第四部分)



自然语言处理:最大熵和对数线性模型
Natural Language Processing: Maximum Entropy and Log-linear Models 
作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
译者:我爱自然语言处理(www.52nlp.cn ,2009年5月9日)

三、 最大熵模型详述
c) 相对熵(Kullback-Liebler距离)(Relative Entropy (Kullback-Liebler Distance))
 i. 定义(Definition):两个概率分布p和q的相对熵D由下式给出(The relative entropy D between two probability distributions p and q is given by)
      相对熵定义
 ii. 引理1(Lemma 1):对于任意两个概率分布p和q,D(p, q)≥0 且 D(p, q)=0 当且仅当p=q(For any two probability distributions p and q, D(p, q)≥ 0, and D(p, q)=0 if and only if p =q)
 iii. 引理2(毕达哥拉斯性质)(Lemma 2 (Pythagorean Property)):若p∈P,q∈Q,p*∈P∩Q,则D(p, q) = D(p, p*) + D(p*, q) (If p ∈P and q ∈ Q, and p*∈P∩Q, then D(p, q) = D(p, p*) + D(p*, q))
 注:证明请参看MIT NLP 的lec5.pdf英文讲稿;
d) 最大熵解(The Maximum Entropy Solution)
 i. 定理1(Theorem 1):若p*∈P∩Q,则p* = argmax_{p in P}H(p) ,且p*唯一(If p∗∈P ∩Q then p* = argmax_{p in P}H(p). Furthermore, p* is unique)
注:证明请参看min nlp原讲稿,主要运用引理1和引理2得出。
e) 最大似然解(The Maximum Likelihood Solution)
 i. 定理2(Theorem 2):若p*∈P∩Q,则p* = argmax_{q in Q}L(q) ,且p*唯一(If p∗∈P ∩Q then p* = argmax_{q in Q}L(q). Furthermore, p* is unique)
注:证明请参看min nlp原讲稿,主要运用引理1和引理2得出。
f) 对偶定理(Duality Theorem)
 i. 存在一个唯一分布p*(There is a unique distribution p*)
  1. p*∈ P ∩ Q
  2. p* = argmax_{p in P}H(p) (最大熵解(Max-ent solution))
  3. p* = argmax_{q in Q}L(q) (最大似然解(Max-likelihood solution))
 ii. 结论(Implications):
  1. 最大熵解可以写成对数线性形式(The maximum entropy solution can be written in log-linear form)
  2. 求出最大似然解同样给出了最大熵解(Finding the maximum-likelihood solution also gives the maximum entropy solution)

未完待续…

附:课程及课件pdf下载MIT英文网页地址:
   http://people.csail.mit.edu/regina/6881/



MIT自然语言处理第五讲:最大熵和对数线性模型(第五部分)



自然语言处理:最大熵和对数线性模型
Natural Language Processing: Maximum Entropy and Log-linear Models 
作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
译者:我爱自然语言处理(www.52nlp.cn ,2009年5月14日)

三、 最大熵模型详述
g) GIS算法(Generative Iterative Scaling)
 i. 背景:
  最原始的最大熵模型的训练方法是一种称为通用迭代算法GIS (generalized iterative scaling) 的迭代算法。GIS 的原理并不复杂,大致可以概括为以下几个步骤:
  1. 假定第零次迭代的初始模型为等概率的均匀分布。
  2. 用第 N 次迭代的模型来估算每种信息特征在训练数据中的分布,如果超过了实际的,就把相应的模型参数变小;否则,将它们变大。
  3. 重复步骤 2 直到收敛。
  GIS 最早是由 Darroch 和 Ratcliff 在七十年代提出的。但是,这两人没有能对这种算法的物理含义进行很好地解释。后来是由数学家希萨(Csiszar) 解释清楚的,因此,人们在谈到这个算法时,总是同时引用 Darroch 和Ratcliff 以及希萨的两篇论文。GIS 算法每次迭代的时间都很长,需要迭代很多次才能收敛,而且不太稳定,即使在 64 位计算机上都会出现溢出。因此,在实际应用中很少有人真正使用 GIS。大家只是通过它来了解最大熵模型的算法。
  八十年代,很有天才的孪生兄弟的达拉皮垂(Della Pietra)在 IBM 对 GIS 算法进行了两方面的改进,提出了改进迭代算法 IIS(improved iterative scaling)。这使得最大熵模型的训练时间缩短了一到两个数量级。这样最大熵模型才有可能变得实用。即使如此,在当时也只有 IBM 有条件是用最大熵模型。(以上摘自Google吴军《数学之美系列16》)
 ii. 目标(Goal):寻找遵循如下约束条件的此种形式pi prod{j=1}{k}{{alpha_j}^{f_j}(x)}的分布(Find distribution of the form pi prod{j=1}{k}{{alpha_j}^{f_j}(x)}that obeys the following constraints):
          E_p f_j = E_{p prime}{f_j} 
 iii. GIS约束条件(GIS constraints):
   1、gis约束1
  其中C是一个常数(where C is a constant (add correctional feature))
   2、gis约束2 
 iv. 定理(Theorem):下面的过程将收敛到p*∈P∩Q(The following procedure will converge to p*∈P∩Q):
     gis定理1
  gis定理2 
 v. 计算量(Computation)
  gis计算量1 
  其中S={(a1,b1),…,(aN,bN)}是训练样本(where S is a training sample)
  gis计算量2 
  因为有太多可能的(a,b),为了减少计算量,因而采用下面的公式近似计算:
  gis计算量3 
  时间复杂度(Running time):O(NPA)
  其中N训练集规模,P是预期数,A是对于给定事件(a,b)活跃特征的平均数(where N is the training set size, P is the number of predictions, and A is the average number of features that are active for a given event (a,b))

四、 最大熵分类器(ME classifiers)
a) 可以处理很多特征(Can handle lots of features)
b) 存在数据稀疏问题(Sparsity is an issue)
 i. 应用平滑算法和特征选择方法解决(apply smoothing and feature selection)
c) 特征交互(Feature interaction)?
 i. 最大熵分类器并没有假设特征是独立的(ME classifiers do not assume feature independence)
 ii. 然而,它们也没有明显的模型特征交互(However, they do not explicitly model feature interaction)

五、 总结(Summary)
 a) 条件概率建模与对数线性模型(Modeling conditional probabilities with log-linear models)
 b) 对数线性模型的最大熵性质(Maximum-entropy properties of log-linear models)
 c) 通过迭代缩放进行优化(Optimization via iterative scaling)

一些实现的最大熵工具(Some implementations):
  http://nlp.stanford.edu/downloads/classifier.shtml
  http://maxent.sourceforge.net

第五讲结束!

附:课程及课件pdf下载MIT英文网页地址:
   http://people.csail.mit.edu/regina/6881/



http://chatgpt.dhexx.cn/article/kwuKgttl.shtml

相关文章

机器学习教程 之 线性模型:线性回归、对数几率回归、线性判别分析

常用的三个线性模型的原理及python实现——线性回归(Linear Regression)、对数几率回归(Logostic Regression)、线性判别分析(Linear Discriminant)。 这可能会是对线性模型介绍最全面的博客 文章目录 一、…

机器学习(二)线性模型——线性回归、对数几率回归、线性判别分析

一、线性回归 线性回归(linear regression:试图学得一个线性模型以尽可能准确地预测实值输出标记。 1.最简单的形式:输入属性的数且只有一个, 最小二乘法:基于均方差误差最小化来进行模型的求解,在线性回…

对数线性模型:逻辑斯谛回归和最大熵模型

http://blog.csdn.net/pipisorry/article/details/52788947 对数线性模型log linear model 对数线性模型有:最大熵模型和逻辑斯谛回归。 特征和指示特征 对数线性模型的一般形式 [概率图模型原理与技术] 某小皮 对数线性模型的不同形式 因子图 将因子转换到对…

从线性到非线性模型-对数线性模型

从线性到非线性模型 1、线性回归,岭回归,Lasso回归,局部加权线性回归 2、logistic回归,softmax回归,最大熵模型 3、广义线性模型 4、Fisher线性判别和线性感知机 5、三层神经网络 6、支持向量机 code: https://…

论文总结3 对数线性模型 罗盛

研究变量之间的相互关系、列联表、对应分析 目录 一、模型介绍 二、比较-对数线性模型&对应分析 1.相同&不同 2.相互关系 三、应用实例 1.模型确立 2.列因素&因子负荷 四、总结经验 一、模型介绍 列联表分析无法系统地评价变量间的联系,无法…

对数线性模型之一(逻辑回归), 广义线性模型学习总结

经典线性模型自变量的线性预测就是因变量的估计值。 广义线性模型:自变量的线性预测的函数是因变量的估计值。常见的广义线性模型有:probit模型、poisson模型、对数线性模型等等。对数线性模型里有:logistic regression、Maxinum entropy。本篇是对逻辑回归的学习总结,以及…

机器学习篇——对数线性模型

建议首先看cs229讲的广义线性模型、exponential family(指数分布族) 对数线性模型包括逻辑回归、最大熵模型和条件随机场等 1、模型 条件概率分布(对数线性模型、概率模型)、判别模型 逻辑回归: 概率分布可由广…

对数线性模型(Logistic回归算法)

1.Logistic分布: logistic分布定义:设X是连续随机变量,X服从logistic分布,即为X具有下列分布函数和密度函数: 其中,mu为位置参数,r>0为形状参数; logistic分布的分布函数F(x)的…

Log-Linear Models

一,简介 引入 对数线性模型被广泛应用于NLP中,对数线性模型的一个关键优点在于它的灵活性:它允许非常丰富的特征集合被用于模型中。常见的对数线性模型有Logistic回归、最大熵模型、MEMMs和CRFs等。 目的 1,Trigram LM Trigr…

Android getText(int resId)和getString(int resId)

Android提供多种获取资源文件方法&#xff0c;但是需要注意以下方法&#xff1a; CharSequence getText(int resId)&#xff1a;返回本地、样式化的字符。 String getString(int resId) &#xff1a;返回字符串 比如&#xff1a; String.xml文件中定义资源文件&#xff1a; <…

Resid

关于Resid服务器闪退问题&#xff0c;导致客户端&#xff1a;Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝无法连接解决方案。 前言&#xff1a;最近在整理计算机文档时发现过去学习过程中自己出现bug和解决办法&#xff0c;就整理一下发到个人博客…

redis05-Resid数据类型综合实践案例

Resid数据类型综合实践案例 业务场景 1.计数器 解决方案 设计计数器&#xff0c;记录调用次数&#xff0c;用于控制业务执行次数。以用户id作为key,使用此时作为value在调用前获取次数&#xff0c;判断是否超过限定次数&#xff0c;不超过次数的情况下&#xff0c;每次调用计…

ResDrawableImgUtil【根据图片名称获取resID值或者Bitmap对象】

版权声明&#xff1a;本文为HaiyuKing原创文章&#xff0c;转载请注明出处&#xff01; 前言 根据图片名称获取项目的res/drawable-xxdhpi中相应资源的ID值以及bitmap值的封装类。 效果图 代码分析 根据图片名称获取图片的resID值有两个方案&#xff0c;选其一即可。 使用步骤 …

Android - Context中的getText(int resId)方法和getString(int resId)方法的区别

Android开发中&#xff0c;经常在Activity中使用getText(int resId)和getString(int resId)这两个方法&#xff0c;那么这两个方法有什么区别和联系呢&#xff1f; 这两个方法的参数都是资源ID&#xff0c;区别在于getText(int resId)返回的是一个CharSequence&#xff0c;而ge…

Resources类中getString (int ResID)与getText (int ResID)的区别

Resources类中getString (int ResID)与getText (int ResID)的区别 getString (int ResID)和getText (int ResID)都是Resources类中方法&#xff0c;都是获取资源文件中的字符串资料。 getString (int ResID)&#xff1a;是获得资源文件的字符串资源&#xff08;XML文件中Strin…

【Redis】5. Resid数据类型综合实践案例

Resid数据类型综合实践案例 业务场景 1.计数器 解决方案 设计计数器&#xff0c;记录调用次数&#xff0c;用于控制业务执行次数。以用户id作为key,使用此时作为value在调用前获取次数&#xff0c;判断是否超过限定次数&#xff0c;不超过次数的情况下&#xff0c;每次调用计…

springboot打成jar后获取resources下文件失败, cannot be resolved to absolute file path because it does not resid

读取resources下的文件quotaShow.jasper 本地开发环境能正常下载&#xff1a; ClassPathResource resource new ClassPathResource("jasper" File.separator "quotaShow.jasper"); reportFile resource.getFile(); 打jar包发布至linux服务器时报错&am…

Resid作为缓存可能遇到的问题

1.缓存的执行流程 前台请求&#xff0c;后台先从缓存中取数据&#xff0c;取到直接返回结果&#xff0c;取不到时从数据库中取&#xff0c;数据库取到更新缓存&#xff0c;并返回结果&#xff0c;数据库也没取到&#xff0c;那直接返回空结果。 [外链图片转存失败,源站可能有…

动态修改android中的资源索引resId

目录 一、引言 1、为什么要动态修改资源索引 2、怎么修改资源索引 3、什么时候修改 二、处理Task及R文件 1、处理Task 2、修改R文件 三、处理编译后的二进制文件 1、编译后的文件在哪&#xff1f; 2、解压、压缩AP_文件 3、修改resources.arsc文件的pkgId 4、修改Xm…

Redis安装(Windows环境)

文章目录 一、Resid简介&#xff1a;二、下载Redis三、启动Redis服务四、设置Windows服务五、常用的Redis服务命令六、cmd启动服务&#xff1a;七、操作测试Redis 一、Resid简介&#xff1a; Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分…