{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "# Probabilistic curve fitting, express\n", "# uncertainty over target t using a gaussian\n", "# (aka normal) distribution\n", "%pylab inline\n", "def gaussian(x, mu, sigma):\n", " # vectorised for multiple x, sigma\n", " # returning x varying in the 1st dimension (down), sigma in the 2nd (right)\n", " numerator = np.exp(-0.5 * array(mat(x - mu).T * mat(1./sigma))**2)\n", " return 1./(np.sqrt(2*np.pi)*sigma)*numerator\n", "\n", "def cond_pdf_t(t, x, w, sigma):\n", " \"\"\"Probability of t given x, y, sigma\"\"\"\n", " return gaussian(t, polyval(w,x), sigma)\n", "\n", "\n", "from IPython.display import display, Math, Latex" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "# Do polynomial fitting like before, for now just\n", "# trusting the built-in polyfit\n", "# We sample from a sin curve with added gaussian noise\n", "# of std dev 0.3\n", "\n", "N = 15 # training points\n", "M = 4 # polynomial degree\n", "\n", "x = arange(0, 2*pi, (2*pi)/N)\n", "noise = 0.3 * randn(N)\n", "t = sin(x) + noise\n", "plot(x,t,'ro')\n", "\n", "w = polyfit(x, t, M)\n", "xs = arange(0,2*pi,.01)\n", "plot(xs, polyval(w, xs), 'g')\n", "ylabel(\"t\")\n", "xlabel(\"x\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nyvt3GmAAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "# Consider the probability distibution for\n", "# the predicted value of t at a certain x\n", "# position, eg one of our training points\n", "\n", "xvalue = x[5]\n", "\n", "# From above, we are assuming it is distributed\n", "# normally, with mean given as the value of our\n", "# polynomial, and for now lets pick 0.3 as a standard\n", "# deviation (cheating, because we know that is the \n", "# real value from the noise)\n", "\n", "tmean = polyval(w, xvalue)\n", "sigma = 0.3\n", "\n", "# We plot over the domain +-4 standard deviations,\n", "# using the conditional probability function defined earlier\n", "ts = arange(tmean-4*sigma, tmean+4*sigma, 0.01)\n", "pdf_t = cond_pdf_t(ts, xvalue, w, sigma)\n", "\n", "plot(ts, pdf_t)\n", "\n", "xlabel(\"t\")\n", "title(\"$p(t|x,$w$,\\sigma)$\", fontsize=20)\n", "\n", "# As expected, it is just a normal distribution" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nQmCC\n", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "plot(x,t,'ro')\n", "plot(xs, polyval(w, xs), 'g')\n", "\n", "# Now, to illustrate, we plot this gaussian sideways\n", "# over our graph, showing how its width (standard deviation)\n", "# expresses our uncertainty in the value of t\n", "\n", "def plot_sideways(x, y, zeropos, *args, **kwargs):\n", " # Plot sideways by switching x and y, adding zeropos\n", " # to our y to change the location\n", " plot(y + zeropos, x, *args, **kwargs)\n", " # Draw a vertical line for the axis\n", " vlines(zeropos, min(x), max(x), *args, **kwargs)\n", " \n", "plot_sideways(ts, pdf_t, xvalue, 'b')\n", "\n", "ylabel(\"t\")\n", "xlabel(\"x\")\n", "text(xvalue + max(pdf_t), polyval(w,xvalue), \" $p(t|x,$w$,\\sigma)$\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAz471dnvpZSvAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also plot probability as color in the 2d plane." ] }, { "cell_type": "code", "collapsed": false, "input": [ "X,Y = meshgrid(arange(0,7,0.1),arange(-1,2,0.1))\n", "Z = [cond_pdf_t(Yi,Xi,w,sigma) for Xi,Yi in zip(X,Y)]\n", "Z = array(Z).reshape(X.shape)\n", "contourf(arange(0,7,0.1),arange(-1,2,0.1), Z)\n", "xlim([0,6.9])\n", "ylim([-1,2])\n", "scatter(x,t,c='w')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "# So, now the question is how do we learn the weights w\n", "# and the standard deviation sigma from our training data\n", "\n", "# Well, we can see how probable each training point is given some\n", "# weights and standard deviation using our conditional probability\n", "# density function (now working on a vector of training data rather than a scalar)\n", "# (note these values are not probabilities, hence may be >1)\n", "\n", "print cond_pdf_t(t, x, w=[0.01, -0.02, -0.5, 1.7, -0.4], sigma=0.3)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 0.15843519]\n", " [ 0.98003779]\n", " [ 1.28953405]\n", " [ 1.11155411]\n", " [ 1.31733479]\n", " [ 0.42504068]\n", " [ 0.39853769]\n", " [ 0.00952693]\n", " [ 1.11654408]\n", " [ 0.17750332]\n", " [ 1.30306794]\n", " [ 0.14191876]\n", " [ 0.04831155]\n", " [ 0.28552663]\n", " [ 0.49996917]]\n" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "# But we want to know how probable all the data is -- for this\n", "# we use the product rule, assuming the data was drawn independently, \n", "# simply multiplying all the previous values\n", "\n", "p = product(cond_pdf_t(t, x, w=[0.01, -0.02, -0.5, 1.7, -0.4], sigma=0.3), 0)\n", "\n", "\n", "Math(\"$p(\\mathbf{t}|\\mathbf{x},\\mathbf{w},\\sigma) = \\prod_{n=1}^{N} Norm(t_n|y(x_n,\\mathbf{w}),\\sigma) = %f$\" % p)\n", "\n", "# This is the value we want to maximise - try tweaking the parameters\n", "# to get a high value, it probably isn't easy!" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$p(\\mathbf{t}|\\mathbf{x},\\mathbf{w},\\sigma) = \\prod_{n=1}^{N} Norm(t_n|y(x_n,\\mathbf{w}),\\sigma) = 0.000000$$" ], "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "# When considered as a function of w and sigma, this is our\n", "# likelihood function, and is *not* a probability distribution\n", "# over these variables. Note that syntactically it is the same\n", "# expression as a conditional probability dist on t, it is just\n", "# a matter of which variables we \"fix\" and which we \"slide around\". \n", "\n", "def likelihood_w_sigma(w, sigma):\n", " return product(cond_pdf_t(t, x, w, sigma), 0)\n", "\n", "# We can plot likelihood against different standard deviation\n", "# to see where the maximum is - how does this compare to the sd\n", "# we actually set for the noise?\n", "\n", "sigs = arange(0.01,1,0.01)\n", "plot(sigs, likelihood_w_sigma(w, sigs))\n", "xlabel(\"$\\sigma$\", fontsize=22)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEZCAYAAAB7HPUdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtUlOedB/Dv4OA9xjvqQIIwUwHRgSyKsdUDiQbFhKTV\nc0KaWJsQY21dN2m7e9LLrthNk5qePa0t6VlsErq51Lpp2oOJhKbJSlMTFaMoiZAICjoMSDSRWK/A\n8OwfTwYBdRiGmfd5L9/POXNwmHdmfrwh33l43udiE0IIEBGRJUSpLoCIiLTD0CcishCGPhGRhTD0\niYgshKFPRGQhDH0iIgvpN/TLy8uRlJQEl8uFTZs2XfOY9evXw+Vywe12o6qqqvv78fHxmD17NtLT\n0zF37tzwVU1ERCGxB3rQ5/Nh3bp1eOutt+BwODBnzhzk5eUhOTm5+5iysjLU19ejrq4Oe/fuxdq1\na7Fnzx4AgM1mQ0VFBcaPHx/Zn4KIiIISsKVfWVkJp9OJ+Ph4REdHIz8/H6Wlpb2O2b59O1atWgUA\nyMzMRFtbG1pbW7sf59wvIiL9CBj6Xq8XcXFx3fdjY2Ph9XqDPsZms2HRokXIyMjAb3/723DWTURE\nIQjYvWOz2YJ6keu15nft2oVp06bh1KlTWLx4MZKSkrBgwYKBV0lERGERMPQdDgc8Hk/3fY/Hg9jY\n2IDHNDU1weFwAACmTZsGAJg0aRK++tWvorKy8qrQdzqdOHr06OB+CiIii0lMTER9ff3AnygC6Ojo\nEAkJCaKhoUFcvnxZuN1uUVNT0+uYHTt2iKVLlwohhNi9e7fIzMwUQghx/vx5cfbsWSGEEOfOnRPz\n588Xf/nLX656j35KsJQNGzYoeE8hvv1tIbq65P3aWiEmTRLi8881L6UXFedCr3guruC5uCLU7AzY\n0rfb7SgqKkJOTg58Ph8KCgqQnJyM4uJiAMCaNWuQm5uLsrIyOJ1OjBo1CiUlJQCAkydP4mtf+xoA\noLOzE/fffz/uuOOOgX8qUcT4fEBJCVBaCvh78pKSgJwc4Fe/An78Y7X1EVH4BQx9AFi6dCmWLl3a\n63tr1qzpdb+oqOiq5yUkJODgwYODLI8i6a23gIkTgbS03t//j/8A5s8H1q0Dxo5VUxsRRQZn5OpI\nVlaWpu/33HPAww9f/X2XC1i2DNi8WdNyetH6XOgZz8UVPBeDZ/uib0hdATYbx/IrcOqUDPfGxmu3\n5o8eBTIzgbo6YNw4zcsjon6Emp1s6VvUSy8BeXnX775JTATuuUf27ROReTD0LUgI4NlngYKCwMc9\n9BDw5z9rUxMRaYOhb0F79wLt7cDChYGPmzsXOHECaGnRpi4iijyGvgW9/jpw771Xhmlej90O3H47\n8Oab2tRFRJHH0LegAweAOXOCO3bJEqC8PLL1EJF2OHrHgqZMAfbtA3qsk3ddTU1yHH9rKzBkSORr\nI6LgcPQOBaWlBejsBPosoXRdsbHyQ+LAgcjWRUTaYOhbzIEDwC239N+f31NODrt4iMyCoW8xVVVA\nevrAnrNkCfCXv0SmHiLSFkPfYvwt/YFYsACorgba2iJTExFph6FvMaG09IcPB77yFeDttyNTExFp\nh6FvIZ99Bnz6KeB0Dvy57NcnMgeGvoVUVQFuNxAVwn/1nBz26xOZAUPfQqqqBt6f7zdjBnDpkhy3\nT0TGxdC3kAMHBt6f72ezybV4KivDWxMRaYuhbyGDaekDcn39vXvDVw8RaY+hbxHnzgHHjwPJyaG/\nBkOfyPgY+hZRXQ3MnAlER4f+GnPmAPv3yw3ViciYGPoWEcqkrL7GjQOmTQNqasJTExFpj6FvEaFM\nyroWdvEQGRtD3yIOHZJLJA8WR/AQGRtD3yKOHgVcrsG/Dlv6RMbGTVQs4MwZID5eLpg2kCWVr6W9\nXfbtt7YCo0eHpTwiCgE3UaHrOnYMSEgYfOADwNChwKxZchQPERkPQ98Cjh0Dpk8P3+tlZrJfn8io\nGPoW4G/phwv79YmMi6FvAeEO/blzGfpERsXQt4Bwh35iInDxItDcHL7XJCJtMPQtINyhb7PJJRn2\n7QvfaxKRNhj6JtfZKdfAv/nm8L7uLbcABw+G9zWJKPIY+ibX1ATExADDhoX3ddPSGPpERsTQN7lw\nD9f0Y+gTGRND3+TC3Z/vl5gInD4tZ/kSkXEw9E0uUqEfFQXMni0XciMi4+g39MvLy5GUlASXy4VN\nmzZd85j169fD5XLB7Xajqqqq12M+nw/p6em46667wlMxDUikQh9gFw+REQUMfZ/Ph3Xr1qG8vBw1\nNTXYunUramtrex1TVlaG+vp61NXVYcuWLVi7dm2vxzdv3oyUlBTYwrHwCw0YQ5+IegoY+pWVlXA6\nnYiPj0d0dDTy8/NRWlra65jt27dj1apVAIDMzEy0tbWhtbUVANDU1ISysjI8/PDDXElTkUiHfp8/\n7IhI5wKGvtfrRVxcXPf92NhYeL3eoI957LHH8POf/xxRUbx0oMLnn8uZs5MnR+b1U1OBjz+Wyy0T\nkTHYAz0YbJdM31a8EAKvv/46Jk+ejPT0dFRUVAR8fmFhYfe/s7KykJWVFdT7UmANDXK4ZqR61kaM\nkH9F1NSEZ1cuIrq+ioqKfrM0GAFD3+FwwOPxdN/3eDyIjY0NeExTUxMcDgdeffVVbN++HWVlZbh0\n6RLOnj2Lb3zjG3jhhReuep+eoU/h09AQua4dP3+/PkOfKLL6Nog3btwY0usE7HfJyMhAXV0dGhsb\n0d7ejm3btiEvL6/XMXl5ed1BvmfPHowdOxZTpkzBk08+CY/Hg4aGBvzhD3/Abbfdds3Ap8iJZH++\nHy/mEhlLwJa+3W5HUVERcnJy4PP5UFBQgOTkZBQXFwMA1qxZg9zcXJSVlcHpdGLUqFEoKSm55mtx\n9I72jh0DZsyI7HukpQE7dkT2PYgofLhHroktXQp85zvAnXdG7j0++QT40pfkPrz8XCfSDvfIpato\n0b0zeTIwahRw/Hhk34eIwoOhb1I+nwzi+PjIv1d6Ovv1iYyCoW9Szc3AuHHAyJGRfy9ezCUyDoa+\nSXk8wE03afNebjdn5hIZBUPfpLxewOHQ5r1mzwY++ECb9yKiwWHom1RTE9BnHl3EOJ1Aaytw9qw2\n70dEoWPom5SWLf0hQ4CUFODDD7V5PyIKHUPfpLxe7Vr6ALt4iIyCoW9STU3atfQBGfrV1dq9HxGF\nhqFvUlp27wAMfSKj4DIMJiQEMHy4XBpBi3H6gNwkPTFRbpTO5RiIIo/LMFC306fl0ghaBT4ATJwI\njB4NnDih3XsS0cAx9E1I64u4fuziIdI/hr4JaX0R14+hT6R/DH0TYkufiK6HoW9CbOkT0fUw9E1I\n6+GafjNmAI2NwMWL2r83EQWHoW9Cqrp3hg6Vu2jV1Gj/3kQUHIa+Canq3gHYxUOkdwx9E1LV0gcY\n+kR6x9A3mXPngMuX5a5ZKsyaxdAn0jOGvsn4L+KqWgph9mzg0CG5FAQR6Q9D32RUdu0AwNSp8gPn\n5El1NRDR9TH0TUblRVxABj779Yn0i6FvMqpb+sCVLh4i0h+GvsmobukDgNvNlj6RXjH0TYYtfSIK\nhKFvMqqWYOgpJQWor5dDR4lIXxj6JqOH7p3hw4GEBOCjj9TWQURXY+ibSEcH8OmnwJQpqithFw+R\nXjH0TaSlBZg0CbDbVVfCi7lEesXQNxE9XMT141h9In1i6JuIHi7i+rF7h0ifGPom0tSkn5a+wwF0\ndgKtraorIaKeGPom0twMTJumugqJyzEQ6VO/oV9eXo6kpCS4XC5s2rTpmsesX78eLpcLbrcbVVVV\nAIBLly4hMzMTaWlpSElJwQ9+8IPwVk5XaW6WC57phdvNLh4ivQkY+j6fD+vWrUN5eTlqamqwdetW\n1NbW9jqmrKwM9fX1qKurw5YtW7B27VoAwPDhw7Fz504cPHgQ1dXV2LlzJ3bt2hW5n4TQ0qKv0GdL\nn0h/AoZ+ZWUlnE4n4uPjER0djfz8fJSWlvY6Zvv27Vi1ahUAIDMzE21tbWj9oiN35MiRAID29nb4\nfD6MHz8+Ej8DfaGlRT/dOwBb+kR6FDD0vV4v4uLiuu/HxsbC6/X2e0xTUxMA+ZdCWloaYmJikJ2d\njZSUlHDWTn3oraWfkgIcOQK0t6uuhIj8Aoa+Lcjtl0SfbZL8zxsyZAgOHjyIpqYmvPPOO6ioqAit\nSurXxYvAhQuAnv6YGjECiI8HPv5YdSVE5Bdw7qbD4YDH4+m+7/F4ENtnTGDfY5qamuDoM1j8xhtv\nxLJly/D+++8jKyvrqvcpLCzs/ndWVtY1j6HAWlrk8guqtkm8HrcbOHhQ7p1LRKGrqKgIT8NZBNDR\n0SESEhJEQ0ODuHz5snC73aKmpqbXMTt27BBLly4VQgixe/dukZmZKYQQ4tSpU+LMmTNCCCEuXLgg\nFixYIN56662r3qOfEihIu3YJ8cWp15WnnhLiu99VXQWR+YSanQFb+na7HUVFRcjJyYHP50NBQQGS\nk5NRXFwMAFizZg1yc3NRVlYGp9OJUaNGoaSkBADQ0tKCVatWoaurC11dXVi5ciVuv/32wX9K0TXp\n7SKuX3o6cJ2RvkSkgO2LTwx1BdhsV10ToIH79a/lUsbPPKO6kt5aW4HkZLn6p966noiMLNTs5Ixc\nk9DbyB2/mBi5vv6JE6orISKAoW8aepuN21N6OvDFRG0iUoyhbxJ67dMHgLQ0OYKHiNRj6JuEXrt3\nALb0ifSEoW8SDH0iCgZH75hAezswejRw6RIQpcOP8a4uYNw44NgxYMIE1dUQmQNH71jYyZNyb1w9\nBj4g6/LPzCUitXQaEzQQer6I68cuHiJ9YOibgJ778/04godIHxj6JmCE0GdLn0gfGPomoOeJWX4p\nKUBDg1z+mYjUYeibgBFa+kOHAjNmAB9+qLoSImtj6JuAES7kAuziIdIDhr4JGKGlDzD0ifSAoW8C\nRgn9W24BDhxQXQWRtXFGrsF1dsq9aC9eBOwBt8RR7/x5YPJk4MwZ2cdPRKHjjFyL+uQTubSB3gMf\nAEaNAhITgepq1ZUQWRdD3+CM0rXjl5EBvP++6iqIrIuhb3BGC/05c4B9+1RXQWRdDH2DY+gT0UAw\n9A3OCLNxe5o1C6iv58xcIlUY+gZnlIlZfsOGATNncrw+kSoMfYMzWvcOIC/msouHSA2GvsEZMfTn\nzOEIHiJVGPoGZ7Q+fYAtfSKVOCPXwHw+YPhwOdPVSDNcOzuBsWMBrxe48UbV1RAZE2fkWtCpU3LD\ncSMFPiBnD6elAfv3q66EyHoY+gbW3GyskTs9sYuHSA2GvoE1NwMOh+oqQsOLuURqMPQNjC19Ihoo\nhr6BGTn0XS7g88+B1lbVlRBZC0PfwLxe44Z+VBQwbx6we7fqSoishaFvYEZu6QPA/PnAe++proLI\nWhj6BmaG0H/3XdVVEFkLQ9/AjB76c+cCBw8Cly+rroTIOhj6BtXRIfeanTxZdSWhu+EGYMYMbpZO\npKWgQr+8vBxJSUlwuVzYtGnTNY9Zv349XC4X3G43qr5YN9fj8SA7OxszZ85EamoqfvWrX4Wvcos7\neVIG/pAhqisZHPbrE2mr39D3+XxYt24dysvLUVNTg61bt6K2trbXMWVlZaivr0ddXR22bNmCtWvX\nAgCio6Pxi1/8AocPH8aePXvwzDPPXPVcCo3Ru3b8GPpE2uo39CsrK+F0OhEfH4/o6Gjk5+ejtLS0\n1zHbt2/HqlWrAACZmZloa2tDa2srpkyZgrS0NADA6NGjkZycjObm5gj8GNZjptB/912Aa+4RaaPf\n0Pd6vYiLi+u+HxsbC6/X2+8xTU1NvY5pbGxEVVUVMjMzB1szwdhj9Hu6+WbZRdXQoLoSImvoN/Rt\nNltQL9R3ic+ezzt37hxWrFiBzZs3Y/To0QMska7FLC19m41dPERasvd3gMPhgMfj6b7v8XgQGxsb\n8JimpiY4vlgJrKOjA8uXL8cDDzyAe+6555rvUVhY2P3vrKwsZGVlDeRnsKTmZmDhQtVVhIc/9B94\nQHUlRPpVUVGBioqKwb+Q6EdHR4dISEgQDQ0N4vLly8Ltdouamppex+zYsUMsXbpUCCHE7t27RWZm\nphBCiK6uLrFy5Urx6KOPXvf1gyiBrmHxYiHKy1VXER579gjhdquugshYQs3Oflv6drsdRUVFyMnJ\ngc/nQ0FBAZKTk1FcXAwAWLNmDXJzc1FWVgan04lRo0ahpKQEAPDuu+/ipZdewuzZs5Geng4AeOqp\np7BkyZLBf1pZnFm6dwAgPR2orwfOngXGjFFdDZG5cbtEgxo/HqirAyZMUF1JeCxcCPz4x8Add6iu\nhMgYuF2ihVy8CFy4IIPfLBYsAP7+d9VVEJkfQ9+AWlqAqVPlyBezyM4G/u//VFdBZH4MfQMyyxj9\nnubPBw4dAs6dU10Jkbkx9A3IyHvjXs/IkXILxV27VFdCZG4MfQMy08idntjFQxR5DH0DMmvo33Yb\nQ58o0hj6BmTW0M/MBD7+WO4TQESRwdA3ILOG/tChwK23Au+8o7oSIvNi6BuQWUMfYBcPUaQx9A3I\nzKGfnQ3s3Km6CiLzYugbzNmz8qtZ16j5p38Cjh8HPvlEdSVE5sTQN5jmZjkb16zsdrkOTzhWkCWi\nqzH0DcbjAXpsUmZKHK9PFDkMfYM5flxuMWhmixcDb77JfXOJIoGhbzDHjwM33aS6ishKTQU6O4GP\nPlJdCZH5MPQN5sQJ87f0bTZg2TJgxw7VlRCZD0PfYKzQvQPI0H/9ddVVEJkPQ99gTpwwf/cOICdp\nHTgAtLWproTIXBj6BuLzybX0zT56B5BLLX/lK/KCLhGFD0PfQFpa5J64w4aprkQbd97Jfn2icGPo\nG4hVunb8li0D3nhD/oVDROHB0DcQq1zE9bv5ZmDyZGDfPtWVEJkHQ99ArDBGvy8O3SQKL4a+gVhh\njH5fDH2i8GLoG4jVuncAYP58+XN7PKorITIHhr6BWLF7x24H7rkHeOUV1ZUQmQND3yCEsGZLHwDu\nvRfYtk11FUTmwNA3iLY2uSbNjTeqrkR7t90GNDTIGxENDkPfIPytfJtNdSXas9uBr30N+N//VV0J\nkfEx9A3CiiN3emIXD1F4MPQNwooXcXtauFAuQ1FXp7oSImNj6BuEVS/i+g0ZAqxYwdY+0WAx9A3C\n6t07ALt4iMKBoW8QVu/eAeRErbY24PBh1ZUQGRdD3yDY0geiomRr/6WXVFdCZFw2IYRQWoDNBsUl\n6N6lS3J8/oULsm/bympr5bj9EyeA6GjV1RCpE2p29tvSLy8vR1JSElwuFzZt2nTNY9avXw+XywW3\n242qqqru7z/00EOIiYnBrFmzBlwYXeHxAA4HAx8AkpMBlwt47TXVlRAZU8DQ9/l8WLduHcrLy1FT\nU4OtW7eitra21zFlZWWor69HXV0dtmzZgrVr13Y/9uCDD6K8vDwylVsIu3Z6e+QRYMsW1VUQGVPA\n0K+srITT6UR8fDyio6ORn5+P0tLSXsds374dq1atAgBkZmaira0NJ0+eBAAsWLAA48aNi1Dp1sGL\nuL0tXw68/z7Q2Ki6EiLjCRj6Xq8XcT124Y6NjYXX6x3wMTQ4Vh+j39eIEcADDwDPPae6EiLjsQd6\n0BbkQi99LyYE+zy/wsLC7n9nZWUhKytrQM83uyNHgNxc1VXoy+rVwB13ABs2yLV5iMyuoqICFRUV\ng36dgP+7OBwOeHrsXuHxeBAbGxvwmKamJjgcjgEV0TP06Wq1tcD3vqe6Cn2ZOROIj5e7at19t+pq\niCKvb4N448aNIb1OwO6djIwM1NXVobGxEe3t7di2bRvy8vJ6HZOXl4cXXngBALBnzx6MHTsWMTEx\nIRVDV/P5ZEs/KUl1JfrzyCPAf/+36iqIjCVg6NvtdhQVFSEnJwcpKSm49957kZycjOLiYhQXFwMA\ncnNzkZCQAKfTiTVr1uA3v/lN9/Pvu+8+zJ8/H0eOHEFcXBxKSkoi+9OYUGMjMHEiMHq06kr05957\ngYMHgepq1ZUQGQcnZ+nc668DRUUAR75e26ZNMvRffll1JUTaCjU7eQlM52pr5YQkura1a4GEBODY\nMfmViALj2js6x9APbMwY2bf/X/+luhIiY2Do6xxDv3//8i/A1q1Aa6vqSoj0j6GvY0LI0E9JUV2J\nvsXEAPfdB2zerLoSIv3jhVwda24G0tKATz5RXYn+NTQAGRnA0aPA2LGqqyGKvIitsknqsGsneNOn\nA1/9KvDkk6orIdI3hr6OMfQH5j//U67H09CguhIi/WLo6xhDf2CmTpUXdX/4Q9WVEOkXQ1/HeBF3\n4L73PeDvfwf27lVdCZE+MfR1jC39gRs1CnjiCeC735Wjn4ioN4a+Tp05A5w/L7dJpIFZuVKeu1de\nUV0Jkf4w9HWqtlaurDnArQkIci/hZ54BHn0U+PRT1dUQ6QtDX6fYnz84X/4ykJ8P/PM/q66ESF8Y\n+jrF/vzBe+IJuZfun/+suhIi/WDo6xRDf/BGjgRKSoDvfAc4fVp1NUT6wNDXqQ8/ZPdOOPi7eb79\nbY7mIQIY+rp0/Dhw6RKQmKi6EnP46U+BujouyEYEcBMVXdq5E8jK4sidcBkxQvbrz5sHzJ4N3Hab\n6oqI1GFLX4d27gSys1VXYS7x8XJLxa9/Xe47TGRVDH2dEYKhHym33w7827/J1TjPn1ddDZEaDH2d\nOXYM6OwEvvQl1ZWY02OPAbfcAtx9N3DxoupqiLTH0NcZfyuf/fmRYbMBW7YAEycCK1YA7e2qKyLS\nFkNfZ9i1E3lDhgAvvggMHSqHc3Z2qq6ISDsMfR1hf752oqOBP/wBuHxZtvjZx09WwdDXkSNHALsd\nSEhQXYk1DBsG/OlPwJgxcojsyZOqKyKKPIa+jrA/X3vDhgH/8z9AXp4cx//hh6orIooshr6OsGtH\nDZsN+Pd/l5uqZ2cDzz/PJRvIvGxCqP31ttlsUFyCLggBTJkCVFYCN9+suhrr+vBD4P77AadTjvKZ\nMEF1RUTXFmp2sqWvEx98ILf6Y+CrlZoqP3jj44G0NODVV9nqJ3NhS18nCgqAuDigsFB1JeT3t78B\n69YBkybJxdpmzVJdEdEVoWYnQ18HTpwA0tPlSpDjx6uuhnrq7ASKi4GNG4F77gEef5yjq0gf2L1j\nYE8/DaxezcDXI7tdbsJSWwtMngzMnSs3Xj98WHVlRKFhS1+xlhZg5kwZKjExqquh/nz+OfCb38ju\nnhkzgIcflpO7RoxQXRlZDbt3DOpf/1Wu/8INPoylvR147TXg2WeBffvkAm7LlwOLFsnlHYgijaFv\nQKdPy9U0q6uB2FjV1VCoTpyQo3xefRWoqQHuuANYvFh+AHA0FkVKxPr0y8vLkZSUBJfLhU2bNl3z\nmPXr18PlcsHtdqOqqmpAz7Wqri55UXDFCga+0d10k1yyedcu2defkwO8/TYwZ44c7/+Nb8guof37\n5Vo/REqJADo7O0ViYqJoaGgQ7e3twu12i5qaml7H7NixQyxdulQIIcSePXtEZmZm0M/94q+MQCWY\n0oULQixfLsSCBUJ8+umV7+/cuVNZTXpjhnPh8wnxwQdC/Pa3QhQUCJGaKsTw4fLr178uxE9/KsQr\nrwhx6JAQ589f/3XMcC7ChefiilCzM+AeuZWVlXA6nYiPjwcA5Ofno7S0FMnJyd3HbN++HatWrQIA\nZGZmoq2tDSdPnkRDQ0O/z7WiTz6R/b8JCcBf/yrXfvGrqKhAVlaWstr0xAznIipKTvZKTZUXfAG5\n4X1trezSO3xYbuF45Ahw9Khc+O3mm+UtNhaYOhWYNg14880KjB2bhUmT5D4APX9nrMYMvxeqBQx9\nr9eLuLi47vuxsbHYu3dvv8d4vV40Nzf3+1yr+Mc/5Lo6f/2rXNWxoECO++bCatYzfLick5Ge3vv7\nXV1Aaytw/Li8eb1yZFd1NbB7t/x66pS8DhQdLYf3jhsHjB0rPyzGjAFuuAEYPVrO7B49Ghg58spt\nxAj5YTF8uPzqvw0d2vsWHS2Hqfq/8nfUfAKGvi3I/+IiTBdiv/Ut+ctuFD1/bCHk/7j+2/nzcnhf\nW5v8Om+evLhXVga43epqJn2KipIt+6lT5e9KT4WFV2ZqCyF/t86cAT77TP5unT175ev58/J26hRw\n4YLcEvLCBfkXhv928aIcfdTeLq8xtLcDHR3y352d8t+dnfIWFSXDf8iQwLeoqKtvNlv/X/03oPf9\nvjf/442NcqZ0z+/59Y2r6z0W7HF9Xe+xUD8YQ3neE0/I5UEGI2DoOxwOeDye7vsejwexfa469j2m\nqakJsbGx6Ojo6Pe5AJCYmBj0h4uRvf22vD3+eODjNm7cqE1BBsBzcYWqc9HVpb8tJY8ft+7vxY4d\nV/6dmJgY0msEDP2MjAzU1dWhsbER06ZNw7Zt27B169Zex+Tl5aGoqAj5+fnYs2cPxo4di5iYGEyY\nMKHf5wJAfX19SIUTEdHABQx9u92OoqIi5OTkwOfzoaCgAMnJySguLgYArFmzBrm5uSgrK4PT6cSo\nUaNQUlIS8LlERKSO8slZRESkHc0WXBvMJC+z6e9cvPzyy3C73Zg9eza+/OUvo7q6WkGV2gh2At++\nfftgt9vxpz/9ScPqtBXMuaioqEB6ejpSU1NNPXSxv3Nx+vRpLFmyBGlpaUhNTcXvfvc77YvUwEMP\nPYSYmBjMCrCu94BzM5yTBa5nMJO8zCaYc/Hee++JtrY2IYQQb7zxhqXPhf+47OxssWzZMvHHP/5R\nQaWRF8y5OHPmjEhJSREej0cIIcSpU6dUlBpxwZyLDRs2iMcff1wIIc/D+PHjRUdHh4pyI+qdd94R\nBw4cEKmpqdd8PJTc1KSl33OSV3R0dPdErZ6uNcmrtbVVi/I0Fcy5uPXWW3HjjTcCkOeiqalJRakR\nF8y5AIBf//rXWLFiBSZNmqSgSm0Ecy5+//vfY/ny5d2j4CZOnKii1IgL5lxMnToVZ8+eBQCcPXsW\nEyZMgN0e8BKlIS1YsADjxo277uOh5KYmoX+9CVz9HWPGsAvmXPT03HPPITc3V4vSNBfs70VpaSnW\nrl0LIPh/m5JDAAAEBklEQVS5I0YTzLmoq6vDZ599huzsbGRkZODFF1/UukxNBHMuVq9ejcOHD2Pa\ntGlwu93YbNFlakPJTU0+GkOd5GXG/8EH8jPt3LkTzz//PN59990IVqROMOfi0Ucfxc9+9rPuFQX7\n/o6YRTDnoqOjAwcOHMDbb7+NCxcu4NZbb8W8efPgcrk0qFA7wZyLJ598EmlpaaioqMDRo0exePFi\nHDp0CDfccIMGFerLQHNTk9APdZKXw+HQojxNBXMuAKC6uhqrV69GeXl5wD/vjCyYc7F//37k5+cD\nkBfv3njjDURHRyMvL0/TWiMtmHMRFxeHiRMnYsSIERgxYgQWLlyIQ4cOmS70gzkX7733Hn70ox8B\nkJOUpk+fjo8//hgZGRma1qpaSLkZtisOAXR0dIiEhATR0NAgLl++3O+F3N27d5v24mUw5+L48eMi\nMTFR7N69W1GV2gjmXPT0zW9+U7z66qsaVqidYM5FbW2tuP3220VnZ6c4f/68SE1NFYcPH1ZUceQE\ncy4ee+wxUVhYKIQQ4uTJk8LhcIhPey5ZayINDQ1BXcgNNjc1aekPZpKX2QRzLn7yk5/gzJkz3f3Y\n0dHRqKysVFl2RARzLqwimHORlJSEJUuWYPbs2YiKisLq1auRkpKiuPLwC+Zc/PCHP8SDDz4It9uN\nrq4uPP300xhvwk2m77vvPvztb3/D6dOnERcXh40bN6KjowNA6LnJyVlERBai2eQsIiJSj6FPRGQh\nDH0iIgth6BMRWQhDn4jIQhj6REQWwtAnIrIQhj4RkYUw9ImILIShT0RkIQx9IiILYegTEVkIQ5+o\nh4sXL6KwsBAJCQmw2+2Iioq66vbaa6+pLpMoZObbVJIoRK2trVi0aBHOnDmDlStXYvz48Xj22WdR\nV1eHp556CuPGjYPdbkd2drbqUolCxtAngtyK8K677oLdbsfhw4e7N6bPz8/H9OnTMXr0aDzyyCOK\nqyQaPIY+EYBnnnkG+/fv7xX4gNyicNKkSfjoo48UVkcUPuzTJwLwy1/+EkuWLEFSUlKv73d1daGt\nrQ3Dhw9XVBlReDH0yfLq6+tx4sQJ5OTkXPXYvn37cPnyZcybN09BZUThx9Anyzt16hQAwOl0XvXY\nyy+/jClTpuDOO+/UuiyiiGCfPlne9OnTYbPZ4PP5en3/2LFjeP7557FlyxYMGzZMUXVE4cWN0YkA\n3H///YiKisKLL74IAPB6vbjrrrtw9913Y8OGDYqrIwofhj4RgEuXLuH73/8+WlpaMGbMGPzjH//A\nt771LSxatEh1aURhxdAnIrIQXsglIrIQhj4RkYUw9ImILIShT0RkIQx9IiILYegTEVkIQ5+IyEIY\n+kREFsLQJyKyEIY+EZGF/D+7xccS8YRvDQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "# In practice we consider the log of the likelihood, which lets us\n", "# turn the product into a sum and avoids numerical underflow\n", "# from multiplying small values. We want to maximise the log likelihood,\n", "# or equivalently, minimise the negative log likelihood\n", "\n", "def log_likelihood_w_sigma(w, sigma):\n", " # log(product(cond_pdf_t(t, x, w, sigma),0))\n", " # = sum(log(cond_pdf_t(t, x, w, sigma)), 0)\n", " # using negative:\n", " return -sum(log(cond_pdf_t(t, x, w, sigma)), 0)\n", "\n", "plot(sigs, log_likelihood_w_sigma(w, sigs))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "-c:10: RuntimeWarning: divide by zero encountered in log\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEACAYAAABbMHZzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAH/NJREFUeJzt3X1UXPWdx/H3ELA+1MQ8MTQzbKlhUjKG4CNRe+KOTYkx\nrixrLCv2GBJq2hO2p9E+ae2eI/FsA9XTY1MtPW4XlaZVyLZd4Gicg1onttUQTVxjM2kZI1FmIGwT\ngqZJDCHc/WNkAgTIPDFwmc/rnHsY7tz7m+9cyWd+/n733rEYhmEgIiJJJWWiCxARkcRT+IuIJCGF\nv4hIElL4i4gkIYW/iEgSUviLiCShMcO/rKwMq9VKbm7ukPWPPfYYCxcuZNGiRdx3332h9ZWVlTgc\nDnJycmhubg6t37VrF7m5uTgcDjZs2BDntyAiIpEaM/zXrl2L2+0esu6VV16hqamJPXv28Oc//5nv\nfOc7AHi9Xurr6/F6vbjdbsrLyxm4hGD9+vXU1NTg8/nw+XxntSkiIok1ZvgvXbqUmTNnDln385//\nnO9///ukpaUBMHfuXAAaGxspKSkhLS2NrKwssrOzaWlpobOzk6NHj5Kfnw/A6tWraWhoGI/3IiIi\nYYp4zN/n8/Hqq69y7bXX4nK5ePPNNwHo6OjAbreHtrPb7QQCgbPW22w2AoFAHEoXEZFopUa6Q19f\nH0eOHGHHjh288cYbFBcX8957741HbSIiMk4iDn+73c5tt90GwDXXXENKSgqHDh3CZrPR3t4e2s7v\n92O327HZbPj9/iHrbTbbiG1nZ2ezf//+SEsSEUlq8+fP5913341on4iHfYqKivj9738PQGtrK729\nvcyZM4fCwkLq6uro7e2lra0Nn89Hfn4+GRkZTJ8+nZaWFgzDYMuWLRQVFY3Y9v79+zEM46zl/PMN\njh07e/1UXh588MEJr2GyLDoWOhY6FmMv0XSax+z5l5SUsH37dg4fPkxmZiYPPfQQZWVllJWVkZub\ny3nnnccvf/lLAJxOJ8XFxTidTlJTU6mursZisQBQXV3NmjVrOHHiBCtXrmTFihURFfmpT8HJk3Dh\nhRG/PxERGcGY4f/ss8+OuH7Lli0jrn/ggQd44IEHzlp/1VVX8c4770RRXtBA+IuISHyY4grfZAx/\nl8s10SVMGjoWZ+hYnKFjERuLYRiT5stcLBYLI5XjcMDzz8OCBRNQlIjIJDdado7FND3/3t6JrkJE\nZOowRfifd17yDfuIiIwnU4R/Mo75i4iMJ4W/iEgSUviLiCQh04S/JnxFROLHFOGvCV8RkfgyRfhr\n2EdEJL4U/iIiSUjhLyKShEwT/prwFRGJH1OEvyZ8RUTiyxThr2EfEZH4UviLiCQhhb+ISBIyTfhr\nwldEJH5MEf6a8BURia8xw7+srAyr1Upubu5Zz/34xz8mJSWF7u7u0LrKykocDgc5OTk0NzeH1u/a\ntYvc3FwcDgcbNmyIuEgN+4iIxNeY4b927VrcbvdZ69vb23nxxRf57Gc/G1rn9Xqpr6/H6/Xidrsp\nLy8Pfa3Y+vXrqampwefz4fP5RmxzLAp/EZH4GjP8ly5dysyZM89a/61vfYuHH354yLrGxkZKSkpI\nS0sjKyuL7OxsWlpa6Ozs5OjRo+Tn5wOwevVqGhoaIipS4S8iEl8Rj/k3NjZit9tZvHjxkPUdHR3Y\n7fbQ73a7nUAgcNZ6m81GIBCI6DU14SsiEl+pkWx8/PhxNm3axIsvvhhaF+k3xkdDE74iIvEVUfjv\n37+fAwcOkJeXB4Df7+eqq66ipaUFm81Ge3t7aFu/34/dbsdms+H3+4est9lso75GRUVF6LHL5cLl\ncmnYR0RkEI/Hg8fjia0R4xza2tqMRYsWjfhcVlaWcfjwYcMwDGPv3r1GXl6ecfLkSeO9994zLr30\nUqO/v98wDMPIz883duzYYfT39xs333yz8cILL4zY3mjlvP66YeTnn6tSEZHkFEaUn2XMMf+SkhKu\nv/56WltbyczM5KmnnhryvMViCT12Op0UFxfjdDq5+eabqa6uDj1fXV3N3XffjcPhIDs7mxUrVkT0\nAaWev4hIfFk++dSYFCwWy4hzCF4v3H578KeIiAw1WnaORVf4iogkIVOEv4Z9RETiS+EvIpKEFP4i\nIknINOGvK3xFROLHFOF/3nnB8J885yWJiJibKcI/JQWmTYNTpya6EhGRqcEU4Q8a9xcRiSeFv4hI\nEjJV+GvSV0QkPkwV/ur5i4jEh2nCX7d4EBGJH9OEv3r+IiLxo/AXEUlCpgp/TfiKiMSHqcJfPX8R\nkfgwTfhrwldEJH5ME/7q+YuIxI/CX0QkCY0Z/mVlZVitVnJzc0Prvvvd77Jw4ULy8vK47bbb+PDD\nD0PPVVZW4nA4yMnJobm5ObR+165d5Obm4nA42LBhQ1SFasJXRCR+xgz/tWvX4na7h6xbvnw5e/fu\n5e2332bBggVUVlYC4PV6qa+vx+v14na7KS8vD32h8Pr166mpqcHn8+Hz+c5qMxzq+YuIxM+Y4b90\n6VJmzpw5ZF1BQQEpKcHdlixZgt/vB6CxsZGSkhLS0tLIysoiOzublpYWOjs7OXr0KPn5+QCsXr2a\nhoaGiAvVhK+ISPzENOb/5JNPsnLlSgA6Ojqw2+2h5+x2O4FA4Kz1NpuNQCAQ8Wup5y8iEj+p0e74\nwx/+kPPOO48777wznvVQUVEReuxyuXC5XIDCX0RkgMfjwePxxNRGVOH/9NNPs23bNl5++eXQOpvN\nRnt7e+h3v9+P3W7HZrOFhoYG1ttstlHbHhz+g2nCV0QkaHDHGGDjxo0RtxHxsI/b7eaRRx6hsbGR\n888/P7S+sLCQuro6ent7aWtrw+fzkZ+fT0ZGBtOnT6elpQXDMNiyZQtFRUURF6qev4hI/IzZ8y8p\nKWH79u0cOnSIzMxMNm7cSGVlJb29vRQUFABw3XXXUV1djdPppLi4GKfTSWpqKtXV1VgsFgCqq6tZ\ns2YNJ06cYOXKlaxYsSLiQjXhKyISPxZj4HzMScBisTBaOY8/Dvv2wc9+luCiREQmubGyczS6wldE\nJAmZKvw14SsiEh+mCn/1/EVE4sM04a8JXxGR+DFN+KvnLyISPwp/EZEkZKrw14SviEh8mCr81fMX\nEYkP04S/JnxFROLHNOGvnr+ISPwo/EVEkpCpwl8TviIi8WGq8FfPX0QkPhT+IiJJyDThr7N9RETi\nxzThn5YGp09Df/9EVyIiYn6mCX+LJdj716SviEjsTBP+oHF/EZF4UfiLiCShMcO/rKwMq9VKbm5u\naF13dzcFBQUsWLCA5cuX09PTE3qusrISh8NBTk4Ozc3NofW7du0iNzcXh8PBhg0boi5Wk74iIvEx\nZvivXbsWt9s9ZF1VVRUFBQW0traybNkyqqqqAPB6vdTX1+P1enG73ZSXl4e+UHj9+vXU1NTg8/nw\n+XxntRku9fxFROJjzPBfunQpM2fOHLKuqamJ0tJSAEpLS2loaACgsbGRkpIS0tLSyMrKIjs7m5aW\nFjo7Ozl69Cj5+fkArF69OrRPpHSVr4hIfEQ85t/V1YXVagXAarXS1dUFQEdHB3a7PbSd3W4nEAic\ntd5msxEIBKIqVj1/EZH4SI1lZ4vFgsViiVctAFRUVIQeu1wuXC5X6HeFv4gIeDwePB5PTG1EHP5W\nq5WDBw+SkZFBZ2cn6enpQLBH397eHtrO7/djt9ux2Wz4/f4h620226jtDw7/4TThKyJydsd448aN\nEbcR8bBPYWEhtbW1ANTW1lJUVBRaX1dXR29vL21tbfh8PvLz88nIyGD69Om0tLRgGAZbtmwJ7RMp\n9fxFROJjzJ5/SUkJ27dv59ChQ2RmZvLQQw9x//33U1xcTE1NDVlZWWzduhUAp9NJcXExTqeT1NRU\nqqurQ0NC1dXVrFmzhhMnTrBy5UpWrFgRVbGa8BURiQ+LMXA+5iRgsVgYq5xVq+DOO4M/RUQk6FzZ\nORJd4SsikoRMFf6a8BURiQ9Thb96/iIi8WG68NeEr4hI7EwX/ur5i4jETuEvIpKETBX+mvAVEYkP\nU4W/ev4iIvFhuvDXhK+ISOxMF/7q+YuIxE7hLyKShEwV/prwFRGJD1OFv3r+IiLxYbrw14SviEjs\nTBf+6vmLiMRO4S8ikoQU/iIiSchU4a+zfURE4sNU4a8JXxGR+Ig6/CsrK7nsssvIzc3lzjvv5OTJ\nk3R3d1NQUMCCBQtYvnw5PT09Q7Z3OBzk5OTQ3Nwc1Wtq2EdEJD6iCv8DBw7wi1/8gt27d/POO+9w\n+vRp6urqqKqqoqCggNbWVpYtW0ZVVRUAXq+X+vp6vF4vbreb8vJy+vv7I35dhb+ISHxEFf7Tp08n\nLS2N48eP09fXx/Hjx5k3bx5NTU2UlpYCUFpaSkNDAwCNjY2UlJSQlpZGVlYW2dnZ7Ny5M+LXVfiL\niMRHVOE/a9Ysvv3tb/MP//APzJs3j0suuYSCggK6urqwWq0AWK1Wurq6AOjo6MBut4f2t9vtBAKB\niF9XE74iIvGRGs1O+/fv5yc/+QkHDhxgxowZfPnLX+ZXv/rVkG0sFgsWi2XUNkZ7rqKiIvTY5XLh\ncrlCv2vCV0QEPB4PHo8npjaiCv8333yT66+/ntmzZwNw22238frrr5ORkcHBgwfJyMigs7OT9PR0\nAGw2G+3t7aH9/X4/NpttxLYHh/9wGvYRETm7Y7xx48aI24hq2CcnJ4cdO3Zw4sQJDMPgpZdewul0\ncuutt1JbWwtAbW0tRUVFABQWFlJXV0dvby9tbW34fD7y8/Mjft1p08Bigb6+aKoWEZEBUfX88/Ly\nWL16NVdffTUpKSlceeWVfO1rX+Po0aMUFxdTU1NDVlYWW7duBcDpdFJcXIzT6SQ1NZXq6uoxh4TG\nMtD7T42qchERAbAYhmFMdBEDLBYL5ypn5kzYvx9mzUpQUSIik1w42Tmcqa7wBU36iojEgynDX5O+\nIiKxUfiLiCQhhb+ISBIyXfjrKl8RkdiZLvw14SsiEjtThr96/iIisVH4i4gkIYW/iEgSMl34a8JX\nRCR2pgv/889X+IuIxMp04X/JJTDoq4FFRCQKpgv/2bPh0KGJrkJExNxMF/5z5sDhwxNdhYiIuZku\n/NXzFxGJnenCXz1/EZHYmS781fMXEYmd6cJ/zhyFv4hIrEwZ/hr2ERGJTdTh39PTw+23387ChQtx\nOp20tLTQ3d1NQUEBCxYsYPny5fQMOiG/srISh8NBTk4Ozc3NURd84YVgGHD8eNRNiIgkvajDf8OG\nDaxcuZJ9+/axZ88ecnJyqKqqoqCggNbWVpYtW0ZVVRUAXq+X+vp6vF4vbreb8vJy+vv7oy5avX8R\nkdhEFf4ffvghf/jDHygrKwMgNTWVGTNm0NTURGlpKQClpaU0NDQA0NjYSElJCWlpaWRlZZGdnc3O\nnTujLlqTviIisYkq/Nva2pg7dy5r167lyiuvZN26dRw7doyuri6sVisAVquVrq4uADo6OrDb7aH9\n7XY7gUAg6qLV8xcRiU1qNDv19fWxe/duHn/8ca655hruueee0BDPAIvFgsViGbWN0Z6rqKgIPXa5\nXLhcrrO2Uc9fRJKZx+PB4/HE1EZU4W+327Hb7VxzzTUA3H777VRWVpKRkcHBgwfJyMigs7OT9PR0\nAGw2G+3t7aH9/X4/NpttxLYHh/9odLqniCSz4R3jjRs3RtxGVMM+GRkZZGZm0traCsBLL73EZZdd\nxq233kptbS0AtbW1FBUVAVBYWEhdXR29vb20tbXh8/nIz8+P5qWBYM9fwz4iItGLqucP8Nhjj/GV\nr3yF3t5e5s+fz1NPPcXp06cpLi6mpqaGrKwstm7dCoDT6aS4uBin00lqairV1dVjDgmdy5w54PNF\nvbuISNKzGIZhTHQRAywWC+GU88wz8NxzwZ8iIsku3OwczHRX+IImfEVEYmXK8NeEr4hIbEwZ/prw\nFRGJjSnDXz1/EZHYmDL8L7oI+vrgxImJrkRExJxMGf4Wi27xICISC1OGPyj8RURiYdrw1+meIiLR\nM234a9JXRCR6pg1/ne4pIhI904a/ev4iItEzbfir5y8iEj3Thr96/iIi0TNt+OtsHxGR6Jk2/HWe\nv4hI9Ewd/ur5i4hEx7ThrwlfEZHomTb8L74YTp4MLiIiEhnThr/Fot6/iEi0Ygr/06dPc8UVV3Dr\nrbcC0N3dTUFBAQsWLGD58uX09PSEtq2srMThcJCTk0Nzc3NsVX9C4/4iItGJKfw3b96M0+nEYrEA\nUFVVRUFBAa2trSxbtoyqqioAvF4v9fX1eL1e3G435eXl9Pf3x1y8TvcUEYlO1OHv9/vZtm0bd999\nd+hb45uamigtLQWgtLSUhoYGABobGykpKSEtLY2srCyys7PZuXNnzMXrdE8RkehEHf733nsvjzzy\nCCkpZ5ro6urCarUCYLVa6erqAqCjowO73R7azm63EwgEon3pEA37iIhEJzWanZ577jnS09O54oor\n8Hg8I25jsVhCw0GjPT+SioqK0GOXy4XL5Rq1DU34ikgy8ng8o2ZvuKIK/9dee42mpia2bdvGxx9/\nzEcffcRdd92F1Wrl4MGDZGRk0NnZSXp6OgA2m4329vbQ/n6/H5vNNmLbg8P/XObMgfffj+YdiIiY\n1/CO8caNGyNuI6phn02bNtHe3k5bWxt1dXV88YtfZMuWLRQWFlJbWwtAbW0tRUVFABQWFlJXV0dv\nby9tbW34fD7y8/OjeekhNOErIhKdqHr+ww0M4dx///0UFxdTU1NDVlYWW7duBcDpdFJcXIzT6SQ1\nNZXq6uoxh4TClZ4On0wriIhIBCzGwKk6k4DFYiGSct57D1wu+OCD8atJRGSyizQ7weTh398fvM1D\nZydMnz6OhYmITGLRhL9pb+8AkJICOTng9U50JSIi5mLq8Ae47DKFv4hIpKZE+O/dO9FViIiYi+nD\n3+lU+IuIRMr04a9hHxGRyJn6bB/QGT8iIkl3tg/ojB8RkWiYPvxBQz8iIpGaMuGvSV8RkfBNifDX\nGT8iIpGZEuGvYR8RkciY/mwf0Bk/IpLckvJsH9AZPyIikZoS4Q8a+hERicSUCn9N+oqIhGfKhL/O\n+BERCd+UCX8N+4iIhC+q8G9vb+fGG2/ksssuY9GiRfz0pz8FoLu7m4KCAhYsWMDy5cvp6ekJ7VNZ\nWYnD4SAnJ4fm5ub4VD9IVhYcOQKHD8e9aRGRKSeq8E9LS+PRRx9l79697Nixg5/97Gfs27ePqqoq\nCgoKaG1tZdmyZVRVVQHg9Xqpr6/H6/XidrspLy+nv78/vm8kBZYtgxdeiGuzIiJTUlThn5GRweWX\nXw7Apz/9aRYuXEggEKCpqYnS0lIASktLaWhoAKCxsZGSkhLS0tLIysoiOzubnTt3xuktnPHP/wyf\nvKSIiIwh5jH/AwcO8NZbb7FkyRK6urqwWq0AWK1Wurq6AOjo6MBut4f2sdvtBAKBWF/6LP/0T/Di\ni/Dxx3FvWkRkSokp/P/+97+zatUqNm/ezMUXXzzkOYvFgsViGXXfsZ6L1ty5kJcHL78c96ZFRKaU\n1Gh3PHXqFKtWreKuu+6iqKgICPb2Dx48SEZGBp2dnaSnpwNgs9lob28P7ev3+7HZbCO2W1FREXrs\ncrlwuVwR1VVUFBz6ueWWyN6PiIhZeDwePB5PTG1EdW8fwzAoLS1l9uzZPProo6H13/ve95g9ezb3\n3XcfVVVV9PT0UFVVhdfr5c4772Tnzp0EAgG+9KUv8e67757V+4/23j6D7d8PX/gCBAIwbVpMTYmI\nmEI02RlV+P/xj3/khhtuYPHixaEAr6ysJD8/n+LiYj744AOysrLYunUrl1xyCQCbNm3iySefJDU1\nlc2bN3PTTTfF5Q2MJDcXnngCrr8+5qZERCa9hIX/eIlX+P/7v8OpU/CjH8WhKBGRSS5p7+o53MC4\nv4iIjGxKhv9VV8GxY/CXv0x0JSIik9OUDH+LBVatgiefnOhKREQmpyk55g/Q3h4853/vXvjMZ+LS\npIjIpKQJ32G+9a3gxO9jj8WtSRGRSUfhP8z//R8sXAi7dgXv+ikiMhXpbJ9h0tOhvBw2bpzoSkRE\nJpcp3fMH6OkBhwP+8Ifgl7yLiEw16vmP4JJL4Dvfge9+FybPx5yIyMSa8uEPsGFDcPy/snKiKxER\nmRyivqunmZx/PvzP/0B+PixaBIWFE12RiMjEmvJj/oO1tMCtt8IrrwS/8F1EZCrQmP85LFkCP/5x\n8OseP/hgoqsREZk4STHsM9hdd8GhQ3DttfDf/x2897+ISLJJqp7/gHvvhZoa+Jd/0f1/RCQ5JdWY\n/3B/+Utw8nfJkuC9/+fNS9hLi4jEjcb8I5STE7z1g80W/PavH/4QTpyY6KpERMZfUoc/wMUXQ1UV\n7NwJu3cHrwb+j/+AgwcnujIRkfGT9OE/YP58+O1v4bnngreDXrgQ/vVfg9cH/P3vE12diEh8JTT8\n3W43OTk5OBwOfjRJv2D38suDX/5+4AD84z9CdXVwLuCWW+CnPw0OE/X1TXSVIiKxSVj4nz59mm98\n4xu43W68Xi/PPvss+/btS9TLR2zGjOAdQV98Mfh/AnfdBX/+M6xeDbNmwY03Bm8b8V//Fbx47MiR\n+L6+x+OJb4MmpmNxho7FGToWsUnYef47d+4kOzubrE9urH/HHXfQ2NjIwoULE1VC1GbMgDvuCC4A\n3d3wxhvwzjvBu4X+/Ofg80FqanD4KCsrOIk8sKSnw9y5wWXWrODtJs7F4/HgcrnG822Zho7FGeN9\nLAwjuPT3j7yM9dxY2420X7TrBn5/5hkPPT2usPYbeDxaW+daH+7zI20/Vh3R/vz85+GRR2L7b52w\n8A8EAmRmZoZ+t9vttLS0JOrl42rWLLjppuAywDCCF4/t3w/vvw+BQHDZvTt4U7m//S34s7sbpk0L\ntjFjBkyfHpx0vvhiuOii4HLhhcEPl9TU4AfFpz41dElLG7qkpgaXadOGLikpZ35aLGd+jrTA0McD\n72n444FwGPx4cGAMXxfpH/VI/8B8Pnj++fDDZ/g2p0+HF1jjuW0ky1jtdnQE56YG3mc4NQwcj7G2\nHfzfYeDvYPDfzrRpQ/+Ghv9dDX5+YBm830j7RLPd4Mc+X/DsvLH2G/54pO1GWj9WG4Pf70jPDW5v\n8LrRthteXzjbzZoVe44lLPwtg1NlCrJYzvTur7129O0MA44fDw4TffghHD0KH30U/HnsWPC5Y8fg\nf/8XPv44uN3HH0NvL5w8GVxOnTqz9PUNXU6fPrMMDpOxAnqgrpFOEx78n22kD4nBf5ijfbCE+0c/\n2j/e994Lfi/DaKF0roAa/iE4eP1IbQz/AB1tu+Ftj7VdOK87OOhGa+M//xP+7d/Cf63hx2yktocH\nlFn+qVZUBBeJTsLC32az0d7eHvq9vb0du90+ZJv58+dP+Q+JSLzyir6CbMD+/ToWA554QsdiwEZ9\nTR8QzM5IJewK376+Pj7/+c/z8ssvM2/ePPLz83n22WdNMeYvIjLVJKznn5qayuOPP85NN93E6dOn\n+epXv6rgFxGZIJPq3j4iIpIYE3KFbzgXe33zm9/E4XCQl5fHW2+9leAKE+dcx+LXv/41eXl5LF68\nmC984Qvs2bNnAqocf+FeAPjGG2+QmprK7373uwRWl1jhHAuPx8MVV1zBokWLpvRpsOc6FocOHWLF\nihVcfvnlLFq0iKeffjrxRSZIWVkZVquV3NzcUbeJKDeNBOvr6zPmz59vtLW1Gb29vUZeXp7h9XqH\nbPP8888bN998s2EYhrFjxw5jyZIliS4zIcI5Fq+99prR09NjGIZhvPDCC1PyWIRzHAa2u/HGG41b\nbrnF+M1vfjMBlY6/cI7FkSNHDKfTabS3txuGYRh/+9vfJqLUcRfOsXjwwQeN+++/3zCM4HGYNWuW\ncerUqYkod9y9+uqrxu7du41FixaN+HykuZnwnv/gi73S0tJCF3sN1tTURGlpKQBLliyhp6eHrq6u\nRJc67sI5Ftdddx0zZswAgsfC7/dPRKnjKpzjAPDYY49x++23M3fu3AmoMjHCORbPPPMMq1atCp0t\nN2fOnIkoddyFcyw+85nP8NFHHwHw0UcfMXv2bFJTp+Z3VC1dupSZM2eO+nykuZnw8B/pYq9AIHDO\nbaZi6IVzLAarqalh5cqViSgtocL9m2hsbGT9+vXA1L1uJJxj4fP56O7u5sYbb+Tqq69my5YtiS4z\nIcI5FuvWrWPv3r3MmzePvLw8Nm/enOgyJ41IczPhH5Hh/qM1hs1DT8V/7JG8p1deeYUnn3ySP/3p\nT+NY0cQI5zjcc889VFVVhb60Yvjfx1QRzrE4deoUu3fv5uWXX+b48eNcd911XHvttTgcjgRUmDjh\nHItNmzZx+eWX4/F42L9/PwUFBbz99ttcfPHFCahw8okkNxMe/uFc7DV8G7/fj81mS1iNiRLOsQDY\ns2cP69atw+12j/m/fWYVznHYtWsXd3xyc6VDhw7xwgsvkJaWRmFhYUJrHW/hHIvMzEzmzJnDBRdc\nwAUXXMANN9zA22+/PeXCP5xj8dprr/GDH/wACF7o9LnPfY6//vWvXH311QmtdTKIODfjOiMRhlOn\nThmXXnqp0dbWZpw8efKcE76vv/76lJzkNIzwjsX7779vzJ8/33j99dcnqMrxF85xGGzNmjXGb3/7\n2wRWmDjhHIt9+/YZy5YtM/r6+oxjx44ZixYtMvbu3TtBFY+fcI7Fvffea1RUVBiGYRgHDx40bDab\ncfjw4YkoNyHa2trCmvANJzcT3vMf7WKvJ554AoCvf/3rrFy5km3btpGdnc1FF13EU089legyEyKc\nY/HQQw9x5MiR0Fh3WloaO3funMiy4y6c45AswjkWOTk5rFixgsWLF5OSksK6detwOp0TXHn8hXMs\nHnjgAdauXUteXh79/f08/PDDzIrHXc8moZKSErZv386hQ4fIzMxk48aNnDp1CoguN3WRl4hIEtLX\nOIqIJCGFv4hIElL4i4gkIYW/iEgSUviLiCQhhb+ISBJS+IuIJCGFv4hIEvp/pGN0h/7W/GcAAAAA\nSUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Maximum Likelihood Solution\n", "===========================\n", "\n", "The Maximum Likelihood solution can be found in closed form.\n", "\n", "First we can use the properties of the (natural) log to simplify the formula\n", "\n", "$\\log(p(\\mathbf{t}|\\mathbf{x}, \\mathbf{w},\\sigma)) = \\log(\\prod_{n=1}^{N} Norm(t_n|y(x_n,\\mathbf{w}),\\sigma))$\n", "\n", "$ = \\sum_{n=1}^{N} \\log[(2\\pi\\sigma^2)^{-1/2} \\exp(-\\frac{(t_n-y(x_n,\\mathbf{w}))^2}{2\\sigma^2})]$\n", " \n", "$ = N \\log((2\\pi\\sigma^2)^{-1/2}) -\\frac{1}{2\\sigma^2} \\sum_{n=1}^{N} (t_n-y(x_n,\\mathbf{w}))^2 $\n", " \n", "$ = -\\frac{1}{2\\sigma^2} \\sum_{n=1}^{N} (t_n-y(x_n,\\mathbf{w}))^2 - \\frac{N}{2}\\log(\\sigma^2) - \\frac{N}{2}\\log(2\\pi) $\n", "\n", "Now we can find the gradient wrt $\\mathbf{w}$ and $\\sigma^2$\n", "\n", "(TODO)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In polynomial regression, the hypothesis, $y$, is of the form:\n", "\n", "$y(x_n, \\mathbf{w}) = \\sum_{i=0}^{M} w_i x^{i}$, where $M-1$ is the degree of the polynomial (we started at 0).\n", "\n", "Using matrix notation, let $\\mathbf{w} = w_1 ... w_M$, a vector of weights. Also, let $\\mathbf{x_n} = x_n^{0}...x_n^{M}$, a vector of the first $M$ powers of $x_n$.\n", "\n", "Then, $y(x_n, \\mathbf{w}) = \\mathbf{w}^{T}\\mathbf{x_n}$\n", "\n", "The derivative of $y(x_n, \\mathbf{w})$ wrt $\\mathbf{w}$ will come in handy soon, and we can see that: $\\frac{d y}{d \\mathbf{w}} = \\mathbf{x_n}$ by the linearity of $\\mathbf{w}^{T}\\mathbf{x_n}$.\n", "\n", "Another point of notation, we'll introduce the design matrix, $X$, in which each training example is a row and each power of $x_n$ is a column.\n", "\n", "Taking the derivative of $-\\frac{1}{2\\sigma^2} \\sum_{n=1}^{N} (t_n-y(x_n,\\mathbf{w}))^2 - \\frac{N}{2}\\log(\\sigma^2) - \\frac{N}{2}\\log(2\\pi) $ with respect to $\\mathbf{w}$, we obtain:\n", "\n", "$ -\\sum_{n=1}^{N}(t_n - y(x_n, \\mathbf{w})) \\frac{d y}{d \\mathbf{w}}$, using the fact that constants are irrelevant in minimization and we don't care about scalar multiples of the gradient.\n", "\n", "Replacing $\\frac{d y}{d \\mathbf{w}}$ with what we computed earlier, \n", "\n", "$ = -\\sum_{n=1}^{N}(t_n - y(x_n, \\mathbf{w}))\\mathbf{x_n}$\n", "\n", "$ = -\\sum_{n=1}^{N}(t_n - \\mathbf{w}^{T}\\mathbf{x_n})\\mathbf{x_n}$\n", "\n", "Now using the design matrix to simplify things, and letting $\\mathbf{t} = t_1 ... t_N$, the vector of targets, we can compute the $M$ dimensional gradient of the weights with respect to the error:\n", "\n", "$ = -\\sum_{n=1}^{N}(t_n \\mathbf{x_n}) + \\sum_{n=1}^{N}(\\mathbf{w}^{T}\\mathbf{x_n})\\mathbf{x_n}$\n", "\n", "$ = -X^{T}\\mathbf{t} + X^{T}(X\\mathbf{w}) $\n", "\n", "And since we are at an optima when this gradient is zero,\n", "\n", "$ 0 = -X^{T}\\mathbf{t} + X^{T}(X\\mathbf{w}) $\n", "\n", "$ X^{T}\\mathbf{t} = (X^{T}X)\\mathbf{w} $\n", "\n", "Almost there! Using the fact that $X^{T}X$ has a pseudoinverse, \n", "\n", "$ \\mathbf{w} = (X^{T}X)^{-1}X^{T}\\mathbf{t} $\n", "\n", "And we have a closed form solution for the weights. This solution is refered to as the \"normal equation\". Note for big-data problems, the performance of this equation is pretty poor, and a much fa" ] } ], "metadata": {} } ] }