【损失函数】常见的损失函数(loss function)总结

【深度学习】损失函数详解 损失函数 阅读详情

点击上方,选择星标或置顶,每天给你送干货!

阅读大概需要7分钟

跟随小博主,每天进步一丢丢

机器学习算法与自然语言处理出品

@公众号原创专栏作者 yyHaker

单位 | 哈工大SCIR实验室

损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。

损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。

常见的损失函数以及其优缺点如下:

  1. 0-1损失函数(zero-one loss)

0-1损失是指预测值和目标值不相等为1, 否则为0:

特点:

(1)0-1损失函数直接对应分类判断错误的个数,但是它是一个非凸函数,不太适用.

(2)感知机就是用的这种损失函数。但是相等这个条件太过严格,因此可以放宽条件,即满足  时认为相等,

2. 绝对值损失函数

绝对值损失函数是计算预测值与目标值的差的绝对值:

3. log对数损失函数

log对数损失函数的标准形式如下:

特点:

(1) log对数损失函数能非常好的表征概率分布,在很多场景尤其是多分类,如果需要知道结果属于每个类别的置信度,那它非常适合。

(2)健壮性不强,相比于hinge loss对噪声更敏感。

(3)逻辑回归的损失函数就是log对数损失函数。

4. 平方损失函数

平方损失函数标准形式如下:

特点:

(1)经常应用与回归问题

5. 指数损失函数(exponential loss)

指数损失函数的标准形式如下:

特点:

(1)对离群点、噪声非常敏感。经常用在AdaBoost算法中。

6. Hinge 损失函数

Hinge损失函数标准形式如下:

特点:

(1)hinge损失函数表示如果被分类正确,损失为0,否则损失就为  。SVM就是使用这个损失函数。

(2)一般的  是预测值,在-1到1之间,  是目标值(-1或1)。其含义是,  的值在-1和+1之间就可以了,并不鼓励  ,即并不鼓励分类器过度自信,让某个正确分类的样本距离分割线超过1并不会有任何奖励,从而使分类器可以更专注于整体的误差。

(3) 健壮性相对较高,对异常点、噪声不敏感,但它没太好的概率解释。

7. 感知损失(perceptron loss)函数

感知损失函数的标准形式如下:

特点:

(1)是Hinge损失函数的一个变种,Hinge loss对判定边界附近的点(正确端)惩罚力度很高。而perceptron loss只要样本的判定类别正确的话,它就满意,不管其判定边界的距离。它比Hinge loss简单,因为不是max-margin boundary,所以模型的泛化能力没 hinge loss强。

8. 交叉熵损失函数 (Cross-entropy loss function)

交叉熵损失函数的标准形式如下:

注意公式中  表示样本,  表示实际的标签,  表示预测的输出,  表示样本总数量。

特点:

(1)本质上也是一种对数似然函数,可用于二分类和多分类任务中。

二分类问题中的loss函数(输入数据是softmax或者sigmoid函数的输出):

多分类问题中的loss函数(输入数据是softmax或者sigmoid函数的输出):

(2)当使用sigmoid作为激活函数的时候,常用交叉熵损失函数而不用均方误差损失函数,因为它可以完美解决平方损失函数权重更新过慢的问题,具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的良好性质。

最后奉献上交叉熵损失函数的实现代码:cross_entropy.


这里需要更正一点,对数损失函数和交叉熵损失函数应该是等价的!!!(此处感谢 

@Areshyy

 的指正,下面说明也是由他提供)

下面来具体说明:


相关高频问题:

1.交叉熵函数与最大似然函数的联系和区别?

区别:交叉熵函数使用来描述模型预测值和真实值的差距大小,越大代表越不相近;似然函数的本质就是衡量在某个参数下,整体的估计和真实的情况一样的概率,越大代表越相近。

联系:交叉熵函数可以由最大似然函数在伯努利分布的条件下推导出来,或者说最小化交叉熵函数的本质就是对数似然函数的最大化。

怎么推导的呢?我们具体来看一下。

设一个随机变量  满足伯努利分布,

则  的概率密度函数为:

因为我们只有一组采样数据  ,我们可以统计得到  和  的值,但是  的概率是未知的,接下来我们就用极大似然估计的方法来估计这个  值。

对于采样数据  ,其对数似然函数为:

可以看到上式和交叉熵函数的形式几乎相同,极大似然估计就是要求这个式子的最大值。而由于上面函数的值总是小于0,一般像神经网络等对于损失函数会用最小化的方法进行优化,所以一般会在前面加一个负号,得到交叉熵函数(或交叉熵损失函数):

这个式子揭示了交叉熵函数与极大似然估计的联系,最小化交叉熵函数的本质就是对数似然函数的最大化。

现在我们可以用求导得到极大值点的方法来求其极大似然估计,首先将对数似然函数对  进行求导,并令导数为0,得到

消去分母,得:

所以:

这就是伯努利分布下最大似然估计求出的概率  。

2. 在用sigmoid作为激活函数的时候,为什么要用交叉熵损失函数,而不用均方误差损失函数?

其实这个问题求个导,分析一下两个误差函数的参数更新过程就会发现原因了。

对于均方误差损失函数,常常定义为:

其中  是我们期望的输出,  为神经元的实际输出(  )。在训练神经网络的时候我们使用梯度下降的方法来更新  和  ,因此需要计算代价函数对  和  的导数:

然后更新参数  和  :

因为sigmoid的性质,导致  在  取大部分值时会很小(如下图标出来的两端,几乎接近于平坦),这样会使得  很小,导致参数  和  更新非常慢。

那么为什么交叉熵损失函数就会比较好了呢?同样的对于交叉熵损失函数,计算一下参数更新的梯度公式就会发现原因。交叉熵损失函数一般定义为:

其中  是我们期望的输出,  为神经元的实际输出(  )。同样可以看看它的导数:

另外,

所以有:

所以参数更新公式为:

可以看到参数更新公式中没有  这一项,权重的更新受  影响,受到误差的影响,所以当误差大的时候,权重更新快;当误差小的时候,权重更新慢。这是一个很好的性质。

所以当使用sigmoid作为激活函数的时候,常用交叉熵损失函数而不用均方误差损失函数。

Realsense D435i运行ORB-SLAM3 【代码】Realsense D435i运行ORB-SLAM3。 阅读详情

相关推荐

【ESP32】ESP32连接JY61P并通过WIFI发送给电脑

ESP32S连接JY61P并通过WIFI把姿态数据发送给电脑1.采用Arduino IDE编译器;需要安装ESP32的开发板管理器;2.电脑接受数据是基于python的;

Doudou_Nai的博客 1136

损失函数(lossfunction)的全面介绍(简单易懂版)

此篇文章会带你快速了解lossfunction(损失函数),用简单的语言,方便理解!!!!!

小林学编程的博客 17万+

Cadence OrCAD常见引脚错误排查指南:从原理图到封装的完整解决方案

本文详细解析Cadence OrCAD设计中常见的引脚错误问题,提供从原理图到封装的系统化解决方案。涵盖错误诊断、元件库修复、封装管理及自动化处理技巧,帮助工程师高效解决ORCAP-36022等典型错误,确保设计流程顺畅。

weixin_29294975的博客 258

神经网络中的损失函数(Loss Function)

损失函数通常是一个非负实数函数,表示为L(Y, f(X)),其中Y是实际值(也称为标签或真实值),f(X)是模型的预测值(也称为输出值或估计值),X是输入数据。损失函数的值越小,表示模型的预测结果与实际值越接近,模型的性能也就越好。在这些任务中,模型的目标是尽可能准确地预测连续变量的值,而MAE则提供了一个衡量模型预测精度的有效指标。在这些任务中,模型的目标是准确预测样本所属的类别,而交叉熵损失则提供了一个衡量模型预测精度的有效指标。RMSE是通过计算预测值与实际值之间差的平方的平均值的平方根来衡量的。

搏博的专栏 1万+

BMS应用软件开发 — 7 从特斯拉到问界:主流BMS硬件架构深度解析

本文深度解析了从特斯拉Model 3到问界M5的主流BMS硬件架构,探讨了BMS在电动汽车中的核心价值与应用软件开发的关键技术。通过对比分析两家厂商的硬件设计哲学、芯片选型策略及成本控制方法,揭示了BMS硬件系统如何影响电池性能与整车安全。文章特别分享了电压采样精度、EMC设计等实战经验,为BMS开发提供宝贵参考。

weixin_42554408的博客 457

地方政府预算数据抓取:利用Python爬虫获取预算安排、资金分配与支出情况

爬虫是通过模拟浏览器行为,从互联网上自动获取数据的程序。在本案例中,我们将通过爬虫从地方政府的官方网站或预算公开平台抓取各类预算信息。这些信息一般以HTML网页的形式呈现,可以通过爬虫对网页内容进行解析,提取所需的预算数据。Python作为数据抓取的强大工具,凭借其简洁的语法、强大的第三方库(如requestsSelenium等)以及丰富的数据处理能力,成为了开发爬虫应用的首选语言。

2201_76125261的博客 943

【深度学习】最全的十九种损失函数汇总

【深度学习】最全的十九种损失函数汇总

wzk4869的博客 3万+

人形机器人构成及成本估算(附报告)

这些执行器本身由螺杆、减速器、电机、传感器、滚珠轴承和编码器等组件构成。实现线性与旋转运动互转。人形机器人的运动系统可以由电驱动、液压驱动或气动驱动组成,但由于电驱动具有更高的精度和更快的响应速度,正在成为主流设计方案。执行器:NSK、THK、Harmonic Drive、Leaderdrive、Nidec、Moons。由螺杆、减速器、电机、传感器、轴承和编码器组成(如上为Tesla Optimus执行器设计示意)。传感器:Keyence、Robosense、Sensata、ATI、TE、Sony。

具身机器人和通用AI 1779

损失函数详解

是一种衡量模型与数据吻合程度的算法。损失函数测量实际测量值和预测值之间差距的一种方式。损失函数的值越高预测就越错误,损失函数值越低则预测越接近真实值。对每个单独的观测(数据点)计算损失函数。将所有损失函数(loss function)的值取平均值的函数称为代价函数(cost function),更简单的理解就是损失函数是针对单个样本的,而代价函数是针对所有样本的。。在构建模型的过程中,如果特征的权重发生了变化得到了更好或更差的预测,就需要利用损失函数来判断模型中特征的权重是否需要改变,以及改变的方向。

金石软件 8728

手把手实现STM32+ESP8266+原子云服务器+手机APP应用——第一节-ATK-ESP8266 WIFI模块通过USB-TTL实现连接原子云服务器与手机APP互相通信

本节实现ATK-ESP8266 WIFI模块通过USB-TTL实现连接原子云服务器与手机APP通信。具体来说,本节使用串口CH340(USB-TTL)连接正点原子ATK-ESP8266 WIFI模块,通过AT命令实现连接原子云服务器与手机APP互相通信,实现硬件设备(WIFI模块)与云服务器和手机APP的互相通信。后面章节不用串口CH340(USB-TTL),通过编写单片机程序实现数据远程互相通信,并介绍手机APP的程序设计。单片机任意款即可,STM32F1系列,F4系列,H系列等都可以。本系列为(手把手实

嵌入式阿齐Archie 8422

深度学习论文: AnomalyDINO: Boosting Patch-based Few-shot Anomaly Detection with DINOv2

通过将DINOv2模型适应到一次性和少量异常检测中,并专注于工业应用少量异常检测。实验表明,这种方法不仅与现有技术相匹敌,甚至可以在许多设置中超越它们。我们提出的仅视觉方法AnomalyDINO基于补丁相似性,能够实现图像级别的异常预测和像素级别的异常分割。该方法在方法论上很简单,无需训练,因此不需要任何额外的数据进行微调或元学习。

mingo_敏 1906

机器学习之常见的损失函数(loss function)

解决一个机器学习问题主要有两部分:数据和算法。而算法又有三个部分组成:假设函数、损失函数、算法优化。我们一般在看算法书或者视频教学时,更多的是去推算或者说参数估计出其假设函数,而往往不太注重损失函数,但是损失函数在面试时却是一个很重要的知识点。所以仅在此以自己理解的方式总结一些常见的损失函数,作为笔记方便日后复习。 参考文章: 一、总览 在机器学习中,通常把模型关于单个样本预测值与真实值的差...

perfect1t的博客 4万+

YOLOv11涨点改进 | 全网独家创新,注意力改进篇 | TGRS 2025 | 引入APCM自适应像素级协同机制,动态增强目标区域、抑制背景噪声,助力YOLOv11做红外小目标检测有效涨点

本文提出了一种基于APCM模块改进的YOLOv11网络模型,通过像素级局部-全局协同建模增强目标特征并抑制背景噪声。APCM模块采用轻量化设计,无需复杂参数,能有效提升小目标检测性能。文章详细介绍了APCM的原理、优势及其在红外小目标检测中的应用,包括模块结构、核心代码实现和YAML配置文件修改方法。实验结果表明,该方法在NUAA-SIRST和IRSTD-1K数据集上优于现有技术,显著提高了复杂场景下的检测精度与鲁棒性。

Ai缝合怪、助力小伙伴高效发论文 118

常见损失函数 loss function

0-1 损失函数 L(Y,f(x))={1,Y≠f(x)0,Y=f(x)L(Y,f(x))=\left\{ \begin{aligned} &1, && Y \ne f(x) \\ &0, && Y = f(x) \end{aligned} \right.L(Y,f(x))={​1,0,​​Y​=f(x)Y=f(x)​ 绝对值损失函数 L(Y,f(x))=∣Y−f(x)∣L(Y,f(x))=\vert{Y-f(x)}\vertL(Y,f(x))=∣Y−f(x

Pain is inevitable but suffering is optional. 582

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

常见的损失函数(loss function)总结

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达 导读本文总结了常见的八种损失函数的优缺点,包括:0-1损失函数、绝对值损失函数、 log对数损失函...

小白学视觉 5757

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

常见机器学习损失函数(Loss Function)

常见机器学习损失函数(Loss Function)   损失函数(loss function)是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式...

guaniu_zsx的博客 3511

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

损失函数(loss function)(基本介绍,作用,场景,特点,常见损失函数,代码示例)

损失函数(loss function)(基本介绍,作用,场景,特点,常见损失函数,代码示例)

weixin_45594172的博客 3万+

常见损失函数(Loss Function)

这些损失函数在线性回归中有不同的应用场景,选择适当的损失函数取决于问题的性质和数据的特点。通常,均方误差是最常用的损失函数,但在一些情况下,其他损失函数可能更合适。在线性回归中,损失函数(Loss Function)用于衡量模型的预测值与实际值之间的差异,是优化算法的目标。MSE 是最常见的线性回归损失函数,它对预测值与实际值之间的差异进行平方,并求平均。Huber损失是平均绝对误差和均方误差的一种折衷方案,对异常值的敏感性介于二者之间。与MSE不同,MAE使用的是绝对值而不是平方,因此对异常值不敏感。

galoiszhou的博客 783

常见损失函数Loss Function的选择(regression problem)

回归损失函数Loss Function,regression problem,A General and Adaptive Robust Loss Function,huber loss,MSE,MAE,Quantile loss,Log-cosh loss,𝜖-insensitive

tostq的专栏 2117

【机器学习】常见的损失函数(loss function)总结

机器学习算法与自然语言处理出品@公众号原创专栏作者yyHaker单位 |哈工大SCIR实验室损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。常见的损失函数以及其优缺点如下:0-1损失函...

fengdu78的博客 1920

交叉熵损失函数优缺点_【损失函数】常见的损失函数(loss function)总结

阅读大概需要7分钟跟随小博主,每天进步一丢丢机器学习算法与自然语言处理出品@公众号原创专栏作者yyHaker单位 |哈工大SCIR实验室损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越好,通常模型的性能越好。不同的模型用的损失函数一般也不一样。损失函数分为经验风险损失函数和结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。...

weixin_39520595的博客 6027
上一篇: 这是我看过讲「数据结构与算法」非常有深度的内容,分享给你。
下一篇: 【基础】优化背后的数学基础
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值