Raw File
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Fully Bayesian inference for generalized GP models with HMC\n",
    "--\n",
    "\n",
    "*James Hensman, 2015, 2016, 2017*\n",
    "\n",
    "It's possible to construct a very flexible models with Gaussian processes by combining them with different likelihoods (sometimes called 'families' in the GLM literature). This makes inference of the GP intractable since the likelihoods is not generally conjugate to the Gaussian process. The general form of the model is \n",
    "$$\\theta \\sim p(\\theta)\\\\f \\sim \\mathcal {GP}(m(x; \\theta),\\, k(x, x'; \\theta))\\\\y_i \\sim p(y | g(f(x_i))\\,.$$\n",
    "\n",
    "\n",
    "To perform inference in this model, we'll run MCMC using Hamiltonian Monte Carlo (HMC) over the function-values and the parameters $\\theta$ jointly. Key to an effective scheme is rotation of the field using the Cholesky decomposition. We write\n",
    "\n",
    "$$\\theta \\sim p(\\theta)\\\\v \\sim \\mathcal {N}(0,\\, I)\\\\LL^\\top = K\\\\f = m + Lv\\\\y_i \\sim p(y | g(f(x_i))\\,.$$\n",
    "\n",
    "Joint HMC over v and the function values is not widely adopted in the literature becate of the difficulty in differentiating $LL^\\top=K$. We've made this derivative available in tensorflow, and so application of HMC is relatively straightforward. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exponential Regression example\n",
    "The first illustration in this notebook is 'Exponential Regression'. The model is \n",
    "$$\\theta \\sim p(\\theta)\\\\f \\sim \\mathcal {GP}(0, k(x, x'; \\theta))\\\\f_i = f(x_i)\\\\y_i \\sim \\mathcal {Exp} (e^{f_i})$$\n",
    "\n",
    "We'll use MCMC to deal with both the kernel parameters $\\theta$ and the latent function values $f$. first, generate a data set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import gpflow\n",
    "import numpy as np\n",
    "import matplotlib\n",
    "%matplotlib inline\n",
    "matplotlib.rcParams['figure.figsize'] = (12, 6)\n",
    "plt = matplotlib.pyplot\n",
    "\n",
    "X = np.linspace(-3,3,20)\n",
    "Y = np.random.exponential(np.sin(X)**2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "GPflow's model for fully-Bayesian MCMC is called GPMC. It's constructed like any other model, but contains a parameter `V` which represents the centered values of the function. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true,
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "with gpflow.defer_build():\n",
    "    k = gpflow.kernels.Matern32(1, ARD=False) + gpflow.kernels.Bias(1)\n",
    "    l = gpflow.likelihoods.Exponential()\n",
    "    m = gpflow.models.GPMC(X[:,None], Y[:,None], k, l)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `V` parameter already has a prior applied. We'll add priors to the parameters also (these are rather arbitrary, for illustration). "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "m.kern.matern32.lengthscales.prior = gpflow.priors.Gamma(1., 1.)\n",
    "m.kern.matern32.variance.prior = gpflow.priors.Gamma(1.,1.)\n",
    "m.kern.bias.variance.prior = gpflow.priors.Gamma(1.,1.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Running HMC is pretty similar to optimizing a model. GPflow only has HMC sampling for the moment, and it's a relatively vanilla implementation (no NUTS, for example). There are two things to tune, the step size (epsilon) and the number of steps [Lmin, Lmax]. Each proposal will take a random number of steps between Lmin and Lmax, each of length epsilon. \n",
    "\n",
    "We'll use the `verbose` setting so that we can see the acceptance rate. <- this is broken :("
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true,
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "m.compile()\n",
    "o = gpflow.train.AdamOptimizer(0.01)\n",
    "o.minimize(m, maxiter=15) # start near MAP\n",
    "\n",
    "s = gpflow.train.HMC()\n",
    "samples = s.sample(m, 100, epsilon=0.12, lmax=20, lmin=5, thin=5, logprobs=False)#, verbose=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GPMC/V</th>\n",
       "      <th>GPMC/kern/bias/variance</th>\n",
       "      <th>GPMC/kern/matern32/lengthscales</th>\n",
       "      <th>GPMC/kern/matern32/variance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>[[-0.144405700366], [-0.141889900428], [-0.140...</td>\n",
       "      <td>0.972360</td>\n",
       "      <td>0.914213</td>\n",
       "      <td>0.994590</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>[[-1.24350206927], [1.39075772477], [-1.547773...</td>\n",
       "      <td>0.647319</td>\n",
       "      <td>2.305985</td>\n",
       "      <td>1.363222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>[[-1.4669149009], [0.310704499354], [1.4375941...</td>\n",
       "      <td>0.141541</td>\n",
       "      <td>0.830376</td>\n",
       "      <td>0.467676</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>[[-0.173718563696], [-1.00715986814], [1.48279...</td>\n",
       "      <td>0.125000</td>\n",
       "      <td>0.447166</td>\n",
       "      <td>0.473290</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[[-1.36728182732], [0.204019170071], [1.762279...</td>\n",
       "      <td>1.461104</td>\n",
       "      <td>0.009536</td>\n",
       "      <td>0.774549</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                              GPMC/V  GPMC/kern/bias/variance  \\\n",
       "0  [[-0.144405700366], [-0.141889900428], [-0.140...                 0.972360   \n",
       "1  [[-1.24350206927], [1.39075772477], [-1.547773...                 0.647319   \n",
       "2  [[-1.4669149009], [0.310704499354], [1.4375941...                 0.141541   \n",
       "3  [[-0.173718563696], [-1.00715986814], [1.48279...                 0.125000   \n",
       "4  [[-1.36728182732], [0.204019170071], [1.762279...                 1.461104   \n",
       "\n",
       "   GPMC/kern/matern32/lengthscales  GPMC/kern/matern32/variance  \n",
       "0                         0.914213                     0.994590  \n",
       "1                         2.305985                     1.363222  \n",
       "2                         0.830376                     0.467676  \n",
       "3                         0.447166                     0.473290  \n",
       "4                         0.009536                     0.774549  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "samples.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "xtest = np.linspace(-4,4,100)[:,None]\n",
    "f_samples = []\n",
    "for i, s in samples.iterrows():\n",
    "    m.assign(s)\n",
    "    f_samples.append(m.predict_f_samples(xtest, 5, initialize=False))\n",
    "f_samples = np.vstack(f_samples)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-0.1, 3.1431644029407044)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nQgghhBAA/H+ZgWo0OdO2PAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1268b55f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "rate_samples = np.exp(f_samples[:, :, 0])\n",
    "\n",
    "line, = plt.plot(xtest, np.mean(rate_samples, 0), lw=2)\n",
    "plt.fill_between(xtest[:,0],\n",
    "                 np.percentile(rate_samples, 5, axis=0),\n",
    "                 np.percentile(rate_samples, 95, axis=0),\n",
    "                 color=line.get_color(), alpha = 0.2)\n",
    "\n",
    "plt.plot(X, Y, 'kx', mew=2)\n",
    "plt.ylim(-0.1, np.max(np.percentile(rate_samples, 95, axis=0)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>GPMC/V</th>\n",
       "      <th>GPMC/kern/bias/variance</th>\n",
       "      <th>GPMC/kern/matern32/lengthscales</th>\n",
       "      <th>GPMC/kern/matern32/variance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>[[-0.144405700366], [-0.141889900428], [-0.140...</td>\n",
       "      <td>0.972360</td>\n",
       "      <td>0.914213</td>\n",
       "      <td>0.994590</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>[[-1.24350206927], [1.39075772477], [-1.547773...</td>\n",
       "      <td>0.647319</td>\n",
       "      <td>2.305985</td>\n",
       "      <td>1.363222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>[[-1.4669149009], [0.310704499354], [1.4375941...</td>\n",
       "      <td>0.141541</td>\n",
       "      <td>0.830376</td>\n",
       "      <td>0.467676</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>[[-0.173718563696], [-1.00715986814], [1.48279...</td>\n",
       "      <td>0.125000</td>\n",
       "      <td>0.447166</td>\n",
       "      <td>0.473290</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[[-1.36728182732], [0.204019170071], [1.762279...</td>\n",
       "      <td>1.461104</td>\n",
       "      <td>0.009536</td>\n",
       "      <td>0.774549</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                              GPMC/V  GPMC/kern/bias/variance  \\\n",
       "0  [[-0.144405700366], [-0.141889900428], [-0.140...                 0.972360   \n",
       "1  [[-1.24350206927], [1.39075772477], [-1.547773...                 0.647319   \n",
       "2  [[-1.4669149009], [0.310704499354], [1.4375941...                 0.141541   \n",
       "3  [[-0.173718563696], [-1.00715986814], [1.48279...                 0.125000   \n",
       "4  [[-1.36728182732], [0.204019170071], [1.762279...                 1.461104   \n",
       "\n",
       "   GPMC/kern/matern32/lengthscales  GPMC/kern/matern32/variance  \n",
       "0                         0.914213                     0.994590  \n",
       "1                         2.305985                     1.363222  \n",
       "2                         0.830376                     0.467676  \n",
       "3                         0.447166                     0.473290  \n",
       "4                         0.009536                     0.774549  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "samples.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x12893d358>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1280f1630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "samples['GPMC/kern/bias/variance'].hist(bins=20)"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "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.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
back to top