• 为什么小批量会可以使模型获得更大的泛化


    批大小是机器学习中重要的超参数之一。这个超参数定义了在更新内部模型参数之前要处理的样本数量。

    上图为使用 SGD 测试不同批量大小的示例。

    批量大小可以决定许多基于深度学习的神经网络的性能。有很多研究都在为学习过程评估最佳批量大小。例如,对于 SGD可以使用批量梯度下降(使用批量中的所有训练样本)或小批量(使用一部分训练数据),甚至在每个样本后更新(随机梯度下降)。这些不同的处理方式可以改变模型训练的的效果。

    准确性并不是我们关心的唯一性能指标。模型的泛化能力可能更加重要。因为如果我们的模型在看不见的数据上表现不佳它就毫无用处。使用更大的批量会导致更差的网络泛化。论文“ON LARGE-BATCH TRAINING FOR DEEP LEARNING: GENERALIZATION GAP AND SHARP MINIMA”的作者试图调查这种现象并找出为什么会发生这种情况。他们的发现很有趣,所以我将在本文中进行详细介绍。了解这一点将能够为自己的神经网络和训练方式做出更好的决策。

    理解论文的假设

    要理解任何论文,首先要了解作者试图证明的内容。作者声称他们发现了为什么大批量会导致更差的泛化。他们“提供了支持大批量方法趋向于收敛到训练和测试函数的sharp minima(尖锐的最小值)的观点的数值证据——众所周知,sharp minima会导致较差的泛化。而小批量方法始终收敛到flat minima(平坦的最小值),论文的实验支持一个普遍持有的观点,即这是由于梯度估计中的固有噪声造成的。” 我们将在本篇文章中做更多的说明,所以让我们一步一步来。下图描绘了尖锐最小值和平坦最小值之间的差异。

    对于尖锐的最小值,X 的相对较小的变化会导致损失的较大变化

    一旦你理解了这个区别,让我们理解作者验证的两个(相关的)主要主张:

    • 使用大批量将使训练过程有非常尖锐的损失情况。而这种尖锐的损失将降低网络的泛化能力。
    • 较小的批量创建更平坦的损失图像。这是由于梯度估计中的噪声造成的。

    作者在论文中强调了这一点,声明如下:

    我们现在将查看他们提供的证据。他们设置实验的一些方法很有趣,会教会我们很多关于设置实验的知识

    完整文章

    为什么小批量会可以使模型获得更大的泛化

     
  • 相关阅读:
    六种排序
    洛谷 P1879 [USACO06NOV]玉米田Corn Fields
    [USACO06NOV]玉米田Corn Fields
    c++位运算符 | & ^ ~ && ||,补码,反码
    Blockade(Bzoj1123)
    割点(Tarjan算法)【转载】
    子串
    生命是什么
    怎样说话才打动人
    自控力
  • 原文地址:https://www.cnblogs.com/deephub/p/15783333.html
Copyright © 2020-2023  润新知