打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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

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

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

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

理解论文的假设

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

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

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

  • 使用大批量将使训练过程有非常尖锐的损失情况。而这种尖锐的损失将降低网络的泛化能力。

  • 较小的批量创建更平坦的损失图像。这是由于梯度估计中的噪声造成的。

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

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

定义锐度

锐度是一个易于掌握和可视化的直观概念。但是它也存在有一些问题。例如机器学习对高维数据进行计算/可视化可能很费资源和时间。作者也提到了这一点, 所以他们使用更简单的启发式方法:通过相邻点来进行锐度的检查, 该函数的最大值就可以用于灵敏度的计算。

论文原文中说到:

我们采用了一种敏感性度量,虽然不完美,但在计算上是可行的,即使对于大型网络也是如此。它基于探索解决方案的一个小邻域并计算函数 f 在该邻域中可以达到的最大值。我们使用该值来测量给定局部最小值处训练函数的灵敏度。由于最大化过程是不准确的,并且为了避免被仅在 Rn 的微小子空间中获得较大 f 值的情况所误导,我们在整个空间 Rn 以及随机流形中都执行了最大化

需要注意的是,作者将一定程度的交叉验证集成到程序中。虽然从解决方案空间中获取多个样本似乎过于简单,但这是一种非常强大的方法并且适用于大多数情况。如果你对他们计算的公式感兴趣,它看起来像这样

查看相关的证明

作者:Devansh

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
零基础入门深度学习:感应器、线性单元和梯度下降
Deep learning:一(基础知识
零基础入门深度学习(2)
课程总结04
多层神经网络——小批量梯度下降法
[论文笔记] GAN开山之作及最新综述
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服