Skip to content

Instantly share code, notes, and snippets.

@fehiepsi
Last active January 30, 2020 16:50
Show Gist options
  • Save fehiepsi/ad865d22bdd0759a8beb44767015451d to your computer and use it in GitHub Desktop.
Save fehiepsi/ad865d22bdd0759a8beb44767015451d to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# NeutraHMC on a Banana Gaussian Distribution"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import argparse\n",
"import logging\n",
"from functools import partial\n",
"\n",
"import jax.numpy as np\n",
"from jax.random import PRNGKey\n",
"from jax import lax, vmap\n",
"from jax.tree_util import tree_map\n",
"import numpy as onp\n",
"import torch\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"import numpyro\n",
"from numpyro import optim\n",
"from numpyro.contrib.autoguide import AutoContinuousELBO, AutoBNAFNormal\n",
"import numpyro.distributions as dist\n",
"from numpyro.distributions import constraints\n",
"from numpyro.infer import MCMC, NUTS, SVI\n",
"from numpyro.infer.util import initialize_model, transformed_potential_energy\n",
"from numpyro.diagnostics import print_summary\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Defining the Distribution and Model"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"class BananaGaussian(dist.Distribution):\n",
" support = constraints.real_vector\n",
"\n",
" def __init__(self, a, b, rho=0.9):\n",
" self.a = a \n",
" self.b = b\n",
" self.rho = rho\n",
" self.mvn = dist.MultivariateNormal(np.array([0., 0.]), \n",
" covariance_matrix=np.array([[1., self.rho], [self.rho, 1.]]))\n",
" super().__init__(event_shape=(2,))\n",
"\n",
" def sample(self, key, sample_shape=()):\n",
" u = self.mvn.sample(key, sample_shape)\n",
" u0, u1 = u[..., 0], u[..., 1]\n",
" a, b = self.a, self.b\n",
" x = a * u0 \n",
" y = (u1 / a) + b * (u0 ** 2 + a ** 2)\n",
" return np.stack([x, y], -1)\n",
"\n",
" def log_prob(self, x):\n",
" x, y = x[..., 0], x[..., 1]\n",
" a, b = self.a, self.b\n",
" u0 = x / a\n",
" u1 = (y - b * (u0 ** 2 + a ** 2)) * a\n",
" return self.mvn.log_prob(np.stack([u0, u1], axis=-1))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"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": [
"x1 = np.linspace(-4, 4, 100)\n",
"x2 = np.linspace(-2, 9, 100)\n",
"X1, X2 = np.meshgrid(x1, x2)\n",
"d0 = BananaGaussian(1.15, 0.9) # more extreme case try (1.15, 1.96)\n",
"P = np.exp(d0.log_prob(np.stack([X1, X2], axis=-1)))\n",
"plt.contourf(X1, X2, P, cmap='OrRd');"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def model(a, b, rho=0.9):\n",
" numpyro.sample('x', BananaGaussian(a, b, rho))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Run Vanilla HMC"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"sample: 100%|██████████| 1500/1500 [00:03<00:00, 413.99it/s, 7 steps of size 2.18e-01. acc. prob=0.95]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" mean std median 5.0% 95.0% n_eff r_hat\n",
" x[0] -0.19 0.99 -0.14 -1.89 1.31 73.79 1.01\n",
" x[1] 1.73 1.04 1.49 0.33 3.13 132.00 1.00\n",
"\n",
"Number of divergences: 0\n"
]
}
],
"source": [
"#pyro.set_rng_seed(0)\n",
"\n",
"nuts_kernel = NUTS(model)\n",
"mcmc = MCMC(nuts_kernel, num_warmup=500, num_samples=1000)\n",
"mcmc.run(PRNGKey(0), 1.15, 0.9)\n",
"mcmc.print_summary()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"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": [
"vanilla_samples = mcmc.get_samples()['x']\n",
"f, ax = plt.subplots(1, 1)\n",
"ax.contourf(X1, X2, P, cmap='OrRd')\n",
"sns.scatterplot(vanilla_samples[:, 0], vanilla_samples[:, 1], alpha=0.3, ax=ax);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Fit a BNAF autoguide"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Start training guide...\n",
"Finish training guide. Extract samples...\n"
]
}
],
"source": [
"guide = AutoBNAFNormal(model, num_flows=1)\n",
"svi = SVI(model, guide, optim.Adam(0.01), AutoContinuousELBO(), a=1.15, b=0.9)\n",
"svi_state = svi.init(PRNGKey(1))\n",
"\n",
"print(\"Start training guide...\")\n",
"last_state, losses = lax.scan(lambda state, i: svi.update(state), svi_state, np.zeros(6000))\n",
"params = svi.get_params(last_state)\n",
"print(\"Finish training guide. Extract samples...\")\n",
"guide_samples = guide.sample_posterior(PRNGKey(0), params,\n",
" sample_shape=(1000,))['x'].copy()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"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": [
"plt.plot(losses[1000:]);"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD4CAYAAAD4k815AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzd2ZMdZ3rn9++b68k8+1Z1akUBKAAECTbZ3VRvai2jGcXIHnk0DjsmHOGxw/ZF33kLOxwe38w/4HB4rhzRMQ5HOKzwxWh0Ic8oNJK61S231RvZzQUgdqAKtZ/9nDwn98zXF0VCZDfZBMkiARTezxWqkPVmngPyV8958n3fFFJKFEVRlNNDe9wXoCiKopwsFeyKoiinjAp2RVGUU0YFu6Ioyimjgl1RFOWUMR7HSVvNhtxYX3kcp1YURXlqvfb61b6Usv1Rxz2WYN9YX+Gnf/XHj+PUiqIoTy2tfnH7kY77rC9EURRF+XypYFcURTllVLAriqKcMirYFUVRThkV7IqiKKeMCnZFUZRTRgW7oijKKaOCXVEU5ZRRwa4oinLKqGBXFEU5ZVSwK4qinDIq2BVFUU4ZFeyKoiinjAp2RVGUU0YFu6IoyilzIsEuhPhvhRDXhBBXhRD/txCicBLjKoqiKB/fpw52IcQK8F8Br0gprwA68B992nEVRVGUT+akWjEG4AghDMAF9k9oXEVRFOVj+tTBLqXcA/5n4AFwAEyklH/+i8cJIb4lhHhVCPFqrz/8tKdVFEVRPsRJtGLqwB8AZ4FloCiE+Ce/eJyU8ttSyleklK+0W41Pe1pFURTlQ5xEK+bvAfellD0pZQL8MfCNExhXURRF+QROItgfAF8TQrhCCAH8XeD6CYyrKIqifAIn0WP/MfBHwM+At94Z89ufdlxFURTlkzFOYhAp5T8D/tlJjKUoiqJ8OmrlqaIoyimjgl1RFOWUUcGuKIpyyqhgVxRFOWVUsCuKopwyKtgVRVFOGRXsiqIop4wKdkVRlFNGBbuiKMopo4JdURTllFHBriiKcsqoYFcURTllVLAriqKcMirYFUVRThkV7IqiKKeMCnZFUZRTRgW7oijKKaOCXVEU5ZRRwa4oinLKqGBXFEU5ZVSwK4qinDIq2BVFUU4ZFeyKoiinjAp2RVGUU0YFu6Ioyimjgl1RFOWUUcGuKIpyyqhgVxRFOWVUsCuK8ljJ0c3HfQmnjgp2RVEem3dDXYX7yVLBriiKcsqcSLALIWpCiD8SQtwQQlwXQnz9JMZVFOX0UlX6Z8c4oXH+OfBnUsr/UAhhAe4JjasoyimkQv2z9amDXQhRAX4T+M8ApJQxEH/acRVFOZ1UqH/2TqIVcw7oAf+HEOLnQoh/IYQo/uJBQohvCSFeFUK82usPT+C0iqI8bT4s1EX90ud8JafbSQS7AXwJ+N+klF8E5sD/+IsHSSm/LaV8RUr5SrvVOIHTKoqiKB/kJIJ9F9iVUv74na//iOOgVxRFeUi1YD4/nzrYpZSHwI4Q4t3PUn8XePvTjqsoyunxq0JdtWFO3knNivkvgT98Z0bMPeA/P6FxFUV5yqlK/fN3IsEupXwdeOUkxlIU5fT4qFBX1fpnQ608VRRFOWVUsCuK8plQLZjHRwW7oign7lFCXbVhPjsq2BVFOVGqUn/8VLArinJiHjXUVbX+2VLBriiKcsqoYFcU5USoav3JoYJdUZRPTfXVnywq2BVF+VQ+Tqirav3zoYJdURTllFHBrijKJ6aq9SeTCnZFUT4R1Vd/cqlgVxTlY/u4oa6q9c+XCnZFUT4WVak/+VSwK4rymVLV+udPBbuiKI9MVetPBxXsiqI8kk8S6qpafzxUsCuK8pE+NNSP7n2+F6I8EhXsiqL8Sp801FW1/vioYFcU5UOpSv3pdCIPs1YU5RnxiIGuqvXHS1XsiqJ8IDUD5umlgl1RlF/ygaGuqvWnhmrFKIryPr8U6r8q0BfPve9LFepPBlWxK4rykGq/nA6qYlcUBTgOdSlMJrmLn2q4Rk61/zbiw35AVetPLBXsiqIAkGsFrnoNbvfmZFKgBx6bC89xxp3hRxGunlFNh4g8etyXqnwEFeyKopCP73EjWOIv7wwZRwaj8ZiSY/Pzic43N89SDnbI5n2W6ots6keI9sr7fl5V608WFeyK8oyTo5uMRYvbE41JbLM3mJJicDARzP0pyJwztRLLJjDq0+40qL3n51WoP3nUzVNFeYbJ0U1yrcD1eYOulxIlGcMwJxMWXpBRsG2k0Bj5KfdHKblZxi8tP+7LVj7CiVXsQggdeBXYk1L+/kmNqyjKyZIIJrHBYDxCilUGkcV3b/S4tzfg4pkl2lVJwSpgmCmb7SI7h11qbZc400jF8U3Vd6lq/cl0kq2Y/xq4DlROcExFUU5QjsaNkcHdwxGD6RxN6OzMAry5j12wGU99fuO5Va7uTZhGCT+91+Wbm20Ou0ecbzksL1eoaj2Qj/uVKL/KibRihBCrwD8A/sVJjKcoysmTCK72Nb771hZ/eW2PawdzhF1GZhlSmJSLDkutCv/69R1GfkzZ1qnaGj++e8i55TYvL5d5rjhEyARQ1fqT7KQq9v8V+B+A8ocdIIT4FvAtgPVV1aNTlM/bJNa59WCHKBPoRgG94LI7CnFdl0RkpGmMrQuCKMHSIUpD6sUCLcfkYkPj+VaAloeP+2Uoj+BTV+xCiN8HulLK137VcVLKb0spX5FSvtJuNT7taRVF+QASwTg22J/rjGMD+Z7lRfPxEZkwSXWXRrWCa1lcP5zRneds9T0KpsFi2eJ8w6QiAqJgzmw2RU/GLBYSqsJ7OJaq1p9sJ1Gx/zrwD4UQ/y5QACpCiP9LSvlPTmBsRVEekURwZyzYGUzIc4mmCdaaZTZrIMd3GadttodTdiYBl9c7/NnVQ+JUYtkJ5xfrWCKmUy3wGxfa/OT2PmbVoVmy+Oa5Ki/UPUSmWjBPi08d7FLKfwr8UwAhxG8D/70KdUX5/E1i/WGoA+S5ZGfg0co9EGWGs4j1xSYFy6c3DRn5GaWCwb2jMX7gsNku8eP7Q4bjMS+fX6bt6FyyuyxXJmiZasE8TdQ8dkU5JfxEPgx1AF3TEJrFXlTjbb/Fj3Zj7u0eUK+4FEydxbJOEAQkUcLeyGeWZDimzjQWvHa/x4P+iGI2eV9fXVXrT4cTXXkqpfwe8L2THFNRlEfjmgJNE+S5RNc05n7A1niCZlXYHnQp6zCeBjSaktuHQ5ZLFnEQEesmpmFwvuEQRgFHwwlZnhGHJS6vnOerYgchExXqTxG1pYCinBJVK2OtWWZn4CEynzd7koGvU7YDyDNkweXiuks4n7DZKLE9nPFKx8AwTKr1GlEQcOT5ZHmGJjQMLWfgBUyKLjUxedwvT/kYVLAryikhkGzWoOXWuNot0ps+wDAMKsUa+16OlyVIUWDNdThnC865JpPhBEPTMYwyslbkrf0xQjNoVwpsLlchneGnBvUFVa0/TVSwK8pT7niLAB0/kbimgPk+SehS0FI69Tp/caNLwbY5GAeMGil384j/4pVFvp5dZ7hcYWxWSb09kvoGk/UqQqtTMlMKIsUhpFi7CKSP+2UqH4MKdkV5yrw/yDW6fsbuYIKYHyGsIrrTxNYSXl5tcH2Y0KkV2Z2ELFYcwiihUnbZngsW3HXK2ZQ7ew+YFkpUR/ucLZe52x3jtiq0jIC1ZpGqlT3ul6x8TCrYFeUp8otz1Q2rwN4kZkl0mcoiW7tT5nlIzZCsLK+wJgRdf4pjGLiWjmNZyDzn57tTpiWdot0iRSOceuyN5iw1c76wVmWh5rJiZ9QaHYTaGOapo6Y7KspT5HiuuodAoBs2QWrSGwwJ9QZbvSm5FNh5QmDU2RomRKnkSxstSo7JNMq4359zYblGkEqmueD1/SlRsUGzs0a12mCQ6MzjhBXboyYmKtSfUqpiV5SniJ9IBIJpYrDV9yjpMf15wpookVopWSqZJikiBiMTbNZc/uZOl7pjUjA0OtUaNw4mbDQrBIHPYJ6yEGtMZz694YyLG8ssN0tUtUNETd0wfVqpYFeUp4hrCoRhsXUwJZ33SAsFzi912BrF/GTHZxoknF2sI4KcKA3ozWOuH85YqBSwDcHNwykvr9aZzOaESU6AhkHKct2m3TiLoQmqjoWonUftzfv0Uq0YRXmKVK2MiuOQ+X0AyqUy40gy8EKurLVpVoqM5glhKrnUKTPyY8I052Ac4sc5SSbpegHFgknJFFxZbdIp6SSYjGYRoyDlxlHA3Yn2vg3ElKeLqtifUHJ08+Gf1Yo/5V0CyYa5z4XFMrPcolBssrXf5+2DKQuVmI12GV1oCCE5nAakWU6n5jCcRWiaoKBpXGi7TOYh33h+EW86pqxlvDkyuT2coeU+sawhjZCW41Kzksf9kpVPQFXsT6D3hvoHfa08W967Fe9o1EMKk1K1hWHYzIKAUZAgNBM/SfnOjSOuHYyYRyldL6ZgGmRZRsk2aJdsXlqvUtBAJnMqcsrzhQG+UeZn94+YzgMwXbww417XYxiqiv1ppSr2p8S74a6q92fLe6c3ivkRM0r0wozZfAcpbRYWO1zsVOjPBkSpII4zlqsuCxWbSZhw68jjd59fQtckXpBwbWfEN85UWC7mbLKDaDXZHQvqJRs0G8iYBiklq0CmWuxPLRXsTxk5uqnC/RkyiXV2tq+T5zm6XeXe/oTJPKNsSoSWMpwEyFzwwlKFlWaR+12PgefTLpp85UyNzXaRlmvwxoMhV3eHrLcrJGlEp1JEaDP8RGLEY1YrOvuzjCyX6JqgXXZoOSrZn1Yq2J9Cqnp/dszH+wiho9tlQr1MHo8wDR1ZKJHFOanUWawV2B4O8PbHPNepcGGxhEAgw4CWpXE08hAy4zeeW2KhbBNOu9zxYlZry2yaASQeL6yt4fZDwjTHsTS+cqZCzVLbCDytVLA/gUT90iP11VX1frrJ0U1cs8GMEvf2JxT1gHszg2KpyqJmMiMjDVL2Jx66bqCRY5sGb+8OCaIYS+ZcWW/QLJo0ygVuH054sH+IZUjONB0ORxPOly2WVzfZH825slQglYLlusvleqoWJz3FVLA/5VT1fjq9++8q0emFkokv8R2TS2sLDOYRxXIRp6zzo/tDBvOYWZDw5Y0mf/rWAV9ar3F/HpABb+xP+drZBpahsd8fkCUxesmhXXEoyDGhtc5mMaftlh9uIla1EhXqTzkV7KeEqt6fHr+4G2PVyhDI49kvwwP8VMM1qlT0iPtTi+nRLSrFNpHucutoTpZGtKoVakULU9cYeCG2YSIBXdcQmsaNoxDH0VmuGDi2yZKb8dWNKn6UUrB1KmaMLo7PL5DUrJSa9bjfGeWkqGB/Qj1qO+a9VPX+5MvRuD4y2B/5GEKikbJcL3K+Jrizd8DByCfXXFJ0Foo15pM+Is8w8owb3TFeprPcrPLT+31sy2Iapqw2ioSJpD+LCZOc4TxmpeES5zkjP8FPBW/tTVmr2nSnIUEc4hpF1s5cUjs3nlIq2J9gnyTcQVXvTyqJ4Gpf43u3DkmSHEPX2GiV0CchSWaz51fI7QZbB/vM+gfopTbrzRLnKy7bWpHd6YiFqs2DUchyxWKlWabqWiRpzrW9MYN5zO88t8BrWwNKRZu6a7HRdLhzOGTgBYQtna+tL+KYknOLdWqW6qOfVirYTylVvT95JrHO7a5HkuQApFnO3tE+QWORH9zv4/khUa7z4uoSrUqdIJNs98d8ZWWBYC54frVFu+4ynKdUHIvv3+4zDWLWGkV+baNBGKXsDTy+sdlmd+RTcy2+f+OQ5zplFssWfhhSK1o8b++gWaXH/G4onyW18vQJ93GCWQqTsayyn9QZyypSmB9Y8b93JeM4Nj5wT5BHOUb5ePxEYggQ7/5fFw7AKnNtb4wuM3IM7vd9/vBH2/zkIOHqroc0HPbmGrd6Mcu1ApZhomuCf/XzXfpehGMazMKEH9zqIchplAr8mzf3eG17yFZ/TpBk3Ot5dCoGVSPEERFa7dxjfR+Uz56q2J8Cj9KSkcLkzrzIbn9KnudomsZqq8JmcQ7vqd5/8UENmiZYa5bZrPG3N/Big/tjmAYBMo2RyPcdo3wyrikoW5JW2aHf3UNoOrrhUHYNrHSOFwn6XkSewyxIOOxOqbU0au0VsMCPM4bjCeeX6yBhHmckWc6FhRLIHMcyyLKAhi1YblYoOwbDqcDUwNIy1haqNGt1QO3/ctqpYD8lJrn7MNQB8jxnZzDHcRYJ0xwNQX08ZqQv8zfbIwq6QcNOyXPJzsCj7VapWhl3xoKbRx63ujN0cdwDrpjpw2M+6aKVD5sJ8qyQCCSCqpWjOQGNpRo7c5tG2WFr7whN18kxWa2XaNdcOmWLQjilUbYIjo5oOC12Zwk39scsVB1eWqnixRmGgDhJqBQMGq5B27YJ+iFl20Dm8NyiQ7WgcbFts9ysUVWLjp4JKtifEh9Vtfup9jDUAaTQ2Q8cBrsZu4eHCN2gWO1QNAf8/M4e0iqyuVDhuYYgzyV+AvPU4s39MfNEIHNIydnqz/jCSpk8jfAT+YmmxH3Up4TTTiK4vXfIbn9KJgWhKGKXF6nO9hhs77FQX2QaSvIoZrlRYh6mvHmvixnHXFlw0YwcOZ9zrtUmTHI0TbBad/nJ1hApJS+uVHmuYeJEQ0oFkxfOdzja2yIvOFxs1nl+0eFCp0pV3Sx9Zqhgf4r8qnB3jeP2y7vhPpc2vSBn1dGwSi18WWBrEPLV8wu8tHmWNMsYTiYMi1VWypKjQKfrxTwYxuiaRi/UKBhg5hBnAlMTuOYn67MfP87tONSB931KOE3L1j/sU8l4eMBu3yPPcwSQyZQ7Ww9oll00K2HDyRi5LptLDa4fTik4Gp1qi5KWs98fIuMRnVaDeZ6w3q7w17eOWG2X+dJ6DdvUKWiSpYpO7+YWzbUyy5rGlRfXsAo6TTOkJg7RLPdxvz3K50gF+ylR1XxWW5WH7ZgUk8V6nZ9sDRlGkqItubxS569u9tmZBERhxDc2WyAhxubVW30qjs3+NMaxLXIJYz9DExnzTHBlsfyJ5zz7iXwY6scEXqyxN9OgZJyKtswHfSpZLczYLM7x0xKZFMxxiaZTsEGYLm8d+Ix2dlg8c5ZExqy3BUkYc/NgQiphc6nOuWqJVV1D7+5yexRTXlnh+dUGN/an5OL431GXCf6kyJc3LyKmN4nCGbXlMsvmCODhI+6e9XbYs0QF+1Pmw6p2IRM2i3PaThk/1fD1Bn/y9oxBpHG/73Fl1eEHd/q8tFojlZKJDkkuKJcrfP/WHv3RgFKpxlKtwrX9EZ2qy0qtyEbToe1kLLg64j033T5OSLimQNPEO+Eu2J/D2A+oFAyORvGpaMuMY4ObRx5+IrCSIUURsTuTtJ0yjinoxi5H+7uYukFjpcp4GnGmUSIfVxCYpIaFNAu8fbDPbOqjWRa394Z4BLQu1LHPPM/Ra3colhyOfIP+cMI0yqhWiriGRqXq0huOKBVctEYF1zj+5PburKpnvR32rFHB/hT6VeFeExOqlsnrsxIZGhM/YqHkUHMtolSS5jmVgsWZZomjScDPt4ccTUNyvYRtaYRJwlc3O2gCiqbgcOih1y38xHzYX8/RuNrXuN31MASULclqs8SCa+An+S8FfdXKWGuW2Rl4eLHG2A840yhBnjy2tsxJVa/H45hcG+jsTMFMPcIgoeIWWCqEx9sD+F0q0mZqWZh6iQfDhPueZBALNs9tMo1zJpFkb+yj2Q5m1WIaxNimSbPTYD8MiTNJY/MsadFho5BxMPCZJpKCobHeKuEn0DBz0mKLM9WcqjZ/38Oon5V2mHJMBftT6lf12ye5y3Tm4UpYrNjM45zdUcDd7oyCaTCYhexNQjYaDhkCzTAp2RY/fzDGT6d0qj6/daHBtcMJXpgwSUp8cbXMOIZ5Av3I5P+9dUCUpAgN2hWXg/mMlapFGofvqwbhOFSKJlxaajAKJZWCAXlC9nAGj/zEN2Y/iXer1/2RR47xvh0NNfKPHuAdORpvD3Ru9mNevd/laDxnvVXhTGMRMp80CnBmXfqiRpz6XF5d4Uc9jWEE01nALLIIcoMzdZsFW8MLEoI0Z7lZYiHN0EWOWShglSr0j0Y0Sjbb0xAZhfzuy6vcH4QkWUrfC/jCaocwM7m8pLEsDn5prvovt8M+//dd+fyoYD+F/FRDxjPOtzv8ZG+AbTtsD3xeWK3x+s6ACwtV3tgd8o1zTW4djDm7UOM71/YpWCatgsZStcBb2306ZcEk8oiTAlvjjCiY4MUag1AwicA1jtsrg3lCEGe0XAudv60GW26Nvp+97+P/YqOOzJP3zeDRPsWN2Q/yUdX4JNbZH3mMI5398RzLtNiZpMRZlZdaySOFu0RwfWTw2t1dbvYz+l7IWrvJz7Z7vL2TcXmxROPcOkeGz8EoZWuaUVxaZHAwoT8PqNbKeGFKLqFcLCClZKXmIIXgXt/HCxLOtIpIAf/6jV0sAf/OQoklkWM1WqQyZ6VRZG/ocWWlyv3ukAsLRQBE7TzjX3j972+HfTbvu/LkUMH+FPuwqv14hgxoecSVjotbLIEm2BnMqBQsGkWD5ZrLYBZQK1oMvIBGyaFRNOlUHR4c9RCaRslxWaxarBRTHhwe0RY9InMNmUtG8wi3VgASkhRyBJYuyd75VJ/nkn5wfE4v1ogyia0L9PGUVrVCf/L+Xm/FyhnHxq9sjTxK++RResl+Iskx2B/PyYXJ1b0pSZZzOA3RX2jxYkt+aFvm3WvojUccTTWEMDANwVq7wY3DCTXHxNILoAnevLXH/VqVLIqo1uoc+fCT+wOKBZN8djz1MEoljqnzL1/dpmAY/IOXOlxequBYOj++N2C7PyfIBSuNAq/f77Jec5jl8OJqi9vdCZ2KhW0bWETc2e9xuHqeblf/pcVl52v5w3bYe98XtQnY6fSpg10IsQb8n0AHyIFvSyn/+acdV3k0HxTuVc2n1Wjz6t0Bvd6MFW0RU0psTeLYBkma8sJSmXkUEieSs+0KszBl5gfc9GYsNqqkSYipSUpGxmK1iOf7DLISEh9vFrPUqBGkOWmeU3VMztaL6FqKn5vMk4yKbZBKg25kMQ9j/CAkk1ApunytpnNpqQEyo2hCxcq5O+ZXhvGj3vx7lF6yawpSKbBM62GoCw1knnO767FeKVOz0l/6RVIKt7g2rXK7OyPMTYI4p1Sts3dvj1YFdgcz1ttVwiQhjzXGuY0/CRGZJLM18mnIb1xc5Ps3u0zChHbZpmUZXN2bcLZd4mAS892bA5aqNlGcomkG683i8bNHdfBzm3qzxtTzCJOEn22Pudi2ET7UXBvbrTBODN7c2v/AxWWbtYy2W1WzYp4BJ1Gxp8B/J6X8mRCiDLwmhPgLKeXbJzC28gh+MdyFTKgZMc2qxRetJkfjKV9ZqjJcaDGOcpI0wRQpZ1sVSpbGTn+GJTL6XgAIWpWEr59t4EchS7VVqq7J7b1DkjRjkuaYtkvke5xbKJHhoGs6Ay/g7f2QpYpNxTYIKPDmQcAbD8aEccqFToUoSnn7YMJSxcImYK1ZZrkoHymM322fCM0ikwJdk+yP5rTd8vtu/j1KL7lqZSzXXXYm6cNQrzgWRRPS/HgapiyZDIKcB/0J+XQXoZvYtTVev7dDFCVgFlntLNKdxnx1c5n+1GOxWiDN4XzNwcxDcIpsLJTY6U6Z5zpZlFGydS50ykgJZdvgxuGUeZTw5fU6W32fc+0SGw2HKMv48b0BG60yGy2XWZiyM5ywM47w5jHNik/D1cAs8PpWl2qxQLPk4oUppqYRpx+0uEztu/6s+NTBLqU8AA7e+bMnhLgOrAAq2D9HvxjurpHgyjlFR2fVlEwLDts7Y0yhY+oWrZLNzPeRqeC1O9ss1sv87gvLZHFI1TXQ4xnJdEQqqmz5OhutMte7AeNZgJtpvLzRwiDjjZ0hRTNF0wTtSosk1xj4klv390lzjUtLVYZewN4k4UzTpeqYBHGMafxteD9KGPsJjCOdrb5Hmh1vebu5UGYYfngvWdc00ExSKZDCQJK/s7Bfcrl+3FM/nIbIPKdogm7aHE19Fooa93a6IExKzADwMpsH3YBIVChoY2zbYmsQMwlTShZsNGucWWhyfW+EFBqvb3tsLMH3bvX597+0zq2ux3eud/nmhQVu7k8pOSbLtQJlx2QyD2mVbV5erxPEGfsjn6NZzIurDbZ7M8I0pVww+c1LCxQtDYOYg9GM33quw1/f7tMoOaw2SlRtuHs4ol4sEHs+aZZ/6sVlytPpRHvsQogN4IvAjz/g774FfAtgfXX5JE+rfID3LljKspQ7u4ck85i6mAPQnVU403BolhZolgqYZEz6+5iWze2ex2bToTsNCIRD3wv56oLkQrNKo1qj7LrUHRs/yVlvS7zZlGkY05Axb+906TTrpGmOaep4Yc5CrUR/FpNkEkNIbO14e8N3w9s1NQyrQJSApUvIEyTyYRhJBEFuMQhmlJwCfhgCcOClTOM5OjGuqXFx0WXznV7y/mjOONLZHnrUXBtdxgStMk1HI3hnSuYXWin6Cy1udz3SXOOwu8dGswjeDn5iczie8IXlMjKfMYgc0izBMjRa9VXujzMmYcqPbvcQSBYbJb55vskX1pvcPvKplErsDWasLBz/8giTjE7VYavv8XcuL7I3ClivO/SmIS+v1bh9OOXNvQkL1QLn20Xu9zy2Bx6/d2UZQ9fZH0zQheB7Nw5BCDSZcvmMTsfNaS43WSxqHIxnZFlOsVBkMvfRhYZtwkpV9dKfNScW7EKIEvCvgP9GSjn9xb+XUn4b+DbAK198UTX2PgPvrdqFTDhfCnELHfZDh2bWIws9SI/bFqV8SqtU5nl3SufLDR4cDsiEziiWrNQ7TMIMzRJogOsUmTh1HMugLgVhJvh/3jziaBbRLDl89ewiC+mcXED+Ti+/qIUUnQLX94dsLpTQdINOrYgfR1TLRdLER9N1gtxkb5Rzp58yDUIaRZtm2eV806LyTp/7zljwxv6Qu70ZQZxyuVOlVSlw7dBHnwcUxPFNwkmUU7QauGbKaqvJeG/EmbpD0Theyn/9KETIjIKWPuzRv2DeY61jsxeVWdBcZOYzSW3mlEhNm8xyyLgRHZwAACAASURBVOZzZkHMzaMZlUoNP005miW8uTPCcR2mQcK9nn+8qKtRousFNMs2K40Gf3btkDSTDOcRjqWjaxqz8PjTy9m2y0azyN7Yp+oYbNQdtscBAy/mfLtMludkmWTkH9/cvnk4plGyMQ2doqkRRREL9SqrZSgaCVHJZuxHLDpQWijRqRXZrGtqj5hn0IkEuxDC5DjU/1BK+ccnMabyybwb7lKY3J0V2O0fIswykzDALDVJvB5kMZYhOFfJ2YhvUtdq1JcbJFaFvcjlz9/aZxolVAo2mxsdFoC3D3x+eGeXC8t1utOIhbKNaSTcOvIYzSN+/6UORS3l7EINkXicXWxy9TBgsWyxN/KxLZued8SV1Tr/9noX2zTRiDnXKnF1b0iraOM6Ra5155RHMWQFTOHQdg12BmNModFwBJHtMI01NB/e3B1Tc0zO1GxcI+PGUcBiNYLYY5LoGJpOxZJkuQTN4t79LTo1F9sImEqbNyYzxJllnHxCzco5zEL2fZvdqeSwu02kOZRNSbO4wHC/y1qzxp2DMesXV/FSQcl1COOUsmMSZzq1ok0q4afbIzoVl7cO59RLNnXXYGfkc+3AY6PhkiOpBykvLFc48AN2hz5RGNGdxSzXi8yihMWqjRckvLk3ZXs44/cud7AMg3EQM/CmnG2VGfrH7RqRHN+fWC1rvLy6QMsB1+Sdm6OqUn8WncSsGAH878B1KeX/8ukvSfm0RP0S4+Hhw31j9NRnrV5kZzRntV1Dz2MuLJa4JPa4G9fZGczYSzSkEdMPdcqOy6GXUjB1/vT1fb52cYmf3O9jmBYCuNvz8KOUM60id4480jxjHsREicdvnXG5O8iwbEily40jn2bRou+nNCsuf3Gty1K9wGQ4Zblmc22nh6uDH2XcOuwzTcAvGOzPbIrGDF2rIzSLgiloVauM5zE/2x3xwmqDIJGkWUSY5FxaLDGP5iAFzPbQcdkeRry4VIJoQmzVyXKJrWvsRFW8WGKYDq/uZVQtm5qYYNo1pkcDjo6maLrJ86tNYmExw+G5s2fYHUypVctYlk27ksO+hxdltCsmrqURpxn7wzkvrzcI4pxhMKc7Cfn62QbrDRcvSunUHHaHPsWCzk+3BtRcizw77vGv1l2CJIE0ZaNVYmfoEyUJq1WLZknnwVByaaFAFOlYtk2SZVxq6ZSMiprporzPSVTsvw78J8BbQojX3/ne/ySl/NMTGFv5hAJ7hTw/vn+dZQkVfc4LCy5tK2dFm1JN95nQYLc3wtOq9CczStUCD/Yn2KWEmq0zDmKyLCeIY/pehBAR6w0XS9cwdIGpC84vVFisONSLNt7EwzY0nmvaRIZLmqc86CaUi2VyXaIJgabD2I+ZxzlJJpBagZpjME8ke15KGAZEBZNJVTDVE44sk7fubTNNDcZhzotnNzC1KVqecqHtcvtwzKEfsFq1OdssYEqfvrlKhoZdyRlLEGQUDIdizWEnNhn5EZrQeXOry4WmgwinfO3iEkUjY2N5GcdxwargxXCn5+OnPppmcKZe4MWNBrujgEbR5ncuLfDW3pggybiwUKJsGdw6mlEwNRzTZOQbmLpOlEnudz1eOdNgte5gaTCcx+S2we2dPi+faXF7f8Zg5vGV8y3WFha4dzDiwTjA1uGb55sYWcBySRJHEbph0rRzNlolNJmqmS7KLzmJWTE/APXctCeNawq0yir5dBc4DndNeqx0ytS6BwD4mU6eZURSQ+Y5OjlC08njCDSbLEmwDQNdQMUtMJyF7I/mfPVskyDJ2R+HzOOMNpLXd0c4hsWf38/QJnvERpGVpVUibCzd4q9v7VFzTYbziK+cbXG3O+DCQpnRPOTCYoX7232SNMMtOJxdLNP3YxaqNVppykKzjR7k9PwZt7oTWqUCO8MZrVKR331hlSxLea5Tpu/N+dMbMx70x0jNZnOxzFqzSa6bWE6BUpzwk+0JupBkMufK2iJ5GiHMOt+75/Frq1W8JGVClbu7Prd7Hn4Q8/WLHUxDJ5KCrWHIX1w7Is0lL65VudQpE2cZSSKZxSk5GpMwRUfScnR604CpZ/PVcy3KjsHtgwndacBvPLeIF8S0CxqmTPjK2QYDL+K5pTI/uLbN0mKNug2myPG8AatLNSbznJcurpAlMZYu0Uhxzcf5X5nypFIrT0+phxtvcRzu7z4qr6rNYfEcHN3D1TM0XcfWcnTTIkzhuY0lxmFGikZbmKw0S3h+wG9sNvjL60dIAev1Ao5tEqU593sz3t4Z0qk6XOpUmGeCxuJzzL0Zd3ozvvlch7+5O6HsmCRpzqVOlZ9tDbiyUsPQJO2SxXAWsFwrcqZZ4sEo5O7RBCkz1hbqvHEU4M895nmBTrOKIaBRKfG9m12kFnNvGLBUsVn0I3a8nKNZgma6SAmzMOdwHGAYOv/2+h6DUFJ1Lb68scB3bxzyYORTszU22mWEFtILBZWSy9u3x8yilHksqZZdevOEi4s24yBhdxxhmwZhGHPzcMZ4nnBhscw0TDjXdqm5Jj+508PIU7Qo5ncvdcil5PJaGdvUKJugGQ2+8/YBsyinYAr+0ReWiKZjVpYLlLSYy0sOqZDkdkbfD9kb5Jxrl/nqpWWyaA4yQ+aCZbVyVPkQKthPKYFks8Y788QrONHe8Y5/8p2tdxfPUe3tsdpe5MEwRCsusDua8ULDxHaLbI0jojjhjftdzi0UubLo8I3N55nNQwqmzmvbIyJ0ulOfqmNRLRVA1/nu9UNqBR3TMmgVLZb8mExmLFVtkkyS5hkb7RJXVspcWalwc6eP6zjc7vuYho5rCF5eq7JYKzHyI3rjiJZjMZsH3O/PubzS4M7hiEuLZbw4p10qkCch41nMbm/Oy+st3n16a88LkZrJ7iSkVnaxC5J2xeW7Nw448mKSNKNkl3ht+3jR1CQR9PoBcZqw2igSJTl+ktHzIp5frhJnMd2JT9kxGQcwCRLW6g5L1QL3+zMcQ+OFpRIvrVYpkRHOfd64sUtuGhyNfFzX4rn1Nv/ytV3mcUbBgMvLdb5zdZcvrxZxxofU1zt03ITtgwPKboVy3QbNoNOocqVlAGXVT1c+kgr2U0zwnpWGxc4vbT0g2its9vZw186T91Mud5bYHkdc2+sxDAWaaWOKnCwIyUsmb9x8wDiGsltgFsR0vZCa4+ARoQmN7f4chI5TsLjXm5PlEKZw72BEtVJiPI+JMsla3WW56uBNpuxMU+b9MTmCwTRkfxryxfUaP70/YH8451ynSrVSItVCpumMZqnA7f0hZ5cd/r87AyoFnaqtsVQvsVAvcvPIYxal3Dz0ON8uU7QMigWTw1FAdxYRZxClOWebLoeTkKPp8S+q850aUz/kYBxiGQYHk5Bq0cIbBdQdg5pjUrZ1ZmHKOEi4vFSmXbJZbbiA5KXVKromOJqEXFgs0x9MeHNvQrlcpGzpyDxjkuuMw4SNdgld02i4Bj+808XIUyazgIItGPR7NBY3uDMFI48w85CN5TNk0Qw/KbNczFQ/XflI2uO+AOXz8+5DF973vfYKIpqiTR6Qz7uQ+MylwWF/jB8EGCKnWq9yNE+YpoKf3zvi6v09XBOWWlWOpiFlx6ZZMkGAaQq8MCXLczpVl9405OxCGW8esFJzWKkV+Pr5Ot+5tk9quixUXXqzmK3umNV6gd+5tECeC9aqNmeaRd5+MOD7b+/TnSa8uL6AkWWUHYerO2NMcuZ+gp9IuuM5FdvkQqeCH2dUHYtREONFOd+/1cdxLJIc4jQniHNqjsELyxVWGy5n2yUm7xwbZpK1ZpGt/oyDScDzyzX+/vOL+HGCFyYs1xxcU2Ox6hClOXeOPH50d8A0TPnhnT7/5s19jsYBnXadxeU2gWbzYJYxMwvkEnpexJ++dcC/eXOPtw9mLFSLWIZgnsNWWOR22iLHYLnVZq3T4eUL56k7Gqmw3lk9q25nKR9NVezPmA/aNMxtttEOJuhkmFaBMPJwyyWWqg43Dmfo1oTxPOT5TpHVuksaBRz0PX7zhRpVU/LcSpN5IjkcBrQdnVqxQMXSsLTjxUpZEHBpsQKaoD8O2Toa4jo2Nw6n2PpxxX1poUWU5hz15tztzbnQdonlcYCO/IiOAFMHyzT5+oUO1/YnrLfLDOcxZVNgFwrc6XoULB0vzGiWbA7GPuk72wNP5zGeHxMlKa9stBB5xmAWc+twypXVGlGc8MpGHcPQkVLyn359g4EXUSroeH7Cn7xxwJmWy0rV4fde6PDa9pilaoGr+1PiNOPnD0b89qUFxrMIx7HoziL2ZinjeUSrXMA0DFzLYKs3p1k87tff689YrTu8cq7DUe+IKQ73dmeEUUSSQ8Epohk5B+Ppw9WzfrOknnqkfCQV7M+g94a7FCYSnerZl/EHRyy6JhcXXQJpc3V3RKNs0yg7jPyYvYHHRgW2jiK8aYQ3qbJ9MMUEZpkgRbI98GmVbH7tbIuaLajoKUnkMMlhOPFpOgbVgk3Pi2kVy9w+8jicRLi2RZ5JiqagYguqrkkGrDUaBGFIu+JydWfMYsUmRcOLc7b6cxzL4FKnxtiPSfOcKMpwTJ2dgc+ZpkvJNgjDBKde4EzTRUrJrb0h//HXz/Kj213+4Usr/PR+ly+sNdgdR9ztz0BCo2hzruly42DEF8+0ONt26XkxEz+mUbZ5+9BjtVbAj1NWaw5elLEznCMQ/MX1Li+v1qgXLfw45XZ3RpLD5UUT09TpVCzqRZM0l5xrlwiiAOFU2dkd8vJaje54CGaRi3WTcSgfrp7N81w99Uh5JCrYn1Gifol8fI878yK7/TGZnBAKh6Zt8I01m5moImXOPMqYex4LRZ3e0YBzm8tYk5iVSoEwjvjNF8/wvev7mLrBStnm18+fYzSPORhM2Br2WVnrcLlVILUcbhxpFAsmvWmAZpr88N6AF1eqHI4DBvOYo0nIi8tlNisGrg5/eX9AybF4aa3K7cMZu90R6611buxNMQydxarDD+/2KNo6ddei4doM5xErNYfRPGKx6mAZGr//8gp/feOQKIM88Hnx3CKmoXFmsUoUp/yjL63xYBTxNze7xGlObx6xWCkwmkeUHZMHQ5+FcgEkmIbOvd6cXEoyCe1ygZprYuga6w0XIeDaWxNKtslyzaHrRVxYKPL8cpUHwzm3DmcsVizIj/dhH3kzKvUC7YLNb15aYqc3Yi4drCSj5wW0SjZF429nvqinHimPQgX7M2zqXmR3+zp5fryXiiNnBH5EvbXGzt1dpuOIwTxmrVHCSDPOLVRZcXKef2mFNJd4QUR3e4d5IMlkytnFKjce9LixO6RTkLi2yWs39jhoV2kVfcpFlxsHE84u1vjx/T6Decq9oyn/wa+dIc8zjioFZDin4ercOhxzabFInOSkScbNvRFf3GiR5Md96kzC1881+MbmAp2KjR+nBFGKrQsqjs4ffHGFNIfhLGIWpHzlfBsviMnSIqap8dOtEX91/Yi1Vok/eHmFse/hpykvrdSZhilxmlF1DNplm7f3x3z5TBPH0onTnME85rcutPnh3R4l20SvFmiUdH5wp0epYLHRKpFmx+2grd6c1YbDq/f7LFULvLBUIszgqOtxZbmMqedsD2YkMuTKap2+n4HQyEyDslOg4by/p66eeqQ8ChXszzA/keTuEsz2Hn5PZgmWSDjbLmKXGlx90GM2n2IaOl9a7VCc7nLWKTCyGvzVq/eo12qIsUelWiGY+1TLLrY5oVB2STSTLJoRoaHpGnoOjmWw1Z9RLZjEcUacCd56MKSkS/IkoVkrEcmM/sSnaGsUNY3FYoWNToVq1WUeZzRKNr1ZSG8W85OtEZtNh79/ZYlJmDL2Yx4MZvSDjGkQA7DeKHKnN2ej6WK6JqaucTCa8Y+/coYkl+TA2VaReXi8981gniCE5FyrwzSIaBULmJrkuU6V7jTEtUx6kzn/3kurxzdog5SbBx5F28Q1BWM/pVW2kHnG5eUKRcvgcDLnYBxwplng711osVo1KNs6V/cGVBwLWwg2mg63Dhz2JwG6Lliv2zSKBt1xhikkZUuy1iypuevKR1LB/gx7uHd5aeX4G7M9NE2jZmV0ozElvcjZKmSVMpYGdW1Masyoe/vIqsGVs0vkusX6yiJv3dzH82OKmoFbKnF7GFByINEswkyw051iOQmW7eCFAfE7OxzePZwgkxTDMNALNuMg5avnmtzpzXBsk/k8ZOpHvLzR5sf3h9w8nLC5UOH3rixxNJrzj7+0QqfmcOtgQpaDpgt++3KH+90ZTddif+Jz52hGLqBdslmqOewMZiQY/HRryN44pFG0uLhYolW2udObYepQsi3GQcxixaZckCxUHf7s6j6WoeNaBptLNf7kjR3OL5R5MPBplmzu9+Z0KjZJmnFxoYwQcGW5ghcljOaCLInQsbl3OGR/GFAuaCRx/P+3d6cxlt1nXse/z9nuvtW9tW+9V7fb3V7ieJwMTEIWCDA4YhAoYRHSIOUNkQYJBIRIIISQRhqJRWIkFA0jXjALoJkRYSajTNAkM4GE4N2x0912r1XVtd99P/ec8+fFrbbbdnW64i67qm+ej9SST9e55z7d7fu7//PfDgtzE+QSFoU4fOJUgZafJelZDMKQH61UWSxlcSRispDkZF53alT3p8H+U+yt1al3noOZnWMu3mLaqdApZVkpt3HjMdrbm0yWsphelbnxAjkXlhuGm7UBO60mKc/m7PkTtLsDJgppthodrrR9PM9lKp/GMwMiXJa36nz6qQm+tV6m2fYRDE+fnmJtp046neDl61vMlLJst3qcmhmj3u4xPZZhqpCm0vM5PZ4iF7exLWEwCDk9lWet1uW/P7cCFjwylSXlOnz78jZJz6LeDSikXK5ttwhCuDCT5RuvrfPZc5O8tFLjh7frjCVdZvMJbMsi5lr8tSdnubzRIunZbDR6iAivrdewLItSJs6VjSblts9qpcMTC0UycYcXb1URDGcn05QyHpVWn3TM4vJ6k3Z/wPFSctjd02yzUmvT7fs8OZ+lP+hzfGqBartPtx9Qa3VxbIso6OMn4uy0fBwT0Oz2GItFbFb6zKZy5L37P2xb/XTTYP8p9s7VqXdWM6aheplTqZDxRJKzgYs5fQaJ+iSbbXLBJjVrgtfbgmd6hOGASjvk0kaL81NpmvUWS9NZnjo5Qdz1aPV9wsgQRRFnZ0Ou3Fjn0+fnWF5ZJ10scGmjzmMLRbbqLbLpBFc2GhQ8YRAaEgmPtaaP4/X5k8ub2K7DIITxjMdytUcQQcyx6PkDXM+lPYho9HtU2n1OjI/R8Vu8slzj/EyOQRSxVu3iCOSSLpmYw1QmzlQuzpXNJpWOT9pz+PjpEjHH4sp6ndv1PgnXRhD6g4gfrtbxbItUzKHpB9zcaXNmPMHHTpRYrzSxzYCxeJzxdIbvvbFFKhGj2fe5st7n1naVjxwbp5DweHQ2T9oTjNi8cKvM8XwMPxTK7QE3tjucm8mQinvUmh3Egpg97FPXgVO1XxrsP+XesTr1jsISAuSrV8jf2WTKAgoJ2OxTljyb5TWSrsXSVIqg1SVwA7yYx8u3G1xabzFfTJNNJym3emyXG3zk5ARRGDBdSGGaFY5PjzGwbJ5eHKPS7tLxYWY8zcVjJYzfo+8HfPuNLc5MD/u1235AwrKZzMaIOS7Nnk/FsSAyzJfSrFa7bDX6+EFIEBoGg+FDti/MFVgYi/PcjSox1yKb8Cg3e1iWcH4mS70XUEx5ZOIOkYGXlivM51PMFdN4nku9N+CZE0WCwHBqIo0twmqtQ7M7YLaQIIwi6uUKj0ykOTWRouMbOgaqvZB6r8XpqRxr9Q7tdpftZo9UwuXVtQbHCklSsYixpE0xNtzmIevFiLsuk9k4KTtiy7XIJ2OknGELXQdO1X5psKt72msxE5MnsGpgixCEAYR1LAe8oE3XD1neavDYYonnb9WYDAxgkUgneXOtwicemeE7P7pNtl2nbsX52KMLrG3ucP7MHLLT5Wa1w/ff3ObJxSKPTuf4SOQQhiG9IOLpUxNc2WgyV0iw0fA5OZHmxRs7iNicnMjg2MMHOFuWIe94bDZ6VLsDZgpJBMG1LbIxhwvzeZ67XmamkGCmkOSFl9fYaPQYz8R4anGM29U2x0pJTo9nuFlu4TkWrV5Apdtnvd4j4docL6WxLcONjQqffmSagpNmIW3jDVr88ZsVFsbzLOZstjuwWe9QSnr0Xcil01zdqA7vYgxcnM1j2w7tICTlRKScgDNjFkvTCcSEFDNxdurDPfXvPPFJB07Vfmiwqx/r3YuZ6lESk85w8kyO69dv0ggssDzOLM5R6Qwopj3iVsh4JkY65tAPIkwQEo+5rG43yCdiFHLjuKHFlc0Gn1ya4wfXd/jezTrZpMeF+TGCyLDTDUknXG5s+7yyWqWYinF+LsfjCwVevFmh1fFJxmOs1bq8sFzhix+dp9UPScVs/ucrt/Ech3zS43gxgRjDXD7GxfkCr69WGItbHBtL0hlEnJpMM5GJ0ewFXN1s8uRigULC483tBj9aa5JLuNyqdLBgd267z06zx7nJFCcemSZuRSyOZyg3d3AyORL0qTRbHJuc5MaldTzHoZhyWJoZ49uX15nOxki6ggDfe2ODxxaL3Kq0yCdjzGUs5otpZpLD8YfplFDP6kM01E9Og13dlxSWhs8evT18KlNoWnSiPLPHl0i3W7Q7Awh8TDDgzFSKbC5PrVfFtYXL5SYxG8YzOVIxFyEiY0VEgUPdj3Bdi/FMnOPjIbZjsdMa4IchOy2fj58s8XKvxmQ2Qas3oNMdUG361DoB6/Uuxd3FQZhhN8Vra3V6fsinzk2RdB1KaZdO36cfwNmpDFEYslHr0Wp1WBxPs9XymcrESTg2EV3Wq12mcnHKrR4RwtJUmlonoDeImM7FCaMIwVBKurgWXLq1QTcYfok5UcBs1CFXmqLVahANujy5kCeXSXNsLMnV7RZBNOz6msym2Kq18cOQlGO4MJ0hMMLSVOqtUId7dJMptQ8a7Gpf6r7Nai9NFNUQwJM+qzs7nJoucjuo0Sqv42WmWNtq8srqCgvjWeKex+nxNK2+Tybp8upGEwKfcxMZet0OtuVSaQ8YL2Tor9QJBjbVdp8zkxlcezhL5dHpLMm4ixhD1/dxHKGYjvHSSo1GP8AW4eJcjmp7wE6rj2fbZGIuxkR87+o2lW5ILu5wfCyJ61h85vwkKcdiveXz5lqddCpOzLF4bLbARxfzWAKXNluEYciJUgbXEhrdYR94dxDgCCyMJbhdaxMYQ7fTIV1M0RhYJFMZTiUMUTFJGAUYx2Ym62GbHk/MDRctpTyLIAjxw5BiOk7CjgiDPgKIiWmLXB0IDXa1L52BIYoM7M5579fr9LtN2r0UtUaNfDbP5fUKi7kY09k0ybhFPg5PzI5zfb1Go9vh/GSKHy73uFlu8pHjRV5ZrvGHLy1z/vgkHz89yWu3axgDHT9iKutws9zhjc0m280+Xd/nbzy1yLXNBsVMnGcfnyHmWlSafWzL4tXVGifH0yRdi+VKm/99dZunjxWBkFLKYyKf4LtvbBOEEScnMqzXOsyNZ3jtdgMMNPsBf+WxWb77xibL5Q62JSwWDWEU8vhCnls7bfp+SD4XY2kyxUvXariW4dzCOMYSGs2AWjfEkYDTs9M4ps2UL9zaruHHXPJexM+dylFrdqn1bSKT5Mx4CqLhIiodGFUHSYNd7ctbi5miYYsynhrD9RMk7AgRITQWfhAALk7UIBW5lNfK5E4scWN9hXQ8xqTb5dxEHIxh0O9Cv4WRONVGm1zc5otPL/DdN3do9QKK6Rjfv15GRFgoJml1XTbqXSYyLlFo2Gn2Wa93ycQ9SmmPdj+g7Yd8cqnEn1zZwRKL6VwMPzQECL/5g2WMMcRdm/kgYK3eI5twmCskhg+9cB1euFEm5rrYNqzXenznjW3+5tOLdPt9CnGHju8znYuTj9s8cWKarGcotzq8sdFgIh3n2nqZjnG5Vl7h504VyDp9liZSBEY4NZliOjmg4adoD6DmZ9mp1RkEOjCqDp7ux6725c5iJssatioznuEjx0qkEglK2SQxB2YKacT0Gc8mGUt7jM8ucrzg8mdPFrlYEhaSfeazBiMhnWqVxKDB2Ykkg06TbqfDVrXJVrPP/7m2w0ajh+dYjGdiLOYTLOQ8xhI2Wc/i0vIWrW6PartPud1lEEV8cmmcUtKm2vLBGBaLKVzH4bW1Ol0/oNkPCI1hrdYligyZhIvnOLxwq8r17TaDIKLWC3n+ZpXJTJxSyiMVd/CDgOl8HIcBGc9iebvFTscn7hiubTdw3BjFdIytNgTiko55dH2fN7fahNjDbpawh5gAi4i8FzCbCnikMOCx2QyPzOR4cj7HqbzRbhh1YLTFrvZlr8VMWS+i4ac5NZEGcVjbKbNRFao9WK60WSxZ1OvrTE2M0b+9hvF7pL0uJ8+d5/LyBqkk+KaNnbTo13fIz2bxJOJnThRZGEtSbve5tlHHI6Te6tNsd/gzZ8ap1JpMjTt4YnAt4eUb23z0eIlaN8CizXwhSTLhstPsEXcsMrHhtEkn5pCKOVTbPR6dybLT8snGXdLx4Va6lfYAzxbScZf+oMHcWJyO71NuGi5vNkh7HnPFJLVmh1uNGtlkgplChkwiQf92GdeyAdgKARPhh4LN3t0sOjCqPkga7Grf9gqjvBftHgfMLKRZK43xo5urzGfSELTp9Qa44TZL5x5Bwi5JJyJTe5Xi/AxvbgoOfTqSIpGZxojh1ESCy2sNXrneoJRJkpnKkIk7bNQ7nM2n8Gzh3HSKUALmjhe4tdOk6wrtbo8nZjM4jsWpyRzNbo/QWDS7Kdq9Pp89N8mVrSaFhI0YA36Xjy4W8cOIVj/k0nqVC/Ml/DBiKudh5gqcGE/S6rR5dDJG/Ow4juMxGARcXl7FOCkSEmO50uLRmQLlukW7FyCWcGoii4QDPNtgIu1mUR8+DXZ1ulyxjwAAC5xJREFUTwah7tv7nkctGMQEiJsgBOjXARgMBkjYZcatDk8s5LggPgvFPJ1KjZoVY3l7g3IzjukIn16aoDmAW9sNHNvm7FyRqQT4zSrb2z6ZRIwba9vkbZ8L0+NcnArxg4Dl6nAg1Om38VJpXr61TSKR4NpOh7NTaT5/YYJc3Kbe6rBZqdFrWTw2k+HqdpuTpUm6PZ+/cH6SRtfHLQpvrFf4c2cn8QYVnNCw3fbwIwvjpEgn4lzabLJS65DxLJZmSjTabTARac8wnitRSkDSTej8c/Wh02BXezIIV2vCSrk+3CBsd4Dvfo9le8cg6+4MGquzTtJ558ZVYgbkpQ5jea6sNHG9iMneCpGTZ+NWmdNzUwxSFrl0DDdo0ew0yWczrG5vISbiiZMlTuYEnx6Wm+DScoV83KPa8cll0qw1OyQ8i1zM4tTSGBNpm58pdlnZrvDmWgtjudTbLpudLp7jspBP0PJd3lyvIZbgD0Iuzo/R7jSZSgXM5DLgOvQiC4zh9fUGrm0znvZI2CHGb/DUQgExgS4mUodOg13tqe7bb4U6DDeg2s9j2d6zY6QlzC8ukc8bhCmi2nXqUZJOYJF0IjqhQ7T7XFLJFpkWm2w+w8JkmmeO9bi8E/LSrTLT2QTXy20iL4sVDUjGPKzmDXwTI5tK8/hYn9C2MPEiHeIUki4L+RjlRgvL71JZq1FPTzA5MU7Rj9McePRDqHUb5OIhxfQkr1/Z5NWVMnHXwjIBNysZPnmmhO+lcKXPM4sJ/NDh0rZDqx+Q8oS5vEfaCYmi4d3KTEq7XNTh02BXe3pr3vpd9rO74N47Rg5brwbhGqdYqe6GfmedYnEK13UZDIaLgMSEZK0es7EmRFBu9+iHA2IWnJmbYLnaZS6XZ6tVxySnmEkFTBaL7FS2aYQJbq1vk86McbM6wLGFRrPLIAyYKRTpi4MdRfQjj1dXa8Rch8lcksmEYW2njAhge1i2jeCST9iMpTymCnFKieF0RWFAIRHHihI4wu4GXUbnoasjRac7qj3d6VK5237D684g60wqJO+9/WCI4V1A8+27gOQ05b5NafYsVnZu9z0s5kpZclaHTmARN11K2SQDXK6srtPp9vGDABN0qbV7jBeKnE1VODk9ziCMWBiLMeb1EbG4tt0ln8tjO3FyiRihFefqRp2s3eZs0WIxZ5GIx0mkMhixiXsOz5woMp3zmMrFySc9Mh5UamWurFe4Vhv++WaSPhdnUmS8t0NdB0jVUaItdrWnPbtUHjC89r4LiMh7EbPzOTqD7Dta+CnfwV6vMx3vgZOj2gtJxwwXp1z6vRyeRJRifayoh4Rd8tIAoBxk8YOAhGdTSMWwzYBWz6djlXATFi5gOm2IwAp7TGWLWIRcmEuwVWtSK2QIjU0x5ZCULn447Cq6uyvqXnclSh0FGuxqTz+uS+X9evfqVRjeBaRc9pzTnfNC5heXWCk3yfkWRd9mcSyNIcD2khhLSOVyiFci5TtYzdTw2n2XTlglxKHeC1hrhMRjNp/KJKiFbaLIUMok2Gl2sUQIo4h8yuNUAU4X0nQHEb3QHm4HELw96Ht3V5TOQ1dHmQa7uqeDDq+f9C7g7i+X9gBOTeXuuQz/7msLETO5JNm4Q7vvM11IcGYizWQ8IFNMs1JuMpOCQiJDMpHGkx7NVpMXW2Z35o+h7gs33/Ulpv3o6mFxIMEuIp8D/j1gA79mjPnlg7iuGi3v5y7g7i+XmZRQT2X2fO3d197uWkxnexgT0R14eLbBIiDlRsykzFvvb8Th6maNfvD2F8ud7pYPoitKqQ/LAwe7iNjArwKfBVaB50Tk68aYHz3otdXoeZC7gPu99s7Pc56AcVgpN7HNcPXnzG4o332NtTYMgncG9dvdLQffFaXUh+UgWuxPA1eNMdcBROS3gc8DGuzqUOz3zuBeff53ulu0H109rA5iuuMssHLX8eru772DiHxJRJ4Xkee3dyoH8LZK3du9plze7d07Vmp3ixoVB9Fi32s06T2fImPM14CvATz1xAW9n1WH7oOY+aPUUXAQwb4KzN91PAesHcB1lfrAaXeLGkUH0RXzHHBaRI6LiAd8Afj6AVxXKaXU+/DALXZjTCAiXwa+yXC6468bY15/4MqUUkq9Lwcyj90Y8w3gGwdxLaWUUg9GNwFTSqkRo8GulFIjRoNdKaVGjAa7UkqNGA12pZQaMRrsSik1YjTYlVJqxGiwK6XUiNFgV0qpEaPBrpRSI0aDXSmlRowGu1JKjRgNdqWUGjEa7EopNWI02JVSasRosCul1IjRYFdKqRGjwa6UUiNGg10ppUaMBrtSSo0YDXallBoxGuxKKTViNNiVUmrEaLArpdSI0WBXSqkRo8GulFIjRoNdKaVGjAa7UkqNGA12pZQaMRrsSik1YjTYlVJqxDxQsIvIr4jIZRF5VUR+T0TyB1WYUkqp9+dBW+zfAh41xlwE3gC+8uAlKaWUehAPFOzGmD8yxgS7h/8XmHvwkpRSSj0I5wCv9YvAf73XD0XkS8CXdg/7VuHMawf43h+UErBz2EXsg9Z5cB6GGkHrPGgPS51L+zlJjDE//gSR/wVM7fGjrxpj/sfuOV8FngJ+wdzvgsPznzfGPLWfAg+T1nmwHoY6H4YaQes8aKNW531b7MaYz9znjf4u8PPAp/cT6koppT5YD9QVIyKfA/4J8AljTOdgSlJKKfUgHnRWzH8AMsC3RORlEfmP+3zd1x7wfT8sWufBehjqfBhqBK3zoI1UnfftY1dKKfVw0ZWnSik1YjTYlVJqxBx6sIvIPxIRIyKlw65lLyLyr3a3THhZRP5IRGYOu6Z3e1i2dhCRvy4ir4tIJCJHbmqZiHxORK6IyFUR+aeHXc9eROTXRWRLRI70OhARmReRb4vIpd1/81867Jr2IiJxEfl/IvLKbp3/8rBruhcRsUXkJRH5/fude6jBLiLzwGeB5cOs4z5+xRhz0RjzOPD7wD8/7IL28LBs7fAa8AvAnx52Ie8mIjbwq8BfBB4BvigijxxuVXv6z8DnDruIfQiAf2iMOQc8A/z9I/r32Qc+ZYx5DHgc+JyIPHPINd3LLwGX9nPiYbfY/y3wj4EjO4JrjGncdZjiCNb6sGztYIy5ZIy5cth13MPTwFVjzHVjjA/8NvD5Q67pPYwxfwpUDruO+zHGrBtjXtz97ybDQJo93Kreywy1dg/d3V9H7jMuInPAXwZ+bT/nH1qwi8izwG1jzCuHVcN+ici/FpEV4G9xNFvsd/tF4A8Pu4iH0CywctfxKkcwiB5GInIMeAL4weFWsrfdLo6XgS3gW8aYo1jnv2PYCI72c/JB7hXzHj9uOwLgnwF//oN8//2637YJxpivAl8Vka8AXwb+xYdaID/R1g4B8BsfZm1320+dR5Ts8XtHruX2sBGRNPA7wD94193vkWGMCYHHd8emfk9EHjXGHJkxDBH5eWDLGPOCiHxyP6/5QIP9XtsRiMgF4DjwiojAsOvgRRF52hiz8UHWtJf7bZtwl98E/oBDCPaHZWuHn+Dv8qhZBebvOp4D1g6plpEgIi7DUP8NY8zvHnY992OMqYnIdxiOYRyZYAd+FnhWRP4SEAeyIvJfjDF/+14vOJSuGGPMD40xE8aYY8aYYww/VE8eRqjfj4icvuvwWeDyYdVyL3dt7fCsbu3wvj0HnBaR4yLiAV8Avn7INT20ZNhi+0/AJWPMvznseu5FRMbvzCITkQTwGY7YZ9wY8xVjzNxuVn4B+OMfF+pw+IOnD4NfFpHXRORVhl1HR3Ha1vvd2uFDJSJ/VURWgY8BfyAi3zzsmu7YHXz+MvBNhgN9/80Y8/rhVvVeIvJbwPeBJRFZFZG/d9g13cPPAn8H+NTu/5Mv77Y4j5pp4Nu7n+/nGPax33c64VGnWwoopdSI0Ra7UkqNGA12pZQaMRrsSik1YjTYlVJqxGiwK6XUiNFgV0qpEaPBrpRSI+b/A86QobnaFHw0AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"f, ax = plt.subplots(1, 1)\n",
"ax.contourf(X1, X2, P, cmap='OrRd')\n",
"sns.scatterplot(guide_samples[:, 0], guide_samples[:, 1], alpha=0.3, ax=ax);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sample from NeutraHMC"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Start NeuTra HMC...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"sample: 100%|██████████| 1500/1500 [00:05<00:00, 276.80it/s, 7 steps of size 6.17e-01. acc. prob=0.91]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" mean std median 5.0% 95.0% n_eff r_hat\n",
"Param:0[0] -0.02 1.27 -0.04 -1.79 1.78 385.75 1.00\n",
"Param:0[1] -0.09 1.03 -0.12 -1.92 1.38 568.74 1.00\n",
"\n",
"Number of divergences: 0\n",
"Transform samples into unwarped space...\n",
"\n",
" mean std median 5.0% 95.0% n_eff r_hat\n",
" x[0] -0.05 0.88 -0.04 -1.54 1.36 515.27 1.00\n",
" x[1] 1.68 0.84 1.52 0.51 3.14 458.91 1.00\n",
"\n"
]
}
],
"source": [
"transform = guide.get_transform(params)\n",
"_, potential_fn, constrain_fn = initialize_model(PRNGKey(2), model, model_args=(1.15, 0.9))\n",
"transformed_potential_fn = partial(transformed_potential_energy, potential_fn, transform)\n",
"transformed_constrain_fn = lambda x: constrain_fn(transform(x)) # noqa: E731\n",
"\n",
"print(\"\\nStart NeuTra HMC...\")\n",
"nuts_kernel = NUTS(potential_fn=transformed_potential_fn)\n",
"mcmc = MCMC(nuts_kernel, 500, 1000)\n",
"init_params = np.zeros(guide.latent_size)\n",
"mcmc.run(PRNGKey(3), 1.15, 0.9, init_params=init_params)\n",
"mcmc.print_summary()\n",
"zs = mcmc.get_samples()\n",
"print(\"Transform samples into unwarped space...\")\n",
"samples = vmap(transformed_constrain_fn)(zs)\n",
"print_summary(tree_map(lambda x: x[None, ...], samples))\n",
"samples = samples['x'].copy()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"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": [
"f, ax = plt.subplots(1, 1)\n",
"sns.scatterplot(zs[:, 0], zs[:, 1], alpha=0.3, ax=ax);"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"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": [
"f, ax = plt.subplots(1, 1)\n",
"ax.contourf(X1, X2, P, cmap='OrRd')\n",
"sns.scatterplot(samples[:, 0], samples[:, 1], alpha=0.3, ax=ax);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### min of flow output"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"DeviceArray([-1.9485936 , -0.46077788], dtype=float32)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"transform(dist.Normal(0, 10).sample(PRNGKey(0), (1000, 2)))['x'].min(0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### max of flow output"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"DeviceArray([1.7887334, 4.997808 ], dtype=float32)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"transform(dist.Normal(0, 10).sample(PRNGKey(0), (1000, 2)))['x'].max(0)"
]
}
],
"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.6.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment