Deep Neural Network Learning Algorithm