点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

1、简介

正则化就是结构风险最小化策略的实现, 是在经验风险最小化的情况下加入一个正则化项或者罚项。

正则化技术令参数数量多于输入数据量的网络避免产生过拟合现象。正则化通过避免训练完美拟合数据样本的系数而有助于算法的泛化。为了防止过拟合, 增加训练样本是一个好的解决方案。此外, 还可使用数据增强、 L1正则化、 L2 正则化、 Dropout、 DropConnect 和早停(Early stopping) 法等。

2、数据增强

数据增强是提升算法性能、 满足深度学习模型对大量数据的需求的重要工具。数据增强通过向训练数据添加转换或扰动来人工增加训练数据集。数据增强技术如水平或垂直翻转图像、 裁剪、 色彩变换、 扩展和旋转通常应用在视觉表象和图像分类中。(后续的推文会仔细解释和实践)

3、L2正则化

L2 正则化就是在损失函数后面增加上 L2 正则化项, 公式为:

其中 L0为原始损失函数, 后面部分为 L2 正则化项。L2 正则化项为所有权值的平方和除以训练集中的样本大小
n, λ∈ R 是引入的正则化项系数, 用来调节正则项和原始损失值 L0 的比重, 系数 1/2 时方便求导时进行约简。
对 L2 正则化公式进行求导后得到:

将上述公式代入梯度下降公式, L2 正则化后权值 w 的更新为:

没有使用L2正则化时权值w前面的系数为1,使用L2正则化后权值w前面的系数为 1-ηλ/n, 其中η、λ、n 为正数,使得权值w的系数恒小于1,因此可以看出L2正则化就是用来惩罚特征的权值w的, 学术上称之为权重衰减。

L2正则化确实能够让权值变得更小,它可以用于防止过拟合的原因在于更小的权值表示神经网络的复杂度更低、网络参数越小,这说明模型相对简单,越简单的模型引起过度拟合的可能性越小。

4、 L1 正则化

L1 正则化时原始的损失函数后面加上一个 L1 正则化项, 即权值 w 绝对值的和除以 n, L1 正则化公式为:

当权值为正时,更新后权值变小;当权值为负时, 更新后权值变大。因此 L1 正则化的目的是让权值趋向于 0,使得神经网络的权值尽可能小, 也就相当于减小了网络的复杂度, 防止了过拟合。

在实际应用中,一般使用L2正则化。因为L1范式会产生稀疏解,具有一定的特征选择能力,对求解高维特征空间比较有用;L2 范式主要是为了防止过拟合。

5、 L1 和 L2 正则化的对比

L1和L2正则化是最常用的正则化方法。L1正则化向目标函数添加正则化项,以减少参数的绝对值总和;而L2正则化中, 添加正则化项的目的在于减少参数平方的总和。根据之前的研究,L1正则化中的很多参数向量是稀疏向量,因为很多模型导致参数趋近于0,因此它常用于特征选择设置中。机器学习中最常用的正则化方法是对权重施加L2范数约束。

线性回归中,使用L1正则化的为Lasso回归,使用L2正则化的为Ridge回归(岭回归),既使用L1正则又使用L2正则的为 ElasticNet。

5.1、 为什么 L1 和 L2 正则化可以防止过拟合?

拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,即抗扰动能力强。

L1&L2正则化会使模型偏好于更小的权值。更小的权值意味着更低的模型复杂度;添加L1&L2正则化相当于为模型添加了某种先验,限制了参数的分布,从而降低了模型的复杂度。模型的复杂度降低, 意味着模型对于噪声与异常点的抗干扰性的能力增强,从而提高模型的泛化能力。——直观来说,就是对训练数据的拟合刚刚好,不会过分拟合训练数据(比如异常点,噪声)。

5.2、 为什么 L1 能使得权值稀疏?

使用0范数来正则化参数,也可以使大部分参数为0,实现稀疏,但是0范数的优化求解特性不如1范数好,所以通常用1范数来实现稀疏。

L1 与 L2 的相同点:
    都可以限制模型的学习能力,即通过限制参数的规模,使模型偏好于权值较小的目标函数,防止过拟合。

L1 与 L2 的不同点:
    L1正则化可以产生更稀疏的权值矩阵,可以用于特征选择, 同时一定程度上防止过拟合;

L2正则化主要用于防止模型过拟合L1正则化适用于特征之间有关联的情况;

L2正则化适用于特征之间没有关联的情况L1相对于L2更能实现权值稀疏,是由他们本身的计算方式决定的,L1是各元素绝对值之和,L2是各元素平方和的根,在对不同参数进行惩罚时,L1无论参数大小如何,对它们的惩罚值都相同,导致那些参数大小和惩罚值相等的参数,一减就变为 0,而L2对参数的惩罚值是根据参数本身的大小来变化的,越小的参数惩罚值越小,越大的参数惩罚值越大,所以最终使得所有参数都接近 0,但不会等于0。

6、 Dropout

Bagging是通过结合多个模型降低泛化误差的技术,主要的做法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。而Dropout可以被认为是集成了大量深层神经网络的Bagging方法, 因此它提供了一种廉价的Bagging集成近似方法,能够训练和评估值数据数量的神经网络。

Dropout指暂时丢弃一部分神经元及其连接。随机丢弃神经元可以防止过拟合,同时指数级、高效地连接不同网络架构。神经元被丢弃的概率为1 - p,减少神经元之间的共适应。隐藏层通常以0.5的概率丢弃神经元。使用完整网络(每个节点的输出权重为 p)对所有 2^n 个dropout神经元的样本平均值进行近似计算。Dropout显著降低了过拟合,同时通过避免在训练数据上的训练节点提高了算法的学习速度。

7、 Drop Connect

Drop Connect是另一种减少算法过拟合的正则化策略,是 Dropout的一般化。在Drop Connect的过程中需要将网络架构权重的一个随机选择子集设置为零,取代了在Dropout中对每个层随机选择激活函数的子集设置为零的做法。由于每个单元接收来自过去层单元的随机子集的输入,Drop Connect和 Dropout都可以获得有限的泛化性能。Drop Connect和 Dropout相似的地方在于它涉及在模型中引入稀疏性,不同之处在于它引入的是权重的稀疏性而不是层的输出向量的稀疏性。

8、 最大约束范式

最大约束范式就是对权值进行约束,限制权值的大小,对每个神经元的权重绝对值给予限制。实际操作中先对所有参数进行正常的更新,然后通过限制每个神经元的权重矢量使其满足关系式:

其中c∈R常用取值为3或4。最大约束范式的特点是对权值的更新进行了约束,即使学习率很大,也不会因网络参数发生膨胀导致过拟合。

9、 基于优化过程的正则化:早停法

早停法可以限制模型最小化代价函数所需的训练迭代次数。早停法通常用于防止训练中过度表达的模型泛化性能差。如果迭代次数太少,算法容易欠拟合(方差较小,偏差较大),而迭代次数太多,算法容易过拟合(方差较大,偏差较小)。早停法通过确定迭代次数解决这个问题,不需要对特定值进行手动设置。

10、 基于函数模型的正则化

10.1、 参数共享

在同一网络的多个部分中重用一定的可训练参数,这种方法称为权值共享。当两个模型执行足够相似的分类任务并且具有相似的输入/输出分布时,模型参数之间应当存在一些相关性, 这时认为模型参数具有一定的可重用性,应用这一正则化方法可以使得模型比使用单独训练参数的模型更加简单。

目前,较为广泛地应用权重共享作为正则化方法的模型之一是卷积神经网络,它通过在图像的多位置共享权值参数从而对有关特征提取的平移不变性和局部性的先验知识进行了编码。此外,权重共享有效降低了卷积神经网络中需要学习的权重的参数数量,支持网络在不断增加训练数据的同时向更深处进行扩展。使用权值共享的模型的另一个例子就是自动编码器,将编码部分与相应的Sigmoid层参数共享,实现网络的构建。

10.2、 噪声标签

在模型输入部分添加噪声是数据集扩增的一种主要方式。将噪声添加到模型的隐藏单元可以得到常用的噪声模型;噪声模型的例子就是循环神经网络,通过噪声添加到模型权重从而转换到一个有关权重的贝叶斯推断的随机实现。通过贝叶斯推理的学习过程表现权重的不确定性,是一种使用的随机方法,此外,随机池化通过向模型的各个部分注入随机噪声赋予模型随机性实现了确定性模型随机泛化。向输出目标添加噪声的一个重要应用就是标签平滑。

10.3、 标签平滑

标签平滑通过将 softmax 函数明确分类结果替换为有关输出数量的比值, 对模型进行正则化, 它的优势就是能够防止模型陷入精确概率求解并且不影响正常的分类结果, 与之相关的正则化方法是 Mixup。令 x 为样本, y 为标签, 我们可以从训练数据(xi,yi)和(xj,yj)中创造出虚拟训练样本, 用于增强数据集的鲁棒性:

权重λ 是随机数, 线性混合方法是简单的点对点混合。

10.4、 多任务学习

多任务学习是一种比较复杂的正则化方法,通过合并多个任务中的样例提高网络泛化。它可以与半监督学习进行结合,从而实现无标记的数据在辅助任务上的应用。在元学习中也使用类似的任务共享概念,即来自同一个领域的多个任务按顺序学习并使用之前获得知识作为新任务的偏置;而在迁移学习中则将来自于一个领域的知识迁移到另一个领域,从而实现多任务学习。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

【深度学习】正则化技术全面了解相关推荐

  1. 深度学习Dropout技术分析

    深度学习Dropout技术分析 什么是Dropout? dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃.注意是暂时,对于随机梯度下降来说,由于是随机 ...

  2. 深度学习 正则化 正则化率_何时以及如何在深度学习中使用正则化

    深度学习 正则化 正则化率 介绍: (Introduction:) The key role of Regularization in deep learning models is to reduc ...

  3. 深度学习面试题——深度学习的技术发展史

    深度学习面试题--深度学习的技术发展史 提示:机器学习和深度学习在大厂中可能要考的东西 <百面机器学习和百面深度学习>一书,在面试前好好看! 深度学习的三次浪潮 说说分类网络的发展 为什么 ...

  4. 陈天奇:深度学习编译技术的现状和未来

    https://www.toutiao.com/a6690418726631637512/ 2019-05-13 16:03:04 传统的深度学习框架采用人工优化算子,然后建立运行时图解释器来解决内存 ...

  5. 保健中的深度学习nlp技术用于决策

    介绍 (Introduction) The ubiquitous adoption of electronic health records in hospitals and other health ...

  6. 流体力学深度学习建模技术研究进展

    流体力学深度学习建模技术研究进展 王怡星.韩仁坤.刘子扬.张扬.陈刚 摘要: 深度学习技术在图像处理.语言翻译.疾病诊断.游戏竞赛等领域已带来了颠覆性的变化.流体力学问题由于维度高.非线性强.数据量大 ...

  7. 陈天奇高赞文章:新一代深度学习编译技术变革和展望

    ©作者 | 陈天奇 来源 | 机器之心 陈天奇是机器学习领域著名的青年华人学者之一,本科毕业于上海交通大学ACM班,博士毕业于华盛顿大学计算机系,研究方向为大规模机器学习.在本文中,陈天奇回答了目前深 ...

  8. 【深度学习】老师木讲架构:深度学习平台技术演进

    新智元推荐   来源:OneFlow [新智元导读]近日,袁进辉(老师木)代表OneFlow团队在全球互联网架构大会上海站做了<深度学习平台技术演进>的报告.报告包括深度学习的计算力问题. ...

  9. 首次解密小红书“种草”机制:大规模深度学习系统技术是如何应用的

    AI 引领的新一代信息技术,正驱动新一轮科技浪潮席卷而来.作为近年来国内发展最为迅速的移动互联网平台之一,小红书乘势而上,目前已经形成了以图文和短视频内容为主的超大型 UGC 社区.在这个独特而活跃的 ...

  10. 深度学习正则化(L1 norm/L2 norm)以及dropout理解

    正则化知识其实是深度学习领域较为基础的知识点,初入此门的时候受限于正则化三个字的逼格,一直不求甚解:后期虽然了解但也仅限于L1和L2范数而已.恰巧上周在谢毅博士的课上旁听,讲到过拟合相关知识,后续和捷 ...

最新文章

  1. 使用MyEclipse的注解提示功能以及快捷键总结
  2. 某业务自助开通账户问题排查
  3. 【C++深度剖析教程16】智能指针的分析
  4. crout分解计算例题_矩阵与数值计算(2)——矩阵三角分解LU、PALU、Cholesky三角分解、QR分解...
  5. 吴恩达机器学习【第六天】神经网络模型
  6. QQ连连看 逆向分析外挂制作报告【脱壳ASPPack】【模拟点击】【内联HOOK】
  7. 数据可视化?不如用最经典的工具画最酷炫的图
  8. 3.微信小程序--快速开发UI界面
  9. 安装WIN8提示Error Code:0x0000005D的解决办法
  10. 获取微信开放平台申请移动应用时的应用签名和应用包名
  11. 定语从句中的关系代词
  12. antd modal层级混乱
  13. 大学物理实验长度的测量实验报告_大学物理实验长度测量
  14. 一键就可像素化的神器 # Pixelator
  15. Liunx中mysql服务
  16. android cursor关闭,android在异步任务中关闭Cursor的代码方法
  17. kubernetes secret私密凭据
  18. python_练习2:输入a,b,c,d 4个整数,计算a+b-c*d的结果
  19. Xshell实现windows上传文件到Linux系统
  20. 实验:非骨干区域通过虚链路穿越非骨干区域连接骨干区域实现互联互通

热门文章

  1. 200行代码解读TDEngine背后的定时器
  2. 赌5毛钱,你解不出这道Google面试题
  3. Reddit欲融资3亿美元,由腾讯领投
  4. 如此精心整理的深度学习资源只在这里,值得你拥有!(上篇)
  5. 反欺诈中所用到的机器学习模型有哪些?
  6. 必须了解的MySQL三大日志:binlog、redo log和undo log
  7. 序列化/反序列化,我忍你很久了,淦!
  8. Spring Cloud Gateway之Predict篇
  9. kong api gateway 初体验
  10. 面经:什么是Transformer位置编码?