added a method to allow for an adaptive learning weight. this resulted in a slight decrease in accuracy for the MNIST dataset, but the error curves look nicer