{ "metadata": { "name": "", "signature": "sha256:5273bc93f68eba0844c6146eb84e02e88f8c98e9d03151363b0bcc7f699124e2" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "
Linear Regression Lab
\n", "\n", "
February 17th 2015
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Regression refers to the technique employed when learning a mapping, $f(\\cdot)$, from vector of input data to a quantitative output. For example, coordinates in a room to temperature, someone's Body Mass Index to their life expectancy or a stock's performance over the last 5 days to it's value tomorrow.\n", "\n", "There are numerous methods for addressing this problem, each with their own set of assumptions and behaviour. Some are ideal for tackling large volumes of data while others provide more informative probabilistic outputs.\n", "\n", "In this lab, we'll focus on Linear Regression; a good point of reference for many other regression techniques and still used widely around the world today due to their simplicity and favourable scaling characteristics." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Part I: Maximum Likelihood Linear Regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section, we're going to explore what linear regression models are and investigate how they can be trained using a \"Maximum Likelihood\" approach." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Import related packages\n", "import numpy as np\n", "import scipy.linalg as linalg\n", "import scipy.stats as stats\n", "import matplotlib.pyplot as pl\n", "\n", "#Set generated images to appear underneath the related cell\n", "%matplotlib inline " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 38 }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, lets generate some synthetic data. Here's we create a random 1-D vector $\\mathbf{x}$ of observation locations and evaluate an \"unknown\" ground truth function at these locations before adding some noise to create our observations, $\\mathbf{y}$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "nObs = 20 # number of observations\n", "betaInv = 0.2 # variance of Gaussian noise applied to samples\n", "x = np.sort(np.random.random(nObs)*10)[:,np.newaxis] # observation locations\n", "y = 0.5*x + 1 + 1*np.sin(x)+ (np.random.randn(nObs)*betaInv)[:,np.newaxis] # ground truth (we don't know this!)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 39 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets plot the data first to see what it looks like:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "pl.figure(figsize=(15,5))\n", "pl.plot(x,y,'b.')\n", "pl.axis([0,10,0,7])\n", "pl.xlabel('x')\n", "pl.ylabel('y')\n", "pl.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 40 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Linear Model with Polynomial Features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okay, now lets try to fit a model to it.\n", "\n", "One of the most straightforward types of regression is maximum likelihood regression using a linear model, (the output is a weighted sum of the features).\n", "For now, lets use a very simple model with just two parameters (or weights), $\\mathbf{w}$.\n", "\\begin{equation}\n", "f(x) = w_0 + w_1 x\n", "\\end{equation}\n", "This is just a line with $w_0$ and $w_1$ representing the bias and slope, respectively. \n", "\n", "In matrix form this is $\\mathbf{f}= \\mathbf{\\theta w}$ where $\\mathbf{\\theta}$ is $[x^0,x^1]$ (the feature matrix) and $\\mathbf{w}$ is $[w_0, w_1]^T$. \n", "\n", "The feature matrix has a dimensionality of $N\\times p$ where $N$ is the number of inputs and $p$ is the number of features. The complexity of the model can be increased by increasing $p$. Polynomial features (increasing powers of $x$) are commonly used in practice. Evaluating a polynomial model at locations $[x_1,...,x_N]$ and weights $[w_0,...,w_p]$ is given as:\n", "\n", "\\begin{equation}\n", "\\begin{bmatrix}\n", "f_1 \\\\\n", "f_2 \\\\\n", "\\vdots \\\\\n", "f_N\n", "\\end{bmatrix} =\n", " \\begin{bmatrix}\n", " x_1^0 & x_1^1 & \\cdots & x_1^{p-1} \\\\\n", " x_2^0 & x_2^1 & \\cdots & x_2^{p-1} \\\\\n", " \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", " x_N^0 & x_N^1 & \\cdots & x_N^{p-1}\n", " \\end{bmatrix} \n", " \\begin{bmatrix}\n", " w_0 \\\\\n", " w_1 \\\\\n", " \\vdots \\\\ \n", " w_{p-1} \n", " \\end{bmatrix}\n", "\\end{equation}\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets query our model and compare it against the data. To generate a polynomial feature matrix $\\theta$, we'll use\n", "custom function called polyFeatureGen() that takes the observation or query locations ($x$ or $x_{\\text{query}}$) and the number of features ($p$) as inputs. It returns an $n \\times p$ matrix such that:\n", "\\begin{equation}\n", "\\theta_{i,j} = x_i^{j-1}\n", "\\end{equation}" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Define Polynomial basis functions -------------------\n", "# x: input vector (n x d) where n is the number of inputs and d is their dimensionality (you can assume d=1 for this lab)\n", "# p: number of features (scalar)\n", "# theta: the feature matrix (n x p)\n", "\n", "def polyFeatureGen(x,p):\n", " #Solution:\n", " theta = x**np.arange(p)\n", " return theta" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "# Test polyFeatureGen\n", "# Run this cell. The output should be: \n", "# [[1 1 1]\n", "# [1 4 16]\n", "# [1 3 9]\n", "# [1 6 36]]\n", "\n", "xTest = np.array([1,4,3,6])[:,np.newaxis] # 4 1-D inputs\n", "pTest = 3 #This test model will have 3 features\n", "thetaTest = polyFeatureGen(xTest,pTest) #the test feature matrix (should be 4 x 3)\n", "print(thetaTest)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 1 1 1]\n", " [ 1 4 16]\n", " [ 1 3 9]\n", " [ 1 6 36]]\n" ] } ], "prompt_number": 42 }, { "cell_type": "markdown", "metadata": {}, "source": [ "For now, lets stick with two features. Lets pick two arbitriary values for the weights. Say," ] }, { "cell_type": "code", "collapsed": false, "input": [ "p = 2 #number of features\n", "w_guess = np.array([-0.2, 5])[:,np.newaxis]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 43 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate the query points and the associated feature matrix" ] }, { "cell_type": "code", "collapsed": false, "input": [ "nQuery = 1000 # number of query inputs\n", "xQuery = np.linspace(0,10,nQuery)[:,np.newaxis] #linearly spaced from 0 to 10" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 44 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Write a line of code to generate the associated feature matrix for the query points:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Uncomment and complete the line of code below to generate thetaQuery, (the feature matrix for the query points):\n", "#\n", "#Solution:\n", "thetaQuery = polyFeatureGen(xQuery,p)\n", "\n", "print(thetaQuery) #Should be a nQuery x p matrix" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 1. 0. ]\n", " [ 1. 0.01001001]\n", " [ 1. 0.02002002]\n", " ..., \n", " [ 1. 9.97997998]\n", " [ 1. 9.98998999]\n", " [ 1. 10. ]]\n" ] } ], "prompt_number": 45 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now evaluate the model at the query locations" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fQuery = thetaQuery.dot(w_guess)\n", "print(fQuery.shape)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(1000, 1)\n" ] } ], "prompt_number": 46 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And plot the results:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fig = pl.figure(figsize=(15,5))\n", "pl.plot(x,y,'b.')\n", "pl.plot(xQuery,fQuery,'r')\n", "pl.xlabel('x')\n", "pl.ylabel('f(x)')\n", "pl.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 47 }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's not a great fit! The Mean Squared Error is:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fModel = polyFeatureGen(x,p).dot(w_guess)\n", "MSE = np.mean((fModel - y)**2)\n", "print('Mean Squared Error: ' + str(MSE))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Mean Squared Error: 589.658294781\n" ] } ], "prompt_number": 48 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Maximum Likeliood Estimation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now lets learn the parameters of our model to see if we can improve the fit.\n", "The goal here is to estimate the parameter values (i.e. $\\mathbf{w}$) from the data. A popular way of doing this is by optimising the conditional likelihood of the data given a model, $p(y|x,w,\\beta^{-1})$, with respect to the parameters.\n", "\n", "A common assumption to make is that the measurements we gathered are subject to Gaussian noise\n", "i.e. we assume that our observations, y are drawn from a Gaussian distribution with mean $\\mathbf{\\theta w}$ and\n", "variance $\\beta^{-1}$ (indicating the level of noise). \n", "\n", "The probability of acquiring a particular set of observation, given a specific model is\n", "\\begin{equation}\n", "p(y|x,w,\\beta^{-1}) = \\prod_{n=1}^{N} \\mathcal{N}(\\mathbf{\\theta w}, \\beta^{-1})\n", "\\end{equation}\n", "\n", "It is often referred to as the likelihood of the data. In log form:\n", "\\begin{equation}\n", "\\text{ln}p(\\mathbf{y}|\\mathbf{x},\\mathbf{w},\\beta^{-1}) = \\sum_{n=1}^{N} \\text{ln}\\big( \\mathcal{N}(\\mathbf{\\theta w}, \\beta^{-1})\\big) \\\\\n", " = \\frac{N}{2} \\text{ln}(\\beta) - \\frac{N}{2}\\text{ln}(2\\pi) - \\frac{\\beta}{2} \\sum_{n=1}^{N} (\\mathbf{y}-\\mathbf{\\theta w})^2 \n", "\\end{equation}\n", "\n", "\n", "The final term is the sum of squares error between the observations and the model.\n", "If we vary the parameters of the model to maximise the likelihood of the data, we train a model\n", "that best fits the data\n", "The gradient of the log likelihood with respect to the weights is:\n", "\\begin{equation}\n", "\\triangledown \\text{ln}p(\\mathbf{y}|\\mathbf{x},\\mathbf{w},\\beta^{-1})= \\sum_{n=1}^{N} \\theta(\\mathbf{y}_n - \\mathbf{\\theta w})\n", "\\end{equation}\n", "Find the max by setting the gradient to zero and then solve for $\\mathbf{w}$ to find the \"maximum-likelihood parameters\" (w_ml):\n", "\\begin{equation}\n", "\\mathbf{w}_{ml} = (\\mathbf{\\theta}^T\\mathbf{\\theta})^{-1}\\mathbf{\\theta^T y}\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate feature matrix using the observations locations." ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Solution:\n", "theta = polyFeatureGen(x,p)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 49 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then find the parameters that maximise the likelihood as described above." ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Implement a line of code to determine w_ml. Hint: use np.linalg.lstsq(A,B) \n", "#rather than np.linalg.inv(A)B for better numerical stability\n", "\n", "#Solution:\n", "w_ml = np.linalg.lstsq((np.transpose(theta).dot(theta)),(np.transpose(theta)))[0].dot(y)\n", "\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 59 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now evaluate the model at the query locations using the new parameters and plot the results as before:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Solution:\n", "fQuery = thetaQuery.dot(w_ml) # the model's predictions at the query locations. This will be an nQuery x 1 matrix\n", "\n", "fig = pl.figure(figsize=(15,5))\n", "pl.plot(x,y,'b.')\n", "pl.plot(xQuery,fQuery,'r')\n", "pl.axis([0, 10, 0, 8])\n", "pl.xlabel('x')\n", "pl.ylabel('f(x)')\n", "pl.title('Max Likelihood weights with ' + str(p) + ' features')\n", "pl.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 60 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Much better. Calculate and print the mean squared error between the model prediction and the observations using these new parameters to quantively compare with our initial set of parameters " ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Solution\n", "fModel = theta.dot(w_ml) # the model's predictions at the observation locations. This will be an N x 1 matrix\n", "MSE = np.mean((fModel - y)**2) # scalar\n", "print('Mean Squared Error: ' + str(MSE))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Mean Squared Error: 0.43313530171\n" ] } ], "prompt_number": 61 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This MSE is the best we can do with this model." ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Increasing the Model Complexity" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To reduce the MSE further, we will need to increase the model's flexibility by adding higher order polynomial features. \n", "In the cell below, increase the number of feature in the model, retrain it, plot the resulting query outputs as before and evaluate the MSE. \n", "What is the number of features that gives the lowest MSE?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Set the number of features\n", "p = 8 #number of features\n", "\n", "# Build the design feature matrix\n", "theta = polyFeatureGen(x,p)\n", "\n", "# Determine the maximum likelihood weights\n", "w_ml = np.linalg.solve((np.transpose(theta).dot(theta)),(np.transpose(theta))).dot(y)\n", "\n", "# Build the feature matrix for the query points\n", "thetaQuery = polyFeatureGen(xQuery,p)\n", "\n", "# Evaluate the model at the query points\n", "fQuery = thetaQuery.dot(w_ml)\n", "\n", "fig = pl.figure(figsize=(15,5))\n", "pl.plot(x,y,'b.')\n", "pl.plot(xQuery,fQuery,'r')\n", "pl.axis([0, 10, 0, 8])\n", "pl.xlabel('x')\n", "pl.ylabel('f(x)')\n", "pl.title('Number of Features: '+str(p))\n", "pl.show()\n", "\n", "fModel = theta.dot(w_ml)\n", "MSE = np.mean((fModel - y)**2)\n", "print('Mean Squared Error: ' + str(MSE))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nlEMMcZIkSZKUQwxxkiRJkpRDDHGSJEmSlEMMcZIkSZKUQwxxkiRJkpRDDHGSJEmSlEMMcZIkSZKU\nQwxxkiRJkpRDDHGSJEmSlEMyHeK6Am9WOlYC38vwOSVJkiSpwSqox3M1Aj4C+gIL0p9LpVKpeixB\nkiRJkrJHQUEB1DCX1edwyhOBeVQEOEmSJElSDdVniDsXGFmP55MkSZKkBqe+hlM2IYZSdgOWVPq8\nwyklSZIk5a3aDKfcKTOlfMEpwBQ2D3AAFBUVfX69sLCQwsLCeipJkiRJkupXcXExxcXFO/QY9dWJ\nexwYBYzY4vN24iRJkiTlrdp04uojxLUE/gPsC3y6xW2GOEmSJEl5K1tDXFUMcZIkSZLyVrZvMSBJ\nkiRJ2kGGOEmSJEnKIYY4SZIkScohhjhJkiRJyiGGOEmSJEnKIYY4SZIkScohhjhJkiRJyiGGOEmS\nJEnKIYY4SZIkScohhjhJkiRJyiGGOEmSJEnKIYY4SZIkScohhjhJkiRJyiGGOEmSJEnKIYY4SZIk\nScohhjhJkiRJyiGGOEmSJEnKIYY4SZIkScohhjhJkiRJyiGGOEmSJEnKIYY4SZIkScohhjhJkiQ1\nWEOHQmEhDBoEJSVJVyPVjZ2SLkCSJEnKlLlzYezYuD50KDzxRC0faMMGWLcuLtevrzg2bICCAmjU\nCBo3jsvy6y1axNGyJezky27VHZ9NkiRJarBatIjLPn1g+PBKN5SUwIcfwsKFsGjR5pfLl8PKlXGf\n8stNm6B5c2jSBJo2rTiaNInHKy2FsrKKY9OmCH1r1sTRuHGEuVatYLfdYNdd47Ly9fbtoVMn6NwZ\nOnSIr5G2oiDh86dSqVTCJUiSJKnBSaXg449ZPWkWf75lLhcc/T7NPn6f+WPfZ5eV79M4VUrTAzrT\n+MsdIjx1SF+2bx+hqk0baNu24rJ58+i41baWDRsizH36KSxbBkuXxmX59aVLI0QuWBDhculS2HPP\nilDXpQsceCAccEAcu+9e+3qUVQri91ijX2bSv3lDnCRJknbMihUwdSpMmwazZlUczZrBIYdE+Nl3\nX9hvPy79xb78deq+LKcdgwcX1H54ZaZt3Agffxyhbv58mDcP3nknxofOnRvdvgMOgK5doXt3OPRQ\n6NEjQp/hLqdkY4hrC/wOOARIAd8EJlS63RAnSZKk6ispicD2xhswZUocixdDr15w2GER2rp1g4MP\n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\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Mean Squared Error: 0.0262004394999\n" ] } ], "prompt_number": 70 }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you may have noticed, increasing the flexibility and model complexity decreases the mean squared error because the model's ability to fit all of the observation exactly increases as well. However, it also results in \"overfitting\". This is when the model fits the observations very well but generalises poorly to out locations. If a number of observations are withheld from training, the model would not do well at predicting their value as it is more concerned with overfitting the observations it can see.\n", "\n", "\n" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Other Types of Features (also known as Basis Functions)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Up until now, the feature matrix has been generated using polynomial basis functions:\n", "\n", "\\begin{equation}\n", "\\theta_{i,j} = x_i^{j-1}\n", "\\end{equation}\n", "\n", "Run the cell below to visualise the basis functions that were used in the last model you trained:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "pl.figure(figsize=(15,5))\n", "for i in range(p):\n", " pl.plot(xQuery,thetaQuery[:,(i)])\n", " pl.axis([0, 10, 0, 80])\n", " pl.title('Individual basis functions')\n", "pl.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\noLQGSsT7aARNGpgzB1591cx88/Mz93366afceuutrF+/npSUlAbPtywXGRn3UVGxhaFDPyQg4PSj\nUyWrS9h12y7ib44n5ckUfAPdt2nx/poaZubk8HpBAdfExvJQ9+4MCW+7YiMeY1mQlXUsjG3YYEbH\nUlNNIBs71lxSU7UptIhIE3ljgNIIlEj7pymO0mJ795pifWvWQP/+5r4DBw5w3nnnsWDBAi699NIG\nz7csJ7t330N19S6GDv0Af/9TV0F0VjnZ//v9HF54mH6v9qPzlZ3d0m/LsthYXs4/c3JYVVLC3V27\ncn+3bnTtSKXfKyrg668bjo75+Jh/sLFjTSg75xzoiGFURKSeApSItEcKaNIiDgdcfDHcfDP88pfm\nvtLSUi666CLuuusupk2b1uD5TmcNO3fehsNxhMGD38Pf/9TBoHRNKbvu2EXk2Ej6zupLQOfW/4Kq\ndjp5s7CQ2bm5FDscPNC9O3cmJBDu385n7tpssG2bCWRffw2bNsG+fTB8+LGRsTFjoEcPFfMQEa+i\nACUiciIFNGmRP//Z7EO8cqWZEWez2bjiiisYNmwYs2bNalDt8Ogm1MHBPenf/7/4+jY+UuWocHDg\nDwc4/PZhUl9IJfaak29s3RwZ1dXMyctjbn4+YyMjua9bN67o1Anf9hhWamshLe1YGPv6a9i92wxh\njhplLuecA0OGaO8xEWk1BSgRkTNPAU2a7aOP4Pbb4auvoHt3cDqd3Hjjjfj7+/PGG2/ge9wappqa\nfXzzzVXExV1PSsqTje5zZlkWh98+zL5f7SP6smj6PN2nVXub1blcvH/kCHPy8thcWcmdCQnc07Ur\nKSHuLS7SpurqTGnM48NYejr06XMsjI0aBUOHQnCwp3srIh6gACUi0vEooEmzZGaaGXNvvQXjxplw\ndscdd3Do0CGWL19O0HHruI4c+YBdu+4gJeVxuna9p9E2q3dXk/GLDOwFdvrO7kv0hS0va7+9spL/\n5Oczv6CA/qGh3JWYyKS4OIKPVjDxVpWVpmjH1q3HLmlpkJzcMIwNG6aqiiLtiAKUiIg0lwKaNFl1\ntam+fvvt8MAD4HA4mDp1Kvn5+SxbtozQ+uBgWS4yMx/n0KFXGDToLaKiLjhpe3XFdWQ9mUX+3HyS\nfp9Et190wzeg+RUEi+vqeKOwkP8cOkRBXR1TunRhakICfbwxyFgW5Oc3DGJbt8LBgzBwIIwYYdaO\n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\n", "text": [ "" ] } ], "prompt_number": 71 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above graph is simply plotting each column or feature of the feature matrix. \n", "\n", "Multiply each basis functions by the learnt it's associated weight, w_ml[i], and plot the results." ] }, { "cell_type": "code", "collapsed": false, "input": [ "pl.figure(figsize=(15,5))\n", "for i in range(p):\n", " pl.plot(xQuery,thetaQuery[:,(i)]*w_ml[i])\n", " pl.axis([0, 10, -80, 80])\n", " pl.title('Individual weighted basis functions')\n", "pl.show()\n", "print('Learnt weights: ' + str(w_ml.transpose()))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n4EGLs4iU1wT4HkgFNmAu1CPiSxxAMvCl1UFEyokAPgE2ARuBPtbGETnJQ5h/r68H5gCB1sYRPzYT\nSMf8WSwRhblw5FZgEeafpz7HgTm8Mh5wYQ7BbG9lIJFyooGuxedhwBb08ym+5V7gPeALq4OIlPM2\n8Nficydl+8SKWC0e+JWyou1D4BbL0oi/uwhz2ln5Au454IHi8wcpWwjSp/TFXJmyxETKVq4U8TWf\nYS7SI+IL4oBvgUtRD5z4jnDMfyCL+KIozC9jIzG/XPgSuMLSROLv4jm5gNsMNCo+jy5+fFYV2cj7\nfDUG9pZ7rI2+xVfFY35LcuoWGCJW+Q/wL8BrdRCRcpoDh4FZmCtUvwGEWJpIpMwRYAqwB0jD3Pbq\nW0sTiZysEeawSoqPjc5yL2BNAaddJaUmCMOcz3E3kGNxFhGAa4BDmPPftDWL+BIn0A2YVnzMRSNr\nxHe0BO7B/FI2FvPv95usDCRyFgbnUCtZUcDtx1wookQTzF44EV/hAuYC72IOoRTxBf2Aa4GdwPvA\nZcA7liYSMe0rbiX7wX6CWciJ+IIewM9AJlAEzMP881TEV6RjDp0EiMH8stbnODE3947H3Oxbi5iI\nL7Fh/qP4P1YHETmLS9AcOPEtPwBtis+fAJ61LorISRIwV5UOxvw7/m3gDksTib+L5/RFTEpW5Z+I\njy5iAnA15oTS7ZhLu4r4igsx5xetxRyqloy57YWIL7kErUIpviUBswcuBbOHQ6tQii95gLJtBN7G\nHGkjYoX3MediFmKuCTIGc6Gdb/HxbQRERERERERERERERERERERERERERERERERERERERERERERE\nREREREREREREREREREREREREREREREREREREqtz/B7ZsB+bZdQUuAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Learnt weights: [[ -2.52733845e+00 7.51878326e+00 -3.51947466e+00 6.97848679e-01\n", " -7.12998013e-02 6.44119872e-03 -5.78938119e-04 2.34737696e-05]]\n" ] } ], "prompt_number": 72 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Interestingly, the model's complicated looking prediction is just a linear combination of these basis functions. Hence the name \"linear\" regression." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "However, there are many possible variants of basis functions each giving the resulting model different characteristics. Radial basis functions are a commonly used alternative to the polynomial function:\n", "\\begin{equation}\n", "\\theta_{i,j} = \\text{exp}\\Bigg(-\\frac{(x_i-\\mu_j)^2}{2s^2}\\Bigg)\n", "\\end{equation}\n", "\n", "Here, $\\mu_j$, is the mean of the $j^{\\text{th}}$ radial basis function and $s$ corresponds to the basis functions width or its region of influence. \n", "\n", "\n", "Implement the basis function radialFeatureGen() that takes a vector of inputs ($\\textbf{x}$), a vector of $p$ mean locations ($\\mathbf{\\mu}$) with shape $p \\times 1$ and a basis function spatial width ($s$). It then calculates the feature matrix, $\\theta$, using the radial basis function given above. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Define Radial basis functions -------------------\n", "# Dimensions:\n", "# x: n x 1\n", "# mu: p x 1\n", "# s: 1 x 1\n", "# theta: n x p\n", "\n", "def radialFeatureGen(x,mu, s):\n", " # Code goes here\n", " #Solution:\n", " theta = np.exp(-(((x-mu.transpose())**2)/(2*s**2))) \n", " return theta" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 73 }, { "cell_type": "code", "collapsed": false, "input": [ "# Test radialFeatureGen\n", "# Run this cell. The output should be: \n", "#\n", "#[[ 0.84 0.98 0.98 0.84 0.61]\n", "# [ 1. 0.92 0.73 0.49 0.28]\n", "# [ 0.49 0.73 0.92 1. 0.92]]\n", "\n", "mu = np.array([1,2,3,4,5])[:,np.newaxis] \n", "s = 2.5\n", "xTest = np.array([2.5,1,4])[:,np.newaxis] \n", "\n", "print(np.round(radialFeatureGen(xTest,mu,s),2))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 0.84 0.98 0.98 0.84 0.61]\n", " [ 1. 0.92 0.73 0.49 0.28]\n", " [ 0.49 0.73 0.92 1. 0.92]]\n" ] } ], "prompt_number": 74 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the values for $\\mu$ and $s$ provided below, write some code that finds the weights with the maximum likelihood ($w_{ml}$) for a design matrix generated using the radial basis function. Then evaluate the model at the query locations and plot the results as before." ] }, { "cell_type": "code", "collapsed": false, "input": [ "mu = np.linspace(0,5,5)[:,np.newaxis] #The mean of the radial basis functions used in this model\n", "s = 1 # the spatial width of the basis function\n", "\n", "#Solution:\n", "theta = radialFeatureGen(x,mu,s)\n", "w_ml = np.linalg.solve((np.transpose(theta).dot(theta)),(np.transpose(theta))).dot(y)\n", "thetaQuery = radialFeatureGen(xQuery,mu,s)\n", "\n", "# Evaluate the model at the query points\n", "fQuery = thetaQuery.dot(w_ml)\n", "\n", "# Plot the results:\n", "fig = pl.figure(figsize=(15,5))\n", "pl.plot(x,y,'b.')\n", "pl.plot(xQuery,fQuery,'r')\n", "pl.axis([0, 10, 0, 8])\n", "pl.xlabel('x')\n", "pl.ylabel('f(x)')\n", "pl.title('Radial Basis Function')\n", "\n", "pl.figure(figsize=(15,5))\n", "for i in range(mu.shape[0]):\n", " pl.plot(xQuery,thetaQuery[:,(i)][:,np.newaxis]*w_ml[i])\n", " pl.title('Individual weighted basis functions')\n", "pl.show()\n", "print('Learnt weights: ' + str(w_ml.transpose()))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Learnt weights: [[ 9.37665946 -7.03832166 12.0090098 -7.98668464 8.05419427]]\n" ] } ], "prompt_number": 81 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rerun the above cell but change the basis functions by altering $\\mu$. e.g. **mu = np.linspace(0,10,15)[:,np.newaxis]**\n", "\n", "* What effect does changing $s$ have on the model? \n", "* How might we find the optimal values for $\\mu$ and $s$?\n", "* How does the behaviour of the radial basis function model differ from the poynomial case in regions where data is sparse?\n", " " ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Downsides to this Approach" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While this approach to regressing over data is appealling, it does have a few shortcomings.\n", "For example, we have no estimate of how confident the model is in its predictions (which is crucial in decision making applications). Also the model learns a single hypothesis given the data. In reality there may be numerous explanations for the same set of observations. In Part II of today's lab, we will investigate a probabilitic approach to regression." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "% Bayesian Linear Regression Tutorial, Alistair Reid, NICTA 2015\n", "\\newcommand{\\W} [0] {\\mathbf{w}}\n", "\\newcommand{\\X} [0] {\\mathbf{x}}\n", "\\newcommand{\\y} [0] {\\mathbf{y}}\n", "\\newcommand{\\Xf} [0] {\\mathbf{\\theta}}\n", "\\newcommand{\\norm} [0] {\\mathcal{N}}\n", "\\newcommand{\\weightprec} [0] {Q}\n", "\\newcommand{\\weightprecsimp} [0] {\\alpha I}\n", "\\newcommand{\\alphs} [0] {\\mathbf{\\alpha}}\n", "\\newcommand{\\invnoise} [0] {\\beta}\n", "\\newcommand{\\noise} [0] {\\beta^{-1}}\n", "\\newcommand{\\Ainv} [0] {A^{-1}}\n", "\\newcommand{\\fq} [0] {\\mathbf{f_*}}\n", "\\newcommand{\\yq} [0] {\\mathbf{y_*}}\n", "\\newcommand{\\xq} [0] {\\mathbf{\\theta_*}}\n", "$$ " ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Part 2: Bayesian Linear Regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "In the previous sections, we have selected the linear regression weights by maximising the likelihood of the data. The learnt model certainly makes useful predictions, but it provides no notion of uncertainty: we cannot distinguish between a prediction that is tightly constrained by the data, and a prediction that is essentially an unconstrained \\`guess'. Also, if there are multiple likely explanations of the data, we have neglected all but one. Recall that for a given feature mapping $\\X \\to \\Xf$, the predictive behaviour of a linear regression is encoded in the weights:\n", "\\begin{equation}\n", "f(x) = \\Xf \\W \n", "\\end{equation}\n", "\n", "Where $\\W$ is $p \\times 1$ and $\\Xf$ is $n \\times p$. Instead of using a single *maximum likelihood* weight vector, we can take a Bayesian approach and consider a probability distribution over all possible weight vectors. The distribution can be inferred from the observations using Bayes rule:\n", "\n", "\\begin{equation}\n", "p(\\W|\\y) \\propto p(\\y|\\W) p(\\W)\n", "\\end{equation}\n", "\n", "The likelihood $p(\\y|\\W)$ is exactly the criterion we were using to select the maximum likelihood weights:\n", "\n", "\\begin{equation}\n", "p(\\y | \\W) = \\norm (y | \\Xf \\W, \\noise I )\n", "\\end{equation}\n", "\n", "In addition, we must now specify a prior distribution over $\\W$ encoding our belief about reasonable weight values. Any probability distribution we consider to be sensible for the problem could be used here, but some are easier to work with than others. In this tutorial, we will use a simple Gaussian prior with precision (inverse covariance) $\\weightprecsimp$ that is $p \\times p$ with a single free parameter:\n", "\n", "\\begin{equation}\n", "\\W \\sim \\norm( 0, \\alphs^{-1}I )\n", "\\end{equation}\n", "\n", "Hence we are assuming the weights are independently distributed & penalised for large magnitudes. While the $\\W$'s are model parameters that directly affect the output, we consider the $\\alphs$'s to be *hyperparameters* because they tune the prior distribution over the parameters $\\W$. \n", "\n", "Because we have assumed a Gaussian form for both the likelihood and the prior, Bayes rule can be computed analytically in this case to obtain a posterior distribution over the weights. This involves expanding the exponents of the two Gaussians and completing the square (an exercise left to the reader).\n", "\n", "The posterior over the weights is given by: \n", "\\begin{equation}\n", "p(\\W|\\Xf,y) \\sim \\norm \\left( \\mu_w, \\Ainv \\right)\n", "\\end{equation}\n", "Where $A$ is the $p \\times p$ posterior precision given by: \n", "\\begin{equation}\n", "A = \\invnoise \\Xf^\\top \\Xf + \\weightprecsimp\n", "\\end{equation}\n", "And the weight means are given by:\n", "\\begin{equation}\n", "\\mu_w = \\invnoise \\Ainv \\Xf^\\top \\y\n", "\\end{equation}\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise: Compute Posterior Weight Distribution\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "import scipy.linalg as linalg\n", "import matplotlib.pyplot as pl\n", "import scipy.optimize # In addition, nlopt would be a great optimisation library to consider\n", "from math import log, pi\n", "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ " # Generate Noisy Data ---------------------------------\n", "nSamp = 5\n", "noiseSTD = 0.5\n", "xdomain = 10\n", "x = np.sort(np.random.random(nSamp)*xdomain)[:,np.newaxis] # x is n by 1\n", "y = x + np.random.randn(nSamp)[:,np.newaxis]*noiseSTD - 5 # y is also n by 1\n", "\n", "pl.figure(figsize=(5,5) )\n", "pl.plot(x,y,'k.')\n", "pl.grid()\n", "pl.title('Noisy observations of the linear target function')\n", "pl.xlabel('x')\n", "pl.ylabel('y')\n", "pl.show()\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nH/8fDFc/kqiJO3cAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "# Use 2 features - (1, x) to learn intercept and slope -------------------\n", "p = 2 # n features...\n", "n = len(x)\n", "\n", "# build a feature vector n*[1, x]\n", "theta = polyFeatureGen(x,p) \n", "\n", "# Define a prior\n", "alpha = 2**-2 # Weight precision -> Larger alpha 'relaxes' the complexity penalty - try it\n", "beta = noiseSTD**-2 # noise inverse standard deviation - cheat and use the real value\n", "\n", "# Compute the posterior\n", "A = beta * theta.T.dot(theta) + alpha * np.eye(p)\n", "mu_w = beta * linalg.solve(A, theta.T.dot(y))\n", "\n", "# Plots the countours of the weight distribution\n", "from scipy.stats import multivariate_normal\n", "prior = multivariate_normal(np.array([0,0]), (1/alpha) * np.eye(p))\n", "posterior = multivariate_normal(mu_w[:,0], np.linalg.inv(A))\n", "\n", "xtest = np.linspace(-10,8,300)\n", "ytest = np.linspace(-6,6,300)\n", "xeva,yeva = np.meshgrid(xtest,ytest)\n", "pos = np.empty(xeva.shape+(2,))\n", "\n", "pos[:,:,0] = xeva\n", "pos[:,:,1]= yeva\n", "prior_pdf = prior.pdf(pos)\n", "posterior_pdf = posterior.pdf(pos)\n", "\n", "fig,ax = pl.subplots(1,2,figsize = (5*3,5))\n", "ax[0].contourf(xeva,yeva,prior_pdf)\n", "ax[1].contourf(xeva,yeva,posterior_pdf)\n", "ax[0].set_title(\"Prior distribution of the weights\")\n", "ax[1].set_title(\"Posterior distribution of the weights\")\n", "ax[0].set_xlabel(\"Intercept\")\n", "ax[0].set_ylabel(\"Gradient\")\n", "ax[1].set_xlabel(\"Intercept\")\n", "ax[1].set_ylabel(\"Gradient\")\n", "pl.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Marginalising over weights\n", "\n", "While it is interesting to see the distribution of weights used by the Bayesian linear regression, the ultimate goal is to predict the outputs $\\fq$ corresponding to inputs, $\\mathbf{x}_*$, which give the feature matrix $\\xq$. To do this, we *marginalise* out the weights $\\W$:\n", "\n", "\n", "\\begin{equation}\n", "p(\\fq | \\xq, \\Xf, \\y) = \\int p(\\fq|\\xq,\\W) p(\\W|\\Xf,\\y) d\\W\n", "\\end{equation}\n", "\n", "We know from above that:\n", "\\begin{equation}\n", "p(\\W|\\Xf,y) \\sim \\norm ( \\mu_w, \\Ainv )\n", "\\end{equation}\n", "\n", "We have also defined a deterministic mapping to the predictive function:\n", "\\begin{equation}\n", "\\fq = \\xq \\W \n", "\\end{equation}\n", "\n", "This marginalisation has a closed form solution - we can produce predictive distributions, considering all possible weights, without explicity computing them:\n", "\\begin{equation}\n", "\\fq \\sim \\norm \\left( \\invnoise \\xq \\Ainv \\Xf^\\top \\y, \\hspace{0.5cm} \\xq \\Ainv \\xq^\\top \\right)\n", "\\end{equation}\n", "\n", "Alternatively, if we want to predict what new observations would be rather than the underlying function, then we need to include the noise in the prediction:\n", "\n", "\\begin{equation}\n", "\\yq \\sim \\norm \\left( \\invnoise \\xq \\Ainv \\Xf^\\top \\y, \\hspace{0.5cm} \\xq \\Ainv \\xq^\\top + \\noise I \\right)\n", "\\end{equation}\n", "\n", "Note that this equation gives a multivariate Gaussian prediction: for $m$ queries, the covariance will be $m \\times m$. This is useful for joint draws. However, if you are only interested in the envelope of uncertainty, then the diagonal can be extracted to give the marginal variance of each prediction. Don't forget to add the noise variance back on if you want to predict the range of possible *observations* rather than *latent functions*!\n", "\n", "### Exercise:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Make predictions directly from the data-------------------\n", "nQuery = 1000\n", "xQuery = np.linspace(-1, 11, nQuery)[:,np.newaxis]\n", "thetaQuery = polyFeatureGen(xQuery,p)\n", "\n", "# lets make this a reusable function\n", "def linreg(theta, y, thetaQuery, alpha, beta):\n", " I = np.eye(theta.shape[1])\n", " A = beta * theta.T.dot(theta) + alpha*I\n", " mu_w = beta * linalg.solve(A, theta.T.dot(y))\n", " f_mean = thetaQuery.dot(mu_w)\n", "\n", " \n", " #f_covar = thetaQuery.dot(linalg.solve(A, thetaQuery.T))+1/beta\n", " #f_std = np.sqrt(np.diag(f_covar))[:,np.newaxis]\n", " \n", " # Advanced challenge: use cholesky factorisation to compute the marginal variance directly\n", " L = linalg.cholesky(A, lower=True) # Factorise A for faster computation\n", " f_std = np.sqrt( np.sum( linalg.solve(L, thetaQuery.T )**2, axis=0) + 1./beta)[:,np.newaxis] # try with and without noise variance\n", " \n", " #f_std = np.sqrt(np.diag(f_covar))\n", " return f_mean, f_std\n", "\n", "f_mean, f_std = linreg(theta, y, thetaQuery, alpha, beta)\n", "\n", "# plot the mean, and +- 2 standard deviations\n", "pl.figure(figsize=(5,5) )\n", "pl.plot(x,y,'k.')\n", "pl.plot(xQuery, f_mean, 'b')\n", "pl.plot(xQuery, f_mean+2.5*f_std, 'r')\n", "pl.plot(xQuery, f_mean-2.5*f_std, 'r')\n", "pl.xlabel('Input x')\n", "pl.ylabel('Output y')\n", "pl.title('Predictive Envelope with Data and Mean')\n", "pl.show()\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise: Non-linear Basis Functions\n", "\n", "We have already been using simple linear basis functions, but lets try a demo with a non-linear problem. Don't worry about visualising the distribution over weights - with many polynomial features they will be too high dimensional to show, but we will get very interesting predictive marginals:" ] }, { "cell_type": "code", "collapsed": false, "input": [ " # Generate Noisy Sinusoid Data ---------------------------------\n", "nSamp = 30\n", "noiseSTD = 0.1\n", "xdomain = 10\n", "x = np.sort(np.random.random(nSamp)) \n", "x = x-np.min(x)\n", "x = x/np.max(x) * xdomain\n", "y = np.sin(x) + np.random.randn(nSamp)*noiseSTD\n", "x = x[:,np.newaxis]\n", "y = y[:,np.newaxis]\n", "\n", "\n", "pl.figure(figsize=(15,5) )\n", "pl.plot(x,y,'k.')\n", "pl.xlabel('x')\n", "pl.ylabel('y')\n", "pl.title('Noisy observations of the target function')\n", "pl.grid()\n", "pl.show()\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This data clearly has a non-linear pattern. As we saw in part 1 of this tutorial, linear regression techniques can perform well on non-linear data by introducing basis functions. Lets apply the polynomial basis functions you implemented in polyFeatureGen to increase the dimensionality of the inputs to $p=7$ and run the regression again." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Bayesian linear regression - prediction with polynomial basis functions\n", "# Define prediction locations -------------------\n", "nQuery = 1000\n", "xQuery = np.linspace(0, 10, nQuery)[:,np.newaxis]\n", "\n", "# transform into feature space (now n by p)\n", "p = 7 # n features...\n", "theta = polyFeatureGen(x,p)\n", "thetaQuery = polyFeatureGen(xQuery,p)\n", "\n", "# Define a prior\n", "alpha = 0.7**-2 # per-weight inverse standard deviation - chosen automatically using strategy in final section\n", "beta = 0.1**-2 # noise inverse standard deviation - using the real value for now\n", "\n", "f_mean, f_std = linreg(theta, y, thetaQuery, alpha, beta)\n", "\n", "# plot the mean, and +- 2 standard deviations\n", "pl.figure(figsize=(15,5) )\n", "pl.plot(x,y,'k.')\n", "pl.plot(xQuery, f_mean, 'b')\n", "pl.plot(xQuery, f_mean+2.5*f_std, 'r')\n", "pl.plot(xQuery, f_mean-2.5*f_std, 'r')\n", "pl.xlabel('Input x')\n", "pl.ylabel('Output y')\n", "pl.title('Predictive Envelope with Data and Mean')\n", "pl.show()\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nRERERERERERERERERERERERERERERERERCT8/D83J/sNsqQqgwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the predictions are able to capture the non-linear structure of this problem! There are two ways of interpreting how this is working.\n", "\n", "The first interpretation is that we are inferring a probability distribution over the weights, and each weight corresponds to a basis function. With the polynomial basis functions, we are therefore considering distributions over the polynomial coefficients in a polynomial equation. You can see in the predictive distribution:\n", "\\begin{equation}\n", "\\fq \\sim \\norm \\left( \\invnoise \\xq \\Ainv \\Xf^\\top \\y, \\hspace{0.5cm} \\xq \\Ainv \\xq^\\top \\right)\n", "\\end{equation}\n", "that our mean function is in fact a linear combination of the basis functions composing $\\Xf$, and the space of models is restricted to the span of the basis functions. \n", "\n", "A second interpretation is that we have used polyFeatureGen to project the inputs and the queries into 7 dimensions, effectively warping the space on the x-axis. The line in the high dimensional space can then project to a nonlinear function in the original space. To understand this principle, think about how a direct path an airline takes around a [3D sphere](https://www.metabunk.org/data/MetaMirrorCache/contrailscience.com_skitch_Google_Earth_20111211_141946.jpg) can appear as a curved arc when projected onto a [2d map](http://www.gcmap.com/map?P=syd-jnb&MS=wls&MR=900&MX=720x360&PM=*) ). You will see this principle applied in the support vector machine tutorial. \n", "\n", "You can investigate the choice of basis functions by modifying the above code:\n", "* What happens to the prediction as you move away from the input data? (try changing the domain above)\n", "* We have been using polynomial basis functions. Can you think of a different class of basis functions that might work for periodic data?\n", "\n", "## Plotting draws from the posterior\n", "\n", "We have been looking at the mean and envelope of the predictive distribution, but it is also useful to look at draws from the posterior distribution. To do this we must look at the *joint* multivariate distribution of the posterior. Note that given our particular choice of Gaussian prior and likelihood, the posterior predictions are also joint-Gaussian. For example, we can compute a posterior multivariate Gaussian over the weights and draw random weights out of this distribution. This will sample a set of deterministic models each drawn with probability consistent with our Bayesian analysis.\n", "\n", "How do we draw values out of a multivariate Gaussian distribution? We can do this by linear operations on a vector of independent univariate Gaussian draws. This can be achieved using the cholesky factorisation: if $L$ is the upper Cholesky factor of the covariance matrix $A^{-1}$, and $\\mathbf{\\Sigma}$ is a vector of iid Gaussians, we may draw from the distribution according to:\n", "\\begin{equation}\n", "\\hat{\\W} = \\mu_w + L \\Sigma\n", "\\end{equation}\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Plotting draws from the function\n", "I = np.eye(theta.shape[1])\n", "A = beta * theta.T.dot(theta) + alpha*I\n", "mu_w = beta * linalg.solve(A, theta.T.dot(y))\n", "L = linalg.cholesky(linalg.inv(A), lower=True)\n", "\n", "nPlots = 10\n", "fig = pl.figure(figsize=(15,5))\n", "pl.plot(x,y,'k.')\n", "for i in range(nPlots):\n", " weights = mu_w + L.dot(np.random.randn(p)[:,np.newaxis])\n", " f_star = thetaQuery.dot(weights)\n", " pl.plot(xQuery, f_star)\n", "pl.xlabel('x')\n", "pl.ylabel('y')\n", "pl.title('Draws from the posterior')\n", "pl.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nx3ZeVVUwRHXWLJj1jzAfLg5zdvZartw7mfFtFtLxuoFwww3Q+QfH9oSSJB2D2bNnM3v27H/5/Ibc\nIziAYEGZA0NDxxHMKzzcgjH2CErSqaSoCF55JVh28/XXWdduMDPafoM3q87k3fU5VOyLZ8AAOOus\nYE5gfj506fLv7bRQVlbGTTfdxBNPPEHWEVJgWVkw7HTRIpg/H+bPj7BmdYQ+OdsZEj+HC7f/mYFn\n7CP9msvhqquCLkRJkk6Ak3Fo6H8BCw7zvUSCxWKGAtuAD3CxGEmKPbW1QZfbjBnwzjuwYAHbOg3i\nvXYjmRd3Jsv2dmBZYWO274ina9dgXmD79sG8wANzA5s2/biHMDU1WMQlISE46uuDPQwPHOXlsH07\n7NgR3G7dGixQs3p1hMp9EbrllFPQaC39qt+h/9aX6JW7m9SLz4ehQ2Hw4OCHSZJ0gp0sQfAq4BdA\nc6AcWARcBuQCTwLD97e7jI+3j5gI/PQIz2cQlKRYUVMDCxYE4XDJkuBYvZrKtt1YlXM+mzPz2Zzc\nlc3htmzel01JZRplVcmUVSRSWhZPTU0wNTEUChaUSUiIkJEBGWlhGqWFaJxSQ6uMvbROLqFVXBG5\nlWs5rfQDum+fTausauL6FsCZZwbdkWeeGSRNSZKi7GQJgp83g6AkxbLaWli9OtjMb+NG2LAhuC0u\nDlaGObBKTDgcjB89cEQiQTdgfHyw/0NmJrRqBa1bB0dubjAhsXv3YJlQF3mRJDVQBkFJkg4nEgnG\ngYZCwW19ffB4RoabuEuSTnoGQUmSJEmKMZ81CMYfv1IkSZIkSQ2RQVCSJEmSYoxBUJIkSZJijEFQ\nkiRJkmKMQVCSJEmSYoxBUJIkSZJijEFQkiRJkmKMQVCSJEmSYoxBUJIkSZJijEFQkiRJkmKMQVCS\nJEmSYoxBUJIkSZJijEFQkiRJkmKMQVCSJEmSYoxBUJIkSZJijEFQkiRJkmKMQVCSJEmSYoxBUJIk\nSZJijEFQkiRJkmKMQVCSJEmSYoxBUJIkSZJijEFQkiRJkmKMQVCSJEmSYoxBUJIkSZJijEFQkiRJ\nkmKMQVCSJEmSYoxBUJIkSZJijEFQkiRJkmKMQVCSJEmSYoxBUJIkSZJijEFQkiRJkmKMQVCSJEmS\nYoxBUJIkSZJijEFQkiRJkmKMQVCSJEmSYky0guC1wDIgBPQ9SruNwBJgEfDB8S9LkiRJkk590QqC\nS4GrgDmf0i4CDAYKgLOOc03S52727NnRLkE6Il+faqh8baqh8rWpU0m0guBKYPUxto07noVIx5Nv\nGGrIfH2qofK1qYbK16ZOJQ19jmAEeB2YD3wryrVIkiRJ0ikh8Tg+90yg1WEevwuYeozPcQ6wHWix\n//lWAm99LtVJkiRJUoyK9rDLWcAdwMJjaPtDoAL42WG+txbo8jnWJUmSJEknk3VA12NtfDx7BI/V\nkcJoOpAA7AUygIuBHx2h7TFfsCRJkiQpOq4CtgBVwA5g+v7Hc4FX9t/vDCzef3wEjDvBNUqSJEmS\nJEmSJEmKtksJFpBZA9wZ5Vqkg7UjmAO7jKBH+3vRLUf6hARgEce+eJd0ImQBzwMrgOXAgOiWIx1i\nHMH7+lLgL0BKdMtRDPs9UETwWjwgm2BxzdXADIJ/T09ZCQSLxHQEkgiGkOZFsyDpIK2APvvvNwJW\n4etTDcsY4M/Ay9EuRDrIJOAb++8nAk2iWIt0sI7Aej4Of38FboxaNYp15wEFHBoEHwR+sP/+ncD9\nJ7qoE2kg8OpBX4/df0gN0d+AodEuQtqvLcEerUOwR1ANRxOC/2hLDVE2wYe6TQk+pJgKXBTVihTr\nOnJoEFwJ5Oy/32r/10fV0DeUP5o2BAvOHFC4/zGpoelI8KnN+1GuQzrgUeC/gXC0C5EO0gnYCTxF\nsK3UkwQriEsNQQnBFmabgW1AGcEHalJDkUMwXJT9tzlHaQuc3EEwEu0CpGPQiGC+y/cJ9sGUou0K\noJhgfmC095KVDpYI9AV+vf92H470UcPRBbiN4MPdXIL39+ujWZB0FBGOISudzEFwK8GCHAe0I+gV\nlBqKJGAK8CeCoaFSQzAI+A9gA/A0cCHwx6hWJAUK9x/z9n/9PEEglBqC/sBcYDdQD7xA8O+p1FAU\nEQwJBWhN8KHvKSsRWEfwyUwyLhajhiWO4D/Xj0a7EOkoLsA5gmpY5gDd9t+fADwQvVKkQ/QmWAU8\njeA9fhLwnahWpFjXkU8uFnNgF4WxnOKLxQBcRjBxdy1uOK+G5VyC+VeLCYbgLSLY7kRqSC7AVUPV\nsPQm6BH8kKDHxVVD1ZD8gI+3j5hEMPJHioanCeaq1hKsmfKfBAsavU6MbB8hSZIkSZIkSZIkSZIk\nSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIk6RR1JvAhkAJkAB8BPaNakSRJxyAu\n2gVIknSSuxdIBdKALcAD0S1HkiRJknS8JRH0Cr6HH7BKkk4S8dEuQJKkk1xzgmGhjQh6BSVJavD8\n5FKSpH/Py8BfgM5Aa+DW6JYjSZIkSTqevgY8t/9+PMHw0MFRq0aSJEmSJEmSJEmSJEmSJEmSJEmS\nJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJElSdP1/+XjXQ7g1V8AAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* If we were to average over a very large number of these draws, the density at each input value would be Gaussian distributed with the marginals from the previous section. \n", "\n", "\n", "### Advanced: Hyperparameter selection\n", "\n", "Until now we have been manually specifying values for $\\alphs^2$ and $\\invnoise$. Such manual selection is not ideal, as it requires a deep understanding of every dataset and large amounts of manual tuning to select appropriate noise and prior hyperparameters. Instead, there are two main approaches for hyperparameter selection based on the data. Both rely on the concept of *marginal likelihood* - the probability of drawing the observations out of the prior. We can obtain this criterion by marginalising out the actual weight vectors and noise draws. The log marginal likelihood given all our Gausianity assumptions so far is given by:\n", "\n", "\\begin{equation}\n", "\\log p(y | \\Xf) = \\frac{1}{2} \\left( p \\log \\alphs^2 + n \\log \\invnoise - \\log |A| - n \\log 2\\pi - \\invnoise (y-y^*)^\\top (y-y^*) - \\alphs^2 \\mu^{*\\top} \\mu^* \\right)\n", "\\end{equation}\n", "\n", "\\begin{equation}\n", "\\mu^* = \\invnoise \\Ainv \\Xf^T y\n", "\\end{equation}\n", "\n", "\\begin{equation}\n", "\\y^* = \\Xf \\mu^*\n", "\\end{equation}\n", "\n", "See \"Evaluation of the evidence function\" in Bishop - Pattern recognition and machine learning for how this is derived. Here $|A|$ is the determinant of A, and $\\mu^*$ and $\\y^*$ are the mean weights and mean latent function predictions at $\\X$ respectively using the current hyperparameters. This criterion naturally weights model fit against overfitting. If the prior is too tight to fit the data, we cannot draw the observations, but if it is too general then the probability of drawing any particular dataset is also low. It can become very small or large and is best computed in log form.\n", "\n", "The first hyperparameter strategy is to define a *hyper-prior* over $\\alphs$ and $\\mathbf{\\beta}$. If we carefully choose a conjugate prior (for our scenario this will be an inverse gamma distribution) over these parameters, then it is possible to marginalise over the hyperparameters (in the same way we marginalised the weights out of the predictive distribution) and obtain a closed form solution for the weight distribution. An interested student is directed to Bishop, Pattern Recognition and Machine Learning. Unfortunately, this distribution will be of Student-T form rather than Gaussian, so marginalising out the weights to obtain predictions will then be a (straight forward) exercise in numerical integration.\n", "\n", "A simpler approach that we will take here is to search for the maximum likelihood hyperparameters - this is also called the evidence approximation or type 2 maximum likelihood. . The main drawback of this approach is that we loose a level of Bayesian inference compared to the above alternative. Also we must select these parameters via optimisation strategies and the problem is non-convex, meaning we may end up in a local optimum that is better than its neighbours but not the best set of parameters. However, it is a more principled method of model selection than manually tweaking the parameters.\n", "\n", "Below we will use a simple gradient-free numerical optimisation procedure to find some hyperparameters:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Compute the log marginal likelihood\n", "def nLML(params, theta, y, verbose=True):\n", "\n", " alpha_ = params[0]**2\n", " beta_ = params[1]**2\n", " p_ = theta.shape[1]\n", " I = np.eye(p_)\n", " \n", " if verbose:\n", " print('Querying:', alpha_, beta_)\n", " \n", " A = alpha_*I + beta_*np.dot(theta.T, theta) \n", " \n", " # The log determinant of a positive semi-definite matrix is given by twice the log-trace of its cholesky factorisation.\n", " L = linalg.cholesky(A, lower=True)\n", " mn = beta_*linalg.solve(A, np.dot(theta.T,y))\n", " predY = np.dot(theta, mn)\n", " LML = 0.5* (p_*log(alpha_) + nSamp*log(beta_) - 2*np.sum(np.log(np.diag(L))) - nSamp*log(2*pi)\n", " - beta_*np.sum((y - predY)**2) - alpha_*np.sum(mn**2))\n", " return -LML\n", " \n", "params0 = [1., 1.] # # signal, noise inverse standard deviations\n", "# Note we havent defined numerical gradients (which might be a good idea later), so we will use\n", "# the COBYLA algorithm that can estimate them automatically\n", "nLMLcriterion = lambda params: nLML(params, theta, y)\n", "newparams = scipy.optimize.minimize(nLMLcriterion, params0, method='COBYLA') # gradient free\n", "alpha = newparams.x[0]**2\n", "beta = newparams.x[1]**2\n", "print('Local Optimum:\\n alpha = ',alpha, ', beta=', beta)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Querying: 1.0 1.0\n", "Querying: 4.0 1.0\n", "Querying: 4.0 4.0\n", "Querying: 4.71757930597 8.91080492457\n", "Querying: 9.27095520708 12.0626300512\n", "Querying: 7.97447060759 19.7884676636\n", "Querying: 8.49437266117 29.6405157249\n", "Querying: 4.24269150136 35.5619156989\n", "Querying: 3.85134265427 48.4226254255\n", "Querying: 1.65746599879 59.2345991647\n", "Querying: 5.69922110479 52.1618736359\n", "Querying: 8.11065981894 49.3901886798\n", "Querying: 4.87549966568 59.1219867512\n", "Querying: 4.73517411619 67.044273423\n", "Querying: 2.82331892675 68.1110484448\n", "Querying: 6.81005782609 71.1846696308\n", "Querying: 5.72562170317 69.0989657949\n", "Querying: 4.25773730934 67.9355220473\n", "Querying: 3.96745115895 66.2567763769\n", "Querying: 4.36520040256 69.9664131625\n", "Querying: 4.16484864555 71.9069399962\n", "Querying: 4.62955659265 70.042533081\n", "Querying: 4.31990956708 70.4574313755\n", "Querying: 4.30564244284 69.5023620078\n", "Querying: 4.43056993228 69.9849412311\n", "Querying: 4.49308900666 69.9010856267\n", "Querying: 4.45002600275 70.2349207289\n", "Querying: 4.44483932458 70.3642952178\n", "Querying: 4.48293731121 70.2242131251\n", "Querying: 4.44195477181 70.1778562031\n", "Querying: 4.45792199045 70.2255107889\n", "Querying: 4.46610153357 70.2298202382\n", "Querying: 4.45837510755 70.1928293952\n", "Querying: 4.45497251882 70.1630213268\n", "Querying: 4.46229570277 70.1877434208\n", "Querying: 4.46616676062 70.193413255\n", "Querying: 4.46154229846 70.171656579\n", "Querying: 4.46315678223 70.1566009994\n", "Querying: 4.45954162112 70.1696687044\n", "Querying: 4.46191073598 70.1678362538\n", "Querying: 4.4623924259 70.1685668081\n", "Querying: 4.46097971041 70.1660765789\n", "Querying: 4.46009047589 70.1640053005\n", "Querying: 4.46061546923 70.1652281795\n", "Querying: 4.46072242594 70.1645058878\n", "Querying: 4.46085392622 70.1629138584\n", "Querying: 4.46069891503 70.1613554781\n", "Local Optimum:\n", " alpha = 4.46069891503 , beta= 70.1613554781\n" ] } ], "prompt_number": 29 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Now try using these values in the previous sections!" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Part III: Stopping Distance Assignment" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that you know the basics of linear regression, lets apply it to a real data problem. The cell below loads a dataset of stopping distances (metres) of a car travelling at different speeds (km/h). If you were in the same car travelling at 21 km/h and you hit the brakes at a distance of 135 metres from a wall, what is the probability of you coming to a stop before hitting the wall?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#Load data\n", "data = np.load('cars_stopping_dist.npz')\n", "speed= data['speed']\n", "stoppingDist= data['dist']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [ "#Solution\n", "\n", "# plot raw data\n", "pl.figure(figsize=(15,5) )\n", "pl.plot(speed,stoppingDist,'k.')\n", "pl.xlabel('Input x')\n", "pl.ylabel('Output y')\n", "pl.title('Raw Data')\n", "pl.show()\n", "\n", "#whiten data \n", "speed_std = np.var(speed)**0.5\n", "dist_std = np.var(stoppingDist)**0.5\n", "speed_whitened = speed/speed_std\n", "dist_whitened = stoppingDist/dist_std\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "# Train the model\n", "\n", "nQuery = 1000\n", "speedQuery = np.linspace(0, np.max(speed_whitened)*1.2, nQuery)[:,np.newaxis] # Generates query locations\n", "\n", "# transform into feature space (now n by p)\n", "p = 8 # n features...\n", "\n", "mu = np.linspace(0,np.max(speedQuery),10)[:,np.newaxis] #The mean of the radial basis functions used in this model\n", "s = 5.5 # the spatial width of the basis function\n", "\n", "#Solution:\n", "theta = radialFeatureGen(speed_whitened,mu,s)\n", "thetaQuery = radialFeatureGen(speedQuery,mu,s)\n", "\n", "params0 = np.array([0.7**-2, 0.3**-2 ]) # signal, noise inverse standard deviations\n", "# Note we havent defined numerical gradients (which might be a good idea later), so we will use\n", "# the COBYLA algorithm that can estimate them automatically\n", "nLMLcriterion = lambda params: nLML(params, theta, dist_whitened, verbose=False)\n", "newparams = scipy.optimize.minimize(nLMLcriterion, params0, method='COBYLA') # gradient free\n", "\n", "# Define a prior\n", "alpha = newparams.x[0]**2\n", "beta = newparams.x[1]**2\n", "\n", "# Query the model \n", "f_mean, f_std = linreg(theta, dist_whitened, thetaQuery, alpha, beta)\n", "\n", "#Unwhiten\n", "f_mean_unwhite = f_mean*dist_std\n", "f_std_unwhite = f_std*dist_std\n", "speedQuery_unwhite = speedQuery*speed_std\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "# plot the mean, and +- 2 standard deviations\n", "pl.figure(figsize=(15,5))\n", "pl.plot(speed,stoppingDist,'k.')\n", "pl.plot(speedQuery_unwhite, f_mean_unwhite, 'b')\n", "pl.plot(speedQuery_unwhite, f_mean_unwhite+2.5*f_std_unwhite, 'r')\n", "pl.plot(speedQuery_unwhite, f_mean_unwhite-2.5*f_std_unwhite, 'r')\n", "pl.grid()\n", "pl.xlabel('Input x')\n", "pl.ylabel('Output y')\n", "pl.title('Predictive Envelope with Data and Mean')\n", "pl.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 33 }, { "cell_type": "code", "collapsed": false, "input": [ "#Query the model at the speed of interest (21km/h)\n", "\n", "speedQuery = 21/speed_std #(whitened)\n", "\n", "thetaQuery = radialFeatureGen(speedQuery,mu,s)\n", "\n", "# Query the model \n", "f_mean, f_std = linreg(theta, dist_whitened, thetaQuery, alpha, beta)\n", "\n", "#Unwhiten\n", "f_mean_unwhite = f_mean*dist_std\n", "f_std_unwhite = f_std*dist_std\n", "speedQuery_unwhite = speedQuery*speed_std\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 34 }, { "cell_type": "code", "collapsed": false, "input": [ "# Determine the probability mass to the left of 135 metres in a \n", "# normal distribution with mean: predStoppingDistMean and standard deviation: predStoppingDistStd \n", "predStoppingDistMean = f_mean_unwhite\n", "predStoppingDistStd = f_std_unwhite\n", "distToWall = 135\n", "prob = stats.norm.cdf(distToWall,predStoppingDistMean,predStoppingDistStd)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 35 }, { "cell_type": "code", "collapsed": false, "input": [ "print('Probability of stopping before hitting the wall: '+ str(prob[0,0]))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Probability of stopping before hitting the wall: 0.159299284463\n" ] } ], "prompt_number": 36 } ], "metadata": {} } ] }