机器学习经典损失函数复习:交叉熵(Cross Entropy)和KL散度
目录
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散度相关推荐
- 平均符号熵的计算公式_交叉熵(Cross Entropy)从原理到代码解读
交叉熵(Cross Entropy)是Shannon(香浓)信息论中的一个概念,在深度学习领域中解决分类问题时常用它作为损失函数. 原理部分:要想搞懂交叉熵需要先清楚一些概念,顺序如下:==1.自信息 ...
- 交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离)
目录: 信息量 熵 相对熵(KL散度) 交叉熵 JS散度 推土机理论 Wasserstein距离 WGAN中对JS散度,KL散度和推土机距离的描述 信息量: 任何事件都会承载着一定的信息量,包括已经发 ...
- 机器学习中交叉熵cross entropy是什么,怎么计算?
项目背景:人体动作识别(分类),CNN或者RNN网络,softmax分类输出,输出为one-hot型标签. loss可以理解为预测输出pred与实际输出Y之间的差距,其中pred和Y均为one-hot ...
- 【TensorFlow系列二】经典损失函数(交叉熵、均方差)
↑ 点击上方[计算机视觉联盟]关注我们 1.交叉熵 交叉熵是分类问题中使用比较广的一种损失函数,刻画了两个概率分布之间的距离. 给定两个概率分布p和q,通过q来表示p的交叉熵为: 交叉熵刻画的是两个概 ...
- 交叉熵(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 ...
- 【TensorFlow】TensorFlow从浅入深系列之六 -- 教你深入理解经典损失函数(交叉熵、均方误差)
本文是<TensorFlow从浅入深>系列之第6篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...
- 【知识建设】信息熵、条件熵、互信息、交叉熵及相对熵(KL散度)
一.信息熵 1. 定义 衡量一个随机变量 X X X的信息量,用 H H H表示 根据这个定义,这应该是个不确定的值(随机变量是变化的),而数学上使用期望来将这种不确定性量化: H = ∑ x ∈ X ...
- 熵、交叉熵、相对熵(KL 散度)意义及其关系
- 【数据挖掘】神经网络 后向传播算法( 向后传播误差 | 输出层误差公式 | 隐藏层误差公式 | 单元连接权值更新公式 | 单元偏置更新公式 | 反向传播 | 损失函数 | 误差平方和 | 交叉熵 )
文章目录 I . 向后传播误差 简介 II . 输出层误差计算公式 III . 隐藏层层误差计算公式 IV . 使用误差更新 连接权值 V . 使用误差更新 单元偏置 VI . 反向传播 过程 VII ...
最新文章
- 2019CCF自主可控计算机大会召开 中科院院士吁自力更生
- android 通知折叠点击,如何折叠Android通知?
- Unicode utf8等编码类型的原理
- Opencv、OpenCV2.x、Opencv3.x个版本的进化,与VS各个版本的匹配问题
- PreparedStatement批量处理的一个Framework(原创)
- Python的交互式界面 编写 .
- ZJU cluster
- 金蝶k3rpc服务器不可用_金蝶KIS商贸版常见问题这样解决
- 若依前端table中如何显示图片?
- maven之打包插件(maven-assembly-plugin,maven-shade-plugin与maven-assembly-plugin)
- qq群管+引流+娱乐机器人
- journalctl工具基础介绍
- Java IO流详解
- vs2015调试iisexpress无法启动的问题解决方案整理
- 12.UniT:Multimodal Multitask Learning with a Unified Transformer
- 入职东北国企做程序员一个月,感受如何?
- 计算机访问小米摄像机,小米摄像头连接教程
- 关于timer产生的pwm寄存器arr,ccr,psc分析
- 压电式雨量传感器RS485数据解析协议
- Android从上往下滑动或从下往上滑动结束Activity
热门文章
- 使用CSDN的MarkDown编辑公式
- (二十三)图像相似度比较哈希算法
- 基础算法 -- 贪心算法
- linux的工程管理器是,Linux工程管理器——make
- php phar效率,PHP的Phar包原来性能这么强
- oracle otl,使用OTL调用Oracle的存储函数
- 数码管stm32c语言怎么实现,stm32控制数码管 - ST MCU单片机论坛 - ST(意法半导体)MCU官方技术论坛 - 21ic电子技术开发论坛...
- php imagefill,PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
- axure 发布 主页_车队如何在黑鸟APP发布同城活动?教程来了!
- 静态配置_配置静态LSP示例