论文中发现,是否打乱训练集数据和mini-batch对训练结果的影响。
记录一下!
梯度下降
-
-
处理多个周期(多轮迭代训练)
-
处理mini batch
-
除了梯度下降算法和随机梯度下降算法之外,还有一种常用的二者折中的算法:最小批学习(mini-batch learning)。
很好理解,梯度下降每一次用全部训练集计算梯度更新权重,随机梯度法每一次用一个训练样本计算梯度更新权重,最小批学习每次用部分训练样本计算梯度更新权重,比如50。
相对于梯度下降,最小批收敛速度也更快因为权重参数更新更加频繁。此外,最小批相对于随机梯度中,使用向量操作替代for循环(每一次跌倒都要遍历所有样本),使得计算更快。
当每次是对整个训练集进行梯度下降的时候,就是 BGD 梯度下降。
当每次只对一个样本进行梯度下降的时候,是 SGD 梯度下降。
当每次处理样本的个数在上面二者之间,就是 MBGD (mini batch)梯度下降,也即小批量梯度下降。
当数据集很大时,BGD训练算法是非常慢的,使用 MBGD 梯度下降更新参数更快,有利于更鲁棒地收敛,避免局部最优。 和 SGD 梯度下降相比,使用 MBGD的计算效率更高,可以帮助快速训练模型。
Imagine your last few minibatch labels indeed have more noise. Then these batches will pull the final learned weights in the wrong direction.
If you shuffle every time, the chances of last few batches being disproportionately noisy goes down.
Difference Between Batch and Epoch
Difference Between a Batch and an Epoch in a Neural Network
- Stochastic Gradient Descent
- What Is a Sample?
- What Is a Batch?
- What Is an Epoch?
- What Is the Difference Between Batch and Epoch?