一、熵


二、相对熵(KL散度)

P表示样本的真实分布,Q表示模型所预测的分布,那么KL散度就可以计算两个分布的差异,也就是Loss损失值。Q的分布越接近P(Q分布越拟合P),那么散度值越小,即损失值越小。

有时会将KL散度称为KL距离,但它并不满足距离的性质:

不对称;
不满足三角不等式。

三、交叉熵

我们将KL散度公式进行变形:

前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:

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

四、目前分类损失函数为何多用交叉熵,而不是KL散度,也不是直接用距离相关的均方差?

不使用KL散度:
由于KL散度中的前一部分−H(y)不变(目标分布的熵为常数),故在优化过程中,只需要关注交叉熵就可以了。但是如果目标分布是有变化的(如同为猫的样本,不同的样本,其值也会有差异),那么就不能使用交叉熵。例如蒸馏模型的损失函数就是KL散度,因为蒸馏模型的目标分布也是一个模型,该模型针对同类别的不同样本,会给出不同的预测值(如两张猫的图片a和b,目标模型对a预测为猫的值是0.6,对b预测为猫的值是0.8)。

不直接用距离相关的均方差:
假设神经网络的最后一层激活函数为sigmoid,它的两头异常的平,也就是说在那些地方的导数接近于0。而反向传播是需要求导的,用了均方差损失函数之后求导结果包含y(y-1) ,y接近于0或者1的时候都趋于0,会导致梯度消失,网络训练不下去(梯度弥散)。但如果用相对熵衍生出来的交叉熵作为损失函数则没有这个问题。因此虽然相对熵的距离特性不是特别好,但总归好过直接梯度消失玩不下去,因此很多用sigmoid作为激活函数的神经网络还是选择了用相对熵衍生出来的交叉熵作为损失函数。

交叉熵和相对熵(KL散度)相关推荐

  1. Entropy(熵)、Cross_Entropy(交叉熵)、KL散度

    1. 信息熵 (Entropy) 获得1 bit 的信息可以将不确定性减少一半(也可以说不确定性降低了2倍) 例子: 假设天气情况完全随机,有晴天.雨天两种情况,则是晴天或雨天的概率各为0.5.那么只 ...

  2. 【算法】交叉熵损失和KL散度

    参考资料: https://blog.csdn.net/b1055077005/article/details/100152102 https://zhuanlan.zhihu.com/p/35709 ...

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

    1 信息熵 熵 (Entropy),信息熵:常被用来作为一个系统的信息含量的量化指标,从而可以进一步用来作为系统方程优化的目标或者参数选择的判据. 1.1 信息熵的性质 单调性,发生概率越高的事件,其 ...

  4. 【知识建设】信息熵、条件熵、互信息、交叉熵及相对熵(KL散度)

    一.信息熵 1. 定义 衡量一个随机变量 X X X的信息量,用 H H H表示 根据这个定义,这应该是个不确定的值(随机变量是变化的),而数学上使用期望来将这种不确定性量化: H = ∑ x ∈ X ...

  5. 熵,信息熵,香农熵,微分熵,交叉熵,相对熵

    2019-07-13 https://blog.csdn.net/landstream/article/details/82383503 https://blog.csdn.net/pipisorry ...

  6. 熵、联和熵与条件熵、交叉熵与相对熵是什么呢?来这里有详细解读!

    熵是一个很常见的名词,在物理上有重要的评估意义,自然语言处理的预备知识中,熵作为信息论的基本和重点知识,在这里我来记录一下学习的总结,并以此与大家分享. 信息论基本知识 1.熵 2.联和熵与条件熵 3 ...

  7. ML:图像数据、字符串数据等计算相似度常用的十种方法(余弦相似性、皮尔逊、闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离、马氏距离、汉明距离、编辑距离、杰卡德相似系数、相对熵/KL散度、Helli

    ML:图像数据.字符串数据等计算相似度常用的十种方法(余弦相似性.皮尔逊.闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离.马氏距离.汉明距离.编辑距离.杰卡德相似系数.相对熵/KL散度.Helli ...

  8. 交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离)

    目录: 信息量 熵 相对熵(KL散度) 交叉熵 JS散度 推土机理论 Wasserstein距离 WGAN中对JS散度,KL散度和推土机距离的描述 信息量: 任何事件都会承载着一定的信息量,包括已经发 ...

  9. 《信息熵,联合熵,条件熵,交叉熵,相对熵》

    一:自信息 二:信息熵 三:联合熵 四:条件熵 五:交叉熵 六:相对熵(KL散度) 七:总结

  10. 相对熵/KL散度(Kullback–Leibler divergence,KLD)

    相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(in ...

最新文章

  1. YOLO之父退出CV界表达抗议,拒绝AI算法用于军事和隐私窥探
  2. 大学计算机实验教程实验报告2.2,大学计算机实验2-实验报告.pdf
  3. C++零食:WTL中使用双缓冲避免闪烁
  4. 云效故障定位研究论文被ICSE 2021 SEIP track收录
  5. 使用RSA算法生成令牌
  6. Redis架构及分片管理
  7. AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
  8. 2019年春运贵州道路客运预计达6700万人次
  9. php输出mysql查询结果_PHP简单获取数据库查询结果并返回JSON
  10. 永辉生活APP卖茅台只收款不发货,永辉超市回应...
  11. 避免Ie下的js缓存问题
  12. Android - 找到当前类的Context
  13. 故障诊断仪采集发动机EMS故障的报文与故障码记录
  14. 2020腾讯校园实习生招聘面经(Offer):系统技术运维岗和后台开发岗
  15. 数据库表数据怎么恢复数据_恢复糟透了。 这是数据。
  16. 【蜂口 | AI人工智能】三维人脸重建——龙鹏 深度学习与人脸图像应用连载(十)...
  17. 实现n*n乘法口诀表
  18. Scratch少儿编程案例-算法练习-实现加减乘除练习题
  19. 微信小程序布局移动电商之路
  20. 2020-10-7 CCNA学习笔记

热门文章

  1. 三相短路电流计算机算法的原理什么,第三章电力系统三相短路电流及实用计算.ppt...
  2. 卷积神经网络完整总结
  3. Scratch编程入门
  4. 极简局域网(windows)桌面同屏软件
  5. 【ISO9126】软件质量模型的介绍(软件质量管理的六大特征和二十七个子特征)
  6. 卡尔曼滤波算法 C语言实现
  7. PPT要怎么做?需掌握的一些制作设计技巧
  8. 【C语言】实现网络对战五子棋
  9. android horizontalscrollview顶部导航,带有居中效果的HorizontalScrollView使用说明
  10. pthread_create创建线程后是否需要释放资源