批量梯度下降
每次迭代用所有的样本计算误差进行梯度更新,从运算上来说把全部样本用矩阵进行计算最简单暴力,同时因为是参照所有样本计算的误差所以能更好的代表预测整体的水平,而且当函数为凸函数时一定会找到最优解。
批量梯度不适用于样本量特别大的学习,虽然是用了矩阵,但是计算过大的数据量会让计算过程变得很慢,效率不高。
随机梯度下降
与批量梯度下降的策略相反,每次迭代仅用随机的一个样本计算误差进行梯度更新,从效率上来说计算梯度并进行参数更新是最快的。
随机梯度下降,梯度下降的过程是随机的,因为任何一个单个样本都无法代表整体样本,因此每次的梯度计算和参数更新都是针对于局部的,虽然效率高且不受样本数的影响,但是可能会陷入局部最优而不是全局最优(在函数是强凸情况下也一样会存在该问题)。
小批量梯度下降
是“随机”与“整体”的一个平衡策略,即每次选取batch_size个样本进行梯度计算和参数更新,一定程度上同时拥有批量梯度下降和随机梯度下降的优点。
小批量梯度下降表现的优劣取决于batch_size的选取,两个极端情况,batch_size等于样本数量就成为了批量梯度下降,等于1就成为了随机梯度下降。合理的选择batch_size的大小时,收敛的路线是批量梯度下降和随机梯度下降的“平衡”,即加快了批量梯度下降的收敛过程,减弱了随机梯度下降的震荡。
三种梯度下降策略收敛图
图片来源于其他博客,可以形象的展示出三种梯度下降策略收敛途径。