added adaptive learning rate