Note2.2 机器学习训练技巧:Batch and Momentum(Machine Learning by Hung-yi Lee)
目录
Batch
1.基础概念
2.Small Batch与Large Batch对比
2.1运行时间
2.2 epoch数量相同时,训练结果
2.3 训练结果相同时,small batch表现仍然更好
2.4总结
Momentum
原理
small batch和momentum都是训练的常见技巧,可以escape critical points,取得更好的结果
Batch
1.基础概念
Batch(批次) 是模型在一次前向传播(Forward Pass)和反向传播(Backward Pass)中同时处理的一组样本(数据点)。Batch Size 是一个超参数,表示每个 Batch 中包含的样本数量(例如 32、64、128)。
Epoch(轮次) :1 Epoch 表示模型完整遍历整个训练集一次(即所有数据被模型学习了一遍)。
Shuffle:打乱数据顺序
2.Small Batch与Large Batch对比
2.1运行时间
如果不考虑并行运算
但实际运行时,使用了GPU,并行处理大量数据。
Small Batch完成一个epoch中需要的次数更多,所以实际上Batch越大,完成一个epoch速度越快。
2.2 epoch数量相同时,训练结果
与直觉相反的是,small batch的训练效果更好,noisy的gradient反而有助于训练。
实验结果:
一种可能解释
small batch每次训练资料不同,可能在L1上卡住了,但在L2上可以继续训练
2.3 训练结果相同时,small batch表现仍然更好
一个神奇的事实是,即使增加Large batch的训练轮数,把它训练到与small batch差不多的accuracy,测试集上small batch性能仍然更好。
以下的实验测试了六种常见神经网络,均支持这一结论。
一种可能的解释
minima也有好坏之分:flat minima优于sharp minima。如果training data和testing data存在mismatch,flat minima结果相差不大,而sharp minima结果相差很多。而small batch因为noisy,可以跳出很窄的“峡谷”,更难被sharp minima困住。
2.4总结
那能不能结合二者优点,既速度快,又结果好呢?这是有可能的,很多文章都在探讨这一问题
Momentum
Momentum是一种可以对抗local minima和saddle point的技术。momentum在物理上是动量的意思,此方法运用了训练时gradient的“动量”,也可以说“惯性”,来达到效果。
原理
(vanilla:普通的)