Gradient-Based Optimization Techniques