浏览量:3893 最近编辑于:null
# 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