传统正则化

L0

L0范数是统计变量中非0的个数,目标明确但是难以优化,因此退而求其次选择L1和L2优化。

L1

主要功能是稀疏化特征,可用于特征选择。

L2

减小参数大小,但由于是梯度是减去一个与自己相关的数,因此参数不会降低到0,可以降低过拟合程度。

深度学习正则化

正则化相关 - 图1
为什么需要正则化呢?根本目的是为了让模型训练的更好,对于它为什么可以让模型训练的更好有三种解释。

  1. 从正向传播的角度,我们希望网络中间层的输入输出为独立同分布的向量(通常为(0, 1)的分布,如标准正态分布等,因为在该分布下,激活函数的非线性表现比较好,过大过小则会落入弱激活区)。但是随着网络变深与模型的持续训练后,网络各层之间耦合性增加,那如何维持中间层的独立同分布呢? Whiting(白化,消除变量之间的相关性,方差为1)操作即可实现该目的,但是在网络中进行白化操作开销太大,正则化就相当于做了一个简单的白化。通过正则化相关 - 图2将X再重新约束到(0, 1)的同分布,至于进一步的变换则是为了提高模型的拟合能力。
  2. 从反向传播的角度,其实是为了解决梯度消失和梯度爆炸的问题正则化相关 - 图3,而正则化相关 - 图4以极简的形势下等于正则化相关 - 图5正则化相关 - 图6),则正则化相关 - 图7该系列导数连乘则会产生不好的梯度,而除以方差则相当于对该导数做了一次放缩,如果该批次的正则化相关 - 图8较大,则输出容易较大,方差较大,方差的倒数则较小,因此可以将导数定位在一个合适的区间内,更加稳定。
  3. 另外可以从最近大火的对比学习中获得一些参考,每个样本在进行训练的时候,可以看到该批样本的一个分布情况作为对比与参考,泛化性能更强。

    BatchNormalization

    LayerNormalization

Dropout