Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization