Robust Learning Techniques For Deep Neural Networks