信息论之从熵、惊奇到交叉熵、KL散度和互信息
一、熵(PRML)





二、惊奇与信息

- 如果有⼈告诉我们⼀个相当不可能的事件发⽣了,我们收到的信息要多于我们被告知某个很可能发⽣的事件发⽣时收到的信息。
- 如果听到⼀个必然事情,那么就不会接收到信息。EX: 明天有24h
- 如果有两个不相关的事件x和y,那么观察到两个事件同时发⽣时获得的信息应该等于观察到事件各⾃发⽣时获得的信息之和,即h(x, y) = h(x) + h(y)。
- 两个不相关事件是统计独⽴的,因此p(x, y) = p(x)p(y)。
- 其中,负号确保了信息⼀定是正数或者是零。
- 注意,低概率事件x对应于⾼的信息量。
- 对数的底遵循信息论使⽤2作为对数的底(2进制编码最短)。


三、熵的相关变量
熵用于衡量不确定性,其相当于是编码一个随机变量的平均最小编码长度(最优编码的下界,即huffman编码)
1.自信息-二进制编码长度
\]
2.信息熵
= - \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)的代价(平均编码长度)
= - \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,即两个分布相同
= - \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散度(最大似然),离散形式即求和。
- 互信息


联合分布p(x, y)和边缘分布乘积累p(x)p(y)的KL散度。
如果互信息为0,则两个边缘分布独立p(x, y) = p(x) p(y)
信息论之从熵、惊奇到交叉熵、KL散度和互信息的更多相关文章
- 深度学习面试题07:sigmod交叉熵、softmax交叉熵
目录 sigmod交叉熵 Softmax转换 Softmax交叉熵 参考资料 sigmod交叉熵 Sigmod交叉熵实际就是我们所说的对数损失,它是针对二分类任务的损失函数,在神经网络中,一般输出层只 ...
- 信息论相关概念:熵 交叉熵 KL散度 JS散度
目录 机器学习基础--信息论相关概念总结以及理解 1. 信息量(熵) 2. KL散度 3. 交叉熵 4. JS散度 机器学习基础--信息论相关概念总结以及理解 摘要: 熵(entropy).KL 散度 ...
- 【机器学习基础】熵、KL散度、交叉熵
熵(entropy).KL 散度(Kullback-Leibler (KL) divergence)和交叉熵(cross-entropy)在机器学习的很多地方会用到.比如在决策树模型使用信息增益来选择 ...
- 交叉熵理解:softmax_cross_entropy,binary_cross_entropy,sigmoid_cross_entropy简介
cross entropy 交叉熵的概念网上一大堆了,具体问度娘,这里主要介绍深度学习中,使用交叉熵作为类别分类. 1.二元交叉熵 binary_cross_entropy 我们通常见的交叉熵是二元交 ...
- 第五节,损失函数:MSE和交叉熵
损失函数用于描述模型预测值与真实值的差距大小,一般有两种比较常见的算法——均值平方差(MSE)和交叉熵. 1.均值平方差(MSE):指参数估计值与参数真实值之差平方的期望值. 在神经网络计算时,预测值 ...
- 理解交叉熵(cross_entropy)作为损失函数在神经网络中的作用
交叉熵的作用 通过神经网络解决多分类问题时,最常用的一种方式就是在最后一层设置n个输出节点,无论在浅层神经网络还是在CNN中都是如此,比如,在AlexNet中最后的输出层有1000个节点: 而即便是R ...
- 信息论随笔3: 交叉熵与TF-IDF模型
接上文:信息论随笔2: 交叉熵.相对熵,及上上文:信息论随笔 在读<数学之美>的时候,相关性那一节对TF-IDF模型有这样一句描述:"其实 IDF 的概念就是一个特定条件下.关键 ...
- 最大似然估计 (Maximum Likelihood Estimation), 交叉熵 (Cross Entropy) 与深度神经网络
最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看.今天准备写 ...
- 熵(Entropy),交叉熵(Cross-Entropy),KL-松散度(KL Divergence)
1.介绍: 当我们开发一个分类模型的时候,我们的目标是把输入映射到预测的概率上,当我们训练模型的时候就不停地调整参数使得我们预测出来的概率和真是的概率更加接近. 这篇文章我们关注在我们的模型假设这些类 ...
- 深度学习中交叉熵和KL散度和最大似然估计之间的关系
机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论 ...
随机推荐
- 字节过滤流 --->对象流(存入对象的)----> ObjectOutputStream: 用法
前提:1).要有一个类 并创建这个类的对象2)要让类必须继承Serializable接口3)transient修饰的属性 值不参与序列化1创建字节输出节点流FileOutputStream fos = ...
- [读书笔记]FDTD与YEE晶胞
截图选自Understanding the Finite-Difference Time-Domain Metho 作者是John B. Schneider 有限差分时域(FDTD)方法使用有限差分 ...
- sql server clr json to table
背景 SQL SERVER 2016 之前版本不支持 直接解析json 步骤: 1 vs 数据库项目 2 生成dll 3 加入信任 DECLARE @hash AS BINARY(64) = (SEL ...
- 微信小程序 实现点击返回顶部
效果: wxml: <!-- 点击回顶部 --> <image src='/images/top.jpg' class='goTop' hidden='{{showTop}}' bi ...
- Shell脚本实现模拟并发及并发数控制
#!/bin/bash #by inmoonlight@163.com #下面的代码控制并发数.其实是利用令牌原理实现 #一个线程要运行,首先要拿到令牌在该代码中即read一行数据,读取不到就会暂停, ...
- java 1.8 API帮助文档
链接:https://pan.baidu.com/s/1MNZqIokMDWNZF-nXnoHzxA 提取码:zw13
- curl: (35) SSL connect error的错误
1.先升级nss (Network Security Service, 网络安全服务) yum update nss如果没有nss,则需要安装nss服务 yum install nss 2.更新/安装 ...
- Centos7安装nodejs(npm)
执行命令: 设置yum安装源> curl --silent --location https://rpm.nodesource.com/setup_14.x | sudo bash (14是大的 ...
- C# 微信开发 微信号接入 (附完整源码)(1)
1. 首先配置微信服务器设置 a) 企业号配置信息 (详见:ConfigurationManager类) b) 企业号服务器配置: ConfigurationManager ...
- vue 作者在2022-2-7起宣布 vue3 正式作为默认版本
vue 作者在2022-2-7起宣布 vue3 正式作为默认版本 vue 作者尤雨溪在知乎上发布一篇文章,宣布 Vue3 将在 2022 年 2 月 7 日 成为新的默认版本! 并且还在文章中做出了一 ...