Learning Based Optimization