在deep learning里面用到mini-Batch有两个原因,其中一个是因为mini-Batch会提升模型的训练速度还有一个主要原因则是,mini-batch给训练过程引入了随机性:
对于一般的BP网络来说,当没有mini-batch的时候,w、b 的每一次update都是整个数据集gradient的方向,而整个大数据集的数据分布是不会随着update的次数而改变的,它不存在随机性,这样容易是的在训练的时候 “才跑两步” cost function就卡住了,就很容易卡在saddle point或者说是local minimum 里面;如果加上mini-batch,则每次update的时候,数据集都不尽相同,都会存在一些随机性(上次update的时候是saddle point,但在下次update的时候可能就不是了),因此如果saddle point不是很麻烦的saddle point或local minimum不是很深的local minimum的话,整个模型是相对很容易跑出来的。