机器学习者都应该知道的五种损失函数!

摘要: 还不知道这五种损失函数?你怎么在机器学习这个圈子里面混?

在机器学习中,所有的机器学习算法都或多或少的依赖于对目标函数最大化或者最小化的过程,我们常常把最小化的函数称为损失函数,它主要用于衡量机器学习模型的预测能力。在寻找最小值的过程中,我们最常用的方法是梯度下降法。

虽然损失函数可以让我们看到模型的优劣,并且为我们提供了优化的方向,但是我们必须知道没有任何一种损失函数适用于所有的模型。损失函数的选取依赖于参数的数量、异常值、机器学习算法、梯度下降的效率、导数求取的难易和预测的置信度等若干方面。这篇文章将介绍各种不同的损失函数,并帮助我们理解每种损失函数的优劣和适用范围。

由于机器学习的任务不同,损失函数一般分为分类和回归两类,回归会预测给出一个数值结果而分类则会给出一个标签。这篇文章主要集中于回归损失函数的分析。本文中所有的代码和图片都可以在这个地方找到!


回归函数预测数量,分类函数预测标签

回归损失函数

1.均方误差、平方损失——L2损失:

均方误差(MSE)是回归损失函数中最常用的误差,它是预测值与目标值之间差值的平方和,其公式如下所示:


下图是均方根误差值的曲线分布,其中最小值为预测值为目标值的位置。我们可以看到随着误差的增加损失函数增加的更为迅猛。


MSE损失(Y轴)与预测(X轴)的关系图

2.平均绝对误差——L1损失函数:

平均绝对误差(MAE)是另一种常用的回归损失函数,它是目标值与预测值之差绝对值的和,表示了预测值的平均误差幅度,而不需要考虑误差的方向(注:平均偏差误差MBE则是考虑的方向的误差,是残差的和),范围是0,其公式如下所示:



MAE损失(Y轴)与预测(X轴)的关系图


平均绝对误差和均方误差(L1&L2)比较:

通常来说,利用均方差更容易求解,但平方绝对误差则对于异常值更稳健,下面让我们对这两种损失函数进行具体的分析。

无论哪一种机器学习模型,目标都是找到能使目标函数最小的点。在最小值处每一种损失函数都会得到最小值。但哪种是更好的指标呢?你可以上述笔记本地址自行运行代码,检查它们的各项指标。

让我们用具体例子看一下,下图是均方根误差和平均绝对误差的比较(其中均方根误差的目的是与平均绝对误差在量级上统一):



左边的图中预测值与目标值很接近,误差与方差都很小,而右边的图中由于异常值的存在使得误差变得很大。

由于均方误差(MSE)在误差较大点时的损失远大于平均绝对误差(MAE),它会给异常值赋予更大的权重,模型会全力减小异常值造成的误差,从而使得模型的整体表现下降。


所以当训练数据中含有较多的异常值时,平均绝对误差(MAE)更为有效。当我们对所有观测值进行处理时,如果利用MSE进行优化则我们会得到所有观测的均值,而使用MAE则能得到所有观测的中值。与均值相比,中值对于异常值的鲁棒性更好,这就意味着平均绝对误差对于异常值有着比均方误差更好的鲁棒性。

MAE也存在一个问题,特别是对于神经网络来说,它的梯度在极值点处会有很大的跃变,及时很小的损失值也会长生很大的误差,这很不利于学习过程。为了解决这个问题,需要在解决极值点的过程中动态减小学习率。MSE在极值点却有着良好的特性,及时在固定学习率下也能收敛。MSE的梯度随着损失函数的减小而减小,这一特性使得它在最后的训练过程中能得到更精确的结果(如下图)。


在实际训练过程中,如果异常值对于实际业务十分重要需要进行检测,MSE是更好的选择,而如果在异常值极有可能是坏点的情况下MAE则会带来更好的结果。

总结:L1损失对于异常值更鲁棒,但它的导数不连续使得寻找最优解的过程低效;L2损失对于异常值敏感,但在优化过程中更为稳定和准确。更详细的L1L2不同比较可以参考这篇文章

但现实中还存在两种损失都很难处理的问题。例如某个任务中90%的数据都符合目标值——150,而其余的10%数据取值则在0-30之间。那么利用MAE优化的模型将会得到150的预测值而忽略的剩下的10%(倾向于中值);而对于MSE来说由于异常值会带来很大的损失,将使得模型倾向于在0-30的方向取值。这两种结果在实际的业务场景中都是我们不希望看到的。

3.Huber损失——平滑平均绝对误差

Huber损失相比于平方损失来说对于异常值不敏感,但它同样保持了可微的特性。它基于绝对误差但在误差很小的时候变成了平方误差。我们可以使用超参数δ来调节这一误差的阈值。当δ趋向于0时它就退化成了MAE,而当δ趋向于无穷时则退化为了MSE,其表达式如下,是一个连续可微的分段函数:



对于Huber损失来说,δ的选择十分重要,它决定了模型处理异常值的行为。当残差大于δ时使用L1损失,很小时则使用更为合适的L2损失来进行优化。

Huber损失函数克服了MAEMSE的缺点,不仅可以保持损失函数具有连续的导数,同时可以利用MSE梯度随误差减小的特性来得到更精确的最小值,也对异常值具有更好的鲁棒性。

Huber损失函数的良好表现得益于精心训练的超参数δ

4.Log-Cosh损失函数

Log-Cosh损失函数是一种比L2更为平滑的损失函数,利用双曲余弦来计算预测误差:



它的优点在于对于很小的误差来说log(cosh(x))与(x**2/2很相近,而对于很大的误差则与abs(x)-log2很相近。这意味着log cosh损失函数可以在拥有MSE优点的同时也不会受到异常值的太多影响。它拥有Huber的所有优点,并且在每一个点都是二次可导的。二次可导在很多机器学习模型中是十分必要的,例如使用牛顿法的XGBoost优化模型(Hessian矩阵)。


XgBoost中使用的目标函数,注意对一阶和二阶导数的依赖性

但是Log-cosh损失并不是完美无缺的,它还是会在很大误差的情况下梯度和hessian变成了常数。

HuberLog-cosh损失函数的Python代码:

# huber loss
def huber(true, pred, delta):loss = np.where(np.abs(true-pred) < delta , 0.5*((true-pred)**2), delta*np.abs(true - pred) - 0.5*(delta**2))return np.sum(loss)
# log cosh loss
def logcosh(true, pred):loss = np.log(np.cosh(pred - true))return np.sum(loss)

5.分位数损失(Quantile Loss

在大多数真实世界的预测问题中,我们常常希望看到我们预测结果的不确定性。通过预测出一个取值区间而不是一个个具体的取值点对于具体业务流程中的决策至关重要。

分位数损失函数在我们需要预测结果的取值区间时是一个特别有用的工具。通常情况下我们利用最小二乘回归来预测取值区间主要基于这样的假设:取值残差的方差是常数。但很多时候对于线性模型是不满足的。这时候就需要分位数损失函数和分位数回归来拯救回归模型了。它对于预测的区间十分敏感,即使在非均匀分布的残差下也能保持良好的性能。下面让我们用两个例子看看分位数损失在异方差数据下的回归表现。


左:线性关系b / w X1和Y.具有恒定的残差方差。右:线性关系b / w X2和Y,但Y的方差随着X2增加。

上图是两种不同的数据分布,其中左图是残差的方差为常数的情况,而右图则是残差的方差变化的情况。我们利用正常的最小二乘对上述两种情况进行了估计,其中橙色线为建模的结果。但是我们却无法得到取值的区间范围,这时候就需要分位数损失函数来提供。


上图中上下两条虚线基于0.050.95的分位数损失得到的取值区间,从图中可以清晰地看到建模后预测值得取值范围。

了解分位数损失函数

分位数回归的目标在于估计给定预测值的条件分位数。实际上分位数回归就是平均绝对误差的一种拓展。分位数值得选择在于我们是否希望让正的或者负的误差发挥更大的价值。损失函数会基于分位数γ对过拟合和欠拟合的施加不同的惩罚。例如选取γ0.25时意味着将要惩罚更多的过拟合而尽量保持稍小于中值的预测值。


γ的取值通常在0-1之间,图中描述了不同分位数下的损失函数情况,明显可以看到对于正负误差不平衡的状态。


分位数损失(Y轴)与预测(X轴)的关系图。

我们可以利用分位数损失函数来计算出神经网络或者树状模型的区间。下图是计算出基于梯度提升树回归器的取值区间:


使用分位数损失的预测区间(梯度提升回归器)

90%的预测值起上下边界分别是用γ值为0.950.05计算得到的。

比较研究:

在文章的最后,我们利用sinc(x)模拟的数据来对不同损失函数的性能进行了比较。在原始数据的基础上加入而高斯噪声和脉冲噪声(为了描述鲁棒性)。下图是GBM回归器利用不同的损失函数得到的结果,其中ABCD图分别是MSE, MAE, Huber, Quantile损失函数的结果:


将一个平滑的GBM拟合成有噪声的sincx)数据的示例:E原始sincx)函数;F符合MSEMAE损失的平滑GBMG平滑GBM,其具有Huber损耗,δ= {4,2,1}H光滑的GBMα= {0.5,0.1,0.9}的分位数损失相符合。

我们可以看到MAE损失函数的预测值受到冲击噪声的影响更小,而MSE则有一定的偏差;Huber损失函数对于超参数的选取不敏感,同时分位数损失在对应的置信区间内给出了较好的估计结果。

希望小伙伴们能从这篇文章中更深入地理解损失函数,并在未来的工作中选择合适的函数来更好更快地完成工作任务。

将本文中几种损失函数都放到一个图中的结果:



原文链接

本文为云栖社区原创内容,未经允许不得转载。


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

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

相关文章

linux服务器监控zabbix,Linux监控之--使用ZABBIX监控web服务器

使用ZABBIX监控web服务器实验拓扑图&#xff1a;实验思路&#xff1a;nginx添加状态统计模块&#xff0c;编写nginx对应的状态统计脚本。zabbix-server导入nginx模板&#xff0c;并对主机实现监控。实验环境角色IP地址操作系统版本软件包Zabbix_server192.168.0.158/24Centos6.…

Facebook 约十亿美元收购脑机技术公司,助攻AR研发;苹果宣布新款 Mac Pro 在美国生产;谷歌称已实现量子霸权…...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 小米MIX Alpha手机官方概念图…

知道这些用于数据科学和机器学习的GitHub存储库和Reddit主题吗?

摘要&#xff1a; 5月最热门的GitHub存储库和顶级Reddit讨论&#xff0c;戳进来~GitHub和Reddit都是比较有趣的平台&#xff0c;在这里&#xff0c;我不仅学习了数据科学的一些最佳应用&#xff0c;而且还了解数据科学家们是如何编程的。一直以来&#xff0c;GitHub都是开发人员…

l2-008 最长对称子串 (25分)_小学数学关于时间认识(时、分、秒)的几点总结

本文将通过对照学习一个个知识点&#xff0c;延伸出各种知识点的常用题型。一、时、分、秒之间的换算&#xff1a;1时60分 1分60秒这类题型考的是时间单位之间的换算&#xff0c;一种是大单位换小单位&#xff0c;一种是小单位换大单位。在之前的一篇文章里有关于换算的计算方法…

如何在阿里云上构建一个合适的Kubernetes集群

摘要&#xff1a; 声明 本文主要介绍如何在阿里云上构建一个K8S集群的实践&#xff0c;只是作为参考&#xff0c;大家可以根据实际情况做出调整。 集群规划 在实际案例中发现&#xff0c;有不少同学使用了很多的小规格的ECS来构建K8S集群&#xff0c;这样其实即没有达到省钱的目…

360断网急救箱_万事不求人,教你自己动手修复网络断网

日常使用中&#xff0c;我们经常会遇到原来好好的网络忽然无法上网的问题。在排除宽带没有问题&#xff0c;硬件交换机、路由器、网线没有问题的情况下&#xff0c;我们可以充分利用第三方工具的修复功能。前几天&#xff0c;我就遇到一例电脑不能上网的问题&#xff0c;同一办…

linux 网络dma驱动,S3C2410的Linux下DMA驱动程序开发

网上介绍Linux下的一般驱动程序开发示例浩如烟海&#xff0c;或是因为简单&#xff0c;关于DMA驱动的介绍却寥寥无几&#xff1b;近期因工作需要&#xff0c;花了几日时间开发了某设备在S3C2410处理器Linux下DMA通信的驱动程序&#xff0c;有感于刚接手时无资料借鉴的茫然&…

Pivotal冯雷:以数字化为核心竞争力的时代 自主可控是企业的“必然选择”

戳蓝字“CSDN云计算”关注我们哦&#xff01;随着互联网的飞速发展&#xff0c;特别是近年来随着社交网络、物联网、云计算以及多种传感器的广泛应用&#xff0c;以数量庞大&#xff0c;种类众多&#xff0c;时效性强为特征的非结构化数据不断涌现&#xff0c;数据的重要性愈发…

druid去掉广告

定位问题 产生广告的JS文件在 druid-1.1.19.jar/support/http/resources/js/common.js。 查看源码可知是buildFooter方法进行植入&#xff0c;由init方法调用。 解决方案&#xff1a; 找到对应的依赖jar包&#xff0c;如druid-1.1.19.jar 找到support/http/resource/js/comm…

阿里巴巴的AI算法程序媛是怎样的一种存在?

摘要&#xff1a; 一个专注人脸识别技术长达11年的程序媛。程序媛、AI、算法、人脸识别、阿里安全图灵实验室……这些标签任何一个都极具话题性&#xff0c;但如果一个女子同时拥有这些标签&#xff0c;那会是怎样的存在&#xff1f;在见到于鲲之前&#xff0c;我的脑子里是各种…

Hadoop 中zoo_数据分析中的Excel、R、Python、SPSS、SAS和SQL

作为一直想入门数据分析的童鞋们来说&#xff0c;如何选定一门面向数据分析的编程语言或工具呢&#xff1f;注意是数据分析&#xff0c;而不是大数据哦&#xff0c;数据分析是基础了。数据分析的工具千万种&#xff0c;综合起来万变不离其宗。无非是数据获取、数据存储、数据管…

linux下装sqlserver安装包,【sqlServer】CentOS7.x 上Microsoft SQL Server for Linux安装和配置...

SQL Server Documentationhttps://docs.microsoft.com/en-us/sql/sql-server/sql-server-technical-documentation?viewsql-server-2017Installation guidance for SQL Server on Linuxhttps://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup?viewsql-server-20…

2019云栖大会:逍遥看巅峰,张勇提“百新”,平头哥“再亮剑”

文 | 阿晶、丹丹、王银发于阿里云栖大会现场 出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09; “今天不是马云的退休&#xff0c;而是制度传承的开始。”9月10日&#xff0c;阿里20周年的大日子&#xff0c;逍遥子接棒风清扬&#xff0c;跟唱《追梦赤子心》…

10行代码让你轻松搞定对象检测

摘要&#xff1a; 十行代码轻松搞定对象检测&#xff1f;快来看看如何使用ImageAI。计算机视觉是人工智能领域中最重要的一个分支。计算机视觉是一门能够识别和理解图像及其场景的计算机软件系统的科学。计算机视觉包括图像识别、对象检测、图像生成、图像超分辨率等多个方面。…

项目集成Flowable工作流

企业级项目集成Flowable工作流&#xff0c;基于(师父)的开源项目的集成&#xff0c;此开源项目是师傅十几年的经验和实战总结而成&#xff0c;直接可以用于企业开发&#xff0c;旨为帮助更多需要帮助的人! 说明链接项目开原地址https://gitee.com/lwj/flowable博客链接https://…

这个阿里程序员,干了件很轴的事儿

摘要&#xff1a; 我叫孤尽&#xff0c;是一名阿里程序员。 如果说&#xff0c;我身上有一点点和普通程序员不一样&#xff0c;也许是更轴一点。比如我觉得JAVA是世界上最好的语言&#xff0c;没有之一。 最近&#xff0c;我又干了一件比较轴的事情。 我因为这件事曾被大家群嘲…

360路由器v2刷第三方固件_魔百盒M301H-BYT代工MV300H芯片第三方优化刷机卡刷固件下载_移动魔百和 ROM固件...

魔百盒M301H-BYT代工MV300H芯片第三方优化刷机卡刷固件下载固件介绍&#xff1a;1、不带ROOT权限&#xff0c;适用于魔百盒M301H-BYT代工MV300H芯片。2、调出原厂固件屏蔽的wifi&#xff0c;开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b;3、无开机广告&#xff0c;无系统…

CVPR!你凭什么收录我3篇论文!?

摘要&#xff1a; 在近日举行的年度计算机视觉和模式识别盛会CVPR上&#xff0c;阿里云ET城市大脑的三项视觉技术论文成功入选。 别急着找原因&#xff0c;咱们先了解下什么是CVPR。 这个由专业技术学会IEEE&#xff08;电气和电子工程师协会&#xff09;主办的组织全称叫Confe…

c语言中循环结构的作用,C语言中对于循环结构优化的一些入门级方法简介

一.代码移动将在循环里面多次计算&#xff0c;但是结果不会改变的计算&#xff0c;移到循环外面去。例子&#xff1a;优化前&#xff1a;void lower1(char *s){int i;for(i0;iif(s[i]>A&&s[i]<Z)s[i]-(A-a);}优化后&#xff1a;void lower2(char *s){int i;int l…

10分钟Get拥抱无服务的正确姿势

戳蓝字“CSDN云计算”关注我们哦&#xff01;译|孔子东游文|Bob Violino来源|INSIDER PRO无服务器计算旨在实现基础设施的自动化配置以及消除服务器管理的负担&#xff0c;但是你真的准备好使用TA了吗&#xff1f;根据研究公司Markets and Markets 的2018年报告&#xff0c;无服…