目录

1 交叉熵

2 KL散度


时间一长就忘记了,今天看见缩写CE,突然有点陌生,写个图文并茂的博客加深一下印象。

1 交叉熵

交叉熵,在机器学习中广泛用于衡量两个分布的相似度:

交叉熵一般跟在softmax处理之后,softmax的输出是0-1之间的正数序列,可以认为是概率分布函数。对于分类问题,一般会输出这张图片对应于每一个分类的概率,使概率分布与真实的label(one-hot编码)接近。

看一下两个分布,假设长度是100,序列x的第40个数强制置为5,其他数是0-1之间的随机数,y也一样的配置:

图1

然后进行softmax:

那么交叉熵H(x|y)和H(y|x)分别是3.1775和3.1808。这个交叉熵是比较大的。

我们再将第40个数增加到10:

图2

这时候其他值就很接近于0,这时候的交叉熵H(x|y)和H(y|x)分别是0.0846和0.0825

也就是说,当两个概率分布几乎相等时,交叉熵才接近于0,否则较大。

但是对于分类来说,第一个图的结果已经不错了,可以很好的进行分类。

2 KL散度

KL散度,本名是相对熵,相对于谁?本身的信息熵!这就很好理解了:

变形为:

后面减去的H(P)就是自己的信息熵。

之前做的是交叉熵,好奇心驱使我计算一下对应的熵(也就是信息熵),对于第一幅图,H(x)=3.1511, H(y) = 3.1430。如果用H(x|y)和H(y|x)分别减去对应的熵,那么

H(x|y)-H(x)=0.0428

H(y|x-H(y)=0.0421

对于第二幅图:H(x)=0.0784, H(y) = 0.0810,

H(x|y)-H(x)=6.5000e-04

H(y|x-H(y)=6.6702e-04

H(x)是什么意思呢?就是分布x与自己的一个熵,也就是说,自己表示自己也是需要很多信息量的。因此,使用二者的差去衡量两个分布的相似度,会更客观。这个比较容易理解了,因为上面两幅图,效果都已经达到了分类要求,只不过图2比图1逼近程度更好。但是使用交叉熵,二者的区别很大(无论是H(x|y)或是H(y|x)),前者是>3的值,而后者仅为<0.09的数,相差近30倍。而使用KL散度,得到的相对差异值,前者是0.0428,后者是0.00065,虽然倍数也是几十倍,但是二者都很小。

机器学习经典损失函数复习:交叉熵(Cross Entropy)和KL散度相关推荐

  1. 平均符号熵的计算公式_交叉熵(Cross Entropy)从原理到代码解读

    交叉熵(Cross Entropy)是Shannon(香浓)信息论中的一个概念,在深度学习领域中解决分类问题时常用它作为损失函数. 原理部分:要想搞懂交叉熵需要先清楚一些概念,顺序如下:==1.自信息 ...

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

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

  3. 机器学习中交叉熵cross entropy是什么,怎么计算?

    项目背景:人体动作识别(分类),CNN或者RNN网络,softmax分类输出,输出为one-hot型标签. loss可以理解为预测输出pred与实际输出Y之间的差距,其中pred和Y均为one-hot ...

  4. 【TensorFlow系列二】经典损失函数(交叉熵、均方差)

    ↑ 点击上方[计算机视觉联盟]关注我们 1.交叉熵 交叉熵是分类问题中使用比较广的一种损失函数,刻画了两个概率分布之间的距离. 给定两个概率分布p和q,通过q来表示p的交叉熵为: 交叉熵刻画的是两个概 ...

  5. 交叉熵(cross entropy)概念整理

    网上写得实在是太乱,整理下: 交叉熵函数: H(p,q)=Ep[−logq]=−∑x∈χp(x)logq(x)①H(p,q)=E_p[-log\ q]=-\sum_{x\in \chi}p(x)log ...

  6. 【TensorFlow】TensorFlow从浅入深系列之六 -- 教你深入理解经典损失函数(交叉熵、均方误差)

    本文是<TensorFlow从浅入深>系列之第6篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...

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

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

  8. 熵、交叉熵、相对熵(KL 散度)意义及其关系

  9. 【数据挖掘】神经网络 后向传播算法( 向后传播误差 | 输出层误差公式 | 隐藏层误差公式 | 单元连接权值更新公式 | 单元偏置更新公式 | 反向传播 | 损失函数 | 误差平方和 | 交叉熵 )

    文章目录 I . 向后传播误差 简介 II . 输出层误差计算公式 III . 隐藏层层误差计算公式 IV . 使用误差更新 连接权值 V . 使用误差更新 单元偏置 VI . 反向传播 过程 VII ...

最新文章

  1. 2019CCF自主可控计算机大会召开 中科院院士吁自力更生
  2. android 通知折叠点击,如何折叠Android通知?
  3. Unicode utf8等编码类型的原理
  4. Opencv、OpenCV2.x、Opencv3.x个版本的进化,与VS各个版本的匹配问题
  5. PreparedStatement批量处理的一个Framework(原创)
  6. Python的交互式界面 编写 .
  7. ZJU cluster
  8. 金蝶k3rpc服务器不可用_金蝶KIS商贸版常见问题这样解决
  9. 若依前端table中如何显示图片?
  10. maven之打包插件(maven-assembly-plugin,maven-shade-plugin与maven-assembly-plugin)
  11. qq群管+引流+娱乐机器人
  12. journalctl工具基础介绍
  13. Java IO流详解
  14. vs2015调试iisexpress无法启动的问题解决方案整理
  15. 12.UniT:Multimodal Multitask Learning with a Unified Transformer
  16. 入职东北国企做程序员一个月,感受如何?
  17. 计算机访问小米摄像机,小米摄像头连接教程
  18. 关于timer产生的pwm寄存器arr,ccr,psc分析
  19. 压电式雨量传感器RS485数据解析协议
  20. Android从上往下滑动或从下往上滑动结束Activity

热门文章

  1. 使用CSDN的MarkDown编辑公式
  2. (二十三)图像相似度比较哈希算法
  3. 基础算法 -- 贪心算法
  4. linux的工程管理器是,Linux工程管理器——make
  5. php phar效率,PHP的Phar包原来性能这么强
  6. oracle otl,使用OTL调用Oracle的存储函数
  7. 数码管stm32c语言怎么实现,stm32控制数码管 - ST MCU单片机论坛 - ST(意法半导体)MCU官方技术论坛 - 21ic电子技术开发论坛...
  8. php imagefill,PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
  9. axure 发布 主页_车队如何在黑鸟APP发布同城活动?教程来了!
  10. 静态配置_配置静态LSP示例