ReCoDE_MCMCFF/learning/01 Introduction.ipynb

629 lines
262 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "0aadee51-c8d7-4b72-b281-bf2daca49811",
"metadata": {
"tags": []
},
"source": [
"<h1 align=\"center\">Markov Chain Monte Carlo for fun and profit</h1>\n",
"<h1 align=\"center\"> 🎲 ⛓️ 👉 🧪 </h1>\n",
"\n",
"Hello and welcome to the documentation for MCMCFF! These notebooks will guide you through the process of writing a medium sized scientific software project, discussing the decision and tradeoffs made along the way.\n",
"\n",
"## Setting up your environment\n",
"\n",
"It's strongly encouraged that you follow along this notebook in an enviroment where you can run the cells yourself and change them. You can either clone this git repository and run the cells in a python environment on your local machine, or if you for some reason can't do that (because you're an a phone or tablet for instance) you can instead open this notebook in [binder](link)\n",
"\n",
"I would also suggest you setup a python environment just for this. You can use your preferred method to do this, but I will recomend `conda` because it's both what I currently use and what is recommeded by Imperial: LINK \n",
"\n",
"```bash\n",
"#make a new conda environment named recode, with python 3.9 and the packages in requirements.txt\n",
"conda env create --name recode python=3.9 --file requirements.txt\n",
"\n",
"#activate the environment\n",
"conda activate recode\n",
"```\n",
"\n",
"## The Problem\n",
"\n",
"So without further ado lets talk about the problem we'll be working on, you don't necessaryily need to understand the full details of this to learn the important lessons but I will give a quick summary here. We want to simulate a physical model called the **Ising model**, which is famous in physics because it's about the simplest thing you can come up with that displays a phase transition, a special kind of shift between two different behaviours."
]
},
{
"cell_type": "markdown",
"id": "e2e5299a-5e20-417f-a62e-ce47d018d542",
"metadata": {},
"source": [
"I'm going to weave exposition and code here so don't mind if I just take a moment to impor some packages and do some housekeeping:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "ee600e16-506b-4676-8d84-16b415338191",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# This loads some custom styles for matplotlib\n",
"import json, matplotlib\n",
"\n",
"with open(\"assets/matplotlibrc.json\") as f:\n",
" matplotlib.rcParams.update(json.load(f))\n",
"\n",
"np.random.seed(\n",
" 42\n",
") # This makes our random numbers reproducable when the notebook is rerun in order"
]
},
{
"cell_type": "markdown",
"id": "e52245f1-8ecc-45f1-8d52-337916b0ce7c",
"metadata": {},
"source": [
"We're going to be working with arrays of numbers so it will make sense to work with `Numpy` and we'll also want to plot things, the standard choice for this is `matplotlib`, though there are other options, `pandas` and `plotly` being notable ones.\n",
"\n",
"Let me quickly plot something to aid the imagination:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "7b05be8f-9edb-4742-bbfc-e892cc09b82b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"state = np.random.choice([-1, 1], size=(100, 100))\n",
"\n",
"\n",
"def show_state(state, ax=None):\n",
" if ax is None:\n",
" f, ax = plt.subplots()\n",
" ax.matshow(state, cmap=\"Greys\", vmin=-1, vmax=1)\n",
" ax.set(xticks=[], yticks=[])\n",
"\n",
"\n",
"show_state(state)"
]
},
{
"cell_type": "markdown",
"id": "9a919be9-2737-4d79-9607-4daf3b457364",
"metadata": {},
"source": [
"In my head, the Ising model is basically all about peer pressure. You're a tiny creature and you live in a little world where you can only be one of two things, up/down, left/right, in/out doesn't matter. \n",
"\n",
"But what *does matter* is that you're doing the same thing as you're neighbours. We're going to visualise this with images like the above, representing the two different camps, though at the moment what I've plotted is random, there's no peer pressure going on yet.\n",
"\n",
"The way that a physicist would quantify this peer pressure is to assign a number to each state, lower numbers meaning more of the little creatures are doing the same thing as their neighbours. We'll call this the Energy, because physicists always call things Energy, that's just what we do.\n",
"\n",
"To calculate the energy what we're gonna do is look at all the pixels/creatures, and for each one, we look at the four neighbours to the N/E/S/W, everytime we find a neighbour that agrees, we'll subtract 1 from our total and every time we find neighbours that disagree we'll add 1 to our total. Creatures at the edges will simply have fewer neighbours to worry about. \n",
"\n",
"I'll show you what the equation for this looks like, but don't worry to much about it, the word description should be enough to write some code. If we assign the ith creature the label $s_i = \\pm1$ then the energy is \n",
"$$E = \\frac{1}{N} \\sum_{(i,j)} s_i s_j$$\n",
"where the sum is over every two creatures who are neighbours and N is the number of them, so a $100\\times100$ grid would have $N = 10,000$ \n",
"\n",
"Ok let's do some little tests, let's make the all up, all down and random state and see if we can compute their energies."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "340a78e7-6c1d-4742-8dca-6d3bea492856",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1440x360 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"all_up = np.ones([100, 100])\n",
"all_down = -np.ones([100, 100])\n",
"random = np.random.choice([-1, 1], size=(100, 100))\n",
"\n",
"from matplotlib.image import imread\n",
"\n",
"custom = (\n",
" 1 - 2 * imread(\"data/test_state.png\")[:, :, 0]\n",
") # load a 100x100 png, take the red channel, remap 0,1 to -1,1\n",
"\n",
"states = [all_up, all_down, random, custom]\n",
"\n",
"f, axes = plt.subplots(ncols=4, figsize=(20, 5))\n",
"for ax, state in zip(axes, states):\n",
" show_state(state, ax=ax)"
]
},
{
"attachments": {
"c7c0ca75-61b0-4c5a-b733-3e12532c8b00.png": {
"image/png": "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Ovcf2tra0oMUDjZt2pT72hVIgAABAgQIECBAgACBoIDAN0hjgQABAgQIEJgqMDEx8ebNm9evXw8PD09djWgmCa8Lc950PHfu3MnJyYgOolQCBAgQIECAAAECBAgUCgh8CzWMCRAgQIAAgXoROHHiRBry/jJ48eJFvSg4JwECBAgQIECAAAECNScg8K25ljoQAQIECBAgUILA48ePf8l5048nT54sYQOXECBAgAABAgQIECBAII8CAt88dkVNBAgQIECAQKUFRkdHk380l4a8hYP29vZKP93+BAgQIECAAAECBAgQqJCAwLdCsLYlQIAAAQIE8i7Q2dlZmPOm44aGhtjfUJx3evURIECAAAECBAgQIFAxAYFvxWhtTIAAAQIECORb4OzZs2nI+8vgzp07+a5ddQQIECBAgAABAgQIECguIPAt7mKWAAECBAgQqHmBly9f/pLzph+7urpq/vgOSIAAAQIECBAgQIBATQoIfGuyrQ5FgAABAgQIlCSwatWqNOQtHLS2to6NjZW0hYsIECBAgAABAgQIECCQJwGBb566oRYCBAgQIECgugL9/f2FOW/h+O7du9WtxdMIECBAgAABAgQIECBQBgGBbxkQbUGAAAECBAjEK7B169bCnDcdr1+/Pt5DqZwAAQIECBAgQIAAgboVEPjWbesdnAABAgQIEPifwNDQUEtLS5rzFg7u37/PiAABAgQIECBAgAABAnEJCHzj6pdqCRAgQIAAgfILXL16tTDnTceLFi0aGRkp//PsSIAAAQIECBAgQIAAgYoJCHwrRmtjAgQIECBAIB6Bnp6eNOctHBw8eDCeQ6iUAAECBAgQIECAAAECfwt8/REQIECAAAECBP6emJjYv39/YdSbjp8/fw6IAAECBAgQIECAAAECsQgIfGPplDoJECBAgACBygqMj48fOnQozXnTwfHjxyv7YLsTIECAAAECBAgQIECgfAIC3/JZ2okAAQIECBCIXGBycvLUqVONjY1p2psMVq5cGfmxlE+AAAECBAgQIECAQB0JCHzrqNmOSoAAAQIECJQiMDg4uHDhwjTzXbBgQSl3uYYAAQIECBAgQIAAAQJ5EBD45qELaiBAgAABAgTyJZC83uHZs2eXLl06duzY06dP81WcaggQIECAAAECBAgQIBAWEPiGbawQIECAAAECBAgQIECAAAECBAgQIEAgKgGBb1TtUiwBAgQIECBAgAABAgQIECBAgAABAgTCAgLfsI0VAgQIECBAgAABAgQIECBAgAABAgQIRCUg8I2qXYolQIAAAQIECBAgQIAAAQIECBAgQIBAWEDgG7axQoAAAQIECBAgQIAAAQIECBAgQIAAgagEBL5RtUuxBAgQIECAAAECBAgQIECAAAECBAgQCAsIfMM2VggQIECAAAECBAgQIECAAAECBAgQIBCVgMA3qnYplgABAgQIECBAgAABAgQIECBAgAABAmEBgW/YxgoBAgQIECBAgAABAgQIECBAgAABAgSiEhD4RtUuxRIgQIAAAQIECBAgQIAAAQIECBAgQCAsIPAN21ghQIAAAQIECBAgQIAAAQIECBAgQIBAVAIC36japVgCBAgQIECAAAECBAgQIECAAAECBAiEBQS+YRsrBAgQIECAAAECBAgQIECAAAECBAgQiEpA4BtVuxRLgAABAgQIECBAgAABAgQIECBAgACBsIDAN2xjhQABAgQIECBAgAABAgQIECBAgAABAlEJCHyjapdiCRAgQIAAAQIECBAgQIAAAQIECBAgEBYQ+IZtrBAgQIAAAQIECBAgQIAAAQIECBAgQCAqAYFvVO1SLAECBAgQIECAAAECBAgQIECAAAECBMICAt+wjRUCBAgQIECAAAECBAgQIECAAAECBAhEJSDwjapdiiVAgAABAgQIECBAgAABAgQIECBAgEBYQOAbtrFCgAABAgQIECBAgAABAgQIECBAgACBqAQEvlG1S7EECBAgQIAAAQIECBAgQIAAAQIECBAICwh8wzZWCBAgQIAAAQIECBAgQIAAAQIECBAgEJWAwDeqdimWAAECBAgQIECAAAECBAgQIECAAAECYQGBb9jGCgECBAgQIECAAAECBAgQIECAAAECBKISEPhG1S7FEiBAgAABAgQIECBAgAABAgQIECBAICwg8A3bWCFAgAABAgQIECBAgAABAgQIECBAgEBUAgLfqNqlWAIECBAgQIAAAQIECBAgQIAAAQIECIQFBL5hGysECBAgQIAAAQIECBAgQIAAAQIECBCISkDgG1W7FEuAAAECBAgQIECAAAECBAgQIECAAIGwgMA3bGOFAAECBAgQIECAAAECBAgQIECAAAECUQkIfKNql2IJECBAgAABAgQIECBAgAABAgQIECAQFqhe4NvX1/cfPwQIECBAgAABAgQIECBAgAABAgQIECBQMYF9+/b99fPn3Llz4WT4Nyt/FV1vb2//ubnfBAgQIECAAAECBAgQIECAAAECBAgQIFA9gfIHvhs2bKhe+Z5EgAABAgQIECBAgAABAgQIECBAgAABAj8Fzp8/X/R7uqVMFv+Gb3d398/N/SZAgAABAgQIECBAgAABAgQIECBAgACB6gk8efKklGy36DXFA9+RkZGjR49u3Lgx+aqvHwIECBAgQIAAAQIECBAgQIAAAQIECBCogkBHR8eVK1eKJrklThYPfEu82WUECBAgQIAAAQIECBAgQIAAAQIECBAgkB8BgW9+eqESAgQIECBAgAABAgQIECBAgAABAgQIZBIQ+GbiczMBAgQIECBAgAABAgQIECBAgAABAgTyIyDwzU8vVEKAAAECBAgQIECAAAECBAgQIECAAIFMAgLfTHxuJkCAAAECBAgQIECAAAECBAgQIECAQH4EBL756YVKCBAgQIAAAQIECBAgQIAAAQIECBAgkElA4JuJz80ECBAgQIAAAQIECBAgQIAAAQIECBDIj4DANz+9UAkBAgQIECBAgAABAgQIECBAgAABAgQyCQh8M/G5mQABAgQIECBAgAABAgQIECBAgAABAvkREPjmpxcqIUCAAAECBAgQIECAAAECBAgQIECAQCYBgW8mPjcTIECAAAECBAgQIECAAAECBAgQIEAgPwIC3/z0QiUECBAgQIAAAQIECBAgQIAAAQIECBDIJCDwzcTnZgIECBAgQIAAAQIECBAgQIAAAQIECORHQOCbn16ohAABAgQIECBAgAABAgQIECBAgAABApkEBL6Z+NxMgAABAgQIECBAgAABAgQIECBAgACB/AgIfPPTC5UQIECAAAECBAgQIECAAAECBAgQIEAgk8B/AQCefQ3INdRdAAAAAElFTkSuQmCC"
}
},
"cell_type": "markdown",
"id": "2ed02839-81c0-45ff-87c9-a429ea8ccf51",
"metadata": {},
"source": [
"If you stare at the first two long enough you'll realise we can figure out the energy of all_up and all_down without writing any code at all:\n",
"\n",
"<div style=\"margin:auto;max-width:800px;\">\n",
"<img src=\"attachment:c7c0ca75-61b0-4c5a-b733-3e12532c8b00.png\"/>\n",
"</div>\n",
"\n",
"So we know that for the first two:\n",
"$$E = \\frac{1}{L^2} (4(L-2)^2 + 12(L-2) + 8)$$\n",
"\n",
"And for the random case we can make a pretty good guess that it should be zero on average. And the last we will just use to as a testcase."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "c2e63baa-8d97-41f3-9070-013aa6bf83bd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"For L = 100, We predict E = -3.96\n"
]
}
],
"source": [
"def E_prediction_all_the_same(L):\n",
" return -(4 * (L - 2) ** 2 + 12 * (L - 2) + 8) / L**2\n",
"\n",
"\n",
"L = 100\n",
"print(f\"For L = {L}, We predict E = {E_prediction_all_the_same(L)}\")"
]
},
{
"cell_type": "markdown",
"id": "8351475b-73cb-4cd9-9fe8-3b60af0b5a6a",
"metadata": {},
"source": [
"## Exercise 1: Write a function to compute the energy of a state\n",
"\n",
"See if you can write a function that calculates the energy and reproduces all the above cases. "
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "36ac021b-1da4-48d1-9cad-6ae3ba1e7e61",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAJMCAYAAAAYBLcfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+uElEQVR4nO3debR1R1nn8d8TAgQZAggKCA0spSEomobX96XBDkgQHJYKCIKKaCu6lGArii22NgKuJWldq21tAyLYglOYVURlMBjCEHg5DIGEqVFAUUBEZki7SKr/2PuQ8x7qVD01nHPPrfv9rHVX7rvP3lW1h7Pz7Kpn17UQggAAAEZz2kE3AAAAYBsIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJAIcgAAwJBOL1n5hS98YfjQhz60rbYAOCC3uMUt9KAHPcgOuh3bdMkll4QzzjjjoJsBoLMrr7xS55xzTvT+VRTkfOhDH9J5553Xp1UA9sYFF1xw0E3YujPOOEPHjx8/6GYA6OzkyZMbP2O4CgAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkg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9PZ5m0eb2aM3H4oveJemMfKvmv/9/Zq66Jf7fbf59+9ylLX0HE03tf8k6SXzsjMlfXDOL/h+SbGx//dJOtvMTpufUI/Py18n6Z7LNprZ9c0s9yT1IkmPmK+zu0v6RAjhg6srzP/+pJndfb75PkLXXBcYH/cv7l8x3L8OuR45OefPF+YjJf1MCOFVmr6svziv/xlJx216te4+mpLFpGm894fN7DJN49bfOS//SUnfaGZv0/SkcOcQwkc1de9dbma/FkJ4maQ/lnTpvN7zJd0whPAmTRflZZq6Gt+waSdCCO+Y2/aKEMIykv9VSU82szdrcy/XCyTd1Myu0DSO/+65vLfP+/wyM3urpieY5ZfeM6Z9fUkvmrd9i6au4t+et/8xM/uxeb2zJF1uZu/SlHX/kytl/ISkP5rLOFvXjMnfSdJHM/UrhHClpi/08+bjevWyDZKeqKnrdqGpi9brZZLuJemvQwj/Ni97iqQfmM/9nRR/knqNpqe8t2sa837T3MaPaLqBXzjv56VzGakx7b/U9LT4HklP18qbLjZ1my89StIz5vX+VtM1hLFw/+L+xf3rCLEpEXuLFZh9OoSQyx7HFtk0R8aDVr6kABy4fx087l9oQZADABtw/wIOt60HOQAAAAeBv10FAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGRJADAACGdHrJypdcckk444wztFgsvrDs2LFjknTKsvXPPJ+nLLf1rp/btqW8HnV5648ds5hUOd5z5S0/dR5rznHpsejVFk95sTbVXOcxLdee91jE6tq07S1ucQs96EEPsupGHQLL+xeAsVx55ZU655xzovcvCyG4C3rKU54SzjvvPK1uY+a7Ly63ia3fq7xUHTVtSemx36n1c9vE2tmy3971UvXG2r7NdpZuW3OdxbZd13IN1pTnPabeOiTpggsu0KMe9aihg5yTJ0+G48ePH3QzAHR28uRJHT9+PHr/YrgKAAAMiSAHAAAMqSgn59ixYxu7wHNDAanue293f244xDtEUjMMsu12psrJtbd0WCu33nr7cscuVkfpkEqsjprj0zIE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\n",
"text/plain": [
"<Figure size 720x720 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# you are welcome to solve this in any way you like, I've just filled out a very simple way to do it\n",
"def energy(state):\n",
" E = 0\n",
" N, M = state.shape\n",
" for i in range(N):\n",
" for k in range(M):\n",
" # your code goes here\n",
" pass\n",
" return E / (N * M)\n",
"\n",
"\n",
"expected_values = [\n",
" E_prediction_all_the_same(100),\n",
" E_prediction_all_the_same(100),\n",
" 0,\n",
" \"???\",\n",
"]\n",
"\n",
"f, axes = plt.subplots(ncols=2, nrows=2, figsize=(10, 10))\n",
"axes = axes.flatten()\n",
"for ax, state, exp_value in zip(axes, states, expected_values):\n",
" show_state(state, ax=ax)\n",
" ax.text(\n",
" 0,\n",
" -0.1,\n",
" f\"Expected Value: {exp_value}, Your value: {energy(state)}\",\n",
" transform=ax.transAxes,\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0ad5b92f-521f-48c2-9f5b-7950f5a3f931",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAJMCAYAAAAYBLcfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAABCGUlEQVR4nO3de7htV1nf8d9LAjnhFqAgoFjCQzEEBVI8noOoGAkXWx/lYhAvSFHBB4m2oFSxtBRsH0lrK6Xl4KUoAavhjmJUAgRDuB825ApJKNWgqJFyk4ukLcnoH3OuZGVlrDHecVlr7z3O9/M8+8nOXHOOMeZlzf3OMd45joUQBAAAMJpb7XYDAAAANoEgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADIkgBwAADOn4kpXf+MY3hmuvvXZTbQGwS+5xj3voCU94gu12OzbpoosuCgcOHNjtZgDo7LrrrtPDH/7w6P2rKMi59tprddZZZ/VpFYA948iRI7vdhI07cOCADh06tNvNANDZ0aNH137GcBUAABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgSQQ4AABgS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\n",
"text/plain": [
"<Figure size 720x720 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"## Solution\n",
"\n",
"\n",
"def energy(state):\n",
" E = 0\n",
" N, M = state.shape\n",
" for i in range(N):\n",
" for j in range(M):\n",
" # handle the north and south neighbours\n",
" for di in [1, -1]:\n",
" if 0 <= (i + di) < N:\n",
" E -= state[i, j] * state[i + di, j]\n",
"\n",
" # handle the east and west neighbours\n",
" for dj in [1, -1]:\n",
" if 0 <= (j + dj) < M:\n",
" E -= state[i, j] * state[i, j + dj]\n",
"\n",
" return E / (N * M)\n",
"\n",
"\n",
"expected_values = [\n",
" E_prediction_all_the_same(100),\n",
" E_prediction_all_the_same(100),\n",
" 0,\n",
" \"???\",\n",
"]\n",
"\n",
"f, axes = plt.subplots(ncols=2, nrows=2, figsize=(10, 10))\n",
"axes = axes.flatten()\n",
"for ax, state, exp_value in zip(axes, states, expected_values):\n",
" show_state(state, ax=ax)\n",
" ax.text(\n",
" 0,\n",
" -0.1,\n",
" f\"Expected Value: {exp_value}, Your value: {energy(state)}\",\n",
" transform=ax.transAxes,\n",
" )"
]
},
{
"cell_type": "markdown",
"id": "84ee0a62-6ab1-4565-a236-2ccfcc378acc",
"metadata": {},
"source": [
"It's a bit tricky to know what to do with the random value, let's try running it 100 times and see what we get:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "686782b5-aa37-4084-9786-538fdc89fef1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"mean = -2.399999999999989e-05, standard error = 0.002981907148118465\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"L = 100 # How large the system should be\n",
"N = 100 # How many random samples to use\n",
"energies = [energy(np.random.choice([-1, 1], size=(L, L))) for _ in range(N)]\n",
"plt.hist(energies)\n",
"print(f\"mean = {np.mean(energies)}, standard error = {np.std(energies) / np.sqrt(N)}\")"
]
},
{
"cell_type": "markdown",
"id": "8da38c5b-f166-4530-b046-3600b4d84c5d",
"metadata": {},
"source": [
"If you run this a few times you'll see the mean is usually within a few standard errors of 0, which gives us some confidence. In the testing section we will discuss how we might go about doing automated tests of random variables like this. "
]
},
{
"cell_type": "markdown",
"id": "3bd3831b-f8de-4a8e-aaf6-7aa158cf9d82",
"metadata": {},
"source": [
"### Making it a little faster\n",
"\n",
"This project is not intended to focus on optimising for performance but it is worth putting a little effort into making this function faster so that we can run experiments more quickly later.\n",
"\n",
"The main thing that slows us down here is that we've written a 'tight loop' in pure python, the energy function is just a loop over the fundamental operation:\n",
"```python\n",
"E -= state[i,j] * state[i+di, j]\n",
"```\n",
"which in theoy only requires a few memory load operations, a multiply, an add and a store back to memory (give or take). However because Python is such a dynamic language, it will have to do extra things like check the type and methods of `state` and `E`, invoke their array access methods `object.__get__`, etc etc. We call this extra work overhead.\n",
"\n",
"In most cases the ratio of overhead to actual computation is not too bad, but here because the fundamental computation is so simple it's likely the overhead accounts for much more of the overal time.\n",
"\n",
"In scientific python like this there are usually two main options for reducing the overhead:\n",
"\n",
"#### Using Arrays\n",
"One way is we work with arrays of numbers and operations defined over those arrays such as `sum`, `product` etc. `Numpy` is the canonical example of this in Python but many machine learning libraries are essentually doing a similar thing. We rely on the library to implement the operations efficiently and try to chain those operations together to achieve what we want. This imposes some limitations on the way we can write our code.\n",
"\n",
"#### Using Compilation\n",
"The alternative is that we convert our Python code into a more efficient form that incurs less overhead. This requires a compilation or transpilation step and imposes a different set of constraints on the code.\n",
"\n",
"It's a little tricky to decide which of the two approaches will work best for a given problem. My advice would be to have some familiarity with both but ultimatly to use what makes your development experience the best, since you'll likely spend more time writing the code than you will waiting for it to run!"
]
},
{
"cell_type": "markdown",
"id": "6b2ed23c-32f2-40af-bf45-e60004c275a2",
"metadata": {},
"source": [
"## Exercise 2: Write a faster version of `energy(state)`\n",
"\n",
"You can use `numpy`, `numba`, `cython`, or anything else, by what factor can you beat the naive approach? Numba is probably the easiest here."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "40386cda-cc14-4fdd-8f9f-71840d1ebb40",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Naive baseline implementation\n",
"70.3 ms ± 1.04 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n",
"\n",
"Your version\n",
"70.4 ms ± 2.31 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n",
"Your speedup: 1x !\n"
]
}
],
"source": [
"def test_energy_function(energy_function):\n",
" assert np.all(energy_function(state) == energy(state) for state in states)\n",
"\n",
"\n",
"def time_energy_function(energy_function):\n",
" return [energy_function(state) for state in states]\n",
"\n",
"\n",
"def your_faster_energy_function(state):\n",
" return energy(\n",
" state\n",
" ) # <-- replace this with your implementation and compare how fast it runs!\n",
"\n",
"\n",
"print(\"Naive baseline implementation\")\n",
"test_energy_function(\n",
" energy\n",
") # this should always pass because it's just comparing to itself!\n",
"naive = %timeit -o time_energy_function(energy)\n",
"\n",
"print(\"\\nYour version\")\n",
"test_energy_function(your_faster_energy_function)\n",
"yours = %timeit -o time_energy_function(your_faster_energy_function)\n",
"print(f\"Your speedup: {naive.best/yours.best :.0f}x !\")"
]
},
{
"cell_type": "markdown",
"id": "a27bb821-c33f-4966-8676-4295cfd695ab",
"metadata": {},
"source": [
"## Solution 2"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "c96720d4-2c0b-4fa5-b9ce-4fc7be533a62",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Naive baseline implementation\n",
"72.3 ms ± 703 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n",
"\n",
"Numba version\n",
"188 µs ± 4.47 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n",
"Numba Speedup: 391x !\n",
"\n",
"Numpy version\n",
"172 µs ± 3.33 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n",
"Numpy Speedup: 424x !\n"
]
}
],
"source": [
"def test_energy_function(energy_function):\n",
" return [energy_function(state) for state in states]\n",
"\n",
"\n",
"from numba import jit\n",
"\n",
"\n",
"@jit(nopython=True)\n",
"def numba_energy(state):\n",
" E = 0\n",
" N, M = state.shape\n",
" for i in range(N):\n",
" for j in range(M):\n",
" # handle the north and south neighbours\n",
" for di in [1, -1]:\n",
" if 0 <= (i + di) < N:\n",
" E -= state[i, j] * state[i + di, j]\n",
"\n",
" # handle the east and west neighbours\n",
" for dj in [1, -1]:\n",
" if 0 <= (j + dj) < M:\n",
" E -= state[i, j] * state[i, j + dj]\n",
"\n",
" return E / (N * M)\n",
"\n",
"\n",
"def numpy_energy(state):\n",
" E = -np.sum(state[:-1, :] * state[1:, :]) - np.sum(state[:, :-1] * state[:, 1:])\n",
" return 2 * E / np.product(state.shape)\n",
"\n",
"\n",
"print(\"Naive baseline implementation\")\n",
"naive = %timeit -o time_energy_function(energy)\n",
"\n",
"print(\"\\nNumba version\")\n",
"test_energy_function(numba_energy)\n",
"numba = %timeit -n 100 -o time_energy_function(numba_energy)\n",
"print(f\"Numba Speedup: {naive.best/numba.best :.0f}x !\")\n",
"\n",
"print(\"\\nNumpy version\")\n",
"test_energy_function(numpy_energy)\n",
"numpy = %timeit -n 100 -o time_energy_function(numpy_energy)\n",
"print(f\"Numpy Speedup: {naive.best/numpy.best :.0f}x !\")"
]
},
{
"cell_type": "markdown",
"id": "7d80c912-3773-4c53-a4e9-3f7ee66e2e0f",
"metadata": {},
"source": [
"While writing the above faster versions I realised two things, first there was a bug in my code! I had written \n",
"```python\n",
"for dj in [1,-1]:\n",
" if 0 <= (j + dj) < M:\n",
" E -= state[i,j] * state[i+di, j]\n",
"```\n",
"where I of course meant to have:\n",
"```python\n",
"for dj in [1,-1]:\n",
" if 0 <= (j + dj) < M:\n",
" E -= state[i,j] * state[i, j+dj]\n",
"```\n",
"I found this while writing the numpy version because the two functions were not giving the same results, I didn't pick it up from writing the numba code because as you can see I just copied the implementation over. So the first lesson is that simple test cases don't always catch even relatively obvious bugs. \n",
"\n",
"The second thing was that even my naive function was doing more work than it needed to! Because if the symmetry of how two neighbours talks to each other, we can rewrite the code as:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "755ec34c-4975-467f-a559-f585f9d6a42f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Improved Naive version\n",
"32.2 ms ± 986 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n",
"Speedup: 2x !\n"
]
}
],
"source": [
"def energy2(state):\n",
" E = 0\n",
" N, M = state.shape\n",
" for i in range(N):\n",
" for j in range(M):\n",
" # handle the north and south neighbours\n",
" if 0 <= (i + 1) < N:\n",
" E -= state[i, j] * state[i + 1, j]\n",
"\n",
" # handle the east and west neighbours\n",
" if 0 <= (j + 1) < M:\n",
" E -= state[i, j] * state[i, j + 1]\n",
"\n",
" return 2 * E / (N * M)\n",
"\n",
"\n",
"print(\"\\nImproved Naive version\")\n",
"energy2(states[0]) # run the function once to let numba compile it before timing it\n",
"e2 = %timeit -o test_energy_function(energy2)\n",
"print(f\"Speedup: {naive.best/e2.best :.0f}x !\")"
]
},
{
"cell_type": "markdown",
"id": "5d1874d4-4585-49ed-bc6f-b11c22231669",
"metadata": {},
"source": [
"## Conclusion\n",
"So far we've discussed the problem we want to solve, written a little code, tested it a bit and made some speed improvements.\n",
"\n",
"In the next notebook we will package the code up into a little python package, this is has two big benefits to use: \n",
"1. I won't have to redefine the energy function we just wrote in the next notebook \n",
"1. It will help with testing and documenting our code later"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:recode]",
"language": "python",
"name": "conda-env-recode-py"
},
"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.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}