机器学习—最大熵模型(MEM)小结

机器学习—最大熵模型(MEM)小结当我们想要得到一个随机事件的概率分布时,如果没有足够的信息来完全确定其概率分布,那么最为保险的方法就是选择使得熵最大的分布。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

  当我们想要得到一个随机事件的概率分布时,如果没有足够的信息来完全确定其概率分布,那么最为保险的方法就是选择一个使得熵最大的分布。

1.信息论知识

  这里就照搬我写的一篇关于决策树的内容了。原文链接:决策树与随机森林(从入门到精通)

1.1信息熵的概念

   设离散型随机变量X的取值有 x 1 , x 2 , x 3 , . . . , x n x_{1},x_{2},x_{3},…,x_{n} x1,x2,x3,...,xn,其发生概率分别为 p 1 , p 2 , p 3 , . . . , p n p_{1},p_{2},p_{3},…,p_{n} p1,p2,p3,...,pn,那么就可以定义信息熵为:
在这里插入图片描述
一般对数的底数是2,当然也可以换成e,当对数底数为2时,信息熵的单位为比特,信息熵也称香农熵。当对数不为2而是其他大于2的整数r时,我们称信息熵为r-进制熵,记为 H r ( X ) H_{r}(X) Hr(X),它与信息熵转换公式为:
在这里插入图片描述
信息熵用以描述信源的不确定度, 概率越大,可能性越大,但是信息量越小,不确定性越小,熵越小。

1.2.条件熵

设随机变量(X,Y)具有联合概率分布:
在这里插入图片描述
  条件熵 H ( Y ∣ X ) H(Y|X) H(YX)表示 在已知随机变量X的条件下随机变量Y的不确定性。可以这样理解:(X,Y)发生所包含的熵,减去X单独发生的熵,就是在X发生的前提下,Y发生新带来的熵。
所以条件熵有如下公式成立:
在这里插入图片描述
推导如下:
在这里插入图片描述

1.3相对熵

  相对熵,又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度等。定义如下:
设p(x),q(x)是随机变量X中取值的两个概率分布,则p对q的相对熵为:
在这里插入图片描述
在信息理论中,相对熵等价于两个分布的信息熵(Shannon entropy)的差值。 即:
在这里插入图片描述

1.4互信息

  两个随机变量X和Y的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵。即:
在这里插入图片描述
所以根据KL散度也就是相对熵的定义,可以推出互信息的表达式如下:
在这里插入图片描述
继续推导如下:
在这里插入图片描述
所以最后有:
在这里插入图片描述

1.5几个量之间的关系

结合上述条件熵的两个表达式,可以进一步推出:
在这里插入图片描述
当然我们也可以根据熵的定义来直接推出上面这个互信息的公式:
在这里插入图片描述
同时我们也可以得到两个不等式:
在这里插入图片描述
上面这个不等式告诉我们,对于一个与X相关的随机变量Y,只要我们得知了一点关于Y的信息,那么X的不确定度就会减小。
最后,借助强大的韦恩图来记住这些关系:
在这里插入图片描述

2.无约束条件

  假设有一随机变量X是离散的,我们只是知道它有K个可能的取值,其余什么信息都不知道,那么我们该如何估计才能使得熵最大呢?

X 1…K
p p1…pK
根据上面熵的定义,我们知道我们要做的其实就是:
在这里插入图片描述

概率相加为1这个条件肯定得是天然满足的,换成求最小值:
在这里插入图片描述
同样利用拉格朗日乘子法,我们令:
在这里插入图片描述
我们让L对 p i p_{i} pi求导得:
在这里插入图片描述
  可以看到,每一个 p i p_{i} pi都是一个相等的常数,又因为相加为1,所以每一个取值发生的概率都相等并且为1/K。因此,不知道任何已知条件的情况下,离散的随机变量均匀分布时,它的熵最大。

3.最大熵原理

  我们设数据集为 ( x 1 , x 2 , . . . , x N ) (x_{1},x_{2},…,x_{N}) (x1,x2,...,xN)
  最大熵原理认为:在所有可能的概率模型中,熵最大的模型为最好的概率模型。求最大熵模型的步骤大致为:

  1. 根据已知约束条件筛选出可能的概率模型
  2. 在所有可能的概率模型中选出一个熵最大的模型作为最终的模型。

3.1构造约束条件

  我们第一步要根据已知条件筛选出可能的概率模型,那么什么才是已知条件?这个需要我们自己构造,构造步骤如下:

  • 我们定义一个f(x),f(x)是任意一个关于随机变量x的函数,我们称它为特征函数。
  • 根据我们上面给出的训练数据集,我们可以得到f(x)的经验分布为 p ^ ( f ( x ) ) \hat{p}(f(x)) p^(f(x)),进而求得其经验分布的期望为: E p ^ [ f ( x ) ] E_{\hat{p}}[f(x)] Ep^[f(x)]=一个已知量。
  • 解释一下经验分布: p ^ ( f ( x 1 ) ) \hat{p}(f(x1)) p^(f(x1))= x 1 x_{1} x1在训练集中出现的次数/样本集的总数目。

   为什么我们要定义一个经验概率分布呢? 因为如果我们判断的随机变量x的概率分布是正确的,那么我们定义一个任意一个特征函数f(x),算出它的经验概率分布的期望,应该就等于f(x)真实的期望,这样我们就构造了一个约束条件。

3.2求解概率分布

那么我们最终要求解的就是:
在这里插入图片描述
其中 δ \delta δ已知。利用拉格朗日乘子法,我们令:
在这里插入图片描述
其中 λ 0 是 一 个 常 数 , λ 是 一 个 列 向 量 , \lambda_{0}是一个常数,\lambda是一个列向量, λ0λf(x)也是一个列向量,它们都是Q维。我们让L对 p ( x ) p(x) p(x)求导得:
在这里插入图片描述
于是我们就得到了 p ( x ) p(x) p(x)的具体值,也就是x的具体分布。剩余参数可以通过KKT条件来求,这里就不再叙述了,具体可以参考:强对偶性、弱对偶性以及KKT条件的证明(对偶问题的几何证明)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180267.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深入浅析Mysql联合索引原理 之 最左匹配原则。

    深入浅析Mysql联合索引原理 之 最左匹配原则。前言之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,自以为就了解了其原理,最近面试时和大牛交流中,发现遗漏了些东西,这里自己整理一下这方面的内容。最左前缀匹配原则在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,示例:CREATETABLE`student`(`Id`int(11)unsign…

    2022年6月3日
    40
  • leetcode难度级别_直线上最多的点数

    leetcode难度级别_直线上最多的点数给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o| o| o +————->0 1 2 3 4示例 2:输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]输出: 4解释:^|| o| o o| o| o o+—–

    2022年8月9日
    9
  • 什么是gan网络_DAN网络

    什么是gan网络_DAN网络引言GAN,全称GenerativeAdversarialNetworks,中文叫生成式对抗网络,了解GAN,私下我喜欢叫它为“内卷”网络,为啥这么说,我们先来看一个故事!!!01警察与小偷的故事在宇宙的某个星球,某个地方有一个城市,这个城市是一个新兴城市,各种制度建设还不完善,所以城市的治安很混乱,很快,这个城市就出现了很多小偷。当然,现在这批小偷能力层次不齐,有的是盗窃高手,有的是一个毫无技术的小憨憨。小偷盛行,市民投诉反馈,这个城市就开始整治…

    2025年6月27日
    3
  • uniapp 真机调试_app调试

    uniapp 真机调试_app调试一:华为手机实时调试APP代码基座流程1.打开手机的开发者模式,允许USB调试,手机操作流程,进入设置-关于手机,长按版本号(开启开发模式),然后按图操作,下拉屏幕发行已连接USB调试,手机端就暂时不用再操作了2.电脑安装360手机助手,这个软件打开浏览器或者用360软件助手下载就好了,它是HBuildX和手机连接的桥梁3.HBuildX操作运行之后就可以在控制台查看进展,会自动在手机安装APK调试基座(用于调试的APK,APK就是安卓APP的安装包).

    2025年9月18日
    7
  • Linux系统终端里的root@localhost变成root@bogon的主机名改变的解决办法

    Linux系统终端里的root@localhost变成root@bogon的主机名改变的解决办法bogon 是主机名利用 hostname 可以查看当前主机名 vi etc sysconfig network 中修改 HOSTNAME 必须重新启动才能生效 Linux 主机名被修改成 bogon 问题的几种解决办法当 Linux 主机名由 myhostname 变成了 bogon 了之后 访问网络就会出现问题 重启后也没有解决 网上搜索 N 久之后 发现了如下几种解决方式 特此记录一下 1 在 linux 下添

    2025年6月8日
    4
  • html table样式设计_html设置table中的字体

    html table样式设计_html设置table中的字体table.gridtable{font-family:verdana,arial,sans-serif;font-size:11px;color:#333333;border-width:1px;border-color:#666666;border-collapse:collapse;}table.gridtableth{border-width:1px;padding…

    2026年1月30日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号