add sgd learning