{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Gradient Descent Methods\n", "\n", "### Author: Aymeric DIEULEVEUT\n", "\n", "### Read the following two cells before you start clicking everywhere !! :D\n", "\n", "The aim of this material is to implement and compare several optimization methods for Least Squares Regression and Logistic Regression. We focus on the empirical risk minimization problem.\n", "\n", "To do so we will:\n", "\n", "| Part | Objective | What you have to code |\n", "| :- |:- | :- |\n", "| I. | Simulate a linear and logistic model | nothing !|\n", "| II. | Create two classes: ModelLinReg and ModelLogisticReg,| Loss and gradients for the logistic loss |\n", "|| this will allow us to access the gradients and Lipshitz/Smoothness constants of the loss functions|\n", "|III. | Code some methods listed afterwards: GD, SGD, AGD, SVRG, etc. | The update steps|\n", "| |only the most crucial part -- the update step -- has to be implemented|\n", "|IV. | Compare the methods of your choice|nearly nothing: choose your methods |\n", "\n", "\n", "\n", "##### Main methods \n", "- gradient descent (GD)\n", "- accelerated gradient descent (AGD)\n", "- coordinate gradient descent (CD)\n", "- stochastic gradient descent (SGD)\n", "- stochastic variance reduced gradient descent (SVRG)\n", "- optimization methods for Deep Learning\n", "\n", "### Remarks\n", "##### Most of the content is elementary, but serves multiple objectives ...\n", "- hands on on the optimization methods you have encountered\n", "- compare optimization methods (stochastic vs non-stochastic), impact of Variance reduction\n", "- what can we read on convergence curves: deduct convergence speed from the learning curve\n", "- how to obtain a meaningful optimization curve\n", "\n", "##### and can be extended in **many** directions\n", "- framework to play with hyper-parameters \n", "- framework to implement other methods\n", "- back to test error: what happens?\n", "- adapative methods, non uniform sampling in stochastic, federated learning methods, etc." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# How this lab works\n", "\n", "\n", "## Organisation \n", "- Most of the content is already implemented (obviously)\n", "- You have to complete the code when there is a blank with\n", "```` \n", " #\n", " #\n", " # YOUR CODE HERE\n", " #\n", " #\n", "````\n", "- A corrected version will be put online at the end \n", "\n", "## Interactive tool\n", "To follow your progress, adapt correction spped, and provide better feedback, we have developped a tool with Evan Courdier at EPFL:\n", "- At the beginning of the lab, when running the first cell, you will be able to enter your name\n", "- Afterwards, each time a ```send``` function appears, the first argument of the send function (typically the code of your function, a value of an array, a plot, etc), is send to a server, which allows me to follwo your progress, correct some mistakes, etc.\n", "- This is totally transparent for you. The code is OS, all results are erased afterwards. You can use a pseudo if you want (try to make it unique). \n", "\n", "\n", "\n", " If it works: you will get a message after each send. Thank you for helping me give a more interactive (hopefully better) lab!\n", " If it does not, or if really do not want to use the tool Do not try debugging it :D. Just redefine the send function as: ```def send(a,b): return()```\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Table of content\n", "\n", "[1. Introduction](#intro)
\n", "\n", "[2. Models gradients and losses](#models)
\n", "\n", "[2.1 Linear regression](#models_regression)
\n", "[2.2 Check for Linear regression](#models_regression_check)
\n", "[2.3 Logistic regression](#models_logistic)
\n", "[2.4 Check for logistic regression](#models_logistic_check)
\n", "\n", "\n", "[3. Solvers](#solvers)
\n", "\n", "[3.1 Tools for solvers](#tools)
\n", "[3.2 Gradient descent](#gd)
\n", "[3.3 Accelerated Gradient descent](#agd)
\n", "[3.4 Coordinate Gradient descent](#cgd)
\n", "[3.5 Stochastic Gradient descent](#sgd)
\n", "[3.6 Stochastic Average Gradient descent](#sag)
\n", "[3.7 Stochastic Variance Reduced Gradient descent](#svrg)
\n", "[3.8 Adagrad](#adagrad)
\n", "[3.9 RMSProp](#rmsprop)
\n", "[3.10 AdaDelta](#adadelta)
\n", "[3.11 Adam](#adam)
\n", "[3.12 Adamax](#adamax)
\n", "\n", "[4. Comparison of all algorithms](#comparison)
\n", "\n", "\n", "# 1. Introduction\n", "\n", "## 1.1. Getting model weights\n", "\n", "We'll start by generating sparse vectors and simulating data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### TODO BLOCK \n", "- Add newton\n", "- Add hessaien\n", "- ajouter strong convexity\n", "\n", "### Possible directions:\n", "- implement newton\n", "- add Polyak-momentum !\n", "- look at the test loss => here only training loss\n", "- implement the other methods (after next lecture)\n", "\n", "### END TODO BLOCK \n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "\n", "np.set_printoptions(precision=2) # to have simpler print outputs with numpy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.2. Simulation of a linear model" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Your name:Aymeric\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from numpy.random import multivariate_normal\n", "from scipy.linalg.special_matrices import toeplitz\n", "from numpy.random import randn\n", "\n", "import requests\n", "exec(requests.get(\"https://courdier.pythonanywhere.com/get-send-code\").content)\n", "npt_config = {\n", " 'session_name': 'Optimization-Gradient-Methods',\n", " 'session_owner': 'aymeric',\n", " 'sender_name': input(\"Your name:\"),\n", "}\n", "send('start', 0) " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def simu_linreg(w0, n_samples=1000, corr=0.5, std=0.5):\n", " \"\"\"Simulation of a linear regression model with Gaussian features\n", " and a Toeplitz covariance, with Gaussian noise.\n", " \n", " Parameters\n", " ----------\n", " w0 : `numpy.array`, shape=(n_features,)\n", " Model weights\n", " \n", " n_samples : `int`, default=1000\n", " Number of samples to simulate\n", " \n", " corr : `float`, default=0.5\n", " Correlation of the features\n", " \n", " std : `float`, default=0.5\n", " Standard deviation of the noise\n", "\n", " Returns\n", " -------\n", " X : `numpy.ndarray`, shape=(n_samples, n_features)\n", " Simulated features matrix. It contains samples of a centered \n", " Gaussian vector with Toeplitz covariance.\n", " \n", " y : `numpy.array`, shape=(n_samples,)\n", " Simulated labels\n", " \"\"\"\n", " n_features = w0.shape[0]\n", " # Construction of a covariance matrix\n", " cov = toeplitz(corr ** np.arange(0, n_features))\n", " # Simulation of features\n", " X = multivariate_normal(np.zeros(n_features), cov, size=n_samples)\n", " # Simulation of the labels\n", " y = X.dot(w0) + std * randn(n_samples)\n", " return X, y" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n_samples = 500\n", "w0 = np.array([0.5])\n", "\n", "X, y = simu_linreg(w0, n_samples=n_samples, corr=0.3, std=0.5)\n", "plt.scatter(X, y)\n", "plt.xlabel(r\"$x_i$\", fontsize=16)\n", "plt.ylabel(r\"$y_i$\", fontsize=16)\n", "plt.title(\"Linear regression simulation\", fontsize=18)\n", "plt.scatter(X, y, label='data')\n", "plt.legend()\n", "send(plt, 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.3. Simulation of a logistic regression model" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def sigmoid(t):\n", " \"\"\"Sigmoid function (overflow-proof)\"\"\"\n", " idx = t > 0\n", " out = np.empty(t.size) \n", " out[idx] = 1 / (1. + np.exp(-t[idx]))\n", " exp_t = np.exp(t[~idx])\n", " out[~idx] = exp_t / (1. + exp_t)\n", " return out\n", "\n", "def simu_logreg(w0, n_samples=1000, corr=0.5):\n", " \"\"\"Simulation of a logistic regression model with Gaussian features\n", " and a Toeplitz covariance.\n", " \n", " Parameters\n", " ----------\n", " w0 : `numpy.array`, shape=(n_features,)\n", " Model weights\n", " \n", " n_samples : `int`, default=1000\n", " Number of samples to simulate\n", " \n", " corr : `float`, default=0.5\n", " Correlation of the features\n", "\n", " Returns\n", " -------\n", " X : `numpy.ndarray`, shape=(n_samples, n_features)\n", " Simulated features matrix. It contains samples of a centered \n", " Gaussian vector with Toeplitz covariance.\n", " \n", " y : `numpy.array`, shape=(n_samples,)\n", " Simulated labels\n", " \"\"\"\n", " n_features = w0.shape[0]\n", " cov = toeplitz(corr ** np.arange(0, n_features))\n", " X = multivariate_normal(np.zeros(n_features), cov, size=n_samples)\n", " p = sigmoid(X.dot(w0))\n", " y = np.random.binomial(1, p, size=n_samples)\n", " # Put the label in {-1, 1}\n", " y[:] = 2 * y - 1\n", " return X, y" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.73, 0.88, 0.95])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u = np.array([1,2,3])\n", "sigmoid(u)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n_samples = 500\n", "w0 = np.array([-3, 3.])\n", "\n", "X, y = simu_logreg(w0, n_samples=n_samples, corr=0.4)\n", "\n", "plt.scatter(*X[y == 1].T, color='b', s=10, label=r'$y_i=1$')\n", "plt.scatter(*X[y == -1].T, color='r', s=10, label=r'$y_i=-1$')\n", "plt.legend(loc='upper left')\n", "plt.xlabel(r\"$x_i^1$\", fontsize=16)\n", "plt.ylabel(r\"$x_i^2$\", fontsize=16)\n", "plt.title(\"Logistic regression simulation\", fontsize=18)\n", "send(plt, 2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# 2. Models gradients and losses\n", "\n", "We want to minimize a goodness-of-fit function $f$ with ridge regularization, namely\n", "$$\n", "\\arg\\min_{w \\in \\mathbb R^d} \\Big\\{ f(w) + \\frac{\\lambda}{2} \\|w\\|_2^2 \\Big\\}\n", "$$\n", "where $d$ is the number of features and where we will assume that $f$ is $L$-smooth.\n", "We will consider below the following cases.\n", "\n", "**Linear regression**, where \n", "$$\n", "f(w) = \\frac 1n \\sum_{i=1}^n f_i(w) = \\frac{1}{2n} \\sum_{i=1}^n (y_i - x_i^\\top w)^2 + \\frac{\\lambda}{2} \\|w\\|_2^2 = \\frac{1}{2 n} \\| y - X w \\|_2^2 + \\frac{\\lambda}{2} \\|w\\|_2^2,\n", "$$\n", "where $n$ is the sample size, $y = [y_1 \\cdots y_n]$ is the vector of labels and $X$ is the matrix of features with lines containing the features vectors $x_i \\in \\mathbb R^d$.\n", "\n", "**Logistic regression**, where\n", "$$\n", "f(w) = \\frac 1n \\sum_{i=1}^n f_i(w) = \\frac{1}{n} \\sum_{i=1}^n \\log(1 + \\exp(-y_i x_i^\\top w)) + \\frac{\\lambda}{2} \\|w\\|_2^2,\n", "$$\n", "where $n$ is the sample size, and where labels $y_i \\in \\{ -1, 1 \\}$ for all $i$.\n", "\n", "We need to be able to compute $f(w)$ and its gradient $\\nabla f(w)$, in order to solve this problem, as well as $\\nabla f_i(w)$ for stochastic gradient descent methods and $\\frac{\\partial f(w)}{\\partial w_j}$ for coordinate descent.\n", "\n", "Below is the full implementation for linear regression.\n", "\n", "\n", "\n", "## 2.1 Linear regression" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true, "scrolled": false }, "outputs": [], "source": [ "from numpy.linalg import norm\n", "\n", "\n", "class ModelLinReg:\n", " \"\"\"A class giving first order information for linear regression\n", " with least-squares loss\n", " \n", " Parameters\n", " ----------\n", " X : `numpy.array`, shape=(n_samples, n_features)\n", " The features matrix\n", " \n", " y : `numpy.array`, shape=(n_samples,)\n", " The vector of labels\n", " \n", " strength : `float`\n", " The strength of ridge penalization\n", " \"\"\" \n", " def __init__(self, X, y, strength):\n", " self.X = X\n", " self.y = y\n", " self.strength = strength\n", " self.n_samples, self.n_features = X.shape\n", " \n", " def loss(self, w):\n", " \"\"\"Computes f(w)\"\"\"\n", " y, X, n_samples, strength = self.y, self.X, self.n_samples, self.strength\n", " return 0.5 * norm(y - X.dot(w)) ** 2 / n_samples + strength * norm(w) ** 2 / 2\n", " \n", " def grad(self, w):\n", " \"\"\"Computes the gradient of f at w\"\"\"\n", " y, X, n_samples, strength = self.y, self.X, self.n_samples, self.strength\n", " return X.T.dot(X.dot(w) - y) / n_samples + strength * w\n", "\n", " def grad_i(self, i, w):\n", " \"\"\"Computes the gradient of f_i at w\"\"\"\n", " x_i = self.X[i]\n", " return (x_i.dot(w) - y[i]) * x_i + self.strength * w\n", "\n", " def grad_coordinate(self, j, w):\n", " \"\"\"Computes the partial derivative of f with respect to \n", " the j-th coordinate\"\"\"\n", " y, X, n_samples, strength = self.y, self.X, self.n_samples, self.strength\n", " return X[:, j].T.dot(X.dot(w) - y) / n_samples + strength * w[j]\n", "\n", " def lip(self):\n", " \"\"\"Computes the Lipschitz constant of the gradients of f\"\"\"\n", " X, n_samples = self.X, self.n_samples\n", " return norm(X.T.dot(X), 2) / n_samples + self.strength\n", "\n", " def lip_coordinates(self):\n", " \"\"\"Computes the Lipschitz constant of the gradients of f with respect to \n", " the j-th coordinate\"\"\"\n", " X, n_samples = self.X, self.n_samples\n", " return (X ** 2).sum(axis=0) / n_samples + self.strength\n", " \n", " def lip_max(self):\n", " \"\"\"Computes the maximum of the lipschitz constants of the gradients of f_i\"\"\"\n", " X, n_samples = self.X, self.n_samples\n", " return ((X ** 2).sum(axis=1) + self.strength).max()\n", " \n", " def hessian(self):\n", " X, n_samples = self.X, self.n_samples\n", " return(X.T.dot(X))/ n_samples + self.strength" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## 2.2 Checks for the linear regression model" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dieuleve/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:9: UserWarning: In Matplotlib 3.3 individual lines on a stem plot will be added as a LineCollection instead of individual lines. This significantly improves the performance of a stem plot. To remove this warning and switch to the new behaviour, set the \"use_line_collection\" keyword argument to True.\n", " if __name__ == '__main__':\n" ] }, { "data": { "text/plain": [ "Text(0.5, 1.0, 'Model weights')" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Simulation setting\n", "n_features = 50\n", "nnz = 20\n", "idx = np.arange(n_features)\n", "w0 = (-1) ** (idx + 1) * np.exp(-idx / 10.)\n", "w0[nnz:] = 0.\n", "\n", "plt.figure(figsize=(5, 3))\n", "plt.stem(w0)\n", "plt.title(\"Model weights\")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4.02584090429952e-06\n" ] } ], "source": [ "from scipy.optimize import check_grad\n", "\n", "X, y = simu_linreg(w0, corr=0.6)\n", "model = ModelLinReg(X, y, strength=1e-3)\n", "w = np.random.randn(n_features)\n", "\n", "send(float(check_grad(model.loss, model.grad, w)), 3)\n", "print(check_grad(model.loss, model.grad, w)) # This must be a number (of order 1e-6)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "lip= 4.119437564876499\n", "lip_max= 106.80950856239404\n", "lip_coordinates= [0.99 0.99 1.01 1.03 0.98 0.99 1.02 1.03 0.97 0.9 1.03 1.04 1.08 1.06\n", " 1.07 0.95 0.98 0.98 1.01 1.04 1.01 1.01 0.96 1. 1.02 1.06 1.03 0.95\n", " 0.96 1.01 1.05 1.06 1.03 0.95 0.97 1.01 1.1 1.02 0.95 0.92 0.98 0.98\n", " 1.1 1. 1.01 1.05 1.08 1.02 1.04 0.98]\n" ] } ], "source": [ "print(\"lip=\", model.lip())\n", "print(\"lip_max=\", model.lip_max())\n", "print(\"lip_coordinates=\", model.lip_coordinates())" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(50, 50)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.hessian().shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## 2.3 Logistic regression\n", "\n", "**1) Compute (on paper) the gradient $\\nabla f$, the gradient of $\\nabla f_i$ and the gradient of the coordinate function $\\frac{\\partial f(w)}{\\partial w_j}$ of $f$ for logistic regression (fill the class given below).**\n", "\n", "**2) Fill in the functions below for the computation of $f$, $\\nabla f$, $\\nabla f_i$ and $\\frac{\\partial f(w)}{\\partial w_j}$ for logistic regression in the ModelLogReg class below.**" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class ModelLogReg:\n", " \"\"\"A class giving first order information for logistic regression\n", " \n", " Parameters\n", " ----------\n", " X : `numpy.array`, shape=(n_samples, n_features)\n", " The features matrix\n", " \n", " y : `numpy.array`, shape=(n_samples,)\n", " The vector of labels\n", " \n", " strength : `float`\n", " The strength of ridge penalization\n", " \"\"\" \n", " def __init__(self, X, y, strength):\n", " self.X = X\n", " self.y = y\n", " self.strength = strength\n", " self.n_samples, self.n_features = X.shape\n", " \n", " def loss(self, w):\n", " \"\"\"Computes f(w)\"\"\"\n", " y, X, n_samples, strength = self.y, self.X, self.n_samples, self.strength\n", " ### TODO BLOCK\n", " return np.mean(np.log(1+np.exp(- y * (X.dot(w))))) + strength * norm(w) ** 2 / 2\n", " ### END TODO BLOCK\n", " \n", " def grad(self, w):\n", " \"\"\"Computes the gradient of f at w\"\"\"\n", " y, X, n_samples, strength = self.y, self.X, self.n_samples, self.strength\n", " ### TODO BLOCK\n", " u = y*np.exp(- y * (X.dot(w)))/(1 + np.exp(- y * (X.dot(w))))\n", " return - (X.T.dot(u))/n_samples + strength * w\n", " ### END TODO BLOCK\n", " \n", " def grad_i(self, i, w):\n", " \"\"\"Computes the gradient of f_i at w\"\"\"\n", " x_i = self.X[i]\n", " strength = self.strength\n", " ### TODO BLOCK\n", " u = y[i]*np.exp(- y[i] * (x_i.dot(w)))/(1 + np.exp(- y[i] * (x_i.dot(w))))\n", " return (- u*x_i + strength * w)\n", " ### END TODO BLOCK\n", " \n", " def grad_coordinate(self, j, w):\n", " \"\"\"Computes the partial derivative of f with respect to \n", " the j-th coordinate\"\"\"\n", " y, X, n_samples, strength = self.y, self.X, self.n_samples, self.strength\n", " u = y*np.exp(- y * (X.dot(w)))/(1 + np.exp(- y * (X.dot(w))))\n", " return - (X[:, j].T.dot(u))/n_samples + strength * w[j]\n", "\n", "\n", " def lip(self):\n", " \"\"\"Computes (an upper bound on) the Lipschitz constant of the gradient of f\"\"\"\n", " X, n_samples = self.X, self.n_samples\n", "\n", " return norm(X.T.dot(X), 2) / (4*n_samples) + self.strength\n", "\n", "\n", " def lip_coordinates(self):\n", " \"\"\"Computes (an upper bound on) the Lipschitz constant of the gradient of f with respect to \n", " the j-th coordinate\"\"\"\n", " X, n_samples = self.X, self.n_samples\n", "\n", " return (X ** 2).sum(axis=0) / (4*n_samples) + self.strength\n", "\n", "\n", " def lip_max(self):\n", " \"\"\"Computes (an upper bound on) the maximum of the lipschitz constants of the gradients of f_i\"\"\"\n", " X, n_samples = self.X, self.n_samples\n", " return ((X ** 2).sum(axis=1)/4 + self.strength).max()\n", "\n", " \n", " def hessian(self):\n", " X, n_samples = self.X, self.n_samples\n", " ### TODO BLOCK\n", " return ((X ** 2).sum(axis=1)/4 + self.strength).max()\n", " ### END TODO BLOCK\n", " \n", "send(ModelLogReg.loss, 4)\n", "send(ModelLogReg.grad, 5)\n", "send(ModelLogReg.grad_i, 6)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "## 2.4 Checks for the logistic regression model\n", "\n", "**3) Use the function `simu_logreg` to simulate data according to the logistic regression model. Check numerically the gradient using the function ``checkgrad`` from ``scipy.optimize``, as we did for linear regression above.**" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/dieuleve/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:9: UserWarning: In Matplotlib 3.3 individual lines on a stem plot will be added as a LineCollection instead of individual lines. This significantly improves the performance of a stem plot. To remove this warning and switch to the new behaviour, set the \"use_line_collection\" keyword argument to True.\n", " if __name__ == '__main__':\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Checkgrad returns 1.35e-07\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Simulation setting\n", "n_features = 50\n", "nnz = 20\n", "idx = np.arange(n_features)\n", "w0 = (-1) ** (idx + 1) * np.exp(-idx / 10.)\n", "w0[nnz:] = 0.\n", "\n", "plt.figure(figsize=(5, 3))\n", "plt.stem(w0)\n", "plt.title(\"Model weights\")\n", "\n", "from scipy.optimize import check_grad\n", "\n", "\n", "\n", "### TODO BLOCK\n", "X, y = simu_logreg(w0, corr=0.6)\n", "model = ModelLogReg(X, y, strength=1e-3)\n", "w = np.random.randn(n_features)\n", "### END TODO BLOCK\n", "send('Checkgrad returns %.2e' % (check_grad(model.loss, model.grad, w)), 7)\n", "print('Checkgrad returns %.2e' % (check_grad(model.loss, model.grad, w))) # This must be a number (of order 1e-6)\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "lip= 1.0237015259535096\n", "lip_max= 29.27794104389502\n", "lip_coordinates= [0.25 0.25 0.25 0.23 0.24 0.25 0.24 0.23 0.24 0.24 0.24 0.26 0.25 0.24\n", " 0.25 0.25 0.24 0.25 0.24 0.24 0.26 0.25 0.25 0.25 0.28 0.26 0.26 0.25\n", " 0.23 0.25 0.25 0.26 0.26 0.26 0.26 0.27 0.24 0.26 0.25 0.25 0.25 0.25\n", " 0.23 0.24 0.24 0.25 0.26 0.25 0.24 0.24]\n" ] } ], "source": [ "print(\"lip=\", model.lip())\n", "print(\"lip_max=\", model.lip_max())\n", "print(\"lip_coordinates=\", model.lip_coordinates())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3. Solvers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now have classes `ModelLinReg` and `ModelLogReg` that allow to compute $f(w)$, $\\nabla f(w)$, \n", "$\\nabla f_i(w)$ and $\\frac{\\partial f(w)}{\\partial w_j}$ for the objective $f$\n", "given by linear and logistic regression. We want now to code and compare several solvers to minimize $f$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3.1. Tools for the solvers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following tools store the loss after each epoch" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Starting point of all solvers\n", "w0 = np.zeros(model.n_features)\n", "\n", "# Number of iterations\n", "n_iter = 50\n", "\n", "# Random samples indices for the stochastic solvers (sgd, sag, svrg) \n", "idx_samples = np.random.randint(0, model.n_samples, model.n_samples * n_iter)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def inspector(model, n_iter, verbose=True):\n", " \"\"\"A closure called to update metrics after each iteration.\n", " Don't even look at it, we'll just use it in the solvers.\"\"\"\n", " objectives = []\n", " it = [0] # This is a hack to be able to modify 'it' inside the closure.\n", " def inspector_cl(w):\n", " obj = model.loss(w)\n", " objectives.append(obj)\n", " if verbose == True:\n", " if it[0] == 0:\n", " print(' | '.join([name.center(8) for name in [\"it\", \"obj\"]]))\n", " if it[0] % (n_iter / 5) == 0:\n", " print(' | '.join([(\"%d\" % it[0]).rjust(8), (\"%.6e\" % obj).rjust(8)]))\n", " it[0] += 1\n", " inspector_cl.objectives = objectives\n", " return inspector_cl" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3.2 Gradient descent\n", "\n", "\n", "**4) Finish the function `gd` below that implements the gradient descent algorithm and test it using the next cell.**" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def gd(model, w0, step, n_iter, callback, verbose=True):\n", " \"\"\"Gradient descent\n", " \"\"\"\n", " #step = 1 / model.lip()\n", " w = w0.copy()\n", " w_new = w0.copy()\n", " if verbose:\n", " print(\"Lauching GD solver...\")\n", " callback(w)\n", " for k in range(n_iter + 1):\n", " ### TODO BLOCK\n", " w_new[:] = w - step * model.grad(w)\n", " w[:] = w_new # Remark : does operation inplace\n", " ### END TODO BLOCK\n", " callback(w)\n", " return w\n", "send(gd, 8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The following code runs GD and stores the objectivre values" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lauching GD solver...\n", " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.821132e-01\n", " 20 | 5.548963e-01\n", " 30 | 5.438910e-01\n", " 40 | 5.388069e-01\n", " 50 | 5.362730e-01\n" ] } ], "source": [ "callback_gd = inspector(model, n_iter=n_iter)\n", "w_gd = gd(model, w0, step= 1/model.lip(), n_iter=n_iter, callback=callback_gd)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Which step size was chosen?\n", "- What is the expected rate of convergence?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3.3 Accelerated gradient descent\n", "\n", "**5) Finish the function `agd` below that implements the accelerated gradient descent algorithm and test it using the next cell.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What choice of momentum coefficient is recommended for AGD ?\n", "- for strongly convex\n", "- for convex functions\n", "\n", "Here you can make different choices:\n", "- an arbitrary value (0.9)\n", "- using the strong convexity\n", "- using only convexity" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def agd(model, w0, n_iter, callback, verbose=True):\n", " \"\"\"Accelerated gradient descent\n", " \"\"\"\n", " mu = model.strength\n", " step = 1 / model.lip()\n", " w = w0.copy()\n", " w_new = w0.copy()\n", " # An extra variable is required for acceleration\n", " z = w0.copy() # the auxiliari point at which the gradient is taken\n", " t = 1. # beta this morning = momentum coefficient \n", " t_new = 1. \n", " if verbose:\n", " print(\"Lauching AGD solver...\")\n", " callback(w)\n", " for k in range(n_iter + 1):\n", " ### TODO BLOCK\n", " w_new[:] = z - step * model.grad(z)\n", " \n", " # Trivial choice\n", " # t_new = 0.9\n", " \n", " t_new = (1. + (1. + 4. * t * t) ** (0.5)) / 2. # Optimal momentum coefficinet for smooth convex\n", " beta = (t - 1) / t_new\n", " # see https://blogs.princeton.edu/imabandit/2018/11/21/a-short-proof-for-nesterovs-momentum/\n", " # Simpler choice:\n", " beta = k/(k+3)\n", " \n", " # t_new = k/k+3 (other solution in convex)\n", "# if mu >0 :\n", "# kappa = (model.lip())/(mu)\n", "# beta = (1-(1/kappa)**0.5 )/(1+(1/kappa)**0.5) # For strongly convex\n", " # see https://blogs.princeton.edu/imabandit/2014/03/06/nesterovs-accelerated-gradient-descent-for-smooth-and-strongly-convex-optimization/\n", "\n", " \n", " z[:] = w_new + beta * (w_new - w)\n", " t = t_new\n", " w[:] = w_new\n", " ### END TODO BLOCK \n", " callback(w)\n", " return w\n", "\n", "send(agd, 9)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lauching AGD solver...\n", " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.532204e-01\n", " 20 | 5.333628e-01\n", " 30 | 5.337240e-01\n", " 40 | 5.333184e-01\n", " 50 | 5.333691e-01\n" ] } ], "source": [ "callback_agd = inspector(model, n_iter=n_iter)\n", "w_agd = agd(model, w0, n_iter=n_iter, callback=callback_agd)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## 3.4 Coordinate gradient descent\n", "\n", "**6) Finish the function `cgd` below that implements the coordinate gradient descent algorithm and test it using the next cell.**" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def cgd(model, w0, n_iter, callback, verbose=True):\n", " \"\"\"Coordinate gradient descent\n", " \"\"\"\n", " w = w0.copy()\n", " n_features = model.n_features\n", " steps = 1 / model.lip_coordinates()\n", " if verbose:\n", " print(\"Lauching CGD solver...\")\n", " callback(w)\n", " for k in range(n_iter + 1):\n", " ### TODO BLOCK\n", " for j in range(n_features): # 50 features\n", " w[j] -= steps[j] * model.grad_coordinate(j, w) # \n", " ### END TODO BLOCK\n", " callback(w)\n", " return w\n", "send(cgd, 10)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lauching CGD solver...\n", " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.342090e-01\n", " 20 | 5.333405e-01\n", " 30 | 5.333165e-01\n", " 40 | 5.333157e-01\n", " 50 | 5.333157e-01\n" ] } ], "source": [ "callback_cgd = inspector(model, n_iter=n_iter)\n", "w_cgd = cgd(model, w0, n_iter=n_iter, callback=callback_cgd)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3.5. Stochastic gradient descent\n", "\n", "**7) Finish the function `sgd` below that implements the st stochastic gradient descent algorithm and test it using the next cell.**" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def sgd(model, w0, idx_samples, n_iter, step, callback, verbose=True):\n", " \"\"\"Stochastic gradient descent\n", " \"\"\"\n", " mu = model.strength\n", " w = w0.copy()\n", " w_ave = w0.copy()\n", " callback(w)\n", " n_samples = model.n_samples\n", " for idx in range(n_iter):\n", " i = idx_samples[idx]\n", " ### TODO BLOCK\n", " w -= step * model.grad_i(\n", " i, w) / (np.sqrt(idx + 1)) # decays at 1/sqrt{k} good choice for convex functions\n", " # decent choice for strongly convex\n", " # also possible to use (max(mu*(idx + 1), model.lip())) (choice in the slides)\n", "\n", " #w_ave = idx/(idx+1)*w_ave + 1/(idx+1)*w\n", "#\n", " ## IMPLEMENT PR AVERAGE\n", "\n", " ### END TODO BLOCK # every n_samples iterations\n", " if idx % n_samples == 0:\n", " callback(w) #w_ave\n", " return w\n", "\n", "\n", "send(sgd, 11)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.614949e-01\n", " 20 | 5.486954e-01\n", " 30 | 5.437718e-01\n", " 40 | 5.406331e-01\n", " 50 | 5.386412e-01\n" ] } ], "source": [ "step = 0.1\n", "callback_sgd = inspector(model, n_iter=n_iter)\n", "w_sgd = sgd(model, w0, idx_samples, n_iter=model.n_samples * n_iter, \n", " step=step, callback=callback_sgd)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Which of the method is the fastest during the first 5 passes over the data?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3.6. Stochastic average gradient descent\n", "\n", "\n", "**8) Finish the function `sag` below that implements the stochastic averaged gradient algorithm and test it using the next cell.**" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def sag(model, w0, idx_samples, n_iter, step, callback, verbose=True):\n", " \"\"\"Stochastic average gradient descent\n", " \"\"\"\n", " w = w0.copy()\n", " n_samples, n_features = model.n_samples, model.n_features\n", " gradient_memory = np.zeros((n_samples, n_features)) # one gradient per sample n= 60k, d= 50M => 3 10^12\n", " y = np.zeros(n_features)\n", " callback(w)\n", " for idx in range(n_iter):\n", " i = idx_samples[idx] \n", " ### TODO BLOCK\n", " y_new = model.grad_i(i, w)\n", " y += (y_new - gradient_memory[i]) / n_samples\n", " gradient_memory[i] = y_new\n", " w -= step * y\n", " ### END TODO BLOCK \n", " if idx % n_samples == 0:\n", " callback(w)\n", " return w\n", "send(sag, 12)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.347288e-01\n", " 20 | 5.333250e-01\n", " 30 | 5.333158e-01\n", " 40 | 5.333157e-01\n", " 50 | 5.333157e-01\n" ] } ], "source": [ "step = 1 / model.lip_max()\n", "callback_sag = inspector(model, n_iter=n_iter)\n", "w_sag = sag(model, w0, idx_samples, n_iter=model.n_samples * n_iter, \n", " step=step, callback=callback_sag)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- What happens during the first pass of SAG?\n", "- What is the main problem of SAG?\n", "- What is the size of the gradient_memory matrix?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## 3.7. Stochastic variance reduced gradient\n", "\n", "**9) Finish the function `svrg` below that implements the stochastic variance reduced gradient algorithm and test it using the next cell.**" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def svrg(model, w0, idx_samples, n_iter, step, callback, verbose=True):\n", " \"\"\"Stochastic variance reduced gradient descent\n", " \"\"\"\n", " w = w0.copy()\n", " w_old = w.copy()\n", " temp_sum = 0\n", " n_samples = model.n_samples\n", " callback(w)\n", " for idx in range(n_iter): \n", " ### TODO BLOCK\n", " if idx % n_samples == 0:\n", " w_old[:] = temp_sum/n_samples\n", " mu = model.grad(w)\n", " temp_sum = 0\n", " i = idx_samples[idx]\n", " z_new = model.grad_i(i, w)\n", " z_old = model.grad_i(i, w_old) ### w_old is the only thinng I keep, I can recompute the gradient f_i (w_old)\n", " ## SVRG trades memory for computation\n", " w -= step * (z_new - z_old + mu)\n", " temp_sum += w\n", " ### END TODO BLOCK \n", " if idx % n_samples == 0:\n", " callback(w)\n", " return \n", "send(svrg, 13)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.338192e-01\n", " 20 | 5.333162e-01\n", " 30 | 5.333157e-01\n", " 40 | 5.333157e-01\n", " 50 | 5.333157e-01\n" ] } ], "source": [ "step = 1 / model.lip_max()\n", "callback_svrg = inspector(model, n_iter=n_iter)\n", "w_svrg = svrg(model, w0, idx_samples, n_iter=model.n_samples * n_iter,\n", " step=step, callback=callback_svrg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## 3.8.1 ADAGRAD\n", "\n", "**10) Create the function `adagrad` that implements the adagrad solver and test it.**" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "##################\n", "\n", "\n", "def adagrad(model, w0, n_iter, step, callback, verbose=True):\n", " \"\"\"Adagrad\"\"\"\n", "### TODO BLOCK\n", " w = w0.copy()\n", " n_features = model.n_features\n", " sum_gradient_square = np.zeros(n_features)\n", " if verbose:\n", " print(\"Lauching Adagrad solver...\")\n", " callback(w)\n", " for k in range(n_iter + 1):\n", " gradient = model.grad(w)\n", " sum_gradient_square += gradient**2\n", " w -= (step/(np.sqrt(sum_gradient_square)))*gradient\n", " callback(w)\n", " return w\n", "\n", "### END TODO BLOCK\n", "##################\n", "send(adagrad, 14)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lauching Adagrad solver...\n", " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.706179e-01\n", " 20 | 5.501441e-01\n", " 30 | 5.421541e-01\n", " 40 | 5.382803e-01\n", " 50 | 5.362121e-01\n" ] } ], "source": [ "##################\n", "### TODO BLOCK\n", "\n", "step = 0.1\n", "callback_adagrad = inspector(model, n_iter=n_iter)\n", "w_adagrad = adagrad(model, w0, n_iter=n_iter,\n", " step=step, callback=callback_adagrad)\n", "\n", "### END TODO BLOCK\n", "##################" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- What is the set of parameters for ADAGRAD? \n", "- What are default choices for those parameters?\n", "- Is Adagrad typically implemented with deterministic or Stochastic Gradients?" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## HIDE CELL\n", "# Above, Adagrad is implemented with deterministic gradients. In deep learning, \n", "# it is normally used with minibatch stocahstic gradients.\n", "# The same remark applies to following algorithms.\n", "\n", "# A comparison of both algorithms is proposed at the end of the corrected lab as expected, \n", "#the stochastic variant is faster at the beginning but slower at the end" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Do/Shall we use momentum for adagrad adadelta, etc?\n", "# - we should\n", "# - for simplicity, we don't" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## 3.8.2 ADAGRAD_Stochastic\n", "\n", "**10 bis) Create the function `adagrad` that implements the adagrad solver and test it.**" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "##################\n", "\n", "\n", "def adagrad_Sto(model, w0, idx_samples, n_iter, step, callback, verbose=True):\n", " \"\"\"Adagrad\"\"\"\n", "### TODO BLOCK\n", " w = w0.copy()\n", " n_features = model.n_features\n", " sum_gradient_square = np.zeros(n_features)\n", " n_samples = model.n_samples\n", "\n", " if verbose:\n", " print(\"Lauching Adagrad_sto solver...\")\n", " callback(w)\n", " for idx in range(n_iter): \n", " i = idx_samples[idx]\n", " ### TODO BLOCK\n", " gradient = model.grad_i(i, w)\n", " sum_gradient_square += gradient**2\n", " w -= (step/(np.sqrt(sum_gradient_square)))*gradient\n", " if idx % n_samples == 0:\n", " callback(w)\n", " return w\n", "\n", "### END TODO BLOCK\n", "##################\n", "send(adagrad, 15)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lauching Adagrad_sto solver...\n", " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.452157e-01\n", " 20 | 5.379380e-01\n", " 30 | 5.361054e-01\n", " 40 | 5.373425e-01\n", " 50 | 5.355549e-01\n", " 60 | 5.355232e-01\n", " 70 | 5.350351e-01\n", " 80 | 5.370499e-01\n", " 90 | 5.356396e-01\n", " 100 | 5.344903e-01\n", " 110 | 5.354999e-01\n", " 120 | 5.348031e-01\n", " 130 | 5.348061e-01\n", " 140 | 5.343533e-01\n", " 150 | 5.348028e-01\n", " 160 | 5.346259e-01\n", " 170 | 5.345191e-01\n", " 180 | 5.348330e-01\n", " 190 | 5.339849e-01\n", " 200 | 5.346278e-01\n", " 210 | 5.339300e-01\n", " 220 | 5.345660e-01\n", " 230 | 5.342803e-01\n", " 240 | 5.340435e-01\n", " 250 | 5.342687e-01\n", " 260 | 5.343646e-01\n", " 270 | 5.344716e-01\n", " 280 | 5.342741e-01\n", " 290 | 5.341847e-01\n", " 300 | 5.344740e-01\n", " 310 | 5.346699e-01\n", " 320 | 5.339310e-01\n", " 330 | 5.341955e-01\n", " 340 | 5.340637e-01\n", " 350 | 5.338411e-01\n", " 360 | 5.344772e-01\n", " 370 | 5.342774e-01\n", " 380 | 5.338179e-01\n", " 390 | 5.339344e-01\n", " 400 | 5.345135e-01\n", " 410 | 5.341583e-01\n", " 420 | 5.340019e-01\n", " 430 | 5.342117e-01\n", " 440 | 5.341370e-01\n", " 450 | 5.338839e-01\n", " 460 | 5.338130e-01\n", " 470 | 5.342212e-01\n", " 480 | 5.339708e-01\n", " 490 | 5.342176e-01\n", " 500 | 5.338506e-01\n" ] } ], "source": [ "##################\n", "### TODO BLOCK\n", "idx_samples_loc = np.random.randint(0, model.n_samples, 10*model.n_samples * n_iter)\n", "step = 0.1\n", "callback_adagrad_sto = inspector(model, n_iter = n_iter)\n", "w_adagrad = adagrad_Sto(model, w0, idx_samples_loc, n_iter=10*model.n_samples *n_iter,\n", " step=step, callback=callback_adagrad_sto)\n", "\n", "### END TODO BLOCK\n", "##################" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "## 3.9 RMSProp\n", "\n", "**11) Create the function `rmsprop` that implements the RMSProp solver and test it.**" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "\n", "def rmsprop(model, w0, n_iter, step, rho, epsilon, callback, verbose=True):\n", "##################\n", "### TODO BLOCK\n", " \"\"\"RMSProp\"\"\"\n", " w = w0.copy()\n", " n_features = model.n_features\n", " accumulated_square_gradient = np.zeros(n_features)\n", " if verbose:\n", " print(\"Lauching RMSProp solver...\")\n", " callback(w)\n", " for k in range(n_iter + 1):\n", " gradient = model.grad(w)\n", " accumulated_square_gradient = rho*accumulated_square_gradient + (1-rho) *(gradient)**2\n", " w -= (step/(np.sqrt(accumulated_square_gradient + epsilon)))*gradient \n", " callback(w)\n", " return w\n", "\n", "### END TODO BLOCK\n", "##################\n", "send(rmsprop, 16)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- What is the set of parameters for RMSPROP? \n", "- What are default choices for those parameters?\n", "- Is RMSPROP typically implemented with deterministic or Stochastic Gradients?" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lauching RMSProp solver...\n", " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 6.190380e-01\n", " 20 | 5.924992e-01\n", " 30 | 5.748843e-01\n", " 40 | 5.624521e-01\n", " 50 | 5.529484e-01\n" ] } ], "source": [ "##################\n", "### TODO BLOCK\n", "\n", "step = 0.01\n", "rho = 0.9\n", "epsilon = 0.000001\n", "callback_rmsprop = inspector(model, n_iter=n_iter)\n", "w_rmsprop = rmsprop(model, w0, n_iter=n_iter, step = step,\n", " rho = rho, epsilon = epsilon, callback=callback_rmsprop)\n", "\n", "### END TODO BLOCK\n", "##################" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## 3.10 AdaDelta\n", "\n", "**12) Create the function `adadelta` that implements adadelta solver and test it.**" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def adadelta(model, w0, n_iter, rho, epsilon, callback, verbose=True):\n", " ##################\n", " ### TODO BLOCK\n", " \"\"\"Adadelta\"\"\"\n", " w = w0.copy()\n", " w_old = w0.copy()\n", " n_features = model.n_features\n", " accumulated_square_gradient = np.zeros(n_features)\n", " accumulated_square_weights = np.zeros(n_features)\n", " if verbose:\n", " print(\"Lauching Adadelta solver...\")\n", " callback(w)\n", " for k in range(n_iter + 1):\n", " gradient = model.grad(w)\n", " accumulated_square_gradient = rho * accumulated_square_gradient + (\n", " 1 - rho) * (gradient)**2\n", " w_old[:] = w[:]\n", " w -= ((np.sqrt(accumulated_square_weights + epsilon)) /\n", " (np.sqrt(accumulated_square_gradient + epsilon))) * (gradient)\n", " accumulated_square_weights = rho * accumulated_square_weights + (\n", " 1 - rho) * (w - w_old)**2\n", " callback(w)\n", " return w\n", "\n", "\n", "### END TODO BLOCK\n", "##################\n", "send(adadelta, 17)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- What is the set of parameters for AdaDelta? \n", "- What are default choices for those parameters? Compare r= 0.95 and rho = 0.999\n", "\n", "- What is Adadelta equivalent to for rho =1 (GD with step size 1)\n", "\n", "- Is AdaDelta typically implemented with deterministic or Stochastic Gradients?" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lauching Adadelta solver...\n", " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 6.458289e-01\n", " 20 | 6.192451e-01\n", " 30 | 6.007360e-01\n", " 40 | 5.871770e-01\n", " 50 | 5.769341e-01\n" ] } ], "source": [ "##################\n", "### TODO BLOCK\n", "\n", "rho = 0.95\n", "rho = 0.99\n", "epsilon = 0.000001\n", "callback_adadelta = inspector(model, n_iter=n_iter)\n", "w_adadelta = adadelta(model, w0, n_iter=n_iter,\n", " rho = rho, epsilon = epsilon, callback=callback_adadelta)\n", "\n", "### END TODO BLOCK\n", "##################" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "## 3.11 Adam\n", "\n", "**13) Create the function `adam` that implements the adam algorithm and test it.**" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def adam(model, w0, n_iter, step, beta1, beta2, epsilon, callback, verbose=True):\n", "##################\n", "### TODO BLOCK\n", " \"Adam\"\n", " w = w0.copy()\n", " n_features = model.n_features\n", " accumulated_gradient = np.zeros(n_features)\n", " accumulated_square_gradient = np.zeros(n_features)\n", " if verbose:\n", " print(\"Lauching Adam solver...\")\n", " callback(w)\n", " for k in range(n_iter + 1):\n", " gradient = model.grad(w)\n", " accumulated_gradient = beta1*accumulated_gradient + (1-beta1)*gradient\n", " accumulated_gradient_correction = accumulated_gradient/(1 - beta1**(k+1))\n", " accumulated_square_gradient = beta2*accumulated_square_gradient + (1-beta2) *(gradient)**2\n", " accumulated_square_gradient_correction = accumulated_square_gradient/(1 - beta2**(k+1))\n", " w -= (step /(np.sqrt(accumulated_square_gradient_correction) + epsilon))*accumulated_gradient_correction\n", " callback(w)\n", " return w\n", "\n", "### END TODO BLOCK\n", "##################\n", "send(adam, 18)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- What is the set of parameters for Adam? \n", "- What are default choices for those parameters?\n", "- Is Adam typically implemented with deterministic or Stochastic Gradients?" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lauching Adam solver...\n", " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.514202e-01\n", " 20 | 5.439222e-01\n", " 30 | 5.379583e-01\n", " 40 | 5.337417e-01\n", " 50 | 5.339901e-01\n" ] } ], "source": [ "##################\n", "### TODO BLOCK\n", "\n", "step = 0.1\n", "beta1 = 0.9\n", "beta2 = 0.999\n", "epsilon = 10**(-6)\n", "\n", "callback_adam = inspector(model, n_iter=n_iter)\n", "w_adam = adam(model, w0, n_iter=n_iter, step = step, beta1 = beta1, beta2 = beta2, \n", " epsilon = epsilon, callback=callback_adam)\n", " \n", "### END TODO BLOCK\n", "##################" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "## 3.12 Adamax\n", "\n", "**14) Create the function `adamax` that implements the adamax solver and test it.**" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "##################\n", "### TODO BLOCK\n", "\n", "def adamax(model, w0, n_iter, step, beta1, beta2, callback, verbose=True):\n", " \"\"\"Adamax\"\"\"\n", " w = w0.copy()\n", " n_features = model.n_features\n", " accumulated_gradient = np.zeros(n_features)\n", " u = np.zeros(n_features)\n", " if verbose:\n", " print(\"Lauching Adamax solver...\")\n", " callback(w)\n", " for k in range(n_iter + 1):\n", " gradient = model.grad(w)\n", " accumulated_gradient = beta1*accumulated_gradient + (1-beta1)*gradient\n", " accumulated_gradient_correction = accumulated_gradient/(1 - beta1**(k+1))\n", " u = np.maximum(beta2*u, abs(gradient))\n", " w -= (step /u)*accumulated_gradient_correction\n", " callback(w)\n", " return w\n", "\n", "### END TODO BLOCK\n", "##################\n", "send(adamax, 19)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lauching Adamax solver...\n", " it | obj \n", " 0 | 6.931472e-01\n", " 10 | 5.523509e-01\n", " 20 | 5.376605e-01\n", " 30 | 5.347555e-01\n", " 40 | 5.340525e-01\n", " 50 | 5.336943e-01\n" ] } ], "source": [ "##################\n", "### TODO BLOCK\n", "\n", "step = 0.1\n", "beta1 = 0.9\n", "beta2 = 0.999\n", "epsilon = 10**(-6)\n", "callback_adamax = inspector(model, n_iter=n_iter)\n", "w_adamax = adamax(model, w0, n_iter=n_iter, step = step,\n", " beta1 = beta1, beta2 = beta2, callback=callback_adamax)\n", "\n", "\n", "### END TODO BLOCK\n", "##################" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# 4. Comparison of all algorithms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**15) Plot the values of the loss for the different iteration and for each solver. Comment. **" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "# Modify here to only call the methods you have implemented\n", "callbacks = [callback_gd, callback_agd, callback_cgd, callback_sgd, \n", " callback_sag, callback_svrg, \n", " callback_adagrad, callback_rmsprop, callback_adadelta, callback_adam, callback_adamax]\n", "names = [\"GD\", \"AGD\", \"CGD\", \"SGD\",\n", " \"SAG\", \"SVRG\", \n", " \"ADAGRAD\", \"RMSPROP\", \"ADADELTA\", \"ADAM\", \"ADAMAX\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Let's look at the convergence curves" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10, 10))\n", "\n", "for callback, name in zip(callbacks, names):\n", " objectives = np.array(callback.objectives)\n", " objectives_dist = objectives \n", " plt.plot(objectives_dist, label=name, lw=2)\n", "\n", "plt.tight_layout()\n", "plt.xlim((0, n_iter))\n", "plt.xlabel(\"Number of passes on the data\", fontsize=16)\n", "plt.ylabel(r\"$F(w^k) $\", fontsize=16)\n", "plt.legend(loc='lower left')\n", "plt.tight_layout()\n", "send(plt, 20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What do you think? How can we improve the plot to make it more insightful ?" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 1 . Compute the minimal value of the function by running CGD (or another fast method)\n", "# for 20 times more iterations than any other method\n", "\n", "# 2. Set yscale to log\n", "\n", "callback_long = inspector(model, n_iter=1000, verbose=False)\n", "w_cgd = cgd(model, w0, n_iter=1000, callback=callback_long, verbose=False)\n", "obj_min = callback_long.objectives[-1]" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nzMzMzKzi/wGNcHw9Ci4kkQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10, 10))\n", "plt.yscale(\"log\")\n", "\n", "for callback, name in zip(callbacks, names):\n", " objectives = np.array(callback.objectives)\n", " objectives_dist = objectives - obj_min \n", " plt.plot(objectives_dist, label=name, lw=2)\n", "\n", "plt.tight_layout()\n", "plt.xlim((0, n_iter))\n", "plt.xlabel(\"Number of passes on the data\", fontsize=16)\n", "plt.ylabel(r\"$F(w^k) - F(w^*)$\", fontsize=16)\n", "plt.legend(loc='lower left')\n", "plt.tight_layout()\n", "send(plt, 21)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try to answer some of the following questions:\n", "\n", "- A. What is the speed of convergence of GD, AGD, SGD (you may need another plot for that)\n", "- B. Compare GD SGD: is there any \"best algorithm between GD and SGD\"\n", "- C. Compare GD and AGD. Compare the slopes? How does that reflect theory ? What steps did we choose?\n", "- D. Which curve oscillates (i.e., is \"bumpy\")? check this great blog post on the topic https://distill.pub/2017/momentum/\n", "- E. Tune the step size for GD, SGD, etc. FInd the value of the maximal step size that avoids divergence\n", "- F. Compare the convergence rate for different strategies for SGD (learning rate decay, averaging or not)\n", "- G. Compare the different strategies for the tuning of the momentum coefficient for AGD\n", "- H. What is the impact of Variance reduction. Does it match what is expected?\n", "- I. n logistic regression, study the influence of the correlation of the features on the performance of the optimization algorithms. Explain.\n", "- J. In logistic regression, study the influence of the level of ridge penalization on the performance of the optimization algorithms. Explain.\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### If you generate interesting plots, share them !! \n", "\n", "Use \n", "\n", "````send(plt, 30)````\n", "\n", " (with increasing numbers starting at 30)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "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.8" } }, "nbformat": 4, "nbformat_minor": 1 }