交叉熵损失函数(Cross-Entropy Loss Function)

交叉熵损失函数(Cross-Entropy Loss Function)

在处理机器学习或深度学习问题时,损失/成本函数用于在训练期间优化模型。目标几乎总是最小化损失函数。损失越低,模型越好。交叉熵损失是最重要的成本函数。它用于优化分类模型。对交叉熵的理解取决于对 Softmax 激活函数的理解。我在下面写了另一篇文章来涵盖这个先决条件

考虑一个 4 类分类任务,其中图像被分类为狗、猫、马或猎豹。

上图中,Softmax 将 logits 转换为概率。交叉熵的目的是获取输出概率(P)并测量与真值的距离(如下图所示)。

对于上面的示例,类 dog 的所需输出是 [1,0,0,0] ,但模型输出 [0.775, 0.116, 0.039, 0.070]

目标是使模型输出尽可能接近期望的输出(真值)。在模型训练过程中,模型权重会相应迭代调整,目的是最小化交叉熵损失。调整权重的过程定义了模型训练,随着模型不断训练并且损失最小化,我们说模型正在学习。

交叉熵的概念可以追溯到信息论领域,克劳德·香农 (Claude Shannon) 在 1948 年引入了熵的概念。在深入研究交叉熵成本函数之前,让我们先介绍一下熵。

熵(Entropy)

随机变量 X 的熵是变量可能结果固有的不确定性水平。

对于 p(x) — 概率分布和随机变量 X,熵定义如下:

方程 1:熵的定义。注意 log 以 2 为底计算。

负号的原因: log(p(x))<0 对于 (0,1) 中的所有 p(x) 。 p(x) 是概率分布,因此值必须介于 0 和 1 之间。

log(x) 的绘图。对于介于 0 和 1 之间的 x 值,log(x) <0(负数)。

H(x) 的值越大,概率分布的不确定性越大,值越小,不确定性越小。

示例

考虑以下 3 个具有形状的“容器”:三角形和圆形

容器1:选择三角形的概率是26/30,选择圆形的概率是4/30。因此,选择一种形状和/或不选择另一种形状的概率更加确定。

容器 2:选择三角形的概率为 14/30,否则为 16/30。几乎有 50-50 的机会选择任何特定形状。选择给定形状的确定性低于 1。

容器 3:从容器 3 中选取的形状很可能是圆形。选取圆形的概率为 29/30,选取三角形的概率为 1/30。非常确定所选择的形状将是圆形。

让我们计算熵,以便我们确定我们对选择给定形状的确定性的断言。

正如预期的那样,第一个和第三个容器的熵小于第二个容器。这是因为在容器 1 和 3 中选择给定形状的概率比在容器 2 中更加确定。现在我们可以继续讨论交叉熵损失函数。

交叉熵损失函数(Cross-Entropy Loss Function)

也称为对数损失、对数损失或逻辑损失。将每个预测类别概率与实际类别所需输出 0 或 1 进行比较,并计算分数/损失,根据概率与实际预期值的差距对概率进行惩罚。惩罚本质上是对数的,对于接近 1 的大差异产生大分数,对于趋向于 0 的小差异产生小分数。

在训练期间调整模型权重时使用交叉熵损失。目的是最小化损失,即损失越小模型越好。完美模型的交叉熵损失为 0。

交叉熵定义为:

二元交叉熵损失(Binary Cross-Entropy Loss)

对于二元分类(具有两个类别 - 0 和 1 的分类任务),我们将二元交叉熵定义为

二元交叉熵通常计算为所有数据示例的平均交叉熵,即

示例

考虑具有以下 Softmax 概率 (S) 和标签 (T) 的分类问题。目标是根据这些信息计算交叉熵损失。

Logits(S) 和单热编码真值标签(T) 以及分类交叉熵损失函数用于测量预测概率和真值标签之间的“距离”。

分类交叉熵计算如下


Softmax 是连续可微函数。这使得计算损失函数对于神经网络中每个权重的导数成为可能。该属性允许模型相应地调整权重以最小化损失函数(模型输出接近真实值)。

假设经过一些模型训练迭代后,模型输出以下 logits 向量


0.095 小于之前的损失,即 0.3677 暗示模型正在学习。优化过程(调整权重以使输出接近真实值)持续到训练结束。

一般深度学习框架提供了以下交叉熵损失函数:二元、分类、稀疏分类交叉熵损失函数。

分类交叉熵和稀疏分类交叉熵(Categorical Cross-Entropy and Sparse Categorical Cross-Entropy)

分类交叉熵和稀疏分类交叉熵都具有与等式 2 中定义的相同的损失函数。两者之间的唯一区别在于如何定义真值标签。

  • 当真实标签是 one-hot 编码时,使用分类交叉熵,例如,对于 3 类分类问题,我们有以下真实值 [1,0,0][0,1,0][0,0,1].
  • 在稀疏分类交叉熵中,真值标签是整数编码的,例如 3 类问题的 [1][2][3]

reference

@article{Koech2023Aug,
author = {Koech, Kiprono Elijah},
title = {{Cross-Entropy Loss Function - Towards Data Science}},
journal = {Medium},
year = {2023},
month = aug,
urldate = {2023-11-29},
publisher = {Towards Data Science},
language = {english},
url = {https://towardsdatascience.com/cross-entropy-loss-function-f38c4ec8643e}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/234567.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wish防关联是什么?Wish要怎样避免违规封店?

四大跨境电商平台之一wish&#xff0c;做跨境电商的很多人可能都听过wish。随着wish不断完善平台制度&#xff0c;对于多账号运营的卖家要求越来越严厉&#xff0c;wish和亚马逊、eBay等其它跨境电商平台一样&#xff0c;不支持一个卖家开设多个账号多家店铺。 但是对于各位卖家…

【力扣:526】优美的排列

状态压缩动态规划 原理如下&#xff1a; 遍历位图可以得到所有组合序列&#xff0c;将这些序列的每一位看作一个数&#xff0c;取序列中1总量的值作为每轮遍历的位&#xff0c;此时对每个这样的位都能和所有数进行匹配&#xff0c;因为一开始就取的是全排列&#xff0c;并且我们…

LeetCode(46)汇总区间【区间】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 汇总区间 1.题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某…

多多跨境跑出高质量发展“加速度”,解锁拼多多Q3财报背后的王牌

互联网红利渐趋消退&#xff0c;用户拉新难度加大&#xff0c;这些现象也在表明过去电子商务依靠资本、流量快速增长的发展模式已经成为过去式。由高速发展转为高质量发展&#xff0c;在今天每一个经济体与宏观经济发展态势一般&#xff0c;发展的“质量”价值正在被放大开来。…

基于安卓的2048益智游戏的设计与实现

基于安卓的2048益智类游戏的设计与实现 摘要&#xff1a;现如今随着社会日新月异&#xff0c;人们越来越离不开智能手机所提供的灵活性与便携性。安卓系统是在这股手机发展迅猛的潮流中其市场占有率过半的手机平台&#xff0c;基于安卓系统的游戏开发有着不可估量的前景。 本论…

c++ 中名空间中using 引入的细节

如果在引入名空间中的特定成员函数的时候&#xff0c; 全局不能定义同名的函数&#xff0c;但是其实只要参数不同就行 namespace a{int x 1;int fun(){return 0;} }using namespace a; using a::fun;void fun(int x) {} int x 10; int main() {fun(10); } 上面就是一个正确…

源码安装mysql

使用源码安装mysql&#xff0c;这里选择的版本是mysql5.7.35 ,系统是Centos7.6 官网下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 下载源码压缩包 [rootlocalhost ~]# cd /opt[rootlocalhost opt]# wget https://downloads.mysql.com/archives/get/…

MatchPyramid实现文本匹配

引言 今天利用MatchPyramid实现文本匹配。 原论文解析→点此←。 MatchPyramid 核心思想是计算两段文本间的匹配矩阵&#xff0c;把它当成一个图形利用多层卷积网络提取不同层级的交互模式。 匹配矩阵是通过计算两段输入文本基本单元(比如字或词)之间相似度得到的&#xf…

人工智能的技术研究与安全问题的深入讨论

人工智能&#xff08;AI&#xff09;作为当今世界技术领域的热门话题&#xff0c;吸引了广泛的关注和研究。本文将探讨人工智能技术的最新研究进展&#xff0c;并着重讨论与人工智能安全相关的问题。 引言 人工智能技术的迅速发展为我们的生活带来了翻天覆地的变化。随着科技的…

原神:夏洛蒂是否值得培养?全队瞬抬治疗量不输五星,但缺点也很明显

作为四星冰系治疗角色&#xff0c;夏洛蒂的实战表现可以说相当让人惊喜。不仅有相当有意思的普攻动作以及技能特效&#xff0c;而且她还有治疗和挂冰等功能性。下面就来详细聊聊夏洛蒂是否值得培养。 【治疗量让人惊喜&#xff0c;但也有缺点】 说实话&#xff0c;在使用夏洛蒂…

Postman:专业API测试工具,提升Mac用户体验

如果你是一名开发人员或测试工程师&#xff0c;那么你一定知道Postman。这是一个广泛使用的API测试工具&#xff0c;适用于Windows、Mac和Linux系统。今天&#xff0c;我们要重点介绍Postman的Mac版本&#xff0c;以及为什么它是你进行API测试的理想选择。 一、强大的功能和易…

Python编程新标准:十项好习惯提升编码质量

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 1. 编写易读易维护的代码 编写清晰易读的代码是Python编程的核心。使用描述性变量名、规范的注释和文档字符串&#xff0c;让代码易于理解和维护。 # 示例代码&#xff1a;使用描述性变量名和规范注释 total_s…