{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Working with Gaussians\n", "=======" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Preliminaries\n", "\n", "- Goal \n", " - Review of processing of Gaussian distributions in linear systems\n", "- Materials \n", " - Mandatory\n", " - These lecture notes\n", " - Optional\n", " - Bishop pp. 85-93 \n", " - [MacKay - 2006 - The Humble Gaussian Distribution](./files/Mackay-2006-The-humble-Gaussian-distribution.pdf) (highly recommended!)\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Sums and Transformations of Gaussian Variables\n", "\n", "- The Gaussian distribution\n", "$$\n", "\\mathcal{N}(x|\\mu,\\Sigma) = |2 \\pi \\Sigma |^{-\\frac{1}{2}} \\,\\mathrm{exp}\\left\\{-\\frac{1}{2}(x-\\mu)^T \\Sigma^{-1} (x-\\mu) \\right\\}\n", "$$\n", "for variable $x$ is completely specified by its mean $\\mu$ and variance $\\Sigma$. \n", " - $\\Lambda = \\Sigma^{-1}$ is called the **precision matrix**." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- A **linear transformation** $z=Ax+b$ of a Gaussian variable $\\mathcal{N}(x|\\mu,\\Sigma)$ is Gaussian distributed as\n", "\n", "$$\n", "p(z) = \\mathcal{N} \\left(z \\,|\\, A\\mu+b, A\\Sigma A^T \\right) \\tag{SRG-4a}\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- The **sum of two independent Gaussian variables** is also Gaussian distributed. Specifically, if $x \\sim \\mathcal{N} \\left(x|\\mu_x, \\Sigma_x \\right)$ and $y \\sim \\mathcal{N} \\left(y|\\mu_y, \\Sigma_y \\right)$, then the PDF for $z=x+y$ is given by\n", "$$\\begin{align}\n", "p(z) &= \\mathcal{N}(x\\,|\\,\\mu_x,\\Sigma_x) \\ast \\mathcal{N}(y\\,|\\,\\mu_y,\\Sigma_y) \\notag\\\\\n", " &= \\mathcal{N} \\left(z\\,|\\,\\mu_x+\\mu_y, \\Sigma_x +\\Sigma_y \\right) \\tag{SRG-8}\n", "\\end{align}$$\n", " - [Exercise]: Show that Eq.SRG-8 is really a special case of Eq.SRG-4a. \n", " - The sum of two Gaussian _distributions_ is NOT a Gaussian distribution. Why not?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Example: Gaussian Signals in a Linear System\n", "\n", "\n", "\n", "- [Q.]: Given independent variables\n", "$x \\sim \\mathcal{N}(\\mu_x,\\sigma_y)$ and $y \\sim \\mathcal{N}(\\mu_y,\\sigma_y)$, what is the PDF for $z = A\\cdot(x -y) + b$ ?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- [A.]: $z$ is also Gaussian with \n", "$$\n", "p_z(z) = \\mathcal{N}(z|A(\\mu_x-\\mu_y)+b, \\, A(\\sigma_x \\mathbf{+} \\sigma_y)A^T)\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Think about the role of the Gaussian distribution for stochastic linear systems in relation to what sinusoidals mean for deterministic linear system analysis." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Example: Bayesian Estimation of a Constant\n", "\n", "\n", "- [Question] Estimate a constant $\\theta$ from one 'noisy' measurement $x$ about that constant. Assume the following model specification (the tilde $\\sim$ means: 'is distributed as'):\n", " \n", "$$\\begin{align*}\n", "x &= \\theta + \\epsilon \\\\\n", "\\theta &\\sim \\mathcal{N}(\\mu_\\theta,\\sigma_\\theta^2) \\\\\n", "\\epsilon &\\sim \\mathcal{N}(0,\\sigma^2_{\\epsilon})\n", "\\end{align*}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "[Answer]\n", "\n", "- **1. Model specification**\n", "Note that you can rewrite these specifications in probabilistic notation as follows:\n", "$$\\begin{align}\n", " p(x|\\theta) &=\\mathcal{N}(x|\\theta,\\sigma^2_{\\epsilon}) \\tag{likelihood}\\\\\n", " p(\\theta) &=\\mathcal{N}(\\theta|\\mu_\\theta,\\sigma_\\theta^2) \\tag{prior}\n", "\\end{align}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- **2. Inference** for the posterior PDF $p(\\theta|x)$\n", "$$\\begin{align*}\n", "p(\\theta|x) &= \\frac{p(x|\\theta)p(\\theta)}{p(x)} = \\frac{p(x|\\theta)p(\\theta)} { \\int p(x|\\theta)p(\\theta) \\, \\mathrm{d}\\theta } \\notag \\\\\n", " &= \\frac{1}{C} \\,\\mathcal{N}(x|\\theta,\\sigma^2_{\\epsilon})\\, \\mathcal{N}(\\theta|\\mu_\\theta,\\sigma_\\theta^2) \\notag \\\\\n", " &= \\frac{1}{C_1} \\mathrm{exp} \\left\\{ -\\frac{(x-\\theta)^2}{2\\sigma^2_{\\epsilon}} - \\frac{(\\theta-\\mu_\\theta)^2}{2\\sigma_\\theta^2} \\right\\} \\notag \\\\\n", " &= \\frac{1}{C_1} \\mathrm{exp} \\left\\{ \\theta^2\\left( -\\frac{1}{2\\sigma^2_{\\epsilon}} - \\frac{1}{2\\sigma_\\theta^2} \\right) + \\theta \\left( \\frac{x}{\\sigma^2_{\\epsilon}} + \\frac{\\mu_\\theta}{\\sigma_\\theta^2} \\right) + C_2 \\right\\} \\notag \\\\\n", " &= \\frac{1}{C_1} \\mathrm{exp} \\left\\{ -\\frac{\\sigma_\\theta^2 + \\sigma^2_{\\epsilon}}{2\\sigma_\\theta^2 \\sigma^2_{\\epsilon}} \\left( \\theta - \\frac{x\\sigma_\\theta^2 + \\mu_\\theta \\sigma^2_{\\epsilon}}{\\sigma_\\theta^2 + \\sigma^2_{\\epsilon}} \\right)^2 + C_3 \\right\\}\n", "\\end{align*}$$\n", "which we recognize as a Gaussian distribution." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " - This computational 'trick' for multiplying two Gaussians is called **completing the square**. The procedure makes use of the equality $$ax^2+bx+c_1 = a\\left(x+\\frac{b}{2a}\\right)^2+c_2$$\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ " \n", "- Hence, it follows that the posterior for $\\theta$ is\n", "\n", "$$\\begin{equation*}\n", " p(\\theta|x) = \\mathcal{N} (\\theta |\\, \\mu_{\\theta|x}, \\sigma_{\\theta|x}^2)\n", "\\end{equation*}$$\n", "\n", "where\n", "\n", "$$\\begin{align*}\n", " \\frac{1}{\\sigma_{\\theta|x}^2} &= \\frac{\\sigma^2_{\\epsilon} + \\sigma_\\theta^2}{\\sigma^2_{\\epsilon}\\sigma_\\theta^2} = \\frac{1}{\\sigma_\\theta^2} + \\frac{1}{\\sigma^2_{\\epsilon}}\\\\\n", " \\mu_{\\theta|x} &= \\sigma_{\\theta|x}^2 \\, \\left( \\frac{1}{\\sigma^2_{\\epsilon}}x + \\frac{1}{\\sigma_\\theta^2} \\mu_\\theta \\right) \n", "\\end{align*}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- So, multiplication of two Gaussian distributions yields another (unnormalized) Gaussian with\n", " - posterior precision equals **sum of prior precisions**\n", " - posterior precision-weighted mean equals **sum of prior precision-weighted means**\n", "- (This is worth remembering)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### CODE EXAMPLE\n", "\n", "Let's plot the exact product of two Gaussian PDFs as well as the normalized product according to the above derivation." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "using PyPlot, Distributions\n", "d1 = Normal(0, 1) # μ=0, σ^2=1\n", "d2 = Normal(3, 2) # μ=3, σ^2=4\n", "\n", "# Calculate the parameters of the product d1*d2\n", "s2_prod = (d1.σ^-2 + d2.σ^-2)^-1\n", "m_prod = s2_prod * ((d1.σ^-2)*d1.μ + (d2.σ^-2)*d2.μ)\n", "d_prod = Normal(m_prod, sqrt(s2_prod)) # Note that we neglect the normalization constant.\n", "\n", "# Plot stuff\n", "x = range(-4, stop=8, length=100)\n", "plot(x, pdf.(d1,x), \"k\")\n", "plot(x, pdf.(d2,x), \"b\")\n", "plot(x, pdf.(d1,x) .* pdf.(d2,x), \"r-\") # Plot the exact product\n", "plot(x, pdf.(d_prod,x), \"r:\") # Plot the normalized Gaussian product\n", "legend([L\"\\mathcal{N}(0,1)\", \n", " L\"\\mathcal{N}(3,4)\", \n", " L\"\\mathcal{N}(0,1) \\mathcal{N}(3,4)\", \n", " L\"Z^{-1} \\mathcal{N}(0,1) \\mathcal{N}(3,4)\"]);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The solid and dotted red curves are identical up to a scaling factor $Z$.\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Multivariate Gaussian Multiplication\n", "\n", "- In general, the multiplication of two multi-variate Gaussians yields an (unnormalized) Gaussian, see [SRG-6]:\n", "$$\\begin{equation*}\n", "\\mathcal{N}(x|\\mu_a,\\Sigma_a) \\cdot \\mathcal{N}(x|\\mu_b,\\Sigma_b) = \\alpha \\cdot \\mathcal{N}(x|\\mu_c,\\Sigma_c)\n", "\\end{equation*}$$\n", "where\n", "$$\\begin{align*}\n", "\\Sigma_c^{-1} &= \\Sigma_a^{-1} + \\Sigma_b^{-1} \\\\\n", "\\Sigma_c^{-1} \\mu_c &= \\Sigma_a^{-1}\\mu_a + \\Sigma_b^{-1}\\mu_b\n", "\\end{align*}$$\n", "and normalization constant $\\alpha = \\mathcal{N}(\\mu_a|\\, \\mu_b, \\Sigma_a + \\Sigma_b)$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- If we define the **precision** as $\\Lambda \\equiv \\Sigma^{-1}$, then we see that **precisions add** and **precision-weighted means add** too." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- As we just saw, great application to Bayesian inference!\n", "\n", "$$\\begin{equation*}\n", "\\underbrace{\\text{Gaussian}}_{\\text{posterior}}\n", " \\propto \\underbrace{\\text{Gaussian}}_{\\text{likelihood}} \\times \\underbrace{\\text{Gaussian}}_{\\text{prior}}\n", "\\end{equation*}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Conditioning and Marginalization of a Gaussian\n", "\n", "- Let $z = \\begin{bmatrix} x \\\\ y \\end{bmatrix}$ be jointly normal distributed as\n", "\n", "$$\\begin{align*}\n", "p(z) &= \\mathcal{N}(z | \\mu, \\Sigma) \n", " =\\mathcal{N} \\left( \\begin{bmatrix} x \\\\ y \\end{bmatrix} \\left| \\begin{bmatrix} \\mu_x \\\\ \\mu_y \\end{bmatrix}, \n", " \\begin{bmatrix} \\Sigma_x & \\Sigma_{xy} \\\\ \\Sigma_{yx} & \\Sigma_y \\end{bmatrix} \\right. \\right)\n", "\\end{align*}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Since covariance matrices are by definition symmetric, it follows that $\\Sigma_x$ and $\\Sigma_y$ are symmetric and $\\Sigma_{xy} = \\Sigma_{yx}^T$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Let's factorize $p(x,y)$ into $p(y|x)\\, p(x)$ through conditioning and marginalization (proof in Bishop pp.87-89)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ " - **Conditioning**\n", "\n", "$$\\begin{align*}\n", "p(y|x) &= p(x,y)/p(x) \\\\\n", " &= \\mathcal{N}\\left(y|\\mu_y + \\Sigma_{yx}\\Sigma_x^{-1}(x-\\mu_x),\\, \\Sigma_y - \\Sigma_{yx}\\Sigma_x^{-1}\\Sigma_{xy} \\right)\n", "\\end{align*}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ " - **Marginalization**\n", "\n", "$$\n", "p(x) = \\int p(x,y)\\,\\mathrm{d}y = \\mathcal{N}\\left( x|\\mu_x, \\Sigma_x \\right)\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Useful for applications to Bayesian inference in jointly Gaussian systems." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "#### CODE EXAMPLE\n", "\n", "Plot of the joint, marginal, and conditional distributions." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsnXecFeXZ97/3lNN2l7Z0pFiioKgoWBALsWCwJNGY+CCoCCZRsWF5lMQSSyTPY14l7xshkYBGRcUur/Ik8KqoQRDFXmJBKdL7wu5pM3O/f8ycs3u2wC7u7tlzuL6fz/nAzt4zc83s2TnX/q6mtNYaQRAEQRAEoeAx8m2AIAiCIAiC0DyIYycIgiAIglAkiGMnCIIgCIJQJIhjJwiCIAiCUCSIYycIgiAIglAkiGMnCIIgCIJQJIhjJwiCIAiCUCSIYycIgiAIglAkiGMnCIIgCIJQJIhjJxQ16XSa/v3784c//KFVz/vKK69QWlrK6tWrW/W8glAfDz/8MEoplFIsWLCgzve11hxwwAEopRg+fHir25chY+fy5ctb9Dz9+vVj7Nixe7y/Uorf/e532a/31O577rmHF154oUn71Heu4cOHM3DgwCYdZ3fMnTs35xpr8n3vX2tyyimncNlllzV5vxkzZtCrVy8qKytbwKqWRRw7oaiZOnUqW7du5aqrrmrV855yyikcffTR/OY3v2nV8wrCrigrK2PGjBl1tr/++ussW7aMsrKyPFhVzZlnnsmiRYvo0aNHXu1oKntq9544dq11j+bOncsdd9xR7/eef/55br311hY9f3Pw4osvsnDhwj2y9eKLL6akpIT//u//bgHLWhZx7ISixXEc7r33XsaNG0dJSUmrn3/ChAnMmjWLVatWtfq5BaE+zj//fJ599lkqKipyts+YMYOhQ4fSp0+fZj1fPB5v0vouXbpw7LHHEg6Hm9WOlqY17I7H42it28Q9OuKII9h///3zdv7Gcs8993DOOefQq1evJu9rWRa//vWv+dOf/kRVVVULWNdyiGMnFBy/+93vUErx/vvvc+6559KuXTvat2/PmDFj2LhxY3bdnDlzWL16NRdeeGF2WyKR4IgjjuCAAw5g+/bt2e3r1q2je/fuDB8+HNd16z3vzp076dChA7/+9a/rfG/58uWYpsm9996b3Xb22WdTWlrK9OnTm+OyBeF7M2rUKACeeOKJ7Lbt27fz7LPPMm7cuHr3ueOOOzjmmGPo1KkT7dq148gjj2TGjBlorXPW9evXj7POOovnnnuOI444gkgkklV8tm3bxvjx4+nUqROlpaWceeaZfPPNN40KaWbCjO+88w4nnHACsViM/fbbjz/84Q94npddl0gkuP766xk0aBDt27enU6dODB06lBdffHGP71dFRQW//OUvKS8vp7S0lB/96Ed8+eWXddbVZ/f777/PWWedRdeuXQmHw/Ts2ZMzzzyT7777DvDDuZWVlfz973/PhskzYfDM8ebNm8e4cePo0qULsViMZDK5y7Dvm2++ybHHHks0GqVXr17ceuutOc+zBQsW1BuOX758OUopHn74YQDGjh3LAw88kLUz88qcs75Q7MqVKxkzZkz2egcMGMD/+l//K+dnlDnPH//4R+677z723XdfSktLGTp0KIsXL97tzyNz7fPnz+eSSy6hU6dOlJSUcPbZZ/PNN9/krH3//fdZsmRJzvNfa80ZZ5xBeXk5K1euzG6vqqrikEMOYcCAATmh19GjR1NRUcGTTz65W9vaEuLYCQXLOeecwwEHHMAzzzzD7373O1544QVOP/100uk0AC+//DJdu3bl4IMPzu4TiUR46qmn2LBhQ/aDzPM8Ro8ejdaaJ554AtM06z1faWkp48aNY9asWTlOIfgh31AolPPhGAqFOO6443j55Zeb+9IFYY9o164d5513HjNnzsxue+KJJzAMg/PPP7/efZYvX86vf/1rnnrqKZ577jnOPfdcrrrqKu666646a9977z1uvPFGrr76av7xj3/ws5/9DM/zOPvss3n88ce56aabeP755znmmGP40Y9+1Gi7161bx+jRoxkzZgxz5sxh5MiRTJo0icceeyy7JplMsmXLFm644QZeeOEFnnjiCY4//njOPfdcHnnkkSbcJR+tNT/96U959NFHuf7663n++ec59thjGTly5G73rays5LTTTmP9+vU88MADzJ8/nylTptCnTx927NgBwKJFi4hGo5xxxhksWrSIRYsWMXXq1JzjjBs3Dtu2efTRR3nmmWewbXuX9+g//uM/GD16NC+++CLnnXced999N9dcc02Tr/3WW2/lvPPOy9qZeTUU/t24cSPHHXcc8+bN46677mLOnDmceuqp3HDDDVx55ZV11te8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/fbbefPNN5k1axazZ8/mww8/bFC1++abb3IK8AoBUeyEguW5557DsixOO+00Pv30U2699VYOP/zwbC7P8OHDufPOO6mqqiIWi2X3+9vf/sZjjz3GQw89xCGHHMIhhxzClVdeyU033cSwYcOyeSLLly9n33335eKLL862AcgwZswYJk2axBtvvMEtt9xS7196AIsXL+akk05q0l/egtAaNGYay5lnnsl9993HBRdcwK9+9Ss2b97MH//4xyb1UPvRj37EsGHDuP7666moqGDw4MEsWrQoW6lqGM2jL2RarVxxxRWcd955rFq1irvuuosePXrw1VdfNfl4I0aM4MQTT+Q///M/qaysZMiQISxcuLBRTu1LL73E1KlT+elPf8p+++2H1prnnnuObdu25eTyHnrooSxYsID/+3//Lz169KCsrIyDDjqoybaCr5pdfvnlrFy5kgMPPJC5c+cyffp0Lr/88mx/wu7du3PqqacyefJkOnbsSN++fXnllVd47rnn6hzv0EMPBeC//uu/GDlyJKZpcthhh9X7rJs4cSKPPPIIZ555JnfeeSd9+/bl5ZdfZurUqVx++eV18i6/L++++y6XXnopP//5z1m1ahW//e1v6dWrF1dccUV2zfDhw5k5cyZffvllzvnnz5/P5MmTufXWWznllFMAmDx5MjfccAPDhw/nnHPOya71PI8lS5Y0mH/XZslr6YYg7AGZqtilS5fqs88+W5eWluqysjI9atQovX79+uy6r7/+Wiul9FNPPZXd9tFHH+loNFqnEi2RSOjBgwfrfv366a1bt2qttf744481oG+++eZ67Rg7dqy2LEt/99139X7/66+/1oB+9tlnv+cVC8L3o2ZV7K6oryp25syZ+qCDDtLhcFjvt99+evLkyXrGjBl1KjP79u2rzzzzzHqPu2XLFn3JJZfoDh066Fgspk877TS9ePHiOlWnDVV8HnLIIXWOefHFF+u+ffvmbPvDH/6g+/Xrp8PhsB4wYICePn169nlRk8ZUxWqt9bZt2/S4ceNy7P73v/+926rYf//733rUqFF6//3319FoVLdv314fffTR+uGHH845/gcffKCHDRumY7GYBrL3flc/r13dowULFughQ4bocDise/TooX/zm9/odDqds//atWv1eeedpzt16qTbt2+vx4wZk63irVkVm0wm9aWXXqq7dOmi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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "using PyPlot, Distributions\n", "\n", "μ = [1.0; 2.0]\n", "Σ = [0.3 0.7;\n", " 0.7 2.0]\n", "joint = MvNormal(μ,Σ)\n", "marginal_x = Normal(μ[1], sqrt(Σ[1,1]))\n", "\n", "#Plot p(x,y)\n", "subplot(221)\n", "x_range = y_range = range(-2,stop=5,length=1000)\n", "joint_pdf = [ pdf(joint, [x_range[i];y_range[j]]) for j=1:length(y_range), i=1:length(x_range)]\n", "imshow(joint_pdf, origin=\"lower\", extent=[x_range[1], x_range[end], y_range[1], y_range[end]])\n", "grid(); xlabel(\"x\"); ylabel(\"y\"); title(\"p(x,y)\"); tight_layout()\n", "\n", "# Plot p(x)\n", "subplot(222)\n", "plot(range(-2,stop=5,length=1000), pdf.(marginal_x, range(-2,stop=5,length=1000)))\n", "grid(); xlabel(\"x\"); ylabel(\"p(x)\"); title(\"Marginal distribution p(x)\"); tight_layout()\n", "\n", "# Plot p(y|x)\n", "x = 0.1\n", "conditional_y_m = μ[2]+Σ[2,1]*inv(Σ[1,1])*(x-μ[1])\n", "conditional_y_s2 = Σ[2,2] - Σ[2,1]*inv(Σ[1,1])*Σ[1,2]\n", "conditional_y = Normal(conditional_y_m, sqrt.(conditional_y_s2))\n", "subplot(223)\n", "plot(range(-2,stop=5,length=1000), pdf.(conditional_y, range(-2,stop=5,length=1000)))\n", "grid(); xlabel(\"y\"); ylabel(\"p(y|x)\"); title(\"Conditional distribution p(y|x)\"); tight_layout()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "As is clear from the plots, the conditional distribution is a renormalized slice from the joint distribution.\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Example: Conditioning of Gaussian\n", "\n", "- Consider (again) the system \n", "\n", "$$\\begin{align*}\n", "x &= \\theta + \\epsilon \\\\\n", "\\theta &\\sim \\mathcal{N}(\\theta|\\mu_\\theta,\\sigma_\\theta^2) \\\\\n", "\\epsilon &\\sim \\mathcal{N}(\\epsilon|0,\\sigma^2_{\\epsilon})\n", "\\end{align*}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- This system is equivalent to (derive this!)\n", "\n", "$$\n", "p(x,\\theta|\\,\\mu,\\sigma) = \\mathcal{N} \\left( \\begin{bmatrix} x\\\\ \n", " \\theta \\end{bmatrix} \n", " \\left| \\begin{bmatrix} \\mu_\\theta\\\\ \n", " \\mu_\\theta\\end{bmatrix}, \n", " \\begin{bmatrix} \\sigma_\\theta^2+\\sigma_{\\epsilon}^2 & \\sigma_\\theta^2\\\\ \n", " \\sigma_\\theta^2 &\\sigma_\\theta^2 \n", " \\end{bmatrix} \n", " \\right. \\right)\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Direct substitution of the rule for Gaussian conditioning leads to (derive this yourself!)\n", "$$\\begin{align*}\n", "p(\\theta|x) &= \\mathcal{N} \\left( \\theta\\,|\\,\\mu_{\\theta|x}, \\sigma_{\\theta|x}^2 \\right)\\,, \\quad\n", "\\text{with} \\\\\n", "K &= \\frac{\\sigma_\\theta^2}{\\sigma_\\theta^2+\\sigma_{\\epsilon}^2} \\qquad \\text{($K$ is called: Kalman gain)}\\\\\n", "\\mu_{\\theta|x} &= \\mu_\\theta + K \\cdot (x-\\mu_\\theta)\\\\\n", "\\sigma_{\\theta|x}^2 &= \\left( 1-K \\right) \\sigma_\\theta^2 \n", "\\end{align*}$$\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "\n", "$\\longrightarrow$ Moral: For jointly Gaussian systems, we can do inference simply in one step by using the formulas for conditioning and marginalization." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Application: Recursive Bayesian Estimation\n", "\n", "Now consider the signal $x_t=\\theta+\\epsilon_t$, where $D_t= \\left\\{x_1,\\ldots,x_t\\right\\}$ is observed _sequentially_ (over time).\n", "\n", "[Question]\n", "- Derive a recursive algorithm for $p(\\theta|D_t)$, i.e., an update rule for (posterior) $p(\\theta|D_t)$ based on (prior) $p(\\theta|D_{t-1})$ and (new observation) $x_t$.\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "[Answer] \n", "\n", "- Let's define the estimate after $t$ observations (i.e., our solution) as $p(\\theta|D_t) = \\mathcal{N}(\\theta\\,|\\,\\mu_t,\\sigma_t^2)$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- **Model specification**. We define the joint distribution for $\\theta$ and $x_t$, given background $D_{t-1}$, by\n", "$$\\begin{align*} p(x_t,\\theta \\,|\\, D_{t-1}) &= p(x_t|\\theta) \\, p(\\theta|D_{t-1}) \\\\\n", " &= \\underbrace{\\mathcal{N}(x_t\\,|\\, \\theta,\\sigma^2_{\\epsilon})}_{\\text{likelihood}} \\, \\underbrace{\\mathcal{N}(\\theta\\,|\\,\\mu_{t-1},\\sigma_{t-1}^2)}_{\\text{prior}}\n", "\\end{align*}$$\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ " \n", "- **Inference**. Use Bayes rule,\n", "$$\\begin{align*}\n", "p(\\theta|D_t) &\\propto p(x_t|\\theta) \\, p(\\theta|D_{t-1}) \\\\\n", " &= \\mathcal{N}(x_t|\\theta,\\sigma^2_{\\epsilon}) \\, \\mathcal{N}(\\theta\\,|\\,\\mu_{t-1},\\sigma_{t-1}^2) \\\\\n", " &= \\mathcal{N}(\\theta|x_t,\\sigma^2_{\\epsilon}) \\, \\mathcal{N}(\\theta\\,|\\,\\mu_{t-1},\\sigma_{t-1}^2) \\\\\n", " &= \\mathcal{N}(\\theta|\\mu_t,\\sigma_t^2)\n", "\\end{align*}$$\n", "with\n", "$$\\begin{align*}\n", "K_t &= \\frac{\\sigma_{t-1}^2}{\\sigma_{t-1}^2+\\sigma_{\\epsilon}^2} \\qquad \\text{(Kalman gain)}\\\\\n", "\\mu_t &= \\mu_{t-1} + K_t \\cdot (x_t-\\mu_{t-1})\\\\\n", "\\sigma_t^2 &= \\left( 1-K_t \\right) \\sigma_{t-1}^2 \n", "\\end{align*}$$\n", "(as before, we used the formulas for conditioning in a multivariate Gaussian system). " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- This linear _sequential_ estimator of mean and variance in Gaussian observations is called a **Kalman Filter**.\n", "\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Note that the uncertainty about $\\theta$ decreases over time (since $0<(1-K_t)<1$). This makes sense: since we assume that the statistics of the system do not change (stationarity), each new sample provides new information. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Recursive Bayesian estimation is the basis for **adaptive signal processing** algorithms such as Least Mean Squares (LMS) and Recursive Least Squares (RLS). " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "#### CODE EXAMPLE\n", "\n", "Let's implement the Kalman filter described above. We'll use it to recursively estimate the value of $\\theta$ based on noisy observations." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "using PyPlot\n", "\n", "N = 50 # Number of observations\n", "θ = 2.0 # True value of the variable we want to estimate\n", "σ_ϵ2 = 0.25 # Observation noise variance\n", "x = sqrt(σ_ϵ2) * randn(N) .+ θ # Generate N noisy observations of θ\n", "\n", "t = 0\n", "μ = fill!(Vector{Float64}(undef,N), NaN) # Means of p(θ|D) over time\n", "σ_μ2 = fill!(Vector{Float64}(undef,N), NaN) # Variances of p(θ|D) over time\n", "\n", "function performKalmanStep()\n", " # Perform a Kalman filter step, update t, μ, σ_μ2\n", " global t += 1\n", " if t>1 # Use posterior from prev. step as prior\n", " K = σ_μ2[t-1] / (σ_ϵ2 + σ_μ2[t-1]) # Kalman gain\n", " μ[t] = μ[t-1] + K*(x[t] - μ[t-1]) # Update mean using (1)\n", " σ_μ2[t] = σ_μ2[t-1] * (1.0-K) # Update variance using (2)\n", " elseif t==1 # Use prior\n", " # Prior p(θ) = N(0,1000)\n", " K = 1000.0 / (σ_ϵ2 + 1000.0) # Kalman gain\n", " μ[t] = 0 + K*(x[t] - 0) # Update mean using (1)\n", " σ_μ2[t] = 1000 * (1.0-K) # Update variance using (2)\n", " end\n", "end\n", "\n", "while t)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "using PyPlot, Distributions, SpecialFunctions\n", "X = Normal(0,1)\n", "pdf_product_std_normals(z::Vector) = (besselk.(0, abs.(z))./π)\n", "range1 = collect(range(-4,stop=4,length=100))\n", "plot(range1, pdf.(X, range1))\n", "plot(range1, pdf_product_std_normals(range1))\n", "legend([L\"p(X)=p(Y)=\\mathcal{N}(0,1)\", L\"p(Z)\"]); grid()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Review Gaussians\n", "\n", "The success of Gaussian distributions in probabilistic modeling is large due to the following properties:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- A linear transformation of a Gaussian distributed variable is also Gaussian distributed" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- The convolution of two Gaussian functions is another Gaussian function (use in sum of 2 variables)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- The product of two Gaussian functions is another Gaussian function (use in Bayes rule). " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Conditioning and marginalization of multivariate Gaussian distributions produce Gaussians again (use in working with observations and when doing Bayesian predictions)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- The Gaussian PDF has higher entropy than any other with the same variance. (Not discussed in this course).\n", "\n", "- Any smooth function with single rounded maximum, if raised to higher and higher powers, goes into a Gaussian function. (Not discussed)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Some Useful Matrix Calculus\n", "\n", "Aside from working with Gaussians, it will be helpful for the next lessons to be familiar with some matrix calculus. We shortly recapitulate used formulas here. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- We define the **gradient** of a scalar function $f(A)$ w.r.t. an $n \\times k$ matrix $A$ as\n", "$$\n", "\\nabla_A f \\triangleq\n", " \\begin{bmatrix}\n", "\\frac{\\partial{f}}{\\partial a_{11}} & \\frac{\\partial{f}}{\\partial a_{12}} & \\cdots & \\frac{\\partial{f}}{\\partial a_{1k}}\\\\\n", "\\frac{\\partial{f}}{\\partial a_{21}} & \\frac{\\partial{f}}{\\partial a_{22}} & \\cdots & \\frac{\\partial{f}}{\\partial a_{2k}}\\\\\n", "\\vdots & \\vdots & \\cdots & \\vdots\\\\\n", "\\frac{\\partial{f}}{\\partial a_{n1}} & \\frac{\\partial{f}}{\\partial a_{n2}} & \\cdots & \\frac{\\partial{f}}{\\partial a_{nk}}\n", " \\end{bmatrix}\n", "$$\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ " \n", "- The following formulas are useful (see Bishop App.-C)\n", "$$\\begin{align*}\n", "|A^{-1}|&=|A|^{-1} \\tag{B-C.4} \\\\\n", "\\nabla_A \\log |A| &= (A^{T})^{-1} = (A^{-1})^T \\tag{B-C.28} \\\\\n", "\\mathrm{Tr}[ABC]&= \\mathrm{Tr}[CAB] = \\mathrm{Tr}[BCA] \\tag{B-C.9} \\\\\n", "\\nabla_A \\mathrm{Tr}[AB] &=\\nabla_A \\mathrm{Tr}[BA]= B^T \\tag{B-C.25} \\\\\n", "\\nabla_A \\mathrm{Tr}[ABA^T] &= A(B+B^T) \\tag{B-C.27}\\\\\n", " \\nabla_x x^TAx &= (A+A^T)x \\tag{from B-C.27}\\\\\n", "\\nabla_X a^TXb &= \\nabla_X \\mathrm{Tr}[ba^TX] = ab^T \\notag\n", "\\end{align*}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### What's Next?\n", "\n", "- We discussed how Bayesian probability theory provides an integrated framework for making predictions based on observed data." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- The process involves model specification (your main task!), inference and actual model-based prediction." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- The latter two tasks are only difficult because of computational issues." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Maximum likelihood was introduced as a computationally simpler approximation to the Bayesian approach." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- In particular under some linear Gaussian assumptions, a few interesting models can be designed." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- The rest of this course (part-1) concerns introduction to these Linear Gaussian models." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "open(\"../../styles/aipstyle.html\") do f\n", " display(\"text/html\", read(f, String))\n", "end" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "@webio": { "lastCommId": "28b2cce9fe2c4608810427288c6c6e0a", "lastKernelId": "11552e6c-9ed2-4354-8bae-4918120a66e2" }, "anaconda-cloud": {}, "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Julia 1.1.0", "language": "julia", "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.1.0" }, "widgets": { "state": { "3e8b6f2f-6500-4ec7-963f-2db519e88817": { "views": [ { "cell_index": 11 } ] } }, "version": "1.2.0" } }, "nbformat": 4, "nbformat_minor": 1 }