{ "metadata": { "name": "", "signature": "sha256:d4125fcddc30ccb7761b3d6c7e912aab76509dd328688f6ae921dc49f454c304" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Finally we come to a classic application of Gibbs sampling. The [Ising Model](https://en.wikipedia.org/wiki/Ising_model) is a simple model in statistical mechanics.\n", "\n", " - Consider a graph with nodes indexed by $n$.\n", " - Each node can in state $x_n = \\pm 1$.\n", " - Let $J_{n,m}$ be the \"interaction\" between nodes $n$ and $m$. Typically we fix $J>0$ and set $J_{n,m} = J$ is $n,m$ are neighbours, and $J_{n,m}=0$ otherwise.\n", " - Let $H>=0$ be the \"external field\".\n", " - Then the energy of the system is\n", " \n", "$$ E(x) = E(x;J,H) = -\\Big( \\frac12 \\sum_{n,m} J_{n,m} x_m x_n + \\sum_n Hx_n \\Big). $$\n", "\n", " - The factor of $1/2$ occurs as we'll consider $J_{n,m}$ and also $J_{m,n}$.\n", " - Let $\\beta = 1/T$ the \"inverse temperature\" and then the probability we'll be in state $x$ is\n", " \n", "$$ \\mathbb P(x) = \\mathbb P(x|J,H,\\beta) \\propto e^{-\\beta E(x)}. $$\n", "\n", " - The normalising factor is usually denoted by $Z = \\sum_x e^{-\\beta E(x)}$.\n", " - Finally note that we have parameters $J, H$ and $\\beta$, and the relative probability (i.e. once we have normalised by $Z$) is invariant under scaling all these parameters. So we may fix e.g. $J=1$." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Gibbs sampling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Select $n$ and consider $\\mathbb P(x_n = 1 | \\text{all other } x_m )$. This is equal to\n", "\n", "$$ \\frac{\\mathbb P(x_n=1 , (x_m))}{\\mathbb P(x_n=1 , (x_m)) + \\mathbb P(x_n=-1 , (x_m))}. $$\n", "\n", "Now, we find that\n", "\n", "$$ \\mathbb P(x_n | (x_m) ) = \\exp\\Big( \\beta x_n \\sum_m J_{n,m} x_m + \\beta H x_n \\Big)\n", "\\exp\\Big( \\text{Other terms not involving } x_n \\Big). $$\n", "The $1/2$ factor has disappeared as we have now fixed an ordering. Thus\n", "\n", "$$ \\mathbb P(x_n=1 | (x_m)) = \\frac{e^{\\beta \\sum_m J_{n,m} x_m + H} }{e^{\\beta \\sum_m J_{n,m} x_m + H} + e^{-\\beta \\sum_m J_{n,m} x_m - H}}\n", "= \\frac{ 1 }{1 + e^{-2\\beta \\sum_m J_{n,m} x_m - 2H}} = \\frac{1}{1+e^{-2\\beta b_n}}, $$\n", "say, where $b_n = \\sum_m J_{n,m} x_m + H$.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the Gibbs model is to loop over each $n$, and with this probability set $x_n=1$, otherwise setting it to $-1$. Actually, as in general there will be spacial correlations, it makes more sense to randomly select the $n$ each time.\n", "\n", "An alternative to direct sampling is to perform a Metropolis--Hastings step: considering changing $x_n$ from it's current state. If this decreases the energy then we accept the flip; otherwise accept with probability $e^{-\\beta \\Delta E}$.\n", "\n", "It seems that in practise there is not much difference in algorithm." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import matplotlib.cm as cm\n", "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll work with a 2D rectangular grid with periodic boundary conditions." ] }, { "cell_type": "code", "collapsed": false, "input": [ "class IsingGrid:\n", " def __init__(self, height, width, extfield, invtemp):\n", " self.width, self.height, self.extfield, self.invtemp = height, width, extfield, invtemp\n", " self.grid = np.zeros([self.width, self.height], dtype=np.int8) + 1\n", " \n", " def plot(self):\n", " plt.imshow(self.grid, cmap=cm.gray, aspect=\"equal\", interpolation=\"none\", vmin=-1, vmax=1)\n", " \n", " def make_random(self):\n", " self.grid = (np.random.randint(0, 2, size = self.width * self.height).reshape(self.width, self.height) * 2) - 1\n", " \n", " def neighbours(self, x, y):\n", " n = []\n", " if x == 0:\n", " n.append( (self.width-1, y) )\n", " else:\n", " n.append( (x-1, y) )\n", " if x == self.width-1:\n", " n.append( (0, y) )\n", " else:\n", " n.append( (x+1, y) )\n", " if y == 0:\n", " n.append( (x, self.height-1) )\n", " else:\n", " n.append( (x, y-1) )\n", " if y == self.height-1:\n", " n.append( (x, 0) )\n", " else:\n", " n.append( (x, y+1) )\n", " return n\n", " \n", " def local_energy(self, x, y):\n", " return self.extfield + sum( self.grid[xx,yy] for (xx, yy) in self.neighbours(x, y) )\n", " \n", " def total_energy(self):\n", " # Could maybe do some numpy games here, but periodic boundary conditions make this tricky.\n", " # This function is only ever useful for very small grids anyway.\n", " energy = - self.extfield * np.sum(self.grid)\n", " energy += - sum( self.grid[x, y] * sum( self.grid[xx, yy] for (xx, yy) in self.neighbours(x, y) )\n", " for x in range(self.width) for y in range(self.height) ) / 2\n", " return energy\n", " \n", " def probability(self):\n", " return np.exp( - self.invtemp * self.total_energy() )\n", " \n", " def gibbs_move(self):\n", " n = np.random.randint(0, self.width * self.height)\n", " y = n // self.width\n", " x = n % self.width\n", " p = 1 / (1 + np.exp(-2 * self.invtemp * self.local_energy(x,y)))\n", " if np.random.random() <= p:\n", " self.grid[x,y] = 1\n", " else:\n", " self.grid[x,y] = -1\n", " \n", " def from_number(self, n):\n", " \"\"\"Convert an integer 0 <= n < 2**(width*height) into a grid.\"\"\"\n", " binstring = bin(n)[2:]\n", " binstring = \"0\" * (N - len(binstring)) + binstring\n", " self.grid = np.array([int(x)*2-1 for x in binstring], dtype=np.int8).reshape(self.width, self.height)\n", " \n", " def to_number(self):\n", " \"\"\"Convert grid into an integer.\"\"\"\n", " flat = [self.grid[x, y] for x in range(self.width) for y in range(self.height)]\n", " return sum(2**n * (int(x)+1)//2 for n, x in enumerate(reversed(flat)))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 48 }, { "cell_type": "code", "collapsed": false, "input": [ "gg = IsingGrid(30, 50, 0, .3)\n", "gg.make_random()\n", "gg.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAWwAAADmCAYAAADxw7+zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFCRJREFUeJzt3W+oZedVx/HfupMp/omQhujkT0eSFyoqkSRCEFvNpFqJ\nf0jTN9WAMhQrfaFtKCJJ+iI2r1oijUGEgmRSplFSiqVjRGwzaoZGxNSWTJPmj2khgTR/ZlKM2iDC\nJFm+uGeac2/vs+69v/vsc+/j+X7gMveec/bez3n2Pmv23XvdtSIzBQDY+1Z2ewAAgK0hYAPAIAjY\nADAIAjYADIKADQCDIGADwCDsgB0R10XEUxHxjYi4ueegAADfK5w87IjYJ+nfJf2ypOcl/ZukGzPz\nybnXkOANAIbMjI0ed8+wr5b0zcx8NjPPSPqMpHevf1FEfPdr/uc33nij+TW/zPqv1jKLtMjxbXc7\nm81fZm77q9pWj7Hfdtttu7IfK86891jf/Fw4+9Ed3yL1Pi56f0Z67l/3M1dxA/Ylkp6b+/lbs8cA\nABM5x1xuS5c7+LN3AKidOHFCJ06c2NJr3YD9vKSDcz8f1OpZ9hpnL4VIBG9s7NChQ7s9hD2DuXjT\nMs3FoUOH1rzf22+/vfla96bjOVq96fhLkl6Q9GVtcNNxPmDPe/3115vr3rdvX/O51nIrK4vLTmy9\nJ6n/+HrPn3Mtszo+qvfljH2R+7HSe+yL2o/uvlqkvT63zme4ignOZ2527XvDlVpn2Jn5WkT8gaQv\nSton6ch8sAYA9GedYW9pxRHZ+t9q//79zeVee+21bW+r+h+zWt8552z8/5WzjNT+37T6X7ZaX2sc\n7vxVZwKt46Ca20rvsbfGV81fdZZVHfet9+zMX7Vc77NA51iqOHMkeb+FunPbeq46zs6cOdN8rprD\nlmo/Vu+rWqZ3Wh8AYMEI2AAwCAI2AAyCgA0AgyBgA8Ag3D+c2ZLWHdIqa8LJSqjuIjtZCdUy1R3h\nFudOsdTO/XTvcjtjrzjr673vXc4+djKEJC8Dx83QaHGzFVqqfV/Nk/tZ2O62qvmrxudkzS3yM8cZ\nNgAMgoANAIMgYAPAIAjYADAIAjYADIKADQCD2HNpfb3TmZyiPL2LNfVOV3PLOToFhdxCWE6xoUrv\n9ChnH/cuhlTNkXPMuOvrfdwussxr7+J1rePMLVvc+/1yhg0AgyBgA8AgCNgAMAgCNgAMgoANAIMg\nYAPAICZN6+ud0uL0xuvdu6+qlNc7Fas1f24VtWp8i+qq7Y69tdwUfQdb+8RNY2wtV825Uw2vWp/T\n69NNpXQq5bmfYWd9lb2QilzhDBsABkHABoBBELABYBAEbAAYBAEbAAaxoyyRiHhW0n9Lel3Smcy8\neivLuQWFWnd+e/eJc7IVquV695dz1+dkRriZFi3u2J197xZDavV77F2Aqncv0ipLpPe+rywyA6c1\nh26fRWd9vQudVXaa1peSDmXmf/QYDACgrcclkb6ntwCADe00YKekf4iIr0TE7/UYEABgYzu9JPL2\nzHwxIn5Y0vGIeCozHzr75PrrQb2vNQPAMtnRGXZmvjj792VJn5e05qZjRKz5AgD47IAdET8QET80\n+/4HJf2KpMd6DQwAsNZOLokckPT52ZnzOZL+KjMfmH9BK0WmSllyUqfcwkW9U3hay7lpP05/uUo1\njtY+qYreONw0vN7pW04xn96pZ+5+bB3vvQse9S7IVG3L7aPqfEZ69zZ1e6y2VPHMDtiZ+YykK9zl\nAQDbw186AsAgCNgAMAgCNgAMgoANAIMgYAPAICbt6dg7JcxJg+pdmcvp9+imnjkpUK7WOnv3pKs4\nf1xV9djs3aeyd+++an0V530tsoJeb9U8OSmOTm/TKapCOjjDBoBBELABYBAEbAAYBAEbAAZBwAaA\nQYR7p3rTFUekcwfXuSNcqZZxejBWnOJPe6EvouRliTj9LSvV+noXUHLG5867k4XhfEZ6F5OaouBR\n6z1Xc+scZ4vMcHGO28rKyooyc8OVcoYNAIMgYAPAIAjYADAIAjYADIKADQCDIGADwCAmLf7USp9x\n06OmKHq0EbfDu1P8qXePyN4FhdwiOs7YqxRMp++gq3dvTvd4aundf7N3mqBTKKnalhMvqqJgvQsy\nLbIwFGfYADAIAjYADIKADQCDIGADwCAI2AAwiE0DdkTcExGnIuKxucfOj4jjEfF0RDwQEedNO0wA\nwKbV+iLiFyS9KunTmXn57LE7JH07M++IiJslvTUzb1m3XPdqfS1u2pyTVuNUDqvSrVopWpKXRla9\np2ocTmqXU2HNGYPLPS6cvn5Olckq9aw6LlrLVcv0rv7nfq6cuehdCbHipB26VSurNFa7Wl9mPiTp\nlXUPXy/p6Oz7o5Ju2Gw9AICdca9hH8jMU7PvT0k60Gk8AICGHf+lY2ZmRGz4O9X8r78R0f0vvgBg\nmbhn2Kci4kJJioiLJJ3ecOUrK9/9IlgDwM64Aft+SYdn3x+WdKzPcAAALVtJ67tP0r9I+omIeC4i\n3ifp45LeFRFPS3rn7GcAwIQmbcLbeq5KZ+ldva7SStVxU5Zal32qy0FOOlPv9VXr7J1u5aaeOdxj\n2zkunIa6bppgazm3ka0zhopTdbF3uqfTsLtazq2QWR0X1XI04QWAwRGwAWAQBGwAGAQBGwAGQcAG\ngEHsSpbIJss1n2uN1f2jnNb6qjvMvXvFuRkzjmp8ToaGkw1QcfpHLrKfXu9Mhr3SW7CVyeBm7VTz\n5GzLycxyP6dOFkvFzXAhSwQABkfABoBBELABYBAEbAAYBAEbAAZBwAaAQey4gUHFTYVpcXrPOf3W\nqoItVSpb6/26xWFa3HQwZxxVupWzf6sxOO/LTX3sXSip4hQtc4pJuXPrfK7cXoVOD8beRcHcHoy9\nt+XgDBsABkHABoBBELABYBAEbAAYBAEbAAZBwAaAQUya1reodCa30ldrW256lJMS5KTa9e45Wa3T\nTUl0+hg6x0XvvohS/7S5FrdSY+8qf633W23H/Rw4/Sgri6ri6KYCdj9mtr0EAGBXELABYBAEbAAY\nBAEbAAZBwAaAQWyaJRIR90j6dUmnM/Py2WMflfR+SS/PXnZrZn5h/bLOnd+qoFDrrnp1B3dRBaik\n+q5/SzX2Vl+6/fv3N5dxM2Z6Zx44ehfK6Z2RUi3j9u5z9O7D6hQgcz6nld7ZFFVPR+f9uj0iux8z\nW3jNpyRdt35bku7MzCtnX98TrAEAfW0asDPzIUmvbPBU39MhAEBpJ9ewPxgRX4uIIxFxXrcRAQA2\n5AbsT0q6TNIVkl6U9ImNXpSZa74AAD4rYGfm6ZyRdLekqzd6XUSs+QIA+KyAHREXzf34HkmP9RkO\nAKBlK2l990m6RtIFEfGcpD+WdCgirtBqtsgzkj6w0bJOAaDeaXjOmb1b8Mi57FONr5Ue5fYx7N3L\nzknF6t0zz+Ucg717h7qpbK1t9S6qNgWnf2Sl9Z6r1Fen+JOTCjiFTUeRmTdu8PA9E4wFAFDgLx0B\nYBAEbAAYBAEbAAZBwAaAQRCwAWAQu9LT0en5JvVPCWptqxrfInvt9X6/Trqiu69a1c2qSm5OdT23\n4p2Thuem9bVUqWdVemtrP/ZOZXO5VRJbquO29Z57V+urLDItkjNsABgEARsABkHABoBBELABYBAE\nbAAYxKRZIk6mQG9OQRznrrTkZRdUFlnkx5mLaltONkB1Z78171NkP7SOTydzYyfjaHHmotIau1ss\nzJmL3v03qxjT+5hxS0e3jqdq7JxhA8AgCNgAMAgCNgAMgoANAIMgYAPAIAjYADCISdP6FpmK1eL0\nYOydruZyxlep0oWc/ptOgR23UE5rLqr35PYHdYpuOWlp1fp6fw6csbuFvxxuqmpL79Rct5dr716a\nnGEDwCAI2AAwCAI2AAyCgA0AgyBgA8AgyoAdEQcj4sGIeDwivh4RH5o9fn5EHI+IpyPigYg4bzHD\nBYDlFVVKSkRcKOnCzDwZEedK+qqkGyS9T9K3M/OOiLhZ0lsz85Z1y6aTLlSlH/XuneakbzmpcdUc\nuylBLW56VO/KgK3lelc2c96T5B1LVZqgkza3yWev+ZyTgukcg26PyN5psU4fULeyorOvKs7YM1OZ\nueGT5Rl2Zr6UmSdn378q6UlJl0i6XtLR2cuOajWIAwAmtOVr2BFxqaQrJT0s6UBmnpo9dUrSge4j\nAwCssaXfuWeXQz4n6abM/M78qXxmZkRs+PvC+l8jev91FACMbjuXWzY9w46I/VoN1vdm5rHZw6dm\n17cVERdJOt1Yds0XAGCt7cTJzbJEQtIRSU9k5l1zT90v6fDs+8OSjq1fFgDQ12aXRN4u6bclPRoR\nj8weu1XSxyV9NiJ+V9Kzkt472QgBAJI2Sevb0YojspVa46YfOSk3TrWsRabhVZzmqG46U+/UrpZF\nVrxbZLW5at57Vy7c7nbcbVXvyT0unHl35tat1OhwGzC39snKyoqX1gcA2DsI2AAwCAI2AAyCgA0A\ngyBgA8AgJu3p2PtOfKuQipNd4HLujruZEYu80916X1Xfxt59Ap0MHDcTxLmzv8jjzJnbal9VRYh6\nc+bd/Yw4mV5OcSq3oJWbQdLCGTYADIKADQCDIGADwCAI2AAwCAI2AAyCgA0Ag5i0+FMrHcfttddK\nc+vdg7HiFMSp0q2qdKHWttxUoWreW2OsxucU6nL7eTqFsCq9U/ScVDY3pdNJO6z0To1zCpC5aYfO\ne3Z7abZU79ftA0rxJwAYHAEbAAZBwAaAQRCwAWAQBGwAGAQBGwAGMWm1vha3spmTJuhsq3ffRje1\n0KlsVnF67VXLuONw9E5xrPROFetdadDZV85x66Z0On0M3XTP7W5HmqCCXvH5dlI3q/Vxhg0AgyBg\nA8AgCNgAMAgCNgAMgoANAIMobx1HxEFJn5b0I5JS0l9k5p9FxEclvV/Sy7OX3pqZX+gxIKcIzCL7\ntzkFo9zxOXfUXa27404xLtcUGR/Otnr3Dp2qwNp6bg9LJ4vF3VfOceZkkLg9GFvcfe/MRWWzXJ8z\nkj6cmScj4lxJX42I41oN3ndm5p3b3iIAwFIG7Mx8SdJLs+9fjYgnJV0ye7pvS3QAQGnL1x8i4lJJ\nV0r619lDH4yIr0XEkYg4b4KxAQDmbClgzy6H/LWkmzLzVUmflHSZpCskvSjpExstl5lrvgAAa20n\nTm4asCNiv6TPSfrLzDw228DpnJF0t6SrG8uu+QIArLWdOFkG7Fhd+oikJzLzrrnHL5p72XskPbaD\n8QIAtqDs6RgR75D0JUmPajUzRJI+IulGrV4OSUnPSPpAZp5at2y20nFavQ8lvzBUS/X+evdgbHF6\nKUrt8blpRM443H3l9B105t1NcXTS3NziSr37UTp9EZ20Q+dY30xrHO5x5qQBO/PuFupyLgWvrKw0\nezpuliXyz9r4LPzvtz0KAMCO8JeOADAIAjYADIKADQCDIGADwCAI2AAwiEl7OrbSXaoqb05ampty\n07vfo7NMlc7USnNzqwn27lXpzG21nd5/XOXOU+/Us9YxvUlKbfM5p0pi7z6V7rZaaXhOv1HJ6/Xp\nHBfusdn7mOYMGwAGQcAGgEEQsAFgEARsABgEARsABjFplohTsMfpc9b7jrB7997JjHAKHvXuYVlx\nC021lus99moMbt/B1nHhZjK01te7d2jvvpdT9DHs3S/TKdTVu/CXW3DN2cecYQPAIAjYADAIAjYA\nDIKADQCDIGADwCAI2AAwiEnT+pw0skWmzTkpRk6hqSn6DrZUhYGctLne/Td793SsVHNRze2iUs96\npzi6xZoc1XFRHe9O2pxzzLgpjk7/Tffz7eAMGwAGQcAGgEEsLGCfOHFiUZva85iLNy3y13iMg8/I\nxgjYu4C5AGp8RjbGJREAGMSkWSKOq666aiHLVMv1buvjct9XSyv7YZFjWL++F154QRdffPHCx+Fs\nyz0uWutbfzlofi72wr6qOOOTFjfGajtucbe9IKa6hhgRXJwEAENmbvg/x2QBGwDQF9ewAWAQBGwA\nGAQBGwAGMXnAjojrIuKpiPhGRNw89fb2koi4JyJORcRjc4+dHxHHI+LpiHggIs7bzTEuSkQcjIgH\nI+LxiPh6RHxo9vjSzUdEfF9EPBwRJyPiiYj42OzxpZuLsyJiX0Q8EhF/O/t5aeeiMmnAjoh9kv5c\n0nWSfkrSjRHxk1Nuc4/5lFbf+7xbJB3PzB+X9I+zn5fBGUkfzsyflvRzkn5/diws3Xxk5v9KujYz\nr5D0M5KujYh3aAnnYs5Nkp6QdDYLYpnnomnqM+yrJX0zM5/NzDOSPiPp3RNvc8/IzIckvbLu4esl\nHZ19f1TSDQsd1C7JzJcy8+Ts+1clPSnpEi3vfPzP7Nu3SNqn1eNkKeciIt4m6dck3S3pbDrbUs7F\nZqYO2JdIem7u52/NHltmBzLz1Oz7U5IO7OZgdkNEXCrpSkkPa0nnIyJWIuKkVt/zg5n5uJZ0LiT9\nqaQ/kjRfD3dZ56I0dcAmybuQq0nwSzVHEXGupM9JuikzvzP/3DLNR2a+Mbsk8jZJvxgR1657finm\nIiJ+Q9LpzHxEb55dr7Esc7EVUwfs5yUdnPv5oFbPspfZqYi4UJIi4iJJp3d5PAsTEfu1Gqzvzcxj\ns4eXdj4kKTP/S9LfSfpZLedc/Lyk6yPiGUn3SXpnRNyr5ZyLTU0dsL8i6cci4tKIeIuk35R0/8Tb\n3Ovul3R49v1hSceK1/6/EatFGo5IeiIz75p7aunmIyIuOJv1EBHfL+ldkh7REs5FZn4kMw9m5mWS\nfkvSP2Xm72gJ52IrJv/T9Ij4VUl3afXGypHM/NikG9xDIuI+SddIukCr1+Fuk/Q3kj4r6UclPSvp\nvZn5n7s1xkWZZUF8SdKjevPX21slfVlLNh8RcblWb6StzL7uzcw/iYjztWRzMS8irpH0h5l5/bLP\nRQu1RABgEPylIwAMgoANAIMgYAPAIAjYADAIAjYADIKADQCDIGADwCD+DypcKieNFQRaAAAAAElF\nTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": [ "for _ in range(100000):\n", " gg.gibbs_move()\n", "gg.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 50 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Check this is correct" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For a grid with $N$ points, we have $2^N$ states, and so for very small $N$, we can directly sample." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def make_comparison_plot(W, H, field, invtemp, samples=1000000):\n", " # Generate all possible combinations and compute probability.\n", " gg = IsingGrid(W, H, field, invtemp)\n", " N = gg.width * gg.height\n", " prob = []\n", " for n in range(2**N):\n", " gg.from_number(n)\n", " prob.append( gg.probability() )\n", " total = sum(prob)\n", " prob = [ (n, x/total) for n, x in enumerate(prob) ]\n", " prob.sort(key = lambda pair: pair[1])\n", " \n", " # Randomly sample a large number of states\n", " for _ in range(10000):\n", " gg.gibbs_move()\n", "\n", " count = [0]*(2**N)\n", " for _ in range(samples):\n", " gg.gibbs_move()\n", " count[ gg.to_number() ] += 1\n", "\n", " total = sum(count)\n", " count = [ x/total for x in count ]\n", " \n", " # Plot\n", " fig, axes = plt.subplots(figsize=(12,6))\n", " axes.set_xlim([0,2**N])\n", " _ = axes.plot( range(2**N), [x for _, x in prob], lw=2 )\n", " _ = axes.scatter( range(2**N), [count[n] for n, _ in prob] )" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 248 }, { "cell_type": "code", "collapsed": false, "input": [ "make_comparison_plot(3, 3, 0, .1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nrkJggg==\n", "text": [ "" ] } ], "prompt_number": 249 }, { "cell_type": "code", "collapsed": false, "input": [ "make_comparison_plot(3, 3, 1, .1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAtMAAAFwCAYAAAB6lPfsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X2cHWV98P/Pd3ezZjFACIEkQnhKUKQiLAqmRsv6kGxM\nK4i0Kq2SoghWsdY7tz+k3rUpBhFrLEWtgqUS0Yq2FAs/MIeoxAduC0XDgzwIkQcBSVAJBSEYklz3\nHzOzZ/bk7EPmZDfJ7uf9eu1rz8xcM3OdsxP4nu9857oipYQkSZKkbde2ozsgSZIk7aoMpiVJkqSK\nDKYlSZKkigymJUmSpIoMpiVJkqSKDKYlSZKkiloOpiNiQUTcHRH3RsRZA7S5MN9+a0R05+smRsSN\nEXFLRNwZEeeV2k+JiJURcU9EXBcRk1vtpyRJkrS9tRRMR0Q78FlgAXA4cHJEvLihzUJgdkrpUOB0\n4PMAKaVngdeklI4CXgq8JiLm5rt9GFiZUnoh8J18WZIkSdqptJqZPhZYk1J6IKX0HHA5cEJDm+OB\n5QAppRuByRExLV9+Jm/TCbQD6xv3yX+/qcV+SpIkSdtdq8H0fsBDpeWH83VDtdkfssx2RNwCrAOu\nTyndmbeZllJal79eB0xrsZ+SJEnSdtdqMD3cucij2X4ppc15mcf+wB9ERM9WJ8jmO3fOc0mSJO10\nOlrc/xFgZml5JlnmebA2++fr+qSU/icirgFeBqwC1kXE9JTS2oiYATzWeOKIMMCWJEnSqEgpNSaH\ngdYz0zcDh0bEQRHRCbwVuKqhzVXAKQARMQd4IqW0LiKmFqN0REQXMA+4pbTPovz1IuCbzU6eUvLH\nH/72b/92h/fBn53jx2vBn+LHa8GflLwO/Kn/tHotDKalzHRKaVNEnAnUyB4gvCSldFdEnJFvvyil\ndG1ELIyINcDTwKn57jOA5RHRRhbUX5ZS+k6+7RPANyLiXcADwFta6ackSZI0Elot8yCl9C3gWw3r\nLmpYPrPJfrcDRw9wzMeB17faN0mSJGkkOQOidnk9PT07ugvaSXgtqOC1IPA6UN1IXgsxVB3Izioi\n0q7ad0mSJO06IoI0Qg8gSpIkSeOWwbQkSZJUkcG0JEmSVJHBtCRJklSRwbQkSZJUkcG0JEmSVJHB\ntCRJklSRwbQkSZJUkcG0JEmSVJHBtCRJklSRwbQkSZJUkcG0JEmSVJHBtCRJklSRwbQkSZJUkcG0\nJEmSVJHBtCRJklSRwbQkSZJUkcG0JEmSVJHBtCRJklSRwbQkSZJUkcG0JEmSVJHBtCRJklSRwbQk\nSZJUkcG0JEmSVJHBtCRJklSRwbQkSZJUkcG0JEmSVJHBtCRJklSRwbQkSZJUkcG0JEmSVJHBtCRJ\nklSRwbQkSZJUkcG0JEmSVJHBtCRJklRRx47ugCRJkrSzqdVqLFt28ZDtDKYlSZKkklqtxoknLmLD\nhvPzNf8xYNtIKY1Or7aziEi7at8lSZK085o//yRWrjweWJSvCVJK0axtyzXTEbEgIu6OiHsj4qwB\n2lyYb781IrrzdTMj4vqIuCMifhoRf1lqvyQiHo6I1fnPglb7KUmSJG1vLZV5REQ78Fng9cAjwH9H\nxFUppbtKbRYCs1NKh0bEK4DPA3OA54APppRuiYhJwI8j4rqU0t1AAj6dUvp0K/2TJEmSttXixafz\nwx8uYsOGodu2mpk+FliTUnogpfQccDlwQkOb44HlACmlG4HJETEtpbQ2pXRLvv63wF3AfqX9mqbS\nJUmSpJHU29vLlVcuZ968q5g376pB27b6AOJ+wEOl5YeBVwyjzf7AumJFRBwEdAM3ltq9PyJOAW4G\nFqeUnmixr5IkSdKw9Pb20tvbC0DEwDneVjPTw30CsLEHffvlJR7/Dnwgz1BDVgpyMHAU8CiwrMV+\nSpIkSdtdq5npR4CZpeWZZJnnwdrsn68jIiYAVwBfSSl9s2iQUnqseB0R/wxc3ezkS5Ys6Xvd09ND\nT09PhbcgSZIk1a1atYpVq1YNq21LQ+NFRAfwM+B1wC+Bm4CTmzyAeGZKaWFEzAEuSCnNiSxfvhz4\nTUrpgw3HnZFSejR//UHgmJTSnza0cWg8SZIkjbiIgYfGaykznVLaFBFnAjWgHbgkpXRXRJyRb78o\npXRtRCyMiDXA08Cp+e5zgbcDt0XE6nzd2SmlFcD5EXEUWTnI/cAZrfRTkiRJ2ha/+AX8+Mdw4IGD\nt3PSFkmSJKnBl78MixbBO94Bl102gpO2SJIkSWPN5s3Z77YhomWDaUmSJKnBli3Z7/b2wdsZTEuS\nJEkNimDazLQkSZK0jQymJUmSpIqsmZYkSZIqsmZakiRJqsgyD0mSJKkig2lJkiSpImumJUmSpIqs\nmZYkSZIqssxDkiRJqsgyD0mSJKkiM9OSJElSRdZMS5IkSRWZmZYkSZIqsmZakiRJqsjMtCRJklSR\nNdOSJElSRWamJUmSpIqsmZYkSZIqMjMtSZIkVWTNtCRJklSRmWlJkiSpImumJUmSpIrMTEuSJEkV\nWTMtSZIkVWRmWpIkSarImmlJkiSpIjPTkiRJUkXWTEuSJEkVmZmWJEmSKrJmWpIkSarIzLQkSZJU\nkTXTkiRJUkVmpiVJkqSKrJmWJEmSKjIzLUmSJFVkzbQkSZJU0ahlpiNiQUTcHRH3RsRZA7S5MN9+\na0R05+tmRsT1EXFHRPw0Iv6y1H5KRKyMiHsi4rqImNxqPyVJkqThGpWa6YhoBz4LLAAOB06OiBc3\ntFkIzE4pHQqcDnw+3/Qc8MGU0u8Bc4D3RcRh+bYPAytTSi8EvpMvS5IkSaNitDLTxwJrUkoPpJSe\nAy4HTmhoczywHCCldCMwOSKmpZTWppRuydf/FrgL2K9xn/z3m1rspyRJkjRso1UzvR/wUGn5YeoB\n8WBt9i83iIiDgG7gxnzVtJTSuvz1OmBai/2UJEmShm20MtNpmO1ioP0iYhLw78AH8gx1/4YppW04\njyRJktSy4dZMd7R4nkeAmaXlmWSZ58Ha7J+vIyImAFcAX0kpfbPUZl1ETE8prY2IGcBjzU6+ZMmS\nvtc9PT309PRUexeSJElSbtWqVTzwwCoALr108LaRJX6riYgO4GfA64BfAjcBJ6eU7iq1WQicmVJa\nGBFzgAtSSnMiIsjqoX+TUvpgw3E/ma8/PyI+DExOKX24oU1qpe+SJEnSQF75SvjRj+CGG2Du3CCl\n1FhpAbSYmU4pbYqIM4Ea0A5cklK6KyLOyLdflFK6NiIWRsQa4Gng1Hz3ucDbgdsiYnW+7uyU0grg\nE8A3IuJdwAPAW1rppyRJkrQthlsz3VJmekcyMy1JkqSRcswxcPPNcOON8IpXDJyZdgZESZIkqcGo\nzYAoSZIkjTWjNc60JEmSNOaYmZYkSZIqGu440wbTkiRJUgMz05IkSVJF1kxLkiRJFZmZliRJkiqy\nZlqSJEmqyMy0JEmSVJE105IkSVJFZqYlSZKkiqyZliRJkioyMy1JkiRVZM20JEmSVJGZaUmSJKki\na6YlSZKkisxMS5IkSRVZMy1JkiRVZGZakiRJqsiaaUmSJKkiM9OSJElSRdZMS5IkSRWZmZYkSZIq\nSCn7AYgYvK3BtCRJklRSZKUjDKYlSZKkbTLcemkwmJYkSZL6GW69NBhMS5IkSf0Md4xpMJiWJEmS\n+jEzLUmSJFVkzbQkSZJUkZlpSZIkqSJrpiVJkqSKzExLkiRJFVkzLUmSJFVkZlqSJEmqyJppSZIk\nqSIz05IkSVJF1kxLkiRJFY1qZjoiFkTE3RFxb0ScNUCbC/Ptt0ZEd2n9v0TEuoi4vaH9koh4OCJW\n5z8LWu2nJEmSNByjVjMdEe3AZ4EFwOHAyRHx4oY2C4HZKaVDgdOBz5c2fynft1ECPp1S6s5/VrTS\nT0mSJGm4RjMzfSywJqX0QErpOeBy4ISGNscDywFSSjcCkyNier78A2D9AMeOFvsmSZIkbbPRrJne\nD3iotPxwvm5b2zTz/rws5JKImNxaNyVJkqTh2ZbMdEeL50rDbNeYZR5qv88D5+SvPwYsA97V2GjJ\nkiV9r3t6eujp6RlmdyRJkqTm/uu/VgGr+NWvoBRuNhUpDTcebrJzxBxgSUppQb58NrAlpXR+qc0X\ngFUppcvz5buB41JK6/Llg4CrU0pHDHCOptsjIrXSd0mSJKmZW26B7m546Uvh1lshIkgpNS1BbrXM\n42bg0Ig4KCI6gbcCVzW0uQo4BfqC7yeKQHogETGjtHgicPtAbSVJkqTtaVtqplsq80gpbYqIM4Ea\n0A5cklK6KyLOyLdflFK6NiIWRsQa4Gng1GL/iPgacBywd0Q8BHw0pfQl4PyIOIqsHOR+4IxW+ilJ\nkiQN17bUTLdU5rEjWeYhSZKkkXDjjTBnDhxzDNx008iWeUiSJEljitOJS5IkSRWN6nTikiRJ0lhi\nMC1JkiRVtHlz9ttgWpIkSdpG1kxLkiRJFVnmIUmSJFVkMC1JkiRVZM20JEmSVJE105IkSVJFlnlI\nkiRJFRlMS5IkSRVZMy1JkiRVZM20JEmSVJFlHpIkSVJFBtOSJElSRdZMS5IkSRVZMy1JkiRVZJmH\nJEmSVJHBtCRJklSRNdOSJElSRdZMS5IkSRVZ5iFJkiRVZJmHJEmSVJGZaUmSJKkia6YlSZKkisxM\nS5IkSRVZMy1JkiRVZGZakiRJqsiaaUmSJKkiM9OSJElSRdZMS5IkSRWZmZYkSZIqsmZakiRJqsjM\ntCRJklSRNdOSJElSRWamJUmSpIqsmZYkSZIqMjMtSZIkVTSqNdMRsSAi7o6IeyPirAHaXJhvvzUi\nukvr/yUi1kXE7Q3tp0TEyoi4JyKui4jJrfZTkiRJGo5Ry0xHRDvwWWABcDhwckS8uKHNQmB2SulQ\n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\n35JSeqLhmCnLKjd7SKsePE+fPrNSVnC4mcXhBLDDqUMdKhg2UJYkSdoxRiyYjoh2srG/Xk9W3/Df\nwMkppbtKbRYCZ6aUFkbEK4B/TCnNGWzfiPgk8OuU0icj4ixgr5TShxvOnVasWAEMb9pYSZIkqYqR\nDKZ/H/jblNKCfPnDACmlT5TafAG4PqX09Xz5bqCHbDy4pvvmbY5LKa2LiOnAqpTSYQ3nHtY405Ik\nSVIrBgum21o89n5k898WHqb/jBGDtXnBIPtOSymty1+vIxvTTZIkSdqptBpMDzc13Hwu863bbHW8\nYgrHbemUJEmSNBo6hm4yqEfIxo4rzCTLMA/WZv+8zYQm6x/JX6+LiOkppbURMQN4rNnJlyxZ0ve6\np6eHnp6ebX8HkiRJUsmqVatYtWrVsNq2WjPdQfYQ4evIZue4icEfQJwDXJA/gDjgvvkDiL9JKZ2f\n11JPbvYAojXTkiRJGmmD1Uy3lJlOKW2KiDOBGtnwdpfkwfAZ+faLUkrXRsTCiFhDNl/2qYPtmx/6\nE8A3IuJd5EPjtdJPSZIkaSTs0pO27Kp9lyRJ0q5jJEfzkCRJksYtg2lJkiSpIoNpSZIkqSKDaUmS\nJKkig2lJkiSpIoNpSZIkqSKDaUmSJKkig2lJkiSpIoNpSZIkqSKDaUmSJKkig2lJkiSpIoNpSZIk\nqSKDaUmSJKkig2lJkiSpIoNpSZIkqSKDaUmSJKkig2lJkiSpIoNpSZIkqSKDaUmSJKkig2lJkiSp\nIoNpSZIkqSKDaUmSJKkig2lJkiSpIoNpSZIkqSKDaUmSJKkig2lJkiSpIoNpSZIkqSKDaUmSJKki\ng2lJkiSpIoNpSZIkqSKDaUmSJKkig2lJkiSpIoNpSZIkqSKDaUmSJKkig2lJkiSpIoNpSZIkqSKD\naUmSJKkig2lJkiSpIoNpSZIkqaLKwXRETImIlRFxT0RcFxGTB2i3ICLujoh7I+KsofaPiIMiYkNE\nrM5//qlqHyVJkqSR1Epm+sPAypTSC4Hv5Mv9REQ78FlgAXA4cHJEvHgY+69JKXXnP+9toY8aB1at\nWrWju6CdhNeCCl4LAq8D1Y3ktdBKMH08sDx/vRx4U5M2x5IFxg+klJ4DLgdO2Ib9pSH5H0sVvBZU\n8FoQeB2obmcNpqellNblr9cB05q02Q94qLT8cL5uqP0Pzks8VkXEq1rooyRJkjRiOgbbGBErgelN\nNn2kvJBSShGRmrRrXBdN1jXu/0tgZkppfUQcDXwzIn4vpfTUYH2VJEmSRluk1CwGHsaOEXcDPSml\ntRExA7g+pXRYQ5s5wJKU0oJ8+WxgS0rp/OHsn+9zPbA4pfSThvXVOi5JkiRto5RSNFs/aGZ6CFcB\ni4Dz89/fbNLmZuDQiDiILOP8VuDkwfaPiKnA+pTS5og4BDgUuK/xwAO9IUmSJGm0tJKZngJ8AzgA\neAB4S0rpiYh4AfDFlNIf5u3eAFwAtAOXpJTOG2L/NwPnAM8BW4CPppSuqfwOJUmSpBFSOZiWJEmS\nxrtdcgbEgSaC0dgTEf8SEesi4vbSugEnDIqIs/Pr4u6ImL9jeq2REBEzI+L6iLgjIn4aEX+Zr/d6\nGGciYmJE3BgRt0TEnRHRd8fTa2H8iYj2fASwq/Nlr4NxKCIeiIjb8mvhpnzdqFwLu1wwPcREMBp7\nvkT2ty5rOuFPRBxOVpd/eL7PP0XELneNa0DPAR9MKf0eMAd4X/5v3+thnEkpPQu8JqV0FPBS4DX5\nMKpeC+PTB4A7qY8W5nUwPiWygS26U0rH5utG5VrYFS+iwSaC0RiTUvoBsL5h9UAT/pwAfC2l9FxK\n6QFgDdn1ojEgpbQ2pXRL/vq3wF1k49Z7PYxDKaVn8pedZM/krMdrYdyJiP2BhcA/kw2/C14H41nj\n4BSjci3sisH0YBPBaHwYaMKfF5BdDwWvjTEqHyGoG7gRr4dxKSLaIuIWsr/59SmlO/BaGI/+AfgQ\n2YAFBa+D8SkB346ImyPi3fm6UbkWWhkab0fxiUn1GWTCoL4mo9YZjYqImARcAXwgpfRURD0R4fUw\nfqSUtgBHRcSeQC0iXtOw3WthjIuIPwIeSymtjoieZm28DsaVuSmlRyNiH2BlPp9Jn5G8FnbFzPQj\nwMzS8kz6f7vQ2LcuIqYD5BP+PJavb7w29s/XaYyIiAlkgfRlKaVibHuvh3EspfQ/wDXAy/BaGG9e\nCRwfEfcDXwNeGxGX4XUwLqWUHs1//wq4kqxsY1SuhV0xmO6bCCYiOskKyK/awX3S6Com/IH+EwZd\nBbwtIjoj4mCyCX9u2gH90wiILAV9CXBnSumC0iavh3EmIqYWT+VHRBcwD1iN18K4klL665TSzJTS\nwcDbgO+mlN6B18G4ExG7RcTu+evnA/OB2xmla2GXK/NIKW2KiDOBGvWJYO7awd3SCImIrwHHAVMj\n4iHgo8AngG9ExLvIJ/wBSCndGRHfIHuqexPw3uRA6mPJXODtwG0RsTpfdzZeD+PRDGB5/vR9G9md\niu/k14XXwvhV/E39b8L4Mw24Mi/76wC+mlK6LiJuZhSuBSdtkSRJkiraFcs8JEmSpJ2CwbQkSZJU\nkcG0JEmSVJHBtCRJklSRwbQkSZJUkcG0JEmSVJHBtCRJklSRwbQkSZJU0f8D40rLhCQu+vsAAAAA\nSUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 274 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Application: Image denoising" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sources:\n", "\n", " - [Lecture](http://statweb.stanford.edu/~jtaylo/courses/stats352/notes/ising.pdf)\n", " \n", " \n", "Suppose we have a binary image $Z = Z_{x,y}$ (where for convenience, \"binary\" will mean $\\pm 1$ valued) and that the image has had some \"noise\" added. We'll assume a \"bit-flip\" model, so the image we see if $Y = Y_{x,y}$ with\n", "\n", "\\begin{align*} \\mathbb P(Y=y | Z=z) &= \\prod_{x,y} \\begin{cases} q &: y_{x,y} = z_{x,y}, \\\\ 1-q &: y_{x,y} \\not= z_{x,y}, \\end{cases}\n", "\\\\&= \\prod_{x,y} \\begin{cases} q &: y_{x,y}z_{x,y} = 1, \\\\ 1-q &: y_{x,y}z_{x,y} = -1, \\end{cases}.\n", "\\end{align*}\n", "\n", "thanks to my meaning of \"binary\".\n", "\n", "Here presumably $q$ is close to $1$. This seems like a hopeless problem unless we make some assumptions on the structure of $Z$. Let's assume that $Z$ is \"clumpy\", so there is high correlation between each value $Z_{x,y}$ and it's neighbours. This allows us to apply the Ising model, as we'll see.\n", "\n", "Indeed, with $i=(x,y)$ and again setting $J_{i,j} = 1$ only when $i,j$ are neighbours in a 2D grid, then let us assume that\n", "\n", "$$ \\mathbb P(Z=z) \\propto \\exp\\Big( \\sum_{i,j} J_{i,j} z_i z_j \\Big). $$\n", "\n", "That is, an Ising model with zero external field. We can now apply Bayes rule,\n", "\n", "$$ \\mathbb P(Z=z|Y=y) \\propto \\mathbb P(Y=y | Z=z) \\mathbb P(Z=z). $$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, for $a,b\\in\\{\\pm1\\}$ we have that\n", "\n", "$$ \\begin{cases} q &: ab = 1 \\\\ 1-q &: ab=-1 \\end{cases} = q^{(ab+1)/2} (1-q)^{(1-ab)/2}\n", "= \\Big( \\frac{q}{1-q} \\Big)^{ab} q^{1/2} (1-q)^{1/2}. $$\n", "\n", "Thus, with $h = \\log(q/(1-q)) = \\operatorname{logit}(q)$,\n", "\n", "$$ \\log P(Z=z|Y=y) \\propto \\exp\\Big( \\sum_{i,j} J_{i,j} z_i z_j + \\sum_i h z_i y_i \\Big). $$\n", "\n", "This is exactly an Ising model with a _varying_ external field $(hy_i)$. To get the conventions correct, we set $\\beta=2$ and halve $h$.\n", "\n", "Finding the [MAP](https://en.wikipedia.org/wiki/Maximum_a_posteriori_estimation) means checking all possible values for $z=(z_i)$, which is an exponentially sized search space. Instead, we could consider using the mean of the posterior, which we can estimate by MCMC methods: if $(x_i)$ are iid samples of $X$ then $\\mathbb E(X) \\approx \\frac1n \\sum_{i=1}^n x_i$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So our plan of attack is to re-write our Ising model to allow a varying external field... The following is a slightly quick'n'dirty subclass." ] }, { "cell_type": "code", "collapsed": false, "input": [ "class IsingGridVaryingField(IsingGrid):\n", " def __init__(self, height, width, extfield, invtemp):\n", " super().__init__(height, width, 0, invtemp)\n", " self.vextfield = extfield\n", " \n", " def local_energy(self, x, y):\n", " return self.vextfield[x,y] + sum( self.grid[xx,yy] for (xx, yy) in self.neighbours(x, y) )" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 55 }, { "cell_type": "markdown", "metadata": {}, "source": [ "I'll use `skimage` to load our PNG file, but I guess you could use `pillow` etc." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import skimage.io\n", "image = skimage.io.imread(\"image_small.png\")\n", "image = (image[:,:,0].astype(np.int) * 2) - 1 # Black and white so just grab one RGB channel\n", "fig, axes = plt.subplots(figsize=(10,6))\n", "axes.imshow(image, cmap=cm.gray, aspect=\"equal\", interpolation=\"none\", vmin=-1, vmax=1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 111, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n4kQAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 111 }, { "cell_type": "code", "collapsed": false, "input": [ "q = 0.9\n", "noise = np.random.random(size = image.size).reshape(image.shape) > q\n", "noisy = np.array(image)\n", "noisy[noise] = -noisy[noise]\n", "fig, axes = plt.subplots(figsize=(10,6))\n", "axes.imshow(noisy, cmap=cm.gray, aspect=\"equal\", interpolation=\"none\", vmin=-1, vmax=1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 136, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAlEAAAE9CAYAAAArojdiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztvWHMbll13/ff986gyI4bQJYGjEmgFch14zQhxVKVWvNa\npZZTVeB+ISA5oq5jRXKduGoVMbhSuPYHRKjSup8qtcbtuLVJSOIgXNUx2OE1rlobk2CbBCZAlVEM\nyQyxMa35EPXOvLsf7rPHZ9acddZae699zrl3/j9pNPd9nnP23mefvc9z1n+vtXaptYIQQgghhMS4\ndXQDCCGEEELuR/gSRQghhBDSAV+iCCGEEEI64EsUIYQQQkgHfIkihBBCCOmAL1GEEEIIIR2kv0SV\nUr67lPJEKeXzpZR3ZpdPCCGEEHIGSmaeqFLKbQD/BMCbAHwJwK8DeHut9bNplRBCCCGEnIBsJerb\nAXyh1vpkrfUugL8B4C3JdRBCCCGEHE72S9SrAPz24u8vXj4jhBBCCHmgeCi5PHNtsJTCfWYIIYQQ\nct9Qay1rn2e/RH0JwKsXf78a99So5/Hoo4/i6uoKAHB1dfXcv5t/1q1b9wSyUu61+ebmpqsxrbzb\nt28PlTOz/Kw2ZpRz584d3LlzJ1RPb11HMHs8zGLtvtxP13KGts5og2e+WJzpGXKWenrqXn5fa8WD\nsCdsdn9r5e1xX2utuHPnDn7sx34MQPy33dvG0WuR7yDvfve7AQA/+qM/qp6T/RL1SQCvK6W8BsA/\nB/DnALxdHnR1dbX68Ml6aXrooXuX9eyzzz7v/9Fy2o1o7ZLlaJ/v0UZJT1tke25ubp67L1o7e+uJ\ntmVZh/b57Hqjx/SW7TnOGjfe8+WY3irjmWeeWT0n+9r3YOa47SGzb9q1yftlland76z5Zz1HM+fd\nsuzlb4v3Gr3XMnpeq99TVvaYzfwd8yJ/X7SX3+hzT6tnadx727UsV76DtL93e4mqtT5TSvkhAL8A\n4DaA9zMyjxBCCCEPItlKFGqtPw/g57eOact3GksrOYK0yLyW9ajF3fBYgLJO+XkUr3pjXePdu3dx\nfX39gmuQ7Rxt7xZW32htaVhWi2WJbZVvjS3LmrTG5Jql2ri6unqunLt37wLQx5p1vyJjc9RC1crz\n4lWEtfMA3dLMwHqObWH1TY/y0ZYgrHlitcGaf7196J3Xa/fPW3cpBd/5nd+p1uF9lqyVC9jzTztv\nrf3R+6QRVdu08mY/06+vr5/7e0uh087famP0WWWNg0hfpOaJclVYSp1dpyy/9yXK+6LT88Br54wO\n3KyXqCZfPvzww6vlzJhgGlqdVlui0m+0/OUxDe89t8ak98dCu0/ea1ibe1Y/yHN6X4bO8BJ1Nqyx\n2NP+aH9r97tnfqwdL184IuMt+hJltcW6Rgtr/nnrH2mDVvbokuVMtP733l9vX0WfVd5ySymqY/kD\n+RLVsBzpFm3a/DxaX8+kGPWR0Aap99q1ckY4yidGPuiylMY1el/srBcV70vxni+3s9FemkZU2yOM\ngGW9Wb44a+0/k8/ZFiMvikfdPwvrpeCIe6E9987Qd97nYFa52Wy9RHHvPEIIIYSQDg5Rom5ubp57\ncwTGIsqW52uftzf09rmlRHj9VkakditiJWvpI9PnIoqmhmnHZbcluiwl27HWltEond4lFm85mX3Z\nu5w2yqginEn0WSPP05TgzGuapdZEl8d7n49nVZt68KpuwLx5dOb+nNW23mVWL1SiCCGEEEKSOUyJ\nWuZzaG+NWda95R/kjdSx1pgzfKDa/7PeoGc51mW0KeoUmJ2XRh6nqQueRKKjDuZZ+WYsJSTTt62R\n7b8wUxXNKrtXGYyq4N52LMvcSxmMPkvOrIgcxfL+naVfehVH67jlsXs5u88ac1SiCCGEEEKSOUSJ\nunXr1vMibjTLJdtC7Y0S6fVn2SpztG2zrPqR87PbNKr2NKJhsx5rcTRaLivEekYETrZlqp3nVZBH\nsxlv1akdl1Hn8vioCu7hQVF69vTPnO3fldG2mdHEnnZkrl541cmj/S89+f6oRBFCCCGEJHKYT1Tk\nLda7mWCWCpOphGWVGfXJyMq/0XO+ladJRiplRfHMUOeyVcreerTjZ0ZdzrBMl8f3XmtEBZylgvaq\nZlnjZKuu2WSrdfK8M/lnZvt3bfkLRXP6yTJn+2XuwWz/S+t4rT4qUYQQQgghydwXGct7Ld0si8ba\nEkWzUte+m9VGjezopJGtbbwK1ShaRNRIzqzRyEEvvWpbtJwzMKosRsZN7zNE7grvVcP3yGTt7b9e\nP5NRdW2vOePhSF9Rq8yG9JuL5inM/p2c7RvpKWs0R2PWGKQSRQghhBCSzH2hRFnstcarWZlbFvFs\nfxEvWT5SGaqR1o8Naf33RmpE19dHok6y8Kov7e9bt24977hoPWt17cWoqranD03jCB/DUUavYYY/\nEGD7Lm59l53va6/zI2V7n5O9z2JvJKJXXc3sG29fRFVY70bH8tqoRBFCCCGEJHNYnqjMCCl5XG8e\nKO8+WFIZyXgDH/XBOFP24iz/A1mOjFrZM6dI7xgaPU8by1ofWKz1lVWXpgxm5dC5n/y39o6Aivjr\nzfbTs55/WdF4y2dedoSvrNurwpzJl0qWnaUQRiMRz+TzpiGfl1G/5tYHVKIIIYQQQpI5dZ4oyah/\nkXc91MpH05i5Lu6tw/JVGlXhRsiyVLRy9rgfWlss1Ua7D73Z06UaJL+30NQjz7EyakiSHV25p7oa\nVRCjz6CsvfPW6o0+36yyvXtONkZ91Dz1en1jtMi23hxk0Wz6GXtZRsvUzsva2WPPPF+9195bbnTs\nUokihBBCCEnmlNF5o2/C0mqPviF7fZ7OYDHL76NKh/f7EWQkWft/b84PWc4Rfgp7RKgsy2vX2tDU\nIgst0mftGOl3kjV2Rn0cZ+BVIEbLb2TmkZrdRu24LD+hDEVZtj07cs07Rr1zZatsrUzrPC2fofea\nspTNLaK/Y7P8vqJQiSKEEEIISeaUSlTD+2atKU+BNgHQd8+2/Bg0S2HrHHlu1h4/Fr31ZUTCWdZ4\nVMnQIi6i7dFUAU+ZXstz1GqXSlTDoyx5kfOgt18tvP5je0RfZkV3ZfmhnDlCsWHdP+34DNV2lorZ\n20ZtrHpU9t573uuX6a13j7E4S72eBZUoQgghhJBkDssTtVwH7113ltmbE9q2Wp70EdFYU8a80XKz\nFQ2tvKgl0Dgy87K1+7l1XmS/pV7flVH/AmuMW+pp1FdqrexGNOLJS8R/ZOu4SF3Ze1keqSB5FbvR\nsZut9kTyD43er6iqOToOGtk+PSNt2TOf3myOujYqUYQQQgghyZwiT9To27/mG7WoE4C+I7RlrXuV\nKNmu5bnaMfeT5busP+I3NKsN3twuWhRQj7KSZX17lRHNF6phqacj8zsapbcX2n313M/eCKbo5962\na3sjNjwWdjSqLls5iuLtSyAvQmx25OHISsFsH0Dr2r1j0tsuj5LYi/VMn/VsohJFCCGEEJLMqffO\n81rrXt+oZtXfvXv3eeVKi0vzM+nJOXJ0VMEs1va3GrXCZ+/9pfnUZWXa7sFSqrT8UJaCIenxldLG\n/VnGtFeRjJzbm9nYKs+bD8fKDt+jAPf6BUUzZffmfdP6csneY+2IlQK5sjIrOlbW5x3zjZ5oSm2c\n96pue6viVKIIIYQQQpI5RIl69tlnn3vLBsYtFstvRCIVKc0PQdY7olicxZ9kBlG/H681n90+qx1r\nqk4k78uMNlv5oeTxFhFfKc0nKiujcZailamMWT5TvW3L8kPy+Ftq50iVyzrfu++fFjElozp75tCZ\nVGNgXxW2158yetxopvMesiJvvYpvdI9D+T2VKEIIIYSQZE6RJ6o3a2krwxvBJP1BNEVKUx/uJ5+o\nI+qNKk+z69eiMSN5ahrZeV+yovNmYvlEZd3PLPVnrV2j0Vaz7/PI+b2RgaNR0NZ9snzVetpxNiX/\nyPZo6pz2/POqeF5FqpHx25Llf2c926NjUH6frkSVUl5dSvlYKeUfl1L+USnlL18+f3kp5aOllM+V\nUj5SSnlpT/mEEEIIIWenS4kqpbwCwCtqrb9RSvnDAP4BgO8B8H0AfqfW+r5SyjsBvKzW+pg49wV5\noqLINnut9WhOHdnGTJ+ovSLVeq2HjLwn1lt+T04cD9KiklbKaFTRGtG1ea9/2KgS5YnKmxGVCsTH\n+EzrfoYVvVZ+dkb0rfNH/YWyx+wenNGPLpuoOuONFM3yWY1E82WrpBmqZg/pSlSt9ala629c/v01\nAJ8F8CoAbwbw+OWwx3HvxYoQQggh5IFj2CeqlPIaAL8M4I8D+Ge11pddPi8AvtL+Xhyv5onqXePX\nculo1ndPzpxlPT2qTNRCjb6ZZ+VmkeVkRyut1SnpjUbRytfKk1FEaxZ9tpoSVems+enNG+WJypNt\n8kZxWUQt5hnqQHZkoVXPHtek1Zl9/mxrX47ZZT2z9rjTxkF25NsIe/tfNqxnndf/CIirpLP6tfd3\ncvkc1pSoh9Y+9HJZyvs7AH641vr7QmqupZTVJ/bNzQ3u3LkDALi6usLV1dVIMwghhBBCUri+vsb1\n9bVpxAIDSlQp5WEA/xuAn6+1/vjlsycAXNVanyqlvBLAx2qt3yLOM32ioipMU4i0qDpL8fBa+63c\nHlXGa+2NRvGMqjijythMstU5WZ5U3ZbnRvtFs66997W1xauiRvNGLY/P9oXS8Kp6UZVo637vpUBZ\nZKlFR+5ZKen1qbLKWyNbGcpS32Y8F2erMb3X1HOto4qht61e/9qob+TyHSPVJ+qyVPd+AJ9pL1AX\nPgzgHZd/vwPAh3rKJ4QQQgg5O73Ref8egI8D+C0ArYB3AfgEgA8C+KMAngTw1lrrV8W59ebmxmVR\naVakfOuU1+BVmLxIy3yPKKLZvhoPAr3+Zt5ye87dKstTnrwmb1b9KGt+J1LRHY320nK5aPltRrNS\nb93vbCVob1+NNYt7Vvbu2aqOV5Fc+64R3ZNw750GerKya/3RmB2RaKnne/os9q7ESLKUxK3ovC6f\nqFrr/wFdxXpTT5mEEEIIIfcT3PaFEEIIIaSDQ7Z9ubm5CcnSmkSrOZV1tAmAnRJh5uaXe8vOe2At\n72QviTR6UyGcqe/lNc3c/kVufyT7YTS1hHTYb/XIAI3oktueYebeBIPeQIJeh/fMpWaL2a4F1kbF\nW3VHU69kX8sMV4K9Uk1oz0v5+6elOPG2c1n2rO2W9np2pyfbJIQQQgh5sXOIEnVJXPWC73rfWrO2\nxpAOtvJ7r2I2EoY86gydFW7cg2aNawntZjn5WpbWrK05PG3tVeM09bU3cewSOf41x+9ZiQ1Hx0HE\nIb33fkRDrhu921icYePw2eVo1+5Jf3N0ygrZnvs5YEe7D43eNC1rZWeTFZQiy5NjmEoUIYQQQkgy\nhyhRctsX623SCgHVlCgt+aaWXHBUiZLtXZ6bjdUne27hoFmHjb0TjFrHjfgrZLU1S4WRyDQFkXZG\n2xYNz589FxqR9CmNLEs2iyMUjqw6Z24V1Zil2Gefp5WzVtas1YRehdB6nkf9AHvqzN7AONqeVh6V\nKEIIIYSQZA6LzutJiKdZ89YGxHL7F23tV9Yrz9es1COju3qtvhltHrUO97K6R67d29+WUthrFUa3\nztijT7OTAo7SowSfwTcpq9692j4jQi2LWW3zjnXPPbB8N3tXEzRVR4uGHN1+KfOZY0X2RhOEjrbD\nswExlShCCCGEkA4Oi87LwOsTZdWnRTjJN+poPqsIo8pFrxqwh4pgWUZZ1kNvuzzRQFbEoXV+Y3ST\nXS1ny6jilclZVJ0RsqN+euvPtOqzyIqQ2zNieG9/PI+PqrcfR32hNF9H7e/omI+obrP8X9v3sp5G\n72/M8h2DShQhhBBCSCKH+UT1bECsHdfemL05cjSfqazovCWjuVOsz7V6eq3DkcgaK8JCyxPUyLLA\nZpC17h9V/kYj4CxVaKtMjd5ImiN9ZHo5W5u3oru852adl9U3PdGVo2QpIxmbBnuV29HVhtmRbhFl\nPzuKTlspkPTWy+g8QgghhJBkTpWx3MrCrOWPWnrQB9vyvL8tJap3L7Fl22Zn6W5tb//vtVKkIuVR\nG+T90DJge69JHncWNSATr/LXu1eY5nfmiWCzLGI51kazR0fHw5575mVH+3h9NLTzAH0PQnmuV0GK\nRrTNul8j0ZXR+6XNK6+v4Wgk3RZWf3vrPkt29y2ylMFG9jVSiSKEEEIISeYUGcsb2tukZTll7XCv\n1Sd3s86MnOm1TC3ro+GNHrPUop79rbznnEVpGvEXyrakRvPbaKpghkWstXlWtuBsH5G1uvbKddTb\nZ2vPaSvKau9IUOt4SznbaktWtHFUebeei7IeTbGPPFt6x+TMeTKLWWpZr9+mBpUoQgghhJBkTpWx\n3EJ7u+xVojTfK4nlXzSiQsj8Fl7/htE3a60d1r5Ist6MuqNt3CsTM9DvL5RlSXn9T7zt6VHbtLHX\nq6LOzhWTqbZpxx2d48xD9h52o36XPUp+b51a3dHPo+PCu3riKXPUD9LaYeNM0dCjEYFRP75oPVSi\nCCGEEEKSOZVPlBfZZitjuZavqL2xt/Pbmr1UpLx5oiL+Qr0+GNqbdSPbitB8OJZ9MWu39iy1p1fF\niZS9lz9XlhqzZhH3WnWyHK2uWZmZM4gqvV4FeSbR6DjvmIjujrDH2Je5AKOK1Cyifbb8bcnygx09\nvvd8a84AeeqnNQ+96pv2W2Ipy1SiCCGEEEKSObVPlPct1PKJsqJYGpoiFc1YvizXart2XK9Vnu0H\nIVnzqZHZYWepYdl+RpHvs1SSWeVk+sh5+2l0L6/R42Yg6/bOpyMjoGZFEFpKYdaYi4yn0ejG0b1J\ns6Jml4wqhFm+hr0Z0Ld2ouj1cYruVTr6bLGUZSpRhBBCCCHJnHrvvIYVOZZ9DVKRam0d2TuvNxKj\nV1mKZuKV7Y34RXgjX+4XtpTEvVWxqL9Lj0Xca8HOVj2j9EQeRsvu9R/zln9kDp/ZY85bf8YqhXac\npmi0sbwcO8vjrJxLPRGrvQqQrDvr2TTD92pUtW6MRu1FVVN5bVSiCCGEEEKSOcXeeaNvztY6qpb/\nycK7J1imFWmt2Xot4Wh52nmNkci13v6flYOnxwfjKFUt2z9py6ctaoHK+9qj1EbIUEmz2yIzwmf5\nB2mqe4To/JE+pmeJgNsiy89Ou5+N3mhpz/jrVXRlXdoYmZ3LzDMvj3qOZqmmVKIIIYQQQpI5TImK\n4M3xoFkBVn2WctWbmXfrmFmZxqPn9a7HRyxj7/3W7sNyXXrZVkuBzMqfszz2LPtOaWO/x9LrVZCi\nVveoamZlYc9Qa3rb2Gvpetu+FdVlKe5aWzSFYtQfJZOsMROtbw9fNnmu9MGNItuuPUejeOfI0ar9\nTKhEEUIIIYQkc18oUQ1tp+3evfNW2gZAt8QyfT7OEtkU9RWQn8/AUhClMiXzenl92SLIfhgdC70W\ntvc+RPwCNaXPS5Z6E82UPjImNdVSjqnsfee0+zAyn7yKu3W+/Lt3HMzYVzArcmyWotwTFSvHQmuL\nN++hV4HsXQnQ+ihD/dbq9KrJltqW/XtKJYoQQgghJJnD9s5bZrkezSGRpURJ5Fttzxu318pu7JV1\nVp7X45MhsXyWRrEsJTkOpC9bhhWate4fVbZk5JSXiDU6qrjOylMzUw3VfJlaH0QVY6/ipI3l0Yji\nDOQ83jvHzwijUcuz2rN2P70+vJbqMurzqx1vzUcPvaqZ9ayX91mbv72s+ZxOUaJKKbdLKZ8qpfzc\n5e+Xl1I+Wkr5XCnlI6WUl46UTwghhBByVoaUqFLKfwHgTwP4hlrrm0sp7wPwO7XW95VS3gngZbXW\nx8Q5tZTyvDfF3lw4lnU+K19Uj5IR3YOrN9ouqmxo69sjfdZruVjRQpoF5rViZHkZeXBmRwNZEaiZ\nSCvu6IhELXpppkqjWbJZ90kbm9pYPhJvxOHsPERbaGPUet5mzVsrYlwe34Ps396Vlyzlyvv98hjp\nxyz7zyrLq4pl+y8vfyvSlahSyjcD+A8B/ASAVvibATx++ffjAL6nt3xCCCGEkDPTl5DiHv8tgL8C\n4F9bfPZIrfXpy7+fBvCIp6BoxIW3PPkWLC1sr0WrKRwRpJqlkZXLQ8OyAOT3PWjWgaUw9fpnaX9L\nK1+2RyobPZa0HBNeHzivz0ZU2chUaUbGew9a33jrX2vvaH9YEWdRpdAamz2KRa/Pi3W81bas8TGi\nCmltsJ63vW3X1FGpDmUqiVm+pd42Wb8B3u+Xx1gKnaestb+tVQcN75jz/B53/VKWUv4jAF+utX6q\nlHKlNLKWUlbvWq0Vd+7cAQBcXV3h6mq1CEIIIYSQXbm+vsb19bXr2C6fqFLKewD8eQDPAPhDuKdG\n/SyANwK4qrU+VUp5JYCP1Vq/RZxbb25uhiLd5DppswK8/gZaeVqkTPtbW2c90ndkVNnQ1pwzIuw0\nRVCzgLOi+qxoFm18ZO4VZvmReH3k2nHRiBrt+y31IdufQMOr1mnz1fKBXJbXG82o+URJZimF1hhe\nfmdFqWplSbXG66ciyZo3e0XMrdVpRX/Ja2vjQ1MUjyBLlZ6pbs9CjhnvM8w75tLzRNVaf6TW+upa\n62sBvA3A36+1/nkAHwbwjsth7wDwoZ7yCSGEEELOznCeqFLKowD+y0t03ssBfBDAHwXwJIC31lq/\nKo6vWp1Z/iK9ES5WJIA34m1PS8qquze6q5Wj+Q9FsKLp5HGy7d7yvXlUrM9nKzFLolFfWVbm8tql\ngiOPsbIBawpGdq4eS4mS17PEUiW1a7RUmegYHX0mbX3nVSO98y7a5hl52Ubxqp5aVLO89uj9P0LV\nGR1rmlLvPW+mX6ZXkc9+hm8pUSOO5QCAWusvA/jly7+/AuBNo2USQgghhJydU+6d57VQvf4io+yh\nUGRFdcnje/ML9VolGUR9mrLaeIQSZSHVl/b/GTmTNN8WS7loaHtbWvM4OrZ75r1XlZRjYJbvy2gu\nHu8xR6ApUpripfkjrX3Xi6auyT6z/F41fzPNn1N+v6wvy08u63h5XlSBGpkj3vlgqaze3UWiCmWt\nkzKWE0IIIYS8WDmlEtXwvi2O7p3nfQveQ4mSioM3ckl+n5XhWrPUM3PxWHU3tFwg0srrtczvByWq\n0ev3sEXv9Ws+UdYY1RQIeW1WTrMteq13OaZmPSd7/ZiixyyPG50fXp+3qK/b2vGjfqbe35CG16fU\nijzW9vFsCvKyTdGxFVWjo+PDGyUtj/f8Dnv9Knv9Yb17XDa8me2nZCwnhBBCCHkxc2olqmFZI5aP\nhDcSp6FZ/VrkRs+6vWZly5xX0dxUWeqcxVYElOarZFmwXsvH69ci27VHZEc078yo2upVF/bIE+VV\nSb2KlTyv4c2DtHaMpfgc4QMYaU+GAmzNI0uRl8qDdv+056tka957y7DoVbTk/LPGiSxfm+fLz3qx\nsrJbz1MNK1rTGwXtqUNTv6yIX6sN0dxlsu3yebwVnUclihBCCCGkg0OUqJubm+e9kfdaGd71am/e\nIFmu/N5ShRrLa/OqLw25j1vUSp/tw7GFtIysPDaW/4E3T5hF1CcgwydKGxOa+mL1iaUsSj8Jr8W2\nVdasvD5ZqoAkw08sK8fOqJ+gHItr7fEqclG10vJxsfwktWedN2/YVp0aVlRcdnRz9Jkiy/Wc4/U9\na1jXLvH2WTRSrgdLvfb+lsg+ivplavVSiSKEEEIISeYwn6hlvaNvi971allf1Gq0LPS1N3dpSWp5\nSmSbtAglzbLSokKyifgo9OZ48SoV1vr5EdF52v3ScihZfidRHzfLYvOc61VBG5b/QpaiFfUPA8Z8\nxHqIWunWfNq6B7IOLcIpGkU1qsatWfGA3wcugjb2ZJsa3misPRV97XdL++2QaL+D0f3j1vy21urP\nnDNZPm+yPK/y6P2toRJFCCGEEJLMAxmdF12vjubPiPgpWcfKjMiW35W1xn6mnFm9vi+9aP5hGdF5\nvT4V3vuljTFLbZ2xT1WvEifHsvx8JJp1eb51X5d9rqkxmmozG60dljKy1WeaGqOp3Y2MiE4PvZHG\nHuQ1RtWXXh/EDLQ571XLtjK9L8uL4o12z/A97M3v5CXrN4hKFCGEEEJIMqdUoqJ+QHtlFd4jY3mW\nf1gjak1auWCi/jJrbffm6+pFs041CytybZaV2NtW2Rb5/Zkzlku812RFZ1r+YSP5abS2ZO9n5o0a\n8s5/j4+U5nfZm99ndKx5x9XWNUajqaIc4QvVkFHN0cz/2ljy+gNpx+2xN63ms+ZlVN32QiWKEEII\nISQZvkQRQgghhHRwiuU8a/ku6kztldi9qeR7lrC8jDose2VoKzmZtpQij88I/5dlS+dab4i8V46W\nS29WH3mwys6Sl2c5ui6vVQutlm2IblkTRY5By8leEklxoDEa3t/wLt/NXoZY1tXYw2kayHEe1lwB\nRt0evNtl7RHIoY3z0d+baKoYb+DWTLxphLzvCr2s/a5yOY8QQgghJJFTKFGN6NvkqOOkNzHh7G0w\ngH6HZa9SoVlUlsrXo8Zp1qM3UMAK9e21TmcqiVFHYW+51rYTGRay3DLGCq3OvlaJ1/E8kuJAMkth\niCq22YEKkTothT6rT7SNciOBJb2/Dd5nglflbGT00R4BSz1oz9dMBdP6PbL6xDtvtBUWbRVqS6Gk\nEkUIIYQQksiplKgo0ZDn0TDmaCI3IO7zEF3Hjobkejeqbchrl1YKYKdb0DYmlsf3hvL2+kf0IPu9\nMZqmQWurNy1DdFuYNb8h6z7thddvJTPp3+gzw/JvsVQXWX9kzPaOc2tsRfvE6iup6HsTDWdgzduo\n2pLhO9fra+tV+kfR/GFHt9daMrr6E/291Oq1/NGY4oAQQgghJJlTKFG9llQ0WkeWH7U6erYtyFJL\nNIu2KUqjUUiaRaBd+/I4K6pjD0tzi0yfHS2CrJEdUeMd49Y81ubC2rnt2FF1bRTZLq/quhZ5OOrf\n41VnrGfEWhu3jt/yWRyNUOqN/JTXKue59XyVKsNMn8WGNm/l83e2D93yGke3wfGqKBZRH9YeJThL\n0fVGCGeRgFIOAAAgAElEQVSvQlCJIoQQQghJ5jAlas2iivpiaG/GVpSepbr0RgyMWFTa5q3yzTxq\n9clyvLmzote+xR6W5rKeaI6YHkajqqLWZlZkzJb1qClPZ/GNkqqrJ+J01vyw7ptm1ff6r6z5Ispo\nN80at/yxeqP1LB9Fr2o3w3dRQ87bvX2hltcW9eOZ3T+WD5TWrgje/tN8orTfEtlWOXZ71TnmiSKE\nEEIImcSpfKJ63xa1TXK9vlJWdEpUidqKXLOwrDdtbd9raXv7Jnrta0TVlt4sw1HfEG/+KU+b5SbH\nUbw+c97cSFYW/i16x/ksPwRZn2yfJx9cVDnw+gZGx5i0iEefeWvnasqFVKy08/bMkbSsL+IblTX2\ntGiwWdxPir5Wr/y75/7L3yErarJ3Q2JZjvw+Ok6YJ4oQQgghJJlTKFG9aBZUNGLJ255o7oolvf4K\n3jospaJhWdpa+0aytkdzeViqjOWL4W2PpiJ5Ig9765bnRaMye5VE+fdanqio9WcpH9kWs+UjFSEa\nbSXnh3fe7hl5Zimy1nFRv6BGNF+UFoElr2etrQ1LTY729+z94dbm1l6+YNn1WL+7a+Vrv3fye1lW\nrxIVjWy02kufKEIIIYSQZE6tRHl9ZXrXs71+JJbl5MGynGSbNLScHr1ZnLfyBy3LiVgGe0bb9LRj\nxJ+pd03ditbS1ALr/vbmr1mOswz/t2U5jd4ING80mZXbx4M3kkzLWyOPO4LoeLYinEZzznk/jzxL\nouq0dpz1LMj+PfT8dmirCtHVCQuvMuktR4uKl78ha+dqZPzWLusZnZf0iSKEEEIImUS3ElVKeSmA\nnwDwbwGoAL4PwOcB/E0AfwzAkwDeWmv9qjgvrERZvitef6CNa3leedr+cu3teERh6fXf0Syoxmh0\nSTR/x9KnxquyHIVXBfTcVzlGevd48lrYDW/0ZYYqY2VSnu0PZCkas1SDtTrltfUqkFl+KJ49K0et\n96xniXc/Tk+bsvtRe+bLNvYqvFo+sEjkryzTYlRZsp5Fmjou29kzL2W/9ebfm0UpczKW/3cA/vda\n678J4E8AeALAYwA+Wmt9PYBfuvxNCCGEEPLA0aVElVL+CIBP1Vr/dfH5EwAerbU+XUp5BYDrWuu3\niGPC0XlWVJZUBbyZjS00n4GIgjEahSfLieZ4GUXru2V92TlwsvJFaeWP+lcA++0LOPv+LonmiZLM\n8uWQ9Wb0Ra9a0qskZ6mxa5Gj3nlj3R+vsq/1naYmaIp+pE9GdwjQsMZUr7ri+e2YpdBnrXZoxzVm\nPJM0hbA3x2Bmu7KVqNcC+JellP+plPIPSyn/Yynl6wE8Umt9+nLM0wAe6SyfEEIIIeTU6G709nlv\nAPBDtdZfL6X8OMTSXa21llK6nBa8ioPMxGvt9bMVNbDVDvlGr+VJWSPLKu+1WrwqnHac1ndLC33E\nwtxqg/d76zx5XOR7bSyO5M2aSa/q6sGKNNy7L6zoWkC//t5nQm8UWBZr9Wvjf9RHRusb7fv2uaZA\n9bRHltmucS8FojfKWcuH1PNsjF6rtloR/T3VyrUiWT3zT0OLOvaedwS9L1FfBPDFWuuvX/7+2wDe\nBeCpUsoraq1PlVJeCeDLayffuXPnuX9fXV3h6uqqsxmEEEIIIXlcX1/j+vradexIdN7HAfyFWuvn\nSil3AHzd5avfrbX+tVLKYwBeWmt9TJz3Ap8o603Zym66h7/Isp49LW6vFWFlb/au7ff4AIzmF/KS\n5RPVY71qe6GNWvmaiqLlLItm2LasxrUyvX4Img/cLJXAiqRae170+rKMRgl5/VJGx/RWmXKMWNHF\nXv+g6P6N2j2IPE+t34JZEYlRZVdbpcjw5cq6Vs1fq90vb9St9kzqmX/a2InunjDLz2zLJ6pXiQKA\nvwTgp0spLwHwf+NeioPbAD5YSvl+XFIcDJRPCCGEEHJaDslYfnNz87z1dPkmG337jO75FN3pPiuL\nKpCfy2NUleu1Lrf2XpPnjipDmnoTtUqlBdWjnMn+7i3Lq+Y0ejPSe5D9lTHOgXmRaXtE58l8aKPW\nf2/k6FYfeqPyGlb0rKX0eRUmrwrqGWdZfl2aciyfCdbepllRej3MVnhlH2jjQ/rLZj6TZIT9qBKc\n1Vez8kQRQgghhLxoOWzvvK18J9H8Fr3qi/UmrSkpGW+3Z7PStT7RrM/Iunc71spPk6UgeS10K4pl\n7Vytrtk5X3ozKkd8OqK+bXtFSMn6Mn0gtXGfpcY1vGN8xAcqSzn05kzqjQTVxtnW/Ov1u/MqvlLp\nbf+3fE3lNVk+jhlZ2uXzNiuLvpWL635Wgr0Ri1vtpRJFCCGEEJLIYUrUkt4IlezICg0ZRdJrCWyh\nrcFHy4zuxO61CLwWWaRO+beVodyySqLHa6yppL2M+nRY+8RlRl32RlnOyiYtGVXlIkT3RIxm2bfK\na2Q+W7yqjVRlND+hRtQnRpa7tS+opTyNKnxR9c3Cq3ittUVru1eh9+7t6i3X8pnLmHdW/0Yzlkej\npr0qLpUoQgghhJBkTqFENaIRKt412tHoActC3/Ktiu5X1Yj6ZMg38qhyFMkrBPRlpfVGAmoWcMOb\neXeWn9IWUYvZ66eQmXlctqM3N4tkln+Yd2xnRgn1+ofJNsg2Rv35tsZyr8plKRCa0ieP0/AqWD1+\nL73zyLp2bZ5lq5zL+uV+er2+TdrepY1RlVSrT34+413COw+9vm9WdKb2O00lihBCCCEkmVPkiepd\n79/LR0K+DUcsB5kN1lKzZJ2j1qasf4ZFpbVdi1SRe2tZkWVauZGcOll41+Bln2gWrqW2eTOW90br\nLetqzMo8H/V91BQoa/ysqWzR8d7rHybR5ob3vBF1Jkp29KPWnjUrP4vevsj2jdJYU6JkG7zPfu+1\n9vpAye9HIxg9aM9F6W856mtqqatrvz1UogghhBBCEjlVnqiGd51SHqft4ZNlPViWwxajUTdRC0uz\n4r3Zhq014y2fKFmGlm1buz/eNmiK18x8RbItUp20rDn5t5WTpeHNWB6N1luSnRtJo9f3sWH1xfJ8\nOQa9WBFks7HUuRltivqY9qp8I3uQRn8bogp+9j6sW4qzN5p1D4V9q96oL+KWv6WlpGs5GTW/Ly13\nYK9SpUElihBCCCEkmVNF50msdUptrTb7mrL8I5aMrt1HVbqoRR5ZMx5VRXrboB2X6ccy6o8gj49G\n7Wn7VGXmRGqMKAR70KMWWGqVZRlLpbERjWjyKrvy+K0cXNkKRbR/e+d3xvPU62sWjebLiobV7uta\nG3rnXbbaIsvVIsZH5p81ZrScjKP+XKNzhEoUIYQQQkgy94US1ZttNotoroqMyEOLXkus/W1ZxNbn\na1hWtWbhZCN9pkbuQXY27qhlZOWv8fo+ee7BDMU1k5H5bo1NrUxNJYhGRjWkj4dE87Xz7hvpwauS\nZe7LuHbeHuPMe62yv3t96Eb8ckcVqSxVXNslYdZKz7Jsyycqa2cADe35ePHjphJFCCGEEJLFqZWo\nhrWuPSuiQnv79fpDLMs6K9badMMTgdHe3uV+e9IfwHv/s/x/vNF8W0piVHkYjR7SLKLRvEey/LVj\nZke6eJH1tmsfme9yHGtjdVYuo14fjrX7NXo/pMoq+1eb89Z8t3KYRTLjZysMDSsjvKbYW3h98LbK\n7FXSo30lcwjKcjKxlDotMlhbSfFGQfeOm7WIYCpRhBBCCCGJ3BdKlIZ3DX907b7R3twtP5mZuVxm\nY6l7axaVlnsqaw3dsnS9aBFXW1Z/rwIxGj0kv5dW5mifbuVy8e4RaaEpSdHcPTLC1OuzE0FTqKL7\nmM32gVyqBll7RK5Z3VtYaos3WjfiAzQrEtGrLM/I4u6NGJVttBQqb0RihrIbRVOUZu+S4I3O1GB0\nHiGEEEJIMg+EEpWdzVk7rydjebYFZdWTlcnX8gnw5InqJRpJpR1vKZMZ0XteRhWLmZGoWXm2LEu3\n/T+qoGhKieWzA+Splt42Rq/Jmq/aeUt6lT6t7L2inT0Z8mcpfdHn5RFqTcN6jkXR/IyO4KiI4GjU\nK5UoQgghhJBkDlGibt26tWlRRNWSs+SJ8hC9tt499hq9UQyaAuXZw8uKaPH6qHmz3UorMprBfs9M\n3aOKRa+KGsnzZflEeceu1f+9Y9vrA7lVt1epzbKQrdw8sl09ZVvzxYpGlf0ZzfcWndeRfQm9voOj\nz8uG1nav2q2xFdVsneP1ofK2IVr/6LWvlbn3fp3eHSMkVKIIIYQQQpI5RIkqpYRyhFjWR1a0jhUd\nkbluq0X4yTfmFpGWlTG7oVmhVn6atXshj/Hu9+Zd+5dkl9fYUqQsS3d2lJbM6RLtK02lW2urd75F\nM/jLMS59pbz+QGvXAIxl1dfI9tXoVYk8CrCF9cxpWD5n2rXIPrVUQG+081qd3gzk3vPl91Z0sldt\n3VJ9vHm4LEZ9fS1lX4sM7qlXXmP275pFr48ylShCCCGEkGQOUaJubm5W/Rai++RoikePVbB23B65\nLLxWnuXDlFV/1DLeKlOLgOmNnoxavNH8Up777FVHR/OSaOfJzNpeP4mtvpXRil5fmNHINa3tXgUr\nOh626tLK2itqSOujLZWm95lg3Q9vnihLqdCOl59b7eq5Bmt+ahGjvb6HFh7VRlONs9sQVbEbI32i\n+UD1KkOSrOerdh6VKEIIIYSQZE6VJ0pTfrR1U2uHey2aIJr1OUOJyvaZyXqD18rV1IaeemU/W1FB\nFtG1+N7jl/+2fKC86mmWH5B1LZFrjlqJs8aexNrbrbHV3l7fsVG/r2w8fT56X+Tc90bjafVraqg2\np7baNCtPlCSq/miq3EgWfamOWWX2Kkx7/PYfFYUXXQnQnjVLZZJKFCGEEEJIIof5RC2jYmat4VsW\nda+VmuEv1IgqGXvtxef1lcqoo3GUD4Angsa7n5zXJ0OWL78f3d+qJ9Jndr4s7xjq9XlcI6rcRZUo\n2eZRFSgyv2ap21r0o9f/Tn6vnSf3sFy7jl4/vCjab0n0GSLLGyFaZrbC1Ktwre2rundGcg3vvrey\nL2/dukUlihBCCCEkE75EEUIIIYR00L2cV0p5F4DvBXAD4NMAvg/A1wP4mwD+GIAnAby11vpVcV69\nOGktP+tqgzckVyMq9Uv52SO39m6REQ2h34uR+r3OfSNOmWt4UyfIpZzlZ3v3d9ZSpyfNQ9T5c3QZ\nyTuGtICEzPGhBaE0jtoYtZGxJYp2vJVCwqI3JF9zj9jamHqvQBrrGWF9n7k1Sha9bg3Wxu/yvLXn\nx9G/VxrRdqWnOCilvAbADwB4Q6312wDcBvA2AI8B+Git9fUAfunyNyGEEELIA8f2ngc6/y+AuwC+\nrpTyLICvA/DPAbwLwKOXYx4HcI2VF6nbt2+nbEDcixWCqzmMy/O1cpfWilflssrWvs/qq0jSsV7W\nHA/XvrfSCkStOusebFmj2U67vYEDUiWzxrC0Jj2h8d5rte6jVW7E+stC6y/ZxtmKR3R+WX28do73\neKlOeupakqUMevp8L3XU+702nmSIfPtbrmIsz5mN9jtmHSfvr5WaYu0eRcfmXgFUmfO7S4mqtX4F\nwF8H8M9w7+Xpq7XWjwJ4pNb69OWwpwE8ktJKQgghhJCT0aVElVL+DQD/OYDXAPh/APytUsr3Lo+p\ntdZSyurrvWXxaJauFv7di1Q+tPXs3nIBfxh3JAHdWl1aW6MWsPeaM9QamdRv78RskjVrVPppWako\nNLwqnFQHtL7QrEvLmtyiHetVzayx653H3hQnGZa719dwxrYRQHx+jVjkVhkyqWOUnjQaa+ePqA3e\n3wTtuN4xpc0/LWnjlkqzl9+U1//Zmgsjz2VrTI7+nmnPCmt1Y2Se9S7n/TsA/s9a6+9eGvizAP5d\nAE+VUl5Ra32qlPJKAF9eO/nOnTvPXdTV1RWurq46m0EIIYQQksf19TWur69dx3ZF55VS/m0APw3g\njQD+FYD/GcAncC8q73drrX+tlPIYgJfWWh8T59Zbt26tJlSLJp5sZEXnWRFy2hYoGdZi+7+WBMxb\njtVnM9aovRGFmhUYjYCaFcW3hTdCM4oVKdWYtTHqkug1an4i1jV5orHWyLjv3ojcaOLR2b5UjZ4k\nxdF5Jvu5N6mmhhxnGUQjPmUbotfqjXSLbGbu9cvSnqPRtkVV9ExG50v02STRnk1b/s5adF6XElVr\n/c1Syk8B+CTupTj4hwD+BwDfAOCDpZTvxyXFQU/5hBBCCCFn57BtX9be+CLrycALLa3eHB1e60Oz\nKqxU8hGy39C9qoDXqm1ELGKrbVZbtXIsBTLD52AvPy3tvstr1SJIM/2Fsjbdta4pGmkazWM0wgy1\nJIJHoYwqeNbzSYtSlWNuVPk/wufRmieaqtrQVB/re22rsBEsBcurbEWfu952rf027BV15yX6O5ue\nJ4oQQggh5MXOKTcgjioU0tJqEU7yb68ipb3Zey30JWd589as0agvwVoUTJZFKa1Fy4rTfGS0aEt5\nrRHl0vKRyYpo09Ai5+T3jYgKJ4/1Kqq9Y2fWhuMz0O77LOvderaNPEe8m696N3T30ju+ZiDnkVfB\ntTL/a5GOW33mVXJHc1+NzrtouVtqaa8KHSW7PCpRhBBCCCHJHKJEXd7qlp/JYwDYVpmWfdiKsov6\nyIz4R7RzZOZor1WQZa14I3VGovxG1RZZTkNTptp99FrOXoVqbU5E1choRJtVnveaJZGxL61pb7Rl\nVgSbFaUrr32PPDvWfc/yYfTOywzVN6r0ZfWzFe28J71+lfKZIZFzqCeqWc4DubIS/e1o50d/gyxm\nRKRml5lVHpUoQgghhJBkDlOilmvHVvbSLX8cwG85jUaZRHPHLIkqEPK8aP4TK7onWp7nWO3+ZOVS\n0pQiGZ056vu2bL8cO1HrOcsXSqov3sgbbQ5E1LbesZSlWMm2avN9q0+iaooWSWapZb07FMyw6qNk\n+USNRjsvyx/1B7L627pWrwIlkT5UPX5g2nPO+wzyRvGdibP6RlGJIoQQQghJ5jAlavk27bVo29u9\nXHeOWk7RKJOM/CZH5cnYw8L1+nXMqter0ngVyiWy7N5rG1Uivb4bWl6WxpYSM8v/x4oMtfzvvD5R\na0qophh51RRvX0QVXlmPdbznuZEVzeXtX0vN0yLaInMpOua8qnh0XvVGJMrs/0uyfQrlcbN+a2aW\nL39LWtmz/Gy95VGJIoQQQghJ5lQZyy2siIhZjKoQS7y+S9p5li+Glv9Ee+PuzSWyLF9arL3RV6OW\nsxdLoVy2X9tN3JsBPqq2jGbp1vreo8RkjvM1rGgkb0Sj5RO1Vk7UD1JTEo7K+xZRZLz5oLSx6u1f\ny6dQlt+j6o76oHlXNzRGIxO3/Ghl//U+IzSs+eZVY7T6M3OYWW0fVfKtvUmt8qhEEUIIIYQkc4gS\nlVXn7LwmsrwZ+yA1RqPwNGtDopUftSq2lAyvumJZuN7s3zPHsFSntGgqyy/MWpPXVLxetU2236PE\nZPl9je7TaJXf0xfRyDLN/3HUxzArWhPwz4+oX9eosm/N6x6Vz1ImelUab86xXn9L+f1y3ERy8EW+\nj6rk7f/evRWtOREZo9m/pda19s5bKlGEEEIIIck8kErUoq7nHSc/j+aMkZZTZsTb0T4Xsh0Nz/5I\nUcUpay8nbe+8UdZ8olqbLZVGy6o/uiY/eq2RXErRPDReqy8r0mqPvfNG98zzqqmNER/RXuVCO35U\n9bSeq5qyb/lUbhFVabSxlKU4eX7jZFtHI8+sfoz6HmbslnFEnZ56o1CJIoQQQghJ5tRKVNQ3xopQ\nW7Thecd7IzS8mZxHiPpGea8xqz3ymoG4BRm9RisCcXQMb1mXmr+I1a+aIhW1jGQfaLvIZ+DNjZTt\nb6ChzW/vfAX6/SItP8joGG4cqTR7n6fZPlEa3r0aR9DmTzRfmDfzf4Y/7qi/nexXK2u75p8p8zLu\nofqcZV6t/cZQiSKEEEIISeQUSlQ0mkt+LiMs2v8tqz0asbPHDutRLF8ZrU2jStWyz2Zfd7tGmX1b\n9nvWLvNr16bt62jRG1Ejv7eysmdawJZPVJYVGPVvaHgjqpbHaP1lRTBFI0h7n2UzifrM7OFztqx/\njx0OtPtnKfqNqK9UdK+9DLxtsHylNMW3Z8xqbRr1edLOy5pXa3OBShQhhBBCSCKnUKIavdEkzYrI\nXre2csYciWZB9UYc9ta/rCvLD0urK7rPlWYFRdSavaxlr9qqIdvZE80X9YmS/Tg6lrx+EFKJimYj\nX6Ltw+mNnPJGIs70n8yKdo2OtVF/s3b+jIzXXnrVN60PtP0Ce8r2+vhq5/f+to9GKK4h+6U3J5VF\n9jxbjg8qUYQQQgghiZxKiYri9RfZaIvreBmdEMkBMzsjq7ZDerQPoirSmhLlVey0qJDszOSaUtGT\ny2Vmtvol2tjyKktRv8DlsdH7pyl/s9BUg0gOLG9+n1FfOI0ZeXEsNSyqVEX3FxydlxElM+qL5u2D\n3jxsmvIk70WPamepm1k7csj6vPuyjjxHNT/m7N9JrQ+jqyfME0UIIYQQkswhStTNzc3zIq1699ja\new1fWkqe/eZmRw2Mrn9LNF+QreiKUV822W/SSuj1L4j6zMhrBV6YqVxTYTRlozdiTfbNqBrnOc+b\nA0trq/eaRyNwRqLHovMl2ieNaORhVP3raUvU58yi97mq+e9FfKMspaEh/ffk57IuqUh5cytZz5js\n5/RWmdH7YkX1WX2c0Wb5vTd61sJS9rXn+1qULpUoQgghhJBEDvOJWtarWfXefDWja/hef4kj8kRp\nEVGzc7lErZPlZ5r1IPtXlqUpT6PRIr1+YkuiuZO2yvIgy9MiUGU9Pd+PRqFaeWis86LH75HHSFPV\n9spfMyOaz0vUP8iKivU+T2c8R7UyLfVLU6RkuY0epak3StwbrderunrzK2b7ZG21aTQS2BtFq31O\nJYoQQgghJJlTRudp+45p0QJZlqmlVO2RWVdDtmmWNW4pUJ5zZSSbtl+VZtH0Kk9Z+VHWrP5snzav\nr4y08kZ9L6S1udYWqRweud/bEs0fcIZF7FVLZitGe0U+LuvK2qfRep5Kfz+PT13UD88bSa31b/ve\nUn9GxqJXydPamJWvK/oczYhA9LLHPotL1iLDqUQRQgghhCRyKiVK86HR3tRn+UhoaoxXiVpe36iF\nGvWJyrLOR1QdK39QVmb5rIiXiE9QlvLgVRg034zeKD05ptfq0uaZZa1b1v5oZI029mdGPsk+sXzN\n9lCMLLKiH7V5a+UPstD6Vn7vaat2jvVb4mVNkVird8aeed7n4mid2c/Rme8UvTkbR/f3ZMZyQggh\nhJBkTqVENaJ+AJq1nqXGyHoiZPk09EZrede194i0kHU2vNEp3ugfeZ5lMWu+XMvPJFZUR1Y+k738\n/pZ1zPYvGY3+y+gL7xjSLF+N3ozZM+jJv7Q8z5vVvRGNfh3JUB79PluBashnx55jM6rg90b5nRFt\nXmY/exrd0XmllJ8spTxdSvn04rOXl1I+Wkr5XCnlI6WUly6+e1cp5fOllCdKKd/V1VpCCCGEkPuA\nTSWqlPIdAL4G4Kdqrd92+ex9AH6n1vq+Uso7Abys1vpYKeVbAfwMgDcCeBWAXwTw+lrrjSjTVKK8\neNers6K1zuDv0JAZV7PXszOsFm3tPiuqLprXRKJZ5styeiMye5WqXr+/TEXR8jvw+pdokVTRqD+v\nKhDBUhCic1+2UfOlsnLNzVCsvGNRy+OWjRX5uKYEW6paVGmwlN9oH8z0y4u2QY5Zb84r63k96gs3\ng94dBaJ0K1G11l8B8Hvi4zcDePzy78cBfM/l328B8IFa691a65MAvgDg23sbTQghhBByZl4YomPz\nSK316cu/nwbwyOXf3wTgVxfHfRH3FKlpWNb3aARTK+8seXKWjEa0WVanZqVGkGWsWZprdXuRalzD\nUjwsqz/jPsv7o6kx2nnyb5lTR6L1rSxnS6lqx0hlr9UdjXDScvhY9fS0PYrXis66Vs8u8YA9zzyR\nv15VS6tzbz/ZxlYfyDxB2rlR9bN9Pqp2jvSZd4xEy2u0vrP2h5O/d9rz+0w+VFJlO+I3uucl6jlq\nrbWUsjV6Vr+7c+fOc/++urrC1dXVSDMIIYQQQlK4vr7G9fW161gzOq+U8hoAP7fwiXoCwFWt9alS\nyisBfKzW+i2llMcAoNb63stxfw/Au2utvybK280nSsO79ivXimfkicrKY6FZYFZUSaM3EmT53Z4R\nfh6s6EqpZI1YhNZ91HYNt87P9gfy3MfWtt7oriij0bg9eBXbI3cpsPBGJDW8z6LZ/ndaNGzmvNPm\nSbs2bU+22X5ga9fY6pTzLPrb0Ht81PfKUvv2jPDWcjl6+yLy3O3yiVL4MIB3XP79DgAfWnz+tlLK\nS0oprwXwOgCf6CifEEIIIeT0bC7nlVI+AOBRAN9YSvltAH8VwHsBfLCU8v0AngTwVgCotX6mlPJB\nAJ8B8AyAH0yTnAyifkFeX521vEG9bdPeeL2+EBZRPyPNSvX6TK2VZZXhxasSaFaDpShZlt+yPm8k\nWdTXSbbF8j2zFEWvkhi5J5YfShRrDkTP70GzYHvR7l9vvqjIWLb6TVObLbzPTzl/ehWInp8Ja95Y\nEblZfpnRebXWLu3ZEf1t6D1+q21b52mqT6QMK3JbO176b1nlS7zjx5P/a/Oqa61vV756k3L8ewC8\nZ6tMQgghhJAHgVNmLPcirbas/EON6M7Ra2/k3v3/svZis773rmNn5D3JytOlKY3SqvRaow0rf85a\nG6K5wjSLR4sm0nxwLD8gb19HfKJ6scZ0b182Mn2iGtqzI+oHaY0Xr5+SNuZ7iD5jojnoevMZaXs1\nRoieK/2+svI7aeOpV3XNJOs3xqJnXmp+q1a0uLzvsn8tXyfrebx23zJ9ogghhBBCXvQcokTdunVr\nSkbehrQyouus2tttT3uiFlK2paK9eWtv9iPMjtKwrI7GjIhIr++Ldb7WRk3J0JTDNf8tD2u+ArOs\n5ZWw5lQAABdHSURBVFljupGhSDVkG/dSDryZuDNUhKgKntm/y3rPoMpoPi69vxlaOY01XyzvMyR7\ntaK3373tWKq3Xh8xzUdRfq/dNy1zuaUIW76q7XsqUYQQQgghyfAlihBCCCGkg0OW825ubqZKuVpi\nQytMPNOZ82xYsqbXGdgj7fc6mnplau0avBvkWs7cy3Z7l916l3y9zu8Ny1HZy7Kc7GW3vRxZZX2Z\nzJr7lsOrd3nBU2a0TVbdWfd15nPV+xyzXD68QS3WsuCW64F0sLeS/sql36hLQRStLyNJeL1Lwt5A\nD2uuW8t6vX3F5TxCCCGEkGQOU6KWDmS9ae4tZjtrW5tcAnMdRWfgdXTdUmt6sRSm6DYGFp7jLQVv\n9n30WtZ7OaeulakFZOwVLLGVHiDLGTf7PveO1aVFn93f0bF0ZqXeCtTQFCZ5nhV0JJWoEed5a2so\n69qiKXi8Y9nqS8/2PZoiZfVzI5rM1Nt3XqhEEUIIIYQkc1iyza00APeDpQPY1szyM+3cs1xj1K9o\n7dyoVT1LYcqufwtNubNUmigjPjNb7R1pk6y7/T9rw2Kv4tSjJPa2ZfZ8jahso/0d9XnJUkWt45fX\naKmc3rZYIfIaVhJN7TdA+uGuKSxHKX3RlDBWOR5FzJtaIuqDpq0CZW8cTiWKEEIIISSZB9on6kyc\n7do8VuDa9/L85TGW/4DWhqPUuMz6vdGPWSrNKB61VDtnb5+ZjPJm+zaNqi/acRlKcFTR80avZqns\nW36Y3uhU7XNrexdNyYhuh6U967Y2Fvf6WUZV7VGlf6afpXweehO5evtdjtmsFQEqUYQQQgghyZzC\nJ6oRzfNzFlUnwmz/oej5GValZsnM8tnoJWphZdYty9asvr23gtgqe++ou5lYEUWjOXfk88yyfGeo\noN7tOLzzcS/fnC21pldBkPfbiu5qitXdu3ef1ybv76MWFdbTh95ouGiOuayovGiOs7Vr0NqoRetZ\nyDa2+ynLaX9Hc21RiSKEEEIISeYwJWqNUUvpflaoLLL9HvbA8q2IlpN1n/f0N+ltU9Q3bcZ99eat\nOZotRSOacT47mq+xx7zzPj/PpiRutWd0DMrzrd87b2ZsTRmb2aej9y3rvkd+p+VvQFTZi76faHm6\n5LVr2d8ba5uyU4kihBBCCEnkVEpUI6pISbLyYFjln1HxOpuVCfjbNBpVMlreCL3X6I1onD2mt9qq\nRbwcPf41P4ulWjErUlBTuLJ8rDLaGL1m77UdsQvD6DVZe+U1NP8/zTenHW/N2z3n6167KERWGHqj\n8hre+2L5pnn9ueTnVKIIIYQQQpI5pRKV5Usjy4vm5fBamz2RF1Frb5RZkW4zyrTu+6hi1dMXs/pP\ni2jUdnTPnhs9bbU+95Y3YyzK9syaV94+ifbRGVQ+K2P5kbswRCNsvXvlSbT7qqEpII2tnQKyfxP2\niqr0PIO8UXletGuSfWbt/RrtGypRhBBCCCHJnFKJakQVpF60enotspE697IiMsuf5XfS8GRN3zrO\nqmckh4v8fA91Ze373ozZy3NmXUP0/s3wJ9pLNZsVrTmCVAO8OZdkZNtopuzM8eVVl9s1RH1wosi+\n8Y755bHaykY06nL2/LWUqLVVipZ/q/c+WJnls36jtWumEkUIIYQQkswpMpbPzvdjWWJeC8qbuTVi\n5UfX+I+OiDqC6H2ekTcsep9G/e+y6rWuZ6ut2cqi5UujRQHumdVbO97KI5PhLzkb6XcXzcfXiM5D\n+flMfz7tGeCNzhtFZsoeyUXXO6ay5o1XcdpSya29CxvRqElZbiM6pqznMqPzCCGEEEImcYgSdXNz\ns2oBzI40siyxqJ+J503cWt+Wb95WH4z6AfWSoepoltVeeU0yFY2srMHSUm7/PyJPlBZJ4/WhGY0m\n2iPisFex86p1s1QA7z2IkJWP72zRY2t1tXnV0KInRxUqK0qvh1kKe7bKvfb8iL5feBUr2SZrP8Ho\natNavVSiCCGEEEISOYVP1OK7XdrgtXx7faEieYe0N+9oHhRvhtZeMtUC7dr3ing7o1+ZNg9H98wb\nGZsSryU8GhlzdN6pEWaN2caMZ6TXZy3rfu95vzQlSkP6NGnqbLSctWuNKkFSlczyuxu9f1K92/Od\nIqr8ab+z1qoIlShCCCGEkGROnSdqNtG1Zst/5QjfG68VuVek1QzOdA2jfkOyHK8V2pgdybpHmaNK\nhDeiZvnZaGSu1zepV7HtGQ9W/p5sX7YzzcMo0XxR0Yzl3nLWxkP0Wa+VvRdaxOMRv+uaEuVdNZJq\nnnYvqEQRQgghhCRzKiWqd414UfbmeVo9WhZUS92R9Xo4k//GXkSveTTqZ4/s0pbfkHWeHLuja/oj\n2aGPGpOjUUcRJUObs17lSGbv9kbRRv2MItdk7ajQGI1E9JIdNZZRlmQ0g/loFN/SN+ts+6NaYzJr\n/ztgv2hIy9/WO9a7lahSyk+WUp4upXx68dl/XUr5bCnlN0spP1tK+SOL795VSvl8KeWJUsp3uVpH\nCCGEEHIfsqlElVK+A8DXAPxUrfXbLp/9BwB+qdZ6U0p5LwDUWh8rpXwrgJ8B8EYArwLwiwBeX2u9\nEWW+QImy1imt41bavXnRsjxrPdQ6f0TJ6I1I20s9sFS7SN29/dvrc9PY29djWaZ3D63euq1cPz1q\nTbavRXSsWgrLzBxZ2dmgrTaP5mrqadNsshQtQM9iH/Vhk8+trL3cMtQYrY29Svroc1PLBj5j1Sra\nj9pqU1aEYnp0Xq31VwD8nvjso4sXo18D8M2Xf78FwAdqrXdrrU8C+AKAbw9cByGEEELIfcND9iGb\n/KcAPnD59zcB+NXFd1/EPUXKxJv3Ijs/hnZ+s04sS0C2ZwuvFe0tM1L3sv5o5I7W595618rKPt7q\nW5nzZW2H7mysfsrKiSXz0Vj1bDFLyWjlSutfu0btmrQ+9fSdx9L00JuXS7s/1v3LaJOXLJ/CzOey\ndp+iY0COwaWS3kOGKtPKkM9mqQhpyGvyHu/1Q9rDXzor6rH3902W1zMPu0dSKeW/AvD/1Vp/ZuOw\n1R66c+fOc/++urrC1dVVbzMIIYQQQtK4vr7G9fW161gzOq+U8hoAP9d8oi6f/ScAfgDAv19r/VeX\nzx4DgFrrey9//z0A7661/pooT43OO5reHC/y/KWVo0X+Nfba/0ge39CilKJv8mdgll9LBlFft9lt\ny4iA6vXf8/o8zsiFFR0jvdmkmzqg+XWdeZ5ZPoV73c8evPfXitLLih7Tyssss/WrNyt7rz+X1ic9\nfRU9R16rFtErVx1GfA1l/V0+UUph3w3grwB4S3uBuvBhAG8rpbyklPJaAK8D8ImeBhNCCCGEnB0r\nOu8DAB4F8I0AngbwbgDvAvASAF+5HPZ/1Vp/8HL8j+Cen9QzAH641voLK2XWm5ub1eiuXssl2+KJ\nRndtnW9F/nmj9LS3/+xs6VlRY2dgj2iu0R3ss9SX3ozaS3r3Q7TGXlThPVO0WVTZkHmkRnM5HaHm\naG3ozbVzJuVX8z/SyIjCWytvRpmj5XnVIa2+nnZY52gKlGR0jMrj1/z8NCVq0yeq1vr2lY9/cuP4\n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\nQmCC\n", "text": [ "" ] } ], "prompt_number": 136 }, { "cell_type": "code", "collapsed": false, "input": [ "def IsingDeNoise(noisy, q, burnin = 50000, loops = 500000):\n", " h = 0.5 * np.log(q / (1-q))\n", " gg = IsingGridVaryingField(noisy.shape[0], noisy.shape[1], h*noisy, 2)\n", " gg.grid = np.array(noisy)\n", " \n", " # Burn-in\n", " for _ in range(burnin):\n", " gg.gibbs_move()\n", " \n", " # Sample\n", " avg = np.zeros_like(noisy).astype(np.float64)\n", " for _ in range(loops):\n", " gg.gibbs_move()\n", " avg += gg.grid\n", " return avg / loops" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 141 }, { "cell_type": "code", "collapsed": false, "input": [ "avg = IsingDeNoise(noisy, 0.9)\n", "avg[avg >= 0] = 1\n", "avg[avg < 0] = -1\n", "avg = avg.astype(np.int)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(11,6))\n", "axes[0].imshow(avg, cmap=cm.gray, aspect=\"equal\", interpolation=\"none\", vmin=-1, vmax=1)\n", "axes[1].imshow(noisy, cmap=cm.gray, aspect=\"equal\", interpolation=\"none\", vmin=-1, vmax=1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 142, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 142 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that this is dependent on a \"guessed\" value for $q$ (though for the sort of images this will work on, we can probably estimate $q$). Here's what happens for other values..." ] }, { "cell_type": "code", "collapsed": false, "input": [ "avg = IsingDeNoise(noisy, 0.99)\n", "avg[avg >= 0] = 1\n", "avg[avg < 0] = -1\n", "avg = avg.astype(np.int)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(11,6))\n", "axes[0].imshow(avg, cmap=cm.gray, aspect=\"equal\", interpolation=\"none\", vmin=-1, vmax=1)\n", "axes[1].imshow(noisy, cmap=cm.gray, aspect=\"equal\", interpolation=\"none\", vmin=-1, vmax=1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 139, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAokAAACvCAYAAACRvUQjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztvW2sbttVHvbMvc+lLSGNZVW6GGNqWiDgiCZGxkVqIm+n\nCTVRC/QPBKmRG0T+NG1oqzZcp9K5h4tEAxVqqkr0R/mQ2wonLkkpVEHxtbnHQaoKQTFgMMa4qlUM\n8SWl0Ib+yTlnz/447zjn2WOPMeaYc631fu35SFv7fde71pxjfo35zDHGnKvUWjExMTExMTExMTHB\nuDi0ABMTExMTExMTE8eHSRInJiYmJiYmJiZuYZLEiYmJiYmJiYmJW5gkcWJiYmJiYmJi4hYmSZyY\nmJiYmJiYmLiFSRInJiYmJiYmJiZuYXWSWEp5Tynlk6WU3yilfNfa6U9MTEycI6bunJiYODaUNc9J\nLKVcAvh1AH8GwG8B+AcAvq3W+murZTIxMTFxZpi6c2Ji4hixtiXxnQA+XWv9TK31EYC/CeCbVs5j\nYmJi4twwdefExMTRYW2S+GYAv0nfP7u7NjExMTHhY+rOiYmJo8O9ldNr+q5LKfM9gBMTE5ug1loO\nLcMgpu6cmJg4GDzdubYl8bcAvIW+vwVPV8Q38K53vQsvv/wyXn75Zbz22muotZ7s38svv3xwGWZZ\njqss19fX5rVSCi4uLk6qLFu0i1U/Xj2WUlBKMX9/7bXXnumRl19+eWVVtnd0686f+Zmfcevy+vr6\nRl+L7rP6pdeH5b5MG7Zkk76QkTNTvtbYkrL2Pm/9pq/dv3//Rt1Y6XM9y+8tvcBpZeumtz30+MzU\neyutJ0+emGXi5636z+jO7LP3798P82y1cUvm3j6r7+3p6wCe9YVM+T3dKfeK7rx//35Td65tSfwF\nAF9eSnkrgN8G8K0Avk3fdHV1hQcPHqyc9cTEcaAU35j1+PHjPUpynIjqR9/35MkT9/erqytcXV09\n+/7d3/3dS0U7JFbVnaUUPH78GLU+NT7eu3cPjx8/xuXl5bPf5LNXx5eXlzd+k+fks4daK+7du4cn\nT548+6zze/ToES4vL/HgwYMbY6Knb+jn9NhiOeQe/mw9r5+xfnv8+PGz/3yPlEme1b9babb6uNSH\n3Guh1uq2JZcnW7cRWG6dPuPi4sLUdfy8Vf8Z3cnPcpvoZ+W7l6e+V7dfS2adj0D3EwA3+p33nIdS\n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\nD3eJk3zsbWMFAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 139 }, { "cell_type": "code", "collapsed": false, "input": [ "avg = IsingDeNoise(noisy, 0.5)\n", "avg[avg >= 0] = 1\n", "avg[avg < 0] = -1\n", "avg = avg.astype(np.int)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(11,6))\n", "axes[0].imshow(avg, cmap=cm.gray, aspect=\"equal\", interpolation=\"none\", vmin=-1, vmax=1)\n", "axes[1].imshow(noisy, cmap=cm.gray, aspect=\"equal\", interpolation=\"none\", vmin=-1, vmax=1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 143, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\njQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 143 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }