【Pytorch神经网络理论篇】 21 信息熵与互信息:联合熵+条件熵+交叉熵+相对熵/KL散度/信息散度+JS散度

简介: 对抗神经网络(如DIM模型)及图神经网络(如DGI模型)中,使用互信息来作为无监督方式提取特征的方法。

同学你好!本文章于2021年末编写,获得广泛的好评!


故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现,


Pytorch深度学习·理论篇(2023版)目录地址为:


CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录


本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!

https://v9999.blog.csdn.net/article/details/127587345


欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~

6c43592437e6481bbee82dfc77983540.png


1 信息熵


熵 (Entropy),信息熵:常被用来作为一个系统的信息含量的量化指标,从而可以进一步用来作为系统方程优化的目标或者参数选择的判据。


1.1 信息熵的性质


  • 单调性,发生概率越高的事件,其携带的信息量越低;


  • 非负性,信息熵可以看作为一种广度量,非负性是一种合理的必然;


  • 累加性,多随机事件同时发生存在的总不确定性的量度约等于各事件不确定性的量度的和,


  • 假设信息熵的函数是I,计算概率的函数是P,I是关于P的减函数,即I(P1,P2)=I(P1)+I(P2)。


1.1.1 信息熵的公式


香农从数学上严格证明了满足上述三个条件的随机变量不确定性度量函数具有唯一形式:


bf526977b2ff45119b3b7fad339bf7b9.png


其中的 C 为常数,我们将其归一化为 C = 1 C=1C=1 即得到了信息熵公式。目前,信息熵大多都是通过上式进行计算的(式中的Pi是概率函数Pi(Ui)的计算结果,求和符号中的i代表从1到n之间的整数。在实践中对数一般以2为底,约定0log0=0。


1.2 信息熵的计算公式


信息熵属于一个抽象概念,其计算方法没有固定公式。任何符合信息熵特点的公式都可以被用作信息熵的计算。


1.2.1 对数的信息熵


fce28b3d7d6746beb012972721345ee1.png


a49b34a444154506850834e039bf578f.png


1.2.2 单符号二元信源的信息熵


以一个最简单的单符号二元信源为例说明,该信源符号U(上式中的X)仅可以取值为a或b。其中,取a的概率为p,则取b的概率为1-p。该信源的信息熵可以记为H(U)=pI(p)+(1-p)I(1-p),所形成的曲线如图所示。


7daea6691cc24f7f8708873d6b4d22e1.png


在图8-2中,x轴代表符号U取值为a的概率值p,y轴代表符号U的信息熵H(U)。由图8-2可以看出信息熵有如下几个特性。


  • 确定性:当符号U取值为a的概率值p=0和p=1时,U的值是确定的,没有任何变化量,所以信息熵为0。


  • 极值性:当p=0.5时,U的信息熵达到了最大。


  • 对称性:图形在水平方向关于p=0.5对称。


  • 非负性:即收到一个信源符号所获得的信息熵应为正值,H(U)≥0。


1.3 连续信息熵及特性


信源中的变量是从连续数据中取值。连续信源可以有无限个值,信息量是无限大,对其求信息熵已无意义,一般常会以其他的连续信源做参照,相对熵的值进行度量。


1.4 联合熵


联合熵(joint entropy)可将一维随机变量分布推广到多维随机变量分布。两个变量x和Y的联合信息熵H(X,Y)也可以由联合概率函数P(x,y)计算得来:


9dddba0019ae40b896d6897645b25304.png


式中的联合概率函数P(x,y)是指x、y同时满足某一条件的概率。


1.5 条件熵


条件熵(conditional entropy)表示在已知随机变量X的条件下,随机变量Y的不确定性,条件熵H(Y|X)可以由联合橱率函数P(x,y)和条件概率函数P(y|x)计算得来:


a2708a3c0ff24e3d9dae56c820060051.png


其中 P(x,y)=P(y|x)P(x),即x和y的联合概率等于“在x条件下,y出现的概率”乘以“x的边际概率”。


1.5.1 条件熵的另一种计算方式


条件熵H(Y|X)也可以由X和Y的联合信息熵计算而来:


c925f4ed6e9f49149de294e1c12a5eb5.png


可以描述为,条件熵H(Y|X)等于联合熵H(X,Y)减去X的边际熵H(X)。


1.6 交叉熵


交叉熵(cross entropy)在神经网络中常用于计算分类模型的损失。交叉熵表示的是实际输出(概率)与期望输出(概率)之间的距离。交又熵越小,两个概率越接近。


1.6.1 交叉熵数学公式


交叉熵公式假设样本集的概率分布函数为P(x),模型预测结果的概率分布函数为Q(x),则真实样本集的信息熵为(p是函数P(x)的值):


f138c1f1693546bebc11a5fa358e2bb9.png


使用模型预测结果的概率分布Q(x)来表示数据集中样本分类的信息熵,则上述式子可改写为:


b0409d62fb4b471a9b86105935e736c3.png


Q(x)与P(x)的交叉熵。因为分类的概率来自样本集,所以式中的概率部分用Qx)来表示。


1.6.2 交叉熵损失


04a3e0698415407f971e3de571a3c520.png


交叉熵损失表示模型对正向样本预测的交叉熵(求和项中的第一项)与对负向样本预测的交叉熵(求和项中的第二项)之和。正向样本的概率为a,预测负向样本的概率为1-a。


1.7 相对熵/KL散度/信息散度


相对熵,又被称为KL散度或信息散度,用来度量两个概率分布间的非对称性差异。在信息理论中,相对熵等价于两个概率分布的信息熵的差值。


1.7.1 相对熵的公式


设P(x)、Q(x)是离散随机变量集合X中取值x的两个概率分布函数,它们的结果分别为p和q,则p对q的相对熵如下:


add561c120af49a5b5b3030a9c6f08c6.png


由式可知,当P(x)和Q(x)两个概率分布函数相同时,相对熵为0(因为log1=0)并且相对熵具有不对称性,“Ep”代表期望,期望是指每次可能结果的概率乘以结果的总和。


1.7.2 相对熵与交叉熵的关系


将1.7.1中式子中对数部分展开,可以看到相对熵与交叉熵之间的关系:


1479eb8ff5ea40acbf17bd35ec172278.png


由式可以看出p与q的相对熵是由二者的交叉熵去掉p的边际熵得来,相对熵是交叉熵中去掉熵的部分。

在神经网络中,由于训练数据集是固定的,即p的嫡一定,因此最小化交叉熵等价于最小化预测结果与真实分布之间的相对熵(模型的输出分布与真实分布的相对熵越小,表明模型对真实样本拟合效果越好),这也是要用交叉熵作为损失函数的原因。


1.8 JS散度


1.8.1 JS散度出现的原因


KL散度可以表示两个概率分布的差异,但它并不是对称的。在使用KL散度训练神经网络时,会有因顺序不同而造成训川练结果不同的情况。


1.8.2 JS散度


JS散度在KL散度的基础上进行了一次变换,使两个概率分布(p、q)间的差异度量具有对称性:


e56a98b94d58407fa34d97982aa790d6.png


1.8.3 JS散度的特性


与KL散度相比,JS散废更适合在神经网络中应用。它具有以下特性。


  • 对称性:可以衡量两种不同分布之间的差异。


  • 大于或等于0:当两个分布完全重叠时,其JS散度达到最小值0。


  • 有上界:当两个分布差异越来越大时,其JS散度的值会逐渐增大。当两个分布的JS散度足够大时,其值会收敛到一个固定值,KL散度是没有上界的。


  • 在互信息的最大化任务中,常使用JS散度来代替KL散度。


2 互信息


互信息是衡量随机变量之间相互依赖程度的度量,用于度量两个变量间的共享信息量。


2.1 三句话解释互信息


  • 一个随机变量中包含的关于另一个随机变量的信息量,


  • 一个随机变量由于另一个已知的随机变量发生变化而减少的不确定性。


  • 例如,到中午的时候、去吃饭的不确定性,与在任意时间去吃饭的不确定性之差。


2.2 互信息公式


设有两个变量集合X和Y,它们中的个体分别为x、y,它们的联合概率分布函数为P(x,y),边际概率分布函数分别是P(x)、P(y)。互信息是指联合概率分布函数P(x,y)与边际概分布函数P(x),P(y)的相对熵。


d110c4d132624d81ba180e8079f11674.png


2.3 互信息的特点


(1)对称性:由于互信息属于两个变量间的共享信息,因此I(X;Y)=I(Y|X)。

(2)独立变量间互信息为0:如果两个变量独立,则它们之间没有任何共享信息,此时互信息为0。

(3)非负性:共享信息要么有,要么没有。互信息量不会出现负值。


2.4 互信息与条件熵之间关系


015916da4ea8406d8521e8c3e84c866f.png


2.5 互信息与联合熵之间关系


45aef0a321a64f7caa4540387a3ba406.png


2.6 互信息的应用


  • 互信息已被用作机器学习中的特征选择和特征变换的标准。它可表示变量的相关性和冗余性,例如,最小冗余特征选择。它可以确定数据集中两个不同聚类的相似性。


  • 在时间序列分析中,它还可以用于相位同步的检测。


  • 对抗神经网络(如DIM模型)及图神经网络(如DGI模型)中,使用互信息来作为无监督方式提取特征的方法。
目录
相关文章
|
7天前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
34 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
4天前
|
存储 监控 算法
局域网网络管控里 Node.js 红黑树算法的绝妙运用
在数字化办公中,局域网网络管控至关重要。红黑树作为一种自平衡二叉搜索树,凭借其高效的数据管理和平衡机制,在局域网设备状态管理中大放异彩。通过Node.js实现红黑树算法,可快速插入、查找和更新设备信息(如IP地址、带宽等),确保网络管理员实时监控和优化网络资源,提升局域网的稳定性和安全性。未来,随着技术融合,红黑树将在网络管控中持续进化,助力构建高效、安全的局域网络生态。
24 9
|
22天前
|
机器学习/深度学习 算法 PyTorch
基于Pytorch Gemotric在昇腾上实现GraphSage图神经网络
本文详细介绍了如何在昇腾平台上使用PyTorch实现GraphSage算法,在CiteSeer数据集上进行图神经网络的分类训练。内容涵盖GraphSage的创新点、算法原理、网络架构及实战代码分析,通过采样和聚合方法高效处理大规模图数据。实验结果显示,模型在CiteSeer数据集上的分类准确率达到66.5%。
|
2月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目DWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取分为区域残差化和语义残差化两步,提高了特征提取效率。它引入了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,优化了不同网络阶段的感受野。在Cityscapes和CamVid数据集上的实验表明,DWRSeg在准确性和推理速度之间取得了最佳平衡,达到了72.7%的mIoU,每秒319.5帧。代码和模型已公开。
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
|
2月前
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
|
2月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
196 5
|
2月前
|
SQL 安全 算法
网络安全的隐形盾牌:漏洞防御与信息加密的艺术
【10月更文挑战第36天】在数字世界的海洋中,网络安全犹如一艘船的保护罩,守护着我们的隐私和数据安全。本文将揭开网络安全的神秘面纱,从常见的网络漏洞到先进的加密技术,再到培养必要的安全意识,我们将一步步构建起防御的堡垒。文章不仅分享技术细节,还强调了在个人和组织层面采取积极措施的重要性。
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
219 1
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
878 2
|
2月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2融合DWRSeg二次创新C3k2_DWRSeg:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2融合DWRSDWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取方法分解为区域残差化和语义残差化两步,提高了多尺度信息获取的效率。网络设计了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,分别用于高阶段和低阶段,以充分利用不同感受野的特征图。实验结果表明,DWRSeg在Cityscapes和CamVid数据集上表现出色,以每秒319.5帧的速度在NVIDIA GeForce GTX 1080 Ti上达到72.7%的mIoU,超越了现有方法。代码和模型已公开。