{
"cells": [
{
"cell_type": "markdown",
"id": "abdd4aba",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"id": "23d8e5dc",
"metadata": {},
"source": [
"# Variational Bayes Inference\n",
"\n",
"GTSAM is most-often used for posteriori (MAP) estimation, and with the `gtsam.Marginals` object we can get the Laplace approximation to the posterior density. As shown in a [2020 IJRR paper by Tim Barfoot et al](https://journals.sagepub.com/doi/abs/10.1177/0278364920937608), variational Bayes not only optimizes for the mean $\\mu$ but also for the covariance $\\Sigma$ of an approximation \n",
"\n",
"$$\n",
"q(x) \\sim \\mathcal{N}(x;\\mu, \\Sigma).\n",
"$$\n",
"\n",
"The key is that we need to take expectations of the factor log-likelihoods with respect to $q(x)$, and a simple way to do this is to *sample* from $q$. The recipe we follow below is then:\n",
"\n",
"- initialize $q(x)$ with MAP and Laplace approximation.\n",
"- for a few times:\n",
" - sample from q\n",
" - create linearized factors using the q samples\n",
" - optimize this graph\n",
"\n",
"Note that we sample from $q$, not the true posterior, which would be much harder. In the version below, which uses ancestral sampling to create the expectations, we do not need the marginals of Q explicitly, even though we do compute them in various places to draw covariance ellipses for visualization purposes."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "b411e885",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"%pip -q install gtbook # also installs latest gtsam pre-release"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "50de8e04",
"metadata": {},
"outputs": [],
"source": [
"import math\n",
"from math import pi, sqrt\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from collections import defaultdict\n",
"\n",
"import gtsam\n",
"import gtsam.utils.plot as gtsam_plot\n",
"from gtbook.display import show\n",
"from gtbook.display import pretty\n",
"from gtbook.gaussian import sample_bayes_net\n",
"from gtbook.driving import planar_example, marginals_figure\n",
"from gtsam import Point2, Pose2, Rot2, noiseModel"
]
},
{
"cell_type": "markdown",
"id": "ab9cecbf",
"metadata": {},
"source": [
"## Sampling on the Manifold"
]
},
{
"cell_type": "markdown",
"id": "4b35b6dc",
"metadata": {},
"source": [
"`sample_bayes_net` creates samples in the *tangent space*, which we then need to upgrade to the non-linear manifold:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "d7e5eb18",
"metadata": {},
"outputs": [],
"source": [
"def vector_values(tangent_samples:dict, s:int):\n",
" \"\"\"Create VectorValues from sample dictionary.\"\"\"\n",
" vv = gtsam.VectorValues()\n",
" for key in tangent_samples.keys():\n",
" vv.insert(key, tangent_samples[key][:, s])\n",
" return vv\n",
"\n",
"def perturb(tangent_samples:dict, values:gtsam.Values, s:int, delta:None):\n",
" \"\"\"Perturb manifold values by tangent_samples[s].\"\"\"\n",
" vv = vector_values(tangent_samples, s)\n",
" return values.retract(vv) if delta is None else values.retract(vv.add(delta)) "
]
},
{
"cell_type": "markdown",
"id": "7075e4ea",
"metadata": {},
"source": [
"## A Simple Nonlinear Smoother Example\n",
"\n",
"With the preliminaries out of the way, let us illustrate/sanity-check the GVI scheme with a simple Nonlinear smoother, having only two between constraints on `Pose2` variables.\n",
"\n",
"We first create the `gtsam.NonlinearFactorGraph`:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "8a3e738c",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": "\n\n\n\n\n",
"text/plain": [
""
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"graph = gtsam.NonlinearFactorGraph()\n",
"x1, x2, x3 = [gtsam.symbol('x', i) for i in [1, 2, 3]]\n",
"priorMean = Pose2(0.0, 0.0, 0.0) # prior at origin\n",
"priorNoise = noiseModel.Diagonal.Sigmas([0.1, 0.1, math.radians(1)])\n",
"graph.add(gtsam.PriorFactorPose2(x1, priorMean, priorNoise)) # add directly to graph\n",
"odometry = Pose2(2.0, 0.0, 0.0)\n",
"odometryNoise = noiseModel.Diagonal.Sigmas([0.5, 0.2, math.radians(2)])\n",
"graph.add(gtsam.BetweenFactorPose2(x1, x2, odometry, odometryNoise))\n",
"graph.add(gtsam.BetweenFactorPose2(x2, x3, odometry, odometryNoise))\n",
"\n",
"# Values with ground truth\n",
"truth = gtsam.Values()\n",
"truth.insert(x1, Pose2(0, 0, 0))\n",
"truth.insert(x2, Pose2(2, 0, 0))\n",
"truth.insert(x3, Pose2(4, 0, 0))\n",
"\n",
"show(graph, truth, binary_edges=True)\n"
]
},
{
"cell_type": "markdown",
"id": "e6cdfa08",
"metadata": {},
"source": [
"As always, we can calculate and plot covariance ellipses which show the Laplace approximation graphically."
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "6b67d243",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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pkyZXM8X5PJkx44dfyprK1euVNGiRXXppZcqJiZGMTExatCggddFDXnLwYMH9cYbb+j5559XVFSUBg8erGbNmgUdK89j3ST7OOc0bdo0Pf7449q9e7eee+453XLLLfn+y5tT7e5FSckDWBAAftu5c6dmzpypqVOnavr06Tpw4IDatWunmJgYRUdHq27duipcuHDQMSX5tzxJSUnRqlWrNGfOHMXGxmr27NmqWrVqZmFp27atSpUqFXRM5EFpaWkaP368nnrqKZUvX16DBw9W+/btKcDZxLdlSX6QlpamDz74QAMGDCgQn1mOSQGAbOac0+LFixUbG6vY2Fh9//33Cg8PV0xMjD755BO1aNFCRYoUCTpmnlCkSBE1atRIjRo10v33368DBw7o66+/VmxsrPr166dNmzbpsssuU0xMjDp27KgGDRoEHRl5wIoVK3THHXcoMTFRzz//fIH4Vhp5X+HChdWzZ0917dpVb7zxhm655Ra1atVKb775pqpXrx50vFzHXywAZNHPP/+sp59+WnXq1FHbtm21ZMkS3XHHHdq4caPi4uI0aNAgXXbZZRSUs1CiRAnFxMTotdde088//6wVK1aoS5cumjVrli666CI1atRIQ4YM0ebNm4OOCg+lpqbqxRdfVLNmzdSmTRutWrVKPXr0oKAgTylevLj69euntWvXqmzZsgoPD9fYsWML3DVW+KsFgL+wfft2jRw5UpdeeqkiIiK0YsUKDR8+XNu2bdOnn36qO++8U+eee27QMfOtunXr6v7779fUqVO1bds2PfbYY5o1a5Zq1aqlq666SmPHjtWePXuCjgkPLFu2TJdeeqnef/99zZ49W4MHD1aJEiWCjgWcsYoVK2rcuHEaO3asnnjiCXXu3LlAfUFDSQGA4zjnNH/+fHXr1k3Vq1fXhx9+qNtvv11bt27VZ599pmuvvZZrKQSgdOnS6tmzp2bMmKGNGzfq6quv1vDhw1W1alX17t1by5cvDzoiApCSkqLnnntOzZs3V/v27bVo0SI1b9486FhAtunSpYtWrFihSpUqKTw8XO+8806B2KpCSQGADKmpqfrggw/UtGlTderUSeeee65WrlypefPmqXfv3ipfvnzQEZGhevXqevTRRxUXF6d58+YpNTVVzZo105VXXqnY2NgC8R84Dl9v6IorrtBHH32kb775Ri+88IKKFy8edCwg21WoUEFjx47V+PHjNWDAAHXr1k379+8POlaOylJJMbNnzKycHTbFzLab2Q05HQ4AckNycrJGjBihunXr6qmnntIdd9yhhIQEDRs2THXr1g06Hk7hoosu0ltvvaVff/1Vbdu21W233aZGjRpp/PjxSk9PDzoeckhcXJyaNWummjVr6scff1TTpk2DjgTkuE6dOmnJkiX67bffdNlll+Xr3b+yuiXl/znndkm6SlKqpFaSnsypUACQG9LT0zV+/Hg1aNBAo0eP1tChQ7V27Vrde++9Kl26dNDxcJoqVaqkJ598Uhs3btT999+vJ598UhdffLGmT5/OlpV85vPPP1d0dLR69+6t8ePHc+wJCpTKlSvryy+/VFRUlJo2barvv/8+6Eg5Iqsl5chXUZdLmuCcW5NDeQAgV8yYMUNNmjTRP//5Tw0cOFA//fSTunbt6s31THDmihcvrrvvvlurV6/WrbfeqltuuUVXXXWVFi1aFHQ0nCXnnJ5//nndeuuteu+999S/f/98ew0J4K8ULVpU//nPf/T444+rbdu2Gj9+fNCRsl1WS8o+M3tCUjdJM82skCSOGgWQ52zatEkxMTHq1q2b/va3v2nt2rW69dZbKSf50JHTeMbHx6tZs2Zq3bq1evXqpZ07dwYdDWcgPT1df//73zV69GjNmzdP1113XdCRgECZmR566CF99tlnuvfeezV48OCgI2WrrJaU2yRVlfQP51yipNqS8l9lA5BvOec0evRoRUREKCwsTPHx8Xr00Uc5yLYAKFeunAYNGqQ1a9Zox44dCg8P18SJE4OOhdPgnNPDDz+s2bNn69tvv1VUVFTQkQBvXH311fr66681aNAgjRo1Kug42SZLV5x3zq2T9NBx4y/mUCYAyFYbN27UXXfdpdWrV2vChAnq0KFD0JEQgBo1amjSpEkaN26cevXqpc6dO+vVV19VhQoVgo6GUxg4cKAmTJig+fPnF8grbwOn0rhxY02ePFlXX321ypYtq1tuuSXoSGftL7ekmNngjJ8TzOyT44fciQgAZ27y5Mlq1KiRatWqpeXLl1NQCjgz06233qoVK1bo999/V2RkpH788cegY+EvvPLKK3r99dc1c+ZMnX/++UHHAbzVqlUrffbZZ/r73/+uSZMmBR3nrJ1qd695GT8nS5pyggEAvOSc09ChQ9WtWzeNGTNGY8aMUdmyZYOOBU9Ur15dkyZN0iOPPJJ5nQ34Z+zYsfrXv/6ladOmKTw8POg4gPfat2+v9957T927d9c333wTdJyz8pe7eznnJmX8HHv8Y2bGgfM5KD09XfHx8Vq8eLF27tgp55xee+01hYWFqWnTpqpRowZnNAFOIjk5Wb1799bMmTP19ddfc/0EnJCZqV+/fmrQoIG6d++uFStWaODAgSpUiOsc+2D16tW655579L///U/NmjULOg6QZ9xwww1KTExU9+7dtXz58jx7IeKsXsxxspmVP2q8tqRvcyxVAeWc06xZs3TjjTeqQoUKioiI0NChQ7Vv/z4dOHhAX331lQYOHKjatWurSpUq6tWrl77//nvO/w8c5eDBg+rUqZNWrlzJBd6QJR07dtSCBQv0wQcf6M477+QCkB5ISUlRz549dc899+iqq64KOg6Q5/Tt21cXX3yx7rvvvqCjnLGsfl00R9JCM2thZjdljA/JuVgFz4QJE9SgQQPdcsstql+/vr766ivt2bNHCxcuVI0aNRQWFqYvvvhCcXFx2rNnjyZOnKgyZcqoXbt2atq0qWbPnh30WwACl5qaqm7dumnfvn366quvOMAWWRYeHq558+bpm2++Ub9+/fjyJ2AvvviiDhw4oGeffTboKECeZGYaM2aMpk+frk8+yZuHkWf17F5DzewHSbMl7ZB0mXMuPkeTFRBJSUm69957NXv2bA0dOlS33HKLihUr9pfPKVGihFq0aKEWLVroxRdf1OjRo9WlSxfdeuutGjx4MFfKRoGUnp6uO++8U/Hx8ZozZw5/Bzht1apV08yZMxUdHa0KFSro6aefDjpSgbRw4UINGjRI8+fP5xThwFmoWrWq/v3vf+vuu+9W69atVa1ataAjnZas7u5VS9JQSWMlbZDU38xYcpylpUuXKioqSs45rVy5UrfffvspC8rxSpcurX79+ikuLk4rVqxQkyZNtGnTphxKDPjrqaee0vz58zVjxgxOKYszVrt2bc2YMUOvvvqq3n777aDjFDhHvmzo37+/LrrooqDjAHneDTfcoJiYGD344INBRzltWd3da66kYc653pIuk/S7pB9yLFUBEBcXpzZt2uj+++/XhAkTVKVKlbN6vdq1a+urr77SlVdeqdatW1NUUKDMmzdPr7zyiiZOnJjnvimCfyIiIvTRRx/pwQcf1Pr164OOU6BM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aprxM1s459Y451o45+o755o651Zk3H+Xc27iUdONcc7Vdc7VzngsJbsy5LQiRYroyiuv1Mcff5yr8/3oo4/UoUOHXJ0nkBtatmypr776Ss4FfsgZ8rlDhw5p3rx5XMcjB+WlazcAeVleusbYX5YUM3tO0qeSHnXO9XXOrXfObTwy5E7E/OOee+7RmDFjlJKSO91qx44d+uijj9S3b99cmR+Qm6699lrFx8ezYoMc9+GHH6pixYp55tvHvOjIlhS+dAByzs6dO7V69eo8c42xU21JqSXpIufc9FzIku9dffXVKlq0aK5tTXnzzTfVrFkzRUZG5sr8gNxUpkwZ3X333Ro2bFjQUZCPOec0bNgw9evXjzN75aAmTZpkrkAByBlff/216tWrl2dOAmIF4VuLsLAwl5CQEHQMSYd3v3rggQe0YsWKHP2QrFmzRhdffLFmzJihVq1a5dh8gCD9+uuvqlevnpYuXar69esHHQf50PTp09WjRw9t2rQpz5wRJ6/q2bOnypQpo5EjRwYdBciX2rZtqyuvvFJPPvlk0FEkSWa22TkXdtLHKSm5yzmnG2+8UYULF9bHH3+cI9d4SEtLU+vWrXXppZdq+PDhp34CkIfdd999Wrp0qWbPnq3ChQsHHQf5yN69e9W4cWPdd999euihh4KOk+8tWbJELVu21K+//qqKFSsGHQfIVxYvXqzWrVtr06ZN3vx9naqksO06l5mZ3njjDc2dO1fPP/98tr++c059+vTRH3/8oeeeey7bXx/wzeDBg/Xbb7/plVdeCToK8pnHHntM5557rh544IGgoxQIjRs3VsuWLTVq1KigowD5zrBhw3THHXd4U1Cygi0pAVm2bJnatGmjhx56SAMGDMiWLSppaWnq27evZs6cqblz5yos7KTlFMhX5s+fr/bt2+uHH35QeHh40HGQD0yfPl1du3ZVXFyczj///KDjFBjTpk1Tr169tHHjxjxzVWzAd0d2jV6xYoVX10hhS4qnIiMjNWfOHL355pu6/vrrtXXr1rN6vXXr1umKK67Q3Llz9c0331BQUKC0atVK/fr10zXXXMNV6HHWli5dqu7du+v111+noOSyDh06qHr16hoyZEjQUYB844knntC1117rVUHJCkpKgCIiIhQXF6fixYsrPDxcY8aM0cGDB0/rNXbv3q2hQ4eqcePGaty4sRYuXKgaNWrkUGLAX88884zatGmjdu3aaceOHUHHQR61bt06tW/fXo888oh69eoVdJwCx8z01ltvadCgQVq0aFHQcYA875NPPtH06dPz5C7R7O7lif/+978aMGCAkpKSdMcdd6hr166KjIw84ebuvXv36qefftIHH3ygcePGqWHDhho6dKguv/zyAJID/khNTdXNN9+shIQEzZo1S+ecc07QkZCHbN68WdHR0br++uv10ksv5ciJTZA1zz33nD744AMtWrSIs6oBZ2jLli2KiIjQ6NGjdcMNNwQd5084u5fyRkmRDh/0PmfOHI0aNUqzZs3S7t27FRERoRo1aqho0aJKTk7W+vXrtWrVKoWGhiomJkb33HOPmjZtGnR0wBvJycnq0qWLtm/frv/973/s+ogsWbZsma655hpdddVVGjNmDAUlYKmpqWrVqpVatWrFWSqBM+CcU6dOnVSxYkWNGzcu6DgnRElR3ikpR3POacOGDVq0aJESExN16NAhFStWTGFhYWratKmqV68edETAW4cOHVLfvn0VGxurL774QpdccknQkeCxSZMm6W9/+5seeeQRPf300xQUT6xZs0ZNmjTRZ599pg4dOgQdB8hTRowYoUGDBmn58uUqV65c0HFOiJKivFlSAJwd55xefvllPf300xozZoy6d+8edCR4xjmnoUOH6plnntE777yjrl27Bh0Jx3n//fd1zz33aObMmWrevHnQcYA84ZNPPtEdd9yhadOmKTo6Oug4J3WqkhKSm2EAILeYmfr166cGDRrolltu0YwZM/Tyyy97+40ScldCQoLuvvtuLV26VHPmzFGTJk2CjoQT6NGjh3bu3KmYmBjNmTNHkZGRQUcCvBYbG6vbb79dEyZM8LqgZAVn9wKQr3Xs2FHLli3Tli1bFB4erqlTpwYdCQFyzuntt99WRESEqlSpomXLllFQPPfAAw/o4YcfVvv27RUfHx90HMBbc+fOVdeuXfX222+rY8eOQcc5a2xJAZDv1ahRQ7GxsXr77bfVvXt3XXfddRo2bFieuvIuzt7GjRvVp08fLV26VOPHj1enTp2CjoQsGjBggHbt2qWrrrqKixUDJ7B48WJdc801Gj58uG6++eag42QLtqQAKBDMTHfeeaeWL1+uHTt2qE6dOho0aJAOHDgQdDTksJ07d+qxxx7ThRdeqGrVqmn58uUUlDzGzPTSSy+pffv2atGihRYvXhx0JMAbkydP1hVXXKEBAwbo7rvvDjpOtqGkAChQatSooUmTJum///2vPv30U9WrV09vvfWW0tLSgo6GbHbgwAENGTJEderU0dKlSzV//ny9/fbbKl++fNDRcAbMTG+++abuu+8+XX755frss8+CjgQEyjmnl156Sd26ddPo0aP16KOPBh0pW3F2LwAFVnp6uiZMmKD+/furePHiGjBggLp27aqQEPaEzcsOHDigd999Vy+88IIqV66sIUOG6Kqrrgo6FrLRxIkT1aNHDz366KN66qmnOG00Cpzk5GT17t1bM2fO1P/+9788ec08TkEsSgqAv3bo0CH95z//0UsvvSTnnB5++GHdfvvtXLE+j0lKStKbb76p119/Xeeee66eeOIJ3XTTTSpUiJ0G8qNly5apS5cuuuSSS/TOO++oZMmSQUcCckViYqKuv/56paSk6Isvvsiz1847VUlhyQ2gwCtatKjuuecerV27VoMHD9b777+vc889Vw8++KDWrl0bdDz8BeecFi5cqNtuu001a9bUvHnzNH78eP3000/q1q0bBSUfi4yM1A8//KCtW7eqadOm+v7774OOBOS4iRMnqnHjxjrvvPM0Z86cPFtQsoKlNwBkCAkJ0U033aQffvhBM2fO1Pbt2xUZGakWLVrojTfe0I4dO4KOiAwJCQkaPHiwIiIi1KZNG5UqVUo//fSTZsyYofbt27P7TwFRuXJlffnll7r11lvVtm1bPf744zp48GDQsYBst2PHDvXo0UO9evXSkCFDNH78eJUoUSLoWDmKkgIAJ9C8eXONHz9eW7ZsUa9evTR+/HhVr15d1157rT777DNWhAKwZ88evfvuu7ryyit1/vnna/bs2erfv78SExM1cuRIXXjhhUFHRABCQkL0xBNP6Mcff9TXX3+txo0b69tvvw06FpBtPv/8c4WHh2vPnj1auXKlevbsWSC+iOGYFADIovj4eL3//vsaN26cEhMTdeWVVyomJkYxMTGqWbNm0PHyHeec1qxZo9jYWMXGxmrOnDlq2LChevbsqe7du6tatWpBR4RnUlNTNXz4cA0cOFB9+vTRs88+y7EqyLO2b9+u+++/XzNmzNDrr7+u7t2756tywoHzoqQAyF7OOcXFxWWuPC9YsEAXXHCBOnbsqJiYGEVHR6to0aJBx8yT9u3bp6+++irzd7tlyxa1adMmswzWr18/6IjIA1avXq3bb79dmzdv1jPPPKOePXuqcOHCQccCsuTAgQMaMWKEXnjhBV1xxRV64403VLVq1aBjZTtKiigpAHLWrl27NGvWrMwV6z179mRuZYmOjtYFF1zAaY1PIjk5WStXrtTXX3+dubWkRo0amaWkTZs2fBOOM5Kenq6PPvpIAwYMUKlSpTRo0CB17NgxX30TjfwlLS1N7733np5++mlVqVJFgwcPztenT6ekiJICIPc457R06dLMwrJw4UKlpaUpIiJCUVFRxwzlypULOm6uSkxMVFxc3DHD6tWrVbJkSbVs2TKzmNSrVy/oqMhHkpOT9e9//1vPPvusGjZsqMGDB+vSSy8NOhaQyTmnKVOm6IknntCBAwf0/PPPF4jTp1NSREkBEJy0tDStW7fuTyvnCQkJqlmz5p+KS506dfL8f0ypqalas2bNMe93yZIlSkxMVJ06df70ns877zy+3UaO2717t1566SUNHz5cV199tf7v//5PERERQcdCAeac09y5czVgwACtXr1aTz/9tO6+++4Cs7swJUWUFAD+2bFjh5YuXXrMivyKFStUpEgRRUZGqn79+goNDc0cqlSpknm7UqVKge0+lpKSoqSkJCUmJioxMfGY24mJiVq1apVWrFihwoULKzIyUlFRUWrcuLGioqIUGRnJBTIRuC1btui5557T22+/rSuuuEKPPfaY2rRpQ1FGrklLS9Pnn3+ul156SatXr9aDDz6oRx55RGXKlAk6Wq6ipIiSAiBvSElJydwCER8f/6cCkJSUpF27dsnMVLFixZOWmHLlyikkJOSYoXDhwpm3nXNKS0tTampq5nBkPCUlRTt37vzTfI/c/v333yUpc/5Hz7dKlSqqX79+5hYhDlSGzxITEzVixAiNHDlStWvX1sMPP6yuXbsWmG+xkft2796tsWPH6tVXX9WhQ4f08MMP66677iqwX95QUkRJAZB/JCcnKykp6YQF5sjtXbt2KS0t7YRFJCUlRWZ20gITEhKi8uXLn7QAValSRZUrV1aRIkWC/lUA2WLfvn1655139Prrr+uPP/5Qnz591Lt3b05xjWyzdu1ajRgxQu+++64uvPBCPfDAA7rpppsK/HKUkiJKCgAA+Gvp6emZ16OYNWuWOnTooJ49e+qaa65R8eLFg46HPOaPP/7Qp59+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",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"marginals = gtsam.Marginals(graph, truth)\n",
"\n",
"def make_figure():\n",
" plt.figure(0, figsize=(12, 7), dpi=80)\n",
" for key in [x1, x2, x3]:\n",
" gtsam_plot.plot_pose2(0, truth.atPose2(key), 0.5,\n",
" marginals.marginalCovariance(key))\n",
"\n",
" plt.axis('equal')\n",
"\n",
"make_figure()"
]
},
{
"cell_type": "markdown",
"id": "91826d0f",
"metadata": {},
"source": [
"We can also inspect the actual information matrix and covariance matrix, to ascertain sparsity:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "79566305",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
" \n",
"
Variable
value
\n",
" \n",
" \n",
"
x1
0 0 0
\n",
"
x2
0 0 0
\n",
"
x3
0 0 0
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"VectorValues: 3 elements\n",
" x1: 0 0 0\n",
" x2: 0 0 0\n",
" x3: 0 0 0"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Q sparsity:\n",
"[[1 0 0 0 0 0 0 0 0]\n",
" [0 1 1 0 0 0 0 0 0]\n",
" [0 1 1 0 0 0 0 0 0]\n",
" [0 0 0 1 0 0 0 0 0]\n",
" [0 0 0 0 1 1 0 0 0]\n",
" [0 0 0 0 1 1 0 0 0]\n",
" [0 0 0 0 0 0 1 0 0]\n",
" [0 0 0 0 0 0 0 1 0]\n",
" [0 0 0 0 0 0 0 0 1]]\n",
"P:\n",
"[[ 0.01 0. 0. 0.01 0. 0. 0.01 0. 0. ]\n",
" [ 0. 0.01 0. 0. 0.01 -0. 0. 0.01 -0. ]\n",
" [ 0. -0. 0. 0. 0.001 0. 0. 0.001 0. ]\n",
" [ 0.01 0. 0. 0.26 0. 0. 0.26 0. 0. ]\n",
" [ 0. 0.01 0.001 0. 0.051 0.001 0. 0.052 0.001]\n",
" [ 0. -0. 0. 0. 0.001 0.002 0. 0.004 0.002]\n",
" [ 0.01 0. 0. 0.26 0. 0. 0.51 0. 0. ]\n",
" [-0. 0.01 0.001 -0. 0.052 0.004 -0. 0.1 0.004]\n",
" [ 0. -0. 0. 0. 0.001 0.002 0. 0.004 0.003]]\n"
]
}
],
"source": [
"def printPQ(bayes_net: gtsam.GaussianBayesNet, N:int=1):\n",
" \"\"\"Print mean, Hessian, and covariance, possibly with correction factor N\"\"\"\n",
" R, d = bayes_net.matrix()\n",
" Q = (R.T @ R)/N # Hessian/Information matrix\n",
" display(bayes_net.optimize())\n",
" print(f\"Q sparsity:\\n{(Q>1e-9).astype(int)}\")\n",
" print(f\"P:\\n{np.round(np.linalg.inv(Q),3)}\")\n",
"\n",
"printPQ(graph.linearize(truth).eliminateSequential())"
]
},
{
"cell_type": "markdown",
"id": "7075e4ea",
"metadata": {},
"source": [
"## Variational Bayes\n",
"\n",
"The code below then uses this sampler to create samples on the product manifold, each sample yielding linearized factors at the sample, yielding a new Gaussian factor graph which has $N$ times as many factors. We then optimize that graph and iterate:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "5aefae16",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"it 1, norm of delta: 0.0185\n",
"it 2, norm of delta: 0.0175\n",
"it 3, norm of delta: 0.0016\n",
"it 4, norm of delta: 0.0011\n",
"it 5, norm of delta: 0.0015\n"
]
},
{
"data": {
"image/png": "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RkkBAAC4RKmpqfr44481btw4rV69WmlpaQoNDdW1116rvn376uabb2a3rUKgXr16+s9//nPm8oEDBzR27Fh99dVXGj16tEaNGqWwsDC1bNlSDz74oNq3b+9h2uKBqQ4AAAAuwvbt2zVgwABFR0crODhYDzzwgA4cOKD77rtP27ZtU2JioqZNm6bevXtTUAqp8uXLa8iQIVq+fLnS0tI0b948tWnTRosWLVKHDh0UEBCgq666SqNGjVJKSorXcYskSgoAAMAFHD9+XP/+979VuXJl1axZU++//74qVqyoMWPGKCUlRdu3b9cbb7yhGjVqeB21wBWH4zbatGmjr776SocPH9a+ffs0aNAgnThxQo899phCQkLUqFEjjR07VtnZ2V5HLTIoKQAAAOeQlZWlMWPG6IorrlCZMmU0atQo1ahRQ9OnT9fJkye1ePFi3XvvvYyWFDMVKlTQiy++qM2bNys1NVUvv/yyUlJSdOedd6pEiRLq0KGDFi1a5HXMQo+SAgAAcJa5c+eqdevWCgoK0v3336/s7Gy9+eabSklJ0cKFC9W5c+diMXqAC/P399egQYMUGxurw4cP67777tOaNWvUsmVLhYaG6o477tCuXbu8jlkoUVIAAECxl56erqefflrh4eHq0KGDYmNj9cgjjyghIUEbN27UAw88IH9/f69jwmHh4eEaPXq0Dh48qHXr1ql9+/aaPHmyqlevrnr16umbb77xOmKhwuxeAFBIWGt19OhRbdmyRVu2bNG2bdu0e/duxcfH6+DBgzp69KiOHz+utLQ0WWuVnZ0ta+3/LBqW82BG6nt7X8VsiJExRsYY+fj4yMfHR0FBQQoNDVVERIQiIyNVuXJlVatWTbVq1dJll12mmjVrqmTJkp7+WwB5Ze/evXrwwQc1depUZWdn67rrrtNrr72mhg0beh2t0HD5PCleqV+/viZPnixJ+vzzz/XUU0+pR48eKlu2rO6//34NHz6c0nsBxlrrdYZ8FxUVZePi4ryOccnMM6f+529SoYlW3rfS4zQA8svx48c1e/ZszZ07V7GxsTp06JASEhKUlJSkkydPKiMj48y6xhgFBASoRIkSKl26tMLCwhQZGalKlSopIiJCAQEB8vf3V0BAwJnf/f399cChB848Rt8SfVXf1ldGRsaZJTU1VQcOHNC+fftytf3g4GCVKlVKYWFhKl++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K61atdL27dvl7++vunXrasaMGV5Hyhe5LSmnx81bS5pkrd2cT3kAIN9Za/XCCy8oNDRU77//vu666y4dO3ZMr732moKCgryOhz+pQoUK+vrrrxUfH6/mzZvroYceUvny5fXtt996HQ1/Unp6ulq2bKn//ve/GjZsmKZPny5fX1+vYxV7TBxS8CpVqqQ9e/boqquuUteuXfXCCy94HSnP5bakJBtjhkq6VdIcY4yPJObzA1DoLFiwQOXKldOTTz6p9u3b6+DBg3r//fcVGBjodTTksfLly2vu3Ln67bffVLFiRd1888264oortHfvXq+j4RKkpqaqTp06Wrp0qSZPnqznnnvO60iAp/z9/bVkyRLdd999GjZsmO6++26vI+Wp3JaUOyVVkDTEWntAUg1J4/MrFADktYyMDPXu3VutW7dWRESEtmzZoilTpigsLMzraMhn9erV06+//qq5c+cqPj5e1apV08iRI72OhYuQmZmpxo0bKz4+XitXrlSPHj28jgQ445133tErr7yiDz/8UIMHD/Y6Tp7JVUmx1m611j5irf36rMsv5m80AMgb8+fPV/ny5TVp0iS98MIL2rRpk2rWrOl1LBSwdu3a6fDhw/rb3/6moUOHql69eoqLi/M6Fi4gOztbLVq00JYtWzR//nw1bNjQ60iAcwYOHKhhw4bplVde0YgRI7yOkyf+sKQYY0bm/JxkjPny90vBRASASzd06FBdd911ioyM1I4dO/T44497HQke8vX11cSJEzV//nzt27dP0dHRmjx5stexcB7WWl1//fVauXKlpk6dqhYtWngdCefAeVLc8Nxzz+n+++/XE088oTFjxngd50/zu8Dti3J+Ts3vIACQl7KystS5c2fNmTNHAwcO1CuvvOJ1JDikVatWOnz4sNq3b69evXpp2LBhHOPgoN69e2vevHmaOHGiOnXq5HUcwHlvv/22jh49euZcX7169fI60iX7w5JirZ2S83Ps728zxnDgfD6y1mrNmjWnZqOxknyknTt36sUXX1TPnj1Vp04dryMCzkpISFCTJk20Z88effbZZ5w/Aefk6+urH3/8UQMHDtTzzz+vVatWacqUKfLx4TzHLhg/fry++OILjR49Wn//+9+9jgMUGp9//rni4+PVp08ftWnTRuHh4V5HuiS5PZnjVGNM2bMu15C0JN9SFVPZ2dn64IMP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AYBcsNZqypQpevHFF7VixQplZ2ercuXK6tixowYMGFCkh9y9kp2drdmzZ+vdd9/VwoULdeTIEQUFBal9+/Z65pln1KRJE68jwjEJCQnq3Lmzli1bpg4dOujbb7/lWBUUWr/99ps6deqkvXv3qn///ho9enSRKicXOiaFkgIAFykzM1Offvqpxo0bpxUrVig5OVklSpRQ48aN1bdvX911110KCgryOmahdPDgQb311lv6+uuvtWnTJmVmZiosLEwtW7bUvffeq86dO3N+E1zQRx99pP79+8taq4EDB+qFF14oUh/uULQdPnxYd9xxh2bOnKkKFSpo5syZatiwodex8hwlRZQUAPlr48aNevPNNzVjxowzx62cHmW59dZb1apVKwUEBHic0k3Hjx/XrFmzNGHChDOjJb6+vqpbt6569Oih/v37q0KFCl7HRCGUnJysfv366csvv1RISIj+85//qH///l7HAs4rNTVV/fv319ixYxUYGKinnnpKjz32WJH9YoaSIkoKgIKTnp6u8ePH/88oiySFhISoSpUqatSoka677jp169ZNFStW9DhtwbHWatOmTZo6daoWLlyo3377TfHx8WcOcj57tKRTp0586408s3//fvXu3Vs//fSTKlSooHfffVc33nij17GAM7Kzs/X000/r5ZdfVlZWlv75z3/q1VdfLfKzE1JSREkB4J3k5GTNnDlTc+fO1S+//KLt27crISFB1lr5+/srMjJSl112mVq0aKEuXbqoWbNmhX5mqpSUFM2bN0+zZs3SL7/8oq1bt+ro0aPKzs6Wr6+vypUrp9q1a6tZs2bq3Lmz/vrXvzLShHy3fv169enTR2vXrlWdOnX04Ycf6q9//avXsVCMWWv13//+V8OGDVNSUpJ69Oihjz76SKVLl/Y6WoGgpIiSAsAt1lqtXbtWU6dO1c8//6wNGzZo3759Z852HxoaqvLlyysiIkIVKlRQ5cqVFR0drZo1a+ryyy9XtWrVPPtQf+LECW3btk2bN2/Wtm3btGvXLu3du1cHDhzQkSNHtH///jMznwUHBysqKkoNGjTQddddp65du6p69epFdtcFFA4//PCD+vXrp127dqlq1aoaMWKE+vTp43UsFCNpaWkaNmyYxowZoxMnTqhly5aaMGGCoqLO+3m9SKKkiJICoHBISEjQtGnTNG/ePG3ZskWHDx9W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",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"N = 1000\n",
"\n",
"# Start with ground truth\n",
"values = gtsam.Values(truth)\n",
"\n",
"big_graph = graph.linearize(values) # first time it's small!\n",
"bayes_net = big_graph.eliminateSequential()\n",
"delta = bayes_net.optimize()\n",
"\n",
"make_figure()\n",
"\n",
"for it in range(5):\n",
" # Use the Bayes net to sample from q:\n",
" # KEY STEP: subtract delta from Gaussian samples as we moved to new tangent space\n",
" tangent_samples = sample_bayes_net(bayes_net, N)\n",
" mean_correction = delta.scale(-1)\n",
" manifold_samples = [\n",
" perturb(tangent_samples, values, s, mean_correction) for s in range(N)]\n",
"\n",
" # Add new linearized factors for every sample:\n",
" big_graph = gtsam.GaussianFactorGraph()\n",
" for manifold_sample in manifold_samples:\n",
" # KEY STEP: factors are duplicated, linearized at manifold_sample\n",
" # TODO: *technically* these are at different tangent spaces\n",
" sample_graph = graph.linearize(manifold_sample)\n",
" big_graph.push_back(sample_graph)\n",
"\n",
" # Solve by calculating Bayes net and solve.\n",
" # KEY STEP: this forms all Barfoot's expected quantities\n",
" bayes_net = big_graph.eliminateSequential()\n",
" delta = bayes_net.optimize()\n",
" print(f\"it {it+1}, norm of delta: {np.linalg.norm(delta.vector()):0.4f}\")\n",
" # display(delta)\n",
" # printPQ(bayes_net)\n",
"\n",
" # update non-linear estimate\n",
" values = values.retract(delta)\n",
" for key in [x1, x2, x3]:\n",
" gtsam_plot.plot_pose2(0, values.atPose2(key), 0.5)\n",
"\n",
"# show new covariances\n",
"new_marginals = gtsam.Marginals(big_graph, values)\n",
"for key in [x1, x2, x3]:\n",
" gtsam_plot.plot_pose2(0, values.atPose2(key), 0.5,\n",
" N*new_marginals.marginalCovariance(key))\n"
]
},
{
"cell_type": "markdown",
"id": "9107c3f8",
"metadata": {},
"source": [
"This is not converging."
]
},
{
"cell_type": "markdown",
"id": "97b18d1e",
"metadata": {},
"source": [
"## Setting up a non-linear SLAM Example\n",
"\n",
"Below we re-create a similar factor graph as in `PlanarSLAMExample`, but with highly nonlinear measurements on the landmarks. Take a look at the sampling example to appreciate how non-Gaussian the posteriors are in this example."
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "8a3e738c",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": "\n\n\n\n\n",
"text/plain": [
""
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"graph, truth, keys = planar_example()\n",
"x1, x2, x3, l1, l2 = keys\n",
"show(graph, truth, binary_edges=True)"
]
},
{
"cell_type": "markdown",
"id": "e6cdfa08",
"metadata": {},
"source": [
"As always, we can calculate and plot covariance ellipses which show the Laplace approximation graphically."
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "6b67d243",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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tdfq4YcfjkhBkfaeSH/nnXfqn//8J+emAAB8hZICAD5SVFSkX/3qVxo8eLAefPDBiBWUUpdeeqk2btyoL774IqLPAwBAdVBSAMBHRo4cqT179ujpp5+OeEGRpISEBP3ud7/TM888E/HnAgCgqnzzOSkAUNe98MILeuuttzR//vwqfUBjuAwbNkwZGRnas2eP6tWrF7XnBQCgMsykAIAPLFu2TCNGjNBrr72mtLS0qD539+7dlZCQoC+//DKqzwsAQGUoKQDgsaKiIg0bNkw33nijzjrrrKg/f0xMjM466yxNnz496s8NAEBFKCkA4LE777xTsbGx+vOf/+xZhkGDBlFSAAC+QUkBAA999tlnev755/Xaa68pPj7esxxnnXWW5s+fry1btniWAQCAUpQUAPBIcXGxRowYoXvvvVcdO3b0NEtKSoo6deqkWbNmeZoDAACJkgIAnnn++ee1a9cujRw50usokqT09HStWLHC6xgAAHAJYgDwwo8//qixY8fqpZde8vQwr/I6duxISQEA+AIzKQDggfvvv1+nnHKKzj33XK+jlKGkAAD8gpkUAIiy7777Ts8//7wWLFgQlU+Vr6oOHTpQUgAAvsBMCgBEkXNOo0aN0g033KDjjz/e6zj7SE1N1YYNG1RcXOx1FABAHcdMCgBE0bvvvqvFixfr3//+t9dRDtCqVSs557Rx40a1adPG6zgAgDqMmRQAiJKioiLdcsstevjhh3XUUUd5HecA8fHxOvroo5WXl+d1FABAHUdJAYAoeemll9SgQQNdffXVXkepVOvWrSkpAADPUVIAIAqCwaAmTJig2267TbGxsV7HqVSTJk20detWr2MAAOo4SgoARMF7772ngoICDR061OsoB2Vmcs55HQMAUMdRUgAgCsaPH6+RI0f65oMbK+OnSyIDAOouru4FABE2e/Zsffvtt5oyZYrXUaqEmRQAgNeYSQGACBs/fryuu+46JScnex3lkJhJAQD4ATMpABBBK1as0NSpU5WVleV1lCpjJgUA4DVmUgAggh577DFdfvnlCgQCXkepEk6cBwD4ATMpABAh+fn5eumllzRv3jyvo1QZh3sBAPyAmRQAiJAnn3xS/fr104knnuh1lGphJgUA4DVKCgBEQDAY1IsvvqibbrrJ6yjVwkwKAMAPKCkAEAEzZ85UQUGBBg0a5HWUatmxY4ca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w8YliAGgBjp27Ki5c+d6HUOSlJmZqY8++shXpQkAgMPBTAoA1EDXrl315ZdfyjnnaY7du3dr5MiRuueee9SqVStPswAAEC6UFACogT59+mjz5s1atmyZpznuvvtuxcXFaeTIkZ7mAAAgnCgpAFADDRo0UL9+/TR9+nTPMnz00Ud65pln9Prrrys+Pt6zHAAAhBslBQBqaNCgQfroo488ee78/HxdeeWV+vvf/65OnTp5kgEAgEgxr4+njoZAIOBycnK8jgHgCPP999+rV69e+vHHH5WQkBC15y0pKdE555yjpKQk/etf/+KSwwCAWsfMcp1zgcruZyYFAGooPT1dzZo106effhrV573nnnu0bt06TZw4kYICADgiUVIAoIbMTFdddZWef/75qD3n22+/rSeeeELvvPOOkpOTo/a8AABEE5+TAgCH4fe//706dOignJwcBQKVzlqHxaJFi/Tb3/5WL730kjp37hzR5wIAwEvMpADAYWjbtq3OPvtsPfXUUxF9ngULFmjAgAEaO3asLrrooog+FwAAXqOkAMBhGjt2rP7xj38oUhfomD9/vgYOHKg77rhDt912W0SeAwAAP6GkAMBh6t27t375y1/q7rvvDvu+582bpzPPPFNjx47VmDFjwr5/AAD8iJICAGHwyCOP6O2339YHH3wQtn1++umnOvvss3X//fdr9OjRYdsvAAB+54uSYmaPm9laM3Nm1qWSMf3NrNDMFpZbGkQ7KwBUJC0tTRMnTtQVV1yhrKysw9qXc06PPvqozj//fD322GMaOXJkmFICAFA7+OXqXv+WNE7SzEOMW+Kc6xmFPABQbZdffrnmzZunc845R9OmTdOxxx5b7X3k5ubqxhtv1OLFi/XFF1/o5JNPjkBSAAD8zRczKc65L5xzfCQ8gFpv3LhxOvfcc/WLX/xCs2fPrvLjdu/erXHjxun4449XYmKi5s+fT0EBANRZfplJqapOZvaNpBJJLzjnInvNTwCoptjYWP3tb39Tu3btdOaZZ+riiy/WAw88oOOOO67C8dnZ2Zo0aZImTZqkpk2b6oMPPlC/fv2inBoAAH+pTSXlG0kB59w2MwtImmJmm51z/9p/oJmNllR2limfygwg2kaOHKmLLrpI99xzj44//nh16dJFp556qho3bqx69epp7dq1mj9/vlavXq0hQ4bo2Wef1eDBgxUb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8+ijj2rLli167rnnIpgMACUFAADUOTt37tS9996rJ554QvXr16/y4xISEvT444/rrrvuUlFRUQQTAnUbJQUAANQ5n332mZo2baqBAwdW+7FDhgxRYmKiZsyYEYFkACRKCgD4TmFhoSZPnqxLL71UK5av0LJly5Samqrhw4fr3Xff5d1bIAymTJmic845R2ZW7ceamYYMGaKpU6dGIBkAiZICAL4yd+5cpaen65577lF6eroCqQG1a9dOr7zyitLS0nTzzTera9euWrx4sddRgVrLOacpU6ZoyJAhNd7HOeecoylTpoQxFYDyfFFSzKyDmc02sxVmNs/M0isZd42ZrTSzVWb2nJlxdTIAR4zZs2frrLPO0ogRI7RkyRI98MADatiwoRISEtSvXz/9v//3/7Ry5UoNHTpUffv2pagANbRy5Url5OQoIyOjxvsYOHCgsrKytHbt2vAFA1DGFyVF0rOSnnPOdZQ0TtKk/QeY2TGS/iypj6T2klpJuiaaIes853UA4MjlnNPNN9+sO+64Q6NHj1ZMTMW/nmNjY3X//ffr6quv1h133BHllMCRYf78+erevbsSExNrvI+kpCSddNJJmj9/fhiTASjleUkxsxaSekh6JbTpLUnHmFm7/Yb+StI7zrmNzjkn6RlJw6IWtI575513tHTZUi1ftlyzZ8/2Og5wxMnMzNSaNWs0atSoKo2/88479cUXX2jhwoURzQUciXbs2KHk5OTD3k9ycrJ27NgRhkQA9ueHw6VSJeU554olyTnnzCxbUpqkteXGpUlaV259bWgbouDee+9V+7PiZcXFCgwaJKUdof/pjztOeu89r1OgDlq2bJl69ep14Du72dnS7j3SCSfss/loSYuDQTU7/3wpKSl6QSOBnztEWUFBwaFnUSr52SvvxexsNVq6VBo3LswJo4SfPfiYH0qKdOCBRJVdasNVYYzMbLSk0aXr4Xi3pK5r37698rcsV0KJU3x8vNdxgCNOgwYNtHXr1gO2H1eUKBUUHLDdSQqWlNToykRAXVevXj0VFxcfdExlP3vlOef4GQQixA8l5QdJATOLc84V296f9lRJ2fuNy5bUrtx62wrGSJKcc49Jeqx0PRAIcDbFYXrhhRf0j3/8Qw0bNlSTSSOkanzwFYBDGzx4sP74xz/qm2++UY8ePcq2v/e3DRWO/+Tjj3X55Zdrzbff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",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"marginals = gtsam.Marginals(graph, truth)\n",
"marginals_figure(truth, marginals, keys)"
]
},
{
"cell_type": "markdown",
"id": "7075e4ea",
"metadata": {},
"source": [
"## Variational Bayes\n",
"\n",
"The code below then uses this sampler to create samples on the product manifold, each sample yielding linearized factors at the sample, yielding a new Gaussian factor graph which has $N$ times as many factors. We then optimize that graph and iterate:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "5aefae16",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"it 1, norm of delta: 0.1739\n",
"it 2, norm of delta: 0.1253\n",
"it 3, norm of delta: 0.0280\n",
"it 4, norm of delta: 0.0156\n",
"it 5, norm of delta: 0.0106\n",
"it 6, norm of delta: 0.0075\n",
"it 7, norm of delta: 0.0053\n",
"it 8, norm of delta: 0.0037\n",
"it 9, norm of delta: 0.0026\n",
"it 10, norm of delta: 0.0021\n"
]
},
{
"data": {
"image/png": "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fPPNGjFiRIUEFGn/RPqHHnpIL7/8MnNTAAC+QkgBAB/Jzs7WpZdeqr59++qJJ56osICS77LLLlN6erp++OGHCr0OAAAlQUgBAB8ZPHiw9u3bp9dee63CA4okRUdH64YbbtDrr79e4dcCAKC4fPOcFACo7MaMGaNPP/1U8+bNK9YDGsvLlVdeqZ49e2rfvn2KjIwM2XUBACgKPSkA4AO///677r77br3//vtq1KhRSK/dvn17RUdHa/bs2SG9LgAARSGkAIDHsrOzdeWVV+rOO+9Ur169Qn79sLAw9erVS998803Irw0AQGEIKQDgsYceekjh4eF68sknPauhT58+hBQAgG8QUgDAQ9OmTdNbb72l999/X1WqVPGsjl69emnevHnaunWrZzUAAJCPkAIAHsnJydHdd9+tRx99VC1btvS0lvj4eLVq1UozZszwtA4AACRCCgB45q233lJWVpYGDx7sdSmSpMTERC1fvtzrMgAA4BbEAOCFbdu2afjw4Ro7dqynw7wO1LJlS0IKAMAX6EkBAA889thjOu2003Teeed5XUoQIQUA4Bf0pABAiP3222966623NH/+/JA8Vb64WrRoQUgBAPgCPSkAEELOOd1zzz264447dNJJJ3ldTgENGzZUWlqacnJyvC4FAFDJ0ZMCACH0xRdfaNGiRfrkk0+8LuUQcXFxcs4pPT1dDRo08LocAEAlRkgBgBDJzs7WfffdpxEjRui4444r0bHOOS1evFgrVqxQRkZGcKldu7Y6deqkpKQkRUZGlqm+KlWq6Pjjj1dqaiohBQDgKUIKAITI2LFjVbVqVd14443FPmbFihX68MMP9cEHH2jt2rVq3bq1YmNjFRMTo5o1ayo9PV0PP/ywzEwDBgzQvffeq6SkpFLXWL9+faWmppb6eAAAygMhBQBCIBAIaNSoURo2bJjCw8OP2H7RokW66667NGfOHPXr10+PPvqozj//fNWoUaPQc8+ePVvvv/++unTponvvvVePPPKIoqOjS1xnrVq1tH379hIfBwBAeWLiPACEwH/+8x9lZmZq4MCBh223Z88ePfzww+rcubO6deum9PR0ff755xo4cGChAUWSwsLC1KVLF7388suaOXOmJk+erKSkJP34448lrtPM5Jwr8XEAAJQnelIAIASee+45DR48+LAPbpw6dapuvfVW1a5dW7NmzdIpp5xS4uskJSVp5syZevHFF9WnTx9988036tatW7GP99MtkQEAlRchBQAq2E8//aRff/1VEydOLLLNG2+8ofvuu09///vfdddddxVrSFhRIiIiNHToUNWoUUMXXnihfvrpJ7Vq1arYx9OTAgDwGiEFACrYc889p9tuu02xsbGH7HPO6bHHHtPLL7+sSZMmlajX40huv/12rVu3Tv369dPMmTNVr169Ix5DTwoAwA8IKQBQgZYvX66vv/5aK1euPGSfc07Dhg3TmDFjNH36dLVp06bcrz9ixAglJyfr6quv1pQpU4oVQuhJAQB4jYnzAFCBXnjhBV1xxRVKSEg4ZN/jjz+uMWPGaNq0aRUSUKT9k+pfffVVzZ8/X1OmTDlieybOAwD8gJ4UAKggmzZt0tixYzVnzpxD9n3xxRf6xz/+oZkzZ5ZovkhpxMbG6qGHHtJDDz2kc889V2FhRX8+xXAvAIAf0JMCABXklVdeUffu3XXyyScX2L569Wpdf/31euutt5SYmBiSWu666y6lp6frk08+OWJbelIAAF4jpABABQgEAnrnnXd01113FdielZWlyy+/XNdcc40uv/zyUp9/7969Wrt2bbHbV61aVY899piGDx+uQCBQZDt6UgAAfkBIAYAK8OOPPyozM1N9+vQpsP2+++6Tmen5558v0/mff/55vfPOO9q1a1exj7nuuuu0detWzZo1q8g2u3btUrVq1cpUGwAAZUVIAYAKMG7cOF1++eUFHt44ceJEvf/++/roo48UFRVVpvPv3btXkkoUKCIjI3XRRRfpo48+KrLNxo0bFR8fX6baAAAoKybOA0A527t3rz7++GN9+eWXwW379u3TfffdpyeffFJNmzYt0/k3b94cfH24SfCFufTSS3XbbbfpH//4xyFDu5xzSktLU1xcXJnqA7wSCAS0b98+7d27t8By4LacnBxJ+4c2hoWFycyKXMLDwxUeHq6IiIjgcvB6/raS/i4CODxCCgCUs6+//lqxsbE644wzgtveeustBQIB3XbbbWU+//Tp0yWpWA9nPFj37t2Vnp6uFStWqGXLlgX2ZWRkaM+ePfSkoEI457Rr1y7t2LEjuGRkZBRYP3hbZmbmIYHj4NBx4JKbm3vIdc1MVapUCS7h4eHBepxzCgQCwdcHL7m5ucrNzVVOTs5h53JJUkREhKpXr67q1aurWrVq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Vi1bttTatWvLNH/kQO+//76WL1+uhIQE3XzzzWU6V9u2bfXcc8+pX79+wW3x8fH65JNP1LVr17KWijJITk7WuHHj9NVXX2nu3LmqVauWunXrpq5du6pbt25q165dudzK+mixbt06/eUvf9HMmTP1xBNP6Prrrw/Zm/is7DTNmLH/9+Gcs1cdoXXp5eTk6JNPPtGzzz6rjRs36qWXXtJll112TPU6ZGdna8mSJZo5c6amTp2qadOmaffu3erWrZvOPvts9ezZUx06dPBdbxIqDsO9ACAEpk2bpri4uOCzR/7v//5P5513XrkFlNzcXC1fvlyS1KpVqzKfLxAIFLhjz6ZNm5SWlqaTTz65zOdGyWVkZOjTTz/Vv/71L02fPl3nnnuubrzxRr3zzjtq3rz5MfVmtbj27dunF198UY8//riuuOIKLVu2THXq1AltEe7wD3AsLxERERo4cKCuuOIKjR8/Xn/5y1/0wQcf6NVXXz1mbmYRFRWl9u3bq3379rrzzjsVCAS0ePFiTZ06VVOnTtWzzz6rnJwcnXXWWerZs6d69uyppKQknvdSiXFPOQAoB5MmTVLfvn2Dbya/+OILXXHFFeV2/tTU1ODrhIQiP3gqttzc3AIhZdGiRWratOkxP2zIT5xz+u9//6urrrpKcXFxeumll3T++ecrOTlZX3/9tW688UadeOKJlTKg7N69W/3799eYMWM0ceJEvf3226EPKJICgeyQXs/MNHDgQC1ZskTVqlVTYmKixo4dG9IaQiUsLEwnn3yy7r77bv373//W5s2b9f333+vss8/WtGnT1KNHD9WtW1fXXHONvvvuu+CDQFF50JMCAOVg0qRJGjlypKT9czsWL16s3r17l9v5V65cGXzdoEGDMp8vEAgU+IRy4cKFSkpKKvN5UTzTp0/XsGHDtGTJEt10002aM2eO2rZt63VZvrBnzx5deOGFysrK0pw5c1SjRg3PaskNcUjJV7duXY0bN05ffvmlbrjhBm3ZskX33XefJ7WESnh4eLCnZciQIcrJydEvv/yi8ePH64orrlBMTIxuuOEGXX/99eXyQQ38j54UACij5ORkrVq1Sj179pS0P7CcfvrpZZrcfrAVK1ZIUrk9QO/g4V6ElNDYtGmTLrjgAp133nk655xztHr1aj377LMElDx79uzRgAEDlJWVpa+//trTgCJJLrDX0+tfcMEFmjx5sp588km99tprntYSahERETrttNM0atQopaSkaOTIkfrpp5/UrFkz9e/fX1988YUqw7zqyoyQAgBlNG3aNHXs2DE4VGrq1Kk655xzyu38mZmZweFeZbn18IEOHu5FSKl4c+fO1amnnqrq1atrzZo1+tvf/sbwuoM899xz2rZtmyZOnOh5QJG860k5UIcOHTRx4kQ98MADGjdunNfleKJKlSq65JJLNHHiRK1evVpnnHGG7rzzTp1++un64YcfvC4PFcQXIcXMos3sczNbbmYLzGySmTUpou1NZrbCzFaZ2ZtmxpA1AJ6aOnVqsBfFOafvv/9e3bt3L7fzz5gxI/i6Xbt2ZT5fIBDQxo0bFRcXJ0nau3evli5dSkipQIsXL1aPHj00ePBgffDBB57Mr/C7nTt36sUXX9TIkSN98yBAr3tS8p1xxhl67733NHjwYO3evdvrcjyVkJCg4cOHa8WKFfrTn/6k888/X3/605+0ZcsWr0tDOfNFSMnzpqRWzrl2kibkrRdgZk0lPSmpm6QTJcVJuimENQLAIQ4MKevWrVNaWpo6d+5c5vMuTt2hgR/8rEe352jcab00p/sF2h5b9iFkKSkpysnJUZMmTSRJv//+u6KiooLrKF+BQEC333677rjjDg0dOrRSToQvjtdee02tWrU65JkbXvh92+8a+eU1Sh47UGfM2aaTF2dIab96WtOAAQPUsGFDjRkzxtM6/KJatWp6+OGHtWrVquDQsMWLF3tdFsqRL0KKcy7LOTfR/W9w4SxJzQppeqmkfzvn0vPavi7pylDVCQAHW7NmjVJTU4PPFlm4cKFat26t6tWrl+m8i1N3aMC7czTt+HCtrRunnVWr6xcXpr4/L9fiXXvKdO5Vq1apYcOGwbktCxcu1CmnnFJg+BfKz6JFi7RgwQI99thjXpfiax9++KEGDRrkeYj7fdvvevyzSzV43pc6eUeGqmYFdPzWvQq8dbanQcXMdP/99+uFF15Qbm6uZ3X4zfHHH6+PPvpI1157rc4444wCNxnB0c2v/0e6W9KXhWxvJGndAetr87YBgCe+//57derUKRhKVq1apRNPPLHM533p2xXKalJj/19py/tTbaZ9gYBGrUkr07lXrVpV4EnzzEepWJmZmYqNjfXFHAs/S0tLU7NmhX0+GVqvLXxNN2/bqkhJ+fe/M0kud6/0/bMeViZddtllWr9+vdasWeNpHX4TFhamxx9/XFdeeaXuuecer8tBOfFdSDGzhyW1kDSsiCYH3sqh0I9bzGyImW3IX3bt2lXeZQKAJGnevHk67bTTgusHB4DSWrIxQ7k1I6WDP1U202/l0JNyYI0LFiwgpFSgxMREZWZmatKkSV6X4mthYWG+eBbGsm3L1Gpv9iFvkMIlaeMiDyr6n8jISMXGxmr79u2e1uFXI0aM0H//+1/9/vvvXpeCcuCrkGJmQyVdLKmfc66wmWHJkpocsN44b1sBzrkXnHMJ+QufXgGoKIsWLSrwBr+8QkpifIzCd+6TDr7FpnNqW6Nqmc59YI379u3TrFmzdMYZZ5TpnCharVq19NRTT+muu+7Shg0bvC7Htxo0aKAlS5Z4XYZa1W6lZVWidHBcypWk+FM8qOh/nHPauXOnb24s4Dd16tRRbGysMjIyvC4F5cA3IcXMhmj//JJezrntRTT7VNJFZlbP9g9avV3ShyEqEQAKcM4F53PkK6+QMvjclopeu0sKSArkBZWAU2RYmO5rGlemc//yyy/B53LMnTtXVatWVZs2bcpYMQ7n9ttvV48ePXTaaadpzpw5XpfjS7fccotefPFFz599cWfSnXqrdh0FTMGgEpBk4ZFS9we9LE1z585VREQEDzMswpQpU7Rnzx61aNHC61JQDnwRUswsQdIoScdJmpp3G+LZeftGm9kASXLOrZb0N0kzJK2StEnS254UDaDSS05O1q5du5SYmChJysnJ0dq1a8tlTkpi/Rh9+efT1WNLrqpv36dqOU5nxlTXpI4t1aYMPSmpqalavXq1unXrJmn/ncm6d+/OpPkKFh4ertGjR+v+++9Xz5499eCDDzJk5yDXXHONtmzZoq+//trTOlrVbqXHL/5Un7Rvpy11qmhndKS21KmiPVe9LcWd7GltI0aM0B133FHmG3Mci9LS0nTHHXdoxIgRqlWrltfloBz44hkjzrkNKmJ+iXPu5oPW35L0VijqAoDDWbhwoU466SRFR0dLkrZs2aKcnBw1aNCgXM6fWD9GHw7sWC7nyjd9+nQlJSUpNjZW0v6QctFFF5XrNVA4M9O9996r7t276/7771fz5s01fPhw3XLLLUyqlxQdHa17771XQ4YMUceOHXXCCSd4Vkur2q1Us+Mg/VrjQdU6rrP+2D5Lp9b1tvdi4cKFmjJlit544w1P6/CjWbNm6ZJLLtHZZ5+tO+64w+tyUE746AwASung+Sj5twWNjIz0qqQj+u9//6sePXpIkrKzszVjxozgM14QGh06dNC3336rcePGady4cYqPj9fNN9+smTNnej7UyWtDhw5V+/bt1bt3b/3xxx+e1hIdHS9J2pezQ5KUm1u2G1aURWpqqi6//HINGjQo+BBWSJs3b9Z9992nc845Rw8++KDeffddhYeHH/lAHBUIKQBQSgfPR8m/M5HXz3koinNOEydOVP/+/SXt//QxNjZWrVu39riyysfM1LdvX/3888/6/vvvFRUVpX79+qlNmzYaNWqUNm3a5HWJnggPD9e7776rxo0bq1+/fp5OgI6K2h8G9u3bLkkKeBRSUlNT1bNnT3Xt2lVPP/20JzX4zaZNm/Too4+qWbNmWrZsmWbMmKG7777bt397UTqEFAAopYOfLxIIBHw9t+O3337T9u3bdeaZZ0qSJk2apD59+vA/do916NBBr7zyijZu3Khhw4bpq6++UsOGDdWnTx8988wzmj17tnJycrwuM2QiIyM1fvx41a5dW0lJSfr22289qSM/pOR42JOycuXKYEAZPXq0r/++VLQ9e/Zo/PjxOv/885WQkKCZM2fqm2++0YQJE9SuXTuvy0MFqLz/2gGgDDIzM7Vy5cpDhnv5+U3Exx9/rN69eysqKkrS/pDSr18/j6tCvqpVq+rqq6/Wd999p6VLl+r888/XnDlz1L9/f9WuXVvnnXeenn/+ec2bN++Yf+J4dHS0JkyYoKFDh+qiiy7SLbfcoh07doS0hoiI6oqIiFFu7v4nIuQGQhdSsrOz9dRTTykpKUnnnXdepQ0ogUBAP/zwg26++WbFxcXp0UcfVZcuXbR8+XJNmTKFW6cf46wyjH9NSEhw3JseQHmaNWuWBgwYoPT09GBPxMqVK9W2bVtlZWV5XN2hcnJy1LhxY7311lvq37+/Nm7cqISEBG3atEl16tTxujwcRiAQ0KJFizR16lRNnTpV33//vcLCwnTWWWepZ8+eOvvss9W2bdtj9k3sunXrdOutt+q3337T3//+d1111VUhm/c1e3Z/7cpcJklq0WK4GjW8ocKv+f333+v2229XVFSU3njjDZ1++ukVfk2/yMnJ0YIFCzRjxgz9+OOPmj59unJycnTllVfq2muvVadOnej5PYaYWYpzrsg7Uvji7l4AcLRZtGiRTjnllAL/w4yIiFBOTo5yc3N9N3nzq6++UkREhPr06SNJ+uabb9SpUycCylEgLCxM7dq1U7t27XTvvfcqNzdX8+fP19SpU/XNN99o+PDhio6O1umnn66kpKTg0qJFC9/9OyyNxo0ba9KkSRo3bpyefPJJPfLII7r33nt1ww036LjjjqvQa0dFxwVDSiC34j58cM7pu+++04svvqhp06bpscce0+DBgxURcWy/Tdu5c6dmzZoVDCWzZs1SRESEunbtqm7dumnQoEHq3LmzqlSp4nWp8MCx/a8fACpIcnKymjVrVmBbgwYN5JxTSkqKGjVq5FFlhXvjjTd08803B9+0fv311+rbt6/HVaE0wsPD1bFjR3Xs2FH333+/9u3bp59//lk///yzFi5cqOeff16//fabzExt27ZVUlKSTjnlFCUmJqp169aKj48/6j6NNjNdc801uvLKK/X555/rhRde0LBhw3TllVfq+uuvV5cuXSrkDX1UVHzwdf6wr/K0ZcsWvffeexo9enTwOR9vvvmm4uPjj3zwUcY5p+TkZM2ZM0c//vijfvzxRy1YsEANGzZUt27ddMkll+gf//iH2rRpc8z2CqJkGO4FAKVw0003qUGDBnriiScKbG/atKnGjBkTvM2vH6xbt04tWrTQmjVr1KBBA2VmZqpevXr68ccfmXB6jMrJydGKFSu0cOFCLVy4UL/++quWLl2qNWvWKCYmRq1btw6GlsTERLVs2VINGzYMzlc6GixcuFCvv/66PvnkE+Xm5qpfv34677zz1LdvX9WuXbtcrrFmzctaveZFSVLDhjeoZYvhZTqfc05Lly7VlClTNHnyZH377bfq3LmzbrzxRl1++eWqWrX0D2r1i0AgoLVr12rJkiUFlqVLl2r37t06+eST1a1bN3Xr1k1du3ZVw4YNvS4ZHmG4FwBUgLS0NHXseOiDFps1a6bVq1f7KqSMHj1a/fv3Dz5k8j//+Y8aN25cYNI/ji0RERFq3bq1WrdurYEDBwa37969W8uWLdPSpUu1ZMkSzZw5U2+//bZWrlyp3NxcxcXFqVGjRsGlcePGBdZr167tm16YpKQkvfbaa/rnP/+puXPnasKECRo5cqT+/Oc/q0uXLjr77LPVvn17tWvXTo0bNy5V3VHRB/aklHzivHNOGzZs0I8//qjJkydrypQp2rZtm8466yz16tVLL774olq0aFHi83otEAgoJSVFK1eu1IoVK7Ry5crg61WrViknJ0ctWrRQYmKiEhMT1a9fv2AYPpqCMLxFSAGAUti4cWOhD1Vr1qyZ1qxZ40FFhdu2bZteeeUVffzxx8Ft7733nq6++mrfvNlE6FSrVk3t27dX+/btC2zPzc1Venq61q1bp+TkZCUnJ2vdunWaMmVKcP2PP/5Q9erVDxtiGjRoEPL5A+Hh4ercubM6d+6sp556SuvXr9fEiRM1Y8YM/fvf/9aSJUtUs2ZNJSUlqX379kpKSlLjxo0VHx+v+Ph4xcTEFPm7EH3AcK/DPSclKytLqampwfB3YO9BZmamkpKS1Lt3b40dO1Zdu3ZVdHR0uf93KC979uzRxo0btXHjRqWmph7yOiUlRatXr1Z2drYaN26sFi1a6MQTT9SZZ56pG264QS1atFDz5s19/VBbHB0Y7gUApVC/fn199tln6ty5c4HtTz/9tH799Ve9//77HlVW0L333qulS5dq0qRJkvY/oblBgwZavny5mjRp4m1xOKpkZGRo/fr1wQCTH17y11NSUpSbm6uaNWuqbt26qlOnjurWrRtcilqvU6dOhQabrKwsLVmyRAsWLNCCBQu0cOFCrV+/Xhs3blRWVpaio6MVHx+vuLg4xcfHq2bNmqpSpYqioqJ03HFZ6tHzO0nSxo1xmvHjKdq6dWtw2bZtm7Zu3ardu3crIiJCLVu2DPYe5C8tWrTwPJQ457Rr1y6lpaUVGjwOXN+xY4fCw8MVFxen+vXrB8NcfHy86tevr/r166t58+Zq2rQpvSIoE4Z7AUA5y//UubCelJNPPlljxozxoKpDrVy5Uq+//rrmzp0b3PbRRx/p9NNPJ6CgxGJiYtSmTRu1adOm0P05OTnavHmztm7dqi1btmjLli0FXi9btkw//fRTgX35T5SPiYkpNMTExsaqWrVqql69+iFLYdujo6MP6RWJjo5Whw4d1KFDhwLbnXPKyMhQWlpa8E16Wlqadu3apb179yo7O1u7d//vg9yI8FzFxsaqWbNmqlOnziFL7dq1K2Tyfk5Ojnbu3KkdO3YEl4yMjALrhW07cD0jI0OBQEBVqlQ5JHS0bt1aZ599dnA9Pj5edevWZfI6PEdPCgCUUH5A2bNnzyGfkO7cuVO1a9fWihUrPA8Cl1xyierUqaM333wzuK1Lly667rrrdPvtt3tYGbDf3r17g0GmsHCTkZGhzMzM4LJ79+4C6/nb8t/LmFmh4eXAbVFRUYqIiCiwhIeHF7oeFhamDqf+SxER2dq5M04rlv9JZiYzU1hYWPC1mSknJ0d79+49ZNm3b1+pt+/cuVOZmZmS9t+KOiYmRrGxscHlcOsH74uNjdVxxx3HME/4Bj0pAFDONm7cqOOOO67QIRw1a9ZUly5d9M033+i2227zoLr9pk+frsmTJ2vFihXBbatWrdIvv/yiCRMmeFYXcKADP9kvLeecsrKyihVmMjMzlZ2dHXyeUU5OTnDZs2dPgfWcnBwFAgGd2CJMtWtL2dkZ+vnnn+WcCy6BQCD4OjIyUlWqVDlkiY6OLnR7/lLUcZGRkapRo0YwYFSvXp2AgUqFkAIAJZSWlnbYN1UXXnihPv30U89Cyp49e3TXXXfpr3/9a4Ehae+//7769u3LAxxxTDEzVa1aVVWrVlXdunXL/fwLFt6orVu/V6NGcRo/fny5nx9A4RhwCAAlVNSdvfJddtllmjp1qjZv3hzCqv5n0KBBqlmzph544IHgNuecxo0bp6uvvtqTmoCjVf4DHSviYY4AikZIAYAS2rJli44//vgi9zdq1EjdunXTq6++GsKq9hs7dqy++OILjR8/vsAtQOfNm6fU1FRdcMEFIa8JOJpFR+3/QCI3N8vjSoDKhZACACUUCAQUHh5+2DZPPvmkRo0aFdLelN9++0133XWXxo0bp4SEgnMR33nnHV1yySXHxBOtgVDKf6BjIEBPChBKhBQAKIUj3RmxW7duOuuss/T000+HpJ4dO3bo0ksv1ZAhQ9S7d+8C+7Zu3aoxY8Zo0KBBIakFOJbkP9AxENgr53I9rgaoPAgpAFBCZnbEkCJJI0aM0Guvvabk5OQKrScjI0N9+/ZV8+bN9be//e2Q/a+99po6d+58yHMiABxZ1AFPnc89zFPnAZQvQgoAlFBxbwOalJSkSy65RLfeeqtycnIqpJbt27erb9++io2N1aeffnrIMLSsrCy9/PLLuv/++yvk+sCxLjr6fzfJyA0wLwUIFUIKAJRCcR+E+8orryglJUV33nlnsY8prg0bNujMM89U7dq19fnnnxf63JZ3331X9erVU58+fcr12kBlER5eTRERsZKkAHf4AkKGkAIAJVSSB6rFxsZq4sSJmjhxYrnOT/n222/VpUsXde7cuciAEggENGrUKA0dOpSHwAFl8L87fDHcCwgVHuYIAKVQkl6Rhg0bauLEiTrzzDMlSQ888IAiIkr353fLli0aOnSoPvvsMz399NO68847iwwgX375pTIzMzVw4MBSXQvAflHR8dqVuYyQAoQQPSkAUELFnTh/oFNOOUXffvut3nvvPZ122mmaP39+iY7Pzc3Vv/71L7Vu3Vp//PGHlixZorvuuuuwPSTPPfecBg8erCpVqpToWgAKisrvSQkQUoBQoScFAEqotEOnOnXqpPnz5+vvf/+7unbtqltvvVXXXXed2rVrV+g5nXOaPXu2PvzwQ3300UcKCwvT66+/rosvvviINcycOVOLFi3SV199VapaAfxP8DbE9KQAIUNIAYASioyMVHZ2dqmOjYqK0uOPP67LLrtMI0aM0FlnnaXY2Fiddtppatq0qXbu3KmMjAxlZGRo6dKl+uOPP3TJJZdo7Nix6tmzZ7GHiT333HO67bbbFBsbW6o6AfxPVDRzUoBQI6QAQAnFx8crLS2tTOdo27atPvjgA2VlZWnWrFmaO3euNmzYoHr16qlFixaKiYnRX/7yF51zzjmKiooq0bnnzZunSZMmafny5WWqEcB+tWt11XGxnRQTc7LXpQCVhpX3LTH9KCEhwW3YsMHrMgAcI3766Sddfvnl8uPfFeeczjzzTPXo0UNPPfWU1+UAAFAoM0txziUUtZ+J8wBQQvXr11daWppyc3O9LuUQH3zwgdauXauHHnrI61IAACg1QgoAlFB8fLxyc3O1efNmr0spIDMzUw888ICeffZZVa9e3etyAAAoNUIKAJRQVFSU4uPjtXr1aq9LKeCZZ55Ro0aNdNVVV3ldCgAAZUJIAYBSaNmypa8mpq9du1ajRo3SSy+9xNPlAQBHPUIKAJSC30LK0KFDNXDgQHXs2NHrUgAAKDNuQQwApdCyZUvNmjXL6zIkSVOnTtXkyZN9FZoAACgLelIAoBSSkpI0e/ZseX0b971792rw4MF65JFHFBcX52ktAACUF0IKAJRCt27dtGXLFv3++++e1jFs2DBFRERo8ODBntYBAEB5IqQAQClUrVpV3bt31zfffONZDZMnT9brr7+uDz74QFWqVPGsDgAAyhshBQBKqU+fPpo8ebIn1960aZP+/Oc/68UXX1SrVq08qQEAgIpiXo+nDoWEhAS3YcMGr8sAcIxZvHixOnXqpG3btik6Ojpk183NzVX//v0VExOjjz76iFsOAwCOOmaW4pxLKGo/PSkAUEqJiYmqU6eOvvvuu5Be95FHHtG6des0evRoAgoA4JhESAGAUjIzXXfddXrrrbdCds3PPvtM//znP/Xvf/9bsbGxIbsuAAChxHNSAKAMbrnlFrVo0UIbNmxQQkKRvdblYuHChbr++us1duxYtW7dukKvBQCAl+hJAYAyaNy4sXr37q1XX321Qq8zf/58nX322Ro+fLguuuiiCr0WAABeI6QAQBkNHz5c/+///T9V1A065s2bp3POOUd//etf9cADD1TINQAA8BNCCgCUUefOnXXhhRdq2LBh5X7uOXPm6Nxzz9Xw4cN1//33l/v5AQDwI0IKAJSDZ555Rp999pkmTJhQbuf87rvv1Lt3bz322GMaMmRIuZ0XAAC/80VIMbOXzGytmTkza1tEmx5mttvMFhywVA11rQBQmEaNGmn06NG69tprtXLlyjKdyzmnZ599VhdccIFeeOEFDR48uJyqBADg6OCXu3t9ImmkpB+P0G6Jc65jCOoBgBK74oorNGfOHPXv31+TJk1Ss2bNSnyOlJQU3XnnnVq0aJF++OEHnXrqqRVQKQAA/uaLnhTn3A/OOR4JD+CoN3LkSJ133nnq0qWLfvrpp2Ift3fvXo0cOVInnXSSqlevrnnz5hFQAACVll96UoqrlZn9IilX0hjnXMXe8xMASig8PFz/+Mc/1KRJE5177rm6+OKL9fjjj6t58+aFtk9OTtbbb7+tt99+W7Vr19aECRPUvXv3EFcNAIC/HE0h5RdJCc65HWaWIGmimW1xzn10cEMzGyIpOMuUpzIDCLXBgwfroosu0iOPPKKTTjpJbdu21emnn66aNWsqMjJSa9eu1bx587R69Wr169dPb7zxhvr27avw8HCvSwcAwHPmnPO6hiAzWyvpfOfcb8Vo+5Ck+s65QUdqm5CQ4Crq+QUAcCRbt27VlClTtGDBAu3evVt79+5VgwYNdOqpp6pTp046/vjjvS4RAICQMrMU51xCkfuPlpBiZvGS0p1zATOrKWmSpLedc/93pPMSUgAAAAD/OFJI8cXEeTN7xcw2SEqQ9K2ZrczbPtrMBuQ1u0TSr2a2UNIsSVMkjfGkYAAAAAAVxlc9KRWFnhQAAADAP46KnhQAAAAAyEdIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvkJIAQAAAOArhBQAAAAAvlKskGJmT5jZcbbfV2a2xcwuqejiAAAAAFQ+xe1JudA5t13SuZJyJHWVNKyiigIAAABQeRU3pATyvnaX9LFzblkF1QMAAACgkosoZrtMM/urpIGSuppZmKQqFVcWAAAAgMqquD0p10uKk/SAcy5dUjNJ4yqqKAAAAACVlznnvK6hwiUkJLgNGzZ4XQYAAAAASWaW4pxLKGr/YYd7mdmzzrkHzexjSYekGefc5eVQIwAAAAAEHWlOyo95XydUdCEAAAAAIB0hpDjnvsz7OvbgfWbGxHkAAAAA5a64D3OcYGa1DlhvJmlmhVUFAAAAoNIq7t29vpf0s5l1MbPL89ZHVlxZAAAAACqrYj0nxTn3nJnNkTRV0lZJZznnVlVoZQAAAAAqpeIO92oi6TlJYyWtlfSwmUVXXFkAAAAAKqviDveaLmmUc+42SWdJ+kPSnAqrCgAAAEClVazhXpLOdc4tkyTnXK6koWZ2XsWVBQAAAKCyKu6clGWSZGYRkvJvPTy1oooCAAAAUHkVd07KaWb2q6QsSTsPWAAAAACgXBV3uNdLkm6W9Lr2z0m5W9KeiioKAAAAQOVV3Inzkc652ZIinHM7nXMjJA2owLoAAAAAVFLFDSk5eV+3mlk7M6srqXEF1QQAAACgEivucK8PzayOpL9L+iHvuEcrrCoAAAAAlVZx7+71j7yXk/PCSrRzjonzAAAAAMpdcYd7BTnn9pV3QDGzl8xsrZk5M2t7mHY3mdkKM1tlZm/m3RIZAAAAwDGkxCGlgnwiqZukdUU1MLOmkp7Ma3eipDhJN4WkOgAAAAAh44uQ4pz7wTm34QjNLpX0b+dcunPOaf/tkK+s+OoAAAAAhNJhQ4qZ3RuqQoqhkQr2tKzN2wYAAADgGHKknpQ+ZjbNzPwSBtwBr62oRmY2xMw25C+7du0KQWkAAAAAysNhQ4pzrq+kcZJmmNkNoSmpSMmSmhyw3jhv2yGccy845xLylxo1aoSiPgAAAADl4IhzUpxzb0k6W9ILZrbFzDaZ2WYz21Tx5RXwqaSLzKyemZmk2yV9GOIaAAAAAFSwI4YUMztV0mfaHwhOk9RJUse8r+XCzF4xsw2SEiR9a2Yr87aPNrMBkuScWy3pb5JmSFolaZOkt8urBgAAAAD+YPtvlFXETrOnJF0t6Xbn3Dchq6qcJSQkuA0bjnTzMAAAAAChYGYpzrmEovYf6WGITSS1d85tL8+iAAAAAKAohw0pzrlrQlUIAAAAAEg+eZgjAAAAAOQjpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFUIKAAAAAF8hpAAAAADwFV+EFDNrYWY/mdlyM5tjZomFtOlhZrvNbMEBS1Uv6gUAAABQcSK8LiDPG5LedM69Y2aXSnpbUpdC2i1xznUMbWmQpM8/f13Pr/lSGdV3KCYzVvc3v1AXDrjV67IAAABwDPK8J8XMTpDUQdJ7eZs+ldTUzJp4VhQK+Pzz1zX8j9e1vdZ6uagd2l5rvYZtfVVf/OdNr0sDAADAMcjzkCKpoaRU51yOJDnnnKRkSY0KadvKzH4xs7lmdmcoi6zMnl/zpWQBmTlJ2v/VAnpu1RceVwYc+854+wzFPR+nWRtmeV0KUKk0f6m5mv+/5l6XAVRafhnu5Q5at0La/CIpwTm3w8wSJE00sy3OuY8ObmhmQyQNyV+PjY0t12Irm4zqO4IBJZ+ZU0b1HR5VBFQeyTuSlZ6ZrvRd6V6XAlQqKRkpcoe8PQEQKn7oSVkvKcHMIiTJzEz7e1eSD2zknMtwzu3Ie71B0geSzizshM65F5xzCflLjRo1KvQbONbFZMbKuYK50TlTTCbhDwAAAOXP85DinNskab6ka/I2XSJprXNu7YHtzCzezMLyXteUdH7ecahg9ze/UHJhwaDinEkubP92AAAAoJx5HlLy3CbpNjNbLumvkm6SJDMbbWYD8tpcIulXM1soaZakKZLGeFFsZXPhgFs1os6d2rezngJ7Y3TcHw01os6d3N0LAAAAFcIXc1Kcc8tUyC2HnXM3H/D6n5L+Gcq68D8XDrhVlz55lyLDIrV42G6vywEAAMAxzC89KQAAAAAgiZACAAAAwGcIKQAAAAB8hZACAAAAwFcIKQAAAAB8hZACAAAAwFcIKQAAAAB8hZACAAAAwFcIKQAAAAB8hZACAABQCJN5XQJQaRFSAAAAAPgKIQUAAACArxBSAAAAAPgKIQUAfMzJeV0CUCnxuwd4i5ACAAAAwFcIKQAAAAB8hZACAAAAwFcIKQAAAAB8hZACAAAAwFcIKQAAAAB8hZACAAAAwFcIKQAAAAB8hZACAAAAwFcIKQBwFDAzr0sAACBkCCkAAAAAfIWQAgAAAMBXCCkAAAAAfIWQAgAAAMBXCCkAAAAAfIWQAgAAAMBXCCkAAAAAfIWQAgAAAMBXCCkAAAAAfIWQAgAAAMBXCCkAAAAAfIWQAgAAAMBXCCkAAAAAfIWQAgAAkGflypV66aWXlJOTo305+/Tyyy9r1apVXpcFVDqEFAAAUOmlpqbq6quvVps2bTRhwgRJksn0+eefKzExUX/+85+VlpbmcZVA5UFIAQAAldqvv/6q9u3bKyMjQ1dddZVWrFihQG5Aubm5mj17ts455xytW7dOHTp00JIlS7wuF6gUCCkAAKDSWrZsmXr06KHTTjtN3377rfbs2aM33nhDVapUUVRUlGbMmKGOHTtq/vz5qlu3rrp3766VK1d6XTZwzCOkAACASiknJ0cDBw5U06ZNNWfOHE2ZMkUffvihevfuLdn+NklJSXriiSf0+++/q2bNmoqOjtbAgQOVm5vrbfHAMY6QAgAAKqVXXnlFGzdu1Pr16zVz5kx169atyLb169fX5MmT1ahRIy1btkxvvvlmCCsFKh9CCgAAqHT27NmjYcOGaceOHRo3bpyaNWt2xGOqV6+ujz/+WIFAQPfff7+ys7NDUClQORFSAABApTNt2jRJ0rXXXqtzzz232MfVr19fTz/9tLKzs/XDDz9UUHUACCkA4DO7d+/WmDFj1KlTJ6WmpkqSLrv8Mp1xxhkaN24cn94C5eA///mP9u7dq1tvvbXEx95yyy1yzun999+vgMoASIQUAPCVqVOnql69errxxhuVmpqqqlWrSpK6dO6i1atX65prrlFcXJzmzJnjcaXA0cs5p88++0zHH3+8Tj311BIfX7VqVbVt21YTJ06sgOoASD4JKWbWwsx+MrPlZjbHzBKLaHeTma0ws1Vm9qaZRYS6VgCoKJMnT9a5556r448/XkuWLFFKSopq1aolSRoyZIjS0tL066+/qkaNGjrjjDM0e/ZsjysGjk4rVqzQ5s2bdd1118nMCm1jKnx7vksvvVSbN2/W2rVrK6BCAL4IKZLekPSmc66lpJGS3j64gZk1lfSkpG6STpQUJ+mmUBYJABXFOacbbrhBCQkJWrp0qVq3bl1ou7Zt22rFihWqU6eOrrvuuhBXCRwb5s2bp7CwMF188cWF7g9k56rhvnqqm3tckecYMGCAzIwPC4AK4nlPhJmdIKmDpN55mz6V9E8za+KcW3tA00sl/ds5l5533OuSHtD+gIMK9uCDDypQJUeBXOntUaN00403el1SxahWTYqK8roKVEITJkzQxo0b9c033yjqgH+DJ2yPVGq45HZmSNu2SZKiJb3xzDO68cYbNW/KlJINVyniU+NSKa9zmUmxseVzLqAYtm/frtzcXDVo0KDwBgEnSaqRW1UqYg5Yk/h4RQQC2p6eXmSbAvz4uxcWJoWHl8+5gHLmeUiR1FBSqnMuR5Kcc87MkiU1krT2gHaNJK07YH1t3jaEwEsvvax6d5mabM/RTU8PlYYO9bqkinHyydKiRV5XgUpo1qxZCg8PV69evQpsP+fXgBa0k+yaa6Vl/9v+p7xFvXvrqBcRIe3b53UVqEQ2b94sSapdu3ah+8OqRih8e6oi9+VI0dGFtomRlC1JgwfvX45GrVtLS5Z4XQVQKD+EFElyB60X9RGBK0YbmdkQSUPy12P5hK7MatU6Tr03xqr2HmlH+ArF1qzpdUkV41j9vuB7NWvWVG5urvbs2ROcLC9JiozUJctrKKtGDem4rODmgHPavmOHqlerpqgqVTyouBzlzbsBQiUyMlKSipyPIkn9trdQeHaWFLut0P0B55SRkaGq0dEFej9LzR38VigEatQI/TWBYvJDSFkvKcHMIpxzObb/L0ZDSckHtUuW1OSA9caFtJEkOedekPRC/npCQoIHv/nHlpkzZ+r666/XlurVZdtmSzExXpcEHFOuvfZaDRs2TA899JBefPHF4PbnP1ql1b/MVZ2ERtIJ9YLbrxo4UJ9++qm2pKYqig9igBKJyft/WFZWlqoUEfLvi98/mtxt7SYLPzTMrFy+XK1bt9a/3n5bV111VcUVC1RSnk+cd85tkjRf0jV5my6RtPag+SjS/rkqF5lZvbwgc7ukD0NWaCXXuHFjTZ06VRMmTAj+cQdQfho0aKCLLrpIL7/8siZMmFBgX7MOnRR7QEB555139NFHH+mWW26hpxgohWbNmik8PLxYt/IO7Cl8KOLixYsVFhamevXqFbofQNl4HlLy3CbpNjNbLumvyrtrl5mNNrMBkuScWy3pb5JmSFolaZMKuQsYAByt3n33XbVp00YDBgxQr1699PXXXysnJ0eStHfvXn322Wfq2rWrbrzxRnXt2rVAjwuA4jvrrLPknNOHHxb9WWf1zvGSJKtS+MTyt956S5LUtWvX8i8QgMx5MQYyxBISEtyGDRu8LgMAjig3N1cPPfSQXn/9de3atUtmpvDw8GBYOe644zRkyBANGzbssOPpARzeKaecoq1btyolJaXQ/c65In/Hdu7cqTp16qhz58764YcfKrJM4JhlZinOuYSi9vthTgoAIE94eLhGjhypZ599VnPmzNGECROUkZGhWrVq6aKLLtIpp5xCOAHKwRVXXKHhw4dr/fr1atiw4SH7D/d79sUXX6hKlSq64oorKrJEoFKjJwUAAFQ6y5YtU2Jioi699FKNHz++2MdlZ2erQ4cO+v3337VixQo1a9asAqsEjl1H6knxy5wUAACAkGnZsqU6deqkzz//XBMnTiz2cX/961+1ZcsWde/enYACVCBCCgAAqHTMTKNHj5ZzTldccYVmzJhx2PbOOY0aNUr/93//px07dui1114LUaVA5URIAQAAlVLbtm318MMPq2rVqurTp49eeuml4E0qDrRx40Zdf/31GjlypGrUqKFHH31UrVq18qBioPJgTgoAAKi0cnNzddNNN2nKlCmqUqWKAoGABgwYoJNOOkl79uzR7Nmz9dVXX+mMM87Q8uXL1adPH73xxhsKC+NzXqAs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",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"N = 1000\n",
"\n",
"# Start with ground truth\n",
"values = gtsam.Values(truth)\n",
"\n",
"big_graph = graph.linearize(values) # first time it's small!\n",
"bayes_net = big_graph.eliminateSequential()\n",
"delta = bayes_net.optimize()\n",
"\n",
"marginals_figure(truth, marginals, keys)\n",
"evolution = {x1: [gtsam.Point2(0, 0)], x2: [gtsam.Point2(2, 0)], x3: [\n",
" gtsam.Point2(4, 0)], l1: [gtsam.Point2(2, 2)], l2: [gtsam.Point2(4, 2)]}\n",
"\n",
"for it in range(10):\n",
" # Use the Bayes net to sample from q:\n",
" tangent_samples = sample_bayes_net(bayes_net, N)\n",
" mean_correction = delta.scale(-1)\n",
" manifold_samples = [perturb(tangent_samples, values, s, mean_correction) for s in range(N)]\n",
"\n",
" # Add new linearized factors for every sample:\n",
" big_graph = gtsam.GaussianFactorGraph()\n",
" for manifold_sample in manifold_samples:\n",
" sample_graph = graph.linearize(manifold_sample)\n",
" big_graph.push_back(sample_graph)\n",
"\n",
" # # Add Levenberg-Marquardt-style prior on delta\n",
" if True:\n",
" _lambda = 0.01\n",
" for key in [x1, x2, x3]:\n",
" big_graph.add(gtsam.JacobianFactor(key, np.eye(3), np.zeros((3,)), \n",
" noiseModel.Isotropic.Sigma(3, _lambda)))\n",
" for key in [l1, l2]:\n",
" big_graph.add(gtsam.JacobianFactor(key, np.eye(2), np.zeros((2,)), \n",
" noiseModel.Isotropic.Sigma(2, _lambda)))\n",
"\n",
" # Solve by calculating Bayes net and solving:\n",
" bayes_net = big_graph.eliminateSequential()\n",
" delta = bayes_net.optimize()\n",
" print(f\"it {it+1}, norm of delta: {np.linalg.norm(delta.vector()):.4f}\")\n",
" # display(delta)\n",
" # printPQ(bayes_net)\n",
"\n",
" # update non-linear estimate\n",
" values = values.retract(delta)\n",
"\n",
" # Record evolution\n",
" iterate = values.retract(delta)\n",
" for key in [x1, x2, x3]:\n",
" evolution[key].append(iterate.atPose2(key).translation())\n",
" for key in [l1, l2]:\n",
" evolution[key].append(iterate.atPoint2(key))\n",
"\n",
"# show evolution:\n",
"for key in [x1, x2, x3, l1, l2]:\n",
" points = np.array(evolution[key]).T\n",
" plt.plot(points[0], points[1])\n",
"\n",
"# update non-linear estimate\n",
"final = values.retract(delta)\n",
"\n",
"# show new covariances\n",
"new_marginals = gtsam.Marginals(big_graph, final)\n",
"for key in [x1, x2, x3]:\n",
" gtsam_plot.plot_pose2(0, final.atPose2(key), 0.5,\n",
" N*new_marginals.marginalCovariance(key))\n",
"for key in [l1, l2]:\n",
" gtsam_plot.plot_point2(0, final.atPoint2(key), 0.5,\n",
" N*new_marginals.marginalCovariance(key))\n",
"\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"id": "e91eb0a5",
"metadata": {},
"source": [
"## Compared with MCMC\n",
"\n",
"The above converges but is very conservative. The culprit seems to be either (a) a bug in the implementation above, or (b) more likely, that the Kullback-Leibler divergence $D_\\text{KL}(q\\|p)$ is a poor approximation scheme in this case. \n",
"\n",
"If we use MCMC sampling instead, and fit Gaussian densities to the samples, we get a very different answer:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "664286f9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"nr_accepted=15063\n"
]
},
{
"data": {
"image/png": "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1RW7KcuiIWEiIiIiIhtcOBzmyJEjs+6vFwosIiJyhWg06t6ura0tWjtERGTlrKeQkk+BRUREZolGo5w4cYJoNEptbS0HDx5UaBERWYempqbc24FAoIgtuTYKLCIicoVoNEpnZyc9PT3FboqIiFyFqakp+vv7mZqaIhAI0Nraum5Diybdi4jIFWpra+np6VHPiojIOjY1NUU4HJ7V07IeqYdFRERmcYaB5d8XEZH1JxAIEIlE1m3PikOBRURErqCQIiKyvjnDwPLvr1cKLCIiIiIiG9B6Din5NIdFRERERERKlgKLiIiIiIiULAUWEREREREpWQosIiIiIiJSsjTpXkRECkqlUu5tn89XxJaIiMj1TIFFRESukEqliEQipFIpfD4f4XBYoUVERIpCQ8JERKSgVCpFMBic1dMiIiKy1hRYRESkIJ/PRywWU8+KiIgUlYaEiYjIFZxhYPn3RUREikGBRUREClJIERGRUqAhYSIiIiIiUrIUWEREREREpGQpsIiIiIiISMlSYBERERERkZKlwCIiIiIiIiVLgUVEREREREqWAouIiIiIiJQsBRYRERERESlZCiwiIiIiIlKyFFhERERERKRkKbCIiIiIiEjJUmAREREREZGSpcAiIiIiIiIlS4FFRERERERKlgKLiIiIiIiULAUWEREREREpWQosIiIiIiJSshRYRERERESkZCmwiIiIiIhIyVJgERERERGRkqXAIiIiIiIiJaskAosxZqcx5ofGmNeNMceMMXsLbPNjxpi4MeZE3legGO2VaYkfPMKFD7+Fc4f3cOHDbyHx5KPFbpKIiIiIbDDeYjdgxpeA+621f2mM+Qjw58DRAtudttbesrZNk0ISP3iEnl/8FWwOwJB+LcrkL/yfdN4P/ts/UOzmiYiIiMgGUfQeFmNME3AT8DczD30V2GqM6Sxao2RRw7//225YmWawuenHRWTlffArH+SDX/lgsZshsqHpfSZSmkqhh6UdGLDWZgCstdYY0wt0AD1ztt1tjHkByAJ/Ya39k0I7NMZ8Fvisc7+mpmY12n1dS/aP8aOw4jAk+6JFaI3Ixtc92l3sJohseHqfiZSmovewzLBz7s89EwZ4AWiz1t4E3A18whjzLwruzNovWmvbnK9gMLjCzZWK1hqu/LNZKtpqi9AaEREREdmoSiGwXADajDFeAGOMYbrXpTd/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xAna2to4evQo73jHO9i0aRMTExMYY9i/fz+XLl0iGo0SjUYJhULE43EymQybNm0iGo0W+8cSuW4osIiIiMiGtmnTJl599VVaWlrweDzccMMN3HfffUxNTZFKpbjxxhsJh8PceuutbuWvXC5HdXW1W844l8tRUVGB1+t1q46JyNow1tpit2HVtbW12b6+vmI3Q0RERIqgv7/fvd3a2ko2m2VqaopsNuuWIPZ4PPM+7qxwD5B/3qTQInL1jDH91tq2pWyrHhYRERHZ0OauQj/fOinzPV5RUbEGrRSR+SiwiIiIyHVnvnVStH6KSOlRWWMRERERESlZCiwiIiIiIlKyFFhERERERKRkKbCIiIiIiEjJUmAREREREZGSpcAiIiIiIiIlS4FFRERERERKlgKLiIiIiIiULAUWEREREREpWQosIiIiIiJSshRYRERERESkZCmwiIiIiIhIyVJgERERERGRkqXAIiIiIiIiJUuBRURERERESpYCi4iIiIiIlCwFFhERERERKVkKLCIiIiIiUrKKHliMMZXGmK8YY84ZY143xvzzBba1xpiTxpgTM19vW8u2ioiIiIjI2vIWuwHA54CktXaHMWYr8LQx5nFr7eg8299mrY2tYftERERERKRIit7DAvwk8McA1to3gO8DHypqi0REREREpCSUQmDpAN7Mu98z89h8vmeMeckY80VjTFWhDYwxnzXG9DlfsZg6ZERERERE1qNVDyzGmB8YY0bm+Wqf2czmP2WB3W2x1t4C3AY0Al8otJG19ovW2jbnKxgMrswPIyIiIiIia2rV57BYaxecGG+M6QU6geGZh7YA/2ueffXO/DtpjPkT4P6Va6mIiIiIiJSaUhgS9hDwrwBmJt3fATwydyNjTJ0xpnLmdhnTc19eXMN2ioiIiIjIGiuFwPIFIGCMOQd8E/hX1toIgDHmE8aY35rZrgt4xhjzEnAKqAd+qQjtFRERERGRNWKstYtvtc61tbXZvr6+YjdDREREREQAY0y/tbZtKduWQg+LiIiIiIhIQQosIiIiIiJSshRYRERERESkZCmwiIiIiIhIyVJgERERERGRkqXAIiIiIiIiJUuBRURERERESpYCi4iIiIiIlCwFFhERERERKVkKLCIiIiIiUrIUWEREREREpGQpsIiIiIiISMlSYBERERERkZKlwCIiIiIiIiVLgUVE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",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"markov_blankets = defaultdict(gtsam.NonlinearFactorGraph)\n",
"for i in range(graph.size()):\n",
" factor = graph.at(i)\n",
" for j in factor.keys():\n",
" markov_blankets[j].add(factor)\n",
"\n",
"def accept(log_a):\n",
" \"\"\"calculate acceptance, with some care to avoid overflow.\"\"\"\n",
" if log_a >= 0:\n",
" return True\n",
" if log_a < -10:\n",
" return False\n",
" return np.random.uniform() < math.exp(log_a)\n",
"\n",
"def plot_sample(manifold_sample, alpha=0.1):\n",
" points = np.empty((2, 5))\n",
" for i in [1, 2, 3]:\n",
" points[:,i-1] = manifold_sample.atPose2(gtsam.symbol('x', i)).translation()\n",
" for j in [1, 2]:\n",
" points[:,j+2] = manifold_sample.atPoint2(gtsam.symbol('l', j))\n",
" plt.plot(points[0], points[1], 'k.', markersize=5, alpha=alpha)\n",
" return points\n",
"\n",
"marginals_figure(truth, marginals, keys)\n",
"N = 50000\n",
"stats = []\n",
"nr_accepted = 0\n",
"gbn = graph.linearize(truth).eliminateSequential()\n",
"tangent_proposals = sample_bayes_net(gbn, N)\n",
"\n",
"# Start with an initial estimate x\n",
"x = gtsam.Values(truth)\n",
"for s in range(N):\n",
" # choose a variable to perturb\n",
" j = keys[np.random.choice(5)]\n",
" vvj = gtsam.VectorValues()\n",
" vvj.insert(j, tangent_proposals[j][:, s])\n",
" p = x.retract(vvj)\n",
" # calculate local acceptance ratio\n",
" log_a = markov_blankets[j].error(x) - markov_blankets[j].error(p)\n",
" if accept(log_a):\n",
" nr_accepted += 1\n",
" x = p\n",
" stats.append(plot_sample(x, alpha=0.01))\n",
"\n",
"print(f\"{nr_accepted=}\")\n",
"\n",
"# estimate Gaussian params\n",
"stats_tensor = np.array(stats)\n",
"mean = stats_tensor.mean(axis=0)\n",
"for j in range(5):\n",
" centered = stats_tensor[:,:,j] - mean[:,j]\n",
" P = (centered.T @ centered)/(nr_accepted-1)\n",
" gtsam_plot.plot_point2(0, mean[:,j], 'r', P)\n",
"\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2523a667",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"interpreter": {
"hash": "eb6fa735d46fb17535ab2fae1363b5f0bf3cf0002d8c03a0f1f784c03cf9acc5"
},
"kernelspec": {
"display_name": "Python 3.8.12 ('nbdev')",
"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.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}