{ "metadata": { "name": "", "signature": "sha256:2811197caee7d4d06334588068cbd59351615c722d1ec9cb8aa1eee45f3c1293" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesian Regression\n", "\n", "### 20th January 2014\n", "\n", "### Neil D. Lawrence\n", "As normal, let's first get the plots running in line on the notebook.\n", "$$\\newcommand{\\inputScalar}{x}\n", "\\newcommand{\\lengthScale}{\\ell}\n", "\\newcommand{\\mappingVector}{\\mathbf{w}}\n", "\\newcommand{\\gaussianDist}[3]{\\mathcal{N}\\left(#1|#2,#3\\right)}\n", "\\newcommand{\\gaussianSamp}[2]{\\mathcal{N}\\left(#1,#2\\right)}\n", "\\newcommand{\\zerosVector}{\\mathbf{0}}\n", "\\newcommand{\\eye}{\\mathbf{I}}\n", "\\newcommand{\\dataStd}{\\sigma}\n", "\\newcommand{\\dataScalar}{y}\n", "\\newcommand{\\dataVector}{\\mathbf{y}}\n", "\\newcommand{\\dataMatrix}{\\mathbf{Y}}\n", "\\newcommand{\\noiseScalar}{\\epsilon}\n", "\\newcommand{\\noiseVector}{\\mathbf{\\epsilon}}\n", "\\newcommand{\\noiseMatrix}{\\mathbf{\\Epsilon}}\n", "\\newcommand{\\inputVector}{\\mathbf{x}}\n", "\\newcommand{\\kernelScalar}{k}\n", "\\newcommand{\\ltwoNorm}[1]{\\left\\Vert#1\\right\\Vert_2}\n", "\\newcommand{\\kernelMatrix}{\\mathbf{K}}\n", "\\newcommand{\\basisMatrix}{\\mathbf{\\Phi}}\n", "\\newcommand{\\basisVector}{\\mathbf{\\phi}}\n", "\\newcommand{\\basisScalar}{\\phi}\n", "\\newcommand{\\expSamp}[1]{\\left<#1\\right>}\n", "\\newcommand{\\expDist}[2]{\\left<#1\\right>_{#2}}\n", "\\newcommand{\\covarianceMatrix}{\\mathbf{C}}\n", "\\newcommand{\\numData}{N}\n", "\\newcommand{\\mappingScalar}{w}\n", "\\newcommand{\\mappingFunctionScalar}{f}\n", "\\newcommand{\\mappingFunctionVector}{\\mathbf{f}}\n", "\\newcommand{\\meanVector}{\\boldsymbol{\\mu}}\n", "\\newcommand{\\meanScalar}{\\mu}$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import pods\n", "import matplotlib.plt as plt" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "ImportError", "evalue": "No module named plt", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mu'matplotlib inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpods\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mmatplotlib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplt\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mImportError\u001b[0m: No module named plt" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The aim of this notebook is to study Bayesian approaches to regression. As in previous sessions, first extract both the olympic years and the pace of the winning runner into 2-dimensional arrays with the data points in the rows of the array (the first dimension)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "data = pods.datasets.olympic_marathon_men()\n", "x = data['X']\n", "y = data['Y']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot them to check that they've loaded in correctly.\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(x, y, 'rx')" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'plt' is not defined", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'rx'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'plt' is not defined" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Prior Distribution\n", "\n", "In the Bayesian approach, the first thing we do is assume a prior distribution for the parameters, $\\mappingVector$. In the lectures we took this prior to be \n", "\n", "$$\\mappingVector \\sim \\gaussianSamp{\\zerosVector}{\\alpha \\eye}$$\n", "\n", "In other words, we assumed for the prior that each element of the parameters vector, $\\mappingScalar_i$, was drawn from a Gaussian density as follows\n", "\n", "$$\\mappingScalar_i \\sim \\gaussianSamp{0}{\\alpha}$$\n", "\n", "Let's start by assigning the parameter of the prior distribution, which is the variance of the prior distribution, $\\alpha$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# set prior variance on w\n", "alpha = 4.\n", "# set the order of the polynomial basis set\n", "order = 5\n", "# set the noise variance\n", "sigma2 = 0.01" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have the prior variance, we can sample from the prior distribution to see what form we are imposing on the functions *a priori*. To do this, we first sample a weight vector, then we multiply that weight vector by our basis to compute the functions. Firstly we compute the basis function matrix. We will do it both for our training data, and for a range of prediction locations (`x_pred`). " ] }, { "cell_type": "code", "collapsed": false, "input": [ "num_data = x.shape[0]\n", "num_pred_data = 100 # how many points to use for plotting predictions\n", "x_pred = linspace(1890, 2016, num_pred_data)[:, None] # input locations for predictions \n", " # [:,None] changes the matrix to a column vector" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "now let's build the basis matrices.\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# build the basis set\n", "Phi = np.zeros((num_data, order+1))\n", "Phi_pred = np.zeros((num_pred_data, order+1))\n", "for i in xrange(0, order+1):\n", " Phi[:, i:i+1] = x**i\n", " Phi_pred[:, i:i+1] = x_pred**i" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sampling from the Prior\n", "\n", "Now we will sample from the prior to produce a vector $\\mappingVector$ and use it to plot a function which is representative of our belief *before* we fit the data. To do this we are going to use the properties of the Gaussian density and a sample from a *standard normal* using the function `np.random.normal`.\n", "\n", "## Scaling Gaussian-distributed Variables\n", "\n", "First, let's consider the case where we have one data point and one feature in our basis set. In otherwords $\\mappingFunctionVector$ would be a scalar, $\\mappingVector$ would be a scalar and $\\basisMatrix$ would be a scalar. In this case we have \n", "\n", "$$\\mappingFunctionScalar = \\basisScalar \\mappingScalar$$\n", "\n", "If $\\mappingScalar$ is drawn from a normal density, \n", "\n", "$$\\mappingScalar \\sim \\gaussianSamp{\\meanScalar_\\mappingScalar}{c_\\mappingScalar}$$\n", "\n", "and $\\basisScalar$ is a scalar value which we are given, then properties of the Gaussian density tell us that \n", "\n", "$$\\basisScalar \\mappingScalar \\sim \\gaussianSamp{\\basisScalar\\meanScalar_\\mappingScalar}{\\basisScalar^2c_\\mappingScalar}$$\n", "\n", "Let's test this out numerically. First we will draw 200 samples from a standard normal," ] }, { "cell_type": "code", "collapsed": false, "input": [ "w_vec = np.random.normal(size=200)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can compute the mean of these samples and their variance" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print 'w sample mean is ', w_vec.mean()\n", "print 'w sample variance is ', w_vec.var()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "w sample mean is -0.063774772752\n", "w sample variance is 0.852792100471\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "These are close to zero (the mean) and one (the variance) as you'd expect. Now compute the mean and variance of the scaled version," ] }, { "cell_type": "code", "collapsed": false, "input": [ "phi = 7\n", "f_vec = phi*w_vec\n", "print 'True mean should be phi*0 = 0.'\n", "print 'True variance should be phi*phi*1 = ', phi*phi\n", "print 'f sample mean is ', f_vec.mean()\n", "print 'f sample variance is ', f_vec.var()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "True mean should be phi*0 = 0.\n", "True variance should be phi*phi*1 = 49\n", "f sample mean is -0.446423409264\n", "f sample variance is 41.7868129231\n" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you increase the number of samples then you will see that the sample mean and the sample variance begin to converge towards the true mean and the true variance. Obviously adding an offset to a sample from `np.random.normal` will change the mean. So if you want to sample from a Gaussian with mean `mu` and standard deviation `sigma` one way of doing it is to sample from the standard normal and scale and shift the result, so to sample a set of $\\mappingScalar$ from a Gaussian with mean $\\meanScalar$ and variance $\\alpha$,\n", "\n", "$$w \\sim \\gaussianSamp{\\meanScalar}{\\alpha}$$\n", "\n", "We can simply scale and offset samples from the *standard normal*." ] }, { "cell_type": "code", "collapsed": false, "input": [ "mu = 4 # mean of the distribution\n", "alpha = 2 # variance of the distribution\n", "w_vec = np.random.normal(size=200)*np.sqrt(alpha) + mu\n", "print 'w sample mean is ', w_vec.mean()\n", "print 'w sample variance is ', w_vec.var()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "w sample mean is 4.02791370838\n", "w sample variance is 1.74871852147\n" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here the `np.sqrt` is necesssary because we need to multiply by the standard deviation and we specified the variance as `alpha`. So scaling and offsetting a Gaussian distributed variable keeps the variable Gaussian, but it effects the mean and variance of the resulting variable. \n", "\n", "To get an idea of the overal shape of the resulting distribution, let's do the same thing with a histogram of the results. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# First the standard normal\n", "z_vec = np.random.normal(size=1000) # by convention, in statistics, z is often used to denote samples from the standard normal\n", "w_vec = z_vec*np.sqrt(alpha) + mu\n", "# plot normalized histogram of w, and then normalized histogram of z on top\n", "plt.hist(w_vec, bins=30, normed=True)\n", "plt.hist(z_vec, bins=30, normed=True)\n", "plt.legend(('$w$', '$z$'))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n7969AW1+8YtfWD//+c/9+8XFxSGPVVJSEvx7EhsbGxtbxK2kpCRSTAeJ2FPPy8uTdGEGTGFhoVpb\nW9XY2BjQprq6WmvXrtU3v/lNvfzyyyovLw95rPfffz/SqQAACRB1+KW5uVlut1uDg4Oqr69XQUGB\nPB6PJMntduvmm2/W3LlzNXv2bOXn5+vZZ59NetEAgNAc1vABcQBAxkr5MgFbtmxRVlaWent7U33q\nK7Ju3TqVl5frpptu0po1azQwMGB3STGJ5eaxdHXy5El99atf1dSpU+VyufS73/3O7pJG5Pz586qq\nqtKSJUvsLiVun3zyib71rW/py1/+sn/2W6bYuXOnbrvtNs2aNUtr1qyxu5yoVq5cqc9//vOaPn26\n/zWfz6c777xThYWFWrp0qT7++OOox0lpqJ88eVKtra0qKipK5WkTora2Vt3d3Tp8+LA++eSTjAmY\naDePpbOcnBxt3bpV3d3dev7557Vx40b5fJm3kuK2bdtUUVGRtrPCImlsbFRhYaGOHDmiI0eOhL1m\nlm56e3v1+OOPq7W1VV1dXTp27Jhefvllu8uK6L777tOBAwcCXtuxY4cKCwv13nvvafLkyfrVr34V\n9TgpDfW1a9fqySefTOUpE2bhwoXKyspSVlaWFi1apIMHD9pdUlSx3DyWziZNmuR/zGBBQYGmTp2q\nw4cP21xVfD788EPt27dP3/72t4Om/maCtrY2/fCHP9SYMWOUnZ3tnzyR7saOHSvLstTX16eBgQH9\n97//1fjx4+0uK6Lbb789qMZDhw7p/vvv19VXX62VK1fG9O83ZaG+e/duTZ48WTNmzEjVKZNm586d\nGfGrdLibxzLR+++/r+7ubt188812lxKX73//+9q8ebOysjJvQdQPP/xQZ8+e1erVq1VdXa2f/vSn\nOnv2rN1lxWTs2LHasWOHpkyZokmTJukrX/lKxv3sSIH/hsvKynTo0KGon0noT9rChQs1ffr0oG3P\nnj164oknAu7qSsdeS7j6X3zxRX+bRx99VLm5ufr6179uY6Wji8/n0/Lly7V161Zde+21dpcTs717\n92rixImqqqpKy5/3aM6ePatjx45p2bJl8nq96u7u1h/+8Ae7y4rJv//9b61evVpvv/22enp69Ne/\n/lUvvfSS3WXFbUQ/N3HNah+hv/3tb9bEiROtKVOmWFOmTLGys7OtoqIi69SpU6k4fcI8/fTT1m23\n3WYNDAzYXUpMYrl5LN3973//sxYuXGht3brV7lLitmHDBmvy5MnWlClTrEmTJlnXXHONde+999pd\nVlzKysr8X+/bt8+65557bKwmdnv37rWWL1/u3//lL39prV+/3saKYnPixAlr2rRp/v277rrLev31\n1y3LsqzDhw9by5Yti3qMlPxOOG3aNJ06dUonTpzQiRMnNHnyZL3++uuaOHFiKk6fEAcOHNDmzZu1\nZ88ejRkzxu5yYnL5zWM9PT1qbW1VdXW1zVXFzrIs3X///Zo2bVpGzF4Y7vHHH9fJkyd14sQJ/f73\nv9f8+fP1zDPP2F1WXEpLS9XZ2amhoSG99NJLWrBggd0lxeT222/X4cOH1dvbq3Pnzmn//v2qra21\nu6y4VVdXa9euXRoYGNCuXbt0yy23RP9Qsv6PE8mXvvQl6z//+Y8dpx6xG2+80SosLLQqKyutyspK\na/Xq1XaXFBOv12uVlZVZJSUl1rZt2+wuJy6vvPKK5XA4rJkzZ/r/3Pfv3293WSPi9XqtJUuW2F1G\n3N59912rurramjlzpvXQQw9ZH3/8sd0lxezpp5+2ampqrNmzZ1sbN260zp8/b3dJEd1zzz3WF77w\nBetzn/ucNXnyZGvXrl1Wf3+/dccdd1g33HCDdeedd1o+ny/qcbj5CAAMknmX5AEAYRHqAGAQQh0A\nDEKoA4BBCHUAMAihDgAGIdQBwCCEOgAY5P8BmLoIqLjkH4EAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now re-run this histogram with 100,000 samples and check that the both histograms look qualitatively Gaussian.\n", "\n", "## Sampling from the Prior\n", "\n", "Let's use this way of constructing samples from a Gaussian to check what functions look like *a priori*. The process will be as follows. First, we sample a random vector $K$ dimensional from `np.random.normal`. Then we scale it by $\\sqrt{\\alpha}$ to obtain a prior sample of $\\mappingVector$. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "K = order + 1\n", "z_vec = np.random.normal(size=K)\n", "w_sample = z_vec*np.sqrt(alpha)\n", "print w_sample" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[-1.41171865 0.29234629 -1.07851873 1.37697395 -0.54956334 -1.17568512]\n" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can combine our sample from the prior with the basis functions to create a function," ] }, { "cell_type": "code", "collapsed": false, "input": [ "f_sample = np.dot(Phi_pred,w_sample)\n", "plt.plot(x_pred.flatten(), f_sample.flatten(), 'r-')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This shows the recurring problem with the polynomial basis. Our prior allows relatively large coefficients for the basis associated with high polynomial degrees. Because we are operating with input values of around 2000, this leads to output functions of very high values. One fix for this is to rescale our inputs to be between -1 and 1 before applying the model. This is a disadvantage of the polynomial basis. Let's rescale x and x_pred now." ] }, { "cell_type": "code", "collapsed": false, "input": [ "span = np.max(x) - np.min(x) \n", "offset = np.min(x)\n", "x -= offset\n", "x_pred -= offset\n", "x /= span # x is now between zero and 1\n", "x_pred /= span \n", "x = x*2-1 # x is now between -1 and 1\n", "x_pred = x_pred*2 - 1 " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we need to recompute the basis functions from above, " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# rebuild the basis set\n", "Phi = np.zeros((num_data, order+1))\n", "Phi_pred = np.zeros((num_pred_data, order+1))\n", "for i in xrange(0, order+1):\n", " Phi[:, i:i+1] = x**i\n", " Phi_pred[:, i:i+1] = x_pred**i" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "f_sample = np.dot(Phi_pred,w_sample)\n", "plt.plot(x_pred.flatten(), f_sample.flatten(), 'r-')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's loop through some samples and plot various functions as samples from this system," ] }, { "cell_type": "code", "collapsed": false, "input": [ "num_samples = 10\n", "K = order+1\n", "for i in xrange(num_samples):\n", " z_vec = np.random.normal(size=K)\n", " w_sample = z_vec*np.sqrt(alpha)\n", " f_sample = np.dot(Phi_pred,w_sample)\n", " plt.plot(x_pred.flatten(), f_sample.flatten())\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\ngg==\n", "text": [ "" ] } ], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The predictions for the mean output can now be computed. We want the expected value of the predictions under the posterior distribution. In matrix form, the predictions can be computed as\n", "\n", "$$\\mathbf{f} = \\basisMatrix \\mappingVector.$$\n", "\n", "This involves a matrix multiplication between a fixed matrix $\\basisMatrix$ and a vector that is drawn from a distribution $\\mappingVector$. Because $\\mappingVector$ is drawn from a distribution, this imples that $\\mappingFunctionVector$ should also be drawn from a distribution. Let's work out what that distributions should be. \n", "\n", "## Computing the Posterior\n", "\n", "In the lecture we went through how to compute the posterior distribution for $\\mappingVector$. This distribution is also Gaussian,\n", "\n", "$$p(\\mappingVector | \\dataVector, \\inputVector, \\dataStd^2) = \\mathcal{N}\\left(\\mappingVector|\\meanVector_\\mappingScalar, \\covarianceMatrix_\\mappingScalar\\right)$$\n", "\n", "with covariance, $\\covarianceMatrix_\\mappingScalar$, given by\n", "\n", "$$\\covarianceMatrix_\\mappingScalar = \\left(\\dataStd^{-2}\\basisMatrix^\\top \\basisMatrix + \\alpha^{-1} \\eye\\right)^{-1}$$ \n", "\n", "whilst the mean is given by\n", "\n", "$$\\meanVector_\\mappingScalar = \\covarianceMatrix_\\mappingScalar \\dataStd^{-2}\\basisMatrix^\\top \\dataVector$$\n", "\n", "Let's compute the posterior covariance and mean, then we'll sample from these densities to have a look at the posterior belief about $\\mappingVector$ once the data has been accounted for. Remember, the process of Bayesian inference involves combining the prior, $p(\\mappingVector)$ with the likelihood, $p(\\dataVector|\\inputVector, \\mappingVector)$ to form the posterior, $p(\\mappingVector | \\dataVector, \\inputVector)$ through Bayes' rule,\n", "\n", "$$p(\\mappingVector|\\dataVector, \\inputVector) = \\frac{p(\\dataVector|\\inputVector, \\mappingVector)p(\\mappingVector)}{p(\\dataVector)}$$\n", "\n", "We've looked at the samples for our function $\\mappingFunctionVector = \\basisMatrix\\mappingVector$, which forms the mean of the Gaussian likelihood, under the prior distribution. I.e. we've sampled from $p(\\mappingVector)$ and multiplied the result by the basis matrix. Now we will sample from the posterior density, $p(\\mappingVector|\\dataVector, \\inputVector)$, and check that the new samples fit do correspond to the data, i.e. we want to check that the updated distribution includes information from the data set. First we need to compute the posterior mean and *covariance*." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# compute the posterior covariance and mean\n", "w_cov = np.linalg.inv(1/sigma2*np.dot(Phi.T, Phi) + 1/alpha*np.eye(order+1))\n", "w_mean = np.dot(w_cov, 1/sigma2*np.dot(Phi.T, y))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before we were able to sample the prior values for the mean *independently* from a Gaussian using `np.random.normal` and scaling the result. However, observing the data *correlates* the parameters. Recall this from the first lab where we had a correlation between the offset, $c$ and the slope $m$ which caused such problems with the coordinate ascent algorithm. We need to sample from a *correlated* Gaussian. For this we can use `np.random.multivariate_normal`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.multivariate_normal?\n", "w_sample = np.random.multivariate_normal(w_mean.flatten(), w_cov)\n", "f_sample = np.dot(Phi_pred,w_sample)\n", "plt.plot(x_pred.flatten(), f_sample.flatten(), 'r-')\n", "plt.plot(x, y, 'rx') # plot data to show fit." ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 22, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nt07lcPP0DnFxN45lgu+geMrfuLg4jB8/HlVVVdDr9R2vZ2Rk4PDhwxg7diwAoLGxEfHx8Tbfo7Cw\nsOPfRqMRRqPRuaiJSPvCwuRUDpYpGW7+kuruF4mvf3HZYTKZYDKZXH6fbueWOXfuHIKDgxEWFoam\npiaMGjUKFRUViI6O7jimuroa+fn52LZtGyoqKlBSUoKysjLrD+LcMkTkCFfn6tEIjyzWcebMGTzz\nzDO4fv06oqKiUFBQgOjoaBQXFwMA8vLyYDAYMHz4cAwdOhTh4eHYtGmTc2dARGRx66yalrJLgCZ4\nZ3BWSCLyPb66ApQKOOUvEZEGOZs7A3cGfCIiDWNyJyLSICZ3IiINYnInItIgJnciIg1icici0iAm\ndyIiDWJyJyLSICZ3IiINYnInItIgJnciIg1icici0iAmdyIiDWJyJyLSICZ3IiINYnInItIgJnci\nIg1icici0iAmdyIiDWJyJyLSICZ3IiINYnInItIgJnciIg1icici0iAmdyIiDWJyJyLSICZ3IiIN\nspvcT548iVGjRiE5ORlGoxElJSVWx5hMJoSGhkKv10Ov12PZsmUeCZaIiJSxm9xDQkJQVFSEb775\nBqWlpXj++efR0tJiddzIkSNx6NAhHDp0CM8//7xHgvVlJpNJ7RA8Ssvnp+VzA3h+gcpuco+KikJa\nWhoAoF+/fkhOTsaBAwesjhNCuD86P6L1/8G0fH5aPjeA5xeoHKq5Hzt2DN988w0MBkOn13U6Hfbt\n24e0tDTk5+ejrq7OrUESEZFjFCf3lpYWPP744ygqKsLtt9/eaV96ejpOnjyJ/fv3IykpCfPnz3d7\noERE5AChwJUrV8To0aNFUVGR3WPb29tFRESEaGtr6/R6QkKCAMCNGzdu3BzYEhISlKRpK8GwQwiB\nmTNn4oEHHsDvf/97m8c0NDQgIiICOp0OO3bsQEpKCnr27NnpmGPHjtn7KCIichOdEN3fCf3ss88w\nYsQIpKSkQKfTAQBWrFiBEydOAADy8vLw2muvYe3atQgODkZKSgoKCgqQkpLi+eiJiMgmu8mdiIj8\nj8dGqG7evBnJycno0aMHDh482OVxcXFxSElJgV6vt+qF48uUnt+ePXswaNAgDBw4EK+88ooXI3Re\nS0sLJk6ciLvvvhu5ublobW21eZy/XTsl12Lx4sWIj4/HkCFDcOTIES9H6Bp75+fPgw1nzJiByMhI\nDB48uMtj/Pna2Ts/p66dU5V6BWpra8W3334rjEaj+OKLL7o8Li4uTjQ1NXkqDI9Ren5paWni008/\nFcePHxf333+/aGxs9GKUznnxxRfFvHnzRFtbm5g7d65YuXKlzeP87drZuxZVVVUiMzNTNDU1iZKS\nEpGdna1SpM6xd367d+8WOTk5KkXnmj179oiDBw+KBx54wOZ+f7929s7PmWvnsZZ7YmIi7rvvPkXH\nCj+sDCk5v/PnzwMARowYgXvuuQdjxoxBVVWVN8JzSXV1NWbOnImePXtixowZ3cbsL9dOybWoqqrC\n1KlTER4ejmnTpqG2tlaNUJ2i9P81f7let3rooYfQp0+fLvf787UD7J8f4Pi1U33iMJ1Oh6ysLOTm\n5mL79u1qh+NW+/fvR2JiYsfzpKQkfP755ypGpMzNcScmJqK6utrmcf507ZRci+rqaiQlJXU879+/\nv98MyFNyfloebOjP104JZ66d3a6Q3Rk9ejTOnj1r9fqKFSuQk5Oj6D0qKysRHR2N2tpa5OTkwGAw\nICoqypWw3MYd5+erujq35cuXK24h+PK1c4YQwurcLT3EtMAy2DAkJAQbNmzA/PnzUVZWpnZYbsFr\nZ4MLZSJF7NWkb7ZgwQLxxhtveDgi9+ru/Mxms0hLS+t4Pm/ePFFWVuat0Jw2efJkcfDgQSGEEAcO\nHBBTpkyx+ze+fu2UXIs1a9aIl19+ueN5fHy81+JzlaP/r3U12NCX1dfXd1mT9udrZ9Hd+d1M6bXz\nSllGdNESvHTpUscMk42NjaioqMC4ceO8EZJbdXV+oaGhAGQvhuPHj+Pjjz9GRkaGN0NzSkZGBtav\nX4/Lly9j/fr1GDZsmNUx/nbtlFyLjIwMvP/++2hqakJJSQkGDRqkRqhOUXJ+DQ0NHf+vdjXY0F/5\n87VTwqlr545vHFu2bNkiYmJiRK9evURkZKQYN26cEEKIH374QYwfP14IIURdXZ1ITU0VqampIisr\nS7z55pueCsftlJyfEEKYTCaRmJgoEhISxOrVq9UK1yEXLlwQEyZMELGxsWLixImipaVFCOH/187W\ntVi3bp1Yt25dxzF/+MMfRFxcnEhPTxeHDx9WK1Sn2Du/V199VSQnJ4vU1FQxffp0UVNTo2a4Dnni\niSdEdHS0CAkJETExMeLNN9/U1LWzd37OXDsOYiIi0iDVe8sQEZH7MbkTEWkQkzsRkQYxuRMRaRCT\nOxGRBjG5ExFpEJM7EZEGMbkTEWnQ/wNziJGeLJx7EgAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's sample several functions and plot them all to see how the predictions fluctuate." ] }, { "cell_type": "code", "collapsed": false, "input": [ "for i in xrange(num_samples):\n", " w_sample = np.random.multivariate_normal(w_mean.flatten(), w_cov)\n", " f_sample = np.dot(Phi_pred,w_sample)\n", " plt.plot(x_pred.flatten(), f_sample.flatten())\n", "plt.plot(x, y, 'rx') # plot data to show fit." ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n1KlT/g7LJ1i7cdzDNJFH3M1J/9KuXbvk448/nuKIfOtu+d24cUPS0tJG93fu3CmnTp2artC89sQT\nT0htba2IiJw/f142b97s9piZXjtPavH+++/Le++9N7qfmJg4bfHdq8l+1iZabDiTXb58ecI5aSXX\n7ra75fdLntZuWqZlZIIzwf7+/tE7TNrtdpSXl2Pt2rXTEZJPTZRfWFgYgJGrGFpbW/Hll1/CYrFM\nZ2hesVgsOHjwIAYGBnDw4EEsX758zBil1c6TWlgsFhw7dgzd3d0oKyuDwWDwR6he8SS/zs7O0c/q\nRIsNlUrJtfOEV7XzxW+c8Rw/flzi4+Nlzpw5EhMTI2vXrhURkfb2dlm3bp2IiLS0tEhqaqqkpqZK\nVlaWlJSUTFU4PudJfiIiVqtV9Hq9JCUlSVFRkb/CnZSenh7ZsGGDLFq0SDZu3CgOh0NElF+78WpR\nXFwsxcXFo2NeffVVSUhIkIyMDLl48aK/QvWKu/w+/PBDMZlMkpqaKs8884zU19f7M9xJycnJkbi4\nONFqtRIfHy8lJSWqqp27/LypHRcxERGpkN+vliEiIt9jcyciUiE2dyIiFWJzJyJSITZ3IiIVYnMn\nIlIhNnciIhVicyciUqH/Afa13n/Ag8J0AAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sum of Gaussian-distributed Variables\n", "\n", "The sum of Gaussian random variables is also Gaussian, so if we have a random variable $y_i$ drawn from a Gaussian density with mean $\\meanScalar_i$ and variance $\\dataStd^2_i$, \n", "\n", "$$y_i \\sim \\gaussianSamp{\\meanScalar_i}{\\dataStd^2_i}$$\n", "\n", "Then the sum of $K$ independently sampled values of $y_i$ will be drawn from a Gaussian with mean $\\sum_{i=1}^K \\mu_i$ and variance $\\sum_{i=1}^K \\dataStd_i^2$,\n", "\n", "\n", "$$\\sum_{i=1}^K y_i \\sim \\gaussianSamp{\\sum_{i=1}^K \\meanScalar_i}{\\sum_{i=1}^K \\dataStd_i^2}.$$\n", "\n", "Let's try that experimentally. First let's generate a vector of samples from a standard normal distribution, $z \\sim \\gaussianSamp{0}{1}$, then we will scale and offset them, then keep adding them into a vector `y_vec`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "K = 10 # how many Gaussians to add.\n", "num_samples = 1000 # how many samples to have in y_vec\n", "mus = np.linspace(0, 5, K) # mean values generated linearly spaced between 0 and 5\n", "sigmas = np.linspace(0.5, 2, K) # sigmas generated linearly spaced between 0.5 and 2\n", "y_vec = np.zeros(num_samples)\n", "for mu, sigma in zip(mus, sigmas):\n", " z_vec = np.random.normal(size=num_samples) # z is from standard normal\n", " y_vec += z_vec*sigma + mu # add to y z*sigma + mu\n", "\n", "# now y_vec is the sum of each scaled and off set z.\n", "print 'Sample mean is ', y_vec.mean(), ' and sample variance is ', y_vec.var()\n", "print 'True mean should be ', mus.sum()\n", "print 'True variance should be ', (sigmas**2).sum(), ' standard deviation ', np.sqrt((sigmas**2).sum()) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Sample mean is 25.015911694 and sample variance is 18.4703469146\n", "True mean should be 25.0\n", "True variance should be 17.9166666667 standard deviation 4.2328083664\n" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course, we can histogram `y_vec` as well." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.hist(y_vec, bins=30, normed=True)\n", "plt.legend('$y$')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Matrix Multiplication of Gaussian Variables\n", "\n", "Matrix multiplication is just adding and scaling together, in the formula, $\\mappingFunctionVector = \\basisMatrix \\mappingVector$ we can extract the first element from $\\mappingFunctionVector$ as\n", "\n", "$$\\mappingFunctionScalar_i = \\basisVector_i^\\top \\mappingVector$$\n", "\n", "where $\\basisVector$ is a column vector from the $i$th row of $\\basisMatrix$ and $\\mappingFunctionScalar_i$ is the $i$th element of $\\mappingFunctionVector$. This vector inner product itself merely implies that \n", "\n", "$$\\mappingFunctionScalar_i = \\sum_{j=1}^K \\mappingScalar_j \\basisScalar_{i, j}$$\n", "\n", "and if we now say that $\\mappingScalar_i$ is Gaussian distributed, then because a scaled Gaussian is also Gaussian, and because a sum of Gaussians is also Gaussian, we know that $\\mappingFunctionScalar_i$ is also Gaussian distributed. It merely remains to work out its mean and covariance. We can do this by looking at the expectation under a Gaussian distribution. The expectation of the mean vector is given by\n", "\n", "$$\\expDist{\\mappingFunctionVector}{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} = \\int \\mappingFunctionVector \\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix} \\text{d}\\mappingVector = \\int \\basisMatrix\\mappingVector \\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix} \\text{d}\\mappingVector = \\basisMatrix \\int \\mappingVector \\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix} \\text{d}\\mappingVector = \\basisMatrix \\meanVector$$\n", "\n", "Which is straightforward. The expectation of $\\mappingFunctionVector=\\basisMatrix\\mappingVector$ under the Gaussian distribution for $\\mappingFunctionVector$ is simply $\\mappingFunctionVector=\\basisMatrix\\meanVector$, where $\\meanVector$ is the *mean* of the Gaussian density for $\\mappingVector$. Because our prior distribution was Gaussian with zero mean, the expectation under the prior is given by\n", "\n", "$$\\expDist{\\mappingFunctionVector}{\\gaussianDist{\\mappingVector}{\\zerosVector}{\\alpha\\eye}} = \\zerosVector$$\n", "\n", "The covariance is a little more complicated. A covariance matrix is defined as\n", "\n", "$$\\text{cov}\\left(\\mappingFunctionVector\\right)_{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} = \\expDist{\\mappingFunctionVector\\mappingFunctionVector^\\top}{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} - \\expDist{\\mappingFunctionVector}{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}}\\expDist{\\mappingFunctionVector}{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}}^\\top$$\n", "\n", "we've already computed $\\expDist{\\mappingFunctionVector}{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}}=\\basisMatrix \\meanVector$ so we can substitute that in to recover\n", "\n", "$$\\text{cov}\\left(\\mappingFunctionVector\\right)_{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} = \\expDist{\\mappingFunctionVector\\mappingFunctionVector^\\top}{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} - \\basisMatrix \\meanVector \\meanVector^\\top \\basisMatrix^\\top$$\n", "\n", "So we need the expectation of $\\mappingFunctionVector\\mappingFunctionVector^\\top$. Substituting in $\\mappingFunctionVector = \\basisMatrix \\mappingVector$ we have\n", "\n", "$$\\text{cov}\\left(\\mappingFunctionVector\\right)_{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} = \\expDist{\\basisMatrix\\mappingVector\\mappingVector^\\top \\basisMatrix^\\top}{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} - \\basisMatrix \\meanVector \\meanVector^\\top \\basisMatrix^\\top$$\n", "\n", "$$\\text{cov}\\left(\\mappingFunctionVector\\right)_{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} = \\basisMatrix\\expDist{\\mappingVector\\mappingVector^\\top}{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} \\basisMatrix^\\top - \\basisMatrix \\meanVector \\meanVector^\\top \\basisMatrix^\\top$$\n", "\n", "Which is dependent on the second moment of the Gaussian,\n", "\n", "$$\\expDist{\\mappingVector\\mappingVector^\\top}{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} = \\covarianceMatrix + \\meanVector\\meanVector^\\top$$\n", "\n", "that can be substituted in to recover,\n", "\n", "$$\\text{cov}\\left(\\mappingFunctionVector\\right)_{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} = \\basisMatrix\\covarianceMatrix \\basisMatrix^\\top$$\n", "\n", "so in the case of the prior distribution, where we have $\\covarianceMatrix = \\alpha \\eye$ we can write\n", "\n", "$$\\text{cov}\\left(\\mappingFunctionVector\\right)_{\\gaussianDist{\\mappingVector}{\\zerosVector}{\\alpha \\eye}} = \\alpha \\basisMatrix \\basisMatrix^\\top$$\n", "\n", "This implies that the prior we have suggested for $\\mappingVector$, which is Gaussian with a mean of zero and covariance of $\\alpha \\eye$ suggests that the distribution for $\\mappingVector$ is also Gaussian with a mean of zero and covariance of $\\alpha \\basisMatrix\\basisMatrix^\\top$. Since our observed output, $\\dataVector$, is given by a noise corrupted variation of $\\mappingFunctionVector$, the final distribution for $\\dataVector$ is given as \n", "\n", "$$\\dataVector = \\mappingFunctionVector + \\noiseVector$$\n", "\n", "where the noise, $\\noiseVector$, is sampled from a Gaussian density: $\\noiseVector \\sim \\gaussianSamp{\\zerosVector}{\\dataStd^2\\eye}$. So, in other words, we are taking a Gaussian distributed random value $\\mappingFunctionVector$,\n", "\n", "$$\\mappingFunctionVector \\sim \\gaussianSamp{\\zerosVector}{\\alpha\\basisMatrix\\basisMatrix^\\top}$$\n", "\n", "and adding to it another Gaussian distributed value, $\\noiseVector \\sim \\gaussianSamp{\\zerosVector}{\\dataStd^2\\eye}$, to form our data observations, $\\dataVector$. Once again the sum of two (multivariate) Gaussian distributed variables is also Gaussian, with a mean given by the sum of the means (both zero in this case) and the covariance given by the sum of the covariances. So we now have that the marginal likelihood for the data, $p(\\dataVector)$ is given by\n", "\n", "$$p(\\dataVector) = \\gaussianDist{\\dataVector}{\\zerosVector}{\\alpha \\basisMatrix \\basisMatrix^\\top + \\dataStd^2\\eye}$$\n", "\n", "This is our *implicit* assumption for $\\dataVector$ given our prior assumption for $\\mappingVector$.\n", "\n", "## Computing the Mean and Error Bars of the Functions\n", "\n", "You should now know enough to compute the mean of the predictions under the posterior density. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# compute mean under posterior density\n", "f_pred_mean = np.dot(Phi_pred, w_mean)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot these predictions alongside the real data," ] }, { "cell_type": "code", "collapsed": false, "input": [ "# print the error and plot the predictions\n", "plt.plot(x_pred, f_pred_mean)\n", "plt.plot(x, y, 'rx')\n", "ax = plt.gca()\n", "ax.set_title('Predictions for Order ' + str(order))\n", "ax.set_xlabel('year')\n", "ax.set_ylabel('pace (min/km)')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nSAsTAxERafl/EXzHhjvwGfoAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing the Error\n", "\n", "We can also compute what the training error was. First compute the expected output under the posterior density," ] }, { "cell_type": "code", "collapsed": false, "input": [ "f_mean = np.dot(Phi, w_mean)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "These can be used to compute the error\n", "\n", "$$E(\\mappingVector) = \\frac{\\numData}{2} \\log \\dataStd^2 + \\frac{1}{2\\dataStd^2} \\sum_{i=1}^\\numData \\left(\\dataScalar_i - \\mappingVector^\\top \\phi(\\inputVector_i)\\right)^2 \\\\\\\n", "E(\\mappingVector) = \\frac{\\numData}{2} \\log \\dataStd^2 + \\frac{1}{2\\dataStd^2} \\sum_{i=1}^\\numData \\left(\\dataScalar_i - \\mappingFunctionScalar_i\\right)^2$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# compute the sum of squares term\n", "sum_squares = ((y-f_mean)**2).sum()\n", "# fit the noise variance\n", "error = (num_data/2*np.log(sigma2) + sum_squares/(2*sigma2))\n", "print 'The error is: ',error" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have the fit and the error, let's plot the fit and the error.\n", "\n", "## Computing Error Bars\n", "\n", "Finally, we can compute error bars for the predictions. The error bars are the standard deviations of the predictions for $\\mappingFunctionVector=\\basisMatrix\\mappingVector$ under the posterior density for $\\mappingVector$. The standard deviations of these predictions can be found from the variance of the prediction at each point. Those variances are the diagonal entries of the covariance matrix. We've already computed the form of the covariance under Gaussian expectations, \n", "\n", "$$\\text{cov}\\left(\\mappingFunctionVector\\right)_{\\gaussianDist{\\mappingVector}{\\meanVector}{\\covarianceMatrix}} = \\basisMatrix\\covarianceMatrix \\basisMatrix^\\top$$\n", "\n", "which under the posterior density is given by\n", "\n", "$$\\text{cov}\\left(\\mappingFunctionVector\\right)_{\\gaussianDist{\\mappingVector}{\\meanVector_w}{\\covarianceMatrix_w}} = \\basisMatrix\\covarianceMatrix_w \\basisMatrix^\\top$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# compute the error bars\n", "f_pred_cov = np.dot(Phi_pred, np.dot(w_cov, Phi_pred.T))\n", "f_pred_var = np.diag(f_pred_cov)[:, None]\n", "f_pred_std = np.sqrt(f_pred_var)\n", "\n", "# plot mean, and error bars at 2 standard deviations\n", "plt.plot(x_pred.flatten(), f_pred_mean.flatten(), 'b-')\n", "plt.plot(x_pred.flatten(), (f_pred_mean+2*f_pred_std).flatten(), 'b--')\n", "plt.plot(x_pred.flatten(), (f_pred_mean-2*f_pred_std).flatten(), 'b--')\n", "plt.plot(x, y, 'rx')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 202, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 202 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gaussian Processes\n", "\n", "Now we're going to build on our understanding of the marginal likelihood we derived in the lectures, and also across the last part of the lab, to try and see the relationship with Gaussian procces. In the last lab section we sampled directly from the weight vector $\\mappingVector$ and applied it to the basis matrix $\\basisMatrix$ to obtain a sample from the prior and a sample from the posterior. Now we'll start by constructing the prior directly, rather than sampling the weights and then combining with the basis.\n", "\n", "## Sampling from the Prior\n", "\n", "The first thing we'll do is to set up the parameters of the model, these include the parameters of the prior, the parameters of the basis functions and the noise level.\n", "\n", "$$\\mappingVector \\sim \\gaussianSamp{\\zerosVector}{\\alpha \\eye}$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# set prior variance on w\n", "alpha = 4.\n", "# set the order of the polynomial basis set\n", "order = 5\n", "# set the noise variance\n", "sigma2 = 0.01" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 203 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have the variance, we can sample from the prior distribution to see what form we are imposing on the functions *a priori*. \n", "\n", "Before we sample from our prior, recall the problems with the basis set from our last lab: the basis doesn't work well when predictions are made outside the $-1, 1$ region. Let's rescale the data to be within that region." ] }, { "cell_type": "code", "collapsed": false, "input": [ "span = np.max(x) - np.min(x) \n", "offset = np.min(x)\n", "x -= offset\n", "x /= span # x is now between zero and 1\n", "x = x*2-1 # x is now between -1 and 1" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 204 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's now compute a range of values to make predictions at, spanning the *new* space of inputs," ] }, { "cell_type": "code", "collapsed": false, "input": [ "num_data = x.shape[0]\n", "num_pred_data = 100 # how many points to use for plotting predictions\n", "x_pred = linspace(-1.2, 1.2, num_pred_data)[:, None] # input locations for predictions" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 205 }, { "cell_type": "markdown", "metadata": {}, "source": [ "now let's build the basis matrices.\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# build the basis set\n", "Phi = np.zeros((num_data, order+1))\n", "Phi_pred = np.zeros((num_pred_data, order+1))\n", "for i in range(0, order+1):\n", " Phi[:, i:i+1] = x**i\n", " Phi_pred[:, i:i+1] = x_pred**i" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 206 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Weight Space View\n", "\n", "Now we will sample from the prior density to obtain a vector $\\mappingVector$ using the function `np.random.normal` and combine with our basis to create 10 samples from the model over functions," ] }, { "cell_type": "code", "collapsed": false, "input": [ "num_samples = 10\n", "K = order+1\n", "for i in xrange(num_samples):\n", " z_vec = np.random.normal(size=K)\n", " w_sample = z_vec*np.sqrt(alpha)\n", " f_sample = np.dot(Phi_pred,w_sample)\n", " plt.plot(x_pred.flatten(), f_sample.flatten())\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 207 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Function Space View\n", "\n", "The process we have used to generate the samples is a two stage process. To obtain each function, we first generated a sample from the prior,\n", "\n", "$$\\mappingVector \\sim \\gaussianSamp{\\zerosVector}{\\alpha \\eye}$$\n", "\n", "We next applied the likelihood. The mean of the function in the likelihood is given by\n", "\n", "$$\\mathbf{f} = \\basisMatrix \\mappingVector.$$\n", "\n", "so we plotted the result. In the lecture we talked about computing the marginal likelihood directly. We used properties of Gaussian densities to show that,\n", "\n", "$$\\mappingFunctionVector \\sim \\gaussianSamp{\\zerosVector}{\\alpha \\basisMatrix \\basisMatrix^\\top},$$\n", "\n", "so we should be able to sample directly from this density. To do that we use the `np.random.multivariate_normal` command introduced in the last session. We need to sample from a multivariate normal with covariance given by $\\alpha\\basisMatrix\\basisMatrix^\\top$ and a zero mean," ] }, { "cell_type": "code", "collapsed": false, "input": [ "K = alpha*np.dot(Phi_pred, Phi_pred.T)\n", "for i in xrange(10):\n", " f_sample = np.random.multivariate_normal(mean=np.zeros(x_pred.size), cov=K)\n", " plt.plot(x_pred.flatten(), f_sample.flatten())" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAD9CAYAAABdoNd6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4lFX2xz/TZzIz6T0khB5ASgRpgsIqimtfV9deQF11\nV13F/am7q8LqKruu665l7RVYuyI2wBZEpUmvCYGQ3jPJ9Pq+vz8ukxALIElIIPfzPOeZyTDMeyeT\n+d57zzn3HI2qqioSiUQiOabRdvcAJBKJRNL1SLGXSCSSXoAUe4lEIukFSLGXSCSSXoAUe4lEIukF\nSLGXSCSSXkCHxH7mzJmkpaUxYsSI1sfmzJlDnz59yM/PJz8/nyVLlnR4kBKJRCLpGB0S+2uuueYH\nYq7RaLj99tvZsGEDGzZsYMaMGR0aoEQikUg6TofEfsqUKSQkJPzgcXlOSyKRSHoW+q540ccff5xX\nX32VsWPH8sgjjxAfH9/u3zUaTVdcViKRSI55Dncx3ekB2htvvJGSkhI2btxIRkYGs2fP/tHnqap6\nzNp9993X7WOQ70++v974/o7l96aqHfOYdLrYp6amotFo0Gg0XHvttaxZs6azLyGRSCSSn0mni311\ndXXr/ffee69dpo5EIpFIuocO+ewvueQSli9fTkNDA9nZ2cydO5eCggI2btyIRqOhX79+PPPMM501\n1qOGqVOndvcQuhT5/o5ujuX3dyy/t46iUTvqCDqci2o0HfY/SSQSSW+jI9opT9BKJBJJL0CKvUQi\nkfQCpNhLJBJJL0CKvUQikfQCpNhLJBJJL0CKvUQikfQCpNhLJBJJL0CKvUQikfQCpNhLJBJJL0CK\nvUQikfQCpNhLJBJJL0CKvUQikfQCpNhLJBJJL0CKvUQikfQCpNhLJBJJL0CKvUQikfQCpNhLJBJJ\nL0CKvUQikfQCpNhLJBLJIVDQ3ExNMNjdwzhspNhLJBLJQVBUlat37qQ6EOjuoRw2UuwlEonkIHzV\n0kKsTsdom627h3LYSLGXSCSSg/BqTQ1Xpqej0Wi6eyiHjRR7iUQiOQCeSIT3Ghq4LDW1u4fSITok\n9jNnziQtLY0RI0a0PtbU1MT06dMZPHgwp512Gs3NzR0epEQikXQXixoamBAbS4bJ1N1D6RAdEvtr\nrrmGJUuWtHts3rx5TJ8+naKiIk455RTmzZvXoQFKJBJJd/JqTQ1Xpad39zA6jL4j/3nKlCns3bu3\n3WOLFy9m+fLlAFx11VVMnTr1RwV/zpw5rfenTp3K1KlTOzIUiUQi6XQqAwHWulwsOu64brl+QUEB\nBQUFnfJaGlVV1Y68wN69ezn77LPZsmULAAkJCTgcDgBUVSUxMbH159aLajR08LISiUTS5cwrK2O3\nz8dzQ4Z091CAjmlnlwZoNRrNUR29lkgkvRdFVXm+upprMzK6eyidQqeLfVpaGjU1NQBUV1eTepRH\nsCUSSe+koLmZGK2WcXZ7dw+lU+h0sT/nnHN45ZVXAHjllVc477zzOvsSEolE0uU8V13NdRkZx4x3\nokM++0suuYTly5fT0NBAWloaf/3rXzn33HO56KKLKCsrIzc3lzfffJP4+Pj2F5U+e4lE0oNpCIUY\nuHo1JePHk2AwdPdwWumIdnY4QHtYF5ViL5FIejD/Ki9no9vNq0OHdvdQ2tFjA7QSiURytKGqaqsL\n51hCir1EIpHsx1ctLQBMjovr5pF0LlLsJRKJZD+eqKzk91lZx0xgNooUe4lEItlHud/P5w4HV6al\ndfdQOh0p9hKJRLKPZ6qruSwtDbu+Q5VkeiRS7CUSiQTwKwrPVVXxu6ys7h5KlyDFXiKRSIC36uoY\nZbORFxPT3UPpEqTYSySSXo+qqjy+LzB7rCLFXiKR9HpWtLTQHA5zZlJSdw+ly5BiL5FIej3/LC/n\n9uxsdMdYuuX+SLGXSCS9mh0eD6udTq46BtMt90eKvUQi6dU8UlHB77KysOh03T2ULuXYSyaVSCSS\nQ6QmGOSd+np2jR/f3UPpcuTKXiKR9Foeq6jg0tRUkg+ljHFVFShK1w+qi5BiL5FIeiVNoRDPVFXx\nx5ycgz/5u+9g7Fj45puuH1gXIcVeIpH0Sh6rrOS85GRyzeYDP/Hjj+GMM+C//4UpU47M4LoA6bOX\nSCS9jpZwmCcrK1l5/PEHfuKzz8K998LixTBx4pEZXBchxV4ikfQ6nqisZEZiIgMtlh9/QiQCd9wh\nVvUrVsCgQUd2gF1A7xb7NWvAZoNhw7p7JBKJ5AjhjkT4T0UFX+Xn//gTnE649FLw+2HVKkhIOLID\n7CJ6t89+40a45hoxi0skkl7BfyoqOCUh4ccLnhUWwvjxkJMDn3xyzAg99Haxv/ZaiImBxx7r7pFI\nJJIjQFMoxKMVFfw1N/eH//jBByIAe8cdIhh7KOmYRxEa9XBblXfkoh3okN6ZrCxfSWJlE0POukq4\ndPr37+4hSSSSLuTO3btxhMM8O2RI24PhsAjCzp8Pb70FEyZ03wAPQke0s8t89rm5ucTGxqLT6TAY\nDKxZs6arLnXYrK9ez7K9y3j/rrvguuvgs8/gGC6EJJH0ZqoCAZ6rrmbzCSe0PVhTI/zzej2sXw8p\nKd03wC6my9w4Go2GgoICNmzY0COFHmBm/kzWVK5hyyWngMsFzzzT3UOSSCRdxP2lpczMyKCPySQe\nWLYMjj9euG4++eSYFnro4mycnuCqORAWg4XbJtzGQ6se5n+vvAInnQTTp8OAAd09NIlE0ons9Hp5\nq76enePGQTAI99wDCxcKmzatu4d3ROgysddoNJx66qnodDp++9vfct1117X79zlz5rTenzp1KlOn\nTu2qoRyQG8feSP/H+lM87a8M/NOf4OqroaAAjvEKeBJJb+KO3bu5OyeH5OJiuPxyyMoS2XjJyd09\ntANSUFBAQUFBp7xWlwVoq6urycjIoL6+nunTp/P4448zZd9R454SoI1yX8F9VLmqeO7MZ8Qsf/bZ\nIiIvkUiOej5tauKmwkJ2rFmD/v774cEHRYzuKIzPdUQ7j0g2zty5c7HZbMyePVtctIeJfaO3kcFP\nDGbDbzeQ0xSBceNEsHbUqO4emkQi6QBhVeXs999n/sMPk6wo8OqrR/Vp2I5oZ5cEaL1eLy6XCwCP\nx8OyZcsYMWJEV1yqU0iKSeL6MdfztxV/g3794NFH4eKLwevt7qFJJJLDJRJh1d/+xuvXXEPS+efD\n118f1ULfUbpkZV9SUsL5558PQDgc5rLLLuPuu+9uu2gPW9kDNPmaGPz4YNZct4b+Cf2FX89mg6ef\n7u6hSSSSn8uWLYSuvZbvAgESXnyRvIMVPDtK6PFunB9ctAeKPcCcgjnsbd7Ly+e9DC0tkJ8PjzwC\n+yYuiUTSw/F44IEH4IUXeOnmm9n6m9/wyODB3T2qTqPHuXGOFlwuUesoym0TbuOjXR+xs2EnxMXB\na6/BDTdASUn3DVIikRwcVYVFi2D4cCgrY9VXX3HvqacyR56Kb6VXi/2VD7/GKdd9Sjgsfo4zx3H7\nhNu5r+A+8cD48XD33XDRRRAIdN9AJRLJT7NjB8yYIb6rL71EcP58Zjmd/HvgQOz63l3Yd396tdjf\ndEUG3+VcyWU3VLW2lrx5/M2sKF3Bd1XfiQduvRWys2UqpkTS02hqgttuE4chzzgDNm+GadP4R3k5\nfc1mftXDc+iPNL3eZ3/vZw/w7w+WcY32C/79Lz0aDTy37jkWblnIl1d9iUajgeZmGDMG/vY3kaXT\nBYTDzfh8JQQCFQQC5QSDtYRCdYRC9YRCDiKRFsJhJ4riJRLxoih+VDWMqobavY5Go0ejMaDVGtFq\nzWi1FnQ6KzqdDZ3Ojl4fh14fj16fgF6fiMGQhMGQjMGQgtGYitGYhk4XJ963RNITCQZFVcoHHxTx\ntPvvh9RUALZ6PEzbuJF1Y8aQc7B2g0chMkDbARRVYfrLZ7D10zHM7PsgDz4IETXMqKdH8dApD3HO\nkHPEEzdtglNP7XD+fSjUgMu1Ho9nCx7PVrzeHfh8xShKALO5HyZTNiZTH0ymDAyGVAyGFAyGBPT6\neHS6WHQ6K1qtBa3WvE/Y9UBUmNV9E0AYRQmgKH4UxUck4iEScROJuAiHWwiHmwmHHYTDTYRCjYRC\nDYRC9QSDtQSDdahqAKMxHaMxE5MpE6Mxa9+YsjCZsjGbczAaM9Fqj60SsJIejqLA66+LUgdDhsDD\nDwsf/T7CqsqE9eu5ITOTazMyunGgXYcU+w5S76ln9NPHY/rsSX494hz+/nf4pPhjbl96O1tu3IJB\nt0/UXnsN/vxnWLsWkpIO+rqqquDxbKGl5WtaWlbgdK4mFGrCbs/Hah2F1Tocq3UYFssgDIbUHrOa\njkS8BIM1BIPVBAKVBINVBAIV+P3lBALlrTsPozENs7kvZnPuftavddKSk4GkU1BV0R7wL38BoxH+\n/nf4kfIqD5WW8mVzM0tHjuwx36XORop9J7Cmcg1nLjyL5I++5Iwxw/nnP1WmLziVC4ZewE0n3NT2\nxDvuEKv8Tz4RZVG/RyjUQGPjxzQ1LcXh+BS9Pp74+JOIi5tMbOxELJZBaDRHf6hEUUIEg5X4/aX4\n/Xv33Zbg95fg85UQDNZgMmVhsfTHbO6PxTIAi2UgFssAzOYB6PX27n4Lkp6Oqoqd9D33gNst3DXn\nnfejZQ42ud2cumnTMeu+iSLFvpNYsHkB93x+H4nvrmHUoCR+99dN/PL109h+03aSYvat5MNhOPNM\ncRLviScACAZrqat7k4aGd3G51pOQcAqJiWeQmHgaZnPfbnxH3YeiBPdNAHvw+Xa33kZNp7PtE/82\ni4kZhMUyEL0+vruHL+lOVFWUH/7rX6GhAebMERlxP1Gc0BuJMHbdOv7Uty+Xp6Ud2bEeYaTYdyJ3\nfnYnK8vWYHl7KSa9kayZt4PBx1NnPtX2pJYW1EkTcV8+gZIzq3E6V5KUdDYpKReSkDAdne4nOtZL\nAFH6Ohis3if8u/ZZ9H4xWq153wQwCItl0L5JQJheH9vdw5d0FYoiWgM++KA4BHPPPQcU+Sg3FBXh\niUSYP3ToERpo9yHFvhOJKBEuevsiDBoT+sULKCxS2DtjNEtveJXjM47H7y+jsvJJHOtfYNRNLtz/\nuZXY39yHTmft7qEfHpGIyG4IhcSuJWqRSJspilhtRW+j9mNEt9gaDWi1P206XZvp9a2m6nSEIvV4\nvbv2mwh27fu5GL3e3ir8bRPBYCyWgeh0P9JAWtLzCQZF4PUf/wCTCf70J+GuOYQy4+/V13PH7t1s\nGDuW2F6QUy/FvpPxhXyctuA0xmWOw77yEZ541kX+76/m3+fqcTg+Iz39ajIzbyBmY734o1yyRHS8\nORKEw1BfL7a3UWtubjOnU6yKXC7h53S7RUE3n0+Y3y8sEBACr6oi6GUwCME1GNoLsU7XJtBRAQdx\n//u+0+hnuv+EoChiwlDV9rf7W3RyCYfFmLTatrEYDGJ8RiOqQU8wVYsvC7wZCr70ML6UIN5kH/44\nL4aACYsnHosvCUswlRglA4smG4sxF601Aex2YbGxwuLixK326I+hHCpKUCHsCBPxRFC8CkpQgX1n\nTDRGDVqLFp1VhyHJgNbUxb+XlhZ4/nn4979Fds3//Z9oHnSIwdXdPh+T1q9n8YgRjI/tHTs+KfZd\ngMPnYPJLk/nNkGkYv8vmoYdmcv1dr/DQHde3dyW89x78/vewYkXHG5arquiJWVwsSjSUlkJZGVRU\nQGUlVFcLQU9MFC3UkpKEJSZCQoIQr7i4NlGz2cBqhZgYsFiEmc3CjEaxiuqJTVoiESH6UYvuPIJB\nMUkFg20Tlt8PPh+q30sgWIlPKcOrqcSnq8ZnrMdraSQQ48TgMRPTaMZSZ8BSqcFSGiZmlw/zbi9a\ns138/hISxO8yMbHtd5uSIiw1FdLSxG1KSo/8vSlBBf8eP95dXvx7/fhL/ATKAwSqAgSrgoQaQigB\nBX28Hp1Vh86qQ2PQtB6tVIMqik8h4okQagyhNWsxZhix9LNg7m/GOsyKbbQN60gr+tgOrKL37IHH\nHhPlhmfMEEkPP3Ox5I1EmLh+PddnZvK7rKzDH8tRhhT7LsDj2c7KbbdydcGXXD/qfAYoc7nyUjs3\nXJXAf/5pa5+I89RToizyN98cWh9LVRUivmmTOPW3Ywds3w67dglxHjBAlFru21dYnz6QmSksOblH\nCk1PRlXD+P2l+7mD2szvL8dkyMCizSEmkonFn4TFGUtMgxlztYKmwSF2UnV1wmpqxISbnNz2mWRm\nis8oO1vc9u0r7ndRVogaVvEWeXFvcuPZ6sG7zYtnm4dAeQBTtgnLQAvmfmZhOWZMWSaMGUYMKQZ0\ndt0hpSWqqkrEGSFQGcBf4se3x4d3mxf3RnFNy0ALcSfFkfCLBBKmJ6CzHuRvMppZ89hjsHIlXHut\nWCT16fPz37+qcuXOnQC8mpd3zKZZ/hhS7DuRYLCevXvvob7+HXJy7iJsPZtfzD+dOybewe7KFv43\n9wyGxOWzYIH4Prdy773w4YfwxRcQ/71skuZmMRGsWgVr1og8fbNZHM4aORKGDRM2eLBYmUuOGCJr\naO/3YgPCgsFqTKacdrGBmJjBWPS5mFpMaKproKpK7LoqK6G8XFh0N5aYKCbt3Fyx6xswQNjAgZCR\ncUjuCiWk4N3mxfWdC9c6F671LjxbPZgyTdhG2bCOsGIdbiVmWAyWgRa0xq53SSkhBfc6N81fNeNY\n5sC5xkn81HhSL0ol+VfJ6GL2E/7mZnjlFbEgMhrh5pvhssvEbvMw+U9FBS9WV7Py+OOJ6WULHyn2\nnYCqRqiufo6SkntJS7uUvn3vxWBIBGCPYw/TXpnGLeNv4Zm1zzOu5G0+/d9wnngCLryw9QXgD3+A\n774Trp116+DTT+Hzz8W2ddw4mDRJ3J5wAqSnd9+blRwSihLA59uDz1e030Qg7odCjfvODuybAPa7\nNRhS0CiKcLuVlLTZ7t3CRVdcLOInAwcKX3VeHuTloeblEYjph3NDAOdqJ87VTtwb3Zj7mrGPtWMf\nI8w6yore3nOCkeHmMI0fNVK7sBbnKicpv04mZ2oNls/nw7vviro1N90EJ57Y4VaAHzU2cm1hId/m\n59PPcoSz3jZvFinXR/q6+yHFvoN4PNvYuXMmWq2BQYP+i8028gfP2du8l+nzpzMlZwpLi5fyyvjt\n3DQzjokTRXwpwVclSqw++KDY6k+aBKefDqecIurqGORp0mOJSMSz3wRQ2DoReL2FgLpP/IfsZ3lY\nLAPRave5dpqbUbYW4Vq2l5ZvW3Du0OKsS4KwQqy1FHtfL7HHW7Cfko1+wggxMfT0bJOmJkJPvoL6\n3+eI1DtpHnghMQ/dSNz5nVNPPnpwavFxxzHxSO+AX30VZs8Wu/fx44/stfdDiv1hoqphysoepqLi\nX/Tr9wAZGdcd8HRrjbuG0xecjgYNQ5KH8MLYJ7j76mreXZnBk4bbOO88RLPyt98WWTGLFnXrKkDS\nPYRCDXi9ha0mJoOd+Hx7MYQz0Db0QynMIrQhA4s2j7i+I4kfm03sxFjMWTo0xcWwbRts3QpbtogV\nZVWVqAMzerSw/HzhBrR2c8pvJCJ2ry+9JE6V//KXMGsWysSTqf1fPWXzyjAPMNN/Xn/s+Yd/aroy\nEGDS+vX8Y8AAfrOv6NkRIRQSIv/JJ2318rsRKfaHSUnJX3A6VzNkyPOHfNK12dPIuU+fTGhXIR++\nZSBxxvmsGHETs16YyHEjtDz6KPTNCsNVV4mA3vvvd8g/KTk6UUIKnk0eWla24FzpxPmtk5DXj32G\nE+OkWnR5FUSSSvAFd+L17kCns2O1DiMmZhhW6zCs1uOIiRmOwZAgXtDlEsK/aRNs2CBs2zYRDxgz\nRtjYsWISOBITwM6dYrU7f77IUrrmGrjkEhGn+N7vofq5akrvLyXx9ET6P9wfY4rxZ12qMRTipA0b\nuDI9nTtzcjrzXRyY4mK44gqRlbVgwQ9jcd2AFPvDJBLxotVaDi2a39wML74ITz5JMCmey88J835k\nG99cu4qxWWPx+8WZkMceEyW2Z/8hgvmGq8WK7P33RRqk5JglULnPz75KmHu9G3M/M7ETY4mdGEvc\nxDgsQ378b01VVQKBCrze7Xg82/B4tuH1ilu9Pg6rdQRW63FYrSOx2UYSEzMUrdYoVp3bton40Lp1\nIl60datw+URjQ+PGwYgRneMCqquDN94QwldeLgKtV14pXv8ghF1h9t63l9qFtfSf15/0q9MP6Xvn\nCoc5ddMmpsbH8/cBAzr+Hg4FVYUXXhDNUO69F373ux5zFkOKfVdSXQ3/+pf48H/5S5FNMH48qqpy\n+oLTWV66nI8v/ZhT+p8CiDjc7Nniu/fg/REu/eoGNFu3iKp931v1SI5OQo4Q7vVuXGtdONc4ca1x\noQQUYsfHYh9vJ25iHPYT7OjjOiawqqoQCJThdm/B49mMx7MFt3sLfv8eLJZB2Gyj91k+NttosQsI\nBMQOYO1aWL1aZH+VlYkV/4QJwt88YcKhpzy6XMJ98dpr8O23wk15+eUiFnUYE4hrvYvC6woxphvJ\neykPY+pPr/K9kQhnb9nCAIuFZwYPPjIpljt3imByc7PYtXSz2+b7SLHvCmpqRLOShQvFVm72bPje\nFjKshDn+meMpaS7h7sl3c9fku9Du8/mvWAF//CMEAypv9r+TAYUfo1m2TORkS44agvVB3BvduDe4\nca1z4V7vJlgTxJZvwz7WLgR+nB1zrvmI5XtHIj683m243Rv3s00YDKnY7cdjt4/Bbj8Bu32MKCrX\n0tIm/qtXizx3k0mI/sSJ4nbMmLZzAT6fWJy88QYsXSo6QV1yCZxzTqfsUJWgwt5791Izv4a8l/JI\nPO2HiyDPPqHPMpl4OS8PXVf/bltaYN48eO45UZPnd7/rkQFxKfadSUuLqJf9zDPC737XXa1dcH6M\nSmcl+c/kk25LJ9WaykvnvkR2nEjAj/ZAnnOfynWOvzMz+DTmzz9Ge9ywI/VuJIeIElDwFnrxbPXg\n2ezBvdmNe5MbxaNgG20T4j7Gji3fRkxeDBpdzzrIo6oRfL5duFzrcLm+w+Vah9u9AaMxg9jY8djt\n44iNnYDNNgqtxiDSgVeubBP/7dshK0sc2KuoEMHfq66CCy44pN4Nh4Pjcwc7rtxB1u+zyLkrp3Wy\ndEcinLl5M/0tFp4fMqRrhd7nE9VrH35YVLP929969IJMin1noCjw8suiOcmMGaK8artTUz/NkuIl\nzHp/FlfnX81z657jkdMe4fKRl7f+8SqKSDfeOHs+f6i8g3V/fINpc6di/HlxKkknEG4O4y30Ctvp\nxbtDmL/Uj7mfGetxVmwj9x1WGmk9oiv2zkZVI3i9O3A61+B0rsLpXIXfvwebbTSxsZOIM44lfrUf\n/aJl8NFHItibmytKUGzaJDJtoq6f8eNFALiTUx4DlQG2nrcVyyALQ14YgkOvcPaWLYywWnl68GC0\nXfW7r6sTrQ2fegomTxa18of1/EVYjxT7JUuW8Ic//IFIJMK1117LnXfe2XbRnib2mzfDddeJIMxj\nj4nA1s/kz1/8mW/Lv+XhUx9m5uKZZMVm8cQZTzAgsS2opKqw7uEvGPCXS/hrzDwSbr+G3/5WJDNI\nOgc1rBKoCuAvFbVh/Hv8+Hb78BULU/wKlsEWYobECBsWg3WoFcsgS9cX/uoBhB1V+N/7L5p3FmH+\nqhDXIJXmU5MJn3Mq9kFnEB9/MiZTH/HHWlEhTn1H3T8bNogF0LhxQvjHjhU7gA5mm0V8EQpnFdKy\n28vvHogwY0AKf+vXr/MnWUWBL78UaaIffSRORN52GxxFpZF7nNhHIhGGDBnCZ599RlZWFieccAKv\nvfYaQ/f9UnuM2Pv9YkZ/9ll46CGYOfOwo+4RJcLZr53NwMSBPHLaIzy66lH+8c0/uHX8rcyeNJsY\nw35fiJ07Ccw4hxWxZ3Jx2cP84jQ9110nYl49JOjfI4l4IwRrggSrhQUqA21WFhBFv6oDGJINmHPN\nmHPNWAaIOjGWgRZiBsVgSDMctSv1w6auTtSJf+89+OorcZL1ggvgnHNQU5JwuzfR0rKC5ubltLR8\nta+72i9ISDiF+PhpGI373JjhsMj+WbOmLftn+3ZRCiI/X9jIkWICOJQaUfuxzunk9Rs3cco6HdO+\nGIMp09Q57z0cFgG0RYvE+09KEmmil14q6hsdZfQ4sV+5ciVz585lyZIlAMybNw+Au+66S1y0p4j9\nn/8sou9PPCFqlXSQZn8z458fz50n3snM/Jnsbd7LHz/9I6srVvPALx7g8pGXtwZwcTjgkksIBSIs\nOON/PPZaCg6HSHS44gpxiv5YJlpoK9QYItQYItwYFvcbQoTqQwTrg4TqQ4TqQgRrgwRrg6hBFUOa\nAVOmKOxlyjKJIl9ZRszZZkw54ufesEI/KMXFIuX3/ffFznX6dDj/fOGXPoArRvRN3kZz8xc4HF/Q\n0rIcszmXhITpJCScRnz8lLZTwCAqkG7bBuvXw8aN4lqbN4s6OMOHCxsyRNR9GjxYZAF9L/D5Rl0d\nv9+1i6cHDWLsCz6qn69m1KejsPQ/jAOJLS1iHKtXQ0GBqEk1eLAoRX7uuXDccT//NXsQPU7s3377\nbZYuXcpzzz0HwIIFC1i9ejWPP/64uKhGw3333df6/KlTpzL1RxoIdzmhUKeXMdjZsJOTXjqJdy56\nhyl9pwDwbfm33LHsDlxBF/ecdA8XDL0AnVYnVh333AMLF6K+9jqbrJNYsAD+9z9ROueii8RO80il\nFx8uil8RIh21qIA3hQk1fe+2MdR6X2vRYkg0oE/UY0g2CEsyYEgRZkw1YkgVt8Y0I7q4Q6vY2CuJ\nRITAffABLF4MTU0ie+acc8SW8TArcKpqGKdzDQ7HpzQ1LcPj2UJc3BSSkn5JUtKZmM25P/afxPmS\nbduEFRYK27VLVBDNzoa+fYlkZ3PPySfzWlYWi5xORsXHQ1wclR/qKX/Jw+jF/TH3s7b1QAiFwOMR\n6aBNTVBbK7LmSkrE5FZYKH4eMUK4YqdOFZlEP3OX0ZMoKCigoKCg9ee5c+f2LLF/5513WLJkyQHF\nvkes7Lt6xXfPAAAgAElEQVSIT3d/yuXvXU7BVQUMTRGuK1VVWVK8hLnL5+IMOJk9cTaXjrgUi8Ei\n6m3MmiWaN9x2GxFVy4oV8Oab8M47QvjPO098b/Pzj4yrR1VUQnUh/OUBmosDNBQGcO4J4q8KEqoP\nQlMQnSuEwRNCqyj4jAa8egNunQGPzoBba8Ct0+PRGvBo9Xj1BvwGPT6jgaDZQNisR2/RtpbXj4kR\nZrO17zESHy9s/3LzcXEdrqd1bOB0imJ7H3wgUiXT08UfydlnC7Hrgj+UUMiBw/EpjY0f0dT0CQZD\nCsnJ55CUdA6xseMPWG4EEK7T0lKqysu5LBRCGwjw+ooVpFRUiEY8LS3Q0kJ53VSqPFPJN9+FUe9q\na2gT7dOQkCDeb1qaqCw6YIAoUjZo0DFdArzHrexXrVrFnDlzWt04Dz30EFqttjVIe6yLPcDLG19m\n7vK5rJy1knRbW4VLVVX5vORzHl31KN9Vfce1x1/LrPxZ9G/RCj+izSaygvalf0UiIka2aJFYsLW0\niCKC0RprHVm0RDwRvEVefLt81G7wUbfBh6/ED7V+zK4APo2eWtVEo8aE32pEiTehJhnRpxgxphkw\npxuxpBuISdZhtWmIiWnrixJtfBXVm2jTKkVp35NkX+8RvF5hbndbo61933uam4XXy+GAxkbx/Gj/\nlv37iqSlie9/enpbmfmUlGMsDrJrlwgufvihWMlPmgRnnSWsX78jOhRVVXC51tDQ8AGNjYsJhepJ\nSjqXlJTziY//hTjl+yN80tjIzMJCbsrM5E99+/5kauXeuXupf6ee0ctHY0iQhQShB4p9OBxmyJAh\nfP7552RmZjJu3LieGaDtYuYWzGVx0WK+uPIL4sw/9JMWNhTy1HdPsXDLQkakjuDq4Zdz4fu7sDz3\nEjz++H71k9vYvVss4j79FJYvFwuaadPEjnXKlB8v36FGVLw7vbg3uHFvdlO/xoN7qwdNc4gGk4U9\nIQv1BgvaPhasg8ykHGcme4yZvoO09O0rXrMnraSDQSH6DQ1tPUWifUVqasSh5+pq4UloaRHi36dP\nm+XktFnfviJO91PvT1VVApEAnqAHT8iDN+RtZ76QD1/Yhz/sxxcSt4FIgEA4QCASIBgJtt6GIiFC\nSohQJERYCbeziBohokSIqBEUVUFVVRRVwRCKMKqwhUlbWpi0tRmLP8K3I+L5dlQC3w2NJ2AxoNVo\n0Wg06DQ69Fp9OzPoDBh1xlYz6UyY9CbMejMWvUWYwUKMIQarwYrVaMVmtGE32ok1xbaaTnvw1bLP\nV0xDwyLq69/B6y0kOfkcUlIuJCFhOlqtEWc4zOzdu1nW1MSrQ4dy8kFqzaiqSvEfivFs9TDyk5FH\npFZ/T6fHiT3AJ5980pp6OWvWLO6+++62i/YSsVdVlZs/uZmNNRtZevlSrMYfL1AVCAdYXLiYhVsW\n8kXJF1wfGslfXtqNadQYLM+88JO5maGQSIz48ksRi1q1SpRFmXh8hNGxHoa4m7Bvb8K9yUPAaqTM\nZGNds40Kg5XUcVYGnWRmzAkaRo064Lmxo5ZgJEhNi4OiMge7K5vZW9NMWV0z1U0t1La00OhpodnX\nQljfgiXOhdHuRBfjQmN0E9G7COLGG3aj0+pahTAqijGGGCyGNrGMimdUSE06U6uwGnVGDFohugad\nAYPWgEFnaCfKWo0WnUaHTqsjpryGxOVrSSxYRezqjXjzBtAybSKOX0zCO3wwKqCioqoqKmJSUFSl\ndbIIRUKttyElRDASbGf+sJ9AOIA/4m+dsDwhT+uE5g66cQVcOANOnAEnrqCLGEMMCeYEEi2JJFoS\nSY5JJjkmmRRrCqkxqaTZ0siwZZBpzyTDnoEm0kB9/TvU1b2J17sTv/1M/uk+gb5Jp/DwwMGH3Bxc\njahsPX8rxlQjg587QiUTejA9UuwPeNFeIvYAiqowa/EsKp2VLL5kMWb9gQNlzoCTDwo/YOm29zn+\n2Q+4Yl2Yz2ZNxXL975icexKJlh8eLQ81hnB85qB2qYO1n4VY12BlszmRzW4r/ogWgwEGD9Nyyini\n1Ht+fs9aqR8MRVVw+Bw0eBto8DbQ6GsUt95GmvxN4tbXRKNP3EYtGAkSb44nwZxAgiWBeHM88eZ4\n4kxxxJnjxK0pDqMai78lFmeDHUetnYZKOzWldsp329m7y0qs1cDAgWIiHTSoLbFk0KBOKjDp8YjZ\neulSYS0t4mDfjBlw2mndXlNJURVcARcOvwOHz0GTr6n1s6jz1lHnqaPWXUuNu4YqVxXV7mpiTbFk\nx2aTYu9DmaInWdvADFsZ/S0+RvW9jJzMa7DZDl5ADSDijrDhpA2k/iaVnDuPYNXLHogU+x5OWAlz\n6TuX4g66eeeid0RQ9hD/37Yl80m+416aw26umxGkflAm4zLHMYxhZG/PJvXTVGI2xRA/JYG67AQ+\nro7nleVWhgzVtMbpHA6REr1mjciQi4sT/Z2jqdGjRgmXxpGYAFRVpSXQQqO3sZ1wR63eW9/u5wZv\nAw6fgzhzHEmWJJJikkiOSW69n2RJar0fXXUmWhJJMCdgM9o6vBKMJpbs3i3c5VErKhKPJSW1azbF\n0KHiIGZ6+gF+n4oi0hOXLoVly8QHM2aMEPfTTxcfyFEcaFBUhT0t1Ty06zverNjGZKOXfppm9jr2\nUNSwjXJnJSkm6Ge3clzaCUzo92vyMyeRl5yHUffjfv5AZYB149b9ZC2d3oIU+6OAUCTElYuupN5T\nz/sXv/+TLp0fRVFQn30W9c/3Upk9hgVxg9mYXkPZoDKKTMW4I36UxoHYQwMY2TeHk/OzGZ6dRao1\nlTRrGomWROLN8Zj0JhRFiFQ0LXrDBqE7Xq84DzNihLDjjhMp0gkJ7Yeiqir+sF9s9YOu1u1+S6CF\nZn9zqzn8jtYVdqO3kUZfI43eRhx+Bxa9haSYJFJiUoRw73/fkkSKVdyPPpZgSUCv7XlFqSIRUVCy\nsFAc19i5U/SO37FDuNiGDWtLNR+TVsGI2k+JW/OZaLwdHy9y308/XQRc7Iff2KMn4YtEeK66mgfL\nyjg9IYH7+/Uj53tpn6FIiOKmIr7b+xbflb3Htvod7PVZqPIGGJoynDEZYxiXNY6JfSYyNGVo69mU\n5oJmtl+8nePXHo85u2uaufd0pNgfJUSUCLMWz2KPYw8fXvohsabYg/6fQFWA2gW11Lxcg8bTzKC0\nN4ktepddZ97K3bW38c2WWC660sGUc3ejxu+m3FlOubOcKldV6/Y6uv3e3/ds0Vtag3Y6rQ4lrMXr\n1eDxKni8Ebz+CP5QEI0+iMEcQGP0oer8BFUPBp0Bq9HaGsSzm+yt7pEESwIJZuEy2X+V3boKj0n6\nydXbsURDURO1bxSgfPY5KZs/x+xu4EvNKawwnUrtyOmkjsttPWw6fLgoQtmZhEIhnE4nLpcLt9vd\nah6PB6/Xi8/nw+fz4ff7CQQCBINBQqEQ4XCYcDiMooggsaqqaDQatFotOp0Og8GAwWDAbDZjNpux\nWCzYbDYMVisFoRBv+XyMTk/ngdGjmXCIdUBCIQd1df9jT/nTFDY7qGIMhR4TqyvX0+hrZFL2JE7u\nezLTcqeRPD8Zx/sORi8f3SsDtlLsjyIUVeGWT25hRdkKPrnsEzLtP6ywpyoqjs8dVP23iuaCZlIu\nSCHtqjQs4+L43/80/O/+3dzWch/Twp+iv/uPGG6+8aDO4/1X5J6QB1/IR0gJEQgHiKiR1uwPnVbX\nGiw0aE001Bko22OiZJeF3TvNFO+wsnO7HoOhzW2Rl9fmysjNPabTnH8alwu+/lpEy7/4Qvh5Jk2C\nU08VObKjRqFqtFRVtXUa3LRJ3BYXi3hAfr7oOHj88eLWag3R1NREQ0MDTU1NNDY20tTU1M4cDgfN\nzc2t1tLSQktLC6FQCLvdTmxsLHa7HZvNhtVqxWq1EhMTg8ViwWKxYDabMZlMGI1GjEYjer0enU6H\nVqtFu8+VpKoqiqIQiUQIhUKEQiECgQB+v58ap5ON9fXsbmoiPhgkwefD19JCfX09Go2GtLQ0MjMz\nyczMJDs7m9zcXPr168fAgQPp378/pv1mOVVVcblWU1X1NA0Ni0hKOgdD/CVsdHhYXrqcL0q+oMZd\nw5iqMUwzT2PmX2aSZutdhaWk2B9lqKrK37/5O09/9zQfX/Yxw1JEtb2IL0Ltq7VUPFqB1qwl88ZM\nUi9NRTXrefFFUX11yBD405/Ezl+zfRvMmSNyMG++GX7/+x/6Xbpk/CLFcX/XRdSVUVcnSqUMHizG\nuv9J+QOlOB51uFziKH5BgbCtW0VhsGnT4Be/EFUiv1fW1OfzUV9fT11dHXV1da33q6vrKS6up7S0\ngdraelpaGvD7GwAPJlMCsbFJpKYmkZOTRHp6EgkJCSQmJpKQkNBq8fHxxMfHExcXR2xsLDExMV2W\nuRJQFD5obOTF6mrWuFxck57O77KyyN3PXaOqKh6Ph9raWqqqqqisrKS8vJy9e/dSUlJCcXExZWVl\n9OnTh+HDhzNixAhGjRrF2LFjyc3NJRxuorr6Raqq/ovRmEafPn8gOfkCqt11LN28lIXPLmTd4HXk\npedxft75XDj8Qvon9O+S99uTkGJ/lDJ/03xmL5vN/FPnk/dRHhWPVxA7Ppbs2dnEnRQHaHjjDVFR\nITcXHnjgJxrb79wpeiIuWiTSbW6+WSyzuwGvt+3kelFR20n5oiLx7/tnskRvBw0Sp2V7NPX1QtxX\nrBDFxHbsgLFjCU6aRP2wYZRmZFDd3ExtbW07q6ura70NBAKkpqaSmppKSkoKKSkp7e6npKSQnJxM\ncnIyiYkp1NbGsWGDtrXr4IYNIvAb7TY4bpzYDRyJnvZhVaWguZk36+p4r6GBEVYrMzMy+FVyMjGH\nuZULBoPs3r2brVu3smXLFjZu3Mi6desIBAKMHz+eyZMnc+KJE+nfv46Ghv/i8+0mK+sWMjOvx/lZ\nhK03bMW72MuiskW8u+NdcuJyuGLkFVwy4hJSrcdgLjFS7I9aws4w39z3DS3PtRCaEmLGv2ZgHSrc\nMd99B7fcIg4Q/eMfYrF4UKqq4OmnReOVESNE2ebzzut8h/BhoKriEFQ0k6WoqO1+cbGIT0aFf9Cg\ntjTHAQOOfOxSjURoXrMG97JlaFauxLZpE+bmZvakprLRbudrjYYCr5ey2loURSE9PZ20tLTW2+9b\nVODj4uI6tNqORMS8vnatSOBZs0bMOXl5QvgnTBA2eHDn7KAaQiE+czj4sLGRJU1N9DOb+U1qKhem\npND3MGvtHApVVVWsWrWKr7/+mq+++oqioiImTZrESScNZdSoYuLiviEjYybB/54LtckMXTCUsBLm\ny5Ivmb95PosLF3NS35O4fsz1nDHwjEM6EHa0IMX+KEMJKFQ9XUXpg6Uknp6I8Q9GLlx7IXnJecyb\n/AwP3GPngw+E2+bqqw8jC8/vF6v8558XjuGLLhKlGCZO7JEpfYoiTrzun9q4a5eYBHbvFqv+6AQw\ncKCYAKK3P9drFQwGqaqqoqKiotUai4uxbttGWmkpAxoaGO3z4dJq2Wq3sycjg7qBAwkPHUp6Vhbp\n6elkZGSQkZFBWloadru9Ww/6+P1ixR8tO79qlfAwRTsOTpokJoJD6SZYGQiw0unkm5YWvmxupsTn\n46T4eM5KSuKXiYlkd6HAH4impiYKCgpYunQpH374ITExJqZNS2L8uEIGVU+l/4g/0+e8ti2vO+jm\nzW1v8sy6Z6h2VXPD2Bv47ZjfkhTTNR23jiRS7I8SVFWl8YNGim8rxjrUSr8H+2EbKb6FnqCXc5+6\nlYK9y7lAfYNn5+Z3TlOgPXtEs+iFC4WP5fzzxWr/xBN7ZI/N76MobXnuxcViEoje371bBIMHDBDW\nvz+kp3uxWKqBPXg8O6mo2EtpaSnl5eWUl5cTqK/nFwkJTLZaOV5RyHM6ifP5aO7fn0B+PobJk4mf\nMQPzEa4z05lUV4tOg1HbuFGs9idNEh/72EkK/iQvO7xetno8bHC72eB241cUJsbGMjE2lmnx8Yy1\n2zH0sMWBqqps2LCBd955hzfeeI2Q38HUyT4uueI0pkx9CKu1fYPwDdUbeGzNYyzauYiLj7uYOybe\n0a6h0NGGFPujAG+Rl+JbivGX+Rn4n4EkTm87GNLUBDfcIGJ8F93/P57ccyt/mvwnbp1wa1v9+46i\nquIC770nVv2lpSJTJFpRrW/fzrlOFxMOhykrK6O4uJji4t1s21bLlm1+Sko01NdZCYf7YjAOQYn0\nJSPo5oSYtYy1bOR47VaGB7aT5KulLncoTSNH4powiuaxo3ENGoRGr0cLaDUa9PuZYZ8ZtVqM+92a\ntFph++6btdqua6F3iKiqildRaAyFqAuFqA0GqQ4GKfUE2FjlZ2eznyr8eM1B9A1m0gMxHGezMr2f\njXOG2hgQc3S1YFRVlfXr1/Pva/7Jh3vep9/gMJdeOoZZs54iIWF0u+fWuGt4cu2TPLX2Kc4YdAZ/\nmvyn1oq0RxNS7HswSkih/OFyKv5VQc7dOWTdkoXW0Cbgn30mGuf8+teiWZbZDLubdnP1+1ejQcNL\n577UNSuRigpxenPpUpFNYjaL2t8TJoh9/8iR3eLrV1WVpnCYzZWVrN26lW07d7K7qIiq3btpKCnB\nU1mJPjERbVYWalYWSmoq/WNiGKmqHOfzMbSujiElJfQvKSFgMlPcN49dSUPZbhvBFt1otnmG4aqx\n4K024G/QY04OY0kPEZMewpIewpwawpQWwpAaQpccQJsUIqJXCKkqQUUhoCgEVZXAvvuB/e7r9xP+\n/SeC/ScGo1bbOnkYvjexRCeb6F+Hus8iqkpEVQnts4Ci4NtnnkgEVySCKxzGEQ6j12hINBhIMxhI\nMRrJNBrpYzLRx2Sin9lMf4uFbKOJ0j1avv5aZIuuWCHiz5MmiWJ6U6aIxKJD/fjD4bbqpM3N4r7T\nKczlEpVMPR6xsfT5hOspGBQHz8JhsXsDEWfQ64XtX/Y6Lq6tvHW0qmmfPm3ZxiFHiG+Hfcue3+3k\nuY//QVHRXi65ZBj/93/Pk53dPqOhxd/Ck2uf5N+r/s0vB/2SOVPnkBuf2/E/3COEFPseimu9i53X\n7MSUZWLwU4Mx923zeUYiImvypZfgxRdFCZT9iSgR/rP6Pzy44kHumnwXt46/FYOui8q8qqqIlH71\nVVvkr6hIOMZHjhSnfqJpNP36dThiqqgqpX4/hT4fG6qqWLtpE0XbtlFZWIizuBi1tBSNohDbvz9p\nubmMyMhgdFwcwy0WBoXDJFdXYysrw1xSgra8HE1GRvuaBcOHi+OrSQf20YZCwkVUVgbl5WL+Ky+H\nykpxv7JSpJImJIhGZhkZbSXUo2WVk5NFGeWkJJXYRBWdRSGoiknAH50QvjdJREU7qChEVJXwvp+j\nwr7/NyM6AeiiO4x9E4Vln9l0Omw6HXa9ngS9HtNhul2qq0Ul1YIC4frZu1d81P37i/dttwvRdjjE\nTjRqDocQ8ri4NlGOixNxltjYtvLzVqsQbovlx8tgazRC9MNh8bkEAmJy8HjE5BEtb11bK8ZaWSle\nOzdXfOQ5ITeJ31bxmxWDaGz+joceuomPPlrHuecO5b77XmTgwB+K/j9X/pP/rv0vV4++mntOuod4\n84GrcPYEpNj3MNSwStm8Mioeq2DgvwaSellqu+1xfb2Il0Yiwp1+oIOGxU3F3PTRTdS4a3jqzKc4\nMefEI/AOEEuwHTvEqZ8dO9pSaPbuFd/UnJy2ZVZKiviWx8eLb2D0m2004tVo2BUIsMvrZXNpKXt2\n7qRl924slZVYqquJ8fvpk5pKv4QEcmNjyTEaSYlEMDY3o6mpEYqSnCy6G0XrEvfr19awon//Lt2B\nRCI/LJ9cVydEp65OfJb19UKIGhuFWEUbrUSFLyp+UeGz2cSvx2ptE7+oABqNbatbnU4IYVQMo1+Z\nqChGmzdFLRAQq+ZojwCfT4hl1PbvFRBdeUdX5E6nGE/0Y4yLE6/v8bSJbGamSPIaO1as/vv1E8+P\njT3ycX9FEWPas0ek9m7frvLtSy52+K3ExOuYMAFGjqxmy5bZLFv2OuedN5oHHlhATs6wdq9T667l\nL1/+hQ8KP+D+afczM39mj87ekWLfg/Dv9bP9ku3obDryXsrD1Ke9EG3eLJoJXXKJ6HV+KDFSVVV5\nY9sb/PHTPzIpexLzTplHv4RuCiCqqvj2l5cL9autFWrncKA6HLhaWmhqbqalqQl3YyOK04nB6yXi\n86HVajHa7VgTEohLTMSeno41NRWN3d6+FVW0K0l0IjkKAslR/P62RisOR1sDlqhLw+VqW7F6PO3F\nOSrYUSGPujiijV80mjaLTgYGQ5uZTGLSMJnaVtHRScVqbesAZre3TUBxcULcY2MPfPLZ7xcbvhUr\nhK1cCVlZbW6fKVO6P+zj3uJm4y82kbpsHGu3GygoEIeZPZ4Q8fGLKCt7mauvDvPQQwuJi2vfbHxD\n9QZu/uRmwkqYZ89+lpFpI7vnTRwEKfY9hIb3Gyi8vpCc/8uhz2190GjbB7s++ABmzhR9SS6++Oe/\nvjfk5ZFvH+Hfq//NlaOu5M4T72zXBas7KPf7WdLYyHtr1vDNN98Q2rIF7fbtqG43o8aOZdqECUwY\nN46xY8eS0QlN3SU9g3BYLFyi4r9ihZhkJk8WduKJopjekS6dUXRTERq9hkGPDWp9rLBQfPdef72F\nLVsiaDRvcv31LfzrX3eg17cNUFEVXlj/An/+4s/MOn4W951830FLkh9ppNh3M2pYZc9de6h/u55h\nrw8jdsIPj4M+9hjMmwfvvitioB2hxl3DvK/n8eqmV5mZP5PbJ97+ozV2ugJFVfna4eCFr79m2Zdf\n0rh2LWzZQmJyMlMmT+aMk09m4sSJDBkypLW2iuTYR1VFOmw06PvNN2LjN368yPefOFHcP0hzqg4T\nagixZugaRheMxjr8h/Wi9u6FBx5Yzfz5iWi1Pm65xc+9945rV1qq1l3LTR/fRGFDIfPPn09+Rn7X\nDvpnIMW+Gwk1htj+m+2gg2GvDcOQ2D6Iqqpw773wxhsi+SU3t/OuXems5O/f/J0FmxdwXt55zJ44\nm+Gpww/+H38mEVXlra1b+e+iRawpKCC8bh3xycmcPHUqF06fztSTTyY9vXt3GJKeR0MDfPutcPl8\n+60o+ZCT05bwNW6ciAEYOjnvoOLfFTQta2Lkxz/tigmFQtx006O8/PIQ9PrJ/N//6bj99vjWsy2q\nqrJwy0JuX3o7t024jTsn39l5adAdQIp9N+HZ6mHLOVtI+XUK/R/qj0bX3m0TiYjaZGvWwCefdF3r\nv0ZvI0999xRPrn2SvOQ8bhx7I+flndehUsLBYJD5n33GU2+/zaYvvgCnk+EnncSlZ57JpWecQZ8+\nfTrxHUh6A+GwOOqxcmVbyYeSkn31/scIGz1auH86clhXCSisGbKGvPl5xE858FaiqqqYiy66mY0b\nL0Wr/RV33WXmttt0rfWGylvKufTdS4kxxDD//PndXnNHin030PRpEzsu28HAfw0k7fIfptNEIjBr\nltg2Ll58ZAp9BSNBFu1cxFPfPcW2um1cfNzFXDHyCsZmjj2kwzJOp5NFH33EE2+8wfovvkDbpw8T\nTj+dm3/1Ky448UTpljmCRBud79/YPNq4PKyEW/vOatCIktRaHSbdvkbiBgt2ox2b0dajM0tAZAht\n3ChW/dGGOkVFIsnquOPEyn/oUGEDB/6gkOhPUvNyDdUvVDP6q9EH/dtXVZX58//FLbe8QGLiPwgG\npzNvnonLLhPB8N0lYW7/4D4+a3iZl079iItOGn3A1+tKpNgfYapfrGbP3XsY/tZw4k/64cohKvRl\nZSIw1Cl9Sn8mexx7WLB5Aa9uehWAXw/7NRcMvYAxmWPabUcdDgfvv/8+r775Jl9/9RXqyJEMP+00\n/njRRVw8dCi6o+hEZU9EVVXcQTd1nrpWa2256Gto1zO3xS+6fUWbfGs12tbm5ma9GZNeNDHXaXXo\nNLpWEVNUhbASbm0m7g15cQVceEIebEYbSRbRyjHDnkGWPYs+sX3oF9+P/gn9GZQ06Ef7GncngYAo\n+LZli9gJRLt/lZaKDKCBA8Vk0LevsKystnMQNtu+NNWIytoRaxnwyACSzjh4TZxAADZsqODGG0/H\n5UohEHgRvz8bVTWg04lso7QJn/P7C8YwtF/35eNLsT9CqKrIn69+rpqRH48kJi/mB89RFJFx051C\nvz+qqrKxZiNv73ibd3e8i8PnYHrOdBJLE9lZsJNvvl5F7NixuKZM4brzz+cPQ4b8oI2c5IcoqkK9\np761wXaVq4pqVzXV7mpq3DWtVuupBWhtEZliTWnXgjHaOzfa3SveHN/a/aujHb0UVcEZcNLobaTe\nW0+1S4yz3FlOSXMJu5t2s6tpFzGGGIalDCM/PZ8xGWM4IesEBiQM6HGlE4JBIfi7dgn3T2mpsKoq\ncf6hulq4ihITRRbvhFA902tKefXEMegNGnS6tpRWv7/tvEFDg9hhpKVB374RAoH7KCp6jKlTb+ar\nr+7lzjuN/PGPmh7RlEeK/RFAVVX23LmHpo+bGLlsJKbMHx7kUVW49VZRhXDJku4X+v1RFIXly5fz\n5PNP8vEHH2MakEzLSSehmzqdCTENXJmWytTsCQxMHNjjvuRHElVVafQ1UuWq+kmrdldT664lzhxH\npj2TTHsmGbYMMuwZ4taWQbotnXRbOmm2NGzGQyg52U2oqkqlq5KtdVvZUL2BddXrWF25mlAkxJS+\nU5iWO40ZA2ccNY1B/H5xDMThALdbxXf1eoIX5BCckEI43HY2wWgUZwzsdnHQOjGx/cGwzz//nEsv\nvYizzurH5s0vYrEMZuFCM9nZ3ffeQIp9l6MqKkU3FuHZ5GHExyN+kHET5f774Z13xJHzrk4xO1TK\ny8t5+eWXeemll7DZbEy9+GLWnnACjbGx3Jndh2FKJasrvuXb8m9ZVbEKZ8DJ6PTRjE4fzfCU4QxP\nHXu+S+MAAB7mSURBVE5ecl6P2+r/XLwhL7XuWuo8de1W3jWemtYVebWrmlpPLTajrVXAM+2Zre6P\n6GNZsVmk29KP6V66pc2lfFX6FZ+XfM6S4iXEmmI5N+9cfj3014zLGnfULAgaP2yk5C8ljNkw5meP\nubS0lF/96nxycjQkJ5/Le+/dwUcfmRk/vvtiVz1K7OfMmcPzzz9PSkoKAA899BAzZsxof9GjSOxV\nRaXo+iK8u7yM/GgkOtuP7+Wefhr++U+RY9zdWYiRSIQlS5bwzDPP8PXXX3PxxRdzymWX8YrdzkaP\nhzm5uVyZno7+R/746z31bKzZyMaajWxv2M62um0UNhai1WgZmDiQ3PhccuJyyI7Nbl3BptnSSLIk\nkWBJQK/tutOu0aClM+Bs9W87/A6a/c2tfu9GX2OrT7zeU0+9t556Tz1hJUyaLY1Ua2rbqtua1voe\noqvydFs6FsMRaP10FKGoChtrNrJo5yLe2v4W3pCXy0deztWjrmZQ0qCDv0A3oqoq6/LX0e+BfiSd\n9fPr2ft8Pq644gpqa0u54oqhnHXW9WRmTu6CkR4aPUrs586di91u5/bbb//pix4lYq8qKoXXFeIr\n9h1Q6JcsEZUrv/5alGvpLpqamnjxxRd58sknSUlJ4YYbbmD6r37FP+vrWVhXx105Ofw+Kwvzz8yq\nibo2ipuKKW0upayljHJneat/us5TR6O3kWZ/MzGGGGJNscSaYrEaRXDRordg1Bkx6ozotXq0Gi1a\njRYVFVVVUVEJRULtgoyBSABfyIc35MUT8uAOunEH3WjQEGeOI84U1+rjjjfHt/q+E82JpFiFTzw5\nJpmUmBRSrCnYjd3bZORYYkvtFl7e9DILNi8gLzmPW8bdwrl553bpRN8R6t6qo+KRCvJX5h/W34Ci\nKNx5550sXryYjz/+mAHd+CXvcWJvs9mYPXv2T1/0KBB7VVUpuqEI784Dr+i3bhUtA997TxwR7w6K\niop49NFHef311znrrLO4+eabOeGEE3iltpa79uzhvORk7s/NJeVQ89YOk4gSwR10i5V34P/bu/ew\nqKr1D+DfAQaRFERQ5KbITQRxAEEgUzGdEhVC63gtyWOmgqaV/vLkU5kpYv68/k5kFprmBcU0KhX1\nFKgJSIkXdBAoQbkjJHJnYGb9/qA43oBhZs/sGXg/z8PzMMOetd/1LHzZrr32ux60Lhmsa6pDk7wJ\njc2NkDEZ5EwOmVwGgUAAAQQQCAQQ6gkh1BdCqCdsXXliLDRu/WPRu0fLUsKuPHWia/5e6rv90nYU\nVBXgbf+38eaIN2EsfHLhAp+YjOFX91/h/JkzzMZ3cmuzh+zevRtisRh2PE7ca12y37NnD0xNTeHj\n44PNmzejz2MT2AKBAB999FHr68DAQAQGBnIZhkr+vhlbmVQJ0U8iGPR++hVLaWnLI+Dr1wNz5mg4\nSAApKSmIiopCSkoKFi5ciIiICAwYMAC36uqwMCsLdXI5drq4YISmN3El3c5vRb9hwy8bkJyfjHf8\n30HEyAitSvole0tQsrcEnj/zt0ZeGUlJSUhKSmp9/fHHH2s22YvFYpSUlDzx/vr16+Hv7986X//B\nBx+guLgYMTExj55Uy6/s70TeQdnBMnie84TQ/Ok3Y5uaWjZ6Gj0aWLdOc7ExxnDmzBlERkbi7t27\nWLFiBebNmwdjY2PIGMOW/HxszM/HR4MGIdzGhtbJE43KKM3Ax+c+xqXCS1g3bh1eHf6qVjzYJW+S\nI805DW5H3GAyUgNPOKqJVl3ZPywvLw/BwcHIyMh49KRanOyLvyrGnQ134HXB66nLK//27ruARAL8\n+KNmKvsxxnDy5EmsXbsWNTU1eP/99zFjxgwY/FX+N6euDq/dugVjPT3EDBmCwT3pJiPhT0p+Clac\nXYG6pjrsnLwTfrZ+HX9IzfK35KP612q4HXLr+GAtpVLuZBwrKipq/X7Lli1s1qxZTxyjhtNyovxk\nObtoeZHVZte2e1xsLGODBzNWUaH+mORyOTt9+jTz9fVlHh4eLC4ujslkskd+vruoiFn88gvbkZ/P\nZHK5+oMiRAFyuZwduH6ADfjfASz8RDirrK/kNZ6myiZ2wewCq79bz2scqlAld3J+ZT937lxcvXoV\nAoEAgwcPxhdffAHLx7Zi0sYr++rL1bg+8TqGfT8MpgGmbR6XldVSr/vMGcBLzZVPk5OTsWrVKpSV\nlWHt2rV45ZVXHqlPU93cjAXZ2bhZW4tDbm4Ypk1PcRHyl/v19/Hef95Dwu8J2PPSHox3GM9bLL8v\n/x0CQwEcP+Vx2ZwKtOrKXhE8nbZNDfkNLNkmmZV9W9b+cQ2MeXkxtnOneuPJzMxkoaGhzM7Oju3e\nvZs1NTU9ccyNmho25NIltuDWLVbX3KzegAjhQEJOArPZbMOWJyxn9U38XF3X/VHHfjH/hTVX6+a/\nGVVyZ7cvYyirk+FG6A3YLLFBv2n92j32X/9q2XfzzTfVE0t5eTmWLFmC0aNH49lnn0V2djbmzZvX\nOi//t8NlZQi8ehWrBg7EriFD0FMbinYQ0oEXnV7E9cXXUVBVgFG7RyH3fq7GY+jp0BOmY01R8vWT\nC0y6um6d7BljyJqfBWNXY9i91/7a2ZMnW0ohfPllS1U9LjU1NWH79u0YOnQoBAIBMjMzsXLlShg9\nVpBMzhg+zM3Fe7dv46xIhNf5flSXkE7q27MvjrxyBGGiMPjH+ONE9gmNx2D3th0KdhSAybVrKlnd\ntPORNw0p2FyA+tv18DrX/pN15eXAG28AsbEtBZO49PPPP+Ott96CtbU1zp8/j6FDhz71uDqZDHNv\n3UJxYyMueXvDUs0PSBGiLgKBAG/5vQUfax9Mj5uOZX7LsOLZFRp7wtlklAn0jPRQmVip0kNWuqZb\nF0Krv10PPSO9dpdYAi2bg9vattS+4UpJSQneeecdJCcnY+vWrQgNDW3zl728qQnBGRlw6tkTXw0Z\ngh60iQjpIgqqCjDl4BSMtBmJzyZ9BqE+x3sUtqHw80JU/lQJ96Pcb+OpTqrkzm6dNXo69Oww0cfF\nAdeutVS05IJcLkd0dDQ8PDwwaNAgSCQSTJ06tc1En1tfj1Hp6RjXpw/2ubpSoiddiq2JLS7Mu4Ci\n6iIEHwpGrbRWI+e1nGOJ+z/dR2NRo0bOpw269ZV9R8rKgOHDgfj4lrIIqsrMzMQbb7wBANi1axfc\n3du/qrhZW4sXr19vLWBGSFfVLG/Ggh8WIKciBydmn4CpUdvLn7mSvSgbhjaGsP/AXu3n4gpd2avJ\nsmVAWJjqib6pqQnr1q3DmDFjMGfOHFy4cKHDRJ9eXY3x165hk4MDJXrS5RnoGSAmJAZeVl54ft/z\nKK8rV/s5rRdbo3hXMViz9l94coGSfRsSEoC0NOChem1KuXHjBgICAvDLL78gPT0d4eHhHW7cnVpV\nhaDr1/G5szNmWT65mTkhXZGeQA87Ju6A2EEM8Tdi3K+/r9bz9RL1Qg+7Hqg4UaHW82gLSvZPUVcH\nhIcD0dGAsZKF+2QyGTZt2oRx48Zh0aJFOHXqlEKlUdOqqhCSkYE9rq6Y2q/9df+EdDUCgQAbxm9o\n2Q7xwERUNVap9XxWC6xQvLtYrefQFjRn/xSrVrVsGH7woHKfz8vLQ1hYGBhj2LdvH+zt7RX63JXq\naky8fh1fDRmCYAsL5U5OSBfAGMPiE4shuSfB6VdPq233MFmNDCl2KRh5ayQMLbV/OTPN2XPo5k1g\n925gyxblPn/o0CH4+vpi8uTJSExMVDjR36ytRVBGBqJdXCjRk25PIBAgenI07EztMOfYHMjkMrWc\nR7+XPixCLVC6v1Qt7WsTurJ/CGOAWAy89BKwdGnnPltTU4OlS5ciOTkZhw4dgre3t8KfvdPQgOeu\nXEGUgwPm0Bw9Ia0amxsx8cBEeA7wxNYXt6rlHJXnKpETkQOfDB+t37qSruw58t13QEkJsHhx5z6X\nkZEBHx8fAMDly5c7lejLm5ow8fp1vGtnR4mekMf0MOiBY9OP4cwfZ7A9dbtazmE6xhSyehlqLteo\npX1tQcn+Lw0NLRuSbN8OGChYRIIxhpiYGDz//PNYvXo19uzZg169eil8zjqZDFMyMhBibo7ltrZK\nRk5I12bW0wwnZ5/ExosbcfaPs5y3LxAIMOD1ASje07Vv1NI0zl/WrwcuXwaOHVPs+Pr6ekRERODS\npUuIi4uDm1vndr+RM4bpEgmM9PTwjaur1v/3kRC+ncs7hxlHZyBlfgoGmw3mtO2GOw34zfs3PFv4\nLPSMtPcamKZxVFRS0nJDVtHaN7m5uRg1ahTq6+uRlpbW6UQPAB/k5qJEKkXMkCGU6AlRwFj7sVg9\nejVCD4dyXlbBaJAReol6dek195TsAaxd2/KkrINDx8f+5z//gb+/P8LCwnDw4EE8o8TuUPtKShBb\nVobj7u5U64aQTlgycgk8B3hi8YlO3lhTgOVsS5QdKuO8XW3R7adxsrOBZ59t2W7Q3Lzt4xhj2LZt\nGz799FPExsZi7NixSp0vraoKkzMycM7TE260jSAhnVbXVAefXT5Y9dwqzBXN5azdpvtNSLVPRcDd\nABiYamf1d1Vyp3b2SINWr265Mdteom9sbMSiRYtw5coVpKamYtCgQUqdq0wqxSs3b2KXiwslekKU\nZCw0xuFXDuP5fc/D39YfLuYunLQrNBOiT2AflH9XjgFhXW9joG49h3DpEpCS0lLwrC337t3DhAkT\nUFVVhYsXLyqd6JsZwwyJBK9ZWlIZBEJU5GHpgbWBazHj6Aw0NnNXprgrT+V0+2T/ySdt17/JzMyE\nv78/xowZg7i4OKXm5//2/u3b6KGnh7WDuV1FQEh3tchnEQaZDsKac2s4a9M82BxVqVWQlkk5a1Nb\ndPs5+7YkJiZi5syZ2LRpE+bOVW1e8GRFBRZmZ+OKjw8shJrZiYeQ7qC0phSinSLEz4yHny0Hm04A\nyHw1EyYBJrCJ0L7S4rT0kmP79+/HjBkzEBsbq3KiL2xsxD+zsnBg6FBK9IRwzLKXJXYE7cDr8a+j\nobmBkzb7z+6P0oNdr1aO0sk+Li4O7u7u0NfXR3p6+iM/27BhA5ydneHq6oozZ86oHKSmMMYQFRWF\n1atXIzExEePGjVOpPRljmJOZiQhra4zp04ejKAkhD5vuPh0e/T3wQeIHnLRnJjZD3a06NBZ0rS0L\nlU72Hh4eOH78OMaMGfPI+xKJBIcPH4ZEIkFCQgLCw8Mhl8tVDlTd5HI5li9fjoMHDyIlJaXDnaQU\nsfHuXQgAvK/kTV1CiGI+m/QZvrn2DdKL0zs+uAN6Qj2YTzHHveP3OIhMeyid7F1dXeHi8uSSp/j4\neMyaNQtCoRD29vZwcnJCWlqaSkGqm1QqxezZs3H16lWcP38e1tbWKrd5pboa2woKsNfVFfr0hCwh\natXvmX6ImhCFhT8u5KQccr+X+6H8W/VvjahJnK+zLyoqgr+/f+trW1tbFBYWPnHcmjVrWr8PDAxE\nYGAg16EopLa2Fi+//DKMjIxw+vRpGBkZqdxmg1yOVzMzscXJCQM5aI8Q0rEwURj2XN2Dnb/tRMTI\nCJXa6vtCX9yaewvSMikM+/O3qUlSUhKSkpI4aavdZC8Wi1FSUvLE+5GRkQgODlb4JE+r/fJwsudL\nZWUlpkyZAkdHR8TExMBA0XKXHVh9+zbcnnkGc/r356Q9QkjHBAIBPp/8OcZ+PRbThk6DVW8rpdvS\nM9JD34l9Uf5dOazfVP1/+sp6/EL4448/VrqtdrPb2bOdLydqY2OD/Pz81tcFBQWwsdG+JUwAsGXL\nFowYMQJbt27tcBNwRSU/eIBDZWXI8PWlAmeEaJhbPzcs8F6AFWdX4MC0Ayq1ZfGyBYq/KuY12XOJ\nkwz38LrPkJAQxMbGQiqVIjc3Fzk5ORg5ciQXp+HcRx99hG3btnGW6BvkcszPysL/OTvDnJZZEsKL\n1aNX41zeOaTkp6jUjnmQOapSqtD0ZxNHkfFL6Sx3/Phx2NnZITU1FZMnT0ZQUBAAwM3NDdOnT4eb\nmxuCgoIQHR2ttVe4+vr6nMa27s4duBkb42Uqh0AIb54xfAaR4yPx9um3IWfKrwTU76UPs/FmqPi+\na5Q9pidoOXK1pgYvXLuGaz4+sOrRg+9wCOnW5EwOv6/8sNxvOeYMn6N0OyXflODe0XvwiPfgMDrl\n0RO0PJMxhjezsrDBwYESPSFaQE+gh20vbsO/fvoX6prqlG7HfJI5KhMrIatXfTkn3yjZc+DL4mIY\n6ulh3oCuVxaVEF01auAoBNgFYFvqNqXbEJoL0cuzFyp/ruQwMn5QsldRmVSKD3NzEe3sDD0tvTdB\nSHe1btw6bE3dij/r/1S6DYsQC1T8oPvz9pTsVfTe7dt4zdISw3v14jsUQshjnM2dMdV1KjYlb1K6\nDfNgc5T/UK7z9xkp2avg4oMHOHv/PtbY2/MdCiGkDR+O/RC7Lu9CcXWxUp83HmIM/V76qEmv4Tgy\nzaJkryQ5Y1j2++/Y6OCA3hw9eUsI4Z6tiS1e93wd6y6sU7oNi2Ddn8qhZK+kb0pLIRQIMJtKIhCi\n9VaNWoXYG7G4U3lHqc//PZWjyyjZK6FGJsP7t29jm5OT1j4wRgj5r37P9MMC7wX4NPlTpT5vOsoU\nDXkNOl3jnpK9EqLu3sXzZmbwMzHhOxRCiILeCXgHhzIOoai6qNOfFRgIYLvMVqf3pqUnaDspv6EB\nnr/9hmu+vrClB6gI0Slvn34bAgiw5cUtfIeiFFVyJyX7Tpp/6xYsDQ0R6eDAdyiEkE4qrCqEx+ce\nyFqShX7P6F4NKyqXoCGS2lr8UFGB/xk4kO9QCCFKsDGxwcxhM7ElVTev7FVBV/adEHrjBp4zNcUK\nOzu+QyGEKCmvMg8jdo1A7rJcmPTQrftudGWvAckPHiC9uhpLtHQjFkKIYuz72GOCwwTEpMfwHYpG\nUbJXAGMM7+fmYo29PYw42uiEEMKfFQErsP3SdjTLm/kORWMocykgqbISRY2NmEtVLQnpEnxtfDHQ\ndCC+lXzLdygaQ8m+A4wxfJSXhw8GDYIBPUBFSJfxbsC72JyyWSfvHyqDkn0Hfq6sRKlUilmWlnyH\nQgjhUPCQYFQ2VOLC3Qt8h6IRlOzb8fdV/Yf29nRVT0gXoyfQw3L/5dhxaQffoWgEJft2/FRZifKm\nJsykYmeEdEmvDX8NP+f+jIKqAr5DUTtK9u1Yd+cOVg8cCH26qiekS+rdozdme8zGrsu7+A5F7SjZ\ntyHlwQPcaWiguXpCurhw33B8mf4lpDLdLXKmCEr2bdhw9y5W2tnRXD0hXZxbPzcMtRiKY5nH+A5F\nrZRO9nFxcXB3d4e+vj7S09Nb38/Ly0PPnj3h5eUFLy8vhIeHcxKoJmXU1ODX6mrMo3X1hHQLEb4R\n+OzXz/gOQ62U3k/Pw8MDx48fx8KFC5/4mZOTE65cuaJSYHyKunsXy2xt0VNfn+9QCCEa8JLrS1iW\nsAwZpRnwsPTgOxy1UPrK3tXVFS4uLlzGohVy6+uR8OefWGxtzXcohBANMdAzwDyveYi50nXr5ahl\np+zc3Fx4eXnB1NQU69atw3PPPffEMWvWrGn9PjAwEIGBgeoIpdN2FBZivpUVTGkTcUK6lX96/hMj\nvxqJjRM2ooeBdmxMlJSUhKSkJE7aarfEsVgsRklJyRPvR0ZGIjg4GAAwbtw4bN68Gd7e3gAAqVSK\n2tpamJmZIT09HaGhobh58yZ69+7935NqaYnjB83NGJyaims+PrAzMuI7HEKIhk3YNwELvBdgxrAZ\nfIfyVKrkznYvX8+ePdvpBg0NDWFoaAgA8Pb2hqOjI3Jyclr/GGizr4qLEdS3LyV6Qrqp+V7zEXMl\nRmuTvSo4WXr58F+a8vJyyGQyAMDt27eRk5MDBx3Ywq+ZMewoKMDbtDEJId3W1KFTkV6cjrzKPL5D\n4ZzSyf748eOws7NDamoqJk+ejKCgIADAuXPnIBKJ4OXlhX/84x/44osv0KdPH84CVpdv792DvZER\nfB6abiKEdC9GBkaY7TEbe67u4TsUztG2hH/xT0/HqoEDEWphwXcohBAeXSu5huBDwchbngc9gXY9\nd0rbEqro16oqlEqlCDY35zsUQgjPRANEMOtphvN3zvMdCqco2QP4rKgIi62tqeAZIQRASzXM/df3\n8x0Gp7p9si9vakJ8eTn+aWXFdyiEEC0xa9gsHMs8hvqmer5D4Uy3T/a7i4vxkoUFLIRCvkMhhGgJ\nGxMbjLAegR+zf+Q7FM5062QvYwzRRUWIoNIIhJDHvOrxKr65/g3fYXCmWyf7kxUVsBQK4Wtiwnco\nhBAtM23oNJy/cx7ldeV8h8KJbp3si6VSvEsPURFCnqJ3j96Y5DwJh28c5jsUTtA6e0IIacOJ7BOI\nuhiFC/Mu8B0KAFpnTwghaiF2FONm2U0UVhXyHYrKKNkTQkgbDPUN8ZLrSzgqOcp3KCqjZE8IIe2Y\n4T4DRyRH+A5DZZTsCSGkHeMHj0dWeRbyH+TzHYpKKNkTQkg7hPpChLqGIk4Sx3coKqFkTwghHZju\nPh1Hbur2VA4le0II6cA4+3H44/4fOr2pCSV7QgjpgFBfiLWBa1ErreU7FKXRQ1WEEKIj6KEqQggh\n7aJkTwgh3QAle0II6QYo2RNCSDdAyZ4QQroBSvZqkJSUxHcIakX9021duX9duW+qUjrZr1y5EkOH\nDoVIJMK0adPw4MGD1p9t2LABzs7OcHV1xZkzZzgJVJd09V846p9u68r968p9U5XSyf6FF17AzZs3\nce3aNbi4uGDDhg0AAIlEgsOHD0MikSAhIQHh4eGQy+WcBUwIIaTzlE72YrEYenotH/fz80NBQQEA\nID4+HrNmzYJQKIS9vT2cnJyQlpbGTbSEEEKUwzgwZcoUduDAAcYYY0uWLGH79+9v/dn8+fPZ0aNH\nHzkeAH3RF33RF30p8aUsA7RDLBajpKTkifcjIyMRHBwMAFi/fj0MDQ0xe/bsNtsRCASPvGZUKoEQ\nQjSq3WR/9uzZdj/89ddf4+TJk/jpp59a37OxsUF+/n+L/BcUFMDGxkbFMAkhhKhC6Tn7hIQEbNq0\nCfHx8TAyMmp9PyQkBLGxsZBKpcjNzUVOTg5GjhzJSbCEEEKU0+6VfXuWLl0KqVQKsVgMAAgICEB0\ndDTc3Nwwffp0uLm5wcDAANHR0U9M4xBCCNEwpWf7O+nIkSPMzc2N6enpscuXL7d53KBBg5iHhwfz\n9PRkvr6+mgpPZYr279SpU2zIkCHMycmJRUVFaTBC5VVUVLAJEyYwZ2dnJhaL2f379596nK6NnSJj\nsXTpUubk5MSGDx/O0tPTNRyhajrqX2JiIjMxMWGenp7M09OTffLJJzxEqZx58+ax/v37s2HDhrV5\njC6PXUf9U2bsNJbsMzMzWVZWFgsMDGw3Gdrb27OKigpNhcUZRfrX3NzMHB0dWW5uLpNKpUwkEjGJ\nRKLhSDtv5cqVbOPGjYwxxqKioth777331ON0aewUGYsTJ06woKAgxhhjqampzM/Pj49QlaJI/xIT\nE1lwcDBPEarm/PnzLD09vc1kqMtjx1jH/VNm7DRWLsHV1RUuLi4KHct0cLWOIv1LS0uDk5MT7O3t\nIRQKMXPmTMTHx2soQuV9//33CAsLAwCEhYXhu+++a/NYXRk7Rcbi4X77+fmhsrISpaWlfITbaYr+\nrunKeD1u9OjRMDMza/Pnujx2QMf9Azo/dlpXG0cgEGDChAnw8fHBl19+yXc4nCosLISdnV3ra1tb\nWxQWFvIYkWJKS0thaWkJALC0tGzzH40ujZ0iY/G0Y/5+eFDbKdI/gUCA5ORkiEQiTJo0CRKJRNNh\nqo0uj50ilBk7pW/QPo0i6/I7cvHiRVhZWeHevXsQi8VwdXXF6NGjuQxTaar2T5tvVLfVt/Xr1z/y\nWiAQtNkPbR67xyk6Fo9fPWnzGD5MkTi9vb2Rn58PY2NjnDp1CqGhocjOztZAdJqhq2OnCGXGjtNk\n39G6fEVYWVkBAPr164epU6ciLS1NaxKGqv17/BmE/Px82NraqhoWJ9rrm6WlJUpKSjBgwAAUFxej\nf//+Tz1Om8fucYqMhS4/M6JI/3r37t36fVBQEMLDw/Hnn3+ib9++GotTXXR57BShzNjxMo3T1lxT\nXV0dqqurAQC1tbU4c+YMPDw8NBkaJ9rqn4+PD3JycpCXlwepVIrDhw8jJCREw9F1XkhICPbu3QsA\n2Lt3L0JDQ584RtfGTpGxCAkJwb59+wAAqamp6NOnT+t0lrZTpH+lpaWtv6tpaWlgjHWJRA/o9tgp\nQqmxU/ZucWcdO3aM2draMiMjI2ZpackmTpzIGGOssLCQTZo0iTHG2B9//MFEIhETiUTM3d2dRUZG\naio8lSnSP8YYO3nyJHNxcWGOjo4607+Kigo2fvz4J5Ze6vrYPW0sdu7cyXbu3Nl6TEREBHN0dGTD\nhw9vdxWZNuqof//+97+Zu7s7E4lELCAggKWkpPAZbqfMnDmTWVlZMaFQyGxtbVlMTEyXGruO+qfM\n2AkY09Hb8YQQQhSmdatxCCGEcI+SPSGEdAOU7AkhpBugZE8IId0AJXtCCOkGKNkTQkg38P8wZG3/\n3IfzJQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 208 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot the covariance given as an image in python with a colorbar to show scale." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.imshow(K)\n", "plt.colorbar()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 209, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 209 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because the full model involves corrupting the latent function with Gaussian noise,\n", "\n", "$$\\dataVector = \\mappingFunctionVector + \\noiseVector$$\n", "\n", "and the noise is sampled from an independent Gaussian distribution with variance $\\dataStd^2$,\n", "\n", "$$\\noiseVector \\sim \\gaussianSamp{\\zerosVector}{\\dataStd^2 \\eye},$$\n", "\n", "we can use properties of Gaussian variables, i.e. the fact that sum of two Gaussian variables is also Gaussian, and that it's covariance is given by the sum of the two covariances, whilst the mean is given by the sum of the means, to write down the marginal likelihood,\n", "\n", "$$\\dataScalar \\sim \\gaussianSamp{\\zerosVector}{\\alpha \\basisMatrix \\basisMatrix^\\top + \\dataStd^2 \\eye}$$.\n", "\n", "Sampling directly from this distribution gives us the noise corrupted functions," ] }, { "cell_type": "code", "collapsed": false, "input": [ "K = alpha*np.dot(Phi_pred, Phi_pred.T) + sigma2*np.eye(x_pred.size)\n", "for i in xrange(10):\n", " y_sample = np.random.multivariate_normal(mean=np.zeros(x_pred.size), cov=K)\n", " plt.plot(x_pred.flatten(), y_sample.flatten())" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 210 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we can see the small effect of our noise value, $\\dataStd^2$. We can increase the noise value to see a different effect," ] }, { "cell_type": "code", "collapsed": false, "input": [ "sigma2 = 1.\n", "K = alpha*np.dot(Phi_pred, Phi_pred.T) + sigma2*np.eye(x_pred.size)\n", "for i in xrange(10):\n", " y_sample = np.random.multivariate_normal(mean=np.zeros(x_pred.size), cov=K)\n", " plt.plot(x_pred.flatten(), y_sample.flatten())" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 211 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Function Space Reflection\n", "\n", "How would you include the noise term when sampling in the weight space point of view?\n", "\n", "## Gaussian Process\n", "\n", "Rather than sampling from the prior over parameters, we sampled from the marginal likelihood. Specifying this marginal likelihood directly, and avoiding the intermediate weight-space representation is what Gaussian processes are all about. In a Gaussian process you specify the *covariance function* directly, rather than *implicitly* through a basis matrix and a prior over parameters. Gaussian processes have the advantage that they can be *nonparametric*, which in simple terms means that they can have *infinite* basis functions. In the lectures we introduced the *exponentiated quadratic* covariance, also known as the RBF or the Gaussian or the squared exponential covariance function. This covariance function is specified by\n", "\n", "$$\\kernelScalar(\\inputVector_i, \\inputVector_j) = \\alpha \\exp\\left( -\\frac{\\ltwoNorm{\\inputVector_i-\\inputVector_j}^2}{2\\lengthScale^2}\\right).$$\n", "\n", "where $\\ltwoNorm{\\inputVector_i-\\inputVector_j}^2$ is the squared distance between the two input vectors \n", "\n", "Let's build a covariance matrix based on this function. We will compute the covariance at the points given by `x_pred`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import urllib\n", "url = (\"http://staffwww.dcs.shef.ac.uk/\"\n", " + \"people/N.Lawrence/dataset_mirror/\"\n", " + \"olympic_marathon_men/olympicMarathonTimes.csv\")\n", "urllib.urlretrieve(url, 'olympicMarathonTimes.csv')\n", "olympics = np.loadtxt('olympicMarathonTimes.csv', delimiter=',')\n", "x = olympics[:, 0:1]\n", "#x_pred = linspace(1892, 2016, num_pred_data)[:, None]x_pred = linspace(0, 4, num_pred_data)[:, None]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 212 }, { "cell_type": "code", "collapsed": false, "input": [ "def kern(x, xprime, variance=1.0, lengthscale=1.0):\n", " return 64*np.exp((-0.5*(x - xprime)**2)/lengthscale**2) + 16*min(x, xprime) + 64*x*xprime\n", " \n", "alpha = 1.0\n", "lengthscale = 1\n", "K = np.zeros((x_pred.size, x_pred.size))\n", "for i in xrange(x_pred.size):\n", " for j in xrange(x_pred.size):\n", " K[i, j] = kern(x_pred[i], x_pred[j], variance=alpha, lengthscale=lengthscale)\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 213 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can image the resulting covariance," ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.imshow(K,interpolation='none')\n", "plt.colorbar()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 214, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 214 }, { "cell_type": "markdown", "metadata": {}, "source": [ "and sample functions from the marginal likelihood." ] }, { "cell_type": "code", "collapsed": false, "input": [ "for i in xrange(10):\n", " y_sample = np.random.multivariate_normal(mean=np.zeros(x_pred.size), cov=K)\n", " plt.plot(x_pred.flatten(), y_sample.flatten())" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 215 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The new covariance function doesn't have the problems with scaling exhibited by the the polynomial basis. We can reset our data from the olympics matrix and show samples computed across the actual years." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import urllib\n", "url = (\"http://staffwww.dcs.shef.ac.uk/\"\n", " + \"people/N.Lawrence/dataset_mirror/\"\n", " + \"olympic_marathon_men/olympicMarathonTimes.csv\")\n", "urllib.urlretrieve(url, 'olympicMarathonTimes.csv')\n", "olympics = np.loadtxt('olympicMarathonTimes.csv', delimiter=',')\n", "x = olympics[:, 0:1]\n", "x_pred = linspace(1892, 2016, num_pred_data)[:, None]\n", "\n", "alpha = 1.0\n", "lengthscale = 4.\n", "K = np.zeros((x_pred.size, x_pred.size))\n", "for i in xrange(x_pred.size):\n", " for j in xrange(x_pred.size):\n", " K[i, j] = kern(x_pred[i], x_pred[j], variance=alpha, lengthscale=lengthscale)\n", " \n", "for i in xrange(10):\n", " y_sample = np.random.multivariate_normal(mean=np.zeros(x_pred.size), cov=K)\n", " plt.plot(x_pred.flatten(), y_sample.flatten())" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 216 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Moving Parameters\n", "\n", "Have a play with the parameters for this covariance function and see what effects the parameters have on the types of functions you observe." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Making Predictions\n", "\n", "\n", "We now have a probability density that represents functions. How do we make predictions with this density? The density is known as a process because it is *consistent*. By consistency, here, we mean that the model makes predictions for $\\mappingFunctionVector$ that are unaffected by future values of $\\mappingFunctionVector^*$ that are currently unobserved (such as test points). If we think of $\\mappingFunctionVector^\\ast$ as test points, we can still write down a joint probability ensity over the training observations, $\\mappingFunctionVector$ and the test observations, $\\mappingFunctionVector^\\ast$. This joint probability density will be Gaussian, with a covariance matrix given by our covariance function, $\\kernelScalar(\\inputVector_i, \\inputVector_j)$. \n", "\n", "$$\\begin{bmatrix}\\mappingFunctionVector \\\\\\ \\mappingFunctionVector^\\ast\\end{bmatrix} \\sim \\gaussianSamp{\\zerosVector}{\\begin{bmatrix} \\kernelMatrix & \\kernelMatrix_\\ast \\\\\\ \\kernelMatrix_\\ast^\\top & \\kernelMatrix_{\\ast,\\ast}\\end{bmatrix}}$$\n", "\n", "where here $\\kernelMatrix$ is the covariance computed between all the training points, $\\kernelMatrix_\\ast$ is the covariance matrix computed between the training points and the test points and $\\kernelMatrix_{\\ast,\\ast}$ is the covariance matrix computed betwen all the tests points. To be clear, let's compute these now for our example, using `x` and `y` for the training data (although `y` doesn't enter the covariance) and `x_pred` as the test locations." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# set covariance function parameters\n", "alpha = 16.0\n", "lengthscale = 8\n", "# set noise variance\n", "sigma2 = 0.05\n", "\n", "# compute covariance for training data, x\n", "K = np.zeros((x.size, x.size))\n", "for i in xrange(x.size):\n", " for j in xrange(x.size):\n", " K[i, j] = kern(x[i], x[j], variance=alpha, lengthscale=lengthscale)\n", "\n", "# compute covariance between training data, x, and test data, x_pred\n", "K_star = np.zeros((x.size, x_pred.size))\n", "for i in xrange(x.size):\n", " for j in xrange(x_pred.size):\n", " K_star[i, j] = kern(x[i], x_pred[j], variance=alpha, lengthscale=lengthscale)\n", " \n", "# compute covariance for test data, x_pred\n", "K_starstar = np.zeros((x_pred.size, x_pred.size))\n", "for i in xrange(x_pred.size):\n", " for j in xrange(x_pred.size):\n", " K_starstar[i, j] = kern(x_pred[i], x_pred[j], variance=alpha, lengthscale=lengthscale)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 217 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The overall covariance between our training and test data can now be plotted as" ] }, { "cell_type": "code", "collapsed": false, "input": [ "full_K = np.vstack([np.hstack([K, K_star]), np.hstack([K_star.T, K_starstar])])\n", "plt.imshow(full_K)\n", "plt.colorbar" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 218, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 218 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The banded structure we now observe is because some of the training points are near to some of the test points. This is how we obtain 'communication' between our training data and our test data. If there is no structure in $\\kernelMatrix_\\ast$ then our belief about the test data simply matches our prior.\n", "\n", "To make predictions about the test data we need the conditional distribution: $p(\\mappingFunctionVector^\\ast|\\mappingFunctionVector)$, or when we include noise, $p(\\mappingFunctionVector^\\ast | \\dataVector)$. This conditional distribution is also Gaussian,\n", "\n", "$$\\mappingFunctionVector^\\ast \\sim \\gaussianSamp{\\meanVector_\\mappingFunctionScalar}{\\covarianceMatrix_\\mappingFunctionScalar}$$\n", "\n", " with a mean given by\n", "\n", "$$\\meanVector_\\mappingFunctionScalar = \\kernelMatrix^\\top_\\ast \\left[\\kernelMatrix + \\dataStd^2 \\eye\\right]^{-1} \\dataVector$$\n", "\n", "and a covariance given by \n", "\n", "$$\\covarianceMatrix_\\mappingFunctionScalar = \\kernelMatrix_{\\ast,\\ast} - \\kernelMatrix^\\top_\\ast \\left[\\kernelMatrix + \\dataStd^2 \\eye\\right]^{-1} \\kernelMatrix_\\ast.$$\n", "\n", "These results can be proved using *block matrix inverse* rules, but they are beyond the scope of this course, so you don't need to worry about remembering them or rederiving them. We are simply writing them here because it is this *conditional* density that is necessary for making predictions. Let's compute what those predictions are for the olympic marathon data." ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = np.dot(np.linalg.inv(K + sigma2*eye(x.size)), K_star)\n", "mu_f = np.dot(a.T, y)\n", "C_f = K_starstar - np.dot(a.T, K_star)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 219 }, { "cell_type": "markdown", "metadata": {}, "source": [ "where for convenience we've defined\n", "\n", "$$\\mathbf{a} = \\left[\\kernelMatrix + \\dataStd^2\\eye\\right]^{-1}\\kernelMatrix_\\ast.$$ \n", "\n", "We can visualize the covariance of the *conditional*," ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.imshow(C_f)\n", "plt.colorbar" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 220, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nxMSEOnnypPrZz36mvvCFLyilVF3bHI/H1a233nrT8/Vq89zcnDp69Kian59X+XxefeELX1Cvv/56\n3dq7Fari6a9du8aBAwdWHg8ODnLt2rVqfNSOMD4+zttvv83999/P9PQ0fX19APT19TE9Pb3L1q3l\n29/+Nt/5zncwzdU/XT3bfPnyZXp6evja177Gvffey9e//nWWl5fr1uauri6efPJJDh48yP79++no\n6GBkZKRu7d0KVRF9IxXmJJNJHn74YZ5//nlisdia1wzDqKt/y09+8hN6e3u555571q2DqDebLcvi\n/PnzfPOb3+T8+fNEo9Gbhsb1ZPOlS5d47rnnGB8f5/r16ySTSX70ox+tOaee7N0KVRH9wMAAExMT\nK48nJiYYHBysxkdti3w+z8MPP8xjjz3G6dOnAX0Xn5qaAmBycpLe3t7dNHENb7zxBmfPnuXWW2/l\ny1/+Mj/72c947LHH6trmwcFBBgcHue+++wB45JFHOH/+PP39/XVp869+9Ss+9alPsW/fPvx+P1/6\n0pf4xS9+Ubf2boWqiP7EiRO8//77jI+Pk8vl+PGPf8xDDz1UjY/aMkopHn/8cYaHh3niiSdWnn/o\noYcYGxsDYGxsbOVmUA889dRTTExMcPnyZV566SU++9nP8sMf/rCube7v7+fAgQNcvHgRgHPnznH8\n+HFOnTpVlzYPDQ3x5ptvkk6nUUpx7tw5hoeH69beLVGtYMGrr76qjh49qg4fPqyeeuqpan3MlvmX\nf/kXZRiGuuuuu9Tdd9+t7r77bvWP//iPam5uTp08eVLddtttamRkRC0sLOy2qSX5+c9/rk6dOqWU\nUnVv8zvvvKNOnDihPv7xj6svfvGLKh6P17XNzzzzjBoeHlZ33HGH+upXv6pyuVxd27tZqrbgRhCE\n+kQq8gShyRDRC0KTIaIXhCZDRC8ITYaIXhCaDBG9IDQZ/x+T9uqOANo26QAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 220 }, { "cell_type": "markdown", "metadata": {}, "source": [ "and we can plot the mean of the conditional" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(x, y, 'rx')\n", "plt.plot(x_pred, mu_f, 'b-')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 221, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nlqoAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 221 }, { "cell_type": "markdown", "metadata": {}, "source": [ "as well as the associated error bars. These are given (similarly to the Bayesian parametric model from the last lab) by the standard deviations of the marginal posterior densities. The marginal posterior variances are given by the diagonal elements of the posterior covariance," ] }, { "cell_type": "code", "collapsed": false, "input": [ "var_f = np.diag(C_f)[:, None]\n", "std_f = np.sqrt(var_f)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 222 }, { "cell_type": "markdown", "metadata": {}, "source": [ "They can be added to the underlying mean function to give the error bars," ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(x, y, 'rx')\n", "plt.plot(x_pred, mu_f, 'b-')\n", "plt.plot(x_pred, mu_f+2*std_f, 'b--')\n", "plt.plot(x_pred, mu_f-2*std_f, 'b--')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 223, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD9CAYAAAC1DKAUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXl4FFXWh3+dECDsewIJEAgkIWwJIOJKUNZBEEVQBxhE\ncBTUGQYVUT80KiIouKDj6Cgi7rgMm2hYxLC4gBJ2kDUJ2VkDhEDW8/1x6PRW3V3dXZ2uTp/3efpJ\nuupW1enuqnvuPds1EBFBEARBCDiCfC2AIAiC4BtEAQiCIAQoogAEQRACFFEAgiAIAYooAEEQhABF\nFIAgCEKA4pECyMrKwoABA9C1a1d069YNixYtAgAkJycjMjISiYmJSExMREpKiibCCoIgCNph8CQP\nID8/H/n5+UhISEBRURF69+6NFStW4KuvvkLDhg0xY8YMLWUVBEEQNKSWJweHh4cjPDwcANCgQQN0\n6dIFOTk5AADJLxMEQdA3Hs0AzMnIyED//v2xf/9+LFy4EEuWLEHjxo3Rp08fLFy4EE2aNDFd1GDQ\n4pKCIAgBh5aDa02cwEVFRbjrrrvw5ptvokGDBpg6dSrS09Oxa9cutG7dGo899pjNMUTkt6/nnnvO\n5zKI/L6XQ+T3v5c/y06kvVXFYwVQVlaG0aNHY/z48Rg1ahQAoFWrVjAYDDAYDJgyZQq2b9/usaCC\nIAiCtnikAIgIkydPRnx8PKZPn161PS8vr+r/5cuXo3v37p5cRhAEQfACHjmBf/75Z3z66afo0aMH\nEhMTAQBz587FF198gV27dsFgMKBDhw547733NBFWLyQlJflaBI8Q+X2LyO87/Fl2b6CZE9ilixoM\nXrFnCYIg1GS07jslE1gQBCFAEQUgCIIQoIgCEARBCFBEAQiCIAQoogAEQRACFFEAgiAIAYooAEEQ\nhABFFIAgCEKAIgpAEAQhQBEFIAiCEKCIAhAEQQhQAkYBFBUBhw/7WgpBEAT9EDAKYOdOYOJEX0sh\nCIKgHwKmGujp00B0NFBYCMiKlIIg+CNSDdRNWrQAatcGzNaqEQRBCGgCRgEAQHw8cPCgr6UQBEHQ\nBwGlALp0EQUgCIJgJKAUwE03sRlIEARBCCAnsCAIgr+jKydwVlYWBgwYgK5du6Jbt25YtGgRAODs\n2bMYNGgQYmJiMHjwYBQWFmoirCAIgqAdHs0A8vPzkZ+fj4SEBBQVFaF3795YsWIFlixZghYtWmDm\nzJmYP38+zp07h3nz5pkuKjMAQRAEl9HVDCA8PBwJCQkAgAYNGqBLly7IycnBqlWrMPFq1tXEiROx\nYsUKzyUVBEEQNKWWVifKyMjAzp07ce2116KgoABhYWEAgLCwMBQUFNi0T05Orvo/KSkJSUlJWoki\nCIJQI0hNTUVqaqrXzq+JE7ioqAj9+/fH7NmzMWrUKDRt2hTnzp2r2t+sWTOcPXvWdFEfmoAyM4Hc\nXOC663xyeUEQBBs2bwbCwoDYWMftdGUCAoCysjKMHj0aEyZMwKhRowDwqD8/Px8AkJeXh1atWnl6\nGc3YuROYM8fXUgiCIJh4/XVgz57qv65HCoCIMHnyZMTHx2P69OlV20eOHImlS5cCAJYuXVqlGPSA\nJIMJgqA3Dh7kvqm68cgEtHXrVtx8883o0aMHDFcrrL388svo27cvxo4dixMnTiAqKgpfffUVmjRp\nYrqoD01A5eVAw4bA2bNAaKhPRBAEQaiirIz7pPPngTp1HLfVuu8MyESwbt2ATz8FrgYwCYIg+IyD\nB4GRI4EjR5y31Z0PwB8RM5AgCHrBV+YfQMMwUH/irru4PLQgCIKvadMGmDDBN9cOSBOQULPIzgZm\nzgSaNQMWLADq1vW1RILgHcQEJAhWvPgi0KkTUFAA9O8PZGX5WiJB8A9kBiD4PUS8zCcR8OqrHFO9\nejXQp4+vJRMEbZEoIEFwwpYtQPv2QLt2vpZEELRFFIAgCEKAIj4AjfjhByAtzddSCIIQyGzYAKxd\n67vrB6wCSE1lJSD4H4sWAT/+6GspBMFz/vc/4NAh310/YBVAdDRw/LivpRBc5cIF4IUX2MYvCP7O\nn38CcXG+u35AK4Bjx3wtheAqH3wADB7MYZ9q2L4duHzZuzIJgrscPQrExPju+gGrADp2FAXgj3z3\nHTBunPr2L7wAfPGF9+QRBHcpKeHclchI38kQsAqgbVvg5EngyhVfSyKopbgY+P134Oab1R8zZgyQ\nkuI9mQTBXTIyuB+q5cOCPAGrAGrVAl55hUuxCv7B778DiYlcOlct/fsDmzZxkpgg6IkmTYB583wr\ng+QBCH7FpUtA/fquHdOhA/D9976ruCgIWiF5AEJA42rnD/AswIvraguC3xKQ5aCFwGLCBIkEEgQl\nxAQkCILgJ+jKBHT//fcjLCwM3bt3r9qWnJyMyMhIJCYmIjExESkSgiEIgqBLPFIAkyZNsungDQYD\nZsyYgZ07d2Lnzp0YOnSoRwJ6k8pK4NFH+a+gX4iAHTskkkeoOZw+DTzyiK+l8FAB3HTTTWjatKnN\ndn8x7wQFAV99BeTl+VoSwRFHjwK33+5rKQRBO44c4Sx1X+MVJ/Bbb72Fjz/+GH369MHChQvRpEkT\nmzbJyclV/yclJSEpKckbojjFWBIiIsInl9eMykpWaDWRDRuAgQN50RdBqAkcO8Z9jzNSU1OR6sUQ\nNo+dwBkZGRgxYgT27t0LADh58iRatmwJAJg9ezby8vKwePFiy4vqyAk8YQJw663Afff5WhL3uXgR\nGDAAWLWKF5iuaUyZAvTuDUyd6tl5nn4auP9+9XWEBMFbvPACl4J46SXXjtOVE1iJVq1awWAwwGAw\nYMqUKdiuh3mOA2pCUbh//hPo2dOy89+yBbj3Xt/JpCUHDwLx8Z6fJzsb2LjR8/MIgqccP871yHyN\n5gogz8ygvnz5cosIIT3SsaN/l4VOSQE2bwbefNNye7duwJo1XD/HnyHSTgEkJgL79nl+HkHwlOPH\n1ZmAvI1HPoB7770XmzZtwunTp9G2bVs8//zzSE1Nxa5du2AwGNChQwe89957WsnqFfr354JM/sq3\n3/IMoEEDy+1NmwK9egE//QQMH+4b2bTg8mUu/3zVqugRMTG+XX1JEIy8+CKQkOBrKSQRzO+JiwO+\n/FL5ZlqwgM1b//lP9culR44cAYYM8e8ZnxDY6N4HIFQfFRXcodmzst12G9fPF13LREUBubnsfBME\nQRSAXxMczLb/4GDl/bGxQPPmXHdcAEJCeB1oCScVBEZMQDWcmpwfIAiBhpiABJeQzl8QBHtI9wBg\n/nwgLc3XUgjWXLwIfPaZr6UQBG2ZMUMfZSAAUQAAgF27ONZc0Bf79gFvvOFrKQRBWzZs8O06wOaI\nAgAQFsYLxHvCwYPAihXayKOGTz7hGP+azMGDsoyjUPM4eRIID/e1FIwoAACtWgEFBZ6dIzMTuOMO\nxyGXW7cC77zj2XWMLF6sPpzx/HnOFvY3tMoAtqZ/f+DCBe3PKwjOqKgAzpzRJrFRC0QBgGcAzhSA\nszUDhgwBOnd27Ev45BPgueeA0lLXZTSnpAT44w/g+uvVtS8oACZN8uyavsBbM4Dz57nEtCBUN2fP\nAo0acUiyHhAFAOcmoAULuCKlIwwGYMwYXl/AHps382zjwAH35DSyYweXNWjUSF379u25EFpFhWfX\nrW4OHPCOAoiJAQ4f1v68guCMggLub/SCTlwRvqVvX/ud6alTwJw5QIsWzs8zdiwwahQwb55tstHJ\nk0B+Pq8EZC9xSy07dgDXXqu+fZ06POXMzmZl4A8QAffc452KiaIABF/RoQPwxRe+lsKEzADAo/Kb\nb1bed+ECF24qKAAKCx2fp0cPoHZt4PffbffVrs0mIE87f4Blad3atWOiovwrI9hgAObO9U60hCgA\nwVfUr8+l2/WCKAAnREfzusE9ewJX17yxoLLS5B8wGLjUQGKibbsmTbg2jzO++w7429+AK1fstxk/\nHhg3Tp38Rjp0ANLT7e+vrATKylw7p78iCkAQGFEAKtmwAbjpJtvtv/4KDBpket+xo2cOnk2bWImM\nGAFcuqTcJi7O9VrigwdzXSB7vPACl5UOBBITuYy2IAQ6UgvIQ557jqNy5s3T5nxXrvD5/vUv4NAh\nXtRFYUllTSFipXLpEpCVZb9Y2m+/cedZp479c/3yC1fcvOsu78gqCIGM1ALSGWvX8ujaVdLSgA8/\ntN1ety7QuDHwwQfc2X7wgecyOmP/flY8LVoAJ04otykr45mOI9MUwLKPGQN8+qnjdpWVXJd/9WrO\noajJEDkvyV1DxkOCnyEK4CqvvsrmFyP2zC/mnD3LoYo33OD69c6eBT7+2P7+oCDg7beBxx93/dyu\ncuUK8MwzwM6d9qOEdu5k81bjxo7P1bUrK5SZM+1HO3z0EUddJSVxXZRFi2zbvPIKf0fVzYsvOr9u\nfj6b6dQorosXgRtvVFb25iQkaDeL1CuffOI8/2LXLufBFt5gwwb+rbzNuHH8fOgFUQBXOXbM8oe5\n5hrn68empLBfQMkkQgQ8/zzfzLffbltrqHt3YM8efYz8+vQB/v53x3Xyf/7ZpOjWrQN+/NF+2/h4\nbjNjhvISjDk5vI7BiRPAwoXK55gzp/ormZaWcuRRvXqO2yUnA08+6fz+uHKFw4Kzs5Ujw4zk5/O9\n0K6dyyJ7ncpK4B//4I7ZE4iAp55SVvbmbNnC96IjfvkF2L3bM3nMKSjg2e2pU47brVzpOM9HDb/8\nwrN8vSAK4CrmyWBXrnDETEyMZZuSEsubZNcu4P77lc9nMPD57r+fRxdRUbbXCwlhe7krnDnD+QbV\nzdatJgVw/jw7jR3RrRswaxawapXtvmeeASZP5v9HjrRVAhcucMfjbLbhKdbK98gR7oSND+iyZdwx\nW5OZyYrC2VrLGRl8D33wgeNig4sXc6LhX//qXOaUFOD775X3VVSomzU9+STQuzd37F99BZSXK7er\nrAQeegh46y3g3Dnn53XEoUM8q/76a8cJiZMns3nU3mcEuCNOSOD78bPPnGfpO2PhQuDhh53nnBAB\n//2vZ9c6eVJfiWAgD5g0aRK1atWKunXrVrXtzJkzNHDgQOrcuTMNGjSIzp07Z3Och5f1Cm+/TfTQ\nQ/z/H38Qde9u22bJEqK//lX9OS9dIoqNJbrxRuX9AwcSff+96X1ZmfNz7t1L1KWLehnM2bCB6OhR\n14+rrCQKCyNKT+f3paVEbdoQ7d7t+LisLKJ9+1y/3v79/L15k8JCotatiSoqTNuWLSO64w7T+1mz\niJ57zvbYbt2Idu1Sf63Tp4lef115X3k5Ubt2RDt2OD7Hxx8T/fAD0bffEt10k3KbvXuJYmL4/y1b\n+BglFi4kWrqUaP58bq/UrrKSaOpUouuvJ7pwwb5cFRW8v6yM6MMP+TglKiuJTp4k6tWL6Mcf7Z+P\niGj9ev5OLl6036asjGj5cqIOHfh7ccRHHxG99pryvlOniJo2JTpxwvE5iPh5btiQ6OxZ5f1//kn0\n1FP2j794kSg01P53pAat+06PZgCTJk1CSkqKxbZ58+Zh0KBBOHz4MG699VbM8xPDpnk9oD17OKnL\nmt69OQtXLfXq8WjlpZeU9/foYTnCfPhh507f06fdLyT1+eeOTTf2KC7mQndG/0BICI9YHfkwACAy\nkn0CrpKdzcd6k8aNOSnPPDdi3z6euRiJjla282dlAW3bqr9W8+bA9OnK+zZt4qS+Xr0cn2PpUh6p\n33Yb5zAo5THs2WNKMmrenCPJlJz6M2ZwrsnMmcDo0cqf8eWX+V7/4QegYUP7cq1ZwybO4GDg6aft\n+0UMBr5v33rLdmZtzcCB7B/6v/+z36ZWLTavDRjAv4c15rO7WrWAbduUz/PGGxy0oOb3rFePr7dm\njfL+X3+1/PzWMxPj6F9PS5J6pABuuukmNG3a1GLbqlWrMHHiRADAxIkTsaI6ayR7gLkJyPxBMqdL\nF77ZXHEWxcbazzK+/35g2DDT+0OHOGHLnEOHLK936pT7CsBZMhjA0/Mvv7R8gOrXB/7zH8sbd8AA\n9guYM2cO8P777slmTnUoAICjrHbuNL3fv99SAbRvb9uBlpZyET7jbV9WBixZ4r4MAwawWccRpaXc\ngd14I2eUT5jAZiNrzAcuXbpwB7lypeNzP/44m4KsIeLO2lm9qddeAx54gO+N667jTtAR11+v7rdd\nuJDvQ2d+ljFj2J9mTUyM6V63l/hXXAy89x6bKtUyapT9su87dvAgEeCgkrlzLfcXFHDVAT2heaJ9\nQUEBwq4aucLCwlBgp8xmcnJy1f9JSUlISkrSWhSX6NGDI08Adtz+5S+2bWrV4ptt5077nborWI+O\nDx+2HR1Nncojq4ED+b2nCmD1atP7d99le/d995m2BQWxs65rV+UHy8g113CHU1JicoLv2OF6hrIS\niYm2itAb9OrF9mZjzsIDD7Bt2Uj79rYj2tq1Le3TwcH8G919t3PnsRIGg/M8j99/5/vC2G7yZB4h\nz5ljmXS4Zw/b7I3ExXFwgyOaNVPe/swzTkVHWhqf3/j9XX89K4B773V+rBJEpkFGixbsY3OUvAgA\nQ4cqnyc72/ScdO7M/h3z8wP8e+3aBUREOL7GkiX8PY8fzzOw6dPZT2jtzN2xg2dUAP/t2xd48EGT\nHD17ur7CXWpqKlJTU107yBU8tSGlp6db+ACaNGlisb9p06Y2x2hwWZ8xbZp9e6InnD9PVK+epU2a\niH0On3xiep+cTDR7tnvX+Plnomuv5f/Ly4miooi2bbNtN20a0eOPOz/fzp18HiOxsWyHdkRhIdGx\nY5bbcnOJsrOdX09rVq4kGjLE/v7Ll4nq1LH9Tazp2JHo0CFtZHr0UaL8fMttc+YQ/etflttuuIFo\n9WrLbRERJj8NEdH//kd0223ayKXEpElEr7xier91K1Hv3u6fr1Mn9hN4yrlzRA0aWG5r0YIoL8/x\ncZs2ET35pO32AQOIVq0yvc/IsG1TXk5Uvz7f30ZGjCD65hv1cqtB675T8yigsLAw5OfnAwDy8vLQ\nSm9zHg/p08c7dWSOHOGRinXoY3g4kJdnej9xov3II2dERZmmxd99x2avvn1t2z3xBNs5p051vHZB\nQoKpuF1ZGUe9dO7sWIaNG9k2bc7777OJqbpJTHQ8Qq5bl23E9qJkjLRta2mH3r3b0rTnCseOccSV\nOampPOI3Z/lyy1lqcTH/nuZ5HNHRnGynBevXW+bJAPxbjhxpet+7N0c7WefQHD7sPNw5P58jmJxV\n3V271nkcfX6+bbFENfWfmje3LRFSWMhrb9x6q2mbUq7Mn3/yNc0j13r21DZc1RtorgBGjhyJpUuX\nAgCWLl2KUaNGaX0JnzJpknarepmTna3sMA0P5xvaSFSUbUipWsLD2URTWcn23UcfVW4XFcVlH3Jz\n2fSkZvWsY8e4I7TOiZgzx9JkkpNjO+Vu18432cCRkexjccRDD7HZxxHWCuD4cdtjLl1ixeqMm27i\nWHhz3ngDuOUWy20tW1oOFurVYxOEuYkjLs7WB7Bli6XfQy179rDSMVJaykrO3GRZty6bUc1Xqjt1\nis2F1kqUyDLha/duHlA4c5D+5z/c2ToiL89WASxbpjzYMScuju305qG0KSls7nVm3mvfnkNczanx\nCuDee+/F9ddfj0OHDqFt27ZYsmQJZs2ahfXr1yMmJgYbN27ELFc8LH6CN7z4t9+uXD6hdWvLGYAn\nBAWx0+7gQR5FjRljv22jRvzAP/QQ0KCB83P/+Sc/QNacO2e5AE5ODtCmjWUbJVt7dWAwaJNsFhlp\nqQAyMmyVdGgod17nz/P7ffuUlY+SAujaVd1vYE3t2kCnTpbbPvrIcVKaPeLiLDve2rVtAwMAjmQz\n9yv8+CMvwWldIHHFCl7vwciuXZb+F3ukpzv3D506ZasAIiOdJ2AFB/MMf/t2SznVVPFt0MBW/p49\neWamZzy6/b/44gvk5uaitLQUWVlZmDRpEpo1a4YNGzbg8OHDWLduHZp4u5KZn5OWBjzyCP+vpFii\no7WPHPjlF76ms5FtUBAnJ6npJEeOVFZgkZE8uzGSm2s7A1CKttErqam2SVG33moZPaSkAIKCuBM1\nJoS9+iqbUKzp04cVg7fWLM7MtDVhDB3KZg4jBw7YLm1qrQDUUF7O94R5tVzraxrXqNi9236dfGM4\nJRHPrqwTtl54wdLsNHasc2drRobymtp9+5oUQFYW/+9u4mXnzmw60zOSCWzGa69x7HF11sVv1sx+\nWBnAoXVvvKHtNR94QF2Uh1oqKriDU8rctVYASiagyEie5ZSX836zALFq4557OMfCGdOmsYzmDBzI\neRJGMjKU7cTx8dy5EnHHoNQx1qnD0UmOMoc9QUkBhIRYfqavvrI1HUVFsXlE7Yj2wgUuaV5aahll\nZiQ0lAcXxhDaP/9UngH87W/AN9/w/2fOcCSe9Zjy449tM+qdLbw0apRylnffvqacgbZt+feyFyl1\n8KDzMFVzhgzRziejFaIAzMjK4qSt6lw7t317jvM/c6b6rqkl//43JxTZIyLCUgFYOyoBnokMGcKd\nxuHDwE8/eUdWe1y8yCUrrFJabCDie8RZHHtmprKfxqgADhzgjt7emg7PPqt+LeSsLOVEKCUqK7mt\ndc2hiAhLBaCUhxEczOYkZz4TI2+8wd/BmjX2E8mmTOEieRUVbJYyn0UZiYw0zTzsmX+sAyWcceUK\n32dKYc5Dh7KZzIgjs9HWrcBjj6m/7o4djpPqfIEoADOMzp/qLNZkMPCNr7TamDWFhe5Hl3iL+HjH\nyT/WM4DPPuPkOGtWreKRVk5O9SSBmbNmDXdWSqPGggKunQOY7PfOahRt3qycSW5UAMbRvz1f0sCB\nzhOwjCxeDMyebWnCsUdBAZ/X2qHZpo3lCDo7Wzk2/vnn1a2NDfAM8513HC+O1KMHX3vtWv7ulUyN\ncXEmpdOkiXLggnWghDP27mXntdJzXq+e+jybiRNZOf32m/O2ZWV8/9ibTfgKUQBmXHut8zR1b9C+\nPduWnVFQ4Dyxp7q55hq23yrZUwF+wJUKwtmjurKAzbn3XlPnbk2dOuzsNCYXtW3rPAigUSPltYyv\nu45XXbNn/nGHO+/kMhH2yo3s2sWzK4A7WKWYDDUzAOO12rbl4ABns7TgYHXBErNmOS7mZu576NyZ\no/CsUasARo/mwow7djgvvaGG2rU5aTIpyXm579OnOcxUizXBtUQUgBnTpqmf4mpJhw6Oqx8a8SQL\n2Fs0aMCjZ2unoZFatVx72HyhAAYNYpuwEsbRfmGh6zWArGnZkjvjwYMt48o9oXt3NiUpzTgANrkZ\nf5uwMK4DZI3SDMDRb7BkiTp/iRruuMNxlE1sLD+TjvIIWre2VAD2/BTNm7PpJy3NVLLBUyZN4u/V\n0RKtW7awiUqPKVGiAHTASy9Zhp5Z8+effAPpUQEAPHp0Z1U0JXyhANatY1+GEgaDKUqpYUP7ndXy\n5eqjZP75T+1MAQYD3z933qm8PzycI2QcRRXdeqspxr+8nKNe7PlDiDiK7LrrPJNbLY0b83dlp6IM\nADaLGmdUV66w7EoKIyaGEy7r1wf69dNGvjp12KzXv7/9NhMnct0sXZWBvormtYAE7XntNR5FBwWp\nt8FWJ3/8oV3k1LRpys5AX2LMUxg5kguyKbFqFfuQlHIhvM3dd9vfZzBw2OTx4/bj7GvXNoUE16rl\nuOa9sQOtTiWdkeE4FNl8hpmfb7/iZufObLqyV83TXerXd7y/Rw/2XzirnusLZAbgBxinuHqdAXTq\npC5q5ehR+xErV65w0tDgwbaJYr5GTaKaMRvY08VJvEF0tHa+I/OV4aoLV5L1lMpAGDHOAKqbnj3Z\njGVPLl8iCsAPMIa5TZrEI2R/5a23TDHd1pSV8QhbD0tkWvPAA6ZqrPYwKoC77nLN6V0daFkTaO5c\nvh+rm5MnTdV6HaFUBsJIx45sYnRW20lrrNf90BOiAPwA4wygTRvPnJC+Yu1atnsrlYEw0rAh21O1\nci5qSUKC8xmOUQGkpzsvL1zdvPgiO3+ffdbzzi8lxflyoN7g4EHnaxsArADsKag6dTiLWylCy5vo\nuSaQKAA/wNU4Z71Rty5HXiiVgTDHVzWBtMCoAJTKQPia+vU5zHXRIsedn5rZV3S0e3WJPCU93fma\nvQBQVOR4kGRdrLA66NiRnebVPfNQgygAP6BdO/WZoXrEmAymVAbCHD3XBCoqAr74wv7+9u3Z/FNe\nrr9kH0C5BIQ5Tz7JwQbffmuZuKcXtm1z7Hh+5RVWEjNnalvmRAuCgnh1s+qeeahBFIAf0KaNZXq6\nv2EsB5Gb69gRtncv8Prr1SeXKxw7Zj/ZCuBR8Zgx3Mnqac1XI84UQIsW/PvMmWNaGlVPvPuu7ToD\n5qxf7511Omo6OtRJQk2jbl1TQpijMhtqbLy+Qk0SWG5u9Sxl6Q7OFECbNpwh64s8DDW8/rryMq1G\nrJPBBHWIAvATLl7kQlXWC7H7C3FxHAXkCL3F/5vzwAPOE3mGDtUuIU5rMjIcm98iIjhS6OJFfeaa\nTJ/ueL+/+8l8hZiA/ISTJ21L3voTq1crr3jmL+Tnq6sSq8UCM96gTRvH2btt2nBFzjZt9PsZHCEK\nwD1kBuAn6DUJTC16NCu4wv79+ivl6wrOlqM0hufqLYRVLeHhXKLi9Gl9zmD0iigAP8F4cwu+IT7e\n1xJ4lwYNOFlJTVlpPXLDDRxldsst+k260iN+ONnTOWvWWK52DfB7DwuQfPEFh7kJgrfo3l253LI/\n0L49+5B8kaXsz3hNAURFRaFHjx5ITExE3759vXUZ/XHDDRyIbFQChYX83sMCKitXurb8nCAEGo7q\nAAnKeM0EZDAYkJqaimZ6zIrxJk2acMD4M8+w4fXVV/m99UKmLtKmjf6KpAmCnnBUB0hQxqs+ANJj\nZa/qoEkT7vw7dGC7jYedvyAIzsnL48q0gnq8OgMYOHAggoOD8eCDD+KBBx6w2J+cnFz1f1JSEpKS\nkrwlinPWrGETjXlHXVjIQffDh6tvA3ZAvbWwBNvWhCCoSwmC++ajx6ASzF1QR0YnguBlrBe893dS\nU1ORqmYkhAYbAAAgAElEQVS9WHchL5Gbm0tERCdPnqSePXvS5s2bq/Z58bLuce4c0bRp/FfpvZM2\nFRVEK1YQJSURtWldQS/2XUVpmy5QWhrR7xsv0KxeKdSieQW98QZRWVn1fzxBEGoGWved1dITJycn\n04IFC0wX1ZsCIDJ16Onptp2/nTYXTpyjd98liokh6tOH6PPPiUpXrLE99tw5OvCfVBowgCghgej3\n17cotqHvvvPWpxMEoQagdd9puHpSTSkuLkZFRQUaNmyIS5cuYfDgwXjuuecw+GqevMFg0IV/oKKC\n10otLOTl/M4dzEfRhIdQ/u//orxZK5vMz6AgwHD6FE7841X80O95/LEvFLfcAjz2GHDTTc6LgBEB\nn34KPPF4Je4NT8WLa3qhQWQTU6SQtbNYpdlJEITAQOu+0ysKID09HXfccQcAoLy8HOPGjcNTTz1l\nuqgPFMCPP3LJ24sXubTvhQtAcTFndzZuDDRrXI5mZ4+hQZe2CDl+CLUSuiKoTu2qTp0IoNJSVO7e\ni1bXd8aQ058h6b17uQN3kdOngcf/UYp1K4sx+6kKTMlORsi8F22dxdaKwZ6i0BJROoKgWzTvOzWd\nT6jEF5c9dYpo+3aigweJsrOJzp8nqqi4utNDH4C7/LEqhwYjhaLbl9KCBUTff0909KiVn0CNaUoN\n332nzuyk5nOqPZeadmrPpSW+uKYgaIDWfWfAKACH+KKjMuvYfxz5Bj085QoNGkTUrh1RnTpEcXFE\nt99O9PjjRO/NPUU/YgCd+PkEVVa6dzmXFJgzpaP2XD5SrE5Re029KjAhYBEFUBNw0gEVFxPt2UP0\nzTdEc58tpvvjfqab+16m8HqFVL9+JSUkEI0ZQzRzJtG77xKlpBDt3cuHO1QQDjr28nLevHYt0aJF\nRM88co4ew6v08N/O02OPEb3+OtHXXxNt20aUl0dUcUblzMQN57pXO3935NJCgWmpKAJB6QTCZ3QD\nrftOr/gAnKEXJ7DPUGtnV/ABXHjiRRz+azKO5DdEejrnmWVkcCGsrCx2bLdqxbXrW7QAmjblJQqb\nNGF/R6Oy06h8ZjbOzJiL0xVNkZUFHDrEK141bw7ExgKxUSVovW8dQm+9AXW3rkfxrSORfSYUWVl8\njcxM9qW0aVWG1lnb0XpYAhq3ro+QEF74JSTE9KpdGwgpOoeQBXNRN3kWQiOaIzQUCA3lxWHq1uV1\nWuucyUXd2wfDsHYtSltGoKwMKC0FrlyxfF2+bPky32berqSEjy8pAcrKTK+KCtMrBGWon74X9frE\no3VUXXTpgqpXbCzLWPUbOMrqdqWNI3+OB/eF2+fSsp2W51Lr/6puubS+pov4hRPY6UUDXQGoxY2b\nqKiI1w44eZKdzefOcYRTYSFw8fQVXNz4B9CzJ1oc+hktRvdHm+hQxMYCnTvz4uFqH7zi3ELkPPEG\n8m9/EHmLv8eF4feivHY9lJdzx2vscEsvXEHZj5tQ1rsfrvy6C5cT+qG4vI5Fh15SXI6S9FyUNA0H\nTp9GrTZhCKkbjNq1LRWFueIw/m/93qhQ6tZl5WN8GRVTrVoczRV86QLKXn0DxX+dgkuLv0T28Adx\n8ER9HDwIHDzICjEykheyiQk/j5gPZqLxojkoadQSJSWWCqakBCg5eR4l736Ixv+chPY9myAqihPB\n27YFgoPNfjtHisIVp79W59Kynbeu6ali1fN34SLiBBbcQ0tTRQD4AEpLiQ4cIFr+aRHNv+5/dP/Y\nC3R3p99pwt0lNGUK0cMPE82YQTRrFtFzT16mudeuoIXPnKHZfdbQhLtL6KabiCIjiWrXJurUiWjw\nYKKHHiKaP+sMfYzxtObDfPr1V6L9+4kyMjhIobiYqPKsyTRVMfVhKso+R8eOEaWmEn38MdFLL/F5\nhg8nur73ZeqJndQpqpQSE4lGjCCaOpVo7lxu+9Pqi3Rk3LNUfDDDczOd2nZanouIKD2dKgG6/GcG\nXb5MVFLCQRJVARy+kstHpk2t+06ZAQQKWk5J/WCqrIn8Goz0rlxhM93x40D6gWKkf/YrCjpcizNp\nmTjTIhYXi2vh0iWeuRUX86witG4lKi+XoMRQF3XrGtCqFc8kjK927YC2zYrQ7Ov3UH/yvQj97AMU\nPfAvZJ9viKwsXtfXaK7LySxDblYFQhuFoEmzYIsZk8XMqaIIocs/h+Hee1FZv2GVmay8nP8aZ3Tl\nF4thSP0JtQYOQK1G9arMfOavkOLzCH7/P8BDU0GNGqOyks9TXn71HFf/lp4rQunqtSi5ZRguox6K\ni3nh9+Liq69LhCuXylFSEYKQoHIEhQSjstKAigqgspK//qAgntXVCq5E8OUi1GlWH3VCg21mjaGh\nQCgVI3T9SgSPGgHUbwAiPo/xfFX/XypG7R9/QN3bh6Bu8wZo1Ih/2saNTX8bNwbqnc9DnTv/gjrr\nvkNl6wgLU6PRhFmWXYCyyQ+i7O3/orJFq6rrWL+MMowe7XjhJzEBCUJ1oaUCU2kSqDhTiOJZLyB4\nxj9R961XETR3jvv5IVe30+NP4MyL7+DCP/4Pl0MasdmtxMx3cuYSLn/6DS7fMhy0dj2C77wdQQ3q\noVYtNl8FB1/16ZQWodZnHwOjR6P8m+Uou3sCymrXt/S1XLiM0tUpqLwpCdi8CRg8BMENQqvOZfQN\nBZcUo86KZah9x3DUWfMtQh+YgPphDRAayqbIemXnEbpwDuq99Axqt2qCoAu2n5Hoqj/nTCHKZz+P\n8kemo/SNd3BlxtO4Uqexpc/oVBEuL/4cl4fegcrVa4CxY4B69dkcGAzT38uXEPTZJygbcSeu/G8N\nLo+4Gxcr6qGwkL/O8+f5VXi6DJePZKOkeRtcyT2HoPCWCKkTbOn7MpQh5PghhMR0RMjxQwjuacot\nMl7T/P/gYOCpp3htA3uICUgQ/BEtTWvVbaZT207Lc2mZt6Ln78JFtO47RQEIgl7wRaioL5L6qvtz\n6vm7cBGt+04xAQmCIPgJWvedsiawIAhCgCIKQBAEIUARBSAIghCgiAIQBEEIUEQB+AmbNgErV/pa\nCkEQahISBeQntGkD5OVx8osgCIGJRAEFKGVl/NdfFcBbbwELF/paCkEQzJEZgB9AxHVNKiq4umfD\nhr6WyHWCg7nWifzsgrd4+mlg5kzvrZaqB2QGEICcOcP1USIjucSzP9K5M/DQQ76WQqipEAGvv851\neAT1eE0BpKSkIC4uDp07d8b8+fO9dZmAIC8PaN2aF3g5dcrX0rhHgwbA/ff7WgrvkpnpvwoaAG66\nCVi82NdSuMeFC9z516/va0n8C68ogIqKCjzyyCNISUnBgQMH8MUXX+DgwYPeuJSmHDkCfP21r6Ww\nxWAA/vIXYMgQrjLoj5w9yzOYmkxUFDBqlK+lcJ+tW4F163wthXvk5XGZ6WXLfC2Jf1HLGyfdvn07\nOnXqhKioKADAPffcg5UrV6JLly7euJxm/N//AV99pT87dbduvCCSP3PsmPM28+ezsps50/vyeIOE\nBGD6dF9L4T7R0cALL/haCvfIz+d7Z/584O67fS2N/+AVBZCTk4O2bdtWvY+MjMS2bdss2iQnJ1f9\nn5SUhKSkJG+I4hKtW/tagpqLweC8zaxZ/FePCmDPHl4r2JGNubgYiI+vPpm0hAjIzeVwY38kPx9I\nTFQ30PAnUlNTkZqa6rXze0UBGFQ87eYKQC+UlXG4YnXz7LPA5s2AF39nv+Dzz4H33/e1FLYQAddf\nz51LWJj9NtnZvGKXP1JYyCtr+WOEGcCdf3IyMGwYR8tVrcPs51gPjp9//nlNz+8VH0BERASysrKq\n3mdlZSHSDwzABQVAq1banpOIl4ZzxOLFnOlb0/nvf4Fff7W/PzaWw1z1xpkzvFRhQoL9NufO+XcH\n2qAB8MsvvpbCfWJjgYEDgaZN/TdQwhd4RQH06dMHR44cQUZGBkpLS7Fs2TKMHDnSG5fSlNdeY0er\nljzyCPDgg47b/PCD/3YcrrBrF7Bjh/39kZE8itYbGRlAjx6sCOwp88aN+fPplWXLeGlEe4SEsK/J\n32ndmh3Cgjq8ogBq1aqFt99+G0OGDEF8fDzuvvtu3TuAAV5su3Fj7c63ahWbNazcHzZ068bmp0uX\nlPd/9x0/vIWFwIYN2slXXRQW8ueLiABycuy3a9FCn1FYGRnsIA0Pty9/cDDQoUO1iqWa8nLgb39T\n54c5eZLX9/VXpk3T9hmu6XgtD2DYsGE4dOgQjh49iqeeespbl9E111zDYXXp6Y5HX0FBwIAB/PBZ\nQwSMHcsPcX4+8PDD3pPXXVaudNxxT5kCrFjBDsbcXPvtgoIAHcQC2JCRwSGebds6n6FMmqS/on0n\nTrDyqlvXedvbbgN27vS+TN7iwQeBjh19LYX/IJnACsyZAxQVKe9btozjpdXQujUrgbg4YP9+x22/\n/155BHnhAneMDRsCLVvq0745aRIrKXtkZ7N5x9EMQG+ht+bUqwf07s0KwMy1pUiDBqzw9YTReX3f\nfc7b6tEMZ5z5aqGYSkp8c699/TU/y3pDFIACy5cD+/Yp7/voI7YFu8KWLUCfPu7JYswCBrjGyYUL\nPBvQE99/zx2kPYwKwNEMYOFCruWiR6ZNA8aN45FlYaHjtu3b84hbTxw9yj6ML790PBMF9KkAfv4Z\nuP12+7Pf8nIehKjp2OvW5We4uhk7Fvj22+q/rjNEASjQsyfHfVtDxE5MR52dEg0aKG+vrLRv9zdi\nrgCCgznK4exZ167vbWJjgUOHlB/A8nI2bYWHcwc6Z47yOTIz7YdY6oW5c1kZOKJ9e/4s9rh82VTZ\ntbo4ehSIieHO3Z5yGjWKZ6l6VACHDgFDh9qfWZ06xYEUanwcAPD779rJpgZjeRA9ZvGLArjKTz8B\nf/87/9+jB7B7t22b7Gy+ySIitLnm/v3OZwb5+ZYJano0AzVtyjVYlEb3+fksc0gIm1LuvFP5HJmZ\n3Hn6gvJy5456Z/Trxx2UMwUQFwdMnOjZtVwlIQG4+WbHs5Pt29l5qlcFkJTEobbFxbb78/N5gOEM\n4+zNkR/KGxgjx/T23AKiAKo4ccI0PbY3AzCO/o0jjQ0bgA8+sD3PihXqrvnbb0Dfvo7btGwJDBpk\nen/nnfqsePj3vytHj5w9C3Tv7vx4owL4+efqLaewaROXDkhKcm4esQcRDxhatnSuAHJzgV693LuO\nPfbt4w7cHhMmsIKyJ1t5OXdOYWHsh7KXREUELFjAM9fq5NAhzrBu354d8taYK4ALF1hGJYiAefM4\nYaw6adMG2LsXGD68eq+rBlEAVzl50mSC6N6dFYC1ScPa/NOsGfDSS5YPxKpVHLapht9+4wfTyPbt\nwJUrlm0GDuQoGiNz5vB03l22b3fcQZlTXMydo5r6MC+8oBx90aMHkJLi/HijAggJYSVQXezYwQ9o\ndDR3NO5w5gzblhs04ERCe99vZSWbAYwzTa349VfgnXect7OnAAoKOAQ3JAS47jrgs8+Uj8/N5ZpU\nQRr3GmVlju33f/7JZsYOHZTNQOYKICiIM+uVzte0KfDkk44T+rxFt25cEl1viAK4ysmTpizgFi2A\nN96wdbaOHs2jKSOJifzQm3dYP/4I3HKL7fnLyoCLFy23/fqrpQK4/37A20VTX35ZnQ301Cng1lv5\ngVu7VrlNcTErMU8xRkc0bVr9JogdO3hEHh+v/N1nZjqP4MrKMpWAMBjY1KVEejrQvDnQqJFnMlvT\nvbv9oAVzxo8H/vpX2+05OerMmn/+ySYsrcteDxwIrF6tvK+sDOjfn+UbMgSoU8e2jbmZtEEDVgLW\nz5qgjCiAq5grAICjCqxNLQkJlqNvg4ETbJYu5fcVFWxSUFIAc+dy52uksJA7DnPzSOfOXJLamxw/\nri5OurKSzU0bNnCGq1IG7M8/a1O4rVEjHkUbDDwLc5RxqzVpaTyr69IFOHDAdv8331ia+U6dsp2l\nmSsAR+zfD3Tt6pm8SnTtysqrosJxu+ho/pzW5OSoKwJnVAAvvcQRRVpw8CDXwbJnwgoJ4dBrgwH4\n179YWVhz220cpWWkurOBN250HsyhV0QBXMXdOkDjxgH/+x/bj9PS+EFSckglJFiWCsjI4Br/tczK\n8XXuzBEb3oKIR6FqMlbDwoAnnuDOeepU5fDHn38GbrjBNRnWrgXee892u9HuHBzM3191PMAXL/Jo\ntksXfinNAIxJYEbuusu2Zo4xzNUZ/ft7p9hgw4Z87x4/7t7xQ4eqK8JnVADXX69d3aAlS3j2pRR0\noZbu3S3LWISH86zAXe66y7V1BV5/Xb3fT2+IArjKRx+5l4Xapg07ctets2/+AWwVQEKC7U3m7RnA\n2bM8PW7alBXBLbeoi51esEBZOW7d6roCOHeOR0yOqC4z0IED3HGEhPDvoTSKt1YASslgf/+7fcej\nOY0bA506OW+3cydnEzvLN0lJAf79b/6/WzdlM9CaNcAffzg+T2iouhBcowK47jrHCsCV2VvHjrwG\nh5Yx8p7MAMrK+Ht99FHnSX9GrrmGnbxKbN3Kn0+viAK4Sni4fdutM776Chg5kkPtJk9WbtOuHc8S\nCgrsn8daAZSU2DrkTp1S51RVwnz0HxXFHYy75yov52n79debtn39ta2T8ehRSyd5mzaO6wEBwMcf\nV4+j7tpr2fwAcMf2+uu2bdQoAKUqoM5i/WfMsF/X6cknOVKlY0ceHdvzs3z2mSki7b77lGeeS5e6\nPqg4dUq5Ax07lv0lMTE8e1IKpyRiuZ39xkYeeohNWFrGyE+cyL+nOadP84zWKGPPnsr5NPv3s7P8\n3XdZMaqhd2/7RQ7XrGHFCfD3Z6/CgK8QBeCEc+ecP8yNGvGDeP31fGMpYTBwp+ZoqhsXZxkpkJMD\nPPOMZZusLMDd0kq1a5ucgEabqproESX27OGRerNmpm3ffmtZJqOykh9u8+8vIsJ5HHanTtW3tquj\n+jhErADM8xPUlIPYutX+TNBIkyb2nesRETybPHOGo7A+/9y2TVkZdy7GIrujR/PI3JqjR9XNOsx5\n/33gzTdttz/wAM8UjPe6UmnvjAz+3X25sMzw4bYDiIMHTbMWg4GfWaXSEtu28Yz+zjs5GEQNRgWg\nNJves4cj4QBu44lpyhuIAnDCAw/wA3HLLc7LADjj5psdR0+Eh7NN1Ih5FrCRFi3cj8Do0cM0CgK4\n09iyxfJ8+/api4cnsk3Nj4szjXYAdqw3aWIZuWEsB2H+sFy4oM9aQCUlwIgR/BmMqCkIFxnpPNT2\nllu4k1diyRJWrLVq8WzgjTds22zZwh27I98DESuA6GjTtnnzWHE4k9/ZZxwzRjkc9JdfWDmozcp1\nREUFP3vm98aPP7pn3jl82DKAw96o/Y47gNmzXTt3eDjPFpRCVPfsMQ0KW7VybAHwBaIAnPDMM7xW\n8N69npeZff555TA8e9hTAKdOadNhNmzIjmijjZKI36upZdO7t3MFkJVl20GFhrKpzXz63bmzPmu4\n161rO/ru0MHSca9ERASP9BzNHPv25c7ZmZ2/bl3ljnb5cq6P44jTp1lW81nauXPOHa5qFMDf/sad\npTVGBWCkqMh9M2NmJvDii5bK5O23LcOus7PVVchVUgBpabbtWrVSFyX3/vuWZq6//tV2gHj2LHD+\nvGkGGRamXPHXl4gCcEJiIoeZ9eqlzahGLX/8wclV1lmj9epxpIxWYWd/+5vJRmy01yslmv3+u3Nn\nVmyspQKwFx3zzTcmf8vly/yQqEnl1wPdulmWeyayVcYhIfywm3cQL79sOZKvXRu48UbnDnElKis5\n8szZ4udK5h/rZLBLl3ib+WfwxAlvrQDKyni2YB06qzSAsbbJHzrE95Q51slgmZnqqoRaK4BevRwv\nTuSIK1d4Jm0eJv7qq7bP6p49HKFkVOAyA9ApK1eyM8oeb73lvq3cHYh45jFzpq0PANC2HtDQoSbn\n54YNHGetpOjOngX+8x/H54qJ4U7HGI+emamsAG65xeRgO3GC22idXeqMU6dsTV1FRa5HbKSlWXZ4\nRqw72p07bSOpRo92bo5RIiiIR/HObPvGUF5HcuXk8CzB/DePiGAF4Ooss6yMkwMTE03bmjZlpWnu\nG9q/n82h1sdGRloObIwZwOZ06GAZ7qq2DpC1AoiL42PVJIx9951lKed16/gzOgsb79SJcyaMyAxA\npxiLvNmjcWNLO6q3MRh42jx+vLJcEyY4N0O4w48/cvavEn378qzEUSnq+vV5ym6sCZSXx1UmHaFU\nBK6ykh9Qb5a9fvZZXovZHCJOAHSl1k1WFitka6KjLR92pSSwCRNsa0mpRclB+csvlgqsY0cefZvT\nrp2liS831zYLuH59diibR6w8/bTzziskhEft1tm6Q4Zwp2lk2TIOnbQ+tksXy3BKNTMAewpg5kzL\ncNT58y0DLIKDeTSuZinWt9+2jNj69lv7RQ3NiYy0DC2/7z7XTMDVgSgAWNYB0guOFNKLL6rLPDXn\n7Fng00/t76+o4Iqo9hSAsUyDszISjz9uMu/Mn29ZyE6J3bttP0tQEI+4vDldth4RAtwZNGvGnbXa\nktv2zFwffWTqfEtLedRq3ZnVrm2pyNet40xyJTIznc/6Tp7kEFpHGGcAxtG9vTIQP/1k6hwrKniW\n6G5k1uDBJgVAxEpKyXxlnitTXMyDoGuvtWzTsaOlAsjLU1YAn31mef/cdpttxJd12Le9Gc9f/sJr\nXgA8U/nuO3UKwJroaNcjsryNKADYloGoiezb59iEc/48j0gdhe+FhLC5Q8uInfPn2RZujbeTwZQU\nAMCj0KFDnZu7MjM5Q/rDD5WVsbkCP3yYO15nSzJ+8IF9B/zLLwOffOL4+G7d7CckGWnUCEhNNb1X\nUwYiM5OfDyUF8N13zr+rvn35HPn5bBcvKVGugpuQYLLnV1TwLM26XVQUzyiM2JsBtG6tPhfBSNeu\nyscYFQARK8aYGO1KwvsazRVAcnIyIiMjkZiYiMTERKS4GwJQjQSCAnBWAqJZM+VwQ3Pef59HZVo6\nw+fMsax2asSbCqC4mCNklDruG29kBTBrluNz1KvHYbUPP+x8qcWDBy1LFShBxElp1rZxIwMH2k8c\nM9KxI38uZ0sPXnON6TdUMgFZY8wAVqJtW/4NHWX/1qrFmdLl5Wz+GTtW+R5KTDTNABo25OKI1tSr\nByxaZHr/6KPcQVszciQff+yYfbnMycvjGYOSMuzUiYvM7d7N63f897/K5zh0yH5or17R3JJsMBgw\nY8YMzJgxQ+tTew136wD5E2prADnCejruTSIj1afiu4oxNl6p7v2zz6o7R8uWPANQw113Oa8Ff/gw\n287tLYozYACblNavt29WCwric8yerZzIpcQrrzgvIqfkjDXSsyfv++Ybx/ZtY4b8sWOc26BEjx7s\nfyFSP8iwl3j57LPsJ7nhBrbZOytZsn07zzbsXdc4C3j6acuwWnOOHGHlFBbGM0l76yroCa+YgEiP\nWT0O+O47y7LMNREtFEB10qGD+tGbqxQWKpudvIWjEtFGxo93vM5D8+b8116pESMTJig7pe1Ru7bz\nkgerVzu+d6ZP53pIaorRLVtmf0GcRo3Yx6TVDHPaNPZ7Ofs+Cgo4WMHR4kyTJjlfvKl3b1YkSUnK\nC9foES/EkgBvvfUWPv74Y/Tp0wcLFy5EE/NUyqskmy3Lk5SUhCR3KrFphIJ4uqa0lM0xahJgjBw/\nzjexvzB5svfyLm6+2b6pxVd06GBp21Zi9WrLukRKqB35u8LLLztWTrfdxuGbS5dysqOeUCofbY1x\nRG8evmqNvZmGOa1bs6IfNcp+1OCYMRxWrjbvJTU1FanmThuNMZAbw/VBgwYhX6GoxUsvvYR+/fqh\n5VWVO3v2bOTl5WGxVbydwWDwu1mCniBik1VamvpooIULeZSpt2gnoWaQmckdoB4XPlfDlSvOnfRq\nWLWKzU3GGZs1iYkcfuzusqBa951uKQC1ZGRkYMSIEdhrFZogCsBzRo7kDn3sWF9LIgiCWoYMYZPZ\nsGHuHa9136m5DyDPrKjL8uXL0V3NiuCCy9irxigIgn7RWzaw5j6AJ598Ert27YLBYECHDh3wntLy\nT4LHXHed/WgKQRD0id7qAWmuAD52loqoMz78kGOPzWOL/QHjKkRa2S71SkWFtuF0p0/zCCw+Xrtz\nCoJawsL0pQACPhP46FH/zAEwJsRU1+LpvmDdOq7HryUpKVxKQxB8wbhxwCOP+FoKEwGvAI4fV1f/\nW49Mnsyx0464dIlvOH/0uUdHc10eLbFXAkIQqoM2bZyH8lYnogD8WAGoYd06zuSszrUMtCIqigug\nabmOqigAQTAhCqCGK4CVK52vHKVXgoO5szZfZMZTjhwRBSAIRgJaAVy8yDZ0V1Ln/Ynyci5z4a8K\nAGBn7YED2pyLiGcA5nXhBSGQCWgF0LAhR4X4o3lEDT//zMXF2rXztSTu07WrdlVBL13iBBx/K/0h\nCN7Cq5nAdi8qmcCasXEjVylcsMB234wZ3NmprXCpR1ypDCkI/sCYMcDcue7NRHWfCSxUL3378gpL\nSitJPf00V0T0Z6TzF2oaZ89armrmS0QB+DkNGvBCLlOn2uYEtGihvHasIAi+Izrae6XOXUUUQA3g\njju4nPBrr/laEkEQnNGxo7q1E6qDgFYAWsaX+xKDgWuML1jgPwtRCEKgIgpAB1RUsHmkpMTXkmhD\nx45sCqopn8eckhLPFduePf63XqtQMxETkA7IzuYaQHXq+FoS7Rg/3v7arf7Mtm28rq4nfPYZsHWr\nNvIIgid06wYsX+5rKZiAVQDHjtXsDOCaRL9+nMF7+rT759i0CejfXzuZBMFd6tTRz/rcAasAanoJ\niJpE7dq8hq+7JpyLF4F9+4Brr9VWLkHwd0QBCH7B4MHA+vXuHfvLL7wGa2iotjIJgr8TsArg4kWp\nCeNPDBrElU3dSYLctAlIStJcJEHwezRfEcxfeOstX0sguEJsLHDrrRy627Cha8cOGgSEh3tHLkHw\nZ/idfwcAAAupSURBVKQWkCAIQjWzbRswZw6werVrx+mmFtDXX3+Nrl27Ijg4GGlpaRb7Xn75ZXTu\n3BlxcXFYt26dx0IKgiDUJMLCgN27fS2FBwqge/fuWL58OW6++WaL7QcOHMCyZctw4MABpKSkYNq0\naaisrPRYUEEQhJpCZCRw8qTvEzfdVgBxcXGIUVhaaeXKlbj33nsREhKCqKgodOrUCdu3b/dISEEQ\nhJpErVpA27a+L92iuRM4NzcX/fr1q3ofGRmJnJwcm3bJyclV/yclJSGpGsM0cnLYkehsQXXBvykr\nA0JCfC2FICjTsSMnpDrK3k9NTUVqaqrXZHCoAAYNGoT8/Hyb7XPnzsWIESNUX8SgUNTdXAFUN7Nm\ncUTJfff5TATBTYiAKVPYgda6teN2N9wAvPsu5wAIgt5QUxTOenD8/PPPayqDQwWw3o3Mm4iICGRl\nZVW9z87ORkREhOuSeZGDB4GHH/a1FII7GAy8BsKrrzouf711K3D+PJCQUH2yCYIrLFwI1K3rWxk0\nSQQzD0saOXIkvvzyS5SWliI9PR1HjhxB3759tbiMJhABhw4BcXG+lkRwlyefBD76CFCYnFaxaBHw\n6KNAUMCmOgp6p14939+fbl9++fLlaNu2LX777TcMHz4cw4YNAwDEx8dj7NixiI+Px7Bhw/DOO+8o\nmoB8RXY2jyBlYXD/pU0bYNw4ngUoceIEr5U8cWL1yiUI/kbAJYKtXw+8/DJ3EIL/kpMDdO/O5ryw\nMNP2khLgnntkhTShZqKbRDB/paQEGDDA11IInhIRwU78PXsst4eEcN2fl17yhVSC4F8E3AxAqDlU\nVrJTWEcWRkFwicpKoLycS56rQWYAgnCVoCDp/AX/5u9/B5Yu9d31RQEIgiD4iM6dgT//9N31RQEI\ngiD4iC5dOJDBV4gCEARB8BG+VgAB5QQ+fJidLpIEJgiCHigv57pkZ85wYpgzxAnsAYsXA99+62sp\nBEEQmFq1uFyJWfWcaiWgFMDBgzzlEgRB0Au//uq4Iqg3CSgF8OefYv4RBEEwEjA+gJISoHFj4MIF\n9UkXgiAIekJ8AG5y9CjQvr10/oIgCEYCRgEAwKRJvpZAEARBPwSMCUgQBEGvZGYCzZtzqXpHiAlI\nEAShhvHQQ8BPP1X/dUUBCIIg+BhfZQSLAhAEQfAxcXG+KQonCkAQBMHHyAzAj0hNTfW1CB4h8vsW\nkd936FV2owKo7tgYtxXA119/ja5duyI4OBhpaWlV2zMyMhAaGorExEQkJiZi2rRpmgiqJ/R6E6lF\n5PctIr/v0KvsLVoA11wDFBVV73VruXtg9+7dsXz5cjz44IM2+zp16oSdO3d6JJggCEIgsX599V/T\nbQUQJ0V1BEEQ/BvykKSkJNqxY0fV+/T0dKpfvz4lJCRQ//79acuWLTbHAJCXvOQlL3m58dIShzOA\nQYMGIT8/32b73LlzMWLECMVj2rRpg6ysLDRt2hRpaWkYNWoU9u/fj4YNG1a1IckCFgRB8DkOFcB6\nN4xStWvXRu2rFdd69eqF6OhoHDlyBL169XJPQkEQBMEraBIGaj6iP336NCoqKgAAx48fx5EjR9Cx\nY0ctLiMIgiBoiNsKYPny5Wjbti1+++03DB8+HMOGDQMAbNq0CT179kRiYiLGjBmD9957D02aNNFM\nYEEQBEEjtHImTJo0iVq1akXdunWr2rZt2za65pprKCEhgfr06UPbt28nIqLLly/TPffcQ927d6cu\nXbrQyy+/XHXMH3/8Qd26daNOnTrRP/7xD63Ec0v+Xbt2Ub9+/ah79+40YsQIunDhQtW+uXPnUqdO\nnSg2NpbWrl3rV/KvW7eOevfuTd27d6fevXvTxo0b/Up+I5mZmVS/fn1asGCBT+V3Vfbdu3dTv379\nqGvXrtS9e3cqKSnxmeyuyq/HZ/fEiROUlJRE8fHx1LVrV3rzzTeJiOjMmTM0cOBA6ty5Mw0aNIjO\nnTtXdYyenl9X5dfy+dVMAWzevJnS0tIsbqL+/ftTSkoKERF9//33lJSURERES5YsoXvuuYeIiIqL\niykqKooyMzOJiOiaa66hbdu2ERHRsGHD6IcfftBKRJfl79OnD23evJmIiD788EOaPXs2ERHt37+f\nevbsSaWlpZSenk7R0dFUWVnpN/Lv3LmT8vLyiIho3759FBERUXWMP8hvZPTo0TR27FgLBeAL+V2R\nvaysjHr06EF79uwhIqKzZ89SRUWFz2R3VX49Prt5eXm0c+dOIiK6ePEixcTE0IEDB+iJJ56g+fPn\nExHRvHnz6MknnyQi/T2/rsqv5fOraUxRenq6xU10zz330LJly4iI6PPPP6dx48YREVFKSgqNGDGC\nysvL6dSpUxQTE0Pnzp2j3NxciouLqzr+iy++oAcffFBLEV2Sv3HjxlX/nzhxguLj44mIRw/z5s2r\n2jdkyBD69ddf/UZ+cyorK6lZs2ZUWlrqV/IvX76cnnjiCUpOTq5SAL6UX63sa9asofHjx9sc7y/f\nvV6fXXNuv/12Wr9+PcXGxlJ+fj4RcScbGxtLRPp9fo04k98cT59fr9YCmjdvHh577DG0a9cOTzzx\nBObOnQsAGDJkCBo1aoTWrVsjKioKTzzxBJo0aYKcnBxERkZWHR8REYGcnBxviuiQrl27YuXKlQC4\n9EVWVhYAIDc310LOyMhI5OTk2GzXq/zmfPvtt+jduzdCQkL85vsvKirCK6+8guTkZIv2epLfnuyH\nDx+GwWDA0KFD0bt3b7z66qsA9CU7YF9+vT+7GRkZ2LlzJ6699loUFBQgLCwMABAWFoaCggIA+n5+\n1chvjqfPr1cVwOTJk7Fo0SKcOHECr7/+OiZPngwA+PTTT3H58mXk5eUhPT0dCxYsQHp6ujdFcYsP\nP/wQ77zzDvr06YOioqKq8FZ/wZn8+/fvx6xZs/Dee+/5SELH2JM/OTkZ//rXv1CvXj3d5pTYk728\nvBxbt27F559/jq1bt2L58uXYuHEjDAaDjyW2xJ78en52i4qKMHr0aLz55psWeUcAr6Slt+/YGlfl\n1+L5dbsUhBq2b9+ODRs2AADuuusuTJkyBQDwyy+/4I477kBwcDBatmyJG264ATt27MCNN96I7Ozs\nquOzs7MRERHhTREdEhsbi7Vr1wLgkduaNWsAsGY1H01nZ2cjMjISERERfiE/wLLdeeed+OSTT9Ch\nQwcA0L3833//PQC+r7799lvMnDkThYWFCAoKQmhoKO68807dyG/vu2/bti1uvvlmNGvWDADwl7/8\nBWlpaRg/frxuZAfsf/d6fXbLysowevRoTJgwAaNGjQLAo+b8/HyEh4cjLy8PrVq1AqDP59cV+Y2y\nafH8enUG0KlTJ2zatAkAsHHjRsTExADgOkIbN24EAFy6dAm//fYb4uLiEB4ejkaNGmHbtm0gInzy\nySdVX4YvOHXqFACgsrISc+bMwdSpUwEAI0eOxJdffonS0lKkp6fjyJEj6Nu3r9/IX1hYiOHDh2P+\n/Pm47rrrqtq3bt1a1/I/9NBDAIDNmzcjPT0d6enpmD59Op555hlMmzZNV9+/ve9+yJAh2Lt3Ly5f\nvozy8nJs2rQJXbt21ZXsSvIbv3s9PrtEhMmTJyM+Ph7Tp0+v2j5y5EgsXboUALB06dIqefT2/Loq\nv6bPrwY+CyJih2/r1q0pJCSEIiMj6cMPP6Tff/+d+vbtSz179qR+/fpRWloaERFduXKFxo0bR926\ndaP4+HjFML7o6Gh69NFHtRLPZfkXL15Mb775JsXExFBMTAw99dRTFu1feuklio6OptjY2KpIJ3+R\n/8UXX6yq12R8nTp1ym/kNyc5OZkWLlxY9d4X8rsq+6effkpdu3albt26VUV2+Ep2V+XX47O7ZcsW\nMhgM1LNnz6r7+YcffqAzZ87QrbfeqhgGqqfn11X5tXx+DUQ6NaIKgiAIXkVWBBMEQQhQRAEIgiAE\nKKIABEEQAhRRAIIgCAGKKABBEIQARRSAIAhCgPL/wFBnaQ77O10AAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 223 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This gives us a prediction from the Gaussian process. Remember machine learning is data + model = prediction. Here our data is from the olympics, and our model is a Gaussian process with two parameters. The main thing the model expresses is smoothness. But it also sustains the uncertainty about the function, this means we see an increase in the size of the error bars during periods like the 1st and 2nd World Wars when no olympic marathon was held. \n", "\n", "### Exercises\n", "\n", "Now try changing the parameters of the covariance function (and the noise) to see how the predictions change.\n", "\n", "Now try sampling from this conditional density to see what your predictions look like. What happens if you sample from the conditional density in regions a long way into the future or the past? How does this compare with the results from the polynomial model?" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Gaussian Process models with GPy" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "(section contains additional contributions by Nicolas Durrande and James Hensman" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You've now had an idea of the Gaussian process predictive equations. In the next part of the lab you will move to GPy to fit the Gaussian process models. Note that the difficulties of the questions of the lab session varies. We do not mark these labs in any way, you should focus on the parts that you find most useful. **In this session you should try and complete at least as far as Exercise 5**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Getting started: The Covariance Function" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We assume that GPy is already installed on your machine. You can get instructions on how to install GPy from the [SheffieldML github page](https://github.com/SheffieldML/GPy). They are written as markdown in the README.md file, which is automatically parsed for you just under the file listing there.\n", "\n", "We first tell the ipython notebook that we want the plots to appear inline, then we import the libraries we will need:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "import numpy as np\n", "import pylab as plt\n", "import GPy\n", "from IPython.display import display" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The current draft of the online documentation of GPy is available from [this page](http://gpy.readthedocs.org/en/latest/).\n", "\n", "Let's start with defining an exponentiated quadratic covariance function (also known as squared exponential or rbf or Gaussian) in one dimension:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "d = 1 # input dimension\n", "var = 1. # variance\n", "theta = 0.2 # lengthscale\n", "k = GPy.kern.RBF(d, variance=var, lengthscale=theta) + GPy.kern.Brownian(1, variance=10)\n", "#k= GPy.kern.RBF(d, variance=var, lengthscale=theta) * GPy.kern.RBF(d, variance=var, lengthscale=theta)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "A summary of the kernel can be obtained using the command `print k`. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "display(k)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "
add.ValueConstraintPriorTied to
rbf.variance 1.0 +ve
rbf.lengthscale 0.2 +ve
Brownian.variance 10.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is also possible to plot the kernel as a function of one of its inputs (whilst fixing the other) with `k.plot()`. \n", "\n", "*Note*: if you need help with a command in ipython notebook, then you can get it at any time by typing a question mark after the command, e.g. `k.plot?`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "k.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n+VRWVqacnBytXr1aklRRUaGSkhLV1dUpMzNTycnJevrpp80qBwDwBYefJnpYHn74Yd1+++1qbW1V\nqlW3brKB22+/XevXr9fIkSM1Y8YMPf3000pJSbG6rKhxu91avny5fD6fysvLdccdd1hdkmW8Xq+u\nu+467dmzRw6HQzfeeKNuueUWq8uyjM/nU35+vpxOp1626darfHI3DF6vV6+//rqmTJlidSmW+/a3\nv633339fW7du1Ve/+lXdd999VpcUNaF8RiWeJCUl6ZFHHtH777+vjRs36te//nVcvx+PPvqoZs2a\nFfICFysQ/GH48Y9/rAceeMDqMmxh3rx5Svhis5uCggI1NzdbXFH0hPIZlXgyefJknXvuuZKkMWPG\nKCcnR5999pnFVVmjublZdXV1Ki8vt/WKRII/RLW1tXI6nTrnnHOsLsV2nnrqKZWUlFhdRtS0tLQo\nIyOj+7nT6VRLS4uFFdlHU1OTtmzZooKCAqtLscStt96qBx98sHtSZFemXdwdjubNm6ddu3ad8v17\n7rlH9913n1577bXu79n5X/NICfR+3HvvvVqwYIEk470ZOXKkrr766miXZxk7/wpvpfb2dl1xxRV6\n9NFHNWbMGKvLibr169dr0qRJysvLs/1+PQR/D6+//nq/3//Xv/6lTz75RLm5uZKMX+e+9rWvqaGh\nQZMmTYpmiVEV6P046ZlnnlFdXZ3efPPNKFVkD6F8RiXedHZ26vLLL9c111yjhQsXWl2OJd577z2t\nW7dOdXV1Onr0qNra2nTdddd1L1m3E1b1DMK0adO0efPmuF7V43a7ddttt+ntt9/WxIkTrS4nqk6c\nOKGZM2fqzTff1FlnnaXzzz9f1dXVysnJsbo0S/j9fi1evFgTJkzQI488YnU5tvD222/roYceYlVP\nLOFXfenmm29We3u75s2bp7y8PP3whz+0uqSo6fkZlVmzZunKK6+M29CXpHfffVfPPfec3nrrLeXl\n5SkvL09ut9vqsixn55xgxg8AcYYZPwDEGYIfAOIMwQ8AcYbgB4A4Q/ADYdq0aZNyc3N17NgxdXR0\naPbs2dq+fbvVZQEhY1UPMAh33XWXjh49qiNHjigjIyOud+fE8EPwA4PQ2dmp/Px8jR49Wn/7299s\nvWYb6ItWDzAIra2t6ujoUHt7u44cOWJ1OUBYmPEDg+ByuXT11Vdr586d+vzzz/XYY49ZXRIQMjZp\nA8K0Zs0ajRo1SqWlperq6tLcuXPl8XhUVFRkdWlASJjxA0CcoccPAHGG4AeAOEPwA0CcIfgBIM4Q\n/AAQZwh+AIgz/w8dDQbGmblUSwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 227 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting Covariance Function Parameters\n", "\n", "The value of the covariance function parameters can be accessed and modified using `k['.*var']` where the string in bracket is a regular expression matching the parameter name as it appears in `print k`. Let's use this to get an insight into the effect of the parameters on the shape of the covariance function. \n", "\n", "We'll now use to set the lengthscale of the covariance to different values, and then plot the resulting covariance using the `k.plot()` method." ] }, { "cell_type": "code", "collapsed": false, "input": [ "k = GPy.kern.RBF(d) # By default, the parameters are set to 1.\n", "theta = np.asarray([0.2,0.5,1.,2.,4.])\n", "for t in theta:\n", " k['.*lengthscale']=t\n", " k.plot()\n", "pb.legend(theta)\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 230, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 230 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 1\n", "\n", "a) What is the effect of the lengthscale parameter on the covariance function?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 1 a) answer" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Now change the code used above for plotting the covariances associated with the length scale to see the influence of the variance parameter. What is the effect of the the variance parameter on the covariance function?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 1 b) answer\n", "#k=GPy.kern.RBF(d)\n", "#var=np.asarray([0.2,0.5,1.,2.,4.])\n", "#for v in var:\n", "# k['.*variance']=v\n", "# k.plot()\n", "#pb.legend(var)\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 231 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Covariance Functions in GPy\n", "\n", "Many covariance functions are already implemented in GPy. Instead of rbf, try constructing and plotting the following covariance functions: `exponential`, `Matern32`, `Matern52`, `Brownian`, `Linear`, `Bias`,\n", "`Rbfcos`, `Periodic_Matern32`, etc. Some of these covariance functions, such as `Rbfcos`, are not\n", "parametrized by a variance and a lengthscale. Furthermore, not all kernels are stationary (i.e., they can\u2019t all be written as $k ( x, y) = f ( x \u2212 y)$, see for example the Brownian\n", "covariance function). For plotting so it may be interesting to change the value of the fixed input:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "kb = GPy.kern.Brownian(input_dim=1)\n", "inputs = np.array([2., 4.])\n", "for x in inputs:\n", " kb.plot(x,plot_limits=[0,5])\n", "pb.legend(inputs)\n", "pb.ylim(-0.1,5.1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 232, "text": [ "(-0.1, 5.1)" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 232 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing the Covariance Function given the Input Data, $\\mathbf{X}$\n", "\n", "Let $\\mathbf{X}$ be a $n$ \u00d7 $d$ numpy array. Given a kernel $k$, the covariance matrix associated to\n", "$\\mathbf{X}$ is obtained with `C = k.K(X,X)` . The positive semi-definiteness of $k$ ensures that `C`\n", "is a positive semi-definite (psd) matrix regardless of the initial points $\\mathbf{X}$. This can be\n", "checked numerically by looking at the eigenvalues:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "k = GPy.kern.Matern52(input_dim=2)\n", "X = np.random.rand(50,2) # 50*2 matrix of iid standard Gaussians\n", "C = k.K(X,X)\n", "eigvals = np.linalg.eigvals(C) # Computes the eigenvalues of a matrix\n", "pb.bar(np.arange(len(eigvals)), eigvals)\n", "title('Eigenvalues of the Matern 5/2 Covariance')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nkiSpM/w/vhhgdU+3TFcAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Combining Covariance Functions\n", "\n", "### Exercise 2\n", "\n", "a) A matrix, $\\mathbf{K}$, is positive semi-definite if the matrix inner product, $\\mathbf{x}^\\top \\mathbf{K}\\mathbf{x}$ is greater than or equal to zero regardless of the values in $\\mathbf{x}$. Given this it should be easy to see that the sum of two positive semi-definite matrices is also positive semi-definite. In the context of Gaussian processes, this is the sum of two covariance functions. What does this mean from a modelling perspective? " ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 2 a) answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Hint*: there are actually two related interpretations for this. Think about the properties of a Gaussian distribution, and where the sum of Gaussian variances arises.\n", "\n", "What about the element-wise product of two covariance functions? In other words if we define\n", "\n", "\\begin{align*}\n", "k(\\mathbf{x}, \\mathbf{x}^\\prime) = k_1(\\mathbf{x}, \\mathbf{x}^\\prime) k_2(\\mathbf{x}, \\mathbf{x}^\\prime)\n", "\\end{align*}\n", "\n", "then is $k(\\mathbf{x}, \\mathbf{x}^\\prime)$ a valid covariance function?" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 2 b) answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Combining Covariance Functions in GPy\n", "\n", "In GPy you can easily combine covariance functions you have created using the sum and product operators, `+` and `*`. So, for example, if we wish to combine an exponentiated quadratic covariance with a Matern 5/2 then we can write" ] }, { "cell_type": "code", "collapsed": false, "input": [ "kern1 = GPy.kern.RBF(1, variance=1., lengthscale=2.)\n", "kern2 = GPy.kern.Matern52(1, variance=2., lengthscale=4.)\n", "kern = kern1 + kern2\n", "display(kern)\n", "kern.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
add.ValueConstraintPriorTied to
rbf.variance 1.0 +ve
rbf.lengthscale 2.0 +ve
Mat52.variance 2.0 +ve
Mat52.lengthscale 4.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nIiIiIiLiDf8PVxAkViLFcFYAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or if we wanted to multiply them we can write" ] }, { "cell_type": "code", "collapsed": false, "input": [ "kern = kern1*kern2\n", "display(kern)\n", "kern.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
mul.ValueConstraintPriorTied to
rbf.variance 1.0 +ve
rbf.lengthscale 2.0 +ve
Mat52.variance 2.0 +ve
Mat52.lengthscale 4.0 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nSUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sampling from a Gaussian Process\n", "\n", "The Gaussian process provides a prior over an infinite dimensional function. It is defined by a covariance *function* and a mean *function*. When we compute the covariance matrix using `kern.K(X, X)` we are computing a covariance *matrix* between the values of the function that correspond to the input locations in the matrix `X`. If we want to have a look at the type of functions that arise from a particular Gaussian process we can never generate all values of the function, because there are infinite values. However, we can generate samples from a Gaussian *distribution* based on a covariance matrix associated with a particular matrix of input locations `X`. If these locations are chosen appropriately then they give us a good idea of the underlying function. For example, for a one dimensional function, if we choose `X` to be uniformly spaced across part of the real line, and the spacing is small enough, we'll get an idea of the underlying function. We will now use this trick to draw sample paths from a Gaussian process. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "k = GPy.kern.RBF(input_dim=1, lengthscale=0.2)\n", "X = np.linspace(0.,1.,500)\n", "X = X[:,None] # reshape X to make it n*p --- we try to use 'design matrices' in GPy \n", "\n", "mu = np.zeros((500)) # vector of the means --- we could use a mean function here, but here it is just zero.\n", "C = k.K(X,X) # compute the covariance matrix associated with inputs X\n", "\n", "# Generate 20 separate samples paths from a Gaussian with mean mu and covariance C\n", "Z = np.random.multivariate_normal(mu,C,20)\n", "\n", "pb.figure() # open a new plotting window\n", "for i in range(20):\n", " pb.plot(X[:],Z[i,:])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nofNnNT8/wgAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 252 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our choice of `X` means that the points are close enough together to look like functions. We can see the structure of the covariance matrix we are plotting from if we visualize C." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.matshow(C)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 253, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nRK5CYII=\n", "text": [ "" ] } ], "prompt_number": 253 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now try a range of different covariance functions and values and plot the corresponding sample paths for each using the same approach given above." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Try plotting sample paths here" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 254 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 3\n", "\n", "Can you tell the covariance structures that have been used for generating the\n", "sample paths shown in the figure below?\n", "
\n", "
\n", "\"Figure \n", "\"Figure\n", "\"Figure \n", "\"Figure\n", "\"Figure \n", "\"Figure\n", "
\n" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 3 answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A Gaussian Process Regression Model\n", "\n", "We will now combine the Gaussian process prior with some data to form a GP regression model with GPy. We will generate data from the function $f ( x ) = \u2212 \\cos(\\pi x ) + \\sin(4\\pi x )$ over $[0, 1]$, adding some noise to give $y(x) = f(x) + \\epsilon$, with the noise being Gaussian distributed, $\\epsilon \\sim \\mathcal{N}(0, 0.01)$. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.normal?" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 255 }, { "cell_type": "code", "collapsed": false, "input": [ "X = np.linspace(0.05,0.95,10)[:,None]\n", "Y = -np.cos(np.pi*X) + np.sin(4*np.pi*X) + np.random.normal(loc=0.0, scale=0.1, size=(10,1)) \n", "pb.figure()\n", "pb.plot(X,Y,'kx',mew=1.5)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 256, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nI488Mmeb+eZm1oL/xo0bZvXq1ebcuXPm+vXrpra21pw5c2ZGm7feesuEw2FjjDGDg4Omvr4+W+Vl\nVTJ9cfz4cXPlyhVjzM3/ADb3xXS7zZs3m6amJnP48OEcVJp5yfTF5cuXzZo1a0w8HjfG3Ay/QpRM\nXzz//PPmJz/5iTHmZj+sWLHCTExM5KLcjPrb3/5mTp48OWfwp5KbWduyIRaLqaKiQuXl5SopKVFL\nS4uOHj06o01vb69aW1slSfX19bpy5YrGxsayVWLWJNMXjz76qJYuXSrpZl8MDw/notSMS6YvJOml\nl17S97//fa1cuTIHVWZHMn3xhz/8Qd/73vdUVlYmSXrwwQdzUWrGJdMXq1at0meffSZJ+uyzz/Sl\nL31JxcWFt/1YQ0ODli9fPuf7qeRm1oJ/ZGREfr8/cVxWVqaRkZH7tinEwEumL27329/+Vlu2bMlG\naVmX7PfF0aNHtXPnTkmF+3cfyfTF0NCQxsfHtXnzZtXV1el3v/tdtsvMimT6oq2tTR988IG+8pWv\nqLa2dsausDZJJTez9uMx2f+s5o4VQoX4n3w+/6Z33nlHr7zyit57770MVpQ7yfTFc889p71798px\nnMQ+/4Uomb6YmJjQyZMn9de//lXXrl3To48+qm9+85uqrKzMQoXZk0xf7NmzR+vXr1c0GtU///lP\nNTY26vTp01qyZEkWKswv883NrAW/z+dTPB5PHMfj8cSvq3O1GR4els/ny1aJWZNMX0jSP/7xD7W1\ntcl13Xv+qreQJdMXf//739XS0iJJunTpkvr7+1VSUqLm5uas1pppyfSF3+/Xgw8+qAceeEAPPPCA\nHn/8cZ0+fbrggj+Zvjh+/Lh+/vOfS5JWr16tr371q/rwww9VV1eX1VpzLaXcTNsdiPuYmJgwDz/8\nsDl37pz573//e9+bu++//37B3tBMpi8++eQTs3r1avP+++/nqMrsSKYvbvfjH/+4YFf1JNMXZ8+e\nNU888YS5ceOGuXr1qnnkkUfMBx98kKOKMyeZvujo6DCdnZ3GGGNGR0eNz+cz//nPf3JRbsadO3cu\nqZu7yeZm1kb8xcXF2r9/v4LBoCYnJ7Vjxw5VV1frwIEDkqT29nZt2bJFfX19qqio0OLFi3Xw4MFs\nlZdVyfTFL37xC12+fDkxr11SUqJYLJbLsjMimb6wRTJ9UVVVpVAopHXr1ukLX/iC2tratGbNmhxX\nnn7J9MXPfvYzbd++XbW1tZqamtKvfvWrgtwFeNu2bXr33Xd16dIl+f1+dXV1aWJiQlLquel5kzYA\nwMLCE7gAwDIEPwBYhuAHAMsQ/ABgGYIfACxD8AOAZf4HDtHyBwUsrUAAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 256 }, { "cell_type": "markdown", "metadata": {}, "source": [ "A GP regression model based on an exponentiated quadratic covariance function can be defined by first defining a covariance function, " ] }, { "cell_type": "code", "collapsed": false, "input": [ "k = GPy.kern.RBF(input_dim=1, variance=1., lengthscale=0.2)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 265 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And then combining it with the data to form a Gaussian process model," ] }, { "cell_type": "code", "collapsed": false, "input": [ "m = GPy.models.GPRegression(X,Y,k)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 266 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just as for the covariance function object, we can find out about the model using the command `print m`. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "display(m)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "

\n", "Model: GP regression
\n", "Log-likelihood: -413.019393422
\n", "Number of Parameters: 5
\n", "

\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
GP_regression.ValueConstraintPriorTied to
add.rbf.variance 243.874122742 +ve
add.rbf.lengthscale (2,) +ve
add.bias.variance 94.4144417427 +ve
Gaussian_noise.variance 1e-05 fixed
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that by default the model includes some observation noise\n", "with variance 1. We can see the posterior mean prediction and visualize the marginal posterior variances using `m.plot()`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "m.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 268, "text": [ "{'dataplot': [],\n", " 'gpplot': [[],\n", " [],\n", " [],\n", " []]}" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\np66urmSUmrBEzgngO9/5Dvfffz+FhYVJqPLaJHJOP/3pT/n4xz9ORUUFAAUFBckoNWGJnFNpaSlj\nY2MAjI2NkZ+fj8Uyr4PSZu3mm28mLy/vAx9P9YzIqNDu7u6msrJy6uuKigq6u7uv+pxUDrlEzum9\n/u3f/o277757IUqbsUT/n1588UUee+wxIPXH/CdyTmfPnmVoaIjbbruNtWvX8uMf/3ihy7wmiZzT\no48+yvHjxykrK6O5uZlvf/vbC13mnEv1jEjtS+I1SvQPW71v/HgqB8K11Pb73/+eZ555ht27d89j\nRbOXyDl96Utf4sknn5zadun9/2epJpFzikajHDx4kNdee43JyUk2btzIjTfeSH19/QJUeO0SOacn\nnniCNWvWsHPnTlpaWti2bRuHDx/G4/EsQIXzJ5UzIqNCu7y8nM7OzqmvOzs7p96KftBzurq6KC8v\nX7Aar1Ui5wRw5MgRHn30UbZv337Ft36pIJFzOnDgAA888AAQv9n129/+FqvVyh/90R8taK2JSuSc\nKisrKSgowOl04nQ6ueWWWzh8+HDKhnYi5/Tmm2/yta99DYDa2lqWLFnC6dOnWbt27YLWOpdSPiOS\n26U+t6LRqFq6dKlqbW1V4XD4qjci33rrrZS7yfB+iZxTe3u7qq2tVW+99VaSqrw2iZzTe/35n/+5\n+tWvfrWAFV67RM7p5MmTauvWrSoWi6mJiQm1cuVKdfz48SRVfHWJnNNf/uVfqscff1wppZTP51Pl\n5eXK7/cno9xr0tramtCNyFTMiIxqaVssFp5++mnuuOMOdF3ns5/9LI2NjfzgBz8A4POf/zx33303\nr7zyCnV1dbjdbp599tkkV31liZzT3/7t3zI8PDzV/2u1Wtm3b18yy76iRM4p3SRyTg0NDdx5552s\nXr0ak8nEo48+SlNTU5Ir/2CJnNNXv/pVHn74YZqbmzEMg3/4h3/A6/UmufIre/DBB3n99dcZHByk\nsrKSb37zm0SjUSA9MmJeF4wSQggxtzJq9IgQQmQ6CW0hhEgjEtpCCJFGJLSFECKNSGgLIUQakdAW\nQog08v8DBV1SMlt+OAgAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 268 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The actual predictions of the model for a set of points `Xstar`\n", "(an $m \\times p$ array) can be computed using `Ystar, Vstar, up95, lo95 = m.predict(Xstar)`\n", "\n", "## Exercise 4\n", "\n", "a) What do you think about this first fit? Does the prior given by the GP seem to be\n", "adapted?" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 4 a) answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) The parameters of the models can be modified using a regular expression matching the parameters names (for example `m['noise'] = 0.001` ). Change the values of the parameters to obtain a better fit." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 4 b) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 269 }, { "cell_type": "markdown", "metadata": {}, "source": [ "c) As in Section 2, random sample paths from the conditional GP can be obtained using\n", "`np.random.multivariate_normal(mu[:,0],C)` where the mean vector and covariance\n", "matrix `mu`, `C` are obtained through the predict function `mu, C, up95, lo95 = m.predict(Xp,full_cov=True)`. Obtain 10 samples from the posterior sample and plot them alongside the data below." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 4 c) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 270 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Covariance Function Parameter Estimation\n", "\n", "As we have seen during the lectures, the parameters values can be estimated by maximizing the likelihood of the observations. Since we don\u2019t want one of the variance to become negative during the optimization, we can constrain all parameters to be positive before running the optimisation." ] }, { "cell_type": "code", "collapsed": false, "input": [ "m.constrain_positive('.*') # Constrains all parameters matching .* to be positive, i.e. everything" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[0 1 2]\n", "WARNING: reconstraining parameters ['rbf.variance', 'rbf.lengthscale', 'Gaussian_noise.variance']\n" ] } ], "prompt_number": 271 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The warnings are because the parameters are already constrained by default, the software is warning us that they are being reconstrained.\n", "\n", "Now we can optimize the model using the `m.optimize()` method." ] }, { "cell_type": "code", "collapsed": false, "input": [ "m.optimize()\n", "m.plot()\n", "print m" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " GP_regression. | Value | Constraint | Prior | Tied to\n", " \u001b[1mrbf.variance \u001b[0;0m | 0.675369033494 | +ve | | \n", " \u001b[1mrbf.lengthscale \u001b[0;0m | 0.127867676628 | +ve | | \n", " \u001b[1mGaussian_noise.variance\u001b[0;0m | 0.00698660648594 | +ve | | \n" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD5CAYAAADcDXXiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4XNW1t98zTb333ovlKttyk4twAQzYGNMTgsEkHzgB\nArk3IaQRbggXcrk3jVATCMQJoQVsgjHGuFcJI8tFvYx673U05Xx/jC1prGq1GUn7fR49lmb2nLOO\npfnNOmuvIsmyLCMQCASCaYXC2gYIBAKBYPwR4i4QCATTECHuAoFAMA0R4i4QCATTECHuAoFAMA1R\nWdsAAEmSrG2CQCAQTEkGS3i0Gc9dlmWrfz311FNWt0Fc08y9LnFNU+PLlq5pKGxG3AUCgUAwfghx\nFwgEgmmIEPc+pKSkWNuEcWc6XhNMz+sS1zQ1mCrXJMnDBW4mwwhJGjZ+JBAIBAJLhtJO4bkLBALB\nNGRM4l5aWso111zD7NmzmTNnDn/4wx8GXPfoo48SExPD/PnzSU9PH8spBQKBQDACxpTnrlar+e1v\nf8uCBQtoa2tj0aJFbNiwgVmzZvWs2bNnD/n5+eTl5XH69Gl27NjBqVOnxmy4QCAQCAZnTOLu7++P\nv78/AM7OzsyaNYuKigoLcd+9ezfbtm0DYOnSpTQ1NVFdXY2fn5/FsX75y1/2fJ+SkjJlNi0EAoFg\nsjh06BCHDh0a0dpx21DVarWsWbOGixcv4uzs3PP4pk2bePLJJ1mxYgUA69ev5/nnn2fRokW9RogN\nVYFAILhqJnxDta2tjdtuu43f//73FsJ+mStPLtoNCAQCwcQyZnHX6/Xceuut3HPPPWzZsqXf80FB\nQZSWlvb8XFZWRlBQ0FhPKxAIBIIhGJO4y7LMAw88QEJCAo899tiAazZv3szbb78NwKlTp3B3d+8X\nbxcIBALB+DKmmPuxY8dYvXo18+bN6wm1PPvss5SUlADw4IMPAvDwww+zd+9enJycePPNN1m4cKGl\nESLmLhAIBFfNUNopKlQFAoFgiiIqVAUCgWCGIcRdIBAIpiFC3AUCgWAaYhNj9gQCgUAwNCZZJkdb\nh7a6hW6DCb1x6H1KIe4CgUBgw9Q2tpOaXUlHlwFvD2dCAr1GVAgqxF0gEAhskOa2Lg6ml4BCQXSI\n91VX9gtxFwgEAhtClmWOnSujqrGD+AhfFIrRbY2KDVWBQCCwETq6unn/QBaSSk1ClP+ohR2E5y4Q\nCAQ2QXltK4fPljInNgDlGET9MkLcBQKBwMrklTZwrrCO+fHj11RRiLtAIBBYkezierJLG4mPHN+G\niiLmLhAIBFYiv7yRzJJGYsJ8xv3YQtwFAoHAClTWtXI2v5a48PEXdhDiLhAIBJNOR5eeQ2dLmTXO\noZi+CHEXCASCScRoMrHraC6zYwIm9DxC3AUCgWAS+SJNS1Soz7ikOw6FyJYRCKYQnTo9Jy+U064z\nYDIByKiVCpwd1CyfE4xaJfw1Wya7uA4TEk6OdhN+LiHuAsEUoFtv5PPUQrr0MtFh3viplBbPd3bp\n+ehoLm6OGtYvDkepFCJva3To9HydV8P8uPHLZR+KMf0FbN++HT8/P+bOnTvg84cOHcLNzY3ExEQS\nExN55plnxnI6gWBGkl1cz78O5xIS6EVClB+aK4QdwMFezezoALw8XXnvYA6l1S1WsFQwFJ+eKGB2\n9MTG2fsyJs/9/vvv55FHHuHee+8ddM2aNWvYvXv3WE4jEMxYTmeWU9vczdy4wBGtd7BXMy8ukLTc\nGhpaOpkfM3HZGIKRczqzHG9PF1STeEc1JnFftWoVWq12yDUjHXz9y1/+suf7lJQUUlJSRm+YQDAN\nOH6+jPZuExHBnlf92rhwH4rLGzGaqlgY5z8B1glGSnunnpLqNhKix/57SDt5jLRTx0a0VpJHqr6D\noNVq2bRpE+fPn+/33OHDh9m6dSvBwcEEBQXxwgsvkJCQ0N+IISZ4CwQzkbSsCurbugnx9xjTcbTl\nDYT6OjE30necLBNcLR8dziEq3HdCsmPmhLoPqp0Teo+wcOFCSktLycjI4JFHHmHLli0TeTqBYFqQ\nX95IVWPnkMJ+7NB+ize1LMscO7S/37rwIE/yypspqxExeGuQXVyHg6P9hKc9DsSEntHFxQVHR0cA\nNm7ciF6vp6GhYSJPKRBMaVrbdZzJqSYyxHvQNccO7eehe2/j+ad/gizLyLLM80//hIfuvW1AgY8L\n9+XouTI6dfqJNF1wBUajifT8WkL83a1y/glNhayursbX1xdJkkhNTUWWZTw9rz5+KBDMBGRZ5rNT\nhcPGZpPXrOOe7TvY+cbLPY/tfONl7tm+g+Q16wZ8TUJUAHtOFHDrNfHjarNgcA6lFxMZ7GW1849J\n3O+++24OHz5MXV0dISEhPP300+j1Zu/gwQcf5IMPPuDll19GpVLh6OjIP//5z3ExWiCYjhzJKCPQ\n32PY6TuSJPHEU88C9Aj8Pdt38MRTzw46Z1OlUuDt5crJC2UsnxM8voYL+tHSrqOxXY+/38QXKw3G\nmMT9nXfeGfL5733ve3zve98byykEghlBZUMb9a064sJdJ+wc3h5OZBfVUN/cgZeb44SdRwAHvi4m\ndoK6PY4Umylja2jptLYJAoHVOHq2lNiwwePslzEaTWQWVPL/HvgOO994mcTVN5N83e3sfONlnn/6\nyWGzzuLCfThwpni8zBYMQGl1CwqVyiqbqH2xmfYDn50qYvPKKFwmoeeCQGBLnLpYjp+326AhFYBu\nvYE9hy+y++B5irPPUJ32Aa7hyTQ4LaUBcA2vYOcbr2DvE8sjO+4bVFgkScLX243UzAqWJIysMEpw\ndZzOrGDWJFaiDsaY89zHxQhJ4py2gXM5FdyxdpZofiSYMXTrjXx0NI85Q7R/zSqo4vdvH6SsugkA\nPy8XvBQ1JCWnAFBW3cSZCyVUFmbg4BNLTLgvj30rhbCgwTfzzudWsHV1LBp1/1YGgtGTqa2lvL6L\nQN+JC6/1Zag8d5sR9wslTej1RnK11dx2TTyKIbwYgWC6sOdkAQF+HoOK7N6jmbz0zhFMJplgf3fu\nv2U5SXPDUCgs3x8Go5FjZwp5818nqW9qx95OxQ/uW8eKxMgBj9vVbaC6pokblkeN+zXNVGRZ5r2D\nOUN+UI83VitiulrUaiXB/h7sO11kbVMEggmnvrmDLr1pUGHfuTuVF/9+GJNJ5pb18/nDT29n6fzw\nfsIOoFIqSVkSw8u/vIu1S2Pp0hl49tXP+fTwhQGPba9R0ak3UtfUMa7XNJNJy64k0NfN2mb0YFPi\nDuDm4oBKoyY1s8LapggEE8rRc2XEDLKJ+t5nZ/jnnjMoFBLf/1YKD9y2Ao16+C0yR3sNj9+3lvtv\nWQbAy+8cZe/RzAHXxob5cDijdPQXIOjBJMsUVbXgaUNZSDYn7gABPq5UNHaKtqWCaUtVQzuSpBww\np33f8Sze3pWKJMF/3r+ODcmzrurYkiRx63WJfOeOZAD+9I/DnD6n7bdOoVDg6GhHXqmoGh8rqRcr\nCPKxHa8dbFTcAWJCvTlyrgyD0WRtUwSCcefkhXKiQvtveGYVVvHSO0cA+O7dq1mdFDPqc9y8dh73\nbF6CLMMLf9mPtry+35pQfw/O5teM+hwCMJlkimta8bAhrx1sWNwBZkX68e8T+dY2QyAYV6rq25EU\nyn6pj82tnfz3q59jMJjYdM1cNq6ePeZz3blxIWuSounU6Xn2lc/p6Orut8bLw5lz+dVjPtdM5XRW\nBUF+tuW1g42Lu51GhZOjPRl54g9PMH04ebGc6Cu8dlmW+ePOQzQ0dzA7OoAHbls+LueSJIlHv3UN\nEUFeVNQ288o/j/Zb4+flQnZpo2i7PQpMJpmS6lY8XG3LawcbF3eAQF83sssaaW3XWdsUgWDMVDe0\noxjAa99/IptTGVoc7TX8x/3rUCnHL//cTqPiR9/egJ1axYFTuRxJy+u3xtfThfRc4URdLaezKmwq\nQ6YvNi/uYA7P7EsT6ZGCqc/Ji/1j7Q3N7bz+/gkAdty9Cl8vl3E/b0iAB9++fQUAr7x7jOZWy3Yf\nPp7O5Fc0Ce/9KrjstdtShkxfpoS4KxUK3NycyRCehWAK09Kuw4jUz2t//f0TdHR1s2RuGClLRr+B\nOhzXr0pgflwQLW1dvPZe/1Ft/t6ufJ1TNWHnn26ctrG89iuZEuIOEODtQmZJA916o7VNEQhGxdGM\nUmJCLfPav75YwtGv8rHTqHjorlVD9pcB0OkNZBZUk1tUQ2FJLQUlteRqa8jR1mAcJrNMkiQeuScF\nO7WKw2n5ZGSXWTzv5e5EQWWz8N5HgMkkU2pjee1XMmXEHczhmc9TC61thkBw1egNRtq6DBYNvQxG\nI6+9fxyAb9y4eMhwjN5g5EJeJQ0NLWxeEcktq2PYlBzN5uRoblkVw4ZFYVRUN3IxvxKjaXCR9/dx\n5c4bFgLw+vvH+60N8HHja5HAMCxp2ZUE2LDXDlNM3NVqJQqlCm1lk7VNEQiuimPnyvqNztt7NIuy\nqiYCfdzYvG7eoK+tqG2huKyeW1bFsH5xBHaa/pWqLo4arl8ayQ1LI8krrKahefC2AlvWz8fXywVt\neQP7jmVZPOfp5khRhXh/DYVJlim2ca8dppi4g3ngb2pWlbh1FEwZZFmmrrkTR3t1z2PtnTr+8Uka\nAPdvXYZaNXB2TGFZPW72Sm5eFTOiDo7OjhpuvSYek0FPSdXAIq1Rq9i+1Zxq+bfdqbR1WGaiubs5\nc7GwdkTXNhP5KquSAJ/J6fo4FqacuAME+Lpx+qLoPSOYGpwvqMHH0zLksvvAeVrau5gdHcCyBRED\nvi6vtI7oQNdR9V1fsyAUXxcNJRWNAz6fvDCS2dEBtLR18e6eMxbPBXi7kCVaEgyILMtoq1vwdHey\ntinDMiZx3759O35+fsydO3fQNY8++igxMTHMnz+f9PT0sZyuB083R4qrW9AbRGsCge1TUN6Mj6dz\nz89tHTo+3p8BwD2blwy4iVpU1kCMvwuzRjCdaTAWxQfg5aKhbAAPXpIkvnNHMpIEnxw8T3mN5Rpn\nR3sKykV45kq+zqnC39v2vXYYo7jff//97N27d9Dn9+zZQ35+Pnl5ebz22mvs2LFjLKezIDrcl/1f\nacfteALBRFBR14r6ihj57gPnaO/sZl5cEHNj+3vl1XWt+LhpmB3pO+bzL0kIRK2QaWjuP8YyOtSH\n9cvjMRhN/H13msVzIf7uZIieMxbIskxBZTNeU8BrhzGK+6pVq/Dw8Bj0+d27d7Nt2zYAli5dSlNT\nE9XV47MTb69R0aEz0NgqZq8KbJczOdWEB3n2/NzWoWPXl+cA+MZNi/ut7+jU0dHRydKEoHGzYe2i\ncGrqmgZMI/7mpiRUKgVHz+RTfEVjMZVaRUVt67jZMdWZSl47TPAM1fLyckJCQnp+Dg4OpqysDD8/\nv35rX/rtcz3fJy1bSdLylcMePzbch8NnS9myKnZ8DBYIxhGD0USHzmARdrnstc+PC2JOjKXXLssy\n+SX13LE2btxt2bwylg8OZjMv3vJDw9vDmY2rZvPJwfP849OvePL/XdfzXGSwJ6lZlWzxGf+K2anG\nZa99tpVno6adPEbaqf4FaAMx4QOyr8xqGaxI47uP//iqj61QKFCpNRRXNRPmb9s5p4KZx8kL5UQE\nD+y13z2A155XXEfKwpBBh1uPBbVKQfK8YM7m1xJ1RSHVbdcl8vmxTI5/XUhhaV1PyqYkSRiBhpZO\nPF0dxt2mqcTXedX4elr/Qy5puaXj29cpvpIJzZYJCgqitLR30ktZWRlBQeN3uwkQEeTBV6JkWmCD\n1DR14ORg1/Pzvw+eH9Rrb2zpxMvVjoA+G6/jTaifK872SlqvSH30cnfihkvthf/xb8vYe0yYD8fP\nW1ayzjRkWaagvMliU3wqMKHivnnzZt5++20ATp06hbu7+4AhmbHi5GhPXtnAKV8CgTUorW7B3l7T\n83O33sC/D5nnmd6xcWG/9RU1TayaFzzhdqUsDBtwaMet1yVip1ZxKkNLfnFvjrtSoaBLL9PepZ9w\n22yV9Lxq/LymTqz9MmMS97vvvpsVK1aQk5NDSEgIb7zxBq+++iqvvvoqADfccAORkZFER0fz4IMP\n8tJLL42L0VcidvYFtsbZ/BrCAnqTDQ6n5dPU2klEsBfz4izvXgvK6lkxO3DYvjLjgUKSSJ4dRGGZ\npcB7uDpy4zVzAPj7Fd57bJgPR86WTLhttogsy+SXN+HtMTUyZPoyppj7O++8M+yaF198cSynGDFu\nLo5kFtWSEOEzKecTCAbDYDTR2d27kSrLMru+NOe1b1k/30LE9QYjCpORYN/J8wxD/FzJyK9GbzBa\nVMbeumEBnx68QNr5YorK6okINrcmVqkUtHTo0RtMqFVTsu5x1KRlVhDo625tM0bFtPlNBfq6clEr\nquoE1ufk+TLCg3p7tmdkl6Mtb8DD1ZHVi6Mt1uYU1bA+aeAK1YlkfVIEOUWWd7tuLg5ct9I8jPuD\nfZYFh1Eh3hzNmFneu8lkoqi6FY8pupk8bcQdwNvTmQwxC1JgZepaunBy6I23f3zJa78xZY6Fp9za\n3oW/pyP2AzQCm2jsNSpCfZ1pbLGsE9myYT5KhYKjaflU1bb0PO5gr6a2uWvIjpPTjRPnywgN9Bx+\noY0yrcTd19OZvFKxsSqwHtUN7Sj7jMgrrWrkqwslaNRKNq5OsFhbXNHIqvkhVx5i0lg2O4jKK9oO\n+Hq6kLI0BpMs868vzlo8FxrgMWN6OhmNJsrqOnB1sht+sY0yrcQdwNPDmfMFYnNVYB2+yq4kvE9u\n++4D5wFYuywON+fe2/um1k7CfJ1RTMIm6mBIkkRciAfVDW0Wj9967QIAvjiRTWNLb+tgV2d7yura\nZkRH1kNnS/qNQ5xqTDtx9/NyIUd47wIrYJJl2nXGniKk9k4dB07lALB5rWVzvfLqJpbOHt+aj9Ew\nL9qPxiZLcQ8N8GTZggj0BmPPh9NlfL1cyZjmwzw6uvTUtXTh2CeVdSoy7cQdwM3VkYtFoh+1YHK5\nWFiLT5+UuYOn89B1G5gXF0RoQK8339TSSYSf66SkPo6EBVE+lF4xAOf26xIB+PTQBdo7e4uefDyc\nyK9onlT7Jpv9X2mJDx//epzJZlqKe6CPK1nFInNGMLkUVjT3jMqTZZm9Ry8C5sHUfSmvaWLxLOv2\nKOlLVLAnHV1dFuGWuAg/5sUF0dHVzWdHMi3Wu7k6klvSvxBqOlBa04JCpUQ1DVI+p/4VDIKLswN5\npdPzD1Bge+i6Dej6zBfILqpGW96Am4sDy/sM42hq6STM18VmvPbLLE0IpKjcMpx52yXv/eMvM+jW\nG3oeD/Rx5WLR9Hxvnb5YQfgUzpDpy7QV92A/N84V1lnbDMEM4cSFciJDejfg9h41e7vrl8dZpD+W\n1zSNarLSRBPk7YLRYLDw3hNnBRMV4k1TSyf7T+ZYrFdr1JRUt1x5mClNWlYFPt62Ey4bK9NW3AEc\nHewoFNNkBJNAQ6uOMycPI8sybe06jn6VjyzLeCp6M7faOnX4ezjarHgsjvdD22c4tiRJ3H69uQ/O\nv/adxWjsvTMJD/LgzDRq2NetN1JY2YL3FBnEMRKmtbiHBniInjOCCaeuuYOMr47z0L238fzTP+HL\nU9noug2oqg7z00e3cezQfgC0ZQ0kz5345mCjJdjHFYNeb+G9L0+MwEFfRmVtM8fTCwHzfsLxw1+i\n1qgpq50e3vtnpwqJDR/b5Ku2Dh252hpOni3iSFoeR9LySM8qpby6ySrFX5NfGjfJqDUqSqtbCPGb\nel3dBFODtKxKbr31Zooyd7DzjZcJOp1Da7uOFu1x7tm+g+Q169AbTLg5qlEqbdufSoz1JbO4idAA\ncz+Vk0cOkPXFn3ANT+aDvd6sXBjJb/7rp+x842Vefut9DN3zCPaZ2u+trOI67OzVaNTK4Rf3QZZl\nMguqOH6mgK+zSgecVXsZjVpJXIQfC+KDWbEwkhD/wSfYjRfTXtzDgzz5KqdKiLtgQpBlmfYuAyql\nkieeepaG5nb2fGhuc/3N+x/kiaeeRZIkCkpruT4pzMrWDk+YnxtfZ/fmsSevWcc37nuQf/z1Vb7a\nBz+sOcLnH+/knu07WJmynsKyBirrWgnwtv4gi9Gg0xvJyKtlbtzI90EMRiP7T+awa/85Sqt6N6HV\nKiXB/u74eDhjZ6fGZDLR0tZFVW0LtY1tnM+t4HxuBX/bnUpMuC+3rJtH8sKoCfvAn/biLkkSCqWS\n6sY2/DymVrN9ge1TXtOKnV1vsUtJZe+bXZLMb1pZltEosOg3Y8vMjfKmoKqJYD93JEniyaefo6C0\njtNffsjnl+5GLn9oRQZ7cjqzki2rp6a4//t4HrOi/Ee8/uTZIt788CQVteZcf093J1KWxLB8fgTR\nYT4Wm+d9aWnr4kJeBanntJw8W0Setobf/GU/Ph+dYsu6+Vy/KgG7ce4xNO3FHSAqxIvTFyvZvDLG\n2qYIphln82uICPFGlmWe/cUTXDjxCa7hyaxdFsvON14G4M7v/JAFsVOnKCY62JOMAssiwPAgT05f\n+r65tbclgSRJKFWqKem9Hz9XireX64hy2htbOnjpH0c4ebYIgCA/N+6+MYmViyJRKYcP57g627Mi\nMZIViZHsuNvAwdO5fLT/LOXVzbz+/nF2HTjH9q3LSV4YOW4b7jNC3CVJwiBLNLV14e5sb21zBNME\nkyz39G0/dmg/77z1Gq7hySy/YTu/emIrzo727HzjZSLiF3LTsm9b29yrYlaoJ5V1rfh5OfP80z/h\n3bdfJ3HNFgqKa/nk/bdwc3Hs8d4jgj05mVnJ1inkvRdXNdPQpicyZPhw7deZpfzfm1/S1NqJg52a\ne7cs5YbVs0cdTrHTqLh+VQLXJs8i7XwxO3enUlRez3Ov72NOTAAP3rmqp5f+WJBkG+gCJEkSF0om\nNmXRaDJRXFbHpmThvQvGh9zSBoqqWgn2N28+fvv7z1DZ5cnD31zDxtWzkWWZzz79lA3r1rEgduS3\n/rbCB4eyqS+9yEP33sY923fw7e//lAd+tpPa85/Qoj3OK29/wMqU9QBoKxpJCHEjInDiNwrHSle3\ngY+O5DFvmDi7LMt8uO8sb318ClmGeXFBPL5t7bjPUjWaTOw7lsXfdqXS0t6FSqngrhsWcdv1icPe\nFcwJdR+0kduM8NyhdxZkR5ceR3u1tc0RTAOyixuICjNP/qqpb6W62wuNWsmqSwM5JEkiPH4x82Om\nTkimLxH+bvh5r+CVtz8gec06JEli3bJ4PjeYWHnN+h5hBwgP9ODr3CqbF3dZlvn4SA4JUUMLu9Fo\n4o9/P8z+E9kAfOOmxdx5w6KepnDjiVKhYOPq2axaHM3bH59mz5GL7PwkjZMZRTy+ba3F4JerYcyW\n7t27l/j4eGJiYnj++ef7PX/o0CHc3NxITEwkMTGRZ555ZqynHDWxYT4cnqGzIAXji9FkDslc5sDp\nXGQZli+IwNnR3APcaDTh6qiy2aKl4VgY509lbTMrU9b3XMPWDQtQKCTy6p1obO6wWO/mZvsN+/ac\nLCAixGfIOLveYOQ3f/mC/SeysdOo+MmD1/GNm5ImRNj74uxox3e/sZpfP7YJXy8XCkrqeOy/P+Df\nhy6Mqs3ymKw1Go08/PDD7N27l8zMTN555x2ysrL6rVuzZg3p6emkp6fzs5/9bCynHBMqlYLWTj06\nvdFqNgimBxeLavHxMt+ey7LMlyfNHt76FfE9a/JL61kxx3aLloZDkiQCvJxo7ejtChns786y+Zfb\nAZ+zWB/g7cpFbb3N9ns/fq4URyeHng/fgdB1G/j1K3s5/nUhjvYanvn+JlYkRk6ilTA/PpgXf34H\n162chcFg4pV/HuW51/bR1uf3MBLGJO6pqalER0cTHh6OWq3mrrvuYteuXf3W2dIvOzrUh8PpxdY2\nQzDFKapoxs/TvIGYWVBFZW0LXu5OzI/v7dGuRMZlCk/yAVg+O4jicssOq5cbin16+GI/wQnyded0\npu1Na7pYWENzhxHfIeLlXd16/utPe/jqQgmuTvY8+4PNV5UmOZ442mt45J4Unvj2Bhzs1RxPL+T7\nz75PrnbkFfdjirmXl5cTEtI7Jiw4OJjTp09brJEkiRMnTjB//nyCgoJ44YUXSEhIuPJQvPTb53q+\nT1q2kqTlK8di2qDYaVQ0tnVjNJpsvlpQYJsYjCa6+tz9HbjUVGvtsrieW/fahnaiAt2sYt94olIq\n8HSxo0tnwN7OLBdxEX7Mjw8iI7uc3QfO8Y2bknrWu7s6cCGvkkVxJtQ20jZXW9FEbkULsZf2RwCO\nHdrfs48AoDcYePzJFyhtd8fD1ZFnHttEmA10h1y1OJroMB+ee30fBSV1PPLEC8T5dhMX4TdsuG9M\n//sjiSUuXLiQ0tJSMjIyeOSRR9iyZcuA6777+I97viZK2C8TGeLFkYzSCT2HYPpyJreKQF+zcOv1\nRo6lFwBwzdLeTKzaxlZmR/oM+PqpxpoFoeSVWMbS775xMQC7DpyzGOYBEBPuwxdpRZNm31BU1beS\nmlvdT9gv9wGSZRmj0cQ3v7GNo+8/j9RaxLOPb7YJYb9MgI8bL/xwK5uumYvaI4JCfRwtzgu5b8cP\nhnzdmMQ9KCiI0tJekSwtLSU42DLG6OLigqOjIwAbN25Er9fT0GDdQRqO9hpqmjpm1CR3wfhRUdeG\np5v5b/rrrFLaO7qJCPLqmbZkuNRHZqpupF6JRq3ExV6F3th7tzInJpC5sYG0d3Tz74MXLNbbqVXo\nTTKVda2TbaoFTW1dHDpbRkKkZbZS8pp13LPd3Afo+aef5L5t95N56lM8olbywq9+QEiA7WX8qNVK\nHrxzJT958DpzmObrQn7w3IdDvmZM4r548WLy8vLQarV0d3fz7rvvsnnzZos11dXVPTH31NRUcxtU\nT+t/KoYFenHqQrm1zRBMMXR6I936XqfgSFoeAKuTonseyy+rm9IbqQOxekEIuUWW8d7L3vvHX2bQ\n0dVt8VxUiDdHz5VZbb+to0vPpycKmBMT0O9DVpIknnjq2UsC/wrpR3bhFpHM7158ibhI265HWJEY\nye+evI0PXTyAAAAgAElEQVTQQM8hG5XBGMVdpVLx4osvct1115GQkMCdd97JrFmzePXVV3n11VcB\n+OCDD5g7dy4LFizgscce45///OdYTjluuDjZUVHfblObvQLbJy2rgvAgs3PSpdNzKkMLWIq7EnB2\nnBp9ZEaKi6MdGpUSU5+73bmxgSREB9DaruPTQ5beuyRJBPi6c/x82WSbit5g4qPDOcyNDRzy7qm6\nrrdd8cKEEBYmhAy61pYI8nPn/57Yypo+f3MDMWMqVAeisaUTjWSyyck4AtvkX4dzery7I2l5/OYv\n+4mP9OOFH20FzGP07JUyi+JtZ0bqeFHb1MHRc2XERfSGOc5mlfGz33+Cq5M9f/n1PThcUSCYXVRD\nyvwgvC6FsSYao9HE+weyiIsKGLSFryzL/OxHj7Pr3b/iGp5MfKQfqQf+ZdEQbSogyzJzwzwGdVBt\nYzvbSni4OqCtbhHeu2BEdOgMdPcpkTjyVT4Aqxf3elAVNc0kxtn2rf1o8XF37PdemR8fRHykHy3t\nXey6Iu8dIC7chy++0k7K/pbRZOK9g1nERPoP2Zt9397PeoR987e+z5/f+HNPDP744S8n3M7xYkKz\nZaYDQb7upNpgXq7A9jh9sYyYUHMpeFuHjq8ulqCQJFYtMou7LMs42itRTBHPbzQkxftT2GfwvCRJ\nbNuyFIAPP0+nqcWyatXcFtibfanaCbXL7LFnExPuh/0QrXP1BiMHM7vxS7qfJdffx+Pb1qJQKHji\nqWcteuVMB2a8uLu7OlBc0yq8d8GwNLZ1Y29nDjucTC/EYDAxNy4Qj0shh5LKJuZHjW1Um60T6ueG\nrtty83RubBBJc8Po1On5554z/V7j5GiHpFSQkVfd77nxwGAwh2Kiw31xsBu8b5Qsy7zyzlEu5FUS\nFL2An+/Y2NNDXZKkaSXsIMQdgGA/D05dFJkzgsFpbtdhNPY6AIfTzCGZNUm9ue1dXTqCfaf/xK+5\nkT6UXpGpcd+WpSgkic+OZFJe03//LMTfg4KqVkqqx3fmakdXN+8eyCQ2yn9IYQf45OB5Pj+ehUat\n5Gc7NuI1zYf3CHEH3FzsKaltE3nvgkE5nVlBdLg3YB7ccC6nHJVSwYoF5r4j3QYjrlO81cBIiQnx\npKWt0+KxsCAv1i6Pw2gy8bddqQO+Li7ch5OZFVQ2tI2LHdUNbew+XsDc2CDs1EMX2399sYQ/v38C\ngMfuvWbMw7CnAkLcLxEW4MnJ88J7FwxMa3s3GpVZQI6fKcAkyyycHYLzJUEvKK5j+ZygoQ4xbVBI\nErHBHlTVWXrh92xKQqNWcuxMATlFA4dg5kQHcCS9bMwCn1vawJFz5cyJCRi2jUhpVSPP//kLTLLM\nnTcsYnXSzJjpIMT9Ei5OdpTXt6M3CO9dYEldcwdSHwE5/FX/kIxSAU4zaE7AvChf6hrbLR7z9nDm\n5rXzAHj9veOYTAPvY82O8ef4uXKyiuuu+rwmWWZ/WhH5FS0kRPkPmzHS2t7Fr/70Ge2d3SxfEME3\n+/TBme4Ice9DdJg3B7/WWtsMgY2RllVJdIg5JFNT30pWQRV2GhVL54UD5uHHgd5OVrRw8lEoJML8\nXalvshT4269fiIerI9lF1ey/1Ab5SiRJYlaUP9qqNvacLBixQ5Vb2sD7B7JxcXUibARDQQxGI8+9\nvo+K2mYigr34j/vXoVCMLJNpOiRYCHHvg71GTWunwaJ/tWBmI8sy7Z2Gnlv/y7ntS+aF92TOlFY1\nsjhu+hUtDUdSfACVtZahGUcHDQ/ctgKAv/7rFC1tXYO+PjTQAz9fd/51JJcv0ooshp9cxmA0cTqz\ngg8P51BY1cqc2MAh+7FfRpZlXvrHUTKyy3F3ceDn393Y8/sajE6dnsz8SrRldVRWN1Be2YC2tJbM\ngmqaWjqHfK0tMmPG7I2UmDAfDp4pYfOqmRGXEwxNVUM7ak2vKBzpCcn05rY7aFQzsn20UiHh7+lI\na7vOom/9mqRo9h3P4lxOOa+/f5z/uH/doMew16iYExNAt97IpycKUCgUqJVm79pkgm6jiWB/d+Kv\nsufLh/vOsu9SZswvvrsRX8+hh3fnamtxcVCyZVVsv1bFsixz8kI5F/OriI/0nfCJTOPF1LByElEq\nFag0aoorm61tisAGSM+tJjLYHAIorWqksLQOJwcNixJCAWho7iTcf/qnPw5G8txgiissu7xKksT3\nvrkaO7WKg6dzOX1OO+xxNGols6L8iYvwJTLUh8hQH6LDfUiI8rvqLKRjZwr460enkCT4j/vXERsx\n+Axbg8HEuZxyls3yY/3iiAF70EuSxIq5wWxaEUl2QRXNU8SLF+I+AGGBHqRmV1rbDIGVkWWZdp0R\nxSVP7cil3PbliZGoL5W3V9e1MGea9G0fDSqlAm9Xu35dIYN83bn3UuXqizsP96tcnSgu5lfyf381\ntxC4f+tykhdGDbq2W2/kQm45t6yOJcB7aM8ewMFOze3XxNPU0k5Ds+0LvBD3QfD3cROFTTOc0upW\nnB3M3R1lWebwpfa+l0MyJlnGyV45ZRpNTRRrEsMsWhJc5qZr5jAnJoDGlg5++9aBQbNnxotcbQ2/\nfPFTuvVGNq5K4Jb18wddazCYyMyr4I51CUO2K7gSSZK4YXkUrW0dNDRPzgfWaBHiPgiebo6U1LTR\nfoVHIpg5nCusISTAHYCC0joqappxd3FgXqw5n722vo3YYNsb7DDZqJQK/Dwc+yUiKBUK/nP7elyd\n7DlzsZQP96VPmA1FZfX84g//prNLz+rF0Tx096pBP3RlWeZCXgVbU+JGPQrwhmWR1NY309mlH4vZ\nE4oQ9yGIj/Rl76lCa5shsAImWaaz29QjEJeHcqxcFNWzedrY0k50iJfVbLQlVs0Lpris/4Q1bw9n\nHr9vLQBv7zrN6Uv978eT0qpGfvb7T2jr0LFsfjg/uH/tkJueF/Kr2Lgscth2BcNx88pYcrXVFj3u\nbQkh7kOgVCjw9HDhdKYIz8w0CsoacXexB8Bkkvu19zWZZJztRbLZZZRKBREBrtReUdgEkDQ3jHtv\nXoIsw/+88QW52poBjjA68ktq+fH/7qK5tZPEhBCe+Pa1qJSDt/vVljewMMYHT1eHMZ9bqVSwaUU0\nWYUT0xBtrAhxHwZfT2fK6zsG/KMVTF9ySht6hmBnFVRS19iOj6dzT0peRU0zCZd6zQjMJM0KsJhu\n1Jfbr1/I2mWxdOkM/PwPn5BfXDvguqvhzMUSnvy/XmH/6UPX9Wx0D0RdUzuu9kpix/Fuy8XJjjnh\nXpQMM/LOGghxHwGxYT7sP1NMt944/GLBlMcky3Tqen/Xfb32yxWOHV06QvzcrGKfrSJJEvOjvCmr\n6Z9GLEkSj34rhRWJkbR3dPPT3+0mPat0VOcxmWTe2/s1v3zx054Y+y++uxF7zeBhlm69kfr6FlYt\nCB3VOYciIcIHY3c3XQMUYVmTMYv73r17iY+PJyYmhueff37ANY8++igxMTHMnz+f9PSJ21SZKC6X\nS398NHdalCULhiarqBZvD3M7AaPRxLGvzfsul3vJGIwmnMcYr52uxId509bWOeD7RKVU8sMH1pO8\nMJL2zm6e+uOnfPh5+lV1Y62qbeGnv9vN2x+fRpbhm5uS+M/t61GrBvfYZVkmq6CKTckTV5h4/bKo\nfgPErc2YxN1oNPLwww+zd+9eMjMzeeedd8jKyrJYs2fPHvLz88nLy+O1115jx44dYzLYWqhVSsKC\nvPjoSI4Q+GlOYWULvl7mvOeM7DKaWzsJ9nMnIth8O19a1cSC2OnfMna0rJ4XTN4gTcHUKiVPfPta\n7ti4EJNJ5s2PTvHD33xERnYZRw9+YfHekmWZY4f2A1Df2MafPzjBQ0+/w/ncCtxdHXjqezdw942L\nh+0Xk1NUw9qFIUOGbMaKSqkgKd6f4orGCTvH1TKmHaHU1FSio6MJDw8H4K677mLXrl3MmjWrZ83u\n3bvZtm0bAEuXLqWpqYnq6mr8/AavGrNVnB3tCPL35IOD2WxZPfo0KoHtYjSaLG6vL3eAXJ0U3ZM5\nY9Ab8HGfWY3CrgYfDyec7BS0d3bjdKlOoC8KhcS9Ny9lVqQ/f/rHYXK1Nfzgp/9LddqbLE7Zwre/\n/zNcnR1444/Psn/330m+7YdUdnphuiT8a5fG8sBtK3BzGX5TtKy6iahAN/y9hi9SGivRwR5cKKrF\naDTZRDuKMYl7eXk5ISEhPT8HBwdz+vTpYdeUlZX1E/cfPP4fuDnb4+rswMrVKSQtXzkW0yYMZ0c7\nosJ9ee9AFuuSwvCf5tNcZhoZ+dUE+ppz27v1Bk6mFwG9IRm9wYiro8iSGY51i8J570A28+IH73Gf\nNDeMl35xF7sPnGPXATs6a5P56tDH5GrNm60t2uO4hidT1u6BSimxcmEkt12XSHToyCqCW9u7kA1G\nFsRMniN5bVI4n54qIiFqYoakp508RtqpYyNaO6a/0pFW5l0Zxhjodbmd0dAJ1MKZ+nxCTtYTGeJN\nXLgvsRF++Hm52EwloJ1axfz4IE5erEItyaQkhuHs2N9DEUw9yuraibokHmculNDR1U1UqDdBfmbB\nL65oJGX+zBjKMRaUSgWLZ/mTV944ZHteRwcNd924mK3XLuBczjp+/9wvSD+yC4DoRdez7taHmBMT\nyIJZwXi4Oo74/AajCW1pHXeuTxjztVwNjvYa/D0caGnrwtXZftyPn7R8pYXj+9Jvnxt07ZjEPSgo\niNLS3h3v0tJSgoODh1xTVlZGUFD/N0fKkhhKqxopq2qiqaWTppZOzudW9Dzv5uJAbLgvc6IDmD8r\nmMhg7xH3Zp4IJEkiNswHg8HEvq+0KCVwsFPh7mxHsK8rjvZqJEAGDEYZXbeeDp2BrktfRpMJtUqJ\nk70aJ0cNXq4O2GlUKK14TTMdg9FEl26AkMziPhtxJhNuE/CmnY7EBHuSW9JAZ5ceh2EGmWjUKhbN\nDmV2dCDpR8yPLZsfwcPfXDMqp+5CbgVb18RaxSFcOS+E9w/mMDvGum2gxyTuixcvJi8vD61WS2Bg\nIO+++y7vvPOOxZrNmzfz4osvctddd3Hq1Cnc3d0HjLf/53bz5HGTSaausY2Sykbyi2vI0daQU1RN\nc2snaeeLSTtfDB+Bq5M98+KDWBAfzMLZIcO29JwoVCoFcZe6zsmyTFunnozCBvR6AzISEjJIEhqV\nErVGiZ1ahVqlRqmW0BlNtLZ0o6vtoLW9ChOgkECjlFApFbg7a5gX7Y+zg8jMmAy+yqogNNATMA9e\nTr3UzXDVYnPzqa5uA+7O4ndxNVy/NJJ3D2QzLy5wSKGVZZnnn/4JO994mXu2m5Mudr7xMgBPPPXs\nVYl0ZkE1axeFjbkCdbRIkkRijC+FVU0E+7tbxQYYo7irVCpefPFFrrvuOoxGIw888ACzZs3i1Vdf\nBeDBBx/khhtuYM+ePURHR+Pk5MSbb7455DEVCglfLxd8vVxYPMeckyrLMtV1rWQXVXMup5z0rFJq\nG9o4dqaAY2cKAIgK8WbZggiWzY8gPMjTKp/YkiTh4qjB5WpCND3tTPvnTLd3dbMvTQuyjL1GyexI\nb8JEbvWEUd3YSXS42UlIzdDSrTeSEB3Q4ziUVDRwXVK4FS2ceiiVCq5ZFMrJi5XEDTGU+vjhL3uE\n/Ymnnu15fOcbL7MyZR0rU9aP6HyFZfXMCfckwMu6e2ExIZ5cKKpDlmWrhZMl2Qby+iRJ4kLJyCu8\nZFmmsraFs9llpGeWkp5VanE77eflwvLESNYkRRMd6mMzsfqxIMsypVXNtHd04elix8p5IWgmMLVr\npqHrNrDrRCGzo8x3YU//aQ9p54vZcfcqblwzB4CC4lo2r4y2pplTljM5VdS16gj2G9yTPXZoP8lr\n1vW8X2VZ5vjhL0cs7BW1LbhoFCyzkUHlVQ1tpGZXExUycZXMc0LdB03NnpLifiXdegMZ2eWcOlvE\n6XNamlp7ey0H+rqxenE0a5JiCAmYHh38unQGCkpqcbJXsXZxOA5X0bJUMDCH04txcnHCwU5NS1sX\n3/rRW8jIvP3cvbi7OtKp06Pr6CB53vhXOM4UvjyjRWNnj6fb2Pu6XElVXSsqSWbNgpDhF08iu4/m\nER7iPWGpkdNe3PtiNJnILqzm6Ff5HDtTYCH0EcFerEmKYfXi6J4ilamM3mAku6gGH1c7UhLDbCK3\ndqry0dFcYsPNXvveo5m8+PfDJCaE8KtHbwIgu7CaTSuixN3SGPnkRD5e7s4jylEfKRW1LaglEymJ\nYeN2zPGiub2L/WdKiY+YmKK3ocR92rl8SoWC2dEBzI4O4Du3J3Mut5zDafmcTC+kqKyeorJ6/vrR\nKWZF+bN6cTQrF0bh4TbyFCtbQq1SMjcmgLYOHe8dymFRrB+xIZ7WNmvK0dquQ6Y3dHflnFQAjVIh\nhH0cuGl5FP8+kQ8yuI1DZ8aSikbcnFSsmGN7wg7g5mSPvUrCYDChmuSix2nnuQ+GXm/kq4slHPkq\nn9QMLTq9OUavkCTmxgayKimaFQsiJyQ3dbIormhEkk1cuyR8ygzxtQX2pRbi6+OBWqWgvqmd+558\nG6VSwd//5z6cHOxobdchGfUsnW0bsdypjizL7EstQqFWE+gzuvmzsiyTXVhDfKg7cyJtuxVEp07P\nv08UkhA9/oVNM8pzHwy1WsnyBREsXxBBZ5ee1PNajqTlc+ZiCRk55WTklPPyP46SOCuY5EVRLJ4T\nOmzRxFg3gMabsEAPOjp1vHcgmxuXR131YOGZSlunnqBLXtWxMwXIMiyeE4aTg/n/r7SykVtWT1zT\nqZmGJElctzSSM9mVZBZUER/h2zOndiQ0NHdQWdPE2oWheE+BNhAOdmrcnNR0642Tevc3Yzz3wWjr\n0HEqo4gjafmczS7rmfMoSRAT5suSuWEkzQ0jMsTbIuvm2KH9PHTvbRapW5fzdF95+wOrCTyAyWQi\nM7+K5XOCCPUbnWc0U6isb+Xr/HrCL1VR/uC5D8nV1vDEtzewanE0siyjLavjphUiS2YiaGnXsf9M\nMWq1moggjyEz29o6dGjLGwjxcWb5nKAplQXXrTfy8bE8ZkePb2GT8NyHwNnRjvXL41m/PJ7mtk5O\nfF3I6XNaMrLLydXWkKutYecnabi7OjA3JpDZMYHMiQlg2apruGf7jp5CC6AnTzd5zTorXhEoFArm\nxAaSllNFp05PXKgYBTcYGfm1hAaY9ykqa5vJ1dbgYKcmaZ45htvU2kWQl+17h1MVVyc7tq6Opbyu\nlfTcarq6TZiQ8XBxAIVER0c33XoDaqUCHzd7blsTOyUTBzRqJW6OaroNRjRDtCceT2a85z4YXTo9\nGTnlPVWx9U2Wk5jsNCrCgzypzNjFuWO7Abj1Gw/w81//ZsgxX5NNXmkdMf4uzLbxuKS1+PBwLvGR\n5iyZ9z47w9u7UklZEtNTMZ2ZX8Wta2KuKmwgGBu6biPVDW2YZBlXJzvcXexRTCEvfTB0eiO7j+WP\na+xdeO6jwN5OzdJ54SydF44sy5RVN3Eht4IL+ZVk5ldS29BGdmE1jWX1Pa/54kQ2Xz/8Gu4ujri7\nOuDu4oDbpS9Hew2O9mocLv/roMHR7tK/9uYvB3v1gEMHxhLbjwnxJq+0DqVSSXyY8OD7kldSj1uf\nfZXDaZZzUmVZxsFOKYR9krHTKAn1n36V2HZqJa6Oqknz3oW4jwBJkgjx9yDE34ONq2cD0NzayX/9\n9Id8rj3OnOU30dbZjfbsPgBMs26ksaVjVOdSq5S4uzgQ4OtGgI8rHTW5/O13P+Ib9z3Ik0+bO8Bd\nbWw/JsSbTG0t9hol4QHW63Vha+SUNRIebK4eLC6vp7iiAWdHOxITzIUwdY0dRAVMP5ERWI/VC0L5\n98nCCWsJ3Bch7qPk/JnjfP7xzgE3VH/2o4eInbeM5lZzd8uWtk46dXo6Orvp7NLT0dVNR1ff783P\ndXR1ozcYqW1so7axjXM55ciyjGt4Mv/466ucPFuEr5cLp7/88Kpj+3HhPpzMrMDN2c4cz5zhGE0m\nOnWGnruhyx0gkxdG9tw91Ta0smZerNVsFEw/HOzUONur0BtMEz7sR4j7KFmZsp5X3v7AIlzyxFPP\nXlWToyuRZRmd3kBDUwdVtc1U1LZQXF7PhUBPMr6EorP7KAJcw5NpclnKsTMFrFgYOeKc9jnR/nx6\nopA7182a8VOkzuZWE3ipz4ksyxxOywMsQzKO9soplZEhmBqsWRDKnlNFzIqa2CEiQtzHwJUiLknS\nmFIgJUnCXqMm0NeNQF83Fl56XJZlftV9hve0xwFQKiXO51ZwIa+SID83vnFTEqsXRw8rRAqFgtkx\n/nx0NIfbU+JntHCV17URFWbeZM4urKa6rhVPdyfmxAYCUFnXRlyoqPYVjD+O9moc7ZQTXrU6s923\nKcDlPtfv/e117tm+g3u276Cx4BjBxnR8vZwpr27mf/6ynx/+z0cU9dncHQyNWkWwrwcHzmgn3ngb\nRddtQGfozTA4lJoLQEpSdM9dUEtLB9FBQtwFE8OaxBDySmon9BzCc7dxhupz/ae/3k6XZhF/25VK\ndmE1j//3B9x142Juvz5xyFCNm6sDjW1dZBfXER82ce1IbZWTF8qJCDYLt8Fo5OilmQApS8zx9csh\nGYFgonCy12CvkiZ0mLbIc58CDJcK2dHZzVsfn+LTwxcBmBcXxA+3rx+2Idq5nAo2J0fjNMMmPX10\nJJfYS9Oz0s4X8/Sf9hAa4MGffnEnkiRRUtXI7DBPQn1Fda9g4mjr6ObzNG1PncVoGCrPXYRlpgAr\nU9ZbxMevjO07OmjYcfdqnvn+JtxdHTiXU87jz31AYVndkMdNiPbn05P5g/5xTEcq61pRa3o/zA6e\nvhSSWRLT83/c2dEthF0w4Tg7atCoJIwm04QcX4j7NGLBrGD+8NPbSYjyp66xnSf+52PSs0oHXa9S\nKvD3ceP4ubJJtNK6nM2vIexSH5mOrm5OZ2gBWLPE3BjMaDLhYCdCMoLJYeW8YApKhnbCRsuoxb2h\noYENGzYQGxvLtddeS1PTwGGV8PBw5s2bR2JiIkuWLBm1oYKR4enmxDOPbWJNUjSdOj1P/2kPpy8N\neh4IL3cnalt0VNa3TZ6RVsIky7R1GnpK2U+dLUKnN5AQHYCfl9lTLy5vZGHsxKaoCQSX8XBxQCkx\nIXfPoxb35557jg0bNpCbm8u6det47rnnBlwnSRKHDh0iPT2d1NTUURsqGDkatYr/uH89N6XMwWAw\n8ewrn5M6hMDHhHlzOKN02odnzuVV4+fdO4HrUKo5tz1lSW87X73BgJ+ndYcrC2YWK+YEUVAyfKbb\n1TJqcd+9ezfbtm0DYNu2bXz88ceDrp3OomE0ybR1dlPT0EZTaxc6vdEmrlehkHjwzpVs3TAfo8nE\nf7+2j4zsgcMvkiQR6u/B4bODh3CmAyU1rXhd6v/d2NzB2awyVEoFKxdGAWA0mnC2FwlkgsnF290R\nWTaNu26M+i+5uroaPz/z7aufnx/V1dUDrpMkifXr16NUKnnwwQf5zne+M+C6l37b6/knLVtJ0vKV\nozVtwmlo7qCqtgV7jRJHOxWujmoCPOzp1hlobm6l3mBEb5QxGEzojTJGGew1KgJ8XXHQqCateEiS\nJO7fupwunYE9Ry7y61c+54UnbulpcdsXNxcHcupaqWlqx3cKDEC4Wtq79HQbe988R87kY5JlkmaH\n9UzfKiyrJ2VBsLVMFMxgliYEkJZTQ1TI0M390k4eI+3UsREdc0hx37BhA1VVVf0e//Wvf23xsyRJ\ngwrW8ePHCQgIoLa2lg0bNhAfH8+qVav6rfvu4z8ekcHWpLm1k7LqJqIC3bg1JXbEbUgNRhP1zR0U\nljdS2ajHaASjLGO8NBhENoEJ2TwoRAZZApNs7gHt6mSHp5vjgN0iR4IkSTx01ypa2rs4dqaA//rT\nZ/zvj7fi5ty/v0xsuA+Hvi7h9mumX/XqifNlRIX25vQPFJKRTSbcp/CYRcHUJcDLGaOxYth1Scst\nHd++TvGVDCnuX3zxxaDP+fn5UVVVhb+/P5WVlfj6DtwvPCDAPHnEx8eHW265hdTU1AHF3dbJK63D\nw1HN7SlxVy18KqUCP0/nEcdy5UvC39Glp6ahjbLaFjq7TXQbjHR1Gwn2d8f9Kpp/KRQSj227hqra\nFvJLavnvVz/nV9/f1O8DQ5IkAnzdOXmhnBVzp48HK8syze3dBPqbr7e8uok8bQ0O9mqWzAsHzJNy\nXJ00VrRSMNNJivPnbGEdEUHj05p71DH3zZs389ZbbwHw1ltvsWXLln5rOjo6aG1tBaC9vZ19+/Yx\nd+7c0Z7SKhhNJjKyy1kU5cOaBaGT4tFKkoRKqcDVyY7oEC9SFoazcVkkN6+M4dY1sTgoZfK1NWRr\na0acI2uvUfPzHdfj6ebIhbxKXnnn6IAxPk83R8rq2mjv0o/3ZVmNLG0dXu69H6yXvfbkxEjsNGb/\npqC0juViALbAigT7uqLTGcbteKMW9x//+Md88cUXxMbGcuDAAX78Y3NYpaKightvvBGAqqoqVq1a\nxYIFC1i6dCk33XQT11577fhYPgno9UbO55SzZVU0ITYyi1SlVLAwLoCbV8WwYWEopeX15BTVYBqB\nyHt5OPOzHRvRqJV8fjyLfcezBlwXF+HHvtTC8TbdauSXN+PrZRZ3k0nuU7jU285XpTA3dBIIrMnC\nWD9KKhvH5Vii/cAg6PQGsguquP0a22+PW9/cwaH0EtzdnPHvk+o3GAdO5fB/fz2AnUbF7568jZAA\nj35rSqoaifRzmfLzV1s6dLzw0t+5446tSJK5m+aP//djNF0lfPDmsygVCto7dei7dCTPC7G2uQIB\n/zqcS9wIWxKI9gNXicFgIrugijumgLADeLk5cmtKPB6OKi4WVA2bUrV2WRxrl8ai6zbwmz9/Qbe+\n/61gqL8H6Xk1GI0TUxo9WfzxtX/wqx8+wPNP/wRZlvniRBaNWZ+Sd/AVTh45AIC2vJElCYFWtlQg\nMOnekjIAABnISURBVDMvypvSquYxH8f2lWuSMckyF/Iq2LombkJ7LU8EC+P8Wb8wlPN5FXQNE7t7\n6O5VBPq4UVRez5v/OjXgmohgLw6lF0+EqZOCSZaJnrece7bvYOcbL/PrXzzBR2/9lhbtcW65e3vP\nJCt7tWLU2UgCwXgTHexJW0fnmI8ztdRrEsjMr+KG5VHYa6ZmMYunqwN3pMRTXF5LY8vgfyCO9hp+\n9O0NqJQKPjl4fsAWBc6OdjR3GKhvHt08WGtzJqeSYH93nnjqWe7ZvoN/vvUajQXHiFhwLf/13P8i\nSRL1Te2E+dvGfopAcJk54V6UV4/Nexfi3ofsomqWzw7Ew2Vq5zorlQpuWR1Ha2sHtY3tg66LDvNh\n2y3LAPjjzkO0tnf1WxMb7sOh9KlZuVpa3TZgymhonz2GqroW5kYOnMYrEFiL+DBvWtrH5r0Lcb9E\naVUTsUFuhNpIVsxYkSSJjcsiMeh01DYM3hTs5rXzmB0dQFNLJ6+9d3zA47i7OZGRP3AFsq2irWjC\nwUHTM8lq5xsv4xqejEfUSg5/9m5PDN7RToVCMb0KtgTTg4QwTyprW0f9eiHuQFNrJ0qMzJ3ggbXW\nYH1SBLouHc2t/b1yMBc4ff/ea7BTqzh4Ope/vPl3iw1ZWZbJv3CarOIG9Iaps7maUVBLiL97zySr\nRWu24DHrRrbe94OeGPyuj3cTL+akCmyUhHAfmlsHv/Mejhkv7kajibLKRtYvjrC2KRPGdUsjqalr\noqOre8DnA33d+NbNS+iszeW3T32PZ37+I2RZ7vF6H7r3NupKzvNFWtEkWz46Glo6kSVFz1CTl956\nH1PgNUiSxLXJs3jiqWd55e0PiJ27lKig/mmgAoGtMDfCm/Ka0cXep+au4ThysaCSm5Njpl0vlSvZ\nvDKG9w5kExflj2aAzJBNa+dy7OtVnKjN5d23X0etMv9pXJ7fmrLuWorKGyiraSHYxqcUnThfRmRw\nbx8ZO68YGpvzCfR1IyHKH0mSWL56LWUV9dP+9y6Y2sSGenG+qA583a76tTNa3AtL61g2K3BGVCYq\nFAq2ronj/YPZzI8P6idqSoWCx+5dS8Gliew733gZoGcwtyRJRAR5cvJiBbfbsLh3dOnp0ssWQ4c/\nuzRb9vpVCT3XrS1rYFlCgFVsFAiuhsRoP7LLGnsmiI2UGRuWaWrtwtVBTUSgu7VNmTQ0aiUbl0WS\nVTjw5miwvzt3blw06OslSSLQz4OTF2x3LN/RjBKiwnq99qraFs5klqBWKVm/PL7ncYPBgK/H9Gtt\nLJh+RAa506XTXXW/9xkp7kaTifKqBtYkhlrblEnH09WB2WGelFX1b/cgyzKFp9+nRXsc1/BkktZu\nZecbL/dklgC4u9hTVts+aPzemhiMJprb9RZhp8+OXkSWYdXiqJ6+7d16I25OdtYyUyC4apbMCuD/\nt3en0VFWaQLH/5VUEpIQQjZCyL5ShIQECITIlgBhC9At2oqt3SoeBu1Wp51zZtrRnnGZPow4p8d2\ntEcdW9TWhlYUOrQKSiMBZQsYZE1CyALZF7JBttre+YAGQlWSSsxSy/P7BPXe1PvcE3jq1n3vfW5p\n5cBqzjhkci8oqWPlnKjRDmPUxEcG4KwymqygOXRgH1vfeYMVa3+Gz5QsmjxT+fE963l/y2scOrCv\nu93kyAl8cbxshKPu34GTl4kKvTFq1+r07D1cAMDKBQndrxdfbiAtUSpACtsREjAOvU5nUYHA7zlc\ncq+sayE+3IexHo49cls8M4Ly6is9SgbPS1/C63/6iBdf+h+W3KZBbzCiTEzntXe3My99SXc7Z2cn\n3Me4UXBp6M99HCyd3khDayfuNz0/OZRXQuu1TqJC/ZkceWOjktpZhYeb/T9nEfZlQVIIFy41WNze\noZJ7R5cObaeWBNmRiEqlYvXcGPKLe86/z0tfgkqlYv3aNLw83ThVWIlxbITJz4dMHM+3F+usZu37\n/rwyYsIDerz22cHrD1JXLpza/SC1saWdSCk3IGyQn7cHbs7XS5FbwmGSu6IoFJXVsyLNcadjbuUx\nxpX4cB+qzKyj9fZy58G1aQC8uf0Q19q7TNrERU6wirrvHV06mtu0PeoBlVQ0kF9cg8cYV9Jn3ThK\nr6a+hcRo+XAXtilzViSFZXUWtXWY5H7x8hUWJAfj7OQwXbZIYnQgnR1daM2MBpakaYj/rjTBu389\nZnLdzUWNk9qFoorGkQi1V/tOlDE5oufu4k/2nwVg0Zw4xnw3BaMoCp5uLlJuQNgsN1c1E309uGam\nDtStHCLTNba0EzDOlWB/+TpuzrLUKArMLI90clLxy58uwNnJiT1fnaOw1LRNWNB4ThTUjtr0TH1T\nGzpF1aM8c2NLG18eK0SlgtUZN451LK1sZLrG/kpMCMcyPymUsqr+V87YfXI3GI3U1DfLKTt9cHVx\nJkUTSJmZpVbhk3xZm5mEosAfth40e3jH5KgJ7DlWPBKhmjhwqpzYMP8er/3tyzPo9UbSkqMIDryx\nj0Gn1RFk4SHlQlgrJ5UKTZgPNQ19FxUbdHLfvn07U6dOxdnZmby8vF7b7dmzB41GQ2xsLJs3bx7s\n7QYtv7iWrLToEb+vrYkN8QWjni4zpzLdnTWTQD8vSsob+Nv+MybX3VzUuLm5cXqEK0eeuliLj/fY\nHrtt2zu13Q9S12Ymd7/e0anDz9u0/K8QtigpJpCmlr6Lig06uScmJrJz504WLFjQaxuDwcCjjz7K\nnj17OH/+PNu2bSM/3/yhzMOhoqaZxEg/PMa4jtg9bdnS2VFcKDV9WDPG1YWH75kPwPt/yzVbQjg4\n0JuiyhYaW374CTKW0OmN5F9qNDkz9vOv82nr0DI1JgjNTedQllQ0kDZV1rYL+zF3Wt//nged3DUa\nDXFxcX22yc3NJSYmhoiICFxcXFi3bh3Z2dmDveWAtHVoMej1xEcG9N9YAOCidiIpZgIVtaa7V2cl\nhDN3ehSdXXr+78Ovzf785MgJfJ5b0mPt/HDZc6yYuMieq170BgPZ+04BsHbpjVG7oii4u6pxdZGj\n9IT96G+KcVgLh1VWVhIaemOuOyQkhGPHTFddAPzvSy90/3nWnHnMSps36PsqikLx5XruytD031j0\nMCXcj8LLV9DrjSZnyG64ay5558s58m0px06XkTotosd1lUpFbMQEdh8pZtXcWIbLuZI6XF1dcXPp\n+c/34PGLNDS1ETrRh1kJ4d2vl9c0My1aPuSF7cvJySEnJ8eitn0m98zMTGpqakxe37RpE6tXr+73\nzQdSTvUXTzxpcdv+FJTWs2hmeI/KgMJyy2ZHsutQMQmxPasm+vuM5b4fzebNDw/x+l++ImlycPcy\nw++5j3HF3cOdo+cqmTMM0yDXOrScLWs0ic1oVNix91sA1mYm9Vju2N7RRfjEgZdMFcLapKenk56e\n3v335557rte2fSb3vXv3/qBAgoODKS+/cf5meXk5ISEhP+g9+1PdcJXwCZ4ESsW/QXN3cyFmkjd1\njdeYcMtXv1ULE/jySCHF5Q1s+/RE90anm03096K0opHzpfVDOi1mMBrZ9XURCXGTTK4dPllCWWUj\nfuM9SZ99Y7rwWnsXE3w8hiwGIWzFkAxteytFmZKSQlFREWVlZWi1Wj744APWrFkzFLc0S6vTc7W1\njVlTTP/zi4GZqQmi4Uqrye/W2dmJX/50ASoV7Pz7KS5+V//9VpEhvhRUtHBxgJXs+vLJ4WJiwwNM\nNqIZjEa2fnIcgLtXzsTlprn1S1WN8iBVOKRBJ/edO3cSGhrK0aNHycrKYsWKFQBUVVWRlZUFgFqt\n5tVXX2XZsmXEx8dz9913M2XKlKGJ3Iz84tphnet1NBkzwrhQZpq84yIDWZ2RiNGo8PK7+9Hpzde6\nmBwRwJmSK0OS4L/ILcV3/Fg83E0Lvn11opjL1U1M8PMi87Ybz1mMRiMermrUMj0nHJBKGWgF+OEI\nQqXi7GXTFRoDceFSPbPiJlj9EXC25u/HS/Ea52lSRbOzS8djv/2Q6vpW7slK4d7Vs3p9j6LLDUQE\njCU5buC7QxVFYW9uKeoxbgSaWR2g0xl4+Llt1DZc5fGfpbN07o3Bw8XLV7gtPpAAmaITdkqlUvU6\nc2IXQ5qahqsE+bhLYh8GGTPCKSk3Le07xs2Ff/x5BgAf7s7rPp7PnNgwf2pbu/jsSLHZHa690eoM\n7MgpwHOsh9nEDvBJzhlqG64SNsmXxXMm97hmNOglsQuHZfPJvaNLx7VrHcOyMkNcn2OfOTmQS2Zq\nWSTETmJ1RiIGo5Hf9zE9AxAS6I2/3zg+3F/AuZL+q9qdKa5jx4ELRIUHMn6c+Z2lrdc6+cvubwBY\nvzatx+qo2itXiQtxnCMUhbiVTSd3o9FIYUktq26T8gLDKS7UF61Wi85gmrzv/3EqE/3HUVp5hfd2\n5fb5Pp7urkybHExVUxc7Dl7g7yfKqKxvRW8wojMYqb5yjb3HS9meU0Bdq5bEyZP63Hj07s6jtLVr\nSdaEMHNqz9pBjc1tsoFNODSbnnM/W1TN0lnh+HhJzZDh1qHVs+vriybrywHOXazmX/87G6NR4d9/\nsYLZt2xu6o1Ob6S6vpWr7V2oUHB3cyUsaLxF+xPyi2v45//aidrZiVd+cxehQTdOhm+51gF6Pbcl\nDu+yWyFGm13OuReXNzA9JkAS+whxd1UTMXGc2boyU2OC+Nma2QC89O6X1DX2Xa3uey5qJ8KCxjM1\nOpD46IlEhvhalNh1OgN/2HoAuF5m4ObEDlBe3UyqTNMJB2eTyb2qroXA8WOIC/Mb7VAcyuwpQdRe\naTV77Y6l00lJCONqWxcv/nEvejNTOENl6yfHKatsZKL/OO5aMaPHtU6tHj8vN5zlQA7h4GwuuTe1\ntGM0GEiNl5HZSFOpVKQnh1FopnKkk5OKJx5YhL+PJwUltby94+iwxHD+YjUff/EtTioV//TAIsa4\n9ix/UHy5ngXJYcNybyFsiU0l984uPbUNLSydFTHaoTisQF9PPN2caevQmlzzHuvOvzyUibOTE9n7\nTnfXVR8qza3tvPjWXoyKwh1Lk4mP6Tn/r9cbGTtGqj8KATaU3HU6AwUlNfx4ftyACpKJobc4JaLX\nde3xMUE8et9CAF7f9hXHTpUNyT31BgOb/7iXhqY2pkRP5KdmNk0VXa5n4XQZtQsBNpLc9QYjZ4qq\nuGvRFKn0aAXUzk7MiAvkUrX5sgKZt2lYt3ImRkXhP9/8nBNnL/+g+xmNCr9/dz9nLlTh6+3Bv/7D\nUlzUPUfner0RD1dnPOVgFiEAG0juBqORM4WV/CRDg4va6sN1GJPD/NB2mV/7DnDv6lmsWZSIXm/k\nt6/v5uCJi4O6j9Go8Nq2g+TkFuHu5sJvHl6Or7fprtPCsloyZsioXYjvWXW2vJ7Yq7h9YRxjXIf1\nXBExCMtToygoNn9uqkqlYsNP5nYn+Bf/uJdtn54Y0ClNnVodL7z5Bbu/Oo+L2pl/+8UK4iJN69N0\n6fR4e7jifktteSEcmdVuYtIZDJz9LrHLV23rlVdYQ2ObnqAAL7PXFUXhr/tOs+XjwyjK9Tn5x+5d\naLI2/VYXSmv5/Z/2c7m6CU93V57auIwkjflNSWeLqlm7IE6+2QmH09cmJqtM7p1aPQXF1dyZrsFN\nRuxW7+OcAqLDJ5jMg98s73w5L73zJU2t7TipVKSnxrIkTcPU2KDu+uw6/fWH5p/knOXIyVKMikJw\noDdPP7ycsCBfs+/bcrUDRa9j7rRQs9eFsGc2ldyvtXVyqbqRtQsmSx1uG9Gp1bPj4AWSJve996Dl\nWgfvZ+fy+aF82moLGeMfi6uLmkA/LwxGI+WFeah9Y4DrD23XLJ7Gvatm9fkBf+ZCFXct0uAkK6iE\nA7KZ5F5V14Jer2f57EhZ7mhjCi41UFJzlfBJ5kfYN9uVnc1Tj91P0JQMXCMyAWjK/5TWskMkLHuM\nFSuzWJWegJ9P36e7X6pqIi7Em5jgvqd4hLBXfSV3q5nzKCyrJyzAgxSNrHiwRZpwf0qqWmjr0OLp\n3vczktVr1nD+5CO8v+U11s2OpaNTS3bZIe7++QZ+8x/PW/TBrtcb0Wp1ktiF6IXVjNzLa1vksA0b\nZzAa+WBfPolxk3By6ntKTVEUNj/3FO9veQ2A+9Y/wq+f2WTxN7YzRdX8aG60rJARDm1YqkJu376d\nqVOn4uzsTF5eXq/tIiIimDZtGtOnT2f27Nm9tpPEbvucnZxYOSeK8yXml0cOlYraZhIjfCWxC9GH\nQU/LJCYmsnPnTjZu3NhnO5VKRU5ODr6+/c/FCts33sud6dEBFJY3EBXqb7bNzaP2+9Y/AtA9gu9v\n9N7eqUXXpWVqVPjQBy+EHRl0ctdoNP03+o4VzPyIERQX5kfztS4q61oInuBtcv3QgX3dif3Xz2zq\nfv39La8xL30x89KXmH1fo9HIxbI67lo0xex1IcQNw/5AVaVSsWTJEpydndm4cSMbNmww2+7ZZ5/t\n/nN6ejrp6enDHZoYRrPjJ5Fz8hK1DVcJ9O+5wWle+hJe/9NHzF24uHuU/utnNvWZ2AHOFtWwMi1a\n6gsJh5WTk0NOTo5Fbft8oJqZmUlNTY3J65s2bWL16tUAZGRk8Lvf/Y4ZM2aYtAOorq4mKCiI+vp6\nMjMzeeWVV5g/f37PIPp4KCBs275vylA5qU0S/ECdL64lLX6iPJsR4iaDXgq5d+/eH3zzoKDrNbcD\nAgK4/fbbyc3NNUnuwn4tnhnBV6fKuVzTTNjE8QP+eUVRyC+pIyVugiR2IQZgSL7f9vbJ0d7eztWr\n18/TbGtr44svviAxMXEobilsyPykUEL83DlfXINxAIXDdHoDpwormZ80ichJA/9gEMKRDTq579y5\nk9DQUI4ePUpWVhYrVqwAoKqqiqysLABqamqYP38+ycnJpKamsmrVKpYuXTo0kQubkhg1gaUp4RSW\n1lJZ19Jv+4qaZsoqrnDHwslM7GenqhDClNVsYrKCMMQIKbx8hfxLjWgNCkH+Xnh7uaMoClevdVJV\n34qLWkViVIDsPhWiHzZRW8YKwhAjrEurp6j8CnXNHTipwMfLnalRAVIwTggLSXIXQgg7NCzlB4QQ\nQlgvSe5CCGGHJLkLIYQdkuQuhBB2SJK7EELYIUnuQghhhyS5CyGEHZLkLoQQdkiSuxBC2CFJ7kII\nYYckuQshhB2S5C6EEHZIkvtNLD2b0JbYY5/APvslfbINttInSe43sZVf2kDYY5/APvslfbINttIn\nSe5CCGGHJLkLIYQdsprDOoQQQgxcbylcPcJxmGUFny9CCGFXZFpGCCHskCR3IYSwQ5LchRDCDjlk\nct+zZw8ajYbY2Fg2b95sts3jjz9ObGwsSUlJnDx5coQjHJz++vXnP/+ZpKQkpk2bxty5czl9+vQo\nRDkwlvyuAI4fP45arWbHjh0jGN3gWNKnnJwcpk+fTkJCAunp6SMb4CD016eGhgaWL19OcnIyCQkJ\nvPPOOyMf5ACsX7+ewMBAEhMTe21j9TlCcTB6vV6Jjo5WSktLFa1WqyQlJSnnz5/v0ebTTz9VVqxY\noSiKohw9elRJTU0djVAHxJJ+HT58WGlublYURVF2795t9f2ypE/ft8vIyFCysrKUjz76aBQitZwl\nfWpqalLi4+OV8vJyRVEUpb6+fjRCtZglfXrmmWeUJ598UlGU6/3x9fVVdDrdaIRrkYMHDyp5eXlK\nQkKC2eu2kCMcbuSem5tLTEwMERERuLi4sG7dOrKzs3u02bVrF/fffz8AqampNDc3U1tbOxrhWsyS\nfqWlpeHt7Q1c71dFRcVohGoxS/oE8Morr3DnnXcSEBAwClEOjCV92rp1K3fccQchISEA+Pv7j0ao\nFrOkT0FBQbS2tgLQ2tqKn58farVVLNYza/78+fj4+PR63RZyhMMl98rKSkJDQ7v/HhISQmVlZb9t\nrD0RWtKvm7311lusXLlyJEIbNEt/V9nZ2TzyyCOA9e+ZsKRPRUVFNDY2kpGRQUpKCu+9995Ihzkg\nlvRpw4YNnDt3jkmTJpGUlMTLL7880mEOKVvIEdb70TlMLP3Pr9yy9t7ak8ZA4tu/fz9btmzh0KFD\nwxjRD2dJn371q1/xwgsvoFKpUBTF6vdMWNInnU5HXl4e+/bto729nbS0NObMmUNsbOwIRDhwlvRp\n06ZNJCcnk5OTQ3FxMZmZmZw6dQovL68RiHB4WHuOcLjkHhwcTHl5efffy8vLu7/+9tamoqKC4ODg\nEYtxMCzpF8Dp06fZsGEDe/bs6fNrpzWwpE/ffPMN69atA64/tNu9ezcuLi6sWbNmRGO1lCV9Cg0N\nxd/fH3d3d9zd3VmwYAGnTp2y2uRuSZ8OHz7M008/DUB0dDSRkZEUFhaSkpIyorEOFZvIEaM75T/y\ndDqdEhUVpZSWlipdXV39PlA9cuSIVT4suZUl/bp06ZISHR2tHDlyZJSiHBhL+nSzBx54QPn4449H\nMMKBs6RP+fn5yuLFixW9Xq+0tbUpCQkJyrlz50Yp4v5Z0qcnnnhCefbZZxVFUZSamholODhYuXLl\nymiEa7HS0lKLHqhaa45wuJG7Wq3m1VdfZdmyZRgMBh566CGmTJnCG2+8AcDGjRtZuXIln332GTEx\nMXh6evL222+PctT9s6Rfzz//PE1NTd3z0y4uLuTm5o5m2H2ypE+2xpI+aTQali9fzrRp03BycmLD\nhg3Ex8ePcuS9s6RPTz31FA8++CBJSUkYjUZefPFFfH19Rzny3t1zzz0cOHCAhoYGQkNDee6559Dp\ndIDt5AirKBwmhBBiaDncahkhhHAEktyFEMIOSXIXQgg7JMldCCHskCR3IYSwQ5LchRDCDv0/m6VH\nL03JqLIAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 272 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The parameters obtained after optimisation can be compared with the values selected by hand above. As previously, you can modify the kernel used for building the model to investigate its influence on the model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Running Example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we'll consider a small example with real world data, data giving the pace of all marathons run at the olympics. To load the data use" ] }, { "cell_type": "code", "collapsed": false, "input": [ "data = pods.datasets.olympic_marathon_men()\n", "print data['details']" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Olympic mens' marathon gold medal winning times from 1896 to 2012. Time given in pace (minutes per kilometer). Data is originally downloaded and collated from Wikipedia, we are not responsible for errors in the data\n" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "X = data['X']\n", "Y = data['Y']\n", "plt.plot(X, Y, 'bx')\n", "plt.xlabel('year')\n", "plt.ylabel('marathon pace min/km')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercise 5\n", "\n", "a) Build a Gaussian process model for the olympic data set using a combination of an exponentiated quadratic and a bias covariance function. Fit the covariance function parameters and the noise to the data. Plot the fit and error bars from 1870 to 2030. Do you think the predictions are reasonable? If not why not?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 a) answer \n", "kern = GPy.kern.RBF(1, lengthscale=80) + GPy.kern.Matern52(1, lengthscale=10) + GPy.kern.Bias(1)\n", "model = GPy.models.GPRegression(X, Y, kern)\n", "model.optimize()\n", "model.plot()# Exercise 5 d) answer\n", "model.log_likelihood()\n", "display(model)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "

\n", "Model: GP regression
\n", "Log-likelihood: -5.99078279431
\n", "Number of Parameters: 6
\n", "

\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
GP_regression.ValueConstraintPriorTied to
add.rbf.variance 2.58425103654 +ve
add.rbf.lengthscale 102.447254296 +ve
add.Mat52.variance 0.0204066240251 +ve
add.Mat52.lengthscale 6.52778209539 +ve
add.bias.variance 17.5408872485 +ve
Gaussian_noise.variance0.0368133074589 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ngg==\n", "text": [ "" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Fit the same model, but this time intialize the length scale of the exponentiated quadratic to 0.5. What has happened? Which of model has the higher log likelihood, this one or the one from (a)? \n", "\n", "*Hint:* use `model.log_likelihood()` for computing the log likelihood." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 b) answer\n", "kern=GPy.kern.RBF(1, lengthscale=0.5)+GPy.kern.Matern52(1,lengthscale=10)+GPy.kern.Bias(1)\n", "m=GPy.models.GPRegression(X,Y,kern)\n", "m.optimize()\n", "m.plot()\n", "model.log_likelihood()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 276, "text": [ "-5.994683440941623" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nRqMYvwBzNnA1KuK9eQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 276 }, { "cell_type": "markdown", "metadata": {}, "source": [ "c) Modify your model by including two covariance functions. Intitialize a covariance function with an exponentiated quadratic part, a Matern 3/2 part and a bias covariance. Set the initial lengthscale of the exponentiated quadratic to 80 years, set the initial length scale of the Matern 3/2 to 10 years. Optimize the new model and plot the fit again. How does it compare with the previous model? " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 c) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 277 }, { "cell_type": "markdown", "metadata": {}, "source": [ "d) Repeat part c) but now initialize both of the covariance functions' lengthscales to 20 years. Check the model parameters, what happens now? " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 d) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 278 }, { "cell_type": "markdown", "metadata": {}, "source": [ "e) Now model Model the data with a product of an exponentiated quadratic covariance function and a linear covariance function. Fit the covariance function parameters. Why are the variance parameters of the linear part so small? How could this be fixed?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 5 e) answer" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 279 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## More Advanced: Uncertainty Propagation\n", "\n", "Let $x$ be a random variable defined over the real numbers, $\\Re$, and $f(\\cdot)$ be a function mapping between the real numbers $\\Re \\rightarrow \\Re$. Uncertainty\n", "propagation is the study of the distribution of the random variable $f ( x )$.\n", "\n", "We will see in this section the advantage of using a model when only a few observations of $f$ are available. We consider here the 2-dimensional Branin test function\n", "defined over [\u22125, 10] \u00d7 [0, 15] and a set of 25 observations as seen in Figure 3." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Definition of the Branin test function\n", "def branin(X):\n", " y = (X[:,1]-5.1/(4*np.pi**2)*X[:,0]**2+5*X[:,0]/np.pi-6)**2\n", " y += 10*(1-1/(8*np.pi))*np.cos(X[:,0])+10\n", " return(y)\n", "\n", "# Training set defined as a 5*5 grid:\n", "xg1 = np.linspace(-5,10,5)\n", "xg2 = np.linspace(0,15,5)\n", "X = np.zeros((xg1.size * xg2.size,2))\n", "for i,x1 in enumerate(xg1):\n", " for j,x2 in enumerate(xg2):\n", " X[i+xg1.size*j,:] = [x1,x2]\n", "\n", "Y = branin(X)[:,None]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We assume here that we are interested in the distribution of $f (U )$ where $U$ is a\n", "random variable with uniform distribution over the input space of $f$. We will focus on\n", "the computation of two quantities: $E[ f (U )]$ and $P( f (U ) > 200)$.\n", "\n", "## Computation of $E[f(U)]$\n", "\n", "The expectation of $f (U )$ is given by $\\int_x f ( x )\\text{d}x$. A basic approach to approximate this\n", "integral is to compute the mean of the 25 observations: `np.mean(Y)`. Since the points\n", "are distributed on a grid, this can be seen as the approximation of the integral by a\n", "rough Riemann sum. The result can be compared with the actual mean of the Branin\n", "function which is 54.31.\n", "\n", "Alternatively, we can fit a GP model and compute the integral of the best predictor\n", "by Monte Carlo sampling:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Fit a GP\n", "# Create an exponentiated quadratic plus bias covariance function\n", "kg = GPy.kern.RBF(input_dim=2, ARD = True)\n", "kb = GPy.kern.Bias(input_dim=2)\n", "k = kg + kb\n", "\n", "# Build a GP model\n", "m = GPy.models.GPRegression(X,Y,k)\n", "m.Gaussian_noise.variance = 1e-5\n", "display(m)\n", "m.Gaussian_noise.variance.fix()\n", "display(m)\n", "\n", "# constrain parameters to be bounded\n", "#m.constrain_bounded('.*rbf_var',1e-3,1e5)\n", "#m.constrain_bounded('.*bias_var',1e-3,1e5)\n", "#m.constrain_bounded('.*rbf_len',.1,200.)\n", "\n", "# fix the noise variance\n", "\n", "#m.constrain_fixed('.*noise',1e-5)\n", "# Randomize the model and optimize\n", "m.randomize()\n", "m.optimize()\n", "\n", "# Plot the resulting approximation to Brainin\n", "# Here you get a two-d plot becaue the function is two dimensional.\n", "m.plot()\n", "display(m.add.rbf.lengthscale)\n", "\n", "# Compute the mean of model prediction on 1e5 Monte Carlo samples\n", "Xp = np.random.uniform(size=(1e5,2))\n", "Xp[:,0] = Xp[:,0]*15-5\n", "Xp[:,1] = Xp[:,1]*15\n", "Yp = m.predict(Xp)[0]\n", "np.mean(Yp)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "creating /var/folders/22/6ls22g994bdfdpwx4f9gcmsw0000gn/T/scipy-neil-mcRzlh/python27_intermediate/compiler_08f57918657bc3b6af9ef49d104a532a\n" ] }, { "html": [ "\n", "\n", "

\n", "Model: GP regression
\n", "Log-likelihood: -74285.8774977
\n", "Number of Parameters: 5
\n", "

\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
GP_regression.ValueConstraintPriorTied to
add.rbf.variance 1.0 +ve
add.rbf.lengthscale (2,) +ve
add.bias.variance 1.0 +ve
Gaussian_noise.variance1e-05 +ve
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "WARNING: reconstraining parameters GP_regression.Gaussian_noise.variance\n" ] }, { "html": [ "\n", "\n", "

\n", "Model: GP regression
\n", "Log-likelihood: -74285.8774977
\n", "Number of Parameters: 5
\n", "

\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "
GP_regression.ValueConstraintPriorTied to
add.rbf.variance 1.0 +ve
add.rbf.lengthscale (2,) +ve
add.bias.variance 1.0 +ve
Gaussian_noise.variance1e-05 fixed
" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "html": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "
IndexGP_regression.add.rbf.lengthscaleConstraintPriorTied to
[0]3.00660818886e-08+veN/A
[1]0.511855770259+veN/A
" ], "metadata": {}, "output_type": "display_data", "text": [ "\u001b[1mGP_regression.add.rbf.lengthscale\u001b[0;0m:\n", "Param([ 3.00660819e-08, 5.11855770e-01])" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "66.628745898828541" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ngg==\n", "text": [ "" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 6\n", "\n", "a) Has the approximation of the mean been improved by using the GP model?" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 6 a) answer " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) One particular feature of GPs we have not use for now is their prediction variance. Can you use it to define some confidence intervals around the previous result?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 6 b) answer" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computation of $P( f (U ) > 200)$\n", "\n", "In various cases it is interesting to look at the probability that $f$ is greater than a given\n", "threshold. For example, assume that $f$ is the response of a physical model representing\n", "the maximum constraint in a structure depending on some parameters of the system\n", "such as Young\u2019s modulus of the material (say $Y$) and the force applied on the structure\n", "(say $F$). If the later are uncertain, the probability of failure of the structure is given by\n", "$P( f (Y, F ) > \\text{f_max} )$ where $f_\\text{max}$ is the maximum acceptable constraint.\n", "\n", "### Exercise 7\n", "\n", "a) As previously, use the 25 observations to compute a rough estimate of the probability that $f (U ) > 200$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 7 a) answer" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Compute the probability that the best predictor is greater than the threshold." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 7 b) answer" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "c) Compute some confidence intervals for the previous result" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 7 c) answer" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These two values can be compared with the actual value {$P( f (U ) > 200) = 1.23\\times 10^{\u22122}$ .\n", "\n", "We now assume that we have an extra budget of 10 evaluations of f and we want to\n", "use these new evaluations to improve the accuracy of the previous result.\n", "\n", "### Exercise 8\n", "\n", "a) Given the previous GP model, where is it interesting to add the new observations if we want to improve the accuracy of the estimator and reduce its variance?" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Exercise 8 a) answer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Can you think about (and implement!) a procedure that updates sequentially the model with new points in order to improve the estimation of $P( f (U ) > 200)$?" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercise 8 b) answer" ], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }