Loading [MathJax]/extensions/TeX/AMSmath.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >交叉熵损失函数

交叉熵损失函数

作者头像
老齐
发布于 2021-03-11 07:12:07
发布于 2021-03-11 07:12:07
1.4K3
举报
文章被收录于专栏:老齐教室老齐教室

注: 本文内容是对《机器学习数学基础》一书有关内容的补充资料。《机器学习数学基础》即将由电子工业出版社于2021年5月出版。与本书相关的更多资料,请查阅微信公众号:老齐教室,或者:https://qiwsir.gitee.io/mathmetics/


在研究机器学习或深度学习问题时,损失函数或者代价函数——关于两者的区别,请参阅《机器学习数学基础》中的详细说明——是必不可少的,它们主要用于优化训练模型。目标就是让损失函数最小化,损失越小的模型越好。交叉熵损失函数,就是众多损失函数中重要一员,它主要用于对分类模型的优化。为了理解交叉熵损失函数,以及为什么同时用Softmax作为激活函数,特别撰写本文。

下面我们使用一个图像分类的示例,这个示例中包括狗、猫、马和豹。

如上图所示,以Softmax函数作为激活函数,交叉熵损失函数旨在度量预测值(

)与真实值之间的差距,如下图所示。

例如,如果输入图片是狗,其真实值为

,但通过深度学习模型,得到的预测值为

。我们的目标就是要让输出的预测值与真实值之间尽可能地靠近。在模型训练过程中,将模型权重进行迭代调整,以最大程度地减少交叉熵损失。权重的调整过程就是模型训练过程,并且随着模型的不断训练和损失的最小化,这就是机器学习中所说的学习过程。

交叉熵的概念起源于信息论,香农(Claude Shannon)在1948年创立了信息论,其中最重要的概念就是信息熵,所以,在学习交叉熵之前,要先了解信息熵——不过,下面仅仅是列出信息熵的基本概念,因为在《机器学习数学基础》一书中,有专门章节讨论信息熵的有关知识。

随机变量

的熵定义:

关于熵的更多内容,请参阅《机器学习数学基础》(2021年5月,电子工业出版社出版)。

交叉熵损失函数

交叉熵损失函数,也称为对数损失或者logistic损失。当模型产生了预测值之后,将对类别的预测概率与真实值(由

组成)进行不比较,计算所产生的损失,然后基于此损失设置对数形式的惩罚项。

在训练模型的时候,使用交叉熵损失函数,目的是最小化损失,即损失越小的模型越好。最理想的就是交叉熵损失函数为

定义

其中,

是类别的数量,

是某个类别的真实值,

是该了别的预测概率。 ”

一般情况下,取以

为底的对数进行计算。

二分类交叉熵损失函数

对于二分类问题,由于分类结果服从伯努利分布(参阅《机器学习数学基础》),所以二分类交叉熵损失函数定义为:

定义

其中,

是某类别的真实值,取值为

为某类别的预测概率。 ”

在二分类问题中,通常计算所有样本的平均交叉熵损失:

其中,

为样本数量,

为第

个样本的真实类别值,

为相应样本的预测概率。

以前面提到的图片识别为例,

表示预测结果,

表示真实标签,如下图所示。

根据上面的数据,计算两者之间的交叉熵:

在神经网络中,所使用的Softmax函数是连续可导函数,这使得可以计算出损失函数相对于神经网络中每个权重的导数(在《机器学习数学基础》中有对此的完整推导过程和案例,读者可以理解其深层含义,请参阅)。这样就可以相应地调整模型的权重以最小化损失函数(模型输出接近真实值)。

假设经过权重调整之后,其输出值变为:

用上面方法,可以容易计算出,这次交叉熵损失比原来小了。

在(Keras)[https://keras.io/zh/](一种高级神经网络接口,Google的TensorFlow在其核心库中已经支持Keras[2])中提供了多种交叉熵损失函数:

  • 二分类
  • 多分类
  • 稀疏类别

关于交叉熵损失函数的更多内容,建议参阅《机器学习数学基础》中的详细说明,本书于2021年5月由电子工业出版社出版。

参考文献

[1]. 齐伟.机器学习数学基础.北京:电子工业出版社,2021

[2]. https://zh.wikipedia.org/wiki/Keras

[3]. https://towardsdatascience.com/cross-entropy-loss-function-f38c4ec8643e

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老齐教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
3 条评论
热度
最新
请问机器学习数学基础这本书出版了吗,网上根本找不到
请问机器学习数学基础这本书出版了吗,网上根本找不到
22点赞举报
到 math.itdiffer.com 看更多资料。本书计划2022年初出版
到 math.itdiffer.com 看更多资料。本书计划2022年初出版
回复回复点赞举报
好的,坐等您的书出版,拜读一下,喜欢看纸质书
好的,坐等您的书出版,拜读一下,喜欢看纸质书
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
揭示相对熵和交叉熵的本质
在第4章4.4.3节介绍损失函数的时候,列出了几项常见的损失函数,其中就有神经网络中常用的以相对熵和交叉熵构建的损失函数。那么什么是相对熵和交叉熵呢?下面就分别进行介绍。
老齐
2022/01/27
1.1K0
揭示相对熵和交叉熵的本质
​常用损失函数Loss和Python代码
在机器学习和深度学习中,损失函数 Loss function 是用来估量训练过程中模型的预测值Prediction与真实值Target的偏差,损失函数越小,预测值和真实值越接近,模型的泛化性能越好,通过不断调整模型参数使得损失函数越来越小,从而指导模型的学习。
Minerva
2020/05/21
7.7K0
深度学习 | 交叉熵损失函数
任何事件都会承载着一定的信息量,包括已经发生的事件和未发生的事件,只是它们承载的信息量会有所不同。如昨天下雨这个已知事件,因为已经发生,是既定事实,那么它的信息量就为0。如明天会下雨这个事件,因为未有发生,那么这个事件的信息量就大。
Justlovesmile
2021/12/14
2.7K0
深度学习基础知识(三)--交叉熵损失函数
在监督学习进行训练的过程中,我们学习的目的是得到输入到输出的映射关系,在给定 后,预测出 ,期望 尽可能的接近 ,也就是 和 的差距尽可能小。而损失函数就是衡量 和 之间差距的指标,通过损失函数指明模型优化的方向。
languageX
2022/06/01
2.3K0
神经网络中的损失函数
在《神经网络中常见的激活函数》一文中对激活函数进行了回顾,下图是激活函数的一个子集——
半吊子全栈工匠
2023/09/02
1.6K0
神经网络中的损失函数
神经网络算法——损失函数(Loss Function)
本文将从损失函数的本质、损失函数的原理、损失函数的算法三个方面,详细介绍损失函数Loss Function。
JOYCE_Leo16
2024/03/19
6.1K0
神经网络算法——损失函数(Loss Function)
学点基本功:机器学习常用损失函数小结
。而损失函数(Loss Function)则是这个过程中关键的一个组成部分,用来衡量模型的输出
AI科技大本营
2019/10/10
1.5K0
学点基本功:机器学习常用损失函数小结
什么是交叉熵-AI快速进阶系列
然后,我们将看到如何从单变量分布中的熵定义中推导出二元分布中的交叉熵。这将使我们很好地理解一个如何概括另一个。
jack.yang
2025/04/05
1310
什么是交叉熵-AI快速进阶系列
【损失函数】常见的损失函数(loss function)总结
损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。
zenRRan
2020/05/26
3.1K0
机器学习中的 7 大损失函数实战总结(附Python演练)
决定走上坡的路径将耗费我们的体力和时间。决定走下坡的路径将使我们受益。因此,下坡的成本是更小的。
磐创AI
2019/08/30
1.2K0
机器学习中的 7 大损失函数实战总结(附Python演练)
理解熵与交叉熵
熵、交叉熵是机器学习中常用的概念,也是信息论中的重要概念。它应用广泛,尤其是在深度学习中。本文对交叉熵进行系统的、深入浅出的介绍。文章中的内容在已经出版的《机器学习与应用》(清华大学出版社,雷明著)中有详细的介绍。
SIGAI学习与实践平台
2019/03/01
2.4K0
理解熵与交叉熵
【深度学习】一文读懂机器学习常用损失函数(Loss Function)
  损失函数(loss function)是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:
10JQKA
2018/07/25
45.3K0
【深度学习】一文读懂机器学习常用损失函数(Loss Function)
机器学习基础——详解机器学习损失函数之交叉熵
我在看paper的时候发现对于交叉熵的理解又有些遗忘,复习了一下之后,又有了一些新的认识。故写下本文和大家分享。
TechFlow-承志
2020/03/05
1.1K0
机器学习基础——详解机器学习损失函数之交叉熵
机器学习----交叉熵(Cross Entropy)如何做损失函数
意义:N为样本数量。公式表示为每一个真实值与预测值相减的平方去平均值。均值平方差的值越小,表明模型越好。 对于回归问题,均方差的损失函数的导数是局部单调的,可以找到最优解。但是对于分类问题,损失函数可能是坑坑洼洼的,很难找到最优解。故均方差损失函数适用于回归问题。
一枕眠秋雨
2024/04/04
14K0
机器学习----交叉熵(Cross Entropy)如何做损失函数
【Pytorch 】笔记六:初始化与 18 种损失函数的源码解析
疫情在家的这段时间,想系统的学习一遍 Pytorch 基础知识,因为我发现虽然直接 Pytorch 实战上手比较快,但是关于一些内部的原理知识其实并不是太懂,这样学习起来感觉很不踏实,对 Pytorch 的使用依然是模模糊糊,跟着人家的代码用 Pytorch 玩神经网络还行,也能读懂,但自己亲手做的时候,直接无从下手,啥也想不起来,我觉得我这种情况就不是对于某个程序练得不熟了,而是对 Pytorch 本身在自己的脑海根本没有形成一个概念框架,不知道它内部运行原理和逻辑,所以自己写的时候没法形成一个代码逻辑,就无从下手。这种情况即使背过人家这个程序,那也只是某个程序而已,不能说会 Pytorch,并且这种背程序的思想本身就很可怕, 所以我还是习惯学习知识先有框架(至少先知道有啥东西)然后再通过实战(各个东西具体咋用)来填充这个框架。而「这个系列的目的就是在脑海中先建一个 Pytorch 的基本框架出来,学习知识,知其然,知其所以然才更有意思 ;)」。
阿泽 Crz
2020/09/04
2.8K0
手写数字识别之损失函数
给定一个策略, 交叉熵就是在该策略下猜中颜色所需要的问题的期望值。更普遍的说,交叉熵用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出成本的大小。
zhangjiqun
2024/12/14
1150
手写数字识别之损失函数
LOSS:交叉熵损失函数
交叉熵(cross entropy)是深度学习中常用的一个概念,一般用来求目标与预测值之间的差距。以前做一些分类问题的时候,经常会用到,最近老师让看下交叉熵损失函数,今天就来看看他是何方神圣。
AngelNH
2020/07/17
1K0
LOSS:交叉熵损失函数
交叉熵--损失函数
语言模型的性能通常用交叉熵和复杂度(perplexity)来衡量。交叉熵的意义是用该模型对文本识别的难度,或者从压缩的角度来看,每个词平均要用几个位来编码。复杂度的意义是用该模型表示这一文本平均的分支数,其倒数可视为每个词的平均概率。
zhangjiqun
2024/12/14
1450
交叉熵--损失函数
【综述专栏】损失函数理解汇总,结合PyTorch和TensorFlow2
在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。
马上科普尚尚
2020/11/11
1.9K0
【综述专栏】损失函数理解汇总,结合PyTorch和TensorFlow2
机器学习中的目标函数总结
几乎所有的机器学习算法都归结为求解最优化问题。有监督学习算法在训练时通过优化一个目标函数而得到模型,然后用模型进行预测。无监督学习算法通常通过优化一个目标函数完成数据降维或聚类。强化学习算法在训练时通过最大化奖励值得到策略函数,然后用策略函数确定每种状态下要执行的动作。多任务学习、半监督学习的核心步骤之一也是构造目标函数。一旦目标函数确定,剩下的是求解最优化问题,这在数学上通常有成熟的解决方案。因此目标函数的构造是机器学习中的中心任务。
SIGAI学习与实践平台
2021/01/05
1.6K0
机器学习中的目标函数总结
推荐阅读
相关推荐
揭示相对熵和交叉熵的本质
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档