深度学习下的正则化

本文是个人在学习了花书第7章之后的一点点总结,可能有很多不足之处,仅听取老师建议在此做个记录。文章主要分三个部分来进行说明

1. 什么是正则化
2. 如何理解正则化
3. 正则化策略

1. 什么是正则化

  • 正则化是指修改学习算法,使其降低泛化误差而非训练误差。(deep learning 书上所写p76)
  • 正则化是在损失函数的基础上加入正则项,其作用是在参数数量不变的情况下,减小某些参数的值,从而解决数据的噪声问题。
  • 正则化可以改善或者减少过拟合问题以使学习算法更好地起作用。
  • 正则化能够保证应用于欠定问题的迭代方法收敛(没有闭式解的问题可能是欠定的)。可以将伪逆解释为使用正则化来稳定欠定问题。
  • 代价函数总是被希望接近于0或者等于0

几个相关概念
泛化: 一个假设模型应用到新样本的能力。
过拟合: 具有高方差,在变量过多时出现,训练出的假设能很好的应用到样本中,但无法泛化到新的样本。
欠拟合: 具有高偏差,是样本的不好的假设,通常存在较大分类偏差。
以下图说明拟合的三种情况
欠拟合就是模型不能说明数据集的特征,而过拟合就是当前数据集训练得到的模型无法泛化到新的样本上。在这里插入图片描述

为什么选择正则化

解决过拟合问题通常有两种方法:

  • 其一,减少选取变量的数量。如人工检查变量清单,并以此决定哪些变量更为重要,哪些特征变量应该保留;模型选择算法,一种可以自动选择哪些特征变量保留哪些舍弃的算法。缺点是舍弃一些特征变量的同时也舍弃了关于问题的一些信息。
  • 其二,正则化。保留所有的特征向量,但是减少量级或者参数θ_j的大小,这种方法非常有效;当有很多特征向量时,其中每一个变量都能对预测y值产生一点影响

正则化可以保留每一个变量并且对于每个变量对最终模型的影响可控,所以通常选择正则化是更可取的方法

如何理解正则化

正则化背后的思想就是

  • 如果参数值较小,则意味着一个更简单的假设模型,将所有的参数项都加入惩罚项相当于尽量去简化模型,因为参数接近于0的时候函数越简单。
  • 通过修改代价函数来缩小所有的参数,修改线性回归的代价函数,加上一个项,即正则化项,其作用是缩小每一个参数。
    正则化代价函数
    在这里插入图片描述

λ正则化参数,控制两个不同目标之间的取舍,即更好地拟合训练集的目标和将参数控制得更小的目标,从而保持假设模型的相对简单,避免出现过拟合的情况;要保持参数尽量小,与目标函数的第二项,与正则化目标、正则化项有关。
Ω(θ):正则化项

注:Lp范数是常用的正则化项,其中L2范数||w||2倾向于w的分量取值尽量均衡,即非零分量个数尽量稠密,而L0范数||w||0和L1范数||w||1则倾向于w的分量尽量稀疏,即非零向量个数尽量少。
在这里插入图片描述

正则化策略

主要思想

  • 向机器学习模型添加限制参数值的额外约束;
  • 向目标函数增加额外项来对参数值进行软约束;
  • 一个有效的正则化能显著减少方差而不过度增加偏差。

策略一:参数范数惩罚

对目标函数添加一个参数范数惩罚,限制模型(如神经网络、线性回归或逻辑回归)的学习能力。

  1. L2参数正则化
    最简单且最常见的参数范数惩罚,通常被称为权重衰减。通过向目标函数添加一个正则化项:1/2||w||上2下2,使权重更加接近原点。
    L2正则化相当于权重是高斯先验的MAP贝叶斯推断。
  2. L1正则化
    (因推导过程写在了本子上,所以偷懒没有敲出来。。。)

策略二:添加噪声

  1. Dropout
    神经网络被证明对噪声不是非常健壮,而改善神经网络健壮性的方法之一是简单地将随机噪声添加到输入再进行训练。这个正则化策略可以看作是通过与噪声相乘构建新输入的过程,是向隐藏单元添加噪声。
    Dropout 提供了正则化一大类模型的方法,计算方便但功能强大。相当于一种廉价的Bagging集成近似,能够训练和评估指数级数量的神经网络。
    训练由所有子网络组成的集成,其中子网络通过从基本网络中1删除非输出单元构建
    随机独立采样不同的二值掩码:超参数的采样概率为1、隐藏层的采样概率为0.5、输入的采样概率为0.2.
  2. 将噪声加到权重
    主要用于循环神经网络

策略三:提前终止

深度学习中最常用的正则化形式,基于其有效性和简单性。具体过程:

  • 学习曲线显示负对数似然损失如何随时间变化(训练目标岁时间持续减小,但验证集上的平均损失最终会再次增加),由此意味着只要返回使验证集误差最低的参数设置,就可获得验证集误差更低的模型。在每次验证集误差有所改善后,存储模型参数的副本。当验证集上的误差在事先指定的循环次数内没有进一步的改善时算法就会终止,即使此时训练尚未收敛,返回使验证集误差最低的参数,所以称之为提前终止。
  • 提前终止是非常有效的超参数选择算法。
  • 主要存在两个代价:
    1. 通过提前终止自动选择超参数在训练期间要定期评估验证集;
    1. 需要保持最佳的参数副本,一般可忽略。
  • 提前终止是一种不显眼的正则化形式,几乎不需要改变基本训练过程、目标函数或一组允许的参数值,意味着无须破坏学习动态就能很容易地使用提前终止。可以单独使用或与其他正则化策略结合。提前终止元算法(通用策略p153)
  • 优点:减少训练过程的计算成本(限制训练的迭代次数),同时带来正则化的益处(不需要添加惩罚项的代价函数或计算这种附加项的梯度)。

为什么说提前终止具有正则化效果:

  1. 验证集误差的学习曲线是一个U型曲线
  2. 提前终止可以将优化过程的参数空间限制在初始化参数值θ0的小领域内。在二次误差的简单线性模型和简单梯度下降情况下,提前终止相当于L2正则化。长度为τ的轨迹结束于L2正则化目标的极小点。(这句话个人没有理解是什么意思…)

策略四:参数共享

  • 前面的策略都是相对于固定的区域或点。如L2正则化(或权重衰减)对参数偏离零的固定值进行惩罚。
  • 而参数共享是使用约束,强迫某些参数相等。将各种模型或模型组件解释为共享唯一的一组参数。
  • 显著优点:只有参数(唯一一个集合)的子集需要被存储在内存中。

多应用于计算机视觉的卷积神经网络(CNN)

策略五:稀疏表示

  • 惩罚神经网略中的激活单元,稀疏化激活单元。间接对模型参数施加了复杂惩罚。
  • 表示的正则化可以使用参数正则化中同种类型的机制实现。表示的范数惩罚正则化通过向损失函数J添加对表示的范数惩罚来实现。
  • 含有隐藏单元的模型在本质上都能变得稀疏。稀疏正则化是使用得较多的正则化策略原则

策略六:集成方法

  • Bagging是通过结合几个模型降低泛化误差的技术,主要思路是分别训练几个不同的模型,然后让所有模型表决测试样例的输出,是机器学习的常规策略之一,被称为模型平均。模型平均的原理是不同的模型通常不会在测试集上产生完全相同的误差。
  • Bagging是一种允许重复多次使用同一种模型、训练方法和目标函数的方法。定义k个不同的模型,从训练集有放回采样构造k个不同的数据集,然后在训练集i上训练模型。
  • 采用模型平均策略的技术被称为集成方法。
    集成的成员可以使用不同的集成算法和目标函数训练成完全不同的模型。
  • 模型平均是一个减少泛化误差的非常强大可靠的方法,但不鼓励作为科学论文算法的基准,因为任何机器学习算法都可以从模型平均中大幅获益,但以增加计算和存储为代价。

策略七:正切传播

  • 正切传播训练带有额外惩罚的神经网络分类器,使神经网络的没个输出对已知变化因素是局部不变的。这些变化因素对应于沿着相同样本聚集的流形的移动。
  • 正切传播也和双反向传播(Drucker and LeCun, 1992)以及对抗训练(Szegedy et al, 20146Goodfellow et al, 2014b) 有关联。双反向传播正则化使Jacobian 矩阵偏小,而对抗训练找到原输入附近的点,训练模型在这些点上产生与原来输入相同的输出。正切传播和手动指定转换的数据集增强都要求模型在输入变化的某些特定的方向上保持不变。双反向传播和对抗训练都要求模型对输入所有方向中的变化(只要该变化较小)都应当保持不变。正如数据集增强是正切传播非无限小的版本,对抗训练是双反向传播非无限小的版本。

策略八:对抗训练

  • 减少原有独立分布的测试集的错误率—在对抗样本上训练
  • 对抗样本—针对错误实例添加扰动向量
  • 实现在数据的局部区域对敏感的线性行为稳定抵抗

关于第7章后面几小节的内容着实没有理解透彻,后续再进行补充。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值