{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Stochastic Gradient descent\n", "===========================\n", "\n", "*Important:* Please read the [installation page](http://gpeyre.github.io/numerical-tours/installation_python/) for details about how to install the toolboxes.\n", "$\\newcommand{\\dotp}[2]{\\langle #1, #2 \\rangle}$\n", "$\\newcommand{\\enscond}[2]{\\lbrace #1, #2 \\rbrace}$\n", "$\\newcommand{\\pd}[2]{ \\frac{ \\partial #1}{\\partial #2} }$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\umax}[1]{\\underset{#1}{\\max}\\;}$\n", "$\\newcommand{\\umin}[1]{\\underset{#1}{\\min}\\;}$\n", "$\\newcommand{\\uargmin}[1]{\\underset{#1}{argmin}\\;}$\n", "$\\newcommand{\\norm}[1]{\\|#1\\|}$\n", "$\\newcommand{\\abs}[1]{\\left|#1\\right|}$\n", "$\\newcommand{\\choice}[1]{ \\left\\{ \\begin{array}{l} #1 \\end{array} \\right. }$\n", "$\\newcommand{\\pa}[1]{\\left(#1\\right)}$\n", "$\\newcommand{\\diag}[1]{{diag}\\left( #1 \\right)}$\n", "$\\newcommand{\\qandq}{\\quad\\text{and}\\quad}$\n", "$\\newcommand{\\qwhereq}{\\quad\\text{where}\\quad}$\n", "$\\newcommand{\\qifq}{ \\quad \\text{if} \\quad }$\n", "$\\newcommand{\\qarrq}{ \\quad \\Longrightarrow \\quad }$\n", "$\\newcommand{\\ZZ}{\\mathbb{Z}}$\n", "$\\newcommand{\\CC}{\\mathbb{C}}$\n", "$\\newcommand{\\RR}{\\mathbb{R}}$\n", "$\\newcommand{\\EE}{\\mathbb{E}}$\n", "$\\newcommand{\\Zz}{\\mathcal{Z}}$\n", "$\\newcommand{\\Ww}{\\mathcal{W}}$\n", "$\\newcommand{\\Vv}{\\mathcal{V}}$\n", "$\\newcommand{\\Nn}{\\mathcal{N}}$\n", "$\\newcommand{\\NN}{\\mathcal{N}}$\n", "$\\newcommand{\\Hh}{\\mathcal{H}}$\n", "$\\newcommand{\\Bb}{\\mathcal{B}}$\n", "$\\newcommand{\\Ee}{\\mathcal{E}}$\n", "$\\newcommand{\\Cc}{\\mathcal{C}}$\n", "$\\newcommand{\\Gg}{\\mathcal{G}}$\n", "$\\newcommand{\\Ss}{\\mathcal{S}}$\n", "$\\newcommand{\\Pp}{\\mathcal{P}}$\n", "$\\newcommand{\\Ff}{\\mathcal{F}}$\n", "$\\newcommand{\\Xx}{\\mathcal{X}}$\n", "$\\newcommand{\\Mm}{\\mathcal{M}}$\n", "$\\newcommand{\\Ii}{\\mathcal{I}}$\n", "$\\newcommand{\\Dd}{\\mathcal{D}}$\n", "$\\newcommand{\\Ll}{\\mathcal{L}}$\n", "$\\newcommand{\\Tt}{\\mathcal{T}}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\al}{\\alpha}$\n", "$\\newcommand{\\la}{\\lambda}$\n", "$\\newcommand{\\ga}{\\gamma}$\n", "$\\newcommand{\\Ga}{\\Gamma}$\n", "$\\newcommand{\\La}{\\Lambda}$\n", "$\\newcommand{\\si}{\\sigma}$\n", "$\\newcommand{\\Si}{\\Sigma}$\n", "$\\newcommand{\\be}{\\beta}$\n", "$\\newcommand{\\de}{\\delta}$\n", "$\\newcommand{\\De}{\\Delta}$\n", "$\\newcommand{\\phi}{\\varphi}$\n", "$\\newcommand{\\th}{\\theta}$\n", "$\\newcommand{\\om}{\\omega}$\n", "$\\newcommand{\\Om}{\\Omega}$\n", "$\\newcommand{\\eqdef}{\\equiv}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tour details Stochastic Gradient Descent, applied to the binary logistic classification problem.\n", "\n", "We recommend that after doing this Numerical Tours, you apply it to your\n", "own data, for instance using a dataset from [LibSVM](https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/).\n", "\n", "_Disclaimer:_ these machine learning tours are intended to be\n", "overly-simplistic implementations and applications of baseline machine learning methods.\n", "For more advanced uses and implementations, we recommend\n", "to use a state-of-the-art library, the most well known being\n", "[Scikit-Learn](http://scikit-learn.org/)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Usefull function to convert to a column vector." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# convert to a column vector\n", "def MakeCol(y): return y.reshape(-1,1)\n", "# convert to a row vector\n", "def MakeRow(y): return y.reshape(1,-1)\n", "# find non zero/true elements\n", "def find(x): return np.nonzero(x)[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Simple Example\n", "--------------\n", "We first illustrate the concept of stochastic gradient descent on a\n", "simple example\n", "$$ \\umin{x \\in \\RR} f(x) \\eqdef f_1(x) + f_2(x) $$\n", "where $f_1(x) \\eqdef (x-1)^2$ and\n", "$f_2(x) \\eqdef (x+1)^2$.\n", "\n", "\n", "Functions and their derivatives." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def f(x,i):\n", " if i==1:\n", " return 1/2*(x-1)**2\n", " else:\n", " return 1/2*(x+1)**2\n", "def df(x,i):\n", " if i==1:\n", " return x-1\n", " else:\n", " return x+1\n", "def F(x): return f(x,1)+f(x,2)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = np.linspace(-3,3,201)\n", "plt.plot(t,f(t,1))\n", "plt.plot(t,f(t,2))\n", "plt.plot(t,F(t))\n", "plt.legend(('$f_1$', '$f_2$', '$F$'));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each iteration of SGD reads\n", "$$ x_{\\ell+1} = x_\\ell - \\tau_\\ell \\nabla f_{i(\\ell)}(x_\\ell) $$\n", "where $ i(\\ell) \\in \\{1,2\\} $ is drawn uniformly." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 0__\n", "\n", "Implement the SGD, with a random initial condition $x_0$.\n", "Display several paths (i.e. run several times the algorithm)\n", "to vizualize the evolution of the density of the random variable\n", "$x_\\ell$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ncUU2FWelSqwQZs92lnvOHJqRxozhvb70UrY+nnqK5V60iIL0q68sj6e8PI6z8fks99/Nm71Nrvn5\n3i6855yBpP+SAAAgAElEQVRjfZNt2nh751WqxAqkVi26P7dqxb6h/v1ZOWZlsUXyzDPsb3n9dfaf\nuPNxP/uePWOeLCd9hX+s8fwrInXrZnnPrFih9fHHR36sPbxxsGTmsQ2WQs1JbGfjRme4XXvwutde\n4wdlb3EkOrVubfWVhAq9YO5J3bqBHbteKSuLAnXPHrauwlUqwdJnn7FsRlDa07BhzrmRAZq9duxg\n3Bi7MJw3z9u8Fy61bcu8FiywomoafD629KZPtwRMVpZ3S6VXL2rkP/7IZFyNr7giuFnOzaFD7EAO\n93727s13/rLLqPXWrEmTTJ06VAxGjeL2OD1fHOTnB3eH9fnYLzZ2LM143brxftWoETi6t0YNKggm\nKmnVqtTe7RVdx440X5mWkD117kxnj/Hj+WyMeWj5clYa/fvThBcj6Sv8I+3wTUQydvFEJPtUj8mQ\nvvmG2p29ST59Ou+xz0fh9dtvfInbt6e739atofNs2ZK2XftHcu65gXPGZmTQrbVzZ2tdixbOvgp3\nGjqUneLHHBPe48R9rlDbhw5lBZ2Xx+u97DJqtq1bB15brPe6RYtAM45xNx4+PDqlwJ7crr5du1oV\nXKtWbFGZuY8j8fJq354V2aWXsoWWkcF+jC1baD4699zgXk8nnshWx4gR1jq7/T2USbNtW7aObr89\n0Dto40ZrNGx+PvspVq2yTGXjx7MyadjQqmhNy7hHDwr5Y4/1DjUOhG6NmWQq0vPOY39EsBZ88+Zs\niU+axMrVjP4uKKAZadUqhjQxE93ESPoKf61j/wiDJTNNoDudeWZ0+bhtqfZkQjq4O6JD2S8BZ2cm\nQE+UYB9gsDRkCLWZSLVOe+ewsXV27x4oSKMRwu3bM6aR8YF3f1heyavzLlGpVSuaWMx12vn1V5oc\n3HMQnHaaFSPo228peAYOpPlg5UpWIAsWBBcoU6YEentNnMjK0csJYcSI4BFcQ6UnnmAYg3//21np\nfPIJ+4JataK9fdw4aqZuby+TzHtmd21WiiaarVsp2L77jpXM0KG8F+vWcbL5vn2pPY8eTTNPXh5j\n/teoEVrgNmrEyrew0OkNFUsok2jTbbdRIXr+eT6T4cOdCgpghUSfMoXmqiuvZGVgV3jcySssxCWX\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/ml_4_sgd/exo0" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## Insert your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dataset Loading\n", "---------------\n", "We load a subset of the \n", "of $n=10000$ features in dimension $78$. The goal in this task is to learn a classification rule that differentiates between two types of particles generated in high energy collider experiments.\n", "\n", "\n", "\n", "Load the dataset.\n", "Randomly permute it.\n", "Separate the features $X$ from the data $y$ to predict information." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "from scipy import io\n", "name = 'quantum';\n", "U = io.loadmat('nt_toolbox/data/ml-' + name)\n", "A = U['A']\n", "A = A[np.random.permutation(A.shape[0]),:]\n", "X = A[:,0:-1]\n", "y = A[:,-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set the classes indexes to be $\\{-1,+1\\}$." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "y = 2*y-1\n", "# y must be a column vector\n", "y = MakeCol(y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remove empty features, normalize $X$." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "I = find( np.abs(X).mean(axis=0)>1e-1 )\n", "X = X[:,I]\n", "# normalize\n", "X = X-X.mean(axis=0)\n", "X = X/X.std(axis=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$n$ is the number of samples, $p$ is the dimensionality of the features," ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10000 46\n" ] } ], "source": [ "[n,p] = X.shape\n", "print(n,p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute PCA main axes for display." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "U, s, V = np.linalg.svd(X)\n", "Xr = X.dot( V.transpose() )\n", "# display the decay of eigenvalues\n", "plt.plot(s, '.-');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot the classes." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "I = find(y==-1)\n", "J = find(y==+1)\n", "plt.plot(Xr[I[0:200],0], Xr[I[0:200],1], '.')\n", "plt.plot(Xr[J[0:200],0], Xr[J[0:200],1], '.')\n", "plt.axis('equal');" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from mpl_toolkits.mplot3d import Axes3D\n", "fig = plt.figure()\n", "ax = Axes3D(fig)\n", "plt.clf\n", "ax.scatter(Xr[I[0:200],0], Xr[I[0:200],1], Xr[I[0:200],2], '.')\n", "ax.scatter(Xr[J[0:200],0], Xr[J[0:200],1], Xr[J[0:200],2], '.')\n", "plt.axis('tight');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Batch Gradient Descent (BGD)\n", "----------------------------\n", "We first test the usual (batch) gradient descent (BGD) on the problem of\n", "supervised logistic classification.\n", "\n", "\n", "We refer to the dedicated numerical tour on logistic classification for\n", "background and more details about the derivations of the energy and its\n", "gradient.\n", "\n", "\n", "Logistic classification aims at solving the following convex program\n", " $$ \\umin{w} E(w) \\eqdef \\frac{1}{n} \\sum_{i=1}^n L(\\dotp{x_i}{w},y_i) $$\n", "where the logistic loss reads\n", " $$ L( s,y ) \\eqdef \\log( 1+\\exp(-sy) ) $$\n", "\n", "\n", "Define energy $E$ and its gradient $\\nabla E$." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def L(s,y): return 1/n * np.sum( np.log( 1 + np.exp(-s*y) ) )\n", "def E(w,X,y): return L(X.dot(w),y)\n", "def theta(v): return 1 / (1+np.exp(-v))\n", "def nablaL(s,r): return - 1/n * y * theta(-s * y)\n", "def nablaE(w,X,y): return X.transpose().dot( nablaL(X.dot(w),y) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 1__\n", "\n", "Implement a gradient descent\n", "$$ w_{\\ell+1} = w_\\ell - \\tau_\\ell \\nabla E(w_\\ell). $$\n", "Monitor the energy decay.\n", "Test different step size, and compare with the theory (in particular\n", "plot in log domain to illustrate the linear rate)." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/ml_4_sgd/exo1" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "## Insert your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Stochastic Gradient Descent (SGD)\n", "---------------------------------\n", "As any empirical risk minimization procedure, the\n", "logistic classification minimization problem can be written as\n", "$$ \\umin{w} E(w) = \\frac{1}{n} \\sum_i E_i(w) \\qwhereq E_i(w) = L(\\dotp{x_i}{w},y_i). $$\n", "\n", "\n", "For very large $n$ (which could in theory even be infinite, in which case the sum needs to be replaced\n", "by an expectation or equivalenty an integral), computing $\\nabla E$ is prohebitive.\n", "It is possible instead to use a stochastic gradient descent (SGD) scheme\n", " $$ w_{\\ell+1} = w_\\ell - \\tau_\\ell \\nabla E_{i(\\ell)}(w_\\ell) $$\n", "where, for each iteration index $\\ell$, $i(\\ell)$\n", "is drawn uniformly at random in $ \\{1,\\ldots,n\\} $.\n", "\n", "\n", "Note that here\n", "$$ \\nabla E_{i}(w) = x_i \\nabla L( \\dotp{x_i}{w}, y_i )\n", " \\qwhereq \\nabla L(u,v) = v \\odot \\th(-u) $$" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def nablaEi(w,i): return MakeCol( -y[i] * X[i,:].transpose() * theta( -y[i] * (X[i,:].dot(w)) ) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that each step of a batch gradient descent has complexity $O(np)$,\n", "while a step of SGD only has complexity $O(p)$. SGD is thus\n", "advantageous when $n$ is very large, and one cannot afford to do\n", "several passes through the data. In some situation, SGD can provide\n", "accurate results even with $\\ell \\ll n$, exploiting redundancy between\n", "the samples.\n", "\n", "\n", "A crucial question is the choice of step size schedule $\\tau_\\ell$. It\n", "must tends to 0 in order to cancel the noise induced on the gradient by\n", "the stochastic sampling. But it should not go too fast to zero in order\n", "for the method to keep converging.\n", "\n", "\n", "A typical schedule that ensures both properties is to have asymptically $\\tau_\\ell \\sim \\ell^{-1}$ for\n", "$\\ell\\rightarrow +\\infty$. We thus propose to use\n", "$$ \\tau_\\ell \\eqdef \\frac{\\tau_0}{1 + \\ell/\\ell_0} $$\n", "where $\\ell_0$ indicates roughly the number of iterations serving as a\n", "\"warmup\" phase.\n", "\n", "\n", "One can prove the following convergence result\n", " $$ \\EE( E(w_\\ell) ) - E(w^\\star) = O\\pa{ \\frac{1}{\\sqrt{\\ell}} }, $$\n", "where $\\EE$ indicates an expectation with respect to the i.i.d.\n", "sampling performed at each iteration.\n", "\n", "\n", "Select default values for $ (\\ell_0,\\tau_0) $." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "l0 = 100\n", "tau0 = .05" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 2__\n", "\n", "Perform the Stochastic gradient descent.\n", "Display the evolution of the energy $E(w_\\ell)$.\n", "One can overlay on top (black dashed curve) the convergence of the batch gradient descent, with a carefull scaling of the\n", "number of iteration to account for the fact that the complexity of a batch iteration is $n$ times larger.\n", "Perform several runs to illustrate the probabilistic nature of the method.\n", "Explore different values for $ (\\ell_0,\\tau_0) $." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/ml_4_sgd/exo2" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "## Insert your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Stochastic Gradient Descent with Averaging (SGA)\n", "------------------------------------------------\n", "Stochastic gradient descent is slow because of the fast decay of\n", "$\\tau_\\ell$ toward zero.\n", "\n", "\n", "To improve somehow the convergence speed, it is possible to average the past\n", "iterate, i.e. run a \"classical\" SGD on auxiliary variables $ (\\tilde w_\\ell)_\\ell$\n", " $$ \\tilde w_{\\ell+1} = \\tilde w_\\ell - \\tau_\\ell \\nabla E_{i(\\ell)}(\\tilde w_\\ell) $$\n", "and output as estimated weight vector the average\n", "$$ w_\\ell \\eqdef \\frac{1}{\\ell} \\sum_{k=1}^\\ell \\tilde w_\\ell. $$\n", "This defines the Stochastic Gradient Descent with Averaging (SGA)\n", "algorithm.\n", "\n", "\n", "Note that it is possible to avoid explicitely storing all the iterates by simply\n", "updating a running average as follow\n", "$$ w_{\\ell+1} = \\frac{1}{\\ell} \\tilde w_\\ell + \\frac{\\ell-1}{\\ell} w_\\ell. $$\n", "\n", "\n", "In this case, a typical choice of decay is rather of the form\n", "$$ \\tau_\\ell \\eqdef \\frac{\\tau_0}{1 + \\sqrt{\\ell/\\ell_0}}. $$\n", "Notice that the step size now goes much slower to 0, at rate $\\ell^{-1/2}$.\n", "\n", "\n", "Typically, because the averaging stabilizes the iterates, the choice of\n", "$(\\ell_0,\\tau_0)$ is less important than for SGD.\n", "\n", "\n", "[Bach proves that](https://arxiv.org/pdf/1303.6149.pdf) for logistic classification,\n", "it leads to a faster convergence (the constant involved are\n", "smaller) than SGD, since\n", "on contrast to SGD, SGA is adaptive to the local strong convexity of $E$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 3__\n", "\n", "Implement the Stochastic gradient descent with averaging.\n", "Display the evolution of the energy $E(w_\\ell)$." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ncZzU/AWAkjBn4nSn6gAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/ml_4_sgd/exo3" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "## Insert your code here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Stochastic Averaged Gradient Descent (SAG)\n", "------------------------------------------\n", "For problem size $n$ where the dataset (of size $n \\times p$) can\n", "fully fit into memory, it is possible to further improve the SGA method\n", "by bookeeping the previous gradient. This gives rise to the\n", "[Stochastic Averaged Gradient Descent (SAG)](https://arxiv.org/pdf/1309.2388) algorithm.\n", "\n", "\n", "We stored all the previously computed gradient in $ (G^i)_{i=1}^n $,\n", "which necessitate $n \\times p$ memory.\n", "The iterates are defined by using a proxy $g$ for the batch gradient,\n", "which is progressively enhanced during the iterates.\n", "\n", "\n", "The algorithm reads\n", "$$ h \\leftarrow \\nabla E_{i(\\ell)}(\\tilde w_\\ell), $$\n", "$$ g \\leftarrow g - G^{i(\\ell)} + h, $$\n", "$$ G^{i(\\ell)} \\leftarrow h, $$\n", "$$ w_{\\ell+1} = w_\\ell - \\tau g. $$\n", "Note that in contrast to SGD and SGA, this method uses a fixed step\n", "size $\\tau$. Similarely to the BGD, in order to ensure convergence,\n", "the step size $\\tau$ should be of the order of $1/L$\n", "where $L$ is the Lipschitz constant of $E$.\n", "\n", "\n", "This algorithm improves over SGA and BGD\n", "since it has a convergence rate of $O(1/\\ell)$.\n", "Furthermore, in the presence of strong convexity (for instance when $X$ is\n", "injective for logistic classification), it has a linear convergence rate,\n", "i.e.\n", " $$ \\EE( E(w_\\ell) ) - E(w^\\star) = O\\pa{ \\rho^\\ell }, $$\n", "for some $0 < \\rho < 1$.\n", "\n", "\n", "Note that this improvement over SGD and SGA is made possible only because\n", "SAG explictely use the fact that $n$ is finite (while SGD and SGA can\n", "be extended to infinite $n$ and more general minimization of\n", "expectations)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__Exercise 4__\n", "\n", "Implement SAG.\n", "Display the evolution of the energy $E(w_\\ell)$." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "run -i nt_solutions/ml_4_sgd/exo4" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "## Insert your code here." ] }, { "cell_type": "raw", "metadata": {}, "source": [ "" ] } ], "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.7.1" } }, "nbformat": 4, "nbformat_minor": 1 }