机器学习经典损失函数复习:交叉熵(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,虽然倍数也是几十倍,但是二者都很小。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
KL度和交叉是在机器学习中用于比较两个概率分布之间相似性的概念,但在一些方面它们也有所不同。KL度用于衡量两个概率分布之间的差异,而交叉则用于衡量模型预测和真实标签之间的差异。 具体来说,KL度衡量的是从一个概率分布到另一个概率分布的信息损失。它是非对称的,即KL(P||Q)不等于KL(Q||P)。KL度的值越小,表示两个概率分布越相似。 交叉是在给定真实标签的情况下,衡量模型预测与真实标签之间的差异。它是对数损失函数的一种形式,用于评估模型的性能。交叉的值越小,表示模型的预测越接近真实标签。 总结来说,KL度用于比较两个概率分布之间的差异,而交叉用于衡量模型预测和真实标签之间的差异。它们在使用和应用上有所区别,但都在机器学习中有广泛的应用。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [KL度和交叉的对比介绍](https://blog.csdn.net/qq_33431368/article/details/130397363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [KL度和交叉](https://blog.csdn.net/Allenalex/article/details/103443060)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值