{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Forcing a Markov Chain to arrive at the right place\n", "\n", "\n", "Markov Chains are sequences of random variables, where the value of the current sequence index only depends on the value just before it. Given a current position, the next position is simply defined by a probability distribution p(z,z').\n", "\n", "Here we look at a Markov Chain starting at `[0,0]`, which at each point can make exactly two moves \"up\" and \"down\".\n", "\n", "If you just let the Markov Chain run freely, we will it be after 10 iteratinos? or 20? or 100? You might have heard about the Galton Board." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before we start, we will import some libraries as always" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[1m\u001b[31mWarning: Empirical distributions on disk may perform slow because GNU DBM is not available. Please install and configure gdbm library for Python for better speed.\u001b[0m\n" ] } ], "source": [ "import pyprob\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "from pyprob import Model\n", "import numpy as np\n", "\n", "import math\n", "import pyprob\n", "from pyprob import Model\n", "from pyprob.distributions import Normal, Uniform, Categorical\n", "import torch\n", "import IPython\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "IPython.display.Image(url = 'https://thumbs.gfycat.com/QuaintTidyCockatiel-max-1mb.gif')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Implementing the Galton Board in Code\n", "\n", "we will have a Galton board with 20 steps. At each step the position can move either up and down in a fair way." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "class MarkovChainPath(Model):\n", " def __init__(self):\n", " super().__init__(name=\"Markov Chain Path\") # give the model a name\n", "\n", " def forward(self): # Needed to specifcy how the generative model is run forward\n", " # sample the (latent) mean variable to be inferred:\n", " coords = [[0,0]]\n", " moves = {0: -1, 1: 1, 2: 1}\n", " for i in range(1,20):\n", " last = coords[-1][1]\n", " move = pyprob.sample(Categorical([1/2.,1/2.]), name = 'input{}'.format(i))\n", " move = moves[move.item()]\n", " coords.append([i,last+move])\n", "\n", " obs_distr = Normal(coords[-1][1], 0.1)\n", " pyprob.observe(obs_distr, name='obs0') # NOTE: observe -> denotes observable variables\n", " return coords\n", "\n", "model = MarkovChainPath()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Learning to Guide the Chain\n", "\n", "As usual we will be training our inference network!" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Creating new inference network...\n", "Observable obs0: observe embedding not specified, using the default FEEDFORWARD.\n", "Observe embedding dimension: 100\n", "Train. time | Epoch| Trace | Init. loss| Min. loss | Curr. loss| T.since min | Traces/sec\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__1, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__2, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__3, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__4, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__5, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__6, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__7, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__8, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__9, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__10, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__11, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__12, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__13, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__14, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__15, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__16, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__17, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__18, distribution: Categorical\n", "New layers, address: 74__forward__move__Categorical(len_probs:2)__19, distribution: Categorical\n", "Total addresses: 19, parameters: 132,895\n", "0d:00:00:47 | 1 | 10,048 | +1.32e+01 | +1.23e+01 | \u001b[32m+1.27e+01\u001b[0m | 0d:00:00:29 | 216.0 \n" ] } ], "source": [ "model.learn_inference_network(\n", " num_traces=10000,\n", " observe_embeddings={'obs0': {'dim': 100, 'depth': 5}}\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Generating Prior and Posterior Traces\n", "\n", "As in the other examples we have prior and posterior traces. What will they look like? Have a guess." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time spent | Time remain.| Progress | Trace | Traces/sec\n", "0d:00:00:04 | 0d:00:00:00 | #################### | 1000/1000 | 229.92 \n" ] } ], "source": [ "prior = model.prior_traces(\n", " num_traces=1000,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will also generate some sampled from the **conditioned** model. Feel free to change the condition value from 5 to a number you like." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time spent | Time remain.| Progress | Trace | Traces/sec\n", "0d:00:00:18 | 0d:00:00:00 | #################### | 1000/1000 | 53.91 \n" ] } ], "source": [ "condition = {'obs0': 5}\n", "posterior = model.posterior_traces(\n", " num_traces=1000,\n", " inference_engine=pyprob.InferenceEngine.IMPORTANCE_SAMPLING_WITH_INFERENCE_NETWORK,\n", " observe=condition\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's get a representative set of paths for both the **conditioned** model as well as the **unconditioned** one" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "post_paths = [posterior.sample().result for i in range(1000)]\n", "prior_paths = [prior.sample().result for i in range(1000)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Plots!\n", "\n", "As expected the conoditioned paths always arrive at the same spot, no matter where they wandered off to in the middle of their path. At some point the proposals from the agent will steer it in the correct direction.\n", "\n", "\n", "We can also plot the final position distribution. As expected the unconditinoed one follows a normal distribution while the conditioned one, is basically a delta distribution on the conditioned value" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'position')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for p in prior_paths:\n", " p = np.asarray(p)\n", " plt.plot(p[:,0],p[:,1], c = 'orangered', alpha = 0.1) \n", " \n", " \n", "for p in post_paths:\n", " p = np.asarray(p)\n", " plt.plot(p[:,0],p[:,1] + 0.5, c = 'steelblue', alpha = 0.1, )\n", "plt.xlabel('step number')\n", "plt.ylabel('position')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'final position')" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "c1,_,_ = plt.hist([p[-1][1] for p in prior_paths], np.linspace(-15.5,15.5,32), alpha = 0.2, label = 'prior');\n", "c2,_,_ = plt.hist([p[-1][1] for p in post_paths], np.linspace(-15.5,15.5,32), alpha = 0.2, label = 'posterior');\n", "plt.vlines(condition['obs0'],0,np.max([c1.max(),c2.max()])*1.2, linestyle = 'dashed', color = 'red')\n", "plt.legend()\n", "plt.gcf().set_size_inches(5,5)\n", "plt.xlabel('final position')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }