最大熵模型 与 自然语言处理 MaxEnt Model & NLP   laputa [email_address] NLP Group, AI Lab, Tsinghua Univ.
Topics <ul><li>NLP 与随机过程的关系(背景) </li></ul><ul><li>最大熵模型的介绍 ( 熵的定义 、 最大熵模型 ) </li></ul><ul><li>最大熵模型的解决 ( 非线性规划 、 对偶问题 、 最大...
NLP 与随机过程 <ul><li>NLP: 已知一段文字: x 1 x 2 …x n ( n 个词) </li></ul><ul><li>标注词性 y 1 y 2 …y n </li></ul><ul><li>标注过程:  </li></ul...
NLP 与随机过程 <ul><li>y i 可能有多种取值, y i 被标注为 a 的概率有多少 ? </li></ul><ul><li>随机过程:一个随机变量的序列。 </li></ul>x 1 x 2 …x n p(y 1 =a|x 1 x...
NLP 与随机过程 <ul><li>问题: </li></ul><ul><li>p(y i =a|x 1 x 2 …x n  y 1 y 2 …y i-1 ) 怎么求 ? </li></ul><ul><li>y i 与 x 1 x 2 …x n...
NLP 与随机过程 <ul><li>问题: </li></ul><ul><li>p(y i =a|x 1 x 2 …x n  y 1 y 2 …y i-1 ) 怎么求 ? </li></ul><ul><li>y i 与 x 1 x 2 …x n...
What’s Entropy? <ul><li>An Example : </li></ul><ul><li>假设有 5 个硬币: 1,2,3,4,5 ,其中一个是假的,比其他的硬币轻。有一个天平,天平每次能比较两堆硬币,得出的结果可能是以下三...
称硬币 (cont.) <ul><li>答案: 2 次 </li></ul><ul><li>一种方法: </li></ul><ul><li>Why 最少 2 次 ? </li></ul>
称硬币 (cont.) <ul><li>Let: x 是假硬币的序号: </li></ul><ul><li>Let: y i 是第 i 次使用天平所得到的结果: </li></ul><ul><li>用天平称 n 次,获得的结果是: y 1  y...
称硬币 (cont.) <ul><li>Let: x 是假硬币的序号: </li></ul><ul><li>Let: Y i 是第 i 次使用天平所得到的结果: </li></ul><ul><li>用 y 1  y 2 … y n 表达 x 。...
称硬币 (cont.) <ul><li>Why??? </li></ul><ul><li>为什么用 log? </li></ul><ul><li>“ 表达能力”与“不确定度”的关系? </li></ul>
称硬币 (cont.) <ul><li>为什么用 log? </li></ul><ul><li>假设一个 Y 的表达能力是 H(Y) 。显然, H(Y) 与 Y 的具体内容无关,只与 |Y| 有关。 </li></ul><ul><li>两个 Y...
称硬币 (cont.) <ul><li>“ 表达能力”与“不确定度”的关系? </li></ul><ul><li>都表达了一个变量所能变化的程度。在这个变量是用来表示别的变量的时候,这个程度是表达能力。在这个变量是被表示变量的时候,这个程度是不...
称硬币 -Version.2 <ul><li>假设有 5 个硬币: 1,2,3,…5 ,其中一个是假的,比其他的硬币轻。 已知第一个硬币是假硬币的概率是三分之一;第二个硬币是假硬币的概率也是三分之一,其他硬币是假硬币的概率都是九分之一。 </l...
称硬币 -Version.2 <ul><li>因为第一个、第二个硬币是假硬币的概率是三分之一,比其他硬币的概率大,我们首先“怀疑”这两个。第一次可以把这两个做比较。成功的概率是三分之二。失败的概率是三分之一。如果失败了,第二次称剩下的三个。所以...
称硬币 -Version.2 <ul><li>《数据结构》: Huffman 编码问题。 </li></ul>
称硬币 -Version.2 <ul><li>《数据结构》: Huffman 编码问题。 </li></ul>
称硬币 -Version.2 <ul><li>《数据结构》: Huffman 编码问题。 </li></ul>用反证法可以证明,这个是最小值。 (假设第一个和第二个硬币中有一个要称两次的话……)
称硬币 -Version.2 <ul><li>《数据结构》: Huffman 编码问题。 </li></ul>
称硬币 -Version.3,4,…∞ <ul><li>更广泛地:如果一个随机变量 x 的可能取值为 X={x 1 , x 2 ,…, x k } 。要用 n 位 y: y 1 y 2 …y n 表示(每位 y 有 c 种取值) n 的期望值至...
What’s Entropy? <ul><li>定义 : </li></ul><ul><li>X 的具体内容跟信息量无关,我们只关心概率分布,于是 H(X) 可以写成: </li></ul>
熵的性质 <ul><li>第一个等号在 X 为确定值的时候成立(没有变化的可能) </li></ul><ul><li>第二个等号在 X 均匀分布的时候成立。 </li></ul>
熵的性质 <ul><li>证明: </li></ul>
熵的性质 <ul><li>证明: </li></ul><ul><li>详细证明略。 </li></ul><ul><li>求条件极值就可以证明了(求偏导数,条件是:所有的概率之和为 1 ) </li></ul><ul><li>结论:均匀分布的时候...
Conditional Entropy <ul><li>有两个变量: x,y 。它们 不是 独立的。已知 y , x 的不确定度又是多少呢 ? </li></ul>
Conditional Entropy <ul><li>Condition Reduces Entropy (C.R.E.) </li></ul><ul><li>知识( Y )减少不确定性( X ) </li></ul><ul><li>证明(略...
已知与未知的关系 <ul><li>对待已知事物和未知事物的原则: </li></ul><ul><li>承认已知事物(知识); </li></ul><ul><li>对未知事物不做任何假设,没有任何偏见 </li></ul>
已知与未知的关系—例子 <ul><li>已知: </li></ul><ul><li>“ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… </li></ul><ul><li>令 x 1 表示“学习”被标为名词,  x 2 表...
已知与未知的关系—例子 <ul><li>已知: </li></ul><ul><li>“ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… </li></ul><ul><li>“ 学习”被标为定语的可能性很小,只有 0.05 ...
已知与未知的关系—例子 <ul><li>已知: </li></ul><ul><li>“ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… </li></ul><ul><li>“ 学习”被标为定语的可能性很小,只有 0.05 ...
最大熵模型 Maximum Entropy <ul><li>概率平均分布〈 = 〉熵最大 </li></ul><ul><li>我们要一个 x 和 y 的分布,满足: </li></ul><ul><li>同时使 H(Y|X) 达到最大值 </li...
最大熵模型 Maximum Entropy
最大熵模型 Maximum Entropy What is Constraints? -- 模型要与 已知 知识吻合 What is known? -- 训练数据集合 一般模型: P={p|p 是 X 上满足 条件 的概率分布 }
特征 (Feature) <ul><li>特征: (x,y) </li></ul><ul><li>y: 这个特征中需要确定的信息 </li></ul><ul><li>x: 这个特征中的上下文信息 </li></ul><ul><li>注意一个标注...
样本 (Sample) <ul><li>关于某个特征 (x,y) 的样本 -- 特征所描述的语法现象在标准集合里的分布: </li></ul><ul><li>(x i ,y i ) pairs </li></ul><ul><li>y i 是 y...
特征与样本 已知: “ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… “ 学习”被标为定语的可能性很小,只有 0.05 特征:当“学习”被标作动词的时候,它被标作谓语的概率为 0.95 x 是什么 ?  y 是什么 ? ...
特征与样本 已知: “ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… 特征:“学习”被标为定语的可能性很小,只有 0.05 当“学习”被标作动词的时候,它被标作谓语的概率为 0.95 x 是什么 ?  y 是什么 ? 样...
特征与样本 特征函数:对于一个特征 (x 0 ,y 0 ) ,定义特征函数: 特征函数期望值: 对于一个特征 (x 0 ,y 0 )  ,在样本中的期望值是: 是 (x,y) 在样本中出现的概率
条件( Constraints ) 条件: 对每一个特征 (x,y) ,模型所建立的条件概率分布要与训练样本表现出来的分布相同。 假设样本的分布是(已知): 特征 f 在模型中的期望值:
最大熵模型 Maximum Entropy <ul><li>NLP 模型: </li></ul>P={p|p 是 y|x 的概率分布并且满足下面的条件 } 对训练样本,对任意给定的特征 f i :
最大熵模型 Maximum Entropy <ul><li>NLP 模型: </li></ul>
最大熵模型的解决 <ul><li>问题: </li></ul><ul><li>已知若干条件,要求若干变量的值使到目标函数(熵)最大 </li></ul><ul><li>数学本质: </li></ul><ul><li>最优化问题( Optimiz...
非线性规划基本概念 Nonlinear Programming <ul><li>解决的思路: </li></ul><ul><li>非线性规划问题(带约束) </li></ul><ul><li>(拉格朗日法) -> 非线性规划问题(不带约束 Un...
非线性规划基本概念 Nonlinear Programming <ul><li>p: m 维向量; H(p):  关于 p 的非线性函数 </li></ul><ul><li>A: n*m 常数矩阵; b: n 维向量 </li></ul>如何去...
非线性规划基本概念 Nonlinear Programming <ul><li>假设 Z 是跟 Ap=b 垂直的方向量。 </li></ul><ul><li>Z: m*(m-n) 常数矩阵 )  </li></ul><ul><li>就是 p 能...
非线性规划基本概念 Nonlinear Programming <ul><li>p: m 维向量; H(p):  关于 p 的非线性函数 </li></ul><ul><li>A: n*m 常数矩阵; b: n 维向量 </li></ul>如何去...
极值条件 Z: m*(m-n) 常数矩阵 v: m-n 维变量 极值条件: 把  分解成 Z 方向向量和 A 方向向量:
极值条件 Z: m*(m-n) 常数矩阵 v: m-n 维变量
极值条件 <ul><li>p: m 维向量; H(p):  关于 p 的非线性函数 </li></ul><ul><li>A: n*m 常数矩阵; b: n 维向量 </li></ul>令: 假设: A 的行向量线性无关。
拉格朗日算子 Lagrange Multiplier <ul><li>一般地,对于 k 个限制条件的 Constrained Optimization 问题: </li></ul><ul><li>拉格朗日函数为: </li></ul><ul><...
拉格朗日算子 Lagrange Multiplier
拉格朗日函数
可能的最优解( Exponential )
最优解的存在性 <ul><li>一阶导数为零, </li></ul><ul><li>二阶导数小于零, </li></ul><ul><li>所得到的是最大值! </li></ul>
最优解形式( Exponential )
最优解( Exponential )
最优解( Exponential ) <ul><li>能不能找到另一种逼近?比如…… </li></ul><ul><li>等价成求某个函数  的最大 / 最小值? </li></ul><ul><li>几乎不可能有解析解(包含指数函数) </li...
对偶问题 Duality <ul><li>对偶问题的引入。 Alice 和 Bob 的游戏: </li></ul><ul><li>有一个 2*2 的矩阵C。每次 Alice 挑一个数 x (x=1 或者 2) , Bob 也挑一个数 y (y=...
对偶问题  Alice vs Bob <ul><li>假设: Alice 和 Bob 都是聪明而贪得无厌的人。而且他们都清楚对方也很聪明和很贪心。 </li></ul><ul><li>Alice 的策略: </li></ul><ul><li>找...
对偶问题  Alice vs Bob <ul><li>Alice 的选择: x*=2 </li></ul><ul><li>Bob 的选择: y*=2 </li></ul>
Alice vs Bob Version.2 <ul><li>Alice 的选择: x*=1 </li></ul><ul><li>Bob 的选择: y*=2 </li></ul>
对偶问题  Alice vs Bob <ul><li>Version 1: Alice 的估计 = 结果 =Bob 的估计 </li></ul><ul><li>Version 2: Alice 的估计 < 结果 =Bob 的估计 </li></...
非线性规划中的对偶问题 拉格朗日函数: 于是: 因此,为了尽量大, p 的选取必须保证 考虑:
对偶问题与拉格朗日函数: 同时: 等价于: 而
对偶问题与拉格朗日函数:
梯度递减法 把 p* 代入 L ,得到:  令:
梯度递减法 求导,计算 -L 的梯度:
梯度递减法 递推公式: 收敛问题……
最大似然率  Maximum Likelihood <ul><li>最大似然率:找出与样本的分布最接近的概率分布模型。 </li></ul><ul><li>简单的例子。 10 次抛硬币的结果是: </li></ul><ul><li>画画字画画画...
最大似然率  Maximum Likelihood <ul><li>最大似然率:找出与样本的分布最接近的概率分布模型。 </li></ul><ul><li>最优解是: p=0.7 </li></ul><ul><li>似然率的一般定义: </li...
最大似然率  Maximum Likelihood <ul><li>似然率的一般定义: </li></ul><ul><li>似然率的对数形式: </li></ul>
最大似然率  Maximum Likelihood <ul><li>在 NLP 里面,要估计的是: </li></ul><ul><li>似然率是: </li></ul>是常数,可以忽略
最大似然率  Maximum Likelihood <ul><li>在 NLP 里面,要估计的是: </li></ul><ul><li>似然率可以定义为: </li></ul><ul><li>通过求值可以发现,如果 p(y|x) 的形式是最大熵...
最大似然率  <ul><li>为书写方便,令: </li></ul>
最大似然率
最大似然率  Maximum Likelihood <ul><li>结论:最大熵的解(无偏见地对待不确定性)同时是最吻合样本数据分布的解。进一步证明了最大熵模型的合理性。 </li></ul>
偶然?必然? <ul><li>“ It so  happens  that…”??? </li></ul><ul><li>熵:不确定度 </li></ul><ul><li>似然率:与知识的吻合度 </li></ul><ul><li>最大熵:对不...
特征选取问题 <ul><li>问题: </li></ul><ul><li>所有知识可信吗?所有知识都有用吗? </li></ul><ul><li>太多知识怎么办? </li></ul><ul><li>在 NLP 里面: </li></ul><u...
特征选取问题 <ul><li>Remind:   </li></ul><ul><li>“ 熵是描述不确定度的” </li></ul><ul><li>“ 知识是不确定度的补集” </li></ul><ul><li>--不确定度越小,模型越准确。 ...
特征选取算法 <ul><li>目标:选择最有用的K个特征(知识) </li></ul><ul><li>“ 最”?--全局的最优解几乎不可能 </li></ul><ul><li>可行的方法:逐步选择最有用的信息。 </li></ul><ul><l...
算法步骤 <ul><li>有效特征集合 E={} // 这个时候 p 均匀分布 </li></ul><ul><li>计算最大熵 H(p*) 。显然: </li></ul><ul><li>对以下步骤循环 K 次: </li></ul><ul><l...
敏感度分析与特征提取 Sensitivity <ul><li>How to work on insufficient data set? </li></ul><ul><li>最终结论应该是约束条件越确定( _p(x) 越大), lambda 越...
应用实例 <ul><li>Adwait Ratnaparkhi’s “Learning to Parse Natural Language with Maximum Entropy Models” </li></ul><ul><li>创新点: ...
应用实例 <ul><li>Parser 的特点: </li></ul><ul><li>三层 Parser </li></ul><ul><li>K-BFS 搜索——每层只搜索最好的 K 个方案 (derivations) </li></ul><u...
应用实例 <ul><li>数据流: </li></ul>
应用实例 <ul><li>概率:最大熵模型得到的概率分布 </li></ul><ul><li>事先对每类 Parsing 都训练一个最大熵模型。 </li></ul><ul><li>得到概率分布: p X *(a|c) 。 a 是 action...
应用实例 <ul><li>实验结果: </li></ul><ul><li>Upenn 的 Corpus 作为训练集合 </li></ul><ul><li>Wall Street Journal 上的句子作为测试对象 </li></ul><ul>...
应用实例 <ul><li>分析: </li></ul><ul><li>三层 Parser 功不可没(上层 Parser 看到的是下层 Parser 的所有信息—包括处理点之前和之后的信息) </li></ul><ul><li>MaxEnt 模型...
相关项目 <ul><li>CMU: Adam Berger </li></ul><ul><li>U Penn: Adwait Ratnaparkhi </li></ul><ul><li>Source Forge: opennlp. MAXENT...
总结与启发 <ul><li>MaxEnt 已经是比较成功的一个 NLP 模型,并获得广泛应用 </li></ul><ul><li>从信息论获得启发( 1948- ):自然语言处理也是信息处理的一种。语法标注也可以看作一种编码的过程 ? </li...
参考文献 <ul><li>A maximum entropy approach to natural language processing (Adam Berger) </li></ul><ul><li>A Brief MaxEnt Tuto...
参考文献  (Cont) <ul><li>Elements of Information Theory (Cover & Thomas)  </li></ul><ul><li>Linear and Nonlinear Programming (...
Q&A ? Thank you!
Upcoming SlideShare
Loading in...5
×

最大熵模型

2,328

Published on

Published in: Technology, Spiritual
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,328
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
56
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

最大熵模型

  1. 1. 最大熵模型 与 自然语言处理 MaxEnt Model & NLP laputa [email_address] NLP Group, AI Lab, Tsinghua Univ.
  2. 2. Topics <ul><li>NLP 与随机过程的关系(背景) </li></ul><ul><li>最大熵模型的介绍 ( 熵的定义 、 最大熵模型 ) </li></ul><ul><li>最大熵模型的解决 ( 非线性规划 、 对偶问题 、 最大似然率 ) </li></ul><ul><li>特征选取问题 </li></ul><ul><li>应用实例 </li></ul><ul><li>总结与启发 </li></ul>
  3. 3. NLP 与随机过程 <ul><li>NLP: 已知一段文字: x 1 x 2 …x n ( n 个词) </li></ul><ul><li>标注词性 y 1 y 2 …y n </li></ul><ul><li>标注过程: </li></ul>已知: x 1 x 2 …x n 求: y 1 已知: x 1 x 2 …x n y 1 求: y 2 已知: x 1 x 2 …x n y 1 y 2 求: y 3 已知: x 1 x 2 …x n y 1 y 2 y 3 求: y 4 …
  4. 4. NLP 与随机过程 <ul><li>y i 可能有多种取值, y i 被标注为 a 的概率有多少 ? </li></ul><ul><li>随机过程:一个随机变量的序列。 </li></ul>x 1 x 2 …x n p(y 1 =a|x 1 x 2 …x n ) x 1 x 2 …x n y 1 p(y 2 =a|x 1 x 2 …x n y 1 ) x 1 x 2 …x n y 1 y 2 p(y 3 =a|x 1 x 2 …x n y 1 y 2 ) x 1 x 2 …x n y 1 y 2 y 3 p(y 4 =a|x 1 x 2 …x n y 1 y 2 y 3 ) …
  5. 5. NLP 与随机过程 <ul><li>问题: </li></ul><ul><li>p(y i =a|x 1 x 2 …x n y 1 y 2 …y i-1 ) 怎么求 ? </li></ul><ul><li>y i 与 x 1 x 2 …x n y 1 y 2 …y i-1 的关系 ? </li></ul>x 1 x 2 …x n p(y 1 =a|x 1 x 2 …x n ) x 1 x 2 …x n y 1 p(y 2 =a|x 1 x 2 …x n y 1 ) x 1 x 2 …x n y 1 y 2 p(y 3 =a|x 1 x 2 …x n y 1 y 2 ) x 1 x 2 …x n y 1 y 2 y 3 p(y 4 =a|x 1 x 2 …x n y 1 y 2 y 3 ) …
  6. 6. NLP 与随机过程 <ul><li>问题: </li></ul><ul><li>p(y i =a|x 1 x 2 …x n y 1 y 2 …y i-1 ) 怎么求 ? </li></ul><ul><li>y i 与 x 1 x 2 …x n y 1 y 2 …y i-1 的关系 ? </li></ul>一个直观的解决: <ul><li>问题 again! </li></ul><ul><li>(x 1 x 2 …x n y 1 y 2 …y i-1 ) ? </li></ul>
  7. 7. What’s Entropy? <ul><li>An Example : </li></ul><ul><li>假设有 5 个硬币: 1,2,3,4,5 ,其中一个是假的,比其他的硬币轻。有一个天平,天平每次能比较两堆硬币,得出的结果可能是以下三种之一: </li></ul><ul><li>左边比右边轻 </li></ul><ul><li>右边比左边轻 </li></ul><ul><li>两边同样重 </li></ul><ul><li>问:至少要使用天平多少次才能保证找到假硬币 ? </li></ul><ul><li>(某年小学生数学竞赛题目 :P ) </li></ul>
  8. 8. 称硬币 (cont.) <ul><li>答案: 2 次 </li></ul><ul><li>一种方法: </li></ul><ul><li>Why 最少 2 次 ? </li></ul>
  9. 9. 称硬币 (cont.) <ul><li>Let: x 是假硬币的序号: </li></ul><ul><li>Let: y i 是第 i 次使用天平所得到的结果: </li></ul><ul><li>用天平称 n 次,获得的结果是: y 1 y 2 … y n </li></ul><ul><li>y 1 y 2 … y n 的所有可能组合数目是 3 n </li></ul><ul><li>我们要通过 y 1 y 2 … y n 找出 x 。所以:每个 y 1 y 2 … y n 组合最多可能有一个对应的 x 取值。 </li></ul><ul><li>因为 x 取 X 中任意一个值的时候,我们都要能够找出 x ,因此对于任意一个 x 的取值,至少要有一个 y 1 y 2 … y n 与之对应。根据鸽笼原理…… </li></ul>
  10. 10. 称硬币 (cont.) <ul><li>Let: x 是假硬币的序号: </li></ul><ul><li>Let: Y i 是第 i 次使用天平所得到的结果: </li></ul><ul><li>用 y 1 y 2 … y n 表达 x 。即设计编码: x-> y 1 y 2 … y n </li></ul><ul><li>X 的“总不确定度”是: </li></ul><ul><li>Y 的“表达能力”是: </li></ul><ul><li>至少要多少个 Y 才能准确表示 X ? </li></ul>
  11. 11. 称硬币 (cont.) <ul><li>Why??? </li></ul><ul><li>为什么用 log? </li></ul><ul><li>“ 表达能力”与“不确定度”的关系? </li></ul>
  12. 12. 称硬币 (cont.) <ul><li>为什么用 log? </li></ul><ul><li>假设一个 Y 的表达能力是 H(Y) 。显然, H(Y) 与 Y 的具体内容无关,只与 |Y| 有关。 </li></ul><ul><li>两个 Y( 就是: y 1 y 2 ) 的表达能力是多少 ? </li></ul><ul><li>y 1 可以表达三种情况, y 2 可以表达三种情况。两个并列,一共有: 3*3=9 种情况(乘法原理)。因此: </li></ul>
  13. 13. 称硬币 (cont.) <ul><li>“ 表达能力”与“不确定度”的关系? </li></ul><ul><li>都表达了一个变量所能变化的程度。在这个变量是用来表示别的变量的时候,这个程度是表达能力。在这个变量是被表示变量的时候,这个程度是不确定度。而这个可变化程度,就是一个变量的熵( Entropy )。 </li></ul><ul><li>显然:熵与变量本身含义无关,仅与变量的可能取值范围有关。 </li></ul>
  14. 14. 称硬币 -Version.2 <ul><li>假设有 5 个硬币: 1,2,3,…5 ,其中一个是假的,比其他的硬币轻。 已知第一个硬币是假硬币的概率是三分之一;第二个硬币是假硬币的概率也是三分之一,其他硬币是假硬币的概率都是九分之一。 </li></ul><ul><li>有一个天平,天平每次能比较两堆硬币,得出的结果可能是以下三种之一: </li></ul><ul><li>左边比右边轻 </li></ul><ul><li>右边比左边轻 </li></ul><ul><li>两边同样重 </li></ul><ul><li>假设使用天平 n 次找到假硬币。问 n 的 期望值 至少是多少? </li></ul><ul><li>(不再是小学生问题 :P ) </li></ul>
  15. 15. 称硬币 -Version.2 <ul><li>因为第一个、第二个硬币是假硬币的概率是三分之一,比其他硬币的概率大,我们首先“怀疑”这两个。第一次可以把这两个做比较。成功的概率是三分之二。失败的概率是三分之一。如果失败了,第二次称剩下的三个。所以,期望值是: </li></ul>
  16. 16. 称硬币 -Version.2 <ul><li>《数据结构》: Huffman 编码问题。 </li></ul>
  17. 17. 称硬币 -Version.2 <ul><li>《数据结构》: Huffman 编码问题。 </li></ul>
  18. 18. 称硬币 -Version.2 <ul><li>《数据结构》: Huffman 编码问题。 </li></ul>用反证法可以证明,这个是最小值。 (假设第一个和第二个硬币中有一个要称两次的话……)
  19. 19. 称硬币 -Version.2 <ul><li>《数据结构》: Huffman 编码问题。 </li></ul>
  20. 20. 称硬币 -Version.3,4,…∞ <ul><li>更广泛地:如果一个随机变量 x 的可能取值为 X={x 1 , x 2 ,…, x k } 。要用 n 位 y: y 1 y 2 …y n 表示(每位 y 有 c 种取值) n 的期望值至少为: </li></ul>一般地,我们令 c 为 2 (二进制表示),于是, X 的信息量为:
  21. 21. What’s Entropy? <ul><li>定义 : </li></ul><ul><li>X 的具体内容跟信息量无关,我们只关心概率分布,于是 H(X) 可以写成: </li></ul>
  22. 22. 熵的性质 <ul><li>第一个等号在 X 为确定值的时候成立(没有变化的可能) </li></ul><ul><li>第二个等号在 X 均匀分布的时候成立。 </li></ul>
  23. 23. 熵的性质 <ul><li>证明: </li></ul>
  24. 24. 熵的性质 <ul><li>证明: </li></ul><ul><li>详细证明略。 </li></ul><ul><li>求条件极值就可以证明了(求偏导数,条件是:所有的概率之和为 1 ) </li></ul><ul><li>结论:均匀分布的时候,熵最大 </li></ul>
  25. 25. Conditional Entropy <ul><li>有两个变量: x,y 。它们 不是 独立的。已知 y , x 的不确定度又是多少呢 ? </li></ul>
  26. 26. Conditional Entropy <ul><li>Condition Reduces Entropy (C.R.E.) </li></ul><ul><li>知识( Y )减少不确定性( X ) </li></ul><ul><li>证明(略)。用文氏图说明: </li></ul>
  27. 27. 已知与未知的关系 <ul><li>对待已知事物和未知事物的原则: </li></ul><ul><li>承认已知事物(知识); </li></ul><ul><li>对未知事物不做任何假设,没有任何偏见 </li></ul>
  28. 28. 已知与未知的关系—例子 <ul><li>已知: </li></ul><ul><li>“ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… </li></ul><ul><li>令 x 1 表示“学习”被标为名词, x 2 表示“学习”被标为动词。 </li></ul><ul><li>令 y 1 表示“学习”被标为主语, y 2 表示被标为谓语, y 3 表示宾语, y 4 表示定语。得到下面的表示: </li></ul>如果仅仅知道这一点,根据无偏见原则,“学习”被标为名词的概率与它被标为动词的概率相等。
  29. 29. 已知与未知的关系—例子 <ul><li>已知: </li></ul><ul><li>“ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… </li></ul><ul><li>“ 学习”被标为定语的可能性很小,只有 0.05 </li></ul>除此之外,仍然坚持无偏见原则: 我们引入这个新的知识:
  30. 30. 已知与未知的关系—例子 <ul><li>已知: </li></ul><ul><li>“ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… </li></ul><ul><li>“ 学习”被标为定语的可能性很小,只有 0.05 </li></ul><ul><li>当“学习”被标作动词的时候,它被标作谓语的概率为 0.95 </li></ul>除此之外,仍然坚持无偏见原则,我们尽量使概率分布平均。 但问题是:什么是尽量平均的分布? 引入这个新的知识:
  31. 31. 最大熵模型 Maximum Entropy <ul><li>概率平均分布〈 = 〉熵最大 </li></ul><ul><li>我们要一个 x 和 y 的分布,满足: </li></ul><ul><li>同时使 H(Y|X) 达到最大值 </li></ul>
  32. 32. 最大熵模型 Maximum Entropy
  33. 33. 最大熵模型 Maximum Entropy What is Constraints? -- 模型要与 已知 知识吻合 What is known? -- 训练数据集合 一般模型: P={p|p 是 X 上满足 条件 的概率分布 }
  34. 34. 特征 (Feature) <ul><li>特征: (x,y) </li></ul><ul><li>y: 这个特征中需要确定的信息 </li></ul><ul><li>x: 这个特征中的上下文信息 </li></ul><ul><li>注意一个标注可能在一种情况下是需要确定的信息,在另一种情况下是上下文信息 : </li></ul>x 1 x 2 …x n p(y 1 =a|x 1 x 2 …x n ) x 1 x 2 …x n y 1 p(y 2 =a|x 1 x 2 …x n y 1 )
  35. 35. 样本 (Sample) <ul><li>关于某个特征 (x,y) 的样本 -- 特征所描述的语法现象在标准集合里的分布: </li></ul><ul><li>(x i ,y i ) pairs </li></ul><ul><li>y i 是 y 的一个实例 </li></ul><ul><li>x i 是 y i 的上下文 </li></ul><ul><li>(x 1 ,y 1 ) (x 2 ,y 2 ) (x 3 ,y 3 )…… </li></ul>
  36. 36. 特征与样本 已知: “ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… “ 学习”被标为定语的可能性很小,只有 0.05 特征:当“学习”被标作动词的时候,它被标作谓语的概率为 0.95 x 是什么 ? y 是什么 ? 样本是什么 ?
  37. 37. 特征与样本 已知: “ 学习”可能是动词,也可能是名词。可以被标为主语、谓语、宾语、定语…… 特征:“学习”被标为定语的可能性很小,只有 0.05 当“学习”被标作动词的时候,它被标作谓语的概率为 0.95 x 是什么 ? y 是什么 ? 样本是什么 ?
  38. 38. 特征与样本 特征函数:对于一个特征 (x 0 ,y 0 ) ,定义特征函数: 特征函数期望值: 对于一个特征 (x 0 ,y 0 ) ,在样本中的期望值是: 是 (x,y) 在样本中出现的概率
  39. 39. 条件( Constraints ) 条件: 对每一个特征 (x,y) ,模型所建立的条件概率分布要与训练样本表现出来的分布相同。 假设样本的分布是(已知): 特征 f 在模型中的期望值:
  40. 40. 最大熵模型 Maximum Entropy <ul><li>NLP 模型: </li></ul>P={p|p 是 y|x 的概率分布并且满足下面的条件 } 对训练样本,对任意给定的特征 f i :
  41. 41. 最大熵模型 Maximum Entropy <ul><li>NLP 模型: </li></ul>
  42. 42. 最大熵模型的解决 <ul><li>问题: </li></ul><ul><li>已知若干条件,要求若干变量的值使到目标函数(熵)最大 </li></ul><ul><li>数学本质: </li></ul><ul><li>最优化问题( Optimization Problem ) </li></ul><ul><li>条件:线性、等式 </li></ul><ul><li>目标函数:非线性 </li></ul><ul><li>非线性规划(线性约束) (non-linear programming with linear constraints) </li></ul>
  43. 43. 非线性规划基本概念 Nonlinear Programming <ul><li>解决的思路: </li></ul><ul><li>非线性规划问题(带约束) </li></ul><ul><li>(拉格朗日法) -> 非线性规划问题(不带约束 Unconstrained Problem ) </li></ul><ul><li>(求偏导数法) -> 解决不带约束求解问题 </li></ul><ul><li>(解方程) -> 求出原问题的解法 </li></ul>
  44. 44. 非线性规划基本概念 Nonlinear Programming <ul><li>p: m 维向量; H(p): 关于 p 的非线性函数 </li></ul><ul><li>A: n*m 常数矩阵; b: n 维向量 </li></ul>如何去掉约束?抽象问题: 假设: A 的行向量线性无关。 确定了 m 维空间里面 n 个方向上(就是与 Ap=b 确定的 m-n 个方向“垂直”的 n 个方向)的取值。 p 只能在剩下的 r=m-n 个方向上面移动。
  45. 45. 非线性规划基本概念 Nonlinear Programming <ul><li>假设 Z 是跟 Ap=b 垂直的方向量。 </li></ul><ul><li>Z: m*(m-n) 常数矩阵 ) </li></ul><ul><li>就是 p 能够自由活动的所有空间了。 </li></ul><ul><li>v: m-n 维变量 </li></ul><ul><li>于是有: </li></ul>
  46. 46. 非线性规划基本概念 Nonlinear Programming <ul><li>p: m 维向量; H(p): 关于 p 的非线性函数 </li></ul><ul><li>A: n*m 常数矩阵; b: n 维向量 </li></ul>如何去掉约束?抽象问题: Z: m*(m-n) 常数矩阵 v: m-n 维变量
  47. 47. 极值条件 Z: m*(m-n) 常数矩阵 v: m-n 维变量 极值条件: 把 分解成 Z 方向向量和 A 方向向量:
  48. 48. 极值条件 Z: m*(m-n) 常数矩阵 v: m-n 维变量
  49. 49. 极值条件 <ul><li>p: m 维向量; H(p): 关于 p 的非线性函数 </li></ul><ul><li>A: n*m 常数矩阵; b: n 维向量 </li></ul>令: 假设: A 的行向量线性无关。
  50. 50. 拉格朗日算子 Lagrange Multiplier <ul><li>一般地,对于 k 个限制条件的 Constrained Optimization 问题: </li></ul><ul><li>拉格朗日函数为: </li></ul><ul><li>其中引入的拉格朗日算子: </li></ul>
  51. 51. 拉格朗日算子 Lagrange Multiplier
  52. 52. 拉格朗日函数
  53. 53. 可能的最优解( Exponential )
  54. 54. 最优解的存在性 <ul><li>一阶导数为零, </li></ul><ul><li>二阶导数小于零, </li></ul><ul><li>所得到的是最大值! </li></ul>
  55. 55. 最优解形式( Exponential )
  56. 56. 最优解( Exponential )
  57. 57. 最优解( Exponential ) <ul><li>能不能找到另一种逼近?比如…… </li></ul><ul><li>等价成求某个函数 的最大 / 最小值? </li></ul><ul><li>几乎不可能有解析解(包含指数函数) </li></ul><ul><li>近似解不代表接近驻点。 </li></ul>
  58. 58. 对偶问题 Duality <ul><li>对偶问题的引入。 Alice 和 Bob 的游戏: </li></ul><ul><li>有一个 2*2 的矩阵C。每次 Alice 挑一个数 x (x=1 或者 2) , Bob 也挑一个数 y (y=1 或者 2) 。两人同时宣布所挑的数字。然后看 C x,y 是多少, Bob 要付 Alice C x,y 块钱。(如果 C x,y 是负数, Alice 给 Bob 钱)。矩阵C如下: </li></ul>
  59. 59. 对偶问题  Alice vs Bob <ul><li>假设: Alice 和 Bob 都是聪明而贪得无厌的人。而且他们都清楚对方也很聪明和很贪心。 </li></ul><ul><li>Alice 的策略: </li></ul><ul><li>找一个 x ,无论 Bob 怎么挑 y , C x,y 要尽量大。 </li></ul><ul><li>Bob 的策略: </li></ul><ul><li>找一个 y ,无论 Alice 怎么挑 x , C x,y 要尽量小。 </li></ul>双方都很聪明:双方都对对方有“最坏打算”
  60. 60. 对偶问题  Alice vs Bob <ul><li>Alice 的选择: x*=2 </li></ul><ul><li>Bob 的选择: y*=2 </li></ul>
  61. 61. Alice vs Bob Version.2 <ul><li>Alice 的选择: x*=1 </li></ul><ul><li>Bob 的选择: y*=2 </li></ul>
  62. 62. 对偶问题  Alice vs Bob <ul><li>Version 1: Alice 的估计 = 结果 =Bob 的估计 </li></ul><ul><li>Version 2: Alice 的估计 < 结果 =Bob 的估计 </li></ul><ul><li>一般情况 :Alice 的估计 <= 结果 <=Bob 的估计 </li></ul>定理:当存在马鞍点( Saddle Point )的时候,等号成立。并且结果 = 马鞍点的值。 马鞍点:
  63. 63. 非线性规划中的对偶问题 拉格朗日函数: 于是: 因此,为了尽量大, p 的选取必须保证 考虑:
  64. 64. 对偶问题与拉格朗日函数: 同时: 等价于: 而
  65. 65. 对偶问题与拉格朗日函数:
  66. 66. 梯度递减法 把 p* 代入 L ,得到: 令:
  67. 67. 梯度递减法 求导,计算 -L 的梯度:
  68. 68. 梯度递减法 递推公式: 收敛问题……
  69. 69. 最大似然率 Maximum Likelihood <ul><li>最大似然率:找出与样本的分布最接近的概率分布模型。 </li></ul><ul><li>简单的例子。 10 次抛硬币的结果是: </li></ul><ul><li>画画字画画画字字画画 </li></ul><ul><li>假设 p 是每次抛硬币结果为“画”的概率。则: </li></ul><ul><li>得到这样的实验结果的概率是: </li></ul>
  70. 70. 最大似然率 Maximum Likelihood <ul><li>最大似然率:找出与样本的分布最接近的概率分布模型。 </li></ul><ul><li>最优解是: p=0.7 </li></ul><ul><li>似然率的一般定义: </li></ul>
  71. 71. 最大似然率 Maximum Likelihood <ul><li>似然率的一般定义: </li></ul><ul><li>似然率的对数形式: </li></ul>
  72. 72. 最大似然率 Maximum Likelihood <ul><li>在 NLP 里面,要估计的是: </li></ul><ul><li>似然率是: </li></ul>是常数,可以忽略
  73. 73. 最大似然率 Maximum Likelihood <ul><li>在 NLP 里面,要估计的是: </li></ul><ul><li>似然率可以定义为: </li></ul><ul><li>通过求值可以发现,如果 p(y|x) 的形式是最大熵模型的形式的话,最大熵模型与最大似然率模型一致。 </li></ul>
  74. 74. 最大似然率 <ul><li>为书写方便,令: </li></ul>
  75. 75. 最大似然率
  76. 76. 最大似然率 Maximum Likelihood <ul><li>结论:最大熵的解(无偏见地对待不确定性)同时是最吻合样本数据分布的解。进一步证明了最大熵模型的合理性。 </li></ul>
  77. 77. 偶然?必然? <ul><li>“ It so happens that…”??? </li></ul><ul><li>熵:不确定度 </li></ul><ul><li>似然率:与知识的吻合度 </li></ul><ul><li>最大熵:对不确定度的无偏见分配 </li></ul><ul><li>最大似然率:对知识的无偏见理解 </li></ul><ul><li>知识=不确定度的补集 </li></ul>
  78. 78. 特征选取问题 <ul><li>问题: </li></ul><ul><li>所有知识可信吗?所有知识都有用吗? </li></ul><ul><li>太多知识怎么办? </li></ul><ul><li>在 NLP 里面: </li></ul><ul><li>上下文信息可以很多很多种,那些是有用呢? </li></ul>
  79. 79. 特征选取问题 <ul><li>Remind:   </li></ul><ul><li>“ 熵是描述不确定度的” </li></ul><ul><li>“ 知识是不确定度的补集” </li></ul><ul><li>--不确定度越小,模型越准确。 </li></ul><ul><li>直观的过程: </li></ul><ul><li>什么特征都不限定:熵最大 </li></ul><ul><li>加一个特征:熵少一点( C.R.E. ) </li></ul><ul><li>加的特征越多,熵越少…… </li></ul>
  80. 80. 特征选取算法 <ul><li>目标:选择最有用的K个特征(知识) </li></ul><ul><li>“ 最”?--全局的最优解几乎不可能 </li></ul><ul><li>可行的方法:逐步选择最有用的信息。 </li></ul><ul><li>每一步用“贪心”原则:挑选“现在看来”最有用的那个特征。 </li></ul><ul><li>“ 有用?” 使到走这一步后熵减少最多 </li></ul>
  81. 81. 算法步骤 <ul><li>有效特征集合 E={} // 这个时候 p 均匀分布 </li></ul><ul><li>计算最大熵 H(p*) 。显然: </li></ul><ul><li>对以下步骤循环 K 次: </li></ul><ul><li>对每个不在 E 里面的特征 f i ,把 E+{f i } 作为有效特征,计算最大熵 H i (p i *) ; </li></ul><ul><li>假设 H m (p m *) 最小,则: E=E+{f m } 。 </li></ul>
  82. 82. 敏感度分析与特征提取 Sensitivity <ul><li>How to work on insufficient data set? </li></ul><ul><li>最终结论应该是约束条件越确定( _p(x) 越大), lambda 越大。 </li></ul>
  83. 83. 应用实例 <ul><li>Adwait Ratnaparkhi’s “Learning to Parse Natural Language with Maximum Entropy Models” </li></ul><ul><li>创新点: </li></ul><ul><li>用 MaxEnt 模型辅助 Shift-reduce Parsing </li></ul>
  84. 84. 应用实例 <ul><li>Parser 的特点: </li></ul><ul><li>三层 Parser </li></ul><ul><li>K-BFS 搜索——每层只搜索最好的 K 个方案 (derivations) </li></ul><ul><li>“ 最好”:概率最大 </li></ul><ul><li>概率:最大熵模型得到的概率分布 </li></ul>
  85. 85. 应用实例 <ul><li>数据流: </li></ul>
  86. 86. 应用实例 <ul><li>概率:最大熵模型得到的概率分布 </li></ul><ul><li>事先对每类 Parsing 都训练一个最大熵模型。 </li></ul><ul><li>得到概率分布: p X *(a|c) 。 a 是 action , c 是上下文。 X 可能是: </li></ul><ul><li>TAG, CHUNK, BUILD/CHECK </li></ul><ul><li>最优解求法: GIS ( General Iterative Scaling Algorithm “ 一般梯度算法”?) </li></ul><ul><li>特征选取:只取出现次数大于等于 5 的所有特征(比较简单,但因此计算量也少多了) </li></ul>
  87. 87. 应用实例 <ul><li>实验结果: </li></ul><ul><li>Upenn 的 Corpus 作为训练集合 </li></ul><ul><li>Wall Street Journal 上的句子作为测试对象 </li></ul><ul><li>准确率: 90% 左右 </li></ul>
  88. 88. 应用实例 <ul><li>分析: </li></ul><ul><li>三层 Parser 功不可没(上层 Parser 看到的是下层 Parser 的所有信息—包括处理点之前和之后的信息) </li></ul><ul><li>MaxEnt 模型提供了比较准确的评价模型(不然三层 Parser 会比单层 Parser 引起更大的误差累积,“失之毫厘谬以千里”) </li></ul>
  89. 89. 相关项目 <ul><li>CMU: Adam Berger </li></ul><ul><li>U Penn: Adwait Ratnaparkhi </li></ul><ul><li>Source Forge: opennlp. MAXENT </li></ul><ul><li>…… </li></ul>
  90. 90. 总结与启发 <ul><li>MaxEnt 已经是比较成功的一个 NLP 模型,并获得广泛应用 </li></ul><ul><li>从信息论获得启发( 1948- ):自然语言处理也是信息处理的一种。语法标注也可以看作一种编码的过程 ? </li></ul><ul><li>对偶问题: 从另一个角度看问题 </li></ul><ul><li>可能从不同领域获得的启发。(概率论与随机过程、最优化问题、图形学……) </li></ul>“ All Models are wrong. Some are useful.”
  91. 91. 参考文献 <ul><li>A maximum entropy approach to natural language processing (Adam Berger) </li></ul><ul><li>A Brief MaxEnt Tutorial (Adam Berger) </li></ul><ul><li>Learning to parse natural language with maximum entropy models (Adwait Ratnaparkhi) </li></ul><ul><li>A simple Introduction to Maximum Entropy Models for Natural Language Processing (Adwait Ratnaparkhi) </li></ul>
  92. 92. 参考文献 (Cont) <ul><li>Elements of Information Theory (Cover & Thomas) </li></ul><ul><li>Linear and Nonlinear Programming (Nash & Sofer) </li></ul><ul><li>《高等数学》 </li></ul><ul><li>《运筹学》 </li></ul><ul><li>《数据结构》 </li></ul>
  93. 93. Q&A ? Thank you!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×