add batch gradients descent