3067 lines
379 KiB
Plaintext
3067 lines
379 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- dom:TITLE: Data Analysis and Machine Learning Lectures: Optimization and Gradient Methods -->\n",
|
||
"# Data Analysis and Machine Learning Lectures: Optimization and Gradient Methods\n",
|
||
"<!-- dom:AUTHOR: Morten Hjorth-Jensen at Department of Physics, University of Oslo & Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University -->\n",
|
||
"<!-- Author: --> \n",
|
||
"**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n",
|
||
"\n",
|
||
"Date: **Oct 18, 2018**\n",
|
||
"\n",
|
||
"Copyright 1999-2018, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"## Optimization, the central part of any Machine Learning algortithm\n",
|
||
"\n",
|
||
"Almost every problem in machine learning and data science starts with\n",
|
||
"a dataset $X$, a model $g(\\beta)$, which is a function of the\n",
|
||
"parameters $\\beta$ and a cost function $C(X, g(\\beta))$ that allows\n",
|
||
"us to judge how well the model $g(\\beta)$ explains the observations\n",
|
||
"$X$. The model is fit by finding the values of $\\beta$ that minimize\n",
|
||
"the cost function. Ideally we would be able to solve for $\\beta$\n",
|
||
"analytically, however this is not possible in general and we must use\n",
|
||
"some approximative/numerical method to compute the minimum.\n",
|
||
"\n",
|
||
"\n",
|
||
"## Revisiting our Logistic Regression case\n",
|
||
"\n",
|
||
"In our discussion on Logistic Regression we studied the \n",
|
||
"case of\n",
|
||
"two classes, with $y_i$ either\n",
|
||
"$0$ or $1$. Furthermore we assumed also that we have only two\n",
|
||
"parameters $\\beta$ in our fitting, that is we\n",
|
||
"defined probabilities"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\begin{align*}\n",
|
||
"p(y_i=1|x_i,\\hat{\\beta}) &= \\frac{\\exp{(\\beta_0+\\beta_1x_i)}}{1+\\exp{(\\beta_0+\\beta_1x_i)}},\\nonumber\\\\\n",
|
||
"p(y_i=0|x_i,\\hat{\\beta}) &= 1 - p(y_i=1|x_i,\\hat{\\beta}),\n",
|
||
"\\end{align*}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where $\\hat{\\beta}$ are the weights we wish to extract from data, in our case $\\beta_0$ and $\\beta_1$. \n",
|
||
"\n",
|
||
"## The equations to solve\n",
|
||
"\n",
|
||
"Our compact equations used a definition of a vector $\\hat{y}$ with $n$\n",
|
||
"elements $y_i$, an $n\\times p$ matrix $\\hat{X}$ which contains the\n",
|
||
"$x_i$ values and a vector $\\hat{p}$ of fitted probabilities\n",
|
||
"$p(y_i\\vert x_i,\\hat{\\beta})$. We rewrote in a more compact form\n",
|
||
"the first derivative of the cost function as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\frac{\\partial \\mathcal{C}(\\hat{\\beta})}{\\partial \\hat{\\beta}} = -\\hat{X}^T\\left(\\hat{y}-\\hat{p}\\right).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"If we in addition define a diagonal matrix $\\hat{W}$ with elements \n",
|
||
"$p(y_i\\vert x_i,\\hat{\\beta})(1-p(y_i\\vert x_i,\\hat{\\beta})$, we can obtain a compact expression of the second derivative as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\frac{\\partial^2 \\mathcal{C}(\\hat{\\beta})}{\\partial \\hat{\\beta}\\partial \\hat{\\beta}^T} = \\hat{X}^T\\hat{W}\\hat{X}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"This defines what is called the Hessian matrix.\n",
|
||
"\n",
|
||
"## Solving using Newton-Raphson's method\n",
|
||
"\n",
|
||
"If we can set up these equations, Newton-Raphson's iterative method is normally the method of choice. It requires however that we can compute in an efficient way the matrices that define the first and second derivatives. \n",
|
||
"\n",
|
||
"Our iterative scheme is then given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{\\beta}^{\\mathrm{new}} = \\hat{\\beta}^{\\mathrm{old}}-\\left(\\frac{\\partial^2 \\mathcal{C}(\\hat{\\beta})}{\\partial \\hat{\\beta}\\partial \\hat{\\beta}^T}\\right)^{-1}_{\\hat{\\beta}^{\\mathrm{old}}}\\times \\left(\\frac{\\partial \\mathcal{C}(\\hat{\\beta})}{\\partial \\hat{\\beta}}\\right)_{\\hat{\\beta}^{\\mathrm{old}}},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"or in matrix form as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{\\beta}^{\\mathrm{new}} = \\hat{\\beta}^{\\mathrm{old}}-\\left(\\hat{X}^T\\hat{W}\\hat{X} \\right)^{-1}\\times \\left(-\\hat{X}^T(\\hat{y}-\\hat{p}) \\right)_{\\hat{\\beta}^{\\mathrm{old}}}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"The right-hand side is computed with the old values of $\\beta$. \n",
|
||
"\n",
|
||
"If we can compute these matrices, in particular the Hessian, the above is often the easiest method to implement. \n",
|
||
"\n",
|
||
"\n",
|
||
"## Brief reminder on Newton-Raphson's method\n",
|
||
"\n",
|
||
"Let us quickly remind ourselves how we derive the above method.\n",
|
||
"\n",
|
||
"Perhaps the most celebrated of all one-dimensional root-finding\n",
|
||
"routines is Newton's method, also called the Newton-Raphson\n",
|
||
"method. This method requires the evaluation of both the\n",
|
||
"function $f$ and its derivative $f'$ at arbitrary points. \n",
|
||
"If you can only calculate the derivative\n",
|
||
"numerically and/or your function is not of the smooth type, we\n",
|
||
"normally discourage the use of this method.\n",
|
||
"\n",
|
||
"## The equations\n",
|
||
"\n",
|
||
"The Newton-Raphson formula consists geometrically of extending the\n",
|
||
"tangent line at a current point until it crosses zero, then setting\n",
|
||
"the next guess to the abscissa of that zero-crossing. The mathematics\n",
|
||
"behind this method is rather simple. Employing a Taylor expansion for\n",
|
||
"$x$ sufficiently close to the solution $s$, we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- Equation labels as ordinary links -->\n",
|
||
"<div id=\"eq:taylornr\"></div>\n",
|
||
"\n",
|
||
"$$\n",
|
||
"f(s)=0=f(x)+(s-x)f'(x)+\\frac{(s-x)^2}{2}f''(x) +\\dots.\n",
|
||
" \\label{eq:taylornr} \\tag{1}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"For small enough values of the function and for well-behaved\n",
|
||
"functions, the terms beyond linear are unimportant, hence we obtain"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"f(x)+(s-x)f'(x)\\approx 0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"yielding"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"s\\approx x-\\frac{f(x)}{f'(x)}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Having in mind an iterative procedure, it is natural to start iterating with"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"x_{n+1}=x_n-\\frac{f(x_n)}{f'(x_n)}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Simple geometric interpretation\n",
|
||
"\n",
|
||
"The above is Newton-Raphson's method. It has a simple geometric\n",
|
||
"interpretation, namely $x_{n+1}$ is the point where the tangent from\n",
|
||
"$(x_n,f(x_n))$ crosses the $x$-axis. Close to the solution,\n",
|
||
"Newton-Raphson converges fast to the desired result. However, if we\n",
|
||
"are far from a root, where the higher-order terms in the series are\n",
|
||
"important, the Newton-Raphson formula can give grossly inaccurate\n",
|
||
"results. For instance, the initial guess for the root might be so far\n",
|
||
"from the true root as to let the search interval include a local\n",
|
||
"maximum or minimum of the function. If an iteration places a trial\n",
|
||
"guess near such a local extremum, so that the first derivative nearly\n",
|
||
"vanishes, then Newton-Raphson may fail totally\n",
|
||
"\n",
|
||
"\n",
|
||
"## Extending to more than one variable\n",
|
||
"\n",
|
||
"Newton's method can be generalized to systems of several non-linear equations\n",
|
||
"and variables. Consider the case with two equations"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\begin{array}{cc} f_1(x_1,x_2) &=0\\\\\n",
|
||
" f_2(x_1,x_2) &=0,\\end{array}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"which we Taylor expand to obtain"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\begin{array}{cc} 0=f_1(x_1+h_1,x_2+h_2)=&f_1(x_1,x_2)+h_1\n",
|
||
" \\partial f_1/\\partial x_1+h_2\n",
|
||
" \\partial f_1/\\partial x_2+\\dots\\\\\n",
|
||
" 0=f_2(x_1+h_1,x_2+h_2)=&f_2(x_1,x_2)+h_1\n",
|
||
" \\partial f_2/\\partial x_1+h_2\n",
|
||
" \\partial f_2/\\partial x_2+\\dots\n",
|
||
" \\end{array}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Defining the Jacobian matrix ${\\bf \\hat{J}}$ we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"{\\bf \\hat{J}}=\\left( \\begin{array}{cc}\n",
|
||
" \\partial f_1/\\partial x_1 & \\partial f_1/\\partial x_2 \\\\\n",
|
||
" \\partial f_2/\\partial x_1 &\\partial f_2/\\partial x_2\n",
|
||
" \\end{array} \\right),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"we can rephrase Newton's method as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\left(\\begin{array}{c} x_1^{n+1} \\\\ x_2^{n+1} \\end{array} \\right)=\n",
|
||
"\\left(\\begin{array}{c} x_1^{n} \\\\ x_2^{n} \\end{array} \\right)+\n",
|
||
"\\left(\\begin{array}{c} h_1^{n} \\\\ h_2^{n} \\end{array} \\right),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where we have defined"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\left(\\begin{array}{c} h_1^{n} \\\\ h_2^{n} \\end{array} \\right)=\n",
|
||
" -{\\bf \\hat{J}}^{-1}\n",
|
||
" \\left(\\begin{array}{c} f_1(x_1^{n},x_2^{n}) \\\\ f_2(x_1^{n},x_2^{n}) \\end{array} \\right).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We need thus to compute the inverse of the Jacobian matrix and it\n",
|
||
"is to understand that difficulties may\n",
|
||
"arise in case ${\\bf \\hat{J}}$ is nearly singular.\n",
|
||
"\n",
|
||
"It is rather straightforward to extend the above scheme to systems of\n",
|
||
"more than two non-linear equations. In our case, the Jacobian matrix is given by the Hessian that represents the second derivative of cost function. \n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"## Steepest descent\n",
|
||
"\n",
|
||
"The basic idea of gradient descent is\n",
|
||
"that a function $F(\\mathbf{x})$, \n",
|
||
"$\\mathbf{x} \\equiv (x_1,\\cdots,x_n)$, decreases fastest if one goes from $\\bf {x}$ in the\n",
|
||
"direction of the negative gradient $-\\nabla F(\\mathbf{x})$.\n",
|
||
"\n",
|
||
"It can be shown that if"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbf{x}_{k+1} = \\mathbf{x}_k - \\gamma_k \\nabla F(\\mathbf{x}_k),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"with $\\gamma_k > 0$.\n",
|
||
"\n",
|
||
"For $\\gamma_k$ small enough, then $F(\\mathbf{x}_{k+1}) \\leq\n",
|
||
"F(\\mathbf{x}_k)$. This means that for a sufficiently small $\\gamma_k$\n",
|
||
"we are always moving towards smaller function values, i.e a minimum.\n",
|
||
"\n",
|
||
"<!-- !split -->\n",
|
||
"## More on Steepest descent\n",
|
||
"\n",
|
||
"The previous observation is the basis of the method of steepest\n",
|
||
"descent, which is also referred to as just gradient descent (GD). One\n",
|
||
"starts with an initial guess $\\mathbf{x}_0$ for a minimum of $F$ and\n",
|
||
"computes new approximations according to"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbf{x}_{k+1} = \\mathbf{x}_k - \\gamma_k \\nabla F(\\mathbf{x}_k), \\ \\ k \\geq 0.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"The parameter $\\gamma_k$ is often referred to as the step length or\n",
|
||
"the learning rate within the context of Machine Learning.\n",
|
||
"\n",
|
||
"<!-- !split -->\n",
|
||
"## The ideal\n",
|
||
"\n",
|
||
"Ideally the sequence $\\{\\mathbf{x}_k \\}_{k=0}$ converges to a global\n",
|
||
"minimum of the function $F$. In general we do not know if we are in a\n",
|
||
"global or local minimum. In the special case when $F$ is a convex\n",
|
||
"function, all local minima are also global minima, so in this case\n",
|
||
"gradient descent can converge to the global solution. The advantage of\n",
|
||
"this scheme is that it is conceptually simple and straightforward to\n",
|
||
"implement. However the method in this form has some severe\n",
|
||
"limitations:\n",
|
||
"\n",
|
||
"In machine learing we are often faced with non-convex high dimensional\n",
|
||
"cost functions with many local minima. Since GD is deterministic we\n",
|
||
"will get stuck in a local minimum, if the method converges, unless we\n",
|
||
"have a very good intial guess. This also implies that the scheme is\n",
|
||
"sensitive to the chosen initial condition.\n",
|
||
"\n",
|
||
"Note that the gradient is a function of $\\mathbf{x} =\n",
|
||
"(x_1,\\cdots,x_n)$ which makes it expensive to compute numerically.\n",
|
||
"\n",
|
||
"\n",
|
||
"<!-- !split -->\n",
|
||
"## The sensitiveness of the gradient descent\n",
|
||
"\n",
|
||
"The gradient descent method \n",
|
||
"is sensitive to the choice of learning rate $\\gamma_k$. This is due\n",
|
||
"to the fact that we are only guaranteed that $F(\\mathbf{x}_{k+1}) \\leq\n",
|
||
"F(\\mathbf{x}_k)$ for sufficiently small $\\gamma_k$. The problem is to\n",
|
||
"determine an optimal learning rate. If the learning rate is chosen too\n",
|
||
"small the method will take a long time to converge and if it is too\n",
|
||
"large we can experience erratic behavior.\n",
|
||
"\n",
|
||
"Many of these shortcomings can be alleviated by introducing\n",
|
||
"randomness. One such method is that of Stochastic Gradient Descent\n",
|
||
"(SGD), see below.\n",
|
||
"\n",
|
||
"\n",
|
||
"<!-- !split -->\n",
|
||
"## Convex functions\n",
|
||
"\n",
|
||
"Ideally we want our cost/loss function to be convex(concave).\n",
|
||
"\n",
|
||
"First we give the definition of a convex set: A set $C$ in\n",
|
||
"$\\mathbb{R}^n$ is said to be convex if, for all $x$ and $y$ in $C$ and\n",
|
||
"all $t \\in (0,1)$ , the point $(1 − t)x + ty$ also belongs to\n",
|
||
"C. Geometrically this means that every point on the line segment\n",
|
||
"connecting $x$ and $y$ is in $C$ as discussed below.\n",
|
||
"\n",
|
||
"The convex subsets of $\\mathbb{R}$ are the intervals of\n",
|
||
"$\\mathbb{R}$. Examples of convex sets of $\\mathbb{R}^2$ are the\n",
|
||
"regular polygons (triangles, rectangles, pentagons, etc...).\n",
|
||
"\n",
|
||
"## Convex function\n",
|
||
"\n",
|
||
"**Convex function**: Let $X \\subset \\mathbb{R}^n$ be a convex set. Assume that the function $f: X \\rightarrow \\mathbb{R}$ is continuous, then $f$ is said to be convex if $$f(tx_1 + (1-t)x_2) \\leq tf(x_1) + (1-t)f(x_2) $$ for all $x_1, x_2 \\in X$ and for all $t \\in [0,1]$. If $\\leq$ is replaced with a strict inequaltiy in the definition, we demand $x_1 \\neq x_2$ and $t\\in(0,1)$ then $f$ is said to be strictly convex. For a single variable function, convexity means that if you draw a straight line connecting $f(x_1)$ and $f(x_2)$, the value of the function on the interval $[x_1,x_2]$ is always below the line as illustrated below.\n",
|
||
"\n",
|
||
"## Conditions on convex functions\n",
|
||
"\n",
|
||
"In the following we state first and second-order conditions which\n",
|
||
"ensures convexity of a function $f$. We write $D_f$ to denote the\n",
|
||
"domain of $f$, i.e the subset of $R^n$ where $f$ is defined. For more\n",
|
||
"details and proofs we refer to: [S. Boyd and L. Vandenberghe. Convex Optimization. Cambridge University Press](http://stanford.edu/boyd/cvxbook/, 2004).\n",
|
||
"\n",
|
||
"**First order condition.**\n",
|
||
"\n",
|
||
"Suppose $f$ is differentiable (i.e $\\nabla f(x)$ is well defined for\n",
|
||
"all $x$ in the domain of $f$). Then $f$ is convex if and only if $D_f$\n",
|
||
"is a convex set and $$f(y) \\geq f(x) + \\nabla f(x)^T (y-x) $$ holds\n",
|
||
"for all $x,y \\in D_f$. This condition means that for a convex function\n",
|
||
"the first order Taylor expansion (right hand side above) at any point\n",
|
||
"a global under estimator of the function. To convince yourself you can\n",
|
||
"make a drawing of $f(x) = x^2+1$ and draw the tangent line to $f(x)$ and\n",
|
||
"note that it is always below the graph.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"**Second order condition.**\n",
|
||
"\n",
|
||
"Assume that $f$ is twice\n",
|
||
"differentiable, i.e the Hessian matrix exists at each point in\n",
|
||
"$D_f$. Then $f$ is convex if and only if $D_f$ is a convex set and its\n",
|
||
"Hessian is positive semi-definite for all $x\\in D_f$. For a\n",
|
||
"single-variable function this reduces to $f''(x) \\geq 0$. Geometrically this means that $f$ has nonnegative curvature\n",
|
||
"everywhere.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"This condition is particularly useful since it gives us an procedure for determining if the function under consideration is convex, apart from using the definition.\n",
|
||
"\n",
|
||
"## More on convex functions\n",
|
||
"\n",
|
||
"The next result is of great importance to us and the reason why we are\n",
|
||
"going on about convex functions. In machine learning we frequently\n",
|
||
"have to minimize a loss/cost function in order to find the best\n",
|
||
"parameters for the model we are considering. \n",
|
||
"\n",
|
||
"Ideally we want the\n",
|
||
"global minimum (for high-dimensional models it is hard to know\n",
|
||
"if we have local or global minimum). However, if the cost/loss function\n",
|
||
"is convex the following result provides invaluable information:\n",
|
||
"\n",
|
||
"**Any minimum is global for convex functions.**\n",
|
||
"\n",
|
||
"Consider the problem of finding $x \\in \\mathbb{R}^n$ such that $f(x)$\n",
|
||
"is minimal, where $f$ is convex and differentiable. Then, any point\n",
|
||
"$x^*$ that satisfies $\\nabla f(x^*) = 0$ is a global minimum.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"This result means that if we know that the cost/loss function is convex and we are able to find a minimum, we are guaranteed that it is a global minimum.\n",
|
||
"\n",
|
||
"## Some simple problems\n",
|
||
"\n",
|
||
"1. Show that $f(x)=x^2$ is convex for $x \\in \\mathbb{R}$ using the definition of convexity. Hint: If you re-write the definition, $f$ is convex if the following holds for all $x,y \\in D_f$ and any $\\lambda \\in [0,1]$ $\\lambda f(x)+(1-\\lambda)f(y)-f(\\lambda x + (1-\\lambda) y ) \\geq 0$.\n",
|
||
"\n",
|
||
"2. Using the second order condition show that the following functions are convex on the specified domain.\n",
|
||
"\n",
|
||
" * $f(x) = e^x$ is convex for $x \\in \\mathbb{R}$.\n",
|
||
"\n",
|
||
" * $g(x) = -\\ln(x)$ is convex for $x \\in (0,\\infty)$.\n",
|
||
"\n",
|
||
"\n",
|
||
"3. Let $f(x) = x^2$ and $g(x) = e^x$. Show that $f(g(x))$ and $g(f(x))$ is convex for $x \\in \\mathbb{R}$. Also show that if $f(x)$ is any convex function than $h(x) = e^{f(x)}$ is convex.\n",
|
||
"\n",
|
||
"4. A norm is any function that satisfy the following properties\n",
|
||
"\n",
|
||
" * $f(\\alpha x) = |\\alpha| f(x)$ for all $\\alpha \\in \\mathbb{R}$.\n",
|
||
"\n",
|
||
" * $f(x+y) \\leq f(x) + f(y)$\n",
|
||
"\n",
|
||
" * $f(x) \\leq 0$ for all $x \\in \\mathbb{R}^n$ with equality if and only if $x = 0$\n",
|
||
"\n",
|
||
"\n",
|
||
"Using the definition of convexity, try to show that a function satisfying the properties above is convex (the third condition is not needed to show this).\n",
|
||
"\n",
|
||
"\n",
|
||
"## Standard steepest descent\n",
|
||
"\n",
|
||
"\n",
|
||
"Before we proceed, we would like to discuss the approach called the\n",
|
||
"**standard Steepest descent**, which again leads to us having to be able\n",
|
||
"to compute a matrix. It belongs to the class of Conjugate Gradient methods (CG).\n",
|
||
"\n",
|
||
"[The success of the CG method](https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf)\n",
|
||
"for finding solutions of non-linear problems is based on the theory\n",
|
||
"of conjugate gradients for linear systems of equations. It belongs to\n",
|
||
"the class of iterative methods for solving problems from linear\n",
|
||
"algebra of the type"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{A}\\hat{x} = \\hat{b}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"In the iterative process we end up with a problem like"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{r}= \\hat{b}-\\hat{A}\\hat{x},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where $\\hat{r}$ is the so-called residual or error in the iterative process.\n",
|
||
"\n",
|
||
"When we have found the exact solution, $\\hat{r}=0$.\n",
|
||
"\n",
|
||
"## Gradient method\n",
|
||
"\n",
|
||
"The residual is zero when we reach the minimum of the quadratic equation"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"P(\\hat{x})=\\frac{1}{2}\\hat{x}^T\\hat{A}\\hat{x} - \\hat{x}^T\\hat{b},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"with the constraint that the matrix $\\hat{A}$ is positive definite and\n",
|
||
"symmetric. This defines also the Hessian and we want it to be positive definite. \n",
|
||
"\n",
|
||
"\n",
|
||
"## Steepest descent method\n",
|
||
"\n",
|
||
"We denote the initial guess for $\\hat{x}$ as $\\hat{x}_0$. \n",
|
||
"We can assume without loss of generality that"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{x}_0=0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"or consider the system"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{A}\\hat{z} = \\hat{b}-\\hat{A}\\hat{x}_0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"instead.\n",
|
||
"\n",
|
||
"\n",
|
||
"## Steepest descent method\n",
|
||
"One can show that the solution $\\hat{x}$ is also the unique minimizer of the quadratic form"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"f(\\hat{x}) = \\frac{1}{2}\\hat{x}^T\\hat{A}\\hat{x} - \\hat{x}^T \\hat{x} , \\quad \\hat{x}\\in\\mathbf{R}^n.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"This suggests taking the first basis vector $\\hat{r}_1$ (see below for definition) \n",
|
||
"to be the gradient of $f$ at $\\hat{x}=\\hat{x}_0$, \n",
|
||
"which equals"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{A}\\hat{x}_0-\\hat{b},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"and \n",
|
||
"$\\hat{x}_0=0$ it is equal $-\\hat{b}$.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"## Final expressions\n",
|
||
"We can compute the residual iteratively as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{r}_{k+1}=\\hat{b}-\\hat{A}\\hat{x}_{k+1},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"which equals"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{b}-\\hat{A}(\\hat{x}_k+\\alpha_k\\hat{r}_k),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"or"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"(\\hat{b}-\\hat{A}\\hat{x}_k)-\\alpha_k\\hat{A}\\hat{r}_k,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"which gives"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\alpha_k = \\frac{\\hat{r}_k^T\\hat{r}_k}{\\hat{r}_k^T\\hat{A}\\hat{r}_k}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"leading to the iterative scheme"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{x}_{k+1}=\\hat{x}_k-\\alpha_k\\hat{r}_{k},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Code examples for steepest descent\n",
|
||
"\n",
|
||
"## Simple codes for steepest descent and conjugate gradient using a $2\\times 2$ matrix, in c++, Python code to come"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
" #include <cmath>\n",
|
||
" #include <iostream>\n",
|
||
" #include <fstream>\n",
|
||
" #include <iomanip>\n",
|
||
" #include \"vectormatrixclass.h\"\n",
|
||
" using namespace std;\n",
|
||
" // Main function begins here\n",
|
||
" int main(int argc, char * argv[]){\n",
|
||
" int dim = 2;\n",
|
||
" Vector x(dim),xsd(dim), b(dim),x0(dim);\n",
|
||
" Matrix A(dim,dim);\n",
|
||
" \n",
|
||
" // Set our initial guess\n",
|
||
" x0(0) = x0(1) = 0;\n",
|
||
" // Set the matrix\n",
|
||
" A(0,0) = 3; A(1,0) = 2; A(0,1) = 2; A(1,1) = 6;\n",
|
||
" b(0) = 2; b(1) = -8;\n",
|
||
" cout << \"The Matrix A that we are using: \" << endl;\n",
|
||
" A.Print();\n",
|
||
" cout << endl;\n",
|
||
" xsd = SteepestDescent(A,b,x0);\n",
|
||
" cout << \"The approximate solution using Steepest Descent is: \" << endl;\n",
|
||
" xsd.Print();\n",
|
||
" cout << endl;\n",
|
||
" }\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## The routine for the steepest descent method"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
" Vector SteepestDescent(Matrix A, Vector b, Vector x0){\n",
|
||
" int IterMax, i;\n",
|
||
" int dim = x0.Dimension();\n",
|
||
" const double tolerance = 1.0e-14;\n",
|
||
" Vector x(dim),f(dim),z(dim);\n",
|
||
" double c,alpha,d;\n",
|
||
" IterMax = 30;\n",
|
||
" x = x0;\n",
|
||
" r = A*x-b;\n",
|
||
" i = 0;\n",
|
||
" while (i <= IterMax){\n",
|
||
" z = A*r;\n",
|
||
" c = dot(r,r);\n",
|
||
" alpha = c/dot(r,z);\n",
|
||
" x = x - alpha*r;\n",
|
||
" r = A*x-b;\n",
|
||
" if(sqrt(dot(r,r)) < tolerance) break;\n",
|
||
" i++;\n",
|
||
" }\n",
|
||
" return x;\n",
|
||
" }\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Steepest descent example"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"<mpl_toolkits.mplot3d.art3d.Poly3DCollection at 0x1018979cf8>"
|
||
]
|
||
},
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAB8wAAADnCAYAAAB7cqyEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3Wlso/l9J/jv8/C+b0rULapOVVVXV7q6DmfiOGN04qwH9mRnNx5PMLHjYAPswLNYBMjEe2B3vYHHbmBf7LwZJFjE2fYC44GTXUwmncQOJkl74nTb1V1d96GSRIqkKIoiRYr39Rz7guTzPKySSlK32l3d9f0AhX6afPh/DlKvvs/v9xNUVQUREREREREREREREREREdHzRvywT4CIiIiIiIiIiIiIiIiIiOjDwMCciIiIiIiIiIiIiIiIiIieSwzMiYiIiIiIiIiIiIiIiIjoucTAnIiIiIiIiIiIiIiIiIiInksMzImIiIiIiIiIiIiIiIiI6Llk3ud99adyFkREHy/Ch30CREREREREREREREREtD9WmBMRERERERERERERERER0XOJgTkRERERERERERERERERET2XGJgTEREREREREREREREREdFziYE5ERERERERERERERERERE9lxiYExERERERERERERERERHRc4mBORERERERERERERERERERPZcYmBMRERERERERERERERER0XOJgTkRERERERERERERERERET2XGJgTEREREREREREREREREdFziYE5ERERERERERERERERERE9lxiYExERERERERERERERERHRc4mBORERERERERERERERERERPZcYmBMRERERERERERERERER0XPJ/GGfAH10qaoKRVHQ6XQgSRLMZjNEUYTJZIIoihBFEYIgfNinSURERERERERERERERES0K0FV1ae9/9Q36fmkqipkWYYkSSPbw/eMIfkwQB/+Y5BOzwn+wImIiIiIiIiIiIiIiD4CGJjTgT0elAuCgHa7jWQyCUmS4Ha74XQ64XK5YLVatc8M/6VSKUSjUTidTgbp9HHHHzIREREREREREREREdFHAFuy075UVYUkSVhfX4fX64XL5UKz2UQikUCz2cTMzAxMJhNarRa2t7eRTqfR7XZhMpngcrngcrngdDrRarWgqipEUQQASJKEXq83ciwG6URERERERERERERERET008IKc9rTMCgftltfWlqC2+1GsViEJEmYn59HKBTSqs6HQfiQJEloNptoNBpoNBrI5/MQRREWi2UkSHe5XLDb7SPHHf4bBuWCIMBkMmlz0ofBOoN0ekbxh0lERERERERERERERPQRwApzeoKiKCNzyQFgZ2cHW1tbqFQqOHXqFPx+v/beXqG12WyG1+uF1+sF0A/QJyYmtAr1RqOBSqWCjY0NtNttiKKoBejDMN3hcGjrybKMdDoNAJiYmNCq1feqSGeYTkRERERERERERERERERPw8CcNIqiQJIkyLKsvVYsFpFMJmG32xEKhTA2NjYSlh+GIAhQVRUmkwkejwcej2fkfVmW0Wq10Gg0UK1Wkcvl0G63AUAL0tvtNmw2GwRB0CraHw/3h8cSRRFms5lBOhERERERERERERERERHtioH5c27Y+rzX60FRFO21fD6PVCoFr9eLc+fOwel0YmVlBfu08AcAPEzncSeRxX/18xdGwulhYL4Xk8kEt9sNt9s98rqiKFqQXqlUUKvVUCwWAQAOh2OkIt3pdGrHVBQFnU5nZK1hYC5JEtxuN4N0IiIiIiIiIiIiIiIioucYA/PnlKqqWkX5gwcPcPLkSaiqio2NDaTTaYRCIVy4cGFktrggCFqo/jRvP0zhf/n26/iPf38H3/xvPoepaED7/EEC98eJoqiF4r1eDwAwOTkJRVHQbre1GemFQgHNZhOqqo4E6S6XCw6HAyaTSZvLfuvWLVy4cGHkOMbW7sOqdAbpRERERERERERERERERB9fDMyfM8agXFEUCIKAUqmEVCqFbDaL8fFxvPzyy7BarU989qCB951EFgDwozur+Fd/8B/wD3/mBL78mStHfi3DmedOpxORSER7XVVVtFotbU769vY2ms0mFEWB3W6Hw+FAr9dDs9mE0+nUgvTh7HZVVUdC8t1mpA/DdCIiIiIiIiIiIiIiIiL66GJg/pxQVVWb9T0MhHu9HjKZDBqNBgRBwJUrV2A27/2TEEXxQIH57dWstt3tSfjG//MD/OmPbuNffOZnEAqFjuRankYQBC1ID4fDI59rt9uo1WooFApYX19Hs9mELMuw2WwjFelOpxNms/mpQXqn04HVatWq1xmkExEREREREREREREREX20MDD/mNstKO92u1hbW8P29jZm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\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"%matplotlib inline\n",
|
||
"\n",
|
||
"import numpy as np\n",
|
||
"import numpy.linalg as la\n",
|
||
"\n",
|
||
"import scipy.optimize as sopt\n",
|
||
"\n",
|
||
"import matplotlib.pyplot as pt\n",
|
||
"from mpl_toolkits.mplot3d import axes3d\n",
|
||
"\n",
|
||
"def f(x):\n",
|
||
" return 0.5*x[0]**2 + 2.5*x[1]**2\n",
|
||
"\n",
|
||
"def df(x):\n",
|
||
" return np.array([x[0], 5*x[1]])\n",
|
||
"\n",
|
||
"fig = pt.figure()\n",
|
||
"ax = fig.gca(projection=\"3d\")\n",
|
||
"\n",
|
||
"xmesh, ymesh = np.mgrid[-2:2:50j,-2:2:50j]\n",
|
||
"fmesh = f(np.array([xmesh, ymesh]))\n",
|
||
"ax.plot_surface(xmesh, ymesh, fmesh)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"And then as countor plot"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"pt.axis(\"equal\")\n",
|
||
"pt.contour(xmesh, ymesh, fmesh)\n",
|
||
"guesses = [np.array([2, 2./5])]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Find guesses"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"x = guesses[-1]\n",
|
||
"s = -df(x)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Run it!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[ 1.33333333 -0.26666667]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"def f1d(alpha):\n",
|
||
" return f(x + alpha*s)\n",
|
||
"\n",
|
||
"alpha_opt = sopt.golden(f1d)\n",
|
||
"next_guess = x + alpha_opt * s\n",
|
||
"guesses.append(next_guess)\n",
|
||
"print(next_guess)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"What happened?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[<matplotlib.lines.Line2D at 0x1019481208>]"
|
||
]
|
||
},
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"pt.axis(\"equal\")\n",
|
||
"pt.contour(xmesh, ymesh, fmesh, 50)\n",
|
||
"it_array = np.array(guesses)\n",
|
||
"pt.plot(it_array.T[0], it_array.T[1], \"x-\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Conjugate gradient method\n",
|
||
"In the CG method we define so-called conjugate directions and two vectors \n",
|
||
"$\\hat{s}$ and $\\hat{t}$\n",
|
||
"are said to be\n",
|
||
"conjugate if"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{s}^T\\hat{A}\\hat{t}= 0.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"The philosophy of the CG method is to perform searches in various conjugate directions\n",
|
||
"of our vectors $\\hat{x}_i$ obeying the above criterion, namely"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{x}_i^T\\hat{A}\\hat{x}_j= 0.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Two vectors are conjugate if they are orthogonal with respect to \n",
|
||
"this inner product. Being conjugate is a symmetric relation: if $\\hat{s}$ is conjugate to $\\hat{t}$, then $\\hat{t}$ is conjugate to $\\hat{s}$.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"## Conjugate gradient method\n",
|
||
"An example is given by the eigenvectors of the matrix"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{v}_i^T\\hat{A}\\hat{v}_j= \\lambda\\hat{v}_i^T\\hat{v}_j,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"which is zero unless $i=j$.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"## Conjugate gradient method\n",
|
||
"Assume now that we have a symmetric positive-definite matrix $\\hat{A}$ of size\n",
|
||
"$n\\times n$. At each iteration $i+1$ we obtain the conjugate direction of a vector"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{x}_{i+1}=\\hat{x}_{i}+\\alpha_i\\hat{p}_{i}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We assume that $\\hat{p}_{i}$ is a sequence of $n$ mutually conjugate directions. \n",
|
||
"Then the $\\hat{p}_{i}$ form a basis of $R^n$ and we can expand the solution \n",
|
||
"$ \\hat{A}\\hat{x} = \\hat{b}$ in this basis, namely"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{x} = \\sum^{n}_{i=1} \\alpha_i \\hat{p}_i.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Conjugate gradient method\n",
|
||
"The coefficients are given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbf{A}\\mathbf{x} = \\sum^{n}_{i=1} \\alpha_i \\mathbf{A} \\mathbf{p}_i = \\mathbf{b}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Multiplying with $\\hat{p}_k^T$ from the left gives"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{p}_k^T \\hat{A}\\hat{x} = \\sum^{n}_{i=1} \\alpha_i\\hat{p}_k^T \\hat{A}\\hat{p}_i= \\hat{p}_k^T \\hat{b},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"and we can define the coefficients $\\alpha_k$ as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\alpha_k = \\frac{\\hat{p}_k^T \\hat{b}}{\\hat{p}_k^T \\hat{A} \\hat{p}_k}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Conjugate gradient method and iterations\n",
|
||
"\n",
|
||
"If we choose the conjugate vectors $\\hat{p}_k$ carefully, \n",
|
||
"then we may not need all of them to obtain a good approximation to the solution \n",
|
||
"$\\hat{x}$. \n",
|
||
"We want to regard the conjugate gradient method as an iterative method. \n",
|
||
"This will us to solve systems where $n$ is so large that the direct \n",
|
||
"method would take too much time.\n",
|
||
"\n",
|
||
"We denote the initial guess for $\\hat{x}$ as $\\hat{x}_0$. \n",
|
||
"We can assume without loss of generality that"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{x}_0=0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"or consider the system"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{A}\\hat{z} = \\hat{b}-\\hat{A}\\hat{x}_0,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"instead.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"## Conjugate gradient method\n",
|
||
"One can show that the solution $\\hat{x}$ is also the unique minimizer of the quadratic form"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"f(\\hat{x}) = \\frac{1}{2}\\hat{x}^T\\hat{A}\\hat{x} - \\hat{x}^T \\hat{x} , \\quad \\hat{x}\\in\\mathbf{R}^n.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"This suggests taking the first basis vector $\\hat{p}_1$ \n",
|
||
"to be the gradient of $f$ at $\\hat{x}=\\hat{x}_0$, \n",
|
||
"which equals"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{A}\\hat{x}_0-\\hat{b},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"and \n",
|
||
"$\\hat{x}_0=0$ it is equal $-\\hat{b}$.\n",
|
||
"The other vectors in the basis will be conjugate to the gradient, \n",
|
||
"hence the name conjugate gradient method.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"## Conjugate gradient method\n",
|
||
"Let $\\hat{r}_k$ be the residual at the $k$-th step:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{r}_k=\\hat{b}-\\hat{A}\\hat{x}_k.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Note that $\\hat{r}_k$ is the negative gradient of $f$ at \n",
|
||
"$\\hat{x}=\\hat{x}_k$, \n",
|
||
"so the gradient descent method would be to move in the direction $\\hat{r}_k$. \n",
|
||
"Here, we insist that the directions $\\hat{p}_k$ are conjugate to each other, \n",
|
||
"so we take the direction closest to the gradient $\\hat{r}_k$ \n",
|
||
"under the conjugacy constraint. \n",
|
||
"This gives the following expression"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{p}_{k+1}=\\hat{r}_k-\\frac{\\hat{p}_k^T \\hat{A}\\hat{r}_k}{\\hat{p}_k^T\\hat{A}\\hat{p}_k} \\hat{p}_k.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Conjugate gradient method\n",
|
||
"We can also compute the residual iteratively as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{r}_{k+1}=\\hat{b}-\\hat{A}\\hat{x}_{k+1},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"which equals"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{b}-\\hat{A}(\\hat{x}_k+\\alpha_k\\hat{p}_k),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"or"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"(\\hat{b}-\\hat{A}\\hat{x}_k)-\\alpha_k\\hat{A}\\hat{p}_k,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"which gives"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{r}_{k+1}=\\hat{r}_k-\\hat{A}\\hat{p}_{k},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Simple implementation of the Conjugate gradient algorithm"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
" Vector ConjugateGradient(Matrix A, Vector b, Vector x0){\n",
|
||
" int dim = x0.Dimension();\n",
|
||
" const double tolerance = 1.0e-14;\n",
|
||
" Vector x(dim),r(dim),v(dim),z(dim);\n",
|
||
" double c,t,d;\n",
|
||
" \n",
|
||
" x = x0;\n",
|
||
" r = b - A*x;\n",
|
||
" v = r;\n",
|
||
" c = dot(r,r);\n",
|
||
" int i = 0; IterMax = dim;\n",
|
||
" while(i <= IterMax){\n",
|
||
" z = A*v;\n",
|
||
" t = c/dot(v,z);\n",
|
||
" x = x + t*v;\n",
|
||
" r = r - t*z;\n",
|
||
" d = dot(r,r);\n",
|
||
" if(sqrt(d) < tolerance)\n",
|
||
" break;\n",
|
||
" v = r + (d/c)*v;\n",
|
||
" c = d; i++;\n",
|
||
" }\n",
|
||
" return x;\n",
|
||
" } \n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Broyden–Fletcher–Goldfarb–Shanno algorithm\n",
|
||
"The optimization problem is to minimize $f(\\mathbf {x} )$ where $\\mathbf {x}$ is a vector in $R^{n}$, and $f$ is a differentiable scalar function. There are no constraints on the values that $\\mathbf {x}$ can take.\n",
|
||
"\n",
|
||
"The algorithm begins at an initial estimate for the optimal value $\\mathbf {x}_{0}$ and proceeds iteratively to get a better estimate at each stage.\n",
|
||
"\n",
|
||
"The search direction $p_k$ at stage $k$ is given by the solution of the analogue of the Newton equation"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"B_{k}\\mathbf {p} _{k}=-\\nabla f(\\mathbf {x}_{k}),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where $B_{k}$ is an approximation to the Hessian matrix, which is\n",
|
||
"updated iteratively at each stage, and $\\nabla f(\\mathbf {x} _{k})$\n",
|
||
"is the gradient of the function\n",
|
||
"evaluated at $x_k$. \n",
|
||
"A line search in the direction $p_k$ is then used to\n",
|
||
"find the next point $x_{k+1}$ by minimising"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"f(\\mathbf {x}_{k}+\\alpha \\mathbf {p}_{k}),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"over the scalar $\\alpha > 0$.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"<!-- !split -->\n",
|
||
"## Revisiting our first homework\n",
|
||
"\n",
|
||
"We will use linear regression as a case study for the gradient descent\n",
|
||
"methods. Linear regression is a great test case for the gradient\n",
|
||
"descent methods discussed in the lectures since it has several\n",
|
||
"desirable properties such as:\n",
|
||
"\n",
|
||
"1. An analytical solution (recall homework set 1).\n",
|
||
"\n",
|
||
"2. The gradient can be computed analytically.\n",
|
||
"\n",
|
||
"3. The cost function is convex which guarantees that gradient descent converges for small enough learning rates\n",
|
||
"\n",
|
||
"We revisit the example from homework set 1 where we had"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"y_i = 5x_i^2 + 0.1\\xi_i, \\ i=1,\\cdots,100\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"with $x_i \\in [0,1] $ chosen randomly with a uniform distribution. Additionally $\\xi_i$ represents stochastic noise chosen according to a normal distribution $\\cal {N}(0,1)$. \n",
|
||
"The linear regression model is given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"h_\\beta(x) = \\hat{y} = \\beta_0 + \\beta_1 x,\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"such that"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{y}_i = \\beta_0 + \\beta_1 x_i.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- !split -->\n",
|
||
"## Gradient descent example\n",
|
||
"\n",
|
||
"Let $\\mathbf{y} = (y_1,\\cdots,y_n)^T$, $\\mathbf{\\hat{y}} = (\\hat{y}_1,\\cdots,\\hat{y}_n)^T$ and $\\beta = (\\beta_0, \\beta_1)^T$\n",
|
||
"\n",
|
||
"It is convenient to write $\\mathbf{\\hat{y}} = X\\beta$ where $X \\in \\mathbb{R}^{100 \\times 2} $ is the design matrix given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"X \\equiv \\begin{bmatrix}\n",
|
||
"1 & x_1 \\\\\n",
|
||
"\\vdots & \\vdots \\\\\n",
|
||
"1 & x_{100} & \\\\\n",
|
||
"\\end{bmatrix}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"The loss function is given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\beta) = ||X\\beta-\\mathbf{y}||^2 = ||X\\beta||^2 - 2 \\mathbf{y}^T X\\beta + ||\\mathbf{y}||^2 = \\sum_{i=1}^{100} (\\beta_0 + \\beta_1 x_i)^2 - 2 y_i (\\beta_0 + \\beta_1 x_i) + y_i^2\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"and we want to find $\\beta$ such that $C(\\beta)$ is minimized.\n",
|
||
"\n",
|
||
"## The derivative of the cost/loss function\n",
|
||
"\n",
|
||
"Computing $\\partial C(\\beta) / \\partial \\beta_0$ and $\\partial C(\\beta) / \\partial \\beta_1$ we can show that the gradient can be written as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\nabla_{\\beta} C(\\beta) = (\\partial C(\\beta) / \\partial \\beta_0, \\partial C(\\beta) / \\partial \\beta_1)^T = 2\\begin{bmatrix} \\sum_{i=1}^{100} \\left(\\beta_0+\\beta_1x_i-y_i\\right) \\\\\n",
|
||
"\\sum_{i=1}^{100}\\left( x_i (\\beta_0+\\beta_1x_i)-y_ix_i\\right) \\\\\n",
|
||
"\\end{bmatrix} = 2X^T(X\\beta - \\mathbf{y}),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where $X$ is the design matrix defined above.\n",
|
||
"\n",
|
||
"## The Hessian matrix\n",
|
||
"The Hessian matrix of $C(\\beta)$ is given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{H} \\equiv \\begin{bmatrix}\n",
|
||
"\\frac{\\partial^2 C(\\beta)}{\\partial \\beta_0^2} & \\frac{\\partial^2 C(\\beta)}{\\partial \\beta_0 \\partial \\beta_1} \\\\\n",
|
||
"\\frac{\\partial^2 C(\\beta)}{\\partial \\beta_0 \\partial \\beta_1} & \\frac{\\partial^2 C(\\beta)}{\\partial \\beta_1^2} & \\\\\n",
|
||
"\\end{bmatrix} = 2X^T X.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"This result implies that $C(\\beta)$ is a convex function since the matrix $X^T X$ always is positive semi-definite.\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"## Simple program\n",
|
||
"\n",
|
||
"We can now write a program that minimizes $C(\\beta)$ using the gradient descent method with a constant learning rate $\\gamma$ according to"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\beta_{k+1} = \\beta_k - \\gamma \\nabla_\\beta C(\\beta_k), \\ k=0,1,\\cdots\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We can use the expression we computed for the gradient and let use a\n",
|
||
"$\\beta_0$ be chosen randomly and let $\\gamma = 0.001$. Stop iterating\n",
|
||
"when $||\\nabla_\\beta C(\\beta_k) || \\leq \\epsilon = 10^{-8}$. \n",
|
||
"\n",
|
||
"And finally we can compare our solution for $\\beta$ with the analytic result given by \n",
|
||
"$\\beta= (X^TX)^{-1} X^T \\mathbf{y}$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[-0.75904665 4.9806982 ]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"\n",
|
||
"\"\"\"\n",
|
||
"The following setup is just a suggestion, feel free to write it the way you like.\n",
|
||
"\"\"\"\n",
|
||
"\n",
|
||
"#Setup problem described in the exercise\n",
|
||
"N = 100 #Nr of datapoints\n",
|
||
"M = 2 #Nr of features\n",
|
||
"x = np.random.rand(N) #Uniformly generated x-values in [0,1]\n",
|
||
"y = 5*x**2 + 0.1*np.random.randn(N)\n",
|
||
"X = np.c_[np.ones(N),x] #Construct design matrix\n",
|
||
"\n",
|
||
"#Compute beta according to normal equations to compare with GD solution\n",
|
||
"Xt_X_inv = np.linalg.inv(np.dot(X.T,X))\n",
|
||
"Xt_y = np.dot(X.transpose(),y)\n",
|
||
"beta_NE = np.dot(Xt_X_inv,Xt_y)\n",
|
||
"print(beta_NE)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Gradient Descent Example\n",
|
||
"\n",
|
||
"Another simple example is here"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[3.95118824]\n",
|
||
" [2.85739265]]\n",
|
||
"[[3.95118824]\n",
|
||
" [2.85739265]]\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEWCAYAAAB1xKBvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3Xl8HXW9//HXJ2nTNm2hK6VQkgKWVkCWEmQ3VfSCiIDrhRuRVX6gV+9VXKmibO646/WyI60ogqIiXkFN0kI3U6BQaMvSNm1p6b6nW5LP74+ZlNP0nJM5OXO25P18PM6j58zMmfnM5HQ+M9/vd75fc3dERES6UlboAEREpDQoYYiISCRKGCIiEokShoiIRKKEISIikShhiIhIJEoYkndmttTM3h2+v8HM7ipQHJPMbEUhtt1bmNl9ZnZroeOQeChhyD7M7GIzm21m281sTfj+k2Zmudieu3/T3a/Odj1mNtbM3Mz6xBFXoelEK8VICUP2MrPrgR8D3wMOBkYB1wJnABUpvlOetwBFpKCUMAQAMzsQuBn4pLs/7O5bPfCsu9e5+65wufvM7H/M7HEz2w6808zeZ2bPmtkWM1tuZt/otO5LzazZzNab2eRO875hZlMSPp9qZjPMbJOZzTOzSQnzGszsFjN72sy2mtkTZjYinD0t/HeTmW0zs9OS7OOAMP6NZvYScHKn+YeY2SNmttbMlpjZZxLmvd3MmsJ9XG1mP0iYd2ZCzMvN7PJwej8z+76ZLQu/80szGxDOm2RmK8zs+vBObpWZXRHOuwaoA74Y7sufU/zNJpjZk2a2wcwWmdlHw+kVZvacmX06/FweHrMbE/ZlZhjvKjP7mZlVJKzXw7vKV8LjfIuZHRl+Z4uZPdSxfMJ+3GBm68Lixrpk8YbLnx/Gtik8ZselWlaKkLvrpRfAuUAr0KeL5e4DNhPcdZQB/YFJwNvCz8cBq4GLwuWPBrYB7wD6AT8It/PucP43gCnh+0OB9cB54breE34eGc5vAF4DjgIGhJ+/Hc4bC3i6+IFvA9OBYcBhwHxgRTivDJgL3EhwN3UEsBg4J5w/E7g0fD8IODV8XwVsBS4B+gLDgRPCeT8C/hRubzDwZ+Bb4bxJ4XG4OfzeeUALMDThON+aZl8GAsuBK4A+wERgHXBMOP9YYCPwVmAyMAsoD+edBJwafm8ssAD474R1exj3AcAxwC7gH+ExORB4Cbis0378IPz71gLbgfGd9yOMcQ1wClAOXAYsBfoV+vevV7SX7jCkwwhgnbu3dkxIuGreYWbvSFj2j+7+tLu3u/tOd29w9xfCz88DDxKcOAA+DDzm7tM8uEv5GtCeIoaPAY+7++Phup4EmghOph3udfeX3X0H8BBwQgb7+FHgNnff4O7LgZ8kzDuZIDHd7O673X0xcCdwcTh/D/AWMxvh7tvcfVY4vQ74u7s/6O573H29uz8X1vl8AvhsuL2twDcT1texzpvD7z1OkFjHR9yX84Gl7n6vu7e6+zPAIwTHG3efD9wK/AH4PEGyawvnzXX3WeH3lgL/y5t/rw7fcfct7v4iQWJ9wt0Xu/tm4K/AiZ2W/5q773L3RuAv4bHu7BPA/7r7bHdvc/f7CZLRqRH3WQpMCUM6rAdGJFYau/vp7j4knJf4W1me+EUzO8XM6sOinM0E9R4dRUWHJC7v7tvD9SVTDXwkTFKbzGwTcCYwOmGZNxLetxBc7Ue1TyxAc6dtH9Jp2zcQ1OMAXEVwZ7PQzP5lZueH0w8juOvpbCRQCcxNWN//hdM7rE9M0BnuTzVwSqd46wjqnjrcT3AH8bi7v9Ix0cyOMrPHzOwNM9tCkMhGsK/VCe93JPmcGOfG8O/aoZngWCeL+fpOMR+WYlkpQkoY0mEmwdXehRGW7dzF8a8JijAOc/cDgV8CHa2qVhGcFAAws0qCYptklgMPuPuQhNdAd/92N2JKZp9YCIqTEre9pNO2B7v7eQDu/oq7XwIcBHwHeNjMOoqFjkyyrXUEJ9ZjEtZ3oLtHTQhd7c9yoLFTvIPc/bqEZX4BPAacY2ZnJkz/H2AhMM7dDyBIjNm0ghsaHosOVcDKFDHf1inmSnd/MIttSx4pYQgA7r4JuAn4hZl92MwGmVmZmZ1AUF6ezmBgg7vvNLO3A/+RMO9h4PywYriCoMw+1e9uCvB+MzsnrKjtH1aqjomwC2sJirqOSLPMQ8BXzGxouM5PJ8ybA2wxsy+FlePlZnasmZ0MYGYfM7OR7t4ObAq/0wZMBd5tZh81sz5mNtzMTgiXuxP4oZkdFK7jUDM7J8K+QHBFn25fHgOOsqBBQd/wdbKZvTXc1qUEdRWXA58B7jezjmQ1GNgCbDOzCcB1+68+YzeFle1nERSX/S7JMncC14Z3pGZmAy1oMDE4hu1LHihhyF7u/l3gc8AXCSonVxOUb38JmJHmq58EbjazrQSVxg8lrPNF4FMEdyGrCCpikz4sF9YrXEhwxbuW4Ir0C0T4nbp7C3Ab8HRY3JGsXPwmguKSJcATwAMJ328D3k9QJ7KE4A7hLoJKXggaBbxoZtsImh5fHNbfLCOoY7ke2AA8BxwffudLwKvArLDo5+9Er6O4Gzg63JdHk+zvVuDfCOpEVhIU1X0H6GdmVQQV7h8P61t+TVAX9MPw658nSOpbCU7iv40YUypvEPxdVxIk0GvdfWGSmJsI6jF+Fi7/KkFCkxJh7hpASUS6x4Jmz1PcPcpdoJQ43WGIiEgkShgiIhKJiqRERCQS3WGIiEgkJdWz54gRI3zs2LGFDkNEpKTMnTt3nbuP7HrJ9EoqYYwdO5ampqZChyEiUlLMrLnrpbqmIikREYlECUNERCJRwhARkUiUMEREJBIlDBERiUQJQ0REIlHCEBGRSJQwREQkEiUMERGJRAlDREQiyXnCMLN7zGyNmc1PMu/zZuZm1nkAehERKTL5uMO4j2B4y32Y2WHAe4BleYhBRESylPOE4e7TCMY67uyHBGNHa0AOEZESUJA6DDO7AHjd3edFWPYaM2sys6a1a9fmIToREUkm7wnDzCqBycCNUZZ39zvcvcbda0aOzLo7dxER6aZC3GEcCRwOzDOzpcAY4BkzO7gAsYiISER5H0DJ3V8ADur4HCaNGndfl+9YREQkunw0q30QmAmMN7MVZnZVrrcpIiLxy/kdhrtf0sX8sbmOQUREsqcnvUVEJBIlDBERiUQJQ0REIlHCEBGRSJQwREQkEiUMERGJRAlDREQiUcIQEZFIlDBERCQSJQwREYlECUNERCJRwhARkUiUMEREJBIlDBERiUQJQ0REIlHCEBGRSJQwREQkEiUMERGJRAlDREQiUcIQEZFIcp4wzOweM1tjZvMTpn3PzBaa2fNm9gczG5LrOEREJDv5uMO4Dzi307QngWPd/TjgZeAreYhDRESykPOE4e7TgA2dpj3h7q3hx1nAmFzHISIi2SmGOowrgb+mmmlm15hZk5k1rV27No9hiYhIooImDDObDLQCU1Mt4+53uHuNu9eMHDkyf8GJiMg++hRqw2Z2GXA+cLa7e6HiEBGRaAqSMMzsXOBLQK27txQiBhERyUw+mtU+CMwExpvZCjO7CvgZMBh40syeM7Nf5joOERHJTs7vMNz9kiST7871dkVEJF7F0EpKRESimjoVxo6FsrLg36kp2wzFrmCV3iIikqGpU+Gaa6AlrPptbg4+A9TV5XzzusMQESkVkye/mSw6tLQE0/NACUNEpFQsW5bZ9JgpYYiIlIqqqsymx0wJQ0SkVNx2G1RW7jutsjKYngdKGCIipaKuDu64A6qrwSz494478lLhDWolJSJSWurq8pYgOtMdhoiIRKKEISIikShhiIhIJEoYIiISiRKGiIhEooQhIiKRKGGIiPQkOezNVs9hiIj0FCl6sx0Bw+JYve4wRERKSbo7iBS92R4Ch8axad1hiIiUiq7Gw0jRa21fqIhj87rDEBEpFV2Nh5Gi19o9sDuOzSthiEjPVsAhTWPX1XgYKXqzXQmvx7H5nCcMM7vHzNaY2fyEacPM7EkzeyX8d2iu4xCRXqijCKe5GdzfLMIp1aTR1XgYKXqzXQcb4th8Pu4w7gPO7TTty8A/3H0c8I/ws4hIvFIV4Vx2WWkmjSjjYdTVwdKl0N4e/Btjz7Y5TxjuPo39s9uFwP3h+/uBi3Idh4j0QqmKcNraSvNOI+p4GJ2K4eJqVmvuHsd60m/EbCzwmLsfG37e5O5DEuZvdPekxVJmdg1wDUBVVdVJzc3NOY9XRHqIsWODYqhUqquDq/CepHNLKuAkaJ/rXp7tqou+0tvd73D3GnevGTlyZKHDEZF8yrbCOlkRTqJUdyC5ko8K+CTFcBbTub5Qz2GsNrPR7r7KzEYDawoUh4gUq66eOYiiY7mPfzwo0+9sWCwlNdHEsT9R5DAJFuoO40/AZeH7y4A/FigOESlWXT1zEFVdHQwtgoaYce1PV1K1pIpBPprVPgjMBMab2Qozuwr4NvAeM3sFeE/4WUTkTV09c5CJDSlalaaangtx7k8aLdd/lda+/feZ5pDk9ipzOS+ScvdLUsw6O9fbFpESVlWVvMK6O1fQca6ru3IUw6bmzUy/axGNf22hYcFBPNtyBf/OAL7FDRzGcjb3O4hlu1bH0lqo6Cu9RaSXivLMQSHW1V0xxbDhtY388YbZfHZiIxMrFzBs7GAuuPXt/HTuaQzsu5vJZ01n8iVLOWyMU2Yw9OD+Xa80KncvmddJJ53kItKLTJniXl3tbhb8O2VKcawrrhiuu67LmNYuXOePfGGmf/q4Bj+u/0I32hzc+9Pi7xzyjH9jUr3X//BZb1nf8uY2Kivdg2fb3cEnQpvHcA7Oy3MYcampqfGmpqZChyEikr0kz0tQWcnmG2/nidXH0/j33TS8fAgv7hoHwABaOH3oQmpP3MKkDwzl7R+fQL8D+u2/3iTPntQATe6WbchKGCIihZDiocKlVHM4S6lkO2cOX0DtxG1M+tBwaurGUzEoQi/lZWXBfUWCuBKGxsMQEcmj15tW0XjvYi5pXkayM3g1y5h553xO+o/x9K2syXwDqSrXY6BKbxGRuCU80d06egzTz76Rq8dPZ1zFUsacPJq6X5zBcsYk/apVV3Hq1cfSt7Jv97Z93nlBP1MJ4mpWq4QhIhKjtTf+lNbLrtrbpXqfN15n4j9vh5cXcvTw1dx+QQNNDyxgzH05aLk1dSrcf/++RVJmbID13V/pm1QkJSJvmjo1ePJ42bKgaOO22+LttqKH8XZnybTlNNzfTOM0o6F5LI1ttzOSXfssN5AW7qy6FdunqOit0Kcs3uOd7Glydw6AA7u/0jep0ltEAila7STtPruX8nbn1X800/DAMhqnl9O4/HBWtB0CwAhbR+0hr/C718/ASHJeNUven1Uq3UneSSq8Ib5KbxVJiUggX30dlRBvdxY+vpj/rZvGJdUzOLTvao76t7Fc88A7eLL5KE4b3czP/72R+Y++yprW4Ty84jSsOs2oeFF7q+3uSIE5HtNbdxgiEkhxdZrxlXEJ83ZnwWOv0fDr12mc0ZfG19/C6vaDABhd9ga1YxYz6cxWauvGMP7cw7GyJBftqe7ULrssqF+IcgeXahyPrsbvSLHtkS0tS9a6H9HlAehKHE//5eulJ71Fcqi6ep+ng/e+qqvj20aqp60L9BR22542f/7hRf7TDzf4hw6d4SNtzd7dPrRspdeNfcrvuLTRX35iibe3tUdfcbL9GT48+vE1S76sWbe2DTR5DOfggieBTF5KGNJrFOIEmqRLCa+sjG/bqdZ/3XW53W6Ctj1t/uxvFvqPPtDgHxg904fbur2brCpf7pceMd3vvnyav/qPpZkliETJ/nZTpiRPAKmSQMzJWwlDpKfK9Ym7q23nKlGlOgmWl8d6ckzUuqvV5055yW+/oN4vOHiWD7UNe1d/eJ9mv/wt0/zeq6b7kunLs96Wu6f+26W6u0i1nzH/BpQwRIpBLk6w+SgaKoRUxSyZXHl3Yc+OPT7nvhf9e++r9/cdNNsPZNPe1R3ZZ6lfddQ0/9X/m+7NM1bkYAc99d8u3SvVbybG31ZcCUOV3iLdlatmqD218jlVRW55ObS17T+9qwpeYE/LHub+ehGNj6yjce5Anlo7nq0cAMBRfZdQe+RyJr2rnNorjuDQmtHZ70NXUv3tUhk+HNaty108ITOb6+7d6GdkX3pwT6S70jVDzSZhFMNgP7lw222ZtR5K8sTz7m27aZq6iIZH1tP4zCCeXj+B7RwLwFsrXqPu6OeoPbsPtVceyegTDgcOz/FOdZLqbzd8OOzYsf8+/vjH+YstDnHcpuTrpSIpKSrZtGRJp5B1GLmWYSupnZt3+rSfPue3nF3v7x7W5APYvveQHNPvZf/U2xr8oc/O8DdeWFOgHeok3d+ugONxoDoMkQLLZV1DMQz20x1Zxr1j4w5v+NGz/o1J9f7OIc94f1r2Htbj+i/0Tx/X4I98YaaveWltTsLPWufms8OHF8XfLq6EoSIpke5KVsRiFhRJjB2bXb9AdXWl0R1HYvcVw4bBli2wZ08wr+PpZEi5Ly3rWph1/yIa/7SZhnlDmL15Ars4AaOd4we8zLUnzqH2nP6cdeU4ho8bD4zPz351R7I6rR07ChdPDhS00tvMPgtcDTjwAnCFu+9MtbwqvaXodJwwm5uDZJH4/6mn98OU7ASZTELl9fY125lxz0IaH9tK4wtDmb3lreyhgjLaOLFyEbVvXcOk91Zy5pVHMfTwIbnfhzh19+nsPIir0rtgCcPMDgWeAo529x1m9hDwuLvfl+o7ShhStIr4ZJEzqfa5E8e44dR/0jh/OP/aNoFW+lJOKycNXEjt0euoPW8gZ155FAdWxdKhauEUceu2ntJKqg8wwMz2AJXAygLHI9I9y5ZlNr0niLhvzVTx/VlncEO/2/lLxXsYsnsNfugYyr7zrZ5199VTW7clKFhvte7+OvB9YBmwCtjs7k90Xs7MrjGzJjNrWrt2bb7DFIkm1UmhB50s9hNh33aX9WPrR69m688f4KbyWxi6ezWGU/b68mi9r5aS23IwIFKRKVjCMLOhwIUEDaUPAQaa2cc6L+fud7h7jbvXjBw5Mt9hikSTy5NF1C6x87D+Da9t5I83zOazExu5YeWn2E5lymUpL6fiV3fztt9+lf7fvbnnd51eVxfUWVVXB8VQ1dU9rw4rjqZW3XkBHwHuTvj8ceAX6b6jZrVS1HLRFLZQHQKG61+7cJ0/8oWZ/pnjG/y4/gvdaHNw78cOnzTkGX/4rZN9V+UQb+/ctLhzjLl6ZkUiodSfwwBOAV4kqLsw4H7g0+m+o4QhvU6u+5VKsf51fUf5sf1e3jtpANv97KFz/eZ31fu0nz7nOzfv3Hc9XSXLVPsxfHh8SbZUn13Jg7gSRqGb1d4E/DvQCjwLXO3uu1Itr1ZS0uvkuOWNl5VhSdbfjvHe4XOonbiN2g8M4+RLJ1AxqKL7G0rWBLeiIti3juc2oPtNkTW8bFpxtZIq2B1Gd166w5BeJ+Y7jBX/WulTP/mUXzOh0cdXvOZLSL7+9vLyfa/Q47h677yOTAYU6kop9PDbG7oGAf4OHB/HxrJ9KWFIr5NlHcayWa/7A9c+5VcdNc3f0nfJ3lUcwCZ/30Gz/U/HT/bWiv7JT7Z9+77ZB1Iu6lHirNco9jqSAvcPls+EMRH4J3AvMDqOjXb3pYQhvVIGV6ZLpi/3+66e7leMm+aH92nee24aYhv9/aNm+e0X1HvTAy95667Wfdef6oTbUceQi6v3ONdb7HcYBY4vbwlj74LwIWAe8HVgQBwbz/SlhCE5UaKVpe1t7f5afbPfffk0//gR0726fPne89AwW+8XjZ7pP7yowZ/9zcJ9E0QyyU5miVfpubh6j/Oqu9h7+C3wHVBeEwZBK6ZjgWuBdcAK4NI4AsjkpYQhsUt2ounbN7iyziSB5DrpTJni7VVV3m7mWwaO8p+NuNHHlL++N+QRttY/dOgM/8mHGnze7xZ52562zNafLmGUSq+8xZz4e8sdBkF/TyuBJ4FbgPOBtwA/Be6II4ioLyUMiV2UITW7ulLN0dVte1u7L3z8NX/ytK/6Tuu3z/q3M8B/NPTr/vN/b/D5j76SeYLoLFUFdEf33MV89V4KelEdxrGEnRQmmbcgjiCivpQwJHZRx5lOdyUY09Vje1u7v/jHV/wXFzf6Rw972keVrXbwlC2ZYr06nTLFvaJi3/VXVHQ5wJFkoAe0ksrqOQwzO8LdF3d7BRnScxgSu4g9rqZ97qGbz0q0t7bz4h9fpfE3q2iYWcG0lW9hrQfd3xxatopJVYupPauNq6dMSvqsROy9oCaObVFVld14HlJUiqK32nwmC5GcSDYIUjLDhu0/reMEm+qiq1PnfO2t7bzw+1do+M0bNM7qx7Q3xrHejwKOoqp8BecevojasxYy6eNVHDGpCisbHXxxWp56QS2VQZukYArdvblIYXWcIDsGQYrqk5+EX/4ydbKorKT9plt4buoCGn+3mobZA5i++ig2ejBq3Ng+y3n/kS9RW2tMunwsY88cA4wJktCVl+57lZ8sqfWwXlClRMRRrpWvl+owJKfSVYAnNn9M89xCO/imAaP8e4Nv8gPZtHfWkX2W+pXjpvmv/t90b56xIvn201WMdpR/g3t5+Zt1GMXQgkuKHsVQh5FvqsOQnEpVFwH7jpyXpt6jHaOcdo7qu4TaI5dT+85yaq84gjEnj+56+12N2ted/pLUx5LQA4Zo7Q4lDMmpVCdsM3jgAXZf+BGapi7itGuPx0j+/2b74FFsmTaP0SeMynz7XVWed2cY2N44dKzsJ66EUbABlKSHyvVgP7mUZBAkB/41+gLe85kJDB28hzOufRvNpKhsNmPg/9zevWQBXY/a151hYHvj0LGSM0oYEp+O4o/m5uBKubk5+TCcmSaVPCWhne/7EC99cDKb+o2iHaOZw6hjCm9f+SgTtzSwvO+RtFNG1YFbgq65E5nBtddmV8zT1ah93RkGtjcOHSu5E0dFSL5eqvQuclEeYMv0idccPiHbsr7F//H9Z/zGd9R77YHPej92BPXbtPkJAxb4f53Q4H/48izf8v3/jaf7kCjSVVB351joKW3x+Cq9C54EMnkpYRS5KB2sZfpUdIx98Gxbvc2f/M5cn3xGvZ95wHNewU4H9zJa/aTKF/1zJ9X7H2+Y5RsWb4weQ75bIHVne2ol1evFlTBU6S3Z63iALdVzDIkVrJk+FZ3FiHPb3tjG03cvpPEv22h4YTj/2jaBVvpSTisTBy5i0tFrqT1vIGdeeRQHVh2YekXpWk9VVqoFkhQ9VXr3NKVaWZxYb5FM5wfMMi1Tz2D6lhVbePymf/GlUxo4ddB8hozuz7lfreF7M8/AgetPeZq/3tLExtd3MGfbMXx3ziTe942T0yeLdDGUl+//hHhLS5A8S0Gp/uakcOK4TcnXq8cWSU2ZEpSJdy4jL4Wig3QPuyUr/oixDmPj0k3+56/N9utPqveayhe9jNbg0LHLzxg8z284vd7/9s0m37pqa3b7mCqGKA/5FSvVbfQqqA6jB0nXtXSx687AMJmWqYfLt5v59gMO9geqJ/uJA15yo80vYYovpcrbMN/Yb5S/cPGtvn3t9jj3MHXMxT7KWzqlHLtkLK6EUdA6DDMbAtxF0IW6A1e6+8xUy/fYOgyz1PMK+PdJKbFX07IyaGvbf5kYHgxbt2g90+5+hcYndtG46GCe3zkOp4x+7OS0IQv4z4Mf4aLXbqd8z843v5TPOoRSfoo6i7ohKT1x1WEU9I4BuB+4OnxfAQxJt3yPvcNIVbSRSX9B+ZKsKKPzq5tFG6vnr/HffW6Gf+ptDX5sv5f3rm4A2/3soXP95nfVe+NPnvMdG3cEX8j0KjkXrYVKtQWS7jB6FUq9SAo4AFhCisGZkr1yljAK/Z8+VZFU4gn4uuuK48SU6kRTXp5xbKvmrfbffOZpv+6YRj+63ytv7i7b/D3DmvzWd9f7U7+Y57u27kq+gnSDH2Vbd9LT6Xj0Kj0hYZwAzAHuA54lKJoamGS5a4AmoKmqqirmw+jF8R8n2WhnyeoEchFjVw+KRRnCNGJF7+tzV/mv//Npv2ZCo4+veG3vVwexxc8dMce/dU69z7zzBd+9fXe02NPF1vn46Ip6f4W+UJK86QkJowZoBU4JP/8YuCXdd3Jyh5GPE0mU/5iZnJzjirGr7rS7KnrqIpZls173B659yq8e3+hv6btk76IHsMnPGznHv3tevc++Z77v2bEnvvhTxZQu9nzTiVryrCckjIOBpQmfzwL+ku47OUkY3Wnlk4lM72AySRrZxpguWWYSR7g/S59a7vddPd2vGDfNj+izdO/sIbbR3z9qln///HpveuAlb93Vml3ciaZMiXZ8OsaQ6PwqL48vlqjxFvqOVnqdkk8YwT4wHRgfvv8G8L10y5fkHUZ3KmY7n1BSJbVsY0yXLNPVDxAMFNRu5lsHjvJfjPyaV5cv3zt7qG3wi0bP9B9e1ODP/HpBfAki1ZV5lGNcLHcYKhqTAugpCeOEsH7ieeBRYGi65XOSMOK84kt2QovjOYXrrsvNVWkWdxh7KN/7cYSt9Q8eMtN/8qEGn/e7Rd62py27uJLJtPisWOswcn1HK5JEj0gYmb5iTxjZDHuZbF3JTlqpWkBleqLKVZPQFCfa9gemeFu/AUljbwd/vPKD/rOPNPj8R1/JTYLorKsTflfHJ5sLgziPfbEkLulVlDCyFXdZcqoTwfDhxV1mnfAU9a6Rh/gTp37VP3rY035w2Rt+CVN8CdVB8VPHq6zc26+9Lv9xxnFl3t2eXuP8+6kOQwpACSNbcV/ppTuh5aNVTIbbaNvT5i/8/mX/6Ycb/MOHzvCRtmZvyIeWrfT/qH7K77i00Rf932Jvb2uPP95MYy/UlXkutqtWUpJnShjZirssOZsTS7YnkAhXrW172vy53y70H3+wwT8weqYPt3V7Fz2sfIVfesR0v+uyaf7qP5YmTxC5OslFveIu1JW56hykB1DCSCXqiS3uK8funtDiOBGm2Jedw0f7Dy6s9wsPnuVDbcPeWWP7LPPLjpzu91413Rc3Luv6DiJVjHE8fZ7sL7/EAAAPHUlEQVTJ36EQV+aqc5AeoHcmjIqKrh9+i3ryzcUVa3dOaHGckFJcBbdhDu5H9lnqV46b5vd/YrqvufEn8cUYx9PnxX4FrzoH6QF6Z8Lo6j9tMXRGl6luNrttP6zK2zHf1H+Ub+KApOvYOmiUL5+zcp/vdevk18UzGVldeZfCFXwx/E5EsqCEkeykUuxXq8lEPGHu2rrLn/7l8/7osZN9B/33WXYXfX03nZ5kziShdjXuRnefPo/aJYqu4EVySgkjWSIohavVzlKcMHffeZ9P//k8v+Xsen/3sCavZJuD+xKqU5/0uzo5Z9K7a1cxplpXR6+1w4fvP4pguuJBXcGL5IwSRrJEUKpXq1OmeNuYw7w9HDXulgG3en9a9u7C2/ov8k8f1+APf36Gt2dzF5XuTqGrpBrl6fNcFFmJSNaUMEr8arVlfYv/8/Zn/MZ31Hvtgc96P3YE533a/IQBC/y/TmjwP3x5lq97ef2+X8y2+W6UoqSoEo91qs79iqV4sER+FyK5EFfCKOgQrZmq6dfPm/bsgaoquO224h8GM8H2NduZed8iGv+8hYbnhzJnywR2048y2jhhwMtMOno1tecM4KyrxzP08CGpV5TtsKAjRsD69ftPz3ZI1VRDfsa9ne4o5aFURWLQI4ZozfRVSkO0bl211f/v1n/5V06r99MHz/M+7A6K+NnjJw+c75+vqffHvj7Ht//4zu51V9Hdq+VcFdtFqRjPtkuN7u5zKdZticSIXlkkVcQJY/Pyzf74TXP8i2+v91MGvuDl7NmbIE4d9Lx/6ZR6f/ymOb55+eZ9Oz3M1Uh66eSrI8OKiqDyO9vtZJvkSrH1nEiMlDDi0s2T58alm/zPX5vtn6+p95rKF72MVgf3vuzy0wfP8xtOr/e/fbPJt67auv/2uqosLtUr31zVE2R7h6A7DOnllDDikMGV6/pXN/ijX5nln51Y7xMHvORGW3ARzU4/64Dn/Ktn1vvfvzvXt6/dnn6bUYpu4hztrydU9GZ7h1CqredEYhJXwiitSu+aGm9qaopvhWPHQnPz/tOrq1n/5DNMu+tlGv62i8ZFB/P8znE4ZfRjJ6cNWUDt8ZupveBATr18AgOGDYi+zSiVw3FUDPekit40f6fIx2nqVJg8GZYtK8lGEyLZiKvSu3cnjBQn73aMctoBGEALpw1dyKQTt1B70VDeful4+g/p3/1tpjr5dYjrpB7HSbZY9KTkJ1IAcSWMPnEEU4pWz1/LoEEHMXDr6v3mrS0bxa3vamDSB4dx8qUTqBg0Mb4N33bb/ic/syBxVVfHd+W7bFlm04tZx/HQHYJIQZUVOoB8WfnMGzz46Rlce/Q0JvRbzMFvG8kntt5OC/sWJ/mASkb96vtMfnISZ1x3HBWDKrq3walTg6v8srLg36lTg+l1dcGVcXV1kCiqq+GBB4KEsXRpfCfBqqrMphe7urrg+LS3x3ucRCS6OCpC8vXqstI7oZJ3z8GH+vSzb/Srxzf6uL6L99Z1HsAmP2/kHP/Oe+t99j3zvfXeX+V1rOy8KYYYRKQo0FMqvc2sHGgCXnf389Mtm64OY+3Xf8rQb36BPq279k7bSV+2MZhhbGTrgINY//HPUfWjz9Gnf45L4oql/kAVvSJCD6r0NrPPATXAAVEThrc7S6Ytp/FXzTROMxqWjqWh7UzGkqYyGfJXUZqqJZRZUKQiIpJHcSWMgtZhmNkY4H3AXVGWX7d0G5ce8RTVFSs58p1VXHnvWfxl8QROGrWCaiJU5ra0BFfcudbT6g9ERCh8pfePgC8CKS+7zewaM2sys6bm9YP429LxnDp6GT/7SCMv/P4VVu8exiOvn4pVRzwZ56OV0G23BXcziSorg+kiIiWqYAnDzM4H1rj73HTLufsd7l7j7jXHvGUXq1tH8NDy0/jUQ7Uc+4FxlPUJdyHZSTqZfFzlJ2sJddllwd1NYqupVC2pehsdB5HSEEfNeXdewLeAFcBS4A2gBZiS7juZtJLy4cODzu+KoZVQqo75oo5I15OpNZdIztFTWkkBmNkk4POeRSuppIqllVBXT3cnKsUnsbNRLC3KRHowPekdRV1dcTQjzaTepBSfxM5GT3oiXaSHK3SlNwDu3tDV3UVJy6TepLe1pFKLMpGSURQJo8dLViFfUQF9++47rTe2pFKLMpGSoYSRD8laTd1zD9x7777TemPvq8mOTW88DiIloCgqvaOKvXtzEZFeoEc86S0iIqWjdycMPTAmIhJZz25Wm07nUdyam4PPoPJzEZEkeu8dxuTJ+456B/nrnFBEpAT13oShB8ZERDLSexOGHhgTEclIaSeMbCqt9cCYiEhGSjdhdFRaNzcHfZx2VFpHTRp6YExEJCOl++CeejkVEYlED+6p0lpEJK9KN2Go0lpEJK9KN2Go0lpEJK9KN2Go0lpEJK9Ku2uQYhlRT0SkFyjdOwwREckrJQwREYlECUNERCIpWMIws8PMrN7MFpjZi2b2X4WKRUREulbISu9W4Hp3f8bMBgNzzexJd3+pgDGJiEgKBbvDcPdV7v5M+H4rsAA4tFDxiIhIekVRh2FmY4ETgdlJ5l1jZk1m1rR27dp8hyYiIqGCJwwzGwQ8Avy3u2/pPN/d73D3GnevGTlyZP4DFBERoMAJw8z6EiSLqe7++0LGIiIi6RWylZQBdwML3P0HhYpDRESiKeQdxhnApcC7zOy58HVeAeMREZE0Ctas1t2fAqxQ2xcRkcwUvNJbRERKgxKGiIhEooQhIiKRKGGIiEgkShgiIhKJEoaIiESihCEiIpEoYYiISCRKGCIiEokShoiIRKKEISIikShhiIhIJEoYIiISiRKGiIhEooQhIiKRKGGIiEgkShgiIhKJEoaIiESihCEiIpEoYYiISCQFTRhmdq6ZLTKzV83sy4WMRURE0itYwjCzcuDnwHuBo4FLzOzoQsUjIiLpFfIO4+3Aq+6+2N13A78BLixgPCIikkafAm77UGB5wucVwCmdFzKza4Brwo+7zGx+HmLL1ghgXaGDiEBxxqcUYgTFGbdSiXN8HCspZMKwJNN8vwnudwB3AJhZk7vX5DqwbCnOeJVCnKUQIyjOuJVSnHGsp5BFUiuAwxI+jwFWFigWERHpQiETxr+AcWZ2uJlVABcDfypgPCIikkbBiqTcvdXM/hP4G1AO3OPuL3bxtTtyH1ksFGe8SiHOUogRFGfcelWc5r5ftYGIiMh+9KS3iIhEooQhIiKRFE3C6KqbEDPrZ2a/DefPNrOxCfO+Ek5fZGbnFDDGz5nZS2b2vJn9w8yqE+a1mdlz4SunlfsR4rzczNYmxHN1wrzLzOyV8HVZgeP8YUKML5vZpoR5eTmeZnaPma1J9fyPBX4S7sPzZjYxYV4+j2VXcdaF8T1vZjPM7PiEeUvN7IXwWMbS/DKLOCeZ2eaEv+2NCfPy1pVQhDi/kBDj/PD3OCycl5fjaWaHmVm9mS0wsxfN7L+SLBPv79PdC/4iqPR+DTgCqADmAUd3WuaTwC/D9xcDvw3fHx0u3w84PFxPeYFifCdQGb6/riPG8PO2IjqWlwM/S/LdYcDi8N+h4fuhhYqz0/KfJmgYke/j+Q5gIjA/xfzzgL8SPFd0KjA738cyYpynd2yfoDue2QnzlgIjiuR4TgIey/b3kus4Oy37fuCf+T6ewGhgYvh+MPBykv/rsf4+i+UOI0o3IRcC94fvHwbONjMLp//G3Xe5+xLg1XB9eY/R3evdvSX8OIvg2ZJ8y6bLlXOAJ919g7tvBJ4Ezi2SOC8BHsxRLCm5+zRgQ5pFLgR+5YFZwBAzG01+j2WXcbr7jDAOKNxvM8rxTCWvXQllGGehfpur3P2Z8P1WYAFBDxqJYv19FkvCSNZNSOcd37uMu7cCm4HhEb+brxgTXUWQ2Tv0N7MmM5tlZhflIL4OUeP8UHiL+rCZdTxAma9jmdG2wqK9w4F/JkzO1/HsSqr9yOexzFTn36YDT5jZXAu64im008xsnpn91cyOCacV5fE0s0qCE+0jCZPzfjwtKKI/EZjdaVasv89Cdg2SKEo3IamWidTFSAwib8fMPgbUALUJk6vcfaWZHQH808xecPfXChTnn4EH3X2XmV1LcOf2rojfjUsm27oYeNjd2xKm5et4dqXQv8uMmNk7CRLGmQmTzwiP5UHAk2a2MLzCLoRngGp332Zm5wGPAuMo0uNJUBz1tLsn3o3k9Xia2SCChPXf7r6l8+wkX+n277NY7jCidBOydxkz6wMcSHDLmK8uRiJtx8zeDUwGLnD3XR3T3X1l+O9ioIHgaiAXuozT3dcnxHYncFLU7+YzzgQX0+mWP4/Hsyup9qPour4xs+OAu4AL3X19x/SEY7kG+AO5KdKNxN23uPu28P3jQF8zG0ERHs9Qut9mzo+nmfUlSBZT3f33SRaJ9/eZ64qZiJU3fQgqXQ7nzQqtYzot8yn2rfR+KHx/DPtWei8mN5XeUWI8kaBiblyn6UOBfuH7EcAr5KjCLmKcoxPefwCY5W9WhC0J4x0avh9WqDjD5cYTVCJaIY5nuI2xpK6kfR/7VirOyfexjBhnFUH93umdpg8EBie8nwGcW8A4D+74WxOcaJeFxzbS7yVfcYbzOy5aBxbieIbH5VfAj9IsE+vvM2cHuxs7fx5BLf9rwORw2s0EV+oA/YHfhT/6OcARCd+dHH5vEfDeAsb4d2A18Fz4+lM4/XTghfBH/gJwVYGP5beAF8N46oEJCd+9MjzGrwJXFDLO8PM3gG93+l7ejifB1eMqYA/BVdlVwLXAteF8IxgI7LUwlpoCHcuu4rwL2Jjw22wKpx8RHsd54W9icoHj/M+E3+YsEhJcst9LoeIMl7mcoMFN4vfydjwJihUdeD7h73peLn+f6hpEREQiKZY6DBERKXJKGCIiEokShoiIRKKEISIikShhiIhIJEoYIiISiRKGiIhEooQhkoVwPIL3hO9vNbOfFDomkVwpls4HRUrV14Gbw47mTgQuKHA8IjmjJ71FsmRmjcAgYJIH4xKI9EgqkhLJgpm9jWDks11KFtLTKWGIdFM4ctlUglHNtlsOx5MXKQZKGCLdEI609nvgendfANxC0LOuSI+lOgwREYlEdxgiIhKJEoaIiESihCEiIpEoYYiISCRKGCIiEokShoiIRKKEISIikfx/NTnkIud8BZUAAAAASUVORK5CYII=\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"needs_background": "light"
|
||
},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"\n",
|
||
"# Importing various packages\n",
|
||
"from random import random, seed\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from mpl_toolkits.mplot3d import Axes3D\n",
|
||
"from matplotlib import cm\n",
|
||
"from matplotlib.ticker import LinearLocator, FormatStrFormatter\n",
|
||
"import sys\n",
|
||
"\n",
|
||
"x = 2*np.random.rand(100,1)\n",
|
||
"y = 4+3*x+np.random.randn(100,1)\n",
|
||
"\n",
|
||
"xb = np.c_[np.ones((100,1)), x]\n",
|
||
"beta_linreg = np.linalg.inv(xb.T.dot(xb)).dot(xb.T).dot(y)\n",
|
||
"print(beta_linreg)\n",
|
||
"beta = np.random.randn(2,1)\n",
|
||
"\n",
|
||
"eta = 0.1\n",
|
||
"Niterations = 1000\n",
|
||
"m = 100\n",
|
||
"\n",
|
||
"for iter in range(Niterations):\n",
|
||
" gradients = 2.0/m*xb.T.dot(xb.dot(beta)-y)\n",
|
||
" beta -= eta*gradients\n",
|
||
"\n",
|
||
"print(beta)\n",
|
||
"xnew = np.array([[0],[2]])\n",
|
||
"xbnew = np.c_[np.ones((2,1)), xnew]\n",
|
||
"ypredict = xbnew.dot(beta)\n",
|
||
"ypredict2 = xbnew.dot(beta_linreg)\n",
|
||
"plt.plot(xnew, ypredict, \"r-\")\n",
|
||
"plt.plot(xnew, ypredict2, \"b-\")\n",
|
||
"plt.plot(x, y ,'ro')\n",
|
||
"plt.axis([0,2.0,0, 15.0])\n",
|
||
"plt.xlabel(r'$x$')\n",
|
||
"plt.ylabel(r'$y$')\n",
|
||
"plt.title(r'Gradient descent example')\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## And a corresponding example using **scikit-learn**"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[3.97285382]\n",
|
||
" [2.99022224]]\n",
|
||
"[4.00088608] [3.04115852]\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/Users/MortenImac/anaconda3/lib/python3.6/site-packages/sklearn/linear_model/stochastic_gradient.py:130: DeprecationWarning: n_iter parameter is deprecated in 0.19 and will be removed in 0.21. Use max_iter and tol instead.\n",
|
||
" DeprecationWarning)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Importing various packages\n",
|
||
"from random import random, seed\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.linear_model import SGDRegressor\n",
|
||
"\n",
|
||
"x = 2*np.random.rand(100,1)\n",
|
||
"y = 4+3*x+np.random.randn(100,1)\n",
|
||
"\n",
|
||
"xb = np.c_[np.ones((100,1)), x]\n",
|
||
"beta_linreg = np.linalg.inv(xb.T.dot(xb)).dot(xb.T).dot(y)\n",
|
||
"print(beta_linreg)\n",
|
||
"sgdreg = SGDRegressor(n_iter = 50, penalty=None, eta0=0.1)\n",
|
||
"sgdreg.fit(x,y.ravel())\n",
|
||
"print(sgdreg.intercept_, sgdreg.coef_)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- !split -->\n",
|
||
"## Gradient descent and Ridge\n",
|
||
"\n",
|
||
"We have also discussed Ridge regression where the loss function contains a regularized given by the $L_2$ norm of $\\beta$,"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"C_{\\text{ridge}}(\\beta) = ||X\\beta -\\mathbf{y}||^2 + \\lambda ||\\beta||^2, \\ \\lambda \\geq 0.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"In order to minimize $C_{\\text{ridge}}(\\beta)$ using GD we only have adjust the gradient as follows"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\nabla_\\beta C_{\\text{ridge}}(\\beta) = 2\\begin{bmatrix} \\sum_{i=1}^{100} \\left(\\beta_0+\\beta_1x_i-y_i\\right) \\\\\n",
|
||
"\\sum_{i=1}^{100}\\left( x_i (\\beta_0+\\beta_1x_i)-y_ix_i\\right) \\\\\n",
|
||
"\\end{bmatrix} + 2\\lambda\\begin{bmatrix} \\beta_0 \\\\ \\beta_1\\end{bmatrix} = 2 (X^T(X\\beta - \\mathbf{y})+\\lambda \\beta).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We can now extend our program to minimize $C_{\\text{ridge}}(\\beta)$ using gradient descent and compare with the analytical solution given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\beta_{\\text{ridge}} = \\left(X^T X + \\lambda I_{2 \\times 2} \\right)^{-1} X^T \\mathbf{y},\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"for $\\lambda = {0,1,10,50,100}$ ($\\lambda = 0$ corresponds to ordinary least squares). \n",
|
||
"We can then compute $||\\beta_{\\text{ridge}}||$ for each $\\lambda$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[-0.7532904 4.74881776]\n",
|
||
"4.808192647071491\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"\n",
|
||
"\"\"\"\n",
|
||
"The following setup is just a suggestion, feel free to write it the way you like.\n",
|
||
"\"\"\"\n",
|
||
"\n",
|
||
"#Setup problem described in the exercise\n",
|
||
"N = 100 #Nr of datapoints\n",
|
||
"M = 2 #Nr of features\n",
|
||
"x = np.random.rand(N)\n",
|
||
"y = 5*x**2 + 0.1*np.random.randn(N)\n",
|
||
"\n",
|
||
"\n",
|
||
"#Compute analytic beta for Ridge regression \n",
|
||
"X = np.c_[np.ones(N),x]\n",
|
||
"XT_X = np.dot(X.T,X)\n",
|
||
"\n",
|
||
"l = 0.1 #Ridge parameter lambda\n",
|
||
"Id = np.eye(XT_X.shape[0])\n",
|
||
"\n",
|
||
"Z = np.linalg.inv(XT_X+l*Id)\n",
|
||
"beta_ridge = np.dot(Z,np.dot(X.T,y))\n",
|
||
"\n",
|
||
"print(beta_ridge)\n",
|
||
"print(np.linalg.norm(beta_ridge)) #||beta||"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Automatic differentiation\n",
|
||
"Python has tools for so-called **automatic differentiation**.\n",
|
||
"Consider the following example"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"f(x) = \\sin\\left(2\\pi x + x^2\\right)\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"which has the following derivative"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"f'(x) = \\cos\\left(2\\pi x + x^2\\right)\\left(2\\pi + 2x\\right)\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Using **autograd** we have"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"ename": "ModuleNotFoundError",
|
||
"evalue": "No module named 'autograd'",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
|
||
"\u001b[0;32m<ipython-input-10-ac54fcd406a8>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mautograd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnumpy\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# To do elementwise differentiation:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mautograd\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0melementwise_grad\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0megrad\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
|
||
"\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'autograd'"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"\n",
|
||
"# To do elementwise differentiation:\n",
|
||
"from autograd import elementwise_grad as egrad \n",
|
||
"\n",
|
||
"# To plot:\n",
|
||
"import matplotlib.pyplot as plt \n",
|
||
"\n",
|
||
"\n",
|
||
"def f(x):\n",
|
||
" return np.sin(2*np.pi*x + x**2)\n",
|
||
"\n",
|
||
"def f_grad_analytic(x):\n",
|
||
" return np.cos(2*np.pi*x + x**2)*(2*np.pi + 2*x)\n",
|
||
"\n",
|
||
"# Do the comparison:\n",
|
||
"x = np.linspace(0,1,1000)\n",
|
||
"\n",
|
||
"f_grad = egrad(f)\n",
|
||
"\n",
|
||
"computed = f_grad(x)\n",
|
||
"analytic = f_grad_analytic(x)\n",
|
||
"\n",
|
||
"plt.title('Derivative computed from Autograd compared with the analytical derivative')\n",
|
||
"plt.plot(x,computed,label='autograd')\n",
|
||
"plt.plot(x,analytic,label='analytic')\n",
|
||
"\n",
|
||
"plt.xlabel('x')\n",
|
||
"plt.ylabel('y')\n",
|
||
"plt.legend()\n",
|
||
"\n",
|
||
"plt.show()\n",
|
||
"\n",
|
||
"print(\"The max absolute difference is: %g\"%(np.max(np.abs(computed - analytic))))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- !split -->\n",
|
||
"## Using autograd\n",
|
||
"\n",
|
||
"Here we\n",
|
||
"experiment with what kind of functions Autograd is capable\n",
|
||
"of finding the gradient of. The following Python functions are just\n",
|
||
"meant to illustrate what Autograd can do, but please feel free to\n",
|
||
"experiment with other, possibly more complicated, functions as well."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"\n",
|
||
"def f1(x):\n",
|
||
" return x**3 + 1\n",
|
||
"\n",
|
||
"f1_grad = grad(f1)\n",
|
||
"\n",
|
||
"# Remember to send in float as argument to the computed gradient from Autograd!\n",
|
||
"a = 1.0\n",
|
||
"\n",
|
||
"# See the evaluated gradient at a using autograd:\n",
|
||
"print(\"The gradient of f1 evaluated at a = %g using autograd is: %g\"%(a,f1_grad(a)))\n",
|
||
"\n",
|
||
"# Compare with the analytical derivative, that is f1'(x) = 3*x**2 \n",
|
||
"grad_analytical = 3*a**2\n",
|
||
"print(\"The gradient of f1 evaluated at a = %g by finding the analytic expression is: %g\"%(a,grad_analytical))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Autograd with more complicated functions\n",
|
||
"\n",
|
||
"To differentiate with respect to two (or more) arguments of a Python\n",
|
||
"function, Autograd need to know at which variable the function if\n",
|
||
"being differentiated with respect to."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"def f2(x1,x2):\n",
|
||
" return 3*x1**3 + x2*(x1 - 5) + 1\n",
|
||
"\n",
|
||
"# By sending the argument 0, Autograd will compute the derivative w.r.t the first variable, in this case x1\n",
|
||
"f2_grad_x1 = grad(f2,0)\n",
|
||
"\n",
|
||
"# ... and differentiate w.r.t x2 by sending 1 as an additional arugment to grad\n",
|
||
"f2_grad_x2 = grad(f2,1)\n",
|
||
"\n",
|
||
"x1 = 1.0\n",
|
||
"x2 = 3.0 \n",
|
||
"\n",
|
||
"print(\"Evaluating at x1 = %g, x2 = %g\"%(x1,x2))\n",
|
||
"print(\"-\"*30)\n",
|
||
"\n",
|
||
"# Compare with the analytical derivatives:\n",
|
||
"\n",
|
||
"# Derivative of f2 w.r.t x1 is: 9*x1**2 + x2:\n",
|
||
"f2_grad_x1_analytical = 9*x1**2 + x2\n",
|
||
"\n",
|
||
"# Derivative of f2 w.r.t x2 is: x1 - 5:\n",
|
||
"f2_grad_x2_analytical = x1 - 5\n",
|
||
"\n",
|
||
"# See the evaluated derivations:\n",
|
||
"print(\"The derivative of f2 w.r.t x1: %g\"%( f2_grad_x1(x1,x2) ))\n",
|
||
"print(\"The analytical derivative of f2 w.r.t x1: %g\"%( f2_grad_x1(x1,x2) ))\n",
|
||
"\n",
|
||
"print()\n",
|
||
"\n",
|
||
"print(\"The derivative of f2 w.r.t x2: %g\"%( f2_grad_x2(x1,x2) ))\n",
|
||
"print(\"The analytical derivative of f2 w.r.t x2: %g\"%( f2_grad_x2(x1,x2) ))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Note that the grad function will not produce the true gradient of the function. The true gradient of a function with two or more variables will produce a vector, where each element is the function differentiated w.r.t a variable.\n",
|
||
"\n",
|
||
"\n",
|
||
"## More complicated functions using the elements of their arguments directly"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"def f3(x): # Assumes x is an array of length 5 or higher\n",
|
||
" return 2*x[0] + 3*x[1] + 5*x[2] + 7*x[3] + 11*x[4]**2\n",
|
||
"\n",
|
||
"f3_grad = grad(f3)\n",
|
||
"\n",
|
||
"x = np.linspace(0,4,5)\n",
|
||
"\n",
|
||
"# Print the computed gradient:\n",
|
||
"print(\"The computed gradient of f3 is: \", f3_grad(x))\n",
|
||
"\n",
|
||
"# The analytical gradient is: (2, 3, 5, 7, 22*x[4])\n",
|
||
"f3_grad_analytical = np.array([2, 3, 5, 7, 22*x[4]])\n",
|
||
"\n",
|
||
"# Print the analytical gradient:\n",
|
||
"print(\"The analytical gradient of f3 is: \", f3_grad_analytical)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Note that in this case, when sending an array as input argument, the\n",
|
||
"output from Autograd is another array. This is the true gradient of\n",
|
||
"the function, as opposed to the function in the previous example. By\n",
|
||
"using arrays to represent the variables, the output from Autograd\n",
|
||
"might be easier to work with, as the output is closer to what one\n",
|
||
"could expect form a gradient-evaluting function.\n",
|
||
"\n",
|
||
"<!-- !split -->\n",
|
||
"## Functions using mathematical functions from Numpy"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"def f4(x):\n",
|
||
" return np.sqrt(1+x**2) + np.exp(x) + np.sin(2*np.pi*x)\n",
|
||
"\n",
|
||
"f4_grad = grad(f4)\n",
|
||
"\n",
|
||
"x = 2.7\n",
|
||
"\n",
|
||
"# Print the computed derivative:\n",
|
||
"print(\"The computed derivative of f4 at x = %g is: %g\"%(x,f4_grad(x)))\n",
|
||
"\n",
|
||
"# The analytical derivative is: x/sqrt(1 + x**2) + exp(x) + cos(2*pi*x)*2*pi\n",
|
||
"f4_grad_analytical = x/np.sqrt(1 + x**2) + np.exp(x) + np.cos(2*np.pi*x)*2*np.pi\n",
|
||
"\n",
|
||
"# Print the analytical gradient:\n",
|
||
"print(\"The analytical gradient of f4 at x = %g is: %g\"%(x,f4_grad_analytical))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## More autograd"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"def f5(x):\n",
|
||
" if x >= 0:\n",
|
||
" return x**2\n",
|
||
" else:\n",
|
||
" return -3*x + 1\n",
|
||
"\n",
|
||
"f5_grad = grad(f5)\n",
|
||
"\n",
|
||
"x = 2.7\n",
|
||
"\n",
|
||
"# Print the computed derivative:\n",
|
||
"print(\"The computed derivative of f5 at x = %g is: %g\"%(x,f5_grad(x)))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## And with loops"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"1\n",
|
||
"8\n",
|
||
" \n",
|
||
"<\n",
|
||
"<\n",
|
||
"<\n",
|
||
"!\n",
|
||
"!\n",
|
||
"C\n",
|
||
"O\n",
|
||
"D\n",
|
||
"E\n",
|
||
"_\n",
|
||
"B\n",
|
||
"L\n",
|
||
"O\n",
|
||
"C\n",
|
||
"K\n",
|
||
" \n",
|
||
" \n",
|
||
"p\n",
|
||
"y\n",
|
||
"c\n",
|
||
"o\n",
|
||
"d"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"# Both of the functions are implementation of the sum: sum(x**i) for i = 0, ..., 9\n",
|
||
"# The analytical derivative is: sum(i*x**(i-1)) \n",
|
||
"f6_grad_analytical = 0\n",
|
||
"for i in range(10):\n",
|
||
" f6_grad_analytical += i*x**(i-1)\n",
|
||
"\n",
|
||
"print(\"The analytical derivative of f6 at x = %g is: %g\"%(x,f6_grad_analytical))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Using recursion"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"\n",
|
||
"def f7(n): # Assume that n is an integer\n",
|
||
" if n == 1 or n == 0:\n",
|
||
" return 1\n",
|
||
" else:\n",
|
||
" return n*f7(n-1)\n",
|
||
"\n",
|
||
"f7_grad = grad(f7)\n",
|
||
"\n",
|
||
"n = 2.0\n",
|
||
"\n",
|
||
"print(\"The computed derivative of f7 at n = %d is: %g\"%(n,f7_grad(n)))\n",
|
||
"\n",
|
||
"# The function f7 is an implementation of the factorial of n.\n",
|
||
"# By using the product rule, one can find that the derivative is:\n",
|
||
"\n",
|
||
"f7_grad_analytical = 0\n",
|
||
"for i in range(int(n)-1):\n",
|
||
" tmp = 1\n",
|
||
" for k in range(int(n)-1):\n",
|
||
" if k != i:\n",
|
||
" tmp *= (n - k)\n",
|
||
" f7_grad_analytical += tmp\n",
|
||
"\n",
|
||
"print(\"The analytical derivative of f7 at n = %d is: %g\"%(n,f7_grad_analytical))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Note that if n is equal to zero or one, Autograd will give an error message. This message appears when the output is independent on input.\n",
|
||
"\n",
|
||
"## Unsupported functions\n",
|
||
"Autograd supports many features. However, there are some functions that is not supported (yet) by Autograd.\n",
|
||
"\n",
|
||
"Assigning a value to the variable being differentiated with respect to"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"def f8(x): # Assume x is an array\n",
|
||
" x[2] = 3\n",
|
||
" return x*2\n",
|
||
"\n",
|
||
"f8_grad = grad(f8)\n",
|
||
"\n",
|
||
"x = 8.4\n",
|
||
"\n",
|
||
"print(\"The derivative of f8 is:\",f8_grad(x))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Here, Autograd tells us that an 'ArrayBox' does not support item assignment. The item assignment is done when the program tries to assign x[2] to the value 3. However, Autograd has implemented the computation of the derivative such that this assignment is not possible.\n",
|
||
"\n",
|
||
"## The syntax a.dot(b) when finding the dot product"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"def f9(a): # Assume a is an array with 2 elements\n",
|
||
" b = np.array([1.0,2.0])\n",
|
||
" return a.dot(b)\n",
|
||
"\n",
|
||
"f9_grad = grad(f9)\n",
|
||
"\n",
|
||
"x = np.array([1.0,0.0])\n",
|
||
"\n",
|
||
"print(\"The derivative of f9 is:\",f9_grad(x))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Here we are told that the 'dot' function does not belong to Autograd's\n",
|
||
"version of a Numpy array. To overcome this, an alternative syntax\n",
|
||
"which also computed the dot product can be used:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import autograd.numpy as np\n",
|
||
"from autograd import grad\n",
|
||
"def f9_alternative(x): # Assume a is an array with 2 elements\n",
|
||
" b = np.array([1.0,2.0])\n",
|
||
" return np.dot(x,b) # The same as x_1*b_1 + x_2*b_2\n",
|
||
"\n",
|
||
"f9_alternative_grad = grad(f9_alternative)\n",
|
||
"\n",
|
||
"x = np.array([3.0,0.0])\n",
|
||
"\n",
|
||
"print(\"The gradient of f9 is:\",f9_alternative_grad(x))\n",
|
||
"\n",
|
||
"# The analytical gradient of the dot product of vectors x and b with two elements (x_1,x_2) and (b_1, b_2) respectively\n",
|
||
"# w.r.t x is (b_1, b_2)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Recommended to avoid\n",
|
||
"The documentation recommends to avoid inplace operations such as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"a += b\n",
|
||
"a -= b\n",
|
||
"a*= b\n",
|
||
"a /=b"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Stochastic Gradient Descent\n",
|
||
"\n",
|
||
"Stochastic gradient descent (SGD) and variants thereof address some of\n",
|
||
"the shortcomings of the Gradient descent method discussed above.\n",
|
||
"\n",
|
||
"The underlying idea of SGD comes from the observation that the cost\n",
|
||
"function, which we want to minimize, can almost always be written as a\n",
|
||
"sum over $n$ data points $\\{\\mathbf{x}_i\\}_{i=1}^n$,"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"C(\\mathbf{\\beta}) = \\sum_{i=1}^n c_i(\\mathbf{x}_i,\n",
|
||
"\\mathbf{\\beta}).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Computation of gradients\n",
|
||
"\n",
|
||
"This in turn means that the gradient can be\n",
|
||
"computed as a sum over $i$-gradients"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\nabla_\\beta C(\\mathbf{\\beta}) = \\sum_i^n \\nabla_\\beta c_i(\\mathbf{x}_i,\n",
|
||
"\\mathbf{\\beta}).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Stochasticity/randomness is introduced by only taking the\n",
|
||
"gradient on a subset of the data called minibatches. If there are $n$\n",
|
||
"data points and the size of each minibatch is $M$, there will be $n/M$\n",
|
||
"minibatches. We denote these minibatches by $B_k$ where\n",
|
||
"$k=1,\\cdots,n/M$.\n",
|
||
"\n",
|
||
"## SGD example\n",
|
||
"As an example, suppose we have $10$ data points $(\\mathbf{x}_1,\\cdots, \\mathbf{x}_{10})$ \n",
|
||
"and we choose to have $M=5$ minibathces,\n",
|
||
"then each minibatch contains two data points. In particular we have\n",
|
||
"$B_1 = (\\mathbf{x}_1,\\mathbf{x}_2), \\cdots, B_5 =\n",
|
||
"(\\mathbf{x}_9,\\mathbf{x}_{10})$. Note that if you choose $M=1$ you\n",
|
||
"have only a single batch with all data points and on the other extreme,\n",
|
||
"you may choose $M=n$ resulting in a minibatch for each datapoint, i.e\n",
|
||
"$B_k = \\mathbf{x}_k$.\n",
|
||
"\n",
|
||
"The idea is now to approximate the gradient by replacing the sum over\n",
|
||
"all data points with a sum over the data points in one the minibatches\n",
|
||
"picked at random in each gradient descent step"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\nabla_{\\beta}\n",
|
||
"C(\\mathbf{\\beta}) = \\sum_{i=1}^n \\nabla_\\beta c_i(\\mathbf{x}_i,\n",
|
||
"\\mathbf{\\beta}) \\rightarrow \\sum_{i \\in B_k}^n \\nabla_\\beta\n",
|
||
"c_i(\\mathbf{x}_i, \\mathbf{\\beta}).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## The gradient step\n",
|
||
"\n",
|
||
"Thus a gradient descent step now looks like"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\beta_{j+1} = \\beta_j - \\gamma_j \\sum_{i \\in B_k}^n \\nabla_\\beta c_i(\\mathbf{x}_i,\n",
|
||
"\\mathbf{\\beta})\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where $k$ is picked at random with equal\n",
|
||
"probability from $[1,n/M]$. An iteration over the number of\n",
|
||
"minibathces (n/M) is commonly referred to as an epoch. Thus it is\n",
|
||
"typical to choose a number of epochs and for each epoch iterate over\n",
|
||
"the number of minibatches, as exemplified in the code below.\n",
|
||
"\n",
|
||
"## Simple example code"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import numpy as np \n",
|
||
"\n",
|
||
"n = 100 #100 datapoints \n",
|
||
"M = 5 #size of each minibatch\n",
|
||
"m = int(n/M) #number of minibatches\n",
|
||
"n_epochs = 10 #number of epochs\n",
|
||
"\n",
|
||
"j = 0\n",
|
||
"for epoch in range(1,n_epochs+1):\n",
|
||
" for i in range(m):\n",
|
||
" k = np.random.randint(m) #Pick the k-th minibatch at random\n",
|
||
" #Compute the gradient using the data in minibatch Bk\n",
|
||
" #Compute new suggestion for \n",
|
||
" j += 1"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Taking the gradient only on a subset of the data has two important\n",
|
||
"benefits. First, it introduces randomness which decreases the chance\n",
|
||
"that our opmization scheme gets stuck in a local minima. Second, if\n",
|
||
"the size of the minibatches are small relative to the number of\n",
|
||
"datapoints ($M < n$), the computation of the gradient is much\n",
|
||
"cheaper since we sum over the datapoints in the $k-th$ minibatch and not\n",
|
||
"all $n$ datapoints.\n",
|
||
"\n",
|
||
"## When do we stop?\n",
|
||
"\n",
|
||
"A natural question is when do we stop the search for a new minimum?\n",
|
||
"One possibility is to compute the full gradient after a given number\n",
|
||
"of epochs and check if the norm of the gradient is smaller than some\n",
|
||
"threshold and stop if true. However, the condition that the gradient\n",
|
||
"is zero is valid also for local minima, so this would only tell us\n",
|
||
"that we are close to a local/global minimum. However, we could also\n",
|
||
"evaluate the cost function at this point, store the result and\n",
|
||
"continue the search. If the test kicks in at a later stage we can\n",
|
||
"compare the values of the cost function and keep the $\\beta$ that\n",
|
||
"gave the lowest value.\n",
|
||
"\n",
|
||
"## Slightly different approach\n",
|
||
"\n",
|
||
"Another approach is to let the step length $\\gamma_j$ depend on the\n",
|
||
"number of epochs in such a way that it becomes very small after a\n",
|
||
"reasonable time such that we do not move at all.\n",
|
||
"\n",
|
||
"As an example, let $e = 0,1,2,3,\\cdots$ denote the current epoch and let $t_0, t_1 > 0$ be two fixed numbers. Furthermore, let $t = e \\cdot m + i$ where $m$ is the number of minibatches and $i=0,\\cdots,m-1$. Then the function $$\\gamma_j(t; t_0, t_1) = \\frac{t_0}{t+t_1} $$ goes to zero as the number of epochs gets large. I.e. we start with a step length $\\gamma_j (0; t_0, t_1) = t_0/t_1$ which decays in *time* $t$.\n",
|
||
"\n",
|
||
"In this way we can fix the number of epochs, compute $\\beta$ and\n",
|
||
"evaluate the cost function at the end. Repeating the computation will\n",
|
||
"give a different result since the scheme is random by design. Then we\n",
|
||
"pick the final $\\beta$ that gives the lowest value of the cost\n",
|
||
"function."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import numpy as np \n",
|
||
"\n",
|
||
"def step_length(t,t0,t1):\n",
|
||
" return t0/(t+t1)\n",
|
||
"\n",
|
||
"n = 100 #100 datapoints \n",
|
||
"M = 5 #size of each minibatch\n",
|
||
"m = int(n/M) #number of minibatches\n",
|
||
"n_epochs = 500 #number of epochs\n",
|
||
"t0 = 1.0\n",
|
||
"t1 = 10\n",
|
||
"\n",
|
||
"gamma_j = t0/t1\n",
|
||
"j = 0\n",
|
||
"for epoch in range(1,n_epochs+1):\n",
|
||
" for i in range(m):\n",
|
||
" k = np.random.randint(m) #Pick the k-th minibatch at random\n",
|
||
" #Compute the gradient using the data in minibatch Bk\n",
|
||
" #Compute new suggestion for beta\n",
|
||
" t = epoch*m+i\n",
|
||
" gamma_j = step_length(t,t0,t1)\n",
|
||
" j += 1\n",
|
||
"\n",
|
||
"print(\"gamma_j after %d epochs: %g\" % (n_epochs,gamma_j))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Program for stochastic gradient"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Importing various packages\n",
|
||
"from math import exp, sqrt\n",
|
||
"from random import random, seed\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"from sklearn.linear_model import SGDRegressor\n",
|
||
"\n",
|
||
"x = 2*np.random.rand(100,1)\n",
|
||
"y = 4+3*x+np.random.randn(100,1)\n",
|
||
"\n",
|
||
"xb = np.c_[np.ones((100,1)), x]\n",
|
||
"theta_linreg = np.linalg.inv(xb.T.dot(xb)).dot(xb.T).dot(y)\n",
|
||
"print(\"Own inversion\")\n",
|
||
"print(theta_linreg)\n",
|
||
"sgdreg = SGDRegressor(n_iter = 50, penalty=None, eta0=0.1)\n",
|
||
"sgdreg.fit(x,y.ravel())\n",
|
||
"print(\"sgdreg from scikit\")\n",
|
||
"print(sgdreg.intercept_, sgdreg.coef_)\n",
|
||
"\n",
|
||
"\n",
|
||
"theta = np.random.randn(2,1)\n",
|
||
"\n",
|
||
"eta = 0.1\n",
|
||
"Niterations = 1000\n",
|
||
"m = 100\n",
|
||
"\n",
|
||
"for iter in range(Niterations):\n",
|
||
" gradients = 2.0/m*xb.T.dot(xb.dot(theta)-y)\n",
|
||
" theta -= eta*gradients\n",
|
||
"print(\"theta frm own gd\")\n",
|
||
"print(theta)\n",
|
||
"\n",
|
||
"xnew = np.array([[0],[2]])\n",
|
||
"xbnew = np.c_[np.ones((2,1)), xnew]\n",
|
||
"ypredict = xbnew.dot(theta)\n",
|
||
"ypredict2 = xbnew.dot(theta_linreg)\n",
|
||
"\n",
|
||
"\n",
|
||
"n_epochs = 50\n",
|
||
"t0, t1 = 5, 50\n",
|
||
"m = 100\n",
|
||
"def learning_schedule(t):\n",
|
||
" return t0/(t+t1)\n",
|
||
"\n",
|
||
"theta = np.random.randn(2,1)\n",
|
||
"\n",
|
||
"for epoch in range(n_epochs):\n",
|
||
" for i in range(m):\n",
|
||
" random_index = np.random.randint(m)\n",
|
||
" xi = xb[random_index:random_index+1]\n",
|
||
" yi = y[random_index:random_index+1]\n",
|
||
" gradients = 2 * xi.T.dot(xi.dot(theta)-yi)\n",
|
||
" eta = learning_schedule(epoch*m+i)\n",
|
||
" theta = theta - eta*gradients\n",
|
||
"print(\"theta from own sdg\")\n",
|
||
"print(theta)\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
"plt.plot(xnew, ypredict, \"r-\")\n",
|
||
"plt.plot(xnew, ypredict2, \"b-\")\n",
|
||
"plt.plot(x, y ,'ro')\n",
|
||
"plt.axis([0,2.0,0, 15.0])\n",
|
||
"plt.xlabel(r'$x$')\n",
|
||
"plt.ylabel(r'$y$')\n",
|
||
"plt.title(r'Random numbers ')\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Using gradient descent methods, limitations\n",
|
||
"\n",
|
||
"* **Gradient descent (GD) finds local minima of our function**. Since the GD algorithm is deterministic, if it converges, it will converge to a local minimum of our energy function. Because in ML we are often dealing with extremely rugged landscapes with many local minima, this can lead to poor performance.\n",
|
||
"\n",
|
||
"* **GD is sensitive to initial conditions**. One consequence of the local nature of GD is that initial conditions matter. Depending on where one starts, one will end up at a different local minima. Therefore, it is very important to think about how one initializes the training process. This is true for GD as well as more complicated variants of GD.\n",
|
||
"\n",
|
||
"* **Gradients are computationally expensive to calculate for large datasets**. In many cases in statistics and ML, the energy function is a sum of terms, with one term for each data point. For example, in linear regression, $E \\propto \\sum_{i=1}^n (y_i - \\mathbf{w}^T\\cdot\\mathbf{x}_i)^2$; for logistic regression, the square error is replaced by the cross entropy. To calculate the gradient we have to sum over *all* $n$ data points. Doing this at every GD step becomes extremely computationally expensive. An ingenious solution to this, is to calculate the gradients using small subsets of the data called \"mini batches\". This has the added benefit of introducing stochasticity into our algorithm.\n",
|
||
"\n",
|
||
"* **GD is very sensitive to choices of learning rates**. GD is extremely sensitive to the choice of learning rates. If the learning rate is very small, the training process take an extremely long time. For larger learning rates, GD can diverge and give poor results. Furthermore, depending on what the local landscape looks like, we have to modify the learning rates to ensure convergence. Ideally, we would *adaptively* choose the learning rates to match the landscape.\n",
|
||
"\n",
|
||
"* **GD treats all directions in parameter space uniformly.** Another major drawback of GD is that unlike Newton's method, the learning rate for GD is the same in all directions in parameter space. For this reason, the maximum learning rate is set by the behavior of the steepest direction and this can significantly slow down training. Ideally, we would like to take large steps in flat directions and small steps in steep directions. Since we are exploring rugged landscapes where curvatures change, this requires us to keep track of not only the gradient but second derivatives. The ideal scenario would be to calculate the Hessian but this proves to be too computationally expensive. \n",
|
||
"\n",
|
||
"* GD can take exponential time to escape saddle points, even with random initialization. As we mentioned, GD is extremely sensitive to initial condition since it determines the particular local minimum GD would eventually reach. However, even with a good initialization scheme, through the introduction of randomness, GD can still take exponential time to escape saddle points.\n",
|
||
"\n",
|
||
"## Momentum based GD\n",
|
||
"\n",
|
||
"The stochastic gradient descent (SGD) is almost always used with a *momentum* or inertia term that serves as a memory of the direction we are moving in parameter space. This is typically \n",
|
||
"implemented as follows"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbf{v}_{t}=\\gamma \\mathbf{v}_{t-1}+\\eta_{t}\\nabla_\\theta E(\\boldsymbol{\\theta}_t) \\nonumber\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- Equation labels as ordinary links -->\n",
|
||
"<div id=\"_auto1\"></div>\n",
|
||
"\n",
|
||
"$$\n",
|
||
"\\begin{equation} \n",
|
||
"\\boldsymbol{\\theta}_{t+1}= \\boldsymbol{\\theta}_t -\\mathbf{v}_{t},\n",
|
||
"\\label{_auto1} \\tag{2}\n",
|
||
"\\end{equation}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where we have introduced a momentum parameter $\\gamma$, with $0\\le\\gamma\\le 1$, and for brevity we dropped the explicit notation to indicate the gradient is to be taken over a different mini-batch at each step. We call this algorithm gradient descent with momentum (GDM). From these equations, it is clear that $\\mathbf{v}_t$ is a running average of recently encountered gradients and $(1-\\gamma)^{-1}$ sets the characteristic time scale for the memory used in the averaging procedure. Consistent with this, when $\\gamma=0$, this just reduces down to ordinary SGD as discussed earlier. An equivalent way of writing the updates is"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\Delta \\boldsymbol{\\theta}_{t+1} = \\gamma \\Delta \\boldsymbol{\\theta}_t -\\ \\eta_{t}\\nabla_\\theta E(\\boldsymbol{\\theta}_t),\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where we have defined $\\Delta \\boldsymbol{\\theta}_{t}= \\boldsymbol{\\theta}_t-\\boldsymbol{\\theta}_{t-1}$.\n",
|
||
"\n",
|
||
"## More on momentum based approaches\n",
|
||
"\n",
|
||
"Let us try to get more intuition from these equations. It is helpful to consider a simple physical analogy with a particle of mass $m$ moving in a viscous medium with drag coefficient $\\mu$ and potential \n",
|
||
"$E(\\mathbf{w})$. If we denote the particle's position by $\\mathbf{w}$, then its motion is described by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"m {d^2 \\mathbf{w} \\over dt^2} + \\mu {d \\mathbf{w} \\over dt }= -\\nabla_w E(\\mathbf{w}).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"We can discretize this equation in the usual way to get"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"m { \\mathbf{w}_{t+\\Delta t}-2 \\mathbf{w}_{t} +\\mathbf{w}_{t-\\Delta t} \\over (\\Delta t)^2}+\\mu {\\mathbf{w}_{t+\\Delta t}- \\mathbf{w}_{t} \\over \\Delta t} = -\\nabla_w E(\\mathbf{w}).\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Rearranging this equation, we can rewrite this as"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\Delta \\mathbf{w}_{t +\\Delta t}= - { (\\Delta t)^2 \\over m +\\mu \\Delta t} \\nabla_w E(\\mathbf{w})+ {m \\over m +\\mu \\Delta t} \\Delta \\mathbf{w}_t.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Momentum parameter\n",
|
||
"Notice that this equation is identical to previous one if we identify the position of the particle, $\\mathbf{w}$, with the parameters $\\boldsymbol{\\theta}$. This allows\n",
|
||
"us to identify the momentum parameter and learning rate with the mass of the particle and the viscous drag as:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\gamma= {m \\over m +\\mu \\Delta t }, \\qquad \\eta = {(\\Delta t)^2 \\over m +\\mu \\Delta t}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Thus, as the name suggests, the momentum parameter is proportional to the mass of the particle and effectively provides inertia. Furthermore, in the large viscosity/small learning rate limit, our memory time scales as $(1-\\gamma)^{-1} \\approx m/(\\mu \\Delta t)$.\n",
|
||
"\n",
|
||
"Why is momentum useful? SGD momentum helps the gradient descent algorithm gain speed in directions with persistent but small gradients even in the presence of stochasticity, while suppressing oscillations in high-curvature directions. This becomes especially important in situations where the landscape is shallow and flat in some directions and narrow and steep in others. It has been argued that first-order methods (with appropriate initial conditions) can perform comparable to more expensive second order methods, especially in the context of complex deep learning models. \n",
|
||
"\n",
|
||
"These beneficial properties of momentum can sometimes become even more pronounced by using a slight modification of the classical momentum algorithm called Nesterov Accelerated Gradient (NAG). \n",
|
||
"\n",
|
||
"In the NAG algorithm, rather than calculating the gradient at the current parameters, $\\nabla_\\theta E(\\boldsymbol{\\theta}_t)$, one calculates the gradient at the expected value of the parameters given our current momentum, $\\nabla_\\theta E(\\boldsymbol{\\theta}_t +\\gamma \\mathbf{v}_{t-1})$. This yields the NAG update rule"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbf{v}_{t}=\\gamma \\mathbf{v}_{t-1}+\\eta_{t}\\nabla_\\theta E(\\boldsymbol{\\theta}_t +\\gamma \\mathbf{v}_{t-1}) \\nonumber\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- Equation labels as ordinary links -->\n",
|
||
"<div id=\"_auto2\"></div>\n",
|
||
"\n",
|
||
"$$\n",
|
||
"\\begin{equation} \n",
|
||
"\\boldsymbol{\\theta}_{t+1}= \\boldsymbol{\\theta}_t -\\mathbf{v}_{t}.\n",
|
||
"\\label{_auto2} \\tag{3}\n",
|
||
"\\end{equation}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"One of the major advantages of NAG is that it allows for the use of a larger learning rate than GDM for the same choice of $\\gamma$.\n",
|
||
"\n",
|
||
"\n",
|
||
"## Second moment of the gradient\n",
|
||
"\n",
|
||
"\n",
|
||
"In stochastic gradient descent, with and without momentum, we still\n",
|
||
"have to specify a schedule for tuning the learning rates $\\eta_t$\n",
|
||
"as a function of time. As discussed in the context of Newton's\n",
|
||
"method, this presents a number of dilemmas. The learning rate is\n",
|
||
"limited by the steepest direction which can change depending on the\n",
|
||
"current position in the landscape. To circumvent this problem, ideally\n",
|
||
"our algorithm would keep track of curvature and take large steps in\n",
|
||
"shallow, flat directions and small steps in steep, narrow directions.\n",
|
||
"Second-order methods accomplish this by calculating or approximating\n",
|
||
"the Hessian and normalizing the learning rate by the\n",
|
||
"curvature. However, this is very computationally expensive for\n",
|
||
"extremely large models. Ideally, we would like to be able to\n",
|
||
"adaptively change the step size to match the landscape without paying\n",
|
||
"the steep computational price of calculating or approximating\n",
|
||
"Hessians.\n",
|
||
"\n",
|
||
"Recently, a number of methods have been introduced that accomplish this by tracking not only the gradient, but also the second moment of the gradient. These methods include AdaGrad, AdaDelta, RMS-Prop, and ADAM.\n",
|
||
"\n",
|
||
"## RMS prop\n",
|
||
"\n",
|
||
"In RMS prop, in addition to keeping a running average of the first moment of the gradient, we also keep track of the second moment denoted by $\\mathbf{s}_t=\\mathbb{E}[\\mathbf{g}_t^2]$. The update rule for RMS prop is given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- Equation labels as ordinary links -->\n",
|
||
"<div id=\"_auto3\"></div>\n",
|
||
"\n",
|
||
"$$\n",
|
||
"\\begin{equation}\n",
|
||
"\\mathbf{g}_t = \\nabla_\\theta E(\\boldsymbol{\\theta}) \n",
|
||
"\\label{_auto3} \\tag{4}\n",
|
||
"\\end{equation}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbf{s}_t =\\beta \\mathbf{s}_{t-1} +(1-\\beta)\\mathbf{g}_t^2 \\nonumber\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\boldsymbol{\\theta}_{t+1}=\\boldsymbol{\\theta}_t - \\eta_t { \\mathbf{g}_t \\over \\sqrt{\\mathbf{s}_t +\\epsilon}}, \\nonumber\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where $\\beta$ controls the averaging time of the second moment and is typically taken to be about $\\beta=0.9$, $\\eta_t$ is a learning rate typically chosen to be $10^{-3}$, and $\\epsilon\\sim 10^{-8} $ is a small regularization constant to prevent divergences. Multiplication and division by vectors is understood as an element-wise operation. It is clear from this formula that the learning rate is reduced in directions where the norm of the gradient is consistently large. This greatly speeds up the convergence by allowing us to use a larger learning rate for flat directions.\n",
|
||
"\n",
|
||
"\n",
|
||
"## ADAM optimizer\n",
|
||
"\n",
|
||
"A related algorithm is the ADAM optimizer. In ADAM, we keep a running average of both the first and second moment of the gradient and use this information to adaptively change the learning rate for different parameters. In addition to keeping a running average of the first and second moments of the gradient (i.e. $\\mathbf{m}_t=\\mathbb{E}[\\mathbf{g}_t]$ and $\\mathbf{s}_t=\\mathbb{E}[\\mathbf{g}^2_t]$, respectively), ADAM performs an additional bias correction to account for the fact that we are estimating the first two moments of the gradient using a running average (denoted by the hats in the update rule below). The update rule for ADAM is given by (where multiplication and division are once again understood to be element-wise operations below)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- Equation labels as ordinary links -->\n",
|
||
"<div id=\"_auto4\"></div>\n",
|
||
"\n",
|
||
"$$\n",
|
||
"\\begin{equation}\n",
|
||
"\\mathbf{g}_t = \\nabla_\\theta E(\\boldsymbol{\\theta}) \n",
|
||
"\\label{_auto4} \\tag{5}\n",
|
||
"\\end{equation}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbf{m}_t = \\beta_1 \\mathbf{m}_{t-1} + (1-\\beta_1) \\mathbf{g}_t \\nonumber\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\mathbf{s}_t =\\beta_2 \\mathbf{s}_{t-1} +(1-\\beta_2)\\mathbf{g}_t^2 \\nonumber\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{\\mathbf{m}}_t={\\mathbf{m}_t \\over 1-\\beta_1^t} \\nonumber\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\hat{\\mathbf{s}}_t ={\\mathbf{s}_t \\over1-\\beta_2^t} \\nonumber\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\boldsymbol{\\theta}_{t+1}=\\boldsymbol{\\theta}_t - \\eta_t { \\hat{\\mathbf{m}}_t \\over \\sqrt{\\hat{\\mathbf{s}}_t} +\\epsilon}, \\nonumber\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"<!-- Equation labels as ordinary links -->\n",
|
||
"<div id=\"_auto5\"></div>\n",
|
||
"\n",
|
||
"$$\n",
|
||
"\\begin{equation} \n",
|
||
"\\label{_auto5} \\tag{6}\n",
|
||
"\\end{equation}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"where $\\beta_1$ and $\\beta_2$ set the memory lifetime of the first and second moment and are typically taken to be $0.9$ and $0.99$ respectively, and $\\eta$ and $\\epsilon$ are identical to RMSprop.\n",
|
||
"\n",
|
||
"Like in RMSprop, the effective step size of a parameter depends on the magnitude of its gradient squared. To understand this better, let us rewrite this expression in terms of the variance $\\boldsymbol{\\sigma}_t^2 = \\hat{\\mathbf{s}}_t - (\\hat{\\mathbf{m}}_t)^2$. Consider a single parameter $\\theta_t$. The update rule for this parameter is given by"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"$$\n",
|
||
"\\Delta \\theta_{t+1}= -\\eta_t { \\hat{m}_t \\over \\sqrt{\\sigma_t^2 + m_t^2 }+\\epsilon}.\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Practical tips\n",
|
||
"\n",
|
||
"* **Randomize the data when making mini-batches**. It is always important to randomly shuffle the data when forming mini-batches. Otherwise, the gradient descent method can fit spurious correlations resulting from the order in which data is presented.\n",
|
||
"\n",
|
||
"* **Transform your inputs**. Learning becomes difficult when our landscape has a mixture of steep and flat directions. One simple trick for minimizing these situations is to standardize the data by subtracting the mean and normalizing the variance of input variables. Whenever possible, also decorrelate the inputs. To understand why this is helpful, consider the case of linear regression. It is easy to show that for the squared error cost function, the Hessian of the energy matrix is just the correlation matrix between the inputs. Thus, by standardizing the inputs, we are ensuring that the landscape looks homogeneous in all directions in parameter space. Since most deep networks can be viewed as linear transformations followed by a non-linearity at each layer, we expect this intuition to hold beyond the linear case.\n",
|
||
"\n",
|
||
"* **Monitor the out-of-sample performance.** Always monitor the performance of your model on a validation set (a small portion of the training data that is held out of the training process to serve as a proxy for the test set. If the validation error starts increasing, then the model is beginning to overfit. Terminate the learning process. This *early stopping* significantly improves performance in many settings.\n",
|
||
"\n",
|
||
"* **Adaptive optimization methods don't always have good generalization.** Recent studies have shown that adaptive methods such as ADAM, RMSPorp, and AdaGrad tend to have poor generalization compared to SGD or SGD with momentum, particularly in the high-dimensional limit (i.e. the number of parameters exceeds the number of data points). Although it is not clear at this stage why these methods perform so well in training deep neural networks, simpler procedures like properly-tuned SGD may work as well or better in these applications.\n",
|
||
"\n",
|
||
"Geron's text, see chapter 11, has several interesting discussions."
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 3",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.6.6"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|