数学基础之——熵与散度的灵魂摆渡(解析大全)(一)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 数学基础之——熵与散度的灵魂摆渡(解析大全)(一)

1、什么是熵


   Entropy来源于希腊语,原意:内向,即:一个系统不受外部干扰时往内部稳定状态发展的特性。定义的其实是一个热力学的系统变化的趋势。

   1923年,德国科学家普朗克来中国讲学用到entropy这个词,胡刚复教授看到这个公式,创造了“熵”字,因为“火”和热量有关,定义式又是热量比温度,相当自洽。


   信息论中,熵是接受的每条消息中包含的信息的平均值。又被称为信息熵、信源熵、平均自信息量。可以被理解为不确定性的度量,熵越大,信源的分布越随机。1948年,由克劳德·爱尔伍德·香农将热力学中的熵引入信息论,所以也叫做:香农熵。


   在生态学中,熵表示生物多样性的指标。


广义的定义:熵是描述一个系统的无序程度的变量;同样的表述还有,熵是系统混乱度的度量,一切自发的不可逆过程都是从有序到无序的变化过程,向熵增的方向进行。


2、信息熵的定义


   香农信息熵是对数据分布的不确定性进行度量:假设X是来自分布χ的随机样本,对每个样本的概率常见的标记有P(xi)=P(X=xi)=pxi,那么信息量I(X)为:

而信息熵的定义是其在概率上的期望,即:

对于信息熵的含义的两种解释由来如下:

(1)期望编码长度解释:基于信道编码理论,按概率分布对采样信息的二进制编码的计算期望;

(2)不确定性公理化解释:是满足不确定性公理的唯一数学形式。


3、基于熵的度量


3.1、交叉熵

   在信息论中,交叉熵是表示两个概率分布P、Q,其中P表示真实分布,Q表示非真实分布,在相同的一组事件中,其中,用非真实分布Q来表示某个事件发生所需要的平均比特数。

   交叉熵主要用于度量两个概率分布间的差异性信息。定义如下:

   交叉熵可在神经网络(机器学习)中作为损失函数,P表示真实标记的分布,Q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量P与Q的相似性。交叉熵作为损失函数还有一个好处是使用Sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。


   在特征工程中,可以用来衡量两个随机变量之间的相似度。


   在语言模型中(NLP)中,由于真实的分布P是未知的,在语言模型中,模型是通过训练集得到的,交叉熵就是衡量这个模型在测试集上的正确率。


3.2、相对熵

   在香农熵的基础上,可以很容易得到相对熵(Relative Entropy,RE)的定义:

   可以这样理解:给定Q分布,想知道P分布情况,于是就用P的编码长度减去Q的编码长度在P的分布下的期望作为一种衡量。


   相对熵可以衡量两个随机分布之间的距离,当两个随机分布相同时,它们的相对熵为零,当两个随机分布的差别增大时,它们的相对熵也会增大。所以相对熵可以用于比较文本的相似度,先统计出词的频率,然后计算相对熵。另外,在多指标系统评估中,指标权重分配是一个重点和难点,也通过相对熵可以处理。


3.3、KL散度

   由于相对熵恒小于0,且散度定义要其必须为负,所以在相对熵的前面加一个负号就得到了需要的散度,即KL散度:

2439c1d6cae9bc75b923a54530d2eec3.png

   在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即DKL,由于KL散度中的前一部分−H(P(i))不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。


   给定Q分布,P分布于Q分布的KL散度即Q的编码长度于P的编码长度之差(中括号里面的部分)在P上面的期望。下图1可以看到编码长度之差可能有正有负,然后按P的概率密度积分就是编码长度之差的期望了。

90984f01730199ce8d63e0692d35720c.jpg

P和Q的影响:

       如果想要DKL小,

       那么P大的地方,Q一定要大

       那么P小的地方,Q对DKL的影响不大

       如果想要DKL大

       那么P大的地方,Q对DKL影响不大

       那么P小的地方,Q一定要小

KL散度不对称导致的问题:

情况1:当P→0且Q→1时,  Pxln(P/Q)→0 , 对DKL的贡献为0;

情况2:当P→1且Q→0时,  Pxln(P/Q)→+∞ , 对DKL的贡献为+∞;进步一这里可以解释为什么我们通常选择正态分布而不是均匀分布;

均匀分布:只要两个均分分布不是完全相同,必然出现P≠0,Q=0的情况,导致DKL→+∞;

正态分布:所有概率密度都是非负的,所以不会出现上述情况;

换而言之, PQ之间的KL散度可能导致惩罚或者梯度差距极大。


3.4、JS散度

   JS散度实际就是KL散度的一个扩展,被用来推导GAN:

f644482f50f32149d3a3744a954a0caa.png

需要注意:JS散度是对称的;JS散度有界,范围是 [0,log2]


KL散度和JS散度度量的时候有一个问题:如果两个分配P,Q离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。

相关文章
|
5月前
|
存储 编译器 数据库
【C/C++ 数据结构 】线索二叉树全解析:从数学原理到C++实现
【C/C++ 数据结构 】线索二叉树全解析:从数学原理到C++实现
103 0
|
2月前
|
人工智能 算法
AI 0基础学习,数学名词解析
AI 0基础学习,数学名词解析
14 2
|
4月前
|
数据可视化 算法 大数据
深入解析高斯过程:数学理论、重要概念和直观可视化全解
这篇文章探讨了高斯过程作为解决小数据问题的工具,介绍了多元高斯分布的基础和其边缘及条件分布的性质。文章通过线性回归与维度诅咒的问题引出高斯过程,展示如何使用高斯过程克服参数爆炸的问题。作者通过数学公式和可视化解释了高斯过程的理论,并使用Python的GPy库展示了在一维和多维数据上的高斯过程回归应用。高斯过程在数据稀疏时提供了一种有效的方法,但计算成本限制了其在大数据集上的应用。
115 1
|
5月前
|
机器学习/深度学习 存储 算法
卷积神经网络(CNN)的数学原理解析
卷积神经网络(CNN)的数学原理解析
160 1
卷积神经网络(CNN)的数学原理解析
|
5月前
|
机器学习/深度学习 人工智能 数据可视化
号称能打败MLP的KAN到底行不行?数学核心原理全面解析
Kolmogorov-Arnold Networks (KANs) 是一种新型神经网络架构,挑战了多层感知器(mlp)的基础,通过在权重而非节点上使用可学习的激活函数(如b样条),提高了准确性和可解释性。KANs利用Kolmogorov-Arnold表示定理,将复杂函数分解为简单函数的组合,简化了神经网络的近似过程。与mlp相比,KAN在参数量较少的情况下能达到类似或更好的性能,并能直观地可视化,增强了模型的可解释性。尽管仍需更多研究验证其优势,KAN为深度学习领域带来了新的思路。
1632 5
|
5月前
|
算法 测试技术 C#
【分类讨论】【解析几何】【 数学】【推荐】1330. 翻转子数组得到最大的数组值
【分类讨论】【解析几何】【 数学】【推荐】1330. 翻转子数组得到最大的数组值
|
5月前
|
机器学习/深度学习 算法 调度
拓扑排序解析:计算机与数学的交汇点以及C++ 实现
拓扑排序解析:计算机与数学的交汇点以及C++ 实现
167 0
|
2月前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
2月前
|
存储 NoSQL Redis
redis 6源码解析之 object
redis 6源码解析之 object
58 6
|
21天前
|
存储 缓存 Java
什么是线程池?从底层源码入手,深度解析线程池的工作原理
本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。 阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。
什么是线程池?从底层源码入手,深度解析线程池的工作原理

热门文章

最新文章

推荐镜像

更多
下一篇
无影云桌面