Batch_size对精度和损失的影响研究

1 问题

Batch_size(批尺寸)首先决定的是下降的方向,是机器学习中一个重要参数,所以本文主要探索不同的batch_size对精度和损失的影响。

2 方法

绘制不同batch_size下的训练和验证精度、损失图,并进行对比来研究其影响。

数据集:我们采用的是MNIST数据集,它由60000个训练图像和10000个测试图像组成。

基础参数配置:

  1. 训练周期:

    100

  2. 学习率:

    0.001

  3. 优化器:

    SGD

这里我选择的batch_size是32、64、128、256,其一是因为有一些理论说GPU对2的幂次的batch_size可以发挥更佳的性能。其二是,一般而言, 8的倍数(比如32,128)能使GPU内部的并行运算效率最高。

e62e1711d9484c43c848355673a318dc.png将数据存储到文件中。
14a66e5de4322a10482dcef8f431f83a.png用matplotlib绘制图
4a00791d2d72b09155ea9b2070dd51c8.pngtrain_loss 38e0255a0dcea3e4382917235a4e79fa.pngval_loss
fc97a8fc0ad3a7627e430974f56d9a11.pngtrain_acc 3aa6247ba0c2bb909d04f307a32738a8.pngval_acc

从上图中,我们可以得出以下结论,batch_size越大:

训练、验证损失下降的越慢。

收敛到最小验证损失所需的 epoch 越多。

训练、验证精度上升的越慢。

收敛到最大精度所需的 epoch 越多。

3 结语

针对Batch_size对精度和损失的影响研究问题,提出绘制不同batch_size下的精度和损失图,并进行对比的方法,通过曲线对比,就目前来说是较小的批量训练性能更好。本文的方法暂未考虑不同batch_size需要运行的时间等问题,未来可以针对这些方面做进一步研究。