Introduction To Optimization Gradient Based Algorithms