Refactored
Supported adadelta()