Algorithms for Efficiently Learning Low-Rank Neural Networks