{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Lecture 5: Training I"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"\n",
"[Run in colab](https://colab.research.google.com/drive/10z5cZZcHnp1cfCRiD4ESsdwLR7NFb5p0)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"execution": {
"iopub.execute_input": "2024-01-10T00:19:25.718881Z",
"iopub.status.busy": "2024-01-10T00:19:25.718648Z",
"iopub.status.idle": "2024-01-10T00:19:25.726287Z",
"shell.execute_reply": "2024-01-10T00:19:25.725751Z"
},
"slideshow": {
"slide_type": "skip"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Last executed: 2024-01-10 00:19:25\n"
]
}
],
"source": [
"import datetime\n",
"now = datetime.datetime.now()\n",
"print(\"Last executed: \" + now.strftime(\"%Y-%m-%d %H:%M:%S\"))"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Linear regression"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Linear regression mode (scalar form)\n",
"\n",
"$$\\hat{y} = \\theta_0 + \\theta_1 x_1 + ... + \\theta_n x_n$$\n",
"\n",
"- $\\hat{y}$ is the predicted value.\n",
"- $n$ is the number of features.\n",
"- $x_j$ is the $j$th feature, for $j=0,1,...,n$.\n",
"- $\\theta_j$ is the $j$th model parameter\n",
"
(with bias $\\theta_0$ and feature weights $\\theta_1, ..., \\theta_n)$."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Linear regression mode (vector form)\n",
"\n",
"$$\\hat{y} =\\theta^{\\rm T} x = h_\\theta(x)$$\n",
"\n",
"- $x$ is the instance feature vector $x=(x_0, x_1, ... x_n)^{\\rm T}$, where $x_0 = 1$.\n",
"- $\\theta$ is the vector of model parameters $\\theta=(\\theta_0, \\theta_1, ... \\theta_n)^{\\rm T}$.\n",
"- $\\cdot^{\\rm T}$ denotes transpose.\n",
"- $h_\\theta(x)$ is the hypothesis function, with parameters $\\theta$."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Train linear regression\n",
"\n",
"Give training data $\\{ x^{(i)}, y^{(i)} \\}$, for $m$ instances $i=1,2,...,m$.\n",
"\n",
"Minimise mean square error (MSE):\n",
"\n",
"$$\\text{MSE} = \\frac{1}{m} \\sum_{i=1}^{m} \\left(\\theta^{\\rm T} x^{(i)} - y^{(i)}\\right)^2 .$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Concise matrix-vector notation\n",
"\n",
"Recall:\n",
"- $x_j^{(i)}$ is (scalar) value of feature $j$ in $i$th training example.\n",
"- $x^{(i)}$ is the (column) vector of features of the $i$th training example.\n",
"- $y^{(i)}$ is the (scalar) value of target of the $i$th training example.\n",
"- $n$ features and $m$ training instances\n",
"\n",
"Define:\n",
"- Feature matrix: $X_{m \\times n} = [ x^{(1)},\\ x^{(2)},\\ ...,\\ x^{(m)}]^{\\rm T}$.\n",
"- Target vector: $y_{m \\times 1} = [ y^{(1)},\\ y^{(2)},\\ ...,\\ y^{(m)}]^{\\rm T}$."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Recall features matrix and target vector\n",
"\n",
"
\n",
"\n",
"[Image source](https://github.com/jakevdp/sklearn_tutorial)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Minimising the MSE is equivalent to minimising the cost function\n",
"\n",
"$$C(\\theta) = \\frac{1}{m} (X \\theta - y)^{\\rm T}(X \\theta - y),$$\n",
"\n",
"where for notational convenience we denote the dependence on $\\theta$ only and consider $X$ and $y$ fixed."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Normal equations\n",
"\n",
"Minimise the cost function analytically \n",
"\n",
"$$\\min_\\theta\\ C(\\theta) = \\min_\\theta \\ (X \\theta - y)^{\\rm T}(X \\theta - y).$$\n",
"\n",
"Solution given by \n",
"\n",
"$$ \\hat{\\theta} = \\left( X^{\\rm T} X \\right)^{-1} X^{\\rm T} y. $$"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2024-01-10T00:19:25.767150Z",
"iopub.status.busy": "2024-01-10T00:19:25.766614Z",
"iopub.status.idle": "2024-01-10T00:19:26.182564Z",
"shell.execute_reply": "2024-01-10T00:19:26.181848Z"
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [],
"source": [
"# Common imports\n",
"import os\n",
"import numpy as np\n",
"np.random.seed(42) # To make this notebook's output stable across runs\n",
"\n",
"# To plot pretty figures\n",
"%matplotlib inline\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams['axes.labelsize'] = 14\n",
"plt.rcParams['xtick.labelsize'] = 12\n",
"plt.rcParams['ytick.labelsize'] = 12"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2024-01-10T00:19:26.186110Z",
"iopub.status.busy": "2024-01-10T00:19:26.185473Z",
"iopub.status.idle": "2024-01-10T00:19:26.426019Z",
"shell.execute_reply": "2024-01-10T00:19:26.425332Z"
}
},
"outputs": [
{
"data": {
"image/png": "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mGNbac6cOerevXvEtjZt2kR8z3nbsGN7xx136Nprr43Ytn//fl133XW1fub6rb+wcOFCrV69WmPGjFHfvn21fft2LVq0SAMHDtSHH36o3r171/lY2z5vjUOtXbvWSDL33ntv1baDBw+aHj16mCFDhlg+duHChUaS+eijj6q2bdy40aSmppqZM2dWbTtw4IA5/vjjzciRIyMeP378eNOyZUuze/fuOL0aZ2nMsV21alWNbU8//bSRZJ588smI7V27dq1xbP2gMcd39uzZRpL57rvvLPfj3G34sa3N3LlzjSSzevXqiO2SzJQpUxrdXrcpLS0127ZtM8YY8/HHHxtJ5qmnnorqsS+88IKRZP7zP/+zatuOHTtMmzZtzJVXXhmx72mnnWb69etnDh8+XLXtjjvuMIFAwGzcuLHxL8SBGnNs3333XVNeXl5jmyRzxx13RGw/55xzTK9eveLSZrdozLF96qmnjCTz8ccf17sv523Djm1tnnnmGSPJPPfccxHb/dhfWL16tSkrK4vYtmnTJpOWlmbGjx9v+Vi7Pm8dW560fPlypaamKj8/v2pbs2bNlJeXpzVr1qioqMjysWeeeabOPPPMqm2nnnqqfvzjH+vFF1+s2rZq1Srt2rVLv/rVryIeP2XKFO3fv18rVqyI4ytyjsYc25ycnBrbLr30UknSxo0ba33MoUOHtH///sY12kUac3wrGWMUCoVk6lgRmXM39mN7rGXLlql79+4aOnRorT8/ePCgSktLG9VmN0lLS6tx1Tpay5cv14knnqjLLrusalv79u01duxY/fnPf1ZZWZkk6YsvvtAXX3yh/Px8NWlydLD7V7/6lYwxWr58eeNehEM15tgOHz5cKSkpNba1bdu2zs/dI0eO1BhZ86rGHNtjff/99yovL6/1Z5y38bFs2TK1bNlSF198ca0/91N/YejQoWratGnEtuzsbPXq1avOv+tKdn3eOjY0bNiwQSeffLLS09Mjtg8aNEiS9Omnn9b6uIqKCv3973/XGWecUeNngwYN0ldffaXvv/++6jkk1dj39NNPV0pKStXPvSbWY1uXyrrPdu3a1fjZ//zP/6hFixZq1aqVunXrpoceeii2RrtIPI7vSSedpIyMDLVu3VpXX321vv322xrPIXHuVorl3N2wYYM2btyoq666qtafL126VC1btlTz5s112mmnadmyZTG32w82bNiggQMH1ujcDho0SAcOHKiq063r3O3UqZMyMzM9e+7G2759+7Rv375aP3c3bdqkli1bqnXr1urQoYPuvPNOHT582IZWuse5556r9PR0tWjRQqNHj9bmzZsjfs5523jfffed3nzzTV1yySVq2bJljZ/7sb9QnTFG3377ba1/18ey6/PWsXMatm3bpo4dO9bYXrmtuLi41sft3r1bZWVl9T72lFNO0bZt25SamqoTTjghYr+mTZvq+OOPr/M53C7WY1uXhQsXKjU1VVdccUXE9r59++rss8/WKaecol27dmnp0qW66aabVFxcrIULF8b+AhyuMcf3Bz/4gW644QYNGTJEaWlpev/99/Xoo4/qo48+0rp166o6y5y7kWI5d5977jlJ0vjx42v8bOjQoRo7dqy6d++u4uJiPfrooxo/frxKSkp0/fXXx9h6b9u2bZuGDx9eY/ux702fPn2qJu/W9T569dyNtwcffFCHDh3SuHHjIrb36NFD5557rvr06aP9+/dr+fLluueee7Rp0ya98MILNrXWuVq0aKGJEydWhYZPPvlE999/v4YOHar169crKytLkjhv4+CFF17QkSNHav3M9Wt/obrnnntOW7du1Zw5cyz3s+vz1rGh4eDBg0pLS6uxvXIVmYMHD9b5OElRPfbgwYM1hoaO3beu53C7WI9tbZYtW6aCggLdfvvtNVagefXVVyO+/8UvfqELL7xQ999/v6ZOnarMzMwYWu98jTm+N954Y8T3l19+uQYNGqTx48frscce069//euq38G5e1RDz92Kigo9//zzGjBggH74wx/W+Pnq1asjvp80aZJOP/10/eY3v9HEiRNrTPhH9O9NfZ/RoVAoga30hvfee0933323xo4dq/POOy/iZwUFBRHf//znP1d+fr6efPJJ3XzzzTrrrLOS2VTHGzt2rMaOHVv1/SWXXKLc3FwNHz5c8+bN0+LFiyVx3sbDsmXL1L59e51//vk1fubX/sKxvvzyS02ZMkVDhgzRhAkTLPe16/PWseVJzZs3r6rJOlZlfXFd/2lXbo/msc2bN9ehQ4dq/T2lpaWe7RjEemyre//995WXl6fc3FzNmzev3v0DgYBuvvlmHTlyJKbVLdwiXse30lVXXaUOHTrorbfeingOzt2jGnps3333XW3durXWK161adq0qW644Qbt3btXn3zySfQN9pFo35v6PqO9eu7Gy5dffqlLL71UvXv31h/+8IeoHlO5Is2xnyGo29lnn63BgwfX+MyVOG9j9fXXX2vNmjUaN25cRG19XfzSX6i0fft2jRw5UhkZGVVz96zY9Xnr2NDQsWPHWtegrtxW1/Jxbdu2VVpaWlSP7dixo8rLy7Vjx46I/Q4dOqRdu3Z5dom6WI/tsT777DONHj1avXv31vLly6P6EJBUNdS7e/fuBrTYXeJxfKvLysqKOGacu5Eaemyfe+45paSk6Morr4z6uf1w7jZGtO9N5TB5Xft69dyNh6KiIl1wwQXKyMjQ66+/rtatW0f1OM7dhqvtM1fivI1V5ZywaC/USP45b0tKSnThhRdq7969+utf/xrVuWTX561jQ0P//v21adOmGkMna9eurfp5bVJSUtSnTx+tW7euxs/Wrl2rk046qeqDtvJ3VN933bp1qqioqPM53C7WY1vpq6++0ogRI3TCCSfo9ddfj7ifQH0qb7DXvn37hjXaRRp7fKszxqiwsDDimHHuxn5sy8rK9NJLLyknJ6dBH5h+OHcbo3///lq/fr0qKioitq9du1YtWrSoWm+9rnO3uLhYwWDQs+duY+3atUsXXHCBysrK9MYbb9Rao1wXzt2G+/rrr6P6zOW8jc6yZcvUo0ePBpXH+eG8LS0t1ahRo7Rp0ya99tprOu2006J6nG2ftw1aoDWJPvzwwxrrsZeWlpqePXuawYMHV23bsmVLjXVmf/vb39ZYd/nLL780qampZsaMGVXbDhw4YNq2bWsuuuiiiMdfffXVpkWLFmbXrl3xflmO0Jhju23bNnPSSSeZTp06mX//+991PseuXbvMkSNHIrYdOnTIDBs2zDRt2rRq3Wcvaszx3bFjR43f9+ijjxpJ5v7776/axrnb8GNb6eWXXzaSTEFBQa0/r+09CIVCpkePHqZdu3Y11tX2Kqs12YuLi83GjRvNoUOHqrY9//zzNdYN/+6770ybNm3MuHHjIh5/6qmnmn79+kV8RsyaNcsEAgHzxRdfxP/FOExDj+2+ffvMoEGDTOvWrc26devq/L0lJSWmtLQ0YltFRYUZN26ckWQ++eSTuL0Gp2rosa3t733FihVGkpk2bVrEds7bhh3bSuvXrzeSzJ133lnr7/Vrf+HIkSNm9OjRpkmTJmbFihV17uekz1vHhgZjjBkzZoxp0qSJmT59unniiSfM0KFDTZMmTcy7775btc8555xjqmefyv/gTzjhBPO73/3OPPDAAyYrK8t06tSpxgdEZYfsiiuuME8++aS55pprjCQzb968pLxGu8R6bPv162ckmdtvv90888wzEV8rV66s2u+pp54yPXr0MDNmzDCLFy828+fPN7179zaSzPz585P2Ou0S6/Ft3ry5mThxovn9739vHn30UXPllVeaQCBg+vfvb/bv3x+xL+duw45tpcsvv9ykpaWZvXv31vrz2bNnm379+plZs2aZJUuWmLvvvtt07drVBAIB8+yzzybkNTnJI488YubOnWuuv/56I8lcdtllZu7cuWbu3LlVx2zChAlGUsSFgyNHjpizzjrLtGrVytx9993m0UcfNb169TKtW7c2X375ZcRz/OUvfzGBQMCcd955ZsmSJWbatGkmJSXF/PKXv0zmS026WI/txRdfbCSZSZMm1fjcfeWVV6r2W7VqlenQoYO5+eabzaOPPmruu+8+M2zYMCPJ5OfnJ/nVJlesx7Znz55mzJgxZuHChWbx4sUmPz/fNGnSxGRlZZnt27dHPAfnbcOObaVbb73VSKrxOVDJr/2FG2+80Ugyo0aNqvF3/cwzz1Tt56TPW0eHhoMHD5rbbrvNdOjQwaSlpZkzzzzT/PWvf43Yp67OQVFRkbniiitMenq6adWqlbnooovM5s2ba32eJUuWmFNOOcU0bdrU9OjRwzzwwAOmoqIiIa/JKWI9tpLq/DrnnHOq9lu3bp0ZNWqU6dy5s2natKlp1aqVOfvss82LL76YjJdnu1iP77XXXmtOO+0007p1a3PccceZnj17mhkzZphQKFTr83DuNuxzoaSkxDRr1sxcdtlldf7+lStXmvPPP9906NDBHHfccaZNmzbmggsuMG+//XbcX4sTde3atc6/8cr/tOrqIOzevdvk5eWZ448/3rRo0cKcc845dd5p95VXXjH9+/c3aWlpJjMz08yaNavWq5ReEuuxtXpc165dq/b7+uuvzZgxY0y3bt1Ms2bNTIsWLczpp59uFi9e7PnPhViP7R133GH69+9vMjIyzHHHHWe6dOlirr/++hqBoRLnbcM+E8rLy03nzp3NwIED6/z9fu0vVP4/VddXJSd93gaMqeOWswAAAAAgB0+EBgAAAOAMhAYAAAAAlggNAAAAACwRGgAAAABYIjQAAAAAsERoAAAAAGCJ0AAAAADAEqEBAAAAgCVCAwAAAABLhAYAAAAAlggNAAAAACwRGgAAllavXq1AIKBAIKAXX3yx1n3Wrl2rVq1aKRAIaPr06UluIQAg0QLGGGN3IwAAznbxxRfr1Vdf1amnnqp//OMfSk1NrfrZP//5Tw0bNky7du3ShAkT9NRTTykQCNjYWgBAvDHSAACo14IFC5Samqovv/xSzz77bNX24uJi5ebmateuXbrooov0hz/8gcAAAB7ESAMAICrXXnutCgoK1L17d/3zn//U/v37NXz4cH3++ec6++yztXLlSjVv3tzuZgIAEoDQAACIytatW5Wdna2DBw/qgQce0CuvvKL33ntPffr00Xvvvac2bdrY3UQAQIJQngQAiErnzp01bdo0SdLNN9+s9957T926ddMbb7xRa2DYt2+f7rrrLl100UXq0KGDAoGAJk6cmNxGAwDigtAAAIjatGnTlJIS/q+jbdu2WrlypTp27Fjrvjt37tTdd9+t9evX64wzzkhmMwEAcdbE7gYAANzhyJEjmjx5sioqKiRJBw4csJzD0LFjRwWDQXXu3FmlpaXMdwAAF2OkAQBQL2OMrr32Wr322mtq3769unfvrtLSUs2ePbvOx6Slpalz585JbCUAIFEIDQCAet1+++16+umn1apVK61YsULz5s2TJD399NP64osvbG4dACDRCA0AAEv33Xef7rvvPh133HF6+eWXdeaZZ+pnP/uZ+vbtq/Lycs2cOdPuJgIAEozQAACo0x//+EfdfvvtCgQCWrp0qc4//3xJUiAQ0Ny5cyVJr776qlavXm1nMwEACUZoAADU6vXXX1deXp6MMbr//vt11VVXRfx89OjRGjx4sCRpxowZdjQRAJAkhAYAQA1r1qzRmDFjdOTIEc2YMUM33XRTrftVzm1YvXq1/vznPyexhQCAZGLJVQBADUOGDNH+/fvr3e/HP/6xjDFJaBEAwE6MNAAAAACwxEgDACBhFi1apL179+rIkSOSpL///e+65557JEnDhw/X8OHD7WweACBKAcO4MgAgQbp166YtW7bU+rPZs2frrrvuSm6DAAAxITQAAAAAsMScBgAAAACWCA0AAAAALBEaAAAAAFgiNAAAAACwRGgAAAAAYInQAAAAAMASoQEAAACAJUIDAAAAAEuEBgAAAACWCA0AAAAALBEaAAAAAFgiNAAAAACw9H9dl/x/uMQJqgAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"m = 100\n",
"X = 2 * np.random.rand(m, 1)\n",
"y = 4 + 3 * X + np.random.randn(m, 1)\n",
"plt.figure(figsize=(9,6))\n",
"plt.plot(X, y, \"b.\")\n",
"plt.xlabel(\"$x_1$\", fontsize=18)\n",
"plt.ylabel(\"$y$\", rotation=0, fontsize=18)\n",
"plt.axis([0, 2, 0, 15]);"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
},
"tags": [
"exercise_pointer"
]
},
"source": [
"**Exercises:** *You can now complete Exercise 1 in the exercises associated with this lecture.*"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Solve using Scikit-Learn"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2024-01-10T00:19:26.430231Z",
"iopub.status.busy": "2024-01-10T00:19:26.428868Z",
"iopub.status.idle": "2024-01-10T00:19:26.811959Z",
"shell.execute_reply": "2024-01-10T00:19:26.811220Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(array([4.21509616]), array([[2.77011339]]))"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.linear_model import LinearRegression\n",
"lin_reg = LinearRegression()\n",
"lin_reg.fit(X, y)\n",
"lin_reg.intercept_, lin_reg.coef_"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2024-01-10T00:19:26.815257Z",
"iopub.status.busy": "2024-01-10T00:19:26.814784Z",
"iopub.status.idle": "2024-01-10T00:19:26.820509Z",
"shell.execute_reply": "2024-01-10T00:19:26.819869Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([[4.21509616],\n",
" [9.75532293]])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_new = np.array([[0], [2]])\n",
"lin_reg.predict(X_new)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Computational complexity\n",
"\n",
"Solving the normal equation requires inverting $X^{\\rm T} X$, which is an $n \\times n$ matrix (where $n$ is the number of features).\n",
"\n",
"Inverting an $n \\times n$ matrix is naively of complexity $\\mathcal{O}(n^3)$ ($\\mathcal{O}(n^{2.4})$ if certain fast algorithms are used).\n",
"\n",
"Also, typically requires all training instances to be held in memory at once.\n",
"\n",
"Other methods are required to handle large data-sets, i.e. when considering large numbers of features and large numbers of training instances."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Batch gradient descent"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"[[Image source](http://www.holehouse.org/mlclass)]"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Gradient of the cost function is given by\n",
"\n",
"$$ \\frac{\\partial}{\\partial \\theta} C(\\theta)\n",
"=\\frac{2}{m} X^{\\rm T} \\left( X \\theta - y \\right) \n",
"= \\left[\\frac{\\partial C}{\\partial \\theta_0},\\ \\frac{\\partial C}{\\partial \\theta_1},\\ ...,\\ \\frac{\\partial C}{\\partial \\theta_n} \\right]^{\\rm T} \n",
".\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Batch gradient descent algorithm defined by taking a step $\\alpha$ in the direction of the gradient:\n",
"\n",
"$$\\theta^{(t)} = \\theta^{(t-1)} - \\alpha \\frac{\\partial C}{\\partial \\theta},$$\n",
"\n",
"where $t$ denotes the iteration number."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"This algorithm is called *batch* gradient descent since it uses the full *batch* of training data ($X$) at each iteration. We will see other forms of gradient descent soon..."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
},
"tags": [
"exercise_pointer"
]
},
"source": [
"**Exercises:** *You can now complete Exercise 2 in the exercises associated with this lecture.*"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Learning rate\n",
"\n",
"The step size $\\alpha$ is also called the *learning rate*."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Good learning rate\n",
"\n",
"
\n",
"\n",
"[Source: Geron]\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Learning rate too small \n",
"\n",
"Convergence will be slow.\n",
"\n",
"
\n",
"\n",
"[Source: Geron]\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Learning rate too large \n",
"\n",
"May not converge.\n",
"\n",
"
\n",
"\n",
"[Source: Geron]\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Evolution of fitted curve \n",
"\n",
"Consider the evolution of the curve corresponding to the best fit parameters for the first 10 iterations for different learning rates $\\alpha$."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2024-01-10T00:19:26.824434Z",
"iopub.status.busy": "2024-01-10T00:19:26.823834Z",
"iopub.status.idle": "2024-01-10T00:19:26.831253Z",
"shell.execute_reply": "2024-01-10T00:19:26.830646Z"
}
},
"outputs": [],
"source": [
"theta_path_bgd = []\n",
"\n",
"X_b = np.c_[np.ones((m, 1)), X] # add x0 = 1 to each instance\n",
"X_new_b = np.c_[np.ones((2, 1)), X_new] \n",
"\n",
"def plot_gradient_descent(theta, alpha, theta_path=None):\n",
" m = len(X_b)\n",
" plt.plot(X, y, \"b.\")\n",
" n_iterations = 1000\n",
" for iteration in range(n_iterations):\n",
" if iteration < 10:\n",
" y_predict = X_new_b.dot(theta)\n",
" style = \"b-\" if iteration > 0 else \"r--\"\n",
" plt.plot(X_new, y_predict, style)\n",
" gradients = 2/m * X_b.T.dot(X_b.dot(theta) - y)\n",
" theta = theta - alpha * gradients\n",
" if theta_path is not None:\n",
" theta_path.append(theta)\n",
" plt.xlabel(\"$x_1$\", fontsize=18)\n",
" plt.axis([0, 2, 0, 15])\n",
" plt.title(r\"$\\alpha = {}$\".format(alpha), fontsize=16)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2024-01-10T00:19:26.834198Z",
"iopub.status.busy": "2024-01-10T00:19:26.833760Z",
"iopub.status.idle": "2024-01-10T00:19:27.369568Z",
"shell.execute_reply": "2024-01-10T00:19:27.368907Z"
}
},
"outputs": [
{
"data": {
"image/png": "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V199FUFBQdi2bRuGDh2Khx56CAMGDEBtbS2WLFni6y4SkYkxQ4jIKOYINRYWVeQT77zzDhYtWgSLxYKsrCyMGTMGAGCxWLB8+XIAwMcff4zc3FxfdpOITIoZQkRGMUeoMbGoIq/77LPPMGvWLEiShNdeew3Tp093+PqkSZOQlJQEAFi8eLEvukhEJsYMISKjmCPU2FhUkVft27cPU6dOxY0bN7B48WLMmzdPs528njk3Nxc7duzwYg+JyMyYIURkFHOEmgJvqU5elZycjKtXr9603ejRoyFJkhd6RET+hBlCREYxR6gp8EwVERERERGRATxTRX5p7dq1KC8vx40bNwAAhw4dwooVKwAAKSkpSElJ8WX3iMjkmCFEZBRzhNQsEs9rkh/q1q0bfv75Z82vZWZmYtmyZd7tEBH5FWYIERnFHCE1FlVEREREREQG8JoqIiIiIiIiA1hUERERERERGcCiioiIiIiIyAAWVURERERERAawqCIiIiIiIjKARRUREREREZEBLKqIiIiIiIgMYFFFRERERERkAIsqIiIiIiIiA1hUERERERERGcCiioiIiIiIyID/B/0XlHzTfb5CAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(42)\n",
"theta = np.random.randn(2,1) # random initialization\n",
"\n",
"plt.figure(figsize=(10,4))\n",
"plt.subplot(131); plot_gradient_descent(theta, alpha=0.02)\n",
"plt.ylabel(\"$y$\", rotation=0, fontsize=18)\n",
"plt.subplot(132); plot_gradient_descent(theta, alpha=0.1)\n",
"plt.subplot(133); plot_gradient_descent(theta, alpha=0.5)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"- $\\alpha=0.02$: learning rate is too small and will take a long time to reach the global optimum.\n",
"- $\\alpha=0.1$: learning rate is good and global optimum will be found quickly.\n",
"- $\\alpha=0.5$: learning rate is too large and parameters jump about (may not converge)."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Convergence"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Cost function may not be nice with a single local minimum that coincides with the global minimum.\n",
"\n",
"
\n",
"\n",
"[Source: Geron]"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Convex objective function\n",
"\n",
"MSE cost function for linear regression is convex (for any two points on the curve, the line segment connecting those points lies above the curve).\n",
"\n",
"Consequently, the cost function has a single local minimum (that therefore coincides with the global minimum).\n",
"\n",
"Furthermore, the cost function is smooth with a slope that never changes abruptly (i.e. it is Lipschitz continuous). \n",
"\n",
"Gradient descent is therefore guaranteed to converge to the global minimum."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Feature scaling\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For gradient descent to work well it is critical for all features to have a similar scale."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"[Source: Geron]\n",
"\n",
"In the case on the left, the features have the same scale and even intially the solution moves towards the minimum, thus reaching it quickly.\n",
"\n",
"In the case on the right, the features have different scales and initially the solution does not move directly towards the minimum. Convergence is therefore slow."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Feature scaling methods\n",
"\n",
"In general should ensure features have a similar scale since many machine learning methods do not work well when numerical attributes have very different scales.\n",
"\n",
"#### Min-max scaling\n",
"\n",
"Min-max scaling given by\n",
"\\begin{align*}\n",
"x_j \\rightarrow \\frac{x_j - \\min_i x_i}{\\max_i x_i - \\min_i x_i} .\n",
"\\end{align*}\n",
"See Scikit-Learn [`MinMaxScalar`](http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html).\n",
"\n",
"\n",
"#### Standardization\n",
"\n",
"Standardization scaling given by\n",
"\\begin{align*}\n",
"x_j \\rightarrow \\frac{x_j - \\mu_j}{\\sigma_j},\n",
"\\end{align*}\n",
"where $\\mu_j$ and $\\sigma_j$ are the mean and standard deviation of feature $j$ computed from the training instances.\n",
"See Scikit-Learn [`StandardScaler`](http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html)."
]
}
],
"metadata": {
"celltoolbar": "Slideshow",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.8.18"
}
},
"nbformat": 4,
"nbformat_minor": 4
}