{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "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.6.6" }, "colab": { "name": "MCMC-Metropolis-Hastings.ipynb", "provenance": [], "collapsed_sections": [] } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "7zJVC9YBU-Ip" }, "source": [ "# The Metropolis-Hastings sampler\n", "\n", "Code implementing basic Metropolis-Hastings (see chapter 11 of [Bishop's PRML](https://www.microsoft.com/en-us/research/people/cmbishop/prml-book/)). " ] }, { "cell_type": "code", "metadata": { "collapsed": true, "id": "M7RumhuhU-Iz" }, "source": [ "import numpy as np\n", "from scipy.optimize import minimize\n", "from matplotlib import pyplot as plt\n", "\n", "\n", "# Defining epsilon for limits\n", "eps = 1e-6\n", " \n", "# Configuring matplotlib\n", "import matplotlib.pyplot as plt\n", "plt.rcParams[\"figure.figsize\"] = (8,8)\n", "plt.rcParams['axes.labelsize'] = 14\n", "plt.rcParams['xtick.labelsize'] = 12\n", "plt.rcParams['ytick.labelsize'] = 12\n", "plt.rcParams['lines.linewidth'] = 3.0\n", "plt.style.use('dark_background')\n", "plt.rcParams[\"image.cmap\"] = 'cool'\n", "\n", "# Fix np.random seed for replicability\n", "np.random.seed(0)" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "h2q6NPMFU-I0" }, "source": [ "# Metropolis-Hastings algorithm\n", "\n", "\n", "* input : starting point $x_{cur} \\in \\mathcal{X}$, the number of samples required $N$\n", "* output : sequence of random variables $x_{0}, x_{1}, \\dots x_{N-1}$ from distribution $p$\n", "* Given $x_{cur}$, we generate proposal $x_{prop}$ according to proposal distribution $q(\\cdot | x_{cur})$. \n", "* Set the next state $x_{next}$ as \n", "\n", "\\begin{align}\n", " x_{next} = \n", " \\begin{cases}\n", " x_{prop} & (\\mbox{with probability } A(x_{prop}, x_{cur})) \\\\ \n", " x_{cur} & (\\mbox{with probability } 1 - A(x_{prop}, x_{cur}))\n", " \\end{cases},\n", "\\end{align}\n", "\n", "\n", "where\n", "\n", "\n", "\\begin{align}\n", " A(x,y) := \\min\\left( 1, \\ \\frac{\\tilde{p}(x)}{\\tilde{p}(y)}\\cdot \\frac{q(y|x)}{q(x|y)} \\right)\n", "\\end{align}\n", "\n", "\n", "For the demo below, we use\n", "* $\\mathcal{X}=\\mathbb{R}^d$\n", "* proposal distribution: $d$-dimensional gaussian with given covariance matrix $\\Sigma$\n", "\n", "\\begin{align}\n", " q(x|y) = \\frac{1}{(2\\pi)^{D/2} \\sqrt{\\det \\Sigma}} \\exp\\left[ -\\frac{1}{2}(x-y)^T \\Sigma^{-1} (x-y) \\right]\n", "\\end{align}\n", "\n", "\n", "By symmetry of the proposal kernel, the algorithm reduces to Metropolis algorithm, and hence we have\n", "\n", "\\begin{align}\n", " A(x,y) := \\min\\left( 1, \\ \\frac{\\tilde{p}(x)}{\\tilde{p}(y)} \\right)\n", "\\end{align}\n", "" ] }, { "cell_type": "code", "metadata": { "collapsed": true, "id": "8wcXVJUpU-I2" }, "source": [ "class MetropolisSampler:\n", " def __init__(self, dim, sigma, p):\n", " self.dim = dim # the dimension of the output space \n", " self.sigma = sigma # the covariance matrix of the Gaussian proposal kernel\n", " self.p = p # density function of the target distribution\n", " \n", " def _A(self, x, y):\n", " '''\n", " Acceptance probability, depending on current state y and the candidate state x\n", " \n", " Parameters\n", " ----------\n", " x : 1D numpy array representing the candidate state\n", " y : 1D numpy array representing the current state\n", " Returns \n", " ----------\n", " A : float representing acceptance probability A(x, y)\n", " '''\n", " denom = self.p(y) # for avoiding zero division error\n", " if denom == 0:\n", " return 1.0\n", " else:\n", " return min( 1.0, self.p(x) / denom )\n", " \n", " def sample(self, x_cur, N, step=1):\n", " '''\n", " The method that performs sampling using Metropolis algorithm, and returns the samples\n", " \n", " Parameters\n", " ----------\n", " x_cur : 1D numpy array\n", " 1D numpy array representing current point\n", " N : int representing number of samples required\n", " step : int representing step between recorded samples\n", " \n", " Returns \n", " ----------\n", " X : 2D array\n", " (N, self.dim) array representing the obtained samples, where X[n] is the n-th sample.\n", " '''\n", " X = np.zeros((N, self.dim)) # array for recording the sample\n", " x = x_cur\n", " cnt = 0\n", " for i in range((N-1) * step + 1):\n", " x_prop = np.random.multivariate_normal(x, self.sigma) # sample from the proporsal kernel (gaussian )\n", " if np.random.random() < self._A(x_prop, x):\n", " x = x_prop\n", " if i % step == 0:\n", " X[cnt] = x\n", " cnt += 1\n", " return X" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "Nm60BpFaU-I3" }, "source": [ "# Demonstrations\n", "\n", "We now use MCMC for two exmple applications\n", "* gamma distribution (one dimensional)\n", "* two dimensional gaussian distribution\n", "\n", "\n", "## Gamma distribution (1-D)\n", "\n", "\n", "\\begin{align}\n", " & p(x) = \\frac{1}{\\Gamma(k) \\theta^k} x^{k-1} e^{-\\frac{x}{\\theta}} \\\\\n", " & \\mbox{mean} : k \\theta \\\\\n", " & \\mbox{variance} : k \\theta^2\n", "\\end{align}\n", "\n" ] }, { "cell_type": "code", "metadata": { "collapsed": true, "id": "UbjAvJ5wU-I4" }, "source": [ "def pgam(x):\n", " if x > 0:\n", " return (x**2)*np.exp(-x)\n", " else:\n", " return 0.0\n", "\n", "sampler = MetropolisSampler(dim=1, sigma=np.array([[1.0]]), p=pgam)\n", "samples = sampler.sample(x_cur=np.array([1.0]), N=5000, step=10)" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 522 }, "id": "DiRk9VSHU-I4", "outputId": "87de9be4-b7bd-4b15-e0c4-81f102f06f15" }, "source": [ "print(f\"sample mean : {np.mean(samples)}\")\n", "print(f\"sample variance : {np.var(samples)}\")\n", "step = 0.25\n", "plt.hist(samples, bins=np.arange(0, 10, step), density=True, label=\"Normalized histogram\")\n", "xx = np.linspace(0,10,100)\n", "plt.plot(xx, 0.5*xx**2*np.exp(-xx), label=\"probability density function\")\n", "plt.legend()\n", "plt.show()" ], "execution_count": null, "outputs": [ { "output_type": "stream", "text": [ "sample mean : 3.0113126471436926\n", "sample variance : 3.020673510476955\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "