{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Particle Filtering with **QInfer** #\n", "**Cassandra Granade**, University of Sydney.
\n", "Based on a tutorial by **Christopher Ferrie**.\n", "\n", "Quantum Machine Learning Workshop 2016
\n", "Perimeter Institute\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction ##" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this Notebook, we will introduce Bayesian parameter estimation and the particle filter algorithm implemented by **QInfer**. To this end, suppose we have a coin that we do not know the bias $p$ of. We will guess what $p$ is by flipping the coin many times. \n", "\n", "If we knew the bias, we could determine the exact distribution of the number of \"Heads\" we would see. If we label the number of flips $N$ and the number of heads $n$, then the distribution of $n$ is of course a Binomial distribution\n", "$$\n", "\\operatorname{Pr}(n|p) = \\binom{N}{n} p^n (1-p)^{N-n}.\n", "$$\n", "\n", "Now suppose we have flipped the coin and $n$ heads did actually occur in $N$ flips. What is the distribution of $p|n$? The answer is given by Bayes' rule:\n", "$$\n", "\\operatorname{Pr}(n|p) = \\frac{\\operatorname{Pr}(n|p)\\operatorname{Pr}(p)}{\\operatorname{Pr}(n)},\n", "$$\n", "where $\\operatorname{Pr}(n|p)$ is called the likelihood function, $\\operatorname{Pr}(p)$ the prior, $\\operatorname{Pr}(p|n)$ the posterior and $\\operatorname{Pr}(n)$ is called the evidence. The likelihood function we have determined above. The prior is the input to the problem and the evidence can be determined by normalization of probability.\n", "\n", "The input, the prior, can be anything. A typical choice for generic problems is the uniform prior $\\operatorname{Pr}(p) = 1/V$, where $V$ is the volume of the parameter space, in this case $V = 1$ since the bias can be between 0 and 1. For the uniform prior, the posterior is\n", "$$\n", "\\operatorname{Pr}(p|n) = \\frac{p^n (1-p)^{N-n}}{B(n+1,N-n+1)},\n", "$$\n", "where $B$ is the Beta function.\n", "\n", "For more complicated models, such an analytic solution is not obtainable and we must turn to numerical algorithms. The algorithm we use is called sequential Monte Carlo or the particle filter. We begin by drawing $k$ samples $\\{p_i\\}$ from the prior and approximating it as\n", "$$\n", "\\operatorname{Pr}(p) = \\frac{1}{k}\\sum_{i=1}^k \\delta(p-p_i).\n", "$$\n", "The samples are called particles. Each particle is associated a weight $w_i$ which is conventionally set to be $1/k$ initially. The weights are updated via Bayes rule as follows:\n", "$$\n", "w_i(n) \\mapsto \\Pr(n|p_i)/k.\n", "$$\n", "The set of weights $\\{w_i(n)\\}$ are not normalized so we make one final assignment\n", "$$\n", "w_i(n) \\mapsto \\frac{w_i(n)}{\\sum_j w_j(n)}.\n", "$$\n", "Then the posterior is approximated by\n", "$$\n", "\\operatorname{Pr}(p) = \\sum_{i=1}^k w_i(n) \\delta(p-p_i).\n", "$$\n", "\n", "That's it; that's the basics! Now we will go through it a little more slowly using numpy, scipy and qinfer." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Installation ##" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you wish to install into your existing Python or Anaconda environment, simply run the following:\n", "\n", " $ pip install qinfer\n", " \n", "For this tutorial, however, we recommend creating a fresh Anaconda environment to avoid incompatabilities.\n", "\n", " $ conda create -n=qinfer-tutorial python=3.5 numpy scipy matplotlib jupyter\n", " \n", "To activate your new environment, run\n", "\n", " $ source activate qinfer-tutorial\n", "\n", "on Linux, OS X or Ubuntu for Windows, and run \n", "\n", " > activate qinfer-tutorial\n", " \n", "on Windows. Once you have activated the new environment, install QInfer as normal.\n", "\n", " $ pip install qinfer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Running Jupyter ##" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With the appropriate environment activated, run Jupyter Notebook:\n", "\n", " $ jupyter notebook" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Preamble ##\n", "\n", "Here we import all the necessary modules as well as make the code compatible with Python 2.7. This may generate some warnings; that's OK. Jupyter and **QInfer** are letting us know which optional libraries are missing." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Anaconda2\\envs\\qinfer-tutorial\\lib\\site-packages\\qinfer\\metrics.py:51: UserWarning: Could not import scikit-learn. Some features may not work.\n", " warnings.warn(\"Could not import scikit-learn. Some features may not work.\")\n", "C:\\Anaconda2\\envs\\qinfer-tutorial\\lib\\site-packages\\matplotlib\\__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", " warnings.warn(self.msg_depr % (key, alt_key))\n", "C:\\Anaconda2\\envs\\qinfer-tutorial\\lib\\site-packages\\IPython\\parallel.py:13: ShimWarning: The `IPython.parallel` package has been deprecated. You should import from ipyparallel instead.\n", " \"You should import from ipyparallel instead.\", ShimWarning)\n", "C:\\Anaconda2\\envs\\qinfer-tutorial\\lib\\site-packages\\qinfer\\parallel.py:53: UserWarning: Could not import IPython parallel. Parallelization support will be disabled.\n", " \"Could not import IPython parallel. \"\n" ] } ], "source": [ "from __future__ import division, print_function\n", "\n", "import qinfer as qi\n", "import numpy as np\n", "import scipy as sp\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "# Use nice plotting defaults if available.\n", "try: plt.style.use('ggplot')\n", "except: pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Flipping coins" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Suppose we flip our coin 10 times. What does $\\operatorname{Pr}(n|p)$ look like?" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nWy7F68+MrQ2i1+tVV1dXaNvv98vr9Y7Yp7u7O7Td3d09Yh9Jam9vV3t7e2i7qqpKLf9SHoPU1nK7\n3XZHuCgyWoOM1ti9e3focVFRkYqKisY9VzQ1aGho6KJjpYmpTe97n9Qyf7a1831wpmXzheaM94yW\nzvYmJ/xMSc7I6YSMVtWniahN0uj1qdzqn1ML5wvNaeHPPhktnC8RM0r6gKUzxsZYa5OtLWtBQYE6\nOjrU2dmpoaEhNTc3q6SkJGyfkpISPfnkk5Kkw4cPa+rUqcrMzBwxV1FRkaqqqkL/vf0bEa/IaA0y\nWsMpGd/+cx5NcyhFV4MiGStRm2KFjNZxQk6nZLSqPk1EbZKoT7FCRmuQ0RrjqU22HkFMSkpSdXW1\namtrZZqmysvLlZ+fr3379skwDFVUVGjhwoVqbW3V7bffrtTUVK1atcrOyAAmkWhq0IXGAkC0qE0A\n7GT7ZxCLi4tVX18f9tzy5cvDtqurqycyEoAEEk0NGm0sAFiB2gTALq5vfetb37I7RKzk5OTYHeGi\nyGgNMlqDjBPDCe+BjNZwQkbJGTnJODGc8B7IaA0yWmMyZjRM0zRjlAUAAAAA4CDxd11VAAAAAIAt\naBABAAAAAJLi4CI1Vmtra1NjY6NM01RZWZkqKyvtjjRCd3e3tm/frjNnzsgwDC1btkyf+MQn7I41\nQjAY1Pr16+X1evX1r3/d7jijGhgY0L//+7/rb3/7mwzD0KpVqzR37ly7Y4X5zW9+oz/84Q8yDEOX\nXHKJVq9ereRke3/0du7cqeeff17Tpk3Tt7/9bUlSf3+/vvvd76qzs1M5OTm64447lJaWFlcZH3nk\nET333HNKTk7We9/7Xq1evdrWjGMV7/XJKbVJiv/6RG0aH2qTPahN1qE2RS8ea5OUYPXJnEQCgYC5\ndu1a89SpU+Ybb7xhfu1rXzNPnDhhd6wRTp8+bR47dsw0TdN8/fXXzS996UtxmfPXv/61WV9fb/7b\nv/2b3VEuaPv27ebvf/970zRNc2hoyDx79qzNicJ1d3eba9asMd944w3TNE3zO9/5jtnU1GRzKtP8\ny1/+Yh47dsz86le/Gnruhz/8ofnLX/7SNE3T/MUvfmE+8sgjdsUzTXP0jH/+85/NQCBgmqZpPvLI\nI+Z//dd/2RVvzJxQn5xSm0wz/usTtWl8qE0Tj9pkLWpTdOK1NplmYtWnSXWKqc/nU25urrKzs5Wc\nnKzS0lK1tLTYHWuEzMxMzZ49W5KUmpqqvLw8+f1+e0O9Q3d3t1pbW7Vs2TK7o1zQwMCADh06pLKy\nMkmSy+WKy7/YBoNBDQ4OKhAI6Ny5c/J4PHZHUmFhoaZOnRr23LPPPqurr75akvTRj37U9p+d0TJe\ndtllSkp6s2zNnTtX3d3ddkQbFyfUJyfUJin+6xO1afyoTROP2mQdapM14rE2SYlVn+w/Xmshv9+v\nrKys0LbX65XP57Mx0cWdOnVKx48fj7vD+w8//LA+97nPaWBgwO4oF3Tq1Cm53W7t2LFDx48f15w5\nc/RP//RPSklJsTtaiNfr1bXXXqvVq1drypQpuuyyy3TZZZfZHWtUZ86cUWZmpqQ3fxmfOXPG5kTv\n7g9/+INKS0vtjhExp9WneK1NUvzXJ2qTtahNsUVtsg61KXpOqk3S5K1Pk+oIotMMDg7qO9/5jj7/\n+c8rNTXV7jghb527PHv2bJmmKTNO74QSDAZ17NgxfexjH9O9996rKVOm6Je//KXdscKcPXtWzz77\nrHbs2KEHHnhAg4OD2r9/v92xImIYht0RLujnP/+5XC6XPvKRj9gdZVKK19okOaM+UZtii9qUuKhN\n0aE2xd5kqU+TqkH0er3q6uoKbfv9fnm9XhsTXVggENDWrVt11VVXadGiRXbHCXPo0CE9++yzWrt2\nrerr69Xe3q7t27fbHWsEr9errKwsvf/975ckXXHFFTp69KjNqcK98MILysnJUXp6upKSkrRkyRK9\n9NJLdscaVWZmpnp6eiRJPT09mjZtms2JRtfU1KTW1latW7fO7ihj4pT6FM+1SXJGfaI2WYvaFFvU\nJmtQm6zhpNokTd76NKkaxIKCAnV0dKizs1NDQ0Nqbm5WSUmJ3bFGtXPnTuXn58flVbg+85nPaOfO\nndq+fbu+/OUv60Mf+pDWrl1rd6wRMjMzlZWVpVdeeUXSm0UlPz/f5lThpk+friNHjuj8+fMyTVMv\nvPCC8vLy7I4lSSP+wnn55ZerqalJ0puFJB5+dt6Zsa2tTb/61a/0//7f/9N73vMeG5ONnVPqUzzX\nJskZ9YnaFB1q08SiNlmD2mSNeK5NUuLUJ8OMx2PgUWhra9N//Md/yDRNlZeXx92lmqU3/8q0adMm\nXXLJJTIMQ4Zh6KabblJxcbHd0UZ48cUX9etf/zouL9UsSS+//LIeeOABDQ0Nxe2lxX/605/q6aef\nlsvl0uzZs7Vy5UrbL9dcX1+vF198UX19fZo2bZqqqqq0aNEibdu2TV1dXcrOztYdd9wx4oPOdmf8\nxS9+oaGhIbndbklvfth6xYoVtmUcq3ivT06qTVJ81ydq0/hQm+xBbbIWtSk68VibpMSqT5OuQQQA\nAAAAjM+kOsUUAAAAADB+NIgAAAAAAEk0iAAAAACAYTSIAAAAAABJNIgAAAAAgGE0iAAAAAAASTSI\nAAAAAIBhNIgAAAAAAEk0iAAAAACAYTSIAAAAAABJNIgAAAAAgGHJdgcAxuPo0aM6cuSITp8+rfe/\n//0KBAJ6/vnntXr1arujAUhg1CYA8YjahLHgCCIcqbe3V3l5eTpx4oQWLVqkK664Qn/5y1/sjgUg\nwVGbAMQjahPGggYRjlRcXKwDBw5o6dKlkqTDhw9r1qxZNqcCkOioTQDiEbUJY0GDCMc6ePCg5s+f\nL0lqamrSVVddpeeee87mVAASHbUJQDyiNiFSNIhwpPPnz2vq1KlKS0uTJKWmpmpgYEDTpk2zORmA\nREZtAhCPqE0YC8M0TdPuEAAAAAAA+3EEEQAAAAAgiQYRAAAAADCMBhEAAAAAIIkGEQAAAAAwjAYR\nAAAAACCJBhEAAAAAMIwGEQAAAAAgiQYRAAAAADCMBhEAAAAAIEn6/+8NoitmnAMEAAAAAElFTkSu\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create a variable for the number of flips (go ahead and change this if you want).\n", "N = 10\n", "# This creates an array containing [0, 1, ..., N].\n", "n = np.arange(0, N + 1)\n", "\n", "# This sets up the figure as an matrix of subfigures with 1 row and 3 columns.\n", "fig, axarr = plt.subplots(1, 3, figsize=(15, 5))\n", "# This is the probability mass function (pmf) of the binomial distribution for p = 0.\n", "dist = sp.stats.binom.pmf(n, N, 0)\n", "# On the first (0 indexed!) subplot, make a bar plot with x-axis given by the array n and y-axis given by the pmf.\n", "axarr[0].bar(n, dist)\n", "\n", "# The rest is just annotation and repeating for different biases.\n", "axarr[0].set_xlabel(\"$n$\")\n", "axarr[0].set_ylabel(\"$\\operatorname{Pr}(n|p)$\")\n", "axarr[0].set_title(\"$p = 0$\")\n", "\n", "dist = sp.stats.binom.pmf(n, N, 0.1)\n", "axarr[1].bar(n, dist)\n", "axarr[1].set_xlabel(\"$n$\")\n", "axarr[1].set_title(\"$p = 0.1$\")\n", "\n", "dist = sp.stats.binom.pmf(n, N, 0.5)\n", "axarr[2].bar(n, dist)\n", "axarr[2].set_xlabel(\"$n$\")\n", "axarr[2].set_title(\"$p = 0.5$\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In reality, we often have data, in this case $n$, so we are interested not in $\\operatorname{Pr}(n|p)$ but in $\\operatorname{Pr}(p|n)$. We still use $\\operatorname{Pr}(n|p)$ in Bayes' rule but think of it as a function of $p$ for fixed data $n$. Below we plot what that looks like." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nfBgAkJ2djQkTJmhO/b3Fixdj+/btqK6uRqdOnZCTk4OGhoag2qYB1iarsENtAuxRn4K9NgH2qE92\nqE0A65NVsDZZg79qU9A3ikRERERERNS+gvrSUyIiIiIiImp/bBSJiIiIiIjICxtFIiIiIiIi8sJG\nkYiIiIiIiLywUSQiIiIiIiIvbBSJiIiIiIjICxtFIiIiIiIi8sJGkYiIiIiIiLywUSQiIiIiIiIv\nbBSJiIiIiIjIS5juAESt8e2332LXrl3Yu3cvBg0ahCNHjiAsLAyTJk3SHY2IQhhrExFZFesTtRTP\nKFJQqqysRK9evVBeXo5Ro0Zh4sSJeP3113XHIqIQx9pERFbF+kQtxUaRglJqaio2b96MkSNHAgB2\n794Np9OpORURhTrWJiKyKtYnaik2ihS0tmzZgsGDBwMA1q5di2nTpmlORETE2kRE1sX6RC3BexQp\nKNXW1qKqqgo7duzAli1b0LdvX4wZM0Z3LCIKcaxNRGRVrE/UUmwUKSht27YNw4cPR0ZGhu4oRERN\nWJuIyKpYn6ileOkpBZ0DBw7g7bffxtGjR3H8+HHdcYiIALA2EZF1sT5Ra4hSSukOQURERERERNbB\nM4pERERERETkhY0iEREREREReWGjSERERERERF7YKBIREREREZEXNopERERERETkhY0iERERERER\neWGjSERERERERF7YKBIREREREZGX/wOJqK3fU23pvQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ " # This creates an array with 100 values between 0 and 1.\n", "p = np.linspace(0, 1, 100)\n", "\n", "fig, axarr = plt.subplots(1, 3, figsize=(15, 5))\n", "likelihood = sp.stats.binom.pmf(0, N, p)\n", "axarr[0].plot(p, likelihood)\n", "axarr[0].set_xlabel(\"$p$\")\n", "axarr[0].set_ylabel(\"$\\operatorname{Pr}(n|p)$\")\n", "axarr[0].set_title(\"$n = 0$\")\n", "\n", "likelihood = sp.stats.binom.pmf(1, N, p)\n", "axarr[1].plot(p, likelihood)\n", "axarr[1].set_xlabel(\"$p$\")\n", "axarr[1].set_title(\"$n = 1$\")\n", "\n", "likelihood = sp.stats.binom.pmf(5, N, p)\n", "axarr[2].plot(p, likelihood)\n", "axarr[2].set_xlabel(\"$p$\")\n", "axarr[2].set_title(\"$n = 5$\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Bayes' rule states:\n", "$$\n", "\\operatorname{Pr}(p|n) = \\frac{\\operatorname{Pr}(n|p)\\operatorname{Pr}(p)}{\\operatorname{Pr}(n)} = \\frac{p^n (1-p)^{N-n}}{B(n+1,N-n+1)},\n", "$$\n", "For the uniform prior $\\operatorname{Pr}(p) = 1$. Since this is just proportional to $\\operatorname{Pr}(p|n)$ we should expect the posterior to look the same.\n", "\n", "(Note that $\\operatorname{Pr}(p|n)$ is not strictly a probability, but a density, or measure, and can be greater than 1 for any particular value of $p$ since only questions about the probability over intervals return non-zero answers.)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4YAAAFaCAYAAABCEENwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt81PWd9/3XN2eSDIQECJAAIZDjcBBEpGixVlypV1vb\nuuZeedRD197uhYdWe62yvb33cvfaut6Aeq0WYbuy7trttitXW61121Jqtau1KoeAkBASjnIQAokh\n50Ay3/uPgdSYAEmYme/Mb97Px6OPZmZ++f3eXxN+mc98T8ZaaxEREREREZG4leA6gIiIiIiIiLil\nwlBERERERCTOqTAUERERERGJcyoMRURERERE4pwKQxERERERkTinwlBERERERCTOqTAUERERERGJ\ncyoMxbMOHz7MX/zFX/Dss8/y9a9/nQMHDriOJCLSq7Ozk2XLlvHWW2+5jiIiAsBvf/tbNmzYwJEj\nR9i5cyf//M//7DqSRJAKQ/Gs2267jdtvv517772Xr3/969x6662uI4mIAPC9732PRx99lB//+McE\nAgHXcUREAHjzzTf53Oc+x6RJk7jhhhuYPn2660gSQUmuA4iEQ11dHdu3b+eqq64CYMGCBezevZsP\nPviAyZMnO04nIvHuL/7iLwBYv3694yQiIn1VVVXR0tLC3LlzSUpSqRBP9NMWT3r//feZNGlSn+fy\n8/N5++23VRiKiIiInEdZWZnrCOKICkPxpPr6ekaMGNHnufT0dI4dO+YokYiIiEj0++53v0tSUhI7\nduzgjjvu4Morr3QdSSJEhaE4UV9fz49+9CN++9vf8sgjj7Bz504gOOn5Bz/4QZ9jm5qa+Na3vtX7\n2Frb+7UxBmstxhgefPBBZs6cCcBHH31ESkpKn/OkpKTQ0tISriaJiEeE+/4kIjIckbg3zZw5k09/\n+tOMHTuWQ4cOceWVV1JXV0dGRkaYWyfRQIWhOPHSSy/xjW98g9WrV1NVVcWf//mfA/DQQw/R2NhI\ndnZ277FZWVk8//zzQzq/z+fr91x7e3uf84qIDCTc9ycRkeGIxL3pK1/5Su/XkyZNIikpiVdeeUUL\n+MUJrUoqTixdupQjR47Q2trK1772NQD2799PSkpKSIq38ePH09ra2ue5trY2cnNzL/ncIuJt4b4/\niYgMR7jvTe3t7Tz22GN0dXX1ef7QoUOXfG6JDeoxFCd8Ph8//vGPWbx4ce9z69ev58/+7M/o6urC\n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\nZwiH2gSET31ibTIvHGoTwPrkFOFSm4DQ1ydRl52jzs/Px3PPPQdVxbBhwzBmzBgsXboUIoLs7GwA\nwKJFi5Cfn4+4uDhMmDABnTp1Mpz6TOcbx1NPPYXPP/8cLVq0gKoiKioKs2bNMh37NMH8Lr4zf/58\n9O3b15FTLp9vDG+88QaWLVsGy7IwfPhwXHHFFYZTn+58Yzh06BDmz5+PQ4cOAQDGjBmDgQMHGk59\nunnz5mHjxo0oKSlB06ZNkZOTg8rKyrB7XQPOHwdrkzOEQ20C3F+fWJucIxxqE8D65BRur01A/dQn\n1zWGREREREREFFquupSUiIiIiIiIQo+NIRERERERUYRjY0hERERERBTh2BgSERERERFFODaGRERE\nREREEY6NIRERERERUYRjY0hERERERBTh2BgSERERERFFODaGREREREREEY6NIRERERERUYTzmA5A\nFKydO3di69at2LVrF7p164bDhw/D4/FgyJAhpqMRUQRjbSIiJ2JtopriGUNyjaKiIqSkpODAgQPI\nzMzEoEGD8Oqrr5qORUQRjrWJiJyItYlqio0huUZ6ejq++OIL9O3bFwCwbds2eL1ew6mIKNKxNhGR\nE7E2UU2xMSRXWb9+Pbp37w4AWLFiBUaPHm04ERERaxMRORNrE9UE7zEk1ygvL0dxcTE2bdqE9evX\no3PnzujXr5/pWEQU4VibiMiJWJuoptgYkmts2LABvXv3xuDBg01HISKqxtpERE7E2kQ1xUtJyRX2\n7NmDt956C0eOHMHRo0dNxyEiAsDaRETOxNpEtSGqqqZDEBERERERkTk8Y0hERERERBTh2BgSERER\nERFFODaGREREREREEY6NIRERERERUYRjY0hERERERBTh2BgSERERERFFODaGREREREREEY6NIRER\nERERUYT7/z5+sfPXG4FVAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Rather than write it out many times, we define a function to compute the posterior which compresses further code.\n", "def posterior(p, n, N):\n", " return p ** n * (1 - p) ** (N - n) / sp.special.beta(n + 1, N - n + 1)\n", "\n", "# Note that notebooks have access to the variables defined in previous run cells, so we do not need to redefine N and p.\n", "fig, axarr = plt.subplots(1, 3, figsize=(15, 5))\n", "axarr[0].plot(p, posterior(p, 0, N))\n", "axarr[0].set_xlabel(\"$p$\")\n", "axarr[0].set_ylabel(\"$\\operatorname{Pr}(p | n)$\")\n", "axarr[0].set_title(\"$n = 0$\")\n", "\n", "axarr[1].plot(p, posterior(p, 1, N))\n", "axarr[1].set_xlabel(\"$p$\")\n", "axarr[1].set_title(\"$n = 1$\")\n", "\n", "axarr[2].plot(p, posterior(p, 5, N))\n", "axarr[2].set_xlabel(\"$p$\")\n", "axarr[2].set_title(\"$n = 5$\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### QInfer\n", "\n", "Now we will demonstrate how to use **QInfer** to get a numerical approximation to the posterior. The first task is create a `Model`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# We create a model which is abstracted by the Model class, which already implements common methods \n", "# among models and templates what such a class needs to look like\n", "\n", "class CoinFlipsModel(qi.Model):\n", " \n", " # This function is called when an instance of this class is instantiated.\n", " def __init__(self):\n", " # Make sure all the necessary functionality in the Model class is brought over.\n", " super(CoinFlipsModel, self).__init__()\n", " \n", " # The following are functions that are required for the functionality of QInfer.\n", " \n", " @property\n", " def n_modelparams(self):\n", " # The dimension of the parameter space.\n", " return 1 # In this case, it is just the bias p.\n", " \n", " @property\n", " def expparams_dtype(self):\n", " # many models will have complicated experiment design descriptions. Here, it is just the number of flips.\n", " return int # The number of flips is an integer.\n", " \n", " def n_outcomes(self, expparams):\n", " # The number of outcomes are needed to numerically simulate experiments.\n", " return expparams + 1 # the number of flips + 1\n", " \n", " def are_models_valid(self, modelparams):\n", " # Make sure any boundaries in the parameter space are respected.\n", " # In this case, the modelparams array is a bias, which must be between 0 and 1.\n", " return np.logical_or(modelparams >= 0, modelparams <= 1)[:, 0]\n", " \n", " def likelihood(self, outcomes, modelparams, expparams):\n", " # Finally, we calculate the likelihood function\n", " # Again, call some necessary internal functions.\n", " super(CoinFlipsModel,self).likelihood(outcomes, modelparams, expparams)\n", " \n", " # The tensor storing the values of the likelihood has the following expected shape.\n", " like = np.zeros([outcomes.shape[0], modelparams.shape[0], 1])\n", " \n", " # scipy.stats.binom can vectorize over one of its arguments so we'll have to loop over the other\n", " for idx in range(outcomes.shape[0]):\n", " like[idx] = sp.stats.binom.pmf(outcomes[idx], expparams, modelparams)\n", " \n", " return like" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that is a bit overkill for such a simple problem, but the functionality is there really for more \"interesting\" models. But we can see that calling `model.likelihood` gives the correct results." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nfBgAkJ2djQkTJmhO/b3Fixdj+/btqK6uRqdOnZCTk4OGhoag2qYB1iarsENtAuxRn4K9NgH2qE92\nqE0A65NVsDZZg79qU9A3ikRERERERNS+gvrSUyIiIiIiImp/bBSJiIiIiIjICxtFIiIiIiIi8sJG\nkYiIiIiIiLywUSQiIiIiIiIvbBSJiIiIiIjICxtFIiIiIiIi8sJGkYiIiIiIiLywUSQiIiIiIiIv\nbBSJiIiIiIjIS5juAESt8e2332LXrl3Yu3cvBg0ahCNHjiAsLAyTJk3SHY2IQhhrExFZFesTtRTP\nKFJQqqysRK9evVBeXo5Ro0Zh4sSJeP3113XHIqIQx9pERFbF+kQtxUaRglJqaio2b96MkSNHAgB2\n794Np9OpORURhTrWJiKyKtYnaik2ihS0tmzZgsGDBwMA1q5di2nTpmlORETE2kRE1sX6RC3BexQp\nKNXW1qKqqgo7duzAli1b0LdvX4wZM0Z3LCIKcaxNRGRVrE/UUmwUKSht27YNw4cPR0ZGhu4oRERN\nWJuIyKpYn6ileOkpBZ0DBw7g7bffxtGjR3H8+HHdcYiIALA2EZF1sT5Ra4hSSukOQURERERERNbB\nM4pERERERETkhY0iEREREREReWGjSERERERERF7YKBIREREREZEXNopERERERETkhY0iERERERER\neWGjSERERERERF7YKBIREREREZGX/wOJqK3fU23pvQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model = CoinFlipsModel() # This instantiates the model we just defined.\n", "\n", "# Recall that model.expparams_dtype was int and we defined N to be an integer above.\n", "expparams = np.array([N], dtype=model.expparams_dtype)\n", "# In the model we asked for outcomes.shape[0], so we have to define it as an object with a shape!\n", "outcome = np.array([0])\n", "\n", "fig, axarr = plt.subplots(1, 3, figsize=(15, 5))\n", "# Note that modelparams are expected to have at least 2D shape;\n", "# indexing by None adds an axis to the (100,) array we defined above for p.\n", "axarr[0].plot(p, model.likelihood(outcome, p[:, None], expparams)[0, :, 0]) \n", "axarr[0].set_xlabel(\"$p$\")\n", "axarr[0].set_ylabel(\"$\\operatorname{Pr}(n | p)$\")\n", "axarr[0].set_title(\"$n = 0$\")\n", "\n", "outcome = np.array([1])\n", "axarr[1].plot(p, model.likelihood(outcome, p[:, None], expparams)[0, :, 0])\n", "axarr[1].set_xlabel(\"$p$\")\n", "axarr[1].set_title(\"$n = 1$\")\n", "\n", "outcome = np.array([5])\n", "axarr[2].plot(p, model.likelihood(outcome, p[:, None], expparams)[0, :, 0])\n", "axarr[2].set_xlabel(\"$p$\")\n", "axarr[2].set_title(\"$n = 5$\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "The next step is creating a distribution. For most (and by most, I mean nearly all) distributions used in practice, there is built-in functionality. In particular, the uniform prior discussed above is defined in QInfer as follows. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.86006411]]\n" ] } ], "source": [ "# This instantiates the built-in uniform prior over the interval [0, 1].\n", "prior = qi.UniformDistribution([0, 1])\n", "# prior.sample() returns a single randomly drawn sample.\n", "print(prior.sample())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The last thing to do is define an `SMCUpdater` which implements the sequential Monte Carlo algorithm. An `SMCUpdater` takes a `model` and `prior` and then its `update` function takes data and experiment parameters to produce the posterior distribution. The number of particles used controls the approximation." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# The number of particles we will use.\n", "n_particles = 1000\n", "\n", "# Instantiates an updater, takes the model and prior we defined above.\n", "updater = qi.smc.SMCUpdater(model, n_particles, prior)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK, now we can plug in some data and see how well it does." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nATaDe87rzpvb8jlYVOWDCkVXImFOdGkV1Z5lus7tEeZZ3aGG1hrzjcWo8y9CpfTxYYVCiI5K9R2E\nGn0e+q2X693ePTyAuSPjeXp9NiedZjtXJ7oSCXOiy/pxma6BsUFceU5srW168xrIy0VdOttH1Qkh\nrEDNuAp9aB86fVO92yf1jmBgbBAvpcn1c6LtSJgTXZLL1CxYd4zYYH+uH5VQ6y5VXVyIXrkMY85t\nKH9/H1YphOjolN2Occ1tnpsh6jndCnDD6AQyC6v4PFOunxNtQ8Kc6HLcpmbhxhyUgltrlun6Ua3T\nqz37+bBKIYRVqP5Dak63Lq13e6CfwbwLknnz+3z25Mn8c6L1SZgTXYrWmqXfHqfwpJN7zuuOn1F7\n3ji9eQ3kH5fTq0KIJvGcbs1Eb/2m3u3dwwP407hEFqw7RtFJVztXJzo7CXOiy9Ba83pGHvsLqrh/\nUjJ2v9pvfzm9KoRoLmW3Y8y5FfPNl9Bl9Z9uHZ0cyvR+ESxYdwynW66fE61HwpzoMlbuKCDtWDkP\nT04m2L/2VCOnTq9eIKdXhRDNo/oNQY0+H/3WSw2OmT00lpAAg+Vb664eIURzSZgTXcJ7uwpYfbCE\nR6amEB7oV2e73rxaTq8KIVpMzfg9+vAP6O821rvdUIo7zk0iPaeCrw6UtHN1orOSMCc6vY/3FvHp\n/mIemZpCVFA9QS7/OHrlqxjX3o7yk9OrQojmU3Y7xrW3Y765BF1cUO+YkAAb8y5IZvnWE2QWyITC\nouUkzIlObVVmMe/uKuDRqT2IC6kb1LTbjbnsH6iL/gOV0tcHFQohOhvVdxBq4sWYrz6LNuufLDgl\n0s5NYxJ4cm0WBZXOdq5QdDYS5kSntfpgCW9uy+eRqSkkhAbUO0Z/+m/w90dN/3U7VyeE6MzUJbOg\n2oH+4sMGx5ybEs7FA6J4bHWWrBAhWkTCnOiUNhwuZfnWE8yf0oPu4Q0EuR/2oL/+GGPO7ShDfhSE\nEK1H2WwYc+9Ef/pv9JEDDY6bOSSaPtGB/G1DNm5T7nAVzSN7MNHprD9cytJvj/PwlB6kRNrrHaNP\nVmIu+zvGlTehomLauUIhRFeg4rqhZs/FfOVvaIej/jFKcdOYbjhcJsvTT7RzhaKzkDAnOpX1h0t5\nuSbI9Y4KbHCcfmspatDZqBHj27E6IURXY4ybjOrRB/3v5Q2O8TMU957fnfTsCj7ZV9SO1YnOQsKc\n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\nderj9L8QYT3SP+uS3lmb9M+6pHfWtnLlylo5xtsgBz4+MmcYBnPnzuWxxx5Da82UKVNITk5m1apV\nKKWYNm0aI0aMID09nT/96U8EBgZy0003+bJkIYQQQogOxecXYA0bNoyFCxfW+t706dNrPZ47d257\nliSEEEIIYRk+Pc3alppyeFJ0PNI/65LeWZv0z7qkd9bWkv75fAUIIYQQQgjRfJ32yJwQQgghRFcg\nYU4IIYQQwsJ8fgNES2VkZLBixQq01kyePJkZM2bUGfPqq6+SkZGB3W7n5ptvplevXu1fqKijsd6t\nX7+eDz74AIDAwECuv/56UlJSfFGqqIc3P3vgWbbvgQce4Pbbb2fs2LHtXKWojze927lzJ//85z9x\nu92Eh4fz0EMP+aBSUZ/G+ldZWcnzzz9Pfn4+pmly2WWXMWnSJN8UK2p58cUX2bp1KxERETzzzDP1\njmlWZtEW5na79S233KJPnDihnU6nvvvuu3VWVlatMVu3btVPPPGE1lrrffv26fvuu88XpYqf8aZ3\ne/fu1RUVFVprrdPT06V3HYg3/ftx3Pz58/WTTz6pN23a5INKxc9507uKigp9xx136IKCAq211iUl\nJb4oVdTDm/69++67+l//+pfW2tO7OXPmaJfL5Ytyxc/s3r1bHzx4UN911131bm9uZrH0adbMzEwS\nExOJi4vDz8+PCRMmkJaWVmtMWloaEydOBKB///5UVlZSXFzsi3LFabzp3YABAwgODgY8vSssLPRF\nqaIe3vQP4LPPPmPcuHGEh4f7oEpRH296t379esaOHXtqtR3pX8fhTf+UUpw8eRKAqqoqwsLCsNla\ntjC9aB2DBg0iJCSkwe3NzSyWDnOFhYXExMScehwdHV1nh+/NGNH+mtqXL7/8kmHDhrVHacIL3v7s\npaWlceGFF7Z3eeIMvOlddnY25eXlzJ8/n3nz5rF27dr2LlM0wJv+/eIXvyArK4sbbriBe+65h2uu\nuaadqxTN1dzMYukwJ7qGHTt2sHr1aq688kpflyKaYMWKFbV6pmUWJMswTZODBw8yb9487rvvPt55\n5x1yc3N9XZbwUkZGBr179+all17iqaeeYtmyZVRVVfm6LNGGLH0DRHR0NPn5+aceFxYWnjotcPqY\ngoKCU48LCgrqjBHtz5veARw+fJilS5dy3333ERoa2p4lijPwpn8HDhzg2WefRWtNWVkZ6enp+Pn5\n1Vl/WbQvb//dDAsLIyAggICAAAYPHsyhQ4fo1q1be5crfsab/q1evfrUTRHdunUjPj6eY8eO0bdv\n33atVTRdczOLpY/M9evXj9zcXPLy8nC5XGzYsKHOjmLUqFGsWbMGgH379hESEkJkZKQvyhWn8aZ3\n+fn5/O1vf+OWW26RnUgH403/Fi1axKJFi3jhhRcYN24c1113nQS5DsCb3o0ePZo9e/ZgmiYOh4P9\n+/eTnJzso4rF6bzpX2xsLNu3bweguLiYnJwcEhISfFGuqIfWusEzFc3NLJZfASIjI4Ply5ejtWbK\nlCnMmDGDVatWoZRi2rRpACxbtoyMjAwCAwO56aab6NOnj4+rFtB475YsWcKWLVuIi4tDa43NZuPJ\nJ5/0ddmihjc/ez9avHgxI0eOlKlJOghvevfhhx+yevVqDMNg6tSpXHzxxT6uWvyosf4VFRWxePFi\nioqKAJgxYwbnnXeej6sWAAsXLmTXrl2UlZURERHBrFmzcLlcLc4slg9zQgghhBBdmaVPswohhBBC\ndHUS5oQQQgghLEzCnBBCCCGEhUmYE0IIIYSwMAlzQgghhBAWJmFOCCGEEMLCJMwJIYQQQliYhDkh\nhBBCCAuTMCeEEEIIYWES5oQQQgghLMzP1wUIIURHd/ToUfbv309WVhaDBw+mpKQEPz8/Jk2a5OvS\nhBBCjswJIURjCgoK6NWrF3l5eYwePZrzzz+f9957z9dlCSEEIGFOCCEaNWzYML7//ntGjhwJwMGD\nBwkLC/NxVUII4SFhTgghvLBt2zaGDBkCwNq1a7nssst8XJEQQnjINXNCCNGIqqoqiouL2b17N9u2\nbaNv376MHTvW12UJIQQgYU4IIRq1Y8cOhg8fzsSJE31dihBC1CGnWYUQ4gxycnL46KOPKC0tpaKi\nwtflCCFEHUprrX1dhBBCCCGEaB45MieEEEIIYWES5oQQQgghLEzCnBBCCCGEhUmYE0IIIYSwMAlz\nQgghhBAWJmFOCCGEEMLCJMwJIYQQQliYhDkhhBBCCAv7/wuut5BCoKG9AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# In the model we asked for outcomes.shape[0], so we have to define it as an object with a shape!\n", "outcome = np.array([5])\n", "\n", "# Call the update function to change the state of the updater, now it stores the posterior.\n", "updater.update(outcome, expparams)\n", "\n", "plt.figure(figsize=(10, 5))\n", "\n", "plt.plot(p, posterior(p, 5, N), label = 'True Posterior')\n", "updater.plot_posterior_marginal(smoothing=0.075, other_plot_args={'label': 'QInfer approximation'})\n", "\n", "plt.xlabel(\"$p$\")\n", "plt.ylabel(\"$\\operatorname{Pr}(n|p)$\")\n", "\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hamiltonian Learning and the Updater Loop ##" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The update we performed above forms the core of the *updater loop* concept.\n", "\n", "![](figures/bayesian-pe-flowchart.svg)\n", "\n", "Let's play with this concept further by learning a simple Hamiltonian, $H = \\omega \\sigma_z / 2$ for an unknown $\\omega$. We'll consider an experiment in which one prepares the state $\\left|+\\right\\rangle \\propto \\left|0\\right\\rangle + \\left|1\\right\\rangle$, evolves under $H$ for some time $t$, then measures. This is implemented by the ``SimplePrecessionModel`` class in **QInfer**, so let's create that model now." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "model = qi.SimplePrecessionModel()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll presume that our prior is initially a uniform distribution on $[0, 1]$, and will draw a \"true\" model from that prior. We'll later use the true model to simulate data." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "prior = qi.UniformDistribution([0, 1])\n", "true_modelparams = prior.sample()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, we now create an updater for this model and prior." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "updater = qi.smc.SMCUpdater(model, 2000, prior)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we create a *heuristic* that implements exponentially sparse sampling $t_k = ab^k$." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "heuristic = qi.ExpSparseHeuristic(updater)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we have everything we need to iterate over data, using each datum to update our posterior. In doing so, we'll our heuristic to design new experiments, and will use the model class to simulate new experimental data." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "for idx_experiment in range(50):\n", " experiment = heuristic()\n", " datum = model.simulate_experiment(true_modelparams, experiment)\n", " updater.update(datum, experiment)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "updater.plot_posterior_marginal(res=100, other_plot_args={'label': 'Posterior'})\n", "ylim = plt.ylim()\n", "plt.vlines(updater.est_mean(), *ylim, label='Estimated')\n", "plt.vlines(true_modelparams, *ylim, linestyles='--', label='True')\n", "plt.legend(loc='best')\n", "plt.ylim(*ylim);" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## More QInfer Examples ##" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**QInfer** has been applied in practice to support reproducible research practices. For example,\n", "\n", "- [Figures for *Practical Bayesian tomography*, Granade et al. 2016](http://nbviewer.jupyter.org/gist/cgranade/9b3f8c4c8173eebf5f35/QInfer%20Tomography%20Tutorial.ipynb).\n", "- [Supplemental material for *Accelerated randomized benchmarking*, " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" }, "widgets": { "state": {}, "version": "1.1.1" } }, "nbformat": 4, "nbformat_minor": 0 }