BGD(batch gradient descent)
遍历完所有数据,计算一次损失函数,更新一次梯度。
计算量大,速度慢,不支持在线学习。
SGD(stochastic gradient descent)
看一个数据,就计算一次损失函数,更新一次梯度。
速度快,收敛性能不太好,可能在最优点附近震荡,找不到最优点。
mini-batch
克服上面两个方法的缺点,将数据分为若干个批次,小批的梯度下降。
按批来更新参数。一个批中的所有数据共同决定本批梯度的方向,下降起来不容易跑偏,减少随机性。计算量也小。