huber loss是什么?什么时候用?

  统计/机器学习 回归分析 损失函数    浏览次数:14872        分享
6
回归的时候有时候会用huber loss,huber loss是什么?什么场合会考虑用huber loss?
 

小齐   2017-05-20 12:14



   3个回答 
15

HuberLoss是一个用于回归问题的带参数的损失函数。

$$L_{\delta}(y,f(x))=\begin{cases}\frac{1}{2}(y-f(x))^2,\text{ if }|y-f(x)|\leq \delta \\  \delta|y-f(x)| -\frac{1}{2}\delta^2, \text{ if }|y-f(x)|> \delta  \end{cases}$$

$\delta$是HuberLoss的参数,$y$是真实值,$f(x)$是模型的预测值。

当预测偏差小于$\delta$时,它采用平方误差,当预测偏差大于$\delta$的时候,采用的线性误差。相比于最小二乘的线性回归,HuberLoss降低了对outlier的惩罚程度,所以HuberLoss是一种常用的robust regression的损失函数。


最后贴一张维基上的图。

绿色是参数$\delta=1$的Huber Loss,蓝色是平方误差。


SofaSofa数据科学社区DS面试题库 DS面经

数据痴汉   2017-05-21 09:31

4

huber loss是最小二乘法和最小绝对误差的结合体。

当数据中有不少离群值或者不确定数据中是否有离群值时,可以用huber loss。

SofaSofa数据科学社区DS面试题库 DS面经

我小宋   2019-10-28 17:14

1

如果预测值的分布是长尾的,看起来不大正态,不大对称的话,可以考虑用Huber。Huber的鲁棒性更强一些。

SofaSofa数据科学社区DS面试题库 DS面经

1point3acres   2022-03-27 23:56



  相关讨论

线性回归梯度下降函数微分推导疑惑

泊松回归(poission regression)的损失函数是什么?

最小二乘回归和线性回归

python里有没有huber loss的线性回归

逻辑回归的损失函数是怎么来的

用SGD计算逻辑回归时的迭代公式是什么?

LR中若标签为+1和-1,损失函数如何推导,求大佬解答

向量梯度下降优化的最佳步长?

focal loss是什么?

hinge loss的公式是什么?

  随便看看

怎么理解surrogate loss function代理损失函数?

如何检验两个样本是同分布的?

numpy里生成单位矩阵?

opencv里waitkey和destroyAllWindows有什么用?

请问在sklearn怎么在已有的模型的基础上训练新的数据?