├── Deterministic vs Probabilistic Deep Learning.ipynb ├── Deterministic vs Probabilistic Regression with Tensorflow.ipynb ├── Frequentist vs. Bayesian Statistics with Tensorflow.ipynb ├── Gentle Introduction to TensorFlow Probability - Distribution Objects.ipynb ├── Gentle Introduction to TensorFlow Probability - Trainable Parameters.ipynb ├── Maximum Likelihood Estimation from scratch in TensorFlow Probability.ipynb ├── Naive Bayes from Scratch with Tensorflow Probability.ipynb ├── Probabilistic Linear Regression from scratch in TensorFlow.ipynb └── README.md /Deterministic vs Probabilistic Regression with Tensorflow.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "id": "2d85812d-149c-4264-9338-e17f10a20a19", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import tensorflow as tf\n", 11 | "import tensorflow_probability as tfp\n", 12 | "import os\n", 13 | "import numpy as np\n", 14 | "import matplotlib.pyplot as plt\n", 15 | "import seaborn as sns\n", 16 | "sns.set_style(\"darkgrid\")\n", 17 | "import pandas as pd\n", 18 | "from tensorflow import keras\n", 19 | "\n", 20 | "from tensorflow.keras.models import Sequential\n", 21 | "from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D\n", 22 | "from tensorflow.keras.losses import SparseCategoricalCrossentropy, MeanSquaredError\n", 23 | "from tensorflow.keras.optimizers import RMSprop\n", 24 | "\n", 25 | "import tensorflow_datasets as tfds\n", 26 | "\n", 27 | "tfd = tfp.distributions\n", 28 | "tfpl = tfp.layers" 29 | ] 30 | }, 31 | { 32 | "cell_type": "markdown", 33 | "id": "b87cce23-e11f-46c1-ad84-20b3318aa6f8", 34 | "metadata": {}, 35 | "source": [ 36 | "# Introduction\n", 37 | "This article belongs to the series \"Probabilistic Deep Learning\". This weekly series covers probabilistic approaches to deep learning. The main goal is to extend deep learning models to quantify uncertainty, i.e. know what they do not know.\n", 38 | "\n", 39 | "In this article we are going to explore the main differences between deterministic and probabilistic regression. In general, deterministic regression is useful when the relationship between the independent and dependent variables is well understood and relatively stable. On the other hand, probabilistic regression is more appropriate when there is uncertainty or variability in the data. As an exercise to support our claims, we are going to fit a probabilistic model to non-linear data using TensorFlow Probability.\n", 40 | "\n", 41 | "We develop our models using TensorFlow and TensorFlow Probability. TensorFlow Probability is a Python library built on top of TensorFlow. We are going to start with the basic objects that we can find in TensorFlow Probability and understand how can we manipulate them. We will increase complexity incrementally over the following weeks and combine our probabilistic models with deep learning on modern hardware (e.g. GPU).\n", 42 | "\n", 43 | "As usual, the code is available on my GitHub." 44 | ] 45 | }, 46 | { 47 | "cell_type": "markdown", 48 | "id": "d9ff3f0b-a1b4-4154-933b-8ec60f232eaa", 49 | "metadata": {}, 50 | "source": [ 51 | "# Deterministic vs Probabilistic Regression\n", 52 | "### Definitions\n", 53 | "Deterministic regression is a type of regression analysis in which the relationship between the independent and dependent variables is known and fixed. In other words, if the same inputs are provided to a deterministic regression model, it will always produce the same output. This makes it a useful tool for predicting the value of a dependent variable given a set of known independent variables.\n", 54 | "\n", 55 | "If we think about linear regression models, the Gauss-Markov theorem immediately comes to mind since it establishes the optimality of the ordinary least squares (OLS) estimator, under certain assumptions. In particular, the Gauss-Markov theorem states that the OLS estimator is the best linear unbiased estimator (BLUE), meaning that it has the smallest variance among all linear unbiased estimators. However, the Gauss-Markov theorem does not address the issue of uncertainty or belief in the estimates, which is a key aspect of the probabilistic approaches.\n", 56 | "\n", 57 | "On the other hand, probabilistic regression is a type of regression analysis in which the relationship between the independent and dependent variables is not known and may vary from one set of data to another. Instead of predicting a single value for the dependent variable, a probabilistic regression model predicts a probability distribution for the possible values of the dependent variable. This allows the model to account for uncertainty and variability in the data, and can provide more accurate predictions in some cases.\n", 58 | "\n", 59 | "Let's give a simple example to simplify the understanding. A researcher is studying the relationship between the amount of time that students spend studying for a test and their scores on the test. In this scenario, the researcher could use the OLS method to estimate the slope and intercept of the regression line, and use the Gauss-Markov theorem to justify the choice of this estimator. However, as we stated before, the Gauss-Markov theorem does not address the issue of uncertainty or belief in the estimates. In the probabilistic world, the emphasis is on using probability to describe the uncertainty or belief in the model or parameter, rather than just the optimality of the estimator. This means that we might use a different approach to estimating the slope and intercept of the regression line. As a consequence, we might come to a different conclusion about the relationship between study time and test scores, based on the data and the prior belief in the values of the slope and intercept.\n", 60 | "\n", 61 | "### Bayesian Statistics and the Bias–variance Trade-off\n", 62 | "\n", 63 | "Probabilistic regression can be seen as a form of Bayesian statistics, in that it involves treating the unknown relationship between the independent and dependent variables as a random variable, and estimating its probability distribution based on the available data. In this way, we can think of it as a way of incorporating uncertainty and variability into regression analysis. Recall that Bayesian statistics is a framework for statistical analysis in which all unknown quantities are treated as random variables, and their probability distributions are updated as new data is observed. This is in contrast to classical statistics, which typically assumes that unknown quantities are fixed, but unknown, parameters.\n", 64 | "\n", 65 | "Another way to think about the difference between the two approaches is to consider the trade-off between bias and variance in statistical estimates. Bias refers to the difference between the estimated value and the true value of a parameter, while variance refers to the spread or variability of the estimated values. By providing a distribution over the model parameters, rather than a single point estimate, probabilistic regression can help reduce bias in the estimates, which can improve the overall accuracy of the model. Additionally, probabilistic regression can provide a measure of uncertainty or confidence in the estimated values, which can be useful for making decisions or predictions based on the model. This can be particularly helpful when working with noisy or incomplete data, where the uncertainty in the estimates is higher." 66 | ] 67 | }, 68 | { 69 | "cell_type": "markdown", 70 | "id": "a06a19f4-64f9-4df6-b788-893816d6ba67", 71 | "metadata": {}, 72 | "source": [ 73 | "# Non-Linear Probabilistic Regression\n", 74 | "\n", 75 | "Let's jump to an example to make these concepts easier to understand. We will not cover the full Bayesian approach which would entail the estimation of the epistemic uncertainty - the uncertainty of the model. We will study this type of uncertainty in a future article. Nevertheless, we will estimate another type of uncertainty - the aleatoric uncertainty. It can be defined as the uncertainty in the generative process of the data. \n", 76 | "\n", 77 | "This time, we are going to cover a more complex regression analysis - non-linear regression. In contrast to linear regression, which models the relationship between the variables using a straight line, non-linear regression allows for more complex relationships between the variables to be modeled. This makes non-linear regression a useful tool for many machine learning applications, where the relationships between the variables may be too complex to be accurately modeled using a linear equation.\n", 78 | "\n", 79 | "We start by creating some data that follows a non-linear pattern. By generating this data synthetically, we have the advantage to know what was the exact generative process and, thus, we only need to find a way to get from the observations back to the generative process.\n", 80 | "\n", 81 | "The data we'll be working with is artificially created from the following equation:\n", 82 | "$$y_i = x_i^3+\\frac{3}{15}(1+x_i)\\epsilon_i$$\n", 83 | "\n", 84 | "where $\\epsilon_i \\sim \\mathcal{N}(0,1)$ are independent and identically distributed." 85 | ] 86 | }, 87 | { 88 | "cell_type": "code", 89 | "execution_count": 3, 90 | "id": "c794db49-c2e7-4857-8370-0a19572adf0e", 91 | "metadata": {}, 92 | "outputs": [ 93 | { 94 | "data": { 95 | "image/png": "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XMOLL77Yr02p23XJlCh49NFH1dNPP602bNigli5dOqjXbNy4US1dulS9/PLLas+ePeqrX/2quuqqq1Qulyu0Wb9+vfriF7+o3nnnHfXb3/5WXXPNNeob3/jGaIVxVqX2xfd9deLEiaJ/P/jBD9SiRYtUKpUqtJszZ47aunVrUbtT34OxMpT3+stf/rK69957i/qeTCYLv/d9X61evVqtXbtW7d69W7322mtq+fLl6vvf//5oh9NPqfHt3btX3XnnnerVV19VBw8eVG+88YZauXKl+trXvlbUbrzGb9u2bWrBggXqhRdeUB988IG699571bJly1R7e/uA7d966y01f/58tWnTJtXa2qr+5V/+RS1YsEDt3bu30GYw2+RYKTW+b3zjG+qZZ55Ru3fvVq2treqee+5RS5cuVceOHSu0+da3vqXWr19fNFbd3d1jFVI/pca4detWtWTJkqL+t7W1FbUp5zHs6uoqim3fvn1q/vz5auvWrYU2E2kMX3vtNfXII4+oX/7yl2rOnDnq5ZdfPmv7Q4cOqebmZrVhwwbV2tqqfvKTn6j58+erX/3qV4U2pb5nQyHJywC2bt06qOQlDEP12c9+Vm3evLmwrLe3V11yySXqZz/7mVJKqdbWVjVnzhz17rvvFtq8/vrrau7cuUU7pLEwUn350z/9U/UP//APRcsG86EfbUON78tf/rJ66KGHzvj71157Tc2bN69oB/vv//7vasmSJcpxnJHp/CCM1Pht375dLViwQHmeV1g2XuN3ww03qAceeKDwcxAEasWKFWrjxo0Dtv/617+ubrvttqJlN954o7rvvvuUUoPbJsdSqfGdzvd9tXjxYvXSSy8Vln3rW99St99++0h3dchKjfFc+9fJNoZPP/20Wrx4sUqn04VlE20M+wxmP/Dwww+rVatWFS27++671bp16wo/D/c9Gww5bTQMhw8fpq2tjSuuuKKwrLKykubmZt5++20A3n77baqqqooOi15xxRXouj7yh9HOYST6smvXLvbs2cMNN9zQ73cPPPAAy5cv54YbbuCFF15AjfEDy4cT309/+lOWL1/O6tWr+f73v082my387p133mHOnDk0NDQUlq1YsYJUKkVra+vIB3IGI/VZSqVSJBIJTNMsWj7W4+e6Lu+//37R9qPrOldccUVh+zndO++8w+WXX160bMWKFbzzzjvA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\n", 96 | "text/plain": [ 97 | "
" 98 | ] 99 | }, 100 | "metadata": {}, 101 | "output_type": "display_data" 102 | } 103 | ], 104 | "source": [ 105 | "# Create and plot 10000 data points\n", 106 | "\n", 107 | "x_train = np.linspace(-1, 1, 1000)[:, np.newaxis]\n", 108 | "y_train = np.power(x_train, 3) + (3/15)*(1+x_train)*np.random.randn(1000)[:, np.newaxis]\n", 109 | "\n", 110 | "plt.scatter(x_train, y_train, alpha=0.1)\n", 111 | "plt.show()" 112 | ] 113 | }, 114 | { 115 | "cell_type": "markdown", 116 | "id": "366f4f86-30d3-4321-91f5-a89fb330d69d", 117 | "metadata": {}, 118 | "source": [ 119 | "As usual, we need to specify our loss function. In the probabilistic case, and as we already saw several examples in previous articles, we need to define the negative log-likelihood as our loss function." 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "execution_count": 4, 125 | "id": "2a63e19e-9e5e-47db-b23c-7c2cff07c62a", 126 | "metadata": {}, 127 | "outputs": [], 128 | "source": [ 129 | "# Train model using the negative loglikelihood\n", 130 | "\n", 131 | "def nll(y_true, y_pred):\n", 132 | " return -y_pred.log_prob(y_true)" 133 | ] 134 | }, 135 | { 136 | "cell_type": "markdown", 137 | "id": "f349ed58-1fec-4de0-af4c-4eb6af6606e3", 138 | "metadata": {}, 139 | "source": [ 140 | "As we saw in the previous article, a generic way to incorporate any distribution into a Deep Learning architecture in Keras is to use the `DistributionLambda` layer from TensorFlow Probability. Recall that the `DistributionLambda` layer returns a distribution object. It is also the base class for several other probabilistic layers implemented in TensorFlow Probability and that we will use in future articles.\n", 141 | "\n", 142 | "To build our model, we start by adding 2 dense layers. The first has 8 units and a sigmoid activation function. The second has 2 units and no activation function. The reason to not add one is because we want to parameterize our Gaussian distribution that follows with any real value. The Gaussian distribution is defined by the `DistributionLambd` layer. Notice that in this case, we are using a lambda function to instantiate the `DistributionLambda` layer. The lambda function receives an input t, which is the output tensor of the previous Dense layer and returns a Gaussian distribution with mean and standard deviation defined by the tensor t. Remember that the scale of the distribution is the standard deviation, and this should be a positive value. As before, we pass the tensor component through the softplus function to respect this constraint.\n", 143 | "\n", 144 | "Note that the real difference between a linear and a non-linear model is just the added Dense layer as the first layer of the model." 145 | ] 146 | }, 147 | { 148 | "cell_type": "code", 149 | "execution_count": 8, 150 | "id": "bdd6aab1-8d17-4029-8a14-0f5e65e7fb6a", 151 | "metadata": {}, 152 | "outputs": [ 153 | { 154 | "name": "stdout", 155 | "output_type": "stream", 156 | "text": [ 157 | "Model: \"sequential_2\"\n", 158 | "_________________________________________________________________\n", 159 | " Layer (type) Output Shape Param # \n", 160 | "=================================================================\n", 161 | " dense_4 (Dense) (None, 8) 16 \n", 162 | " \n", 163 | " dense_5 (Dense) (None, 2) 18 \n", 164 | " \n", 165 | " independent_normal_1 (Indep ((None, 1), 0 \n", 166 | " endentNormal) (None, 1)) \n", 167 | " \n", 168 | "=================================================================\n", 169 | "Total params: 34\n", 170 | "Trainable params: 34\n", 171 | "Non-trainable params: 0\n", 172 | "_________________________________________________________________\n" 173 | ] 174 | } 175 | ], 176 | "source": [ 177 | "# Create probabilistic regression: normal distribution with fixed variance\n", 178 | "\n", 179 | "model = Sequential([\n", 180 | " Dense(input_shape=(1,), units=8, activation='sigmoid'),\n", 181 | " Dense(tfpl.IndependentNormal.params_size(event_shape=1)),\n", 182 | " tfpl.IndependentNormal(event_shape=1)\n", 183 | " # Dense(2),\n", 184 | " # tfpl.DistributionLambda(lambda t:tfd.Normal(loc=t[...,:1], scale=tf.math.softplus(t[...,1:])))\n", 185 | "])\n", 186 | "\n", 187 | "model.compile(loss=nll, optimizer=RMSprop(learning_rate=0.01))\n", 188 | "model.summary()" 189 | ] 190 | }, 191 | { 192 | "cell_type": "markdown", 193 | "id": "9c426818-cf4b-4dae-be9b-506ca3f88176", 194 | "metadata": {}, 195 | "source": [ 196 | "We can check the output shape from our model to understand better what is happening. We get an empty event shape and a batch shape of (1000, 1). 1000 refers to the batch size, while the extra dimension does not really make a lot of sense in our problem statement. We want to represent a single random variable that is normally distributed." 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": 9, 202 | "id": "948d6ad5-04a0-46b7-951b-d09e5a636086", 203 | "metadata": {}, 204 | "outputs": [ 205 | { 206 | "data": { 207 | "text/plain": [ 208 | "" 209 | ] 210 | }, 211 | "execution_count": 9, 212 | "metadata": {}, 213 | "output_type": "execute_result" 214 | } 215 | ], 216 | "source": [ 217 | "y_model = model(x_train)\n", 218 | "y_sample = y_model.sample()\n", 219 | "y_model" 220 | ] 221 | }, 222 | { 223 | "cell_type": "markdown", 224 | "id": "18e63de5-806c-42a2-a0e1-8684b777b3e4", 225 | "metadata": {}, 226 | "source": [ 227 | "To simplify the implementation of our last layer and to make it more in line with what we expect to get as output shape, we can use a wrapper that TensorFlow Probability provides. By using the `IndependentNormal` layer we can build a similar distribution that we built with `DistributionLambda`. At the same time, we can use a static method that outputs the number of parameters that are required to the probabilistic layer and use it to define the number of units in the previous Dense layer: `tfpl.IndependentNormal.params_size(event_shape=1)`." 228 | ] 229 | }, 230 | { 231 | "cell_type": "code", 232 | "execution_count": 10, 233 | "id": "1e925812-9dae-4579-9dc8-cca0f074a99e", 234 | "metadata": {}, 235 | "outputs": [ 236 | { 237 | "name": "stdout", 238 | "output_type": "stream", 239 | "text": [ 240 | "Model: \"sequential_3\"\n", 241 | "_________________________________________________________________\n", 242 | " Layer (type) Output Shape Param # \n", 243 | "=================================================================\n", 244 | " dense_6 (Dense) (None, 16) 32 \n", 245 | " \n", 246 | " dense_7 (Dense) (None, 2) 34 \n", 247 | " \n", 248 | " distribution_lambda_1 (Dist ((None, 1), 0 \n", 249 | " ributionLambda) (None, 1)) \n", 250 | " \n", 251 | "=================================================================\n", 252 | "Total params: 66\n", 253 | "Trainable params: 66\n", 254 | "Non-trainable params: 0\n", 255 | "_________________________________________________________________\n" 256 | ] 257 | } 258 | ], 259 | "source": [ 260 | "# Create probabilistic regression: normal distribution with fixed variance\n", 261 | "\n", 262 | "model = Sequential([\n", 263 | " Dense(input_shape=(1,), units=16, activation='sigmoid'),\n", 264 | " Dense(2),\n", 265 | " tfpl.DistributionLambda(lambda t:tfd.Normal(loc=t[...,:1], scale=tf.math.softplus(t[...,1:])))\n", 266 | "])\n", 267 | "\n", 268 | "model.compile(loss=nll, optimizer=RMSprop(learning_rate=0.01))\n", 269 | "model.summary()" 270 | ] 271 | }, 272 | { 273 | "cell_type": "markdown", 274 | "id": "825a8351-8349-4a29-95a9-31eef5f0e3da", 275 | "metadata": {}, 276 | "source": [ 277 | "As we can see, the shape is now correctly specified as the extra dimension in the batch shape was moved to the event shape." 278 | ] 279 | }, 280 | { 281 | "cell_type": "code", 282 | "execution_count": 11, 283 | "id": "3289c133-c827-400f-9ba2-740d1e470714", 284 | "metadata": {}, 285 | "outputs": [ 286 | { 287 | "data": { 288 | "text/plain": [ 289 | "" 290 | ] 291 | }, 292 | "execution_count": 11, 293 | "metadata": {}, 294 | "output_type": "execute_result" 295 | } 296 | ], 297 | "source": [ 298 | "y_model = model(x_train)\n", 299 | "y_sample = y_model.sample()\n", 300 | "y_model" 301 | ] 302 | }, 303 | { 304 | "cell_type": "markdown", 305 | "id": "55d5e65d-532e-418d-8596-2190c58fc18b", 306 | "metadata": {}, 307 | "source": [ 308 | "Time to fit the model to our synthetically generated data." 309 | ] 310 | }, 311 | { 312 | "cell_type": "code", 313 | "execution_count": null, 314 | "id": "11c54c98-c798-4312-9505-9c301d0cfc4a", 315 | "metadata": { 316 | "scrolled": true, 317 | "tags": [] 318 | }, 319 | "outputs": [], 320 | "source": [ 321 | "# Train model\n", 322 | "\n", 323 | "model.fit(x_train, y_train, epochs=500, verbose=False)\n", 324 | "model.evaluate(x_train, y_train)" 325 | ] 326 | }, 327 | { 328 | "cell_type": "markdown", 329 | "id": "cda8f34c-6728-4f1a-9260-1bbb03ffced7", 330 | "metadata": {}, 331 | "source": [ 332 | "As expected, we were able to capture the aleatoric uncertainty of the generative process of the data. We can easily build confidence intervals using the learned standard deviation parameter. As a result, we are now able to generate new samples using the same process that we just learned from the data." 333 | ] 334 | }, 335 | { 336 | "cell_type": "code", 337 | "execution_count": null, 338 | "id": "ddfbab51-f5bc-41f1-b371-02490a891a9a", 339 | "metadata": {}, 340 | "outputs": [], 341 | "source": [ 342 | "# Plot the data and a sample from the model\n", 343 | "\n", 344 | "y_model = model(x_train)\n", 345 | "y_sample = y_model.sample()\n", 346 | "y_hat = y_model.mean()\n", 347 | "y_sd = y_model.stddev()\n", 348 | "y_hat_m2sd = y_hat -2 * y_sd\n", 349 | "y_hat_p2sd = y_hat + 2*y_sd\n", 350 | "\n", 351 | "fig, (ax1, ax2) =plt.subplots(1, 2, figsize=(15, 5), sharey=True)\n", 352 | "ax1.scatter(x_train, y_train, alpha=0.4, label='data')\n", 353 | "ax1.scatter(x_train, y_sample, alpha=0.4, color='red', label='model sample')\n", 354 | "ax1.legend()\n", 355 | "ax2.scatter(x_train, y_train, alpha=0.4, label='data')\n", 356 | "ax2.plot(x_train, y_hat, color='red', alpha=0.8, label='model $\\mu$')\n", 357 | "ax2.plot(x_train, y_hat_m2sd, color='green', alpha=0.8, label='model $\\mu \\pm 2 \\sigma$')\n", 358 | "ax2.plot(x_train, y_hat_p2sd, color='green', alpha=0.8)\n", 359 | "ax2.legend()\n", 360 | "plt.show()" 361 | ] 362 | }, 363 | { 364 | "cell_type": "markdown", 365 | "id": "126ab39f-6f31-40bc-94cd-33d74b486e71", 366 | "metadata": {}, 367 | "source": [ 368 | "# Conclusion" 369 | ] 370 | }, 371 | { 372 | "cell_type": "markdown", 373 | "id": "da9e4dde-3a5d-440f-b176-0bbd065b2e98", 374 | "metadata": {}, 375 | "source": [ 376 | "This article explored the main differences between deterministic and probabilistic regression. We saw that in general, deterministic regression is useful when the relationship between the independent and dependent variables is well understood and relatively stable. On the other hand, probabilistic regression is more appropriate when there is uncertainty or variability in the data. As an exercise to support our claims, we then fitted a probabilistic model to non-linear data. By adding an extra dense layer with a activation function in the beginning of our model, we are able to learn non-linear patterns in the data. As before, our final layer is a probabilistic layer, which means that it outputs a distribution object. As a way to be more coherent with our problem statement, we extended our approach to use theIndependentNormal layer that we explored a few articles ago. It allows us to move batch dimensions to the event shape. By specifying our model with two additional variables defined in the new probabilistic layer, we were able to learn the mean and standard deviation of the Gaussian noise that was used to generate the artificial data. By using these parameters, we were also able to build confidence intervals but, more importantly, to generate new samples using the same process that we have learned from the data.\n", 377 | "\n", 378 | "Next week, we will explore more the differences between a frequentist and a Bayesian approach. See you then!" 379 | ] 380 | }, 381 | { 382 | "cell_type": "markdown", 383 | "id": "9d9759d5-7266-47b6-8969-96b929253b1e", 384 | "metadata": {}, 385 | "source": [ 386 | "# References and Materials" 387 | ] 388 | }, 389 | { 390 | "cell_type": "markdown", 391 | "id": "0f71fdfb-d812-4870-b46e-df8c367a1924", 392 | "metadata": {}, 393 | "source": [ 394 | "[1] - [Coursera: TensorFlow 2 for Deep Learning Specialization](https://www.coursera.org/specializations/tensorflow2-deeplearning)\n", 395 | "\n", 396 | "[2] - [Coursera: Deep Learning Specialization](https://www.coursera.org/specializations/deep-learning)\n", 397 | "\n", 398 | "[3] - [TensorFlow Probability Guides and Tutorials](https://www.tensorflow.org/probability/overview)\n", 399 | "\n", 400 | "[4] - [TensorFlow Probability Posts in TensorFlow Blog](https://blog.tensorflow.org/search?label=TensorFlow+Probability&max-results=20)" 401 | ] 402 | } 403 | ], 404 | "metadata": { 405 | "kernelspec": { 406 | "display_name": "Python 3 (ipykernel)", 407 | "language": "python", 408 | "name": "python3" 409 | }, 410 | "language_info": { 411 | "codemirror_mode": { 412 | "name": "ipython", 413 | "version": 3 414 | }, 415 | "file_extension": ".py", 416 | "mimetype": "text/x-python", 417 | "name": "python", 418 | "nbconvert_exporter": "python", 419 | "pygments_lexer": "ipython3", 420 | "version": "3.9.15" 421 | } 422 | }, 423 | "nbformat": 4, 424 | "nbformat_minor": 5 425 | } 426 | -------------------------------------------------------------------------------- /Frequentist vs. Bayesian Statistics with Tensorflow.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "b4bc7609-81a6-4552-bf4a-992ae21e7490", 6 | "metadata": {}, 7 | "source": [ 8 | "# Introduction" 9 | ] 10 | }, 11 | { 12 | "cell_type": "markdown", 13 | "id": "ce163f9f-7cda-442f-98ae-556b92b08024", 14 | "metadata": {}, 15 | "source": [ 16 | "This article belongs to the series \"Probabilistic Deep Learning\". This weekly series covers probabilistic approaches to deep learning. The main goal is to extend deep learning models to quantify uncertainty, i.e. know what they do not know.\n", 17 | "\n", 18 | "The frequentist approach to statistics is based on the idea of repeated sampling and long-run relative frequency. It involves constructing hypotheses about a population and testing them using sample data. On the other hand, the Bayesian approach is based on subjective probability and involves updating an initial belief about a population using collected data. Both methods have their strengths and limitations and which one to use depends on the problem and analysis goals. In this article, we will explore the differences between the frequentist and the Bayesian approach and discuss how they can be implemented using TensorFlow and TensorFlow Probability." 19 | ] 20 | }, 21 | { 22 | "cell_type": "markdown", 23 | "id": "093e675c-3984-416a-8db6-9e1fe0e6899a", 24 | "metadata": {}, 25 | "source": [ 26 | "# Frequentist vs. Bayesian Approach to Problems\n", 27 | "Frequentist statistics and Bayesian statistics are two main approaches to statistical inference, which is the process of using data to draw conclusions about a population. Both approaches are used to estimate unknown quantities, make predictions, and test hypotheses, but they differ in their interpretation of probability and how they incorporate prior knowledge and evidence.\n", 28 | "\n", 29 | "In frequentist statistics, probability is interpreted as the long-run relative frequency of an event in an infinite number of trials. This approach is based on the idea that the true value of a population parameter is fixed, but is unknown and must be estimated from data. In this framework, statistical inferences are drawn from the observed data by making assumptions about the underlying data-generating process and using techniques such as point estimation, confidence intervals, and hypothesis testing.\n", 30 | "\n", 31 | "On the other hand, Bayesian statistics interprets probability as a measure of belief or degree of certainty about an event. This approach allows for the incorporation of prior knowledge and evidence into statistical analysis through the use of Bayes' theorem. In this framework, the true value of a population parameter is treated as a random variable and is updated as new data is collected. This results in a full distribution over the parameter space, known as a posterior distribution, which can be used to make probabilistic predictions and to quantify uncertainty.\n", 32 | "\n", 33 | "One key difference between the two approaches is how they handle uncertainty. In frequentist statistics, uncertainty is quantified through the use of confidence intervals, which provide an estimate of the likely range of the true population parameter based on the observed data. In Bayesian statistics, uncertainty is represented by the full posterior distribution, which allows for a more complete characterization of the uncertainty surrounding the true value of the parameter.\n", 34 | "\n", 35 | "Another difference is that Bayesian statistics allows for the incorporation of prior knowledge, which can be particularly useful in cases where there is limited data or when the data-generating process is complex. However, the choice of prior distribution can significantly influence the results of a Bayesian analysis, and it is important to choose a prior that is appropriate for the problem at hand." 36 | ] 37 | }, 38 | { 39 | "cell_type": "markdown", 40 | "id": "be697aaf-c600-4039-8fca-cdd1ff4111a0", 41 | "metadata": {}, 42 | "source": [ 43 | "# The Problem\n", 44 | "\n", 45 | "As an example of applying a frequentist approach to a problem, consider the task of estimating the mean income of a population based on a sample of data. In this case, the goal is to use the sample data to make inferences about the true mean income of the population (we are going to assume that the standard deviation of the income of the population is known for now).\n", 46 | "\n", 47 | "Let's generate some data:" 48 | ] 49 | }, 50 | { 51 | "cell_type": "code", 52 | "execution_count": 6, 53 | "id": "9966e2ad-b918-48a1-991e-341485eb1ffd", 54 | "metadata": {}, 55 | "outputs": [], 56 | "source": [ 57 | "import tensorflow as tf\n", 58 | "import tensorflow_probability as tfp\n", 59 | "import matplotlib.pyplot as plt\n", 60 | "from scipy.stats import t\n", 61 | "import numpy as np\n", 62 | "\n", 63 | "tfd = tfp.distributions" 64 | ] 65 | }, 66 | { 67 | "cell_type": "code", 68 | "execution_count": 7, 69 | "id": "e2757b92-2f3d-4032-9887-78d521607f33", 70 | "metadata": {}, 71 | "outputs": [], 72 | "source": [ 73 | "# Sample data\n", 74 | "sample_size = 30.\n", 75 | "sample_mean = 50000.\n", 76 | "sample_stddev = 10000.\n", 77 | "sample_data = tfd.Normal(loc=sample_mean, scale=sample_stddev).sample(sample_size)" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 8, 83 | "id": "0f5c4162-168b-448c-b04e-d862e4d38919", 84 | "metadata": {}, 85 | "outputs": [ 86 | { 87 | "data": { 88 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGsCAYAAACB/u5dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAf+UlEQVR4nO3de5DV5X348c/Kskco7HK/xZWACsg1KJFsvVQLXhhjTdqxhpKEWMdUS+qFaA22DdpWIWmbS1NLjG1CO1WJdoraxkuJKdAkQABLBDFclAwEQazKLhDdKDy/P/LbU1cWyIFnWc7u6zVzZjzn+5zzfZ79Lu57zu1bkVJKAQCQwUltPQEAoP0QFgBANsICAMhGWAAA2QgLACAbYQEAZCMsAIBshAUAkI2wAACyERYAQDZtFhZLly6NK664IgYNGhQVFRXx6KOPtur+7rzzzqioqGh2GTFiRKvuEwA6mjYLi3379sW4cePi3nvvPW77HDVqVOzYsaN4+f73v3/c9g0AHUFlW+14ypQpMWXKlENub2xsjD/5kz+Jhx56KHbv3h2jR4+OL3zhC3HhhRce9T4rKytjwIABR31/AODwTtj3WHzmM5+JZcuWxYIFC+K5556Lq666Ki677LLYtGnTUT/mpk2bYtCgQTF06NCYNm1abN26NeOMAYCKE+G06RUVFbFw4cL4yEc+EhERW7dujaFDh8bWrVtj0KBBxXGTJ0+Oc845J+65556S9/Hkk0/G3r17Y/jw4bFjx4646667Yvv27bFu3bro3r17rqUAQIfWZi+FHM7atWtj//79MWzYsGa3NzY2Ru/evSMi4ic/+UmceeaZh32c22+/PebOnRsR0exll7Fjx8bEiRNj8ODB8fDDD8e1116beQUA0DGdkGGxd+/e6NSpU6xevTo6derUbFu3bt0iImLo0KHxwgsvHPZxmiKkJT169Ihhw4bF5s2bj33CAEBEnKBhMX78+Ni/f3/s2rUrzj///BbHVFVVHdPHRffu3RsvvvhifOITnzjqxwAAmmuzsNi7d2+zZwu2bNkSa9asiV69esWwYcNi2rRp8clPfjL+5m/+JsaPHx+vvvpqPPPMMzF27Ni4/PLLS97frbfeGldccUUMHjw4Xn755Zg9e3Z06tQppk6dmnNZANChtdmbNxcvXhwXXXTRQbdPnz495s+fH2+//Xb85V/+ZfzzP/9zbN++Pfr06RMf+tCH4q677ooxY8aUvL+PfexjsXTp0njttdeib9++cd5558Xdd98dp512Wo7lAABxgnwqBABoH07Y77EAAMqPsAAAsjnub948cOBAvPzyy9G9e/eoqKg43rsHAI5CSin27NkTgwYNipNOOvTzEsc9LF5++eWora093rsFADLYtm1bnHLKKYfcftzDounrs7dt2xbV1dXHe/cAwFFoaGiI2traI54G47iHRdPLH9XV1cICAMrMkd7G4M2bAEA2wgIAyEZYAADZCAsAIBthAQBkIywAgGyEBQCQjbAAALIRFgBANsICAMhGWAAA2QgLACAbYQEAZCMsAIBsjvtp0wFONF9etLGtp1CyWy4e1tZTgBZ5xgIAyEZYAADZCAsAIBthAQBkIywAgGyEBQCQjbAAALIRFgBANsICAMhGWAAA2QgLACAbYQEAZCMsAIBshAUAkI2wAACyERYAQDbCAgDIRlgAANkICwAgG2EBAGRTclhs3749Pv7xj0fv3r2jS5cuMWbMmFi1alVrzA0AKDOVpQx+44034txzz42LLroonnzyyejbt29s2rQpevbs2VrzAwDKSElh8YUvfCFqa2vjW9/6VvG2IUOGZJ8UAFCeSnop5PHHH48JEybEVVddFf369Yvx48fH/ffff9j7NDY2RkNDQ7MLANA+lRQWL730UsybNy/OOOOMePrpp+OGG26IG2+8Mf7pn/7pkPeZM2dO1NTUFC+1tbXHPGkA4MRUkVJKv+rgqqqqmDBhQvzwhz8s3nbjjTfGypUrY9myZS3ep7GxMRobG4vXGxoaora2Nurr66O6uvoYpg6Qx5cXbWzrKZTslouHtfUU6GAaGhqipqbmiH+/S3rGYuDAgTFy5Mhmt5155pmxdevWQ96nUChEdXV1swsA0D6VFBbnnntubNiwodltGzdujMGDB2edFABQnkoKi1tuuSWWL18e99xzT2zevDkefPDB+MY3vhEzZsxorfkBAGWkpLD44Ac/GAsXLoyHHnooRo8eHX/xF38RX/nKV2LatGmtNT8AoIyU9D0WEREf/vCH48Mf/nBrzAUAKHPOFQIAZCMsAIBshAUAkI2wAACyERYAQDbCAgDIRlgAANkICwAgG2EBAGQjLACAbIQFAJCNsAAAshEWAEA2wgIAyEZYAADZCAsAIBthAQBkIywA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WAAA2QgLACAbYQEAZCMsAIBsSgqLOXPmxAc/+MHo3r179OvXLz7ykY/Ehg0bWmtuAECZKSkslixZEjNmzIjly5fHokWL4u23345LLrkk9u3b11rzAwDKSGUpg5966qlm1+fPnx/9+vWL1atXxwUXXJB1YgBA+SkpLN6rvr4+IiJ69ep1yDGNjY3R2NhYvN7Q0HAsuwQATmBH/ebNAwcOxM033xznnntujB49+pDj5syZEzU1NcVLbW3t0e4SADjBHXVYzJgxI9atWxcLFiw47LhZs2ZFfX198bJt27aj3SUAcII7qpdCPvOZz8R//Md/xNKlS+OUU0457NhCoRCFQuGoJgcAlJeSwiKlFH/0R38UCxcujMWLF8eQIUNaa14AQBkqKSxmzJgRDz74YDz22GPRvXv32LlzZ0RE1NTURJcuXVplggBA+SjpPRbz5s2L+vr6uPDCC2PgwIHFy7e//e3Wmh8AUEZKfikEAOBQnCsEAMhGWAAA2RzTN2/SMX150ca2ngInML8fHIrfjY7BMxYAQDbCAgDIRlgAANkICwAgG2EBAGQjLACAbIQFAJCNsAAAshEWAEA2wgIAyEZYAADZCAsAIBthAQBkIywAgGyEBQCQjbAAALIRFgBANsICAMhGWAAA2QgLACAbYQEAZCMsAIBshAUAkI2wAACyERYAQDbCAgDIRlgAANkICwAgG2EBAGQjLACAbIQFAJCNsAAAshEWAEA2wgIAyEZYAADZCAsAIBthAQBkIywAgGyEBQCQjbAAALIRFgBANiWHxdKlS+OKK66IQYMGRUVFRTz66KOtMC0AoByVHBb79u2LcePGxb333tsa8wEAylhlqXeYMmVKTJkypTXmAgCUuZLDolSNjY3R2NhYvN7Q0NDauwQA2kirv3lzzpw5UVNTU7zU1ta29i4BgDbS6mExa9asqK+vL162bdvW2rsEANpIq78UUigUolAotPZuAIATgO+xAACyKfkZi71798bmzZuL17ds2RJr1qyJXr16xamnnpp1cgBAeSk5LFatWhUXXXRR8frMmTMjImL69Okxf/78bBMDAMpPyWFx4YUXRkqpNeYCAJQ577EAALIRFgBANsICAMhGWAAA2QgLACAbYQEAZCMsAIBshAUAkI2wAACyERYAQDbCAgDIRlgAANkICwAgG2EBAGQjLACAbIQFAJCNsAAAshEWAEA2wgIAyEZYAADZCAsAIBthAQBkIywAgGyEBQCQjbAAALIRFgBANsICAMhGWAAA2QgLACAbYQEAZCMsAIBshAUAkI2wAACyERYAQDbCAgDIRlgAANkICwAgG2EBAGQjLACAbIQFAJCNsAAAshEWAEA2wgIAyOaowuLee++N97///XHyySfHxIkT40c/+lHueQEAZajksPj2t78dM2fOjNmzZ8ezzz4b48aNi0svvTR27drVGvMDAMpIyWHxpS99Ka677rq45pprYuTIkfH1r389unbtGt/85jdbY34AQBmpLGXwL37xi1i9enXMmjWreNtJJ50UkydPjmXLlrV4n8bGxmhsbCxer6+vj4iIhoaGo5nvYb21b2/2x2xtrfFzaG3l+HMG6Cha6+9K0+OmlA47rqSw+N///d/Yv39/9O/fv9nt/fv3j5/85Cct3mfOnDlx1113HXR7bW1tKbtut+5o6wkA0K609t+VPXv2RE1NzSG3lxQWR2PWrFkxc+bM4vUDBw7E66+/Hr17946Kiops+2loaIja2trYtm1bVFdXZ3vcctBR127dHWvdER137R113REdd+0n4rpTSrFnz54YNGjQYceVFBZ9+vSJTp06xSuvvNLs9ldeeSUGDBjQ4n0KhUIUCoVmt/Xo0aOU3Zakurr6hDkIx1tHXbt1dzwdde0ddd0RHXftJ9q6D/dMRZOS3rxZVVUVZ599djzzzDPF2w4cOBDPPPNM1NXVlT5DAKBdKfmlkJkzZ8b06dNjwoQJcc4558RXvvKV2LdvX1xzzTWtMT8AoIyUHBZXX311vPrqq/H5z38+du7cGR/4wAfiqaeeOugNncdboVCI2bNnH/SyS0fQUddu3R1r3REdd+0ddd0RHXft5bzuinSkz40AAPyKnCsEAMhGWAAA2QgLACAbYQEAZNNmYTFv3rwYO3Zs8cs/6urq4sknnyxuf+utt2LGjBnRu3fv6NatW/zO7/zOQV/MtXXr1rj88suja9eu0a9fv7jtttvinXfeaTZm8eLFcdZZZ0WhUIjTTz895s+ff9Bcjvdp4I+09gsvvDAqKiqaXa6//vpmj1Gua3+3uXPnRkVFRdx8883F29rzcW/S0rrb6zG/8847D1rXiBEjitvb6/E+0rrb6/Fusn379vj4xz8evXv3ji5dusSYMWNi1apVxe0ppfj85z8fAwcOjC5dusTkyZNj06ZNzR7j9ddfj2nTpkV1dXX06NEjrr322ti7t/l5ip577rk4//zz4+STT47a2tr44he/eNBcHnnkkRgxYkScfPLJMWbMmHjiiSdaZ9Fx5HV/6lOfOui4X3bZZc0eoxzXfZDURh5//PH0ne98J23cuDFt2LAh3XHHHalz585p3bp1KaWUrr/++lRbW5ueeeaZtGrVqvShD30o/fqv/3rx/u+8804aPXp0mjx5cvqf//mf9MQTT6Q+ffqkWbNmFce89NJLqWvXrmnmzJlp/fr16Wtf+1rq1KlTeuqpp4pjFixYkKqqqtI3v/nN9Pzzz6frrrsu9ejRI73yyitttvbf+I3fSNddd13asWNH8VJfX98u1t7kRz/6UXr/+9+fxo4dm2666abi7e35uB9u3e31mM+ePTuNGjWq2bpeffXV4vb2eryPtO72erxTSun1119PgwcPTp/61KfSihUr0ksvvZSefvrptHnz5uKYuXPnppqamvToo4+mH//4x+m3fuu30pAhQ9Kbb75ZHHPZZZelcePGpeXLl6f//u//TqeffnqaOnVqcXt9fX3q379/mjZtWlq3bl166KGHUpcuXdJ9991XHPODH/wgderUKX3xi19M69evT3/6p3+aOnfunNauXdsm654+fXq67LLLmh33119/vdnjlNu6W9JmYdGSnj17pn/4h39Iu3fvTp07d06PPPJIcdsLL7yQIiItW7YspZTSE088kU466aS0c+fO4ph58+al6urq1NjYmFJK6Y//+I/TqFGjmu3j6quvTpdeemnx+jnnnJNmzJhRvL5///40aNCgNGfOnFZZ46E0rT2lX/5P591/dN6r3Ne+Z8+edMYZZ6RFixY1W2t7P+6HWndK7feYz549O40bN67Fbe35eB9u3Sm13+OdUkq33357Ou+88w65/cCBA2nAgAHpr/7qr4q37d69OxUKhfTQQw+llFJav359ioi0cuXK4pgnn3wyVVRUpO3bt6eUUvr7v//71LNnz+LPo2nfw4cPL17/3d/93XT55Zc32//EiRPTH/zBHxzbIltwpHWn9MuwuPLKKw+5vRzX3ZIT4j0W+/fvjwULFsS+ffuirq4uVq9eHW+//XZMnjy5OGbEiBFx6qmnFk/PvmzZshgzZkyzL+a69NJLo6GhIZ5//vnimHc/RtOYpsdoOg38u8cc6TTwub137U0eeOCB6NOnT4wePTpmzZoVP//5z4vbyn3tM2bMiMsvv/yg+bX3436odTdpr8d806ZNMWjQoBg6dGhMmzYttm7dGhHt/3gfat1N2uvxfvzxx2PChAlx1VVXRb9+/WL8+PFx//33F7dv2bIldu7c2WxeNTU1MXHixGbHvUePHjFhwoTimMmTJ8dJJ50UK1asKI654IILoqqqqjjm0ksvjQ0bNsQbb7xRHHO4n9HxXHeTxYsXR79+/WL48OFxww03xGuvvVbcVo7rbkmrn930cNauXRt1dXXx1ltvRbdu3WLhwoUxcuTIWLNmTVRVVR10srL+/fvHzp07IyJi586dLZ6+vWnb4cY0NDTEm2++GW+88UbJp4HP5VBrj4j4vd/7vRg8eHAMGjQonnvuubj99ttjw4YN8W//9m+HXVfTtsONaeu1L1iwIJ599tlYuXLlQdt27tzZbo/74dYd0X6P+cSJE2P+/PkxfPjw2LFjR9x1111x/vnnx7p169r18T7curt3795uj3dExEsvvRTz5s2LmTNnxh133BErV66MG2+8MaqqqmL69OnF+bc0r3evrV+/fs22V1ZWRq9evZqNGTJkyEGP0bStZ8+eh/wZNT1GTkdad0TEZZddFr/9278dQ4YMiRdffDHuuOOOmDJlSixbtiw6depUlutuSZuGxfDhw2PNmjVRX18f//qv/xrTp0+PJUuWtOWUjptDrX3kyJHx6U9/ujhuzJgxMXDgwJg0aVK8+OKLcdppp7XhrI/Ntm3b4qabbopFixbFySef3NbTOW5+lXW312M+ZcqU4n+PHTs2Jk6cGIMHD46HH344unTp0oYza12HW/e1117bbo93xC9PTDlhwoS45557IiJi/PjxsW7duvj6179e/APbHv0q6/7Yxz5WHD9mzJgYO3ZsnHbaabF48eKYNGlSm8y7NbTpSyFVVVVx+umnx9lnnx1z5syJcePGxVe/+tUYMGBA/OIXv4jdu3c3G//u07MPGDCgxdO3N2073Jjq6uro0qXLUZ0GPpdDrb0lEydOjIiIzZs3R0T5rn316tWxa9euOOuss6KysjIqKytjyZIl8bd/+7dRWVkZ/fv3b5fH/Ujr3r9//0H3aS/H/L169OgRw4YNi82bN3eIf+dN3r3ulrSn4z1w4MDis69NzjzzzOJLQU37Pty8BgwYELt27Wq2/Z133onXX389y+9Ga6z/SOtuydChQ6NPnz7Njnu5rbslJ8R7LJocOHAgGhsb4+yzz47OnTs3Oz37hg0bYuvWrcX3IdTV1cXatWubHYRFixZFdXV18eDW1dU1e4ymMU2PcSKdBr5p7S1Zs2ZNRPzyFzeifNc+adKkWLt2baxZs6Z4mTBhQkybNq343+3xuB9p3Z06dTroPu3lmL/X3r1748UXX4yBAwd2qH/n7153S9rT8T733HNjw4YNzW7buHFjDB48OCIihgwZEgMGDGg2r4aGhlixYkWz47579+5YvXp1ccz3vve9OHDgQDHC6urqYunSpfH2228XxyxatCiGDx8ePXv2LI453M8opyOtuyU/+9nP4rXXXmt23Mtt3S06Lm8RbcHnPve5tGTJkrRly5b03HPPpc997nOpoqIi/ed//mdK6ZcfQzv11FPT9773vbRq1apUV1eX6urqivdv+jjWJZdcktasWZOeeuqp1Ldv3xY/jnXbbbelF154Id17770tfhyrUCik+fPnp/Xr16dPf/rTqUePHs3ejX0817558+b053/+52nVqlVpy5Yt6bHHHktDhw5NF1xwQbtY+3u9993x7fm4H2rd7fmYf/azn02LFy9OW7ZsST/4wQ/S5MmTU58+fdKuXbtSSu33eB9u3e35eKf0y49UV1ZWprvvvjtt2rQpPfDAA6lr167pX/7lX4pj5s6dm3r06JEee+yx9Nxzz6Urr7yyxY+bjh8/Pq1YsSJ9//vfT2eccUazj13u3r079e/fP33iE59I69atSwsWLEhdu3Y96GOXlZWV6a//+q/TCy+8kGbPnt1qH7s80rr37NmTbr311rRs2bK0ZcuW9N3vfjedddZZ6YwzzkhvvfVW2a67JW0WFr//+7+fBg8enKqqqlLfvn3TpEmTilGRUkpvvvlm+sM//MPUs2fP1LVr1/TRj3407dixo9lj/PSnP01TpkxJXbp0SX369Emf/exn09tvv91szH/913+lD3zgA6mqqioNHTo0fetb3zpoLl/72tfSqaeemqqqqtI555yTli9f3iprbnK4tW/dujVdcMEFqVevXqlQKKTTTz893Xbbbc0+455S+a79vd4bFu35uL/bu9fdno/51VdfnQYOHJiqqqrS+973vnT11Vc3+1x/ez3eh1t3ez7eTf793/89jR49OhUKhTRixIj0jW98o9n2AwcOpD/7sz9L/fv3T4VCIU2aNClt2LCh2ZjXXnstTZ06NXXr1i1VV1ena665Ju3Zs6fZmB//+MfpvPPOS4VCIb3vfe9Lc+fOPWguDz/8cBo2bFiqqqpKo0aNSt/5znfyL/j/O9y6f/7zn6dLLrkk9e3bN3Xu3DkNHjw4XXfddQdFXjmu+72cNh0AyOaEeo8FAFDehAUAkI2wAACyERYAQDbCAgDIRlgAANkICwAgG2EBAGQjLACAbIQFAJCNsAAAshEWAEA2/w9r9X+HliIrPgAAAABJRU5ErkJggg==\n", 89 | "text/plain": [ 90 | "
" 91 | ] 92 | }, 93 | "metadata": {}, 94 | "output_type": "display_data" 95 | } 96 | ], 97 | "source": [ 98 | "plt.hist(sample_data, density=True, alpha=0.5);" 99 | ] 100 | }, 101 | { 102 | "cell_type": "markdown", 103 | "id": "57d455ce-a06c-4e0d-a076-a5e592b09ce7", 104 | "metadata": {}, 105 | "source": [ 106 | "\n", 107 | "## The Frequentist Way\n", 108 | "\n", 109 | "One way to approach this problem using a frequentist approach is through point estimation. Point estimation involves using a single point estimate, such as the sample mean, to represent the unknown population parameter. The sample mean is a commonly used point estimate for the population mean, and it is calculated as the sum of the sample values divided by the sample size.\n", 110 | "\n", 111 | "The sample mean, $\\hat{\\mu}$, is a commonly used point estimate for the population mean, $\\mu$. It is calculated as the sum of the sample values, $x_1, x_2, ..., x_n$, divided by the sample size, $n$:\n", 112 | "\n", 113 | "$\\hat{\\mu} = \\frac{1}{n} \\sum_{i=1}^n x_i$" 114 | ] 115 | }, 116 | { 117 | "cell_type": "code", 118 | "execution_count": 9, 119 | "id": "fd51e6dd-3b16-46d0-bb6c-c99c047b0e28", 120 | "metadata": {}, 121 | "outputs": [ 122 | { 123 | "data": { 124 | "text/plain": [ 125 | "" 126 | ] 127 | }, 128 | "execution_count": 9, 129 | "metadata": {}, 130 | "output_type": "execute_result" 131 | } 132 | ], 133 | "source": [ 134 | "sample_mean = tf.reduce_mean(sample_data)\n", 135 | "sample_mean" 136 | ] 137 | }, 138 | { 139 | "cell_type": "markdown", 140 | "id": "6a1bd719-bd44-4c54-89c7-0e03f34d3612", 141 | "metadata": {}, 142 | "source": [ 143 | "However, point estimates alone do not provide a complete characterization of the uncertainty surrounding the estimate. To quantify this uncertainty, we can use a confidence interval. A confidence interval is an estimate of the likely range of the true population parameter based on the observed data, and it is constructed by adding and subtracting a margin of error to the point estimate. The margin of error is determined by the desired level of confidence and the sample size, and it reflects the variability in the sample data. For example, a 95% confidence interval indicates that we are 95% confident that the true population parameter falls within the interval.\n", 144 | "\n", 145 | "A confidence interval for the population mean is constructed by adding and subtracting a margin of error, $m$, to the point estimate:\n", 146 | "\n", 147 | "$\\hat{\\mu} \\pm m = [\\hat{\\mu} - m, \\hat{\\mu} + m]$\n", 148 | "\n", 149 | "The margin of error is determined by the desired level of confidence, $1-\\alpha$, and the sample size, $n$. It reflects the variability in the sample data and is typically calculated using the standard error, $SE$, of the point estimate:\n", 150 | "\n", 151 | "$m = t_{1-\\frac{\\alpha}{2}, n-1} \\times SE$\n", 152 | "\n", 153 | "where $t_{1-\\frac{\\alpha}{2}, n-1}$ is the critical value of the $t$-distribution with $n-1$ degrees of freedom for the desired level of confidence.\n", 154 | "\n", 155 | "The standard error of the sample mean is calculated as the standard deviation of the sample, $\\sigma$, divided by the square root of the sample size:\n", 156 | "\n", 157 | "$SE = \\frac{\\sigma}{\\sqrt{n}}$\n" 158 | ] 159 | }, 160 | { 161 | "cell_type": "code", 162 | "execution_count": 10, 163 | "id": "8aa0722b-4b02-4e91-b59f-0cedc0c5ec90", 164 | "metadata": {}, 165 | "outputs": [ 166 | { 167 | "data": { 168 | "text/plain": [ 169 | "(46550.523, 53645.047)" 170 | ] 171 | }, 172 | "execution_count": 10, 173 | "metadata": {}, 174 | "output_type": "execute_result" 175 | } 176 | ], 177 | "source": [ 178 | "# Standard error of the sample mean\n", 179 | "sample_stddev = tf.math.reduce_std(sample_data)\n", 180 | "standard_error = sample_stddev / tf.sqrt(sample_size)\n", 181 | "\n", 182 | "# Margin of error\n", 183 | "confidence_level = 0.95\n", 184 | "degrees_of_freedom = sample_size - 1\n", 185 | "t_distribution = tfp.distributions.StudentT(df=degrees_of_freedom, loc=0., scale=1.)\n", 186 | "\n", 187 | "# t_distribution.quantile() seems to have a bug\n", 188 | "t_value = t.ppf(confidence_level+(1-confidence_level)/2, df=sample_size-1)\n", 189 | "margin_of_error = t_value * standard_error\n", 190 | "\n", 191 | "confidence_interval_lower = sample_mean - margin_of_error\n", 192 | "confidence_interval_upper = sample_mean + margin_of_error\n", 193 | "confidence_interval = (confidence_interval_lower.numpy(), confidence_interval_upper.numpy())\n", 194 | "confidence_interval" 195 | ] 196 | }, 197 | { 198 | "cell_type": "markdown", 199 | "id": "c01eb0a7-e5ae-4fe3-9ec1-1083f0badb01", 200 | "metadata": {}, 201 | "source": [ 202 | "We can define a helper function to plot our predicting mean and confidence interval overlayed on sampled data." 203 | ] 204 | }, 205 | { 206 | "cell_type": "code", 207 | "execution_count": 11, 208 | "id": "acc51172-387d-4309-a8f6-ff5b97a1aa79", 209 | "metadata": {}, 210 | "outputs": [], 211 | "source": [ 212 | "def visualize_output(sample_data, sample_mean, interval, type_interval):\n", 213 | " plt.hist(sample_data, density=True, alpha=0.5)\n", 214 | " plt.axvline(x=sample_mean, color='r', linestyle='dashed', linewidth=2)\n", 215 | " plt.axvline(x=interval[0], color='g', linewidth=2)\n", 216 | " plt.axvline(x=interval[1], color='g', linewidth=2)\n", 217 | " plt.legend(['Sample Mean', f'{type_interval} interval'])\n", 218 | " plt.show()" 219 | ] 220 | }, 221 | { 222 | "cell_type": "code", 223 | "execution_count": 12, 224 | "id": "503ec788-9f8f-4b5d-a8dd-3ef89b63d755", 225 | "metadata": {}, 226 | "outputs": [ 227 | { 228 | "data": { 229 | "image/png": "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cWMdOHBAI0eO1AsvvKC//vWvjjZ5eXl6++23tXDhQuXk5Oiee+7R3XffreDgYH3++ec6cOCABg0apC5dumjIkCGOz73xxht66aWXNH78eC1fvlxPP/20mjdvrttvv71EHQUFBerTp4/i4uK0bt06eXt76/XXX1ffvn21Y8eOcp8Meeedd2r27Nn66quv1LVrV3311Vc6deqUBgwYoD/+8Y+OdqdPn9Ztt92mRx99VNOnT9fZs2c1ZswYDR48WKtWrZIknTlzRomJiYqNjVVubq7Gjh2ru+++W9u2bXO6NfPll1/Wn/70JzVr1kwvv/yyhg4dqtTUVHl7e8aPLipBixaWb3L6in2Wb7NYbv7Pjq9W7ueZ25tbti3ASp7xr3N29oW5AS4lMrLke8ePX95ns7MrXpckb29vJScna8SIEZo9e7bat2+vW2+9Vffff79iY2Md7UaPHu34c1RUlF5//XU9/vjjTsGioKBAs2bN0g033CBJuvfee/X3v/9dP/74o/z9/dWqVSv16NFDq1evdgoWXbp00YsvvihJat68udavX6/p06eXGiw++ugjFRUV6b333nM8L2TevHkKDg5WSkqKevfuXWZfa9asqQcffFBz585V165dNXfuXD344IOqWbOmU7sZM2aoXbt2mjhxouO9uXPnKjIyUvv27VPz5s01aNAgp8/MnTtXoaGh2r17t2JiYhzvP/fcc+rfv78kafz48WrdurVSU1PVsmXLMusEALiOZwyFBAZemHDoUktoaMnPhoZe3mcDA6+4vEGDBumHH37Q0qVL1bdvX6WkpKh9+/ZKTk52tPnyyy/Vs2dPNWjQQAEBARo2bJhOnDihvLw8Rxs/Pz9HqJCksLAwRUVFyd/f3+m9zMxMp/3HxcWVeL1nz55Sa92+fbtSU1MVEBDgONtSp04dnTt3zmkooiwPP/ywFi9erGPHjmnx4sV6+OGHS93H6tWrHdv39/d3BIHifezfv19Dhw5VkyZNFBgYqKioKEnSoUOHnLb163AW/v9nsry4/wAA9+EZZyyucJhCUsmhkUpSq1Yt3X777br99tv1yiuv6NFHH9W4ceP00EMP6eDBg7rjjjv0xBNPaMKECapTp46++uorPfLIIzp//rz8/PwkqcT//G02W6nvFRUVXXGdubm56tChgxYsWFBiXWhpwewibdq0UcuWLTV06FBF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AgAAcHmYKwQAAFiGYAEAACxDsAAAAJYhWAAAAMu4LFjMmjVLsbGxjod/xMXF6YsvvnCsP3funEaNGqW6devK399fgwYNKvFgrkOHDql///7y8/NTvXr19Pzzz+vnn392apOSkqL27dvLbreradOmSk5OLlHLtZ4G/lJ97969u2w2m9Py+OOPO23DU/v+a5MnT5bNZtPo0aMd71Xl416stH5X1WP+6quvluhXy5YtHeur6vG+VL+r6vEuduTIET344IOqW7eufH191aZNG23ZssWx3hijsWPHKjw8XL6+vurVq5f279/vtI2TJ08qPj5egYGBCg4O1iOPPKLcXOe5Vnbs2KFbbrlFtWrVUmRkpKZOnVqilsWLF6tly5aqVauW2rRpo88//7xyOq1L9/uhhx4qcdz79u3rtA1P7HcJFZkrxEpLly41//73v82+ffvM3r17zUsvvWRq1qxpdu3aZYwx5vHHHzeRkZFm5cqVZsuWLebmm282v/nNbxyf//nnn01MTIzp1auX+c9//mM+//xzExISYpKSkhxtDhw4YPz8/ExiYqLZvXu3+ctf/mK8vLzMsmXLHG0WLlxofHx8zNy5c813331nRowYYYKDg82PP/7osr7feuutZsSIEebo0aOOJSsrq0r0vdg333xjoqKiTGxsrHn66acd71fl415ev6vqMR83bpxp3bq1U7+OHz/uWF9Vj/el+l1Vj7cxxpw8edI0atTIPPTQQ2bTpk3mwIEDZvny5SY1NdXRZvLkySYoKMh88sknZvv27ebOO+80jRs3NmfPnnW06du3r2nbtq3ZuHGjWbdunWnatKkZOnSoY31WVpYJCwsz8fHxZteuXebDDz80vr6+5p133nG0Wb9+vfHy8jJTp041u3fvNn/4wx9MzZo1zc6dO13S74SEBNO3b1+n437y5Emn7Xhav0vjsmBRmtq1a5v33nvPnD592tSsWdMsXrzYsW7Pnj1GktmwYYMxxpjPP//c1KhRwxw7dszRZtasWSYwMNDk5+cbY4x54YUXTOvWrZ32MWTIENOnTx/H606dOplRo0Y5XhcWFpqIiAgzadKkSuljWYr7bsyFf3R+/UvnYp7e95ycHNOsWTOzYsUKp75W9eNeVr+NqbrHfNy4caZt27alrqvKx7u8fhtTdY+3McaMGTPGdO3atcz1RUVFpn79+uaNN95wvHf69Gljt9vNhx9+aIwxZvfu3UaS2bx5s6PNF198YWw2mzly5Igxxpi//vWvpnbt2o7vR/G+W7Ro4Xg9ePBg079/f6f9d+7c2fzud7+7uk6W4lL9NuZCsBg4cGCZ6z2x36Vxi2ssCgsLtXDhQp05c0ZxcXHaunWrCgoK1KtXL0ebli1bqmHDho7p2Tds2KA2bdo4PZirT58+ys7O1nfffedo8+ttFLcp3kbxNPC/bnOpaeCtdnHfiy1YsEAhISGKiYlRUlKS8vLyHOs8ve+jRo1S//79S9RX1Y97Wf0uVlWP+f79+xUREaEmTZooPj5ehw4dklT1j3dZ/S5WVY/30qVL1bFjR913332qV6+e2rVrpzlz5jjWp6en69ixY051BQUFqXPnzk7HPTg4WB07dnS06dWrl2rUqKFNmzY52nTr1k0+Pj6ONn369NHevXt16tQpR5vyvkfXst/FUlJSVK9ePbVo0UJPPPGETpw44Vjnif0uTaXPblqenTt3Ki4uTufOnZO/v7+WLFmiVq1aadu2bfLx8SkxWVlYWJiOHTsmSTp27FiJp30Wv75Um+zsbJ09e1anTp1SYWFhqW2+//57K7taQll9l6QHHnhAjRo1UkREhHbs2KExY8Zo7969+vjjj8vtV/G68tq4uu8LFy7Ut99+q82bN5dYd+zYsSp73Mvrt1R1j3nnzp2VnJysFi1a6OjRoxo/frxuueUW7dq1q0of7/L6HRAQUGWPtyQdOHBAs2bNUmJiol566SVt3rxZTz31lHx8fJSQkOCov7S6ft23evXqOa339vZWnTp1nNo0bty4xDaK19WuXbvM71HxNqx0qX5LUt++fXXPPfeocePGSktL00svvaR+/fppw4YN8vLy8sh+l8alwaJFixbatm2bsrKy9M9//lMJCQlas2aNK0u6Zsrqe6tWrfTYY4852rVp00bh4eHq2bOn0tLSdMMNN7iw6quTkZGhp59+WitWrFCtWrVcXc41czn9rqrHvF+/fo4/x8bGqnPnzmrUqJEWLVokX19fF1ZWucrr9yOPPFJlj7d0YWLKjh07auLEiZKkdu3aadeuXZo9e7bjF2xVdDn9vv/++x3t27Rpo9jYWN1www1KSUlRz549XVJ3ZXDpUIiPj4+aNm2qDh06aNKkSWrbtq3eeust1a9fX+fPn9fp06ed2v96evb69euXOn178bry2gQGBsrX1/eKpoG3Sll9L03nzp0lSampqZI8t+9bt25VZmam2rdvL29vb3l7e2vNmjV6++235e3trbCwsCp53C/V78LCwhKfqSrH/GLBwcFq3ry5UlNTq8Xf82K/7ndpqtLxDg8Pd5x9LRYdHe0YCired3l11a9fX5mZmU7rf/75Z508edKSn43K6P+l+l2aJk2aKCQkxOm4e1q/S+MW11gUKyoqUn5+vjp06KCaNWs6Tc++d+9eHTp0yHEdQlxcnHbu3Ol0EFasWKHAwEDHwY2Li3PaRnGb4m240zTwxX0vzbZt2yRd+MGVPLfvPXv21M6dO7Vt2zbH0rFjR8XHxzv+XBWP+6X67eXlVeIzVeWYXyw3N1dpaWkKDw+vVn/Pf93v0lSl492lSxft3bvX6b19+/apUaNGkqTGjRurfv36TnVlZ2dr06ZNTsf99OnT2rp1q6PNqlWrVFRU5AhhcXFxWrt2rQoKChxtVqxYoRYtWqh27dqONuV9j6x0qX6X5vDhwzpx4oTTcfe0fpfqmlwiWooXX3zRrFmzxqSnp5sdO3aYF1980dhsNvN///d/xpgLt6E1bNjQrFq1ymzZssXExcWZuLg4x+eLb8fq3bu32bZtm1m2bJkJDQ0t9Xas559/3uzZs8fMnDmz1Nux7Ha7SU5ONrt37zaPPfaYCQ4Odroa+1r2PTU11bz22mtmy5YtJj093Xz66aemSZMmplu3blWi7xe7+Or4qnzcy+p3VT7mzz77rElJSTHp6elm/fr1plevXiYkJMRkZmYaY6ru8S6v31X5eBtz4ZZqb29vM2HCBLN//36zYMEC4+fnZ/7xj3842kyePNkEBwebTz/91OzYscMMHDiw1NtN27VrZzZt2mS++uor06xZM6fbLk+fPm3CwsLMsGHDzK5du8zChQuNn59fidsuvb29zZ/+9CezZ88eM27cuEq77fJS/c7JyTHPPfec2bBhg0lPTzdffvmlad++vWnWrJk5d+6cx/a7NC4LFg8//LBp1KiR8fHxMaGhoaZnz56OUGGMMWfPnjUjR440tWvXNn5+fubuu+82R48eddrGwYMHTb9+/Yyvr68JCQkxzz77rCkoKHBqs3r1anPjjTcaHx8f06RJEzNv3rwStfzlL38xDRs2ND4+PqZTp05m48aNldLnYuX1/dChQ6Zbt26mTp06xm63m6ZNm5rnn3/e6R53Yzy37xe7OFhU5eP+a7/ud1U+5kOGDDHh4eHGx8fHNGjQwAwZMsTpvv6qerzL63dVPt7F/vd//9fExMQYu91uWrZsad59912n9UVFReaVV14xYWFhxm63m549e5q9e/c6tTlx4oQZOnSo8ff3N4GBgWb48OEmJyfHqc327dtN165djd1uNw0aNDCTJ08uUcuiRYtM8+bNjY+Pj2ndurX597//bX2H/7/y+p2Xl2d69+5tQkNDTc2aNU2jRo3MiBEjSoQ8T+z3xZg2HQAAWMatrrEAAACejWABAAAsQ7AAAACWIVgAAADLECwAAIBlCBYAAMAyBAsAAGAZggUAALAMwQIAAFiGYAEAACxDsAAAAJYhWAAAAMv8P64QgbPBicM/AAAAAElFTkSuQmCC\n", 230 | "text/plain": [ 231 | "
" 232 | ] 233 | }, 234 | "metadata": {}, 235 | "output_type": "display_data" 236 | } 237 | ], 238 | "source": [ 239 | "visualize_output(sample_data, sample_mean, confidence_interval, 'confidence')" 240 | ] 241 | }, 242 | { 243 | "cell_type": "markdown", 244 | "id": "7663a3a2-0441-4584-aaad-52cc517aba55", 245 | "metadata": {}, 246 | "source": [ 247 | "## The Bayesian Way" 248 | ] 249 | }, 250 | { 251 | "cell_type": "markdown", 252 | "id": "4e597e38-6c5e-4236-b90d-e599a5b310c8", 253 | "metadata": {}, 254 | "source": [ 255 | "As an example of applying a Bayesian approach to a problem, consider the task of estimating the mean income of a population based on a sample of data. In this case, the goal is to use the sample data and any available prior knowledge to make inferences about the true mean income of the population.\n", 256 | "\n", 257 | "One way to approach this problem using a Bayesian approach is through the use of Bayes' theorem, which allows us to update our belief about the value of the population mean income based on the observed data. Bayes' theorem states that the posterior probability of a hypothesis given some data is equal to the prior probability of the hypothesis multiplied by the likelihood of the data given the hypothesis, normalized by the marginal probability of the data. This can be written mathematically as:\n", 258 | "\n", 259 | "$P(\\theta|x) = \\frac{P(\\theta)P(x|\\theta)}{P(x)}$\n", 260 | "\n", 261 | "where $\\theta$ is the population mean income, $x$ is the observed data (i.e., the sample of income values), and $P(\\theta|x)$, $P(x|\\theta)$, $P(\\theta)$, and $P(x)$ are the posterior probability, likelihood, prior probability, and marginal probability, respectively.\n", 262 | "\n", 263 | "To apply this approach to the income example, we must first specify a prior distribution over the population mean income, $P(\\theta)$. This prior distribution represents our belief about the value of the population mean income before we observe the data. The choice of prior distribution will depend on any available prior knowledge and the characteristics of the data-generating process. For example, if we have strong prior knowledge that the population mean income is normally distributed with a mean of $40,000$ and a standard deviation of $5,000$, we could use a normal prior distribution with these parameters." 264 | ] 265 | }, 266 | { 267 | "cell_type": "code", 268 | "execution_count": 14, 269 | "id": "cd97561b-86df-4198-9b5e-507711d47b93", 270 | "metadata": {}, 271 | "outputs": [], 272 | "source": [ 273 | "mu_prior = 40000.\n", 274 | "sigma_prior = 5000.\n", 275 | "prior = tfd.Normal(loc=mu_prior, scale=sigma_prior)" 276 | ] 277 | }, 278 | { 279 | "cell_type": "markdown", 280 | "id": "7fc3bde9-3841-42a6-99f2-9ed9bc9dd1ca", 281 | "metadata": {}, 282 | "source": [ 283 | "The likelihood function, $P(x|\\theta)$, represents the probability of observing the sample data, $x$, given a particular value of the population mean income, $\\theta$. Since the sample data are assumed to be independent and identically distributed (i.i.d.), the likelihood function is simply the product of the individual probability density functions of the sample values. For example, if the sample data are normally distributed with a known standard deviation, $\\sigma$, the likelihood function is a normal distribution with mean equal to the population mean income, $\\theta$, and standard deviation equal to the sample standard deviation:\n", 284 | "\n", 285 | "$P(x|\\theta) = \\prod_{i=1}^n \\mathcal{N}(x_i|\\theta, \\sigma)$" 286 | ] 287 | }, 288 | { 289 | "cell_type": "code", 290 | "execution_count": 15, 291 | "id": "c7fc2315-75e5-4167-8c4a-7ebd392e8ece", 292 | "metadata": {}, 293 | "outputs": [], 294 | "source": [ 295 | "mu_likelihood = np.mean(sample_data)\n", 296 | "sigma_likelihood = np.std(sample_data)\n", 297 | "likelihood = tfd.Normal(loc=np.mean(sample_data), scale=np.std(sample_data))" 298 | ] 299 | }, 300 | { 301 | "cell_type": "markdown", 302 | "id": "b4432af2-f2da-4503-8fba-6ce52256e67a", 303 | "metadata": {}, 304 | "source": [ 305 | "Next, we use Bayes' theorem to compute the posterior distribution:\n", 306 | "\n", 307 | "$P(\\theta|x) = \\frac{ \\mathcal{N}(\\theta)\\prod_{i=1}^n \\mathcal{N}(x_i|\\theta)}{P(x)}$\n", 308 | "\n", 309 | "The posterior distribution can be used to make probabilistic predictions and to quantify the uncertainty surrounding the estimate of the population mean income. For example, we can use the posterior distribution to compute the posterior mean and posterior standard deviation as estimates of the population mean income and the uncertainty around the estimate, respectively.\n", 310 | "\n", 311 | "As we saw above, the posterior distribution is a result of multiplying two Gaussian distributions. For us to accomplish that, we need to introduce one more concept - conjugate distributions. In our case, we have a normal-normal conjugate family which is a parametric family of distributions where the prior distribution and the likelihood function are both normal distributions. This class of models has several attractive properties, including the ability to analytically compute the posterior distribution and the closed-form solution for the maximum a posteriori (MAP) estimate.\n", 312 | "\n", 313 | "The posterior distribution is defined as the distribution of the model parameters (in this case, the mean $\\mu$ and standard deviation $\\sigma$ of the normal distribution) given the observed data $y$. The mean and standard deviation of the posterior distribution can be calculated using the following equations:\n", 314 | "\n", 315 | "$$\\sigma_{\\text{post}}^2 = \\frac{1}{\\frac{n}{\\sigma^2} + \\frac{1}{\\sigma_0^2}}$$\n", 316 | "\n", 317 | "\n", 318 | "$$\\mu_{\\text{post}} = \\sigma_{\\text{post}}^2 \\big( \\frac{\\mu_0}{\\sigma_0^2} + \\frac{n \\mu_l}{\\sigma_l^2} \\big)$$\n", 319 | "\n", 320 | "where $\\mu_0$ and $\\sigma_0^2$ are the mean and variance of the prior distribution, respectively, $mu_l$ and $\\sigma_l^2$ are the mean and the variance of the likelihood function and $n$ is the sample size.\n", 321 | "\n", 322 | "These equations assume that the prior distribution and the likelihood function are both normal distributions, as is the case in a normal-normal conjugate model. If the prior and likelihood are not normal, or if the posterior distribution does not have a closed-form solution, these parameters can be approximated using techniques such as Markov Chain Monte Carlo (MCMC) sampling.\n", 323 | "\n", 324 | "We are ready to implement our new equations." 325 | ] 326 | }, 327 | { 328 | "cell_type": "code", 329 | "execution_count": 18, 330 | "id": "bd65f8f2-e9c2-4dc7-abd9-97f5069e3429", 331 | "metadata": {}, 332 | "outputs": [ 333 | { 334 | "data": { 335 | "text/plain": [ 336 | "(45801.615148780984, 52224.89311258316)" 337 | ] 338 | }, 339 | "execution_count": 18, 340 | "metadata": {}, 341 | "output_type": "execute_result" 342 | } 343 | ], 344 | "source": [ 345 | "# Compute the posterior distribution using Bayes' theorem\n", 346 | "var_posterior = 1 / ((sample_size/(sigma_likelihood**2)) + (1/(sigma_prior**2)))\n", 347 | "mu_posterior = var_posterior * (mu_prior/(sigma_prior**2) + (sample_size*mu_likelihood)/(sigma_likelihood**2))\n", 348 | "posterior = tfd.Normal(mu_posterior, tf.sqrt(var_posterior))\n", 349 | "credible_interval = (posterior.quantile(0.025).numpy(), posterior.quantile(0.975).numpy())\n", 350 | "credible_interval" 351 | ] 352 | }, 353 | { 354 | "cell_type": "markdown", 355 | "id": "df7538ed-88ce-4581-ba44-862c7759895e", 356 | "metadata": {}, 357 | "source": [ 358 | "We can see how updating our prior belief with data resulted in our posterior distribution." 359 | ] 360 | }, 361 | { 362 | "cell_type": "code", 363 | "execution_count": 19, 364 | "id": "8e1e272d-f50b-4b3b-8c3a-3da933876f58", 365 | "metadata": {}, 366 | "outputs": [ 367 | { 368 | "data": { 369 | "image/png": "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4xg1apT1GD/99BNeffVVvPXWW9ixYwciIiLwySefNM4P5hrYlUZELs0SbFr4tYBGqan381oHtMYx3TGc0J9Avxb97FU9cnaGCuCtSMec+6VzgMrXLocuKyvDsGHDUF1djfXr1yMgIAAA8Nprr2HGjBkYP348AKBNmzZ444038MILL2DWrFn1Pv6//vUvDBw4EAAwY8YMDBs2DFVVVdBoNHj//fcxYcIEPPHEEwCA6dOnY+vWrXj//fdx6623IjU1Ffv27UN2djaioqIAAN988w06d+6M7du3o0+fPpgzZw4mTZqESZMmAQDefPNN/PHHH03SasQWIyJyaSf0JwAArbWtG/Q8y/3U2GJE7mjMmDEoLy/H77//bg1FALBnzx68/vrr8PPzs26TJ09GTk4OKioq6n38bt26Wf8/IiICAJCfnw8AOHjwIPr1s/1jo1+/fjh48KB1f1RUlDUUAUCnTp0QGBhoUyYxMdHmGElJSfWu341gixERubSTupMApHFDDWEJUid0Jxq5RuRSvHyklhtHndtOhg4diu+++w5paWn429/+Zn28rKwMr732Gu6+++7LnqPR1L/F1cvLy/r/MpkMgNRF5g4YjIjIpbHFiG6ITGa37ixHevzxx9GlSxcMHz4cK1assHZ79ezZE1lZWWjXrp3dzt2xY0ds3rzZ2l0HAJs3b0anTp2s+0+fPo3Tp09bW40yMzNRUlJiUyY9PR3jxo2zHmPr1q12q/PFGIyIyKWd1EstRq0DWjfoeZby+ZX5KDeUw9fL/T4cyb3odLrLZoc1a9bsiuWfeuopmEwm3HHHHVi1ahX69++PV155BXfccQdatWqFe++9F3K5HHv27MH+/fvx5ptvNko9n3/+edx///3o0aMHkpOT8dtvv+GXX37BH3/8AQBITk5G165dMXbsWMyZMwdGoxFPPPEEBg4ciN69ewMApk2bhgkTJqB3797o168fFi5ciAMHDqBNmzaNUserYTAiIpdlMBtwpvQMgIZ3pWlVWjTTNENhVSFO6E6gc0hne1SRqNFs2LABPXr0sHnMMjj5Sp555hmYzWYMHToUq1evRkpKCpYvX47XX38d77zzDry8vNChQwc88sgjjVbPkSNH4j//+Q/ef/99TJs2DTExMZg/fz5uueUWAFLX29KlS/HUU09hwIABkMvlGDx4MD766CPrMUaNGoVj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\n", 370 | "text/plain": [ 371 | "
" 372 | ] 373 | }, 374 | "metadata": {}, 375 | "output_type": "display_data" 376 | } 377 | ], 378 | "source": [ 379 | "x = np.linspace(30000, 70000, 1000)\n", 380 | "\n", 381 | "y_prior = prior.prob(x)\n", 382 | "y_likelihood = likelihood.prob(x)\n", 383 | "y_posterior = posterior.prob(x)\n", 384 | "\n", 385 | "plt.plot(x,y_prior, label=\"Prior\")\n", 386 | "plt.plot(x,y_likelihood, label=\"Likelihood\")\n", 387 | "plt.plot(x,y_posterior, label=\"Posterior\")\n", 388 | "\n", 389 | "plt.legend();" 390 | ] 391 | }, 392 | { 393 | "cell_type": "markdown", 394 | "id": "fea52b87-dc31-4af0-bb38-8ed523466b25", 395 | "metadata": {}, 396 | "source": [ 397 | "Finally, as we did for the frequentist case, we can plot our estimate for the mean of the population. Notice that we are actually computing the credible interval and not the confidence interval with the Bayesian approach." 398 | ] 399 | }, 400 | { 401 | "cell_type": "code", 402 | "execution_count": 20, 403 | "id": "57cef556-a63a-4865-8599-f811199c2e79", 404 | "metadata": {}, 405 | "outputs": [ 406 | { 407 | "data": { 408 | "image/png": "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vaTmzZtrx44dGjVqlB555BH97W9/c7cpKCjQSy+9pIyMDOXl5en666/Xddddp5iYGH300UfasWOHbrjhBvXo0UNDhw51P++FF17QY489pgkTJujjjz/WmDFj1Lp1a/Xv379MHUVFRRowYICSk5O1bNkyBQUF6ZlnntHAgQO1bt26Su80ec0112j69On6/PPP1bNnT33++ec6fPiwrr76aj399NPudkeOHNEVV1yhu+66S1OnTtVPP/2kcePG6eabb9ann34qSTp69KhSU1OVlJSk/Px8Pfnkk7ruuuu0du1aj696Pv744/rTn/6kVq1a6fHHH9ewYcO0bds2BQVVj48uKtGmjdMVuE1dtKXc9fmFJ9w/K2rjlAf6t3a6BKBc1eNf59zck3MKnE5CQtl1Bw6c2XNzc72vS1JQUJDS09M1cuRITZ8+XV26dNHll1+uW265RUlJSe52Y8eOdf+5WbNmeuaZZ3TPPfd4BIuioiJNmzZNF154oSTpxhtv1D//+U/9+OOPioiIUPv27dWnTx999tlnHsGiR48eevTRRyVJrVu31vLlyzV16tRyg8WcOXNUUlKi119/3X2/kJkzZyomJkaZmZm68sorK+xrcHCwbrvtNr3xxhvq2bOn3njjDd12220KDg72aPfyyy+rc+fOeu6559zr3njjDSUkJGjLli1q3bq1brjhBo/nvPHGG4qNjdXGjRuVmJjoXv/QQw9p8ODBkqQJEyaoQ4cO2rZtm9q2bVthnQAA51SPoZCoqJMTFZ1uiY0t+9zY2DN7blTUWZd3ww036IcfftD8+fM1cOBAZWZmqkuXLkpPT3e3+eSTT9S3b181atRIkZGRuv3223Xw4EEVFBS424SHh7tDhSQ1aNBAzZo1U0REhMe6/fv3e+w/OTm5zONNmzaVW+u3336rbdu2KTIy0n22pU6dOjp27JjHUERF7rzzTs2dO1f79u3T3Llzdeedd5a7j88++8z9+hEREe4gULqPrVu3atiwYWrRooWioqLUrFkzSdKuXbs8XuuX4azh/58B89T+AwCqjupxxuIshykklR0a8ZHQ0FD1799f/fv31xNPPKG77rpL48eP129/+1vt3LlTV111le699149++yzqlOnjj7//HONGDFCx48fV3h4uCSV+Z9/QEBAuetKSkrOus78/HxdfPHFmjVrVpltseUFs1N07NhRbdu21bBhw9SuXTslJiZq7dq1ZfZx9dVXa/LkyWWeXxoOrr76ajVt2lQzZsxQfHy8SkpKlJiYqOPHj3u0/2X/S8+wnEv/UYXMni0VFEjh4dKttzpdDQBLqkewqIbat2/vvnfEmjVrVFJSohdffNF9/cA777xjbV8rV64s87hdu3bltu3SpYvmzJmj+vXrK+osz9LceeedGjVqlKZNm1bhPv71r3+pWbNm5V4LcfDgQW3evFkzZszQZZddJkn6/PPPz6oWVGOPPPLztOkEC8BvVI+hkCrs4MGDuuKKK/TWW29p3bp1ysrK0ty5c/X8889ryJAhkqSWLVuqqKhIf/3rX7Vjxw7985//1PTp063VsHz5cj3//PPasmWLXnnlFc2dO1djxowpt21KSorq1aunIUOGaNmyZcrKylJmZqbuv/9+7d69+4z2N3LkSB04cEB33XVXudtHjx6tQ4cOadiwYVq1apW2b9+ujz/+WHfccYeKi4tVu3Zt1a1bV6+99pq2bdumTz/9VKlne0YKAFClECzOUUREhLp3766pU6eqV69eSkxM1BNPPKGRI0fq5ZdfliR16tRJU6ZM0eTJk5WYmKhZs2Zp4sSJ1mp48MEHtXr1anXu3FnPPPOMpkyZogEDBpTbNjw8XEuXLlWTJk10/fXXq127dhoxYoSOHTt2xmcwgoKCVK9evQq/mREfH6/ly5eruLhYV155pTp27KixY8cqJiZGtWrVUq1atZSRkaE1a9YoMTFRDzzwgF544YWz7j8AoOoIMMaY87nD3NxcRUdHKycnp8wvsmPHjikrK0vNmzdnquoz1KxZM40dO9bjWyc4d/7wWWw8pbH25O1Ro8hG2p16ZmejzqvGjX8eCjnDs2W+UtFXSSes7qWc4z8qOqSBxnddep6rqhxfN8X5Vtnv71/ijAUAALCGYAEAAKzhWyHVHBN/AQCqEs5YAAAAawgWAADAGoZCADgjLs7zJwC/QLAA4IzVq52uAIAPMBQCAACsIVgAAABrCBbVyM6dOxUQEOCeTTQzM1MBAQE6cuSIJCk9PV0xMTGVvsZTTz2liy666Jzq6N27d7W/06eN9wEAUBbXWFRjv/rVr7R3715FR0ef1/2+9957ZaZzr8zOnTvVvHlzffPNN/wyx89+9zvp0CGpTh3p1VedrgaAJQQLBxQVFXn1i7kiISEhinPgivo6deqc932WsvXeoQr48MOf5woB4DcYCrGgpKREzz//vFq2bCmXy6UmTZro2WeflfTz8MWcOXN0+eWXKzQ0VLNmzZIkvf7662rXrp1CQ0PVtm1b/e1vf/N43a+++kqdO3dWaGiounbtqm+++cZj+6lDIaXef/99tWrVSqGhoRowYICys7Mrrf90dZzq1KGQZs2a6bnnntOdd96pyMhINWnSRK+99pp7e/PmzSVJnTt3VkBAgHr37n1G+y7vvZs2bZrCwsK0YMECj5rmzZunyMhIFRQUSJLGjRun1q1bKzw8XC1atNATTzyhoqKiSvsFADh3Xp+x2LNnj8aNG6cFCxaooKBALVu21MyZM9W1a1df1Keur3XVvvx9PnntysRFxGn13Wf2dbi0tDTNmDFDU6dOVc+ePbV37159//33Hm0effRRvfjii+6gMGvWLD355JN6+eWX1blzZ33zzTcaOXKkLrjgAg0fPlz5+fm66qqr1L9/f7311lvKysrSmDFjTltLQUGBnn32Wf3jH/9QSEiIRo0apVtuuUXLly8vt/3p6jhTL774op5++mk99thjevfdd3Xvvffq8ssvV5s2bfTVV1+pW7du+uSTT9ShQweFhIR4te9T37tly5Zp9uzZGjRokEc/rr32WoWHh0uSIiMjlZ6ervj4eK1fv14jR45UZGSkHnnkkTPuEwDAe14Fi8OHD6tHjx7q06ePFixYoNjYWG3dulW1a9f2VX3al79Pe/L2+Oz1z1VeXp7+8pe/6OWXX3b/MrzwwgvVs2dPj3Zjx47V9ddf7348fvx4vfjii+51zZs318aNG/Xqq69q+PDhmj17tkpKSvT3v/9doaGh6tChg3bv3q1777230nqKior08ssvq3v37pKkN998U+3atXP/cj/V6eo4U7/+9a81atQoSSfPFkydOlWfffaZ2rRpo9jYWElS3bp1PYZuznTfp753KSkpuv3221VQUKDw8HDl5ubqww8/1Lx589xt/vCHP7j/3KxZMz300EPKyMggWACAj3kVLCZPnqyEhATNnDnTva70NLevxEU4c1e+M93vpk2bVFhYqL59+1ba7pdndI4ePart27drxIgRGjlypHv9iRMn3Bdibtq0SUlJSQoNDXVvT05OPm09QUFBuuSSS9yP27Ztq5iYGG3atKlMsDiTOs5UUlKS+88BAQGKi4vT/v37K2zvzb5PPRv261//WsHBwZo/f75uueUW/etf/1JUVJT69evnbjNnzhy99NJL2r59u/Lz83XixAlFRUV51ScAgPe8Chbz58/XgAEDdNNNN2nJkiVq1KiRRo0a5fGL4VSFhYUqLCx0P87NzfWqwDMdjnBKWFjYGbW74IIL3H/Oz8+XJM2YMcN9ZqFUYGCgveJOw2Ydp15QGRAQoJKSEiv7/uV7J528aPXGG2/U7Nmzdcstt2j27NkaOnSogoJOfpxXrFihlJQUTZgwQQMGDFB0dLQyMjL04osvetUnAID3vLp4c8eOHZo2bZpatWqljz/+WPfee6/uv/9+vfnmmxU+Z+LEiYqOjnYvCQkJ51x0VdKqVSuFhYVp8eLFZ/ycBg0aKD4+Xjt27FDLli09ltIzQO3atdO6det07Ngx9/NWrlx52tc+ceKEVv/iVsmbN2/WkSNH1K5du7Oqw4bSayqKi4ut7TslJUULFy7Ud999p08//VQpKSnubV988YWaNm2qxx9/XF27dlWrVq303//+11p/AAAV8+qMRUlJibp27arnnntO0smr/Dds2KDp06dXOB6flpam1NRU9+Pc3Fy/ChehoaEaN26cHnnkEYWEhKhHjx46cOCAvvvuO40YMaLC502YMEH333+/oqOjNXDgQBUWFmr16tU6fPiwUlNTdeutt+rxxx/XyJEjlZaWpp07d+pPf/rTaesJDg7W73//e7300ksKCgrSfffdp0svvbTc6yvOpA4b6tevr7CwMC1cuFCNGzdWaGiooqOjz2nfvXr1UlxcnFJSUtS8eXOPsx6tWrXSrl27lJGRoUsuuaTM9RcAAN/x6oxFw4YN1b59e4917dq1065duyp8jsvlUlRUlMfib5544gk9+OCDevLJJ9WuXTsNHTq00usLJOmuu+7S66+/rpkzZ6pjx466/PLLlZ6e7v7fekREhP79739r/fr16ty5sx5//HFNnjz5tLWEh4dr3LhxuvXWW9WjRw9FRERozpw5Z12HDUFBQXrppZf06quvKj4+XkOGDDnnfQcEBGjYsGH69ttvPc5WSNI111yjBx54QPfdd58uuugiffHFF3riiSes9QcAULEAY4w508a33nqrsrOztWzZMve6Bx54QF9++aW++OKLM3qN3NxcRUdHKycnp0zIOHbsmLKystS8eXOPixaB880fPouN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\n", 409 | "text/plain": [ 410 | "
" 411 | ] 412 | }, 413 | "metadata": {}, 414 | "output_type": "display_data" 415 | } 416 | ], 417 | "source": [ 418 | "visualize_output(sample_data, posterior.mean(), (posterior.quantile(0.025), posterior.quantile(0.975)), 'credible')" 419 | ] 420 | }, 421 | { 422 | "cell_type": "markdown", 423 | "id": "d140c216-b9c2-4228-99a8-2630ce1e4501", 424 | "metadata": {}, 425 | "source": [ 426 | "# Conclusion\n", 427 | "In conclusion, the frequentist and Bayesian approaches are two different ways of analyzing data and making predictions. The frequentist approach is based on the idea of statistical significance and involves constructing hypotheses about a population and testing them using sample data. The Bayesian approach is based on subjective probability and involves updating an initial belief about a population using collected data.\n", 428 | "Using TensorFlow and TensorFlow Probability, we demonstrated how to compute the mean and confidence interval for the frequentist approach and the mean and credible interval for the Bayesian approach. Both approaches can be useful for different types of problems and it is important to understand the strengths and limitations of each one in order to choose the most appropriate method for a given situation." 429 | ] 430 | }, 431 | { 432 | "cell_type": "code", 433 | "execution_count": null, 434 | "id": "ea280cc8-1a89-4029-a655-28a7ac4d911c", 435 | "metadata": {}, 436 | "outputs": [], 437 | "source": [] 438 | } 439 | ], 440 | "metadata": { 441 | "kernelspec": { 442 | "display_name": "Python 3 (ipykernel)", 443 | "language": "python", 444 | "name": "python3" 445 | }, 446 | "language_info": { 447 | "codemirror_mode": { 448 | "name": "ipython", 449 | "version": 3 450 | }, 451 | "file_extension": ".py", 452 | "mimetype": "text/x-python", 453 | "name": "python", 454 | "nbconvert_exporter": "python", 455 | "pygments_lexer": "ipython3", 456 | "version": "3.9.15" 457 | } 458 | }, 459 | "nbformat": 4, 460 | "nbformat_minor": 5 461 | } 462 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Probabilistic Deep Learning with TFP 2 | 3 | Series of articles covering probabilistic approaches to deep learning. The main goal is to extend deep learning models to quantify uncertainty, i.e. know what they do not know.  4 | 5 | We develop our models using TensorFlow and TensorFlow Probability (TFP). TFP is a Python library built on top of TensorFlow. We are going to start with the basic objects that we can find in TensorFlow Probability (TFP) and understand how can we manipulate them. We will increase complexity incrementally over the following weeks and combine our probabilistic models with deep learning on modern hardware (e.g. GPU). 6 | --------------------------------------------------------------------------------