随机梯度下降的批次大小应为多大?


Answers:


72

在“样本大小”你在谈论被称为批量大小,。批次大小参数只是使用小批量随机梯度下降(SGD)训练神经网络时要调整的超参数之一,并且与数据有关。超参数搜索的最基本方法是对学习速率和批量大小进行网格搜索,以找到使网络收敛的对。B

要了解批量大小,请务必注意批量梯度下降,在线SGD和小批量SGD之间的关系。这是小批量SGD中权重更新步骤的一般公式,它是所有三种类型的概括。[ 2 ]

θt+1θtϵ(t)1Bb=0B1L(θ,mb)θ
  1. 批梯度下降,B=|x|
  2. 在线随机梯度下降:B=1
  3. 小批量随机梯度下降:但。B>1B<|x|

请注意,对于1,损失函数不再是随机变量,也不是随机近似值。

SGD的收敛速度快于正常的“批”梯度下降,因为它在查看训练集的随机选择子集后会更新权重。令为训练集,令。批大小只是的基数:。xmxBmB=|m|

批梯度下降使用整个数据集的梯度更新权重;而SGD使用小批量的梯度平均值来更新权重。(如果使用平均值而不是总和,则在数据集非常大的情况下,算法无法采取太大的步长。否则,您将需要根据数据集的大小调整学习率。)此期望值SGD中使用的梯度的随机近似等于批处理梯度下降中使用的确定性梯度。。θxmE[LSGD(θ,m)]=L(θ,x)

每次我们采样并更新权重时,这都称为迷你批次。每次我们遍历整个数据集时,都将其称为epoch

假设我们有一些数据向量,它是参数化我们的神经网络的初始权重向量和损失函数,我们试图尽量减少。如果我们有训练示例并且批量为,则可以将这些训练示例分为C个迷你批:x:RDθ0:RSL(θ,x):RSRDRSTB

C=T/B

为简单起见,我们可以假定T被B整除。尽管并非如此,但通常并非如此,应根据其大小为每个小批量分配适当的重量。

下面给出了具有历元的SGD的迭代算法:M

t0while t<Mθt+1θtϵ(t)1Bb=0B1L(θ,mb)θtt+1

注意:在现实生活中,我们正在从内存中读取这些训练示例数据,并且由于缓存预取和计算机执行的其他内存操作,如果合并了内存访问(即,当您读取内存时),则算法将运行得更快为了秩序,不要随意跳来跳去。因此,大多数SGD实现都会对数据集进行混洗,然后按照读取顺序将示例加载到内存中。

上述香草(无动量)SGD的主要参数为:

  1. 学习率:ϵ

我喜欢将epsilon视为从时期数到学习率的函数。此功能称为学习率计划

ϵ(t):NR

如果要固定学习率,只需将epsilon定义为常数函数即可。

  1. 批量大小

批次大小决定了进行权重更新之前要查看的示例数量。它越低,训练信号将越嘈杂,它越高,则计算每个步骤的梯度所花费的时间就越长。

引用文献和进一步阅读:

  1. 梯度学习简介
  2. 基于梯度的深度架构培训的实用建议
  3. 高效的小批量培训以进行随机优化

1
For simplicity we can assume that D is evenly divisible by B。您不是说T应该被B整除吗?
Antoine

4
并实际回答OP的问题,您可以添加B is typically chosen between 1 and a few hundreds, e.g. B = 32 is a good default value, with values above 10 taking advantage of the speed-up of matrix-matrix products over matrix-vector products.(摘自Bengio 2012年的论文)
Antoine

@sabalaba不错的答案。但是不是在等式“下面给出了一个带有M个历元的SGD的迭代算法”等式中,我们将在运行每个迷你批处理后更新权重。换句话说,在时代的循环内不应该有另一个循环(在C mini批次上),即t <M
Kaushik Acharya

2
在统计中,一个样本包含多个观察值。因此,统计学家正确解释了样本量。在计算机科学中(尤其是在机器学习中),样本是单个观察值,而批次是样本的集合。这可能有点令人困惑。统计人员的样本是数据科学家的批次;)资料来源:en.wikipedia.org/wiki/Sample_size_determination
Oleg Melnikov

“批次大小参数只是您要调整的超参数之一。” 首先运行多个调整模型是否会破坏SGD的全部目的?我认为OP要求样本量有一个经验法则。如果您的数据包含条记录和变量,什么是合适的样本量以充分计算梯度?nm
RobertF
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.