Huber损失最小化学习法

简介: Huber regression In least square learning methods, we make use of ℓ2\ell_{2} loss to make sure that we get a suitable outcome. However, in the robust point of view, it is always better to

Huber regression
In least square learning methods, we make use of 2 loss to make sure that we get a suitable outcome. However, in the robust point of view, it is always better to make use of the least absolute as the main criterion, i.e.

θ^LA=argminθJLA(θ),JLA(θ)=i=1n|ri|

where ri=fθ(xi)yi is the residual error. By doing so, it is possible to make the learning method more robust at the cost of accuracy.
In order to balance robustness and accuracy, Huber loss may be a good alternative:
ρHuber(r)={ r2/2η|r|η2/2(|r|η)(|r|>η)

Then the optimization goal turns out to be:
minθJ(θ),J(θ)=i=1nρHuber(ri)

As usual, take the linear parameterized model as an example:
fθ(x)=j=1bθjϕj(x)=θTϕ(x)

For simplicity, we omit the details and give the final outcome (more details needed? refer to 1 constrained LS):
θ^=argminθJ~(θ),J~(θ)=12i=1nω~iri+C

where ω~i={1η/|r~i|(|r~i|η)(|r~i|>η) and C=i:|r~i|>η(η|r~i|/2η2/2) are independent of θ .
Therefore, the solution can be formulated as:
θ^=(ΦTW~Φ)ΦTW~y
where W~=diag(ω~1,,ωn) .
By iteration, we can solve θ^ as an estimation of θ . The corresponding MATLAB codes are given below:
n=50; N=1000;
x=linspace(-3,3,n)'; X=linspace(-4,4,N)';
y=x+0.2*randn(n,1); y(n)=-4;

p(:,1)=ones(n,1); p(:,2)=x; t0=p\y; e=1;
for o=1:1000
    r=abs(p*t0-y); w=ones(n,1); w(r>e)=e./r(r>e);
    t=(p'*(repmat(w,1,2).*p))\(p'*(w.*y));
    if norm(t-t0)<0.001, break, end
    t0=t;
end
P(:,1)=ones(N,1); P(:,2)=X; F=P*t;

figure(1); clf; hold on; axis([-4,4,-4.5,3.5]);
plot(X,F,'g-'); plot(x,y,'bo');

这里写图片描述

Tukey regression
The Huber loss combined 1 loss and 2 loss to balance robustness and accuracy. Since 1 loss is concerned, the outliers may have an enormous impact on the final outcome. To tackling that, Tukey may be a considerable alternative:

ρTukey(r)=(1[1r2/η2]3)η2/6η2/6(|r|η)(|r|>η)

Of course, the Tukey loss is not a convex funciton, that is to say, there may be serveral local optimal solution. In actual applications, we apply the following weights:
ω={(1r2/η2)20(|r|η)(|r|>η)

Hence the outliers can no longer put any impact on our estimation.
相关文章
|
Shell Linux Apache
学习Nano编辑器:入门指南、安装步骤、基本操作和高级功能
学习Nano编辑器:入门指南、安装步骤、基本操作和高级功能
3195 0
|
机器学习/深度学习 人工智能 运维
MLOps : 机器学习运维
MLOps : 机器学习运维
588 0
|
4月前
|
存储 缓存 测试技术
阿里云服务器经济型e实例怎么样?性能、价格与适用场景全解析
阿里云服务器经济型e实例2核2G3M带宽40G ESSD Entry云盘价格只要99元1年,而且续费不涨价。经济型e实例是阿里云面向个人开发者、学生以及小微企业推出的一款入门级云服务器。这款实例以其高性价比和灵活的配置,迅速赢得了市场的青睐。那么,阿里云服务器经济型e实例到底怎么样?是否值得购买呢?本文将为您解析经济型e实例的性能、价格与适用场景,以供参考。
|
5月前
|
分布式计算 Java 大数据
Java 大视界 —— 基于 Java 的大数据分布式计算在气象数据处理与天气预报中的应用进展(176)
本文围绕基于 Java 的大数据分布式计算在气象数据处理与天气预报中的应用展开,剖析行业现状与挑战,阐释技术原理,介绍其在数据处理及天气预报中的具体应用,并结合实际案例展示实施效果。
|
8月前
|
机器学习/深度学习 数据采集
NeurIPS 2024:让模型预见分布漂移:动态系统颠覆性设计引领时域泛化新革命
在机器学习中,模型的泛化能力至关重要。针对训练与测试数据分布差异的问题,研究者提出了时域泛化(TDG)概念。然而,传统TDG方法基于离散时间点,限制了其捕捉连续时间数据动态变化的能力。为此,《Continuous Temporal Domain Generalization》论文提出Koodos框架,通过引入连续时间动态系统和Koopman算子理论,实现了对数据和模型动态的准确建模,在多个数据集上显著提升了性能,特别是在处理连续时间概念漂移的数据时表现突出。尽管存在对数据质量和突然变化的敏感性等挑战,Koodos仍为时域泛化提供了创新思路。
237 1
|
并行计算 数据处理 开发者
NumPy高效数组操作与性能调优手册
NumPy是Python数据科学的基础库,以其高效的数组操作著称。本文深入探讨了NumPy的数组基础,如创建和操作数组,并介绍了向量化运算、避免Python循环等高效技巧。此外,文章还提出了性能优化策略,包括使用内置函数、并行计算、减少数据类型转换、使用视图及有效管理内存,以帮助开发者在处理大规模数据时充分利用NumPy的性能优势。通过这些策略,可以实现更高效、快速的数据处理。【6月更文挑战第10天】
726 4
|
存储 C++ 容器
C++ 第九节——map/set(用法+底层原理+模拟实现)
们需要知道的是,Map和Set的底层都是红黑树。
1191 1
C++ 第九节——map/set(用法+底层原理+模拟实现)
|
机器学习/深度学习 数据可视化
FredNormer: 非平稳时间序列预测的频域正则化方法
FredNormer是一种创新的频域正则化方法,旨在提高时间序列预测模型处理非平稳数据的能力。现有正则化技术虽在分布偏移上有所成效,但在频域动态模式捕捉方面存在不足。FredNormer通过自适应增强关键频率分量的权重,解决了这一问题,并设计了即插即用模块,便于集成到各类预测模型中。实验表明,FredNormer在多个公共数据集上显著提升了预测精度,特别是在复杂频率特征的数据集上效果显著。此外,其计算效率也优于现有方法。该方法为非平稳时间序列预测提供了有力工具。
304 3
FredNormer: 非平稳时间序列预测的频域正则化方法
|
安全 Linux 开发者
跨界英雄Python:一招搞定跨平台兼容性难题🎯
【8月更文挑战第5天】Python 展现了卓越的跨平台能力,使开发者能在多种操作系统上编写一致的代码。利用标准库如 `os` 和 `pathlib`,可以轻松进行文件系统操作;借助 `subprocess` 可安全执行外部命令;Tkinter 则简化了跨平台 GUI 的创建。这些工具和技术让 Python 成为处理跨平台任务的理想选择,使开发者能更专注于应用程序的核心功能。
309 3