Stochastic gradient descent algorithms