最大熵模型(maximum entropy model )由最大熵原理推导出来。

1. 最大熵原理

最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。

假设离散随机变量X的概率分布是P(X)P(X)P(X),则其熵是
H(P)=−∑xP(x)logP(x)H(P)=-\sum_xP(x)logP(x) H(P)=−x∑​P(x)logP(x)
熵满足下列不等式:
0≤H(P)≤log∣X∣0\leq H(P)\leq log|X| 0≤H(P)≤log∣X∣
式中,∣X∣|X|∣X∣是X的取值个数,当且仅当X的分布是均匀分布时右边的等号成立。这就是说,当X服从均匀分布时,熵最大。

直观地说,最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的条件下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性。“等可能性”不容易操作,而熵则是一个可优化的数值指标。

简单例子介绍最大熵原理:

:假设随机变量X有5个取值{A,B,C,D,E}\{A,B,C,D,E\}{A,B,C,D,E},要估计取各个值的概率P(A),P(B),P(C),P(D),P(E)P(A),P(B),P(C),P(D),P(E)P(A),P(B),P(C),P(D),P(E).

:这些概率值满足以下约束条件:
P(A)+P(B)+P(C)+P(D)+P(E)=1P(A)+P(B)+P(C)+P(D)+P(E)=1 P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这个约束条件的概率分布有无穷多个。如果没有任何其他信息,仍要对概率分布进行估计,一个办法就是认为这个分布中取各个值的概率是相等的:
P(A)=P(B)=P(C)=P(D)=P(E)=15P(A)=P(B)=P(C)=P(D)=P(E)=\frac{1}{5} P(A)=P(B)=P(C)=P(D)=P(E)=51​
等概率表示了对事实的无知。因为没有更多的信息,这种判断是合理的。

有时,能从一些先验知识中得到一些对概率值的约束条件,例如:
P(A)+P(B)=310P(A)+P(B)+P(C)+P(D)+P(E)=1P(A)+P(B)=\frac{3}{10} \\ P(A)+P(B)+P(C)+P(D)+P(E)=1 P(A)+P(B)=103​P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这两个约束条件的概率分布仍然有无穷多个。在缺少其他信息的情况下,可以认为A与B是等概率的,C,D与E是等概率的,于是,
P(A)=P(B)=320P(C)=P(D)=P(E)=730P(A)=P(B)=\frac{3}{20} \\ P(C)=P(D)=P(E) = \frac{7}{30} P(A)=P(B)=203​P(C)=P(D)=P(E)=307​
如果还有第3个约束条件:
P(A)+P(C)=12P(A)+P(B)=310P(A)+P(B)+P(C)+P(D)+P(E)=1P(A)+P(C)=\frac{1}{2} \\ P(A)+P(B)=\frac{3}{10} \\ P(A)+P(B)+P(C)+P(D)+P(E)=1 P(A)+P(C)=21​P(A)+P(B)=103​P(A)+P(B)+P(C)+P(D)+P(E)=1
可以继续按照满足约束条件下求等概率的方法估计概率分布。这里不再继续讨论。以上概率模型学习的方法正式遵循了最大熵原理。

下图提供了用最大熵原理进行概率模型选择的几何解释。概率模型集合P可由欧式空间中的单纯形表示,如左图的三角形(2-单纯性)。一个点代表一个模型,整个单存形代表模型集合。一般地,这样的模型仍有无穷多个。学习的目的是在可能的模型集合中选择最优模型,而最大熵原理则给出最优模型选择的一个准则。

2. 最大熵模型的定义

最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型。

假设分类模型是一个条件概率分布P(Y∣X),X∈χ⊂RnP(Y|X),X\in \chi \subset \bold R^nP(Y∣X),X∈χ⊂Rn表示输入,Y∈γY\in \gammaY∈γ表示输出,χ\chiχ和γ\gammaγ分别是输入和输出的集合。这个模型表示的是对于给定的输入XXX,以条件概率P(Y∣X)P(Y|X)P(Y∣X)输出Y。

给定一个训练数据集
T={(x1,y1),(x2,y2),⋅⋅⋅,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),···,(x_N,y_N)\} T={(x1​,y1​),(x2​,y2​),⋅⋅⋅,(xN​,yN​)}
学习的目标是用最大熵原理选择最好的分类模型。

首先考虑模型应该满足的条件。给定训练数据集,可以确定联合分布P(X,Y)P(X,Y)P(X,Y)的经验分布和边缘分布P(X)P(X)P(X)的经验分布,分别以P^(X,Y)\hat P(X,Y)P^(X,Y)和P^(X)\hat P(X)P^(X)表示。这里,
P^(X=x,Y=y)=v(X=x,Y=y)NP^(X=x)=v(X=x)N\hat P(X=x,Y=y)=\frac{v(X=x,Y=y)}{N} \\ \hat P(X=x)=\frac{v(X=x)}{N} P^(X=x,Y=y)=Nv(X=x,Y=y)​P^(X=x)=Nv(X=x)​
其中,v(X=x,Y=y)v(X=x,Y=y)v(X=x,Y=y)表示训练数据中样本(x,y)(x,y)(x,y)出现的频数,v(X=x)v(X=x)v(X=x)表示训练数据中输入x出现的频数,N表示训练样本容量。

用特征函数(feature function,可以是任何实值函数)f(x,y)f(x,y)f(x,y)描述输入x和输出y之间的某一个事实。其定义是
f(x,y)={1,x与y满足某一事实0,否则f(x,y)=\begin{cases} 1, & x与y满足某一事实 \\ 0, & 否则 \end{cases} f(x,y)={1,0,​x与y满足某一事实否则​
它是一个二值函数,当x和y满足这个事实时取值为1,否则取值为0.

特征函数f(x,y)f(x,y)f(x,y)关于经验分布P^(X,Y)\hat P(X,Y)P^(X,Y)的期望值,用EP^(f)E_{\hat P}(f)EP^​(f)表示。
Ep^(f)=∑x,yP^(x,y)f(x,y)E_{\hat p}(f)=\sum_{x,y}\hat P(x,y)f(x,y) Ep^​​(f)=x,y∑​P^(x,y)f(x,y)
特征函数f(x,y)f(x,y)f(x,y)关于模型P(Y∣X)P(Y|X)P(Y∣X)与经验分布P^(X)\hat P(X)P^(X)的期望值,用Ep(f)E_p(f)Ep​(f)表示。
Ep(f)=∑x,yP^(x)P(y∣x)f(x,y)E_p(f)=\sum_{x,y}\hat P(x)P(y|x)f(x,y) Ep​(f)=x,y∑​P^(x)P(y∣x)f(x,y)
如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即
Ep(f)=Ep^(f)(5)E_p(f)=E_{\hat p}(f) \tag{5} Ep​(f)=Ep^​​(f)(5)

∑x,yP^(x)P(y∣x)f(x,y)=∑x,yP^(x,y)f(x,y)(6)\sum_{x,y}\hat P(x)P(y|x)f(x,y)=\sum_{x,y}\hat P(x,y)f(x,y) \tag{6} x,y∑​P^(x)P(y∣x)f(x,y)=x,y∑​P^(x,y)f(x,y)(6)
将式(5)或式(6)作为模型学习的约束条件。假如有n个特征函数fi(x,y),i=1,2,⋅⋅⋅,nf_i(x,y),\quad i=1,2,···,nfi​(x,y),i=1,2,⋅⋅⋅,n,那么就有n个约束条件。

定义:(最大熵模型)假设满足所有约束条件的模型集合为
C≡{P∈P∣Ep(fi)=EP^(fi),i=1,2,⋅⋅⋅,n}C\equiv \{P\in \Rho|E_p(f_i)=E_{\hat P}(f_i),\quad i=1,2,···,n\} C≡{P∈P∣Ep​(fi​)=EP^​(fi​),i=1,2,⋅⋅⋅,n}
定义在条件概率分布P(Y∣X)P(Y|X)P(Y∣X)上的条件熵为
H(P)=−∑x,yP^(x)P(y∣x)logP(y∣x)H(P)=-\sum_{x,y}\hat P(x)P(y|x)logP(y|x) H(P)=−x,y∑​P^(x)P(y∣x)logP(y∣x)
则模型集合C中条件熵H(P)H(P)H(P)最大的模型称为最大熵模型。式中的对数为自然对数。

最大熵(一)| 最大熵原理+模型 | 《统计学习方法》学习笔记(二十三)相关推荐

  1. 统计学习方法 学习笔记(1)统计学习方法及监督学习理论

    统计学习方法及监督学习理论 1.1.统计学习 1.1.1.统计学习的特点 1.1.2.统计学习的对象 1.1.3.统计学习的目的 1.1.4.统计学习的方法 1.1.5.统计学习的研究 1.1.6.统 ...

  2. 逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

    本文包括: 重要概念 逻辑斯蒂回归和线性回归 二项逻辑斯谛回归模型 逻辑斯蒂回顾与几率 模型参数估计 多项逻辑斯谛回归 其它有关数据分析,机器学习的文章及社群 1.重要概念: 在正式介绍逻辑斯蒂回归模 ...

  3. 统计学习方法 学习笔记(十):决策树

    这一个学习笔记将要了解决策树,在研一上机器学习这门课的时候,老师在讲到这一节的时候,举了一个例子我现在还能记得:你们坐在这里上课,就像这个决策树一样,在你人生中的每一个重要结点,你都做出了选择,经过多 ...

  4. 统计学习方法 学习笔记(五):支持向量机(下)

    通过支持向量机(上)和支持向量机(中)的介绍,对支持向量机应该有点感性的认识啦!在这个学习笔记中,来继续探寻带核函数的支持向量机(解决如下图所示的问题) 对解线性分类问题,线性分类支持向量机是一种非常 ...

  5. 立创eda学习笔记二十三:如何将原理图和焊盘关联?(交叉选择)

    这是我在网上看到的一个提问,我对这个提问有两个理解, 1,如何显示原理图符号和PCB封装之间的对应位置关系? 那么可以使用以下的交叉选择功能. 这个功能是用来跳转原理图符号和PCB封装之间的对应位置. ...

  6. 《COM原理与应用》学习笔记二——COM对象和COM接口的实现

    COM对象是给用户提供服务的封装的实体.这个应该和C++中类的对象理解起来是相似的.但是有时候也把COM对象当作提供服务的那个类.COM对象也对数据进行了封装,然后也提供了接口.不过和类还是有一些不一 ...

  7. python学习笔记(二十三) -- 多进程和多线程

    目录 多线程多进程的意义 多进程的使用 方式一(fork):  只能在Unix/Linux/Mac系统下执行,windows不可以 方式二(multiprocessing.Process): 全平台通 ...

  8. Mr.J-- jQuery学习笔记(二十三)--applycall

    之前在学习JavaScript的时候写的:Mr.J--JS学习(继承模式发展史)里面写了我对原生JS call和apply的理解,以及原型链的应用:prototype apply&call J ...

  9. IOS学习笔记二十三对象归档(NSKeyedArchiver、NSKeyedUnArchiver、NSCodeing)

    1.NSKeyedArchiver.NSKeyedUnArchiver 1).archiveRootObject:toFile 归档对象到这个路径文件 2).unarchiveObjectWithFi ...

  10. Java学习笔记(二十三)日志体系(logback)

    Java日志体系(logback) logback 简介 师出同门,与log4j一样,logback也是由Ceki Gülcü开发的开源日志组件,可以说是log4j的改进版:在现如今的项目中,logb ...

最新文章

  1. python的变量和简单的数据类型
  2. 韦东山驱动视频笔记——3.字符设备驱动程序之poll机制
  3. 只需要30秒就可以做的30件事情:你会选择哪一件来改变世界?
  4. Webservice初接触
  5. python args kw_Python基础-参数魔法,*args,**kwags
  6. 【华为云实战开发】16.DevOps交付模式下的软件测试
  7. android 拨打多个电话,Android的第一个应用(拨打电话)
  8. MFC开发IM-第七篇、mfc设置默认编辑框内容
  9. 汽车在转型!福特中国的架构实践
  10. python框架漏洞_注意!Python中的10个常见安全漏洞及修复方法
  11. mysql如何连接jdk,JDBC 简单的Mysql连接
  12. Hello Ragel -- 生成状态机的神器
  13. python里的平方_python中平方和
  14. [每日100问][2011-10-06]iphone开发笔记,今天你肿了么
  15. Django 2.1.7 项目技巧 - 创建apps应用目录归纳所有应用
  16. 使用 JavaScript 和 CSS 做一个图片转 PDF 的转换器
  17. CAD教程:CAD软件中CAD布尔运算命令怎么用?
  18. idea 启动参数设置
  19. 【正点原子Linux连载】第一章 应用编程概念-摘自【正点原子】I.MX6U嵌入式Linux C应用编程指南V1.1
  20. Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)! To rerun under ARM use: ar

热门文章

  1. 【ELM回归预测】基于matlab粒子群算法优化ELM回归预测【含Matlab源码 1722期】
  2. 单变量微积分笔记7——曲线构图
  3. mysql 查询一天中每个小时的数据量
  4. CAP定理和BASE理论
  5. java maven项目配置windows环境并换源
  6. java -jar 工作原理_可执行Jar包运行原理
  7. python 替换文本 通配符_python实现替换word中的关键文字(使用通配符)
  8. word编辑技巧:查找替换中通配符应用
  9. 逻辑回归原理及matlab实现
  10. hp 服务器ipmi协议,HP DL380 G6 服务器IPMI Interface在Windows 2003 下怎么安驱动?_电脑_天涯问答_天涯社区...