{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Machine Learning and Statistics for Physicists" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Material for a [UC Irvine](https://uci.edu/) course offered by the [Department of Physics and Astronomy](https://www.physics.uci.edu/).\n", "\n", "Content is maintained on [github](github.com/dkirkby/MachineLearningStatistics) and distributed under a [BSD3 license](https://opensource.org/licenses/BSD-3-Clause).\n", "\n", "[Table of contents](Contents.ipynb)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns; sns.set()\n", "import numpy as np\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import scipy.stats" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bayesian Statistics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Types of Probability" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We construct a probability space by assigning a numerical probability in the range $[0,1]$ to sets of outcomes (events) in some space.\n", "\n", "When outcomes are the result of an uncertain but **repeatable** process, probabilities can always be measured to arbitrary accuracy by simply observing many repetitions of the process and calculating the frequency at which each event occurs. These **frequentist probabilities** have an appealing objective reality to them." ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden", "solution2_first": true }, "source": [ "**DISCUSS:** How might you assign a frequentist probability to statements like:\n", " - The electron spin is 1/2.\n", " - The Higgs mass is between 124 and 126 GeV.\n", " - The fraction of dark energy in the universe today is between 68% and 70%.\n", " - The superconductor Hg-1223 has a critical temperature above 130K." ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "You cannot (if we assume that these are universal constants), since that would require a measurable process whose outcomes had different values for a universal constant.\n", "\n", "The inevitable conclusion is that the statements we are most interested in cannot be assigned frequentist probabilities.\n", "\n", "However, if we allow probabilities to also measure your subjective \"degree of belief\" in a statement, then we can use the full machinery of probability theory to discuss more interesting statements. These are called **Bayesian probabiilities**.\n", "\n", "Roughly speaking, the choice is between:\n", " - **frequentist statistics:** objective probabilities of uninteresting statements.\n", " - **Bayesian statistics:** subjective probabilities of interesting statements.\n", " \n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bayesian Joint Probability" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bayesian statistics starts from a joint probability distribution\n", "$$\n", "P(D, \\Theta_M, M)\n", "$$\n", "over data features $D$, model parameters $\\Theta_M$ and hyperparameters $M$. The subscript on $\\Theta_M$ is to remind us that, in general, the set of parameters being used depends on the hyperparameters (e.g., increasing `n_components` adds parameters for the new components). We will sometimes refer to the pair $(\\Theta_M, M)$ as the **model**.\n", "\n", "This joint probability implies that model parameters and hyperparameters are random variables, which in turn means that they label possible outcomes in our underlying probability space.\n", "\n", "For a concrete example, consider the possible outcomes necessary to discuss the statement \"*the electron spin is 1/2*\", which must be labeled by the following random variables:\n", " - $D$: the measured electron spin for an outcome, $S_z = 0, \\pm 1/2, \\pm 1, \\pm 3/2, \\ldots$\n", " - $\\Theta_M$: the total electron spin for an outcome, $S = 0, 1/2, 1, 3/2, \\ldots$\n", " - $M$: whether the electron is a boson or a fermion for an outcome.\n", " \n", "A table of random-variable values for possible outcomes would then look like:\n", "\n", "| $M$ | $\\Theta_M$ | $D$ |\n", "| ---- |----------- | --- |\n", "| boson | 0 | 0 |\n", "| fermion | 1/2 | -1/2 |\n", "| fermion | 1/2 | +1/2 |\n", "| boson | 1 | -1 |\n", "| boson | 1 | 0 |\n", "| boson | 1 | +1 |\n", "| ... | ... | ... |\n", "\n", "Only two of these outcomes occur in our universe, but a Bayesian approach requires us to broaden the sample space from \"*all possible outcomes*\" to \"*all possible outcomes in all possible universes*\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Likelihood" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The **likelihood** ${\\cal L}_M(\\Theta_M, D)$ is a function of model parameters $\\Theta_M$ (given hyperparameters $M$) and data features $D$, and measures the probability (density) of observing the data given the model. For example, a Gaussian mixture model has the likelihood function:\n", "$$\n", "{\\cal L}_M\\left(\\mathbf{\\Theta}_M, \\vec{x} \\right) = \\sum_{k=1}^{K}\\, \\omega_k G(\\vec{x} ; \\vec{\\mu}_k, C_k) \\; ,\n", "$$\n", "with parameters\n", "$$\n", "\\begin{aligned}\n", "\\mathbf{\\Theta}_M = \\big\\{\n", "&\\omega_1, \\omega_2, \\ldots, \\omega_K, \\\\\n", "&\\vec{\\mu}_1, \\vec{\\mu}_2, \\ldots, \\vec{\\mu}_K, \\\\\n", "&C_1, C_2, \\ldots, C_K \\big\\}\n", "\\end{aligned}\n", "$$\n", "and hyperparameter $K$. Note that the likelihood must be normalized over the data for any values of the (fixed) parameters and hyperparameters. However, it is not normalized over the parameters or hyperparameters.\n", "\n", "The likelihood function plays a central role in both frequentist and Bayesian statistics, but is used and interpreted differently. We will focus on the Bayesian perspective, where $\\Theta_M$ and $M$ are considered random variables and the likelihood function is associated with the conditional probability\n", "$$\n", "{\\cal L}_M\\left(\\Theta_M, D \\right) = P(D\\mid \\Theta_M, M)\n", "$$\n", "of observing features $D$ given the model $(\\Theta_M, M)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bayesian Inference" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once we associated the likelihood with a conditional probability, we can apply the earlier rules (2 & 3) of probability calculus to derive the generalized Bayes' rule:\n", "$$\n", "P(\\Theta_M\\mid D, M) = \\frac{P(D\\mid \\Theta_M, M)\\,P(\\Theta_M\\mid M)}{P(D\\mid M)}\n", "$$\n", "Each term above has a name and measures a different probability:\n", " 1. **Posterior:** $P(\\Theta_M\\mid D, M)$ is the probability of the parameter values $\\Theta_M$ given the data and the choice of hyperparameters.\n", " 2. **Likelihood:** $P(D\\mid \\Theta_M, M)$ is the probability of the data given the model.\n", " 3. **Prior:** $P(\\Theta_M\\mid M)$ is the probability of the model parameters given the hyperparameters and *marginalized over all possible data*.\n", " 4. **Evidence:** $P(D\\mid M)$ is the probability of the data given the hyperparameters and *marginalized over all possible parameter values given the hyperparameters*.\n", " \n", "In typical inference problems, the posterior (1) is what we really care about and the likelihood (2) is what we know how to calculate. The prior (3) is where we must quantify our subjective \"degree of belief\" in different possible universes.\n", "\n", "What about the evidence (4)? Using the earlier rule (5) of probability calculus, we discover that (4) can be calculated from (2) and (3):\n", "$$\n", "P(D\\mid M) = \\int d\\Theta_M' P(D\\mid \\Theta_M', M)\\, P(\\Theta_M'\\mid M) \\; .\n", "$$\n", "Note that this result is not surprising since the denominator must normalize the ratio to yield a probability (density). When the set of possible parameter values is discrete, $\\Theta_M \\in \\{ \\Theta_{M,1}, \\Theta_{M,2}, \\ldots\\}$, the normalization integral reduces to a sum:\n", "$$\n", "P(D\\mid M) \\rightarrow \\sum_k\\, P(D\\mid \\Theta_{M,k}, M)\\, P(\\Theta_{M,k}\\mid M) \\; .\n", "$$\n", "\n", "The generalized Bayes' rule above assumes fixed values of any hyperparameters (since $M$ is on the RHS of all 4 terms), but a complete inference also requires us to consider different hyperparameter settings. We will defer this (harder) **model selection** problem until later." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![England t-shirt](img/Bayes/England.png)" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden", "solution2_first": true }, "source": [ "**EXERCISE:** Suppose that you meet someone for the first time at your next conference and they are wearing an \"England\" t-shirt. Estimate the probability that they are English by:\n", " - Defining the data $D$ and model $\\Theta_M$ assuming, for simplicity, that there are no hyperparameters.\n", " - Assigning the relevant likelihoods and prior probabilities (terms 2 and 3 above).\n", " - Calculating the resulting LHS of the generalized Baye's rule above." ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "Solution:\n", " - Define the data $D$ as the observation that the person is wearing an \"England\" t-shirt.\n", " - Define the model to have a single parameter, the person's nationality $\\Theta \\in \\{ \\text{English}, \\text{!English}\\}$.\n", " - We don't need to specify a full likelihood function over all possible data since we only have a single datum. Instead, it is sufficient to assign the likelihood probabilities:\n", "$$\n", "P(D\\mid \\text{English}) = 0.4 \\quad , \\quad P(D\\mid \\text{!English}) = 0.1\n", "$$\n", " - Assign the prior probabilities for attendees at the conference:\n", "$$\n", "P(\\text{English}) = 0.2 \\quad , \\quad P(\\text{!English}) = 0.8\n", "$$\n", " - We can now calculate:\n", "$$\n", "\\begin{aligned}\n", "P(\\text{English}\\mid D) &= \\frac{P(D\\mid \\text{English})\\, P(\\text{English})}\n", "{P(D\\mid \\text{English})\\, P(\\text{English}) + P(D\\mid \\text{!English})\\, P(\\text{!English})} \\\\\n", "&= \\frac{0.4\\times 0.2}{0.4\\times 0.2 + 0.1\\times 0.8} \\\\\n", "&= 0.5 \\; .\n", "\\end{aligned}\n", "$$\n", "Note that we calculate the evidence $P(D)$ using a sum rather than integral, because $\\Theta$ is discrete.\n", "\n", "You probably assigned different probabilities, since these are subjective assessments where reasonable people can disagree. However, by allowing some subjectivity we are able to make a precise statement under some (subjective) assumptions.\n", "\n", "Note that the likelihood probabilities do not sum to one since the likelihood is normalized over the data, not the model, unlike the prior probabilities which do sum to one.\n", "\n", "A simple example like this can be represented graphically in the 2D space of joint probability $P(D, \\Theta)$:\n", "![Bayes boxes](img/Bayes/BayesBoxes.png)\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The generalized Bayes' rule can be viewed as a learning rule that updates our knowledge as new information becomes available:\n", "![Update Rule](img/Bayes/UpdateRule.png)\n", "\n", "The implied timeline motivates the *posterior* and *prior* terminology, although there is no requirement that the prior be based on data collected before the \"new\" data.\n", "\n", "Bayesian inference problems can be tricky to get right, even when they sound straightforward, so it is important to clearly spell out what you know or assume, and what you wish to learn:\n", " 1. List the possible models, i.e., your hypotheses.\n", " 2. Assign a prior probability to each model.\n", " 3. Define the likelihood of each possible observation $D$ for each model.\n", " 4. Apply Bayes' rule to learn from new data and update your prior.\n", " \n", "For problems with a finite number of possible models and observations, the calculations required are simple arithmetic but quickly get cumbersome. A helper function lets you hide the arithmetic and focus on the logic:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def learn(prior, likelihood, D):\n", " # Calculate the Bayes' rule numerator for each model.\n", " prob = {M: prior[M] * likelihood(D, M) for M in prior}\n", " # Calculate the Bayes' rule denominator.\n", " norm = sum(prob.values())\n", " # Return the posterior probabilities for each model.\n", " return {M: prob[M] / norm for M in prob}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example, the problem above becomes:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'English': 0.5, '!English': 0.5}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prior = {'English': 0.2, '!English': 0.8}\n", "\n", "def likelihood(D, M):\n", " if M == 'English':\n", " return 0.4 if D == 't-shirt' else 0.6\n", " else:\n", " return 0.1 if D == 't-shirt' else 0.9\n", " \n", "learn(prior, likelihood, D='t-shirt')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the (posterior) output from one learning update can be the (prior) input to the next update. For example, how should we update our knowledge if the person wears an \"England\" t-shirt the next day also?" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'English': 0.8, '!English': 0.2}\n" ] } ], "source": [ "post1 = learn(prior, likelihood, 't-shirt')\n", "post2 = learn(post1, likelihood, 't-shirt')\n", "print(post2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `mls` package includes a function `Learn` for these calculations that allows multiple updates with one call and displays the learning process as a pandas table:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from mls import Learn" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
English!English
PRIOR0.20.8
D=t-shirt0.50.5
D=t-shirt0.80.2
\n", "
" ], "text/plain": [ " English !English\n", "PRIOR 0.2 0.8\n", "D=t-shirt 0.5 0.5\n", "D=t-shirt 0.8 0.2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Learn(prior, likelihood, 't-shirt', 't-shirt')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Dice](img/Bayes/Dice.jpg)\n", "https://commons.wikimedia.org/wiki/File:Dice_(typical_role_playing_game_dice).jpg" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden", "solution2_first": true }, "source": [ "**EXERCISE:** Suppose someone rolls 6, 4, 5 on a dice without telling you whether it has 4, 6, 8, 12, or 20 sides.\n", " - What is your intuition about the true number of sides based on the rolls?\n", " - Identify the models (hypotheses) and data in this problem.\n", " - Define your priors assuming that each model is equally likely.\n", " - Define a likelihood function assuming that each dice is fair.\n", " - Use the `Learn` function to estimate the posterior probability for the number of sides after each roll." ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "We can be sure the dice is not 4-sided (because of the rolls > 4) and guess that it is unlikely to be 12 or 20 sided (since the largest roll is a 6).\n", "\n", "The models in this problem correspond to the number of sides on the dice: 4, 6, 8, 12, 20.\n", "\n", "The data in this problem are the dice rolls: 6, 4, 5.\n", "\n", "Define the prior assuming that each model is equally likely:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "solution2": "hidden" }, "outputs": [], "source": [ "prior = {4: 0.2, 6: 0.2, 8: 0.2, 12: 0.2, 20: 0.2}" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "Define the likelihood assuming that each dice is fair:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "solution2": "hidden" }, "outputs": [], "source": [ "def likelihood(D, M):\n", " if D <= M:\n", " return 1.0 / M\n", " else:\n", " return 0.0" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "Finally, put the pieces together to estimate the posterior probability of each model after each roll:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "solution2": "hidden" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
4681220
PRIOR0.20.2000.2000.2000.200
D=60.00.3920.2940.1960.118
D=40.00.5260.2960.1310.047
D=50.00.6350.2680.0790.017
\n", "
" ], "text/plain": [ " 4 6 8 12 20\n", "PRIOR 0.2 0.200 0.200 0.200 0.200\n", "D=6 0.0 0.392 0.294 0.196 0.118\n", "D=4 0.0 0.526 0.296 0.131 0.047\n", "D=5 0.0 0.635 0.268 0.079 0.017" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Learn(prior, likelihood, 6, 4, 5)" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "Somewhat surprisingly, this toy problem has a practical application with historical significance!\n", "\n", "Imagine a factory that has made $N$ items, each with a serial number 1 - $N$. If you randomly select items and read their serial numbers, the problem of estimating $N$ is analogous to our dice problem, but with many more models to consider. This approach was successfully used in World-War II by the Allied Forces to [estimate the production rate of German tanks](https://en.wikipedia.org/wiki/German_tank_problem) at a time when most academic statisticians rejected Bayesian methods.\n", "\n", "For more historical perspective on the development of Bayesian methods (and many obstacles along the way), read the entertaining book [The Theory That Would Not Die](https://www.amazon.com/Theory-That-Would-Not-Die/dp/0300188226).\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The discrete examples above can be solved exactly, but this is not true in general. The challenge is to calculate the evidence, $P(D\\mid M$), in the Bayes' rule denominator, as the marginalization integral:\n", "$$\n", "P(D\\mid M) = \\int d\\Theta_M' P(D\\mid \\Theta_M', M)\\, P(\\Theta_M'\\mid M) \\; .\n", "$$\n", "With careful choices of the prior and likelihood function, this integral can be performed analytically. However, for most practical work, an approximate numerical approach is required. Popular methods include **Markov-Chain Monte Carlo** and **Variational Inference**, which we will meet soon." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What Priors Should I Use?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The choice of priors is necessarily subjective and sometimes contentious, but keep the following general guidelines in mind:\n", " - Inferences on data from an informative experiment are not very sensitive to your choice of priors.\n", " - If your (posterior) results are sensitive to your choice of priors you need more (or better) data.\n", " \n", "For a visual demonstration of these guidelines, the following function performs exact inference for a common task: you make a number of observations and count how many pass some predefined test, and want to infer the fraction $0\\le \\theta\\le 1$ that pass. This applies to questions like:\n", " - What fraction of galaxies contain a supermassive black hole?\n", " - What fraction of Higgs candidate decays are due to background?\n", " - What fraction of of my nanowires are superconducting?\n", " - What fraction of my plasma shots are unstable?\n", " \n", "For our prior, $P(\\theta)$, we use the [beta distribution](https://en.wikipedia.org/wiki/Beta_distribution) which is specified by hyperparameters $a$ and $b$:\n", "$$\n", "P(\\theta\\mid a, b) = \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)}\\, \\theta^{a-1} \\left(1 - \\theta\\right)^{b-1} \\; ,\n", "$$\n", "where $\\Gamma$ is the [gamma function](https://en.wikipedia.org/wiki/Gamma_function) related to the factorial $\\Gamma(n) = (n-1)!$ This function provides the prior (or posterior) corresponding to previous (or updated) measurements of a binomial process with $a + b - 2$ trials with $a - 1$ passing (and therefore $b - 1$ not passing)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def binomial_learn(prior_a, prior_b, n_obs, n_pass):\n", " theta = np.linspace(0, 1, 100)\n", " # Calculate and plot the prior on theta.\n", " prior = scipy.stats.beta(prior_a, prior_b)\n", " plt.fill_between(theta, prior.pdf(theta), alpha=0.25)\n", " plt.plot(theta, prior.pdf(theta), label='Prior')\n", " # Calculate and plot the likelihood of the fixed data given any theta.\n", " likelihood = scipy.stats.binom.pmf(n_pass, n_obs, theta)\n", " plt.plot(theta, likelihood, 'k:', label='Likelihood')\n", " # Calculate and plot the posterior on theta given the observed data.\n", " posterior = scipy.stats.beta(prior_a + n_pass, prior_b + n_obs - n_pass)\n", " plt.fill_between(theta, posterior.pdf(theta), alpha=0.25)\n", " plt.plot(theta, posterior.pdf(theta), label='Posterior')\n", " # Plot cosmetics.\n", " plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,\n", " ncol=3, mode=\"expand\", borderaxespad=0., fontsize='large')\n", " plt.ylim(0, None)\n", " plt.xlim(theta[0], theta[-1])\n", " plt.xlabel('Pass fraction $\\\\theta$')" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden", "solution2_first": true }, "source": [ "**EXERCISE:**\n", "\n", "**Q1:** Think of a question in your research area where this inference problem applies.\n", "\n", "**Q2:** Infer $\\theta$ from 2 observations with 1 passing, using hyperparameters $(a=1,b=1)$.\n", " - Explain why the posterior is reasonable given the observed data.\n", " - What values of $\\theta$ are absolutely ruled out by this data? Does this make sense?\n", " - How are the three quantities plotted normalized?\n", " \n", "**Q3:** Infer $\\theta$ from the same 2 observations with 1 passing, using instead $(a=5,b=10)$.\n", " - Is the posterior still reasonable given the observed data? Explain your reasoning.\n", " - How might you choose between these two subjective priors?\n", "\n", "**Q4:** Use each of the priors above with different data: 100 trials with 60 passing.\n", " - How does the relative importance of the prior and likelihood change with better data?\n", " - Why are the likelihood values so much smaller now?" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "solution2": "hidden" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEqCAYAAAD58oAeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3hUVfrA8e+dmkwmjVRa6J2EImgo0lRQpNh27ayNFVH5ia4VFFdFZd0V+7roKhZQUVcFC6ACAtLEQg89hEAqIX363N8fgUGkpE1yZzLv53l8Hm/u3LlvLrnvnDn3nPcoqqqqCCGECAk6rQMQQgjReCTpCyFECJGkL4QQIUSSvhBChBBJ+kIIEUIk6QshRAgxaB0AQElJCXl5+bhcLq1DEUKIgGY0GklKSiQ6OrpOx2ue9EtKSsjJySUmJh6TyYyiKFqHJIQQAUlVVZxOBzk5uQB1Svyad+/k5eUTExOP2RwmCV8IIc5CURTM5jBiYuLJy8uv03tonvRdLhcmk1nrMIQQImiYTOY6d4drnvQBaeELIUQt1CdnBkTSF0II0Tgk6dfDZZddSnp6X99/gwb157LLRvPSS7Ox2WynPeaJJ2bw8MP3N3KkTVN6el9Wr1552n2HDx8mPb0ve/fuAar+rT7++MM6neeOOyby0kuzAfjyy4WMGjXitOdoDKtXryQ9vW+jnS8Y1OU+rI0VK5aRl5db5+PfeON1brrp+nrH4S+aj94JdnfccRdjxowDwOPxcuDAfmbMmE5ZWRnTpj12yuvvvfdvSF3ThpeUlMRXXy0lOjrGr+974YUjGThwsF/fU9Rfbe/DmsrJOcxDD/2NefMWkJRUt/e4/voJ/PnP19Q5Bn+Tln49WSwW4uLiiYuLJzExkf79z+Pqq69l+fLvTvt6qzWSyMjIRo4y9Oj1euLi4jEY/NuuCQsLo1mzZn59T1F/tb0Pa8ofDTSLxeL3xkd9SEu/Aej1eoxGE2+88Trbtm1FVb1s3bqVe++9n59/3ojNVskzzzwHwPr1a/nPf/7Nvn17iImJ4aqrrub66yegKMppj7/00rEa/3bB4fDhw1xxxRjmzVtAhw4dT9p36FA2f/3rLQwfPoK//e0hAObNe5ePP/6QkpISOnXqwpQp99CzZ9op7/vllwt5+eUXWLJkme9n69atZfr0hzh0KJuOHTszbdpjvnMWFhbwyisvsn79WhwOJwMGDGTq1L8RH59Qo/0HD2Yxa9bTbNmymZSUFEaOvLhBrldTdPw+hLPfZxUVFcya9TTr1q3B6XTQu3cf7r33QVJSUrjiijEAXH/9n7n11r8yceIktm7dwosvPs/OnTtITExi/PjLuf76Ceh0Or78ciELFnxIu3btWLVqJTfc8Bc8Hjc//riKuXPnAbBjx3ZeeeUFduzYTni4hUsuuZRJkyZjMBhPe/wtt9zm1+siLX0/8nq9bNu2lY8//oihQ4cBsG7dGnr37subb849pVvg119/5t57pzB48BDeffcDJk26i7feepNPP13ge83Zjhe1d+RIIVOmTGbgwMHcd9+DAHz22Sd89NEH3H//w7zzzgcMHDiIO++cxOHDh2r0np9//ikPPPAwc+fOQ1HgmWeeBMDtdnHXXZPIy8vl+edf5tVX/0N+fj4PPHAfqqrWaP+9904hPDycuXPf55ZbJvLee3Mb6tI0GX+8D6u7z/7zn9c4fDib116bwzvvzEdRdMyc+TgAb731HgCvvfYG118/gaKiIu65504GDBjI++8v4N57H+DTTxfw/vvv+M6/a1cGFksE77wzj9GjLz0ptqysA9xxx220a9eet956j4cfns7ixV/x73+/UqPj/SEgW/qrNx9m5W+HG/28Q3q3YHBai1od89JLs3nttZcBcDpdKAqcf/5Q7rzz//jww3mYzWH85S+3oNOd+vm6YMGHpKcP8H2Sp6S0IT8/n3feeYurrroa4KzHN5SbbrqByy67gssuuwKXy8XEiTdz5ZV/YuzY8dhsNu64YyJXX30tl1xyKWVlZdx99x1cf/2NXHTRKI4eLWLq1CncdNMtDBs2gsLCAv72t6ncdttfGTx4CDk5OTz88P3cfvsdDBgwiIMHs3j00UeYO/f9Bv+9ysrKmTJlMj16pPLww9N9w97eeectJk++m0GDzj/2+9/KL7/8zCefLGDKlKnVvu/kyXfTp885AFx11dU8++xMoOobQHb2QV5++XUSEqpa7jNnPsvll49lw4b1uFzOs+73eDzk5eXy5pvvEB0dTbt27Tl4MMv399aQHBmrcWac/iF5QzJ1HYK5a+0bN2e7D59++omz3mc5OYexWCJo0aIlFouFRx55jJycqvwTExMLVM18tVgszJv3Dt269eCWWyYee68U7rjjbp5//jkmTLjZF89tt/2VuLj4U+L8/PP/0bJlK+6770EURaFt23b83//dx9///ii33Tap2uP9ISCTfjCZMOFmLr54NFBVE6NZszhMJpNvf4sWLc6YsPft2+s79rhevXrz2msvUVZWVu3xonbmzn0Tl8vFwIGDfde0srKS3NxcnnnmKWbNmul7rdPpwmg01uh9W7Vq7fv/yMhIHA47APv27SM5ubkvoQMkJibRvHlz9u/fi9PpOut+t9tNcnLzk6bad+/eo26/fBN3tvuwuvvsL3+5mXvv/T8uueQC+vTpy5Ahw7nkktO3sPft28cvv/zM8OGDfD/zelUcDjslJcVA1XOfMyXsffv20qNH6knj7Hv16oPb7ebgwaxqj/eHgEz6g9Nq3+LWSkxMDK1bp5xxv9l85tnGZnPYKT87vmSx1+ut9viG8vtWt9FoPGn7eFfDcZGRkSdtx8Y2O2k7Pj7hpO3mzZuftN26dUqjtPIBevfuy+jRY3jyyccZNeoSOnbshNfrAeCxx/5O585dTnr96f59TudMH8pn/rdT8XrVavfDib+H4wyGmn0Q1Ze56+A6tbi1crb7sLr7rGfPND777EtWr17J2rU/8vrrr/Dppwt8XTu/5/F4GD58BLffPvmUfRER1jOe70Qsp/s3/+M9X7O/u7qSJqSG2rZtx9atm0/62ZYtm4iNbUZUVJRGUTVd558/hIsvHk2/fv2YNWsmqqpitUYSFxdPQUE+rVun+P775JOPWL9+Tb3O17ZtO3JzcygsLPD9rKCggJycXNq2bVvt/o4dO5GTc5gjR4749u/cmVGvmEJRdffZO++8xbZtWxk16hIef/wp3nzzHfbu3cOePbv548TXtm3bceBA5kl/K5mZ+3nrrTdq9I28bdt2bNu25aQP882bN2EwGGjVqpVfft/qSNLX0A03TGDdurW89dabZGVl8e23S3j33bf585+vkdIUNbRzZwZr1/540n/5+WcvRHXffQ+SkbGDzz77FKj6d3jrrTf49tslHDqUzVtvvcknnywgJaVtvWI799zz6NSpM48++jAZGdvJyNjOY489TEpKCv37n1ft/n79zqVt23Y88cSj7NmzmzVrVvPuu2/XK6ZQVN19lp+fx/PP/4PNmzdx+PAhvvpqIRERVlJS2mCxWADYtWsn5eVlXHXVnzl4MIt//esfHDiQyYYN65k1ayZhYeE1SvrHnyH861+zyMzcz5o1P/LSS7MZPXosVmvjDOUOyO6dUNG5cxeeeeafzJnzGm+//QaJiUncfPNErr02cGbvBbo33nj9lJ9Nn/44ffv2O+MxKSltuO66G/n3v19m6NBhXH31dTgcDl599UWKiopo3TqFp5/+B7169a5XbIqiMGvW88ye/RyTJ/8VnU7HgAGDeOqpZ33PC6rb//zzLzNr1lPcdttfSExM4rrrbuDll1+oV1yhprr77K677mH27H/y4IP3UVFRTqdOnXn++Zd882nGjr2MZ555koyMK5k69X5eeOFVXn31RW688RoiI6O46KKRTJ48pUaxJCQkMHv2K7zyygvceOM1xMTEMHr0WG677fYG+/3/SFH/2GnYyLZt206LFm20DEEIIYLO4cMH6NGje62Pk+4dIYQIIZL0hRAihEjSF0KIECJJXwghQogkfSGECCEBkfQ1HkAkhBBBpT45U/OkbzQacTodWochhBBBw+l01Lg21B9pnvSTkhIpLi7E4bBLi18IIc5CVauKuxUXF5KUlFin99B8chZASUkJeXn5uFwurUMRQoiAZjQaSUpKPKn6am0ERNIXQgjRODTv3hFCCNF4JOkLIUQIkaQvhBAhJCBKKx89WuFbKSiUxcVZOXKkXOswAoJcixPkWpwg16KKTqcQGxtRp2MDIul7vaok/WPkOpwg1+IEuRYnyLWoH+neEUKIECJJXwghQogkfSGECCGS9IUQIoRI0hdCiBAiSV8IIUJIQAzZFKKxqaoKjgq8lcWolcWolSWoLhuqyw5OO6jeEy9WFDCYUUzhKMYwlPAoFEtM1X/hkSiKtJ1E8JCkL5o8b2UJ3sJMPIUH8BYfxluSh7c4F1y20x+gKKD73a3h9Zz8IfB7eiO6qCR00UnoYpqji2+DPr4tSmQ8iqL4/5cRop4k6YsmRVVV1JI83DkZeA5n4MndhVpR5NuvWJuhj0rE0P6cqpa62YJijgBTOIrBhKo3gU7PH9O16vGAxwUeB6qjEhwVqM5KVFsp3vIivEUHcR/41ffhoJgj0CV1xNCiK/rm3dDFpaDo5BuB0J4kfRH0VLcTz+EM3Fm/4T7wmy/JK5ZoDEkd0MUMRBeVgGKNB70B1Xv6VrtvnqfXyylzPhUFDCYwmFDMkVU/OrZL73sDL2p5IWppPt6SfDyFB3BkbaraZ47A0DoVQ0pvDK1Tqz5ohNCAJH0RlFSvG0/2Vlx71uPO/AXcDjCYMbboir7HMHQxLVDDIuF3CV6Fk7b9TtGhRCaiRCaia1l1c6nOCtSiQ3iPZOHO3op7zzrQ6dG37IGxYzqGNn1QTOENF5MQfyBJXwQVT9EhXBkrcO9ei+ooRzFbMLU/B0NyJ4huTtWSQGrDJ/gaUkwRKMmd0SV3Rt99BGppPmreXlyHtmFfvhkMJgxt+2LsOgx98y7yHEA0OEn6IuCpHjfufRtwbl+GN28P6AwY26RhaNUTJbYFqvdYkg/wReAURYcSnQzRyeg6DUQtzcN7eAfurE2496xDF52MsdswjF2HoJgsWocrmihJ+iJgqY4KnDtW4Nr6LWplMbroJMLOGYs+qQtevQFUFTVIKy4qioISnYwuOhl958F483bjydqMY92HOH7+HGPXoZh6XoQuMl7rUEUTExBr5B45Ui7lUoGEhEgKCsq0DkNzXlsphj3LKNm4GFx2DC26YuqUjhrdomr4ZBOmlubjzvwZ98GtABg6ppN8wbWUeCM1jiwwyD1SRadTiIuz1ulYSfoBJNT/oL32MlybvsG57XtwOzG274uxw3kQHn3GETdNlddehjfzF1z7fwavG0PHAZj7jkMXnax1aJoK9XvkuPokfeneEZpT3U6cW5bi/O0rcNkxtj+H2D7DKXPqq2bOhljCB9CFRaLrOhR9u/7oD/9GRcY63HvWYew2DNM5l6ELj9I6RBGkajRbpLy8nDFjxpCdnX3G16xYsYIRI0b4LTDR9KmqF9euH6n46CGcP32CoXknLKPuwtDjQvTh1oB/MNsYFLOFqD4XEjZiEsZ2fXHtWEHFhw/g+GUhqtupdXgiCFXb0t+0aRPTp08nMzPzjK8pLCxk1qxZ/oxLNHGewkzsq9/Dm78XfUJbzOdeCZHxVd04kuxPoZgtGLpfgK5NHzw7V+Pc+D9cO1cRNvB6DG16ax2eCCLVtvQXLFjAjBkzSExMPONrpk+fzl133eXXwETTpDoqsK9+j8rP/o5amk/4gKsxDbgONaJZyPXb14UuohnGvuMwD7gWRVGwLXkB2+LZeEsLtA5NBIlqW/ozZ8486/53332X7t2706tXL78FJZomV+YvOFa/i2orwdT1fIwdBuCFJj8ipyHo4lIwDZ6A98CvOHeuxv3JNMz9r8TY4yKp8SPOql4Pcnft2sXSpUuZO3cuubm5dX6fuj6FbooSEpre0DxPRQmFS97EvmMNxoQUYkbehMHaDE6tcHOSmBiZoHTcGa9FsyF4OveiZOPXONZ+AAc2kjBmMqaElMYNsBE1xXukMdUr6S9evJiCggKuvPJKXC4X+fn5XHfddcyfP79W7yNDNqs0xeForsxfcKx8G9VpI6zPpehap1LuVqG44qzHxcRYKC6ubKQoA1v118KIkjYOU0IXnNu+JfvN+zGfeyXG1FFNrtZ/U7xH6kKzIZtTpkxhypQpAGRnZzNhwoRaJ3zRNKlOG461H+DauRJ9XGvCht6M12QJ2hm0gU5RFPQtuqKLa41r23c41n2EO2szYcNuQ2eN0zo8EUDq1AyYOHEiW7Zs8Xcsoonw5O+j4tPHcO1ahTn1IsyDbsBrDJdROY1AMUdg7DMOU6/RePL3UvHJdFz7NmgdlgggMiM3gAT7V1dVVY+1Mj9EsUQTnv4n1PDYOiV76d45oa7XwltxFNemr/EWZWPsfgHmAdeg6I0NEGHjCfZ7xF9kRq7QnOqowP7DW7gzf8bQOhVzr0vwokjrXkO6iFhM6dfg3rkK1/bv8eTvIfzCO9FFnXn4tWj6mtZTHqEJT9EhKj57AveB3wjrNx5jnzFVCV9oTtHpq0o39L8Kb2k+Ff+bgTtrs9ZhCQ1J0hf14tr3E5WfPwEuG5YLbkNp3i0ka+UEOn1SB8yD/4IuPBrb4tk4fl1EAPTsCg1I946oE1X14tz4Gc5fF6FPaIf53CtQFYN05wQwnSUa08DrcG1ZgvOnT/EWZhI2bCKKMUzr0EQjkpa+qDXV7cD+3Ws4f12EqdMAzOnXVCV8EfAUvRFjr0sxdr8Ad+YvVC56Gm/FUa3DEo1Ikr6oFW9lMZWLnsW9/2fC+o1D33UoqirdOcFEURQM7fth6n8l3uJcKj/7O57CA1qHJRqJJH1RY56ibCo/ewLv0cOED5mA0ry7dOcEMX1iB8wDrwdUKhfOxH3gV61DEo1Akr6oEXfOTioXPg2ql4gRt0FUsiT8JkAXlYh54A3oIuOxLX0ZZ8YPWockGpgkfVEt1/6N2L5+Dp0livBht+A1SYG8pkQJs2I672r0Ce1wrHy7aoEW+UBvsiTpi7Nybl+O/dtX0ce1Jnzwjai64J7RKU5PMZgw9rscQ+tUnBv/h+PH9+RZTRMlQy7EGTk3fY1j/QIMrXti6jUGbzWlkEVwU3R6DGmXgDkC1/Zl4LJhHnobik6vdWjCjyTpi1Ooqorz589w/rIQY7tzMKZeJNUxQ4SiKBi7DkUxmHFl/IDqchJ2waSgr9kjTpDuHXESVVVxrPsQ5y8LMXUagCF1pCT8EGTomI6x54W4M3/GtuRFVLdD65CEn0jSFz6qquJY8z6uLUswdRuKvtswKakQwgxtz8HYazSe7G3YFr8gib+JkKQvgN8l/G3fY+4xAn3HgZLwBYbWqRj7XIrncIYk/iZCkr44JeHr2p8HMnJDHGNo2UMSfxMiST/EqaqKY+18SfjirE5K/EteRHU7tQ5J1JEk/RDn3Pg/XFu/xdRtqCR8cVaGlj0w9h6N59B27N+/hup1ax2SqANJ+iHM8duXVZUyOw9E32mgJHxRLUOrnhhTR+I+8Bv2ZXNQ5blP0Klx0i8vL2fMmDFkZ2efsu+7775j/PjxjBs3jsmTJ1NSUuLXIIX/Obd9h3PDJxjb90Pfdag8tBU1ZmjTB2P34bj3bcCxaq6UbAgyNUr6mzZt4tprryUzM/OUfeXl5Tz++OPMmTOHhQsX0qVLF15++WV/xyn8yLVnHY4f38eQkoax54WS8EWtGdqfi6HzIFw7V+Lc8LHW4YhaqFHSX7BgATNmzCAx8dQFlV0uFzNmzCApKQmALl26kJOT498ohd+4s7diX/EG+uROmHpdKhOvRJ0ZOg3C0LYvzk1f49yyWOtwRA3VqAzDzJkzz7gvNjaWiy66CAC73c6cOXO48cYb/ROd8CtP/j5sS19GF9OcsH5X4JU+fFEPiqJg6HEBqrMSx9oPUcyRGDsP0josUQ2/1d4pKyvjzjvvpGvXrlx++eW1OjYuTkr1HpeQENkg7+sqOsyhpS9giIgifuRfUAymBjmPP8XEWLQOIWAE8rVQh/6JouXzsK98i5jkJCwd+jTo+RrqHgkVfkn6+fn53HrrraSnp/PII4/U+vgjR8rxSjcDCQmRFBSU+f19vbZSKr94CrxezAOvp6TcDQT2cLuYGAvFxZVahxEQguFa6HqNQ7fuQ3I/fQ7L2EfQx7dpkPM01D0SbHQ6pc6N5XoP2fR4PEyaNIlLLrmEadOmoShKfd9S+JHqdlZNpqk4SvjgG/HqzVqHJJogxWjG1P8KFIMZ2+LZeMuPaB2SOIM6J/2JEyeyZcsWli1bxvbt21myZAnjx49n/PjxTJs2zZ8xijpSVS/25XPw5u/DMvAa1LBorUMSTZgSFomp/1WoThu2xbNRnTatQxKnoagBMMhWuneq+Purq33dR7g2f0NYv3FBt4h5MHRpNJZguxaegv04N3yCvmU3wi++16+LsEj3ThVNu3dEYHLtXIVr8zeYugwOuoQvgps+oR3GtFF4srfhWPuB1uGIP5CVs5ogd85O7KvmYmjRFUOXwTIWXzQ6Q+s01LIjuLZ9h75ZC4zdRmgdkjhGWvpNjLe0APu3r6CLjMfcd5wkfKEZQ7eh6JI6YF/9Pu5D27UORxwjSb8JUZ22qpE6Xg/hA6/Fi4ykEtpRFB2m3mPRRcZh/+4VvCV5WockkKTfZKiqiv2H/+ItPoRl8LUyNFMEBMVoxtjvClRVxbb0RVSXXeuQQp4k/SbC+duXuPdvJKzvWNSIBK3DEcJHZ4nB1Gcc3uIc7D+8KVU5NSZJvwlwZ23C+dP/MLbvh9Kih4zUEQFHn9AWQ7dhuPdtxLXpK63DCWmS9IOctyQP27LX0ce1wtjjQlkIRQQsQ7v+6Ft2x7HhU9wHN2sdTsiSpB/EVLcD27evoCg6ws67Sr42i4CmKArGtIvRRSdiX/YfvGWFWocUkiTpBylVVbGvfg9vUTbhA67Gqwv8qplCKHojxr7jUT1u7N+9gupxaR1SyJGkH6RcO1fi3rUac6+RqJGnLm4jRKDSRcRi6j0aT0GmzNjVgCT9IOQpzMTx43sYWnRD16avPLgVQUef3BlDh/NwbV+Ga/carcMJKZL0g4zqrMT27asoYZGY+46R9W1F0DJ0GYIuLgX7qrl4jh7WOpyQIUk/iKiqin3lXNTyI4Sn/xmv/POJIKbodJj6jEHRG7F/9yqq26l1SCFBskYQcWX8gHvfBsJ6X4JqidU6HCHqTQmLxNhrNN6jh3Csna91OCFBkn6Q8Bw5iGPNPAwtuqG07iX9+KLJ0Ce2x9AxHdeOFbj2rtc6nCZPkn4QUF0O7N+/hmKyYOpzKXg9WockhF8ZOg9G16wl9pVv4y3N1zqcJk2SfhBwrJ2PtziX8PQ/oSr+W4VIiECh6PQYe48FwL7sdVSvW+OImq4aJ/3y8nLGjBlDdnb2Kft27NjBFVdcwahRo5g2bRput/yD+Ytr/8+4Mn7A3PMCVGu81uEI0WB0lmiMqSPx5O/D+fMXWofTZNUo6W/atIlrr72WzMzM0+6///77eeyxx1iyZAmqqrJgwQJ/xhiyvBVHsa98C318Cvr2/aUfXzR5hhbd0LdOraoam7NT63CapBol/QULFjBjxgwSE0+d+Xno0CHsdju9e/cG4IorrmDx4sX+jTIEqaoX+4o3wOMirN/lqDIeX4QIY48LUCwx2Jf/B9VRoXU4TU6N1sidOXPmGffl5+eTkHCifntCQgJ5ebVbIef1L7ZytNRRq2OaIqNJj8tZ9ZC2t+sXBjq3s9w4lO3fVwCh9cdvMBzF7ZYPOgjNa5HkPZ8rPIv45f0X+S7sYt/Pf3+PhLLYKDPTbkmv07H1Xhjd6/WiKCeW5VNV9aTtmlAUBUUnS/u53V4UnUIzTyHnOdeyT9+eHUonCMFlD90eFWr5d9RUheK1yNMn8RN9Oc/zM5meDuw1dgZO3COhrrY59vfqnfSTk5MpKCjwbRcWFp62G+hsLjynFQ759CYmxkJxUSkJ6z5GMYWTcM7F/Mkdmn/gVquZ8nL59gchfC3Uc3FnHOIixwpSzzsXb1hM1T1SXKl1ZJozm+o+iq/eQzZbtmyJ2Wzm559/BuCLL75gyJAh9X3bkBW1ZzGmssM4u1+KPUQTvhAAKDpK210AHhdx2z+SgQx+UuekP3HiRLZs2QLAP//5T5555hkuvvhiKisrmTBhgt8CDCW6gj1Y9y/D1bofFWFJWocjhOY8YTGUtx6EqSCDyENSjdMfFDUAllvasPlQyHfvKG4Hyev/BR4PZb2vw+nW/J9FUyHbpXEaIX8tVJWY3V9iKM/BNuoxjnqsWkekObNJz7lpLet0rMzIDRBRu79CV16AvfulIZ/whTiJolDadjigI/ynd2Qd6HqSpB8ATEV7sGatgo6DqTTEaB2OEAHHa7JSljIIpWAPkdk/ah1OUJOkrzHF7SB264d4LHG42pwnk7CEOANHXFc8ce2JzFiEvqKg+gPEaUnS11jU7q8w2I7g6DYat1e6dYQ4I0XB2eUCUHTEbf9QunnqSJK+hkxH92LNWoWr7UDp1hGiJsyRlKUMwli0T7p56kiSvlY8LmK2foQ3vBmVzc+Rbh0hasgR1xVnTBsid36J3lakdThBR5K+RqL2LsVYWYCj2yU4Q6yuihD1oiiUpQwBVaXZjo9l0lYtSdLXgLH0ENbMZbhanUOlqZnW4QgRdLzmKMpbD8BUkEFE7katwwkqkvQbm9dDzLYPUU0R2Fql4/VIK1+IurAn9MQd2ZzoHZ+jc5RpHU7QkKTfyKwHfsBUmo2zy8U4QnsSshD1oyiUthkGbgfNdn2mdTRBQ5J+I9JXHiFyz2LcST2oDE/WOhwhgp4nvBmVLfphPvwr4YU7tA4nKEjSbyyqSsyOT1AUHbZ25+OR0TpC+EVlch884c2I2f4xijuEaxTVkCT9RhKe+xthhRk4O1+A3VvvZQyEEMfp9JS1GYrOdpSY/d9qHU3Ak6TfCBSXjeiMz/BEt6IypqMMMRPCz1yRLbAndCd8/+zFFdEAACAASURBVHKM5Ye1DiegSdJvBFG7v0TnLMfeeSRutzy9FaIhlLcagGow02zbAinRcBaS9BuYsfgAEQfX4m43EJsuQutwhGiyVEMY5a0GYSg+QOTh9VqHE7Ak6Tck1UvM9o9Rw6KoTOojpRaEaGCOuM64oloRuXMROme51uEEJEn6DSgi60dMZYdwdr4Qp0f68YVocIpCWcr54HYQu+dLraMJSJL0G4jOUUbUnq9xx3ei0lK3Zc2EELXnCW+GLakXYQfXYy7Zr3U4AadGSX/RokWMHj2akSNHMm/evFP2b9u2jSuvvJJx48Zx++23U1pa6vdAg030roUoHhf2DsPweOThrRCNqaJFP7wmK7HbPwav3H+/V23Sz8vLY/bs2cyfP5/PP/+cjz76iD179pz0mpkzZzJlyhQWLlxIu3bt+O9//9tgAQcDU9FeLIc34mo/GLtq1jocIUKP3kRZ68HoS3OIOiR193+v2qS/Zs0a0tPTiYmJwWKxMGrUKBYvXnzSa7xeLxUVFQDYbDbCwsIaJtpg4PUQs+N/eMNjqUxMRZUx+UJowhnbHld0CtZd30hBtt+pNunn5+eTkJDg205MTCQvL++k1zz00ENMnz6dwYMHs2bNGq655hr/RxokIrLXYiw/jLPThbjckvCF0IyiUNZ6MHicxO79SutoAka19QC8Xi+Kovi2VVU9adtutzNt2jTmzp1LWloab7/9Ng8++CBz5sypcRBRUeG4msJCIo5yLHu/QU3sjJLQBmsdhmhardIddJxcixPkWpxQq2thTcbTui9hWeuJ6zocT7N2DRdYIzIa6j4Gp9qkn5yczMaNJxYpKCgoIDEx0be9a9cuzGYzaWlpAFx99dW8+OKLtQqitNSGwxn8D1titn0CLju2tkOoKLXV+nir1Ux5uRSMArkWvyfX4oS6XAslvg/NcnZg+Gk+R879P1CCf9Ci2aSv87HV/vYDBw5k7dq1FBUVYbPZWLp0KUOGDPHtb9OmDbm5uezbtw+A77//ntTU1DoHFKyMpQexZK/D3XYAlYTwMw0hAoyqN1HeagCG4iysObLKVrUt/aSkJKZOncqECRNwuVxcddVVpKWlMXHiRKZMmUJqairPPPMM99xzD6qqEhcXx9NPP90YsQcOVSV6x2eopggqk3ujSl++EAHFEdcZV8E2IncuoiIhFdUYrnVImlHUABhesmHzoaDu3gnP+ZVmm9/F0WMcpZbWdX4f+Rp/glyLE+RanFCfa2GoyCdm+8fYOozgaMexfo6scZlNes5Nq9ukz+Dv3NKax0nUrkV4olpQGdVW62iEEGfgjkjEEd+N8P0/YLAVah2OZiTp11Nk5goM9qM4Ol0gZZOFCHAVLc8DdMTuWqR1KJqRpF8POnsJ1v3f405OxWaM1TocIUQ1vKYIKlucgyl3M2FH91R/QBMkSb8eond/iaJ6sLcZgFfq6wgRFCqTeuE1RxGT8VlILrYiSb+OjCVZVfV12g3Crpq0DkcIUVM6A+Wt0tGXHiYyZ4PW0TQ6Sfp1oapE71yI12TFJvV1hAg6jtiOuCKbY931NYo7tEZGSdKvg7CCbZiP7sXVcRhOt9bRCCFqTVEobzUQnaOM6KzlWkfTqCTp15bXQ9TOhXisiVTGtNc6GiFEHbmtyTiadcSydxl6R7HW4TQaSfq1FJG9FmNlAc6Ow3G75OGtEMGsvNWAqrWs9y6u/sVNhCT9WlBcNiL3LMYd1wFbWGL1BwghAprXHIUtKRXzwQ2Yyg5rHU6jkKRfC5H7v0fnqsTRfggeT+gN9RKiKapsfg6qwUzMri+0DqVRSNKvIZ29GOuBlXha9saus2odjhDCT1RDGJXNz8FYuIvwol1ah9PgJOnXUNSexYAXW6tz8dZhcRQhROCyJabiNUcRvWtRk5+wJUm/BgzluVgObcDdJh2HatQ6HCGEv+n0lLc4F31JNtb8TVpH06Ak6ddA1K6vUA1mbEm9ZCKWEE2UI64zbks8kbu+BG/TnYAjSb8apqP7CC/Yirv9YBwepfoDhBDBSVEobzUAXWURUYfWah1Ng5GkfzaqStSuRXjNUVTGddU6GiFEA3NFtcYV1QrrniUobrvW4TQISfpnEVawDXNxJq6OQ3HJEohCNH3HWvuKs4Logz9oHU2DkKR/JqqXqN1f44mIlxWxhAgh7ohEHM06YNm3HJ2zXOtw/K5GSX/RokWMHj2akSNHMm/evFP279u3jxtvvJFx48Zx6623UlJS4vdAG1t4zq8Yy3NwtR+K2920h3AJIU5W0eJccDuJOfC91qH4XbVJPy8vj9mzZzN//nw+//xzPvroI/bsObHijKqq3HHHHUycOJGFCxfSrVs35syZ06BBNzivm6g93+CJaoHNWrfFh4UQwcsT3gxHfFfCMlejtx/VOhy/qjbpr1mzhvT0dGJiYrBYLIwaNYrFi08UJ9q2bRsWi4UhQ4YAMGnSJK6//vqGi7gRRGSvx2A7grP9EFn3VogQVdGiH6gqMfuWah2KXxmqe0F+fj4JCQm+7cTERDZv3uzbzsrKIj4+nkceeYQdO3bQvn17Hn300VoFERUVjitQulDcTsL3f4sa3x5dXCusjTz71mo1N+r5AplcixPkWpzQaNfCmoCnZRph2Rtoljoab2RS45y3BoyGuj+OrTbpe71eFOXE+HRVVU/adrvdbNiwgffff5/U1FReeOEFnn32WZ599tkaB1FaasPhDIwWtXX/MnT2Eiq7j6Wi1Na457aaKS8PrVV8zkSuxQlyLU5o7GuhxPcm7vBWdL99RlHqhEY7b3XMJn2dj6324yI5OZmCggLfdkFBAYmJJ8oKJyQk0KZNG1JTUwEYM2bMSd8EgonitmPdvwx3QmdspmZahyOE0JhqtGBLSsN0+DdM5Tlah+MX1Sb9gQMHsnbtWoqKirDZbCxdutTXfw/Qp08fioqKyMjIAGDZsmX06NGj4SJuQNYDK9G7KnC0GYjXExjfPIQQ2qpM7g16I9FNZKGVart3kpKSmDp1KhMmTMDlcnHVVVeRlpbGxIkTmTJlCqmpqbz66qtMnz4dm81GcnIy//jHPxojdr9SXDasmStwJ3XHbogEqZcvhOBY6eXk3kQc2oCpfTbOyFZah1QvihoAFcQ2bD6keZ9+5O5viNq3lMr+t1BBuCYxSN/tCXItTpBrcYJW10JxO2i25T3czTpQ0Gdio5//j8wmPeem1W04uczIBXTOcqwHfsDdPBWbLkLrcIQQAUY1mKlM6oMpfzvmkkytw6kXSfqAdf9yFI8TR+vzZIEUIcRp2ZJS8RrDid7zjdah1EvIJ32ds5yIg6vxtOiFTdGmW0cIEQT0JiqT+2Is3EVY8X6to6mzkE/6Va18F46W/VCllS+EOAtbQg+8RgtRQTySJ6STvq+V37IXNp208oUQ1dAbqUzuE9St/ZBO+r5Wfgtp5QshaibYW/shm/SllS+EqJMgb+2HbNKXVn7o8Hq9VFRW4nZXLXZdUlrKL1s2U1FZCUBOXh5ff/ctZeVlABzIPsgni744sX3wIJ99/SUVlRUAHM7NYcWa1dgdVcvpFZeUsO9Apu/9RdMXzK39kEz60spvGo7PKywpLeXbH1ZQcKQQgP1ZB3jk6SfZm1nVCvtt21ZuvPN23/bufXt56vnnyMnLBeDAwSzenPcuRUeLAcjKzmb+/z6htKxq1aQ9mft57+OPqKisKsC3efs2XnrjP1TaqpL+jxvW8bfHH8Vmr9q/aMk33DD5r1TaqrbX/byRV996E9exD4Xc/Dz2ZmYSAPMiRV39vrVfElyt/ZBM+tbMH6SVH0RsNhtLln/PgYMHATiUk8MNk29n7cYNABwtKebfc//L7n37ADAaDBj0et+ci5QWLbnpmuuIaxYHQJeOnXhm2mO0bN4CgL69evH2i6/SqkXV9qBzz2PBG2/TIjkZgGGDBvPB628S36yqCN/QAYN49dl/Eh0ZCUC/3n148O7/wxJuAaBt6xSGDx5CeFgYAAVHCtmyYxsGfVVlxG+Wfc+0Z570/X5fLP6af7z6km/7cG4Oufl5fr2Gwv+qWvvhRO0Nrnr7IVeGQXFWkLzySTyJXShJGRpQST9Up9urqsrR4mJUVOJim2Gz2/n7P59l+KAhjBo+gorKCm68cxJ/ufpaxl88GpvNxvuffsywgYPp1L49Lreb4pJiYqNjMBiqLSeludz8PHLz8+nds6oy7efffEXGnt08dPc9APzztZfZn5XFq88+B8Cy1cux2V1ceuFIzWIOFIF2j4Tn/II1ey2FA6biiEpptPPWpwxD4N8hfmbNWoXO48DWSlr5Wlq38SfMZjN9UtNQVZW7Hr6fEecP4bbrJxBmNhPfrBmR1qqSGBGWCOb860WaxcQAEB4ezsQbTtQ2NxoMJMTFa/J71EVyYhLJiScW5LjskktP2n/lmHGUlJX6tjf+tgmn80TSf+Kf/yApMZHbJ9wEQH5hIXGxsej1da+xLurGntgTS+6vRO1bSkHv27QOp0ZCKukrbjvWAytxJ/XArosASfqN5pvvv8XucHD56DEAfLTwM+Jim9EnNQ2dTsedt0z0dacoisLjD9x/UovueNdKKGiX0uak7SceepCS3y3o075NG2JjY4Gqb0kPPPEY/Xv35c5bqpLOr1s206FtO6KOdT+JhqPqTdiS0qoqcJYfwhkEa2qHVJ9+RNYqdG4bjtb9pcZOA/vm+295cc7rvu1tO3eyNWOHb/uR/7uXB491Z0BVP/ofk504Qa87cave8Kerfa1+r6py8zXXM2Lw+QCUlZfz5PPPsfSH5UDVynbLV6+iuKSk8YMOEbbENFS9ieggWUs3ZJK+4nZgzfwBd2LXqnr5wq9Wr1/LwzOfwHPsw9Rmt1NcWuL7cL130mQevfd+3+sT4uIxBkH/e6DT63QMHTiIbp27ABAeFsbMRx5lSPpAAPYeyOTl/85h+66dQNXw0lXr1vqGq4r6Uw1mKhPTMOVsxlSRq3U41QqZpB9xcE3Vqlitz8MrC6TUW8buXUx7+kmKiquGOer1BswmE+XlVcMcr7h0LDP+9iC6Yy1UnS5k/tQ0ZTAY6NapM4nxVc84OrVrz+wnnvY9NP51y2Zm/+c1Co8cAeBwbi5bdmzHIyvF1YstuReq3kjU/m+1DqVaodHU8riwZi7HHd8RuzEa5A+81o4cLeKD/33KqOEj6NS+A2azGafLRUlpCc1iYhjQrz8D+vXXOkzxBzqdjjatW/u2hwwcROuWLUlpVbX603crV/Dl0sW88/K/CQ8P53BuLhZLODFR0VqFHJRUQxi2hJ6EH/oVQ/uLcVsStA7pjEKi+WU5/BN6ZxmulPNk7dsacrvdfPvDcjZv3wZAmDmMjZt+JTc/H6h62PjcjCekHz7I6HU6OrZrj6IoAPxp7Hj+/sDDhIdXTVJ856MPeOjJx30Tx6QbqOZsSb1A0RF9YLnWoZxVjZL+okWLGD16NCNHjmTevHlnfN2KFSsYMWKE34LzC6+HyP3f44lJwWaK0zqagHbkaBE79+4BQK/X8/HCL1i9fh0AERYLb73wCuenD9AyROFn4eHhvucBANdcfgV/vfEm34fCQ0/9nVffekOr8IKK1xSBPaEb5uwN6B3FWodzRtUm/by8PGbPns38+fP5/PPP+eijj9izZ88pryssLGTWrFkNEmR9hOf+hsFWhLNNuvRbnsbx+jEAL855nVfenIOqqiiKwqzHHueOm27x7Zd++aavXUob+qb1AsDj9TJq2Aj69zkHAIfTyYNPzuCn337RMsSAVpncB7xeorN+0DqUM6r2Ll6zZg3p6enExMRgsVgYNWoUixefWmRo+vTp3HXXXQ0SZJ2pXiL3f4cnMhm7JVnraALOwiXfMPHe/8PhqBoPP+HP1/DQlKm+Vl5sdIzv/0Xo0et0jBk5inP79AWguKQYo8FImMkMVJWXWLTkG8orKrQMM6B4zVE44jsTduBHdK7AvC7VJv38/HwSEk48lEhMTCQv7+S6IO+++y7du3enV69e/o+wHsIKtmEsz8XVdiBut7Tyc/LyeHHO6+QXFgDQpUNHLh5xoa8QWMd27WnZvLmWIYoAlpSQyFMPTye1ew8Aftu6lbc/nO9L+sWlJTicTi1DDAiVyX1RPC6iD67SOpTTqnb0jtfrPam1d/yr/3G7du1i6dKlzJ07l9zcuo1RjYoKx+X28zBKVSXsp2Wo1nh0SR2wBknXjtVq9uv75Rz7gG6elERkZRi/bP6Ni4adT/u2rTind0/O6d3Tr+fzJ39fi2AWiNfi8ktHMaB/H5ITEwF44/3/8dOvv/Hea682aEmIQLwWJ7E2x5PQCUvmStTU0WAM8/spjIa6d7VWm/STk5PZuHGjb7ugoIDEY//IAIsXL6agoIArr7wSl8tFfn4+1113HfPnz69xEKWlNr8XXDMd2U1EUSaO7mMoLQmOEQj+Liblcrm44/4HOO+cftx961+xWqL57wuvYDAYAqpo1ekEWmEtLQXytbBaon2xDew/gLat22KzuQE3b7z/Ll07dvLrw/9Avha/Z4jvRWzBbtQdyyhJGeb39zeb6v6hWu3HxcCBA1m7di1FRUXYbDaWLl3KkCFDfPunTJnCkiVL+OKLL5gzZw6JiYm1SvgNJXL/MrzmSGzR7bQOpVF9sfhr/vnaKwAYjUbu+esdXHvZlb79wVCFUgSnHl26ctHQ4QA4XU527d1DzrES0aqqsj/rgJbhNSq3NQlXVCss+1eAN7AW16k26SclJTF16lQmTJjAZZddxpgxY0hLS2PixIls2bKlMWKsNWPpIcKOZOBuk+7/bqMA4/V62bRtq29ctaqqeDweXz99v959iI+ToaqicZmMJp6b8QRXXjoWgG07M7hvxnTW/7KxmiObjorkPujsJUTmBdZopyZZTz9203uEF26jtP+tON3BM/qkLl9df9ywnn/9+xUev/8h0o49YGsKguVrfGNoCteiorKSlevWMGLwEMwmE+t/2cje/fu5cux4zCZTjd8nqK6FqhK7/WMUnULuwAdB8d+Q5/rU029yA6/1lYWE5/6Kq3V/nJ4m9+vhcDp564P3fZOmzu3Tl3sn3XnSBBshAk2ExcIlIy70Jfjde/ey/peffUX3yo7VbGpSFIXK5N7oy/OJOLKj+tc3kiaXFa2ZK0DR4UjqAdp/ifGb0rKqRbpNRiPbMjLIzjkMVPXbDz4vXSpWiqByw5+u5h8znkCn0+HxePjb44/y9gdnnu0frBzNOuIxR2Hd923A5KMmlfR1znIiDm3A3aoPDq9R63D8Zu6H87lvxnTcbnfVTNlHH+eay67QOiwh6uV4q9/j9TD6wovok5YGVJXlXv7jat9zqaCm6KhM6o3h6AHCSgNjAfUmlfQjslaheF04k3sRAI8q6szj9fLjhvVU2qpWS+rXuw9jR12MV616KC0jcERTYjKaGH/xaHr3qCr/vOanDbz85n/YfyBT28D8xB7fFa8hnKj932sdCtCESisrHicRWT/iTuqOXWcJ6qUQM7Oy+Ne/X+H2CTcxavgF9OzajZ5du2kdlhCNYsTg82mRnEznDh2BqnIhHo/nlLWEg4beiC2xJxGHf8JUmYfTklT9MQ2oybT0LYd+Qu+qwNmyb1Auhfj9yh/47KuvAejQti1PPPiIb8yzEKFEURS6ders296zfx+79+/zVQJwB2G3jy0xFVVnIPLACq1DaSJJX/VizVyBJ6Y1dlOs1tHU2O+7oH7btoW1Gzf6ftazazepaikEcO+kO5l6+2QAjhw9yu33Tw26Sp+qMRx7fFfM2T+hd5ZqGkuTyCph+Vsx2ApxppyHJ0iWQszYvYt7Hn2YwqIiACbffBuzHntUqloKcRrHR6c5nS46te9A6xZVY9RLy8pOKg8eyGxJvcDrIergj5rG0SSSvjVzOV5LM+wRLbQO5axUVcVmr/oDbRYbS5g5jLLyqqGY4WFhkvCFqEbzpEQeuvsekhOr+sXfWfAB/zft4aAY6eMJi8EZ257wA6tQ3NpNMAv6pG86ug9zcSauNukBXT7Z6/Xy6KyZzHl3LgCJ8QnMevRxWW5QiHq4aMgwrho7zvdNYFvGDjwB/EyvMqk3istGZM5PmsUQ9EnfmrkCr9GCLaa91qGcVn5hIVC16lT/3n1J6xG4pYyFCDZdO3X2DXg4kH2QR2c9zdffLtE4qjNzRzbHZW1OROZyULX5cArqpK+vLCQsfyvulHNxuQNvXP6anzYw+YF72b1vHwDjLx7N8EGDNY5KiKapdYuW3HfHXYw4fygABw4eZG9mprZBnUZlUi90lUVYC7dpcv6gTvrWAyurSi7Ed9U6FB+bzUZeQT4AvXumcuXY8bRI1nZcrhChQKfTMejc84iwWAD44LNPmPnCP3G5XBpHdjJnbDs85igi9i/X5PxBm/QVVyWWQ+txt+yFQw2MOWaqqjLtmad46Y3/oKoqlvBwrr38SiIsEVqHJkTIufu223nw7nswGo2oqsq3PywPjJE+ig5bYhqGo/sJK238NQaCNulHZK9F53EGRMmFvZmZvmUkr7viKm665joZiSOExiIsFrocm9W7a+8e/j33LX7csEHjqKrYE7qh6k1EHvih0c8dnEnf68F6YBXu+I7YDZGahvLbti3c//dHWf9z1eIQ/Xr3oVP7DprGJIQ4WZeOnZj16OMMO/ZMbWvGDvZmalcATdWbsCV0x5izCYO9qFHPHZRJPzz3N/SOElytzsGrwYLnLpfLV9o4tVsPbrt+An1S0xo9DiFEzXVq3wH9sVnu73+ygFf++4amJVtsiWmgqkQdXN2o5w2+pK+qWA/8gCciAXu4Ng9I//XvV3jq+edwud3odTpGX3gRZrNZk1iEELX36L33c9/ku9DpdLhcLn5Y82OjfwB4zZE4m3UkLGsNirvxnjUExhPQWjAV78dUehBHt0sbdTLWkaNFREVGYTQYuOySS7E7HLJwiRBBKsJi8Y3yWb1+HS//dw7xzZrRo5Gr2VYm9cJctJuonJ8oaX1+o5yzRi39RYsWMXr0aEaOHMm8eaeubvPdd98xfvx4xo0bx+TJkykpKfF7oMdZD6zEawzHFtOuwc7xRwVHCrn7kQdZuLiqCmbXTp3p3TO10c4vhGg4wwYN5skHH/El/G07M3xrWTQ0tzUJtzUZS+YPjTZZq9qkn5eXx+zZs5k/fz6ff/45H330EXv27PHtLy8v5/HHH2fOnDksXLiQLl268PLLLzdIsHpbEWF5m3G37tcok7HKKyoASIiL56ox4xl0bnqDn1MI0bgURfElfJvdzrMvzfaVS2kMlYlp6CqPYCnKaJTzVZv016xZQ3p6OjExMVgsFkaNGsXixYt9+10uFzNmzCApqap/vUuXLuTk5DRIsBFZq0FRcCQ0/FewpSuWMfnB+yg6ehSAKy4dQ3JiYoOfVwihnfCwMB677wGuufxKoKrhd7wSbkNxxLbHa7ISmbmiQc9zXLVJPz8/n4SEBN92YmIieXl5vu3Y2FguuugiAOx2O3PmzOHCCy/0e6CK20FE9jo8yT1w0HAPTY8Xa0rt1oPz0wfKA1ohQkyn9h18Dbz3P1nAvY89QkVlRcOdUKenMqEnhsLdmCpyG+48x1T7JNLr9Z400ej4JKQ/Kisr484776Rr165cfvnltQoiKiocl/vs/VmGPT+hc9ugXX8izP5f9FxVVf756msYDAamTrqdTtYUpnaY6PfzVMdqlQ+Z4+RanCDX4oTGvBbXX3U5aT26kpTYDKhq+VsjGmCGfbs+qDkbicv5EVu/G6t9udFQ94GX1Sb95ORkNm7c6NsuKCgg8Q/dHPn5+dx6662kp6fzyCOP1DqI0lIbDudZRuKoXhIzvsMT3YoSrxVPecPUoo6KjEav01FWZtdkRq3Vaqa8gX63YCPX4gS5Fic09rWIjIhhYL8BlJc72Hcgk+nPzuRvd9xF37Refj6TDiWuM+b96yhrMwqP0XrWV5tN+nqcqRoDBw5k7dq1FBUVYbPZWLp0KUOGDPHt93g8TJo0iUsuuYRp06Y1SLI0H9mFsSIfd+t+ePw4Gau0rIznX3+V/VlV9S+uv/JPXHP5lVJCQQhxitiYGAafm+5bsN3f5V8qE9NQvG4iD6/z6/v+UbUt/aSkJKZOncqECRNwuVxcddVVpKWlMXHiRKZMmUJubi7bt2/H4/GwZElVHeuePXsyc+ZMvwVpzVqF1xyJLbI1VNMNVFsZe3aTefCgLGYihDir2OgYJt98K1CV8J958XnSuvdkzMhRfnl/jyUOZ1RrwjNXU9x6OOjq3po/mxrNLho7dixjx4496WdvvPEGAKmpqWRkNNxQI31lIeaCHbg6Dqu2378mysrL+H7VSsZfPJqoyEheeeYfmIwmP0QqhAgVDqcDg8GAweDfxGxL7En0nm+wHtlGeULDlHYJ+DIM1uPDNOO6+OX9ftywnvmffkzmwSwASfhCiFoLM4dx/51TGDX8AgB+2bKZr75bWu9SDs6YtlW19jNX+iPM0wroOgKK24Hl0Ho8zVOP1cyvWx+azW6n4EghKS1bMXLYCFK79aBl8+b+DVYIEVJ+/+xv7U/r2b1vHyOHDkenq0dbWtFhS+iBNXstpvIcnFb/56mAbumH52xE57bjaJ5Wr4cmz7/+KjNn/wuX241Op5OEL4Twq8k338YTDz6C0WjE5Xaz8bdf6/xe9oTuqDoDkQdX+THCEwI36asq1qzVeKJb4jDG1vpwj8fjG+lzzWVXMGXi7VIgTQjRIBRFISqyam2Pb1cs5+kXn/etjV1bqiEMR1xnzNkb0bn8PyksYLOgqWgPxvJc7D3G13qYpt1h5+/PzaJPahp/Hn85Hdo2XnE2IURoGzV8BPFxcXRq3x6AisqKWi+ZWpmYSljBdqJyNlCcMtyv8QVsS9+atQqvKQJ7VEqtjw0zh9G+TVtaJEs3jhCicen1es7t0xeA3Px87njgXWRs/QAADndJREFUPpb/WLuFUjyWeFyRLQnPXOX36psBmfT1tqOE5W/F3eqcGg/TtNntzHlvrq840sQb/8Lg86QqphBCO1GRkQzsfx49unSt9bGViT3R2Y76vfpmQCb9iOw1ADgSaj5M82hxMSvXrmHL9m0NFZYQQtSKJTycSX+5mcT4eADe/nA+G375uUbHOmPa4TVFYD3g3we6gZf0vW4s2evwJHXDQdhZX6qqKtt2Vn0KtkhO5t//+BfDBzfO6jNCCFEbNrud7Tsz2LO/hg94dXps8d0xFmRgtB3xWxwBl/TDczehd5bjapGGWs1Eh+9X/cCjz85kx66dAERaIxsjRCGEqLXwsDCenvYYV192BQAHDx0iNz/vrMfYE3qgKjois3/0WxwBN3on4uBqPBHx2MMS4Qxr4Hq8XvQ6HUMHDEKn09G1U+dGjlIIIWrv+LBxVVV59e03qais5MWnnjnjhC6vKQJnbHvCDq5DaX8xqr7+FQQCqqVvLD2EuTgTd+t+Z1z0/PtVK3lk5t9xupwYjUZGDB4iVTGFEEFFURTunTSZu2+diE6nQ1VV3G73aV9rS+iJ4rIRmf+bX84dUEk/Ims1qs6IPab9GV8THRVFdGQULperESMTQgj/SoxP8JVp/ub775j+7MzTrtDlimyBOzwOy4GV4IdyzgHTvaO4bITn/Iy7ZW9cXh2/r7OTffgQh3JzOK9vP/r16s05ab2kdS+EaDJiY2JITkgkPCz81J2Kgi2xJ5EHfiCsLAt7VP3KwAdMS99y+Cd0XhfOpB6n1Nl5d8GHvP3BPFzHvv5IwhdCNCUD+vXnntvvQKfTUVZexlffLjmpYqcjrjOq3oT1YP0f6AZGS19ViTi4Bk9MCg5DFByrm+N2uzGbzUy++TbcHo/UzhFCNHnLVq9i3qcf06tHT1q1aAmAqjdhj+tM2OFf0XUeD6aoOr9/QLT0jSVZGCvycLXsg8fjwev18uTzz/Hyf99AVVViov+/vbuPaepe4wD+pU55cZnABaRqx73/SBErbGzRCG4pOl5LmeI2qCE4pGCMkjklE8GR6VAnydiMywJxcZlXogQuY3gXqWi6O4GJd875gl6cRi3vKMsEBpulz/2DWWWABxk9Rc7zSfpHz6/9/Z7zcPKc0pfnzICHu7u9w2SMMZvThkciL2e7teD3/PorAKDX03/gcoqt/33U0wVNiKLv0vI9LFOd0feMAgAgk8kQtCCA37tnjEmOg4MDfOYM1MIL9ZeQtnkjLl9tGOjH87Q3XG5W/6UPdCdE0Xe6fQX9c55H1X9OWduRxoRH8q9rGWOSNksux8Lnn8ff/zgJ9HrOh6ynA053b415zlEV/YqKCkRFRSEsLAyHDh0aMn758mWsWLEC4eHhyMrKGvH7piNxoH50PfMPFP2rBP8+XvlYz2WMscnqb27u2JCSBmdnZ5jNZvzz1EVYpjhiesuZMc8pWPTb2tqQn5+PoqIifPnllzhy5Ah++umnQY/JyMjAu+++i8rKShARiouLHysIs5sPyNkdO7ZkYf0a/ePtAWOMSUDD9WsoPlqBa2ZXPNXxvzHPI/h1mJqaGixatAiurq4AgPDwcBw7dgzr168HADQ1NaGvrw+BgYEAgBUrVmDv3r3Q6XSjDuJi1zQoFFMxZ86csezDpDHVcRqmmfkzDIBz8TDOxQNSzkXgggDs/3gfvJ+ehqeax955U7Dot7e3w9PT03rfy8sL58+fH3Hc09MTbW2PbiL0Z9q1mx7r8YwxJm0RY36m4Ns7Fotl0DdoiGjQfaFxxhhjE4dg0ff29kZHR4f1fkdHB7y8vEYcv3379qBxxhhjE4dg0V+8eDFqa2vR2dmJ3t5eGAwGvPTSS9bx2bNnw9HREd9/P3A1mPLy8kHjjDHGJg4H+nOjm2FUVFSgoKAA9+7dw8qVK6HX66HX65Geng6VSoUrV64gOzsb3d3d8Pf3x65duzBt2l/v+8wYY2x8jaroM8YYmxwmxC9yGWOMiYOLPmOMSQgXfcYYkxAu+owxJiGiFX1bN217kgjloqqqCrGxsdBqtVi3bh1++eUXO0QpDqFc3Gc0GhEaGipiZOITysX169eRmJgIrVaLNWvWSPq4uHTpEuLi4qDVapGWloa7d+/aIUpxdHd3Q6PRoLGxccjYmOomiaC1tZXUajX9/PPP1NPTQzExMXT16tVBj4mOjqYffviBiIgyMzPp0KFDYoQmOqFcdHV1UXBwMLW2thIR0UcffUQ7duywV7g2NZrjgoioo6ODIiIiSK1W2yFKcQjlwmKxUFhYGH3zzTdERJSXl0d79uyxV7g2NZrjIiEhgYxGIxER7dq1iz788EN7hGpz586dI41GQ/7+/mQymYaMj6VuivJK/+GmbS4uLtambfcN17Tt4fHJRCgX9+7dQ05ODmbOnAkA8PX1RUtLi73CtSmhXNyXnZ1tbfA3WQnl4tKlS3BxcbH+8HHt2rVYtWqVvcK1qdEcFxaLBT09PQCA3t5eODk52SNUmysuLkZOTs6wXQ7GWjdFKfrDNW17uCnbeDRte1II5cLNzQ2vvPIKAKCvrw+FhYVYtmyZ6HGKQSgXAPDFF19g3rx5CAgIEDs8UQnl4tatW/Dw8MDWrVuxfPly5OTkwMXFxR6h2txojostW7YgOzsbISEhqKmpQXx8vNhhiiI3NxcvvPDCsGNjrZuiFH1u2vbAaPe1q6sLqampUCqVWL58uZghikYoFw0NDTAYDFi3bp09whOVUC7MZjPq6uqQkJCAsrIyKBQK7N692x6h2pxQLvr6+pCVlYXPP/8cp06dgk6nwzvvvGOPUO1qrHVTlKLPTdseEMoFMHAG1+l08PX1RW5urtghikYoF8eOHUNHRwfi4uKQmppqzctkJJQLT09P+Pj4QKVSAQA0Gs2gFueTiVAuGhoa4OjoiAULFgAA3njjDdTV1Ykep72NtW6KUvS5adsDQrno7+/H2rVrERkZiaysrEn7Hw8gnIv09HRUVlaivLwchYWF8PLyQlFRkR0jth2hXDz33HPo7OzElStXAAAnT56Ev7+/vcK1KaFc+Pj4oLW1Fdf/uJ72iRMnrCdDKRlz3Ry/z5kf7auvvqLo6GgKCwujwsJCIiJKSUmh8+fPExHR5cuXKS4ujsLDw+ntt9+m3377TazQRPeoXBgMBvL19SWtVmu9bd261c4R247QcXGfyWSa1N/eIRLOxblz5yguLo6ioqIoOTmZbt++bc9wbUooF0ajkWJiYkij0VBSUhLdunXLnuHanFqttn5756/WTW64xhhjEsK/yGWMMQnhos8YYxLCRZ8xxiSEiz5jjEkIF33GGJMQLvqMMSYhXPQZY0xCuOgz9gSor69HfHw8AgICsHLlSjQ3N9s7JPaE4qLP7KqxsRF+fn6IjY213rRaLUpKSmy+dk5ODkJDQ5Gfnz8u8yUnJ6OzsxMXLlxAenr6uMwJAK2trUhNTYVer8fp06ehUCjw6aefjtv8TFqesncAjDk5OaG8vNx6v62tDRqNBvPnz4dSqbTZukeOHIHRaIS3t/e4zFddXQ0AUKlU2Lt377jMCQC7d+/Ga6+9hqVLlwIAoqOjsW/fvnGbn0kLF3024cycORM+Pj64ceMG5s6di507d+LHH39ET08PiAjvv/8+lEolMjMzcfPmTchkMvj7+2P79u3o7e0ddrtMNvifWp1OByKCXq9HREQEKisr4eLigp6eHpSWlmLPnj1D1gwKCgIAlJSU4MCBA5DJZHBzc8MHH3xgLfJJSUlYs2YN9u/fj6NHjwIYOLkcPHgQMpkMHh4e2LZtG9rb25Gfnw+FQoGrV6/CbDbjvffes65xX3d3N06cOIHKykrrNovFAkdHR1v+CdhkZqsGQYyNhslkosDAwEHbzp49Sy+++CI1NzfT2bNnacOGDdTf309ERAUFBZSWlkZlZWWUnJxMRERms5mysrLoxo0bI24fzty5c+nOnTv03XffkVKppMbGRuv6w61JNNDgauHChdTc3ExERAcOHKBt27YNmS86OpqIiGpqamjZsmV0584dIiIqLS2lyMhIqq2tJT8/P6qvrycios8++4xWrVo1JEaDwUBKpZKCgoKsN5VKRW+99dZY0s0Y8St9Znd9fX2IjY0FMNBa2s3NDXl5eZDL5ZDL5ZgxYwYOHz4Mk8mE06dPY/r06QgKCkJ+fj4SExOxePFiJCUlwcfHBzKZbNjtQuRyOWbPng1goI3xcGsCQG1tLUJCQiCXywEAq1evfuS83377LaKiouDu7g5g4JJ2ubm5aGpqwqxZs+Dn5wcAmDdvHsrKyoY8v6mpCaGhofjkk0+s2/R6PZYsWSK4T4wNhz/IZXZ3/z398vJyHD16FAcPHsTLL78MADAajUhLSwMALF26FAkJCQAAhUKB48ePIzU1Fd3d3XjzzTdx8uTJEbcLefjSgyOtCQBTpkwZchWna9eujTivxWIZso2IYDabB13X1cHBATRMw9vff/990ONMJhMuXryI0NBQwX1ibDhc9NmEVl1dDbVaDZ1Oh/nz56Oqqgr9/f0oKipCZmYmQkJCkJGRgZCQENTX14+4fTzWBICFCxeitrYW7e3tAIDDhw8jLy8PwMAJwWw2D5pryZIl+Prrr9HZ2QkAKC0thaurK5599tlRxaJSqXDmzBm0tbWhpaUFmzdvxsaNG+Hq6vpY+8TYffz2DpvQ4uPjsWnTJsTExMBsNiM4OBgGgwGvvvoq6urqEBUVBWdnZ8jlciQmJmLq1KnDbh+PNS0WC3x9fZGRkYGUlBQAA5cx3LlzJwAgIiICiYmJg9YLDg7G6tWrkZSUBIvFAnd3dxQUFFhPAkIWLVoEtVqNiIgIuLq6IiUlBa+//vpj7Q9jD+OLqDDGmITw2zuMMSYhXPQZY0xCuOgzxpiEcNFnjDEJ4aLPGGMSwkWfMcYkhIs+Y4xJCBd9xhiTkP8Dt6MKwnIIpasAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "binomial_learn(1, 1, 2, 1)" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ " - The posterior peaks at the mean observed pass rate, 1/2, which is reasonable. It is very broad because we have only made two observations.\n", " - Values of 0 and 1 are absolutely ruled out, which makes sense since we have already observed 1 pass and 1 no pass.\n", " - The prior and posterior are probability densities normalized over $\\theta$, so their area in the plot is 1. The likelihood is normalized over all possible data, so does not have area of 1 in this plot." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "solution2": "hidden" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "binomial_learn(5, 10, 2, 1)" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ " - The posterior now peaks away from the mean observed pass rate of 1/2. This is reasonable if we believe our prior information since, with relatively uninformative data, Bayes' rule tells us that it should dominate our knowledge of $\\theta$. On the other hand, if we cannot justify why this prior is more believable than the earlier flat prior, then we must conclude that the value of $\\theta$ is unknown and that our data has not helped.\n", " - If a previous experiment with $13=(a-1)+(b-1)$ observations found $4=a-1$ passing, then our new prior would be very reasonable. However, if this process has never been observed and we have no theoretical prejudice, then the original flat prior would be reasonable." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "solution2": "hidden" }, "outputs": [ { "data": { "image/png": "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58/3yD4BCgoKmDNnDrNnz+abb76hV69e/OMf//DY/kXoCfN3ASJ4RUVFsWbNGufjwsJCJk6cyAknnMCgQYO8dty33nqLzz//nG7dunlkf1999RUAQ4YM4YknnvDIPgEeeeQRLrvsMs477zwAJkyYwFNPPeWx/YvQI4EufCYtLY3evXuTlZXFgAEDeOihh/j555+pra1FKcWDDz7IoEGDWLhwIdnZ2ei6zuDBg7n//vupr68/7PO6fvAfmdOmTUMpxezZsxk3bhwff/wxZrOZ2tpaVq1axaOPPnrIMU855RQA3nnnHV566SV0XScxMZGlS5c6A/yaa67hj3/8Iy+++CIffPAB4PjF8dprr6HrOikpKdx7770UFRWxbNkyevXqxc6dO7HZbPz1r391HqNVTU0Nn376KR9//LHzOcMwiIyM9OaPQAQ7b004I0JbTk6OGjZs2EHP/fDDD+q0005TeXl56ocfflA333yzstvtSimlnnvuOXX99der1atXq5kzZyqllLLZbOqee+5RWVlZR3z+cAYMGKBKS0vV119/rQYNGqRyc3Odxz/cMZVyTIR0xhlnqLy8PKWUUi+99JK69957D9nfhAkTlFJKbdiwQZ1//vmqtLRUKaXUqlWr1Pjx49XGjRvVcccdp7Zu3aqUUuqf//ynmj59+iE1rl27Vg0aNEidcsopzn9DhgxRt9xyS0dOtxBKKaXkCl14TUNDA5MnTwYcUwcnJiby2GOPkZ6eTnp6OgkJCbz55pvk5OTwzTffEBMTwymnnMKyZcuYMWMGZ511Ftdccw29e/dG1/XDPu9Keno6PXr0ABzT1B7umAAbN25k5MiRpKenA3Dttdcedb9ffvklmZmZJCUlAY4lwpYsWcK+ffvo3r07xx13HADHH388q1evPmT7ffv2MWbMGJ5++mnnc7Nnz+bss892+T0JcSRyU1R4TWsb+po1a/jggw947bXXGDVqFACff/45119/PQDnnXceV111FQC9evXik08+Yc6cOdTU1HDdddexbt26Iz7vyoFLuR3pmAAmk+mQlXN27959xP0ahnHIc0opbDbbQWtgapqGOsyEpk1NTQd9XU5ODr/++itjxoxx+T0JcSQS6MIvvvrqK0aPHs20adM44YQT+M9//oPdbueNN95g4cKFjBw5kjvuuIORI0eydevWIz7viWMCnHHGGWzcuJGioiIA3nzzTR577DHAEfY2m+2gfZ199tn8+9//pqysDIBVq1ZhsVjIyMhwq5YhQ4bw7bffUlhYSH5+PrfffjsLFizAYrG063sS4kDS5CL84sorr+S2227joosuwmazMWLECNauXcvFF1/Mpk2byMzMJDo6mvT0dGbMmEF4ePhhn/fEMQ3DYODAgdxxxx3MmjULcCwL99BDDwEwbtw4ZsyYcdDxRowYwbXXXss111yDYRgkJSXx3HPPOQPelTPPPJPRo0czbtw4LBYLs2bN4vLLL2/X9yNEW7LAhRBCBAlpchFCiCAhgS6EEEFCAl0IIYKEBLoQQgQJCXQhhAgSEuhCCBEkJNCFECJISKALIUSQ+P+dACYnmSw2RQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "binomial_learn(1, 1, 100, 60)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "solution2": "hidden" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEqCAYAAAAF56vUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd5hU5dnH8e8502fbbGeBbfQiggqRpgRUUIoFfRU1dsSSxMSSxJaYYiMmYqyxxBqMUZGIHRsqgmIDZOl9e+91Zs7z/rHMCghsm7az9+e6uC52Z+ece8/O/Pbsc+7zPJpSSiGEEKLH00NdgBBCCP+QQBdCiAghgS6EEBFCAl0IISKEBLoQQkQICXQhhIgQ5kDvoLq6muLiEtxud6B3JYQQPZrFYiE1NYW4uLguPT+ggV5dXU1hYREuVxJWqw1N0wK5OyGE6LGUUrS0NFNYWATQpVAP6JBLcXEJLlcSNptdwlwIIY5A0zRsNjsuVxLFxSVd2kZAA93tdmO12gK5CyGEiChWq63LQ9QBvygqZ+ZCCNFx3clM6XIRQogIIYF+GGeeOYvx449t+zdp0jjOPHMmDz64iMbGxkM+589/voNbbvlNkCuNPOPHH8vKlZ8e8rGCggLGjz+WHTu2A60/p1deealL+7nmmit58MFFALz55jJmzJh2yH0Ew8qVnzJ+/LFB219P0ZX3YWesWPERxcVFXX7+k0/+k0svvbDbdfhLwNsWe7JrrvkFs2efDoDXa7Bnzy7uuON2amtrue22P/zo62+44SZk7srASk1N5a23lhMX5/Lrdk8+eToTJ0726zaFf3T2fdhRhYUF3HzzTSxe/DKpqV3bxoUXXsy5587rcg3+JmfoR+B0OklMTCIxMYmUlBTGjTue8847n48//uCQXx8dHUNMTEyQq+xdTCYTiYlJmM3+PRex2+0kJCT4dZvCPzr7Puwof5x8OZ1Ov59cdIecoXeSyWTCYrHy5JP/JCdnA0oZbNiwgRtu+A3ffPM1jY0N3HPPfQB8+eVqHn/8MXbu3I7L5eKcc87jwgsvRtO0Qz5/1qw5If7uwl9BQQFz585m8eKXGThw0AGP5efnsWDB5UydOo2bbroZgMWLn+eVV16iurqawYOHct11v+aoo47+0XbffHMZDz30AO+991Hb5774YjW3334z+fl5DBo0hNtu+0PbPsvKSnn44X/w5ZeraW5uYcKEiVx//U0kJSV36PHc3L0sXHg333+/noyMDKZPPzUgxytS+d6HcOT3WX19PQsX3s0XX6yipaWZMWOO4YYbfkdGRgZz584G4MILz+WKKxZw5ZVXs2HD9/zjH/ezZcsmUlJSOeOMs7jwwovRdZ0331zGyy+/RHZ2Np999ik/+9kleL0ePv/8M559djEAmzZt5OGHH2DTpo04HE5OO20WV199LWaz5ZDPv/zy+X49LnKG3kGGYZCTs4FXXvkvU6b8FIAvvljFmDHH8tRTz/7oz/XvvvuGG264jsmTT+T55//D1Vf/gqeffoolS15u+5ojPV90Tnl5Gddddy0TJ07mxht/B8DSpa/y3//+h9/85haee+4/TJw4iZ///GoKCvI7tM3//W8Jv/3tLTz77GI0De655y8AeDxufvGLqykuLuL++x/ikUcep6SkhN/+9kaUUh16/IYbrsPhcPDss//m8suv5IUXng3UoYkoB78P23ufPf74oxQU5PHoo0/w3HMvomk6d931RwCefvoFAB599EkuvPBiKioq+PWvf86ECRP5979f5oYbfsuSJS/z738/17b/rVs343RG8dxzi5k5c9YBte3du4drrplPdvYAnn76BW655XbeffctHnvs4Q493x+Cfoa+cn0Bn64tCPZuOXFMXyYf3bdTz3nwwUU8+uhDALS0uNE0OOGEKfz857/ipZcWY7PZueSSy9H1H/9efPnllxg/fkLbb+CMjExKSkp47rmnOeec8wCO+PxAufTSn3HmmXM588y5uN1urrzyMs4++/+YM+cMGhsbueaaKznvvPM57bRZ1NbW8stfXsOFF17EKafMoLKyguuvv45LL72cn/50GmVlpdx00/XMn7+AyZNPpLCwkFtu+Q1XXXUNEyZMIjd3L7///a08++y/A/o91dbWcd111zJy5ChuueX2trav5557mmuv/SWTJp2w73u/gm+//YZXX32Z6667vt3tXnvtLznmmOMAOOec87j33ruA1jP3vLxcHnronyQnt55x33XXvZx11hzWrPkSt7vliI97vV6Ki4t46qnniIuLIzt7ALm5e9tea4HWvHklLZsPfdE5kKzDTsQ2rPMnLkd6H95995+P+D4rLCzA6Yyib99+OJ1Obr31DxQWtuaPyxUPtN6R6XQ6Wbz4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1tbWsmDBAoYNG8ZZZ50VzBKDpr1jsXXrVpYvX861114bivKCqr1j4fF4WLNmDeeffz5Lly4lPT2de++9NxSlBlx7x6KpqYnbbruNZ599lpUrV3LBBRfwu9/9LhSlhlRXc7Pbgd7e5F0HP15WVhaxk3t1ZCKzkpISLrjgAoYOHcpdd90V7BKDpr1j8e6771JaWsrZZ5/NggUL2o5LJGrvWCQnJ5OZmcmoUaMAmD17NuvXrw96ncHQ3rHYunUrNputbXqR8847jzVr1gS9zlDram52O9Dbm7yrX79+2Gw2vvnmGwBef/31iJ3cq71j4fV6ufrqqznttNO47bbbIvYvFWj/WFx33XW89957vP766zzxxBOkpKTw4osvhrDiwGnvWBxzzDFUVFSwefNmAD766CNGjhwZqnIDqr1jkZmZSVFRETt37gTgww8/bPtF15t0OTf9cbV22bJlatasWWr69OnqiSeeUEopNX/+fLV+/XqllFKbNm1SZ599tpoxY4a64YYbVHNzsz92G5aOdCyWL1+uhg4dqk4//fS2f7feemuIKw6c9l4XPrm5uRHd5aJU+8di7dq16uyzz1YzZ85Ul19+uSorKwtluQHV3rFYsWKFmjNnjpo9e7a65JJL1N69e0NZbsBNnTq1rculu7kpk3MJIUSEkDtFhRAiQkigCyFEhJBAF0KICCGBLoQQEUICXQghIoQEuhBCRAgJdCGEiBAS6EKE0MaNG5k3bx6jR4/mnHPOoaCgINQliR5MAl0ERF5eHsOHD+eMM85o+3f66afz6quvBnzfd9xxB9OmTWPRokV+2d7ll19ORUUF33//Pdddd51ftglQVFTEggULuPLKK/nyyy9JT0/nscce89v2Re9jDnUBInLZ7XZef/31to+Li4uZPXs2Rx11FMOGDQvYfv/73/+yYsUK+vTp45ftff755wCMGjWKBx980C/bBLj33nv5v//7P0466SQAZs2axcMPP+y37YveRwJdBE1qaiqZmZns3r2bIUOGcPfdd7Nu3Trq6+tRSnHnnXcybNgwbrnlFvbs2YOu64wcOZI///nPNDY2HvLzun7gH5kXXHABSimuvPJKTj31VN577z2cTif19fUsWbKEv/71rz/a53HHHQfAq6++yjPPPIOu68THx7Nw4cK2AL/kkku44ooreOqpp3jzzTeB1l8cL7zwArquk5SUxO9//3tKSkpYtGgR6enpbNu2DY/Hw5/+9Ke2ffjU1dXx4Ycf8t5777V9zjAMbDZbIH8EItIFasIZ0bvl5uaqMWPGHPC5b7/9Vo0bN04VFBSob7/9Vv3yl79UXq9XKaXU448/rq666iq1dOlSdfnllyullPJ4POq2225Tu3fvPuznD2XIkCGqvLxcffHFF2rYsGEqLy+vbf+H2qdSrRMhHX/88aqgoEAppdQzzzyjfv/73/9oe7NmzVJKKbVq1Sp18sknq/LycqWUUkuWLFGnnXaaWr16tRo+fLjauHGjUkqpf/3rX+rCCy/8UY3Lly9Xw4YNU8cdd1zbv1GjRqlf//rXXTncQiillJIzdBEwTU1NnHHGGUDr1MHx8fHcd999pKWlkZaWRlxcHC+99BK5ubl8+eWXREVFcdxxx7Fo0SIuuugiJk6cyCWXXEJmZia6rh/y8wydpwAAAj1JREFU8+1JS0ujX79+QOs0tYfaJ8Dq1auZPHkyaWlpAFx66aVH3O5nn33GzJkzSUhIAFqXCLvrrrvIz8+nb9++DB8+HIARI0awdOnSHz0/Pz+fadOm8cgjj7R97sorr+SEE05o93sS4nDkoqgIGN8Y+uuvv86bb77JCy+8wJQpUwBYsWIFV111FQAnnXQS559/PgDp6em8//77LFiwgLq6Oi677DI++uijw36+Pfsv5Xa4fQKYTKYfrZyzY8eOw27XMIwffU4phcfjOWANTE3TUIeY0LSlpeWAr8vNzWXDhg1Mmzat3e9JiMORQBch8fnnnzN16lQuuOACjjrqKD744AO8Xi8vvvgit9xyC5MnT+Y3v/kNkydPZuPGjYf9vD/2CXD88cezevVqSkpKAHjppZe47777gNaw93g8B2zrhBNO4O2336aiogKAJUuW4HK5yMjI6FAto0aN4quvvqK4uJjCwkJuuukmrr/+elwuV6e+JyH2J0MuIiTmzZvHjTfeyJw5c/B4PEyaNInly5dz5plnsmbNGmbOnInD4SAtLY2LLroIi8VyyM/7Y5+GYTB06FB+85vfMH/+fKB1Wbi7774bgFNPPZWLLrrogP1NmjSJSy+9lEsuuQTDMEhISODxxx9vC/j2jB8/nqlTp3LqqaficrmYP38+5557bqe+HyEOJgtcCCFEhJAhFyGEiBAS6EIIESEk0IUQIkJIoAshRISQQBdCiAghgS6EEBFCAl0IISKEBLoQQkSI/wfDUUF4eQfDnwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "binomial_learn(5, 10, 100, 60)" ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ " - With more data, the prior has much less influence. This is always the regime you want to be in.\n", " - The likelihood values are larger because there are many more possible outcomes (pass or not) with more observations, so any one outcome becomes relatively less likely. (Recall that the likelihood is normalized over data outcomes, not $\\theta$).\n", " \n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You are hopefully convinced now that your choice of priors is mostly a non issue, since inference with good data is relatively insensitive to your choice. However, you still need to make a choice, so here are some practical guidelines:\n", " - A \"missing\" prior, $P(\\Theta\\mid M) = 1$, is still a prior but not necessarily a \"natural\" choice or a \"safe default\". It is often not even normalizable, although you can finesse this problem with good enough data.\n", " - The prior on a parameter you care about (does it appear in your paper's abstract?) should usually summarize previous measurements, assuming that you trust them but you are doing a better experiment. In this case, your likelihood measures the information provided by your data alone, and the posterior provides the new \"world average\".\n", " - The prior on a **nuisance parameter** (which you need for technical reasons but are not interesting in measuring) should be set conservatively (restrict as little as possible, to minimize the influence on the posterior) and in different ways (compare posteriors with different priors to estimate systematic uncertainty).\n", " - If you really have no information on which to base a prior, learn about [uninformative priors](https://en.wikipedia.org/wiki/Prior_probability#Uninformative_priors), but don't be fooled by their apparent objectivity.\n", " - If being able to calculate your evidence integral analytically is especially important, look into [conjugate priors](https://en.wikipedia.org/wiki/Conjugate_prior), but don't be surprised if this forces you to adopt an oversimplified model. The binomial example above is one of the rare cases where this works out. \n", " - Always state your priors (in your code, papers, talks, etc), even when they don't matter much." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Graphical Models" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We started above with the Bayesian joint probability:\n", "$$\n", "P(D, \\Theta_M, M)\n", "$$\n", "When the individual data features, parameters and hyperparameters are all written out, this often ends up being a very high-dimensional function.\n", "\n", "In the most general case, the joint probability requires a huge volume of data to estimate (recall our earlier discussion of [dimensionality reduction](Dimensionality.ipynb)). However, many problems can be (approximately) described by a joint probability that is simplified by assuming that some random variables are mutually independent. \n", "\n", "Graphical models are a convenient visualization of the assumed direct dependencies between random variables. For example, suppose we have two parameters $(\\alpha, \\beta)$ and no hyperparameters, then the joint probability $P(D, \\alpha, \\beta)$ can be expanded into a product of conditionals different ways using the rules of probability calculus, e.g.\n", "$$\n", "P(D, \\alpha, \\beta) = P(D,\\beta\\mid \\alpha)\\, P(\\alpha) = P(D\\mid \\alpha,\\beta)\\, P(\\beta\\mid \\alpha)\\, P(\\alpha) \\; .\n", "$$\n", "or, equally well as,\n", "$$\n", "P(D, \\alpha, \\beta) = P(D,\\alpha\\mid \\beta)\\, P(\\beta) = P(D\\mid \\alpha,\\beta)\\, P(\\alpha\\mid \\beta)\\, P(\\beta) \\; ,\n", "$$\n", "The corresponding diagrams are:\n", "![Fully connected 1](img/Bayes/fully_connected_1.png)\n", "![Fully connected 2](img/Bayes/fully_connected_2.png)\n", "\n", "The way to read these diagrams is that a node labeled with $X$ represents a (multiplicative) factor $P(X\\mid\\ldots)$ in the joint probability, where $\\ldots$ lists other nodes whose arrows feed into this node (in any order, thanks to probability calculus Rule-1). A shaded node indicates a random variable that is directly observed (i.e., data) while non-shaded nodes represent (unobserved) latent random variables.\n", "\n", "These diagrams both describe a fully general joint probability with two parameters. The rules for building a fully general joint probability with any number of parameters are:\n", " - Pick an (arbitrary) ordering of the parameters.\n", " - The first parameter's node has arrows pointing to all other nodes (including the data).\n", " - The n-th parameter's node has arrows pointing to all later parameter nodes and the data.\n", "\n", "With $n$ parameters, there are then $n!$ possible diagrams and the number of potential dependencies grows rapidly with $n$.\n", "\n", "To mitigate this factorial growth, we seek pairs of random variables that should not depend on each other. For example, in the two parameter case:\n", "![Partial 1](img/Bayes/partial_1.png)\n", "![Partial 2](img/Bayes/partial_2.png)\n", "\n", "Notice how each diagram tells a different story. For example, the first diagram tells us that the data can be predicted knowing only $\\beta$, but that our prior knowledge of $\\beta$ depends on $\\alpha$. In effect, then, simplifying a joint probability involves drawing a diagram that tells a suitable story for your data and models." ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden", "solution2_first": true }, "source": [ "**EXERCISE:** Consider observing someone throwing a ball and measuring how far away it lands to infer the strength of gravity:\n", " - Our data is the measured range $r$.\n", " - Our parameters are the ball's initial speed $v$ and angle $\\phi$, and the strength of gravity $g$.\n", " - Our hyperparameters are the ball's diameter $d$ and the wind speed $w$.\n", " \n", "Draw one example of a fully general diagram of this inference's joint probability $P(r, v, \\phi, g, d, w)$.\n", "\n", "Suppose the thrower always throws as hard as they can, then adjusts the angle according to the wind. Draw a diagram to represent the direct dependencies in this simpler joint probability.\n", "\n", "Write down the posterior we are interested in for this inference problem." ] }, { "cell_type": "markdown", "metadata": { "solution2": "hidden" }, "source": [ "![Projectile fully connected](img/Bayes/projectile_fully_connected.png)\n", "![Projectile story](img/Bayes/projectile_story.png)\n", "\n", "The posterior we are most likely interested in for this inference is\n", "$$\n", "P(g\\mid r) \\; ,\n", "$$\n", "but a more explicit posterior would be:\n", "$$\n", "P(g\\mid r, v, \\phi, d, w) \\; .\n", "$$\n", "The difference between is these is that we marginalized over the \"nuisance\" parameters $v, \\phi, d, w$ in the first case.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The arrows in these diagrams define the direction of conditional dependencies. They often mirror a causal influence in the underlying physical system, but this is not necessary. Probabilistic diagrams with directed edges are known as **Bayesian networks** or **belief networks**.\n", "\n", "It is also possible to draw diagrams where nodes are connected symmetrically, without a specified direction. These are known as **Markov random fields** or **Markov networks** and appropriate when dependencies flow in both directions or in an unknown direction. You can read more about these [here](https://en.wikipedia.org/wiki/Markov_random_field)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.5" } }, "nbformat": 4, "nbformat_minor": 2 }