Files
FYS-STK4155/doc/LectureNotes/_build/jupyter_execute/week37.ipynb
T
Morten Hjorth-Jensen 20fa1096b6 udpate
2023-10-02 07:01:55 +02:00

3998 lines
522 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"id": "9e3d6c33",
"metadata": {
"editable": true
},
"source": [
"<!-- HTML file automatically generated from DocOnce source (https://github.com/doconce/doconce/)\n",
"doconce format html week37.do.txt --no_mako -->\n",
"<!-- dom:TITLE: Week 37: Statistical interpretations and Resampling Methods -->"
]
},
{
"cell_type": "markdown",
"id": "6c4bf45e",
"metadata": {
"editable": true
},
"source": [
"# Week 37: Statistical interpretations and Resampling Methods\n",
"**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and Facility for Rare Isotope Beams, Michigan State University\n",
"\n",
"Date: **Sep 18, 2023**\n",
"\n",
"Copyright 1999-2023, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n",
"\n",
"<!-- todo add link to videos and add link to Van Wieringens notes -->"
]
},
{
"cell_type": "markdown",
"id": "af4e71fa",
"metadata": {
"editable": true
},
"source": [
"## Plans for week 37\n",
"\n",
"**Material for the active learning sessions on Tuesday and Wednesday.**\n",
"\n",
" * Lecture from last week on calculations of expectation values\n",
"\n",
" * Exercise for week 37\n",
"\n",
" * Work on project 1\n",
"\n",
" * See also additional note on scaling (jupyter-notebook) sent separately. This will be discussed during the first hour of each session. This note is added at the end of these slides.\n",
"\n",
" * For more discussions of Ridge regression and calculation of averages, [Wessel van Wieringen's](https://arxiv.org/abs/1509.09169) article is highly recommended.\n",
"\n",
" \n",
"**Material for the lecture on Thursday September 7.**\n",
"\n",
" * [Video of Lecture](https://youtu.be/YOBBr_toYxc)\n",
"\n",
" * [Whiteboard notes](https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2023/NotesSep14.pdf)\n",
"\n",
" * Resampling techniques, Bootstrap and cross validation and bias-variance tradeoff\n",
"\n",
" * Statistical interpretation of Ridge and Lasso regression\n",
"\n",
" * Readings and Videos:\n",
"\n",
" * Hastie et al Chapter 7, here we recommend 7.1-7.5 and 7.10 (cross-validation) and 7.11 (bootstrap). \n",
"\n",
" * [Video on cross validation](https://www.youtube.com/watch?v=fSytzGwwBVw)\n",
"\n",
" * [Video on Bootstrapping](https://www.youtube.com/watch?v=Xz0x-8-cgaQ)\n",
"\n",
" * [Video on bias-variance tradeoff](https://www.youtube.com/watch?v=EuBBz3bI-aA)"
]
},
{
"cell_type": "markdown",
"id": "a30b83bd",
"metadata": {
"editable": true
},
"source": [
"## Material from last week and relevant for the weekly exercises"
]
},
{
"cell_type": "markdown",
"id": "603e5939",
"metadata": {
"editable": true
},
"source": [
"## Linking the regression analysis with a statistical interpretation\n",
"\n",
"We will now couple the discussions of ordinary least squares, Ridge\n",
"and Lasso regression with a statistical interpretation, that is we\n",
"move from a linear algebra analysis to a statistical analysis. In\n",
"particular, we will focus on what the regularization terms can result\n",
"in. We will amongst other things show that the regularization\n",
"parameter can reduce considerably the variance of the parameters\n",
"$\\beta$.\n",
"\n",
"The\n",
"advantage of doing linear regression is that we actually end up with\n",
"analytical expressions for several statistical quantities. \n",
"Standard least squares and Ridge regression allow us to\n",
"derive quantities like the variance and other expectation values in a\n",
"rather straightforward way.\n",
"\n",
"It is assumed that $\\varepsilon_i\n",
"\\sim \\mathcal{N}(0, \\sigma^2)$ and the $\\varepsilon_{i}$ are\n",
"independent, i.e.:"
]
},
{
"cell_type": "markdown",
"id": "c6d1b655",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\begin{align*} \n",
"\\mbox{Cov}(\\varepsilon_{i_1},\n",
"\\varepsilon_{i_2}) & = \\left\\{ \\begin{array}{lcc} \\sigma^2 & \\mbox{if}\n",
"& i_1 = i_2, \\\\ 0 & \\mbox{if} & i_1 \\not= i_2. \\end{array} \\right.\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "0ac423bb",
"metadata": {
"editable": true
},
"source": [
"The randomness of $\\varepsilon_i$ implies that\n",
"$\\mathbf{y}_i$ is also a random variable. In particular,\n",
"$\\mathbf{y}_i$ is normally distributed, because $\\varepsilon_i \\sim\n",
"\\mathcal{N}(0, \\sigma^2)$ and $\\mathbf{X}_{i,\\ast} \\, \\boldsymbol{\\beta}$ is a\n",
"non-random scalar. To specify the parameters of the distribution of\n",
"$\\mathbf{y}_i$ we need to calculate its first two moments. \n",
"\n",
"Recall that $\\boldsymbol{X}$ is a matrix of dimensionality $n\\times p$. The\n",
"notation above $\\mathbf{X}_{i,\\ast}$ means that we are looking at the\n",
"row number $i$ and perform a sum over all values $p$."
]
},
{
"cell_type": "markdown",
"id": "a321bc7e",
"metadata": {
"editable": true
},
"source": [
"## Assumptions made\n",
"\n",
"The assumption we have made here can be summarized as (and this is going to be useful when we discuss the bias-variance trade off)\n",
"that there exists a function $f(\\boldsymbol{x})$ and a normal distributed error $\\boldsymbol{\\varepsilon}\\sim \\mathcal{N}(0, \\sigma^2)$\n",
"which describe our data"
]
},
{
"cell_type": "markdown",
"id": "a058a44f",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\boldsymbol{y} = f(\\boldsymbol{x})+\\boldsymbol{\\varepsilon}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "7ca5aeb9",
"metadata": {
"editable": true
},
"source": [
"We approximate this function with our model from the solution of the linear regression equations, that is our\n",
"function $f$ is approximated by $\\boldsymbol{\\tilde{y}}$ where we want to minimize $(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2$, our MSE, with"
]
},
{
"cell_type": "markdown",
"id": "7a064201",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\boldsymbol{\\tilde{y}} = \\boldsymbol{X}\\boldsymbol{\\beta}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "fc70ead9",
"metadata": {
"editable": true
},
"source": [
"## Expectation value and variance\n",
"\n",
"We can calculate the expectation value of $\\boldsymbol{y}$ for a given element $i$"
]
},
{
"cell_type": "markdown",
"id": "9beae550",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\begin{align*} \n",
"\\mathbb{E}(y_i) & =\n",
"\\mathbb{E}(\\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta}) + \\mathbb{E}(\\varepsilon_i)\n",
"\\, \\, \\, = \\, \\, \\, \\mathbf{X}_{i, \\ast} \\, \\beta, \n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "c0ab7cc5",
"metadata": {
"editable": true
},
"source": [
"while\n",
"its variance is"
]
},
{
"cell_type": "markdown",
"id": "a6900e18",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\begin{align*} \\mbox{Var}(y_i) & = \\mathbb{E} \\{ [y_i\n",
"- \\mathbb{E}(y_i)]^2 \\} \\, \\, \\, = \\, \\, \\, \\mathbb{E} ( y_i^2 ) -\n",
"[\\mathbb{E}(y_i)]^2 \\\\ & = \\mathbb{E} [ ( \\mathbf{X}_{i, \\ast} \\,\n",
"\\beta + \\varepsilon_i )^2] - ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 \\\\ &\n",
"= \\mathbb{E} [ ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 + 2 \\varepsilon_i\n",
"\\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta} + \\varepsilon_i^2 ] - ( \\mathbf{X}_{i,\n",
"\\ast} \\, \\beta)^2 \\\\ & = ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 + 2\n",
"\\mathbb{E}(\\varepsilon_i) \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta} +\n",
"\\mathbb{E}(\\varepsilon_i^2 ) - ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 \n",
"\\\\ & = \\mathbb{E}(\\varepsilon_i^2 ) \\, \\, \\, = \\, \\, \\,\n",
"\\mbox{Var}(\\varepsilon_i) \\, \\, \\, = \\, \\, \\, \\sigma^2. \n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "fe9b0d2f",
"metadata": {
"editable": true
},
"source": [
"Hence, $y_i \\sim \\mathcal{N}( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta}, \\sigma^2)$, that is $\\boldsymbol{y}$ follows a normal distribution with \n",
"mean value $\\boldsymbol{X}\\boldsymbol{\\beta}$ and variance $\\sigma^2$ (not be confused with the singular values of the SVD)."
]
},
{
"cell_type": "markdown",
"id": "be36f9aa",
"metadata": {
"editable": true
},
"source": [
"## Expectation value and variance for $\\boldsymbol{\\beta}$\n",
"\n",
"With the OLS expressions for the optimal parameters $\\boldsymbol{\\hat{\\beta}}$ we can evaluate the expectation value"
]
},
{
"cell_type": "markdown",
"id": "3717afd4",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mathbb{E}(\\boldsymbol{\\hat{\\beta}}) = \\mathbb{E}[ (\\mathbf{X}^{\\top} \\mathbf{X})^{-1}\\mathbf{X}^{T} \\mathbf{Y}]=(\\mathbf{X}^{T} \\mathbf{X})^{-1}\\mathbf{X}^{T} \\mathbb{E}[ \\mathbf{Y}]=(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\mathbf{X}^{T}\\mathbf{X}\\boldsymbol{\\beta}=\\boldsymbol{\\beta}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "f75bbc6c",
"metadata": {
"editable": true
},
"source": [
"This means that the estimator of the regression parameters is unbiased.\n",
"\n",
"We can also calculate the variance\n",
"\n",
"The variance of the optimal value $\\boldsymbol{\\hat{\\beta}}$ is"
]
},
{
"cell_type": "markdown",
"id": "501aab1c",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\begin{eqnarray*}\n",
"\\mbox{Var}(\\boldsymbol{\\hat{\\beta}}) & = & \\mathbb{E} \\{ [\\boldsymbol{\\beta} - \\mathbb{E}(\\boldsymbol{\\beta})] [\\boldsymbol{\\beta} - \\mathbb{E}(\\boldsymbol{\\beta})]^{T} \\}\n",
"\\\\\n",
"& = & \\mathbb{E} \\{ [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y} - \\boldsymbol{\\beta}] \\, [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y} - \\boldsymbol{\\beta}]^{T} \\}\n",
"\\\\\n",
"% & = & \\mathbb{E} \\{ [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y}] \\, [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y}]^{T} \\} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
"% \\\\\n",
"% & = & \\mathbb{E} \\{ (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{y} \\, \\mathbf{y}^{T} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
"% \\\\\n",
"& = & (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\, \\mathbb{E} \\{ \\mathbf{y} \\, \\mathbf{y}^{T} \\} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
"\\\\\n",
"& = & (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\, \\{ \\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} \\, \\mathbf{X}^{T} + \\sigma^2 \\} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
"% \\\\\n",
"% & = & (\\mathbf{X}^T \\mathbf{X})^{-1} \\, \\mathbf{X}^T \\, \\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^T \\, \\mathbf{X}^T \\, \\mathbf{X} \\, (\\mathbf{X}^T % \\mathbf{X})^{-1}\n",
"% \\\\\n",
"% & & + \\, \\, \\sigma^2 \\, (\\mathbf{X}^T \\mathbf{X})^{-1} \\, \\mathbf{X}^T \\, \\mathbf{X} \\, (\\mathbf{X}^T \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\boldsymbol{\\beta}^T\n",
"\\\\\n",
"& = & \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} + \\sigma^2 \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n",
"\\, \\, \\, = \\, \\, \\, \\sigma^2 \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1},\n",
"\\end{eqnarray*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "882b7267",
"metadata": {
"editable": true
},
"source": [
"where we have used that $\\mathbb{E} (\\mathbf{y} \\mathbf{y}^{T}) =\n",
"\\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} \\, \\mathbf{X}^{T} +\n",
"\\sigma^2 \\, \\mathbf{I}_{nn}$. From $\\mbox{Var}(\\boldsymbol{\\beta}) = \\sigma^2\n",
"\\, (\\mathbf{X}^{T} \\mathbf{X})^{-1}$, one obtains an estimate of the\n",
"variance of the estimate of the $j$-th regression coefficient:\n",
"$\\boldsymbol{\\sigma}^2 (\\boldsymbol{\\beta}_j ) = \\boldsymbol{\\sigma}^2 [(\\mathbf{X}^{T} \\mathbf{X})^{-1}]_{jj} $. This may be used to\n",
"construct a confidence interval for the estimates.\n",
"\n",
"In a similar way, we can obtain analytical expressions for say the\n",
"expectation values of the parameters $\\boldsymbol{\\beta}$ and their variance\n",
"when we employ Ridge regression, allowing us again to define a confidence interval. \n",
"\n",
"It is rather straightforward to show that"
]
},
{
"cell_type": "markdown",
"id": "b7993235",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mathbb{E} \\big[ \\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}} \\big]=(\\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I}_{pp})^{-1} (\\mathbf{X}^{\\top} \\mathbf{X})\\boldsymbol{\\beta}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "27dfe1f9",
"metadata": {
"editable": true
},
"source": [
"We see clearly that \n",
"$\\mathbb{E} \\big[ \\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}} \\big] \\not= \\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}$ for any $\\lambda > 0$.\n",
"\n",
"We can also compute the variance as"
]
},
{
"cell_type": "markdown",
"id": "d1ccc9c9",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mbox{Var}[\\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}}]=\\sigma^2[ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1} \\mathbf{X}^{T} \\mathbf{X} \\{ [ \\mathbf{X}^{\\top} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}\\}^{T},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "4b51caf8",
"metadata": {
"editable": true
},
"source": [
"and it is easy to see that if the parameter $\\lambda$ goes to infinity then the variance of Ridge parameters $\\boldsymbol{\\beta}$ goes to zero. \n",
"\n",
"With this, we can compute the difference"
]
},
{
"cell_type": "markdown",
"id": "6b6c2347",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mbox{Var}[\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}]-\\mbox{Var}(\\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}})=\\sigma^2 [ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}[ 2\\lambda\\mathbf{I} + \\lambda^2 (\\mathbf{X}^{T} \\mathbf{X})^{-1} ] \\{ [ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}\\}^{T}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "7b622b81",
"metadata": {
"editable": true
},
"source": [
"The difference is non-negative definite since each component of the\n",
"matrix product is non-negative definite. \n",
"This means the variance we obtain with the standard OLS will always for $\\lambda > 0$ be larger than the variance of $\\boldsymbol{\\beta}$ obtained with the Ridge estimator. This has interesting consequences when we discuss the so-called bias-variance trade-off below. \n",
"\n",
"For more discussions of Ridge regression and calculation of averages, [Wessel van Wieringen's](https://arxiv.org/abs/1509.09169) article is highly recommended."
]
},
{
"cell_type": "markdown",
"id": "bc281f57",
"metadata": {
"editable": true
},
"source": [
"## Material for lecture Thursday September 14"
]
},
{
"cell_type": "markdown",
"id": "b1262baf",
"metadata": {
"editable": true
},
"source": [
"## Deriving OLS from a probability distribution\n",
"\n",
"Our basic assumption when we derived the OLS equations was to assume\n",
"that our output is determined by a given continuous function\n",
"$f(\\boldsymbol{x})$ and a random noise $\\boldsymbol{\\epsilon}$ given by the normal\n",
"distribution with zero mean value and an undetermined variance\n",
"$\\sigma^2$.\n",
"\n",
"We found above that the outputs $\\boldsymbol{y}$ have a mean value given by\n",
"$\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}}$ and variance $\\sigma^2$. Since the entries to\n",
"the design matrix are not stochastic variables, we can assume that the\n",
"probability distribution of our targets is also a normal distribution\n",
"but now with mean value $\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}}$. This means that a\n",
"single output $y_i$ is given by the Gaussian distribution"
]
},
{
"cell_type": "markdown",
"id": "a14cfe86",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"y_i\\sim \\mathcal{N}(\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta}, \\sigma^2)=\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "56fe0849",
"metadata": {
"editable": true
},
"source": [
"## Independent and Identically Distrubuted (iid)\n",
"\n",
"We assume now that the various $y_i$ values are stochastically distributed according to the above Gaussian distribution. \n",
"We define this distribution as"
]
},
{
"cell_type": "markdown",
"id": "afed97f2",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(y_i, \\boldsymbol{X}\\vert\\boldsymbol{\\beta})=\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "e4b5884d",
"metadata": {
"editable": true
},
"source": [
"which reads as finding the likelihood of an event $y_i$ with the input variables $\\boldsymbol{X}$ given the parameters (to be determined) $\\boldsymbol{\\beta}$.\n",
"\n",
"Since these events are assumed to be independent and identicall distributed we can build the probability distribution function (PDF) for all possible event $\\boldsymbol{y}$ as the product of the single events, that is we have"
]
},
{
"cell_type": "markdown",
"id": "0c949c06",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(\\boldsymbol{y},\\boldsymbol{X}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}=\\prod_{i=0}^{n-1}p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta}).\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "113e3658",
"metadata": {
"editable": true
},
"source": [
"We will write this in a more compact form reserving $\\boldsymbol{D}$ for the domain of events, including the ouputs (targets) and the inputs. That is\n",
"in case we have a simple one-dimensional input and output case"
]
},
{
"cell_type": "markdown",
"id": "6851f92d",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})].\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "9266f3e0",
"metadata": {
"editable": true
},
"source": [
"In the more general case the various inputs should be replaced by the possible features represented by the input data set $\\boldsymbol{X}$. \n",
"We can now rewrite the above probability as"
]
},
{
"cell_type": "markdown",
"id": "287d1ae7",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "5b27ae15",
"metadata": {
"editable": true
},
"source": [
"It is a conditional probability (see below) and reads as the likelihood of a domain of events $\\boldsymbol{D}$ given a set of parameters $\\boldsymbol{\\beta}$."
]
},
{
"cell_type": "markdown",
"id": "05685291",
"metadata": {
"editable": true
},
"source": [
"## Maximum Likelihood Estimation (MLE)\n",
"\n",
"In statistics, maximum likelihood estimation (MLE) is a method of\n",
"estimating the parameters of an assumed probability distribution,\n",
"given some observed data. This is achieved by maximizing a likelihood\n",
"function so that, under the assumed statistical model, the observed\n",
"data is the most probable. \n",
"\n",
"We will assume here that our events are given by the above Gaussian\n",
"distribution and we will determine the optimal parameters $\\beta$ by\n",
"maximizing the above PDF. However, computing the derivatives of a\n",
"product function is cumbersome and can easily lead to overflow and/or\n",
"underflowproblems, with potentials for loss of numerical precision.\n",
"\n",
"In practice, it is more convenient to maximize the logarithm of the\n",
"PDF because it is a monotonically increasing function of the argument.\n",
"Alternatively, and this will be our option, we will minimize the\n",
"negative of the logarithm since this is a monotonically decreasing\n",
"function.\n",
"\n",
"Note also that maximization/minimization of the logarithm of the PDF\n",
"is equivalent to the maximization/minimization of the function itself."
]
},
{
"cell_type": "markdown",
"id": "9219f05a",
"metadata": {
"editable": true
},
"source": [
"## A new Cost Function\n",
"\n",
"We could now define a new cost function to minimize, namely the negative logarithm of the above PDF"
]
},
{
"cell_type": "markdown",
"id": "fba0d995",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"C(\\boldsymbol{\\beta}=-\\log{\\prod_{i=0}^{n-1}p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta})}=-\\sum_{i=0}^{n-1}\\log{p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta})},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "c19bfc19",
"metadata": {
"editable": true
},
"source": [
"which becomes"
]
},
{
"cell_type": "markdown",
"id": "6de82f09",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"C(\\boldsymbol{\\beta}=\\frac{n}{2}\\log{2\\pi\\sigma^2}+\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "adfc6771",
"metadata": {
"editable": true
},
"source": [
"Taking the derivative of the *new* cost function with respect to the parameters $\\beta$ we recognize our familiar OLS equation, namely"
]
},
{
"cell_type": "markdown",
"id": "a1ecd0dd",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\boldsymbol{X}^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right) =0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "91a37c0d",
"metadata": {
"editable": true
},
"source": [
"which leads to the well-known OLS equation for the optimal paramters $\\beta$"
]
},
{
"cell_type": "markdown",
"id": "11677560",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}=\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}!\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "8099810c",
"metadata": {
"editable": true
},
"source": [
"Before we make a similar analysis for Ridge and Lasso regression, we need a short reminder on statistics."
]
},
{
"cell_type": "markdown",
"id": "f9232f8c",
"metadata": {
"editable": true
},
"source": [
"## More basic Statistics and Bayes' theorem\n",
"\n",
"A central theorem in statistics is Bayes' theorem. This theorem plays a similar role as the good old Pythagoras' theorem in geometry.\n",
"Bayes' theorem is extremely simple to derive. But to do so we need some basic axioms from statistics.\n",
"\n",
"Assume we have two domains of events $X=[x_0,x_1,\\dots,x_{n-1}]$ and $Y=[y_0,y_1,\\dots,y_{n-1}]$.\n",
"\n",
"We define also the likelihood for $X$ and $Y$ as $p(X)$ and $p(Y)$ respectively.\n",
"The likelihood of a specific event $x_i$ (or $y_i$) is then written as $p(X=x_i)$ or just $p(x_i)=p_i$. \n",
"\n",
"**Union of events is given by.**"
]
},
{
"cell_type": "markdown",
"id": "9088ea5d",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(X \\cup Y)= p(X)+p(Y)-p(X \\cap Y).\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "5a43a59f",
"metadata": {
"editable": true
},
"source": [
"**The product rule (aka joint probability) is given by.**"
]
},
{
"cell_type": "markdown",
"id": "4cf876a2",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(X \\cup Y)= p(X,Y)= p(X\\vert Y)p(Y)=p(Y\\vert X)p(X),\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "19f3bd61",
"metadata": {
"editable": true
},
"source": [
"where we read $p(X\\vert Y)$ as the likelihood of obtaining $X$ given $Y$.\n",
"\n",
"If we have independent events then $p(X,Y)=p(X)p(Y)$."
]
},
{
"cell_type": "markdown",
"id": "f4df8724",
"metadata": {
"editable": true
},
"source": [
"## Marginal Probability\n",
"\n",
"The marginal probability is defined in terms of only one of the set of variables $X,Y$. For a discrete probability we have"
]
},
{
"cell_type": "markdown",
"id": "a137b317",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(X)=\\sum_{i=0}^{n-1}p(X,Y=y_i)=\\sum_{i=0}^{n-1}p(X\\vert Y=y_i)p(Y=y_i)=\\sum_{i=0}^{n-1}p(X\\vert y_i)p(y_i).\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "83858731",
"metadata": {
"editable": true
},
"source": [
"## Conditional Probability\n",
"\n",
"The conditional probability, if $p(Y) > 0$, is"
]
},
{
"cell_type": "markdown",
"id": "ee5dab96",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(X\\vert Y)= \\frac{p(X,Y)}{p(Y)}=\\frac{p(X,Y)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "cb03bfdd",
"metadata": {
"editable": true
},
"source": [
"## Bayes' Theorem\n",
"\n",
"If we combine the conditional probability with the marginal probability and the standard product rule, we have"
]
},
{
"cell_type": "markdown",
"id": "72b69902",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(X\\vert Y)= \\frac{p(X,Y)}{p(Y)},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "8a876747",
"metadata": {
"editable": true
},
"source": [
"which we can rewrite as"
]
},
{
"cell_type": "markdown",
"id": "2424f759",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(X\\vert Y)= \\frac{p(X,Y)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)}=\\frac{p(Y\\vert X)p(X)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "f33b3f29",
"metadata": {
"editable": true
},
"source": [
"which is Bayes' theorem. It allows us to evaluate the uncertainty in in $X$ after we have observed $Y$. We can easily interchange $X$ with $Y$."
]
},
{
"cell_type": "markdown",
"id": "b73e0693",
"metadata": {
"editable": true
},
"source": [
"## Interpretations of Bayes' Theorem\n",
"\n",
"The quantity $p(Y\\vert X)$ on the right-hand side of the theorem is\n",
"evaluated for the observed data $Y$ and can be viewed as a function of\n",
"the parameter space represented by $X$. This function is not\n",
"necesseraly normalized and is normally called the likelihood function.\n",
"\n",
"The function $p(X)$ on the right hand side is called the prior while the function on the left hand side is the called the posterior probability. The denominator on the right hand side serves as a normalization factor for the posterior distribution.\n",
"\n",
"Let us try to illustrate Bayes' theorem through an example."
]
},
{
"cell_type": "markdown",
"id": "a2bc10db",
"metadata": {
"editable": true
},
"source": [
"## Example of Usage of Bayes' theorem\n",
"\n",
"Let us suppose that you are undergoing a series of mammography scans in\n",
"order to rule out possible breast cancer cases. We define the\n",
"sensitivity for a positive event by the variable $X$. It takes binary\n",
"values with $X=1$ representing a positive event and $X=0$ being a\n",
"negative event. We reserve $Y$ as a classification parameter for\n",
"either a negative or a positive breast cancer confirmation. (Short note on wordings: positive here means having breast cancer, although none of us would consider this being a positive thing).\n",
"\n",
"We let $Y=1$ represent the the case of having breast cancer and $Y=0$ as not.\n",
"\n",
"Let us assume that if you have breast cancer, the test will be positive with a probability of $0.8$, that is we have"
]
},
{
"cell_type": "markdown",
"id": "f41d3f9b",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(X=1\\vert Y=1) =0.8.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "fe20e517",
"metadata": {
"editable": true
},
"source": [
"This obviously sounds scary since many would conclude that if the test is positive, there is a likelihood of $80\\%$ for having cancer.\n",
"It is however not correct, as the following Bayesian analysis shows."
]
},
{
"cell_type": "markdown",
"id": "d003d5d8",
"metadata": {
"editable": true
},
"source": [
"## Doing it correctly\n",
"\n",
"If we look at various national surveys on breast cancer, the general likelihood of developing breast cancer is a very small number.\n",
"Let us assume that the prior probability in the population as a whole is"
]
},
{
"cell_type": "markdown",
"id": "07a5ca9c",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(Y=1) =0.004.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "91485638",
"metadata": {
"editable": true
},
"source": [
"We need also to account for the fact that the test may produce a false positive result (false alarm). Let us here assume that we have"
]
},
{
"cell_type": "markdown",
"id": "be6de757",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(X=1\\vert Y=0) =0.1.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "51263519",
"metadata": {
"editable": true
},
"source": [
"Using Bayes' theorem we can then find the posterior probability that the person has breast cancer in case of a positive test, that is we can compute"
]
},
{
"cell_type": "markdown",
"id": "5b2dc226",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(Y=1\\vert X=1)=\\frac{p(X=1\\vert Y=1)p(Y=1)}{p(X=1\\vert Y=1)p(Y=1)+p(X=1\\vert Y=0)p(Y=0)}=\\frac{0.8\\times 0.004}{0.8\\times 0.004+0.1\\times 0.996}=0.031.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "e241fbc1",
"metadata": {
"editable": true
},
"source": [
"That is, in case of a positive test, there is only a $3\\%$ chance of having breast cancer!"
]
},
{
"cell_type": "markdown",
"id": "42db70df",
"metadata": {
"editable": true
},
"source": [
"## Bayes' Theorem and Ridge and Lasso Regression\n",
"\n",
"Using Bayes' theorem we can gain a better intuition about Ridge and Lasso regression. \n",
"\n",
"For ordinary least squares we postulated that the maximum likelihood for the doamin of events $\\boldsymbol{D}$ (one-dimensional case)"
]
},
{
"cell_type": "markdown",
"id": "ed75a460",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})],\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "c826a95f",
"metadata": {
"editable": true
},
"source": [
"is given by"
]
},
{
"cell_type": "markdown",
"id": "70a426f9",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "a90b1b91",
"metadata": {
"editable": true
},
"source": [
"In Bayes' theorem this function plays the role of the so-called likelihood. We could now ask the question what is the posterior probability of a parameter set $\\boldsymbol{\\beta}$ given a domain of events $\\boldsymbol{D}$? That is, how can we define the posterior probability"
]
},
{
"cell_type": "markdown",
"id": "3f5a6f0b",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D}).\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "2530803f",
"metadata": {
"editable": true
},
"source": [
"Bayes' theorem comes to our rescue here since (omitting the normalization constant)"
]
},
{
"cell_type": "markdown",
"id": "34940159",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})\\propto p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})p(\\boldsymbol{\\beta}).\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "1f497f2c",
"metadata": {
"editable": true
},
"source": [
"We have a model for $p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})$ but need one for the **prior** $p(\\boldsymbol{\\beta}$!"
]
},
{
"cell_type": "markdown",
"id": "c780a9b9",
"metadata": {
"editable": true
},
"source": [
"## Ridge and Bayes\n",
"\n",
"With the posterior probability defined by a likelihood which we have\n",
"already modeled and an unknown prior, we are now ready to make\n",
"additional models for the prior.\n",
"\n",
"We can, based on our discussions of the variance of $\\boldsymbol{\\beta}$ and the mean value, assume that the prior for the values $\\boldsymbol{\\beta}$ is given by a Gaussian with mean value zero and variance $\\tau^2$, that is"
]
},
{
"cell_type": "markdown",
"id": "68ddd4cc",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "b85ade85",
"metadata": {
"editable": true
},
"source": [
"Our posterior probability becomes then (omitting the normalization factor which is just a constant)"
]
},
{
"cell_type": "markdown",
"id": "6386a328",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(\\boldsymbol{\\beta\\vert\\boldsymbol{D})}=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "316194e8",
"metadata": {
"editable": true
},
"source": [
"We can now optimize this quantity with respect to $\\boldsymbol{\\beta}$. As we\n",
"did for OLS, this is most conveniently done by taking the negative\n",
"logarithm of the posterior probability. Doing so and leaving out the\n",
"constants terms that do not depend on $\\beta$, we have"
]
},
{
"cell_type": "markdown",
"id": "f7e39504",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\frac{1}{2\\tau^2}\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_2^2,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "6c3b01de",
"metadata": {
"editable": true
},
"source": [
"and replacing $1/2\\tau^2$ with $\\lambda$ we have"
]
},
{
"cell_type": "markdown",
"id": "5c4a05c9",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_2^2,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "6f26b763",
"metadata": {
"editable": true
},
"source": [
"which is our Ridge cost function! Nice, isn't it?"
]
},
{
"cell_type": "markdown",
"id": "08efa297",
"metadata": {
"editable": true
},
"source": [
"## Lasso and Bayes\n",
"\n",
"To derive the Lasso cost function, we simply replace the Gaussian prior with an exponential distribution ([Laplace in this case](https://en.wikipedia.org/wiki/Laplace_distribution)) with zero mean value, that is"
]
},
{
"cell_type": "markdown",
"id": "97765f2c",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "b2e48903",
"metadata": {
"editable": true
},
"source": [
"Our posterior probability becomes then (omitting the normalization factor which is just a constant)"
]
},
{
"cell_type": "markdown",
"id": "fae174cf",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "dc3ff171",
"metadata": {
"editable": true
},
"source": [
"Taking the negative\n",
"logarithm of the posterior probability and leaving out the\n",
"constants terms that do not depend on $\\beta$, we have"
]
},
{
"cell_type": "markdown",
"id": "af3046b7",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"C(\\boldsymbol{\\beta}=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\frac{1}{\\tau}\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "fbf017df",
"metadata": {
"editable": true
},
"source": [
"and replacing $1/\\tau$ with $\\lambda$ we have"
]
},
{
"cell_type": "markdown",
"id": "23214eb3",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"C(\\boldsymbol{\\beta}=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "f3c6b69a",
"metadata": {
"editable": true
},
"source": [
"which is our Lasso cost function!"
]
},
{
"cell_type": "markdown",
"id": "386493f5",
"metadata": {
"editable": true
},
"source": [
"## Why resampling methods\n",
"\n",
"Before we proceed, we need to rethink what we have been doing. In our\n",
"eager to fit the data, we have omitted several important elements in\n",
"our regression analysis. In what follows we will\n",
"1. look at statistical properties, including a discussion of mean values, variance and the so-called bias-variance tradeoff\n",
"\n",
"2. introduce resampling techniques like cross-validation, bootstrapping and jackknife and more\n",
"\n",
"and discuss how to select a given model (one of the difficult parts in machine learning)."
]
},
{
"cell_type": "markdown",
"id": "727bee7f",
"metadata": {
"editable": true
},
"source": [
"## Resampling methods\n",
"Resampling methods are an indispensable tool in modern\n",
"statistics. They involve repeatedly drawing samples from a training\n",
"set and refitting a model of interest on each sample in order to\n",
"obtain additional information about the fitted model. For example, in\n",
"order to estimate the variability of a linear regression fit, we can\n",
"repeatedly draw different samples from the training data, fit a linear\n",
"regression to each new sample, and then examine the extent to which\n",
"the resulting fits differ. Such an approach may allow us to obtain\n",
"information that would not be available from fitting the model only\n",
"once using the original training sample.\n",
"\n",
"Two resampling methods are often used in Machine Learning analyses,\n",
"1. The **bootstrap method**\n",
"\n",
"2. and **Cross-Validation**\n",
"\n",
"In addition there are several other methods such as the Jackknife and the Blocking methods. We will discuss in particular\n",
"cross-validation and the bootstrap method."
]
},
{
"cell_type": "markdown",
"id": "7e34ba8e",
"metadata": {
"editable": true
},
"source": [
"## Resampling approaches can be computationally expensive\n",
"\n",
"Resampling approaches can be computationally expensive, because they\n",
"involve fitting the same statistical method multiple times using\n",
"different subsets of the training data. However, due to recent\n",
"advances in computing power, the computational requirements of\n",
"resampling methods generally are not prohibitive. In this chapter, we\n",
"discuss two of the most commonly used resampling methods,\n",
"cross-validation and the bootstrap. Both methods are important tools\n",
"in the practical application of many statistical learning\n",
"procedures. For example, cross-validation can be used to estimate the\n",
"test error associated with a given statistical learning method in\n",
"order to evaluate its performance, or to select the appropriate level\n",
"of flexibility. The process of evaluating a models performance is\n",
"known as model assessment, whereas the process of selecting the proper\n",
"level of flexibility for a model is known as model selection. The\n",
"bootstrap is widely used."
]
},
{
"cell_type": "markdown",
"id": "fc35fdde",
"metadata": {
"editable": true
},
"source": [
"## Why resampling methods ?\n",
"**Statistical analysis.**\n",
"\n",
"* Our simulations can be treated as *computer experiments*. This is particularly the case for Monte Carlo methods which are widely used in statistical analyses.\n",
"\n",
"* The results can be analysed with the same statistical tools as we would use when analysing experimental data.\n",
"\n",
"* As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors."
]
},
{
"cell_type": "markdown",
"id": "dc071fc4",
"metadata": {
"editable": true
},
"source": [
"## Statistical analysis\n",
"\n",
"* As in other experiments, many numerical experiments have two classes of errors:\n",
"\n",
" * Statistical errors\n",
"\n",
" * Systematical errors\n",
"\n",
"* Statistical errors can be estimated using standard tools from statistics\n",
"\n",
"* Systematical errors are method specific and must be treated differently from case to case."
]
},
{
"cell_type": "markdown",
"id": "ef1325b9",
"metadata": {
"editable": true
},
"source": [
"## Resampling methods\n",
"\n",
"With all these analytical equations for both the OLS and Ridge\n",
"regression, we will now outline how to assess a given model. This will\n",
"lead to a discussion of the so-called bias-variance tradeoff (see\n",
"below) and so-called resampling methods.\n",
"\n",
"One of the quantities we have discussed as a way to measure errors is\n",
"the mean-squared error (MSE), mainly used for fitting of continuous\n",
"functions. Another choice is the absolute error.\n",
"\n",
"In the discussions below we will focus on the MSE and in particular since we will split the data into test and training data,\n",
"we discuss the\n",
"1. prediction error or simply the **test error** $\\mathrm{Err_{Test}}$, where we have a fixed training set and the test error is the MSE arising from the data reserved for testing. We discuss also the \n",
"\n",
"2. training error $\\mathrm{Err_{Train}}$, which is the average loss over the training data.\n",
"\n",
"As our model becomes more and more complex, more of the training data tends to used. The training may thence adapt to more complicated structures in the data. This may lead to a decrease in the bias (see below for code example) and a slight increase of the variance for the test error.\n",
"For a certain level of complexity the test error will reach minimum, before starting to increase again. The\n",
"training error reaches a saturation."
]
},
{
"cell_type": "markdown",
"id": "340ea11c",
"metadata": {
"editable": true
},
"source": [
"## Resampling methods: Bootstrap\n",
"Bootstrapping is a [non-parametric approach](https://en.wikipedia.org/wiki/Nonparametric_statistics) to statistical inference\n",
"that substitutes computation for more traditional distributional\n",
"assumptions and asymptotic results. Bootstrapping offers a number of\n",
"advantages: \n",
"1. The bootstrap is quite general, although there are some cases in which it fails. \n",
"\n",
"2. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small. \n",
"\n",
"3. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically. \n",
"\n",
"4. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).\n",
"\n",
"The textbook by [Davison on the Bootstrap Methods and their Applications](https://www.cambridge.org/core/books/bootstrap-methods-and-their-application/ED2FD043579F27952363566DC09CBD6A) provides many more insights and proofs. In this course we will take a more practical approach and use the results and theorems provided in the literature. For those interested in reading more about the bootstrap methods, we recommend the above text and the one by [Efron and Tibshirani](https://www.routledge.com/An-Introduction-to-the-Bootstrap/Efron-Tibshirani/p/book/9780412042317).\n",
"\n",
"Before we proceed however, we need to remind ourselves about a central theorem in statistics, namely the so-called **central limit theorem**."
]
},
{
"cell_type": "markdown",
"id": "74bd7468",
"metadata": {
"editable": true
},
"source": [
"## The Central Limit Theorem\n",
"\n",
"Suppose we have a PDF $p(x)$ from which we generate a series $N$\n",
"of averages $\\mathbb{E}[x_i]$. Each mean value $\\mathbb{E}[x_i]$\n",
"is viewed as the average of a specific measurement, e.g., throwing \n",
"dice 100 times and then taking the average value, or producing a certain\n",
"amount of random numbers. \n",
"For notational ease, we set $\\mathbb{E}[x_i]=x_i$ in the discussion\n",
"which follows. We do the same for $\\mathbb{E}[z]=z$.\n",
"\n",
"If we compute the mean $z$ of $m$ such mean values $x_i$"
]
},
{
"cell_type": "markdown",
"id": "93013ca8",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"z=\\frac{x_1+x_2+\\dots+x_m}{m},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "92fa2b15",
"metadata": {
"editable": true
},
"source": [
"the question we pose is which is the PDF of the new variable $z$."
]
},
{
"cell_type": "markdown",
"id": "1031aebe",
"metadata": {
"editable": true
},
"source": [
"## Finding the Limit\n",
"\n",
"The probability of obtaining an average value $z$ is the product of the \n",
"probabilities of obtaining arbitrary individual mean values $x_i$,\n",
"but with the constraint that the average is $z$. We can express this through\n",
"the following expression"
]
},
{
"cell_type": "markdown",
"id": "cc495848",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\tilde{p}(z)=\\int dx_1p(x_1)\\int dx_2p(x_2)\\dots\\int dx_mp(x_m)\n",
" \\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m}),\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "28b2bcff",
"metadata": {
"editable": true
},
"source": [
"where the $\\delta$-function enbodies the constraint that the mean is $z$.\n",
"All measurements that lead to each individual $x_i$ are expected to\n",
"be independent, which in turn means that we can express $\\tilde{p}$ as the \n",
"product of individual $p(x_i)$. The independence assumption is important in the derivation of the central limit theorem."
]
},
{
"cell_type": "markdown",
"id": "5d3eb73d",
"metadata": {
"editable": true
},
"source": [
"## Rewriting the $\\delta$-function\n",
"\n",
"If we use the integral expression for the $\\delta$-function"
]
},
{
"cell_type": "markdown",
"id": "75b47bae",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m})=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n",
" dq\\exp{\\left(iq(z-\\frac{x_1+x_2+\\dots+x_m}{m})\\right)},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "a99105b0",
"metadata": {
"editable": true
},
"source": [
"and inserting $e^{i\\mu q-i\\mu q}$ where $\\mu$ is the mean value\n",
"we arrive at"
]
},
{
"cell_type": "markdown",
"id": "da28e9b0",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\tilde{p}(z)=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n",
" dq\\exp{\\left(iq(z-\\mu)\\right)}\\left[\\int_{-\\infty}^{\\infty}\n",
" dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "5bd0da08",
"metadata": {
"editable": true
},
"source": [
"with the integral over $x$ resulting in"
]
},
{
"cell_type": "markdown",
"id": "8dcbd91d",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}=\n",
" \\int_{-\\infty}^{\\infty}dxp(x)\n",
" \\left[1+\\frac{iq(\\mu-x)}{m}-\\frac{q^2(\\mu-x)^2}{2m^2}+\\dots\\right].\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "3ab26352",
"metadata": {
"editable": true
},
"source": [
"## Identifying Terms\n",
"\n",
"The second term on the rhs disappears since this is just the mean and \n",
"employing the definition of $\\sigma^2$ we have"
]
},
{
"cell_type": "markdown",
"id": "9e232448",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\int_{-\\infty}^{\\infty}dxp(x)e^{\\left(iq(\\mu-x)/m\\right)}=\n",
" 1-\\frac{q^2\\sigma^2}{2m^2}+\\dots,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "15cdad60",
"metadata": {
"editable": true
},
"source": [
"resulting in"
]
},
{
"cell_type": "markdown",
"id": "7b857d11",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\left[\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m\\approx\n",
" \\left[1-\\frac{q^2\\sigma^2}{2m^2}+\\dots \\right]^m,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "a7ba76a4",
"metadata": {
"editable": true
},
"source": [
"and in the limit $m\\rightarrow \\infty$ we obtain"
]
},
{
"cell_type": "markdown",
"id": "27abee5c",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\tilde{p}(z)=\\frac{1}{\\sqrt{2\\pi}(\\sigma/\\sqrt{m})}\n",
" \\exp{\\left(-\\frac{(z-\\mu)^2}{2(\\sigma/\\sqrt{m})^2}\\right)},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "450fbae6",
"metadata": {
"editable": true
},
"source": [
"which is the normal distribution with variance\n",
"$\\sigma^2_m=\\sigma^2/m$, where $\\sigma$ is the variance of the PDF $p(x)$\n",
"and $\\mu$ is also the mean of the PDF $p(x)$."
]
},
{
"cell_type": "markdown",
"id": "583a9a42",
"metadata": {
"editable": true
},
"source": [
"## Wrapping it up\n",
"\n",
"Thus, the central limit theorem states that the PDF $\\tilde{p}(z)$ of\n",
"the average of $m$ random values corresponding to a PDF $p(x)$ \n",
"is a normal distribution whose mean is the \n",
"mean value of the PDF $p(x)$ and whose variance is the variance\n",
"of the PDF $p(x)$ divided by $m$, the number of values used to compute $z$.\n",
"\n",
"The central limit theorem leads to the well-known expression for the\n",
"standard deviation, given by"
]
},
{
"cell_type": "markdown",
"id": "cdd93e78",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\sigma_m=\n",
"\\frac{\\sigma}{\\sqrt{m}}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "dfe218b6",
"metadata": {
"editable": true
},
"source": [
"The latter is true only if the average value is known exactly. This is obtained in the limit\n",
"$m\\rightarrow \\infty$ only. Because the mean and the variance are measured quantities we obtain \n",
"the familiar expression in statistics (the so-called Bessel correction)"
]
},
{
"cell_type": "markdown",
"id": "5d3fd1f7",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\sigma_m\\approx \n",
"\\frac{\\sigma}{\\sqrt{m-1}}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "3b8a47f4",
"metadata": {
"editable": true
},
"source": [
"In many cases however the above estimate for the standard deviation,\n",
"in particular if correlations are strong, may be too simplistic. Keep\n",
"in mind that we have assumed that the variables $x$ are independent\n",
"and identically distributed. This is obviously not always the\n",
"case. For example, the random numbers (or better pseudorandom numbers)\n",
"we generate in various calculations do always exhibit some\n",
"correlations.\n",
"\n",
"The theorem is satisfied by a large class of PDFs. Note however that for a\n",
"finite $m$, it is not always possible to find a closed form /analytic expression for\n",
"$\\tilde{p}(x)$."
]
},
{
"cell_type": "markdown",
"id": "c57ef602",
"metadata": {
"editable": true
},
"source": [
"## Confidence Intervals\n",
"\n",
"Confidence intervals are used in statistics and represent a type of estimate\n",
"computed from the observed data. This gives a range of values for an\n",
"unknown parameter such as the parameters $\\boldsymbol{\\beta}$ from linear regression.\n",
"\n",
"With the OLS expressions for the parameters $\\boldsymbol{\\beta}$ we found \n",
"$\\mathbb{E}(\\boldsymbol{\\beta}) = \\boldsymbol{\\beta}$, which means that the estimator of the regression parameters is unbiased.\n",
"\n",
"We found also that the variance of the estimate of the $j$-th regression coefficient is\n",
"$\\boldsymbol{\\sigma}^2 (\\boldsymbol{\\beta}_j ) = \\boldsymbol{\\sigma}^2 [(\\mathbf{X}^{T} \\mathbf{X})^{-1}]_{jj} $.\n",
"\n",
"This quantity will be used to\n",
"construct a confidence interval for the estimates."
]
},
{
"cell_type": "markdown",
"id": "cdea97fa",
"metadata": {
"editable": true
},
"source": [
"## Standard Approach based on the Normal Distribution\n",
"\n",
"We will assume that the parameters $\\beta$ follow a normal\n",
"distribution. We can then define the confidence interval. Here we will be using as\n",
"shorthands $\\mu_{\\beta}$ for the above mean value and $\\sigma_{\\beta}$\n",
"for the standard deviation. We have then a confidence interval"
]
},
{
"cell_type": "markdown",
"id": "efc3abe4",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\left(\\mu_{\\beta}\\pm \\frac{z\\sigma_{\\beta}}{\\sqrt{n}}\\right),\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "1679ffac",
"metadata": {
"editable": true
},
"source": [
"where $z$ defines the level of certainty (or confidence). For a normal\n",
"distribution typical parameters are $z=2.576$ which corresponds to a\n",
"confidence of $99\\%$ while $z=1.96$ corresponds to a confidence of\n",
"$95\\%$. A confidence level of $95\\%$ is commonly used and it is\n",
"normally referred to as a *two-sigmas* confidence level, that is we\n",
"approximate $z\\approx 2$.\n",
"\n",
"For more discussions of confidence intervals (and in particular linked with a discussion of the bootstrap method), see chapter 5 of the textbook by [Davison on the Bootstrap Methods and their Applications](https://www.cambridge.org/core/books/bootstrap-methods-and-their-application/ED2FD043579F27952363566DC09CBD6A)\n",
"\n",
"In this text you will also find an in-depth discussion of the\n",
"Bootstrap method, why it works and various theorems related to it."
]
},
{
"cell_type": "markdown",
"id": "fc2481bb",
"metadata": {
"editable": true
},
"source": [
"## Resampling methods: Bootstrap background\n",
"\n",
"Since $\\widehat{\\beta} = \\widehat{\\beta}(\\boldsymbol{X})$ is a function of random variables,\n",
"$\\widehat{\\beta}$ itself must be a random variable. Thus it has\n",
"a pdf, call this function $p(\\boldsymbol{t})$. The aim of the bootstrap is to\n",
"estimate $p(\\boldsymbol{t})$ by the relative frequency of\n",
"$\\widehat{\\beta}$. You can think of this as using a histogram\n",
"in the place of $p(\\boldsymbol{t})$. If the relative frequency closely\n",
"resembles $p(\\vec{t})$, then using numerics, it is straight forward to\n",
"estimate all the interesting parameters of $p(\\boldsymbol{t})$ using point\n",
"estimators."
]
},
{
"cell_type": "markdown",
"id": "a18c7fde",
"metadata": {
"editable": true
},
"source": [
"## Resampling methods: More Bootstrap background\n",
"\n",
"In the case that $\\widehat{\\beta}$ has\n",
"more than one component, and the components are independent, we use the\n",
"same estimator on each component separately. If the probability\n",
"density function of $X_i$, $p(x)$, had been known, then it would have\n",
"been straightforward to do this by: \n",
"1. Drawing lots of numbers from $p(x)$, suppose we call one such set of numbers $(X_1^*, X_2^*, \\cdots, X_n^*)$. \n",
"\n",
"2. Then using these numbers, we could compute a replica of $\\widehat{\\beta}$ called $\\widehat{\\beta}^*$. \n",
"\n",
"By repeated use of the above two points, many\n",
"estimates of $\\widehat{\\beta}$ can be obtained. The\n",
"idea is to use the relative frequency of $\\widehat{\\beta}^*$\n",
"(think of a histogram) as an estimate of $p(\\boldsymbol{t})$."
]
},
{
"cell_type": "markdown",
"id": "4af5f00a",
"metadata": {
"editable": true
},
"source": [
"## Resampling methods: Bootstrap approach\n",
"\n",
"But\n",
"unless there is enough information available about the process that\n",
"generated $X_1,X_2,\\cdots,X_n$, $p(x)$ is in general\n",
"unknown. Therefore, [Efron in 1979](https://projecteuclid.org/euclid.aos/1176344552) asked the\n",
"question: What if we replace $p(x)$ by the relative frequency\n",
"of the observation $X_i$?\n",
"\n",
"If we draw observations in accordance with\n",
"the relative frequency of the observations, will we obtain the same\n",
"result in some asymptotic sense? The answer is yes."
]
},
{
"cell_type": "markdown",
"id": "f40537a7",
"metadata": {
"editable": true
},
"source": [
"## Resampling methods: Bootstrap steps\n",
"\n",
"The independent bootstrap works like this: \n",
"\n",
"1. Draw with replacement $n$ numbers for the observed variables $\\boldsymbol{x} = (x_1,x_2,\\cdots,x_n)$. \n",
"\n",
"2. Define a vector $\\boldsymbol{x}^*$ containing the values which were drawn from $\\boldsymbol{x}$. \n",
"\n",
"3. Using the vector $\\boldsymbol{x}^*$ compute $\\widehat{\\beta}^*$ by evaluating $\\widehat \\beta$ under the observations $\\boldsymbol{x}^*$. \n",
"\n",
"4. Repeat this process $k$ times. \n",
"\n",
"When you are done, you can draw a histogram of the relative frequency\n",
"of $\\widehat \\beta^*$. This is your estimate of the probability\n",
"distribution $p(t)$. Using this probability distribution you can\n",
"estimate any statistics thereof. In principle you never draw the\n",
"histogram of the relative frequency of $\\widehat{\\beta}^*$. Instead\n",
"you use the estimators corresponding to the statistic of interest. For\n",
"example, if you are interested in estimating the variance of $\\widehat\n",
"\\beta$, apply the etsimator $\\widehat \\sigma^2$ to the values\n",
"$\\widehat \\beta^*$."
]
},
{
"cell_type": "markdown",
"id": "c6459716",
"metadata": {
"editable": true
},
"source": [
"## Code example for the Bootstrap method\n",
"\n",
"The following code starts with a Gaussian distribution with mean value\n",
"$\\mu =100$ and variance $\\sigma=15$. We use this to generate the data\n",
"used in the bootstrap analysis. The bootstrap analysis returns a data\n",
"set after a given number of bootstrap operations (as many as we have\n",
"data points). This data set consists of estimated mean values for each\n",
"bootstrap operation. The histogram generated by the bootstrap method\n",
"shows that the distribution for these mean values is also a Gaussian,\n",
"centered around the mean value $\\mu=100$ but with standard deviation\n",
"$\\sigma/\\sqrt{n}$, where $n$ is the number of bootstrap samples (in\n",
"this case the same as the number of original data points). The value\n",
"of the standard deviation is what we expect from the central limit\n",
"theorem."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "61ebf590",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Bootstrap Statistics :\n",
"original bias std. error\n",
" 99.8182 15.0632 99.8197 0.152701\n"
]
}
],
"source": [
"%matplotlib inline\n",
"\n",
"import numpy as np\n",
"from time import time\n",
"from scipy.stats import norm\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Returns mean of bootstrap samples \n",
"# Bootstrap algorithm\n",
"def bootstrap(data, datapoints):\n",
" t = np.zeros(datapoints)\n",
" n = len(data)\n",
" # non-parametric bootstrap \n",
" for i in range(datapoints):\n",
" t[i] = np.mean(data[np.random.randint(0,n,n)])\n",
" # analysis \n",
" print(\"Bootstrap Statistics :\")\n",
" print(\"original bias std. error\")\n",
" print(\"%8g %8g %14g %15g\" % (np.mean(data), np.std(data),np.mean(t),np.std(t)))\n",
" return t\n",
"\n",
"# We set the mean value to 100 and the standard deviation to 15\n",
"mu, sigma = 100, 15\n",
"datapoints = 10000\n",
"# We generate random numbers according to the normal distribution\n",
"x = mu + sigma*np.random.randn(datapoints)\n",
"# bootstrap returns the data sample \n",
"t = bootstrap(x, datapoints)"
]
},
{
"cell_type": "markdown",
"id": "2bcfb7ee",
"metadata": {
"editable": true
},
"source": [
"We see that our new variance and from that the standard deviation, agrees with the central limit theorem."
]
},
{
"cell_type": "markdown",
"id": "bb8e2e4c",
"metadata": {
"editable": true
},
"source": [
"## Plotting the Histogram"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "4d167410",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_144_0.png"
}
},
"output_type": "display_data"
}
],
"source": [
"# the histogram of the bootstrapped data (normalized data if density = True)\n",
"n, binsboot, patches = plt.hist(t, 50, density=True, facecolor='red', alpha=0.75)\n",
"# add a 'best fit' line \n",
"y = norm.pdf(binsboot, np.mean(t), np.std(t))\n",
"lt = plt.plot(binsboot, y, 'b', linewidth=1)\n",
"plt.xlabel('x')\n",
"plt.ylabel('Probability')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "5b04a99c",
"metadata": {
"editable": true
},
"source": [
"## The bias-variance tradeoff\n",
"\n",
"We will discuss the bias-variance tradeoff in the context of\n",
"continuous predictions such as regression. However, many of the\n",
"intuitions and ideas discussed here also carry over to classification\n",
"tasks. Consider a dataset $\\mathcal{D}$ consisting of the data\n",
"$\\mathbf{X}_\\mathcal{D}=\\{(y_j, \\boldsymbol{x}_j), j=0\\ldots n-1\\}$. \n",
"\n",
"Let us assume that the true data is generated from a noisy model"
]
},
{
"cell_type": "markdown",
"id": "df8b5b83",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\boldsymbol{y}=f(\\boldsymbol{x}) + \\boldsymbol{\\epsilon}\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "8b1cae6d",
"metadata": {
"editable": true
},
"source": [
"where $\\epsilon$ is normally distributed with mean zero and standard deviation $\\sigma^2$.\n",
"\n",
"In our derivation of the ordinary least squares method we defined then\n",
"an approximation to the function $f$ in terms of the parameters\n",
"$\\boldsymbol{\\beta}$ and the design matrix $\\boldsymbol{X}$ which embody our model,\n",
"that is $\\boldsymbol{\\tilde{y}}=\\boldsymbol{X}\\boldsymbol{\\beta}$. \n",
"\n",
"Thereafter we found the parameters $\\boldsymbol{\\beta}$ by optimizing the means squared error via the so-called cost function"
]
},
{
"cell_type": "markdown",
"id": "347294eb",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"C(\\boldsymbol{X},\\boldsymbol{\\beta}) =\\frac{1}{n}\\sum_{i=0}^{n-1}(y_i-\\tilde{y}_i)^2=\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right].\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "0536e454",
"metadata": {
"editable": true
},
"source": [
"We can rewrite this as"
]
},
{
"cell_type": "markdown",
"id": "4edf3a9e",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\frac{1}{n}\\sum_i(f_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\frac{1}{n}\\sum_i(\\tilde{y}_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\sigma^2.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "95b5e144",
"metadata": {
"editable": true
},
"source": [
"The three terms represent the square of the bias of the learning\n",
"method, which can be thought of as the error caused by the simplifying\n",
"assumptions built into the method. The second term represents the\n",
"variance of the chosen model and finally the last terms is variance of\n",
"the error $\\boldsymbol{\\epsilon}$.\n",
"\n",
"To derive this equation, we need to recall that the variance of $\\boldsymbol{y}$ and $\\boldsymbol{\\epsilon}$ are both equal to $\\sigma^2$. The mean value of $\\boldsymbol{\\epsilon}$ is by definition equal to zero. Furthermore, the function $f$ is not a stochastics variable, idem for $\\boldsymbol{\\tilde{y}}$.\n",
"We use a more compact notation in terms of the expectation value"
]
},
{
"cell_type": "markdown",
"id": "4ec0202c",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{f}+\\boldsymbol{\\epsilon}-\\boldsymbol{\\tilde{y}})^2\\right],\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "3729c884",
"metadata": {
"editable": true
},
"source": [
"and adding and subtracting $\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]$ we get"
]
},
{
"cell_type": "markdown",
"id": "09d292c0",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{f}+\\boldsymbol{\\epsilon}-\\boldsymbol{\\tilde{y}}+\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2\\right],\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "9393b969",
"metadata": {
"editable": true
},
"source": [
"which, using the abovementioned expectation values can be rewritten as"
]
},
{
"cell_type": "markdown",
"id": "31400952",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{y}-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2\\right]+\\mathrm{Var}\\left[\\boldsymbol{\\tilde{y}}\\right]+\\sigma^2,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "fab9fd56",
"metadata": {
"editable": true
},
"source": [
"that is the rewriting in terms of the so-called bias, the variance of the model $\\boldsymbol{\\tilde{y}}$ and the variance of $\\boldsymbol{\\epsilon}$."
]
},
{
"cell_type": "markdown",
"id": "f6bbceee",
"metadata": {
"editable": true
},
"source": [
"## A way to Read the Bias-Variance Tradeoff\n",
"\n",
"<!-- dom:FIGURE: [figures/BiasVariance.png, width=600 frac=0.9] -->\n",
"<!-- begin figure -->\n",
"\n",
"<img src=\"figures/BiasVariance.png\" width=\"600\"><p style=\"font-size: 0.9em\"><i>Figure 1: </i></p>\n",
"<!-- end figure -->"
]
},
{
"cell_type": "markdown",
"id": "2486e572",
"metadata": {
"editable": true
},
"source": [
"## Example code for Bias-Variance tradeoff"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "af100ade",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error: 0.013121574062587286\n",
"Bias^2: 0.012073649469946107\n",
"Var: 0.0010479245926411787\n",
"0.013121574062587286 >= 0.012073649469946107 + 0.0010479245926411787 = 0.013121574062587286\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_160_1.png"
}
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from sklearn.linear_model import LinearRegression, Ridge, Lasso\n",
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.pipeline import make_pipeline\n",
"from sklearn.utils import resample\n",
"\n",
"np.random.seed(2018)\n",
"\n",
"n = 500\n",
"n_boostraps = 100\n",
"degree = 18 # A quite high value, just to show.\n",
"noise = 0.1\n",
"\n",
"# Make data set.\n",
"x = np.linspace(-1, 3, n).reshape(-1, 1)\n",
"y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape)\n",
"\n",
"# Hold out some test data that is never used in training.\n",
"x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n",
"\n",
"# Combine x transformation and model into one operation.\n",
"# Not neccesary, but convenient.\n",
"model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n",
"\n",
"# The following (m x n_bootstraps) matrix holds the column vectors y_pred\n",
"# for each bootstrap iteration.\n",
"y_pred = np.empty((y_test.shape[0], n_boostraps))\n",
"for i in range(n_boostraps):\n",
" x_, y_ = resample(x_train, y_train)\n",
"\n",
" # Evaluate the new model on the same test data each time.\n",
" y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()\n",
"\n",
"# Note: Expectations and variances taken w.r.t. different training\n",
"# data sets, hence the axis=1. Subsequent means are taken across the test data\n",
"# set in order to obtain a total value, but before this we have error/bias/variance\n",
"# calculated per data point in the test set.\n",
"# Note 2: The use of keepdims=True is important in the calculation of bias as this \n",
"# maintains the column vector form. Dropping this yields very unexpected results.\n",
"error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n",
"bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n",
"variance = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n",
"print('Error:', error)\n",
"print('Bias^2:', bias)\n",
"print('Var:', variance)\n",
"print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance))\n",
"\n",
"plt.plot(x[::5, :], y[::5, :], label='f(x)')\n",
"plt.scatter(x_test, y_test, label='Data points')\n",
"plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "e4b4ea82",
"metadata": {
"editable": true
},
"source": [
"## Understanding what happens"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "13bb228b",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Polynomial degree: 0\n",
"Error: 0.32149601703519115\n",
"Bias^2: 0.3123314713548606\n",
"Var: 0.009164545680330616\n",
"0.32149601703519115 >= 0.3123314713548606 + 0.009164545680330616 = 0.3214960170351912\n",
"Polynomial degree: 1\n",
"Error: 0.08426840630693412\n",
"Bias^2: 0.0796891867672603\n",
"Var: 0.004579219539673834\n",
"0.08426840630693412 >= 0.0796891867672603 + 0.004579219539673834 = 0.08426840630693413\n",
"Polynomial degree: 2\n",
"Error: 0.10398646080125037\n",
"Bias^2: 0.10077114273548984\n",
"Var: 0.0032153180657605116\n",
"0.10398646080125037 >= 0.10077114273548984 + 0.0032153180657605116 = 0.10398646080125036\n",
"Polynomial degree: 3\n",
"Error: 0.06547790180152352\n",
"Bias^2: 0.062082386342319454\n",
"Var: 0.0033955154592040923\n",
"0.06547790180152352 >= 0.062082386342319454 + 0.0033955154592040923 = 0.06547790180152355\n",
"Polynomial degree: 4\n",
"Error: 0.06844519414009445\n",
"Bias^2: 0.06453579006728322\n",
"Var: 0.003909404072811221\n",
"0.06844519414009445 >= 0.06453579006728322 + 0.003909404072811221 = 0.06844519414009444\n",
"Polynomial degree: 5\n",
"Error: 0.05227921801205679\n",
"Bias^2: 0.04818727730430286\n",
"Var: 0.004091940707753925\n",
"0.05227921801205679 >= 0.04818727730430286 + 0.004091940707753925 = 0.05227921801205679\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Polynomial degree: 6\n",
"Error: 0.03781367141738902\n",
"Bias^2: 0.03365768507152769\n",
"Var: 0.0041559863458613296\n",
"0.03781367141738902 >= 0.03365768507152769 + 0.0041559863458613296 = 0.03781367141738902\n",
"Polynomial degree: 7\n",
"Error: 0.027609773491022394\n",
"Bias^2: 0.022999498260366198\n",
"Var: 0.004610275230656182\n",
"0.027609773491022394 >= 0.022999498260366198 + 0.004610275230656182 = 0.02760977349102238\n",
"Polynomial degree: 8\n",
"Error: 0.017355848195593312\n",
"Bias^2: 0.010331721306655165\n",
"Var: 0.007024126888938144\n",
"0.017355848195593312 >= 0.010331721306655165 + 0.007024126888938144 = 0.01735584819559331\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Polynomial degree: 9\n",
"Error: 0.026605727637184558\n",
"Bias^2: 0.010018312644139219\n",
"Var: 0.016587414993045335\n",
"0.026605727637184558 >= 0.010018312644139219 + 0.016587414993045335 = 0.026605727637184554\n",
"Polynomial degree: 10\n",
"Error: 0.021592704588021178\n",
"Bias^2: 0.010516485576646504\n",
"Var: 0.01107621901137467\n",
"0.021592704588021178 >= 0.010516485576646504 + 0.01107621901137467 = 0.021592704588021174\n",
"Polynomial degree: 11\n",
"Error: 0.07160048164232538\n",
"Bias^2: 0.014436800088896381\n",
"Var: 0.05716368155342902\n",
"0.07160048164232538 >= 0.014436800088896381 + 0.05716368155342902 = 0.0716004816423254\n",
"Polynomial degree: 12\n",
"Error: 0.11547777218876518\n",
"Bias^2: 0.016285782696017142\n",
"Var: 0.09919198949274803\n",
"0.11547777218876518 >= 0.016285782696017142 + 0.09919198949274803 = 0.11547777218876518\n",
"Polynomial degree: 13\n",
"Error: 0.2284246870217162\n",
"Bias^2: 0.01975416527168255\n",
"Var: 0.20867052175003364\n",
"0.2284246870217162 >= 0.01975416527168255 + 0.20867052175003364 = 0.2284246870217162\n"
]
},
{
"data": {
"image/png": "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AQMG8O6779K5c2dCQ0O54YYbKCwsdJ5jt9t5+umn6datG1arlYSEBJ544gnn8+np6UyePJnw8HAiIyO5+uqrOXjwYOP9wOqhwNJQLr1YbHaDw8dKPVyQiEjbZRgGJZUlHnmc7t7BPj4+3HrrrSxcuNDtNR9++CEVFRXccccdDB48mM8//5yff/6Zu+66iylTprBp0ya367z99tv4+Piwbt06Xn/99Tq/V7t27Vi4cCHbt2/nhRde4I033mDu3Llu5+zbt49PPvmEzz//nM8//5xVq1bx1FNPOZ+fPXs2Tz/9NA8//DDbt29n0aJFxMTEAI6QNWHCBIKDg1m9ejVr164lODiYSy65xDnq01S0W3NDFefCs47Q0rNsIQtuH824HtFN9/1ERMTpxF1/SypLGLZomEdq2XTTJgJ9A0/r3J07d9K7d2+++eYbJkyYAMC4cePo1KkTixYtqnX+5ZdfTu/evfn73/8OOEZY8vPz2bp1q9t5JpOJjz/+mGuuuabO7/vss8+yZMkSvvvuO8AxwvLss8+SmZlJu3btALjvvvtYvXo1GzdupLCwkOjoaF5++WXuuOOOWtd78803eeaZZ9ixYwcmkwlw3J4KCwvjk08+YeLEiXXW0Ri7NfvU+4zULTACrKFQnk+CKZvU3GJAgUVEROrXq1cvRo4cyZtvvsmECRPYt28fa9asYfny5dhsNp566imWLFlCeno65eXllJeXExQU5HaNIUOGnPL7/Pvf/2bevHns3buXoqIiqqqqaoWAzp07O8MKQIcOHcjOzgZgx44dlJeXc8EFF9R5/S1btrB3716314MjkOzbt++0fhZnSoGloUwmiOwCh7fS2ZSpTRBFRDwowCeATTdtOvWJTfS9G2Lq1KncfffdvPLKK7z11lskJiZywQUX8OyzzzJ37lzmzZtH//79CQoKYubMmbVusZwYYE60ceNGbrjhBh577DEuvvhiQkNDef/993nuuefczvP19XX72mQyYbc75mMGBJz8PdntdgYPHsx7771X67no6Kb9x7sCy5mIcASWRO3aLCLiUSaT6bRvy3japEmTuOeee1i0aBFvv/02d955JyaTiTVr1nD11Vdzyy23AI5QsGfPHnr37t2g669bt47ExEQefPBB57G6ViadTPfu3QkICODrr7+u85bQoEGDWLJkCe3bt2/a6Rd10KTbM1Ez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v3crKipYtWpVm/29C8fDyp49e/jqq6+IjIz0dEkeoRGWk5g1axZTpkxhyJAhjBgxggULFpCamsq0adM8XZpHzJgxg0WLFvHpp5/Srl075+hTaGgoAQEBHq7OM9q1a1drDk9QUBCRkZFtem7Pvffey8iRI3nyySeZNGkS3377LQsWLGDBggWeLs1jrrzySp544gkSEhLo27cvW7du5fnnn+f222/3dGnNqqioiL179zq/PnDgANu2bSMiIoKEhARmzpzJk08+Sffu3enevTtPPvkkgYGB3HTTTR6summd7GfSsWNHrr/+er7//ns+//xzbDab83dvREQEfn5+niq7+Xl2kZL3e+WVV4zExETDz8/PGDRoUJtewgvU+Xjrrbc8XZpX0bJmh//85z9Gv379DKvVavTq1ctYsGCBp0vyqIKCAuOee+4xEhISDH9/f6NLly7Ggw8+aJSXl3u6tGa1YsWKOn+P/OY3vzEMw7G0+ZFHHjFiY2MNq9VqjB071vjpp588W3QTO9nP5MCBA/X+7l2xYoWnS29WJsMwjOYMSCIiIiINpTksIiIi4vUUWERERMTrKbCIiIiI11NgEREREa+nwCIiIiJeT4FFREREvJ4Ci4iIiHg9BRYRERHxegosIiIi4vUUWERERMTrKbCIiIiI11NgEREREa/3/wFeGur1AV/LvQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_162_3.png"
}
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from sklearn.linear_model import LinearRegression, Ridge, Lasso\n",
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.pipeline import make_pipeline\n",
"from sklearn.utils import resample\n",
"\n",
"np.random.seed(2018)\n",
"\n",
"n = 40\n",
"n_boostraps = 100\n",
"maxdegree = 14\n",
"\n",
"\n",
"# Make data set.\n",
"x = np.linspace(-3, 3, n).reshape(-1, 1)\n",
"y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n",
"error = np.zeros(maxdegree)\n",
"bias = np.zeros(maxdegree)\n",
"variance = np.zeros(maxdegree)\n",
"polydegree = np.zeros(maxdegree)\n",
"x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n",
"\n",
"for degree in range(maxdegree):\n",
" model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n",
" y_pred = np.empty((y_test.shape[0], n_boostraps))\n",
" for i in range(n_boostraps):\n",
" x_, y_ = resample(x_train, y_train)\n",
" y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()\n",
"\n",
" polydegree[degree] = degree\n",
" error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n",
" bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n",
" variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n",
" print('Polynomial degree:', degree)\n",
" print('Error:', error[degree])\n",
" print('Bias^2:', bias[degree])\n",
" print('Var:', variance[degree])\n",
" print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n",
"\n",
"plt.plot(polydegree, error, label='Error')\n",
"plt.plot(polydegree, bias, label='bias')\n",
"plt.plot(polydegree, variance, label='Variance')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "c50c02c2",
"metadata": {
"editable": true
},
"source": [
"## Summing up\n",
"\n",
"The bias-variance tradeoff summarizes the fundamental tension in\n",
"machine learning, particularly supervised learning, between the\n",
"complexity of a model and the amount of training data needed to train\n",
"it. Since data is often limited, in practice it is often useful to\n",
"use a less-complex model with higher bias, that is a model whose asymptotic\n",
"performance is worse than another model because it is easier to\n",
"train and less sensitive to sampling noise arising from having a\n",
"finite-sized training dataset (smaller variance). \n",
"\n",
"The above equations tell us that in\n",
"order to minimize the expected test error, we need to select a\n",
"statistical learning method that simultaneously achieves low variance\n",
"and low bias. Note that variance is inherently a nonnegative quantity,\n",
"and squared bias is also nonnegative. Hence, we see that the expected\n",
"test MSE can never lie below $Var(\\epsilon)$, the irreducible error.\n",
"\n",
"What do we mean by the variance and bias of a statistical learning\n",
"method? The variance refers to the amount by which our model would change if we\n",
"estimated it using a different training data set. Since the training\n",
"data are used to fit the statistical learning method, different\n",
"training data sets will result in a different estimate. But ideally the\n",
"estimate for our model should not vary too much between training\n",
"sets. However, if a method has high variance then small changes in\n",
"the training data can result in large changes in the model. In general, more\n",
"flexible statistical methods have higher variance.\n",
"\n",
"You may also find this recent [article](https://www.pnas.org/content/116/32/15849) of interest."
]
},
{
"cell_type": "markdown",
"id": "16a69276",
"metadata": {
"editable": true
},
"source": [
"## Another Example from Scikit-Learn's Repository"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "06c4dbd1",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"============================\n",
"Underfitting vs. Overfitting\n",
"============================\n",
"\n",
"This example demonstrates the problems of underfitting and overfitting and\n",
"how we can use linear regression with polynomial features to approximate\n",
"nonlinear functions. The plot shows the function that we want to approximate,\n",
"which is a part of the cosine function. In addition, the samples from the\n",
"real function and the approximations of different models are displayed. The\n",
"models have polynomial features of different degrees. We can see that a\n",
"linear function (polynomial with degree 1) is not sufficient to fit the\n",
"training samples. This is called **underfitting**. A polynomial of degree 4\n",
"approximates the true function almost perfectly. However, for higher degrees\n",
"the model will **overfit** the training data, i.e. it learns the noise of the\n",
"training data.\n",
"We evaluate quantitatively **overfitting** / **underfitting** by using\n",
"cross-validation. We calculate the mean squared error (MSE) on the validation\n",
"set, the higher, the less likely the model generalizes correctly from the\n",
"training data.\n",
"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABGQAAAHOCAYAAADey9/qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAADyLUlEQVR4nOzdd3jT5dfH8XeS7l02lFL2ngIiQ5YiU0HEAchQQUQR9efkceHGgaI4cAKioAKKiixlioDKll32noWWtnTfzx8hgdICTVc6Pq/rykX6zXecNOUkPb3vc1uMMQYREREREREREck3VncHICIiIiIiIiJS3KggIyIiIiIiIiKSz1SQERERERERERHJZyrIiIiIiIiIiIjkMxVkRERERERERETymQoyIiIiIiIiIiL5TAUZEREREREREZF8poKMiIiIiIiIiEg+U0FGRERERERERCSfqSAjeWrSpElYLBbnzcfHh3LlytGhQwfeeOMNjh8/7u4Q88XBgwd59NFHadeuHSEhIVgsFiZNmuTusERE8oRyf+aee+45LBYL9evXd3coIiLZphxv58rn+/bt26f7njluXbp0yd+gpcBRQUbyxcSJE1m5ciW///47H330EY0bN+bNN9+kTp06/PHHH+4OL8/t3LmTb7/9Fi8vL7p16+bucERE8kVxz/0XW79+Pe+88w5ly5Z1dygiIrmiuOd4Vz/fV61alZUrV6a7jRs3Lu8DlQLNw90BSPFQv359mjVr5vz6tttu47HHHqNNmzb07t2byMjIfP+Qeu7cOXx9ffPlWm3btuXEiRMArF69mmnTpuXLdUVE3Km4536HlJQU7rnnHoYNG8aGDRs4efJkvl5fRCQvFPcc7+rne19fX6677rr8CE0KEY2QEbepVKkSY8eO5ezZs3z66afpHlu9ejW33HILJUqUwMfHhyZNmvDDDz9kOMfy5ctp2bIlPj4+hIWF8fzzz/PFF19gsVjYu3evc7/KlSvTo0cPfvzxR5o0aYKPjw8vvfQSAEePHmXYsGFUrFgRLy8vqlSpwksvvURKSkq6ayUlJfHqq69Su3ZtvL29KV26NPfcc48zEV+J1ar/aiIiULxyv8OYMWOIioritddec+E7JSJS+BSnHK/P95IbNEJG3Kpbt27YbDaWLVvm3LZ48WK6dOlCixYtmDBhAsHBwXz33XfceeedxMfHM3jwYAA2btxIp06dqFmzJpMnT8bPz48JEybwzTffZHqttWvXsnXrVp577jmqVKmCv78/R48e5dprr8VqtfLCCy9QrVo1Vq5cyauvvsrevXuZOHEiAGlpafTs2ZM///yTp556ilatWrFv3z5efPFF2rdvz+rVq/P9L64iIoVVccr9W7Zs4dVXX+XHH38kICAgd76BIiIFWHHK8a7YtWsXJUqUICYmhoiICO666y6ee+45/Q5R3BmRPDRx4kQDmH///fey+5QtW9bUqVPH+XXt2rVNkyZNTHJycrr9evToYcqXL29SU1ONMcbcfvvtxt/f35w4ccK5T2pqqqlbt64BzJ49e5zbIyIijM1mM9u3b093zmHDhpmAgACzb9++dNvfeecdA5jNmzcbY4yZNm2aAczMmTPT7ffvv/8awHz88cdZ+G6kP2bixIlZPkZEpDBR7r8QV4sWLUzfvn2d29q1a2fq1at3xeNERAoy5fiMrvb5/tlnnzUff/yxWbRokfntt9/MiBEjjIeHh2nbtq3zuUvxpHFW4nbGGOf9nTt3sm3bNvr37w/Y5907bt26dePIkSNs374dgKVLl9KxY0dKlSrlPN5qtXLHHXdkep2GDRtSs2bNdNtmz55Nhw4dqFChQrprde3a1XkNx34hISHcfPPN6fZr3Lgx5cqVY8mSJbn2/RARKQ6KQ+5/9913iYyMVNNGESl2ikOOd8Wrr77K8OHD6dChA926dWP8+PGMGTOGZcuW8fPPP+fadaTw0ZQlcau4uDhOnTpFgwYNADh27BgATzzxBE888USmxziaIZ46dSrTRmGXax5Wvnz5DNuOHTvGr7/+iqen5xWvdezYMc6cOYOXl9cV9xMRkasrDrl///79vPDCC4wZMwYvLy/OnDkD2H8RSUtL48yZM3h7e2uouogUOcUhx+eGu+++myeeeIJVq1Zx66235um1pOBSQUbc6rfffiM1NZX27dsDOKvho0aNonfv3pkeU6tWLQBKlizpTPAXO3r0aKbHWSyWDNtKlSpFw4YNL9tosUKFCs79SpYsybx58zLdLzAwMNPtIiKSUXHI/bt37+bcuXM88sgjPPLIIxkeDw0N5ZFHHtHoGREpcopDjs9Nag5cvKkgI26zf/9+nnjiCYKDgxk2bBhgT8Y1atRgw4YNvP7661c8vl27dsyZM4eTJ086E31aWhrTp0/Pcgw9evRgzpw5VKtWjdDQ0Cvu991335GamkqLFi2yfH4REUmvuOT+xo0bs3jx4gzbH330UaKjo5k4cSIVK1Z06ZwiIgVdccnxuWHy5MkAWgq7mFNBRvLFpk2bnPMyjx8/zp9//snEiROx2Wz89NNPlC5d2rnvp59+SteuXencuTODBw8mLCyMqKgotm7dytq1a50J+dlnn+XXX3/lhhtu4Nlnn8XX15cJEyYQFxcHZK3a/PLLL/P777/TqlUrRo4cSa1atUhISGDv3r3MmTOHCRMmULFiRe666y6+/fZbunXrxiOPPMK1116Lp6cnBw8eZPHixfTs2fOqQw1nzJgB2P9qCval/xwrbvTp08f1b6qISAFXnHN/SEiI86/Dl25PSUnJ9DERkcKkOOd4h6x8vv/zzz957bXXuPXWW6latSoJCQnMnTuXzz77jI4dO3LzzTe7+J2XIsXNTYWliHN0YXfcvLy8TJkyZUy7du3M66+/bo4fP57pcRs2bDB33HGHKVOmjPH09DTlypUzHTt2NBMmTEi3359//mlatGhhvL29Tbly5cyTTz5p3nzzTQOYM2fOOPeLiIgw3bt3z/RaJ06cMCNHjjRVqlQxnp6epkSJEqZp06bm2WefNbGxsc79kpOTzTvvvGMaNWpkfHx8TEBAgKldu7YZNmyYiYyMvOr34uLvw6U3EZGiRLn/8rTKkogUdsrxF2Tl831kZKTp1q2bCQsLM97e3sbHx8c0aNDAvPbaayYhIeGq15CizWLMRS2wRYqAm266ib1797Jjxw53hyIiIvlEuV9EpOhSjpeiSlOWpFD73//+R5MmTQgPDycqKopvv/2W33//nS+//NLdoYmISB5R7hcRKbqU46U4UUFGCrXU1FReeOEFjh49isVioW7dukyZMoW7777b3aGJiEgeUe4XESm6lOOlONGUJRERERERERGRfKZFz0VERERERERE8pkKMiIiIiIiIiIi+azYF2QmTZqExWLBYrGwZMmSDI8bY6hevToWi4X27dune+zUqVOMGjWKunXr4u/vT3BwMLVr12bAgAFs3Lgx02tkdsvsuvnlueeew2KxUL9+/Swfs3v3bnr37k1ISAgBAQF06tSJtWvXZtgvJiaGZ599lpo1a+Ln50dYWBi33347mzdvzs2n4PTdd9/RuHFjfHx8qFChAo8++iixsbHp9jl79ixPPfUUN910E6VLl8ZisTB69OjLnjM5OZnatWszZsyYXIszKioKT09Pfvrppxyfy9XX74svvqBXr15UrlwZX19fqlevzvDhwzly5EiGfStXrpzpz+sDDzyQ47gzk9uvX9u2bXn00UfzJFYp3JT3Xcsb06ZNo23btpQtWxZvb28qVKjAzTffzIoVK9Ltd+TIEZ577jlatmxJqVKlCAoKomnTpnz22WekpqbmxVPJUt5YtGgR9957L7Vr18bf35+wsDB69uzJmjVrMj1nQcv77du3v+LP0tGjR696jsL8vu3K66e8L8Utvx88eJBHH32Udu3aERISgsViYdKkSS6dY+bMmbRu3ZoSJUoQEhLCtddey5QpUzLsN2TIEOrXr09ISAi+vr7UrFmTJ598kpMnT+bSs8m65ORkXnrpJSpXroy3tze1a9dm/Pjxme6b1ecHsGvXLry9vVm5cmWuxfrLL7/g4eHBiRMnXD528ODBmf6M1a5d2+VznTt3jpo1a2KxWHjnnXcyPL5z504GDBhApUqV8PX1pVq1avzvf//j1KlTLl8rp44fP87gwYMpVaoUfn5+tGzZkoULF2bYLzExkbfffpv69evj7+9P2bJl6dq1a4bPJwsXLiQgIIBDhw7l11NwjRuX3C4QJk6caAATGBho7r777gyPL1682Pl4u3btnNvPnj1rqlevbsqVK2fGjh1r/vjjD/Prr7+asWPHmtatW5vJkydnuMbEiRPNypUrM9yio6Pz46lmsG7dOuPt7W3Kli1r6tWrl6Vjjh8/bipUqGDq1atnZs6caX777TfTpk0bExgYaLZt25Zu37Zt2xo/Pz/z1ltvmUWLFpmvv/7aVK9e3QQGBpq9e/fm6nP55ptvDGCGDBliFi1aZCZMmGCCg4NNp06d0u23Z88eExwcbNq2bWuGDBliAPPiiy9e9rzjxo0zZcqUMbGxsbkW61dffWX8/PxMfHx8js6TndevQoUKpn///ubbb781S5YsMZ9++qmpWLGiKV++vDl69Gi6fSMiIkzr1q0z/Lzu3r07R3FnJi9evyVLlhhPT88MP5ciyvuu5Y3x48ebZ555xsyYMcMsWbLETJs2zTRv3tzYbDazZMkS536//vqrCQ8PN88++6z57bffzIIFC8xjjz1mrFarueeee3L9uWQ1b/Tp08d06NDBfPzxx2bJkiVm+vTp5rrrrjMeHh5m4cKFGc5b0PL+5s2bM/z8LFy40Hh6eprrrrvuqscX9vdtV14/5X0pbvl98eLFplSpUubGG280ffv2dcaVVV9++aUBzG233WbmzJlj5s6da+666y4DmHfffTfdvnfddZd5//33zW+//WYWLlxo3nzzTRMUFGTq1q1rEhMTc/mZXdmQIUOMt7e3eeutt8zixYvNM888YywWi3nttdfS7efK8zPGmF69epnu3bvnaqwDBw40HTp0yNaxgwYNMr6+vhl+xtavX+/yuR5//HFToUIFA5i333473WPHjx83JUuWNFWqVDGTJk0yixYtMmPHjjUBAQGmcePGJjU1NVvxZ0dCQoKpX7++qVixovnmm2/MggULTM+ePY2Hh0e6zxzGGDNgwABjtVrNs88+axYuXGimT59umjZtajw8PMzff/+dbt8OHTqYgQMH5tvzcIUKMueT6pAhQ4yvr2+GJHr33Xebli1bmnr16qVL3F999ZUBzKJFizI978U/uI5r/Pvvv3nyHLIjOTnZNG7c2IwcOdK0a9cuyx/Mn3zySePp6Znug1l0dLQpVaqUueOOO5zbIiMjDWCee+65dMevWLHiskkwu1JSUkz58uXNTTfdlG77t99+awAzZ84c57a0tDSTlpZmjDHmxIkTV/yFPjk52YSFhZlnnnnmqjG0a9fODBo0KEvxduvWzfTp0ydL+15Odl+/Y8eOZdj277//GsC88sor6bZHRETk+ptSZvLq9TPGmPr165uhQ4fmSdxSeCnvu5Y3MnPmzBnj6elpBgwY4NwWFRVlkpKSMuz70EMPGcDs378/29e7lCt5I7O8d/bsWVO2bFlzww03pNtekPP+xSZNmmQA88UXX1x138L+vu3K62eM8n5xV9zy+8VxOT7PuVKQad26tYmIiEh3nrS0NFO7dm3TsGHDqx7/8ccfGyDT4nZ2vPjiiyYiIuKK+2zatMlYLBbz+uuvp9s+dOhQ4+vra06dOuXc5srz27JliwHMvHnzrhpnVr/PSUlJJiQkxHz44YdX3TczgwYNMv7+/tk69mJ///238fLyMtOnT8+0IPP5558bwPzxxx/ptr/++usGMGvXrs1xDMZk7X3zo48+MoBZsWKFc1tycrKpW7euufbaa53bEhISjM1my1B4PXz4sAHMyJEj022fMWOGsdlsufpZJLcU+ylL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iy/4+uuvncMlHb7++ut0FUYgS9Mv7r//fnr06HHV/by9va+6z7vvvktkZCS//PLLVfe9nCvFfPFjw4cP56effuK9997jmmuu4ejRo7z99tt07NiRxYsXExERQUJCAgsXLmT48OH4+fk5h04DdOvWjQ8//JBVq1bRtWtXUlNTMcY4H3cMVbtaXK5McbnY4cOHad68eYbtS5cupUOHDhm2L1u2jK+//jrdtj179lC5cmUA4uLimD9/Pp988onz8bS0NNLS0tLFarPZLhtTbrx+DgkJCfTu3Zt9+/axaNGiDH9pvXRoac+ePQkNDeXDDz/kf//7H02aNCnQrx/Yq+chISEFt6u6uJ3yftbNnDmTuLg49u/fz4QJE+jatSu//PJLhpVKHNauXcsdd9zBddddxxtvvOHc7u688fzzz/Ptt98yfvx4mjZtmu6xgpj3L5aSksLkyZOpV68e1113XZaOcVwjK48VhvftK71+oLwvFxSH/J5T8+bN4+677+b222/njjvuwMPDg19++YXBgweTlJSUYVpQgwYN+Pfff4mPj2f9+vWMGTOGTp06sWjRIvz8/FzKD0Cm01wz2z5x4kQGDx7s/DqrOS2rz+/w4cNA5lMkX3755UxH9tx3333cd999zq8jIiLYu3ev8+ulS5dy8uRJevfu7dx2tZx4qcceeyzd1506daJJkyb06dOHzz//PMPjF0tJSeHee+/lzjvvpHPnzpfdD+D06dP07NmT+Ph4vv32W8LDw9m0aROvvPIKt9xyC7/99hseHh6sWLGCqKgoBg0alO61BejSpQtvvfUWcXFx+Pv7Z/t9E7L++r722mu88847jB49muuvv56YmBg+/PBDOnXqxIIFC2jSpEm6Y8uUKUNaWhpHjx6lWrVqV/ye5Cu3loMKgEsbc7366qumTJky5sEHH0z3F5rMKumZWbp0qfHz8zOlS5e+7DVclVllNrPbpZXZS+3bt8/4+vqa999/35w+fdp5a926talTp445ffr0FVeAiI+PNxaLxTz55JMZHvvwww8NYLZv326MMWbu3LkGMNOnT0+33+nTp01wcLDzLxQHDx686l8Ivv76a2OMvcnsxdsdIyMmTJhgALN58+YMcTVr1sy0bNky0+dztREWmVXZjbGPKvn333/T3a655hrTo0ePDNsv7jr//fffGw8Pj3R/GRg0aFC653Sl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xAQFBZkmTZqYDz/80CQlJTn327p1q+nTp4+JiIgwPj4+xsfHx9SuXds8+eST5tSpUxliym5+ePHFF7O0ulRSUpJ58cUXTaVKlYyXl5epWbOm+eCDDzLsl9XnZ4wxX375pbHZbBn6qGQms/e0i4WHh2erP8zFoqKizK233moqV65sfH19jZeXl6lRo4Z56qmnMvRmc8R0tfecK62ytHbtWnPrrbeaihUrGm9vb1O1alUzZMgQZ0+Yiy1dutR0797dlChRwnh6epqwsDDTvXv3DD3ILnW1902Ho0ePmoEDB5oSJUoYHx8fc91115nff/89w35nzpwxzz77rKlTp47x8/MzZcqUMe3btzdz5szJsO/OnTsNYGbOnHnV6+c3izEXtXoWkXRuvvlmUlJSmDt3brbPkZSURJkyZXjllVd4+OGHczE6uZKYmBgqVKjAe++9x9ChQ90djogUEsr7hZfyvohkV0JCApUqVeLxxx9PNxXKVf/88w8tWrRg48aNuTJFSXLH888/z9dff82uXbucU3ULChVkRK5g06ZNNGnShBUrVmS6FKoUXC+99BLff/89GzduLHCJV0QKLuX9wkt5X0Ry4pNPPmH06NHs3r0bf39/d4cjueTMmTNUrVqV8ePHO6dfFSR6txK5gvr16zNx4kSOHj3q7lDERUFBQUyaNEkfykXEJcr7hZfyvojkxP3338+ZM2fYvXu3RrcUIXv27GHUqFH069fP3aFkSiNkRERERERERETy2ZUXMBcRERERERERkVyngoyIiIiIiIiISD5zyyTbtLQ0Dh8+TGBgYMFbB1xEJI8YYzh79iwVKlTAai1e9XDlfREprpT7lftFpPjJau53S0Hm8OHDhIeHu+PSIiJud+DAASpWrOjuMPKV8r6IFHfK/SIixc/Vcr9bCjKBgYGAPbigoCB3hCAiku9iYmIIDw935sDiRHlfRIor5f6Muf/TpbsYv2gnt10Txks967srPBGRPJPV3O+WgoxjyGJQUJA+mItIsVMch20r74tIcafcfyH3+wUEYvX2w8s3QO8JIlKkXS33F6+JrCIiIiIiUiAYjLtDEBFxKxVkREREREQk3zj+YGxUjxGRYk4FGRERERERyTcW7BUZ1WNEpLhzSw8ZkcIoNTWV5ORkd4chBZinpyc2m83dYYhILlLul6tR7nedRshIQafcL1eTW7lfBRmRqzDGcPToUc6cOePuUKQQCAkJoVy5csWyeaNIUaLcL65Q7neN47ukHjJS0Cj3iytyI/erICNyFY6kXKZMGfz8/PRhSzJljCE+Pp7jx48DUL58eTdHJCI5odwvWaHcnz2WCxUZkQJFuV+yIjdzvwoyIleQmprqTMolS5Z0dzhSwPn6+gJw/PhxypQpoyHsIoWUcr+4QrnfdeohIwWRcr+4Irdyv5r6ilyBY+6on5+fmyORwsLxs6J5xyKFl3K/uEq53zUXesioJCMFh3K/uCo3cr8KMiJZoOGKklX6WREpOvT/WbJKPyvZo3KMFET6/yxZlRs/KyrIiIiIiIhIvnH8EqMBMiJS3KkgIyLZsmTJEiwWi0td6CtXrsy4cePyLCYREclbyv2SG9TTV6RwUe7POyrIiBRRgwcPxmKx8MADD2R47MEHH8RisTB48OD8D0xERPKMcr8UBuohI5K7lPsLLxVkRIqw8PBwvvvuO86dO+fclpCQwLRp06hUqZIbIxMRkbyi3C8FnUbIiOQ+5f7CSQUZkSLsmmuuoVKlSvz444/ObT/++CPh4eE0adLEuS0xMZGRI0dSpkwZfHx8aNOmDf/++2+6c82ZM4eaNWvi6+tLhw4d2Lt3b4brrVixgrZt2+Lr60t4eDgjR44kLi4uz56fiIhkpNwvBZ2zEaYqMiK5Rrm/cFJBRsRFxhjik1Ly/ZbdYb333HMPEydOdH791Vdfce+996bb56mnnmLmzJlMnjyZtWvXUr16dTp37kxUVBQABw4coHfv3nTr1o3169czZMgQnnnmmXTn+O+//+jcuTO9e/dm48aNfP/99yxfvpwRI0ZkK24RkYLCXXlfuV+KKi1iI4WBcr9yf37wcHcAIoXNueRU6r4wP9+vu+Xlzvh5uf5fdsCAAYwaNYq9e/disVj466+/+O6771iyZAkAcXFxfPLJJ0yaNImuXbsC8Pnnn/P777/z5Zdf8uSTT/LJJ59QtWpV3nvvPSwWC7Vq1eK///7jzTffdF7n7bffpl+/fjz66KMA1KhRgw8++IB27drxySef4OPjk+PvgYiIO7gr74NyvxRtRkNkpABT7lfuzw8qyIgUcaVKlaJ79+5MnjwZYwzdu3enVKlSzsd37dpFcnIyrVu3dm7z9PTk2muvZevWrQBs3bqV66677sIQY6Bly5bprrNmzRp27tzJt99+69xmjCEtLY09e/ZQp06dvHqKIiJyCeV+KcicPWRUjxHJVcr9hY8KMiIu8vW0seXlzm65bnbde++9ziGEH330UbrHHEMiLZeMHzbGOLdlZdhkWloaw4YNY+TIkRkeUyMxESnM3JX3HdfOLuV+KbCcP2NujkPkCpT7L0+5P/eoICPiIovFkq0hhO7UpUsXkpKSAOjcOf0bS/Xq1fHy8mL58uX069cPgOTkZFavXu0chli3bl1mzZqV7rhVq1al+/qaa65h8+bNVK9ePW+ehIiImxTGvA/K/VJwXVhlSRUZKbiU+y9Q7s87auorUgzYbDa2bt3K1q1bsdnSV9z9/f0ZPnw4Tz75JPPmzWPLli0MHTqU+Ph47rvvPgAeeOABdu3axf/+9z+2b9/O1KlTmTRpUrrzPP3006xcuZKHHnqI9evXExkZyS+//MLDDz+cX09TREQuotwvBZVzkSXVY0RynXJ/4aKCjEgxERQURFBQUKaPjRkzhttuu40BAwZwzTXXsHPnTubPn09oaChgH3o4c+ZMfv31Vxo1asSECRN4/fXX052jYcOGLF26lMjISK6//nqaNGnC888/T/ny5fP8uYmISOaU+6UgspwfI6N6jEjeUO4vPCwmu2tq5UBMTAzBwcFER0df9gdFpCBISEhgz549VKlSRd3CJUuu9DNTnHNfcX7uUvgo94urlPszd7nnPu2f/Yz68T9urFOWLwY1c2OEIhco94urciP3a4SMiIiIiIjkmwvtRDVGRkSKNxVkREREREQk36iHjIiInQoyIiIiIiKSb9RDRkTETgUZERERERHJP84RMirJiEjxpoKMiIiIiIjkG0cPGZVjRKS4U0FGRERERETyjeV8ExkNkBGR4k4FGRERERERyTcaISMiYqeCjIiIiIiI5BuLesiIiAAqyIiIiIiISD5yFGRERIo7FWREJM8YY7j//vspUaIEFouF9evXuy2WvXv3uj0GEZHiQLlfrsa57LUGyIgUGcr92aOCjEgRY7FYrngbPHhwvsUyb948Jk2axOzZszly5Aj169fPl+sOHjyYXr16pdsWHh6erzGIiOQn5X7l/sJEI2REcodyf+HP/R7uDkBEcteRI0ec97///nteeOEFtm/f7tzm6+ubbv/k5GQ8PT3zJJZdu3ZRvnx5WrVqlSfnd4XNZqNcuXLuDkNEJE8o92dOub9gM2rrK5Ijyv2ZK0y5XyNkRIqYcuXKOW/BwcFYLBbn1wkJCYSEhPDDDz/Qvn17fHx8+Oabbxg9ejSNGzdOd55x48ZRuXLldNsmTpxInTp18PHxoXbt2nz88ceXjWPw4ME8/PDD7N+/H4vF4jxX5cqVGTduXLp9GzduzOjRo51fWywWvvjiC2699Vb8/PyoUaMGv/zyS7pjNm/eTPfu3QkKCiIwMJDrr7+eXbt2MXr0aCZPnszPP//s/OvAkiVLMh26uHTpUq699lq8vb0pX748zzzzDCkpKc7H27dvz8iRI3nqqacoUaIE5cqVSxeniEhBodyv3F8YacqSSM4o9xf+3K+CjIirjIGkuPy/5eKnlqeffpqRI0eydetWOnfunKVjPv/8c5599llee+01tm7dyuuvv87zzz/P5MmTM93//fff5+WXX6ZixYocOXKEf//916UYX3rpJe644w42btxIt27d6N+/P1FRUQAcOnSItm3b4uPjw6JFi1izZg333nsvKSkpPPHEE9xxxx106dKFI0eOcOTIkUwr9YcOHaJbt240b96cDRs28Mknn/Dll1/y6quvpttv8uTJ+Pv78/fff/PWW2/x8ssv8/vvv7v0XESkkHNX3lfuV+4voiwW9ZCRQkC5X7k/H3K/piyJuCo5Hl6vkP/X/b/D4OWfK6d69NFH6d27t0vHvPLKK4wdO9Z5XJUqVdiyZQuffvopgwYNyrB/cHAwgYGB2R4yOHjwYPr27QvA66+/zvjx4/nnn3/o0qULH330EcHBwXz33XfOYZc1a9Z0Huvr60tiYuIVr/vxxx8THh7Ohx9+iMVioXbt2hw+fJinn36aF154AavVXq9u2LAhL774IgA1atTgww8/ZOHChXTq1Mnl5yQihZS78j4o9yv3F0mOFjKasiQFmnK/cn8+5H4VZESKoWbNmrm0/4kTJzhw4AD33XcfQ4cOdW5PSUkhODg4t8MD7AnRwd/fn8DAQI4fPw7A+vXruf7663M0B3br1q20bNnS+Vc6gNatWxMbG8vBgwepVKlShjgAypcv74xDRKQwUe5X7i8oHN/+oj5C5sTZRJbvPEH10oE0qJg3/2dErka5v2DnfhVkRFzl6WevWrvjurnE3z99xd1qtWIu+VSUnJzsvJ+WlgbYhy+2aNEi3X42m82la1/tWg6XJl2LxeKM49IGZdlhjEmXlB3bHNfKShwiUky4K+87rp1LlPuV+wsK57LXbo4jLxhjmLJqH7PWHWLdgTMYAwHeHvz1TEeCffOmmarkEeV+5f58yP0qyIi4ymLJtSGEBUXp0qU5evRoumR1cROssmXLEhYWxu7du+nfv3+Or3VxR/iYmBj27Nnj0jkaNmzI5MmTL9sp3svLi9TU1Cueo27dusycOTPdc16xYgWBgYGEhYW5FI+IFHFFMO+Dcr9yv/tYLsxZKnJ+WH2AF37e7Pzax9NKbGIK3/2zn2HtqrkxMnGZcr9yfz5QU18RoX379pw4cYK33nqLXbt28dFHHzF37tx0+4wePZo33niD999/nx07dvDff/8xceJE3n33XZeu1bFjR6ZMmcKff/7Jpk2bGDRokMvV9hEjRhATE8Ndd93F6tWriYyMZMqUKc5l/ipXrszGjRvZvn07J0+ezLQS/+CDD3LgwAEefvhhtm3bxs8//8yLL77I//73P+c8UhGRoky5X7nfXYpyD5npqw8C0PfaSqwadQMv96wPwKQVe0lO1SgrcT/l/oKV+/XOIyLUqVOHjz/+mI8++ohGjRrxzz//8MQTT6TbZ8iQIXzxxRdMmjSJBg0a0K5dOyZNmkSVKlVcutaoUaNo27YtPXr0oFu3bvTq1Ytq1Vz7i1HJkiVZtGgRsbGxtGvXjqZNm/L55587q+ZDhw6lVq1aNGvWjNKlS/PXX39lOEdYWBhz5szhn3/+oVGjRjzwwAPcd999PPfccy7FIiJSWCn3K/e7S1HtIbPvVByr953GaoFHb6xBuWAfejauQKkAb45EJzDnvyNXP4lIHlPuL1i532IundSVD2JiYggODiY6OpqgoKD8vrxIliUkJLBnzx6qVKmCj4+Pu8ORQuBKPzPFOfcV5+cuhY9yv7hKuT9zl3vu8zYd5YFv1tA0IpSZwzMuUVtYjftjB+P+iOT6GqWYct+F3hvjF0Yy9vcd1A8L4tcRbTL0spCCQblfXJUbuV8jZEREREREJN9cGCFTdIbIGGP4ad0hAG5tkr4nRf/rIvDxtLLpUAx/74lyR3giUkCpICMiIiIiIvmmKPb0Xbv/DPtOxePraaNzvXLpHivh78Vt11QE4Is/XWtoKiJFmwoyIiIiIiKSbxxTdorQABl+Wmdv5tu1fjn8vTMuZHtvG3vvjYXbjnHozLl8jU1ECi4VZEREREREJN8UtREyiSmp/LrB3rD31msyX0K3WukAGlUMxhhYvVfTlkTETgUZERERERHJN86etkVkiMzibSeIPpdM2SBvWlUrddn9mlQKBWDd/jP5FJmIFHQqyIiIiIiISL5xNvV1bxi55o+txwC4uWEFbNbLr6DUpFIIAOsOnMmHqESkMFBBRkRERERE8o2ForXs8/rzBZaW1Upecb9rzo+Q2XI4moTk1LwOS0QKARVkREREREQk3xWFGUsxCcnsOhELQKPwkCvuWzHUl5L+XiSnGjYfjsmH6ESkoFNBRkRERERE8o9zylLhr8hsOhiNMfZiS6kA7yvua7FYLkxb2n86H6ITkYJOBRkRyXcWi4VZs2a5OwwREclHyv3iUJR6+jr6wVxtdIyDs7Gv+shIMaHcf2UqyIgUUcePH2fYsGFUqlQJb29vypUrR+fOnVm5cqW7QxMRkTyi3C+FgeV8V9+iUJDZcL6w0rhiSJb2b3K+cLNeKy1JLlLuL7w83B2AiOSN2267jeTkZCZPnkzVqlU5duwYCxcuJCoqyt2hiYhIHlHul8LAOULGrVHkjg0HzwDQ+PxUpKtpGB6CxQKHzpzjWEwCZYN88i44KTaU+wsvjZARySc7dsDcuRAZmffXOnPmDMuXL+fNN9+kQ4cOREREcO211zJq1Ci6d+8OwLvvvkuDBg3w9/cnPDycBx98kNjYWOc5Jk2aREhICLNnz6ZWrVr4+fnRp08f4uLimDx5MpUrVyY0NJSHH36Y1NQLKwVUrlyZV155hX79+hEQEECFChUYP378FeM9dOgQd955J6GhoZQsWZKePXuyd+9e5+NLlizh2muvxd/fn5CQEFq3bs2+ffty95smIpIHlPsvT7m/+HIue13Ih8gciT7HsZhEbFYL9SoEZemYAG8PapUNBGCdRskUWcr9l6fcn54KMiJ5LCoKunQ11KoF3bpBzZr2r0/nYS+3gIAAAgICmDVrFomJiZnuY7Va+eCDD9i0aROTJ09m0aJFPPXUU+n2iY+P54MPPuC7775j3rx5LFmyhN69ezNnzhzmzJnDlClT+Oyzz5gxY0a6495++20aNmzI2rVrGTVqFI899hi///57pnHEx8fToUMHAgICWLZsGcuXLycgIIAuXbqQlJRESkoKvXr1ol27dmzcuJGVK1dy//33O4c7i4gURMr9yv1yeUVl2WvHdKWaZQPx88r6xANHY9/16iNT5Cj3K/e7zLhBdHS0AUx0dLQ7Li+SZefOnTNbtmwx586dy/Y5OndJM55+SaZkj7UmbPgfpmSPtcbTL8l07pKWi5FmNGPGDBMaGmp8fHxMq1atzKhRo8yGDRsuu/8PP/xgSpYs6fx64sSJBjA7d+50bhs2bJjx8/MzZ8+edW7r3LmzGTZsmPPriIgI06VLl3TnvvPOO03Xrl2dXwPmp59+MsYY8+WXX5patWqZtLQL34/ExETj6+tr5s+fb06dOmUAs2TJEte/CW5wpZ+Z4pz7ivNzl8JHuV+531XK/Zm73HNfHnnCRDw929z07lI3RZY73piz1UQ8Pds8M3OjS8d9/89+E/H0bHPHhBV5FJlkh3K/cr+rciP3a4SMSB7asQPmz7MQ1HETAfUO4xGUQEC9wwR13Mz8eZY8HcZ42223cfjwYX755Rc6d+7MkiVLuOaaa5g0aRIAixcvplOnToSFhREYGMjAgQM5deoUcXFxznP4+flRrVo159dly5alcuXKBAQEpNt2/PjxdNdu2bJlhq+3bt2aaZxr1qxh586dBAYGOiv8JUqUICEhgV27dlGiRAkGDx5M586dufnmm3n//fc5cuRITr89IiJ5Rrn/wtfK/ZKZCz1kCveUpfUH7MMeGocHu3ScY4TMxoPRpKSm5XZY4ibK/Re+Vu7POhVkRPLQrl32f33C0zfU8gk/BcDOnXl7fR8fHzp16sQLL7zAihUrGDx4MC+++CL79u2jW7du1K9fn5kzZ7JmzRo++ugjAJKTk53He3p6pjufxWLJdFta2tU/TFxuqGFaWhpNmzZl/fr16W47duygX79+AEycOJGVK1fSqlUrvv/+e2rWrMmqVatc+l6IiOQX5f70+2VGub+Yc/aQcW8YOZGaZvjvYDSQ9SWvHaqVDiDQ24NzyalsP3Y2D6ITd1DuT79fZpT7M1JBRiQPOYrMCQdKpNuecKAkANWr5288devWJS4ujtWrV5OSksLYsWO57rrrqFmzJocPH86161yaNFetWkXt2rUz3feaa64hMjKSMmXKUL169XS34OALf3Fq0qQJo0aNYsWKFdSvX5+pU6fmWrwiIrlJuf/C18r9khlHD5lCXI9h14lY4pJS8fOyUaNMoEvHWq0WZxFnw4HoPIhO3EG5/8LXyv1Zp4KMSB6qWRM6dzHELKpP7OYwUmJ8iN0cRsyienTuYqhRI2+ue+rUKTp27Mg333zDxo0b2bNnD9OnT+ett96iZ8+eVKtWjZSUFMaPH8/u3buZMmUKEyZMyLXr//XXX7z11lvs2LGDjz76iOnTp/PII49kum///v0pVaoUPXv25M8//2TPnj0sXbqURx55hIMHD7Jnzx5GjRrFypUr2bdvHwsWLGDHjh3UqVMn1+IVEclNyv3K/XJlRWGVpfXnV0hqEBaMzep6w9Ga51da2nUi9ip7SmGh3K/cnx1ZbwcuItkybaqFvv08mD+7sXNb5y6GaVPzrlt4QEAALVq04L333mPXrl0kJycTHh7O0KFD+b//+z98fX159913efPNNxk1ahRt27bljTfeYODAgbly/ccff5w1a9bw0ksvERgYyNixY+ncuXOm+/r5+bFs2TKefvppevfuzdmzZwkLC+OGG24gKCiIc+fOsW3bNiZPnsypU6coX748I0aMYNiwYbkSq4hIXlDuV+6Xy7vQQ6bwWn/wDACNXZyu5FC1tD8Au1WQKVKU+5X7XWUxbihNx8TEEBwcTHR0NEFBQfl9eZEsS0hIYM+ePVSpUgUfH58cnSsy0j53tHp18qxCXhBUrlyZRx99lEcffdTdobjFlX5minPuK87PXQof5X7XKfcr92fmcs/9nz1R3PHpSqqW8mfRE+3dF2AO9Bj/J5sOxfBx/2vo1qC8y8ev3HWKvp+volIJP5Y91SEPIhRXKfe7Trk/57lfI2RE8kmNGkU7IYuISEbK/SIZOacsuTeMbEtNM0Qes49sqVs+e0W2audHyBw8HU9Ccio+nrZci0/cT7lfsko9ZEREREREJN84pywV0h4y+6PiSUxJw9vDSngJv2ydo3SgN4HeHqQZ2HcqPpcjFJHCQiNkRCRX7d27190hiIhIPlPuF1cU9hEyO84vVV2jbEC2GvqCfVngqqX92XAwmt0nYqlVzrWVmkQKAuX+nNMIGRERERERyUd51+A0P+w4ai/IOFZKyq5qpQMArbQkUpypICMiIiIiIvmukM5YYvux3CnIXFhpKS7HMYlI4aSCjEgWpKWluTsEKST0syJSdOj/s2SVflZcc2HKUuGsyDga+tbSCJkiSf+fJaty42dFPWRErsDLywur1crhw4cpXbo0Xl5eWCyFe5it5A1jDElJSZw4cQKr1YqXl5e7QxKRbFLul6xS7s+eC0193RpGtiSnprH7pL2AUqNsQI7OVa2M/fjdJ+IwxijPuJlyv2RVbuZ+FWRErsBqtVKlShWOHDnC4cOH3R2OFAJ+fn5UqlQJq1UDEEUKK+V+cZVyv2scv+QWxoLM3pNxJKca/L1shIX45uhcESX9sFrgbGIKJ84mUibIJ5eilOxQ7hdX5UbuV0FG5Cq8vLyoVKkSKSkppKamujscKcBsNhseHh76a4pIEaDcL1ml3O+6wvydcvaPKReY49fc28NGeAk/9p2KZ9eJOBVkCgDlfsmq3Mr9KsiIZIHFYsHT0xNPT093hyIiIvlEuV8kbzh7yBTCITLOFZbK5M4y1VVL+Z8vyMTSslrJXDmn5Ixyv+QnjasUEREREZF8Yzk/RqbwlWNgx/mGvjXL5U5BxtHYVystiRRPKsiIiIiIiEi+uTBCxr1xZMcO55LXOWvo61BVKy2JFGtFfsrSjh2waxdUrw41arg7GhERyQ/K/SIiBV9uL3ud17k/ITmVvafsI1lyuuS1Q7XS/oAKMiLFVZEdIRMVBV26GmrVgm7doGZN+9enT7s7MhERySvK/SIiBV9uj5DJr9y/60QsaQZC/DwpHeidK+d0jJA5dOYcCclqIitS3BTZETL9+hsWLUuhZI9N+IRHkXCgBIsW1advPw/mzS3Mvd1FRORylPtFRAq+3O4hk1+53zldqUzOV1hyKBXgRZCPBzEJKew5GUed8kG5cl4RKRyK5AiZHTtg/jwLQR03EVDvMB5BCQTUO0xQx83Mn2chMtLdEYqISG5T7hcRKRxyc4RMfub+Cw19c6d/DNhX9Kmqxr4ixVaRLMjs2mX/1yc8Kt12n/BTAOzcmd8RiYhIXlPuFxEpHC4MLsl5ReZC7j+Vbnte5H7nkte51D/GoZoa+4oUW0WyIFOtmv3fhAMl0m1POFASsDf6EhGRokW5X0SkcHBOWcqFETLVqkHojZuwBSSm254XuX/7sbwpyFQ939h3z0mNkBEpbgpUQWbHDpg7lxwPLaxZEzp3McQsqk/s5jBSYnyI3RxGzKJ6dO5itOKGiEgBotwvIlK8OEbIJCblTu4v0fAolkt+q0k+FJqruT8uMYWDp8/Zr5nLBZnwEn4AHIiKz9XzikjBVyAKMnnRGX3aVAsd23pwanZjDn1yA6dmN6ZjWw+mTVVTRxGRgkC5X0Sk+ImKgmHD7ENjoqNNjnN/QnIqKZ720TGnF9cm8XAIAJWan8rV3L/zuH06UakAb0r4e+XaeQHCQ30BOHBaBRmR4qZArLKUF53RQ0Nh3lx7I6+dO+3DFWvU0AdyEZGCQrlfRKT46dff8Pd/qZSpDVafZEr2WJej3H/4jH3Uip+XjQVTqjJndTDjNv5NYOXThIbmXtwXpivlXkNfB8cImWMxiSQkp+Ljacv1a4hIweT2goyjM3rJHvbO6MD5fy3Mn92YyEhyNNSwRo2cHS8iIrlPuV9EpPhx5P5Sve2ddi3WnOf+A+enEYWH+lGzpoWwiBDGb7JwODqBw2fOUSHEN1dij8yj/jEAJf298PW0cS45lUNnzjmb/IpI0ef2KUtaFUNEpPhR7hcRKX4cud+73Jl023OS+w+en+ZT8fy0H39vD+qUtxdN1u7PwRzYSziWvK6RByNkLBYLldRHRqRYcntBRqtiiIgUP8r9IiLFjyP3Jx4JSbc9J7n/QNT5ETLnCxoATSvZ5yqt2Zd7BZm8HCEDEF7C0UfmXJ6cX0QKJrcXZLQqhohI8aPcLyJS/Dhyf+xftQD7stc5zf2XjpABuCbCXpBZu/9MjmMGOJuQzOHoBABqlsmbgkzFUHtB6aBGyIgUK27vIQP2VTH69vNg/uzGzm2duxitiiEiUsRMWbmXeLyIikui9gA4Ggb793kQu6kiqTG+XNv9NG+O8ccYPywWvQeIiBQ106Za6DPQk10AaRZOzW6co8/9jhEljoIGwDXnR8hsPhSdK01yI8+vsFQm0JtgP88cnetynEtfa6UlkWKlQBRktCqGiEjx8Oa87Vi9L3xophQElbrw5UGg52cQ7OtJw4rBNKkUSruapWkcHoLNqvcFEZHCLjTUXpS59jWw2gw7duTsc/+h8wUMx5QfsI+WKRPozfGziWw8GM21VUpc7vAsyevpSnDR0tdRmrIkUpwUiIKMg1bFEBEp2jrXK0uF0iUo4e+Nh81CSqohJS2N0/FJHD5jXxFj98k4os8l82fkSf6MPMkHCyMpFeBFh1pl6Nk4jFbVSmJVcUZEpNCynR8BaYDq1Q2QvZwen5TCydgkIP0IGYvFQtOIUOZuOsqafadzXJBxNPTN04KMRsiIFEvuLcjsWgQhJcCvJASWB99Q0BB1EZEia2yjIwSFJIKHD/iXgsBy4BOSLvcnp6ax/ehZ1h84w6rdp1i6/QQnY5OYvuYg09ccpGKoL3c2C+fO5uGUCfJx35MREZGs2T4XQkqCpw/4l8bmURJ7OcZCaprBw5a9z/+Hzk9XCvLxINg3/VSiiwsyObXDOUIm75ajdhRkzsQnczYhmUCfvJkaJSIFi3sLMj8MBO+LErDNG0IqQZnaULoOlK0H4S0gqLz7YhQRkdzz49D0eR/sxZmQCGfu9yxXn/rhLagfFsHd10WQlJLGv3ujmPPfEX7ZcJiDp88x9vcdjF+0k9uaVuSBdlWJKOnvnucjIiJXd0nuDwG2eHuz35TBMnM6lK0LZevbP/f7l8zyaQ84G/r6ZXisyfk+Muv2n8YYk6O+ZI6CTI08HCET4O1BqJ8np+OTORB1jroVVJARKQ7cW5ApWx88kiHuJJyLgtREOBVpv2399cJ+oZWhUiuocSNUvxF8gt0WsoiI5EBYM3veTz4HcScg4QykJMDJ7fYbP1/Yt0Q1iGiFV41OtK7WkdbVG/Bc97rM3XSEb//ez5p9p5n2z36+/3c/tzSqwOM31Uq37KmIiBQQFZqCZwokx5/P/dH4WRKpbTkAWw7Alp8u7FuqFkS0hBqdoWp78Lp8Xj942rHktW+Gx+qHBeFls3IqLol9p+KpXCp7hfvoc8kci0kEoEYejpAB+yiZ0/HRHDgdT90KQXl6LREpGNxbkLl3HgSdTzbJCRB7FKJ2w/FtcHwLHFkPRzfB6b3224apYPWAiFZQ71b7zTfUjU9ARERcMnDWhbwP9sLM2SNwajec2GrP/4fX2d8DonbZb+umgM0LKl+Pb/3e9K57C72vacU/e6L4eMlOlmw/waz1h5nz31EGtYpgRIcaebYKhoiIZMOgn9Pl/oT4s3R+5QeqWI7waWc/vKN2wKG1F4rzJ7fDmkn2EZRV2kH926BOD/BKX1Q5EHX5ETLeHjYaVAxmzb7TrNl3OtsFGUdD3/LBPgTl8TSi8FA/Nh6Mdj4vESn6Ck5TX08f+0iY0MpQreOF7QnRcOBf2LMUdsyDkztgzzL7be4zUKsrNBlgP8ZqdVf0IiKSHZ6+UKKq/Vbjxgvbz52GA//A7qWwfQ6c3gO7Ftpvvz0BdXpw7TUDuXbw9Ww6HMOYudtYvvMkn/+5h+lrDjKqa23uaBaupbNFRAogq5c/+0w59plyJFx7E96O/i9xp+DAKti9BLbPg+j9EDnffvstAOr2hGsG2qc2WSzOFYkcKxRdqmlEKGv2nWb1vtPc1rRitmJ1NPTNy+lKDhXPj/RxjPwRkaKv4BRkLscn2P4hvcaNcNMrcGoXbJsNG76z/wV1yyz7rWQNaDEMGvUF77wdTigiInnMNxRqdrbfOr9mL8Zv/dWe+09Fwn/T7bcy9ajfYhhTBt7O0j2xvD5nKzuOxfL0zP+YufYQr9/agOpl9J4gIlKQ2C5aKS8tzVx4wL8k1O5uv3V96/xn/V9g43f20fLrv7XfyjeGFg9w9HRZIPMRMgBNwkMA2HjwTLZjdTb0zYf3kvDzz+OgVloSKTYK35CSktWg9SMwfAUMWwbXDgPvIPsH9DlPwHt1Ycmb9pE1IiJS+FksULoWtH0CRvwLQxZBs3vB0w+Ob4ZfR2IZV5/2J6Yy54EmPNe9Dr6eNv7ZE0W39//ko8U7Sb34A7+IiLjVRfUYUs1l8rPFYl/go8MoGLke7pkHje+2T2M6sh5mPcBnUfdyj20ulYIyHw1ZP8zed3LHsbMkpqRmK9bI4+cLMuXyfoSMc+nrKI2QESkuCl9BxsFigfKNoNtb8L8t0PVtewPIhGhY8jq81wCWjIHEs+6OVEREcovFAhWbQo/34H9b4aZX7avzxZ+CP17EY3xjhlh+5o+Hm9GxdhmSUtN4e/527vpspebki4gUEBaLxVmUSctKwdxisTf67fURPLYFbniBtMDylOE0L3pOofq0NrDyY0hJTHdYxVBfQvw8SU417Dgam61YHVOWaubDlCXH1KsDp+MxlytUiUiRUngLMhfzDoQW99v/ctrnKyhdGxKjYckb8ME1sHoipKa4O0oREclNviHQ6mF4eB30+sTehyb+FPwxmrBv2vJl40je6dOAAG8P/t17mq7v/8lP6w66O2oREeHCtKXLjpC5HP+ScP3jbLtjOaOS7+MIpbDGHYP5o+DD5rD5Jzh/TovFQv0K9lEy/x1yffT8mfgkTpw9v8JSPkxZCgv1xWKB+KRUouKS8vx6IuJ+RaMg42C12buwD18JfSbaR8zEHYfZj8KENvbmkCIiUrTYPKBxP3joX+g1AYIrQcwhLLOG02fN3Sy8w4fmlUOJTUzhse83MOrH/0hIzt7QdRERyR3W803Xszul9GBMCtNSb+Chkl9Aj3EQUA7O7IPpg+GrznB4PXBh2tKmw64XZLYdtY+0Dwvxxd8771tvenvYKBvoA8ABNfYVKRaKVEFmxw6YOxcid1mhfm94cBV0GWNvDnliK3x9C/x4P8SecHeoIiKSS5y5f7cHNO5rHy1542h7f7EjGyg7/Ra+r/A9T7crg8UC0/7ZT58JKzSFSUTEjZwjZLJZkFm7w16wCPAKhmb3wMi10H6Uvb/Ygb/h8w4wbxSNy9gA2JSNETL/HbQfUz8s6Cp75p7w8yst6T1KpHgoEgWZqCjo0tVQqxZ06wY1a9q/Pn3WC64bDiPXQfOhgAU2fg8fNoO1U5zDGUVEpPC5bO6P9YE2j9lzf5O7AbCuncTw/+7itw7HCfX1YNOhGHqMX86KnSfd/CxERIqn7BZkHLn/rY/sBYtfv/O15/44f2j/DDy81j5i3qTBqo+5cdHN3Ghdw7YjZ0lKSXPpWhvOr87UsGKIS8flhGOlpQNaaUmkWCgSBZl+/Q2LlqVQssc6woYvpGSPdSxalkLffucTvG8odH8HhiyEcg0g4Qz8MgKm3glnj7o1dhERyZ6r5n7/UtDzIxg8B0rVgviT1F3xKCuqT6FNmIXoc8kM/Oofvlm1z71PRESkGHIUZNJc/AOpI/f71bR/hvcOP5U+9weVt/eUvPtHCK2CR9wRvvAay2uWj9l18JBL13IUZBrlY0GmolZaEilWCn1BZscOmD/PQlDHTQTUO4xHUAIB9Q4T1HEz8+dZiIy8aOeKTWHoEuj0Mti8IHI+fNQCNs10V/giIpINLuX+yq3hgeX2oexWD3wjf2VKwkierbaXlDTDc7M28eLPm0hJde0vpyIikn02Zw+ZrB9zce73CEoAwKdCdOa5v/oN8OBKaP0IaVi43WMZEd/dALsWZ+laUXFJzqJIg4rBWQ8yhxwrLR3UCBmRYqHQF2R27bL/6xMelW67T/gpAHbuvOQAmwe0fgSGLbMvm51wBmbcCz+PgCQlPhGRwsDl3O/hZR/KPuQPKF0bS9wJhh76P36u9gteJDN55T4e+GYt55LU7FdEJD9YszFl6ULuP5Vu+2Vzv6cvdHqZb+pMYG9aWfwSjsGUW+GPl666AqtjdEzVUv4E+3pmOcacCneOkNHvJSLFQaEvyFSrZv834UCJdNsTDpQEoHr1yxxYpo59ClPbJwELrJtib/51fGveBSsiIrki27m/QhO4fym0HAFAo0Pf8W+5t6jhcZw/th6j3xertNSoiEg+cIyQcWXKkjP3HwpNt/1quT+kdlu6Jr3BPJ+ugIHl78Kk7hB98LLX2njA3tC3UXhIluPLDWEh9hEyh6MTSMtmw2MRKTwKfUGmZk3o3MUQs6g+sZvDSInxIXZzGDGL6tG5i6FGjSscbPOEjs/BwJ8hoCyc2AafdYCN0/MtfhERcV2Ocr+nD3R+Dfr9AL4lCD6zmXm+z9HLZx3r9p+hzydagUlEJK9lp6mvI/fHrqwJ2NfniN1c4aq5v0FYMOfw4ZHYQaTeNtG+Ct+BVTChDexalOkxFxr65t90JYBywT5YLZCUksbJuMR8vbaI5L9CX5ABmDbVQse2Hpya3ZhDn9zAqdmN6djWg2lTLVk7QdV28MBfUK0jpJyDH4fAvP+76lBGERFxnxzn/pqd7b1lKrXClhzLON7mRf+f2HPyLHd8upJdJ2Lz9gmIiBRj1vO/haS62NR32lQLLVvZ76cleHJqdpOr5v6IEn4EenuQmJLGjlI32lsXVGgC507DN7fB8nHpVl81xrDRDSssAXjarJQN8gHg8JmEfL22iOS/IlGQCQ2FeXMt7NgBc+bYG37Nm2shNPTqxzoFlIb+M+D6J+xfr/oIpvSCOPuc1B07YO5c0jcLExERt8mV3B8cBoN+gRbDAbgndTrTAsYRGx3FHRNWMndljHK/iEgecE5ZcnFaTmgovDfe3u+rdIhHlnK/1WqhXlgQAJsORUOJKnDPPGhyt3157D9ehBn3QFIcAH+tS+BkbBI2i4V6FYKy8exyxjFt6dBprbQkUtQViYKMQ40a0LUrVx6qfiVWG9zwPNwxBbwCYO+fpH7akSG3bqdWLejWzT5UsktXw+nTuRq6iIhkU45zv80Tuo6BWz8DDx+uS1nNbL+X8Y0/yP3fr6TXkNPK/SIiuSw7TX0d4hLto9hLh3hkOffXr2CferTpkL03DJ4+cMuH0P1dsHrC5p9I+bwr/W45TOd+ZwCIPxJIr1us+Z77KzgKMmc0fVakqCtSBZlcU/cWe8Pf0MrYYvbydq1O9Or7BWHDF1KyxzoWLUuhbz812RIRKVIa3Qn3zofACkSk7WeWx4s0991CubtXUPr2v5X7RURykXPZaxenLAGcTbAXZAJ8PLJ8jGPp6v8cBRkAiwWa3weDZ4NfKTxObOCtGh1p1WEeAFavFLfk/rDzS19rypJI0aeCzOWUqc2uDgv5a38LQn2i+aHGU/QNnUdAvcMEddzM/HkWDWEXESlqKjRm9w0LWXukIaVs0Uzzeo0etlX4VT1JSPd1yv0iIrnE0dQ3Lc31Yx0jZPy9XSjIhJ0fIXM4hvikS/pEVrqOPTf+wZYTtagYeIRZZZ6mg3UdniXi3fK53zFC5qCmLIkUeSrIXMGOQ6W44etfmJVwPZ6WVN72/IwHbbPwCT8JwM6dbg5QRERy3fYjFWg7cS7zE5vjbUlmvOd4Btnm41vlBF4VTiv3i4jkAmsORsjEni/IBLpQkKlSyp/wEr4kpaSxPPJkhse3HatCqy8X8GdSA/wtiXzuOZY+tqX4hNv7SeZn7q/onLKkgoxIUaeCzBVUqwaJqT4M2fwyH6XcAsBTnj/wAt9iIY3q1d0coIiI5Lpq1SAuOYABm8YwOaUTVovhJc/JPOn5PWXv+BsTEn31k4iIyBVdGCGT/YKMv7cty8dYLBZuqF0WgD+2HsvweLVqEJ0Ywh073mJm6vV4WNJ4x/NThibNB0y+fu6/MGVJBRmRok4FmSuoWRM6dzHELGrAixse58Wz9wJwf5kfWTTiPmpUTXZzhCIiktscuf/MokY8vuFZ3ortC8AIj595038Czy9YwY5jZ90cpYhI4ZaTpr6OgkyAt6dLx3Wqay/ILNp2PEMhyJH74/dU4PHkB/gk6WYAXqz4KTPv/z9qVM+/PjKOKUvR55Kdz1VEiiYVZK5i2lQLHdt6cGp2Y15+9z3umvElyWmetC/5I3w/AJLVbEtEpKi5kPub8PTYCQz55QNSjZW+Hot5IeUDBn3+F3tPxrk7TBGRQstmr8dkb8qSo6mvCyNkAK6tUoJAHw9Oxiax/uCZDI9Pm2qhYovjgIX/++s5Hpv/OgC9y38Mvz4Caakux5odAd4eBPvai01a+lqkaFNB5rwdO2DuXDI07AoNhXlzLezYAXPmwCs/9cFzwDTw8IEdc2HanZCkD+UiIoVRVnP/098PwnbHRIzVg562FbyU+BaDP1/O0WgV5UVEsiMnU5YcTX1dWWUJwNNmpX2tMgB8+uuxDLk/wXqOc8EnAHhvZEUe/Poh6PkxWKywdjL89ACk5s+IlbAQTVsSKQ6KfUEmKgq6dDXUqgXdutmHK3bpajh9Ov1+NWpA1672f6nRCfrPAE9/2L0EvrkNEjV8XUSksMhW7q/XC8tdUzE2b26yreGl+FcZ8uUyzsQnueU5iIgUZo6mvinZKMiczcYqS2DP/Wt+sRdkfl17LEPu/+Hfg6QZaFGlBINvC7Dn/ib94bYvwOoB//0AMwZDat63LXCutKSCjEiRVuwLMv36GxYtS6Fkj3WEDV9IyR7rWLQshb79rvLmUOV6GPgzeAfD/pXwTR8VZURECols5/6anbH0n06apx/tbBt56vTLPDBxOeeS8mcYu4hIUeEcIZONKUvOETIuFmT69TesmR+KMeBVOpZSt/7rzP2paYYfVh8A4K5rw9MfWP82uPMbsHnB1l9h+uA8L8pUPN/YV1OWRIq2Yl2Q2bED5s+zENRxEwH1DuMRlEBAvcMEddzM/HmWDMMYMwhvDoN+Bp9gOLAKvr1dRRkRkQIux7m/ajusd88kzcOPtrb/GH70RUZ+s5Lk1LR8iV9EpCiw5UpT36wXZBy5P7D1ds4PzsG/5nFn7v9+6UkOnTlHkI8HXeuXz3iCWl2h7zSwecO22TDjnjwtylQI8QE0ZUmkqCvWBZldu+z/+oRHpdvuE34KgJ07s3CSCk1gwKwLI2W+vR0SY3M3UBERyTW5kvsjWmG9ewapHr60s23k7j2jeGHGakw2/tIrIlIc5XdB5mq5f8aa/QD0vqYiPp6XaRZc/Ua469sLI2Vm3JtnRZmwED8ADqkgI1KkFeuCTLVq9n8TDpRItz3hQEkAqlfP4onCroGBP10oynzXV6sviYgUULmW+yu3xnb3DFJt9qJMx01PM/73rbkYqYhI0WWzZH/KkmOVJVd6yFwu96cleeAdFsXGqGMA3Nk8/NJD06vRCe50FGV+gVnD82T1pbBQNfUVKQ6KdUGmZk3o3MUQs6g+sZvDSInxIXZzGDGL6tG5i7E38sqqsKYw4EfwCoA9y+CHgZCiRo8iIgVNrub+ym2w3f0DKVZvOtnWUvnP/zH93715FbqISJFhdY6Qcf1YRw+ZQBdWWbo096cl238N8ioVS7m7V5KSZmgUHkKd8kFZONlNcMfX5xv9TofZj0Euj5B0TFk6FpOgKbEiRVixLsgATJtqoWNbD07NbsyhT27g1OzGdGzrwbSpFtdPVrEZ9PveviR25Hz46f48qZiLiEjO5Grur9IWj7u+IdXiwS22lZhfHmXZ9mO5H7SISBHiGCGT6mIhIy3NEHe+kbqrTX0vzv0H3uvM8ZnN8I8pjSPzD7wuIusnq9UVen92YUns+c/malGmlL83Xh5W0gwcjdbIe5GiyrUsVgSFhsK8ufYmjjt32oeq16iRjQ/kDpXb2IcxTrsLNv9kHzFzy3ic3cNERMTtcj3317wJa58vSZt+D3fYFvP11McoN3wCNctl4S+tIiLFkHOVJRd7yMQlpTjvu7rsdfrcb6V69bLUqFGWg6fjORB1juuqlrj6SS5W/zZIiodfRsCqj8AnCNo/49o5LsNqtVAh2Ie9p+I5dOYc4SX8cuW8IlKwFPsRMg41akDXrrg2VP2yJ7sR+nxlr5ivmwILX86Fk4qISG7LzdxvqdeL1JvHAzDQ8hsLv/g/TsYm5vzEIiJFkDWbTX0dDX09bRa8PbL3q8ylub9iqB8tq5XEkp0/oF4zALq8ab+/5A3498tsxZSZMC19LVLkqSCTV+reAj3G2e8vfxdWfuzWcEREJO95Nr2b+Pb2IvzwlClM+/R1EpI1dVVE5FK287UPV5v6OvrH+Ht7ZK+AkheuewDaPmW//9vjsHlWrpw2LOR8QUaNfUWKLBVk8lLTQdDxefv9+aNg4w/ujUdERPKcX/tHON3kQQCGx3zA5EmfaDlsEZFLZHeEzNkE15e8zhcd/g+a3gMY+HEo7F6a41NWCNFKSyJFnQoyee36x6HFcPv9WcNh9xK3hiMiInkv9JbXOVatDx6WNAYefIkZP89yd0giIgVKdpv6xiVmr6FvnrNYoPtYqHMLpCbB93fDsc05OqVGyIgUfSrI5DWLBTq/DvV6Q1oKfD8gx8lZREQKOIuFsv0+5VDp6/G1JNFx3cMsW/W3u6MSESkwstvUNzYxGSiABRkAqw1u+wIiWkNiDHzTB6IPZft0zoKMesiIFFkqyOQHqxV6fXIhOX97e46Ss4iIFAI2D8KGfMch31qUtJwlYu5Aduze4+6oREQKhAtTllw7Lvb8CBlXV1jKNx7ecNe3UKoWnD1s/9yfEJ2tUzmb+p45p6mvIkWUCjL5xdMH7vwGStWEmEMw9Q5IiHF3VCIikpe8Ayj7wM+csJUlwnKUpCl3EHUmex/MRUSKkuxOWYpNOD9CxqeAFmQAfEPh7hkQUBaOb7aPkE9Ndvk05YN9sVggMSWNU3FJeRCoiLibCjL5ya8E9J8B/mXg2CaYeR+kprg7KhERyUMeweXxHvwjMQRQ3+xg24QBpKQo94tI8Zb9KUvnm/p6FeCCDEBIJej3A3j6w56l9tWXXCw+eXlYKR3gDWjakkhRpYJMfguNgL7fgYcPRC6ABc+6OyIREcljQeH1ib7lS5KNjVYJS1nx5RPuDklExK2s2R0h42jqW5BHyDhUaAx9vgQssHYyrPzQ5VNcPG1JRIoeFWTcoWJTuPVT+/2/J8Dfn7k3HhERyXPh13RhW/OXAWh7ZCL/zvrIzRGJiLiP7fxvIa4ue+1o6ltge8hcqlZX+wIfAAueh62zXTpcjX1Fija3FmQSklPdeXn3qtcLbnjRfn/e07DzD7eGIyIiea9BjxH8EzYIgEbrnmfXauV+ESmeLjT1zd6y14GFpSADcN1waHYfYODHoXBkQ5YP1QgZkaLNrQWZruOW8cWfu4lPKqZz6ds8Bo37g0mD6ffCyUh3RyQiInms2b3vscavDV6WVEJn38uZI7vdHZKISL7zyGZB5myC/feGQjNCBsBiga5vQbWOkBwP0/pB7PEsHVoxRAUZkaLMrQWZE7FJvPrbVq5/czEfL9nJ2QTXu48XahYL9HgPwltAYjRMuwvOnXF3VCIikoesNhvVh33LTmtlShDNma/6kJoQ6+6wRETylWOVpTQXe8jEOZr6FoYeMhezeUCfr6BkdYg5CN/fDSmJVz3MOUJGU5ZEiiS3FmRG31yXSiX8OBWXxFvzttN6zCLe+30HZ+KL0bJuHt725bCDKsKpnTDjXq28JCJSxAUHh0DfaZwyQVRO3kXkZwMgLc3dYYmI5JvsTllyrrLkbcv1mPKcb6h9cQ/vYDjwN/z2v6uuvBQW4gdohIxIUeXWgkyfZuEserwd793ZiGql/YlJSOH9hZG0eXMxb87bxsnYq1eNi4SAMtB3Gnj6wa6F8MeL7o5IRETyWPUaddna7hOSjI3aUYuInKncLyLFR45HyHh75npM+aJUDbj9K7BYYd038PenV9y9QogPANHnkp3FKBEpOty+ypKHzcqtTSqy4LF2fNivCbXLBRKbmMInS3bR5s1FvPzrFo5GJ7g7zLxXviH0+sR+f+WHsHG6e+MREZE816ZjD+ZVfhqAapvGc+zfn9wckYhI/sjuCJmziY4eMoVwhIxD9Ruh0yv2+/P/D/b8edldA308CTo/PUvTlkSKHrcXZBxsVgs9GlZg7iPX88XAZjSqGExCchpf/bWHtm8t5rlZ/3HwdLy7w8xb9XrB9Y/b7/8ywqUO7CIiUjh1Hfgk83x7YLUYAn57kIQj29wdkohInrM5CzKuHecYIRNYWEfIOLR8CBrcASYVpg+CM/svu2tYqGPaUhH/XUikGCowBRkHi8XCjXXLMuuh1nx977U0rxxKUmoa36zaT/u3l/Dk9A3sORnn7jDzTodnoXonSEmA7+6GuFPujkhERPKQp81K46GfsJY6+BNP9MTbMQnR7g5LRCRPZWfKUmqaIT7Jvux1oR4hA/bFPW5+H8o1hPhT9ia/yZmPgAlzrrRUDGYNiBQzBa4g42CxWGhbszTTH2jFd/dfR5vqpUhJM0xfc5Abxi7hke/WsePYWXeHmfusNrjtCyhRFaL3w4zBavIrIlLElSsRRGqfSRw2JSibtJ9DEwepya+IFGnZmbIUl3ThM3GhW2UpM15+cNe34FfSPjL+10czbfJbUSstiRRZBbYgc7HrqpbkmyEt+PHBVtxQuwxpBn5ef5ib3lvGA1PWsOlQEftLom8I3DUVPP1hzzJY9Iq7IxIRkTzWvH5t/rpmHInGg4rHFnNs7hvuDklEJM/Y7PUYUl0YIRObYC/IeNoseHsU8hEyDiGV4PZJYLHBxu/g3y8y7HJhhIwKMiJFTaEoyDhcUymULwc3Z/bDbehavxwA8zYfpcf45dwz8R/W7Dvt5ghzUZk60PND+/2/xsGWX9wajoiI5L3bbr6FqaVGAlDq33eI3/q7myMSEckbjh4yaa6MkHGusFQERsdcrEpbuHG0/f68UXDgn3QPhzlHyKiHjEhRU6gKMg71w4L55O6mLHisLT0bV8BqgcXbT3DbJyvo/8UqVu46hXFxCb0CqX5vaDnCfn/Wg3Bih3vjERGRPGW1Wuh17yh+td2IjTTSpt+LOb3P3WGJiOS67ExZurDCUhEryAC0ehjq9oS0ZPhhIMQedz6kETIiRVehLMg41CwbyPt3NWHR4+25o1lFPKwW/tp5ir6fr+KOT1eydMeJwl+YufEliGgDSWfhhwGQGOvuiEREJA+F+ntRsf+H/JdWhYC0GE5N7Aspie4OS0QkV2WnqW+RHSED9ia/PT+CUrXg7BGYca+zj6RjhMzxs4kkpai/mEhRUqgLMg6VS/nzVp9GLHmyPQOui8DLZuXfvacZ9NU/9ProL37fcqzwFmZsHnD7RAgoBye2wezHMm32JSIiRUeTquXZcv1HnDYBlIrZzKkfn3B3SCIiuSo7I2QcPWSKZEEGwDsQ7vwGvAJg75+w+DUASvp74e1hxRg4Eq1RMiJFSZEoyDhUDPXjlV71+fPpDtzXpgo+nlY2HIxm6Ner6fr+n8zeeNilpF9gBJSxF2UsNvjvB1j9lbsjEhGRPHbHja2YUv7/ACi55WvOrZnm5ohERHKPY4RMqgsfzWMdI2SKwgpLl1O6Jtzygf3+8ndh+zwsFoumLYkUUUWqIONQNsiH53vUZfnTHXmwfTUCvD3YdvQsI6auo9N7S5m55iDJqYVsuF9Eq4uafT0Dh9a6NRwREclbFouFQQPvZ5LH7QBYZz+KOb7NzVGJiOSO7DT1jS3KU5YuVv82uHaY/f5Pw+D0vosa+6ogI1KUFMmCjEOpAG+e6lKbv57uyKM31iDY15PdJ+J4fPoGOo5dwtS/95OYkuruMLOu1cNQuwekJsEPg+BcEVpVSkREMgj286TR3WNYkVYPb5NA9OS+kBTn7rBERHLMMWUpJS3rfyQt8lOWLnbTqxDWDBLOwPRBVAqyL/OtETIiRUuRLsg4BPt58uiNNVn+dAee7lKbkv5eHIg6x//99B/t317CpL/2kJBcCAozjmZfoVUgej/Mekj9ZEREirgmlUuxu90HHDWhhMTt5sz0h5X7RaTQczb1dWHQemxSMSrIeHjB7ZPANxQOr+OO058BGiEjUtQUi4KMQ6CPJ8PbV+PPpzvwfI+6lAn05kh0AqN/3UKbNxfz2bJdzu7tBZZviD0527xg+2+w6hN3RyQiInmsf8emTC7/PKnGQkjkTBJXf+3ukEREcsR2/reQVBcKzI4RMkVy2evMhITDrZ8C0Ojw93Sx/qMRMiJFTLEqyDj4eXlwX5sqLHuqA6/0qk9YiC8nYxN5fc422ry5iA8XRRKTkOzuMC+vQmPo/Lr9/u8vwME1bg1HRETylsViYeiAAXzm0df+9Zwn4dgWN0clIpJ9Nqv91xBXFtxw/OE0sCg39b1Uzc7Q+hEA3vL8lLSoPW4OSERyU7EsyDj4eNoYcF0ES55sz1t9GlK5pB+n45N5Z8EOWo9ZxNgF2zkdl+TuMDPXfAjU7QVpyTB9MMRHuTsiERHJQyX8vWja/xWWpjXEyyQSM6U/JMa6OywRkWxxjJBJc2WETGIxGyHj0PF5Ess3J8hyjmfj3iItKcHdEYlILinWBRkHT5uVO5qFs/Dx9rx/V2NqlAngbEIK4xftpPWbi3hjzlaOny1gic9isS+J5+gn84t6CoiIFHXXVi3FjpZjOWpCCYrdTcxPj7o7JBGRbLE6lr3WKktXZ/PEevtXRJkAGlh3kzD3WXdHJCK5RAWZi9isFno2DmP+o22ZcPc11C0fRHxSKp8u2831by5m9C+bORJdgOZt+gTb+8lYPWHbbPjnc3dHJCIieezezs35tNSzpBoLQdumk7x2qrtDEhFxmWPZaxVkssazRCVe9xwJgN+6L2Dbb26OSERygwoymbBaLXSpX57fRrbhq8HNaBweQmJKGpNW7KXtW4sZ9eN/7D8V7+4w7So0hptesd9f8Cwc2eDWcEREJG/ZrBaGDRzAZ9bbATCz/wcnI90clYiIa5yrLLkwwjsu0b4qakBx6iFzkf2l2vJ5Sjf7F7MehDMH3BuQiOSYCjJXYLFY6Fi7LD892Ipvh7SgRZUSJKcapv2znw5jl/C/79ez83gBmL/f4gGo1Q1Sk2D6PZB41t0RiYhIHioX7EPNPi+xIrUuXmnnOPvN3ZBcwKbWiohcgTUbI2TOOlZZ8iqeBZmKJXx5K+UujgXWg4QzMPM+SC3AC5GIyFWpIJMFFouF1tVL8f2wlvwwrCXX1yhFaprhx3WH6PTeUkZMXcu2ozHuDBB6fgRBYRC1C3573H2xiIhIvrihXgVWNn6DkyaIwDPbiJs9yt0hiYhkmWPKkgv1mOK5ytJFKpXwIxkPJld4AbyD4MDfsOQNd4clIjmggoyLrq1Sgin3teDnh1pzY52yGAOzNx6hy7g/Gfr1ajYcOOOewPxKwG1fgsUKG7+H9dPcE4eIiOSbET2v54NAexHef8NXpG751c0RiYhkjatNfVNS0ziXbJ+yVOxWWTovPNQPgPWxIXDz+/aNf74Lu5e6LygRyREVZLKpUXgIXwxqxtxHrqd7w/JYLPD7lmP0/OgvBn31D6v3umEZ6oiW0P78X0h/exxO7sz/GEREJN94e9gYPGgIE00PAJJ/fBCiD7o5KhGRq3O1qW9cUqrzvr+3LU9iKugqlbQXZA6cjof6veGagYCBH++HuJPuDU5EskUFmRyqUz6Ij/pdw++PtaN3kzBsVgtLd5ygz4SV3PXZSlbsPInJz+Wor38cKl8PyXEw815IScy/a4uISL6rWjqAwO6vsCGtKj4pMZyddg+kpV79QBERN3K1qa9jhSUvmxVvj+JZkHGMkDl8JoGU1DTo8iaUqgWxR+1NfvPzdw4RyRUqyOSS6mUCePfOxix6vB19rw3H02Zh1e4o+n3xN7d9soLF247nT2HGaoPen4FvqH3FpT9eyvtrioiIW93WvAqzqr1MrPEh8Og/JCwa4+6QRESuyHr+t5Asj5BxLHldTPvHAJQJ9MbLw0pqmuFIdAJ4+UGfr8DmDZHz4e8J7g5RRFykgkwuiyjpzxu9G7L0yQ4MblUZbw8ra/ef4Z5J/9Jj/HLmbTpCmivdy7IjqAL0/Nh+f9VHEPlH3l5PRETcymKx8NidXXjXaxgAXsvfwexb6eaoREQu70JT36x9LnausFRMpyuBfWWqiqG+AOyPirdvLFcfOr9mv//7C3D0PzdFJyLZoYJMHqkQ4svoW+rx59MduL9tVfy8bGw+HMMD36yly/vL+Hn9IZeW+XNZ7W5w7f32+7MegNjjeXctERFxuyAfT7rf/Rg/pV6PlTTiv7sXzp1xd1giIpmyudjUNz6peC957VCpxPk+Mo6CDEDzIVCrG6QmwYz7ICn+MkeLSEGjgkweKxPow/91q8PypzsyokN1Ar092HEslke+W8+N7y5l+uoDJKem5c3FO70MZepC3An7vNK0PLqOiIgUCE0jQjnW5hX2pZXB/9xh4n58WD0FRKRAsrrY1Pfc+aa+Pp7Fd4QMXOgjc+D0RUUXiwVu+RACysHJ7TD//9wUnYi4SgWZfFLC34snOtdi+TMdebxTTUL8PNlzMo4nZ2yk/dtL+GbVPhJTcrkJo6evfSlsmzfs/B3++TR3zy8iIgXO0E6N+bT0/5FirPhH/kLKum/dHZKISAaujpBJSLH/YdHHs3j/+uIYIbM/6lz6B/xLQu9PAQusmQhbf83/4ETEZcU7o7lBsK8nD99Qg7+e7sj/datNqQBvDp05x3OzNtH2rcV8uXyP8y8AuaJsXc0rFREpRmxWCyMG3MXHljsBSJv9BJza5eaoRETScy57ncVRfInJGiEDEF7C3kMm3ZQlh6rtofVI+/2fR0D0ofwLTESyRQUZN/H39uD+ttVY/nQHRt9cl3JBPhyLSeSV2Vto8+YiPlmyy7m8X441HwI1u9rnlc4cAsnnrn6MiIgUWhVCfKnR+zlWptbFK+0cZ6cOhtRkd4clIuLkmLKU1Rn1zhEyxXTJa4fwzHrIXKzDc1ChCSScsfeRVMsCkQJNBRk38/G0Mbh1FZY+1Z43ejcgvIQvp+KSeHPeNlqPWcT7f0QSHZ/DD9EWC/T8EALKwoltsOD53AleREQKrK4NK7K03sucMf4EntrIud9fdXdIIiJOzilLLo6Q8S7mU5YcBZlTcUnOpcDT8fCC3l+Apx/sWQYrx+dzhCLiiuKd0QoQbw8bfa+txOLH2zP29kZULe1P9Llk3vtjB63fXMRb87ZxKjYx+xfwLwW9zi+F/e/nsH1e7gQuIiIF1sjeHXjf9yEAvFe9j9m73M0RiYjY2Vxs6pvgmLJUzEfIBPl4EuzrCVzS2PdipapD1zft9xe+AofX509wIuIyFWQKGA+blduaVuT3x9oxvm8TapUNJDYxhY+X7KLNm4t5dfYWjsckZO/k1W+E6x603//5IS2FLSJSxPl5eXDbgBHMSGuHFUP8d/fBudPuDktExFmQAUjLQlEmIVlNfR0uLH19hTYETQZAnZshLRlm3gdJcfkUnYi4QhmtgLJZLdzcqAJzH7meTwc0pUFYMOeSU/li+R7avLWYF37exKEz2egFc8OLULY+xJ+0L4Wt5VBFRIq0+mHBnG3/OnvSyuKfcJSzM0cq94uI2zmmLEHWpi0lqKmvk6Ox7/7L9ZEBe8uCmz+AwApwaifMfzafohMRV6ggU8BZrRY61yvHLyNaM+me5jSLCCUpJY2vV+6j3VuLeXrGRvaedKHi7ekDt30BHj7nl8L+PO+CFxGRAmFQ+3pMKvcsKcZK4M5fSF43zd0hiUgxZ73ot5CsTFtKSHH0kFFB5qqNfR38SsCtE3Auhb3tt7wPTkRcooJMIWGxWGhfqwzTH2jJtKHX0bp6SVLSDN+vPkDHsUt49Lt1RB47m7WTlakDnV623//9eTi+Ne8CFxERt7NaLTx09518ar0DgLTZj8Ppve4NSkSKtXRTlrI0QkZTlhzCQ7NYkAGo2g5ajbDf/+VhOHs0DyMTEVcpoxUyFouFltVK8u2Q65g5vBUdapUmzcCs9Ye5adwyHvx2DZsPR1/9RNfeb+8pk5JgXwo7JQcNg0VEpMArE+RDrdte5N+0mninxRP97T2QmskKHSIi+cB68ZSlLIyQSdSy107OHjKXa+p7qY7PQ7kGEH/K3rJAS2GLFBgqyBRiTSNCmXjPtcx+uA1d6pXDGJjz31G6f7CcIZP/Zf2BM5c/2GKBnh+DX0k4tgkWvpxvcYuIiHvcWL8Cy+q9xlnjS/DJtcQtesvdIYlIMZW+qe/V91cPmQvCL2rqa7LSE8zD274UtocP7FoI/3yWxxGKSFapIFME1A8LZsKApsx/tC23NKqA1QJ/bD1Or4/+YsCXf/P37lOZHxhYFm750H5/5Yewe0m+xSwiIu7xUO8b+Nj3AQB8/nobc3C1myMSkeIo+0199etLWIgvFgucS07lZGxS1g4qUxs6vWK///sLalkgUkAooxUhtcoF8kHfJvzxv3b0aVoRm9XCn5EnufOzVdzx6Ur+jDyRsYpeuxs0HWy//9NwiI/K97hFRCT/+HjauGXgY/yW1hIbaZydeg8kxro7LBEpZqxWF6csne8h460pS3h5WCkf5ANcZaWlS107FKp3gtREtSwQKSBUkCmCqpYO4J3bG7Hkifb0a1EJL5uVf/ZEMeDLf+j18Qr+2HIsfWGm8+tQsjqcPQyzH9NyqCIiRVydCsGc6fgmh0xJguL3c2bWk+4OSUSKIce0pSw19U3RCJmLOaYtHcxqHxk437LgowstCxa9kkfRiUhWKaMVYeEl/Hj91gYsfao9g1tVxtvDyoYDZxjy9Wq6fbCcOf8dIS3NgJc/9P4crB6wZRZs+M7doYuISB7r164hU8o9Q5qxELJ1KkmbfnF3SCJFUmyimmdfjmPaUpaWvVYPmXQcBZn9p1woyED6lgUrPoTdS3M5MhFxhQoyxUD5YF9G31KP5U935IF21fD3srH1SAwPfruWm8Yt46d1B0kp1xjaP2M/YM6TWg5VRKSIs1gsDBkwiG+stwCQ/NMILYcqkss2HjzDDWOXuDuMAst6/jeRrBVktOz1xaqU8gdgz8k41w92tiww8NMDcO50rsYmIlmnjFaMlA705pmutfnrmY48ckMNgnw82Hk8lse+38AN7y7lB58+pFVsAUln4cdhWg5VRKSIKxXgTcTtr7E5LQL/1GhOTR2iaasiuei933cQl5jq7jAKrOyMkFEPGbuq5wsyu7JTkAF7y4IS1dSyQMTNXC7IDB48mGXLluVFLJJPQvy8eKxTTZY/05EnO9eihL8X+07F89SPW7j9+GCSbP5wYBX89Z67QxWRAkK5v+hqVzecZQ3eIMF4UvLIn5xd9rG7QxIpEtbuP83i7SfSLe9c2OR17nc09s3KKkuJKY4RMirIgL1nJMDu47FZW/r6Ul7+cNvnYLHB5p9g4/e5HKGIZIXLBZmzZ89y0003UaNGDV5//XUOHTqUF3FJPgjy8eShDtVZ/nQHnuteh9KB3qyJCebpcwMBSFs8hoS9/7g5SpEipBDP01buL9ruvbULE/3uBcB7yWjSjmk5VJGceu/3HQA8Vu2wmyPJvrzO/c6mvi71kNEAf4CIkn5YLXA2MYUTsdlcLSmsKbQfZb//2xNwel/uBShSnBkDu5ZkaVeXM9rMmTM5dOgQI0aMYPr06VSuXJmuXbsyY8YMkpOTXT2dFAB+Xh4Mub4qfz7VgVd61uPvgBuZnXodVpPCsUkD+fSP/4hJ0GsrkiM75sP3/d0dRbYp9xdt3h42bhz0HH+aRniZJKKmDNJyqCI58O/eKP6MPMmtHisYfOA5d4eTbXmd+51Tlq4ywsMYoxEyl/DxtFEx1N7Yd/eJbE5bAmjzGIQ7WhbcD2maYieSY6u/gh/uztKu2SoxlyxZkkceeYR169bxzz//UL16dQYMGECFChV47LHHiIyMzM5pxc18PG0MaFmZJU91JKnrOxy3lCSCIwQseZHWYxbx7oLtnIlPcneYIoVP7An4+SF3R5Fjyv1FW41yQRzv+C5RJoBSsds58csL7g5JpNB6d8EOKnCS170muTuUHMvL3O+csnSVETKOYgyAt4dGyDhULW3vI5OjgozNA3p/Bl6B9pYFy9WyQCRHTkbC/GezvHuOMtqRI0dYsGABCxYswGaz0a1bNzZv3kzdunV57z39Zy6svDys9G7VgJL9vwKgv8dCrk36mw8W7aT1mEW8MXcrJ7M7NFKkuDEGfhkBcSegVC13R5MrlPuLrt5tm/J9uScBKLnxU87tWOLegEQKoRW7TvL37hO85/UJvmmxUL6Ju0PKFXmR+x0jZNLSrryfY7oSaITMxaqWOt9H5kRszk4UWhm6vWW/v+QNOLQ2Z+cTKa5SkmDmEEg5B5XbZOkQlwsyycnJzJw5kx49ehAREcH06dN57LHHOHLkCJMnT2bBggVMmTKFl19+2eX4pWCxVW8PLUcA8HHgRFqWTSUuKZVPl+6mzZuLeOnXzRyNTnBvkCIFzI4dMHcuOP9guGYi7JgHNi/o+aFbY8sJ5f7iwWKxcNfAB/nFegNWDAnTh8K5M+4OS6TAc+T+HTsM7y7YwVDbb7SwbgVPf7jlfXeHl215nfttWWzq61jy2ma14GnTCBmHamXOr7SU04IMQKO+ULcnpKXAj0MhKQejbkSKiQyf+5eOgSPrwTcUuo/L0jk8XL1o+fLlSUtLo2/fvvzzzz80btw4wz6dO3cmJCTE1VNLQXTDC7BrMd7HNzO10jcs6vwBHyzexYYDZ5j4116+XbWf25tV5IF21Qgv4efuaEXcJioK+vU3zJ93YTWNe3tF8kXT/8MCcONoKFPHXeHlmHJ/8RHq70XZO8axd9qNVE4+xqFvHyRsyFR3hyVSIF2a+32qnqDjHet43OsH+w5d34QSVd0YYc7kde63ZXHKkrOhr6YrpeMcIZPdpa8vZrFAj3Fw4B84tRMWPAc9NOpVJDOZfe7/X58VvFP/Pfvn/h7jIKhcls7lckHmvffe4/bbb8fHx+ey+4SGhrJnzx5XTy0FkYe3fUm8zzpgiZzPDTVn0/HB+/hr5yk+WBTJP3ui+Pbv/Xz37wFubRLGg+2rOZfhEylO+vU3LFqWQskem/AJjyLlQBDDyzyBJeUcVGkHLYZDbC78BctNlPuLlxa1K/Ftg9ep+N9Qwg7+xqmV31CyZdaa04kUJ+lz/yl8PeMZ5/kRXpZUqN0DmtwNZ8+6O8xsy+vc71xl6WojZFIcKyxputLFqp3vIXMgKp7ElFS8PXL4/fErAb0+gSm97E1Ja3SGWl1yHqhIEXPp537PQ148XHE4FpMGjftDvV4QE5Olc7lcZh4wYMAVk7IUQWXr2f+6DzD/OSwnI2lToxQ/DGvJ9/dfx/U1SpGaZpix5iA3vruUh6etY/vRwvvhQ8RVO3bA/HkWgjpuIqDeYTyCEni20Yc0K7+eqHMh7Gn8CVgL91/1lPuLnztu7c30gL4A+Cx4ipRTe90bkEgBkzH3J/Js4BRqWA9xJLYMu+p9YB91UIjlde4/X4/JwggZrbCUmdKB3gR4e5BmYP+p+Nw5abUOcN35hQh+fghij+fOeUWKiMw+97/TcAyVgw+w+3QEu2qOcel8hfs3BMk/LR6Aqu3tDYp+HGJvWAS0qFqSKfe14KcHW3FjnTKkGfh1w2E6j1vGsCmr2XQo2r1xi+SDXbvs//qERwHQzLKNB20/AzBs9ji2HQ5zV2gi2eZps9LmnjFsMDXwN3EcnTxYy6GKXOTS3N/eup7BHgsAGDzrE3YcLOmu0AoN5wiZq62ydH7KkrenfnW5mMVicY6SyZU+Mg43vABl6kH8Sfh5hH2BAhEBLs79pwDoYV3JbbblpBorA376jB37glw6n7KaZI3VCr0m2BsUHdkAS15P93CTSqF8Mag5v41sQ/cG5bFYYP7mY/QYv5x7Jv7Dmn2n3RS4SN6rVs3+b8KBEgQSzzivj7FZDNNOdmHGllupXt298YlkV3ipIE7e9CFxxpuKMevY9+sb7g5JpMC4OPeXJJq3PT8F4NPjvVmw60bl/iywWrLY1Pf8stc+OZ2SUwQ5WgXsysnS15fy9LG3LLB5QeR8WP1l7p1bpJBz5P7UeG/Kc4rXPO3/P947cjcrDlzncu5XQUayLqg83Hx+pYDl42Dv8gy71KsQzEf9r+H3x9pya5MwrBZYvP0Et32ygn6fr2LFrpMYVdmliKlZEzp3McQsqs9zcT9Q0XKSvYnlGfHtJ3TuYqhRw90RimTfDa2v47ewRwEIW/cuMbv+dW9AIgWEM/cvrc0bti8pbYlmW1IET377vnJ/Frnc1FcjZDKoWso+QmZ3bhZkIEPLAk7syN3zixRSNWvCTV3S8PRJYKznJwRb4lmbVIMXpr2ZrdyvrCauqdsTGt8NGPhx2GWXQ61eJpD37mzMosfbc2ezcDysFlbsOkW/z//m9gkrWbL9uAozUqRMm2rhpV4/c2fJBaSmWen/7SSaXxfKtKmFu3+ACED3gU+yzNYSD1KJ++4ejJZDFQHsuX/0gA+4yXM1icaDOydNoVWrQOX+LMpyU1/HlCWNkMnAMUJm98k8WDigxfBMWxaIFHcPv3qS4SVn0sq2hXjjzcOnHqdtG99s5X4VZMR1XcdAaBWIOQi/PX7FXSuX8ufNPg1Z+lQHBraMwMvDyup9pxk88V9u+fAv5m8+etV5wyKFQajlAKPq/w+APeFPMGnhdcybayE01M2BieQCfx9PSvebwDETSvnkA+z4+hF3hyRSIHjEbuGx0u8AsLjEY8xY2ki53wXOKUtpV94v0dnUV7+6XKpamfM9ZI7H5v4fOy9tWbD4tdw9v0ghtWb1Hzzu8QMAL6UM5HBoENN/SslW7ldWE9d5B0Lvz8Fig00zYOMPVz0kLMSXl3vWZ/lTHRh6fRV8PW38dyiaYVPW0PX9P/llw+GrDlcVKbDSUuGnYZAYDWHNqH7vUxqqLkVOnWqVWdfU3kOm1sHp7Fs5w80RibhZShKx0wbjSxLrbI3oNGKUcr+LsjxlScteX1blkv5YLBCTkMKpuDwYwRJUHm4Zb7//1/uw58/cv4ZIIXLw2EnuPvQyXpZU4qp25a/Arhhg48HsLWajgoxkT3hzaPe0/f5vj8PpfVk6rEyQD892r8tfz3TkoQ7VCPD2YPuxs4ycto5O7y5lxpqDJF/tzyQiBc1f78O+v8DTH3p/BjZPd0ckkic633wXC4L6ABC04H/ERR12c0Qi7nN23suUj9/OaRNAXPfx2GwqFrjKZnFtypIKMhn5eNoIC/EF8qCPjEOdm6HJAMDATw/AOS3WIcXX8ZlPUc16hNPWEvj3+ZgmESUAWLc/e/8vVJCR7Lv+cQhvAYkx8OP9kJqS5UNL+HvxZOfa/PV0Rx67sSbBvp7sPhnHE9M30HHsEqb+vZ/EFC2vKoXAobUXhvB2ewtKVnNvPCJ5yGKx0Py+cURaIgg10ez/crCWQ5Xiac+f+K/+EICvQh+ldZOGbg6ocLKe/00k5apNfTVl6UqcfWRyc+nrS3UZAyWq2lsWzH5MuV+KpaTNv3HN8ZkA7GrzDviVoHF4CADrD5zJ1jmV1ST7bB720QBegXBgFSx/1+VTBPt58siNNfjrmY4807U2Jf29OBB1jv/76T/avbWEiX/t4VySCjNSQCXFwcwhkJYCdW6Bxv3dHZFIngsNDuTczZ+SYDypE/c3G2a+6e6QRPLXudMkzxiKFcP3Ke3p2HsIFoua+GaHs6nvVQoyjj/Sqalv5qqVPr/S0sk8bLjuHQC3fQFWD9j8E2yYlnfXEimIzh6DXx4CYKq1B43b3QpAk0ohAKzbfyZbfZxUkJGcCa0M3cfa7y8ZAweytxxqgLcHD7SrxvKnO/JCj7qUDfLmaEwCL/26hevfWsSnS3cRm5j1ETgi+WLeMxC1C4LC7EvC6wO5FBMNr2nJymqPAVD7v3c4sE1LYUsxYQzm10fxjDvC7rRy/F3rKZpUUgff7LrQ1DerI2RUkMmMY4TMzuN5OEIGIKwptB9lvz/nSYjanbfXEyko0tJg1nC8Ek+zJS2CrfX+h4fNXkqpVyEIL5uVU3FJHIg65/KpVZCRnGt0JzS4HUyqfUm8hJhsn8rXy8a9baqw7KkOvNqrPhVDfTkZm8Qbc7fR5s1FfLAwkuhzybkYvEg2bfkF1n4NWODWT8GvhLsjEslXbfuPYo13C7wtyaT8cB8J8Xn8i4BIQbB+KpYts0g2Np5Me5hHuzVxd0SFmrOpb5Z7yOhXl8zULhcIwNYj2f8MnmVtHoOINpAUCzOHQqo+l0sx8M+nsGshiXgxMvkh2tap6HzI28NGnQpBAKw74HofGWU1yR3dx0JIJTi9F+Y+5dKhO3bA3LkQGXlhm7eHjbuvi2DxE+15u09Dqpby50x8Mu/+voM2YxbxzvztROVFJ3mRrIg5zP+3d99xVdbvH8dfZ7CXguJAcOHeI/duOLJpVmpqtkvbe9evb7tsp1mZpWnZMMuchXvvrbi3OADZ43DO748bEBIEFDjAeT8fj+9DOPNz+MbFfV/3dV0f/nrE+LrbY1C3u1OXI+IMFouZ0FHfcoZK1LUfYuPEom2FnVfsFynTzu7DkXmMM9Y2mHZdriQsyNvJiyrfsof6FrJCRi1LeWtSwx+TCU6cS+FMQmrJvpnZAjd/BZ4BcGwdLC5a26piv5Q7J7fBglcAeCN9GIfNYXSpH5TrIW0y58hsPBxb5JdXQkaKh2dA5lbYZqOndMsvBT4lOhr69XfQqBEMGAANGxrfx+RILLpZzAxuH8qCJ3ry6ZA2NKzmS3yqjc8X7qXrOxG8+fcOTsWnlOAHE/kPe4YxxDo5Bmq2gV4vOHtFIk4TXD2U472M+WGdz/zK2vkFzxQoTOwXKXNsafDb3ZjSEliZ0ZTp7jcyune4s1dV7pkLWyFjU4XMxfh6WKlbxZgjs/14KVTJBNQyWrUBlnwAB5cV+BTFfimX0pLgt7shI41DVXowJeMqOtYLxMfDmuthWXNkLmWwr6KaFJ+wTjm2wn7CqJa5iKHDHEQssRE0cCMhD/5L0MCNRCyxMWTohX+ULWYT17eqydxHezD+jnY0D/EnOT2Dr5ceoNu7C3l15jaOxxa9Z0+kyJZ/DAeXGltcD/oWrO7OXpGIU7XsNYi11YcAUH/50xw9fPGZAkWJ/SJlxsI34fhGzuHL4+kP8vBVjQnwcnP2qso9a2GH+mrb6wI1rxkAwLZj50rnDZvdBG3uABznL1RlcjgcxKWkk5BqIynNhi3Drtgv5dP8F+H0LvCtzlvWMYCJ3o2CL3hYm1BjltiO43FF3inYWvBDRIqg+1OwbyEcWUXylHtYXG8O9Ru60aBB7odFRsK8uSaCBm7Dt9lxgMx/Tcyb1Zo9e7jgOWBcSenXvDp9m1VjUeRpPvt3DxsOx/L9ykNMXXOYQW1r8VCvcJUQS8k4ug4isra4fl9bXItkajPqIw68v5q6tv3sn3QXG9ouoEmj4ov9Ik61fxEsN6oBnkm7B+8qYQzrVNu5a6ogsitktO31ZWse4s+fm4+XXkIGoN+7cGglRO8jfuojLKvxA9YqCXyyehPbjp2v1PGwWjhxtiH+fWLxbXYCUOyXcmDnX7BuIgBJA78gYrIxLqN34wsTMqGBXgT5uHM2MY3tx+NoW4Rh74pqUrwsVmKv/JoEmz9eZ9ey9sN38yxJ3LfP+NczNDrX0z1DzwKwd+/F38ZkMrKTvz3Yhan3dKRTvUDSMxz8tPYIvT9cxBM/byr5SfPiWlLijJJFRwY0uxlaD1UftEgmq4cXGQMnkexwp719I2t/ea1EYr9IqUs8C7/fDzj4KeNK5tk7cGfrJvwz36zYXwyyZshkFFAkkT3UVzNk8tU8JLNC5ngpJmQ8fDl3zbek293wO/Inf0/4iLt/XpYrGQPGtuWBfXbi3TAq1+2K/VJmnTsGfz5sfN3lEZbYmpGe4SDYywdbjM8FDzeZTDTNHOxb1HNQJWSk2N3+YCj3zTZmCrzY/QOuv33iBSWJ9TMLC1KO5N6ZJnFnTQCshazdMplMdAmvwk/3debXBzrTs2FVMuwOft94jKs/WszoHzeUzsR5qfhmP2W04QWEEdPtI/oNQH3QIjmMeb4lz6x/EYCX64zj6lGTSiz2i5QKhwNmjoaEk5xwC+O19DvwiavCyKuDFfuLiaWQLUvnZ8goIZOfZpktS0eikzmXVHo7H932eGteXmpshf1+q7dp4H6ElENB1N/Rm11v9GPH//XlkS7NcdjMmN3suZ6r2C9lkj0DZtxvtOHVaE10m5d59pNTAOxdWjXf2O/vabSxZiWQC0sJGSlWWeXo80PC+dnWC7PJwfiGb1D76hXMm2vKvprUsCH07ecgLqI5CdtDSDvly/HvuhG7qAkA11xT9IOc9nUC+f6uDvw5pitXN62GwwF/bz1B/0+Wcs/369h8CUOWRABOzJ0GW37GYbLAoK8ZcleA+qBFcsiK/dNMPZid0QF3UwZf1XqLmgNWlnjsFykpp2ZNgMg5ZJjcuDvhAVIcnhz4syFBAzcp9hcTs6lwQ31Ts3ZZUstSvgK83AgLNFr2t5dSlUxW7J9cvw1LM5rjZUrjc7fPsCRCxF/eHDlowdvdyhPX16buvi7YYoz1OTJMnJjSSbFfyqQzf4yFg0uxW415kUNGWIn2OA2AT5Nj+cb+rIRxUpoSMuJEOcvRX7ONYJ+9BjVM0Xze5A3AkaskcdpUE316WDk7qzUnJvXAds67WE5wW9aqxNcj2jPn0e4MbFkDkwn+2RnFDV8sZ8TENaw9GF3wi4hg7Ahw90178FvyJAAv//s83e/oyLy5Jvz7GDMwrP4p+DY7jn+f7blOPEVcyfnYH8Nz6fdw1FGFuuYoPmz4HiZrRqnEfpHiEh0NDw7aQsDqlwB4NXoUOxx1iFtXB+82BxX7i5El80ykwBkyqpAplOYhRstEabUt7dsHXvWjcKuSzBPpD3LG4U8T82H+1/hjIHcr0oyJATQ52hVbrBcmiwO/tocU+6VMiY6GJwavpNKmtwG485cP6X5zfRZuiMfia2wnb/FJzzf2e7sb8SlZCRlxppzl6Ml48nD6w6Q6rPT1WMvoK74mPMcOkZUrw9w5JubNAxwmAq8u3hPcJjX8+XxoW/55oic3tw3BYjaxJPI0g8ev5LavVrJszxkcBVyREdc28o4URle7C1/3RFakNWdCQG9Wrsk8KNQMDJFsOWN/HL48mjaaDIeJQW5Luf+2D0s19otcrlHDE3is5ig8rGksSGvHFK+eZCS5cW55A8X+YlbolqWsob6aIXNRWW1LW4+VTru+X7Vkgq7dDMBpKvNk+oMAjPKew3UNZ18Q+xf87c7zfVrjsINv0xOK/VKm3Dcihkdr3YPVnMFvKT2ZHdaYlWsy8Gl27ILH5hX7vTITMmpZEqf6bzn6lnONee2IEZzH9nuJBn5bL3hORuZ/syV1kFO/qi9jb23Nwid7MaRDGG4WE6sPRHPHt6u56csVROyKUmJGLhAZCb0y3qBt9S3EOHx53P4A3s2i8OtsHCn8dwZGypEggFwHHyKu4r+xf/W5Vrx/ZjgA79f/kP3Hl1/wnJKO/SKXIjISrrM8R6OgvZx0VOYZ+72AibSoAOypbor9xaywLUtZJzhqWbq4rMG+20thp6X0DDtjV23A4pVOWpQ/CTtq8m9sR744eRsAU255iAbBF57I1vMLJG7Vhb8wiv3iTJG7Hdzm9Si1A45y0F6NVxmOb7Pj+HXZjW+Loxc8Pq/Yr5YlKTNylqMfG3cl73z3Bqti+uJuToVfRkFq7snT+Q15LO6DnLAgb96+uQVLnunNnV3q4GE1s+lILHdNWsfAz5YxZ+uJAq/QiOuIWzeXJzt/DsDT6fcThfHfp0+T42BycO5f48TTFudJwvYQ4iKa0befQ9s2isv6b+x/cdzHrE9pi68phVoRD7H72Olcjy+t2C9SFEmrf+GetpOxO0w8nv4QMRgtIG5B8Yr9JaCwFTKp2dteq0LmYppn7vKy/0wi8SklO9j3+xUH2XA4Fl8PK42j23L2rzYcG3clj3/9OZEJrfF3i4Hf7oEMW67n1a8PscsbkJHslut2xX5xprSVExncbCZpDiuPpI8hAWPekW+LY1i80jNjfs2Lxv7sliVVyIizZZWjR0bC7NkQGWmi01vjwK8mnN1j7FaTw3+vrJb0QU6NAC9eu74Zy57tw/096+HtbmH78Tge/HEDfT9ewsxNx7Bl2At+Iam4zh2jzcEHABgfNYh/7O2y70o5EgQOE52vOH/ieXZWa/r0sDJtqslZKxZxuv/G/l27LbR5bgpx5gCamQ6yfdKjxOU4QSjt2C9SoLP7aHnoMQDGnhnKSnuz7LtSjlRR7C8BhamQybA7SMvIalnSqcvFBPl6UDPAE4CdJ+JL7H1iEtP49F+jYviVgU2JmOmTHfu373Kn4QvfgbsfHF4Bi9/J9dyGDaHvNSbO/NqBrP/bkw5UUewX5zm5laaHjZ3C3jh6H1sc9c/fl/nfaFBsGGdntblo7PdyU0JGypgGDaB/f+NffILglm/BZIbN02DTtFyP/e+V1dI4yKnq58Hz/Zuw/Nk+PNInHD9PK3tOJfDoT5u4auxipq89QppNiRmXk2GD3+7BkhbDnsRWPPXjp3meLC5ZnDPpaJyIVq7s7MWLOF/O2G+uFILppnEA3Jz+Nz9O+jJXi6gzYr9Inmyp8OsozLYEtsR14dOUwQDY0yyK/SUoq0LmYtfBUm3nT25UIVOwZpltS9tKsG3pk3/3EJdio0kNfwa1qwX857g/sB5c97Hx4CUfwP5FuZ4/baqJni0DSNgcBoDZ7FDsF+dITYBfRmG2p7I6pi/v/vR69nF/0r6qWLzTwWFiwVehBcb+7ISMWpakzKrdBXoZ2Uf+fhJOR2bfdWFVTekd5FT2ceeJaxqx/Lk+PHVNQyp7u3HwbBLP/LaF3h8sYvKqQ0UeziTl2OJ3jSs67n4EP/Qd3br65HuymOvgQ0Ty5NfiWk41vxeAoSfe4af55+fJODP2i+Sy4BU4sRm8Atl45auYqyaRkezGsfF9FPtL0PmETP4ZmayBvqCETGE0zxzsW1I7Le0/ncCUVYcAeOnaJtn/H16gxS3QdgTggN/vg4RT2Xdlxf4/3w7HYjLhWfssr34erdgvpW/200YHh19NGj07jj493LKP+zPivQC4pkl1gv08C4z9XtplScqF7k9C3R6Qngi/3AnpybnuduZBjr+nG2P6NGDZs314YUBjqvh6cCw2mZf/2EbP9xfy7bIDRf4Fk3Jm30JY8r7x9XUfE1C3vk4WRYpB8I1vcSagOQGmJBotf4xVe07mul8nuOJUO/+C1eMBiOn7Ke+vMU5kH7+yEbN+c1fsL0HZLUuFqJBxs5jyP/mXbNlbX5dQhczbc3Zhszu4snEwXcOrXPzB/d6Fqk0gIQp+vxfsuY+ju7bxYkjHUAA++idSm2xI6dr4I2yeanRwDPqGSjWDso/7f/sznartjaHUo7rXLtTLqWVJygezBW7+GnyqwqntMOdZZ6/oAj4eVu7rUZ9lz/bm9eubUSPAk6i4VN6YtYNu70bw5aK9JT4oTZwg/qRxsIDDuKLT4pbsu3SyKHKZrO4EjZxCstmXtuY9RE59mhPnkgt+nkhJizkIf4w2vu48hhe31yQh1Ubr0Eo8OjBMsb+EWTLPROwXORHXltdF06KWUSGz51QC0YlpxfraK/edZcGOKCxmE88PaFLwE9y9YfAkcPM22paWjr3gIaN7h+NuMbPmQDQr950t1vWK5OvUTqNjA4wOjjpds+9q0ACiKx0hxZZBeLAvneoF5vMiualCRsoPv+pGUgYTbPgetkx39ory5OlmYWSXOix+ujdv39yCsEBvziam8d7c3XR9J4KPFkQSm1S8f+jESTLnxpB4GoKbQf/3nL0ikQrHFFgX801fAjDC8ScTJ47TnC5xLluqUa2beg5qXcHC0AeZvfUkFrOJt25qoWqMUmDJrpC5WEIma8trJWQKI9jPk8bV/XA4YOme0wU/oZAcDgfvz9sFwLCOYYQH+xZyQY3h2g+Nrxe9BQeW5Lq7RoAXQzoYVTJjF6hKRkpBWmanhi0Z6vU2Ojhy2Hwklvfm7QZgZJc6mEyF+1vgpV2WpFyp3xt6PmN8/ddjuebJlDXuVjNDOoQR8WRPPrqtFfWr+hCXYuOTf/fQ7d2FvDt3F2cSUp29TLkci9+Fg0vBzQdu/R7cvJy9IpEKyaPFDcS1ugeA0bEf8Onv/zp5ReLSFrwCxzeCZyWSb/iGl/40jkXu7laXppnbB0vJMmfNkLlohUxmQkY7LBVaz0ZVAVgcWXwJmcWRp9lwOBZPNzNj+hRxb+rWQ6H1MHDYjQtgOebJADzUOxx3q5l1h2LYcDi22NYskqe/n4LTu8A3s0jAfD7Zeyo+hfsnryfNZueqJsEM6xBW6JdVy5KUPz2fhTrdM+fJjIS0JGev6KKsFjM3tanF/Md78sXQtjSu7kdCqo1xi/bR7d0I/u+vHUTFpTh7mfIfkZEwZw7s2ZPPA/b+m2NuzCdQRbXpIiXJ/7q3iQtsSSVTIldte5ZfVu9z9pKkAiow9u+YmT03hpu+4uO1yRyLTSakkhePXaW/A6Ulq0LGftEKmcyWJTedthRWz4ZGQmZJ5OmL/mwLy+Fw8NECI2E5vFNtgv08i/4iA96Hqo2NeTK/3Z1rnkw1f0+ub1UTgB9WHrzs9YrrKjD2b5h8fm7MLd+Cb9Xsu9Jsdh6asoGTcSmEB/vy0W2ts5PGhaFdlqT8MVtg0LfgEwyndsDfT0A5KFO0mE1c27IGsx/pzoTh7WhZK4CUdDsTlx+g+7sLeemPrRyNKdvJJVcQHQ39+jto1AgGDICGDY3vY2JyPOjcUeNKDQ5odye0HOyk1Yq4EKs7/sOnkGL1o7V5H0mzXmDj4ZiCnydSCIWK/Wf3nZ8b0+URtvl25ptlBwD4vxua4e1uLf2Fu6jsCpmLJWQyh/pqh6XCa187EB93C2cS0thxIu6yX2/h7lNsPnoOLzcL9/esf2kv4u4Dg7835skcWAKL3sl1951d6gAwe+sJTsXrAqcUTaFi/8mtMPsp4+veL0Cdbtl3HTiTyANT1rPuUAx+nlYmDG+Hn6dbkdbgnaNlqSitd0rIiHP5VYNbJhpZys3TYMMPzl5RoZnNJq5pVp2Zo7vy/V0daF+7MmkZdqasOkyv9xfxzK+bOXgm0dnLdFlDhzmIWGIjaOBGQh78l6CBG4lYYmPI0MwAaUuDX0ZBcjRUb2nsBCAipaNybdwHTQBgpGUuv37/mQ7ApVgUGPvTkmD6CEiLh7AupPd6iWd+3UKG3cG1LWpwZZNqzv0ALsZaiJal1HQlZIrK3WqmS+YOSIt2nyrg0RfncDgYm1kdM6JLbar4elz6iwU3hus+Nb5e8h7sWZB9V/OQANqGVSI9w8FPa45czpLFBRUY+1POGbHflgLhV0M3Y27MsdhknvttC1eNXUzErlNYzCY+HdKGelULOSMpB8/MhEyG3UF6hhIyUp7U7Q59Xja+nv00nNjs3PUUkclkomfDqvzyQGem3duJruFB2OwOpq87Sp8PF/HYTxvZExXv7GW6lMhImDfXhH+fbfg2O47VPwXfZsfx77OdeXNNRhnjP6/C0TXgEQC3/gBul1B+KyKXzNxkAGmdHwXgedsX/G/SnxryK5elULF/9tMQtc3Y7fGWiUxYfoQdJ+Ko5O3Ga9c3c/ZHcDlZg5PVslT8stqWLneOzIIdUWw7FoePu4X7e1xidUxOLQdD+7uNr3+/F2LPJ19GZlbJ/Lj6EOkX2wtdJIcCY3+kA2aOhuj9EBBKynXjmLXtJCMnrqH7uxH8tPYIGXYHfRoH8+eYrvRuFHxJ6/DKkTQuStuSIpuUDV0fg4b9ICPVyF4ml7/ydZPJROf6Qfx4Tyd+e7ALvRtVxe6APzYd5+qPlvDglPVsO3bO2ct0CfsyR1J4hkbnut0z1NhOMWH1DFhl7PbCTeMhsG5pLk9EMrlf9QrJNTvja0ph9OnX+d8fa7XDhlyygmJ/yoofYNOUzNkBE9mb4scn/xiDBl4Z2JSqfpdx5V8uiTlrl6WL/NqnZrUsadvrIslKyGw4HMu55PRLeo0M+/nqmJFd6hDo4148i+v3NtRsYxzv/zLS2PEM6N+8BlV8PYiKS2X+9qjieS+p8AqK/bZlX8DOv3CY3fin+Xt0+XQTY6ZuZHHkaewO6BoexG8PdmbinVfQrGbAJa/DzWLGzWLEtKIM9lVCRsoGsxluHAeVwiDmIPx+P9jtBQ9mKqPa1a7Md6M6MOvhbvRvXh2AOdtOMvCzZYz6bg0bNC+hRNXPvICTciQw1+0pR4JoXGU3rQ6enx1A4wGlvDoRyWax4jXke1I9q9LIfJR2m19j8sqD5Tb2i3NdLPa3q7GBZoeyZge8iL12d579bQtpGXZ6NarKTW1CSnm1AkWtkFFCpihCA72pX9WHDLuD5XvPXNJrzNx0jF0n4/HztHJfj3rFtzirBwyeBJ6V4Nh6mPscAAf3m+kQaGyB/b2G+0ohXSz296i9jMZHXgFgou+93POvg+jENGoEeDKmdziLnurFj/d0ol3twP++7CXxvISdlpSQkbLDOxBunQxWT9gzjx/ue+/ig5nKgeYhAYy7ox0LHu/Bja1rYjbBwt2nufnLFQz7ZhWr9p/V1eAS0LAh9O3nIC6iOQnbQ7DFeZKwPQTHsjDm3zUMsy3R2OHryledvVQR8auGx5AfyDBZucGyggOzxtLy6jPlOvaLc+QX+91WVufvkcMx21Oh0QDo9gQTlx9g/aEYfNwtvHlTC0ymwu+kIcWnUEN9s7a9VstSkfVsaLReLN5d9LallPQMPpxvVMc81CucSt7FVB2TpXIdGPQNYIJ1E/lw+BQaNYIJz9bGYTex5kA0q3df/kBiqfjyi/2+awL5Y9idmBwZ/GHvxhunuuLlZuGFAY1Z8kxvnurbiDpVfIp1LVltS0lptkI/R2PkpWyp2RquHQszH+KOkHf4e2gllgc0IOVIIBERzRky1MrcOeXvoKlBNT8+vr0Nj17VkC8X7mXGxmMs33uW5XvPckWdyozp04AeDarogLAYTZtqYshQK/Nmtc68xcHSh4cT6rUH/EPglu/AohAoUibU7oL5mjdg3vO84PYjW2+ry6rEFqQcrlKuY7+Uvv/GfrMpgzWPDqKax1EIrAc3jWff2STen7cbgOcHNCGkkpcTV+zaLKaCh/qqQubS9WxUlYnLD7A48jQOh6NIx5lTVh3iWGwy1f09GdW1TskssMHV0Ot5WPQWD4U9yazB7uypEkRGvAfWgBQeeO8wG79tXjLvLRXKf2O/mzmNJY9dS2W30+y0h/Fc2t30ahTMGzc0JzTQu8TWkbXTkpFILtx5hlLNUuZE+gxj/LpRmE0Ovgr/P+oGHLpwKF85VbeKD+8PbsWip3txR6cw3C1m1h6MYeTENdz4xXIW7IhSxUwxqVwZ5s4xERkJs2fD6Rmf0C3wLzC7GUN8fas6e4kiksOewAeZtv1m3EwZfOn1CTX9oipM7JfSc0Hs//lN2gUsNLbavW0KNjc/npy+mVSbne4NqjCsY5izl+zSLJlnIhdtWcqcIeNh1WlLUXWsG4inm5mTcSmsO1T4UsO4lHS+WLgXgMevblCiybDIGk/zd+Q1eLml8EPjF6jifxprgLHr3hnf42zfWfjWD3Fd/439pya/QFO/NcQ5vLk//XFuvCKciSOvKNFkDORoWUor/FBqRTYpc/btg0fnvsvG9AZUMiUywW0sXqRkD2bau9fJCywGtSp7878bW7D02d7c1bUunm5mNh89x70/rKP/J0uZteX4Rct3pfAaNID+Df6lyubXjRv6vwu12jt3USJygX37Tdw78zN22UIJNsUy3v0j3EnHM9SYfVARYr+UngYNoH/tmQRu/9C44bpPoVozvlqyn01HYvHzsPLuoJaqTHUyc6EqZLTt9aXydLNwY2tjPtKn/xY+qz1h8X5iktIJD/ZlUNtaJbU8APbtN3PHjAkczKhGqPk0n7p9joUMHHaweKXz25qTJfr+UrE0aAD9q0+hUuTXADyW/hDt27TlrZtaZLdIliQv96K3LCkhI2VO/fqQluHBiJ1vctrhTxPzEd53m5A9qCk83MkLLEbV/D155bqmLHu2Dw/1qo+vh5VdJ+MZM3Uj13y0mN83HMWmbf8uT/R++PUucNihzXBof1e+D9UgURHnqV8fEtN9Gb7rbc45vGlr3str1knY042S34oU+6UURO2AGQ8aX3ceAy0Hs+tkHB//Y8zEePX6ZtTMbFVS7HceS6FmyGS2LGmXpUsyunc4VrOJpXvOsO5gdIGP3xMVz9dL9wPwTN9GWC0le7pYvz7EplRm+K63SXJ40MOylWesP5F+xg+AjeeOFPAKIjkcXY9j1uMAjE2/BZ8WA3n/llZ5JmNKIvZntSxpqK+Ua1mDmXbP68Odu98k3WFhoGUV9yZE0LefgwYNnL3C4lfF14Nn+jVm2bO9eeyqBvh7Wtl3OpEnpm+mz4eLmbbmMGk2JWaKLDUBfroDUmIhpD1c+yHkcTU0OtoYHFreh0iLlGdZsX/znH7cu/c17A4TQ60LuTP4TzoMO1ghY7+UkOQY+GkopCdC3Z5w1eukpGfw6LRNpGc4uKpJMIPahij2lwHZuyxdpEImNbtCRqctlyI00JvB7Y0ql48yE5L5SUnP4OFpG0m12enRsCpXN61W4uvLiv2rZ1/PmP3PA3C/9W+ujjwIDth4/CyHzyaV+DqkAoiPwvHzHZgy0piX0Z4l1Ucy9tZW2XEmS0nG/qyhvilKyEh5N22qiT49rMz+eQSPzH4PgDd7vMEvb/2b63EV7apWJW93HruqIcuf68Mz/RoR6OPO4egknv99Kz3fX8j3Kw4W6RfcpTkcMPMhOLUdfKvBbZONbRbzMHSYg4glNoIGbiTkwX8JGriRiCU2hgxV25hIacqK/b9MvZ8X/jW2qXzNOonaYb+zaPep7MdVtNgvxcieAb/eDTEHICAse4D7e3N3szsqniq+7rx9s9GqpNjvfFktS7aMgmfIqGXp0o3uHY6bxcTyvWdZcyD/Kpl35uxi10nj9+SDwaXX0pcV+7+b8jhvLzOqG77q/QxDasUC8Mt6o0pGsV/yZUuD6SMwxR9nr70mL5tG8/GQdrjlUeFVkrHfM3uXJSVkpJzLOZjp+tfv5lz9EZhNDvzm3gVn9lT4q1p+nm481CucZc/25uWBTQn28+DEuRRe/XM73d9byNdL9pOYWvjeRJe0+D3YMfP8EF//mnk+LDIS5s014d9nG77NjmP1T9EgUREnyRn7e77wOPFhN+FuyuBLt494c+p8Vu+Oq9CxX4rBgldg379g9YLbfwSfIJZEnmbi8gMAvH9LK6r6eSj2lxGFq5DJ2mVJpy2XqlZlbwa3DwXgowV5V8lE7Ipi0oqDgPF7EuznWVrLyxX7Wz/xMok1rsLTkswrSW9QhXP8vOYoffvbFfslbw4H/P0EHFlFvMOL+9Kf4JkbOuS5pXVJx361LEmF06AB9B9gImDIBxDaCVLPwdTbuG9EjEtc1fJ2t3J3t7oseaY3b9zYnJBKXpyOT+XN2Tvp9m4En0fsIS4l3dnLLHt2zIRFbxlfDxwLYZ3yfei+fca/nqG5rxhVpCHSIuVNVuz3u+ML7NVaUMUUxyeO97j3qyUsWp9Q4WO/XKKNP8LKz42vbxoHNVoSnZjGk79sBmB4p9r0bhwMKPaXFdlDfQuxy5IqZC5PVpXMyv1n+fifyOyKa4fDwdxtJ3lyuvF7Mqprnezfk9JmxH4LPiO+haAGeCWf4FvPj4hNiGfF4ZOK/ZK31eNh42QyMDMm/RGatmjHoLYheT60pGN/dsuSKmSkwrF6wG1TICAUovdxX+VRVO6zyWWuanm6WRjeqTYLn+rFe4NaUifIm5ikdD6YH0nXdyL4cP5uYhLTnL3MsuHEFpjxgPF1xweh7YiLPrx+fePfrKHRWVKOBAEaJCriVO4+mIdMw+5dlabmQ7zr8zHBQ5a7TOyXIji8CmY9Znzd81lodhMOh4Nnft3C6fhUwoN9eWFAk+yHK/aXDdlDfS9yXp011NdDQ30vS0glL+7qWheAj//ZwzUfLWHq6sPcNmEVD0xZT0xSOs1D/Hmuf2MnrxTwqgRDfgLPAFoRyZvWbwnouUOxXy6091+Y9wIAb6UPYZdvB968qUW+7XYlHfs93dWyJBWZb1W4fSo2szfX1F/IW00+ynW3K1zVcreaufWKUP55oief3N6aBsG+xKfY+CxiL13fjeDt2Ts5HZ/q7GU6T3xU5iDHJKjXG675X4FPyRomFxfRnITtIdjiPEnYHkJcRLMKO0RapFypFIr59h/JMLnT37KWJ/1+ynW3K8R+KUDMIfj5DshIgybXQ8/nAPhu+UH+2RmFu8XMJ7e3zt6OFBT7y4qs8Q72i+6yZJzYeKhl6bI9178xn9zemmr+HhyOTuKFGVtZcyAaTzczD/cJ5+f7OpedxFeVcLjlO+yYGWxdwgOVf891t2K/cDoSfhkFDju/2nvybcYAXruuGQFebvk+paRjv7ebsTNkUVqWrJf3liKlrEZLTnX9ippLh3O3998cTK/K5IxrANe6qmW1mLmhdQjXtazJvO0n+XzhXrYfj+OrJfuZtOIgQzqEcX/PetQI8HL2UktPejL8NATOHYHA+jDYGORYGNOmmhgy1Mq8Wa2zb+vbz8G0qaUzzE5EChDWkdMdP6b6qod41DqDA/Ya/GHvBrhW7Jc8pMTBtNsh8TRUbwE3jQezmS1HY3l7zk4AXhrYhGY1Ay54qmK/8xWqZSlrl6Wykigox0wmEze0DuGqJtX4YuFepq45TO9GwTzdt1H2NvBlSviVnGn7FsEbnuMF61QOOaqxwN4eUOx3eYlnYepgSD3HbremvBB/F30aV6Nf8+oFPrUkY7+Xu5E41gwZqdBqXnk93x3J2n3jB7ql7HDZq1pms4n+LWow6+FuTLyzPa1DK5FqszNpxUF6vLeQ53/f6hpbBdrtRpvSsfXgVRmG/WL8W0g5h8nNnm0M/Jo7x0Tlwr+EiJSw6v2G8fPxxwB4120C7U27SDvl55KxXzJl2ODXUXBqB/hWhyE/g7sPcSnpjJm6kfQMB/2aVWd4p9p5Pl2x3/kKM9Q3RUN9i52Ph5Vn+jVm0yvX8NFtrctmMiZT8HUP8HvsYMwmB5+4fUHjpGMue9wvmWyp8PMwiDlIgncthsQ/gtnNg9evb1aoncFKMvZnzZBJVsuSVHQ3vv8E808PxWKy86XXJ1Rf7U6fHlaXvaplMpno07gaMx7qwo/3dKRj3UDSMxxMW3OY3h8u4onpm9h7KsHZyyw5C9+EHX8YOyrdNgWC6l/SyzRoAP37oz/uImXUNe+8yrLo6/Aw2ZjgPpbwantpc9Mxl439Lm/uc7D3H2NHpaE/QUAIDoeD53/byuHoJGpV9uLdWwreulex33kshaiQSdVQX9dmMnHF05+yxNYSb1Mq33p8gMfiYJc+7ndpDgf8+TAcXondw5+RyU8QjT+PXdWQ0EDvIr1UScR+L/eitywpISPlUuVAE9d88glJwd3w94hn41ODmfvzSZe/qmUymegaXoWf7+/M9Ps706NhVTLsDn7fcIyrP1rMmKkb2HUyztnLLF4bJsPSD4yvr/8U6nRz7npEpMRUDjTT7YMJpAS2IdCUwHdu75EWuorlR447e2lS2lZ+CWu/Nr6+eQLUbAPAxOUH+XvrCaxmE58NaXPRWQLifOeH+hamQkYJGVcVGuLN/ObvEGkPIcQniv1v3MrcPxJc/rjfJS1+F7b8DCYLE2u+zvrk6jSq5sfd3eo6e2WAKmTE1Vjd8b5zMgSF45Z0NLOPMN7ZqyozOtQN5Ie7OjBzdFeualINhwNmbTlBv4+Xcu8P69hyNNbZS7x8e/+Bvx41vu7+JLQe6tz1iEjJc/fGc9RPOAJqUd98gq/dPuS5n9ewfO8ZZ69MSsv2P7J31eCq16Hp9QCsORDNW7ONuTEvD2xKmzCdrZV12S1LhaqQ0WmLK7uhUxPuSn+aM44APGK2wvQRkJHu7GVJado4BRa9DcChzm/wv53VAPjfTc1xs5SN+KAZMuJ6vANh2K/gUxVOKjjnpVVoJb4Z2Z7Zj3Tn2pY1MJlgwY4orv98OSMnrmHdwegSff/ISJgzh+LflvDEZpg+EhwZ0PI26PNyMb+BiJRZftUxDfsVh4c/7c2RvGf+ggd+WMPGwzHOXplkKrHYf2gl/H4f4IAr7oGuRlL+VFwKo6duIMPu4IbWNRnROe+5MVK2mAuokMmwO0jP3BNbQ31dW/valXGvUpdRaU9js3jBvgjjotxFqquk9JVY7N/7D/z5CAD2rk/w4M6WANzSrhZX1Am82DNLlVfWLkuqkBGXElgXhv4Mbt6ZwfkxBec8NK3pzxdD27Lg8Z7c3DYEi9nE4sjT3DJ+JbdPWMmKvWdwFOPPLToa+vV30KgRDBhgbDPXr7+DmOI4X4o9DD8OhrQEqNsDrv8cCjHES0QqkOAmmG6fisPizgDLGh6z/8CdE9dUvLbMcqZEY/+ZPcZuehmp0GgA9H8PTCbSbHbGTN3I6fhUGlXz4+2bWxRqsKM4X9YMGbs97/tTclxlVsuSazOZTNzaPpStjnq87fMMmMyw6UdY9I6zlyaUcOw/sSXXRdjvvYaz40QcAV5uPN+/cTG8QfHxcs9sWVKFjLickHZwy3eZwXkKRLzh7BWVWeHBvoy9tTURT/ZkSIdQ3CwmVu2PZug3qxk0bgULd50qlsTM0GEOIpbYCBq4kZAH/yVo4EYiltgYMvQyXzvxLEy+GRKiILiZMcTX6n7Z6xWRcqhud0w3jgPgbuscbk+fwR3frOHgmUQnL8x1lVjsjzsOk2+C5BgIaQ+DvgWzceD7+l/bWXMwGj8PK+OHt8M7c6iilH3ZM2TyaVnKmZDxsOq0xdXd0q4WbhYT355qxNEu/zNuXPwOrP3WuQuTkov90fthyqDsi7Cnen/AhwuM8ptn+jUiyNejGFZffDRDRlxbo34w8GPj66UfwqpxTl1OWVc7yIe3b27J4qd7M7JzbdytZjYcjmXUpLVc9/ky5m47edGe7ouJjIR5c03499mGb7PjWP1T8G12HP8+25k313TpZYypCfDjLXB2D/jXMra39gy4xBcTkQqhxS1wjXFg/rzbNHonz2PYN6s5Fpvs5IW5nhKL/UnRRiL+3BEICjeqYt2N3TQmrzzIj6sPYzLBJ0NaU7eKT/F9IClxZtPFW5ZSbEbpjLvFnN3eJK6riq8HA1rUAODTc92gxzPGHX8/acyWEqcosdgfH2XE/sRTUK0Fjlsn8+JfkSSk2mgVWonbrwgr1s9RHLxVISMur91I6POS8fXc52DLL85dTzlQs5IXr9/QnGXP9Oa+HvXwcrOw7VgcD0xZT79PljBz07GLbkeZl337jH89Q3PPp/EMPQvA3r2XsFBbGvx8BxzfAF6BMHwGBIRcwguJSIXT5WHoYvSWv+P2DY3jljH061WcPJfi5IW5lhKJ/WlJMO12OL0T/GrAHb+DTxUAVuw9w2t/7QDg2X6N6dO42iWvXZyjoKG+WRUyHhroK5mGdzLmQ83cdJxzHZ+GdncCDvj9Xti/2Klrc1UlEvtTzsGPgyDmAFSuA3f8xp+7E1mwIwo3i4l3bm6RHT/KkqzWyuT0jEJ3HCi6ScXT/Sno+IDx9R8PQOR8566nnAj29+SFAU1Y/lwfxvQOx8/DSmRUAo/+tImrxi7ml3VHSM/Ip8n7P+rXN/5NOZJ7yFbKkSAAwsOLuDh7Bsy4H/YvBDcfY5Bz1YZFfBERqdCu/j9oPQwLdr50/4zq0esZ+vUqTsUrKVNaij3229Lgl5FwZLVRDXnHb1DZOBk7eCaRhzKH+N7UJoT7e9S73OWLE2RtjJJvhUx61g5Lmh8jhna1K9Okhj+pNju/bDgK146FJtdBRhr8NAyOrXf2El1Oscf+tCSYNtTYsMUnGIbP4BQBvPrndgAe7tOAJjX8L3fZJSJrhozDAam2wp03KSEjFY/JBH3fhhaDwW6D6cPhwBJnr6rcCPRx56m+jVj2XB+euLohlbzdOHAmkad/3UKv9xcxZdWh7C0o89OwIfTt5yAuojkJ20OwxXmSsD2EuIhm9O3noEGDIizIbjemqm//HcxucNsPUKtdroeU2ER3ESk/TCa47lNo2B8P0vjO4338zm5m2NerOZOQ6uzVuYRijf0ZNuOK9575YPWCIT9DtWYAxCSmMWrSWmKT0qnjV4l7WmqIb3mV3bKUb4WMcUKjLa8li8lkyq6S+XH1YeyY4eZvoE53SIs35o1EbXfyKl1LscZ+W6px7nZoGXj4wx2/4qhcl5dmbCM2KZ2mNfy5KqR+mT3u98qRPC7sHBlFN6mYzGa4cZyxC4MtBabeDkfWOntV5UqAlxuPXNmA5c/24fn+jani686x2GRe+mMbPd9bxMRlBy4aaKZNNdGnh5Wzs1pzbNyVnJ3Vmj49rEybWoSDZofDaD3bNMUY2HzLtxB+VfbdJTrRXUTKH4sVBk+Cuj3wJoUfPN7DcnoHQyaoUqa0FEvst9vhz4dhxx9gcYfbp0DtzoBRMTFq4joOnEnEds6LpW+3o3lTi2J/OVXQUN/UrAoZbXktOdzQuiZ+HlYOnElk+b4z4OYJQ6YZA7+TY+CHG+HMpfTJyKUqltifYYPf7ja2uHbzNmZF1mjFn5uPM39HFFaziaRFLWnWxFxmj/stZhPumQPIUwo5R0YJGam4LG7Gzkv1ekF6otGHeGKzs1dV7vh4WLm/Z32WPtOH165rSnV/T07GpfB/s3bQ/b0Ixi/eR0Kq7YLnVa4Mc+eYiIyE2bONKpa5c0xUrlzIN3Y44N//gzVfGd/fOA6a3pDrISU20V1Eyi83T7h9GtTqQAAJTPV4G/vp3dw+YRVRcUrKlLRiif1znoHNU8FkgVsmZifi7XYHT/2ymU3HYrCnWkk97UuNEcsV+8uxgipkskr+1bIkOfl4WBnUrhYAP6w8ZNzo4Qd3/ArVWhhDYH+4AWIOOXGVruWyY789A2aOhp1/ZSbip0JYJyKj4nn+960AVDoezor53mX+uD+rSiZJCRkRMg/Mp0JoJ2M41A83GHvZS5F5uVu4s2tdFj/Ti7duakGtyl6cSUjjnTm76PpOBJ/8s4dzSekXPK9BA+jfn6KVKzocsPBNWDbW+P7asdDq9lwPKbGJ7iJS/nn4GlfWqrcgkHP87PEmnNnD7RNWceKcdl8qDZcc++c8C2u/Bkxw03hjNgTgcDh4e85OZm05gSPDROqJAHzCTyv2l3PZQ30LnCGjUxbJ7Y5Oxg47/+6M4sCZRONGr8rGpg9BDSDuKHw/EGIPO3GVrueSYr89w6iK3PKTkYgf/D3U701cSjoPTF5PUloGrWoEsf6H8HJx3J+101KqEjIimdx9YNj0HGWM1xtDouSSeFgtDO0YxsKnevHB4FbUq+LDueR0Pvonkm7vRvD+vF2cvZx5DQ4HLHwLlrxvfN/3bbji7gseViIT3UWk4vCqBMNnQnAzqhDLdI834exeBo9fyaGzic5enfxXVotqVlXk9Z9By1uz7x6/eD9fLz0AwNk5LXELzP3/oWJ/+VRQy1KKTUN9JW/hwX5c2TgYuwPGL9p3/g7fqjDyTwisZyRjJg2E2CPOW6hcXNasyE0/GsmYQd9A4wHY7Q6enL6Z/WcSqRngybA6bcBhLhfH/V45dloqDCVkxDV4BsDw3yGknZGU+V5JmcvlZjFzS7taLHiiJ58OaUOjan7Ep9r4YuE+ur27kP/N2sGporYHOByw6G1Y8h4Ap9u+BZ0fyvOhxT7RXUQqHp8g48A8uClViGG655tYY/czePxKIqPinb06yeJwwLwXYPV4AKI6fgZth2ffPW3NYd6duwuA+zo0IXF7LcX+CiKrZcnuIM8tYrOG+npYdcoiF3qot/EL//vGoxyPzVH96F8TRs6CynUh9hBMulZJmbLIboe/HoZNU7Bj4USXr6H5zQB8FrGXBTuicLeYGXdHO1o38QDKx3H/+a2vtcuSSG6eAXDH71CzLSRHw/fXwbENzl5VuWcxm7i+VU3mPNqdCcPb0bJWAMnpGXyz7ADd3lvIy39s41hsIVoEHA6SZ70Oi98F4Il5bxJ8w+h8h3UV60R3Eam4fKrAiD+hahOqOqL5zfN/BCTs49avVrL5SKyzVyd2Oym/PwWrvgTg3r8+ofqAEdmxf87WE7w4w7iA8mCv+rxwcz3F/gokq0IGjKTMf2W1LHmoQkby0K52ZTrVCyQ9w8HXS/fnvjMgBO78+3xS5rsBEL0/7xeS0pdhI3X6g7BxChl2M0N/nUDNawbRr7+DT+ft56N/IgF4/YZmtAqtVK6O+7NalrTLkkhevCoZvaVZ7UvfXw+HVl72y2rbZTCbTVzTrDozR3dl0qgraFe7Mmk2O5NXHaLnewt59tct+bcJ2O0w51m81n8EwMtHHmJ6myYFDusqlonuIlLx+VaFkX9BcDOCHDH85vk/QpIjGfr1KpbuOX3JL6vYf5kybDBzNJ5bv8HuMPH4oaeY0zE0O/YPfOAkD0/biN0Bt18RyjN9GwGK/RWJJcd25Xm1LWVve61dliQfY3obZ+LT1hzmzH9b5gNC4M5ZEFgfzh02kjKnd1/2eyr2XyZbGvw6Co9dP2GzW3jg4Iss61GZoIEbWR23j7ELdwLwyJUNGNIhLPtp5SX2e2UmZFLSL9z0JC9KyIjr8aoEI/6A2l0hLR6m3Az7Fl7SS2nb5QuZTCZ6NQrm1wc6M/XejnSpH4TN7uDndUfo/cEiHv95E3tP5WgVsGcY5YqZcwOeOvQ4k6t2K9Swrsue6C4irsO3qnFgXrMt/o44pnu+RaP0nYz6bi1/bDxWpJdS7C8GGenw+z2weSo2u4XRB59nRrW22bG/8vXrORq2AZvdwXWtavLmTS0wZZ68K/ZXHOYcZyJ5DfbVUF8pSNfwIFrVCiAl3c53yw9c+ICAWjBqDgQ3hfgT8F3/S97gQ7G/GKQnw8/DYOefpNrcGbX/dRbUbJId+wO6GwmzYa3Defyq3GUv5SX2q2VJpDA8/GDYr1C/D6QnwdRbYfsfRX4ZbbucP5PJRJf6VZh6byd+e7AzvRpVxe6AGRuPcfVHS3jox/XsOBwFv4yEjVNwYGbEjPH85NU91+sUZljXJU10FxHX4x0II2ZCWGd8HIlM83yHbmzksZ838dXifXnOsMiLYv9lSk2AqbfB9hnYTW7c+ssk/vJpn+shnmFnMVkctK1ag49ubZWrtSWLYn/5Z82RkcmzQkZDfaUAJpMpe5bMDysO5bnjJ37VjPalGq0g6awxU+bgsiK/l2L/ZUqOhck3w575ZJi9uP6naSz0b3rBw2JXhNPVv2F2Ev6/ynrs986ukFHLksjFuXvDkJ+MLTUz0uCXO2HN14V+urZdLrx2tQOZNKoDf43pRt9m1XA4YOnW/cR9cwPs/Au72Z0T3b5j8pYh5WJYl4iUY57+cMdvUL8PHo4UvvX4kJvNS3h7zi5e+mMbtoyLX9FS7L9MiWeN3Q73/Qtu3hzv+RMzdl1/Qew3mSBpdzXeHNgaq0WHqxVVzgqZjDwSoqlZLUuqkJGLuLpJtezNJcYuyKclyTvQaF0N6wypcUZiYMefhX4Pxf7LFHfCaBk7vAI8/Dne5zfm77uK1JP+uR6WGuXPuaUNadCgbLUhFUX2LkuaISNSCFYPY6/7dqMAB8x+CiLeNHZ8KIC2XS66FrUC+Gp4exbc25A5AW/TybyTeIcXw1Ke5tlDNeg+6Gy5GNYlIuWcuw8M+Rla3IrFkcFY9/Hcb/2LH1cf4q7v1xGfkscV1kyK/Zch5hBMvAaOrQevyjDiT2r1uip7UGPKkcrZf36T9wXTJrUNTRrpULUiyzlDxp7nDJnMChnNkJGLMJtNvHqdUWkxedUhth8/l/cDPQOMWZKNroWMVKNKe93EQr2HYv9lOLMHvr0GTm0H32owaja1unah05AjeIUZP0+HHZIPBnF2eif69iu71S+FkVXRpwoZkcIyW2DgR9DreeP7Je/BjAfAlnrRp2nb5Ut0chsNZt5IrdR92Lyq8nX9z1hDc5buOcPh8FXUH7WWxG0hHBvXp8wO6xKRCsDqDjd9BZ3HAPC8dRpvu09ieeRJbhm3kiPRSXk+TbH/Eh1dB99cCWf3gn8tuGs+hF4BGIMa295wEo+QGEwmSNxek9YJbfnpR52EV3Q5W9HyHuqrliUpnC7hVbi2ZQ3sDnh15vb8W1DdvODWH6DtSCMLMOtxWPCKscHERSj2X6IDS+Gbq4yhyoH14e75HLTWY9g3qzkRtgWzp43U4wEcG9+HUz93qhDH/dm7LBVyhoy1JBcjUm6YTNDrOSNr+/eTsOUniD0Mt00Bn6Dsh0VGGhny8PDz2y5HRDQHTHiGniXlSFCOio68g0nO1yjP2d9LEjkffh0FaQkQFI512C88EViPwdFJjFu8j1/XHSXZN4Zqt62hjl8l7uoUzvA+weTTQioicnnMZuj7JvjVgPkvMcS8gDpep7kvagzXfb6ML4a2pWt4FcX+y7V9RuaFjhSo1gKG/mzsfgI4HA6mb9nPybBdmIBuNUJ5aVQLGjdS4HcFJpMJk8koTM6rZSlFLUtSBC9d24SFu06x7lAMv284xqB2tfJ+oMUK131ixP7F78DyT4wtsW+aYIw0yKTYf5k2ToG/HgN7OoS0J2Xwj0xYH88XC5eQarPjYTXz2FUN6VWjLgeHmDN/RuU/9nu5FW2XJSVkRHJqPwoq14bpI40ex2+uhKE/E21pxNBhDubNPR8k+vZzMO5LEw8+ZGXerNa5bs8rsxsdTZ6vMW1q2ZsOXuwcDlj9Fcx73rgaUac73DbZKFkHQgO9eeumFjzSpwFfLdnH1NWHORgfyysL1jFtmz8P9wmnX7PqmPMY6igictm6jIHKdeD3e+mcvolZPm9wR9JjjPjWRtDRxqydUhcw4o9ifxE4HLD0A4j4n/F9g75wy7fGYH2Miog3Zu1g0oqDANzTrS4vXtsk30GOUjFZTCZsDkeeBQpZQ309VCEjhVAjwItHrmzAO3N28facXVzVtBoBXm55P9hkgt7PQ1B9mDkadv4F5wbA7VOJttXUcf/lsGdAxBuw7CPj+2Y3E9HoNV6bsJPDmdWn3cKr8OZNzakd5ANAk0bOWmzxy9r2urAzZEyOwm4pUIzi4uIICAjg3Llz+Pv7F/wEkdJ2ahdMHWxUybj78vq28bw5sx/+fbbhGRpNypFA4iKa06eHlblzjEFee/dePPvdr78xmT2/16iw0pONctDN04zv2wyHa8ca7QL5OB2fyjfL9jNl5SESM4NZeLAvo3vX57qWNcvtgEdXjn2u/NmlHDm+CabdDvEnSDL7cX/KaJbaW5Ie64XJbM+8GqrYXyip8fDHQ7Azc2hmp4fgmv8ZbcIYrSiP/bSJudtPAsaV7Xu613PWakuUK8e/wnz2hi/NIc1mZ/lzfQip5JXrvtsnrGTV/mg+HdKG61vVLI0lSzmXZrPT/5Ml7DudyFVNqvHV8HZ57tKWy6GVxlbMSWfBJ5gn107is787XPS4f9tuG1GWKE6kxXD8XAonz6UQl5JOg2BfmocE8OuEANbMDcC/507Xiv3JMfDbPbD3HwASOz7O46cGMH/naQCq+3vy4rVNGNiyRoVNvv+4+hAvzthG73o+TLq/d4GxXwkZkUwXlBQmnDZ2XjpkbIv3wYnhfFm5L/bM0UsJ20M4O6s1kZEFlyBGRkKjRhA0cCO+zY5n316U1yiXYg/Dz3fAic1gsnCq9f+x3m004Q1Mhfq8MYlpfLfiIN8tP0B8ilH2VzvIm4d61eemNrVwt5avxIwrxz5X/uxStl0Q++OOG3Hr2HoyHGbes93KVxnXkVUho9hfCGf3wU9D4fQuMLsR1f59NphGZf+MT55L4b7J69hy9BzuFjNjb2vFwJYV92TbleNfYT57k5fnkpyewdJnehMa6J3rvhu/WM6mI7FMGN6Oa5pVL40lSwWw8XAMt01YRZrNzv096vH8gCYXPOaC2B99wIj9UdtIz7Dy4rHRTA/uQO7Y34ofI86w8uRRFuw4md1Slx97mgWz+/kqiQof+6O2w0/DIOYAdosXv1V+jddP1SUhzYabxcTd3erxcJ9wfDwqdpPO7xuO8sT0zXSs5cX0h68sMPaXr7MZkRIQHW1cwWzUCAYMMHpE+/V3EJNeFUb8wYHqDwHwVI3JTHJ7lyoYk9uLMlXdJSezR86Dr3rCic3YPYN4dsfvVLtxDAOuNZ3/Gcdc/CUq+7jzxNUNWf5cH57u24hAH3cOnU3i2d+20vuDRUxeebDQE8xFRHLKN/Zn1IRRczhSdTgWk53n3X5igttYAkgAwKteFOBQ7M/P9hkwoRec3oXdpzqPb/2b6teOyv4Z9xwUzcBPl7Hl6Dkqe7vxw90dKnQyRgqWVb2gob5SXNqEVeb9W1oC8NWS/UxfdyT7vnxjv6ku3D2f40GDcLPYeC/sEz52+wIfkgHwqnuK6iOX8cK8Nfy1+Tgp6XbqBHlzX496vHFjc74Z0Z6p93bklYFN6VgtBFu8R65kDFTg2O9wwMYfjeG9MQc4kRrGVbs+5umjoSSk2fBM8ufHkd14rn/jCp+MgfMzZFILeY5S8X8iIgUYOswoJw8aeL4sMSKiOUOGWpn6oxsjpr5F7djWTLjxYXpYtjLb/DyPpT/E/CN9gcJNVc85mT3nVdIKOZndlgb/vg4rPze+r9GKO2dP5qd/ahI0cOMFP+PClG36e7oxunc4o7rWYerqw3y1ZD/HYpN5eeZ2Po3Yy/096jG0Yxje7gppIlI4F4/9Hgz9+VOaJbXhkwHPco1lPU3NL/BI2hg2eDWkyg0bCQ5tDuTfegkuFvvTk2Hu87D+O+P70E7cMXMSv/5bJTP2n8UW78nB6nGYEh00ru7H1yPaX1ARIa4nq5vElkdCJtWWNdRXCRkpmhtah7D/dCKf/LuHF2dspaqvB70bBxcQ+3247Zdv6GBrw7tXv8KNlhW0Mu1jTPojbPeui8U7HU+rhds7hHJTmxBa1gq4oO2mS/0qdAuGxs0yqDZsOR7V47Pvs8V7AhUs9qfGZ26I8jMAa+N6MCrpHhJCrTgckHbKj+O/dOCVPe7MnePktZaS7Bky2vZapGCRkTBvrgn/PtvwbXYcq38Kvs2O499nO/PmmrjxJger19uYHtWPjt/9w87kugSbYpni9jZPp8/g2v6phSo5zJrMHhfRnITtIdjiPEnYHpJjMnvJf9ZScWYvTOx7PhnT8QH29FjA5D9r5/sz3rOn8C/v7W7lnu71WPpMb/7vhmbUDPDkdHwq//t7J93eXcgXC/cSn5JeMp9NRCqMwsX+DCYeuYWuP8xhf0oItUxnmO7+f4w2/4F/46OM/nMpK/aeuej7uEzsj9oOX1+ZmYwxQbcniOw6i2l/1cjxM07FM+QcJouDpN3VeO+aLkrGCHC+Qsae5y5LWRUyOmWRonvsqgYMbFmD9AwHoyat5fEftjP/H3uBsf+z/cPpt3gSx+xB1DVH8bv7q4xiLlWi6rLi+T68dn0zWoVWyncGSsOGcM1VZs7+0pmEXdWxpxv//XqGxNJuRCTh4aU+MaRkHFtvVERu+RlMZjbUfpzBjodIqGRcIDWZwKNaPP69dxb5mL88y6qQUUJGpBAKKidfusQ4YK82ZBX73KvTbuwKJqwfidnk4NlOH/PHgCvh5LZCvde0qSb69LBydlZrjo27krOzWtOnhzXPyezljt0Oq8bD+G5wfAN4VoLbp0L/d9l70AMo3pJ9TzcLIzrXYdHTvXl3UAtqB3kTnZjG+/N20/WdCMYuiCQ2Ke1yP5WIVFBFif07LLVp/dEqpm69BavJztPu0/nT6w284/cz9JvVvPzHNhJS89/asmLH/gxYOtZoTz21HXyqwvDf4apX2XfA2NnEs3bupFVGipXTf7Tj2CFVNIpBLUtSUkwmEx8MbsUdncIAmLHjINVHLsOr7ulcj8uK/Su3JVLl9hXUGLmcvZ2sDEh7m/np7fEw2XjV8wdWdn2GwLQThXrv7Ng/sx1Hxvbj3EqjZPJMjT28MGMb9jz+ey83bGkQ8SZ8czWc3Qv+ISzsPIlBu68ADzsOW+6/bxW2VSsfWRUyKYXcZUkJGXFpOcvJc8oqJwfjgN3iaSN48Foqj1rNC/a7uGX696RZA7Ge2Wpkhpd8ABkXr8yoXBnmzjERGQmzZxtXaOfOqQBb30UfgB+uh7nPgi0Z6vWCB5dD42uBgn/Gl1O26W41c9sVYfz7RE8+vq014cG+xKXY+PTfPXR9J4J35uziTELqpb+BiFRIRY39fiPX80jKGEbMGE+6JYBmjkjmer7IXZY5/LjqAH0/WsLSPbkP8LNU2Nh/OtKoiPz3dbCnQ6MB8MByqN8HgLr1HPhdsR+Ld+7kePK+aoCpYpXsy2Uxmy6WkMlsWbIqISOXxtPNwv9ubMF3o64g0MsD9yoJWLxzH7ObrBnUGrOAkHsX4141gazCl+jkSgzd+h4PzBqLzeyD29GlMK4LrPuOPPdpzyF37Dex5pvGvHFDM8wmmLbmMB/9E1lSH7lkndwK31wJS94DRwY0H8TMTj9z10IrDiB+cyiJu3MP4K6QbboX4Z2VkFGFjEjBLlZO3q27cWCQ84DdLTAJzPDbzhs5ev1q4wDUng4Rb8BXPeDwqgLfs0ED6N+/AkxXt6UZiagvO8HBpeDmDQM+gOF/QECt7IeVRsm+1WLmxjYhzH+sB18MbUuTGv4kpmUwfvE+ur0bwet/befkuZTLfyMRqRAuLfabmLxlCEevWwH1euPuSOUVt8nM9nqVyue2M/zbNTz200ZOxecdaypM7E9Phoj/GSclR9eChz/cOM6oivSrBsCR6CReXbSKwD47MZnBFu+BLd6jYrZryWXLr2XJ4XCQYlPLkhSP3o2C+eepHlQ6E4YtzjPXfRbvdCw+aTjsJmzxHudv97KBw8JX6+/m6MBlENYZ0hJg1mPwXX+I2lHg++aM/cM71+GdQcaw4c8i9vLb+qPF+hlLVGoCzHvRqIg8uQW8AmHwJH6p8zqP/XUYhwOGd6pNe5oTF9GiYrfpFiCroi+pgF24sqheVFzetKkmhgy1Mm9W6+zb+vZzZN7uICKiOWDCM/QsKUeCsoNKvZbB0GIqbJkO856HUzuMq4VtR8CVr4JPFad9phJ3YCnMfsrY0hSgbg8Y+DEE1c/z4Rf7GRcns9nEtS1rMKBFdSJ2neLTiL1sPhLLd8sP8uOqwwxuX4sHetbX3AIRueTYX7d1LWg1A9ZPggWv0jh1H396vMIPtqsZu2kQ/+48xRPXNGR4p9pYLRXsJHLPP0bsjzlgfN+gL1z7IVQKBcCWYWfSioOMXRBJUloGXm4WAvY3YfXUMLK2ji2J2C/lW34VMmkZdrJyNB5qWZJiEOjjzsL3WzBkqIN/ViTjGRaN2SOdFvU9ef81b159yovFi0z499l+Qeyv07YetP4bVo832nWOrIKvukPn0dDjafDwK9Qabm0fysEziXy5aB/P/b6FWpW96FgvqOAnOovDAbtmwZznIC4zgdT0Buj/Pn8fsPPMbxtwOGBE59q8fn0zYnuaGDLUVOLH/GVZ1gyZNFvhEjImhyOPCVolLC4ujoCAgAL35BYpTXv2GL2N4eHnr2DGxMCQoQ7mzT0fRLKCSq5y86RoWPAybJxifO/hD92fhI4PgFvuLHy5dmYvLHgFdv9tfO9dBfq+CS1vg3wGm+WU18+4JDkcDpbtPcNnEXtZc8CYFWE1m7ixTQije4dTt4pPyS8iB1eOfa782aVsu6zYHx8F816Abb8CEGfyY2zaTUzJuIo6wZV4YUBjejcKznfwY7kRtR3mvwT7Iozv/WpA/3ehyfXZsX/j4RhemLGNnSfiAOhQJ5APBrciLMi71GN/WePK8a8wn73Hews5HJ3Ebw92pl3t85Vp55LTafX6fAB2/68fHmpbkmJ0WbE/9gjMfc5IVAD4BEPvF6DNcLAUXO9gtzsYM20Ds7eepJK3G3+N6VY2LxYe32hUxRxabnxfKQwGfAgNr2HTkVhu+2olqTY7d3QK440bmuf6W+fKcT85LYMmr8zFnprEkY9vLTD2KyEjUgiFDiqHVsCcZ41SPoCAMOj1nJGwKESALrPijhuDG9d/B3YbmCzQ7k7o8xJ4Bxb49LJg9f6zfL5wL0v3GAMmzSYY2LImo3uH06h64a5qXC5Xjn2u/Nml/Cp07N8XAXNfgNM7AThEDT5IG8Tf9k50rFeV5/o3plVopVJZc7GKOQRL3odNP4LDDmY36Hg/9HwWPI3f42OxyXw4bzczNh3D4YBK3m48378xg9uFYjaX80RUMXHl+FeYz977g0UcOJPI9Ps706Hu+WOKU3EpdHjrX0wm2P/WgPKf2JRyo9Cxf9dsmP8iRO83vg9uaiRmGl0L5otXSCanZXD7hJVsPnqONmGVmH5/Z9zKSlXlmb2w+F3YOt343uoJnccYF5vdvTkWm8wNny/nTEIqVzUJ5qvh7bNbD8VIuNV7YbYSMiJOY7cb27/9+38Qf9y4rXId6P4UtLodLG5OXV6RnDsKyz6CDT9ARuZgxgZ94Zo3oGoj567tEm08HMMXC/fyz85T2bf1bVaNh/s0oHlIQIm+tyvHPlf+7OIiMmyw8QdY+BYkGgN+9zlq8kn6Tcyyd6ZX4+o8emWD8pGYiT4ASz+EzdOMJDwY1TBXvw6B9QA4l5TO+CX7+HbZgeyy7EFta/HCgMYE+Xrk98ouyZXjX2E++5UfLmLf6USm3duJzvXPt24cPptEj/cX4uVmYecb/UprySJFY0uDdd/ConcgJda4rVpz6PkMNL7uoomZozFJ9P9kKfEpNsb0Duepvk4+tj6zx0jCb/3FSMKDcVG5z8vZrakJqTZuGbeCXSfjaVLDn18f6IyPRzm+6FxCGr88h6SEhEIlZPTTEyluZjO0HmL0V679GpZ/CjEH4c8xsOhtuOJuaHsn+JThftGj62DVONjxx/mD8dpdjWqfuj2curTL1SasMt+MvILtx8/xxcK9zNl2knnbo5i3PYrejaoypk8D2tUu79ufiEips1ih/V3Q/BZY/RWs/Jz6Kcf51P0LnnZM5/s91zB8Vy9aN6zDvd3r0i28Stm64u9wwOGVRuzfNev8wXi93tDreQjrCMDZhFS+XXaAH1Yeyt7uu2PdQF68tgkta1Vy0uKlPLNmnrD+d6ivBvpKuWB1h04PGhddV3xuxP+obTB9BASFQ4f7jfOCPGbM1Krszds3t2DM1I18sWgv3RpUoVNpz5NxOGD/ImM2TuQ8IPP3sGE/47i/ZpscD3Xw9C+b2XUynqp+Hnw7sr2SMfnwdreSVMjHqkJGpKSlJcLab2HFZ5CYWZVh9YTmg6DVECPRUUBZY6lIjoXtM2DjZDi2/vzttbtlJmK6O21pJWlPVDxfLNzLn5uPkzVPsGt4EGN6N6BTvcBiPWFy5djnyp9dXFRKHKz5ClZ+AckxACQ6PJiZ0YXfMnqQULUdd3Wvy8CWNZ17QJt4Frb/Dhu+N7YzzVL/SiP2h3YAYN/pBCavPMTPa4+QnLmVZ6NqfjzVtxFXNakAc3JKkCvHv8J89v6fLGXniTh+uKsDPRpWzb59y9FYrv98OTUCPFn5/JWltWSRy5MUDau+NBIzqcZMLTz8jUqT1kOgZtsL5i4+/ctmfll/lBoBnsx5tDuVvN1Lfp0Jp4xKmA2Ts9ttAWMH2Z7P5ErEZPlu+QFe/2sHbhYT0+/vTJswXcDMT9d3IjgSdVYtSyKXIjIS9u0rgSFUtlTY9jusHgcnNp+/PSAUWgyGxgON4FeayZmUONj3L2z/A3bPgYxU43aLu3GVt+P9ULN16a3HiQ6eSWTcon38tuEotszMTPvalRnTJ5yeDasWy8mGK8c+V/7sUj6UWOxPSzIOelePN3bjy3TQXo2Z9q4sNV9BeMuu3NohjDahlUonsZEcY+yYtOMP44qoPd243eoFrW4zruhWa0qqLYOFu07x4+rD2fO3AFqEBDCmTzhXN6mmOTGF4MrxrzCffeBnS9l2LI7vRl1B70bB2bevORDNrV+tpG4VHxY+1auUViyupsRif2qC0fa5ejyc3Xv+9ioNocWt0HiAMXPGZCIx1cZ1ny1j/5lErm1Zgy+Gti3GheSQeBb2zDMuwO79FxxGch13X2g91Ij9VcLzfOrmI7HcMn4F6RkOXruuKXd2rVsya6wgrvxwEXuOnlZCRqQooqNh6LBCTFa/XA4HHFljDEncPuN89hzAtxo0uAbqdIewTsY08+I8OLelGcmgwyuNIZQHl50/EAfjD0OrIUbZpW9w/q9zESX2h62UHI1JYsKS/fy09kj2XITiOvlw5djnyp9dyrZSjf0Hl8GmqTh2zMSUnph913FHIAsz2rDbqxVVmvake7tWtKpVqfiSHbZUOLbhfOw/tOL8gThAjVbQ8nZodTvpHpVYcyCaPzcdZ/a2E8SnGG1JJhNc2bgaI7vUzrPdqrzH/pLkyvGvMJ/9hs+XsfnoOb4d2Z4rm1TLvn1J5GlGTFxD4+p+zH2sfLdLS9lTarHfbof9C43kzM5ZYEs+f19AGDTsC3W6ssOtKddN2keG3cEXQ9tybcsal//e6clG1fuhlbD3Hzi65nw7KkCtK4zKnZa3gmf+cxTPJaVz7WdLORqTTP/m1flyWNvsvwGK/Xm77rNlbN5/QgkZkaLo199BxBIb/n224RkaTcqRQOIimtOnh5W5c0roCmB6MuyeDTv+NDLVafG57/erCTVaQtXGRrIksC74VTcSN9Z8hiY6HJByDuJPGkOFz+wxrsqe2mkkY2wpuR8f1AAa9TOqdKq3vOQEUKn9YSslp+JSmLBkPz+uPpxdnt+4uh+je4czoEWNS5om78qxz5U/u5RtTon9aYmwcxaOnTOx743AkvMAHTjqqMJeU11SAxsRULsFtcObUj2kDibf6sa8grw4HMZAyfiTEHcMTkcaZehRO4xWpKwKyCxVm0Cj/jha3MJBSx3WHDjLot2nWbrnTPZsGIAaAZ7c0DqEYR3D8tyWtaLF/pLgyvGvMJ/9pi+Xs/FwLBOGt+OaZtWzb5+//ST3TV5P69BK/DG6a2ktWVyEU2J/Shzs/BN2/mXMbfnPMXmsR01WJYVw2BLG7df2xb9GeOZxf3D+m4I4HEbVY/wJY1fU07vg1C7j2P/k1twXXgGqtzDakloMhioFZ1AcDgcPTFnPvO1RhAV6M+uRbvh7uin2F+DW8StZtfuoEjIihRUZCY0aQdDAjfg2O559e8L2EM7Oak1kZClkfW1pcGiZkZg5vApObDo/UDcv7n7g5mnMozFbjSugtmSjPP6/B945eQVCWGeo3cUY2JVPaWJR5fzDZvFLJnlfNZK3hHFlrxL8w1YKziakMnH5Ab5fcX6AZb0qPjzUO5wbWtcs0haFrhz7XPmzS9lVJmJ/egocXIotcgGJe5fhF7MTM/Z8H55q8cFh8cTk7onV4obZnorJllJg7Hf4VMUW0pHTQe3Z5tOZLYmV2Xkijo1HYolOTMv12CAfd65uWo0bWofQsW7gRSt1KmrsL06uHP8K89lvGbeCdYdiGH9HW/o1P18V8Ofm4zwybSOd6gXy032dS2vJ4gLKROxPSzKSMvsXGhUsUdvIHqh7AZMxFNiaddxvNo7705MhPen8Tqh58a0OtTsbMysb9sveLamwflx9iBdnbMPdYua3B7vQopZRSaPYf3EjJq5h0dZD2mVJpLD27TP+9QyNznW7Z+hZAPbuLYXAbHWH+n2M/wHRUYm8/fAGkg7uolnVnTSruouwgCPU9DuJhzXNqKb5b0VNrsVXMrLqgfUhuLFxNbR6C6N3tZjn1ERGwry5Jipfs5OkHSEk7z/f7jRvnoN166B9+2J9y1IT5OvB030bc1/3+kxacZCJyw+w/0wiT/2ymU/+jeTBnuEMaheCh9Xi7KWKSBGVidjv5gkNrsba4GoCgOiT8bzz6DpssRtoEbaVpoGR1PSIopopBndTBh4ZiZCRCPkcf8eb/DhnDeKEJYRDljD2m0LZmB7GhnNBpJ7NOtg/m/k/g7vVTIuQALqFV6FP42BahAQUql2qIsd+KT1Z/61l/CcPmZKetcuS/r5K8SoTsd/d25gj03gAADEnzvHeY+tJi97IFR2W0sBylODkeKp7nsHNYjNGHOQcc/Bf3kFG8qVKuHHMH9zYaEetXPeSq9/3RMXzxixj9tkz/RplJ2MU+wvmXYS4pYSMCFC/vvFvypHAXJnylCPG1nPhxVNEUiRD7/QmYkkn8G1JxlYvKl+1HU/vaFI2V8a6IoT+3RP47qsU4+qqPf181tzNyyhtdPMqtbVm/WFL2lWT9FP+BA3cmF3+Gb2gOQ88aGXd2vKdLQ/wduPRqxpwd/e6TF55iG+W7udIdDIvzNjKZxF7uL9HPW7vEKYDR5FypEzG/lG+RCzpBr5tyViSGftDz5J+2gffKDeaNY2icYtYTkXHEZeUQipupOBOisOdMwSQSn67cxjJmEAfd8Kr+lI/2JcGwb60CatE05r+l5RUdoXYLyXPknmymPGfov3UzISMl/6uSjEri7F/yF3+RCzpDr7t8EkbQEDn/TjMkLytKm7LatG3axITx6cYbU72jPNV8m7exnF/fqMMLlFKegYPT9tISrqdHg2rcleOIb6K/QXzcldCRqRIGjY0+h4jIpoDJjxDz5JyJIi4iGb07eegQYPSDSpZmedKvfYQu6hprpJK32YnSMDMpJmteeH9sjFAK+sPW+rhKv9Z63HAxPpZrdmzp2ys9XL5elh5sFd97uxSh2lrDvPVkn2cOJfCa3/t4POF+7i3e12GdaqNrzO3sRWRQilPsd/qn8q5lBD++upaPswsp09Jz+BsYhpn4lOJTkwj1ZZBqs1Oqs2Om8WEp9WCp5sFfy83gv08qOrnUaxJY1eK/VJyLNkVMrlLZFLSje91oUOKW1mP/ZYORsbDZALvRqdJsLnx3cw2PF+Kx/3vzNnFrpPxBPm488HglrmqJhX7C1aUuKUzBpFM06aaGDLUyrxZrbNvyxpOVdqyMs8Wb6Mm3akllYXQsCG0bedgw3pTmV9rcfFyt3BXt7oM7RjGL+uPMn7RPo7FJvP2nF2MW7yPu7rWZWSXOgR45TOETUTKhPIc+z3dLIRU8iKkUulVRObkirFfil/BLUvF22YtAmU99sfkut+r3img9OLpgh1RTFpxEIAPBrci2M8z1/2K/QXzLkKFjCKcSKbKlWHuHBORkTB7tpGtnjvHOZPCszLPGUlG6XnKkcBc9xdnSWVkJMyZA3v2XN7rjB9n/AErybWWRZ5uFoZ3qs2ip3vx/i0tqVvFh9ikdMYuiKTbOxF8MG/3BQMzRaTsUOy/vNdx1dgvxceSef5rt+duWUqxGQkZzWiTklCeYr/ZPQNrQFKpxP5jsck89ctmAEZ1rUPvxsF5Pk6x/+KK0mqpChmR/2jQwPkZ3exSyiUNcAs+R8w/zSjuksri3q7uiivKVvlnaXOzmBncPpSb29bi760n+DxiD5FRCXy+cC8Tlx/gjk61ua1VkLOXKSL5UOxX7BfnyG5Z+s8MGbUsSWko27H/DCaLA4tPGuF3bKJuvU5caj1FYWJ/eoadR6Zt5FxyOi1rBfB8/yb5vp5i/8VphoxIBZBdSjk3AEwOzhZzSeXQYcZ2dUEDt2UP4oqIaM6QoZe+XV1ZKv90FovZxPWtajKwRQ3m7zjJ5wv3su1YHBOW7Gfiwh3OXp6IlHGK/eJqzFlDff9bIaOWJXEh+cV+a0ASofcuIdk3ho//2cNTfRtd0usXJvZ/tCCS9Ydi8POw8vmQtrhbL/67p9ifvxta16RJkJUrPy74sUrIiJRRWaWUe/bA3r0mrFaw2YwSwMvNOmcNDwsauO2CQVzzLmMQV+41F89ayyuz2US/5jXo26w6iyJP89m/e1i353jBTxQRl6bYL64mq0LGrgoZcWH5x35vdia15JFpG/l84V7a1alM70Z5txHlpzCx/2B6FF8uMobZvDOoJWFB3kVcs2J/TrUqe+NvCSz4gSghI1LmlUQpZdbwsJIaxFUWyj/LCpPJRO9GwfRqWJV/Nh3kmo+dvSIRKQ8U+8VVnB/qm/cMGc8CrtKLVCR5xdEG1GTtgWgmrzrEEz9v4u9HulOzCMPcC4r9izbF8dHWjQCM6Fyba1vWuOw1S+Epwom4oKzhYRrEVXpMJhMd62uGjIg4j2K/lEWWfFqWUrNbllQhI/LSwCa0CAkgJimd0VM3kJqZsCyMi8V+s08KE3atJSktg27hVXh5YNPiXLYUghIyIi4oa3hYXERzEraHYIvzJGF7SI5BXM5eoYiIFDfFfimL1LIkUjAPq4Uvh7XF39PKxsOxPDx1I+n/3Ss+H/nG/sWNaTBqHacTU6hX1YcvhrXFzaL0QGlTy5KIi9IgLhER16PYL2XN+aG+uW/XUF+R3EIDvRl/RzvunLSW+TuieOqXzYy9tXV2UvNi/hv7Te42Gt+zjiSfc1TydmPiyCsI8HIr4U8geVFCRsRFaRCXiIjrUeyXssaaX4VMZkuGhypkRLJ1Ca/CuGFtuX/yemZuOo63u4W3bmqByXTxOJ4z9m/amcbXkWuIPHMOb3cLE4a3p04Vn1L6BPJfSsiIuDgN4hIRcT2K/VJW5DvUN6tlyaqEjEhOVzapxke3tebRnzYybc0RTsWl8s6gllT18yjwuZ5BSYzbs4b9ZxIJ9HHnuzuvoFVopZJftORLNYAiIiIiIuIUWSMrLkzIqGVJJD/XtarJ+7e0wt1i5t9dp+j38RL+2RGV7+OT0mx8tCCSqz9azP7TidQM8GT6/Z2VjCkDVCEjIiIiIiJOkbXLkob6ihTNoHa1aFrTn8d+2sTuqHju+WEdbcMq0atRML0aVcXTzcL+04nsPRXP5FWHiIpLBaB97cp8OqRNkbbOlpKjhIyIiIiIiDhFfi1L2vZapGBNavgzc0xXPpy/m2+WHWDD4Vg2HI5l7ILICx5bq7IXz/dvwoAW1QucOSOlRwkZERERERFxiqwKmYx8hvqqZUnk4jzdLLx4bVPu6laXRbtPs2j3KZbvPYsJqFfVh7pVfGhbuzK3tg9VgrMMUkJGREREREScImvLXnuOCpkMu4P0DON7DfUVKZwaAV4M6RDGkA5hODITnKqEKfuUkBEREREREafIalmy5UjIZA30BbUsiVwKJWLKD9UAioiIiIiIU2QP9c0nIeNh1emKiFRcinAiIiIiIuIU2UN9c8yQSbEZOyy5W83Z94uIVERKyIiIiIiIiFNkD/W1n78tq0LGU9UxIlLBKcqJiIiIiIhTWDLPRvJqWdL8GBGp6JSQERERERERp8izZSndKJdRQkZEKjolZERERERExCnyGuqbml0ho1MVEanYFOVERERERMQpLHkO9VXLkoi4BiVkRERERETEKczZQ33zaFmyKiEjIhWbEjIiIiIiIuIUWRUy9hwVMslpRoWMh1qWRKSCU5QTERERERGnyB7qa1fLkoi4HiVkRERERETEKazZCZnzt2mXJRFxFUrIiIiIiIiIU2TvspRr2+vMChmrTlVEpGJTlBMREREREafIq2Xp/LbXqpARkYpNCRkREREREXEKS+bZSK4KGVtWy5JOVUSkYlOUExERERERp8h722tVyIiIa1BCRkREREREnCJr22ubEjIi4oKUkBEREREREafIHuqbKyFjtCx5aKiviFRwinIiIiIiIuIU2UN989plSRUyIlLBKSEjIiIiIiJOkWeFTPZQXyVkRKRiU0JGREREREScwnLRChmdqohIxaYoJyIiIiIiTpHdsmQ/f1tqVkLGqgoZEanYlJARERERERGnuNhQX7UsiUhFp4SMiIiIiIg4hTnzbCRXy5JNLUsi4hoU5URERERExCnyrpDRLksi4hqUkBEREREREafIe6hvVsuSTlVEpGJTlBMREREREac4P9T3wgoZDw31FZEKTgkZERERERFxiv+2LDkcDlJtGuorIq5BCRkREREREXGK/7YsZSVjQC1LIlLxKcqJiIiIiIhTZCdkMvMwWe1KoAoZEan4lJARERERERGnyErI2DMrZLIG+lrMJtwsOlURkYpNUU5ERERERJzCbMo91Dd7y2urTlNEpOJTpBMREREREafIrpDJSsjYMhMyalcSEReghIyIiIiIiDhF1i5LNnvuliUlZETEFSghIyIiIiIiTmHOPBvJcORuWfLQDksi4gIU6URERERExCkuaFnKniGjChkRqfiUkBEREREREafIalnKcPy3ZUmnKSJS8SnSiYiIiIiIU5gzK2QcDnA4HKRqqK+IuBAlZERERERExCmyKmTA2Po6u2VJCRkRcQFKyIiIiIiIiFNkVciA0bakliURcSWKdCIiIiIi4hSWHAkZu11DfUXEtSghIyIiIiIiTpGrZSlHhYyHWpZExAUoISMiIiIiIk5hznE2kmF3kJI91FenKSJS8SnSiYiIiIiIU+SskLFrqK+IuBglZERERERExCks+Q311QwZEXEBSsiIiIiIiIhTmEwmsopk7HYHqelqWRIR16FIJyIiIiIiTmPNrJLJcOScIaMKGRGp+JSQERERERERpzFnlsisOxjDxsOxgCpkRMQ1WJ29ABERERERcV1Zc2QenrYRgCq+7nSqF+TMJYmIlAolZERERERExGly7rQ0qG0tXrq2CZV93J24IhGR0qGEjIiIiIiIOM2AFjXYfDSWFwY0oUfDqs5ejohIqVFCRkREREREnObdW1o6ewkiIk6haVkiIiIiIiIiIqVMCRkRERERERERkVKmhIyIiIiIiIiISClTQkZEREREREREpJQpISMiIiIiIiIiUsqUkBERERERERERKWVKyIiIiIiIiIiIlDIlZERERERERERESpkSMiIiIiIiIiIipUwJGRERERERERGRUqaEjIiIiIiIiIhIKVNCRkRERERERESklCkhIyIiIiIiIiJSypSQEREREREREREpZUrIiIiIiIiIiIiUMiVkRERERERERERKmRIyIiIiIiIiIiKlTAkZEREREREREZFSpoSMiIiIiIiIiEgpU0JGRERERERERKSUKSEjIiIiIiIiIlLKlJARERERERERESllSsiIiIiIiIiIiJQyJWREREREREREREqZ1Rlv6nA4AIiLi3PG24uIOEVWzMuKga5EcV9EXJViv2K/iLiewsZ+pyRk4uPjAQgNDXXG24uIOFV8fDwBAQHOXkapUtwXEVen2C8i4noKiv0mhxPS9Xa7nePHj+Pn54fJZCrttxcRcQqHw0F8fDw1a9bEbHatjlHFfRFxVYr9iv0i4noKG/udkpAREREREREREXFlrpWmFxEREREREREpA5SQEREREREREREpZUrIiIiIiIiIiIiUMiVkRERERERERERKmRIyIiIiIiIiIiKlTAkZEREREREREZFSpoSMVHinT5+mevXqvPXWW9m3rV69Gnd3d+bPn+/ElYmISElR7BcRcT2K/VLemBwOh8PZixApabNnz+bGG29kxYoVNG7cmDZt2nDttdfy8ccfO3tpIiJSQhT7RURcj2K/lCdKyIjLGD16NP/88w9XXHEFmzdvZu3atXh6ejp7WSIiUoIU+0VEXI9iv5QXSsiIy0hOTqZ58+YcOXKEdevW0bJlS2cvSURESphiv4iI61Hsl/JCM2TEZezfv5/jx49jt9s5dOiQs5cjIiKlQLFfRMT1KPZLeaEKGXEJaWlpdOjQgdatW9O4cWPGjh3L1q1bqVatmrOXJiIiJUSxX0TE9Sj2S3mihIy4hKeffppff/2VzZs34+vrS+/evfHz82PWrFnOXpqIiJQQxX4REdej2C/liVqWpMJbtGgRH3/8MZMnT8bf3x+z2czkyZNZtmwZ48aNc/byRESkBCj2i4i4HsV+KW9UISMiIiIiIiIiUspUISMiIiIiIiIiUsqUkBERERERERERKWVKyIiIiIiIiIiIlDIlZERERERERERESpkSMiIiIiIiIiIipUwJGRERERERERGRUqaEjIiIiIiIiIhIKVNCRkRERERERESklCkhIyIiIiIiIiJSypSQEREREREREREpZUrIiIiIiIiIiIiUMiVkRERERERERERK2f8Dc1zZGGrjM6kAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 1400x500 with 3 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_165_1.png"
}
},
"output_type": "display_data"
}
],
"source": [
"\"\"\"\n",
"============================\n",
"Underfitting vs. Overfitting\n",
"============================\n",
"\n",
"This example demonstrates the problems of underfitting and overfitting and\n",
"how we can use linear regression with polynomial features to approximate\n",
"nonlinear functions. The plot shows the function that we want to approximate,\n",
"which is a part of the cosine function. In addition, the samples from the\n",
"real function and the approximations of different models are displayed. The\n",
"models have polynomial features of different degrees. We can see that a\n",
"linear function (polynomial with degree 1) is not sufficient to fit the\n",
"training samples. This is called **underfitting**. A polynomial of degree 4\n",
"approximates the true function almost perfectly. However, for higher degrees\n",
"the model will **overfit** the training data, i.e. it learns the noise of the\n",
"training data.\n",
"We evaluate quantitatively **overfitting** / **underfitting** by using\n",
"cross-validation. We calculate the mean squared error (MSE) on the validation\n",
"set, the higher, the less likely the model generalizes correctly from the\n",
"training data.\n",
"\"\"\"\n",
"\n",
"print(__doc__)\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.linear_model import LinearRegression\n",
"from sklearn.model_selection import cross_val_score\n",
"\n",
"\n",
"def true_fun(X):\n",
" return np.cos(1.5 * np.pi * X)\n",
"\n",
"np.random.seed(0)\n",
"\n",
"n_samples = 30\n",
"degrees = [1, 4, 15]\n",
"\n",
"X = np.sort(np.random.rand(n_samples))\n",
"y = true_fun(X) + np.random.randn(n_samples) * 0.1\n",
"\n",
"plt.figure(figsize=(14, 5))\n",
"for i in range(len(degrees)):\n",
" ax = plt.subplot(1, len(degrees), i + 1)\n",
" plt.setp(ax, xticks=(), yticks=())\n",
"\n",
" polynomial_features = PolynomialFeatures(degree=degrees[i],\n",
" include_bias=False)\n",
" linear_regression = LinearRegression()\n",
" pipeline = Pipeline([(\"polynomial_features\", polynomial_features),\n",
" (\"linear_regression\", linear_regression)])\n",
" pipeline.fit(X[:, np.newaxis], y)\n",
"\n",
" # Evaluate the models using crossvalidation\n",
" scores = cross_val_score(pipeline, X[:, np.newaxis], y,\n",
" scoring=\"neg_mean_squared_error\", cv=10)\n",
"\n",
" X_test = np.linspace(0, 1, 100)\n",
" plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label=\"Model\")\n",
" plt.plot(X_test, true_fun(X_test), label=\"True function\")\n",
" plt.scatter(X, y, edgecolor='b', s=20, label=\"Samples\")\n",
" plt.xlabel(\"x\")\n",
" plt.ylabel(\"y\")\n",
" plt.xlim((0, 1))\n",
" plt.ylim((-2, 2))\n",
" plt.legend(loc=\"best\")\n",
" plt.title(\"Degree {}\\nMSE = {:.2e}(+/- {:.2e})\".format(\n",
" degrees[i], -scores.mean(), scores.std()))\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "dd22f4e5",
"metadata": {
"editable": true
},
"source": [
"## Various steps in cross-validation\n",
"\n",
"When the repetitive splitting of the data set is done randomly,\n",
"samples may accidently end up in a fast majority of the splits in\n",
"either training or test set. Such samples may have an unbalanced\n",
"influence on either model building or prediction evaluation. To avoid\n",
"this $k$-fold cross-validation structures the data splitting. The\n",
"samples are divided into $k$ more or less equally sized exhaustive and\n",
"mutually exclusive subsets. In turn (at each split) one of these\n",
"subsets plays the role of the test set while the union of the\n",
"remaining subsets constitutes the training set. Such a splitting\n",
"warrants a balanced representation of each sample in both training and\n",
"test set over the splits. Still the division into the $k$ subsets\n",
"involves a degree of randomness. This may be fully excluded when\n",
"choosing $k=n$. This particular case is referred to as leave-one-out\n",
"cross-validation (LOOCV)."
]
},
{
"cell_type": "markdown",
"id": "1d78f931",
"metadata": {
"editable": true
},
"source": [
"## Cross-validation in brief\n",
"\n",
"For the various values of $k$\n",
"\n",
"1. shuffle the dataset randomly.\n",
"\n",
"2. Split the dataset into $k$ groups.\n",
"\n",
"3. For each unique group:\n",
"\n",
"a. Decide which group to use as set for test data\n",
"\n",
"b. Take the remaining groups as a training data set\n",
"\n",
"c. Fit a model on the training set and evaluate it on the test set\n",
"\n",
"d. Retain the evaluation score and discard the model\n",
"\n",
"5. Summarize the model using the sample of model evaluation scores"
]
},
{
"cell_type": "markdown",
"id": "a3e7ddb7",
"metadata": {
"editable": true
},
"source": [
"## Code Example for Cross-validation and $k$-fold Cross-validation\n",
"\n",
"The code here uses Ridge regression with cross-validation (CV) resampling and $k$-fold CV in order to fit a specific polynomial."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "d7f6476c",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_169_0.png"
}
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.model_selection import KFold\n",
"from sklearn.linear_model import Ridge\n",
"from sklearn.model_selection import cross_val_score\n",
"from sklearn.preprocessing import PolynomialFeatures\n",
"\n",
"# A seed just to ensure that the random numbers are the same for every run.\n",
"# Useful for eventual debugging.\n",
"np.random.seed(3155)\n",
"\n",
"# Generate the data.\n",
"nsamples = 100\n",
"x = np.random.randn(nsamples)\n",
"y = 3*x**2 + np.random.randn(nsamples)\n",
"\n",
"## Cross-validation on Ridge regression using KFold only\n",
"\n",
"# Decide degree on polynomial to fit\n",
"poly = PolynomialFeatures(degree = 6)\n",
"\n",
"# Decide which values of lambda to use\n",
"nlambdas = 500\n",
"lambdas = np.logspace(-3, 5, nlambdas)\n",
"\n",
"# Initialize a KFold instance\n",
"k = 5\n",
"kfold = KFold(n_splits = k)\n",
"\n",
"# Perform the cross-validation to estimate MSE\n",
"scores_KFold = np.zeros((nlambdas, k))\n",
"\n",
"i = 0\n",
"for lmb in lambdas:\n",
" ridge = Ridge(alpha = lmb)\n",
" j = 0\n",
" for train_inds, test_inds in kfold.split(x):\n",
" xtrain = x[train_inds]\n",
" ytrain = y[train_inds]\n",
"\n",
" xtest = x[test_inds]\n",
" ytest = y[test_inds]\n",
"\n",
" Xtrain = poly.fit_transform(xtrain[:, np.newaxis])\n",
" ridge.fit(Xtrain, ytrain[:, np.newaxis])\n",
"\n",
" Xtest = poly.fit_transform(xtest[:, np.newaxis])\n",
" ypred = ridge.predict(Xtest)\n",
"\n",
" scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred)\n",
"\n",
" j += 1\n",
" i += 1\n",
"\n",
"\n",
"estimated_mse_KFold = np.mean(scores_KFold, axis = 1)\n",
"\n",
"## Cross-validation using cross_val_score from sklearn along with KFold\n",
"\n",
"# kfold is an instance initialized above as:\n",
"# kfold = KFold(n_splits = k)\n",
"\n",
"estimated_mse_sklearn = np.zeros(nlambdas)\n",
"i = 0\n",
"for lmb in lambdas:\n",
" ridge = Ridge(alpha = lmb)\n",
"\n",
" X = poly.fit_transform(x[:, np.newaxis])\n",
" estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold)\n",
"\n",
" # cross_val_score return an array containing the estimated negative mse for every fold.\n",
" # we have to the the mean of every array in order to get an estimate of the mse of the model\n",
" estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)\n",
"\n",
" i += 1\n",
"\n",
"## Plot and compare the slightly different ways to perform cross-validation\n",
"\n",
"plt.figure()\n",
"\n",
"plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')\n",
"plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold')\n",
"\n",
"plt.xlabel('log10(lambda)')\n",
"plt.ylabel('mse')\n",
"\n",
"plt.legend()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "29f97a19",
"metadata": {
"editable": true
},
"source": [
"## More examples on bootstrap and cross-validation and errors"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "ea778a04",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Degree of polynomial: 1\n",
"Mean squared error on training data: 446033.51374050\n",
"Mean squared error on test data: 455173.80460179\n",
"Degree of polynomial: 2\n",
"Mean squared error on training data: 114550.54637219\n",
"Mean squared error on test data: 129963.83146596\n",
"Degree of polynomial: 3\n",
"Mean squared error on training data: 9054.61775176\n",
"Mean squared error on test data: 10572.87627342\n",
"Degree of polynomial: 4\n",
"Mean squared error on training data: 302.15313054\n",
"Mean squared error on test data: 433.26292364\n",
"Degree of polynomial: 5\n",
"Mean squared error on training data: 3.64316192\n",
"Mean squared error on test data: 7.23528337\n",
"Degree of polynomial: 6\n",
"Mean squared error on training data: 3.56589683\n",
"Mean squared error on test data: 10.50427787\n",
"Degree of polynomial: 7\n",
"Mean squared error on training data: 0.47313680\n",
"Mean squared error on test data: 1.53738247\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Degree of polynomial: 8\n",
"Mean squared error on training data: 0.04926746\n",
"Mean squared error on test data: 0.14629156\n",
"Degree of polynomial: 9\n",
"Mean squared error on training data: 0.02546675\n",
"Mean squared error on test data: 0.11202337\n",
"Degree of polynomial: 10\n",
"Mean squared error on training data: 0.02424794\n",
"Mean squared error on test data: 0.22467274\n",
"Degree of polynomial: 11\n",
"Mean squared error on training data: 0.01594452\n",
"Mean squared error on test data: 1.07641937\n",
"Degree of polynomial: 12\n",
"Mean squared error on training data: 0.00805074\n",
"Mean squared error on test data: 0.04295757\n",
"Degree of polynomial: 13\n",
"Mean squared error on training data: 0.00781918\n",
"Mean squared error on test data: 0.56965674\n",
"Degree of polynomial: 14\n",
"Mean squared error on training data: 0.00465099\n",
"Mean squared error on test data: 0.28443039\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Degree of polynomial: 15\n",
"Mean squared error on training data: 0.00420072\n",
"Mean squared error on test data: 568.47202442\n",
"Degree of polynomial: 16\n",
"Mean squared error on training data: 0.00325450\n",
"Mean squared error on test data: 48.97690235\n",
"Degree of polynomial: 17\n",
"Mean squared error on training data: 0.00242954\n",
"Mean squared error on test data: 2.52775466\n",
"Degree of polynomial: 18\n",
"Mean squared error on training data: 0.00219194\n",
"Mean squared error on test data: 429.23643365\n",
"Degree of polynomial: 19\n",
"Mean squared error on training data: 0.00154860\n",
"Mean squared error on test data: 238.16356503\n",
"Degree of polynomial: 20\n",
"Mean squared error on training data: 0.00140849\n",
"Mean squared error on test data: 1345.68592431\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Degree of polynomial: 21\n",
"Mean squared error on training data: 0.00119699\n",
"Mean squared error on test data: 1836.21110005\n",
"Degree of polynomial: 22\n",
"Mean squared error on training data: 0.00092904\n",
"Mean squared error on test data: 1182.64316482\n",
"Degree of polynomial: 23\n",
"Mean squared error on training data: 0.00089187\n",
"Mean squared error on test data: 3886.35846425\n",
"Degree of polynomial: 24\n",
"Mean squared error on training data: 0.00083346\n",
"Mean squared error on test data: 1346.92651068\n",
"Degree of polynomial: 25\n",
"Mean squared error on training data: 0.00079910\n",
"Mean squared error on test data: 7697.35412147\n",
"Degree of polynomial: 26\n",
"Mean squared error on training data: 0.00075597\n",
"Mean squared error on test data: 1078.81597834\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Degree of polynomial: 27\n",
"Mean squared error on training data: 0.00068088\n",
"Mean squared error on test data: 3189.20355156\n",
"Degree of polynomial: 28\n",
"Mean squared error on training data: 0.00063364\n",
"Mean squared error on test data: 692.24085321\n",
"Degree of polynomial: 29\n",
"Mean squared error on training data: 0.00063862\n",
"Mean squared error on test data: 3073.63180447\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_19367/626635268.py:73: RuntimeWarning: divide by zero encountered in log10\n",
" plt.plot(polynomial, np.log10(trainingerror), label='Training Error')\n",
"/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_19367/626635268.py:74: RuntimeWarning: divide by zero encountered in log10\n",
" plt.plot(polynomial, np.log10(testerror), label='Test Error')\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGyCAYAAADptr7VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABz9ElEQVR4nO3dd3xUVfrH8c9Mek8oKUACofdepIMgYIW1d7Bg7911LT8b6q7dFXct2BVXsKMCSg+IdKT3Ggg1vc7c3x83kxDSk0mm5Pt+veY1d+7c8mQck4dznnOOxTAMAxEREREvYnV1ACIiIiLOpgRHREREvI4SHBEREfE6SnBERETE6yjBEREREa+jBEdERES8jhIcERER8TpKcERERMTrKMERERERr+Pr6gDqk91u5+DBg4SFhWGxWFwdjoiIiFSBYRikp6fTrFkzrNaqtc14VIJz4MABHn74YX7++Weys7Np374977//Pn369KnS+QcPHiQ+Pr6OoxQREZG6sG/fPlq0aFGlYz0mwTlx4gSDBw9m5MiR/Pzzz0RHR7Njxw4iIyOrfI2wsDDA/IDCw8PrKFIRERFxprS0NOLj44v+jleFxyQ4L774IvHx8UybNq1oX6tWrap1DUe3VHh4uBIcERERD1Od8hKPKTL+/vvv6du3L5dccgnR0dH06tWLd999t8JzcnNzSUtLK/EQERER7+cxCc7OnTuZOnUq7dq149dff+WWW27hrrvu4uOPPy73nClTphAREVH0UP2NiIhIw2AxDMNwdRBV4e/vT9++fUlKSirad9ddd/Hnn3+ydOnSMs/Jzc0lNze36LWjDy81NVVdVCIiIh4iLS2NiIiIav399pganLi4ODp37lxiX6dOnZgxY0a55wQEBBAQEFDXoYmIyGlsNhv5+fmuDkM8hJ+fHz4+Pk69psckOIMHD2bLli0l9m3dupWWLVu6KCIRETmdYRgcOnSIkydPujoU8TCRkZHExsY6bZ46j0lw7r33XgYNGsTzzz/PpZdeyvLly/nvf//Lf//7X1eHJiIihRzJTXR0NMHBwZpUVSplGAZZWVmkpKQAZo+NM3hMgtOvXz+++eYbHn30UZ5++mkSExN57bXXuOqqq1wdmoiIYHZLOZKbxo0buzoc8SBBQUEApKSkEB0d7ZTuKo9JcADOO+88zjvvPFeHISIiZXDU3AQHB7s4EvFEju9Nfn6+UxIcjxkmLiIinkHdUlITzv7eKMERERERr6MER0REpA6MGDGCe+65p8rH7969G4vFwpo1a+ospoZECY6IiDRoFoulwsekSZNqdN2ZM2fyzDPPVPn4+Ph4kpOT6dq1a43uV1WORKqsx7Jly+r03vXJo4qM3ZatgJwtcwjsfLarIxERkWpKTk4u2p4+fTpPPPFEiXnXHCN8HPLz8/Hz86v0uo0aNapWHD4+PsTGxlbrnNqYO3cuXbp0KbGvvNFv5f3MVf0snHVedagFp5bs+bkcfGssgV9dztHl/3N1OCIiUk2xsbFFj4iICCwWS9HrnJwcIiMj+eqrrxgxYgSBgYF8+umnHDt2jCuuuIIWLVoQHBxMt27d+OKLL0pc9/QuqlatWvH8889z/fXXExYWRkJCQom53E7vopo/fz4Wi4XffvuNvn37EhwczKBBg0pNevvss88SHR1NWFgYN954I4888gg9e/as9Odu3LhxiZ89Nja2KOl46qmn6NmzJx988AGtW7cmICAAwzCwWCy88847jB8/npCQEJ599lkApk6dSps2bfD396dDhw588sknJe5V3nl1SQlOLdmtfqzIMRfxDP75TgoOb6nkDBGRhsMwDLLyClzycOZSiw8//DB33XUXmzZtYuzYseTk5NCnTx9+/PFH/vrrL2666SauueYa/vjjjwqv8/LLL9O3b19Wr17Nbbfdxq233srmzZsrPOexxx7j5ZdfZsWKFfj6+nL99dcXvffZZ5/x3HPP8eKLL7Jy5UoSEhKYOnWqU37m7du389VXXzFjxowSdUFPPvkk48ePZ/369Vx//fV888033H333dx///389ddf3HzzzVx33XXMmzevxPVOP6+uqYuqlnx9rPS6/nVWvrWZPmzi6EeX0+TuRRAQ6urQRERcLjvfRucnfnXJvTc+PZZgf+f8mbvnnnu48MILS+x74IEHirbvvPNOfvnlF/73v/8xYMCAcq9zzjnncNtttwFm0vTqq68yf/58OnbsWO45zz33HMOHDwfgkUce4dxzzyUnJ4fAwEDefPNNbrjhBq677joAnnjiCWbPnk1GRkalP9OgQYOwWku2c6SmphbNQZOXl8cnn3xC06ZNSxxz5ZVXlkhQrrzySiZNmlT0c913330sW7aMf/3rX4wcObLc8+qaWnCcIL5pBEfOfofDRiRN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06ZN47rrrit1vOMep17fbreXe32jjG6msq5R0XVP9+CDD/Lrr7/yr3/9i7Zt2xIUFMTFF19MXl5euT9bdTnu/dNPP9G8efMS7wUEBABV/3mDgoJKHGe32/Hx8WHlypX4+PiUODY0NLTomJtvvpm77rqr1PUSEhJq8BOJeC8lOCJeJiQkhLZt25ba37ZtW/z9/Vm8eDFXXnklAPn5+axYsYJ77rmn3OtdffXVPPTQQ7zxxhts2LCBiRMnViuezp07s3jx4hL7kpKSaN++fak/5LWxaNEiJk2axN/+9jfArMnZvXt3lc+PiIggLi6OZcuWFbVQFRQUsHLlSnr37g1QVBC8d+9ehg8fXuZ1OnbsyKxZs0rsO7U4ujy9evXCZrORkpLC0KFDyzymd+/ebNiwocz/viJSkhIckQYiJCSEW2+9lQcffJBGjRqRkJDASy+9RFZWFjfccEO550VFRXHhhRfy4IMPMmbMGFq0aFGt+95///3069ePZ555hssuu4ylS5fy1ltv8fbbb9f2Ryqhbdu2zJw5k/PPPx+LxcLjjz9ebmtPee6++25eeOEF2rVrR6dOnXjllVdKTHoYFhbGAw88wL333ovdbmfIkCGkpaWRlJREaGgoEydO5Oabb+aVV17h4Ycf5oYbbmDNmjVFBdUVtZS1b9+eq666imuvvZaXX36ZXr16cfToUX7//Xe6devGOeecw8MPP8wZZ5zB7bffzuTJkwkJCWHTpk3MmTOHN998syYfm4jXUg2OSAPywgsvcNFFF3HNNdfQu3dvtm/fzq+//kpUVFSF591www3k5eVx/fXXV/uevXv35quvvuLLL7+ka9euPPHEEzz99NNMmjSphj9F2V599VWioqIYNGgQ559/PmPHji1qeamq+++/n2uvvZZJkyYxcOBAwsLCilqEHJ555hmeeOIJpkyZQqdOnRg7diw//PADiYmJACQmJvL1118zc+ZMunfvztSpU4tGUTm6scozbdo0rr32Wu6//346dOjABRdcwB9//EF8fDxg1iktWLCAbdu2MXToUHr16sXjjz9eVPckIsUsRlmdwyIip/jss8+4++67OXjwIP7+/q4Ox+M899xzvPPOO+zbt8/VoYg0GOqiEpFyZWVlsWvXLqZMmcLNN9+s5KaK3n77bfr160fjxo1ZsmQJ//znPzVXjUg9UxeViJTrpZdeomfPnsTExPDoo4+6OhyPsW3bNsaPH0/nzp155plnuP/++3nqqadcHZZIg6IuKhEREfE6asERERERr6MER0RERLyOEhwRERHxOkpwRERExOsowRERERGvowRHREREvI4SHBEREfE6SnBERETE6/w/M3buzvyCkMoAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_171_6.png"
}
},
"output_type": "display_data"
}
],
"source": [
"# Common imports\n",
"import os\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.linear_model import LinearRegression, Ridge, Lasso\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.utils import resample\n",
"from sklearn.metrics import mean_squared_error\n",
"# Where to save the figures and data files\n",
"PROJECT_ROOT_DIR = \"Results\"\n",
"FIGURE_ID = \"Results/FigureFiles\"\n",
"DATA_ID = \"DataFiles/\"\n",
"\n",
"if not os.path.exists(PROJECT_ROOT_DIR):\n",
" os.mkdir(PROJECT_ROOT_DIR)\n",
"\n",
"if not os.path.exists(FIGURE_ID):\n",
" os.makedirs(FIGURE_ID)\n",
"\n",
"if not os.path.exists(DATA_ID):\n",
" os.makedirs(DATA_ID)\n",
"\n",
"def image_path(fig_id):\n",
" return os.path.join(FIGURE_ID, fig_id)\n",
"\n",
"def data_path(dat_id):\n",
" return os.path.join(DATA_ID, dat_id)\n",
"\n",
"def save_fig(fig_id):\n",
" plt.savefig(image_path(fig_id) + \".png\", format='png')\n",
"\n",
"infile = open(data_path(\"EoS.csv\"),'r')\n",
"\n",
"# Read the EoS data as csv file and organize the data into two arrays with density and energies\n",
"EoS = pd.read_csv(infile, names=('Density', 'Energy'))\n",
"EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')\n",
"EoS = EoS.dropna()\n",
"Energies = EoS['Energy']\n",
"Density = EoS['Density']\n",
"# The design matrix now as function of various polytrops\n",
"\n",
"Maxpolydegree = 30\n",
"X = np.zeros((len(Density),Maxpolydegree))\n",
"X[:,0] = 1.0\n",
"testerror = np.zeros(Maxpolydegree)\n",
"trainingerror = np.zeros(Maxpolydegree)\n",
"polynomial = np.zeros(Maxpolydegree)\n",
"\n",
"trials = 100\n",
"for polydegree in range(1, Maxpolydegree):\n",
" polynomial[polydegree] = polydegree\n",
" for degree in range(polydegree):\n",
" X[:,degree] = Density**(degree/3.0)\n",
"\n",
"# loop over trials in order to estimate the expectation value of the MSE\n",
" testerror[polydegree] = 0.0\n",
" trainingerror[polydegree] = 0.0\n",
" for samples in range(trials):\n",
" x_train, x_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2)\n",
" model = LinearRegression(fit_intercept=False).fit(x_train, y_train)\n",
" ypred = model.predict(x_train)\n",
" ytilde = model.predict(x_test)\n",
" testerror[polydegree] += mean_squared_error(y_test, ytilde)\n",
" trainingerror[polydegree] += mean_squared_error(y_train, ypred) \n",
"\n",
" testerror[polydegree] /= trials\n",
" trainingerror[polydegree] /= trials\n",
" print(\"Degree of polynomial: %3d\"% polynomial[polydegree])\n",
" print(\"Mean squared error on training data: %.8f\" % trainingerror[polydegree])\n",
" print(\"Mean squared error on test data: %.8f\" % testerror[polydegree])\n",
"\n",
"plt.plot(polynomial, np.log10(trainingerror), label='Training Error')\n",
"plt.plot(polynomial, np.log10(testerror), label='Test Error')\n",
"plt.xlabel('Polynomial degree')\n",
"plt.ylabel('log10[MSE]')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "f5bc26cd",
"metadata": {
"editable": true
},
"source": [
"Note that we kept the intercept column in the fitting here. This means that we need to set the **intercept** in the call to the **Scikit-Learn** function as **False**. Alternatively, we could have set up the design matrix $X$ without the first column of ones."
]
},
{
"cell_type": "markdown",
"id": "4bbb49da",
"metadata": {
"editable": true
},
"source": [
"## The same example but now with cross-validation\n",
"\n",
"In this example we keep the intercept column again but add cross-validation in order to estimate the best possible value of the means squared error."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "89f26923",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_19367/3817475779.py:63: RuntimeWarning: divide by zero encountered in log10\n",
" plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_174_1.png"
}
},
"output_type": "display_data"
}
],
"source": [
"# Common imports\n",
"import os\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.linear_model import LinearRegression, Ridge, Lasso\n",
"from sklearn.metrics import mean_squared_error\n",
"from sklearn.model_selection import KFold\n",
"from sklearn.model_selection import cross_val_score\n",
"\n",
"\n",
"# Where to save the figures and data files\n",
"PROJECT_ROOT_DIR = \"Results\"\n",
"FIGURE_ID = \"Results/FigureFiles\"\n",
"DATA_ID = \"DataFiles/\"\n",
"\n",
"if not os.path.exists(PROJECT_ROOT_DIR):\n",
" os.mkdir(PROJECT_ROOT_DIR)\n",
"\n",
"if not os.path.exists(FIGURE_ID):\n",
" os.makedirs(FIGURE_ID)\n",
"\n",
"if not os.path.exists(DATA_ID):\n",
" os.makedirs(DATA_ID)\n",
"\n",
"def image_path(fig_id):\n",
" return os.path.join(FIGURE_ID, fig_id)\n",
"\n",
"def data_path(dat_id):\n",
" return os.path.join(DATA_ID, dat_id)\n",
"\n",
"def save_fig(fig_id):\n",
" plt.savefig(image_path(fig_id) + \".png\", format='png')\n",
"\n",
"infile = open(data_path(\"EoS.csv\"),'r')\n",
"\n",
"# Read the EoS data as csv file and organize the data into two arrays with density and energies\n",
"EoS = pd.read_csv(infile, names=('Density', 'Energy'))\n",
"EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')\n",
"EoS = EoS.dropna()\n",
"Energies = EoS['Energy']\n",
"Density = EoS['Density']\n",
"# The design matrix now as function of various polytrops\n",
"\n",
"Maxpolydegree = 30\n",
"X = np.zeros((len(Density),Maxpolydegree))\n",
"X[:,0] = 1.0\n",
"estimated_mse_sklearn = np.zeros(Maxpolydegree)\n",
"polynomial = np.zeros(Maxpolydegree)\n",
"k =5\n",
"kfold = KFold(n_splits = k)\n",
"\n",
"for polydegree in range(1, Maxpolydegree):\n",
" polynomial[polydegree] = polydegree\n",
" for degree in range(polydegree):\n",
" X[:,degree] = Density**(degree/3.0)\n",
" OLS = LinearRegression(fit_intercept=False)\n",
"# loop over trials in order to estimate the expectation value of the MSE\n",
" estimated_mse_folds = cross_val_score(OLS, X, Energies, scoring='neg_mean_squared_error', cv=kfold)\n",
"#[:, np.newaxis]\n",
" estimated_mse_sklearn[polydegree] = np.mean(-estimated_mse_folds)\n",
"\n",
"plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')\n",
"plt.xlabel('Polynomial degree')\n",
"plt.ylabel('log10[MSE]')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "3d39d1c9",
"metadata": {
"editable": true
},
"source": [
"## Notes on scaling with examples\n",
"\n",
"The programs here use both ordinrary least squares (OLS) and Ridge\n",
"regression with one value only for the hyperparameter $\\lambda$. The\n",
"first example has no scaling and includes the intercept as well and we\n",
"are trying to fit a second-order polynomial. The second code takes out\n",
"the intercept and subtracts the mean values of each column of the\n",
"design matrix and the mean value of the outputs.\n",
"\n",
"The third and final code uses **Scikit-Learn** as library in order to\n",
"calculate the optimal parameters for OLS and Ridge regression. Note\n",
"that it is highly recommended to not include the intercept in Ridge\n",
"and Lasso regression, in order to avoid penalizing the optimization by\n",
"the intercept. The second and third codes do thus not include the\n",
"intercept. In the second code we do the scaling ourselves while the\n",
"last code uses the standard scaler option included in **Scikit-Learn**, known as centering (where\n",
"we subtract the mean values)."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "2470e6f1",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1.79934087 0.47179152 5.01549939]\n",
"[1.79909592 0.47176716 5.01550546]\n",
" \n",
"test MSE of OLS:\n",
"1.139431112903922\n",
" \n",
"test MSE of Ridge\n",
"1.1395235273363669\n"
]
},
{
"data": {
"image/png": "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3qF9+/Z4eXlRuXJld1enVJk2bRqhoaF4eHhwww038Oeff7q7SqXSunXr6N27NzVq1EBRFBYsWODuKpVKEyZM4MYbb8THx4dq1arRr18/9u/f7+5qlVrTp0/nuuuucyUXa9euHUuWLHFLXSps8NGlSxd++OEH9u/fz88//8yhQ4e455573F2tUmffvn3ous7nn3/Onj17+Oijj/jss8949dVX3V21UisjI4N7772XYcOGubsqpcq8efMYNWoUY8aMYceOHdx000307NmTY8eOubtqpU5KSgrXX389U6dOdXdVSrW1a9cyYsQINm3axIoVK7Db7XTv3p2UlBR3V61UqlmzJu+++y5bt25l69at3HLLLfTt25c9e/aUfGUMYRiGYSxcuNBQFMXIyMhwd1VKvUmTJhmhoaHurkapN2PGDMPPz8/d1Sg1WrdubTz55JNZjjVu3Nh4+eWX3VSjsgEw5s+f7+5qlAknT540AGPt2rXurkqZUaVKFeOrr74q8detsD0fl4qPj+f777+nffv2shVzASQmJuLv7+/uaogyJCMjg23bttG9e/csx7t3786GDRvcVCtR3iQmJgLI51MBOBwO5s6dS0pKCu3atSvx16/QwcdLL71EpUqVCAgI4NixYyxcuNDdVSr1Dh06xJQpU3jyySfdXRVRhpw+fRqHw0H16tWzHK9evTpxcXFuqpUoTwzD4LnnnqNjx46EhYW5uzql1u7du/H29sZqtfLkk08yf/58mjRpUuL1KFfBR3h4OIqi5Ptn69atrvIvvvgiO3bsYPny5WiaxoMPPohRQRK+FratAE6cOEGPHj249957eeyxx9xUc/e4kvYSOSmKkuWxYRg5jglxJUaOHMmuXbuYM2eOu6tSql1zzTVERESwadMmhg0bxpAhQ9i7d2+J18NU4q9YjEaOHMn999+fb5m6deu6/h0YGEhgYCCNGjXi2muvpVatWmzatMktXVAlrbBtdeLECbp06UK7du344osvirl2pU9h20tkFRgYiKZpOXo5Tp48maM3RIjCeuqpp1i0aBHr1q2jZs2a7q5OqWaxWGjQoAEArVq1YsuWLXz88cd8/vnnJVqPchV8OIOJK+Hs8UhPTy/KKpVahWmrmJgYunTpwg033MCMGTNQ1XLVYVYgV/PeEpkfeDfccAMrVqzgzjvvdB1fsWIFffv2dWPNRFlmGAZPPfUU8+fPZ82aNYSGhrq7SmWOYRhu+d4rV8FHQW3evJnNmzfTsWNHqlSpwuHDh3njjTeoX79+hej1KIwTJ07QuXNnateuzfvvv8+pU6dc54KCgtxYs9Lr2LFjxMfHc+zYMRwOBxEREQA0aNAAb29v91bOjZ577jkGDx5Mq1atXD1ox44dk/lDuTh37hwHDx50PY6KiiIiIgJ/f39q167txpqVLiNGjGD27NksXLgQHx8fV8+an58fnp6ebq5d6fPqq6/Ss2dPatWqRXJyMnPnzmXNmjUsXbq05CtT4utrSoFdu3YZXbp0Mfz9/Q2r1WrUrVvXePLJJ43o6Gh3V63UmTFjhgHk+kfkbsiQIbm21+rVq91dNbf79NNPjTp16hgWi8Vo2bKlLInMw+rVq3N9Dw0ZMsTdVStV8vpsmjFjhrurVio98sgjrv9/VatWNbp27WosX77cLXVRDKOCzLAUQgghRKlQ8QbvhRBCCOFWEnwIIYQQokRJ8CGEEEKIEiXBhxBCCCFKlAQfQgghhChREnwIIYQQokRJ8CGEEEKIEiXBhxBCCCFKlAQfQgghhChREnwIIYQQokRJ8CGEEEKIEiXBhxBCCCFK1P8BtqD5pxfNaEwAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_176_1.png"
}
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from sklearn.linear_model import LinearRegression\n",
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.preprocessing import StandardScaler\n",
"\n",
"def MSE(y_data,y_model):\n",
" n = np.size(y_model)\n",
" return np.sum((y_data-y_model)**2)/n\n",
"\n",
"def OLS_fit_beta(X, y):\n",
" return np.linalg.pinv(X.T @ X) @ X.T @ y\n",
"\n",
"def Ridge_fit_beta(X, y,L,d):\n",
" I = np.eye(d,d)\n",
" return np.linalg.pinv(X.T @ X + L*I) @ X.T @ y\n",
"\n",
"# Same random numbers for each test.\n",
"np.random.seed(2018)\n",
"n = 100\n",
"d = 3\n",
"# hyperparameter lambda\n",
"Lambda = 0.01\n",
"\n",
"# Make data set, simple second-order polynomial\n",
"x = np.linspace(-3, 3, n)\n",
"y = 2.0 + 0.5*x + 5.0*(x**2)+ np.random.randn(n)\n",
"\n",
"# The design matrix X includes the intercept and no scaling is made\n",
"X = np.zeros((len(x), d))\n",
"for p in range(d): \n",
" X[:, p] = x ** (p) \n",
"\n",
"\n",
"#Split data, no scaling is used and we include the intercept\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n",
"\n",
"\n",
"#Calculate beta, own code\n",
"beta_OLS = OLS_fit_beta(X_train, y_train)\n",
"beta_Ridge = Ridge_fit_beta(X_train, y_train,Lambda,d)\n",
"print(beta_OLS)\n",
"print(beta_Ridge)\n",
"#predict value\n",
"ytilde_test_OLS = X_test @ beta_OLS\n",
"ytilde_test_Ridge = X_test @ beta_Ridge\n",
"\n",
"#Calculate MSE\n",
"print(\" \")\n",
"print(\"test MSE of OLS:\")\n",
"print(MSE(y_test,ytilde_test_OLS))\n",
"print(\" \")\n",
"print(\"test MSE of Ridge\")\n",
"print(MSE(y_test,ytilde_test_Ridge))\n",
"\n",
"plt.scatter(x,y,label='Data')\n",
"plt.plot(x, X @ beta_OLS,'*', label=\"OLS_Fit\")\n",
"plt.plot(x, X @ beta_Ridge, label=\"Ridge_Fit\")\n",
"plt.grid()\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "3e229ae7",
"metadata": {
"editable": true
},
"source": [
"In this example we do not include the intercept and we scale the data by subtracting the mean values. This follows the discussion in the [lecture material](https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#more-on-rescaling-data).\n",
"see also the weekly slides [for week 36](https://compphysics.github.io/MachineLearning/doc/pub/week36/html/._week36-bs029.html).\n",
"It is recommended whrn we use Ridge and Lasso regression to not include the intercept in the optimization process.\n",
"\n",
"Before we discuss the code, we repeat some of the basic math from the slides of week 36.\n",
"\n",
"Let us try to understand what this may imply mathematically when we\n",
"subtract the mean values, also known as *zero centering* or simply *centering*. For\n",
"simplicity, we will focus on ordinary regression, as done in the above example.\n",
"\n",
"The cost/loss function for regression is"
]
},
{
"cell_type": "markdown",
"id": "2d43d360",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"C(\\beta_0, \\beta_1, ... , \\beta_{p-1}) = \\frac{1}{n}\\sum_{i=0}^{n} \\left(y_i - \\beta_0 - \\sum_{j=1}^{p-1} X_{ij}\\beta_j\\right)^2,.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "777c97c9",
"metadata": {
"editable": true
},
"source": [
"Recall also that we use the squared value. This expression can lead to an\n",
"increased penalty for higher differences between predicted and\n",
"output/target values.\n",
"\n",
"What we have done is to single out the $\\beta_0$ term in the\n",
"definition of the mean squared error (MSE). The design matrix $X$\n",
"does in this case not contain any intercept column. When we take the\n",
"derivative with respect to $\\beta_0$, we want the derivative to obey"
]
},
{
"cell_type": "markdown",
"id": "f464bb58",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\frac{\\partial C}{\\partial \\beta_j} = 0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "624b1d2c",
"metadata": {
"editable": true
},
"source": [
"for all $j$. For $\\beta_0$ we have"
]
},
{
"cell_type": "markdown",
"id": "b872d2db",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\frac{\\partial C}{\\partial \\beta_0} = -\\frac{2}{n}\\sum_{i=0}^{n-1} \\left(y_i - \\beta_0 - \\sum_{j=1}^{p-1} X_{ij} \\beta_j\\right).\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "d6dd0d07",
"metadata": {
"editable": true
},
"source": [
"Multiplying away the constant $2/n$, we obtain"
]
},
{
"cell_type": "markdown",
"id": "2f7c34ed",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\sum_{i=0}^{n-1} \\beta_0 = \\sum_{i=0}^{n-1}y_i - \\sum_{i=0}^{n-1} \\sum_{j=1}^{p-1} X_{ij} \\beta_j.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "7e06d400",
"metadata": {
"editable": true
},
"source": [
"Let us specialize first to the case where we have only two parameters $\\beta_0$ and $\\beta_1$.\n",
"Our result for $\\beta_0$ simplifies then to"
]
},
{
"cell_type": "markdown",
"id": "bad7ab31",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"n\\beta_0 = \\sum_{i=0}^{n-1}y_i - \\sum_{i=0}^{n-1} X_{i1} \\beta_1.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "b11fd1d0",
"metadata": {
"editable": true
},
"source": [
"We obtain then"
]
},
{
"cell_type": "markdown",
"id": "e18f186d",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\beta_0 = \\frac{1}{n}\\sum_{i=0}^{n-1}y_i - \\beta_1\\frac{1}{n}\\sum_{i=0}^{n-1} X_{i1}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "002f906f",
"metadata": {
"editable": true
},
"source": [
"If we define"
]
},
{
"cell_type": "markdown",
"id": "4b2ce40a",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mu_{\\boldsymbol{x}_1}=\\frac{1}{n}\\sum_{i=0}^{n-1} X_{i1},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "6f6da2aa",
"metadata": {
"editable": true
},
"source": [
"and the mean value of the outputs as"
]
},
{
"cell_type": "markdown",
"id": "f8705ff4",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mu_y=\\frac{1}{n}\\sum_{i=0}^{n-1}y_i,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "481c0458",
"metadata": {
"editable": true
},
"source": [
"we have"
]
},
{
"cell_type": "markdown",
"id": "de837aab",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\beta_0 = \\mu_y - \\beta_1\\mu_{\\boldsymbol{x}_1}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "2c151900",
"metadata": {
"editable": true
},
"source": [
"In the general case with more parameters than $\\beta_0$ and $\\beta_1$, we have"
]
},
{
"cell_type": "markdown",
"id": "6df6dc61",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\beta_0 = \\frac{1}{n}\\sum_{i=0}^{n-1}y_i - \\frac{1}{n}\\sum_{i=0}^{n-1}\\sum_{j=1}^{p-1} X_{ij}\\beta_j.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "6d6150d9",
"metadata": {
"editable": true
},
"source": [
"We can rewrite the latter equation as"
]
},
{
"cell_type": "markdown",
"id": "904ad761",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\beta_0 = \\frac{1}{n}\\sum_{i=0}^{n-1}y_i - \\sum_{j=1}^{p-1} \\mu_{\\boldsymbol{x}_j}\\beta_j,\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "0e427a81",
"metadata": {
"editable": true
},
"source": [
"where we have defined"
]
},
{
"cell_type": "markdown",
"id": "d40dc5aa",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\mu_{\\boldsymbol{x}_j}=\\frac{1}{n}\\sum_{i=0}^{n-1} X_{ij},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "259f8a07",
"metadata": {
"editable": true
},
"source": [
"the mean value for all elements of the column vector $\\boldsymbol{x}_j$.\n",
"\n",
"Replacing $y_i$ with $y_i - y_i - \\overline{\\boldsymbol{y}}$ and centering also our design matrix results in a cost function (in vector-matrix disguise)"
]
},
{
"cell_type": "markdown",
"id": "be7a32a4",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"C(\\boldsymbol{\\beta}) = (\\boldsymbol{\\tilde{y}} - \\tilde{X}\\boldsymbol{\\beta})^T(\\boldsymbol{\\tilde{y}} - \\tilde{X}\\boldsymbol{\\beta}).\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "e1723452",
"metadata": {
"editable": true
},
"source": [
"If we minimize with respect to $\\boldsymbol{\\beta}$ we have then"
]
},
{
"cell_type": "markdown",
"id": "a8979b1c",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\hat{\\boldsymbol{\\beta}} = (\\tilde{X}^T\\tilde{X})^{-1}\\tilde{X}^T\\boldsymbol{\\tilde{y}},\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "7c9b9a4d",
"metadata": {
"editable": true
},
"source": [
"where $\\boldsymbol{\\tilde{y}} = \\boldsymbol{y} - \\overline{\\boldsymbol{y}}$\n",
"and $\\tilde{X}_{ij} = X_{ij} - \\frac{1}{n}\\sum_{k=0}^{n-1}X_{kj}$.\n",
"\n",
"For Ridge regression we need to add $\\lambda \\boldsymbol{\\beta}^T\\boldsymbol{\\beta}$ to the cost function and get then"
]
},
{
"cell_type": "markdown",
"id": "6daf72ea",
"metadata": {
"editable": true
},
"source": [
"$$\n",
"\\hat{\\boldsymbol{\\beta}} = (\\tilde{X}^T\\tilde{X} + \\lambda I)^{-1}\\tilde{X}^T\\boldsymbol{\\tilde{y}}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"id": "23161172",
"metadata": {
"editable": true
},
"source": [
"Now we try to implement this."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "9b9f556f",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.47179152 5.01549939]\n",
"[0.47176783 5.01542292]\n",
"1.7993408651198877\n",
"1.7995707762668065\n",
" \n",
"test MSE of OLS:\n",
"1.1394311129039245\n",
" \n",
"test MSE of Ridge\n",
"1.1395084586525954\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week37_208_1.png"
}
},
"output_type": "display_data"
}
],
"source": [
"\n",
"np.random.seed(2018)\n",
"n = 100\n",
"# we do not include the intercept\n",
"d = 2\n",
"Lambda = 0.01\n",
"\n",
"# Make data set.\n",
"x = np.linspace(-3, 3, n)\n",
"y = 2.0 + 0.5*x + 5.0*(x**2)+ np.random.randn(n)\n",
"\n",
"#Design matrix X does not include the intercept. \n",
"X = np.zeros((len(x), d))\n",
"for p in range(d): \n",
" X[:, p] = x ** (p+1)\n",
"\n",
"\n",
"#Split data in train and test\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n",
"\n",
"# Scale data by subtracting mean value,own implementation\n",
"#For our own implementation, we will need to deal with the intercept by centering the design matrix and the target variable\n",
"X_train_mean = np.mean(X_train,axis=0)\n",
"#Center by removing mean from each feature\n",
"X_train_scaled = X_train - X_train_mean\n",
"X_test_scaled = X_test - X_train_mean\n",
"#The model intercept (called y_scaler) is given by the mean of the target variable (IF X is centered, note)\n",
"y_scaler = np.mean(y_train)\n",
"y_train_scaled = y_train - y_scaler\n",
"\n",
"\n",
"#Calculate beta\n",
"beta_OLS = OLS_fit_beta(X_train_scaled, y_train_scaled)\n",
"beta_Ridge = Ridge_fit_beta(X_train_scaled, y_train_scaled,Lambda,d)\n",
"print(beta_OLS)\n",
"print(beta_Ridge)\n",
"# calculate intercepts and print them\n",
"interceptOLS = y_scaler - X_train_mean @ beta_OLS\n",
"interceptRidge = y_scaler - X_train_mean @ beta_Ridge\n",
"print(interceptOLS)\n",
"print(interceptRidge)\n",
"\n",
"#predict value with intercept\n",
"ytilde_test_OLS = X_test_scaled @ beta_OLS+y_scaler\n",
"ytilde_test_Ridge = X_test_scaled @ beta_Ridge+y_scaler\n",
"\n",
"\n",
"#Calculate MSE\n",
"\n",
"print(\" \")\n",
"print(\"test MSE of OLS:\")\n",
"print(MSE(y_test,ytilde_test_OLS))\n",
"print(\" \")\n",
"print(\"test MSE of Ridge\")\n",
"print(MSE(y_test,ytilde_test_Ridge))\n",
"\n",
"plt.scatter(x,y,label='Data')\n",
"plt.plot(x, X @ beta_OLS+interceptOLS,'*', label=\"OLS_Fit\")\n",
"plt.plot(x, X @ beta_Ridge+interceptRidge, label=\"Ridge_Fit\")\n",
"plt.grid()\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "b0a158df",
"metadata": {
"editable": true
},
"source": [
"Finally, instead of using our own function we repeat the same example\n",
"using the **standardscaler** functionality of the library\n",
"**Scikit-Learn**. Here we limit ourselves to Ridge regression only."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "911c4d30",
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'RegRidge' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"Input \u001b[0;32mIn [11]\u001b[0m, in \u001b[0;36m<cell line: 34>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 32\u001b[0m ypredictOLS \u001b[38;5;241m=\u001b[39m OLS\u001b[38;5;241m.\u001b[39mpredict(X_test_scaled)\n\u001b[1;32m 33\u001b[0m linear_model\u001b[38;5;241m.\u001b[39mRidge(Lambda)\n\u001b[0;32m---> 34\u001b[0m \u001b[43mRegRidge\u001b[49m\u001b[38;5;241m.\u001b[39mfit(X_train_scaled,y_train_scaled)\n\u001b[1;32m 35\u001b[0m ypredictRidge \u001b[38;5;241m=\u001b[39m RegRidge\u001b[38;5;241m.\u001b[39mpredict(X_test_scaled)\n\u001b[1;32m 36\u001b[0m betaOLS \u001b[38;5;241m=\u001b[39m OLS\u001b[38;5;241m.\u001b[39mcoef_\n",
"\u001b[0;31mNameError\u001b[0m: name 'RegRidge' is not defined"
]
}
],
"source": [
"from sklearn import linear_model\n",
"np.random.seed(2018)\n",
"n = 10\n",
"d = 2\n",
"Lambda = 0.01\n",
"\n",
"# Make data set.\n",
"x = np.linspace(-3, 3, n)\n",
"y = 2.0 + 0.5*x + 5.0*(x**2)+ np.random.randn(n)\n",
"\n",
"# Design matrix X does not include the intercept. \n",
"X = np.zeros((n, d))\n",
"for p in range(d): \n",
" X[:, p] = x ** (p+1)\n",
"\n",
"#Split data in train and test\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n",
"# Scale data by subtracting mean value of the input using scikit-learn\n",
"scaler = StandardScaler(with_std=False)\n",
"scaler.fit(X_train)\n",
"X_train_mean = np.mean(X_train,axis=0)\n",
"X_train_scaled = scaler.transform(X_train)\n",
"X_test_scaled = scaler.transform(X_test)\n",
"# We scale also the output, here by our own code\n",
"y_scaler = np.mean(y_train)\n",
"y_train_scaled = y_train - y_scaler\n",
"y_test_scaled = y_test- y_scaler\n",
"\n",
"#Calculate beta\n",
"OLS = LinearRegression()\n",
"betaOLS=OLS.fit(X_train_scaled,y_train_scaled)\n",
"ypredictOLS = OLS.predict(X_test_scaled)\n",
"linear_model.Ridge(Lambda)\n",
"RegRidge.fit(X_train_scaled,y_train_scaled)\n",
"ypredictRidge = RegRidge.predict(X_test_scaled)\n",
"betaOLS = OLS.coef_\n",
"betaRidge = RegRidge.coef_\n",
"print(betaOLS)\n",
"print(betaRidge)\n",
"interceptOLS = np.mean(y_train) - X_train_mean @ betaOLS\n",
"interceptRidge = y_scaler - X_train_mean @ betaRidge\n",
"print(interceptOLS)\n",
"print(interceptRidge)\n",
"#predict value \n",
"ytilde_test_Ridge = X_test_scaled @ betaRidge+y_scaler\n",
"ytilde_test_OLS = X_test_scaled @ betaOLS+y_scaler\n",
"\n",
"#Calculate MSE\n",
"print(\" \")\n",
"print(\"test MSE of OLS\")\n",
"print(MSE(y_test,ytilde_test_OLS))\n",
"print(\" \")\n",
"print(\"test MSE of Ridge\")\n",
"print(MSE(y_test,ytilde_test_Ridge))\n",
"plt.scatter(x,y,label='Data')\n",
"plt.plot(x, X @ RegRidge.coef_ + RegRidge.intercept_ , label=\"Ridge_Fit\")\n",
"plt.grid()\n",
"plt.legend()\n",
"plt.show()"
]
}
],
"metadata": {
"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.9.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}