训练机器学习模型的要点之一是避免过拟合。如果发生过拟合,模型的精确度会下降。这是由于模型过度尝试捕获训练数据集的噪声。本文介绍了两种常用的正则化方法,通过可视化解释帮助你理解正则化的作用和两种方法的区别。

训练机器学习模型的要点之一是避免过拟合。如果发生过拟合,模型的精确度会下降。这是由于模型过度尝试捕获训练数据集的噪声。本文介绍了两种常用的正则化方法,通过可视化解释帮助你理解正则化的作用和两种方法的区别。

噪声,是指那些不能代表数据真实特性的数据点,它们的生成是随机的。学习和捕捉这些数据点让你的模型复杂度增大,有过拟合的风险。

避免过拟合的方式之一是使用交叉验证(cross validation),这有利于估计测试集中的错误,同时有利于确定对模型最有效的参数。本文将重点介绍一种方法,它有助于避免过拟合并提高模型的可解释性。

正则化

正则化是一种回归的形式,它将系数估计(coefficient estimate)朝零的方向进行约束、调整或缩小。也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险。

一个简单的线性回归关系如下式。其中 Y 代表学习关系,β 代表对不同变量或预测因子 X 的系数估计。

Y ≈ β0 + β1X1 + β2X2 + …+ βpXp

拟合过程涉及损失函数,称为残差平方和(RSS)。系数选择要使得它们能最小化损失函数。

这个式子可以根据你的训练数据调整系数。但如果训练数据中存在噪声,则估计的系数就不能很好地泛化到未来数据中。这正是正则化要解决的问题,它能将学习后的参数估计朝零缩小调整。

岭回归

上图展示了岭回归(Ridge Regression)。这一方法通过添加收缩量调整残差平方和。现在,系数要朝最小化上述函数的方向进行调整和估计。其中,λ 是调整因子,它决定了我们要如何对模型的复杂度进行「惩罚」。模型复杂度是由系数的增大来表现的。我们如果想最小化上述函数,这些系数就应该变小。这也就是岭回归避免系数过大的方法。同时,注意我们缩小了每个变量和响应之间的估计关联,除了截距 β0 之外——这是因为,截距是当 xi1 = xi2 = …= xip = 0 时对平均值的度量。

当 λ=0 时,惩罚项没有作用,岭回归所产生的参数估计将与最小二乘法相同。但是当 λ→∞ 时,惩罚项的收缩作用就增大了,导致岭回归下的系数估计会接近于零。可以看出,选择一个恰当的 λ 值至关重要。为此,交叉验证派上用场了。由这种方法产生的系数估计也被称为 L2 范数(L2 norm)。

标准的最小二乘法产生的系数是随尺度等变的(scale equivariant)。即,如果我们将每个输入乘以 c,那么相应的系数需要乘以因子 1/c。因此,无论预测因子如何缩放,预测因子和系数的乘积(X{β})保持不变。但是,岭回归当中却不是如此。因此,我们需要在使用岭回归之前,对预测因子进行标准化,即将预测因子转换到相同的尺度。用到的公式如下:

Lasso 回归

Lasso 是另一个变体,其中需要最小化上述函数。很明显,这种变体只有在惩罚高系数时才有别于岭回归。它使用 |β_j|(模数)代替 β 的平方作为惩罚项。在统计学中,这被称为 L1 范数。

让我们换个角度看看上述方法。岭回归可以被认为是求解一个方程,其中系数的平方和小于等于 s。而 Lasso 可以看作系数的模数之和小于等于 s 的方程。其中,s 是一个随收缩因子 λ 变化的常数。这些方程也被称为约束函数。

假定在给定的问题中有 2 个参数。那么根据上述公式,岭回归的表达式为 β1² + β2² ≤ s。这意味着,在由 β1² + β2² ≤ s 给出的圆的所有点当中,岭回归系数有着最小的 RSS(损失函数)。

同样地,对 Lasso 而言,方程变为 |β1|+|β2|≤ s。这意味着在由 |β1|+|β2|≤ s 给出的菱形当中,Lasso 系数有着最小的 RSS(损失函数)。

下图描述了这些方程。

上图的绿色区域代表约束函数域:左侧代表 Lasso,右侧代表岭回归。其中红色椭圆是 RSS 的等值线,即椭圆上的点有着相同的 RSS 值。对于一个非常大的 s 值,绿色区域将会包含椭圆的中心,使得两种回归方法的系数估计等于最小二乘估计。但是,上图的结果并不是这样。在上图中,Lasso 和岭回归系数估计是由椭圆和约束函数域的第一个交点给出的。因为岭回归的约束函数域没有尖角,所以这个交点一般不会产生在一个坐标轴上,也就是说岭回归的系数估计全都是非零的。然而,Lasso 约束函数域在每个轴上都有尖角,因此椭圆经常和约束函数域相交。发生这种情况时,其中一个系数就会等于 0。在高维度时(参数远大于 2),许多系数估计值可能同时为 0。

这说明了岭回归的一个明显缺点:模型的可解释性。它将把不重要的预测因子的系数缩小到趋近于 0,但永不达到 0。也就是说,最终的模型会包含所有的预测因子。但是,在 Lasso 中,如果将调整因子 λ 调整得足够大,L1 范数惩罚可以迫使一些系数估计值完全等于 0。因此,Lasso 可以进行变量选择,产生稀疏模型。

正则化有何效果?

标准的最小二乘模型常常产生方差。即对于与训练集不同的数据集,模型可能不能很好地泛化。正则化能在不显著增大偏差的的同时,显著减小模型的方差。因此,正则化技术中使用的调整因子 λ,能控制对方差和偏差的影响。当 λ 的值开始上升时,它减小了系数的值,从而降低了方差。直到上升到某个值之前,λ 的增大很有利,因为它只是减少方差(避免过拟合),而不会丢失数据的任何重要特性。但是在某个特定值之后,模型就会失去重要的性质,导致偏差上升产生欠拟合。因此,要仔细选择 λ 的值。

这就是你开始使用正则化之前所要掌握的全部基础,正则化技术能够帮助你提高回归模型的准确性。实现这些算法的一个很流行的库是 Scikit-Learn,它可以仅仅用 Python 中的几行代码运行你的模型。

初学者如何学习机器学习中的L1和L2正则化相关推荐

  1. 机器学习中的L1与L2正则化图解!

    今日锦囊 特征锦囊:今天一起搞懂机器学习里的L1与L2正则化 今天我们来讲讲一个理论知识,也是老生常谈的内容,在模型开发相关岗位中出场率较高的,那就是L1与L2正则化了,这个看似简单却十分重要的概念, ...

  2. 机器学习中的L1和L2正则化项

    关注微信公众号[Microstrong],我写过四年Android代码,了解前端.熟悉后台,现在研究方向是机器学习.深度学习!一起来学习,一起来进步,一起来交流吧! 本文同步更新在我的微信公众号里,地 ...

  3. 【机器学习基础】一文搞懂机器学习里的L1与L2正则化

    文章来源于SAMshare,作者flora 特征锦囊:今天一起搞懂机器学习里的L1与L2正则化 今天我们来讲讲一个理论知识,也是老生常谈的内容,在模型开发相关岗位中出场率较高的,那就是L1与L2正则化 ...

  4. 线性回归中的L1与L2正则化

    在这篇文章中,我将介绍一个与回归相关的常见技术面试问题,我自己也经常会提到这个问题: 描述回归建模中的L1和L2正则化方法. 在处理复杂数据时,我们往往会创建复杂的模型.太复杂并不总是好的.过于复杂的 ...

  5. 详解L1和L2正则化

    大纲: L1和L2的区别以及范数相关知识 对参数进行L1和L2正则化的作用与区别 pytorch实现L1与L2正则化 对特征进行L2正则化的作用 L1和L2的区别以及范数   使用机器学习方法解决实际 ...

  6. l2正则化python_机器学习入门之机器学习之路: python线性回归 过拟合 L1与L2正则化...

    本文主要向大家介绍了机器学习入门之机器学习之路: python线性回归 过拟合 L1与L2正则化,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助. 正则化:    提高模型在未知数据上的 ...

  7. 深入理解L1、L2正则化

    过节福利,我们来深入理解下L1与L2正则化. 1 正则化的概念 正则化(Regularization) 是机器学习中对原始损失函数引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称.也就是 ...

  8. 梯度下降、牛顿法凸优化、L1、L2正则化、softmax、Batchnorm、droupout、Targeted Dropout详解

    一.梯度下降 问题提出:虽然给定一个假设函数,我们能够根据cost function知道这个假设函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?因此我们引出了梯度下降:能够找出cost ...

  9. 正则化的作用以及L1和L2正则化的区别

    0 正则化的作用 正则化的主要作用是防止过拟合,对模型添加正则化项可以限制模型的复杂度,使得模型在复杂度和性能达到平衡. 常用的正则化方法有L1正则化和L2正则化.L1正则化和L2正则化可以看做是损失 ...

最新文章

  1. 《高性能网站建设指南》学习笔记
  2. ssh 框架引入service_搭建SSH开发框架时autowired注入为空的问题
  3. log4j之log4j2.xml使用
  4. mysql免安装出现1067_mysql,免安装,1067错误
  5. 让皮肤美白细致的七大DIY - 生活至上,美容至尚!
  6. 前端js嵌套遍历优化_2020web前端最新面试面经:阿里、字节、小红书
  7. 蓝桥杯 ADV-182 算法提高 前10名
  8. 数据结构排序系列详解之七 归并排序
  9. [C++]二维数组还是一维数组?
  10. Python基础-函数,高阶函数
  11. 31省农村居民人均可支配收入 (2002-2018年)
  12. android 4编程入门经典pdf 下载,Android4开发入门经典 第四部分.pdf
  13. python爬虫-京东全网搜索
  14. nohup sh xxx.sh /dev/null
  15. KBEngine warring项目源码阅读(三) 实体文件与Account处理
  16. autojs自定义Switch
  17. 模拟电路仿真LTspice(1):二极管特性曲线
  18. 03-Matplotlib数据可视化
  19. 10.java正则表达式URL匹配
  20. 百度地图JavaScript API 学习之浏览器定位

热门文章

  1. 智源研究院发布 2020 年世界十大 AI 进展
  2. 程序员买买买,纸书半价,电子书55折,抢券叠加使用更划算
  3. 《Flex 3权威指南》——Adobe官方培训教材
  4. 反卷积(Transposed Convolution, Fractionally Strided Convolution or Deconvolution)
  5. 语音标注自动音段对齐工具SPPAS使用笔记
  6. 区块链论文: Bitcoin-NG: A Scalable Blockchain Protocol
  7. spring整合mybatis(入门级简单教程1)--在spring中配置c3p0,并成功测试
  8. 基于瞳孔检测,湖北中学推出人脸支付!网友提出安全投诉,学校:符合法规,无风险...
  9. 跨界创新,智启未来 | 清华大学大数据研究中心2021年RONG奖学金答辩会成功举办...
  10. 独家|OpenCV1.10 使用OpenCV实现摄像头标定