{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Inferlo and libDAI comparison\n", "\n", "In this Notebook we compare several algorithms in InferLO and libDAI in terms of accuracy and performance.\n", "\n", "This notebook is also useful as example of how to use libDAI interop." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from matplotlib import pyplot as plt\n", "import inferlo\n", "from inferlo.pairwise.testing import tree_potts_model, grid_potts_model, cross_potts_model, assert_results_close\n", "from inferlo.interop import LibDaiInterop\n", "import time" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "class Charts:\n", " def __init__(self):\n", " self.data = dict()\n", " \n", " def add_point(self, alg_name, gr_size, time=None, error=None, acc=None):\n", " data = {}\n", " if time is not None:\n", " data['Time, s']=time\n", " if error is not None:\n", " data['Error']=error \n", " if acc is not None:\n", " data['Accuracy']=acc \n", " for metric, value in data.items():\n", " self.data.setdefault(metric, dict()).setdefault(alg_name, []).append((gr_size, value))\n", " \n", "\n", " def plot(self):\n", " cnt = len(self.data)\n", " fig, axs = plt.subplots(1, cnt, figsize=(8*cnt,5))\n", " if (cnt==1):\n", " axs = [axs]\n", " i = 0\n", " for metric, charts in self.data.items():\n", " for alg_name in charts:\n", " x, y = zip(*charts[alg_name])\n", " axs[i].plot(x, y, label=alg_name)\n", " axs[i].set_xlabel('Model size')\n", " axs[i].set_ylabel(metric)\n", " axs[i].legend(loc=2)\n", " i += 1\n", " plt.show()\n", " \n", "libdai = LibDaiInterop()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Marginal probabilities on trees\n", "\n", "We solve a problem of finding marginal probabilities for random pairwise model on a tree with variables taking 5 possible values. We use 2 exact algorithms: 'tree_dp' (dynamic programming on a tree) from InferLO and 'BP' \n", "([belief propagation](https://staff.fnwi.uva.nl/j.m.mooij/libDAI/doc/classdai_1_1BP.html)) from libDAI. We check that they give the same results and measure running time." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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PXrwzDPP8OSTT9aUif3HP/7BZZddxrXXXstLL73UrBgqKiooLCykc+fOJ2wbOXIkUVFR5OTkNOucIoIbQd/cAXaNMQZOvQlu+yck94UF18I7d0F5cdPHivi0n2ly794N+9a17jl7jYWLHjupQ5cvX8769evp0KEDp512GpdccgkTJ55YjGjw4MFUVlZy4MABevbsyYIFC3jggQfo2bMnV111Fffee2+T13r55ZdZunQpe/fuJTU1lcsuu+yEfb7++msiIiLo3r37SX0ekXYtNwNGXdH65+2eCrd+BB89Al896QbyXfqr1r+OhCW14D0ybdo0unbtSnx8PFdeeaVfS6fu37+fjIwMpk6dSmpqKtHR0axfv77J46q76Pft28fYsWN5/PHHa7b9+te/Ji0tjbvuuouXX35ZK7yJNFdhLhQfbvn994ZExcKMR+GU62HtK1BWGJjrSNhpPy34k2xpB0rdRNpQYt22bRuRkZH06NGDJ598ksOHDzNo0CAAjhw5woIFC3j00Udr9s/Kyqppod9+++3HLf1qjOGyyy7jd7/7HXfffTfg7sHfddddrfrZRNqV6gF2rdlFX58J8+DbF2HDGzD+hsBeS8KCWvAe+eCDDzh06BDFxcW88cYbTJky5YR9Dh48yO233878+fMxxrBgwQLee+89duzYwY4dO1i1atUJ9+H79etXs0Ts7bfffsI5ly5dypAhWpNapNW0dIqcv/qfAV2GwOq/BfY6EjbaTws+xEyaNImrrrqK7Oxs5s6dW3P/vbi4mLS0NMrLy4mKimLevHnceeed7Nixg507dx43PW7QoEEkJyfz9ddfN3qt6nvwVVVVpKSk8Pzzzwfyo4m0L7kZEBENnQYE9jrGwPi58NHDbtR+twB/oZA2T8vFSsjR303alJducK34+csDf62j++BXo+DMf4Vp9c++kfZFy8WKiARKTkbg779XS+oFw6bDtwu0zKw0SQleRORkVVa4OvRdgziuZcI8KNgPmR8E75rtybqF8O3LTe/XBijBi4icrLydUFUOXYPUggfXgk/oAd+8ELxrthdVlfDePfD+ve55Gxf2CT5cxhi0F/p7SZuSm+keg9VFD25hmlOuhS3vwdH9wbtue5D1NRQegKKcsFjRL6wTfFxcHLm5uUoabYS1ltzc3OPm7ouEtJopckFM8ADj54GthLXNK1ctTUh/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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "charts = Charts()\n", "\n", "for gr_size in np.array(range(1, 20)) * 50:\n", " model = tree_potts_model(gr_size=gr_size, al_size=5)\n", " t0 = time.time()\n", " true_result = model.infer(algorithm='tree_dp')\n", " charts.add_point(\"inferlo-tree_dp\", gr_size, time=time.time() - t0)\n", " \n", " result = libdai.infer(model, algorithm='BP')\n", " assert_results_close (true_result, result, log_pf_tol=1e-5)\n", " charts.add_point(\"libDAI-BP\", gr_size, libdai.true_running_time)\n", " \n", "charts.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Maximal likelihood on trees\n", "\n", "We solve a problem of finding most probable state for random pairwise model on a tree with variables taking 5 possible values. We use 2 exact algorithms: 'tree_dp' (dynamic programming on a tree) from InferLO and 'BP' \n", "([belief propagation](https://staff.fnwi.uva.nl/j.m.mooij/libDAI/doc/classdai_1_1BP.html)) from libDAI. We check that they give the same results and measure running time." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAE9CAYAAADnDXB4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXxU9b3/8dc3e0jYCUvCLvsmhIALuFuXKqJCBfdWrLWtt1Wvt7/a1vVe721ra23VtnrVui+4o9W6VL2KVjAIEhaRRZYAgUBYsm/z/f3xnQkhJCHAnDkzk/fz8cgjM2fOzHyIMe/5nu9mrLWIiIhIfEnwuwAREREJPwW8iIhIHFLAi4iIxCEFvIiISBxSwIuIiMQhBbyIiEgcSvK7gHDp0aOHHThwoN9liIiIRMyiRYt2WGuzmnvM04A3xpwF/BFIBB621v66yeM3AlcDdUAxcJW1dkPwsXqgIHjqRmvtea2918CBA8nPzw/zv0BERCR6GWM2tPSYZwFvjEkEHgC+BRQCnxtj5llrVzQ6bTGQZ62tMMb8EPgtMCv4WKW1drxX9YmIiMQzL/vgJwNrrLXrrLU1wHPA9MYnWGs/sNZWBO9+BvT1sB4REZF2w8uAzwE2NbpfGDzWkjnAW43upxlj8o0xnxljzm/uCcaYa4Ln5BcXFx95xSIiInEiKgbZGWMuA/KAkxodHmCt3WyMGQy8b4wpsNaubfw8a+1DwEMAeXl5ByyqX1tbS2FhIVVVVR5WL+GUlpZG3759SU5O9rsUEZGY5mXAbwb6NbrfN3hsP8aY04FfAidZa6tDx621m4Pf1xljPgQmAGubPr81hYWFdOzYkYEDB2KMOfR/gUSUtZadO3dSWFjIoEGD/C5HRCSmeXmJ/nNgqDFmkDEmBZgNzGt8gjFmAvAgcJ61dnuj412NManB2z2AKUDjwXltUlVVRffu3RXuMcIYQ/fu3XXFRUQkDDxrwVtr64wx1wFv46bJPWqtXW6MuRPIt9bOA+4GMoEXgiEcmg43EnjQGBPAfQj5dZPR922mcI8t+u8lIhIenvbBW2vfBN5scuzWRrdPb+F5nwJjvaxNREQknmmpWo8df/zxBz3n448/ZvTo0YwfP57Kyso2v/bAgQPZsWNHm89fsmQJb7755sFPDKOTTz5ZCxCJiPhAAe+xTz/99KDnPP3009x8880sWbKE9PT0g55vrSUQCBxyLa0FfF1d3SG/nohI3NmxBnas9ruKsFDAeywzMxOADz/8kJNPPpmZM2cyYsQILr30Uqy1PPzww8ydO5dbbrmFSy+9FIC7776bSZMmMW7cOG677TYA1q9fz/Dhw7niiisYM2YMmzZt2u997rnnHsaMGcOYMWO49957D6ijpqaGW2+9leeff57x48fz/PPPc/vtt3P55ZczZcoULr/8coqLi5kxYwaTJk1i0qRJfPLJJwCUl5dz1VVXMXnyZCZMmMBrr73W4r+3srKS2bNnM3LkSC644IL9rkhkZmZyww03MHr0aE477TS0doGIRBVr4bmL4aU5flcSFlExDz4S7nh9OSu27A3ra47K7sRt00a3+fzFixezfPlysrOzmTJlCp988glXX3018+fP59xzz2XmzJm88847rF69moULF2Kt5bzzzuOjjz6if//+rF69mscff5xjjz12v9ddtGgRf/vb31iwYAHWWo455hhOOukkJkyY0HBOSkoKd955J/n5+dx///0A3H777axYsYL58+eTnp7OJZdcwg033MDUqVPZuHEjZ555JitXruSuu+7i1FNP5dFHH2X37t1MnjyZ008/nYyMjAP+jX/5y1/o0KEDK1euZOnSpeTm5jY8Vl5eTl5eHn/4wx+48847ueOOOxpqETnAqrfg67dh2oEfWEU8UZgPO74Gkwi1lZB88Cuq0azdBHw0mDx5Mn37utV4x48fz/r165k6dep+57zzzju88847DeFcVlbG6tWr6d+/PwMGDDgg3AHmz5/PBRdc0BC4F154IR9//PF+Ad+S8847r6Fb4L333mPFin2TFfbu3UtZWRnvvPMO8+bN43e/+x3gph9u3LiRkSNHHvB6H330ET/5yU8AGDduHOPGjWt4LCEhgVmz3FYDl112GRdeeOFB65N2bMnTsPJ1OPVXkNHD72qkPVjytPtu62HrUuh/jL/1HKF2E/CH0tL2SmpqasPtxMTEZvu9rbXcfPPN/OAHP9jv+Pr165ttMbfmlVde4Y477gDg4Ycfbvacxq8ZCAT47LPPSEtLO6Cml156ieHDhx/S+x+MpsRJq4qCm0luWQxDv+VvLRL/aith2csw+GRY9yFsXhTzAa8++Chz5pln8uijj1JWVgbA5s2b2b59e6vPOeGEE3j11Vep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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "charts = Charts()\n", "\n", "for gr_size in np.array(range(1, 20)) * 50:\n", " model = tree_potts_model(gr_size=gr_size, al_size=5)\n", " t0 = time.time()\n", " true_result = model.max_likelihood(algorithm='tree_dp')\n", " charts.add_point(\"inferlo-tree_dp\", gr_size, time=time.time() - t0)\n", " \n", " result = libdai.max_likelihood(model, algorithm='BP')\n", " assert np.allclose(true_result, result)\n", " charts.add_point(\"libDAI-BP\", gr_size, libdai.true_running_time)\n", " \n", "charts.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Marginal probabilities with junction tree\n", "\n", "We generate binary graphical model on a \"cross\" graph, which is graph of bounded treewidth, and find marginal probabilities for it using junction tree algorithms from InferLO and libDAI ([JTREE](https://staff.fnwi.uva.nl/j.m.mooij/libDAI/doc/classdai_1_1JTree.html)).\n", "\n", "We check that results are identical and plot running time." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "charts = Charts()\n", "for length in np.array(range(2, 7)) * 10:\n", " model = cross_potts_model(length, width=5, al_size=2, seed=0)\n", " gr_size = model.gr_size\n", " \n", " t0 = time.time()\n", " result1 = model.infer(algorithm='junction_tree')\n", " charts.add_point(\"inferlo\", gr_size, time=time.time()-t0)\n", " \n", " result2 = libdai.infer(model, algorithm='JTREE')\n", " charts.add_point(\"libDAI\", gr_size, time=libdai.true_running_time)\n", " \n", " inferlo.pairwise.testing.assert_results_close(result1, result2, log_pf_tol=1e-7)\n", " \n", "charts.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Marginal probabilities for the grid graph\n", "\n", "We consider binary pairwise model on a grid of size 5xN.\n", "\n", "We use different (exact and approximate) InferLO and libDAI algorithms to calculate marginal probabilities. We measure running time and error. Error is maximal difference betwen true and calculated marginal probability over all variables." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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89h0voAhnh68M3pwr/V2LTyfyVfv7WDGilXo+7FYUBTlWSABeKvupQcURZkshHi4G8PqHGw1gPJDX2o7cQrYVpURKxrQ6NudgXX2v8pexb6FwWAgISGBhISERpY8Gp2GKo8qkhKSiDREcvr0adcAprKyMgCCg4MZP348cXFxREVFyQy9RNIJtOa3aCvwF+B/677+HtgOSAErkUh6NJUHDpK79hEM4x9A6xNM0IpRuIX3sT7Pkky1TPjrN9WewavnwpRkGDjKtUmmuZakb7M4VlHdq71dq0pL+Oydtzjx33/jbjRSeD6TsKuGdndY3clMYIwQwgGgKMr/AV8DfUPA6tzaNg24CQICAjh37hzp6emkpKSwY8cOtm7dyuHDh9m4cWOj7bXhoxk57CqsQvWcXbJkCcnJyQ2yt3PnziU/P58vvvhCzcAqWlKeeBI3NzeWLl3qEijjx4+ntrYWk8mE2WwmPFwtL921axeJiYl4e3ujKAr+/v688cYbREVFERwczJkzZ/D39ycvL4+wsDD279/PlClTAFUMnT59mg0bNvDqq68SHBxMTU0NN9xwA5s2bUKj0bB06VI++eQTfH190Wg0bNq0yeUrL+kY9S15vjj5Ba99+BpR1VHk7svl2X3PAmrpemxsLNdff73MskokXURrVoYgIcQ7gAOgbnBT1xc39zK8vNSb4gsXLrBgwQIAtm7dyqpVq5rcXqvVusa1jx49mt///veNfO3mzp3bwA8WICUlhd/97ndNHlNRFBYtWuT62mazERwczKxZs1zxOHs4xowZw5IlS9p3sRJJL6D077vI+cUvMUx4AI13CEHLR+Ie1ftn27goOAU7V8Ir18LRN2D0nbDqMPzkLw3E67v5JqZ99R2Z5lq2jIjm+SGRvU682iwWDu36G1seXEnax3u55pZZLH/l1f4uXp3Uvzv27bYoOhtbTYfKh+vjtNJ55513WtzWYPDg2H928O2337J3714++OADHn/8cdf7paWlHDlyhLKyMtLT09UMbF3vrHMNdwrYQ4cOcezYMZ544gnuuOMOjh07xrFjx1we6vv27eObb74hMTGRp556CkVRmDBhAp9//jkAn332Gddccw2ffaZa/X733XcEBga6/EqTk5M5duwYJ0+e5MSJE3zyySeuONevX8+xY8d49tlnuffeezv4HZRcik3YeDHjRc6Gn+W+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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "charts = Charts()\n", "for width in [5, 10, 15, 20, 30, 50, 100]:\n", " model = grid_potts_model(5, width, al_size=2, seed=0)\n", " gr_size = model.gr_size\n", "\n", " t0 = time.time()\n", " true_result = model.infer(algorithm='path_dp').marg_prob\n", " charts.add_point(\"inferlo-path_dp\", gr_size, time=time.time() - t0)\n", " \n", " for algo in ['junction_tree', 'mean_field', 'message_passing']:\n", " t0 = time.time()\n", " result = model.infer(algorithm=algo).marg_prob\n", " charts.add_point(\"inferlo-\" + algo, gr_size, time=time.time() - t0, error=np.max(np.abs(result-true_result)))\n", " \n", " for algo in ['BP', 'FBP', 'HAK', 'JTREE', 'MF', 'TRWBP']:\n", " result = libdai.infer(model, algorithm=algo).marg_prob\n", " charts.add_point(\"libDAI-\" + algo, gr_size, time=libdai.true_running_time, error=np.max(np.abs(result-true_result)))\n", " \n", "charts.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. Maximal likelihood for the grid graph\n", "\n", "We solve a problem of finding most probable state for random pairwise model on a 5xN grid. We measure running time and accuracy. Accuracy is the number of correctly guessed variables." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5\n", "25\n", "50\n", "100\n", "250\n", "375\n", "500\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def acc(x, y):\n", " return sum(x==y) / len(x)\n", "\n", "charts = Charts()\n", "for width in [1, 5, 10, 20, 50, 75, 100]:\n", " model = grid_potts_model(5, width, al_size=2, seed=0)\n", " gr_size = model.gr_size\n", "\n", " t0 = time.time()\n", " true_ml = model.max_likelihood(algorithm='path_dp')\n", " charts.add_point(\"inferlo-path_dp\", gr_size, time=time.time() - t0)\n", " \n", " for algo in ['junction_tree']:\n", " t0 = time.time()\n", " ml = model.max_likelihood(algorithm=algo)\n", " charts.add_point(\"inferlo-\" + algo, gr_size, time=time.time() - t0, acc=acc(true_ml, ml))\n", " \n", " for algo in ['BP', 'FBP', 'DECMAP', 'GIBBS', 'JTREE']:\n", " if gr_size > 50 and algo in ['GIBBS', 'DECMAP', 'FBP']:\n", " continue\n", " \n", " ml = libdai.max_likelihood(model, algorithm=algo)\n", " charts.add_point(\"libDAI-\" + algo, gr_size, time=libdai.true_running_time, acc=acc(true_ml, ml))\n", " \n", "charts.plot()" ] } ], "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }