在神经网络中选择正则化方法

数据挖掘 神经网络 正则化
2021-09-21 05:35:46

在训练神经网络时,至少有 4 种方法可以对网络进行正则化:

  • L1 正则化
  • L2 正则化
  • 辍学
  • 批量标准化

    当然还有其他一些事情,比如权重共享和减少连接数量,这可能不是最严格意义上的正则化。

    但是如何选择使用这些正则化方法中的哪一种呢?有没有比“尝试一切,看看什么有效”更有原则的方法?

  • 3个回答

    没有任何强有力的、有据可查的原则来帮助您决定神经网络中的正则化类型。您甚至可以组合正则化技术,而不必只选择一种。

    可行的方法可以基于经验,并遵循文献和其他人的结果,以查看在不同问题领域中产生良好结果的方法。牢记这一点,事实证明,dropout 对于广泛的问题非常成功,无论您尝试什么,您都可以认为它是一个不错的首选。

    此外,有时只选择一个您熟悉的选项会有所帮助 - 使用您了解并有经验的技术可能会比尝试一整袋不同的选项获得更好的结果,而您不确定要尝试哪个数量级的参数. 一个关键问题是这些技术可以与其他网络参数相互作用——例如,您可能希望根据 dropout 百分比增加具有 dropout 的层的大小。

    最后,您使用哪种正则化技术可能并不重要,只要您了解您的问题并充分建模以发现它何时过度拟合并且可以进行更多正则化。反之亦然,发现它何时欠拟合并且你应该缩减正则化。

    正则化方法

    对于以下4种技术,L1 Regularization和L2 Regularization不用多说,一定是正则化的一种方法。他们减轻了重量。如果权重具有更高的重要性,L1 将专注于缩小较小的权重。

    Dropout 通过暂时丢弃神经元来防止过度拟合。最终,它将所有权重计算为平均值,这样对于特定神经元的权重不会太大,因此它是一种正则化方法。

    Batch Normalization 不应该是正则化的一种方法,因为它的主要目的是通过选择一个批次并强制权重分布在 0 附近来加快训练速度,不能太大,也不能太小。

    选择它

    对我来说,mini-batch 是必须的,因为它每次都能加快处理速度并提高网络性能。

    L1 和 L2 都相似,我更喜欢小型网络中的 L1。

    理想情况下,如果存在较大的变化问题或过度拟合,则应使用 dropout。

    最后但并非最不重要的一点是,我同意 Neil Slater 的观点,即视情况而定,永远不会有最佳解决方案。

    我建议您阅读此内容以获取更多信息。这是一种非常好的材料。http://neuralnetworksanddeeplearning.com/chap3.html

    将这些算法选择视为额外的超参数,并以与其他超参数相同的方式优化它们。但是,通常这将需要更多数据。