Deep Learning Terminologies

Deep Learning Terminologies

batch

full batch

已知在梯度下降中,需要对所有样本进行处理过后然后走一步(梯度更新),那么如果我们的样本规模的特别大的话效率就会比较低。假如有 5000 万个样本的话,走一轮迭代就会非常的耗时。这个时候的梯度下降叫做 full batch。

mini-batch

所以为了提高效率,我们可以把样本分成等量的子集。 例如我们把 100 万样本分成 1000 份, 每份 1000 个样本, 这些子集就称为 mini batch。然后我们分别用一个 for 循环遍历这 1000 个子集。 针对每一个子集做一次梯度下降。 然后更新参数的值。接着到下一个子集中继续进行梯度下降。

这样在遍历完所有的 mini batch 之后我们相当于在梯度下降中做了 1000 次迭代。 我们将遍历一次所有样本的行为叫做一个 epoch。在 mini-batch 下的梯度下降中做的事情其实跟 full batch 一样,只不过我们训练的数据不再是所有的样本,而是一个个的子集。 这样在 mini-batch 我们在一个 epoch 中就能进行 1000 次的梯度下降,而在 full batch 中只有一次。 这样就大大的提高了我们算法的运行速度。

猜你喜欢

转载自www.cnblogs.com/fengyubo/p/9256271.html
今日推荐