机器学习中的Huber损失函数:定义、实现与应用
创作时间:
作者:
@小白创作中心
机器学习中的Huber损失函数:定义、实现与应用
引用
CSDN
1.
https://m.blog.csdn.net/IT_ORACLE/article/details/145184899
在机器学习和数据科学领域,损失函数的选择对模型的性能有着至关重要的影响。其中,Huber损失函数因其独特的性质,在处理包含异常值的数据集时展现出优越的鲁棒性。本文将详细介绍Huber损失函数的定义、特点、优缺点,并通过Python代码实现其计算过程,最后探讨其在实际应用中的价值。
Huber损失函数简介
Huber损失是一种对异常值(outliers)具有鲁棒性的损失函数,它在处理回归问题时常用,结合了均方误差(MSE)的平滑性和平均绝对误差(MAE)的鲁棒性。
Huber损失通过引入一个阈值
来定义,当误差小于
时采用 MSE,当误差大于
时采用 MAE。
定义公式
Huber损失的数学表达式如下:
其中:
- a = y - f(x) 是预测值 f(x) 和真实值 y 的残差。
- 是用户定义的超参数,控制 MSE 和 MAE 的切换点。
特点:
- 对于
:Huber损失是二次函数,类似 MSE,强调小残差的平滑优化。 - 对于
:Huber损失是线性函数,类似 MAE,减轻了离群点对损失值的影响。
Huber损失的梯度
- 小误差(
) 梯度为: - 大误差(
) 梯度为:
优缺点
优点:
- 对小误差采用 MSE,确保了模型的平滑性和稳定性。
- 对大误差采用 MAE,降低了离群点对整体模型的影响。
缺点:
- 超参数 δ\deltaδ 的选择对模型性能影响较大,需要调优。
- 计算复杂度比单纯的 MSE 和 MAE 略高。
Python实现:Huber损失
以下是 Huber 损失的简单实现:
import numpy as np
import matplotlib.pyplot as plt
# Huber损失函数
def huber_loss(y_true, y_pred, delta):
error = y_true - y_pred
loss = np.where(np.abs(error) <= delta,
0.5 * error**2,
delta * (np.abs(error) - 0.5 * delta))
return loss
# 示例数据
y_true = np.array([1, 2, 3, 4, 5])
y_pred = np.array([1.1, 1.9, 3.5, 2.5, 10])
delta = 1.0
# 计算Huber损失
loss = huber_loss(y_true, y_pred, delta)
print("Huber损失:", loss)
print("总损失:", np.sum(loss))
# 可视化损失函数
errors = np.linspace(-5, 5, 100)
losses = huber_loss(0, errors, delta)
plt.plot(errors, losses, label="Huber Loss")
plt.axvline(x=delta, color="red", linestyle="--", label=f"Delta = {delta}")
plt.axvline(x=-delta, color="red", linestyle="--")
plt.title("Huber Loss Function")
plt.xlabel("Error")
plt.ylabel("Loss")
plt.legend()
plt.show()
输出结果
- 打印每个数据点的 Huber 损失值和总损失。
Huber损失: [0.005 0.005 0.125 1. 4.5 ]
总损失: 5.635
- 图形显示 Huber 损失函数的形状,包括在 δ\deltaδ 附近的平滑过渡。
Huber损失的应用
回归模型优化: Huber损失常用于带有异常值的回归问题,尤其在训练时数据中包含离群点。
鲁棒优化:
- 在神经网络中作为损失函数,用于对异常样本具有鲁棒性的训练。
- 替代 MSE 或 MAE,平衡两者的优缺点。
- 机器学习框架: 诸如 TensorFlow 和 PyTorch 等深度学习框架中,都提供了 Huber 损失的实现。
Huber损失的变体
Pseudo-Huber损失: 一种平滑的近似版本,用于优化过程中避免梯度不连续的问题。公式为:
自适应Huber损失: 动态调整
值,根据数据特性自适应地减少离群点的影响。
热门推荐
如何妥善管理长租公寓?管理过程中如何提升租客的满意度?
汽车用尾气清洁剂的作用、功效使用方式及注意事项
超频内存,提升性能:BIOS设置与时序调整的秘籍
著名当代艺术家徐冰:有问题就有艺术
Stata回归结果详解
一个人成长最快的方式:深度工作
工业标准化厂房产权分割转让指南
公司股东结构的三种常见模式:自然人直接持股、控股公司间接持股和有限合伙间接架构
怎样可以提升下属的执行力?这几招帮你搞定
半夜腰疼怎么办?医生解析常见原因及应对方法
吲哚布芬---是谁在悄悄撼动抗血栓神药“阿司匹林”的地位?
混动车怎么保养?
木耳功效与禁忌!润肺止咳清肠排毒!什么人不能吃木耳泡太久会有毒素?
4个提升反应速度的动作,助你练就敏捷身手
含有丁卡因的药物有什么用
win10报错无法修复怎么办
IP属地是电话号码吗?如何更改IP属地?
十二生肖遭遇绯闻的应对方式
探索“下降头”这一神秘词汇的文化内涵与社会意义的深度解析
如何清理微信头像数据库
初任人民陪审员培训:全面提高审判能力与素质
解决 https 证书续签烦恼——自签证书及信任自签 CA 完整攻略
什么是投机行为模式?投机行为存在哪些风险?
学AI需要哪些基础知识?这些基础你具备吗?
手撕鸡:味蕾上的慢时光,幸福滋味悠长
共同继承房产出售、继承顺序及公证时间详解
隐形风扇灯的安装步骤详解
根本没什么“假胯宽”!女性胯最宽的地方就该是大腿根
“纯净水不适合长期喝”,那我们应该喝什么水?
东南亚"老虎杯"足球赛:两队都想输球的罕见案例