Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization