【问题标题】:SGD mini batches - all of the same size?SGD 小批量 - 大小都一样?
【发布时间】:2016-10-06 13:59:50
【问题描述】:

带有小批量的随机梯度下降算法通常使用小批量的大小或计数作为参数。

现在我想知道的是,是否所有小批量都需要完全相同的大小?

以来自 MNIST 的训练数据(60k 训练图像)和 70 的 mini-batch 大小为例。

如果我们进入一个简单的循环,那会产生我们857 mini-batches of size 70 (as specified) and one mini-batch of size 10.

现在,(使用这种方法)一个 mini-batch 会比其他 mini-batch 小(这里最坏的情况:大小为 1 的 mini-batch)是否重要? 这会强烈影响我们的网络在几乎所有训练中学到的权重和偏差吗?

【问题讨论】:

    标签: machine-learning neural-network gradient-descent


    【解决方案1】:

    不,小批量不必相同大小。出于效率原因,它们通常是恒定大小的(您不必重新分配内存/调整张量大小)。在实践中,您甚至可以在每次迭代中对批次大小进行采样。

    但是,批次的大小会有所不同。很难说哪一个是最好的,但是使用更小/更大的批量大小会导致不同的解决方案(并且总是 - 不同的收敛速度)。这是处理更多随机运动(小批量)与平滑更新(良好的梯度估计器)的效果。特别是 - 对具有一些预定义大小分布的批次进行随机大小可用于同时使用这两种效果(但花费时间拟合此分布可能不值得)

    【讨论】:

    • 太好了,谢谢。还有一个我找不到答案的问题:如果我从中得出批次的训练数据在每个时期都被打乱,那么您对小批次进行采样的方式能否改善结果? (当然我不是在谈论随机改进:D)
    • 不应该。假设您的小批量是均匀采样的。唯一可能发生的情况是您可以通过错误采样(例如以非随机方式)减少结果。同样,很难分析经典学习方法在对抗性环境中的表现(当您修改采样以专注于更难的示例等时) - 然后更多的是关于启发式(缺乏理论结果)。
    • 好的,我明白了。感谢您的洞察力。
    猜你喜欢
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 2017-03-22
    • 2019-03-03
    • 2017-10-21
    • 2021-10-28
    相关资源
    最近更新 更多