之前转载过他人对于Batch Size对训练的影响的研究。但是其实描述的还不是很完善,最近刚好有空,写一篇我在深度学习过程中Batch Size对训练过程的影响。
安小飞:深度学习 | Batch Size大小对训练过程的影响zhuanlan.zhihu.com在实际深度学习项目中,一般有三种抽取数据的方式,第一种是取全量的数据进行梯度的更新;第二种是取1条样本进行每次迭代更新,即在线学习batch size=1;第三种是取部分样本数据也就是mini batch size进行梯度更新。三种方式对梯度更新也很容易想到,第一种因为是全量数据,所以梯度总能朝正确的方向进行下降;第二种为one by one,梯度的游走路径波动显然会很大;第三种是一种折中的方式,而我们需要做的就是找到第三种方式最优值。
所以我们要明白Batch Size到底影响的是什么?显而易见的是它会影响目标函数的收敛速度,一般来说,增大Batch_Size,所带来的训练时的标准差并不是线性增长的,比如训练一个样本的标准差为σ,那么取Batch_Size=n所带来的标准差为
,而非