Understanding And Improving Robustness And Uncertainty Estimation In Deep Learning