Leveraging sparsity in deep neural networks for training efficiency, interpretability and generalization