{ "cells": [ { "cell_type": "markdown", "id": "5cd10ad1", "metadata": {}, "source": [ "# 01: Linear Regression\n", "\n", "In this notebook we'll cover:\n", "\n", "- Linear regression\n", "- Loss functions\n", "- Gradient descent\n", "- Linear regression as a neural network\n", "- Pytorch\n", "- Start to consider how neural networks fit non-linear functions" ] }, { "cell_type": "code", "execution_count": 2, "id": "7dd45616", "metadata": {}, "outputs": [], "source": [ "import itertools\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "import torch\n", "from torch import nn" ] }, { "cell_type": "markdown", "id": "4c05da31", "metadata": {}, "source": [ "## Dataset\n", "\n", "I have painstakingly collected 100 days of data on the average happiness (out of 10) of Turing staff in the office based on the number of oranges 🍊 and cups of coffee ☕️ available at the start of the day:" ] }, { "cell_type": "code", "execution_count": 3, "id": "633c934e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
orangescoffeehappy
0105285.832712
1125094.648788
2156284.286937
3143895.863064
4132163.109686
............
95112932.525590
96157506.802309
97177016.446739
98118327.072423
99193554.444550
\n", "

100 rows × 3 columns

\n", "
" ], "text/plain": [ " oranges coffee happy\n", "0 10 528 5.832712\n", "1 12 509 4.648788\n", "2 15 628 4.286937\n", "3 14 389 5.863064\n", "4 13 216 3.109686\n", ".. ... ... ...\n", "95 11 293 2.525590\n", "96 15 750 6.802309\n", "97 17 701 6.446739\n", "98 11 832 7.072423\n", "99 19 355 4.444550\n", "\n", "[100 rows x 3 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv(\"../data/01_happiness.csv\")\n", "df" ] }, { "cell_type": "code", "execution_count": 4, "id": "46a44550", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Cups of Coffee')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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19fyPubgV7duXfbNN9+wM2fOsBdeeIEFBwezW7duMcbKg0itWrXY9OnT2dmzZ9nRo0dZr1692KOPPmp57+7du7OaNWuyKVOmsHPnzrFz587Z/LzvvvsuCwkJYevXr2fnzp1jb7zxBvP19bUEvqysLNa8eXP22muvsaysrCobtjJWvrGrTqdj77zzjs33GDNmDAsLC2Mmk4kxxiwNqH/961/s4sWLlg1/582bx/bv388yMjLYli1bWJ06ddiiRYusvvOaNWuyp556ip06dYrt3buXGQwG9s9//tNyzAsvvMDi4+PZzp072alTp9igQYNYcHCwVSPshRdeYA899BDbu3cvu3jxIluyZAnz9/e3fOZ+/fqxXr16sZMnT7L09HT2/fffsz179tj8bISoibO6aiakEda0aVP2888/s5MnT7L+/fuzhIQEy82T0Lo0YMAA1rRpU7Z37152/PhxlpSUxBo2bMhKS0tZSUkJS0tLYwDYt99+y7KyslhJSUmV19i4cSMDwA4cOODwM/75558sMDCQvfTSS+zs2bNs06ZNLDIy0nKjmZ+fz+bOncvq1q3LsrKy2M2bN20+xhhjb7/9NmvSpAnbvn07S09PZ2vXrmX+/v6Wm2eemE3cR40wDTA3whhjrHPnzmz06NGMMdcbYfHx8cxoNFoea9y4MXv44Yct/7537x4LCgpi69evZ4zdD34Vd58vKytjdevWtTRI5s2bx3r37m313levXmUAWFpaGmOsvBHWtm1bp583OjqazZ8/3+qxBx98kL300kuWf7du3dpuDxhjjKWmpjIAbNOmTTaff/fddxkAduPGDcZYeSPM3l1qRUuWLGHt27e3/HvWrFksMDDQqudrypQprFOnToyx8l4wX19fqzvQ/Px8FhgYaGmEXblyhVWrVo1du3bN6r0ee+wxNn36dMYYYy1btmSzZ892Wj5C1ObgwYMMANu4caPD44Q0wjZs2GA5JicnhwUEBLAvv/ySMSasLp0/f54BYPv377c8duvWLRYQEMC++uorm2WwZdGiRQwAy83Ndfh+//znP1njxo0tN4eMMbZixQpWs2ZNS8yuHNNtPXb37l0WGBhYpdH3/PPPsyFDhjDG+GI2cR8NDGvMokWL0KNHD7z++usuv0bz5s3h43M/XbBOnTpWiZzVqlVDREQEbt68afV3iYmJlv+vXr06OnTogLNnzwIATpw4gd27d6NmzZpV3i89PR0PPPAAAKB9+/YOy1ZYWIjr16+jS5cuVo936dIFJ06c4PyE9zHGuI/t0KFDlce+/PJLLFu2DOnp6SgqKsK9e/cQEhJidUxCQoJVHkhUVJTlu7t06RLKysrQsWNHy/N6vR6NGze2/PvUqVMwGo2W78ispKTEku/28ssvY/z48fj555/Rs2dP/OMf/0CrVq24PxshSiWkjvKqGKvCw8PRuHFjS6wSUpfOnj2L6tWro1OnTpbHIiIirF6PB+9nPHv2LBITE60mXHXp0gVFRUX4888/ERcXx/U6Fy9exJ07d9CrVy+rx0tLS9G2bVsA/DGbuIcaYRrTrVs3JCUlYfr06Rg5cqTVcz4+PlUqe1lZWZXX8PX1tfq3Tqez+ZjJZOIuV1FREZ544gksWrSoynNRUVGW/w8KCuJ+TXc0bNgQOp0OZ8+exaBBg6o8f/bsWYSFhaFWrVp2y5aSkoKhQ4dizpw5SEpKgl6vx4YNG/Dvf//b6jgxvrtq1arhyJEjqFatmtVz5gD5wgsvICkpCdu2bcPPP/+MBQsW4N///jcmTpzI/T6EKFGjRo2g0+lw7tw5h8eZbxwrxjhb8c0ZOeqSuUFz7tw5qwaipxQVFQEAtm3bhpiYGKvn/P39LcfwxGziHpodqUELFy7E999/j5SUFKvHa9WqhezsbKsgJeZ6MampqZb/v3fvHo4cOYKmTZsCANq1a4c//vgDCQkJaNiwodV/QhpeISEhiI6Oxv79+60e379/P5o1a8b9OhEREejVqxfef/99/P3331bPZWdn4/PPP8fgwYMdLvFx4MABxMfH480330SHDh3QqFEjXLlyhbsMAFC/fn34+vri8OHDlscKCgqspqS3bdsWRqMRN2/erPLdGQwGy3GxsbEYN24cNm7ciNdeew1r1qwRVBZClCg8PBxJSUlYsWIFiouLqzyfn58PAJYbpqysLMtz9uJbxViVl5eH8+fPW2IVwF+XmjZtinv37uHgwYOWx3JycpCWliYoHvXu3RuRkZFYvHixzefNn7Fp06ZISUmxiuH79+9HcHAw6taty/1+zZo1g7+/PzIzM6vElNjYWADixWziGDXCNKhly5YYOnQoli1bZvX4I488gr/++guLFy9Geno6VqxYgR9//FG0912xYgU2bdqEc+fOITk5GXl5eRg9ejQAIDk5Gbm5uRgyZAgOHz6M9PR0/PTTTxg1ahSMRqOg95kyZQoWLVqEL7/8EmlpaZg2bRqOHz+OSZMmCXqd5cuXo6SkBElJSdi7dy+uXr2K7du3o1evXoiJicH8+fMd/n2jRo2QmZmJDRs2ID09HcuWLcOmTZsElSE4OBgjRozAlClTsHv3bvzxxx94/vnn4ePjY2kAPvDAAxg6dCiee+45bNy4ERkZGTh06BAWLFiAbdu2AQAmT56Mn376CRkZGTh69Ch2795tdVEhRM1WrFgBo9GIjh074ttvv8WFCxdw9uxZLFu2zNJzFBAQgM6dO2PhwoU4e/Ys9uzZg7feesvm682dOxe//PILTp8+jZEjRyIyMhJPPvkkAGF1qVGjRhg4cCDGjBmDffv24cSJExg2bBhiYmIwcOBA7s8XFBSE//73v9i2bRsGDBiAnTt34vLly/j999/xxhtvYNy4cQCAl156CVevXsXEiRNx7tw5bN68GbNmzcKrr75qlULiTHBwMF5//XW88sor+Pjjj5Geno6jR4/iP//5Dz7++GMA4sZs4oCM+WhEJBUT880yMjKYn58fq/wTr1y5ksXGxrKgoCD23HPPsfnz59tcoqKiysslMFaeqP7ee+9Z3gsA++KLL1jHjh2Zn58fa9asGdu1a5fV35w/f54NGjTIMpW7SZMmbPLkyZYkU1vvY4vRaGSzZ89mMTExzNfXt8oSFYw5T8w3u3z5MhsxYgSrU6cO8/X1ZbGxsWzixImWWZ22Pm9FU6ZMYREREaxmzZps8ODB7L333mN6vd7yPM9kCFtLVHTs2JFNmzbNckxpaSmbOXMmS0hIYL6+viwqKooNGjSInTx5kjHG2IQJE1iDBg2Yv78/q1WrFhs+fHiVz0CIml2/fp0lJyez+Ph45ufnx2JiYtiAAQOsEt7PnDnDEhMTWUBAAGvTpg37+eefbSbmf//996x58+bMz8+PdezYkZ04ccLyGkLrknmJCr1ezwICAlhSUpJl1jJjfIn5ZocPH2ZPPfUUq1WrFvP392cNGzZkY8eOZRcuXLAc42iJCsb4EvMZY8xkMrGlS5eyxo0bM19fX1arVi2WlJRkNRPUWcwm7tMx5oGsR0KIy4qLixETE4N///vfeP755+UuDiGa8euvv+LRRx9FXl4eQkND5S4OIZSYT4jcjh07hnPnzqFjx44oKCjA3LlzAUDQcAYhhBD1oUYYIQrwr3/9C2lpafDz80P79u3x22+/ITIyUu5iEUII8SAajiSEEEIIkQHNjiSEEEIIkQE1wgghhBBCZECNMEIIIYQQGVAjjBBCCCFEBtQII4QQQgiRATXCCCGEEEJkQI0wQgghhBAZUCOMEEIIIUQG1AgjhBBCCJHB/wfbSa2LdbJZxQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 2, figsize=(7, 3), sharey=True)\n", "ax[0].scatter(df[\"oranges\"], df[\"happy\"])\n", "ax[0].set_ylabel(\"Mean Happiness\")\n", "ax[0].set_xlabel(\"Number of Oranges\")\n", "ax[1].scatter(df[\"coffee\"], df[\"happy\"])\n", "ax[1].set_xlabel(\"Cups of Coffee\")\n" ] }, { "cell_type": "markdown", "id": "868aae05", "metadata": {}, "source": [ "## Linear Regression\n", "\n", "I want to use the data ~~so I can have more oranges to eat~~ so the Turing can arrange its deliveries to maximise happiness by fitting this model:" ] }, { "cell_type": "markdown", "id": "b8b4ddfd", "metadata": {}, "source": [ "$$\n", "\\hat{y} = w_1 x_1 + w_2 x_2 + b\n", "$$\n", "\n", "where:\n", "- $\\hat{y}$ : Predicted Turing happiness\n", "- $x_1$ : Number of oranges available 🍊\n", " - $w_1$ : Happiness increase per orange\n", "- $x_2$ : Cups of coffee available ☕️\n", " - $w_2$ : Happiness increase per cup of coffee\n", "- $b$ : Intercept or **\"bias\"** (happiness if no oranges or coffee 😱)\n", "\n", "\n", "Learn \"best\" values of $w_1$, $w_2$, and $b$\n", "- How?" ] }, { "cell_type": "markdown", "id": "af8428be", "metadata": {}, "source": [ "## From Maximum Likelihood to Loss Functions\n", "\n", "_**Note:* This section assumes some knowledge of probability and Bayesian statistics. It's not necessary to understand the rest of the notebook, but [you might find this longer description helpful](https://gregorygundersen.com/blog/2020/02/04/bayesian-linear-regression/) if you'd like to learn more._\n", "\n", "In Bayesian linear regression we |model the true value (actual happiness), $y$, as being drawn from a normal distribution with mean equal to the predicted value (predicted happiness), $\\hat{y_i}$, that we're trying to derive (for a single data point $i$):\n", "\n", "$$\n", "y_i \\sim \\mathcal{N}(\\hat{y_i}, \\sigma)\n", "$$\n", "\n", "where $\\sigma$, is the standard deviation of the distribution.\n", "\n", "In other words, we have a model of the world where happiness is a function of the number of oranges and cups of coffee available only, with a normally distributed error.\n", "\n", "The probability density of the normal distribution is given by:\n", "\n", "$$\n", "\\mathcal{N}(y_i \\mid \\hat{y_i}, \\sigma) = \\frac{1}{\\sigma \\sqrt{2 \\pi}}\\exp\\left[-\\frac{1}{2}\\left(\\frac{y_i - \\hat{y_i}}{\\sigma}\\right)^2\\right]\n", "$$\n", "\n", "When fitting linear regression in a Bayesian way we choose the parameters to maximise the _likelihood_ of the data, given by:\n", "\n", "$$\n", "P(y \\mid \\hat{y}, \\sigma) = \\prod_{i=1}^{N} \\mathcal{N}(y_i \\mid \\hat{y_i}, \\sigma)\n", "$$\n", "\n", "Often it's easier (and more numerically stable) to compute the _log likelihood_ instead:\n", "\n", "$$\n", "\\log \\left[ P(y \\mid \\hat{y}, \\sigma) \\right] = \\sum_{i=1}^{N} \\log \\left[ \\mathcal{N}(y_i \\mid \\hat{y_i}, \\sigma) \\right] \\\\\n", "\\log \\left[ P(y \\mid \\hat{y}, \\sigma) \\right] = N \\log \\left( \\frac{1}{\\sigma \\sqrt{2 \\pi}}\\right) -\\sum_{i=1}^{N} \\frac{(y - \\hat{y})^2}{2 \\sigma^2}\n", "$$\n", "\n", "The expression above follows from log rules, $\\log (ab) = \\log a + \\log b$, and from $\\log(\\exp(a)) = a$. Note that maximising the log likelihood is the same as maximising the likelihood, as $\\log a > \\log b$ for all $a > b$.\n", "\n", "We can remove the terms that don't depend on the parameters of the model, choose to do minimisation rather than maximisation (i.e. multiply by -1), and take the mean likelihood across the dataset, to give the familiar mean squared error loss function:\n", "\n", "$$\n", "\\mathcal{L} = \\frac{1}{N} \\sum_{i=1}^{N} (\\hat{y_i} - y_i)^2\n", "$$\n", "\n", "The main difference to Bayesian linear regression in what follows is that:\n", "\n", "- We don't use a prior (or, equivalently, we use a non-informative prior so the parameters depend only on the data)\n", "- We only compute the 'maximum likelihood' values for the parameter, not a full posterior." ] }, { "cell_type": "markdown", "id": "a7998054", "metadata": {}, "source": [ "## Loss Function" ] }, { "cell_type": "markdown", "id": "7468a61c", "metadata": {}, "source": [ "We choose $w_1$, $w_2$, $b$ to minimise the mean squared error between the predicted and actual value:\n", "\n", "$$\n", "\\mathcal{L} = \\frac{1}{N} \\sum_{i=1}^{N} (\\hat{y_i} - y_i)^2\n", "$$\n", "\n", "This is the **mean squared error (MSE)** loss function.\n", "\n", "Here's an example for one choice of $w_1$, $w_2$ and $b$. The loss is the sum of the lengths of the vertical black lines (squared) - the difference between the predicted and actual value:" ] }, { "cell_type": "code", "execution_count": 5, "id": "f9cd3f8c", "metadata": {}, "outputs": [ { "data": { "image/png": "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82P37t20aNFCf2zQoEFUqFBBnywt3dA4Li6ORYsWMXHiRINtw3SaN2+eazPqXbt2kZqaSr9+/Wy6phCOIF2vQtjBwoULqVWrFv7+/kRGRjJkyBDu3r1rcE58fDy9evUiPDycgIAAypYtS58+fUhKStKfs3nzZlq1akWxYsUoWrQo1apVY/z48U57H35+fgZJUqdnz54AnDx50uJrDR8+nJ49e1pVTWjVqlWoVCqee+45u11TiPySFqUQ+aQr3de+fXtef/11Tp8+zaJFizh48CC7d+/G19eXjIwMOnbsSHp6Om+88Qbh4eFcuXKFX375hbt37xIaGspff/1F165dqVOnDlOnTsXf35+zZ8+ye/fuPGNISkoiMzMzz/Ns3dD32rVrABbv3fndd9+xZ88eTp48afHEp8zMTL799ltatGhhdCNkW64phF24cOcSITzOihUrDLZ+un79uuLn56d06NBBUavV+vMWLFigAMry5csVRVGUI0eOKIDy3Xffmbz2J598ogDKjRs3rI6rdevWJrepyv41YMAAq6+tKIrSvn17JSQkRLlz506e56ampirlypVTxo0bpyjKv1tEmXvviqIoP//8swIoCxcutNs1hbAHaVEKkQ9btmwhIyODESNGGOwoP2jQIMaPH8/69et58cUXCQ0NBeC3337jySefpEiRIrmuVaxYMQB+/PFHXnzxRat2qP/oo4+4c+dOnudFRkZafE2d6dOns2XLFhYuXKiP0ZwPPviAzMxMq7uMV61aha+vL71797bbNYWwC1dnaiE8Sc4W5YwZMxRAOXfuXK5z69WrpzRq1Ej//ahRoxRACQwMVDp06KAsWLBAuXv3rv7x1NRUpWXLlgqglCxZUvnPf/6j/N///Z9BS9XZvvnmG0WlUikvv/yyRecnJCQogYGB+pa0oljW+rt3755SpEgRpWvXrna7phD2IpN5hHCSjz76iOPHjzN+/HgePHjAsGHDqFWrFn///TcAgYGB7Ny5ky1btvDCCy9w/Phx/vOf//DEE0+gVqvNXvv27dtcu3Ytz6/sE4fysnnzZvr370+XLl1YvHixRc+ZOHEijzzyCI8//jgXLlzgwoUL+vHNGzducOHCBTQaTa7nrVu3zuRsV1uvKYTduDpTC+FJcrYoV61apQDKhg0bDM5LT09XQkNDlV69epm81u7duxVAeeedd0ye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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def predict(X, w_1, w_2, b):\n", " return w_1 * X[\"oranges\"] + w_2 * X[\"coffee\"] + b\n", "\n", "\n", "def loss(y_hat, y):\n", " return ((y_hat - y) ** 2).sum() / len(y)\n", "\n", "\n", "def plot_predictions(w_1, w_2, b, ax=None):\n", " y_hat = predict(df[[\"oranges\", \"coffee\"]], w_1, w_2, b)\n", "\n", " if ax is None:\n", " fig, ax = plt.subplots(1, 1, figsize=(5, 3))\n", " ax.plot(y_hat, df[\"happy\"], \"o\")\n", " ax.plot([y_hat.min(), y_hat.max()], [y_hat.min(), y_hat.max()], \"r--\")\n", " ax.set_xlabel(r\"$\\hat{y}$ (predicted happiness)\")\n", " ax.set_ylabel(r\"$y$ (actual happiness)\")\n", " ax.set_title(\n", " f\"$w_1$ = {str(w_1)}, $w_2$ = {str(w_2)}, $b$ = {str(b)}\\n\"\n", " f\"loss = {loss(y_hat, df['happy']):.3f}\"\n", " )\n", " for _, row in df.iterrows():\n", " ax.plot([y_hat, y_hat], [y_hat, df[\"happy\"]], color=\"k\", linewidth=0.5, zorder=0)\n", "\n", "\n", "plot_predictions(0.1, 0.01, -0.5)" ] }, { "cell_type": "markdown", "id": "d182a401", "metadata": {}, "source": [ "We can compute the loss for many different values of $w_1$, $w_2$, and $b$ (here varying only one or two of the parameters due to be able to plot nicely):" ] }, { "cell_type": "code", "execution_count": 6, "id": "f7964dc5", "metadata": {}, "outputs": [ { "data": { "image/png": "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2K0qa1HxWhtxr18GcWuSlAlV4hIAUC7yHBV6cfFVenF7gesa4dN3S18bRt4IU14UMnEPJq1ELvBnLTK+MRYYbCeyT9BO5I+inULc75LSUfzfg0YncDqWudhV0IrNeaAnAOC/v+Yg+3qpxNkQUVsjCALi91ZPO5kZ5Al7JZ/htgTx8fHw9PSESqVCQEAA0tLS6qy/fft2eHl5QaVSoX///tizZ4/R93fu3InRo0fD2dkZMpkMWVlZTZg9ERGZo7l6qK9evYqnn34azs7OaNeuHfr3748jR478Lw9BQExMDDp37ox27dohODgYZ86cacQrbXySNqjXrFmDAQMGGLbECAwMxLfffltr/Y0bN0ImkxkVlUrVjBm3LP3c1Rh5b0foBWDdgXNSp0NEbcy+09dwPLcYtjYKzAzylDodqodt27YhKioKixYtQkZGBnx9fRESEoL8fNPbMKakpGDq1KmYNWsWMjMzERoaitDQUBw7dsxQR6vVYvjw4Vi+fHlzXQYRETWQoJeZVRri5s2buO+++2BtbY1vv/0Wx48fx4oVK9C+fXtDnXfffRcffPABEhIScOjQIdjZ2SEkJARlZWWNfcmNRtLugq5du+Kdd95B7969IQgCNm3ahPHjxyMzMxP9+vUzGePo6IhTp04ZvuZqsXWb80BP7D99DZ8fuYJ5o+5FRwel1CkRURsgCALif6zunX56WHe0txM53paaxcqVKzF79mzDntIJCQn45ptvsGHDBrz22ms16q9evRpjxozBggULAABLly5FUlIS4uLikJCQAACYPn06AODixYvNcxFERNRgzTEfevny5fDw8MAnn3xiONajR4//5SAIWLVqFRYuXIjx48cDAD799FO4urpi165dmDJlStMnaQZJe6gff/xxPProo+jduzfuvfdevPXWW7C3t8fBgwdrjZHJZHBzczOUO/tekmkBPTpgYDcnVFTp8ckvF6ROh4jaiLQLN3Dk0k3YKOR4dniPuweQ5CoqKpCeno7g4GDDMblcjuDgYKSmppqMSU1NNaoPACEhIbXWJyIiyyQIMrNKeXk5iouLjUp5ebnJ19i9ezcGDx6MsLAwdOrUCQMHDsT69esN379w4QI0Go3RfUWtViMgIMCi7ysWM4dap9Nh69at0Gq1CAwMrLVeSUkJunfvDg8PD4wfPx6///57nec19Y/clshkMswZ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y8/Pl6ioqEqHSy9YsMDkJEEajUbvuk5DduzYIYmJiRIcHCxqtVrUarUEBwdLYmJipTNcjx8/Xvr06WOwrKysTPr371/pPkybNs3kDMyTJ0+Wxx9/3Gj5iBEj9JYVK1bolb/55psSHx9vModTp07JkCFDxM3NTTfE1tHRUWJiYu6a4O9ON27ckBdffFE6dOggI0eOlJKSEvnwww9FrVaLSqWSnj176obBGpOTkyM9evTQDekNCQnRGzK9cuVKmT17ttH4n376STZs2GAyx7S0NKPl06dP112zbcjLL79s8trb+fPny48//mi0fNKkSfL8888bLRepeB/8dblzMrxx48bJkCFDTNZx7do1mTBhgrRr106cnZ1FrVZLSEiIPPXUU7Jnzx6TseXl5fLee+/Jo48+KtOnTxetVitff/21BAUFSaNGjWTEiBFy48YNo/EFBQUyePBgcXBwEJVKJTExMXqTqG3atEm++eYbkzmsXr1ali5darT86tWrsmTJEqPlNfF5vE2r1cr06dPFz89P7O3tqzTkuyY+i6Q8dqj/Ys6cObo/jpGRkfLrr7/qymJjY2X48OF623/zzTfSqlUrUavV0r59e1m3bp1euVarlSlTpkiTJk3EyclJevXqJcePH6+LXakzNdlmRUVF0qdPH2ncuLE4OjpKSEiIvPjii/dMx/C26rRZZmamALhriY2NrXKd94KabrPExETx9/cXtVotgYGBkpiYKKdOnarDPap91WmzkJAQg2321wl9eDyrXpvVl+NZXbt69areNZp3ys/PN9kJsgZlZWWSl5dnsvz2RFHmKiwstOiHmxs3blT5xzKtVisajUays7MtvsXPzZs3qz055IkTJ+TQoUMWzehNyrp586bBW1bVhdr4PO7du1dmzZqlm9jMEtX5LJJyVCImxkEQERERERERkUG8hpqIiIhsRm5uLj744AMMHDgQ0dHRiI6OxsCBA/Hhhx+anICppuswZvLkyXjuuedMbnPkyBG88sor6NKlC/z9/eHv748uXbrglVde0ZvUqTbrsPX4mqrDmNOnT+Nvf/ubzcZbQw51FX/x4kX8+9//xvr161FaWqpXVlhYiHfeeeeejifl8Qw1ERER2YQ9e/YgPj4erq6uiIuLQ5MmTQBUzA6cmpqKoqIibNq0yeQkcTVRhynDhg3D+fPnsW3bNoPlGzZswIAB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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def plot_loss_grid_2d(ax, title=\"\"):\n", " samples = 20\n", " W_1 = np.linspace(-0.025, 0.25, samples)\n", " W_2 = np.linspace(-0.005, 0.02, samples)\n", " b = 0.885135748052889\n", "\n", " w1_plot = []\n", " w2_plot = []\n", " losses = []\n", " for w_1, w_2 in itertools.product(W_1, W_2):\n", " w1_plot.append(w_1)\n", " w2_plot.append(w_2)\n", " losses.append(loss(predict(df, w_1, w_2, b), df[\"happy\"]))\n", "\n", " sns.heatmap(\n", " np.array(losses).reshape(samples, samples),\n", " xticklabels=W_1.round(2),\n", " yticklabels=W_2.round(2),\n", " cbar_kws={\"label\": \"Loss\"},\n", " ax=ax,\n", " )\n", " ax.set_xlabel(\"$w_1$\")\n", " ax.set_ylabel(\"$w_2$\")\n", " ax.set_title(title)\n", "\n", "\n", "def plot_loss_grid_1d(ax, title=\"\"):\n", " samples = 50\n", " W_1 = np.linspace(0, 0.24, samples)\n", " w_2 = 0.0059909\n", " b = 0.885135748052889\n", "\n", " w1_plot = []\n", " losses = []\n", " for w_1 in W_1:\n", " w1_plot.append(w_1)\n", " losses.append(loss(predict(df, w_1, w_2, b), df[\"happy\"]))\n", "\n", " ax.plot(w1_plot, losses)\n", " ax.set_xlabel(\"$w_1$\")\n", " ax.set_ylabel(\"loss\")\n", " ax.set_title(title)\n", "\n", " \n", "fig, ax = plt.subplots(1, 2, figsize=(10, 4))\n", "plot_loss_grid_1d(ax[0], title=\"Loss when varying $w_1$ only\")\n", "plot_loss_grid_2d(ax[1], title=\"Loss when varying $w_1$ and $w_2$\")\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "id": "427c0d7d", "metadata": {}, "source": [ "The best choice of $w_1$, $w_2$, and $b$ is the one that minimises the loss (the bottom of the valleys above) - how to find where that is?" ] }, { "cell_type": "markdown", "id": "3c1b41b9", "metadata": {}, "source": [ "## Gradient Descent\n", "\n", "The loss function again (expanded to include the definition of $\\hat{y}$):\n", "\n", "$$\n", "\\mathcal{L} = \\frac{1}{m} \\sum_{i=1}^{m} (\\hat{y_i} - y_i)^2 = \\frac{1}{m} \\sum_{i=1}^{m} (w_1 x_{1,i} + w_2 x_{2,i} + b - y)^2\n", "$$\n", "\n", "The minimum loss will be found where the partial derivatives of the loss function with respect to the parameters is zero:" ] }, { "cell_type": "markdown", "id": "8f6690c0", "metadata": {}, "source": [ "$$\n", "\\frac{\\partial \\mathcal{L}}{\\partial w_1} = \\frac{2}{m} \\sum_{i=1}^{m} (\\hat{y_i} - y_i) x_{1,i} \\\\\n", "\\frac{\\partial \\mathcal{L}}{\\partial w_2} = \\frac{2}{m} \\sum_{i=1}^{m} (\\hat{y_i} - y_i) x_{2,i} \\\\\n", "\\frac{\\partial \\mathcal{L}}{\\partial b} = \\frac{2}{m} \\sum_{i=1}^{m} (\\hat{y_i} - y_i)\n", "$$\n", "\n", "(sometimes you will see $\\mathcal{L}/2$ used as a loss function instead, to avoid the factors 2 above)\n", "\n", "The process by which we find the parameter values that zero the gradients above is called **gradient descent**.\n", "\n", "I've replaced $N$, the number of samples in the dataset, with $m \\leq N$, to indicate that we could choose to update the parameters based on the loss of a subset of the data.\n", "\n", "- $m$ is known as the **batch size**\n", "\n", "Different values of $m$ correspond to different forms of gradient descent:\n", "\n", "- $m = N$ : Batch Gradient Descent (or, more commonly, **Gradient Descent**)\n", "- $1 < m < N$ : Mini Batch Gradient Descent (also known as Mini Batch Stochastic Gradient Descent or, more commonly, just **Stochastic Gradient Descent**)\n", "- $m = 1$: Stochastic Gradient Descent\n", "\n", "The random (stochastic) nature of mini batch and stochastic gradient descent come from needing to select a sample of the dataset for each parameter update.\n", "\n", "Broadly:\n", "- Batch gradient descent: Slower, better convergence\n", "- (Mini batch) stochastic gradient descent: Faster, worse convergence" ] }, { "cell_type": "markdown", "id": "66e15f99", "metadata": {}, "source": [ "We can pick some initial values for $w_1$, $w_2$, and $b$, and then iteratively update them towards the values that will zero the partial derivatives of the loss:\n", "\n", "$$\n", "w_1 = w_1 - \\alpha \\frac{\\partial \\mathcal{L}}{\\partial w_1} \\\\\n", "w_2 = w_2 - \\alpha\\frac{\\partial \\mathcal{L}}{\\partial w_2} \\\\\n", "b = b - \\alpha\\frac{\\partial \\mathcal{L}}{\\partial b}\n", "$$\n", "\n", "where $\\alpha$ is the \"learning rate\" (or the relative size of the parameter updates we're going to make after each iteration)\n", "\n", "The learning rate is a hyperparameter:\n", "- $\\alpha$ too large - gradient descent may not converge\n", "- $\\alpha$ too small - gradient descent will take too long to converge" ] }, { "cell_type": "markdown", "id": "1b1d1698", "metadata": {}, "source": [ "Gradient descent will converge faster if all the features are on the same scale, so we can standardise them (to have mean zero and standard deviation of one):" ] }, { "cell_type": "code", "execution_count": 11, "id": "71636f3a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
orangescoffeehappy
count1.000000e+021.000000e+021.000000e+02
mean-6.661338e-176.217249e-17-5.817569e-16
std1.000000e+001.000000e+001.000000e+00
min-3.094917e+00-2.163980e+00-2.121838e+00
25%-6.171814e-01-6.119499e-01-6.178392e-01
50%5.856466e-02-1.085261e-018.677973e-02
75%7.343107e-016.999679e-016.344933e-01
max2.311051e+002.550109e+002.220604e+00
\n", "
" ], "text/plain": [ " oranges coffee happy\n", "count 1.000000e+02 1.000000e+02 1.000000e+02\n", "mean -6.661338e-17 6.217249e-17 -5.817569e-16\n", "std 1.000000e+00 1.000000e+00 1.000000e+00\n", "min -3.094917e+00 -2.163980e+00 -2.121838e+00\n", "25% -6.171814e-01 -6.119499e-01 -6.178392e-01\n", "50% 5.856466e-02 -1.085261e-01 8.677973e-02\n", "75% 7.343107e-01 6.999679e-01 6.344933e-01\n", "max 2.311051e+00 2.550109e+00 2.220604e+00" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for column in df.columns:\n", " df[column] = (df[column] - df[column].mean()) / df[column].std()\n", "\n", "df.describe()" ] }, { "cell_type": "markdown", "id": "1ed221f7", "metadata": {}, "source": [ "Here's a basic implementation of batch gradient descent:" ] }, { "cell_type": "code", "execution_count": 12, "id": "d3b66089", "metadata": {}, "outputs": [], "source": [ "def gradient_descent(df, learning_rate=0.001, epochs=1000):\n", " w_1 = 0\n", " w_2 = 0\n", " b = 0\n", " X = df[[\"oranges\", \"coffee\"]]\n", " y = df[\"happy\"]\n", " losses = []\n", " for e in range(epochs):\n", " l = loss(predict(X, w_1, w_2, b), y)\n", " losses.append(l)\n", "\n", " y_hat = predict(X, w_1, w_2, b)\n", " delta = y_hat - y\n", " w_1 = w_1 - (learning_rate * 2 / len(y)) * (delta * X[\"oranges\"]).sum()\n", " w_2 = w_2 - (learning_rate * 2 / len(y)) * (delta * X[\"coffee\"]).sum()\n", " b = b - (learning_rate * 2 / len(y)) * delta.sum()\n", "\n", " return w_1, w_2, b, losses" ] }, { "cell_type": "markdown", "id": "9473e627", "metadata": {}, "source": [ "The number of **epochs** is how many times we'll loop through the entire dataset before stopping (updating the parameters after each _batch_, though in this case we only have one batch per epoch - the entire dataset)." ] }, { "cell_type": "code", "execution_count": 13, "id": "976bda5f", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "w_1, w_2, b, l = gradient_descent(df, learning_rate=0.001, epochs=5000)\n", "\n", "fig, ax = plt.subplots(1, 2, figsize=(8, 4))\n", "ax[0].plot(l)\n", "ax[0].set_xlabel(\"epochs\")\n", "ax[0].set_ylabel(\"loss\")\n", "plot_predictions(round(w_1, 3), round(w_2, 3), round(b, 3), ax[1])\n", "fig.tight_layout()\n" ] }, { "cell_type": "markdown", "id": "249468d6", "metadata": {}, "source": [ "## Neural Network for Linear Regression\n", "\n", "Here is linear regression represented as a small neural network:\n", "\n", "![](../img/01_linear_regression_net.png)\n", "\n", "You'll see this type of network (and the networks we'll use throughout the next few notebooks) referred to as:\n", "\n", "- Feedforward neural network\n", "- Single- or Multi-layer Perceptron (MLP)\n", "- Fully-connected neural network\n", "\n", "All the layers in this network are _\"dense\"_ or _\"fully-connected\"_ layers:\n", "\n", "- **Dense** layer: All nodes in the previous layer are connected to all the nodes in the next layer (a node is one of the circles above)" ] }, { "cell_type": "markdown", "id": "a1111335", "metadata": {}, "source": [ "## Pytorch\n", "\n", "[pytorch](https://pytorch.org/) and [tensorflow](https://www.tensorflow.org/) are two of the most well-known deep learning libraries.\n", "\n", "Here is our linear regression model expressed as a pytorch neural network:" ] }, { "cell_type": "code", "execution_count": 14, "id": "1d7caba9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sequential(\n", " (0): Linear(in_features=2, out_features=1, bias=True)\n", ")\n" ] } ], "source": [ "model = nn.Sequential(\n", " nn.Linear(in_features=2, out_features=1),\n", ")\n", "print(model)" ] }, { "cell_type": "markdown", "id": "23f6a270", "metadata": {}, "source": [ "`nn.Sequential` builds a neural network from a sequence of layers - for our model a single \"linear layer\" with 2 inputs ($x_1$, $x_2$) and 1 output ($\\hat{y}$).\n", "\n", "The layer specification is enough for pytorch to know the parameters we have to learn, and these are given random initial values (see [here](https://pytorch.org/docs/stable/generated/torch.nn.Linear.html#torch.nn.Linear)):" ] }, { "cell_type": "code", "execution_count": 15, "id": "991b8651", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Layer: 0.weight | Size: torch.Size([1, 2]) | Values : tensor([[-0.2026, 0.4981]], grad_fn=) \n", "\n", "Layer: 0.bias | Size: torch.Size([1]) | Values : tensor([-0.5028], grad_fn=) \n", "\n" ] } ], "source": [ "for name, param in model.named_parameters():\n", " print(f\"Layer: {name} | Size: {param.size()} | Values : {param[:]} \\n\")\n" ] }, { "cell_type": "markdown", "id": "0c992e02", "metadata": {}, "source": [ "As before we have 2 weights ($w_1$ and $w_2$, but now both in `0.weight`), and an intercept or **bias** term ($b$ before, and now in `0.bias`)." ] }, { "cell_type": "markdown", "id": "b603dd20", "metadata": {}, "source": [ "pytorch works with its own \"tensor\" data structure (like a numpy array optimised for working with GPUs and automatic differentiation), so we need to convert our data:" ] }, { "cell_type": "code", "execution_count": 16, "id": "30a45ae2", "metadata": {}, "outputs": [], "source": [ "X = torch.tensor(df[[\"oranges\", \"coffee\"]].values, dtype=torch.float)\n", "\n", "y = torch.tensor(df[\"happy\"].values, dtype=torch.float)\n", "y = y[:, None] # output needs to be 2D, [:, None] adds a second (length 1) axis" ] }, { "cell_type": "markdown", "id": "0883b3ac", "metadata": {}, "source": [ "To get predictions from the model (using the randomly initialised weights at this stage), just pass it the data:" ] }, { "cell_type": "code", "execution_count": 17, "id": "6e8d46a0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([[-0.3267],\n", " [-0.4619],\n", " [-0.3238],\n", " [-0.8305],\n", " [-1.1847],\n", " [-0.7016],\n", " [-0.3255],\n", " [-0.5075],\n", " [-1.0448],\n", " [-0.6115]], grad_fn=)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model(X[:10])" ] }, { "cell_type": "markdown", "id": "b66a8fba", "metadata": {}, "source": [ "This is called a **forward pass** through the network (start with data at the input layer and pass it forward through the network to get predictions at the output layer).\n", "\n", "Time to optimise the parameters (train the network). We can use pytorch's built-in mean-squared-error (MSE) loss function class:" ] }, { "cell_type": "code", "execution_count": 18, "id": "ae1f6436", "metadata": {}, "outputs": [], "source": [ "loss_fn = nn.MSELoss()" ] }, { "cell_type": "markdown", "id": "1b1a1256", "metadata": {}, "source": [ "And its own implementation of stochastic gradient descent (SGD):" ] }, { "cell_type": "code", "execution_count": 19, "id": "16826a99", "metadata": {}, "outputs": [], "source": [ "learning_rate = 0.001\n", "optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)" ] }, { "cell_type": "markdown", "id": "e87ba111", "metadata": {}, "source": [ "Then define a function to train the network:\n", "\n", "(NB: usually this would include a 2nd inner loop over _batches_, but here we're updating the parameters on the entire dataset at each iteration)" ] }, { "cell_type": "code", "execution_count": 20, "id": "66c2b2d1", "metadata": {}, "outputs": [], "source": [ "def train(X, y, model, loss_fn, optimizer, epochs):\n", " loss_history = []\n", " for e in range(epochs):\n", " # Compute prediction and loss\n", " pred = model(X)\n", " loss_value = loss_fn(pred, y)\n", " loss_history.append(float(loss_value))\n", "\n", " # Backpropagation\n", " optimizer.zero_grad() # without this the optimiser would accumulate the gradients between epochs\n", " loss_value.backward()\n", " optimizer.step()\n", "\n", " print(\"Done!\")\n", " return model, loss_history\n" ] }, { "cell_type": "markdown", "id": "be797b44", "metadata": {}, "source": [ "In each epoch there are two main steps:\n", "\n", "1. **Forward pass:** Predict and compute the loss with the current parameter values\n", "2. **Back propagation:** Use the loss and the gradients (partial derivatives) to update the parameter values\n", "\n", "\n", "Let's go!" ] }, { "cell_type": "code", "execution_count": 21, "id": "e5b86b22", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done!\n" ] } ], "source": [ "model, loss_history = train(X, y, model, loss_fn, optimizer, 15000)" ] }, { "cell_type": "markdown", "id": "47f77744", "metadata": {}, "source": [ "We get a similar fit (and loss) to our \"more conventional\" linear regression implementation from before:" ] }, { "cell_type": "code", "execution_count": 22, "id": "b191b890", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Layer: 0.weight | Size: torch.Size([1, 2]) | Values : tensor([[0.2929, 0.7050]], grad_fn=) \n", "\n", "Layer: 0.bias | Size: torch.Size([1]) | Values : tensor([-2.5278e-09], grad_fn=) \n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "params = []\n", "for name, param in model.named_parameters():\n", " print(f\"Layer: {name} | Size: {param.size()} | Values : {param[:]} \\n\")\n", " params.append(param.detach().numpy())\n", "\n", "w_1 = params[0][0][0]\n", "w_2 = params[0][0][1]\n", "b = params[1][0]\n", "\n", "fig, ax = plt.subplots(1, 2, figsize=(8, 4))\n", "ax[0].plot(loss_history)\n", "ax[0].set_xlabel(\"epochs\")\n", "ax[0].set_ylabel(\"loss\")\n", "plot_predictions(round(w_1, 3), round(w_2, 3), round(b, 3), ax[1])\n", "fig.tight_layout()\n" ] }, { "cell_type": "markdown", "id": "2ac85e66", "metadata": {}, "source": [ "## Adding nodes and layers\n", "\n", "Here's a slightly bigger network (but with only one input feature, $x$):\n", "\n", "![](../img/01_two_hidden_layers.png)\n", "\n", "- Additional layers between the input and output layer are known as **hidden layers**\n", "- Each edge (arrow) in the diagram has an associated _weight_\n", "- All of the nodes have an implicit _bias_ / intercept term as before, they're just not shown.\n", "- All the layers are still _dense_ layers (each node connected to all the nodes in the next layer)" ] }, { "cell_type": "markdown", "id": "ed2c922e", "metadata": {}, "source": [ "Example output from a node in the first hidden layer:\n", "\n", "$$\n", "h_{(1,1)} = w_{x\\rightarrow(1,1)} x + b_{(1,1)}\n", "$$\n", "\n", "Example output from a node in the second hidden layer:\n", "\n", "$$\n", "h_{(2,1)} = w_{(1,1)\\rightarrow(2,1)} h_{(1,1)} + w_{(1,2)\\rightarrow(2,1)} h_{(1,2)} + w_{(1,3)\\rightarrow(2,1)} h_{(1,3)} + b_{(2,1)}\n", "$$\n", "\n", "Final output:\n", "\n", "$$\n", "\\hat{y} = w_{(2,1)\\rightarrow y} h_{(2,1)} + w_{(2,2)\\rightarrow y}h_{(2,2)} + b_{y}\n", "$$\n", "\n", "The weights and biases aren't labeled on the diagram, but the notation $w_{(1,3)\\rightarrow(2,1)}$ means the arrow from node 3 in the first hidden layer, to node 1 in the second hidden layer.\n", "\n", "Here's the network implemented in pytorch:" ] }, { "cell_type": "code", "execution_count": 23, "id": "c72fb711", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sequential(\n", " (0): Linear(in_features=1, out_features=3, bias=True)\n", " (1): Linear(in_features=3, out_features=2, bias=True)\n", " (2): Linear(in_features=2, out_features=1, bias=True)\n", ")\n", "\n", "------ Parameters ------\n", "\n", "Layer: 0.weight | Size: torch.Size([3, 1])\n", "\n", "Layer: 0.bias | Size: torch.Size([3])\n", "\n", "Layer: 1.weight | Size: torch.Size([2, 3])\n", "\n", "Layer: 1.bias | Size: torch.Size([2])\n", "\n", "Layer: 2.weight | Size: torch.Size([1, 2])\n", "\n", "Layer: 2.bias | Size: torch.Size([1])\n", "\n" ] } ], "source": [ "model = nn.Sequential(\n", " nn.Linear(in_features=1, out_features=3),\n", " nn.Linear(in_features=3, out_features=2),\n", " nn.Linear(in_features=2, out_features=1),\n", ")\n", "print(model)\n", "\n", "print(\"\\n------ Parameters ------\\n\")\n", "for name, param in model.named_parameters():\n", " print(f\"Layer: {name} | Size: {param.size()}\\n\")\n" ] }, { "cell_type": "markdown", "id": "5d6d7654", "metadata": {}, "source": [ "Note the the number of weights in each layer matches the number of arrows in the diagram (3 to the first hidden layer, 6 to the second hidden layer, and 2 to the output layer). Plus there's one bias (intercept) term per node in the network." ] }, { "cell_type": "markdown", "id": "409b234a", "metadata": {}, "source": [ "## What types of functions can this network learn?\n", "\n", "a) Linear (with terms up to $x$)\n", "\n", "b) Quadratic (with terms up to $x^2$)\n", "\n", "c) Cubic (with terms up to $x^3$)\n", "\n", "d) Higher order\n", "\n", "\n", "Remember that:\n", "- Our first example with only an input and output layer could fit a _linear_ function.\n", "- This new network has two additional (hidden) layers" ] }, { "cell_type": "markdown", "id": "ae348b7e", "metadata": {}, "source": [ "## Can the network learn $y = x^2$ ?" ] }, { "cell_type": "code", "execution_count": 24, "id": "8622d301", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done!\n" ] } ], "source": [ "X = np.linspace(-1, 1, 1000)\n", "y = X**2\n", "\n", "X = torch.tensor(X, dtype=torch.float)[:, None]\n", "y = torch.tensor(y, dtype=torch.float)\n", "y = y[:, None]\n", "\n", "optimizer = torch.optim.SGD(model.parameters(), lr=0.001)\n", "model, loss_history = train(X, y, model, loss_fn, optimizer, 10000)\n" ] }, { "cell_type": "code", "execution_count": 25, "id": "16705c3b", "metadata": {}, "outputs": [ { "data": { "image/png": "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Dx+OnJwcjBw5Es8//zxWrVqF/v37AwBu376NOnXqYPny5ejXrx8GDx6MmzdvYvv27frzP/jgA2zevBknTpzAmTNn0KRJE+zYsQMhISGPxLB79248//zz2Llzp/7Nd8uWLejRowdyc3Nhb28PFxcXLFiwAGFhYSZ+RYiIrMvYsWOxc+dOBAYG4tixYzh48CDUarXUYZEVYo8sWZ1z584hJycHL774IpycnPTbihUrcP78eX274kmuu7s7mjRpguTkZABAcnIyOnXqZPC4nTp1wtmzZ6HRaJCUlASFQoHOnTs/NpbWrVvr9729vQEA6enpAIDIyEgMHz4cISEhmD17tkFsRERV2Zw5c1BYWIg1a9Zg5cqVTGKp3JjIktW5d+8eAGDz5s1ISkrSbydPntTXyVaUg4ODUe2KlwrIZDIAYv0uAHzyySc4ceIEevTogT/++APNmzfH+vXrKyU+IiJrdv78eVy/fh1arRaXLl2SOhyyYkxkyeo0b94carUaKSkpaNiwocHm6+urb/fPP//o9+/cuYMzZ86gWbNmAIBmzZph3759Bo+7b98+NG7cGAqFAq1atYJWqzWouS2Pxo0bY8KECdi+fTteffVVLFu2rEKPR0Rk7fLz8/HGG2+gf//+mDFjBoYPH67/TxZRWSmlDoCorJydnfHee+9hwoQJ0Gq1eOaZZ5CRkYF9+/bBxcUF9erVAwBMnz4dNWrUgKenJyZNmgQPDw/06dMHAPDuu++iffv2mDFjBvr374/4+HgsXLgQixYtAgD4+fkhLCwMb775Jr788ku0adMGly9fRnp6Ovr16/fEGHNzc/H+++/jtddeg7+/P65evYqDBw+ib9++JntdiIiswaRJk5CRkYEvv/wSTk5O2LJlC958801s2rRJ6tDIGglEVkir1Qrz588XmjRpItjZ2Qk1a9YUQkNDhT///FPYtWuXAED4/fffhRYtWggqlUro0KGDcOTIEYPH+PXXX4XmzZsLdnZ2Qt26dYXPP//c4P7c3FxhwoQJgre3t6BSqYSGDRsKS5cuFQRB0D/HnTt39O0PHz4sABAuXrwo5OXlCQMGDBB8fX0FlUol1K5dW4iIiBByc3NN/toQEVmqXbt2CUqlUvjrr7/0xy5evCi4uLgIixYtkjAyslactYBsjm5GgTt37sDNzU3qcIiIiMhEWCNLRERERFaJiSwRERERWSWWFhARERGRVWKPLBERERFZJSayRERERGSVmMgSERERkVViIktEREREVomJLBERERFZJSayRERERGSVmMgSERERkVViIktEREREVomJLBERERFZpf8HIS99xrwg1SQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 2, figsize=(7, 3))\n", "ax[0].plot(loss_history)\n", "ax[0].set_xlabel(\"epochs\")\n", "ax[0].set_ylabel(\"loss\")\n", "ax[1].plot(X.numpy(), y.numpy(), \"b\", label=\"y = $x^2$\")\n", "ax[1].plot(X.numpy(), model(X).detach().numpy(), \"k--\", label=\"fit\")\n", "ax[1].set_xlabel(\"x\")\n", "ax[1].set_ylabel(\"y\")\n", "ax[1].legend()\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "id": "76d7fdb2", "metadata": {}, "source": [ "No! The new neural network is still a linear regression model that could be reduced to $\\hat{y} = wx + b$." ] }, { "cell_type": "markdown", "id": "8083fad6", "metadata": {}, "source": [ "## Why?\n", "\n", "The neural network can be broken down in to two main mini-structures (that can appear anywhere in the network, not necessarily in the input and output layers as shown below):" ] }, { "cell_type": "markdown", "id": "5f407502", "metadata": {}, "source": [ "![](../img/01_mini_networks.png)" ] }, { "cell_type": "markdown", "id": "06e09968", "metadata": {}, "source": [ "Left: The linear regression model we fit in the first example earlier.\n", "\n", "Right: Wasn't intuitive to me that this is still 1st-order linear regression (I would have guessed the extra layer creates an $x^2$ term). So I had to write it out:\n", "\n", "$$\n", "h = w_x x + b_h \\\\\n", "\\hat{y} = w_h h + b_y \\\\\n", "\\hat{y} = w_h(w_x x + b_h) + b_y \\\\\n", "\\hat{y} = (w_h w_x) x + (w_h b_h + b_y)\n", "$$\n", "\n", "The weights get multiplied, but not the input features." ] }, { "cell_type": "markdown", "id": "7d279419", "metadata": {}, "source": [ "## What's missing?\n", "\n", "We need the output from each node to be a non-linear function of its inputs.\n", "\n", "Activation functions - Part 2." ] }, { "cell_type": "markdown", "id": "0651c956", "metadata": {}, "source": [ "## References\n", "\n", "- [_\"Deriving Machine Learning Cost Functions using Maximum Likelihood Estimation (MLE) - Part I\"_](https://allenkunle.me/deriving-ml-cost-functions-part1), Allen Akinkunle\n", "- [_\"Supervised Machine Learning: Regression and Classification\"_](https://www.coursera.org/learn/machine-learning?specialization=machine-learning-introduction#syllabus) (Coursera), Andrew Ng" ] } ], "metadata": { "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.10.6" } }, "nbformat": 4, "nbformat_minor": 5 }