Optimization Methods for Non-Linear/Non-Convex