深度学习常用损失MSE、RMSE、MAE和MAPE
MSE 均方差损失( Mean Squared Error Loss)
MSE是深度学习任务中最常用的一种损失函数,也称为 L2 Loss
MSE是真实值与预测值的差值的平方然后求和平均
范围[0,+∞),当预测值与真实值完全相同时为0,误差越大,该值越大
MSE 曲线的特点是光滑连续、可导,便于使用梯度下降算法,是比较常用的一种损失函数。而且,MSE 随着误差的减小,梯度也在减小,这有利于函数的收敛,即使固定学习因子,函数也能较快取得最小值。
平方误差有个特性,就是当 yi 与 f(xi) 的差值大于 1 时,会增大其误差;当 yi 与 f(xi) 的差值小于 1 时,会减小其误差。这是由平方的特性决定的。也就是说, MSE 会对误差较大(>1)的情况给予更大的惩罚,对误差较小(<1)的情况给予更小的惩罚。从训练的角度来看,模型会更加偏向于惩罚较大的点,赋予其更大的权重。
如果样本中存在离群点,MSE 会给离群点赋予更高的权重,但是却是以牺牲其他正常数据点的预测效果为代价,这最终会降低模型的整体性能。
RMSE 均方根误差(Root Mean Square Error)
RMSE就是对MSE开方之后的结果
MAE 平均绝对误差损失 (Mean Absolute Error Loss)
MAE也是常用的损失函数之一,也称为 L1 Loss
MAE是真实值与预测值的差值的绝对值然后求和平均
MAE 的曲线呈 V 字型,连续但在 y-f(x)=0 处不可导,计算机求解导数比较困难。而且 MAE 大部分情况下梯度都是相等的,这意味着即使对于小的损失值,其梯度也是大的。这不利于函数的收敛和模型的学习。
值得一提的是,MAE 相比 MSE 有个优点就是 MAE 对离群点不那么敏感,更有包容性。因为 MAE 计算的是误差 y-f(x) 的绝对值,无论是 y-f(x)>1 还是 y-f(x)<1,没有平方项的作用,惩罚力度都是一样的,所占权重一样。
MSE与MAE区别
1、一般情况下,MSE收敛速度更快
2、MAE不易受到异常值影响
3、误差关系
MAE损失与误差间为线性关系,而MSE与误差间则是平方关系,当误差越来越大,会使得MSE损失远远大于MAE损失,当MSE损失非常大时,对模型训练的影响也很大
4、鲁棒性
MSE 假设服从标准高分布,而MAE服从拉普拉斯分布
而拉普拉斯分布本身就对异常值更具鲁棒性,当异常值出现时,拉普拉斯分布相比高斯分布受到的影响要小很多,因此以拉普拉斯分布假设的MAE在处理异常值是比高斯分布假设的MSE更加鲁棒
MAPE 平均绝对百分比误差(Mean absolute percentage error)
MAPE 指平均绝对百分比误差,是一种相对度量,实际上将 MAD 尺度确定为百分比单位而不是变量的单位。平均绝对百分比误差是相对误差度量值,它使用绝对值来避免正误差和负误差相互抵消
MAPE 对相对误差敏感,不会因目标变量的全局缩放而改变,适合目标变量量纲差距较大的问题
实现代码
基于上述原理,可以采用多种方式实现MSE和MAE
MSE
1、直接使用pytorch库实现
`torch.nn.MSELoss(reduction='mean') # reduction取值 - none / mean (返回loss和的平均值) / sum (返回loss的和) /默认为 mean`
2、直接根据数学公式计算
mse_loss = 1/(2*m) * np.sum((y-y_pred)**2)
MAE
1、直接使用pytorch库实现
torch.nn.L1Loss(reduction='mean') # reduction取值 - none / mean (返回loss和的平均值) / sum (返回loss的和) /默认为 mean
2、直接根据数学公式计算
mae_loss = 1/m * np.sum(np.abs(y-y_pred))
MAPE
1、直接根据公式计算
mape_loss = np.mean(np.abs((y_pred - y) / y)) * 100
深度学习常用损失MSE、RMSE、MAE和MAPE相关推荐
- 预测评价指标:MSE,RMSE,MAE,MAPE,SMAPE
目录 前言 MSE RMSE MAPE SMAPE Python程序 前言 分类问题的评价指标是准确率,回归算法的评价指标是MSE,RMSE,MAE.测试数据集中的点,距离模型的平均距离越小,该模型越 ...
- 深度学习常用评价指标
版权声明:本文为CSDN博主「ZONG_XP」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/zong59 ...
- 深度学习常用性能评价指标
深度学习常用性能评价指标 前言 基于准确度的指标 基于排名的指标 基于图数据的指标 前言 深度学习性能指标是用于评价深度学习模型性能的依据,是设计模型的重要依据. 基于准确度的指标 对于模型而言仅统计 ...
- 妈耶,讲得好详细,十分钟彻底看懂深度学习常用优化器SGD、RMSProp、Adam详解分析
深度学习常用优化器学习总结 常用优化器 SGD RMS Prop Adam 常用优化器 SGD 基本思想:通过当前梯度和历史梯度共同调节梯度的方向和大小 我们首先根据pytorch官方文档上的这个流程 ...
- DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3、MobileNet、InceptionV3、VGG系列、ResNet、Mask R-CNN )下载地址集合(持续更新)
DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3.MobileNet.InceptionV3.VGG系列.ResNet.Mask R-CNN )下载地址集合(持续更新) 目录 基于 ...
- ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介、使用方法、代码实现、案例应用之详细攻略
ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介.使用方法.代码实现.案例应用之详细攻略 目录 回归预测问题中评价指标简介 RMSE 标准差SD MSE函数
- 深度学习(二)——深度学习常用术语解释, Neural Network Zoo, CNN, Autoencoder
Dropout(续) 除了Dropout之外,还有DropConnect.两者原理上类似,后者只隐藏神经元之间的连接. 总的来说,Dropout类似于机器学习中的L1.L2规则化等增加稀疏性的算法,也 ...
- 深度学习常用python库学习笔记
深度学习常用python库学习笔记 常用的4个库 一.Numpy库 1.数组的创建 (1)np.array() (2)np.zeros() (3)np.ones() (4)np.empty() (5) ...
- 自动驾驶深度学习常用中英文对照表
自动驾驶深度学习常用中英文对照表 A B C D E F G H I J K L M N O P Q R S T U V W Z A 英文 中文 词性 activation 激活值 n,名词 acti ...
最新文章
- SpringBoot在Tomcat下面启动,访问路径
- 增强CNN学习能力的Backbone:CSPNet
- HDU 4286 Data Handler [栈,双端队列]
- 白话Elasticsearch40-深入聚合数据分析之案例实战_Global Aggregation:单个品牌与所有品牌平均价格对比
- listagg 函数--oracle 11g release 2
- java线程睡眠分析,java线程睡眠有关问题
- 《零基础》MySQL DELETE 语句(十五)
- nuxt服务端php,nuxt服务端部署上线
- Bailian2746 约瑟夫问题【 约瑟夫问题】
- mysql基础语法之(全文索引)
- expect - linux远程执行命令
- 【软件测试】测试用例详解
- rk3568 sensor调试记录
- 人类能看懂的衍射光学(含基尔霍夫衍射,瑞利--索末菲衍射,夫琅禾费衍射,角谱衍射,菲涅尔衍射积分,菲涅尔衍射的S-FFT算法,T-FFT算法,D-FFT算法)
- 保研面试复习之计算机网络篇
- 区块链在保险业的应用
- python实现决策树 西瓜书_西瓜书学习笔记-决策树
- 关于计算机名的相关讨论 【好帖 好帖 哈哈。。】
- 生成器之Send方法--python
- 2021-05-19:java 中 keyset排序
热门文章
- 致远OA A8V5 A6V5 V8.2 8.1 8.0 V7 V6 V5 V3补丁
- 管理感悟:工作中的客观题与主观题,及主管工作
- 简述Putty中psftp的用法
- 强力删除在C盘中流氓软件文件的方法
- 【干货合集】不免俗,咱们谈一谈这场“顺我者昌,逆我者亡的伟大技术革命”——区块链...
- linux服务器登录卡在last login的解决
- java毕业设计-大学生实习管理系统 实习申请系统【附源码+文档】
- ERP不规范,同事哭晕在厕所
- GIS地图在房地产中的应用
- 软件测试之测试用例评审