From cff18712b9dc2000ff050774c7112755f313360e Mon Sep 17 00:00:00 2001 From: ritchie46 Date: Fri, 27 Sep 2019 18:50:24 +0200 Subject: [PATCH] epistemic uncertainty with variational layers working --- bayesian/variational_inference_post.ipynb | 373 ++++++++++++++++++++-- 1 file changed, 345 insertions(+), 28 deletions(-) diff --git a/bayesian/variational_inference_post.ipynb b/bayesian/variational_inference_post.ipynb index f0dbc1e..f29e214 100644 --- a/bayesian/variational_inference_post.ipynb +++ b/bayesian/variational_inference_post.ipynb @@ -14,21 +14,23 @@ "from torch import nn\n", "from sklearn import datasets\n", "from torch.utils.data import DataLoader, TensorDataset\n", - "from sklearn.preprocessing import StandardScaler" + "from sklearn.preprocessing import StandardScaler\n", + "import torch.distributions as dist\n", + "from dataclasses import dataclass" ] }, { "cell_type": "code", - "execution_count": 394, + "execution_count": 397, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 394, + "execution_count": 397, "metadata": {}, "output_type": "execute_result" }, @@ -74,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 395, + "execution_count": 401, "metadata": {}, "outputs": [], "source": [ @@ -84,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 396, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -114,12 +116,12 @@ }, { "cell_type": "code", - "execution_count": 397, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -139,14 +141,14 @@ }, { "cell_type": "code", - "execution_count": 398, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "tensor(0.4997)\n" + "tensor(0.5057)\n" ] } ], @@ -166,7 +168,7 @@ }, { "cell_type": "code", - "execution_count": 399, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -177,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": 451, + "execution_count": 398, "metadata": {}, "outputs": [], "source": [ @@ -214,19 +216,20 @@ }, { "cell_type": "code", - "execution_count": 452, + "execution_count": 411, "metadata": {}, "outputs": [], "source": [ "def elbo(y_pred, y, mu, log_var):\n", + " sigma = log_var.exp()**0.5\n", " # likelihood of observing y given Variational mu and sigma\n", - " likelihood = ll_gaussian(y, mu, log_var)\n", + " likelihood = dist.Normal(mu, sigma).log_prob(y)\n", " \n", " # prior probability of y_pred\n", - " log_prior = ll_gaussian(y_pred, 0, torch.log(torch.tensor(1.)))\n", + " log_prior = dist.Normal(0, 1).log_prob(y_pred)\n", " \n", " # variational probability of y_pred\n", - " log_p_q = ll_gaussian(y_pred, mu, log_var)\n", + " log_p_q = dist.Normal(mu, sigma).log_prob(y_pred) \n", " \n", " # by taking the mean we approximate the expectation\n", " return (likelihood + log_prior - log_p_q).mean()\n", @@ -240,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 453, + "execution_count": 412, "metadata": {}, "outputs": [], "source": [ @@ -259,14 +262,14 @@ }, { "cell_type": "code", - "execution_count": 454, + "execution_count": 413, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "tensor(0.5258)\n" + "tensor(0.5246)\n" ] } ], @@ -277,7 +280,7 @@ }, { "cell_type": "code", - "execution_count": 455, + "execution_count": 414, "metadata": {}, "outputs": [], "source": [ @@ -291,22 +294,22 @@ }, { "cell_type": "code", - "execution_count": 464, + "execution_count": 415, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 464, + "execution_count": 415, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6AAAAFlCAYAAAD1f4WfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3Tkd33v/+d3ujTqWm3vXntxA5fF2AZibIoNOLkOBEIcfAkQnIIJJDkOcbgnN4SbwDn+JaSY5OIQIHECBC7GITjggL3gGBbjdYF1k7dq+6prevmW3x8fdY369Hk9ztGRNBp95zO7I+n7+r4/n/fH8jwPERERERERkVLzVXoAIiIiIiIi0hgUQEVERERERKQsFEBFRERERESkLBRARUREREREpCwUQEVERERERKQsFEBFRERERESkLAKVeNA1a9Z427dvr8RDi4iIiIiISIk9+eSTg57n9cy+vSIBdPv27ezfv78SDy0iIiIiIiIlZllWX6HbNQVXREREREREykIBVERERERERMpCAVRERERERETKQgFUREREREREykIBVERERERERMpCAVRERERERETKQgFUREREREREykIBVERERERERMpCAVRERERERETKQgFUREREREREyiJQ6QGIiIiIiIjUgweePsXdD/VyejTNxo4m7rxxN7dcvqnSw6oqCqAiIiIiIiKr9MDTp7jr/gOk8w4Ap0bT3HX/AQCF0Gk0BVdERERERGSV7n6odzJ8TkjnHe5+qLdCI6pOCqAiIiIiIiKrdHo0vazbG5UCqIiIiIiIyCpt7Gha1u2NSgFURERERERkle68cTdNQf+M25qCfu68cXeFRlSd1IRIRERERERklSYaDakL7sIUQEVERERERIrglss3KXAuQlNwRUREREREpCwUQEVERERERKQsFEBFRERERESkLBRARUREREREpCwUQEVERERERKQsFEBFRERERESkLBRARUREREREpCwUQEVERERERKQsFEBFRERERESkLBRARUREREREpCwUQEVERERERKQsFEBFRERERESkLBRARUREREREpCwUQEVERERERKQsVh1ALcuKWJb1E8uyfmpZ1nOWZX28GAMTERERERGR+hIowjGywA2e5yUsywoCj1mW9W3P835chGOLiIiIiIhInVh1APU8zwMS458Gx9+81R5XRERERERE6ktR1oBaluW3LOsZoB/4rud5jxe4z+2WZe23LGv/wMBAMR5WREREREREakhRAqjneY7neZcBm4GrLMu6pMB97vU8b4/neXt6enqK8bAiIiIiIiJSQ4raBdfzvFHg+8BNxTyuiIiIiIiI1L5idMHtsSyrY/zjJuANwIurPa6IiIiIiIjUl2J0wd0A/JNlWX5MoP2q53nfKsJxRUREREREpI4Uowvuz4DLizAWERERERERqWNFXQMqIiIiIiIiMh8FUBERERERESkLBVAREREREREpCwVQERERERERKQsFUBERERERESkLBVAREREREREpCwVQERERERERKQsFUBERERERESkLBVAREREREREpCwVQERERERERKQsFUBERERERESkLBVAREREREREpCwVQERERERERKQsFUBERERERESmLQKUHICIiIiIi9euBp09x90O9nB5Ns7GjiTtv3M0tl2+q9LCkQhRARURERESkJB54+hR33X+AdN4B4NRomrvuPwCgENqgFEBFRERERKQk7n6odzJ8TkjnHe5+qLfhAqgqwYYCqIiIiIiIlMTp0fSybq9XqgRPURMiEREREREpiY0dTcu6vV4tVAluNAqgIiIiIiJSEnfeuJumoH/GbU1BP3feuLtCI6oMVYKnKICKiIiIiEhJ3HL5Jj75tkvZ1NGEBWzqaOKTb7u04aadqhI8RWtARURERESkZG65fFPDBc7Z7rxx94w1oNCYlWBQABURERERESmpiQCuLrgKoCIiIiIiIiWnSrChNaAiIiIiIiLlkB6Bc89BNlHpkVSMAqiIiIiISCkkhyB2ptKjkGoRPwsjx8DJwdAhSPRXekQVoSm4IiIiIiLFlkvC2AnAM4GjYytYVqVHJZXgeTB6HNLD02+E2CnzOunYBr5l1AXtLGBBIFTskZaFKqAiIiIiIsXk2KbShWc+Tw/D0GFwnYW+a/XSI5AaXvx+Uj6Obaqd6Xn+XzKjMNgL+czSjxk7zeRrqwapAioiIiIiRfXA06cat9un501Ns5wuF4fBg9C1sziVq4kw6/Ob9/mMqbJ5LiQHoHUDRNpW/ziyck7e/J872YXvZ2dg8CVTJW/qWPi+uaQJrW0bizfOMlMFVERERESK5oGnT3HX/Qc4NZrGA06Nprnr/gM88PSpSg+tPGKnTdgsxE6b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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6AAAAFlCAYAAAD1f4WfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXSk133e+e9be2HvBtB7sxc2CbJJSqLUttiSLLGphbYTWYwWJ/KoPR45kScJ40kkcxL5ZBzlaGIrhz4+skVnYnqTzWM5dhyasmVJ1MIWLdGUxOYiNjeQvbIbvWAtoIDa3uXOH7fQWBpLAai9ns85dQp4UXjr1gLU+7z33t91jDGIiIiIiIiIVFqo1g0QERERERGR1qAAKiIiIiIiIlWhACoiIiIiIiJVoQAqIiIiIiIiVaEAKiIiIiIiIlWhACoiIiIiIiJVEanFnfb19Zm9e/fW4q5FRERERESkwp5++ulRY0z/4u01CaB79+7l+PHjtbhrERERERERqTDHcc4ttV1DcEVERERERKQqFEBFRERERESkKhRARUREREREpCoUQEVERERERKQqFEBFRERERESkKhRARUREREREpCoUQEVERERERKQqFEBFRERERESkKhRARUREREREpCoUQEVERERERKQqIrVugIiIiIiISDN45Nkh7n90kIupLDt6ktx39wD33L6z1s2qKwqgIiIiIiIiG/TIs0N8+uETZF0fgKFUlk8/fAJAIXQeDcEVERERERHZoPsfHbwaPmdlXZ/7Hx2sUYvqkwKoiIiIiIjIBl1MZde0vVUpgIqIiIiIiGzQjp7kmra3KgVQERERERGRDbrv7gGS0fCCbclomPvuHqhRi+qTihCJiIiIiIhs0GyhIVXBXZkCqIiIiIiISBncc/tOBc5VaAiuiIiIiIiIVIUCqIiIiIiIiFSFAqiIiIiIiIhUhQKoiIiIiIiIVIUCqIiIiIiIiFSFAqiIiIiIiIhUhQKoiIiIiIiIVIUCqIiIiIiIiFSFAqiIiIiIiIhUhQKoiIiIiIiIVIUCqIiIiIiIiFSFAqiIiIiIiIhUhQKoiIiIiIiIVMWGA6jjOAnHcX7oOM6PHMd50XGc/1yOhomIiIiIiEhziZRhH3ngLmPMtOM4UeB7juN8zRjz/TLsW0RERERERJrEhgOoMcYA08Vvo8WL2eh+RUREREREpLmUZQ6o4zhhx3GeA4aBbxpjflCO/YqIiIiIiEjzKEsANcb4xpg3AbuAH3cc59bFt3Ec5xOO4xx3HOf4yMhIOe5WREREREREGkhZq+AaY1LAd4CfXOJnDxpjDhljDvX395fzbkVERERERKQBlKMKbr/jOD3Fr5PAe4BXNrpfERERERERaS7lqIK7HfgTx3HC2ED7l8aYr5RhvyIiIiIiItJEylEF93ng9jK0RURERERERJpYWeeAioiIiIiIiCxHAVRERERERESqQgFUREREREREqkIBVERERERERKpCAVRERERERESqQgFUREREREREqkIBVERERERERKpCAVRERERERESqQgFUREREREREqkIBVERERERERKpCAVRERERERESqQgFUREREREREqkIBVERERERERKpCAVRERERERESqIlLrBoiIiIiISPN65Nkh7n90kIupLDt6ktx39wD33L6z1s2SGlEAFRERERGRinjk2SE+/fAJsq4PwFAqy6cfPgGgENqiFEBFRERERKQi7n908Gr4nJV1fe5/dLDlAqh6gi0FUBERERERqYiLqeyatjcr9QTPUREiERERERGpiB09yTVtb1Yr9QS3GgVQERERERGpiPvuHiAZDS/YloyGue/ugRq1qDbUEzxHAVRERERERCrintt38hsfvI2dPUkcYGdPkt/44G0tN+xUPcFzNAdUREREREQq5p7bd7Zc4FzsvrsHFswBhdbsCQYFUBERERERkYqaDeCqgqsAKiIiIiIiUnHqCbY0B1RERERERESqQgFUREREREREqkIBVERERERERKpCc0BFREREpKweeXZIxVZEZEkKoCIiIiJSNo88O7RguYmhVJZPP3wCQCFURDQEV0RERETK5/5HBxesdQiQdX3uf3SwRi0SkXqiACoiIiIiZXMxlV3TdhFpLQqgIiIiIlI2O3qSa9ouIq1FAVRERESkhh55doi3f+4x9v2Hv+Ptn3uMR54dqnWTNuS+uwdIRsMLtiWjYe67e6BGLRKReqIiRCIiIiI10owFe2bbrSq4IrIUBVARERGRGlmpYE8jB7Z7bt/Z0O0XkcrREFwRERGRGlHBHhFpNQqgIiIiIjWigj0i0moUQEVERERqRAV7RKTVaA6oiIiISI2oYI+IrCqbgngnhMKr37YBKICKiIiI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\n", "text/plain": [ "
" ] @@ -326,7 +329,7 @@ }, { "cell_type": "code", - "execution_count": 300, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -334,7 +337,304 @@ " reconstruction_error = (0.5 * (y - y_pred)**2).sum()\n", " kl_divergence = (-0.5 * torch.sum(1 + log_var - mu**2 - log_var.exp()))\n", "\n", - " return (reconstruction_error + kl_divergence).sum()" + " return reconstruction_error + kl_divergence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$ Q(w) = \\mathcal{N}(\\mu_{\\theta}, \\sigma^2_{\\theta}) $ " + ] + }, + { + "cell_type": "code", + "execution_count": 369, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# def f(x, sigma=0.07):\n", + "# return (x**2 + x) / 3500 + torch.randn_like(x) * sigma\n", + "\n", + "# plt.scatter(X, f(X))\n", + "\n", + "# Y = f(X)" + ] + }, + { + "cell_type": "code", + "execution_count": 372, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042],\n", + " [ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042],\n", + " [ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042],\n", + " [ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042],\n", + " [ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042],\n", + " [ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042],\n", + " [ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042],\n", + " [ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042],\n", + " [ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042],\n", + " [ 0.2131, 0.6623, -1.0420, -0.2947, -0.2779, -0.3666, -0.1316, -0.5020,\n", + " 1.4475, -0.7042]], grad_fn=)" + ] + }, + "execution_count": 372, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "class LinearVariational(nn.Module):\n", + " \"\"\"\n", + " Mean field approximation of dense layer.\n", + " \"\"\"\n", + " def __init__(self, in_features, out_features, parent, bias=True):\n", + " super().__init__()\n", + " self.in_features = in_features\n", + " self.out_features = out_features\n", + " self.include_bias = bias \n", + " self.parent = parent\n", + " \n", + " if getattr(parent, 'accumulated_kl_div', None) is None:\n", + " parent.accumulated_kl_div = 0\n", + " \n", + " # Initialize the variational parameters.\n", + " # 𝑄(𝑤)=N(𝜇_𝜃,𝜎2_𝜃)\n", + " # Do some random initialization with 𝜎=0.01\n", + " self.w_mu = nn.Parameter(\n", + " torch.FloatTensor(in_features, out_features).normal_(mean=0, std=0.001)\n", + " )\n", + " # proxy for variance\n", + " # log(1 + exp(ρ))◦ eps\n", + " self.w_p = nn.Parameter(\n", + " torch.FloatTensor(in_features, out_features).normal_(mean=-2.5, std=0.001)\n", + " )\n", + " if self.include_bias:\n", + " self.b_mu = nn.Parameter(\n", + " torch.zeros(out_features)\n", + " )\n", + " # proxy for variance\n", + " self.b_p = nn.Parameter(\n", + " torch.zeros(out_features)\n", + " )\n", + " # learnable prior mixture parameters\n", + " # See 3.3. Scale mixture prior\n", + " # Weight Uncertainty in Neural Networks (Charles Blundell et al.)\n", + " # https://arxiv.org/pdf/1505.05424.pdf\n", + " self.pi = nn.Parameter(torch.FloatTensor([0.2]))\n", + " self.sigma_1 = nn.Parameter(torch.FloatTensor([1.]))\n", + " self.sigma_2 = nn.Parameter(torch.FloatTensor([.1]))\n", + " \n", + " def log_prior(self, z):\n", + " return (self.pi * dist.Normal(0, self.sigma_1).log_prob(z).exp() +\n", + " (1 - self.pi) * dist.Normal(0, self.sigma_2).log_prob(z).exp()).log()\n", + "\n", + " def reparameterize(self, mu, p):\n", + " sigma = torch.log(1 + torch.exp(p)) \n", + " eps = torch.randn_like(sigma)\n", + " return mu + (eps * sigma)\n", + " \n", + " def kl_divergence(self, z, mu_theta, p_theta, prior_sd=1):\n", + " log_prior = dist.Normal(0, prior_sd).log_prob(z) \n", + " log_p_q = dist.Normal(mu_theta, torch.log(1 + torch.exp(p_theta))).log_prob(z) \n", + "\n", + " # reverse the elbo, as we need to maximize the elbo\n", + " # - (log_prior - log_p_q) = log_p_q - log_prior\n", + " return (log_p_q - log_prior).sum()\n", + " \n", + "\n", + " def forward(self, x):\n", + " w = self.reparameterize(self.w_mu, self.w_p)\n", + " \n", + " if self.include_bias:\n", + " b = self.reparameterize(self.b_mu, self.b_p)\n", + " else:\n", + " b = 0\n", + " \n", + " z = x @ w + b\n", + " \n", + " self.parent.accumulated_kl_div += self.kl_divergence(w, \n", + " self.w_mu,\n", + " self.w_p, \n", + " 1.\n", + " )\n", + " if self.include_bias:\n", + " self.parent.accumulated_kl_div += self.kl_divergence(b, \n", + " self.b_mu, \n", + " self.b_p,\n", + " 1.\n", + " )\n", + " return z\n", + " \n", + "m = LinearVariational(2, 10, parent=d)\n", + "m.forward(torch.ones(10, 2))" + ] + }, + { + "cell_type": "code", + "execution_count": 416, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor([[0.2831],\n", + " [0.2831],\n", + " [0.2828],\n", + " [0.2819],\n", + " [0.2813],\n", + " [0.2810],\n", + " [0.2799],\n", + " [0.2791],\n", + " [0.2789],\n", + " [0.2786]], grad_fn=)" + ] + }, + "execution_count": 416, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "@dataclass\n", + "class KL:\n", + " accumulated_kl_div = 0\n", + "\n", + "class Model(nn.Module):\n", + " def __init__(self, in_size, hidden_size, out_size):\n", + " super().__init__()\n", + " \n", + " self.kl_loss = KL\n", + " \n", + " self.layers = nn.Sequential(\n", + " LinearVariational(in_size, hidden_size, self.kl_loss),\n", + " nn.ReLU(),\n", + " LinearVariational(hidden_size, hidden_size, self.kl_loss),\n", + " nn.ReLU(),\n", + " LinearVariational(hidden_size, out_size, self.kl_loss)\n", + " )\n", + " \n", + " @property\n", + " def accumulated_kl_div(self):\n", + " return self.kl_loss.accumulated_kl_div\n", + " \n", + " def reset_kl_div(self):\n", + " self.kl_loss.accumulated_kl_div = 0\n", + " \n", + " def forward(self, x):\n", + " return self.layers(x)\n", + " \n", + "m = Model(1, 20, 1)\n", + "m(X)[:10]" + ] + }, + { + "cell_type": "code", + "execution_count": 417, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tensor(908.0202, grad_fn=)" + ] + }, + "execution_count": 417, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.accumulated_kl_div" + ] + }, + { + "cell_type": "code", + "execution_count": 418, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "11374.8408203125\n", + "4694.74560546875\n", + "5758.109375\n", + "5817.72265625\n", + "4768.3720703125\n", + "4349.931640625\n", + "4380.0009765625\n", + "4547.62548828125\n" + ] + } + ], + "source": [ + "epochs = 2000\n", + "\n", + "def det_loss(y, y_pred, model):\n", + " batch_size = y.shape[0]\n", + " reconstruction_error = -dist.Normal(y_pred, .1).log_prob(y).sum() \n", + " kl = model.accumulated_kl_div\n", + " model.reset_kl_div()\n", + " return (reconstruction_error + kl) \n", + " \n", + "m = Model(1, 20, 1)\n", + "optim = torch.optim.Adam(m.parameters(), lr=0.01)\n", + "\n", + "for epoch in range(epochs):\n", + " optim.zero_grad()\n", + " y_pred = m(X)\n", + " loss = det_loss(y_pred, Y, m)\n", + " loss.backward()\n", + " optim.step()\n", + " \n", + " if epoch % 250 == 0:\n", + " print(loss.data.item())" + ] + }, + { + "cell_type": "code", + "execution_count": 420, + "metadata": {}, + "outputs": [], + "source": [ + "with torch.no_grad():\n", + " trace = np.array([m(X).flatten().numpy() for _ in range(1000)]).T" + ] + }, + { + "cell_type": "code", + "execution_count": 421, + "metadata": {}, + "outputs": [], + "source": [ + "q_25, q_95 = np.quantile(trace, [0.05, 0.95], axis=1)" ] }, { @@ -345,15 +645,32 @@ { "data": { "text/plain": [ - "tensor(0.5044, grad_fn=)" + "" ] }, "execution_count": 422, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], - "source": [] + "source": [ + "plt.figure(figsize=(16, 6))\n", + "plt.plot(X, trace.mean(1))\n", + "plt.scatter(X, Y)\n", + "plt.fill_between(X.flatten(), q_25, q_95, alpha=0.2)\n" + ] }, { "cell_type": "code",