连接:https://blog.csdn.net/lanchunhui/article/details/51277608

https://blog.csdn.net/zshfeng/article/details/77972651

1. 香农熵(Shannon entropy)

信息熵(又叫香农熵)反映了一个系统的无序化(有序化)程度,一个系统越有序,信息熵就越低,反之就越高。

如果一个随机变量 XX 的可能取值为 X={x1,x2,…,xn}X={x1,x2,…,xn},对应的概率为 p(X=xi)p(X=xi),则随机变量 XX 的信息熵为:

H(X)=−∑i=1np(xi)logp(xi)H(X)=−∑i=1np(xi)log⁡p(xi)

2. 相对熵(relative entropy)

所谓相对,自然在两个随机变量之间。又称互熵,Kullback–Leibler divergence(K-L 散度)等。设 p(x)p(x) 和 q(x)q(x) 是 XX 取值的两个概率分布,则 pp 对 qq 的相对熵为:

D(p||q)=∑i=1np(x)logp(x)q(x)D(p||q)=∑i=1np(x)log⁡p(x)q(x)

在一定程度上, 熵可以度量两个随机变量的距离 。KL 散度是两个概率分布 P 和 Q 差别的 非对称性的度量 。KL 散度是用来度量使用基于 Q 的编码来编码来自 P 的样本平均所需的额外的位元数。

典型情况下,P 表示数据的真实分布,Q 表示数据的理论分布,模型分布,或 P 的近似分布。

相对熵的性质,相对熵(KL散度)有两个主要的性质。如下

  • (1)尽管 KL 散度从直观上是个度量或距离函数,但它并不是一个真正的度量或者距离,因为它不具有对称性,即
D(p||q)≠D(q||p)D(p||q)≠D(q||p)
  • (2)相对熵的值为非负值,即

    D(p||q)≥0D(p||q)≥0

在证明之前,需要认识一个重要的不等式,叫做吉布斯不等式。内容如下

这里提供一个离散型 KL 散度的简单实现:

from functools import reduce
import operator
import mathdef kl(p, q):return reduce(operator.add, map(lambda x, y: x*math.log(x/y), p, q))

3. 交叉熵(cross entropy)

  • H(p,q)=−∑xp(x)logq(x)

什么是信息熵

信息熵是度量随机变量不确定度的指标,信息熵越大意味着随机变量不确定度越高,意味着系统的有序程度越低。他的定义 
如果随机变量P={x1,x2,...,xn}P={x1,x2,...,xn},他的概率P{P=xi},i∈{1,2,..,n}P{P=xi},i∈{1,2,..,n},则随机变量P={x1,x2,...,xn}P={x1,x2,...,xn}的熵定义为

H(P)=−∑i=1np(xi)log2p(xi)H(P)=−∑i=1np(xi)log2p(xi)

什么是交叉熵

交叉熵(Cross Entropy),主要用于度量两个概率分布间的差异性信息。对一个离散随机变量的两个概率分布P和Q来说,他们的交叉熵定义为:

H(P,Q)=−∑i=1np(xi)log2q(xi)H(P,Q)=−∑i=1np(xi)log2q(xi)

特别的在机器学习中,P代表真实分布,Q代表模型拟合分布,交叉熵衡量两个分布之间的差异,交叉熵越小,Q就与就接近真实分布P,这也是为什么我们用最小化交叉熵损失来学习模型,最简单的逻辑回归的损失函数:

L(θ)=−1m∑i=1m∑j=01p(y(i)=j|xi)log2q(y^=j|xi,θ),(x(i),y(i)),i∈{1,2,3,...,m}L(θ)=−1m∑i=1m∑j=01p(y(i)=j|xi)log2q(y^=j|xi,θ),(x(i),y(i)),i∈{1,2,3,...,m}

其中 (x(i),y(i))(x(i),y(i)) 表示真实数据和标签。 y^y^ 表示模型输出标签。 q(y^=0|xi,θ)=11+e−θTxiq(y^=0|xi,θ)=11+e−θTxi 表示模型分布输出 y^=0y^=0 的概率, q(y^=0|xi,θ)=1−11+e−θTxiq(y^=0|xi,θ)=1−11+e−θTxi 表示模型分布输出 y^=1y^=1 时概率。 p(y(i)=j|xi)=1{y(i)=j}p(y(i)=j|xi)=1{y(i)=j} 。把其中j取值到n就是softmax分类损失了。

什么是相对熵

对一个离散随机变量的两个概率分布P和Q来说,他们的KL散度定义为:

H(P||Q)=∑i=1np(xi)log2p(xi)q(xi)H(P||Q)=∑i=1np(xi)log2p(xi)q(xi)

相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(information gain),是描述两个概率分布P和Q差异的一种方法。它是非对称的,这意味着D(P||Q) ≠ D(Q||P)。 
有人将KL散度称为KL距离,但事实上,KL散度并不满足距离的概念,因为: 
1)KL散度不是对称的; 
2)KL散度不满足三角不等式。。 
特别的,在信息论中,D(P||Q)表示当用概率分布Q来拟合真实分布P时,产生的信息损耗,其中P表示真实分布,Q表示P的拟合分布,模型分布。 
KL距离在信息检索领域,以及统计自然语言方面有重要的运用。

三者间的关系

H(P||Q)=H(P,Q)−H(P)=−∑i=1np(xi)log2q(xi)−(−∑i=1np(xi)log2p(xi))=∑i=1np(xi)log2p(xi)q(xi)H(P||Q)=H(P,Q)−H(P)=−∑i=1np(xi)log2q(xi)−(−∑i=1np(xi)log2p(xi))=∑i=1np(xi)log2p(xi)q(xi)

简单理解下, H(P)H(P) 理解为真实分布编码长度,  H(P,Q)H(P,Q) 理解为用Q模拟真实分布的编码长度,  H(P||Q)H(P||Q) 理解为模拟到真实的差距。

香农熵、相对熵(KL散度)与交叉熵相关推荐

  1. 相对熵与交叉熵_熵、KL散度、交叉熵

    公众号关注 "ML_NLP"设为 "星标",重磅干货,第一时间送达! 机器学习算法与自然语言处理出品 @公众号原创专栏作者 思婕的便携席梦思 单位 | 哈工大S ...

  2. KL散度和交叉熵的对比介绍

    KL散度(Kullback-Leibler Divergence)和交叉熵(Cross Entropy)是在机器学习中广泛使用的概念.这两者都用于比较两个概率分布之间的相似性,但在一些方面,它们也有所 ...

  3. 信息论基础(信息量、熵、KL散度、交叉熵)

    信息论基础(信息量.熵.KL散度.交叉熵) 文章目录 信息论基础(信息量.熵.KL散度.交叉熵) 1. 信息量与熵 2. KL散度与交叉熵 交叉熵与LogisticLogisticLogistic回归 ...

  4. “交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”

    [本文内容是对下面视频的整理和修正] "交叉熵"如何做损失函数?打包理解"信息量"."比特"."熵"."KL散 ...

  5. 交叉熵与KL散度和交叉熵之间的关系

    1.熵 熵的本质是香农信息量log1plog\frac{1}{p}logp1​ 现有关于样本的两个概率分布ppp和qqq,其中ppp为真实分布,qqq为非真实分布.按照真实分布ppp来衡量识别一个样本 ...

  6. 熵、KL散度、交叉熵公式及通俗理解

    熵 根据香农信息论中对于熵的定义,给定一个字符集,假设这个字符集是X,对x∈X,其出现概率为P(x),那么其最优编码(哈夫曼编码)平均需要的比特数等于这个字符集的熵. 如果字符集中字符概率越趋于平均, ...

  7. 信息量、信息熵、KL散度、交叉熵

    一.信息量 定义: 香农(C. E. Shannon)信息论应用概率来描述不确定性.信息是用不确定性的量度定义的.一个消息的可能性愈小,其信息愈多:而消息的可能性愈大,则其信息量愈少:事件出现的概率小 ...

  8. 信息量、信息熵、条件熵、KL散度、交叉熵

    文章目录 1. 信息量 2. 信息熵 3. 条件熵 4. 交叉熵与KL散度 4.1 公式推导 1. 信息量   为了理解这个概念,我们先以两个具体的事件为例: 事件1:德国队获得世界杯冠军. 事件2: ...

  9. 熵,KL散度,交叉熵

    在信息论中定义一个事件X=xX=xX=x的自信息(self-information)为:I(p)=−logpI(p)=-logpI(p)=−logp,表示以P(X=x)=pP(X=x)=pP(X=x) ...

  10. MachineLearning(9)-最大似然、最小KL散度、交叉熵损失函数三者的关系

    最大似然-最小KL散度-最小化交叉熵损失-三者的关系 问题缘起:给定一组数据(x1,x2,...,xm)(x^1,x^2,...,x^m)(x1,x2,...,xm),希望找到这组数据服从的分布.此种 ...

最新文章

  1. windows 下架设svn服务器(转载)
  2. 在Windows XP Home如何安裝IIS?
  3. Linux中printk和strace命令调试的一些技巧
  4. SAP Spartacus B2B table的配置信息从哪里来?
  5. 在 Windows Azure 上部署并定制化 FreeBSD 虚拟机镜像
  6. linux+apache+mysql+php
  7. Ubuntu抛弃了Untiy转向Gnome,美化之路怎么办?不用怕咱一步一步大变身!
  8. Vue + SpringBoot跨域
  9. C++11新特性之右值引用
  10. linux 常见开机故障解决办法
  11. python核心编程-第三章-个人笔记
  12. 路由器刷机教程图解_路由器变砖怎么办救活成功修复TFTP详细图文教程
  13. Win10显示多个虚拟桌面
  14. ArcGIS 对起伏度、坡度和道路等及进行重分类处理
  15. SAP财务主要模块介绍
  16. 如何在微信公众号的开放平台上运维微信公众号
  17. 网络蠕虫和僵尸网络等恶意代码防范技术原理
  18. SMS短信PDU编码详细解析
  19. 【收藏】2019届互联网大厂公司校招薪资汇总,基本年薪都在20万以上
  20. 处理器适配器的简单介绍

热门文章

  1. AMiner会议论文推荐第二十六期
  2. jsp企业会议室预订管理系统
  3. 给图片添加水印,并支持浏览器下载输出
  4. oracle的闪存_Oracle闪存技术介绍
  5. netsh命令恢复网络_Netsh命令-修改网络IP设置
  6. UML基础——面向对象技术
  7. 自定义日历控件背景样式
  8. 什么是连通图,(强)连通图
  9. 3 判断是否为合法的URL
  10. 基于遗传算法的排课设计