Optimization and Neural Networks