Better learning algorithms for neural networks