前言

最近在回顾李航的统计学习方法[1], 看到这一章, 准备好好梳理一下, 更加深入地理解原理以及背后的思想. 作者在这一章介绍了最大熵模型并且推导了对偶函数的极大化等价于最大熵模型的极大似然估计, 面对一大堆的概念, 我重新回顾了一遍其中相关的内容.

1 最大熵模型

最大熵原理是在 1957 年由 E.T.Jaynes 提出的,其主要思想是,在只掌握关于未知分布的部分知识时,应该选取符合这些知识但熵值最大的概率分布。我们常说,不要把所有的鸡蛋放在一个篮子里,其实就是最大熵原理的一个朴素的说法,因为当我们遇到不确定性时,就要保留各种可能性。吴军数学之美[2]第十六章中通俗地描述其为, 当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。他举了一个某次去AT&T做关于最大熵模型的报告时的栗子:

有 一次,我去 AT&T 实验室作关于最大熵模型的报告,我带去了一个色子。我问听众“每个面朝上的概率分别是多少”,所有人都说是等概率,即各点的概率均为1/6。这种猜测当然 是对的。我问听众们为什么,得到的回答是一致的:对这个“一无所知”的色子,假定它每一个朝上概率均等是最安全的做法。(你不应该主观假设它象韦小宝的色 子一样灌了铅。)从投资的角度看,就是风险最小的做法。从信息论的角度讲,就是保留了最大的不确定性,也就是说让熵达到最大。接着,我又告诉听众,我的这 个色子被我特殊处理过,已知四点朝上的概率是三分之一,在这种情况下,每个面朝上的概率是多少?这次,大部分人认为除去四点的概率是 1/3,其余的均是 2/15,也就是说已知的条件(四点概率为 1/3)必须满足,而对其余各点的概率因为仍然无从知道,因此只好认为它们均等。注意,在猜测这两种不同情况下的概率分布时,大家都没有添加任何主观的假 设,诸如四点的反面一定是三点等等。(事实上,有的色子四点反面不是三点而是一点。)这种基于直觉的猜测之所以准确,是因为它恰好符合了最大熵原理

下面是一些概念的定义

熵: 这里指的是信息论里的熵, 是接收的每条消息中包含的信息的平均量. 也可以理解为信息的不确定度, 越随机的信源的熵越大. 就像我们平时说话, 出现少的词往往包含更大的信息量, 比如我中午要去吃肯德基的炸鸡, 在这句话里, "的"字平时非常常用, 但是几乎没什么意义, 但是肯德基跟炸鸡平时出现的相对少, 却包含了更大的信息量. 数学上的定义如下

假设离散随机变量X的概率分布是P(X), 则其熵是

公式1 (P80-6.9)

熵满足以下不等式:

公式2

其中|X|是X的取值个数.当且仅当X的分布是均匀分布时右边等号成立, 也就是说, 当X服从均匀分布时, 熵最大.

最大熵原理: 概率模型学习的一个准则, 最大熵原理认为, 学习概率模型时, 在所有可能的概率模型中, 熵最大的模型是最好的模型. 通常用约束条件来确定概率模型的集合, 所以, 最大熵原理也可以表述为在满足约束条件的模型集合中选择熵最大的模型. 话说李宁的广告语叫一切皆有可能, 字面上的意思不就是最大熵模型么.

那么问题来了, 最大熵模型里的熵是怎么定义的.

准确地说, 是模型P(Y | X)与经验分布P(X)的条件熵. 也就是:

可以理解为模型在当前样本的特征分布下预测结果的熵, 熵越大, 预测结果在各个类之间分布越均匀.

公式3 模型的条件熵

那上文提到的约束条件又是什么?

我们用特征函数f(x, y)描述输入x和输出y之间的某个事实, 定义为

公式4 p82

所以特征函数关于经验分布P(X,Y)的期望值:

公式5 p82

特征函数关于模型P(Y|X)与经验分布P(X)的期望值:

公式6 p83

如果模型能够学习到训练数据中的信息, 那么就可以假设这两个期望值相等.

公式7 p83 6.11

这就形成了我们模型学习的约束条件, 假定满足条件的模型集合为

公式8 p83 6.12

所以 最大熵模型的学习, 等价于学习以下最优化问题.

学习过程就是对偶问题的求解.

公式9 p83

学习方法:

最原始的最大熵模型的训练方法是一种称为通用迭代算法GIS(generalized iterative scaling) 的迭代 算法。GIS 的原理并不复杂,大致可以概括为以下几个步骤:

1. 假定第零次迭代的初始模型为等概率的均匀分布。

2. 用第 N 次迭代的模型来估算每种信息特征在训练数据中的分布,如果超过了实际的,就把相应的模型参数变小;否则,将它们便大。

3. 重复步骤 2 直到收敛。

GIS 算法每次迭代的时间都很长,需要迭代很多次才能收敛,而且不太稳定.

八十年代,很有天才的孪生兄弟的达拉皮垂(Della Pietra)在 IBM 对 GIS 算法进行了两方面的改进,提出了改进迭代算法 IIS(improved iterative scaling)。这使得最大熵模型的训练时间缩短了一到两个数量级。这样最大熵模型才有可能变得实用。即使如此,在当时也只有 IBM 有条件是用最大熵模型。

最大似然估计

似然函数:

公式10 似然函数

从字面上来看, 似然(likelihood)与概率(probability)没有太大区别, 都代表可能性. 下面是一些我对这两个概念的直观理解.

概率, 表示在所有观测样本中, 样本x出现的可能性. 在这里, 模型的分布以及参数都是确定的.

似然, 标识在模型或者说分布确定的情况下, 对应不同的参数, 样本x出现的可能性.

最大似然估计, 就是在选定模型的前提下, 学习最符合当前观测样本的参数, 本质上是一种典型的经验风险最小化方法. 在样本量比较小的时候, 观测并不能代表整体, 因此, 这种学习方法并不会太好, 容易产生过拟合.

下一篇关于最似然估计以及最大后验概率将详细描述最大似然法.

其他

首先是一点个人的理解: 二者都属于经验风险最小化的参数学习方法, 最大熵模型追求的目标是, 在对当前样本预测尽可能与观测值一致的前提下, 是的各分类之间尽可能均匀, 也就是模型在当前样本上面预测的条件熵尽可能的大; 最大似然估计则是在确定模型的前提下, 尽可能使各个样本点在预测时发生的概率大. 在[3]中, 大佬证明了最大熵模型的对偶问题求解方法, 等价于最大熵模型的极大似然估计.

最大熵原理的实质就是,在已知部分知识的前提下,关于未知分布最合理的推断就是符合已知知识最不确定或最随机的推断,这是我们可以作出的唯一不偏不倚的选择,任何其它的选择都意味着我们增加了其它的约束和假设,这些约束和假设根据我们掌握的信息无法作出。

最大熵模型与最大似然估计相关推荐

  1. 【生成模型】极大似然估计,你必须掌握的概率模型

    上一期为大家说明了什么是无监督生成模型.在无监督生成模型中,极大似然法一直扮演着非常核心的位置,我们必须对它有深刻的理解,本期小米粥将为大家讲一下极大似然法的那些事情. 作者&编辑 | 小米粥 ...

  2. 机器学习理论《统计学习方法》学习笔记:第六章 逻辑斯谛回归与最大熵模型

    机器学习理论<统计学习方法>学习笔记:第六章 逻辑斯谛回归与最大熵模型 6 逻辑斯谛回归与最大熵模型 6.1 逻辑斯谛回归模型 6.1.1 逻辑斯谛分布 6.1.2 二项逻辑斯蒂回归模型 ...

  3. 最大熵模型(ME)和最大熵马尔可夫模型(MEMM)

    文章目录 最大熵模型(Maximum Entropy Model, MEM) 最大熵思想 最大熵模型表示 最大熵模型学习 最大熵模型求解过程举例 最大熵模型与极大似然估计 最大熵模型与逻辑回归 模型学 ...

  4. 最大熵阈值python_李航统计学习方法(六)----逻辑斯谛回归与最大熵模型

    本文希望通过<统计学习方法>第六章的学习,由表及里地系统学习最大熵模型.文中使用Python实现了逻辑斯谛回归模型的3种梯度下降最优化算法,并制作了可视化动画.针对最大熵,提供一份简明的G ...

  5. 最大熵模型(MaxEnt)解析

    给出了最大熵模型的一般形式(其中的f为特征函数,后面我们还会讲到): 而文献[5]中我们从另外一种不同的角度也得出了多元逻辑回归的一般形式: 可见,尽管采用的方法不同,二者最终是殊途同归.万法归宗了. ...

  6. 【机器学习算法】最大熵模型

    文章目录 1.最大熵原理 2.最大熵模型 3.训练过程 4.极大似然估计 5.改进的尺度迭代法IIS 1.最大熵原理   在概率统计中,最大熵原理认为在所有可能的概率模型中,熵最大的模型是最好的模型. ...

  7. 最大熵模型介绍及实现

    转自:http://www.cnblogs.com/hexinuaa/p/3353479.html http://blog.csdn.net/hexinuaa/article/details/2471 ...

  8. ICCV 2021 | 重铸Regression荣光!具有残差对数似然估计的人体姿态回归

    © 作者 | Tau 单位 | 网易 研究方向 | 计算机视觉 本文是一篇新鲜出炉的 ICCV Oral,由于我的工作内容是姿态估计相关,因此也在第一时间拜读了一下,以下是一些笔记和过往经验的总结.由 ...

  9. 深度模型从研者 眼里的 似然估计 Hessain 海森矩阵 Fisher Information (费雪信息)...

    2019独角兽企业重金招聘Python工程师标准>>> 深度模型的训练的基本依据是最小化模型拟合数据的误差.旨在不仅知其然(如何构建和训练一个深度模型),还应知其所以然(为什么这样训 ...

最新文章

  1. 经典的JavaScript入门书
  2. java实现单向链表
  3. 《Linux就该这么学》培训笔记_ch01_部署虚拟环境安装Linux系统
  4. EJBCA使用之注册用户及创建证书
  5. spring中使用内存数据库(Embedded database)
  6. 研发效能提升最佳实践的探索
  7. android java split_Java中的split函数的用法
  8. 最容易进的大厂工作,百度经典百题
  9. 恢复IE8自带的源代码查看器
  10. Python线性代数扩展库numpy.linalg中几个常用函数
  11. Mysql数据库中,大小写区分
  12. [转载] sklearn学习之:(3)决策树回归算法
  13. mongoose的用法(注:连接数据库)
  14. C/C++[codeup 2088]排名
  15. Javaweb图书管理系统的设计与实现(含毕业设计)
  16. 音频处理与压缩技术漫谈
  17. linux压缩超过4g的文件吗,使用tar压缩文件,不能超过4G,有什么办法解决-
  18. CityEngine中如何导出带有属性信息的slpk
  19. 【总结】NPU/CPU/GPU 傻傻分不清?
  20. vue 仿外卖app-数据mock部分

热门文章

  1. MEF学习笔记(1)——什么是MEF?
  2. 负责任的告诉你:读完这5本书,你的智慧和颜值会上升一个台阶
  3. 飞桨常规赛:PALM病理性近视病灶检测与分割 - 10月第1名方案
  4. [蓝桥杯]分分钟的碎碎念(动态规划)
  5. Spring 构造器注入
  6. 职场人深夜啪啪啪大赏,HR会的也太多了叭!
  7. 夏季南方去体内湿气-养生方法
  8. 凸多边形的划分(区间DP+高精度)
  9. Blockly开发入门指北
  10. 前端学习——JavaScript原生实现购物车案例