Optimization for training neural nets | Synapse