当前位置: 首页 > news >正文

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

 

 

相关文章:

  • C语言二级指针与多级指针
  • cannot import name ‘TextKwargs‘ from ‘transformers.processing_utils‘
  • 【LeetCode 热题 100】438. 找到字符串中所有字母异位词——(解法二)定长滑动窗口+数组
  • LeetCode Hot 100 找到字符串中所有字母异位词
  • 编译流程详解
  • 利用ROS打印novatel_msgs/INSPVAX
  • 滑坡监测接收机市场分析
  • libxlsxwriter: 一个轻量级的跨平台的C++操作Excel的开源库
  • 个人日记本小程序开发方案(使用IntelliJ IDEA)
  • python解释器 与 pip脚本常遇到的问题汇总
  • 【stm32】HAL库开发——CubeMX配置ADC
  • Minio入门+适配器模式(实战教程)
  • ZooKeeper深度面试指南三
  • uni-app subPackages 分包加载:优化应用性能的利器
  • uniapp上拉加载和下拉刷新组件mescroll-uni
  • 如何利用好doctor
  • JavaScript---字符串篇
  • 我的世界模组开发进阶教程——机械动力的数据生成(2)
  • ZooKeeper深度面试指南二
  • 【数据标注师】3D标注