【基础回顾】在回归任务中常见的损失函数比较(mse、mae、huber)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 【基础回顾】在回归任务中常见的损失函数比较(mse、mae、huber)

前言

  在机器学习中的回归任务算法模型中我们常常会碰到求解目标的最大值或最小值,在最小化的场景下,目标函数又称为损失函数。在实操中我们在选择损失函数往往会考虑该函数是否能够完美适配当前的任务,比如是否会出现异常值等。本文在这里为大家带来的是回归任务中具有代表性的3个损失函数

函数简介

1. L1 loss

L1 loss:为平均绝对误差。是指预测值和真实值之间的距离的平均值。

优点: 对异常值具有较好的鲁棒性

缺点: 对于很小的损失,梯度也会很大,不利于模型的收敛

2. L2 loss

L2 loss:为均方根误差。是指模型预测值与真实样本之间的差值平方

优点: 计算方便,衡量误差较为准确;梯度随着误差的增大而减小,收敛效果好。

缺点: 对离群的点比较敏感,受影响较大。

3.HUBER loss

HUBER loss : 整合了MAE&MSE各自的优点,同时避免了其缺点

优点: 对异常值的检测更具鲁棒性;在最优点附近由于调整为MSE,有助于函数收敛

缺点: 需要额外的引入超参,需要调试;临界点delta处不可导

函数实操

  模拟数据的输入与输出,输入采用生成随机数的方式生成,输出为输入的0.8到1.2之间随机数的乘积;损失函数我们选择torch.nn自带的损失函数模块。这样我们便完成了输入、输出和损失函数。

结果图像

1. MSE

image.png

2. MAE

image.png

3. HUBER

image.png

附录源码

ini

复制代码

import random
import matplotlib.pyplot as p
import torch
# 选择损失函数MSE
loss_mse = torch.nn.MSELoss()
loss_mae = torch.nn.L1Loss()
loss_huber = torch.nn.SmoothL1Loss()
def MakeDatas():
    targets_list = []
    inputs_list = []
    x = []
    for i in range(100):
        inputs = random.uniform(1, 100)
        targets = inputs * random.uniform(0.8, 1.2)
        inputs, targets = torch.tensor(inputs), torch.tensor(targets)
        x.append(i)
        inputs_list.append(inputs)
        targets_list.append(targets)
    return x, inputs_list, targets_list
if __name__ == "__main__":
    x, inputs_list, targets_list = MakeDatas()
    mseList = []
    maeList = []
    huberList = []
    for j in range(100):
        mse = loss_mse(inputs_list[j], targets_list[j])
        mae = loss_mae(inputs_list[j], targets_list[j])
        huber = loss_huber(inputs_list[j], targets_list[j])
        mseList.append(mse)
        maeList.append(mae)
        huberList.append(huber)
    p.figure(1)
    p.plot(x, inputs_list, label="inputs", color='red')
    p.plot(x, targets_list, label="targets", color='green')
    p.plot(x, mseList, label="loss", color='blue')
    p.title('mse')
    p.legend()
    p.show()
    p.figure(2)
    p.plot(x, inputs_list, label="inputs", color='red')
    p.plot(x, targets_list, label="targets", color='green')
    p.plot(x, maeList, label="loss", color='blue')
    p.title('mae')
    p.legend()
    p.show()
    p.figure(3)
    p.plot(x, inputs_list, label="inputs", color='red')
    p.plot(x, targets_list, label="targets", color='green')
    p.plot(x, huberList, label="loss", color='blue')
    p.title('huber')
    p.legend()
    p.show()

结尾

  本次实验较为草率,如有不到之处,还望大佬们批评指正


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
7月前
|
机器学习/深度学习 人工智能 算法
【机器学习】平均绝对误差 (MAE) 与均方误差 (MSE) 有什么区别?
【5月更文挑战第17天】【机器学习】平均绝对误差 (MAE) 与均方误差 (MSE) 有什么区别?
|
机器学习/深度学习 运维 搜索推荐
机器学习中准确率、精确率、召回率、误报率、漏报率、F1-Score、AP&mAP、AUC、MAE、MAPE、MSE、RMSE、R-Squared等指标的定义和说明
在机器学习和深度学习用于异常检测(Anomaly detection)、电子商务(E-commerce)、信息检索(Information retrieval, IR)等领域任务(Task)中,有很多的指标来判断机器学习和深度学习效果的好坏。这些指标有相互权衡的,有相互背向的,所以往往需要根据实际的任务和场景来选择衡量指标。本篇博文对这些指标进行一个梳理。
机器学习中准确率、精确率、召回率、误报率、漏报率、F1-Score、AP&mAP、AUC、MAE、MAPE、MSE、RMSE、R-Squared等指标的定义和说明
|
机器学习/深度学习 文字识别 算法
深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测
深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测
|
机器学习/深度学习
【机器学习技巧】回归模型的几个常用评估指标(R2、Adjusted-R2、MSE、RMSE、MAE、MAPE)及其在sklearn中的调用方式
【机器学习技巧】回归模型的几个常用评估指标(R2、Adjusted-R2、MSE、RMSE、MAE、MAPE)及其在sklearn中的调用方式
【机器学习技巧】回归模型的几个常用评估指标(R2、Adjusted-R2、MSE、RMSE、MAE、MAPE)及其在sklearn中的调用方式
|
3月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
3月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
3月前
|
存储 负载均衡 Dubbo
分布式-Zookeeper(一)
分布式-Zookeeper(一)
|
5月前
|
监控 NoSQL Java
分布式锁实现原理问题之ZooKeeper的观察器(Watcher)特点问题如何解决
分布式锁实现原理问题之ZooKeeper的观察器(Watcher)特点问题如何解决
|
2月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
45 2
|
2月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
49 1