Efficient Stochastic Optimization Algorithms for Convex, Non-Convex Problems