Gradient Descent
Gradient Descent
So we have our hypothesis function and we have a way of measuring how well it fits into the data.
Now we need to estimate the parameters in the hypothesis function. That's where gradient descent
comes in.
Imagine that we graph our hypothesis function based on its fields \theta_0θ0 and \theta_1θ1
(actually we are graphing the cost function as a function of the parameter estimates). We are not
graphing x and y itself, but the parameter range of our hypothesis function and the cost resulting
from selecting a particular set of parameters.
We put \theta_0θ0 on the x axis and \theta_1θ1 on the y axis, with the cost function on the vertical z
axis. The points on our graph will be the result of the cost function using our hypothesis with those
specific theta parameters. The graph below depicts such a setup.
We will know that we have succeeded when our cost function is at the very bottom of the pits in our
graph, i.e. when its value is the minimum. The red arrows show the minimum points in the graph.
The way we do this is by taking the derivative (the tangential line to a function) of our cost function.
The slope of the tangent is the derivative at that point and it will give us a direction to move towards.
We make steps down the cost function in the direction with the steepest descent. The size of each
step is determined by the parameter α, which is called the learning rate.
For example, the distance between each 'star' in the graph above represents a step determined by
our parameter α. A smaller α would result in a smaller step and a larger α results in a larger step.
The direction in which the step is taken is determined by the partial derivative
of J(\theta_0,\theta_1)J(θ0,θ1). Depending on where one starts on the graph, one could end up at
different points. The image above shows us two different starting points that end up in two different
places.
θj:=θj−α∂∂θjJ(θ0,θ1)
where
\theta_1:=\theta_1-\alpha * 0θ1:=θ1−α∗0
When specifically applied to the case of linear regression, a new form of the gradient descent
equation can be derived. We can substitute our actual cost function and our actual hypothesis
function and modify the equation to :
Note that we have separated out the two cases for \theta_jθj into separate equations for \theta_0θ0
and \theta_1θ1; and that for \theta_1θ1 we are multiplying x_{i}xi at the end due to the derivative.
The following is a derivation of ∂∂θjJ(θ) for a single example :
The point of all this is that if we start with a guess for our hypothesis and then repeatedly apply these
gradient descent equations, our hypothesis will become more and more accurate.
So, this is simply gradient descent on the original cost function J. This method looks at every
example in the entire training set on every step, and is called batch gradient descent. Note that,
while gradient descent can be susceptible to local minima in general, the optimization problem we
have posed here for linear regression has only one global, and no other local, optima; thus gradient
descent always converges (assuming the learning rate α is not too large) to the global minimum.
Indeed, J is a convex quadratic function. Here is an example of gradient descent as it is run to
minimize a quadratic function.
The ellipses shown above are the contours of a quadratic function. Also shown is the trajectory
taken by gradient descent, which was initialized at (48,30). The x’s in the figure (joined by straight
lines) mark the successive values of θ that gradient descent went through as it converged to its
minimum.