机器学习基础-22:信息论和信息熵

2023-11-23 11:18

本文主要是介绍机器学习基础-22:信息论和信息熵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

信息论和信息熵

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

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

1 认识信息熵

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

  • 二进制: 非此即彼,信息论以这种事物的信息量为单位,即比特。
  • 四进制:用二分法,分为2组,我们要非此即彼地确定2次,才能确定其状态,所以含有2比特信息量。
  • 十进制数:十进制数字有10个,每位数字的信息量: Log(10)/Log(2)=1/0.301=3.32。
  • 十六进制的每位数字的信息量是4。
  • 如果可能性数目有2的n次方 ( N = 2 n ) (N=2^n) (N=2n):那就是n比特,即信息量等于可能性数目N的‘以2为底的对数’: H = l o g 2 ( N ) = L o g ( N ) / L o g ( 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 x_1, x_2, x_3 x1,x2,x3,概率分别为 1 2 , 1 4 , 1 4 \frac{1}{2}, \frac{1}{4}, \frac{1}{4} 21,41,41,那么编码平均比特长度是: 1 2 × 1 + 1 4 × 2 + 1 4 × 2 = 3 2 \frac{1}{2} \times 1 + \frac{1}{4} \times 2 + \frac{1}{4} \times 2 = \frac{3}{2} 21×1+41×2+41×2=23。其熵为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 = 1 n p ( x i )   I ( x i ) = − ∑ i = 1 n p ( x i ) log ⁡ b p ( x i ) 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=1np(xi)I(xi)=i=1np(xi)logbp(xi)
在这里 b 是对数所使用的底,通常是 2, 自然常数 e,或是10。当b = 2,熵的单位是bit;当b = e,熵的单位是 nat;而当 b = 10,熵的单位是 dit。

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

lim ⁡ p → 0 + p log ⁡ p = 0 \lim_{p\to0+}p\log p = 0 limp0+plogp=0.

3 范例

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

I e = − log ⁡ 2 p i I_e = -\log_2 {p_i} Ie=log2pi (对数以2为底,单位是比特(bit))

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

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

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

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

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

H s = ∑ i = 1 n p i I e = − ∑ i = 1 n p i log ⁡ 2 p i H_s = \sum_{i=1}^n p_i I_e = -\sum_{i=1}^n p_i \log_2 p_i Hs=i=1npiIe=i=1npilog2pi
这个平均消息量就是消息熵。因为和热力学中描述热力学熵的玻耳兹曼公式形式一样,所以也称为“熵”。
英语文本数据流的熵比较低,因为英语很容易读懂,也就是说很容易被预测。即便我们不知道下一段英语文字是什么内容,但是我们能很容易地预测,比如,字母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:信息论和信息熵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417553

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个