也是看其他大佬的说法。比如这个信息熵是什么? - 知乎

大家都知道 ,对于一个概率分布,信息熵的公式是:

 表示发生的概率。 定义公式我就不再赘述,已经有很多了。确实和我们的印象比较符合,一件事概率越大,他发生了,信息量就越小。太阳天天东边升,一点也不吃惊。太阳哪天从西边来了,说明人类换了东西的叫法。

我们来看一个例子。现在有一条公路,四家公司A,B,C,D负责这条公路的打扫和维护。A来的早,他从里面先选了二分之一。B来了,他占了四分之一,C来了,再选八分之一,D来了,只剩八分之一了。  (请记下下图颜色代表的字母。)

问题在于什么呢?在于我不知道这些公司是负责的哪一段。那现在我想知道,咋办,就需要信息了。 请注意  下面的信息都是二分信息。就是信息只有正反两面。

第一条信息:  A在左边 。         一条信息就知道A在哪了 。

第二条信息: B选了右边。  需要 1,2才知道B在哪。

第三条信息:C选了左边。   需要1,2,3知道了C,D。

在上面这条直线上,需要1条信息能够确定的部分是 二分之一。

需要两条信息能够确定的部分是  四分之一

需要三条信息才能够确定的部分是  两个八分之一

就得到了得到总状态需要的信息数:

我们再看信息熵的公式。

注意:

在信息熵公式里, log是以2 为底的 ,所以得到了信息熵大小算出来就是    .和确定总状态需要的信息数一模一样。

所以其实我们就知道了。信息熵,就是想要确定整个状态的信息需要的总信息数。

信息熵的单位是比特,可以扩展联想成 需要几个比特位的0/1 。实际上也确实如此,log是以二为底的,所以信息也必须都是二分的信息,只有正反两面,这样算出来才符合结果,这也是为什么A必须左右选一边  而不能选中间的二分之一,因为这时候信息就不是二分的信息了 。

然后来了一个东西叫做KL散度。KL散度的定义是什么,看百科: KL散度是两个几率分布P和Q差别的非对称性的度量。 KL散度是用来度量使用基于Q的分布来编码服从P的分布的样本所需的额外的平均比特数。典型情况下,P表示数据的真实分布,Q表示数据的理论分布、估计的模型分布、或P的近似分布。  看到比特数差这个概念时,我一瞬间就想到了好多。

再来看公式:

后面我们都知道 Px的信息熵嘛。

前面的 我们怎么理解呢? 首先我们要明确的概念是  P分布的信息熵,就是P分布下编码需要的最小的比特数。 我们看上面的例子会发现,占据最多的A,二分之一,她需要的信息数是最少的。也只有这样, 让占地最多(概率最大)的需要的信息越少,才能得到最小的信息熵。所以用其他的分布来衡量P ,需要的比特数 势必要上升。

比如 现在Q的分布是这样的  ,就是A,B的分布变了。

Q1:

先代入公式

注意  第一项A这里, log下面是Q中A的概率  是四分之一   但是log上面依然是P中A的概率的倒数,是二分之一的倒数。这就是 用Q分布来表示P分布的样本需要的信息量大小 。是2比特。也就是交叉熵。

用信息的说法呢?  也是一样的。 这里依然是用的P的概率分布,也就是找A要1条信息,B2条,C,D3条。

但是是在Q的分布来衡量的,在Q中B占据了二分之一,也就是需要两条信息的部分变成了二分之一 。 需要一条信息的部分变成了四分之一。

共需要的信息就变成了 :

所以P,Q的交叉熵就是2。

如果Q是下面的分布呢?

Q2:

就是      

可以看到  Q2这个图比起上图Q1来说 ,Q的分布和P差的要更远一点。A都变最短了,所以他的交叉熵也要大一点。

上面懂了之后,KL散度就是临门一脚。用交叉熵减去P的信息熵,就是KL散度。含义就是用Q分布来度量P需要的比特数减去P自己度量自己需要的比特数。 对于Q1的例子 KL散度就是2-1.75 = 0.25   对于Q2的例子 KL散度就是2.5-1.75 = 0.75。  所以我们也可以发现KL散度的实际意义,KL散度差的越多,表示Q分布和P分布差的越远。KL散度越小,两个分布就越近。

所以 ,

KL 散度 = Q表示分布需要信息数    - P自己表示分布需要信息数

关于信息熵 ,KL散度,交叉熵,一文读懂(bushi)。相关推荐

  1. 【深度学习】一文读懂机器学习常用损失函数(Loss Function)

    [深度学习]一文读懂机器学习常用损失函数(Loss Function) 最近太忙已经好久没有写博客了,今天整理分享一篇关于损失函数的文章吧,以前对损失函数的理解不够深入,没有真正理解每个损失函数的特点 ...

  2. 一文读懂BERT(原理篇)

    一文读懂BERT(原理篇) 2018年的10月11日,Google发布的论文<Pre-training of Deep Bidirectional Transformers for Langua ...

  3. ​一文读懂EfficientDet

    一文读懂EfficientDet. 今年年初Google Brain团队在 CVPR 2020 上发布了 EfficientDet目标检测模型, EfficientDet是一系列可扩展的高效的目标检测 ...

  4. 一文读懂你该了解的5G知识:现在别买5G手机

    来源: 腾讯科技 2019年是中国全力布局5G的一年:三大运营商纷纷搭建基站,手机厂商发布5G手机,部分城市已经开启了5G测试--在电信日这天,腾讯科技联合知乎推出重磅策划,聚焦和5G相关的小知识,精 ...

  5. | 一文读懂迁移学习(附学习工具包)

    当一个CNN用于另一个领域,就使用到了迁移学习.迁移学习是一种用于模型领域泛化和扩展的工具. 文章链接:独家 | 一文读懂迁移学习(附学习工具包) 参考:当深度学习成为过去,迁移学习才是真正的未来? ...

  6. 你真的懂数据分析吗?一文读懂数据分析的流程、基本方法和实践

    导读:无论你的工作内容是什么,掌握一定的数据分析能力,都可以帮你更好的认识世界,更好的提升工作效率.数据分析除了包含传统意义上的统计分析之外,也包含寻找有效特征.进行机器学习建模的过程,以及探索数据价 ...

  7. 一文读懂DEFI借贷以及清算的含义

    目录 什么是DEFI 什么是DEFI借贷 DeFi借贷步骤 借贷产品的分类 被清算的三箭资本 什么是DEFI DeFi 是 Decentralized Finance 的简称,即去中心化金融,是由区块 ...

  8. 一文读懂智能网联封闭测试场的现状和挑战

    文章版权所有,未经授权请勿转载或使用 智能网联封闭测试场应具备全覆盖.低延时的路侧通信设备,支持LTE-V2X.5G.Wi-Fi等协议.可进行三个级别测试:L1和L2级自动驾驶的ADAS系统测试:L3 ...

  9. 从实验室走向大众,一文读懂Nanopore测序技术的发展及应用

    关键词/Nanopore测序技术    文/基因慧 随着基因测序技术不断突破,二代测序的发展也将基因检测成本大幅降低.理想的测序方法,是对原始DNA模板进行直接.准确的测序,消除PCR扩增带来的偏差, ...

  10. 一文读懂Faster RCNN

    来源:信息网络工程研究中心本文约7500字,建议阅读10+分钟 本文从四个切入点为你介绍Faster R-CNN网络. 经过R-CNN和Fast RCNN的积淀,Ross B. Girshick在20 ...

最新文章

  1. statsmodels 笔记:seasonal_decompose 时间序列分解
  2. asp.netkg117《计算机网络》教学网站的设计与实现,《计算机网络》教学网站的设计与实现 毕业论文.doc...
  3. [转] 英语、计算机、互联网与全球化
  4. pythonifnotnone_使用 if x is not None 还是if not x is None
  5. minishell的实现及IO接口的调用
  6. DNS欺骗的艺术 | 域名劫持和网页挂马
  7. 渗透测试专业人员使用的11种工具
  8. arp表老化时间及其修改
  9. 测试显卡用什么软件最好,显卡测试用什么软件 怎么测试显卡性能
  10. 04、Hadoop框架HDFS NN、SNN、DN工作原理
  11. 关于技术人员创业入股的问题
  12. 地理坐标定位和计算距离
  13. c语言多变量传函,控制系统仿真-中国大学mooc-题库零氪
  14. 我的世界java村民繁殖_教程/村民养殖 - Minecraft Wiki,最详细的官方我的世界百科...
  15. 基于机智云平台的智能花盆
  16. 怎样把旧电脑数据迁移到新电脑
  17. 【QT网络编程】实现UDP协议通信
  18. 超市信息管理程序c语言购物车,c语言购物车代码
  19. 泛型(3):泛型方法
  20. 3G上网卡在Liunx系统上实现上网的过程

热门文章

  1. correl函数_WPS表格办公— CORREL 函数的用法
  2. PmxEditor制作mmd表情
  3. 【信管1.16】安全(三)信息系统安全
  4. linux 中的.so和.a文件
  5. 工业类计算机主板维修,工控机电脑主板坏了如何维修
  6. Unity3d 坦克AI_自动寻怪,自动追击脚本参考
  7. 修复OutLook2007 pst 文件
  8. R报错:caret包与InformationValue包在绘制confusionmatrix时遇到的问题
  9. 递归中的引用传递和常引用传递
  10. java long string 转换_Java long 转成 String的实现