一、熵(PRML)

考虑将A地观测的一个随机变量x,编码后传输到B地。
这个随机变量有8种可能的状态,每个状态都是等可能的。为了把x的值传给接收者,需要传输⼀个3⽐特的消息。注意,这个变量的熵由下式给出:
⾮均匀分布⽐均匀分布的熵要⼩。
如果概率分布非均匀,同样使用等长编码,那么并不是最优的。相反,可以根据随机变量服从的概率分布构建Huffman树,得到最优的前缀编码。
可以利⽤⾮均匀分布这个特点,使⽤更短的编码来描述更可能的事件,使⽤更长的编码来描述不太可能的事件。
可以使⽤下⾯的编码串:0、10、110、1110、111100、111101、111110、111111来表⽰状态{a, b, c, d, e, f, g, h}。传输的编码的平均长度就是
⽆噪声编码定理(noiseless coding theorem)表明,熵是传输⼀个随机变量状态值所需的⽐特位的下界。
 
事实上,熵的概念最早起源于物理学,是在热⼒学平衡的背景中介绍的。后来,熵成为描述统计⼒学中的⽆序程度的度量。
考虑⼀个集合,包含N个完全相同的物体,这些物体要被分到若⼲个箱⼦中,使得第i个箱⼦中有ni个物体。考虑把物体分配到箱⼦中的不同⽅案的数量。有N种⽅式选择第⼀个物体,有(N -1)种⽅式选择第⼆个物体,以此类推。
因此总共有N!种⽅式把N个物体分配到箱⼦中,其中N!表⽰乘积N × (N -1) × · · · × 2 × 1。然⽽,我们不想区分每个箱⼦内部物体的重新排列。在第i个箱⼦中,有ni!种⽅式对物体重新排序,因此把N个物体分配到箱⼦中的总⽅案数量为:
这被称为乘数(multiplicity)。熵被定义为通过适当的参数放缩后的对数乘数,即

二、惊奇与信息

考虑关于⼀个随机试验中可能出现的事件E。当我们真正观察到事件E时,我们接收到了多少信息呢?对事件E的惊奇程度取决于E发生概率,越是不可能的事件发生,带来的惊奇程度越大
  • 如果有⼈告诉我们⼀个相当不可能的事件发⽣了,我们收到的信息要多于我们被告知某个很可能发⽣的事件发⽣时收到的信息。
  • 如果听到⼀个必然事情,那么就不会接收到信息。EX: 明天有24h
对惊奇程度进行量化:信息量可看成E发生时的“惊讶程度”(消除不确定性的程度)
对于信息内容的度量将依赖于概率分布p(x),因此想要寻找⼀个函数h(x),它是概率p(x)的单调递增函数,表达了信息的内容。
h(·)的形式可以这样寻找:
  • 如果有两个不相关的事件x和y,那么观察到两个事件同时发⽣时获得的信息应该等于观察到事件各⾃发⽣时获得的信息之和,即h(x, y) = h(x) + h(y)。
  • 两个不相关事件是统计独⽴的,因此p(x, y) = p(x)p(y)。
根据这两个关系,很容易看出h(x)⼀定与p(x)的对数有关。因此有:h(x) = -log2p(x)。
  • 其中,负号确保了信息⼀定是正数或者是零。
  • 注意,低概率事件x对应于⾼的信息量。
  • 对数的底遵循信息论使⽤2作为对数的底(2进制编码最短)。
h(x)的单位是⽐特(bit, binary digit)。
随机变量的熵,衡量了其分布下的编码长度(概率值的倒数的对数)的期望,即平均编码长度。
 

三、熵的相关变量

熵用于衡量不确定性,其相当于是编码一个随机变量的平均最小编码长度(最优编码的下界,即huffman编码)

1.自信息-二进制编码长度

\[\frac{1}{q(x)}
\]

2.信息熵

\[ H\Big(p(x)\Big)
= - \int p(x)\ln p(x)dx
\\ = \int p(x)\ln \frac{1}{p(x)}dx
= \mathbb{E}_{x\sim p(x)}\left[\ln\frac{1}{p(x)}\right]
\]

3.交叉熵,用一个分布p(x)的编码去编码另一个分布q(x)的代价(平均编码长度)

\[C\Big(p(x)\Big\Vert q(x)\Big)
= - \int p(x)\ln q(x)dx
\\ = \mathbb{E}_{x\sim p(x)}\left[\ln\frac{1}{q(x)}\right]
\]

分布q(x)的自信息(最小编码长度)关于分布p(x)的期望

Ex: q(x1) = 0.25需要2bits,例如00来编码,但p(x1)=0.01

,相当于用更短的编码来编码低频取值(不符合高频短码),可能导致编码代价更大。

随机变量取值越多,熵越大(信息增益)

4.KL散度,衡量两个分布p(x)和q(x)的距离(不相似程度):

用一个分布p(x)的编码去编码另一个分布q(x)的额外代价

若KL散度为0,则表示编码额外代价为0,即两个分布相同

\[ KL\Big(p(x)\Big\Vert q(x)\Big)
= - \int p(x)\ln \frac{q(x)}{p(x)} dx
= \int p(x)\ln \frac{p(x)}{q(x)} dx
\\= \int p(x)\ln p(x) - p(x)\ln q(x)dx
\\ = - \int p(x)\ln q(x)dx - (-\int p(x)\ln p(x) )
\\ = C\Big(p(x)\Big\Vert q(x)\Big) - H\Big(p(x)\Big)
\\ =
\mathbb{E}_{x\sim p(x)}\left[\ln\frac{p(x)}{q(x)}\right] \]

由于熵为常数项,最小化交叉熵,相当于最小化KL散度(最大似然),离散形式即求和。

  1. 互信息



联合分布p(x, y)和边缘分布乘积累p(x)p(y)的KL散度。

如果互信息为0,则两个边缘分布独立p(x, y) = p(x) p(y)

信息论之从熵、惊奇到交叉熵、KL散度和互信息的更多相关文章

  1. 深度学习面试题07:sigmod交叉熵、softmax交叉熵

    目录 sigmod交叉熵 Softmax转换 Softmax交叉熵 参考资料 sigmod交叉熵 Sigmod交叉熵实际就是我们所说的对数损失,它是针对二分类任务的损失函数,在神经网络中,一般输出层只 ...

  2. 信息论相关概念:熵 交叉熵 KL散度 JS散度

    目录 机器学习基础--信息论相关概念总结以及理解 1. 信息量(熵) 2. KL散度 3. 交叉熵 4. JS散度 机器学习基础--信息论相关概念总结以及理解 摘要: 熵(entropy).KL 散度 ...

  3. 【机器学习基础】熵、KL散度、交叉熵

    熵(entropy).KL 散度(Kullback-Leibler (KL) divergence)和交叉熵(cross-entropy)在机器学习的很多地方会用到.比如在决策树模型使用信息增益来选择 ...

  4. 交叉熵理解:softmax_cross_entropy,binary_cross_entropy,sigmoid_cross_entropy简介

    cross entropy 交叉熵的概念网上一大堆了,具体问度娘,这里主要介绍深度学习中,使用交叉熵作为类别分类. 1.二元交叉熵 binary_cross_entropy 我们通常见的交叉熵是二元交 ...

  5. 第五节,损失函数:MSE和交叉熵

    损失函数用于描述模型预测值与真实值的差距大小,一般有两种比较常见的算法——均值平方差(MSE)和交叉熵. 1.均值平方差(MSE):指参数估计值与参数真实值之差平方的期望值. 在神经网络计算时,预测值 ...

  6. 理解交叉熵(cross_entropy)作为损失函数在神经网络中的作用

    交叉熵的作用 通过神经网络解决多分类问题时,最常用的一种方式就是在最后一层设置n个输出节点,无论在浅层神经网络还是在CNN中都是如此,比如,在AlexNet中最后的输出层有1000个节点: 而即便是R ...

  7. 信息论随笔3: 交叉熵与TF-IDF模型

    接上文:信息论随笔2: 交叉熵.相对熵,及上上文:信息论随笔 在读<数学之美>的时候,相关性那一节对TF-IDF模型有这样一句描述:"其实 IDF 的概念就是一个特定条件下.关键 ...

  8. 最大似然估计 (Maximum Likelihood Estimation), 交叉熵 (Cross Entropy) 与深度神经网络

    最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看.今天准备写 ...

  9. 熵(Entropy),交叉熵(Cross-Entropy),KL-松散度(KL Divergence)

    1.介绍: 当我们开发一个分类模型的时候,我们的目标是把输入映射到预测的概率上,当我们训练模型的时候就不停地调整参数使得我们预测出来的概率和真是的概率更加接近. 这篇文章我们关注在我们的模型假设这些类 ...

  10. 深度学习中交叉熵和KL散度和最大似然估计之间的关系

    机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论 ...

随机推荐

  1. php 验证身份证合法性

    function checkIdcard($num = '') { $length = strlen($num); if ($length == 15) { //如果是15位身份证 //15位身份证没 ...

  2. database.properties基本配置

    database.properties基本配置 jdbc.driver=com.mysql.jdbc.Driver # jdbc.url=jdbc:mysql://localhost:3306/ssm ...

  3. FlexPaperViewer跨服务器\跨域访问swf不显示问题

    做在线预览办公文档时,遇到了使用flexpaper访问文件服务器swf不显示问题. 假想1: swf文件有问题? 实验1: 直接访问swf文件在文件服务器的地址,浏览器可以正常访问,但是放在flexp ...

  4. Python命令提示符:不是内部或外部命令,也不是可运行的程序或批处理文件

    Python原装IDE(Integrated Development Environment)安装时,需要确认更新pip(什么是 pip ?pip 是 Python 中的标准库管理器.它允许你安装和管 ...

  5. 将成员服务器ms1加到AD域中

    1.对ms1的ipv4设置,dns对应地址dc1服务器地址 2.修改计算机名,并加入域 重启后 2.以域用户登录方式有两种 1.  2. 检查ms1有没有加入dc1的域中 在dc1

  6. UIPath踩坑记一 对 COM 组件的调用返回了错误 HRESULT E_FAIL。UiPath.UiNodeClass.InjectAndRunJS

    [ERROR] [UiPath.Studio] [1] 错误: System.Exception: 对 COM 组件的调用返回了错误 HRESULT E_FAIL. ---> System.Ex ...

  7. Scrapy框架报错:Ignoring non-200 response

    1.当爬取页面状态码是异常状态码,但response是正常的时候,正常情况Scrapy框架会判断状态码,如果不是正常状态码会停止后续操作 解决方案: 在meta"handle_httpsta ...

  8. DB2通过java代码生成自定义uuid()函数

    一.简单的方法 此种方法在快速大量生成时,会有重复 SELECT concat (hex (RAND ()), hex (RAND ())) as uuid FROM SYSIBM.SYSDUMMY1 ...

  9. Android笔记--动态申请权限

    动态申请权限 在动态申请权限这里,一共分为两种不同的模式,分别是Lazy模式(懒汉式)和Hungry模式(饿汉式),这两种模式区分的话,可以通俗地解释一下就是,对于懒汉来说,只有在我们点击某个按钮需要 ...

  10. AOP的九点核心概念和作用

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点 ...