学习率与batch_size对模型性能的影响

 

目录

 

学习率

Batch_size(批量大小)

学习率与batch_size在权重更新中的关系

学习率与batch_size对模型性能的影响(转载:原文)

对过拟合的影响

补充


学习率

学习率(lr)表示每次更新权重参数的尺度(步长),\Delta \Theta = \Theta _0 -(lr)({loss}')

Batch_size(批量大小)

batch_size有一个计算公式,即 batchsize = \frac{N_{data}}{batch},  或者 batch= \frac{N_{data}}{batchsize}, N为训练数据集大小, batch为需要多少次迭代才能在一个epoch中训练完整个数据集。batch_size参数决定了完整训练数据集1个epoch需要多少个batch。

学习率与batch_size在权重更新中的关系

  • 学习率(lr)直观可以看出lr越大,权重更新的跨度越大,模型参数调整变化越快。

  • batch_size对模型的影响,在于模型每次更新时,计算梯度是计算整个Batch的平均梯度,即权重更新公式中的{loss}' = \frac{1}{batchsize}{(loss_{batch})}', 整合就是\Delta \Theta = \Theta _0 -(lr)\frac{1}{batchsize}{(loss_{batch})}'。即lr与batch_size共同影响模型更新。 

学习率与batch_size对模型性能的影响(转载:原文

  • 大的batchsize减少训练时间,提高稳定性。 这是肯定的,同样的epoch数目,在性能允许情况下,大的batchsize需要的batch数目减少了,所以可以减少训练时间。另一方面,大的batch size梯度的计算更加稳定,因为模型训练曲线会更加平滑。在微调的时候,大的batch size可能会取得更好的结果。
  • 过大的batchsize泛化能力下降。 在一定范围内,增加batchsize有助于收敛的稳定性,但是随着batchsize的增加,模型的性能会下降,如下图,来自于文[1]。

这是研究者们普遍观测到的规律,虽然可以通过一些技术缓解。这个导致性能下降的batch size在上图就是8000左右。

研究[2]表明大的batchsize收敛到sharp miminum,而小的batchsize收敛到flat mimimum,后者具有更好的泛化能力。两者的区别就在于变化的趋势,一个快一个慢,如下图,造成这个现象的主要原因是小的batchsize带来的噪声有助于逃离sharp mininum。

Hoffer[3]等人的研究表明,大的batchsize性能下降是因为训练时间不够长,本质上并不是batchsize的问题,在同样的epochs下的参数更新变少了,因此需要更长的迭代次数。

 

[1] Goyal P, Dollar P, Girshick R B, et al. Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour.[J]. arXiv: Computer Vision and Pattern Recognition, 2017.

[2] Keskar N S, Mudigere D, Nocedal J, et al. On large-batch training for deep learning: Generalization gap and sharp minima[J]. arXiv preprint arXiv:1609.04836, 2016.

[3] Hoffer E, Hubara I, Soudry D. Train longer, generalize better: closing the generalization gap in large batch training of neural networks[C]//Advances in Neural Information Processing Systems. 2017: 1731-1741.

对过拟合的影响

  • 学习率:学习率高的话,模型学习数据时间加快,提前到达拟合点,但是epoch没结束,继续学习训练数据,容易导致过拟合于原始数据。

  • batch_size:同样是通过对训练步数的影响,小的batch_size使模型迭代次数增多,提前到达拟合点,但是epoch没结束,继续学习训练数据,容易导致过拟合于原始数据。

补充

  • 较大的batch_size能够得到更加精准的梯度估计,但是回报小于线性。
  • 较小的batch_size能够带来更好的泛化误差。
  1. 由于小batch_size再学习过程中带来了噪声,会产生一些正则化效果。
  2. 由于梯度估计的高方差,小batch_size在训练中需要更小的学习率以保持稳定性,这意味着更长的训练时间

当batch_size设置为2的次幂时能够充分利用矩阵运算。
 

  • 0
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值