1.什么是mini-batch
把训练集分为数个子训练集,比如每个子训练集中包含1000个单个样本,子训练集就被成为mini-batch。
2.损失函数的曲线
我们发现出现了噪声,这些噪声产生的原因是,我们的子训练集是难以训练的,不可能一直下降,所以出现摆动正常的,我们需要决定的变量是训练集的大小。
3.mini-batch大小的确定
当训练集的大小等于整个训练集的个数m时,此时为BGD算法,它的噪声很小,能准确的找到最小值,但是数据量多时,它的运算时间太长,因为它要把所有的样本都训练一遍。
相反,当训练集的大小等于1时,此时为SGD算法,它的运算速度较快,但由于它每次只计算一个样本,因此它的噪声很大,且它很难找到最小值,而是在最小值附近波动,因为它不收敛。mini-batch的大小应在1-m之间。
当样本量小于2000时,使用BGD;当样本量大时,mini-batch的大小一般为64、128、256、512,因为是2的次方的话,代码运行的快一些。