深度学习-22:信息论和信息熵

深度学习原理与实践(开源图书)-总目录, 建议收藏,告别碎片阅读!

熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。在信息论里则叫信息量,即熵是对不确定性的度量。从控制论的角度来看,应叫不确定性。信息论的创始人香农在其著作《通信的数学理论》中提出了建立在概率统计模型上的信息度量。他把信息定义为“用来消除不确定性的东西”。在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。

1 认识信息熵

当我们不知道某事物具体状态,却知道它有几种可能性时,显然,可能性种类愈多,不确定性愈大。不确定性愈大的事物,我们最后确定了、知道了,这就是说我们从中得到了愈多的信息,也就是信息量大。所以,熵、不确定性、信息量,这三者是同一个数值。

  • 二进制: 非此即彼,信息论以这种事物的信息量为单位,即比特。
  • 四进制:用二分法,分为2组,我们要非此即彼地确定2次,才能确定其状态,所以含有2比特信息量。
  • 十进制数:十进制数字有10个,每位数字的信息量: Log(10)/Log(2)=1/0.301=3.32。
  • 十六进制的每位数字的信息量是4。
  • 如果可能性数目有2的n次方(N=2n)(N=2^n)(N=2n):那就是n比特,即信息量等于可能性数目N的‘以2为底的对数’:H=log2(N)=Log(N)/Log(2)H=log2(N)=Log(N)/Log(2)H=log2(N)=Log(N)/Log(2)。N=3种可能性时,信息量H=log2(3)=Log(3)/Log(2)=1.585。

2 信息熵的定义

如果有一枚理想的硬币,其出现正面和反面的机会相等,则抛硬币事件的熵等于其能够达到的最大值。我们无法知道下一个硬币抛掷的结果是什么,因此每一次抛硬币都是不可预测的。因此,使用一枚正常硬币进行若干次抛掷,这个事件的熵是一比特,因为结果不外乎两个——正面或者反面,可以表示为0,1编码,而且两个结果彼此之间相互独立。若进行n次独立实验,则熵为n,因为可以用长度为n的比特流表示。[1]但是如果一枚硬币的两面完全相同,那个这个系列抛硬币事件的熵等于零,因为结果能被准确预测。现实世界里,我们收集到的数据的熵介于上面两种情况之间。

另一个稍微复杂的例子是假设一个随机变量X,取三种可能值
$ x_1, x_2, x_3 ,概率分别为,概率分别为,概率分别为\frac{1}{2}, \frac{1}{4}, \frac{1}{4},那么编码平均比特长度是:,那么编码平均比特长度是:,那么编码平均比特长度是:\frac{1}{2} \times 1 + \frac{1}{4} \times 2 + \frac{1}{4} \times 2 = \frac{3}{2}$。其熵为3/2。

因此熵实际是对随机变量的比特量和顺次发生概率相乘再总和的数学期望。

熵在信息论中的定义推导过程如下:a
信源的不确定性:信源发出的消息不肯定性越大,收信者获取的信息量就越大。如果信源发送的消息是确切的,则对收信者来说没有任何价值(没有信息量)。衡量不确定性的方法就是考察信源X的概率空间。X包含的状态越多,状态Xi的概率pi越小,则不确定性越大,所含有的信息量越大。
不确定程度用H(X)表示,简称不确定度, 用概率的倒数的对数来度量不肯定程度。一般写成H(X) = log(1/p) = -log§.

自信息量:一个事件(消息)本身所包含的信息量,由事件的不确定性决定的。

即随机事件Xi发生概率为P(xi),则随机事件的自信息量定义为:
表示事件Xi发生后能提供的信息量。事件不同,则他的信息量也不同,所以自信息量是一个随机变量。不能用来表征整个信源的不肯定性。可以用平均自信息量来表征整个信源的不肯定性。

定义信息量为概率的负对数,是很合理的。试考虑一个两种可能性的事物,仅当可能性相等时,不确定性最大,最后我们知道了某一可能性确实发生了,也得到最大的信息量。如果其中某一个可能性很大(另一个必然很小),不确定性就很小。如果可能性大到1,也就是必然要发生的,因为1的对数为0,我们从知道它的发生这件事得到的信息也为0。

  • 非负性
  • 随机性,是随机变量
  • 单调性,概率大自信息量小
  • 随机事件的不确定性在数量上等于它的自信息量。
  • 单位 以2为底,记作lb,单位比特(bit);以e为底,记作ln,单位奈特(nat);以10为底,记作lg,单位哈脱来(hat)。

信息熵:随机变量自信息量I(xi)的数学期望(平均自信息量),用H(X)表示,即为熵的定义:

即一个值域为{x1, …, xn}的随机变量 X 的熵值 H 定义为:

H(X)=E⁡(I(X))H(X) = \operatorname{E}(I(X))H(X)=E(I(X)),
其中,E 代表了期望函数,而 I(X) 是 X 的信息量(又称为信息本体)。I(X) 本身是个随机变量。如果 p 代表了 X 的机率质量函数(probability mass function),则熵的公式可以表示为:

H(X)=∑i=1np(xi) I(xi)=−∑i=1np(xi)log⁡bp(xi)H(X) = \sum_{i=1}^n {p(x_i)\,I(x_i)} = -\sum_{i=1}^n {p(x_i) \log_b p(x_i)}H(X)=∑i=1n​p(xi​)I(xi​)=−∑i=1n​p(xi​)logb​p(xi​)
在这里 b 是对数所使用的底,通常是 2, 自然常数 e,或是10。当b = 2,熵的单位是bit;当b = e,熵的单位是 nat;而当 b = 10,熵的单位是 dit。

pi = 0时,对于一些i值,对应的被加数0 logb 0的值将会是0,这与极限一致。

lim⁡p→0+plog⁡p=0\lim_{p\to0+}p\log p = 0limp→0+​plogp=0.

3 范例

如果有一个系统S内存在多个事件S=E1,...,EnS = {E1,...,En}S=E1,...,En,每个事件的机率分布 P=p1,...,pnP = {p1, ..., pn}P=p1,...,pn,则每个事件本身的信息量为:

Ie=−log⁡2piI_e = -\log_2 {p_i}Ie​=−log2​pi​ (对数以2为底,单位是比特(bit))

Ie=−ln⁡piI_e = -\ln {p_i}Ie​=−lnpi​ (对数以e为底,单位是纳特/nats)

如英语有26个字母,假如每个字母在文章中出现次数平均的话,每个字母的讯息量为:

Ie=−log⁡2126=4.7I_e = -\log_2 {1\over 26} = 4.7Ie​=−log2​261​=4.7
而汉字常用的有2500个,假如每个汉字在文章中出现次数平均的话,每个汉字的信息量为:

Ie=−log⁡212500=11.3I_e = -\log_2 {1\over 2500} = 11.3Ie​=−log2​25001​=11.3
实际上每个字母和每个汉字在文章中出现的次数并不平均,比方说较少见字母(如z)和罕用汉字就具有相对高的信息量。但上述计算提供了以下概念:使用书写单元越多的文字,每个单元所包含的讯息量越大。

熵是整个系统的平均消息量,即:

Hs=∑i=1npiIe=−∑i=1npilog⁡2piH_s = \sum_{i=1}^n p_i I_e = -\sum_{i=1}^n p_i \log_2 p_iHs​=i=1∑n​pi​Ie​=−i=1∑n​pi​log2​pi​
这个平均消息量就是消息熵。因为和热力学中描述热力学熵的玻耳兹曼公式形式一样,所以也称为“熵”。
英语文本数据流的熵比较低,因为英语很容易读懂,也就是说很容易被预测。即便我们不知道下一段英语文字是什么内容,但是我们能很容易地预测,比如,字母e总是比字母z多,或者qu字母组合的可能性总是超过q与任何其它字母的组合。如果未经压缩,一段英文文本的每个字母需要8个比特来编码,但是实际上英文文本的熵大概只有4.7比特。如果压缩是无损的,即通过解压缩可以百分之百地恢复初始的消息内容,那么压缩后的消息携带的信息和未压缩的原始消息是一样的多。而压缩后的消息可以通过较少的比特传递,因此压缩消息的每个比特能携带更多的信息,也就是说压缩信息的熵更加高。熵更高意味着比较难于预测压缩消息携带的信息,原因在于压缩消息里面没有冗余,即每个比特的消息携带了一个比特的信息。香农的信息理论揭示了,任何无损压缩技术不可能让一比特的消息携带超过一比特的信息。消息的熵乘以消息的长度决定了消息可以携带多少信息。

如果两个系统具有同样大的消息量,如一篇用不同文字写的同一文章,由于是所有元素消息量的加和,那么中文文章应用的汉字就比英文文章使用的字母要少。所以汉字印刷的文章要比其他应用总体数量少的字母印刷的文章要短。即使一个汉字占用两个字母的空间,汉字印刷的文章也要比英文字母印刷的用纸少。

4 信息增益

已经有了熵作为衡量训练样例集合纯度的标准,现在可以定义属性分类训练数据的效力的度量标准。这个标准被称为“信息增益(information gain)”。简单的说,一个属性的信息增益就是由于使用这个属性分割样例而导致的期望熵降低(或者说,样本按照某属性划分时造成熵减少的期望)。在信息增益中,衡量标准是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。对一个特征而言,系统有它和没它时信息量将发生变化,而前后信息量的差值就是这个特征给系统带来的信息量

更精确地讲,一个属性A相对样例集合S的信息增益Gain(S,A)被定义为:

5 熵的特性

1、熵均大于等于零,即,H_s \ge 0
2、设N是系统S内的事件总数,则熵H_s \le log_2N。当且仅当p1=p2=…=pn时,等号成立,此时系统S的熵最大。
3、联合熵:H(X,Y) \le H(X) + H(Y),当且仅当X,Y在统计学上相互独立时等号成立。
4、条件熵:H(X|Y) = H(X,Y) - H(Y) \le H(X),当且仅当X,Y在统计学上相互独立时等号成立。

系列文章

  • 机器学习原理与实践(开源图书)-总目录
  • 深度学习原理与实践(开源图书)-总目录
  • Github: 机器学习&深度学习理论与实践(开源图书)

参考文献

  • [1] Ian Goodfellow, Yoshua Bengio. Deep Learning. MIT Press. 2016.
  • [2] 焦李成等. 深度学习、优化与识别. 清华大学出版社. 2017.
  • [3] 佩德罗·多明戈斯. 终极算法-机器学习和人工智能如何重塑世界. 中信出版社. 2018.
  • [4] 雷.库兹韦尔. 人工智能的未来-揭示人类思维的奥秘. 浙江人民出版社. 2016.

深度学习-22:信息论和信息熵相关推荐

  1. 深度学习 - 22.TF TF1.x tf.string_split VS TF2.x tf.strings.split

    一.引言 开发时同时用到了TF1与TF2,使用中发现 split 函数在V1和V2中有一些区别,记录一下. 二.TF1.x tf.string_split 1.使用 Input: 对字符串数组进行分割 ...

  2. 新手入门深度学习 | 2-2:结构化数据建模流程示例

    文章目录 一.准备数据 二.定义模型 三.训练模型 四.评估模型 五.使用模型 六.保存模型 1. 保存整个模型 2. 保存模型权重

  3. 深度学习-20:神经科学、脑科学和稀疏特性

    深度学习-20:神经科学.脑科学和稀疏特性 深度学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 第二次世界大战之后,美苏在全维度展开了霸权竞赛,人工智能研究伴随着计算机的发展也开始进入佳 ...

  4. 深度学习常见问题整理

    问题列表 如何设置网络的初始值?* 梯度爆炸的解决办法*** 神经网络(MLP)的万能近似定理* 神经网络中,深度与宽度的关系,及其表示能力的差异** 在深度神经网络中,引入了隐藏层(非线性单元),放 ...

  5. Python 机器学习/深度学习/算法专栏 - 导读目录

    目录 一.简介 二.机器学习 三.深度学习 四.数据结构与算法 五.日常工具 一.简介 Python 机器学习.深度学习.算法主要是博主从研究生到工作期间接触的一些机器学习.深度学习以及一些算法的实现 ...

  6. 深度学习(22)神经网络与全连接层五: 误差计算

    深度学习(22)神经网络与全连接层五: 误差计算 1. MSE 2. Entropy(熵) 3. Cross Entropy 4. Binary Classification 5. Single ou ...

  7. 深度学习数学基础-概率与信息论

    前言 概率论学科定义 概率与信息论在人工智能领域的应用 3.1,为什么要使用概率论 3.2,随机变量 3.3,概率分布 3.3.1,离散型变量和概率质量函数 3.3.2,连续型变量和概率密度分布函数 ...

  8. Python深度学习:机器学习理论知识,包含信息熵的计算(读书笔记)

    今天这一篇,我们正式接触深度学习的理论基础-机器学习 第二篇 一.机器学习分类 二.机器学习的基本算法 三.算法的理论基础 1.机器学习的基础理论-----函数逼近 2.回归算法 3.其他算法---- ...

  9. 22张精炼图笔记,深度学习专项学习必备

    作者 | DL&CV_study9 编辑 | Elle 来源 | CSDN 博客 本文为人工智能学习笔记记录. [深度学习基础篇] 一.深度学习基本概念 监督学习:所有输入数据都有确定的对应输 ...

  10. 22岁复旦大学生拿下深度学习挑战赛冠军:明明可以靠脸吃饭,却偏偏要靠才华

    复旦大学Hengduo Li 编译 | AI科技大本营 参与 | 尚岩奇.周翔 近日,人工智能行车记录仪应用公司 Nexar 公布了第二届挑战赛的结果,其中,来自复旦大学的 22 岁的本科生 Heng ...

最新文章

  1. PL/pgSQL学习笔记之九
  2. Vue 中多个元素、组件的过渡,及列表过渡
  3. python输入完怎么运行-教你如何编写、保存与运行Python程序的方法
  4. 转发:为什么函数式编程至关重要
  5. mysql缓存淘汰机制_聊聊缓存淘汰算法-LRU 实现原理
  6. 252.Meeting Rooms
  7. 无响应_搭建的Redis高可用,突然频繁无响应怎么破?
  8. 移动互联网向2.0时代转变
  9. Android多媒体框架图
  10. 台达服务器AB和B2系列区别,台达伺服各系列区别
  11. C#winform之自定义按钮形状(初级版)
  12. 使用导入 Excel 的方式批量修改文件夹名称
  13. 关于“程序员996”,互联网大神发话了,能顶用吗?
  14. 使用MATLAB Mapping工具箱创建和编辑地图
  15. 《我们在时光的列车上,没有终点》
  16. multiprocessing.Pool(pool.map pool.apply pool.apply_async poo.map_async)
  17. 前端视觉测试工具:Applitools Eyes
  18. unnormal C++
  19. 一步步教你如何在Ubuntu虚拟机中安装QEMU并模拟模拟arm 开发环境(一)uImage u-boot
  20. 2019年E题薄利多销问题

热门文章

  1. 随笔篇----比特的传输
  2. 司空见惯 - 洪荒之力
  3. apache beam入门之编码Coder相关
  4. php微信商家转账到零钱 发起商家转账API
  5. Github和Git是啥意思?下面来简单了解下。
  6. 2017网易校招:数字游戏
  7. 抖音短视频如何快速制作?抖音怎么赚钱?
  8. 如何从gitbub上clone代码
  9. 母亲节祝福html源码,有创意的母亲节祝福语大全
  10. 虚拟网卡服务器端软件,不再挤房间!自己动手架设自己的“浩方”对战平台