一、熵(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. 第12组 Beta冲刺 (5/5)

    1.1基本情况 ·队名:美少女战士 ·组长博客:https://www.cnblogs.com/yaningscnblogs/p/14016978.html ·作业博客:https://edu.cnb ...

  2. STL练习-ACboy needs your help again!

      ACboy was kidnapped!! he miss his mother very much and is very scare now.You can't image how dark ...

  3. ddddd

    项目二阶段总结 账户微服务 短信发送 1.压测发现问题 首先对短信smscomponent的send方法在test单元测试类中测试,不是真的发短信测试,可以建立请求开始和结束的时间戳来确定请求的耗时. ...

  4. intellij idea修改背景图片

    上方菜单栏选择 File -> settings -> plugins,搜索Backgroung Image Plus插件 下载之后restart 菜单栏上选择view   设置好后选择O ...

  5. MySql数据库读取字段错误问题

    一个小小的BUG,断断续续搞了一个月才搞定,使用MySql的时候使用mysql_fetch_fields()获取的字段始终始终是错误的,因为是修改别人的代码,一直找不到问题,Debug了无数次还是搞不 ...

  6. 删除oracle

    完全卸载oracle11g步骤: 1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务. 2. 开始->程序->Oracle - OraHo ...

  7. 2020.6.6OO学期末总结

    0.前言 本次博客是对整个java及oo学习情况的一个概略性总结,目的在于反思这半年来的学习情况和实际感受,和具体学习方面的理解和问题. 1.作业过程总结 看着自己一个学期做的所有作业,我想起的是总是 ...

  8. mysql-开启日志记录功能

    开启日志记录功能 -- 开启功能 SET GLOBAL general_log = ON; -- 保存到文件 SET GLOBAL log_output = 'file'; 查看日志内容 -- 查看日 ...

  9. Nginx自带的变量

    $args #请求中的参数值$query_string #同 $args$arg_NAME #GET请求中NAME的值$is_args #如果请求中有参数,值为"?",否则为空字符 ...

  10. 实验二:Open vSwitch虚拟交换机实践

    基础要求提交 a) /home/用户名/学号/lab2/目录下执行ovs-vsctl show命令.以及p0和p1连通性测试的执行结果截图: b) /home/用户名/学号/lab2/目录下开启Min ...