From 46c299e767ba3058faa60a50b3cffb23de14fd15 Mon Sep 17 00:00:00 2001 From: Colin Carroll Date: Wed, 17 Jan 2024 13:14:09 -0800 Subject: [PATCH] Add pymc example. This turned up a mistake in the TFP vi implementation, where the log density needs to be vmapped. PiperOrigin-RevId: 599266907 --- bayeux/_src/bayeux.py | 10 +- bayeux/_src/vi/tfp.py | 2 +- docs/examples/pymc_and_bayeux.ipynb | 464 ++++++++++++++++++++++++++++ 3 files changed, 472 insertions(+), 4 deletions(-) create mode 100644 docs/examples/pymc_and_bayeux.ipynb diff --git a/bayeux/_src/bayeux.py b/bayeux/_src/bayeux.py index 3095a05..78dd712 100644 --- a/bayeux/_src/bayeux.py +++ b/bayeux/_src/bayeux.py @@ -188,9 +188,13 @@ def backward(self, value, *inputs): bwd = pm_jax.get_jaxified_graph( inputs=values, outputs=pm_model.replace_rvs_by_values(inv_rvs)) - - def logp_wrap(args): - return logp([args[k] for k in names]) + def logp_wrap(*args, **kwargs): + # This clause is only required because the tfp vi routine tries to + # pass dictionaries as keyword arguments, so this allows either + # log_density(params) or log_density(**params) + if args: + kwargs = args[0] + return logp([kwargs[k] for k in names]) def fwd_wrap(args): ret = fwd(*[args[k] for k in names]) diff --git a/bayeux/_src/vi/tfp.py b/bayeux/_src/vi/tfp.py index e99b33a..6ee5143 100644 --- a/bayeux/_src/vi/tfp.py +++ b/bayeux/_src/vi/tfp.py @@ -60,7 +60,7 @@ def get_fit_kwargs(log_density, kwargs): tfp.vi.fit_surrogate_posterior_stateless) fit_kwargs.pop("seed") fit_kwargs["optimizer"] = optax.adam(learning_rate=0.01) - fit_kwargs["target_log_prob_fn"] = log_density + fit_kwargs["target_log_prob_fn"] = jax.vmap(log_density) fit_kwargs = { "sample_size": 16, diff --git a/docs/examples/pymc_and_bayeux.ipynb b/docs/examples/pymc_and_bayeux.ipynb new file mode 100644 index 0000000..cd4dcd8 --- /dev/null +++ b/docs/examples/pymc_and_bayeux.ipynb @@ -0,0 +1,464 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "LGXFk0LJQzq4" + }, + "outputs": [], + "source": [ + "!pip install bayeux-ml" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "executionInfo": { + "elapsed": 80317, + "status": "ok", + "timestamp": 1704904855441, + "user": { + "displayName": "", + "userId": "" + }, + "user_tz": 300 + }, + "id": "XMTEI6ep4D_S" + }, + "outputs": [], + "source": [ + "import arviz as az\n", + "import bayeux as bx\n", + "import jax\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pymc as pm" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "E4wciun69_Pn" + }, + "source": [ + "# Using bayeux with pymc\n", + "\n", + "`bayeux` has a built-in function `bx.Model.from_pymc` that makes it easy to work with `pymc` models. [More on PyMC here](https://www.pymc.io/welcome.html).\n", + "\n", + "We implement a common hierarchical model of the eight schools dataset (Rubin 1981¹), whose details can be seen on the [Stan documentation](https://mc-stan.org/users/documentation/case-studies/divergences_and_bias.html), [PyMC documentation](https://www.pymc.io/projects/examples/en/latest/diagnostics_and_criticism/Diagnosing_biased_Inference_with_Divergences.html), [TFP documentation](https://www.tensorflow.org/probability/examples/Eight_Schools), [numpyro documentation](https://num.pyro.ai/en/stable/getting_started.html#a-simple-example-8-schools), among others.\n", + "\n", + "¹ _Rubin, Donald B. 1981. “Estimation in Parallel Randomized Experiments.” Journal of Educational and Behavioral Statistics 6 (4): 377–401._" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "executionInfo": { + "elapsed": 2063, + "status": "ok", + "timestamp": 1704904857538, + "user": { + "displayName": "", + "userId": "" + }, + "user_tz": 300 + }, + "id": "EiEtvl1zokAG" + }, + "outputs": [], + "source": [ + "treatment_effects = np.array([28, 8, -3, 7, -1, 1, 18, 12], dtype=np.float32)\n", + "treatment_stddevs = np.array(\n", + " [15, 10, 16, 11, 9, 11, 10, 18], dtype=np.float32)\n", + "\n", + "with pm.Model() as model:\n", + " avg_effect = pm.Normal('avg_effect', 0., 10.)\n", + " avg_stddev = pm.HalfNormal('avg_stddev', 10.)\n", + " school_effects = pm.Normal('school_effects', shape=8)\n", + " pm.Normal('observed',\n", + " avg_effect + avg_stddev * school_effects,\n", + " treatment_stddevs,\n", + " observed=treatment_effects)\n", + "\n", + "bx_model = bx.Model.from_pymc(model)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "height": 418 + }, + "executionInfo": { + "elapsed": 34738, + "status": "ok", + "timestamp": 1704904892304, + "user": { + "displayName": "", + "userId": "" + }, + "user_tz": 300 + }, + "id": "74Obwj695nDl", + "outputId": "06bd921c-2491-4049-c487-30bef5430628" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
meansdhdi_3%hdi_97%mcse_meanmcse_sdess_bulkess_tailr_hat
avg_effect6.3924.207-1.52213.9670.0690.0493717.02153.01.00
avg_stddev4.6813.7280.00111.3910.0750.0531835.01255.01.00
school_effects[0]0.3440.973-1.5712.0730.0160.0153784.02729.01.01
school_effects[1]0.0510.901-1.7841.6710.0140.0144265.02982.01.00
school_effects[2]-0.1260.943-1.9171.5940.0150.0154037.02689.01.00
school_effects[3]0.0200.911-1.7101.7330.0140.0154367.03061.01.00
school_effects[4]-0.2450.899-1.9421.4230.0140.0134306.02970.01.00
school_effects[5]-0.1310.921-1.9161.5540.0150.0144039.02874.01.00
school_effects[6]0.3620.907-1.3502.0340.0130.0134549.03204.01.00
school_effects[7]0.0660.972-1.6781.9420.0150.0164481.03004.01.00
\n", + "
" + ], + "text/plain": [ + " mean sd hdi_3% hdi_97% mcse_mean mcse_sd \\\n", + "avg_effect 6.392 4.207 -1.522 13.967 0.069 0.049 \n", + "avg_stddev 4.681 3.728 0.001 11.391 0.075 0.053 \n", + "school_effects[0] 0.344 0.973 -1.571 2.073 0.016 0.015 \n", + "school_effects[1] 0.051 0.901 -1.784 1.671 0.014 0.014 \n", + "school_effects[2] -0.126 0.943 -1.917 1.594 0.015 0.015 \n", + "school_effects[3] 0.020 0.911 -1.710 1.733 0.014 0.015 \n", + "school_effects[4] -0.245 0.899 -1.942 1.423 0.014 0.013 \n", + "school_effects[5] -0.131 0.921 -1.916 1.554 0.015 0.014 \n", + "school_effects[6] 0.362 0.907 -1.350 2.034 0.013 0.013 \n", + "school_effects[7] 0.066 0.972 -1.678 1.942 0.015 0.016 \n", + "\n", + " ess_bulk ess_tail r_hat \n", + "avg_effect 3717.0 2153.0 1.00 \n", + "avg_stddev 1835.0 1255.0 1.00 \n", + "school_effects[0] 3784.0 2729.0 1.01 \n", + "school_effects[1] 4265.0 2982.0 1.00 \n", + "school_effects[2] 4037.0 2689.0 1.00 \n", + "school_effects[3] 4367.0 3061.0 1.00 \n", + "school_effects[4] 4306.0 2970.0 1.00 \n", + "school_effects[5] 4039.0 2874.0 1.00 \n", + "school_effects[6] 4549.0 3204.0 1.00 \n", + "school_effects[7] 4481.0 3004.0 1.00 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "idata = bx_model.mcmc.blackjax_nuts(seed=jax.random.key(0))\n", + "\n", + "az.summary(idata)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "height": 503 + }, + "executionInfo": { + "elapsed": 3026, + "status": "ok", + "timestamp": 1704904895388, + "user": { + "displayName": "", + "userId": "" + }, + "user_tz": 300 + }, + "id": "u16VLPPn6gfc", + "outputId": "25be59f3-88de-4531-cd5f-45b9e81658ae" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'avg_effect': Array([6.17051501, 6.17051501, 6.17051501, 6.17051501, 6.17051501,\n", + " 6.17051501, 6.1705141 , 6.17051501], dtype=float64),\n", + " 'avg_stddev': Array([10.6251654 , 10.6251654 , 10.6251654 , 10.6251654 , 10.6251654 ,\n", + " 10.6251654 , 10.62516158, 10.6251654 ], dtype=float64),\n", + " 'school_effects': Array([[ 0.68643359, 0.09130632, -0.26413604, 0.03768121, -0.39293559,\n", + " -0.23488223, 0.59038842, 0.14177174],\n", + " [ 0.68643359, 0.09130632, -0.26413604, 0.03768121, -0.39293559,\n", + " -0.23488223, 0.59038842, 0.14177174],\n", + " [ 0.68643359, 0.09130632, -0.26413604, 0.03768121, -0.39293559,\n", + " -0.23488223, 0.59038842, 0.14177174],\n", + " [ 0.68643359, 0.09130632, -0.26413604, 0.03768121, -0.39293559,\n", + " -0.23488223, 0.59038842, 0.14177174],\n", + " [ 0.68643359, 0.09130632, -0.26413604, 0.03768121, -0.39293559,\n", + " -0.23488223, 0.59038842, 0.14177174],\n", + " [ 0.68643359, 0.09130632, -0.26413604, 0.03768121, -0.39293559,\n", + " -0.23488223, 0.59038842, 0.14177174],\n", + " [ 0.68643307, 0.09130638, -0.26413599, 0.03768124, -0.39293562,\n", + " -0.23494317, 0.59038848, 0.14177166],\n", + " [ 0.68643359, 0.09130632, -0.26413604, 0.03768121, -0.39293559,\n", + " -0.23488223, 0.59038842, 0.14177174]], dtype=float64)}" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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Rx9FZ0cfxZmAforO7kzoo8YYNTQ0qLCwUDbb8e/iPq2XmseLzWb7yt8wdDY8jR2dHX0UnR19FJ0dfRRnAvopOrvO3kfT0tJOqF27Hq4GAAAAAADah+ANAAAAAEAHInjHmNvt1gMPPHDCT2wHYo0+is6OPorOjj6KMwH9FJ1dV+ujXeLhagAAAAAAdFaMeAMAAAAA0IEI3gAAAAAAdCCCNwAAAAAAHYjgDQAAAABAByJ4AwAAAADQgQjeMfT73/9ePXv2lMfj0bBhw/TBBx/EuyScJWbOnKnzzz9fKSkpys3N1VVXXaUNGza0aePz+TRlyhRlZWUpOTlZ1157rfbs2dOmzY4dOzRu3DglJiYqNzdX99xzj4LBYCxPBWeJWbNmybIs3XHHHdF19FHE2+7du3X99dcrKytLCQkJGjhwoD788MPodmOM7r//fhUUFCghIUGjRo3Sxo0b2xzjwIEDmjhxolJTU5Wenq5bbrlFjY2NsT4VdEGhUEj33XefevXqpYSEBPXu3VvTp0/X4RMY0UcRa++++66+853vqLCwUJZl6dVXX22z/XT1yY8//liXXHKJPB6PioqKNHv27I4+tXYjeMfIn/70J91111164IEHtHr1an39619XWVmZ9u7dG+/ScBYoLy/XlClTtGLFCi1evFiBQECjR49WU1NTtM2dd96p1157TfPnz1d5ebkqKyt1zTXXRLeHQiGNGzdOra2tWrZsmZ5//nk999xzuv/+++NxSujCVq1apaeeekqDBg1qs54+iniqra3VxRdfLKfTqTfeeEOffvqpfvvb3yojIyPaZvbs2ZozZ46efPJJrVy5UklJSSorK5PP54u2mThxoj755BMtXrxYr7/+ut59911Nnjw5HqeELubhhx/WE088of/6r//SZ599pocfflizZ8/WY489Fm1DH0WsNTU16etf/7p+//vfH3X76eiTXq9Xo0ePVo8ePVRRUaFHHnlEDz74oJ5++ukOP792MYiJCy64wEyZMiX6PhQKmcLCQjNz5sw4VoWz1d69e40kU15ebowxpq6uzjidTjN//vxom88++8xIMsuXLzfGGPP3v//d2Gw2U11dHW3zxBNPmNTUVOP3+2N7AuiyGhoazNe+9jWzePFi881vftNMnTrVGEMfRfzde++9ZsSIEcfcHg6HTX5+vnnkkUei6+rq6ozb7TYvv/yyMcaYTz/91Egyq1atirZ54403jGVZZvfu3R1XPM4K48aNMz/4wQ/arLvmmmvMxIkTjTH0UcSfJLNgwYLo+9PVJx9//HGTkZHR5t/6e++91/Tt27eDz6h9GPGOgdbWVlVUVGjUqFHRdTabTaNGjdLy5cvjWBnOVvX19ZKkzMxMSVJFRYUCgUCbPlpSUqLu3btH++jy5cs1cOBA5eXlRduUlZXJ6/Xqk08+iWH16MqmTJmicePGtemLEn0U8bdw4UINHTpU3/ve95Sbm6vzzjtPzzzzTHT71q1bVV1d3aaPpqWladiwYW36aHp6uoYOHRptM2rUKNlsNq1cuTJ2J4Mu6aKLLtKSJUv0xRdfSJI++ugjvf/++xo7dqwk+ig6n9PVJ5cvX65LL71ULpcr2qasrEwbNmxQbW1tjM7mqzniXcDZYP/+/QqFQm1+GJSkvLw8ff7553GqCmercDisO+64QxdffLFKS0slSdXV1XK5XEpPT2/TNi8vT9XV1dE2R+vDh7YBp2revHlavXq1Vq1adcQ2+ijibcuWLXriiSd011136Re/+IVWrVqln/zkJ3K5XLrpppuifexoffDwPpqbm9tmu8PhUGZmJn0Up+znP/+5vF6vSkpKZLfbFQqF9Jvf/EYTJ06UJPooOp3T1Serq6vVq1evI45xaNvhtwTFE8EbOMtMmTJF69ev1/vvvx/vUoConTt3aurUqVq8eLE8Hk+8ywGOEA6HNXToUD300EOSpPPOO0/r16/Xk08+qZtuuinO1QHSn//8Z7344ot66aWXNGDAAK1du1Z33HGHCgsL6aNAJ8Cl5jGQnZ0tu91+xNN39+zZo/z8/DhVhbPR7bffrtdff13vvPOOunXrFl2fn5+v1tZW1dXVtWl/eB/Nz88/ah8+tA04FRUVFdq7d68GDx4sh8Mhh8Oh8vJyzZkzRw6HQ3l5efRRxFVBQYH69+/fZl2/fv20Y8cOSV/2seP9W5+fn3/EQ1WDwaAOHDhAH8Upu+eee/Tzn/9c1113nQYOHKgbbrhBd955p2bOnCmJPorO53T1yTPl33+Cdwy4XC4NGTJES5Ysia4Lh8NasmSJhg8fHsfKcLYwxuj222/XggUL9Pbbbx9xOc6QIUPkdDrb9NENGzZox44d0T46fPhwrVu3rs03v8WLFys1NfWIH0aB9ho5cqTWrVuntWvXRpehQ4dq4sSJ0df0UcTTxRdffMQ0jF988YV69OghSerVq5fy8/Pb9FGv16uVK1e26aN1dXWqqKiItnn77bcVDoc1bNiwGJwFurLm5mbZbG1/tLfb7QqHw5Loo+h8TlefHD58uN59910FAoFom8WLF6tv376d5jJzSTzVPFbmzZtn3G63ee6558ynn35qJk+ebNLT09s8fRfoKLfddptJS0szS5cuNVVVVdGlubk52ubWW2813bt3N2+//bb58MMPzfDhw83w4cOj24PBoCktLTWjR482a9euNYsWLTI5OTlm2rRp8TglnAUOf6q5MfRRxNcHH3xgHA6H+c1vfmM2btxoXnzxRZOYmGj++Mc/RtvMmjXLpKenm//5n/8xH3/8sRk/frzp1auXaWlpibYZM2aMOe+888zKlSvN+++/b772ta+ZCRMmxOOU0MXcdNNN5pxzzjGvv/662bp1q/nrX/9qsrOzzc9+9rNoG/ooYq2hocGsWbPGrFmzxkgyv/vd78yaNWvM9u3bjTGnp0/W1dWZvLw8c8MNN5j169ebefPmmcTERPPUU0/F/HyPh+AdQ4899pjp3r27cblc5oILLjArVqyId0k4S0g66jJ37txom5aWFvOjH/3IZGRkmMTERHP11VebqqqqNsfZtm2bGTt2rElISDDZ2dnmpz/9qQkEAjE+G5wt/jl400cRb6+99popLS01brfblJSUmKeffrrN9nA4bO677z6Tl5dn3G63GTlypNmwYUObNjU1NWbChAkmOTnZpKammptvvtk0NDTE8jTQRXm9XjN16lTTvXt34/F4THFxsfn3f//3NlMs0UcRa++8885Rfwa96aabjDGnr09+9NFHZsSIEcbtdptzzjnHzJo1K1aneMIsY4yJz1g7AAAAAABdH/d4AwAAAADQgQjeAAAAAAB0III3AAAAAAAdiOANAAAAAEAHIngDAAAAANCBCN4AAAAAAHQggjcAAAAAAB2I4A0AAAAAQAcieAMAAAAA0IEI3gAAAAAAdCCCNwAAAAAAHej/A2dH04fQ7EE6AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "opt_results = bx_model.optimize.optax_adam(seed=jax.random.PRNGKey(0))\n", + "\n", + "\n", + "fig, ax = plt.subplots(figsize=(12, 2))\n", + "ax.plot(opt_results.loss.T)\n", + "opt_results.params" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "height": 225 + }, + "executionInfo": { + "elapsed": 10753, + "status": "ok", + "timestamp": 1704905019377, + "user": { + "displayName": "", + "userId": "" + }, + "user_tz": 300 + }, + "id": "yaPUpfDH6-yd", + "outputId": "50a27f6a-7c8a-4f4a-dabf-7d768bae16be" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'avg_effect': Array(6.462984, dtype=float32),\n", + " 'avg_stddev': Array(3.947107, dtype=float32),\n", + " 'school_effects': Array([ 0.36255622, 0.05804485, -0.17273399, -0.01884761, -0.2191218 ,\n", + " -0.16507229, 0.3044642 , 0.06365623], dtype=float32)}" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "surrogate_posterior, losses = bx_model.vi.tfp_factored_surrogate_posterior(\n", + " seed=jax.random.PRNGKey(0))\n", + "\n", + "\n", + "fig, ax = plt.subplots(figsize=(12, 2))\n", + "ax.plot(losses.T)\n", + "\n", + "draws = surrogate_posterior.sample(100, seed=jax.random.PRNGKey(1))\n", + "jax.tree_map(lambda x: np.mean(x, axis=(0, 1)), draws)" + ] + } + ], + "metadata": { + "colab": { + "last_runtime": { + "build_target": "", + "kind": "local" + }, + "provenance": [], + "toc_visible": true + }, + "jupytext": { + "formats": "ipynb,md:myst" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 + } \ No newline at end of file