Preconditioned stochastic gradient descent (PSGD)