1.前言

虽然最小二乘学习法是非常实用的机器学习方法,但是当训练样本中包含异常值的时候,学习效果非常易于受到影响。下图展示的是对于线性模型:

以10个训练样本进行最小二乘学习的例子。测试结果如下图所示:

最小二乘学习法具有容易受到异常值影响的弱点

(a)图显示的是没有一场值得情况下能够得到合理的学习结果。但是在(b)图中,如果存在一个异常值,那么最小二乘学习的最终结果会发生极大地变化。

在实际应用中,当样本数量很多的时候,自然会或多或少的包含一些异常值。因此,在这种情况下应用最小二乘学习法,并不能得到令人信赖的结果。在统计学领域和机器学习领域,对异常值也能保持稳定、可靠的性质,称为鲁棒性

当训练样本中混入异常值时,往往希望采用先除去这些异常值在进行学习的方法,或者采用保留异常值,但结果不容易受到异常值影响的方法。去除异常值的方法我们以后再谈,本编文章集中讨论对于异常值有较高鲁棒性的鲁棒学习算法。

2.L1损失最小化学习

2.1 原理

最小二乘学习中,对训练样本的合理性,一般采用L2损失Jls(Θ)来测定:

这里的ri是顺序为i的训练样本所对应的残差,

L2损失的大小会随着残差呈平方级数增长,如下图所示:

如果像“前言”中所讲的那样,训练集中一旦出现一个异常值,学习结果的函数就会发生极大的变化。因此,本节主要讨论使用L1损失对残差增幅加以抑制的学习算法

LA=Least Absolute的首字母。这个方法一般也被称为L1损失最小化学习或者最小绝对值偏差学习。具体求解方法一会再谈。我们先对引言中的问题进行测试,测试结果如下:

最小绝对值偏差学习可以抵抗异常点

通过这个结果我们可以看出,最小绝对值偏差学习要比最小二乘学习受异常值的影响小,另外,对于没有异常值的情况,其结果与最小二乘学习基本相同。

2.2 原理解释

对于常识模型:

最小二乘学习的最终输出结果是训练样本输出值{yi}i=1->n的平均值:

最小绝对值偏差学习的最终输出结果则是训练样本输出值的中间值:

对于平均值而言,只要其中一个值出现巨大变化,都会对最终结果产生巨大影响。但是对于中值而言,某一个或某几个值发生巨大变化对中值影响是有限的。这就是为什么最小绝对值偏差学习对异常值具有鲁棒性。

3.Huber损失最小化学习

3.1 原理与定义

虽然使用L1损失可以得到非常高的鲁棒性,但是高的鲁棒性也意味着训练样本与训练模型并不十分吻合。举一个极端的例子:不论对于什么样的样本,都输出Θ=0,这样也能得到最高的鲁棒性。因此,如果片面的去追求高的鲁棒性,实际的学习效果往往不能达到预期。训练样本的信息得到了多大程度的灵活应用,可以医用训练样本的有效性来评估。本节中,我们主要介绍能够很好滴取的有效性和鲁棒性平衡的Huber损失最小化法

Huber损失的定义如下所示,这里混合使用了L1和L2损失:

图示为:

Huber损失,阈值η=1

如果残差的绝对值|r|小于阈值η的话,上式就是L2损失;如果残差的绝对值|r|大与阈值η,就变成了L1损失。

但是为了与L2损失平滑地连接,在L1损失中减去了常数η^2/2。这样的学习方法就称为Huber损失最小化学习。

3.2 原理解释

还是从最原始的线性模型开始讨论:

把Huber损失ρHuber的绝对值部分用二次函数从上方进行抑制:

接下来,可以采用迭代算法进行求解,并根据现在的解Θ’计算得到的残差的绝对值|ri'|来代替ci,构成如下的形式:

通过这样的方式,那么我们的目标函数J(Θ)的上界的最小化问题就可以通过下式家阿暖细小二乘学习法进行求解:

对于上式,权重可以使用下式加以定义:

下图展示的是对与线性模型进行Huber损失最小化学习的例子。其中阈值η=1.在本例中,反复加权最小二乘学习法只通过两次迭代就可以返回与最终结果相近似的函数。全部四次迭代后就收敛,得到了对于异常值鲁棒性很强的学习结果。具体如下所示:

注意:将阈值η设定为非常小的时候,Huber损失可以认为是L1损失的平滑近似,因此通过上述反复加权最小二乘法,可以对L1损失最小二乘学习进行近似求解。

4.图基损失最小化学习

4.1 原理与定义

Huber损失,是通过L1损失和L2损失进行优化组合,是有效性和鲁棒性达到平衡的学习方法。然而,只要使用L2损失对异常值进行处理,就会使得异常值对结果的影响非常巨大。在实际应用中,Huber损失最小化学习的权重即使对于大的残差也不会变为零,如下图所示:

大的残差下,Huber学习权重会减小但并不为零

在这种严峻状况下的机器学习,采用图基(Tukey)损失法是非常好的选择。如下图所示:

图基(Tukey)损失,阈值η=3

图基损失中,如果残差绝对值|r|大于阈值η(就是我们说的异常值),就用η^2/6的形式输出。因此,图基损失最小化学习一般具有非常高的鲁棒性。

但是,因为图基损失并不是凸函数,一般拥有多个局部最优解,所以在整个值域范围内求得最优解并不是一件容易的事情。在实际应用中,将以下面的权重应用于3节介绍的反复加权最小二乘学习法。就可以得到局部最优解,权重公式为:

另外,当|r|>η是,权重完全变为零,因此图基损失最小化学习完全不受显著异常值影响。

4.2 实例演示

图基可以得到鲁棒性更强的结果,但数据噪声发生变化时容易产生其他局部最优解

阈值η=1。在这个例子中,得到比Huber损失最小学习鲁棒性还要强的结果。然而,图基损失最小化学习的结果依赖于初始化选取,初始值一旦发生变化,或者数据量减少的话,就可能得到完全不同的学习结果。在实际应用中,就会发生图(c)所示的意外结果。

5.L1约束的Huber损失最小化学习

之前我也介绍了L1约束的稀疏学习法,本片也给出了鲁棒学习法。这两种算法是相互独立的,都是对最小二乘进行拓展得到的,把他们组合在一起,也可以形成新的算法。所以本节介绍的就是稀疏学习中的鲁棒学习方法。

首先回顾L1约束Huber损失最小化学习:

就像之前学习到的,L1约束的最小二乘学习的解是通过一般化L2约束的最小二乘学习的反复迭代而求得的。另外,在本篇3节中也介绍过,Huber损失最小化学习的解是通过加权最小二乘学习法的反复迭代而求得的。因此,把他们优化组合在一起,可以得到更好的结果。

下面给出了一个例子作对比:

对核函数模型进行L1约束的Huber损失最小化学习的例子

有监督回归:鲁棒学习相关推荐

  1. 【IM】关于稀疏学习和鲁棒学习的理解

    主要是理解L1和L2正则化,鲁棒学习中也是围绕L1残差和L2方差损失来提出模型.关于鲁棒学习,对于异常值的鲁棒性有两方面:一是对现有样本中异常点的鲁棒性:二是对新增异常点的鲁棒性. 关于L1和L2正则 ...

  2. 有监督回归:最小二乘学习法

    1.前言 接下来几篇博客将总结回归问题中的各种有监督学习算法. 本片博客介绍回归问题中的最基本算法--最小二乘学习法:下一篇介绍为了避免过拟合而设置约束条件的最小二乘学习法.之后,我也会介绍难度高一点 ...

  3. 有监督回归:稀疏学习

    1.前言 带有约束条件的最小二乘学习法和交叉验证的组合,在实际应用中是非常有效的回归方法.然而,当参数特别多的时候,求解各参数以及学习得到的函数的输出值的过程,都需要耗费大量的时间. 这篇博客主要介绍 ...

  4. 今天19:30 | 复旦大学青年副研究员许嘉蓉—《基于图数据的鲁棒机器学习 》

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 6月7日19:30,本期我们邀请到复旦大学青年副研究员许嘉蓉给大家带来精彩的分享! 哔哩哔哩直播通道 扫码关注AI TIME哔哩哔哩官方 ...

  5. 拜占庭鲁棒随机聚合的分布式学习方法

    文章目录 拜占庭鲁棒随机聚合的分布式学习方法 介绍 分布式SGD 鲁棒分布式学习的RSA算法 l1l_1l1​-范数 RSA p范数 RSA 结论 原文链接:https://arxiv.org/abs ...

  6. VehicleNet: Learning Robust Visual Representation for Vehicle Re-identification(车辆网络:学习用于车辆再识别的鲁棒视觉)

    摘要:车辆再识别(re-id)的一个基本挑战是学习鲁棒的和有区别的视觉表示,考虑到不同相机视图的显著的类内车辆变化.由于现有的车辆数据集在训练图像和视点等方面的局限性,我们建议利用四个公共车辆数据集构 ...

  7. IJCAI 2022 | 鲁棒的Node-Node Level自对齐图对比学习

    ©作者 | Dream 单位 | 浙江大学 研究方向 | 图表示学习 本文介绍一下我们自己的工作,该论文是一篇图自监督学习的工作,被 IJCAI 2022 接收. 论文标题: RoSA: A Robu ...

  8. 深度学习-Resolution-robust Large Mask Inpainting with Fourier Convolutions基于傅里叶卷积的对分辨率鲁棒的掩模修复

    Resolution-robust Large Mask Inpainting with Fourier Convolutions基于傅里叶卷积的对分辨率鲁棒的掩模修复 0.摘要 1.概述 2.方法 ...

  9. STL——以鲁棒局部加权回归作为平滑方法的时间序列分解方法

    摘要 STL是一种把时间序列分解为趋势项(trend component).季节项(seasonal component)和余项(remainder component)的过滤过程. STL有一个简单 ...

最新文章

  1. 我被编程语言PUA了!用互联网黑话写代码,每天都在“赋能”变量
  2. C# WinForm使用乐器数字接口
  3. STL源码剖析学习七:stack和queue
  4. 7、恢复数据库(mysql命令)
  5. mac设置首页访问php,mac系统下php项目除了首页全访问不了
  6. 重磅预售 | 分子生物学与遗传学经典名著——《Lewin基因XII》(中译本)
  7. 《Python分布式计算》 第5章 云平台部署Python (Distributed Computing with Python)
  8. 吸顶灯怎么固定天花板_什么是吸顶灯?吸顶灯的材质和其与吊顶灯的区别分析...
  9. MFC通过txt查找文件并进行复制-备忘
  10. 利用jsp设计一个简单计算器 (加减乘除)
  11. 快速移除PDF复制到WORD中的换行符
  12. 牛客输入输出(依图科技)
  13. 关于国外主机PING值
  14. 三步必杀(高阶差分系列)
  15. 手把手带你学习微信小程序 —— 十(icon 标签【微信默认标签】)
  16. 《用计算机写日记》》教学课件,写日记教学课件 [观察日记教学课件]
  17. android小红书框架
  18. 将正方形矩阵顺时针转动90度(Java)
  19. 计算机视觉基础-图像色彩空间转换
  20. 日期时间选择器 DatePicker

热门文章

  1. 将Asp.Net页面输出到EXCEL里去
  2. opensips和pbx之间的连接
  3. Emacs中使用Forms-mode以表格形式展示/编辑简单的文本数据
  4. 实现接口一种可靠的 DLL 接口实现方案
  5. 简单几步教你怎么在路由器上搭建PHP环境的网站
  6. HTTP referer/HTTP referrer
  7. 第十八章 8string类insert成员函数的使用
  8. QQ开心农场外挂软件设计思路
  9. NYOJ 36 最长公共子序列
  10. CodeForce 463C Gargari and Bishops(贪心+暴力)