Coding a quadratic cost function optimization using Gradient Descent (GD) from scratch
In this recipe, we will code an iterative optimization technique called gradient descent (GD) to find the minimum of a quadratic function f(x) = 2x2 - 8x +9.
The focus here shifts from using math to solve for the minima (setting the first derivative to zero) to an iterative numerical method called Gradient Descent (GD) which with a guess and then gets closer to the solution in each iteration using a cost/error function as the guideline.
How to do it...
- Start a new project in IntelliJ or in an IDE of your choice. Make sure the necessary JAR files are included.
- Set up the path using the package directive:
package spark.ml.cookbook.chapter9
.
- Import the necessary packages.
The scala.util.control.Breaks
will allow us to break out of the program. We use this during the debugging phase only when the program fails to converge or gets stuck in a never ending process (for example, when the step size is too large).
import...