神经网络参数Batch size浅谈

Posted by ivan on 2020-07-22 23:23:21
 浏览量:4602 最近编辑于:2020-07-22 23:23:21

Batch Size

一次训练所选取的样本数

GD / batch-GD

Gradient Descent,没有Batch Size

SGD

Stochastic Gradient Descent,Batch Size=1

mini-batch SGD

选择合适Batch Size的SGD

mini-batch优点

  • 提高运行效率、相比GD,一个epoch更新多次参数,加速收敛
  • 解决训练集过大无法一次性读入内存的问题
  • 人为给训练带来噪声,带领算法走出鞍点

大Batch Size优缺点

  • 并行化提高内存利用率、发挥GPU性能
  • 一次epoch所需迭代次数减少、数据处理速度快
  • 梯度准确、震荡小、稳定性高、容易收敛
  • 泛化性能差、容易陷入局部极小值或鞍点
  • 内存容量不够

小Batch Size优缺点

  • 收敛速度快
  • 花费时间多,梯度震荡严重,稳定性差,不利于收敛

Batch Size从小到大的变化对网络影响

  • 没有batch size(GD),梯度准确
  • batch size=1,梯度不准确、收敛慢
  • batch size增大,梯度变准确

学习率和batchsize的关系

增加batchsize为原来的N倍时,要保证经过同样的样本后更新的权重相等,按照线性缩放规则,学习率应该增加为原来的N倍。但是如果要保证权重的方差不变,则学习率应该增加为原来的sqrt(N)倍,目前这两种策略都被研究过,使用前者的明显居多

tricks

  • 逐渐增大batch size来代替学习率的衰减
  • 如果增加了学习率,那么batch size最好也跟着增加,这样收敛更稳定,大batch size≈小lr
  • 尽量使用大的学习率,因为很多研究都表明更大的学习率有利于提高泛化能力
  • 噪音大,调大batch size
  • 噪音小,调小batch size







评论