参考:一文概览深度学习中的五大正则化方法和七大优化策略

1 正则化方法

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

奥卡姆剃刀原理,在所有可能选择的模型中,能很好解释已知数据,并且十分简单的模型才是最好的模型。而从贝叶斯估计的角度来看,正则化项对应于模型的先验概率

1.1 数据增强

数据增强通过向训练数据添加转换或扰动来人工增加训练数据集。数据增强技术如水平或垂直翻转图像、裁剪、色彩变换、扩展和旋转通常应用在视觉表象和图像分类中。
在文本中有哪些数据增强的方法?

1.2 L1 和 L2 正则化

L1 正则化中的很多参数向量是稀疏向量,因为很多模型导致参数趋近于 0,因此它常用于特征选择设置中。机器学习中最常用的正则化方法是对权重施加 L2 范数约束。

L1 正则化在零点不可微,因此权重以趋近于零的常数因子增长。很多神经网络在权重衰减公式中使用一阶步骤来解决非凸 L1 正则化问题 [19](不懂)。L1 范数的近似变体是
常用的正则化方法与优化策略 - 图1

还有一篇文章 坐标轴下降法(解决L1正则化不可导的问题),该文说梯度下降法沿着当前点的负梯度方向进行参数更新,因此会出现不可导的问题。而坐标轴下降法是沿着坐标轴的方向进行参数更新的,不会出现不可导的问题。(???)

该方法类似于 Gibbs 采样,每一次都固定其他所有参数,然后只更新当前维度的参数。感觉这个方法并没有解决不可导问题,还是要求导,只不过求导的方式有一点不同罢了。

1.3 dropout

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

1.4 dropout connect

dropout connect 和 dropout 其实没有太大的区别,看下面的图就很好了解。效果上面来说的话,应该也没有太大的区别。
常用的正则化方法与优化策略 - 图2

1.5 Early stop

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

1.6 其他方法

上面的五种方法主要是神经网络训练中使用的正则化手段,在传统模型中也有类似的方法。比如随机森林中的随机选择特征和随机选择样本就是 bagging 的一种方式。

2 优化技术

优化的方法太多,在论文中可能会有一些影响,但是在实际项目中应该不会差太多,我们会选择收敛速度快的用,一般 Adam 我用得最多。

2.1 动量(Momentum)

动量策略旨在加速学习过程,特别是在具有较高曲率的情况下。动量算法利用先前梯度的指数衰减滑动平均值在该方向上进行回退 [26]。
常用的正则化方法与优化策略 - 图3

2.2 Adagrad

Adagrad 亦称为自适应梯度(adaptive gradient),允许学习率基于参数进行调整,而不需要在学习过程中人为调整学习率。Adagrad 根据不常用的参数进行较大幅度的学习率更新,根据常用的参数进行较小幅度的学习率更新。因此,Adagrad 成了稀疏数据如图像识别和 NLP 的天然选择。然而 Adagrad 的最大问题在于,在某些案例中,学习率变得太小,学习率单调下降使得网络停止学习过程。在经典的动量算法和 Nesterov 中,加速梯度参数更新是对所有参数进行的,并且学习过程中的学习率保持不变。在 Adagrad 中,每次迭代中每个参数使用的都是不同的学习率。
常用的正则化方法与优化策略 - 图4

2.3 Adam

Adam 算法和传统的随机梯度下降不同。随机梯度下降保持单一的学习率(即 alpha)更新所有的权重,学习率在训练过程中并不会改变。而 Adam 通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率。

Adam 算法的提出者描述其为两种随机梯度下降扩展式的优点集合,即:

适应性梯度算法(AdaGrad)为每一个参数保留一个学习率以提升在稀疏梯度(即自然语言和计算机视觉问题)上的性能

均方根传播(RMSProp)基于权重梯度最近量级的均值为每一个参数适应性地保留学习率。这意味着算法在非稳态和在线问题上有很有优秀的性能。

Adam 算法同时获得了 AdaGrad 和 RMSProp 算法的优点。Adam 不仅如 RMSProp 算法那样基于一阶矩均值计算适应性参数学习率,它同时还充分利用了梯度的二阶矩均值(即有偏方差/uncentered variance)。具体来说,算法计算了梯度的指数移动均值(exponential moving average),超参数 beta1 和 beta2 控制了这些移动均值的衰减率。

移动均值的初始值和 beta1、beta2 值接近于 1(推荐值),因此矩估计的偏差接近于 0。该偏差通过首先计算带偏差的估计而后计算偏差修正后的估计而得到提升。