正则化方法zz


在训练数据不够多时,或者overtraining时,常常会导致过拟合(overfitting)。正则化方法即为在此时向原始模型引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称。在实际的深度学习场景中我们几乎总是会发现,最好的拟合模型(从最小化泛化误差的意义上)是一个适当正则化的大型模型。    
中文名
正则化方法
外文名
regularization method
作    用
解决过拟合
常用领域
机器学习

目录

  1. 1 参数范数惩罚
  2. 2 L2参数正则化
  3. 3 L1参数正则化
  4. 4 L1正则化和L2正则化的区别
  1. 5 数据集增强
  2. 6 噪音的鲁棒性
  3. 7 向输出目标注入噪声
  4. 8 半监督学习
  1. 9 多任务学习
  2. 10 提前终止
  3. 11 参数绑定和共享
  4. 12 稀疏表示
  5. 13 集成化方法
图一 图一 时,对应的参数会缩减至0。 如图一所示,实线表示未经过正则化的目标函数的等高线,虚线圆圈表示L2正则项的等高线。在点 处这两个互相竞争的目标达到均衡。在横轴这个方向,从点 处开始水平移动,目标函数并没有增加太多,也就是在这个方向上目标函数并没有很强的偏好,因而正则化在这个方向上有较强的效果,表现为把 往原点拉动了较长的距离。另一方面,在纵轴这个方向上,目标函数对应远离 的移动很敏感,即目标函数在这个方向的曲率很高,因此正则化对于 的影响就较小。 在原目标函数的基础上增加L2范数惩罚,将原函数进行了一定程度的平滑化,这个可以从其梯度函数有所体现。 对于一类存在大量驻点(Stationary point,即梯度为0的点),增加L2范数意味着将原本导数为零的区域,加入了先验知识进行区分(几何上,意味着原本一个平台的区域向0点方向倾斜),这样可以帮助优化算法至少收敛到一个局部最优解,而不是停留在一个鞍点上。 通过限制参数 在0点附近,加快收敛,降低优化难度。回忆一下,对于一类常见激活函数,如Sigmoid,满足:单调有界。根据单调有界定理,对于任意小的 ,我们可以取得足够大的 ,使得 。换句话说,对于该变量,我们可以找到一个足够大的区域 使得其导数接近于0,这意味着通过梯度方法改进该变量会变得极其缓慢(回忆后向传播算法的更新),甚至受浮点精度等影响其收敛。那么,采用范数控制变量的大小在0附近,可以避免上述情况,从而在很大程度上可以让优化算法加快收敛。 [2] L1和L2正则化区别 L1和L2正则化区别 图二 多任务学习 图二 多任务学习 图二是深度学习中多任务学习的一个例子,网络中的输入层和第一个隐藏层是在多个任务之间共享的,上层的 (对应一个无监督学习任务)是不同任务特有的参数。这里假设 是对原始输入的某种公共的抽象表示,可以在多个任务间共享。 因为共享参数,其统计强度可大大提高(共享参数的样本数量相对于单任务模式增加的比例),并能改善泛化和泛化误差的范围。当然,仅当不同的任务之间存在某些统计关系的假设是合理(意味着某些参数能通过不同任务共享)时才会发生这种情况。 从深度学习的观点看,底层的先验知识如下:能解释数据变化(在与之相关联的不同任务中观察到)的因素中,某些因素是跨两个或更多任务共享的。例如,在出来图像识别相关的任务时卷积层和pooling层可以在多个任务间共享。 [4] 图三 提前停止 图三 提前停止 在模型训练过程中经常出现随着不断迭代,训练误差不断减少,但是验证误差先减少然后开始增长,如图三所示。 提前停止(Early Stopping)的策略是:在验证误差不在提升后,提前结束训练;而不是一直等待验证误差到最小值。该策略可以用于任意的模型,不限于深度学习。GBDT算法天然适合采用Early Stopping策略来确定需要训练多少颗子树,因为GBDT是一个加法模型,采用提前终止策略都不需要额外存储模型的副本。 卷积神经网络,这可能可以显著减少模型所占用的内存。 最流行和广泛使用的参数共享出现应用于计算机视觉的卷积神经网络中。 自然图像有许多统计属性是对转换不变的。 例如,猫的照片即使向右边移了一个像素,仍保持猫的照片。 CNN通过在图像多个位置共享参数来考虑这个特性。 相同的特征(具有相同权重的隐藏单元)在输入的不同位置上计算获得。 这意味着无论猫出当前图像中的第 列或 列,我们都可以使用相同的猫探测器找到猫。 参数共享显著降低了CNN模型的参数数量,并显著提高了网络的大小而不需要相应地增加训练数据。它仍然是将领域知识有效地整合到网络架构的最佳范例之一。

稀疏表示

编辑 语音 深度学习可以看着时一种表示学习(representation learning),比如卷积神经网络可以学习图像的不同层次的特征表示,word2vec学习词的Distributed representation,其共同特点是用隐层权重作为表示。 L1惩罚可以诱导稀疏的参数,即许多参数为零(或接近于零)。 表示的范数惩罚正则化是通过向损失函数 添加对表示的范数惩罚来实现的。 我们将这个惩罚记作 。 和以前一样,我们将正则化后的损失函数记作 其中 权衡范数惩罚项的相对贡献,越大的 对应越多的正则化。 通过上述方法,含有隐藏单元的模型在本质上都能变得稀疏。

集成化方法

编辑 语音 集成化方法是一种通用的降低泛化误差的方法,通过合并多个模型的结果,也叫作模型平均。主要想法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。 经验:原始输入每一个节点选择概率0.8,隐藏层选择概率为0.5。 Bagging是一种常用的集成学习方法。Bagging的策略很多,例如不同初始化方法、不同mini batch选择方法、不同的超参数选择方法。 与之对应的集成方法是Boosting,通过改变样本权重来训练不同模型。 [5]