diff --git a/docs/source/notebooks/0-Theory.ipynb b/docs/source/notebooks/0-Theory.ipynb index c9fddfa70..0fcb5f484 100644 --- a/docs/source/notebooks/0-Theory.ipynb +++ b/docs/source/notebooks/0-Theory.ipynb @@ -6,8 +6,20 @@ "metadata": {}, "source": [ "(theory)=\n", - "# An introduction to the Hierarchical Gaussian Filter\n", - "In this notebook, we introduce the main concepts on which the Hierarchical Gaussian Filter (HGF) is based. We describe the main equations and illustrate the examples with Python code. We start with the generative model of the HGF, which describes how the model assumes that the data is being generated. This generative structure is then used to filter the observation (i.e. the sensory part of the model), which is then used by the agent to produce behaviours (i.e. the action part of the model). Next, we show how this model can be \"inverted\" and used by an agent to infer parameter values that generated the sensory inputs. From there, we discuss the notion of prediction error and how derivations of the model can be used to infer probability densities given observed behavioural outcomes." + "# Introduction to the Hierarchical Gaussian Filter\n", + "In this notebook, we introduce the main concepts on which the Hierarchical Gaussian Filter (HGF) is based. We describe the main equations and illustrate the examples with Python code. We start with the generative model of the HGF, which describes how the model assumes that the data is being generated. This generative structure is then used to filter the observation (i.e. the sensory part of the model), which is then used by the agent to produce behaviours (i.e. the action part of the model). Next, we show how this model can be \"inverted\" and used by an agent to infer parameter values that generate the sensory inputs. From there, we discuss the notion of prediction error and how derivations of the model can be used to infer probability densities given observed behavioural outcomes." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6430ec8b-1b42-450b-9ed5-a9866384042f", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import seaborn as sns" ] }, { @@ -17,6 +29,7 @@ "source": [ "## The generative model\n", "\n", + "### Gaussian Random Walks\n", "To illustrate the generative model on which the HGF is based, we will start with a simple two-level continuous HGF (see also the tutorial {ref}`continuous_hgf`). The generative model that underpins the continuous HGF is a generalisation of the [Gaussian Random Walk](https://en.wikipedia.org/wiki/Random_walk#Gaussian_random_walk) (GRW). A GRW generate a new observation $x_1^{(k)}$ at each time step $k$ from a normal distribution and using the previous observation $x_1^{(k-1)}$ such as:\n", "\n", "$$\n", @@ -28,7 +41,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 58, "id": "054c77b0-855c-46bf-b861-96d430d90d56", "metadata": { "tags": [ @@ -48,10 +61,6 @@ } ], "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import seaborn as sns\n", - "\n", "np.random.seed(123)\n", "\n", "# random walk\n", @@ -67,13 +76,142 @@ }, { "cell_type": "markdown", - "id": "b6505c14-61b0-4faa-81d1-016d2344fd88", + "id": "a111b343-0172-4ceb-98cc-786ab4d6eeed", "metadata": {}, "source": [ - "This simple process will be our first building block. Importantly here, the variability of the sensory input is constant across time: even if we don't know exactly in which direction the time series is going to move in the future, we know that is is unlikely to make certain kind of big jumps, because it is controlled by a fixed parameter, the variance $\\sigma^2$. \n", + "This simple process will be our first building block. Importantly here, the variability of the sensory input is constant across time: even if we don't know exactly in which direction the time series is going to move in the future, we know that it is unlikely to make certain kinds of big jumps because it is controlled by a fixed parameter, the variance $\\sigma^2$." + ] + }, + { + "cell_type": "markdown", + "id": "44be6e84-78df-4c3a-b577-3d0b732f9ef9", + "metadata": {}, + "source": [ + "### Adding a drift to the random walk\n", + "\n", + "The Gaussian random walk can be further parametrized by adding a drift over time. This value, often noted $\\rho$, will be added at each time step:\n", + "\n", + "$$\n", + "x_1^{(k)} \\sim \\mathcal{N}(x_1^{(k-1)} + \\rho, \\sigma^2)\n", + "$$\n", + "\n", + "We run the same simulation using $\\rho = 0.1$ in the cell below:" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "a4cac17f-6ce5-41a3-8960-a781dc95e6b7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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eZFIBCtXrsQPfvCDSW+fzvi5//778eqrr2LLli145513EA6Hce211yKTyczU06hox+ujaDSKXbt24dFHH8WuXbuwdetWHD58GNdff/2Ec++6666i8fXcc8/NRPPnjBONJeDE73EcS2feifqpsH98Ph9eeOEFSJKEG2+8seg8jqczZzrfvSv6s0lQyV144YXi7rvvLjrW2toqvv3tb5eoRTTewMCAACDeeuut/LFbb71VbNiwoXSNmuMee+wxsXLlyklvMwxDNDQ0iCeffDJ/LB6PC6fTKf7jP/5jhlpIk7nvvvvE4sWLhWEYQgiOo3IAQLz66qv5/09n/Pj9fqFpmtiyZUv+nJ6eHiHLsvj1r389Y22fK8b30WT+8Ic/CADi2LFj+WNXXXWVuO+++85s4yhvsn460Xscx9LMm8542rBhg1i7dm3RMY6nmTX+u3elfzZxprzEkskkdu7ciXXr1hUdX7duHd59990StYrGCwQCAAC32110/M0330RdXR3OPvts3HXXXRgYGChF8+asI0eOwOv1oqWlBTfffDPa2toAAO3t7ejr6ysaVyaTCVdddRXHVQklk0n87Gc/w+233w5JkvLHOY7Ky3TGz86dO5FKpYrO8Xq9WL58OcdYiQQCAUiSBJfLVXT85ZdfhsfjwbJly/DNb36Tq4VK4HjvcRxL5ae/vx+vv/467rjjjgm3cTzNnPHfvSv9s0ktdQPmuqGhIWQyGdTX1xcdr6+vR19fX4laRYWEEHjggQdw+eWXY/ny5fnj69evx5e//GUsWLAA7e3tePTRR7F27Vrs3LkTJpOphC2eGy666CL853/+J84++2z09/fjH//xH3HppZdi3759+bEz2bg6duxYKZpLAH7xi1/A7/fjtttuyx/jOCo/0xk/fX190HUd1dXVE87hZ9fMi8fj+Pa3v40///M/h8PhyB+/5ZZb0NLSgoaGBuzduxcPP/wwPvroo/w2EjrzTvQex7FUfl566SVUVVVh48aNRcc5nmbOZN+9K/2ziUF5mSicNQKyL8bxx6g07r33Xnz88cd45513io7fdNNN+X8vX74ca9aswYIFC/D6669PeCOn02/9+vX5f69YsQKXXHIJFi9ejJdeeimfRIfjqrw8//zzWL9+Pbxeb/4Yx1H5+izjh2Ns5qVSKdx8880wDAObNm0quu2uu+7K/3v58uVY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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(123)\n", + "\n", + "# add a drift at each time step\n", + "rho = .1\n", + "\n", + "# random walk\n", + "x_1 = np.cumsum(np.random.normal(loc=rho, scale=1, size=200)) # GRW\n", + "x_1 = np.insert(x_1, 0, 0) # starting at 0\n", + "\n", + "plt.figure(figsize=(12, 3))\n", + "plt.plot(x_1, \"o-\", alpha=.4);\n", + "plt.xlabel(\"Time step (k)\");\n", + "plt.ylabel(\"$x_{1}$\");\n", + "sns.despine()" + ] + }, + { + "cell_type": "markdown", + "id": "86d7744f-bafd-4b65-9a31-15beb09e841b", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "### Autoregressive processes\n", + "\n", + "We can also assume that the generative process follows an [autoregressive model](https://en.wikipedia.org/wiki/Autoregressive_model), in which case the value of the next iteration is weighted by a coefficient and called by an intercept, often note $\\phi$ and $m$ (respectively) in the Matlab toolbox.\n", + "\n", + "\n", + "$$\n", + "x_1^{(k)} \\sim \\mathcal{N}(m + \\phi * x_1^{(k-1)}, \\sigma^2)\n", + "$$\n", + "\n", + "We repeat the same simulation below using $\\phi = .4$ and $m = 12.0$." + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "85c9972d-3e71-4737-9465-9f0f3d54b8ce", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "image/png": "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X/umm27S5ZdfrmnTpmnFihUqLS3Vww8/PODPu3v3bo0dO7bf57Zv367TTz9d5513nh599FE5HI6s50866aRjzggAAMCKHMffBQAA5Mr06dNls/XcQ6+trdWMGTPSH9vtdlVWVqq5uVmStHnzZr377rt9iqR1dXVpx44d/X6Pr3zlK7r88su1ZcsWzZ8/X5dcconmzZs3YEyHDh1SY2OjvvjFL+qGG25Ib4/FYiotLc3a97TTTkv/3+FwaO7cuXrrrbcG/NqhUCg9+t17+xlnnKHPf/7zuu+++/r9XK/Xq2AwOODXBgDAikjKAQCwMKfTmfWxYRj9bkskEpKkRCKhOXPm6Je//GWfr5Ua9e5twYIF2rNnj5599lmtXbtWn/zkJ7Vw4UL9x3/8R7/7p77XQw89pFNPPTXrObvdftyfyTCMAZ+rqqpSa2trn+1ut1vnnXeenn32WX3zm9/sd835kSNHNGXKlON+fwAArITp6wAAFJBTTjlF77zzjmpqavSBD3wg69F7FDtTdXW1rr32Wj322GNavny5HnzwQUnJtdqSsqqa19bW6qSTTtLOnTv7fI9UYbiUV155Jf3/WCymzZs3q6GhYcA4Zs+erTfffLPPdpvNpl/84heaM2eOzj33XL333nt99vnrX/+q2bNnD/i1AQCwIpJyAAAKyNVXX62qqipdfPHFevHFF7Vr1y6tX79et956q/bt29fv5/zbv/2bnn76ab377rt644039L//+7+aNm2aJKmmpkZer1fPPfecDh48qLa2NknSkiVLtHTpUt13333avn27Xn/9da1cuVLLli3L+to//vGPtXr1ar399ttauHChWltbdf311w8Y//nnn6+NGzf229rMbrfrl7/8pWbNmqVzzz1XTU1N6ed2796t/fv367zzzjvh3xkAALlEUg4AQAHx+XzasGGDxo8fr8suu0zTpk3T9ddfr1AoJL/f3+/nuFwuLV68WB/+8Id11llnyW63a9WqVZKS68B/+MMf6oEHHtDYsWN18cUXS5K+9KUv6ac//akeeeQRzZw5U2effbYeeeSRPiPl3/ve9/T9738/XRn96aefTld2789nPvMZOZ1OrV27tt/nHQ6HnnjiCU2fPl3nnntuei39E088ofnz52vChAkn/DsDACCXDNM0zVwHAQAACsvu3bs1adIkbd26Nav3+mDcf//9evrpp/X8888Pav9wOKypU6fqiSee0Omnn/43RAsAQO5Q6A0AAFjKP/3TP6m1tVXt7e19qsj3Z8+ePbrjjjtIyAEAeYmRcgAAMOTez0g5AACjCUk5AAAAAAA5QqE3AAAAAAByhKQcAAAAAIAcISkHAAAAACBHSMoBAAAAAMgRknIAAAAAAHKEpBwAAAAAgBwhKQcAAAAAIEdIygEAAAAAyBGScgAAAAAAcuT/AyiLESMBB6QpAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "np.random.seed(123)\n", + "\n", + "phi, m = 0.4, 12.0\n", "\n", + "# random walk with AR1 process\n", + "x_1 = [0.0]\n", + "for i in range(200):\n", + " x_1.append(\n", + " np.random.normal(phi * (m - x_1[i-1]) + x_1[i-1], scale=1) \n", + " )\n", + "\n", + "plt.figure(figsize=(12, 3))\n", + "plt.plot(x_1, \"o-\", alpha=.4);\n", + "plt.xlabel(\"Time step (k)\");\n", + "plt.ylabel(\"$x_{1}$\");\n", + "sns.despine()" + ] + }, + { + "cell_type": "markdown", + "id": "b6505c14-61b0-4faa-81d1-016d2344fd88", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ "### Volatility coupling\n", - "Now, we can also decide to change that and let the variance itself being a stochastic process generated by another randome walk. The HGF fundamentaly captitalize on this notion and generalize the standard GRW by letting the variance $\\sigma^2$ being controlled by a higher level node." + "Now, we can also decide to change that and let the variance itself be a stochastic process generated by another random walk. The HGF fundamentally capitalise on this notion and generalizes the standard GRW by letting the variance $\\sigma^2$ be controlled by a higher-level node." ] }, { @@ -338,58 +476,18 @@ "name: hgf-fig\n", "---\n", "The two-level and three-level Hierarchical Gaussian Filters for binary or continuous inputs, as described in {cite:p}`2014:mathys,2011:mathys`. The binary HGF has the particularity that it uses a sigmoid transform in the input node to convert continuous values into binary probabilities. For both models, volatility coupling is depicted with dashed lines, and value coupling with straight lines. The three-level HGF has one volatility layer more than the two-level HGF.\n", - "```\n", - "\n", - "```{hint}\n", - "A one-level HGF for continuous input is a [Kalman Filter](https://en.wikipedia.org/wiki/Kalman_filter).\n", "```" ] }, { "cell_type": "markdown", - "id": "2bbc9839-3a71-4673-a3b1-e07d94007cb3", + "id": "427556c3-b80b-4588-af42-5dbe67c1ffc8", "metadata": {}, "source": [ - "Still assuming that Node $i$ is the value child of Node $i+1$, the prediction step consists of the following computations:\n", - "\n", - ":label: vape-prediction\n", - "\n", - "$$\n", - "\\begin{align}\n", - "\\hat{\\mu}_i^{(k+1)} &= \\mu_i^{(k)} + \\alpha_{i,i+1} \\mu_{i+1}^{(k)}\\\\\n", - "\\hat{\\pi}_i^{(k+1)} &= \\frac{1}{\\frac{1}{\\pi_i^{(k)}} + \\nu_i^{(k+1)} }\n", - "\\end{align}\n", - "$$\n", - "\n", - "with\n", - "\n", - "$$\n", - "\\begin{equation}\n", - "\\nu_i^{(k+1)} = \\exp(\\omega_i).\n", - "\\end{equation}\n", - "$$\n", - "\n", - "Note that if Node $i$ additionally has a {term}`VOPE` parent node, the estimated volatility $\\nu_i^{(k+1)}$ that enters the precision update would also depend on the posterior mean of that volatility parent (cf. {ref}`vope-prediction`).\n", - "\n", - "In general, the prediction of the mean will depend only on whether Node $i$ has a value parent or not, whereas the prediction of the precision only depends on whether Node $i$ has a volatility parent or not.\n", - "\n", - "Thus, the {ref}`vape-prediction` only depends on knowing the node's own posteriors and receiving the value parent's posterior in time before the new input arrives.\n", - "\n", - "For example, the three-level continuous HGF that is illustrated [above](hgf-fig) is built on top of the following generative model:\n", - "\n", - "$$\n", - "\\begin{align}\n", - "u^{(k)} &\\sim \\mathcal{N}(u^{(k)} | x_1^{(k)}, \\, \\sigma_u) \\\\\n", - "x_1^{(k)} &\\sim \\mathcal{N}(x_1^{(k)} | x_1^{(k-1)} + \\alpha_{2,1} x_2^{(k)}, \\, \\exp(\\kappa_1 \\check{x}_1^{(k)} + \\omega_1)) \\\\\n", - "\\check{x}_1^{(k)} &\\sim \\mathcal{N}(\\check{x}_1^{(k)} | \\check{x}_1^{(k-1)} + \\alpha_{3,\\check{1}} x_3^{(k)}, \\, \\exp(\\omega_{\\check{1}})) \\\\\n", - "x_2^{(k)} &\\sim \\mathcal{N}(x_2^{(k)} | x_2^{(k-1)}, \\, \\exp(\\kappa_2 \\check{x}_2^{(k)} + \\omega_2)) \\\\\n", - "\\check{x}_2^{(k)} &\\sim \\mathcal{N}(\\check{x}_2^{(k)} | \\check{x}_2^{(k-1)}, \\, \\exp(\\omega_{\\check{2}})) \\\\\n", - "x_3^{(k)} &\\sim \\mathcal{N}(x_3^{(k)} | x_3^{(k-1)}, \\, \\exp(\\kappa_3 \\check{x}_3^{(k)} + \\omega_3)) \\\\\n", - "\\check{x}_3^{(k)} &\\sim \\mathcal{N}(\\check{x}_3^{(k)} | \\check{x}_3^{(k-1)}, \\, \\exp(\\omega_{\\check{3}})) \\\\\n", - "\\end{align}\n", - "$$\n", - "\n", - "Note that in this example, all states that are value parents of other states (or outcomes) have their own volatility parent, while states that are volatility parents to other nodes either have a value parent (as state $\\check{x}_1$), or no parents (as states $\\check{x}_2$ and $\\check{x}_3$). This is deliberately so, and we will see these two motifs - every state of a hierarchy has its own volatility estimation, and volatility states only have value parents - reappear in the following chapters." + "```{hint}\n", + "* A one-level HGF for continuous input can be seen as a [Kalman Filter](https://en.wikipedia.org/wiki/Kalman_filter). \n", + "* A two-level binary HGF can be seen as a [Rescorla-Wagner](https://en.wikipedia.org/wiki/Rescorla%E2%80%93Wagner_model) model with an adaptive learning rate that depends on the precision of the belief.\n", + "```" ] }, { @@ -397,17 +495,9 @@ "id": "cb7d2736-c868-46e3-90e2-e6bc37f61fe5", "metadata": {}, "source": [ - "## Belief updates in the HGF: Computations of nodes" - ] - }, - { - "cell_type": "markdown", - "id": "7cab126a-ae8e-4487-98d0-8af8e70e6e8d", - "metadata": {}, - "source": [ - "```{note}\n", - "The update equations for volatility and value coupling in the generalized hierarchical Gaussian filter have been described in {cite:p}`weber:2023`.\n", - "```" + "## The propagation of prediction and prediction errors in a network of probabilistic nodes\n", + "\n", + "The coding examples introduced above illustrated generative models that can simulate data forward from a given volatility structure, with key parameters stochastically fluctuating. Hierarchical Gaussian Filters use this as a model of the environment to make sense of new observations, also referred to as the sensory part of the HGF, or the filtering part. In this situation, new observations are coming in at the root of the network and the model updates the belief structure accordingly (from bottom to top nodes)." ] }, { @@ -417,11 +507,10 @@ "tags": [] }, "source": [ - "The coding examples introduced above illustrated generative models that can simulate data forward from a given volatility structure, with key parameters stochastically fluctuating. HGFs use this as a model of the environment to make sense of new observations, also referred to as the sensory part of the HGF, or the filtering part. In this situation, new observations are coming in and the model has to update the volatility structure accordingly (from bottom to top nodes).\n", + "In its first description, {cite:p}2011:mathys derived a set of simple, one-step update equations that represent changes in beliefs about the hidden states (i.e. the sufficient statistics of the nodes) specified in the generative model. The update equations for volatility and value coupling in the generalized hierarchical Gaussian filter have been described in {cite:p}`weber:2023`. For each state, a belief is held (and updated for every new input) by the agent and described as a Gaussian distribution, fully characterized by its mean and its inverse variance, or precision,\n", + "on a given trial (this is the notation we have been using in the previous examples). We conceptualize each belief as a node in a network, where belief updates involve computations within nodes as well as message passing between nodes. \n", "\n", - "In its first description, {cite:p}2011:mathys derived a set of simple, one-step update equations that represent changes in beliefs about the hidden states (i.e. the sufficient statistics of the nodes) specified in the generative model. For each state, a belief is held (and updated for every new input) by the agent and described as a Gaussian distribution, fully characterized by its mean\n", - "and its inverse variance, or precision,\n", - "on a given trial (this is the notation we have been using in the previous examples). We conceptualize each belief as a node in a network, where belief updates involve computations within nodes as well as message passing between nodes. The computations of any observation at each time point can be ordered in time as shown in the [belief update algorithm](#belief-update):" + "The computations triggered by any observation at each time point can be ordered in time as shown in the [belief update algorithm](#belief-update)." ] }, { @@ -474,271 +563,6 @@ "```" ] }, - { - "cell_type": "markdown", - "id": "55efe417-d0dd-4c62-8b97-bbe0d11fb329", - "metadata": {}, - "source": [ - "## Computations for VAPE coupling\n", - "\n", - "The exact computations of the {term}`Update` depend on the nature of the coupling with the child node(s), while both the {term}`Prediction error` and the {term}`Prediction` step depend on the coupling with the parent node(s).\n", - "\n", - "```{admonition} Update\n", - ":class: dropdown\n", - "\n", - "If Node $i$ is the value parent of Node $i-1$, then the following update equations apply to Node $i$:\n", - "\n", - "$$\n", - "\\begin{align}\n", - "\\pi_i^{(k)} &= \\hat{\\pi}_i^{(k)} + \\alpha_{i-1,i}^2 \\hat{\\pi}_{i-1}^{(k)}\\\\\n", - "\\mu_i^{(k)} &= \\hat{\\mu}_i^{(k)} + \\frac{\\alpha_{i-1,i}^2 \\hat{\\pi}_{i-1}^{(k)}} {\\alpha_{i-1,i}^2 \\hat{\\pi}_{i-1}^{(k)} + \\hat{\\pi}_{i}^{(k)}} \\delta_{i-1}^{(k)}\n", - "\\end{align}\n", - "$$\n", - "\n", - "We note here that we can let the update of the precision happen first, and therefore use it for the update of the mean:\n", - "\n", - "$$\n", - "\\begin{align}\n", - "\\pi_i^{(k)} &= \\hat{\\pi}_i^{(k)} + \\alpha_{i-1,i}^2 \\hat{\\pi}_{i-1}^{(k)}\\\\\n", - "\\mu_i^{(k)} &= \\hat{\\mu}_i^{(k)} + \\frac{\\alpha_{i-1,i}^2 \\hat{\\pi}_{i-1}^{(k)}} {\\pi_i^{(k)}} \\delta_{i-1}^{(k)}\n", - "\\end{align}\n", - "$$\n", - "\n", - "In sum, at the time of the update, Node $i$ needs to have access to the following quantities:\n", - "\n", - "* Its own predictions: $\\hat{\\mu}_i^{(k)}$, $\\hat{\\pi}_i^{(k)}$ \n", - "* Coupling strength: $\\alpha_{i-1,i}$ \n", - "* From level below: $\\delta_{i-1}^{(k)}$, $\\hat{\\pi}_{i-1}^{(k)}$ \n", - "\n", - "All of these are available at the time of the update. Node $i$ therefore only needs to receive the PE and the predicted precision from the level below to perform its update.\n", - "\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "a4f14032-58c7-4a02-b3fa-1b509c213027", - "metadata": {}, - "source": [ - "```{admonition} Prediction error\n", - ":class: dropdown\n", - "\n", - "We will assume in the following, that Node $i$ is the value child of Node $i+1$. Then the following quantities have to be sent up to Node $i+1$ (cf. necessary information from level below in a value parent):\n", - "\n", - "* Predicted precision: $\\hat{\\pi}_{i}^{(k)}$\n", - "* Prediction error: $\\delta_{i}^{(k)}$\n", - "\n", - "Node $i$ has already performed the **PREDICTION step** on the previous trial, so it has already computed the predicted precision of the current trial, $\\hat{\\pi}_{i}^{(k)}$. Hence, in the **PE step**, it needs to perform only the following calculation:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - "\\delta_i^{(k)} = \\mu_i^{(k)} - \\hat{\\mu}_i^{(k)}\n", - "\\end{equation}\n", - "$$\n", - "\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "b5a22aa0-4c68-4948-be22-da0587a97368", - "metadata": {}, - "source": [ - "```{admonition} Prediction\n", - ":class: dropdown\n", - "\n", - "Still assuming that Node $i$ is the value child of Node $i+1$, the prediction step consists of the following computations:\n", - "\n", - ":label: vape-prediction\n", - "\n", - "$$\n", - "\\begin{align}\n", - "\\hat{\\mu}_i^{(k+1)} &= \\mu_i^{(k)} + \\alpha_{i,i+1} \\mu_{i+1}^{(k)}\\\\\n", - "\\hat{\\pi}_i^{(k+1)} &= \\frac{1}{\\frac{1}{\\pi_i^{(k)}} + \\nu_i^{(k+1)} }\n", - "\\end{align}\n", - "$$\n", - "\n", - "with\n", - "\n", - "$$\n", - "\\begin{equation}\n", - "\\nu_i^{(k+1)} = \\exp(\\omega_i).\n", - "\\end{equation}\n", - "$$\n", - "\n", - "Note that if Node $i$ additionally has a {term}`VOPE` parent node, the estimated volatility $\\nu_i^{(k+1)}$ that enters the precision update would also depend on the posterior mean of that volatility parent (cf. {ref}`vope-prediction`).\n", - "\n", - "In general, the prediction of the mean will depend only on whether Node $i$ has a value parent or not, whereas the prediction of the precision only depends on whether Node $i$ has a volatility parent or not.\n", - "\n", - "Thus, the {ref}`vape-prediction` only depends on knowing the node's own posteriors and receiving the value parent's posterior in time before the new input arrives.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "d7236b44-cce3-4c8b-8d1b-7e4651559519", - "metadata": {}, - "source": [ - "## Computations for VOPE coupling\n", - "\n", - "As in the case of {term}`VAPE` coupling, the exact computations of the [vope update](#vope-update) depend on the nature of the coupling with the child node(s), while both the [vope pe](#vope-pe) and the [vope prediction](#vope-prediction) depend on the coupling with the parent node(s).\n", - "\n", - "To describe the computations entailed by {term}`VOPE` coupling, we will introduce two changes to the notation. First of all, we will express the volatility prediction error ({term}`VOPE`) as a function of the previously defined value prediction error ({term}`VAPE`). That means from now on, we will use the character $\\delta_i$ only for {term}`VAPE`.\n", - "\n", - "$$\n", - "\\begin{equation}\n", - "\\delta_i^{(k)} \\equiv \\delta_i^{(k, VAPE)} = \\mu_i^{(k)} - \\hat{\\mu}_i^{(k)},\n", - "\\end{equation}\n", - "$$\n", - "\n", - "and introduce a new character $\\Delta_i$ for {term}`VOPE`, which we define as\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\begin{split}\n", - " \\Delta_i^{(k)} \\equiv \\delta_i^{(k, VOPE)} &= \\frac{ \\frac{1}{\\pi_{i}^{(k)}} + (\\mu_i^{(k)} - \\hat{\\mu}_i^{(k)})^2 }{ \\frac{1}{\\pi_{i}^{(k-1)}} + \\nu_{i}^{(k)} } - 1 \\\\\n", - " &= \\hat{\\pi}_i^{(k)} \\left( \\frac{1}{\\pi_{i}^{(k)}} + (\\mu_i^{(k)} - \\hat{\\mu}_i^{(k)})^2 \\right) - 1 \\\\\n", - " &= \\hat{\\pi}_i^{(k)} \\left( \\frac{1}{\\pi_{i}^{(k)}} + (\\delta_i^{(k)})^2 \\right) - 1 \\\\\n", - " &= \\frac{\\hat{\\pi}_i^{(k)}}{\\pi_{i}^{(k)}} + \\hat{\\pi}_i^{(k)} (\\delta_i^{(k)})^2 - 1. \\\\\n", - " \\end{split}\n", - "\\end{equation}\n", - "$$\n", - "\n", - "Note that from the first to the second line, we have used the following definition:\n", - "\n", - "$$\n", - "\\begin{equation*}\n", - "\\hat{\\pi}_{i-1}^{(k)} = \\frac{1}{ \\frac{1}{\\pi_{i-1}^{(k-1)}} + \\nu_{i-1}^{(k)} }.\n", - "\\end{equation*}\n", - "$$\n", - "\n", - "This ensures that a given node does not need to have access to the posterior precision from the level below: $\\pi_{i-1}^{(k-1)}$, which facilitates implementation.\n", - "\n", - "In sum, we are introducing a second prediction error unit $\\Delta_i$ which is concerned with deviations from predicted uncertainty and is informed by value prediction errors and other estimates of uncertainty. It is this prediction error - a function of the unweighted (squared) value prediction error with a new precision weight - which communicates between a level's nodes and a level's volatility parent's nodes.\n", - "\n", - "Second, we will introduce another quantity, which we term the (auxiliary) expected precision\n", - "\n", - "$$\n", - "\\begin{equation}\n", - "\\gamma_i^{(k)} = \\nu_i^{(k)} \\hat{\\pi}_i^{(k)},\n", - "\\end{equation}\n", - "$$\n", - "\n", - "which will be computed as part of the [vope preditions](#vope-prediction) and only serves to simplify the equations and the corresponding message passing." - ] - }, - { - "cell_type": "markdown", - "id": "9a6d7ee1-fbd6-4d7b-af11-636c2e5a78e3", - "metadata": {}, - "source": [ - "```{admonition} Update\n", - ":class: dropdown\n", - ":name: vope-update\n", - "\n", - "If Node $i$ is the volatility parent of Node $i-1$, then the following update equations apply to Node $i$:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - "\\pi_i^{(k)} &= \\hat{\\pi}_i^{(k)}\n", - "+ \\frac{1}{2}(\\kappa_{i-1} \\nu_{i-1}^{(k)} \\hat{\\pi}_{i-1}^{(k)})^2\n", - "* (1 + (1 - \\frac{1}{\\pi_{i-1}^{(k-1)} \\nu_{i-1}^{(k)}})\n", - "\\delta_{i-1}^{(k)})\\\\\n", - "&= \\hat{\\pi}_i^{(k)}\n", - "+ \\frac{1}{2}(\\kappa_{i-1} \\nu_{i-1}^{(k)} \\hat{\\pi}_{i-1}^{(k)})^2\n", - "* (1 + (2 - \\frac{1}{\\hat{\\pi}_{i-1}^{(k)} \\nu_{i-1}^{(k)}})\n", - "\\delta_{i-1}^{(k)})\\\\\n", - "\\mu_i^{(k)} &= \\hat{\\mu}_i^{(k)}\n", - "+ \\frac{1}{2}\\kappa_{i-1} \\nu_{i-1}^{(k)}\n", - "\\frac{\\hat{\\pi}_{i-1}^{(k)}}{\\pi_{i}^{(k)}} \\delta_{i-1}^{(k)},\n", - "\\end{align*}\n", - "$$\n", - "\n", - "where we have again used the definition of the predicted precision $\\hat{\\pi}_{i-1}^{(k)}$ to derive an expression for the posterior precision from the previous trial $\\pi_{i-1}^{(k-1)}$:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - "\\hat{\\pi}_{i-1}^{(k)} &= \\frac{1}{ \\frac{1}{\\pi_{i-1}^{(k-1)}} + \\nu_{i-1}^{(k)} }\\\\\n", - "\\Leftrightarrow \\pi_{i-1}^{(k-1)} &= \\frac{1}{ \\frac{1}{\\hat{\\pi}_{i-1}^{(k)}} - \\nu_{i-1}^{(k)} }.\n", - "\\end{align*}\n", - "$$\n", - "\n", - "With the changes from above, namely the definitions of the \\textsf{VOPE} $\\Delta_i$ and the expected precision $\\gamma_i^{(k)}$, the update equations for the precision and the mean in volatility coupling simplify to:\n", - "\\vspace{0.5cm}\n", - "\n", - "$$\n", - "\\begin{align}\n", - "\\pi_i^{(k)} &= \\hat{\\pi}_i^{(k)}\n", - "+ \\frac{1}{2} (\\kappa_{i,i-1} \\gamma_{i-1}^{(k)})^2\n", - "+ (\\kappa_{i,i-1} \\gamma_{i-1}^{(k)})^2 \\Delta_{i-1}^{(k)}\n", - "- \\frac{1}{2} \\kappa_{i,i-1}^2 \\gamma_{i-1}^{(k)} \\Delta_{i-1}^{(k)}\\\\\n", - "\\mu_i^{(k)} &= \\hat{\\mu}_i^{(k)}\n", - "+ \\frac{1}{2} \\frac{\\kappa_{i,i-1} \\gamma_{i-1}^{(k)}}{\\pi_i^{(k)}} \\Delta_{i-1}^{(k)}\n", - "\\end{align}\n", - "$$\n", - "\n", - "\n", - "Therefore, at the time of the update, Node $i$ needs to have access to the following quantities:\n", - "\n", - "* Its own predictions: $\\hat{\\mu}_i^{(k)}$, $\\hat{\\pi}_i^{(k)}$\n", - "* Coupling strength: $\\kappa_{i,i-1}$\n", - "* From level below: $\\Delta_{i-1}^{(k)}$, $\\gamma_{i-1}^{(k)}$\n", - "\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "50ac4684-5cd8-4e0a-827c-513f04f2e444", - "metadata": {}, - "source": [ - "```{admonition} Prediction-error\n", - ":class: dropdown\n", - ":name: vope-pe\n", - "\n", - "The exact computation of the prediction error depends, like the computation of the new prediction, on the nature of the coupling with the parent nodes. We will therefore assume in the following, that Node $i$ is the volatility child of Node $i+1$. Then the following quantities have to be sent up to Node $i+1$ (see also necessary information from level below in a volatility parent):\n", - "\n", - "* Expected precision: $\\gamma_{i}^{(k)}$\n", - "* Prediction error: $\\Delta_{i}^{(k)}$\n", - "\n", - "Node $i$ has already performed the {ref}`vope-prediction` on the previous trial, so it has already computed the predicted precision, $\\hat{\\pi}_{i}^{(k)}$, and the volatiliy estimate, $\\nu_i^{(k)}$, and out of these the expected precision, $\\gamma_{i}^{(k)}$, for the current trial. Hence, in the **PE step**, it needs to perform only the following calculations:\n", - "\n", - "$$\n", - "\\begin{align}\n", - "\\delta_i^{(k)} &= \\mu_i^{(k)} - \\hat{\\mu}_i^{(k)}\\\\\n", - "\\Delta_i^{(k)} &= \\frac{\\hat{\\pi}_i^{(k)}}{\\pi_{i}^{(k)}} + \\hat{\\pi}_i^{(k)} (\\delta_i^{(k)})^2 - 1.\n", - "\\end{align}\n", - "$$\n", - "\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "e8532acf-07d3-4fe3-89fb-0d6ee7538865", - "metadata": {}, - "source": [ - "```{admonition} Prediction\n", - ":class: dropdown\n", - ":name: vope-prediction\n", - "\n", - "Still assuming that Node $i$ is the volatility child of Node $i+1$, the prediction consists of the following simple computations:\n", - "\n", - "$$\n", - "\\begin{align}\n", - "\\hat{\\mu}_i^{(k+1)} &= \\mu_i^{(k)}\\\\\n", - "\\nu_i^{(k+1)} &= \\exp(\\kappa_i \\mu_{i+1}^{(k)} + \\omega_i)\\\\\n", - "\\hat{\\pi}_i^{(k+1)} &= \\frac{1}{\\frac{1}{\\pi_i^{(k)}} + \\nu_i^{(k+1)} }\\\\\n", - "\\gamma_i^{(k+1)} &= \\nu_i^{(k+1)} \\hat{\\pi}_i^{(k+1)}\n", - "\\end{align}\n", - "$$\n", - "\n", - "Thus, the prediction for trial $k+1$ depends again only on receiving the posterior mean of Node $i+1$ on trial $k$, and knowing the Node's own posteriors.\n", - "\n", - "Note that if Node $i$ additionally has a {term}`VAPE` parent node, the prediction of the new mean, $\\hat{\\mu}_i^{k+1}$ would also depend on the posterior mean of that value parent (cf. {ref}`vape-prediction`).\n", - "```" - ] - }, { "cell_type": "markdown", "id": "0b42f5b3-ef6f-41d4-91a9-f1b604db1c80", diff --git a/docs/source/notebooks/0-Theory.md b/docs/source/notebooks/0-Theory.md index 0c5b82307..b7520688e 100644 --- a/docs/source/notebooks/0-Theory.md +++ b/docs/source/notebooks/0-Theory.md @@ -5,7 +5,7 @@ jupytext: extension: .md format_name: myst format_version: 0.13 - jupytext_version: 1.14.7 + jupytext_version: 1.15.1 kernelspec: display_name: Python 3 (ipykernel) language: python @@ -13,13 +13,18 @@ kernelspec: --- (theory)= -# An introduction to the Hierarchical Gaussian Filter -In this notebook, we introduce the main concepts on which the Hierarchical Gaussian Filter (HGF) is based. We describe the main equations and illustrate the examples with Python code. We start with the generative model of the HGF, which describes how the model assumes that the data is being generated. This generative structure is then used to filter the observation (i.e. the sensory part of the model), which is then used by the agent to produce behaviours (i.e. the action part of the model). Next, we show how this model can be "inverted" and used by an agent to infer parameter values that generated the sensory inputs. From there, we discuss the notion of prediction error and how derivations of the model can be used to infer probability densities given observed behavioural outcomes. +# Introduction to the Hierarchical Gaussian Filter +In this notebook, we introduce the main concepts on which the Hierarchical Gaussian Filter (HGF) is based. We describe the main equations and illustrate the examples with Python code. We start with the generative model of the HGF, which describes how the model assumes that the data is being generated. This generative structure is then used to filter the observation (i.e. the sensory part of the model), which is then used by the agent to produce behaviours (i.e. the action part of the model). Next, we show how this model can be "inverted" and used by an agent to infer parameter values that generate the sensory inputs. From there, we discuss the notion of prediction error and how derivations of the model can be used to infer probability densities given observed behavioural outcomes. -+++ +```{code-cell} ipython3 +import matplotlib.pyplot as plt +import numpy as np +import seaborn as sns +``` ## The generative model +### Gaussian Random Walks To illustrate the generative model on which the HGF is based, we will start with a simple two-level continuous HGF (see also the tutorial {ref}`continuous_hgf`). The generative model that underpins the continuous HGF is a generalisation of the [Gaussian Random Walk](https://en.wikipedia.org/wiki/Random_walk#Gaussian_random_walk) (GRW). A GRW generate a new observation $x_1^{(k)}$ at each time step $k$ from a normal distribution and using the previous observation $x_1^{(k-1)}$ such as: $$ @@ -31,10 +36,6 @@ where $\sigma^2$ is the variance of the distribution. In the example below, we u ```{code-cell} ipython3 :tags: [hide-input] -import matplotlib.pyplot as plt -import numpy as np -import seaborn as sns - np.random.seed(123) # random walk @@ -48,10 +49,79 @@ plt.ylabel("$x_{1}$"); sns.despine() ``` -This simple process will be our first building block. Importantly here, the variability of the sensory input is constant across time: even if we don't know exactly in which direction the time series is going to move in the future, we know that is is unlikely to make certain kind of big jumps, because it is controlled by a fixed parameter, the variance $\sigma^2$. +This simple process will be our first building block. Importantly here, the variability of the sensory input is constant across time: even if we don't know exactly in which direction the time series is going to move in the future, we know that it is unlikely to make certain kinds of big jumps because it is controlled by a fixed parameter, the variance $\sigma^2$. + ++++ + +### Adding a drift to the random walk + +The Gaussian random walk can be further parametrized by adding a drift over time. This value, often noted $\rho$, will be added at each time step: + +$$ +x_1^{(k)} \sim \mathcal{N}(x_1^{(k-1)} + \rho, \sigma^2) +$$ + +We run the same simulation using $\rho = 0.1$ in the cell below: + +```{code-cell} ipython3 +np.random.seed(123) + +# add a drift at each time step +rho = .1 + +# random walk +x_1 = np.cumsum(np.random.normal(loc=rho, scale=1, size=200)) # GRW +x_1 = np.insert(x_1, 0, 0) # starting at 0 + +plt.figure(figsize=(12, 3)) +plt.plot(x_1, "o-", alpha=.4); +plt.xlabel("Time step (k)"); +plt.ylabel("$x_{1}$"); +sns.despine() +``` + ++++ {"editable": true, "slideshow": {"slide_type": ""}} + +### Autoregressive processes + +We can also assume that the generative process follows an [autoregressive model](https://en.wikipedia.org/wiki/Autoregressive_model), in which case the value of the next iteration is weighted by a coefficient and called by an intercept, often note $\phi$ and $m$ (respectively) in the Matlab toolbox. + + +$$ +x_1^{(k)} \sim \mathcal{N}(m + \phi * x_1^{(k-1)}, \sigma^2) +$$ + +We repeat the same simulation below using $\phi = .4$ and $m = 12.0$. + +```{code-cell} ipython3 +--- +editable: true +slideshow: + slide_type: '' +tags: [hide-input] +--- +np.random.seed(123) + +phi, m = 0.4, 12.0 + +# random walk with AR1 process +x_1 = [0.0] +for i in range(200): + x_1.append( + np.random.normal(phi * (m - x_1[i-1]) + x_1[i-1], scale=1) + ) + +plt.figure(figsize=(12, 3)) +plt.plot(x_1, "o-", alpha=.4); +plt.xlabel("Time step (k)"); +plt.ylabel("$x_{1}$"); +sns.despine() +``` + ++++ {"editable": true, "slideshow": {"slide_type": ""}} ### Volatility coupling -Now, we can also decide to change that and let the variance itself being a stochastic process generated by another randome walk. The HGF fundamentaly captitalize on this notion and generalize the standard GRW by letting the variance $\sigma^2$ being controlled by a higher level node. +Now, we can also decide to change that and let the variance itself be a stochastic process generated by another random walk. The HGF fundamentally capitalise on this notion and generalizes the standard GRW by letting the variance $\sigma^2$ be controlled by a higher-level node. +++ {"editable": true, "slideshow": {"slide_type": ""}} @@ -223,70 +293,25 @@ name: hgf-fig The two-level and three-level Hierarchical Gaussian Filters for binary or continuous inputs, as described in {cite:p}`2014:mathys,2011:mathys`. The binary HGF has the particularity that it uses a sigmoid transform in the input node to convert continuous values into binary probabilities. For both models, volatility coupling is depicted with dashed lines, and value coupling with straight lines. The three-level HGF has one volatility layer more than the two-level HGF. ``` -```{hint} -A one-level HGF for continuous input is a [Kalman Filter](https://en.wikipedia.org/wiki/Kalman_filter). -``` - +++ -Still assuming that Node $i$ is the value child of Node $i+1$, the prediction step consists of the following computations: - -:label: vape-prediction - -$$ -\begin{align} -\hat{\mu}_i^{(k+1)} &= \mu_i^{(k)} + \alpha_{i,i+1} \mu_{i+1}^{(k)}\\ -\hat{\pi}_i^{(k+1)} &= \frac{1}{\frac{1}{\pi_i^{(k)}} + \nu_i^{(k+1)} } -\end{align} -$$ - -with - -$$ -\begin{equation} -\nu_i^{(k+1)} = \exp(\omega_i). -\end{equation} -$$ - -Note that if Node $i$ additionally has a {term}`VOPE` parent node, the estimated volatility $\nu_i^{(k+1)}$ that enters the precision update would also depend on the posterior mean of that volatility parent (cf. {ref}`vope-prediction`). - -In general, the prediction of the mean will depend only on whether Node $i$ has a value parent or not, whereas the prediction of the precision only depends on whether Node $i$ has a volatility parent or not. - -Thus, the {ref}`vape-prediction` only depends on knowing the node's own posteriors and receiving the value parent's posterior in time before the new input arrives. - -For example, the three-level continuous HGF that is illustrated [above](hgf-fig) is built on top of the following generative model: - -$$ -\begin{align} -u^{(k)} &\sim \mathcal{N}(u^{(k)} | x_1^{(k)}, \, \sigma_u) \\ -x_1^{(k)} &\sim \mathcal{N}(x_1^{(k)} | x_1^{(k-1)} + \alpha_{2,1} x_2^{(k)}, \, \exp(\kappa_1 \check{x}_1^{(k)} + \omega_1)) \\ -\check{x}_1^{(k)} &\sim \mathcal{N}(\check{x}_1^{(k)} | \check{x}_1^{(k-1)} + \alpha_{3,\check{1}} x_3^{(k)}, \, \exp(\omega_{\check{1}})) \\ -x_2^{(k)} &\sim \mathcal{N}(x_2^{(k)} | x_2^{(k-1)}, \, \exp(\kappa_2 \check{x}_2^{(k)} + \omega_2)) \\ -\check{x}_2^{(k)} &\sim \mathcal{N}(\check{x}_2^{(k)} | \check{x}_2^{(k-1)}, \, \exp(\omega_{\check{2}})) \\ -x_3^{(k)} &\sim \mathcal{N}(x_3^{(k)} | x_3^{(k-1)}, \, \exp(\kappa_3 \check{x}_3^{(k)} + \omega_3)) \\ -\check{x}_3^{(k)} &\sim \mathcal{N}(\check{x}_3^{(k)} | \check{x}_3^{(k-1)}, \, \exp(\omega_{\check{3}})) \\ -\end{align} -$$ - -Note that in this example, all states that are value parents of other states (or outcomes) have their own volatility parent, while states that are volatility parents to other nodes either have a value parent (as state $\check{x}_1$), or no parents (as states $\check{x}_2$ and $\check{x}_3$). This is deliberately so, and we will see these two motifs - every state of a hierarchy has its own volatility estimation, and volatility states only have value parents - reappear in the following chapters. +```{hint} +* A one-level HGF for continuous input can be seen as a [Kalman Filter](https://en.wikipedia.org/wiki/Kalman_filter). +* A two-level binary HGF can be seen as a [Rescorla-Wagner](https://en.wikipedia.org/wiki/Rescorla%E2%80%93Wagner_model) model with an adaptive learning rate that depends on the precision of the belief. +``` +++ -## Belief updates in the HGF: Computations of nodes +## The propagation of prediction and prediction errors in a network of probabilistic nodes -+++ - -```{note} -The update equations for volatility and value coupling in the generalized hierarchical Gaussian filter have been described in {cite:p}`weber:2023`. -``` +The coding examples introduced above illustrated generative models that can simulate data forward from a given volatility structure, with key parameters stochastically fluctuating. Hierarchical Gaussian Filters use this as a model of the environment to make sense of new observations, also referred to as the sensory part of the HGF, or the filtering part. In this situation, new observations are coming in at the root of the network and the model updates the belief structure accordingly (from bottom to top nodes). +++ -The coding examples introduced above illustrated generative models that can simulate data forward from a given volatility structure, with key parameters stochastically fluctuating. HGFs use this as a model of the environment to make sense of new observations, also referred to as the sensory part of the HGF, or the filtering part. In this situation, new observations are coming in and the model has to update the volatility structure accordingly (from bottom to top nodes). +In its first description, {cite:p}2011:mathys derived a set of simple, one-step update equations that represent changes in beliefs about the hidden states (i.e. the sufficient statistics of the nodes) specified in the generative model. The update equations for volatility and value coupling in the generalized hierarchical Gaussian filter have been described in {cite:p}`weber:2023`. For each state, a belief is held (and updated for every new input) by the agent and described as a Gaussian distribution, fully characterized by its mean and its inverse variance, or precision, +on a given trial (this is the notation we have been using in the previous examples). We conceptualize each belief as a node in a network, where belief updates involve computations within nodes as well as message passing between nodes. -In its first description, {cite:p}2011:mathys derived a set of simple, one-step update equations that represent changes in beliefs about the hidden states (i.e. the sufficient statistics of the nodes) specified in the generative model. For each state, a belief is held (and updated for every new input) by the agent and described as a Gaussian distribution, fully characterized by its mean -and its inverse variance, or precision, -on a given trial (this is the notation we have been using in the previous examples). We conceptualize each belief as a node in a network, where belief updates involve computations within nodes as well as message passing between nodes. The computations of any observation at each time point can be ordered in time as shown in the [belief update algorithm](#belief-update): +The computations triggered by any observation at each time point can be ordered in time as shown in the [belief update algorithm](#belief-update). +++ @@ -326,243 +351,6 @@ We have placed the {term}`Prediction` step at the end of the update loop. This i +++ -## Computations for VAPE coupling - -The exact computations of the {term}`Update` depend on the nature of the coupling with the child node(s), while both the {term}`Prediction error` and the {term}`Prediction` step depend on the coupling with the parent node(s). - -```{admonition} Update -:class: dropdown - -If Node $i$ is the value parent of Node $i-1$, then the following update equations apply to Node $i$: - -$$ -\begin{align} -\pi_i^{(k)} &= \hat{\pi}_i^{(k)} + \alpha_{i-1,i}^2 \hat{\pi}_{i-1}^{(k)}\\ -\mu_i^{(k)} &= \hat{\mu}_i^{(k)} + \frac{\alpha_{i-1,i}^2 \hat{\pi}_{i-1}^{(k)}} {\alpha_{i-1,i}^2 \hat{\pi}_{i-1}^{(k)} + \hat{\pi}_{i}^{(k)}} \delta_{i-1}^{(k)} -\end{align} -$$ - -We note here that we can let the update of the precision happen first, and therefore use it for the update of the mean: - -$$ -\begin{align} -\pi_i^{(k)} &= \hat{\pi}_i^{(k)} + \alpha_{i-1,i}^2 \hat{\pi}_{i-1}^{(k)}\\ -\mu_i^{(k)} &= \hat{\mu}_i^{(k)} + \frac{\alpha_{i-1,i}^2 \hat{\pi}_{i-1}^{(k)}} {\pi_i^{(k)}} \delta_{i-1}^{(k)} -\end{align} -$$ - -In sum, at the time of the update, Node $i$ needs to have access to the following quantities: - -* Its own predictions: $\hat{\mu}_i^{(k)}$, $\hat{\pi}_i^{(k)}$ -* Coupling strength: $\alpha_{i-1,i}$ -* From level below: $\delta_{i-1}^{(k)}$, $\hat{\pi}_{i-1}^{(k)}$ - -All of these are available at the time of the update. Node $i$ therefore only needs to receive the PE and the predicted precision from the level below to perform its update. - -``` - -+++ - -```{admonition} Prediction error -:class: dropdown - -We will assume in the following, that Node $i$ is the value child of Node $i+1$. Then the following quantities have to be sent up to Node $i+1$ (cf. necessary information from level below in a value parent): - -* Predicted precision: $\hat{\pi}_{i}^{(k)}$ -* Prediction error: $\delta_{i}^{(k)}$ - -Node $i$ has already performed the **PREDICTION step** on the previous trial, so it has already computed the predicted precision of the current trial, $\hat{\pi}_{i}^{(k)}$. Hence, in the **PE step**, it needs to perform only the following calculation: - -$$ -\begin{equation} -\delta_i^{(k)} = \mu_i^{(k)} - \hat{\mu}_i^{(k)} -\end{equation} -$$ - -``` - -+++ - -```{admonition} Prediction -:class: dropdown - -Still assuming that Node $i$ is the value child of Node $i+1$, the prediction step consists of the following computations: - -:label: vape-prediction - -$$ -\begin{align} -\hat{\mu}_i^{(k+1)} &= \mu_i^{(k)} + \alpha_{i,i+1} \mu_{i+1}^{(k)}\\ -\hat{\pi}_i^{(k+1)} &= \frac{1}{\frac{1}{\pi_i^{(k)}} + \nu_i^{(k+1)} } -\end{align} -$$ - -with - -$$ -\begin{equation} -\nu_i^{(k+1)} = \exp(\omega_i). -\end{equation} -$$ - -Note that if Node $i$ additionally has a {term}`VOPE` parent node, the estimated volatility $\nu_i^{(k+1)}$ that enters the precision update would also depend on the posterior mean of that volatility parent (cf. {ref}`vope-prediction`). - -In general, the prediction of the mean will depend only on whether Node $i$ has a value parent or not, whereas the prediction of the precision only depends on whether Node $i$ has a volatility parent or not. - -Thus, the {ref}`vape-prediction` only depends on knowing the node's own posteriors and receiving the value parent's posterior in time before the new input arrives. -``` - -+++ - -## Computations for VOPE coupling - -As in the case of {term}`VAPE` coupling, the exact computations of the [vope update](#vope-update) depend on the nature of the coupling with the child node(s), while both the [vope pe](#vope-pe) and the [vope prediction](#vope-prediction) depend on the coupling with the parent node(s). - -To describe the computations entailed by {term}`VOPE` coupling, we will introduce two changes to the notation. First of all, we will express the volatility prediction error ({term}`VOPE`) as a function of the previously defined value prediction error ({term}`VAPE`). That means from now on, we will use the character $\delta_i$ only for {term}`VAPE`. - -$$ -\begin{equation} -\delta_i^{(k)} \equiv \delta_i^{(k, VAPE)} = \mu_i^{(k)} - \hat{\mu}_i^{(k)}, -\end{equation} -$$ - -and introduce a new character $\Delta_i$ for {term}`VOPE`, which we define as - -$$ -\begin{equation} - \begin{split} - \Delta_i^{(k)} \equiv \delta_i^{(k, VOPE)} &= \frac{ \frac{1}{\pi_{i}^{(k)}} + (\mu_i^{(k)} - \hat{\mu}_i^{(k)})^2 }{ \frac{1}{\pi_{i}^{(k-1)}} + \nu_{i}^{(k)} } - 1 \\ - &= \hat{\pi}_i^{(k)} \left( \frac{1}{\pi_{i}^{(k)}} + (\mu_i^{(k)} - \hat{\mu}_i^{(k)})^2 \right) - 1 \\ - &= \hat{\pi}_i^{(k)} \left( \frac{1}{\pi_{i}^{(k)}} + (\delta_i^{(k)})^2 \right) - 1 \\ - &= \frac{\hat{\pi}_i^{(k)}}{\pi_{i}^{(k)}} + \hat{\pi}_i^{(k)} (\delta_i^{(k)})^2 - 1. \\ - \end{split} -\end{equation} -$$ - -Note that from the first to the second line, we have used the following definition: - -$$ -\begin{equation*} -\hat{\pi}_{i-1}^{(k)} = \frac{1}{ \frac{1}{\pi_{i-1}^{(k-1)}} + \nu_{i-1}^{(k)} }. -\end{equation*} -$$ - -This ensures that a given node does not need to have access to the posterior precision from the level below: $\pi_{i-1}^{(k-1)}$, which facilitates implementation. - -In sum, we are introducing a second prediction error unit $\Delta_i$ which is concerned with deviations from predicted uncertainty and is informed by value prediction errors and other estimates of uncertainty. It is this prediction error - a function of the unweighted (squared) value prediction error with a new precision weight - which communicates between a level's nodes and a level's volatility parent's nodes. - -Second, we will introduce another quantity, which we term the (auxiliary) expected precision - -$$ -\begin{equation} -\gamma_i^{(k)} = \nu_i^{(k)} \hat{\pi}_i^{(k)}, -\end{equation} -$$ - -which will be computed as part of the [vope preditions](#vope-prediction) and only serves to simplify the equations and the corresponding message passing. - -+++ - -```{admonition} Update -:class: dropdown -:name: vope-update - -If Node $i$ is the volatility parent of Node $i-1$, then the following update equations apply to Node $i$: - -$$ -\begin{align*} -\pi_i^{(k)} &= \hat{\pi}_i^{(k)} -+ \frac{1}{2}(\kappa_{i-1} \nu_{i-1}^{(k)} \hat{\pi}_{i-1}^{(k)})^2 -* (1 + (1 - \frac{1}{\pi_{i-1}^{(k-1)} \nu_{i-1}^{(k)}}) -\delta_{i-1}^{(k)})\\ -&= \hat{\pi}_i^{(k)} -+ \frac{1}{2}(\kappa_{i-1} \nu_{i-1}^{(k)} \hat{\pi}_{i-1}^{(k)})^2 -* (1 + (2 - \frac{1}{\hat{\pi}_{i-1}^{(k)} \nu_{i-1}^{(k)}}) -\delta_{i-1}^{(k)})\\ -\mu_i^{(k)} &= \hat{\mu}_i^{(k)} -+ \frac{1}{2}\kappa_{i-1} \nu_{i-1}^{(k)} -\frac{\hat{\pi}_{i-1}^{(k)}}{\pi_{i}^{(k)}} \delta_{i-1}^{(k)}, -\end{align*} -$$ - -where we have again used the definition of the predicted precision $\hat{\pi}_{i-1}^{(k)}$ to derive an expression for the posterior precision from the previous trial $\pi_{i-1}^{(k-1)}$: - -$$ -\begin{align*} -\hat{\pi}_{i-1}^{(k)} &= \frac{1}{ \frac{1}{\pi_{i-1}^{(k-1)}} + \nu_{i-1}^{(k)} }\\ -\Leftrightarrow \pi_{i-1}^{(k-1)} &= \frac{1}{ \frac{1}{\hat{\pi}_{i-1}^{(k)}} - \nu_{i-1}^{(k)} }. -\end{align*} -$$ - -With the changes from above, namely the definitions of the \textsf{VOPE} $\Delta_i$ and the expected precision $\gamma_i^{(k)}$, the update equations for the precision and the mean in volatility coupling simplify to: -\vspace{0.5cm} - -$$ -\begin{align} -\pi_i^{(k)} &= \hat{\pi}_i^{(k)} -+ \frac{1}{2} (\kappa_{i,i-1} \gamma_{i-1}^{(k)})^2 -+ (\kappa_{i,i-1} \gamma_{i-1}^{(k)})^2 \Delta_{i-1}^{(k)} -- \frac{1}{2} \kappa_{i,i-1}^2 \gamma_{i-1}^{(k)} \Delta_{i-1}^{(k)}\\ -\mu_i^{(k)} &= \hat{\mu}_i^{(k)} -+ \frac{1}{2} \frac{\kappa_{i,i-1} \gamma_{i-1}^{(k)}}{\pi_i^{(k)}} \Delta_{i-1}^{(k)} -\end{align} -$$ - - -Therefore, at the time of the update, Node $i$ needs to have access to the following quantities: - -* Its own predictions: $\hat{\mu}_i^{(k)}$, $\hat{\pi}_i^{(k)}$ -* Coupling strength: $\kappa_{i,i-1}$ -* From level below: $\Delta_{i-1}^{(k)}$, $\gamma_{i-1}^{(k)}$ - -``` - -+++ - -```{admonition} Prediction-error -:class: dropdown -:name: vope-pe - -The exact computation of the prediction error depends, like the computation of the new prediction, on the nature of the coupling with the parent nodes. We will therefore assume in the following, that Node $i$ is the volatility child of Node $i+1$. Then the following quantities have to be sent up to Node $i+1$ (see also necessary information from level below in a volatility parent): - -* Expected precision: $\gamma_{i}^{(k)}$ -* Prediction error: $\Delta_{i}^{(k)}$ - -Node $i$ has already performed the {ref}`vope-prediction` on the previous trial, so it has already computed the predicted precision, $\hat{\pi}_{i}^{(k)}$, and the volatiliy estimate, $\nu_i^{(k)}$, and out of these the expected precision, $\gamma_{i}^{(k)}$, for the current trial. Hence, in the **PE step**, it needs to perform only the following calculations: - -$$ -\begin{align} -\delta_i^{(k)} &= \mu_i^{(k)} - \hat{\mu}_i^{(k)}\\ -\Delta_i^{(k)} &= \frac{\hat{\pi}_i^{(k)}}{\pi_{i}^{(k)}} + \hat{\pi}_i^{(k)} (\delta_i^{(k)})^2 - 1. -\end{align} -$$ - -``` - -+++ - -```{admonition} Prediction -:class: dropdown -:name: vope-prediction - -Still assuming that Node $i$ is the volatility child of Node $i+1$, the prediction consists of the following simple computations: - -$$ -\begin{align} -\hat{\mu}_i^{(k+1)} &= \mu_i^{(k)}\\ -\nu_i^{(k+1)} &= \exp(\kappa_i \mu_{i+1}^{(k)} + \omega_i)\\ -\hat{\pi}_i^{(k+1)} &= \frac{1}{\frac{1}{\pi_i^{(k)}} + \nu_i^{(k+1)} }\\ -\gamma_i^{(k+1)} &= \nu_i^{(k+1)} \hat{\pi}_i^{(k+1)} -\end{align} -$$ - -Thus, the prediction for trial $k+1$ depends again only on receiving the posterior mean of Node $i+1$ on trial $k$, and knowing the Node's own posteriors. - -Note that if Node $i$ additionally has a {term}`VAPE` parent node, the prediction of the new mean, $\hat{\mu}_i^{k+1}$ would also depend on the posterior mean of that value parent (cf. {ref}`vape-prediction`). -``` - -+++ - ## Glossary ```{glossary}