← 返回函数库
损失函数

Huber

Huber(r) = ½r² if |r|<δ else δ(|r|−½δ)

平方损失与绝对损失的混合。小残差时像 MSE(平滑),大残差时像 MAE(抗噪)。

参数

名称类型说明
rfloat残差 y - ŷ
δfloat切换阈值

Python 实现

下面是教学用的最小实现,目的是让你看懂原理。生产中请用 PyTorch / TensorFlow 的高性能 op。

python

在计算器里试试

打开底部工具栏的「计算器」,把下面这个表达式贴进表达式输入框,拖动参数滑块看曲线变化:

abs(x) < 1 ? 0.5*x^2 : abs(x) - 0.5

Huber (δ=1)

同类函数