有效的正则化策略可以显著的减少方差而不过度增加偏差。
参数范数惩罚
许多正则化方法会在损失函数中添加一个参数范数惩罚,限制模型(如神经网路、线性回归或逻辑回归)的学习能力
通常**只对权重* **做惩罚而不对偏置做惩罚。每个权重会指定两个变量如何相互作用,而每个偏置仅控制一个变量,这意味着我们不对其进行正则化也不会导致太大的方差。另外对偏置加入正则化之后,可能会导致明显的欠拟合。
L2正则
最常用最简单的参数范数惩罚,通常被称为权重衰减,也被称为岭回归。
只有在显著减少目标函数方向上的参数会保留的较为完好,在无助于目标函数减小的方向(对应Hessian矩阵较小的特征值)上对应的分量会在训练过程中因正则化而衰减掉。
L1正则
惩罚项为各个参数的绝对值之和。相对于L2正则,L1正则会产生更稀疏的解,因为这个性质,L1正则经常被用于特征选择。
小结
惩罚项可能会导致目标函数非凸从使算法陷入局部极小。在神经网络中的体现为出现“死亡单元”,进入或离开这些单元的权重都非常小,导致这些单元不会对网络学习到的函数有太大影响。
数据增强与噪声鲁棒性
让机器学习模型泛化效果更好的最好办法是使用更多的数据集训练,可以通过生成假数据集来扩展数据集的容量。
对于图像来说,一般可以通过平移、旋转、缩放等手段模拟数据集。
数据增强是将噪声作用于输入。可以向隐藏层添加噪声,例如dropout。也可以向输入目标添加噪声,如标签平滑。
提前终止
随着迭代次数的增加,模型在验证集上的效果会变差。当验证集上的误差在事先指定的循环次数内没有进一步改善时就停止算法。这种策略被称为提前终止。
提前终止需要验证集,意味着部分数据不能用于训练,可以在首次终止之后使用全部数据集进行额外的训练,使用第一次得到的最佳终止步数限制其第二次训练的迭代次数。
提前终止既能节约计算成本,也能带来正则化的收益。
参数绑定与参数共享
正则化一个监督模型的参数,使其和另一个无监督模式下训练的模型(捕捉观察到的输入数据的分布)的参数。构造这种架构使得分类模型中的许多参数能与无监督模型中对应的参数匹配。
参数共享是指强迫某些参数相等
Bagging 和集成方法
Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差的技术。主要想法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出,这中策略被称为模型平均。采用这种策略的技术被称为集成方法。
模型平均策略奏效的原因是不用的模型通常不会在测试集上产生完全相同的误差。
在所有模型在测试集上的误差完全相关的情况下,使用模型平均策略不会使效果提升。在完全不相关的情况下,平方误差会缩小至 倍,k为模型数量。
Dropout
dropout方法可以被视为集成大量深层神经网络的实用Bagging方法。区别在于dropout方法中所有模型是共享参数的。
dropout计算方便,每个样本每次更新只需要O(N)的复杂度。并且不怎么限制适用的模型和训练过程。包括前馈网络、循环网络等都适用。在非常大的数据集上,权重衰减带来带来的泛化误差减少的很少,在这种情况下,使用dropout和更大模型的计算代价可能会带来更高的收益。
批量归一化
机器学习的本质是学习数据分布,如果训练集和测试集的分布不同,则会大大降低模型的泛化能力,对训练开始前对输入数据进行批量归一化可以在一定程度上缓解这个问题。