Note2.2 机器学习训练技巧:Batch and Momentum(Machine Learning by Hung-yi Lee)

发布于:2025-07-01 ⋅ 阅读:(23) ⋅ 点赞:(0)

目录

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:普通的)