{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# MATH60629\n", "# Semaine \\#2 - Fondamentaux de l'apprentissage automatique - Exos\n", "\n", "Ces exercices portent sur trois aspects importants de l'apprentissage automatique (ML) : \n", "1. la capacité des modèles\n", "2. le biais et la variance d'un estimateur (modèle), ainsi que\n", "3. une courte introduction à la validation. \n", "\n", "Le but de ce notebook est de développer votre intuition à travers une série d'exercices." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sklearn import datasets, linear_model\n", "from sklearn.model_selection import cross_val_predict\n", "diabetes = datasets.load_diabetes()\n", "X = diabetes.data[:150]\n", "y = diabetes.target[:150]\n", "lasso = linear_model.Lasso()\n", "y_pred = cross_val_predict(lasso, X, y, cv=3)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(150,)\n" ] } ], "source": [ "print(y_pred.shape)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from matplotlib.pyplot import cm\n", "\n", "from sklearn.model_selection import train_test_split\n", "\n", "import warnings\n", "warnings.filterwarnings(\"ignore\")\n", "\n", "# Pour colab.\n", "#!rm -rf 80-629\n", "#!git clone https://github.com/lcharlin/80-629/\n", "#import sys\n", "#sys.path += ['80-629/week2-Fundamentals/']\n", "\n", "# Nous utiliserons plusieurs fonctions du fichier utilities.py pour créer des figures\n", "from utilities import scatter_plot, plot_polynomial_curves, \\\n", " plot_optimal_curve, train_poly_and_see, MSE\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.1 Capacité d'un modèle\n", "\n", "Intuitivement, la capacité d'un modèle peut être définie comme le nombre de fonctions que ce modèle peut représenter (c.-à-d. obtenir une erreur d'entraînement de 0). Par rapport à un modèle de haute capacité, un modèle de basse capacité peut représenter moins de fonctions.\n", "\n", "Les modèles à plus haute capacité sont en général plus sujets au surentraînement (**overfitting**). Un modèle est en surentraînement s'il y a une grande différence entre l'erreur d'entraînement et l'erreur de test. En d'autres mots, c'est quand le modèle mémorise des propriétés de l'ensemble d'entraînement qui ne sont pas utiles pour généraliser (bien prédire sur l'ensemble de test). \n", "\n", "Intuitivement, si deux modèles obtiennent des résultats similaires en entraînement, celui avec la plus petite capacité généralisera le mieux. Nous préférons donc une explication simple versus une explication plus compliquée (c'est une bonne illustration du [Rasoir d'Ockham](https://fr.wikipedia.org/wiki/Rasoir_d%27Ockham)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1.1 Génération de données\n", "\n", "Commençons par simuler des données! Dans cette section, chaque observation $y$ est générée par le modèle suivant: \n", "\n", "$$ y = x \\cos(x / \\gamma) + \\epsilon$$\n", "\n", "où $y \\in \\mathbb{R}$ est la cible ou sortie (la variable dépendante qui sera à prédire), $x \\in \\mathbb{R}$ sont les variables indépendantes ou caractéristiques, $\\gamma$ est la période de la fonction cyclique cosinus et $\\epsilon$ est le bruit aléatoire tel que $\\epsilon \\sim \\mathcal{N}(0, \\sigma^2)$ où vous pouvez choisir la valeur de $\\sigma$." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def data_simulation_(sample_size, scale, period, variance):\n", " \n", " x = np.random.uniform(-scale, scale, sample_size)\n", " x.sort()\n", " noise = np.random.normal(0, variance, sample_size)\n", " y = x * np.cos(x / period) + noise\n", " \n", " return x, y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lorsque c'est possible, c'est en général une bonne idée de visualiser les données (pour en obtenir une meilleure compréhension). \n", "\n", "**Question**: Variez les paramètres (*variance*, *scale* et *period*) et voyez comment ils changent la figure ci-dessous." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sample_size = 300\n", "variance = 10 # La variance du bruit Gaussien\n", "scale = 100 # L'étendue\n", "period = 6 # La simulation est basée sur la fonction cosinus (voir la fonction data_simulation)\n", "\n", "x_train, y_train = data_simulation_(int(.7*sample_size), scale, period, \n", " variance)\n", "x_test, y_test = data_simulation_(int(.3*sample_size), scale, period, variance)\n", "\n", "# Cette fonction est dans le fichier utilities.py\n", "plt = scatter_plot(x_train, x_test, y_train, y_test) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1.2 Obtenir une première intuition visuelle de la capacité du modèle\n", "\n", "Comme vu dans le cours (par exemple diapo 38), plus haute est la capacité du modèle, meilleur le modèle sera sur l'ensemble d'entraînement (attention, encore une fois, ça ne dit rien sur sa capacité à généraliser). Pour l'instant, nous entraînerons un modèle de [régression polynomiale](https://fr.wikipedia.org/wiki/R%C3%A9gression_polynomiale). \n", "L'avantage de ce modèle est que nous pouvons facilement changer sa capacité en augmentant le degré du polynôme $m$:\n", "\n", "$$\\hat{y} = \\sum_{i=1}^m w_i x^i $$\n", " \n", "mais ce n'est pas très important de comprendre les détails du modèle.\n", "\n", "**Questions**: \n", "1. Observez l'effet du degré du polynôme sur sa capacité à prédire les données. \n", "2. À votre avis, vaut-il mieux utiliser un polynôme de degré 20 ou 50?\n", "3. Lesquels de ces polynômes devraient avoir la meilleure erreur de généralisation?\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Polynomial degree: 0 | MSE train: 1897.8148 | MSE test: 2090.1397\n", "Polynomial degree: 1 | MSE train: 1834.8547 | MSE test: 2035.8692\n", "Polynomial degree: 3 | MSE train: 1640.1539 | MSE test: 1785.4183\n", "Polynomial degree: 5 | MSE train: 1301.8234 | MSE test: 1389.8382\n", "Polynomial degree: 10 | MSE train: 950.7313 | MSE test: 1069.6461\n", "Polynomial degree: 20 | MSE train: 69.1318 | MSE test: 112.8808\n", "Polynomial degree: 40 | MSE train: 62.125 | MSE test: 124.7164\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Entraîner de polynômes de différents degrés: plus le degré est élevé plus la capacité du modèle l'est.\n", "degree = [0, 1, 3, 5, 10, 20, 40] \n", "plot_polynomial_curves(x_train, x_test, y_train, y_test, degree, scale)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.1.3 Taille échantillonnale et capacité du modèle\n", "\n", "Dans la section précédente, nous avons discuté de la capacité du modèle. \n", "\n", "Maintenant, nous étudions comment le modèle varie et performe en fonction de la taille des données d'entraînement (pour référence, voir diapo 40 et figure 5.4 du livre \"Deep Learning\"). \n", "\n", "Nous étudions le modèle de régression polynomiale de degré 3 comparé à celui de degré optimal (c.-à-d. celui qui minimise la MSE sur l'ensemble de test).\n", "\n", "**Question**: Les courbes ci-dessous semblent-elles se comporter raisonnablement?\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0, 1, 3, 5, 10, 20, 40]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABFQAAAFBCAYAAABZ3vvfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeXxU5fXH8c/JStj3HUXFHQQFd62o4G7VumurVn/iilvVulQDWq3WfSkqVkXbularlaqIu4IiqCAgbiCKCCo7JCHbnN8fz40zhMkGSSbL9/163Vdm7jz33jNJCLkn5zmPuTsiIiIiIiIiIlJ9aakOQERERERERESksVFCRURERERERESkhpRQERERERERERGpISVURERERERERERqSAkVEREREREREZEaUkJFRERERERERKSGMlIdQF1IS0vznJycVIchIiIiIiKSEvn5+e7u+gO6SB1qkgmVnJwc8vLyUh2GiIiIiIhISphZQapjEGnqlLEUEREREREREakhJVRERERERERERGpICRURERERERERkRpSQkVEREREREREpIaUUBERERERERERqSElVEREREREREREakgJFRERERERERGRGlJCRUREREREpJkys3Qz+8TMxkfPNzOzKWb2lZk9ZWZZqY5RpKFSQqU+lRZDLJbqKERERERERMpcCMxJeH4zcIe7bwksB85ISVQijUBGqgNoVqY/Du/eCjucAANPgE5bpDoiERERkSbtne/f4eVvXibm+qOW1J0j+x3J7j13T3UYNWZmvYFDgRuAS8zMgP2Ak6IhjwKjgPtSEqBIA6eESn2a+zqs+A7e+WvY+uwaEivb/wZy2qc6OhEREZEm5YnPn+AvU/6C46kORZq4wd0GszsNLqGSYWbTEp6Pdfex5cbcCVwOtImedwJWuHtJ9Px7oFfdhinSeCmhUp+OGQfz34UZT8JnL8CCKWF7+QrY+xIYekWqIxQRERFp9NydBz59gL9N/xsAp/c/nS07bJniqKQpG9B5QKpDSKbE3YdU9KKZHQb85O4fmdnQst1JhiojKVKBOkuomFkf4DGgOxAjZETvMrNRwJnAz9HQq9z9peiYKwlz9EqBC9x9QrT/IOAuIB34u7vfVFdx16m0NNh8n7AdcgvMeRFmPA7fvAttusfHLf8WCldB9wb5g1lE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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Taille échantillonnale \n", "sample_size = [10, 10**2, 10**3, 10**4, 10**5, 10**6] \n", "variance = 20\n", "\n", "print(degree)\n", "\n", "H_train, H_test, optimal_train, optimal_test, optimal_degree \\\n", " = train_poly_and_see(sample_size, scale, period, variance, degree)\n", "\n", "plot_optimal_curve(optimal_train, optimal_test, H_train, H_test, optimal_degree)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1.2 Biais et variance des estimateurs\n", "\n", "Nous explorons maintenant quelques propriétés du biais et de la variance de quelques estimateurs bien connus. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Modèles linéaires pour la régression\n", "\n", "Les modèles polynomiaux que nous venons d'utiliser font partie d'une classe de modèles s'appelant modèles linéaires. Ils sont appelés ainsi puisque la variable cible ($y$) est prédite par une combinaison linéaire des caractéristiques ($x$). \n", "\n", "En particulier, c'est une tâche de régression linéaire où le but est de prédire une (ou plus) variable(s) cible(s) continue(s) étant donné les valeurs d'un ensemble de variables indépendantes. \n", "\n", "De plus, nous posons que notre objectif est l'erreur au carré \n", "$$\\sum_{i=0}^n (y_i - \\hat{y}_i)^2$$\n", "\n", "ou mean squared error (MSE) en anglais. \n", "\n", "Nous allons maintenant étudier quelques propriétés de ce modèle et de cette fonction d'erreur.\n", "\n", "Note: Un modèle de régression linéaire appris avec une erreur au carrée est appelé régression des moindres carrés ordinaire (ordinary least square ou OLS en anglais). \n", "\n", "Pour commencer, simulons des données. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2.1 Simulation de données \n", "\n", "Chaque observation $y$ est générée par le modèle suivant :\n", "\n", "$$ y = \\bf{x}^\\top \\bf{w} + \\epsilon$$\n", "\n", "où $y \\in \\mathbb{R}$ est la sortie, $\\bf{x}$ le vecteur de variables indépendantes, $\\bf{w}$ le vecteur des paramètres et $\\epsilon$ est le bruit gaussien $\\epsilon \\sim \\mathcal{N}(0,11)$." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "def data_simulation(sample_size, w_0, w_1):\n", " \n", " x = np.random.uniform(-1, 10, sample_size)\n", " x.sort()\n", " noise = np.random.normal(0, 11, sample_size)\n", " y = w_0 + w_1 * x + noise\n", " \n", " return x, y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous pouvons visualiser les données générées." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA30AAAE9CAYAAAC/TQv8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3df3RcZ33n8c+jUTBOrFTkB8Ekjm1RjsSoB6ijQ4PMYXsi2ISAiulJOOkBl25ZaPaka9ruQh1aa7OC7YJd2q7PKQ2cBFICLQG2JJmWrTcShG5soCht2cY/1MRDMDaBmAUHJ4RQSc/+cUfOWJofd2buvc/z3Pt+nTNnNNLo6nvvfWZ0v/M8z/cx1loBAAAAAPKpz3UAAAAAAID0kPQBAAAAQI6R9AEAAABAjpH0AQAAAECOkfQBAAAAQI6R9AEAAABAjvW7DiAJF110kd20aZPrMAAAAADAiQcffPD71tqLG/0sF0nfpk2bNDc35zoMAAAAAHDCGPOtZj9jeCcAAAAA5BhJHwAAAADkGEkfAAAAAOQYSR8AAAAA5BhJHwAAAADkGEkfAAAAAOQYSR8AAAAA5BhJHwAAAADkGEkfAAAAAOQYSR8AAAAAtDE7O6utW7dqdnbWdSgdI+kDAAAAgDampqZ04MABTU1NuQ6lYyR9AAAAANDG9PS0xsfHNT097TqUjvW7DgAAAAAAfDcxMaGJiQnXYXTFeU+fMaZkjPlHY8xf1x5vNsZ8zRjzsDHmLmPMc1zHCAAAAAChcp70SXqXpMN1jz8o6Y+ttS+W9ENJb3cSFQAAAADkgNOkzxhzmaTXS7qt9thIukrS52pP+XNJ29xEBwAAAADhc93T9yeS3iNpqfb4QkmnrLULtcfHJV3qIjAAAAAAyANnSZ8x5g2SHrfWPlj/7QZPtU1+/53GmDljzNzJkydTiREAAAAAQueyp2+rpF8yxjwq6dOKhnX+iaRBY8xyVdHLJH2n0S9baz9qrR2z1o5dfPHFWcQLAAAAIM+qVWl0VOrvj+6rVUlhL8wuOUz6rLU3W2svs9ZuknSDpC9aa98i6UuSrqs97W2S7nEUIgAAAIAimZyUjhyRFhej+8lJSWEvzC65n9PXyO9K+h1jzCOK5vjd7jgeAAAAAEUwPy8t1cqNLC1FjxX2wuySJ0mftfZ+a+0bal9XrbWvsNb+rLX2emvtM67jAwAA/gp92BUAjwwPS321FKmvL3qcA14kfQAAAN0KfdgV8o8PJgJSqUgjI1KpFN1XKpLCf58h6QMAAEELfdgV8i/0hCG3GhVtGRqSDh6UFhai+6EhSeG/zxhrG66IEJSxsTE7NzfnOgwAAABgldnZWU1NTWl6eloTExOuw0ldMPs7OhoVa1laioZyjoxEiV6gjDEPWmvHGv6MpA8AAABAUrZu3aoDBw5ofHxc+/fvdx1Oc/39UZXOZaVS1MMXqFZJH8M7AQAAACQmmKGQOS3a0kh/+6cAAAAAQDwTExN+D+tcVqlE6/DNz0cJX61oSx7R0wcAAACgY8FXJW1StCWPSPoAAAAAdKwIVUmDT2xrSPoAAAAAdCyYuXs9yEtiS9IHAAAAoGMTExPav39/GPP3upSXxJakDwAAAPCQb0MLfYsnC3lJbFmnDwAAAPCQb+vd+RYPzsY6fQAAAEBgfBta6Fs8iI+ePgAAAAAdmZ2d1dTUlKanp4Mf+pgX9PQBAAAAgVg5d87HuXR5qWpZFCR9AAAAgEdWJlQ+JlgM9QwLSR8AAADgkZUJlY8JVppVLUPo6QwNc/oAAACQnWpVmpyU5uel4WGpUpGGhlxHBY+srBJK1dB4mNMHAAAAP0xOSkeOSIuL0f3kpOuI4JNqVftOnNCCpH0nTkjVqpc9naGhpw8AAADZ6e+PEr5lpZK0sOAuHvhldDT6MGBpSerrk0ZGpIMHXUcVBHr6AAAA4MSq+VjDw9HFvBTdDw+7Cw7ONJ2nNz8fJXxSdD8/n31wOUTSBwAAgNSsqjxZqUS9N6VSdF+puA0QTjStSOrphwKhF5Mh6QMAAEBqVs3HGhqKhustLET3FHEJU7UaDcXs74/uq9WOfr3pPL2kPhToMb6VfFw2oxMkfQAAAEhNmqX988z7nqUeC/KsbBdn9veb30zmQ4GECwaFXkyGQi4AAACAZ7xfpiDhgjyJ728BCwZRyAUAAAAIiPc9Sz3OvVvZk5n4/no6N9AVkj4AAADAJ9WqJnbs0P6vfU0TO3b0PB8tFT3OvVs5Ry7xYcAdxOf9UNoEkPQBAIB8SLhwA9CtnpOIEBaw77Egz3LP3rZt29JJuDqIL/QiLXGQ9AEAgHwI4UIZHQm1B6bnJKIAa9Ut9+zdfffdzhMu74fSJoCkDwAA5EMBLpSLJtQemJ6TiITno/mcPKeZcMXd7yJUmKV6JwAAyIfR0aiHb2kpulAeGYmGdSFYs7Ozmpqa0vT0dK4vyFepVqOe6vn5KOGrVHpaz9D7SqApKdp+U70TAADkX1KLOsO55R4aSbnvgWko4QXsizB8sZGi7ncj9PQBAADAK0XroYFjCfesukJPHwAAAJKXUsVUemiQqQIUgSLpAwAAQHdSulguQmGNIvK2oEyLIlDextwhkj4AAAB0h4qpiGl2dlZvetOb/KzG2qJaaqgVZFci6QMAAEB3El5aoCjy0nvUiampKZ0+fVoDAwOpDtvt6ti2KAKVl6HGzpI+Y8xzjTF/b4z5hjHmoDHmv9a+v9kY8zVjzMPGmLuMMc9xFSMAAABaaHGxXMTEJq689B51Yjl5+vznP5/qsN2ujm2Laql5GWrssqfvGUlXWWtfJunlkq4xxlwp6YOS/tha+2JJP5T0docxAgAAoJkWF8shJDaNEtMsktVQeo+SPBZZJU9xjm0RP5DwYskGY8y5kh6Q9B8k/Y2kF1hrF4wxr5R0i7X26la/z5INAAAAfglhYfVGS0OwXMSz8nos8rpf3i7ZYIwpGWP+SdLjku6TdFTSKWvtQu0pxyVd6io+AACQnSJ++p5nIQyLa9QrFEovXBbyeizyul+tOE36rLWL1tqXS7pM0iskvaTR0xr9rjHmncaYOWPM3MmTJ9MMEwAAZCCE4YDIP5fJqm8ffISQuHcjr/vVihfVO621pyTdL+lKSYPGmP7ajy6T9J0mv/NRa+2YtXbs4osvziZQAACQmiJ++g63iY5vHzSkEU+vx9e3RLRXedufuFxW77zYGDNY+3qtpNdIOizpS5Kuqz3tbZLucRMhAADIUhE/fYfbxCuTDxqqVWl0VOrvj+6r1UzjaXV84yRAviXGvcrb/sTlsqdvvaQvGWP+r6SvS7rPWvvXkn5X0u8YYx6RdKGk2x3GCADwXQcXVAD847KHN5MPGiYnpSNHpMXF6H5ysqt4uu2hanV84yRAeeuBn56eVrlc1qlTpwrV2+dF9c5eUb0TAApsdDS6kFpaihaHHhmJSscDgA/6+6OEr8b29cksLjatbtrs+2lUnAyhwmoaqN4JAEBo5uejhE+K7ufn3cYDpKCo85BaCeaYDA9HH0hJWpT06Jo1kpr3sjX7fho9bkUdUp233ss4SPoAAGGru6BSX1/0GMiZEOchpZ2UBXNMKhVpZES2r0/H1q7Vdz7yEUnNE49m3y9qgpaGIh5LhncCAMJWrUZzZObno4SvUpGGhlxHBSQqxGF4SQ2h63QYJFBUrYZ3kvQBAAAkiGQkktRxyOv8KyBpzOkDAAA9SXqoXjDzsboQzLDDlCU1hK6I86+ApJH0AQCAtpJOZDrZXmgJIklKsnyZf+VDO2wXgw8xwk8kfQAAoK2kE5lOthdaz5kvSUojSSQFRU0sfGiH7WLwIUZ4ylob/O2KK66wAADAc0ePWlsuW1sqRfdHj8b6tZmZGTs+Pm5nZmZSDjBwMY7v+Pi4lWTHx8e73k6sbdTk6dz5sC/tYugoxi5fj/CXpDnbJF+ikAsAAMjG6Kh05Ei0nmJfnzQyIh086Dqq/IhxfGMVV2mznU4KtPhQhIXCOk3weswdqncCAAD3+vulxcVnH5dK0sKCu3jyJqnjm+B58iHhWk48y+WyBgcHSf6W5eT16EMb8wXVOwEAgHvDw1GPghTdDw+7jSdvkjq+CZ6nVOc3VqtRb1V/f3RfrTZ82vL8UUnMd6uXk9cj8xjjIekDAADZqFSiIWSlUnRfqbiOqDcxk47MrDi++3fu7K7gSijnaXIyGp64uBjdT042fNpy4rl3795EixEFX9DG1XlO+HVDtdx4GN4JAADQDc/nRPkwn66dnobmOR6e2Oz4+jTc0KdYzvD8dRMyhncCAAAkbX4+unCVovv5ebfxSGf1ouw7cULXbdniVQ/Iyt6xnobmOR6e2KyHyafhhj7FckaT103wPaeeI+kDAACF1PNFpo9zouqGPK779rf12Z/8xJ8eHq1OQnoamud4GGqz+Yo+DTf0IZZVr7NS6ewn1B57maDmCMM7AQBAIrwcStZCz8Mfq9UoyZqfjxK+SkUaGko+0E54XpExtDaC3q16nZVKz/b0SdEHJouLtI0EMLwTAACkLrRP6nvuBRka0uzevdr6C7+g2b17Vyd8Lgq9+Nj7WCfVap7w0qrX2cjI2W10ZEQSbSNtJH0AACARPgwl60QSF5ktE92Y1SUTFUrlTUgqxjy2Va+zBNtoEY5fUkj6AABAIor4SX3LRNdFoZehoagS4sJCdO96uGlCkrq49y1JCK13PBEdtNF256uQx69LJH0AAKCpbi6SfbuwTlPLRNfzoZZOdTj0tf7ivpf2lUmS0MG+pdY77tsakl1qd75CG13glLU2+NsVV1xhAQBA8sbHx60kOz4+nsrvzMzM2PHxcTszM9NLmH46etTactnaUim6P3rUdURdSeUclcvW9vVZK0X35XLsGLppk4220+hn5XLZlsvl3vY1xr6l3u47PL6+yvX7Qwokzdkm+ZLzhC2JG0kfAADp6Oaiq5Pf6eUCHtlI5RyVStFl6PKtVIr9q2klAsv72fO+xti31Nt9D8c3DpIxP5H0AQC8xcVDsYV8/p3GnkYvYpNt+tDTl4VVPX1dHOOZmRlbXbvWLhqT654+PqzxE0kfAMBbXDzAV+0uzJ223TQu6rNMxEIY+trF8RgfH7ebJVtdu9btvqV8fH3+sMbn2NLWKuljcXYAgFMsyAtftVu83WnbTWMRds8Xdj9LtRotgTE/HxXIqVSSr1TaxfHg/cy9dq/bPGu1ODtJHwAAQANeX8CPjkZr/y0tPbvA9cGD/m0zLVnEGtLxwBlev25T1irpY8kGAIBXilTuH35btRxDCmXwu27vaSzCXtum7evTN9es0f6dO3vfZlqyWAORhe6DVMT1QuMg6QMAeKXQi+3mZG2t3JqcjHp+Fhej+8nJnjfZdXtPYxH22jZfdeWVGnr6ab3n1lt732YLPX3Ak8UaiDld6B7FRNIHAPBKoRfbTSGpCIn3vbwp9C752N6ziiluwtuwXdALlynvX5toizl9AAD4IqRCGinwvgADc7wSFXfulfftIkeanZOsz0GR5+X1gjl9AACEIIshax7zsdfrLPQuJSru3Cvv20WONOt9zfocFHqYf0pI+gAA8EXBkwrvCzAUbI5XnCF9WQz7875d5Eiz5C7rc0CinzySPgAAfJFCUuHDXJwsYkjlbxS8sE6c3pbl5+zYscN5O+uFD68TH/iSYPsSRyPBtpVmq7aHdLviiisSWcUeAIJ39Ki15bK1pVJ0f/So64iQtA7P8fj4uJVkx8fHMwqw9xhmZmbs+Pi4nZmZ6ehvbJZsde3a5Np/uWxtX5+1kl2Q7OmNG3vbXmDinIfl55TLZeftLK5G++XD6wRh8LmtSJqzTfIl5wlbEjeSPgCoqbtItX190WPkS4fnuJsEKmmdxtDNRdXMzIytrl1rF41peGyWY9i9e3f8WEqlaFu124IUO5a4f8OH85OEbvbD1b43al/1scSKiw/YCsvn12yrpI/qnQCQJwWv/lgIBTjHXVfua3FslqsPDgwM6PTp0/GqENZV61yU9PTGjVr36KNtw+ik0mGRK1O62vfZ2Vnt2LFDkrR3795VbSxWXFRyhYeo3gkARVHw6o+uZTLXw5NznOa+dj2fp8WxWS4MsWvXrvgFIuoK65TKZa374hdjhdFJEQrfClZkOV/J1b5PTExocHBQhw4dajhfMVZcKazZCKSJnj4AyJNqNVrQe34+uuCtVHJfYdAnmfRceHKOXfTStO0B9OTYhKwIPY/tevpioacPHvKyp88Ys8EY8yVjzGFjzEFjzLtq37/AGHOfMebh2v3zXMUIAMEpWEl5Xyz3jmzbti39ngtPzrGLXpq21SQTPjbd9noFW91P/vU8pmFqakqHDh3S4OBg99UhC7i8SsjtGnJXyEXSeklbal8PSPoXSWVJuyXtrH1/p6QPttsWhVwAAC75XM0tS2kXOMi6gEK35zX19kARkZ7aQre/63MBjzSFWKG1qBRC9U5J90h6raR5Sevts4nhfLvfJekDkCddVRlELGlctM3MzNhyuWzL5XLhz1Xekl9vkwOq9Dppa3lr33Et73e5XOZ/kue8T/okbZJ0TNL5kk6t+NkP2/0+SR+APFn+BzswMFDIC4w0pXHRVtQLwUYaJTu+9Y74Fk9XViwlYUsl1xFlzsV5zEXb6UJR9ztEXid9ktZJelDSL9cex0r6JL1T0pykucsvvzyFwwYAbtDTl560evqCOk8dDg3sdf98S4o7icfbc0tPHwLl7WsqJ7xN+iSdI2mfpN+p+x7DOwEAqJPohVKHCUOvSZtvF3mdxONbwnoGc/oQKG9fUznRKulzWb3TSLpd0mFr7R/V/eheSW+rff02RXP9AABIVEiV6NpWrexEh+uL9VrNses19zpRrUYl9Pv7o/tqVVLjc9xJPN5WsvSkgivQKW9fUwXgbJ0+Y8yrJP0fSf8sqfbfR++V9DVJn5F0uaJ5ftdba3/Qalus0wcA6FRI65G1XZ+uE3lcX6zJPrU7x4keVwBwzMt1+qy1D1hrjbX2pdbal9duX7DW/j9r7YS19sW1+5YJHwAA3QjpE+dEe8u6WF/M+17RJr2X7c5xoj2oAOAxZ0kfAAAdazKMrxtnEqnNm9tu00XSk9rf7GJooPfJ0fBw1MMnRffDw5LaJ8uxE/8E2x0QG+0OCXI2vDNJDO8EgIJIY2hijG26GArq0/BT74dBVqvS5GTUwzc8LP3pn0o33fTs40qlt3lveRwSC//R7tAhL4d3AgDQsQ6LkDRzVi9ajG26GArqevhp/THKpBhLL1b2Xt50U3SxvLgY3U9O9rb9FW3EHjni93DXjHk//DdUCb3fARJJH4Aa/mkjCE2G8XXqrOGKMbbpIulxnWilOaQz9febpC+WV7SRR9esSeXY9HJcXL6Hez/8N1QJvd8Bktwvzp7EjXX6gN6xdk6x+baWWlMJrU921v56tOaZT+chzVgavt8keR4SXLx8ZmbGXrdliz29ceOZ2B74xCdSOTa9vA+7XE/Rp3abKx69NyEM8nVx9qRuJH1A7/innS7fjy9Jvx/SPA8+tcGGsSSYqCV5sZzla8Nl4sV7ABA+kj4AcMz3CyqfEoIii3Meuj1XvrdBWypFlyXLt1Ipme32mAAW5bVRlP0E8qxV0kf1TgDIgPfVDxGMOFU9G7U379tgWpUKqYAIrOL9+wG60qp6J0kfAASAf9BYFqctpL7cw8olEnpdEiGtbUrRGmeLi88+LpWiKp9Agfm0JAySw5INAPzF4rOxUB0vQzHbpKtqiXGqeqa+3MPkZLJLIkhdLRofCxUQgVVcLwmD7JH0AXArjYvHHErtHzRJ92ox26TPiXi7xLDnhDWk9cMqlWhIZ6kU3VcqriOCZ4q4ZJHrJWGQPZI+AG6FdPHoUDf/oGNdyHiUdHtz4RWzTYbwSXmzY9pzwhpS71laPYie8eb1EyCfP8ABEtOswktIN6p3AgHrskw7lebaa1StcdVxS6tiYhe8qS6Z5NIBbaTdjpsd057/LuuHeceb10+A+H+CvBBLNgDwVpcXj1zgtNfoQmbVccswwWnHmwuvNm0yyTjTbsfeHFOkjnMNgKQPwCqhXyCEGL8PMa+KIbAeGx+OYTeJWrO4fdifPOF4Aigykj4Eh3/c6aOnLBmdtNVQj7kvr8eZmRk7MDDQ9Bg2ijON2LvZZqjnPjQcZwBF1lXSJ+kLkjY1+7lPN5K+/OEfd/p8uZAPXSdtNdRj7svrcTmOgYGBhsewUZy+xB7quQ9NUY5zUfYTQGe6TfreLOlfJP2epHOaPc+HG0lf/vAPDaGI01ZDb8++xN8ujqx6+gDXfPkwwzVe38DZWiV9Jvp5Y8aY8yRNSbpG0p2Sluqqfv5Rj4VDEzM2Nmbn5uZchwEADW3dulUHDhzQ+Pi49u/f7zocFMjs7KympqY0PT3Nelw5wnmN8N4KnM0Y86C1dqzRz9qt0/evkp6StEbSwIobABRCr+tfhbCeW1HlfW0z1h/LXhZtioW1I7y3Ah1o1gWoqHfvkKQPSDq32fN8uDG8E0Ca0hxKxfAkt/I+TK6T9pVUWyx6m857mwLgL7UY3tmqp+/3JF1vrd1prf1xyrknAHgryU+TV/YC0BPjVt57CjrpEWrVFjvpvSp6m857mwIQqGbZYEg3evoAhGJlL0DRe0ViibOWYGDrDfpkuQ3u3r27aVssQpXaVNE+AWRA3RZyCQWFXBASJuAXG+e/C6Oj0pEj0tKS1NcnjYxIBw92/hw0FKcYRvDttlqVJiel+XlpeFiqVKShoez+Pu0TQAZaFXIh6QMyRrWxALm+YPSFq+PQ3y8tLj77uFSSFhY6fw4aCj6hiyOlpCv2saN9AshAL9U7ASSM+R4BmpyMLhgXF6P7ycn0/la1Gl2g9vdH99Vqen+rU1keh3rDw9GFuhTdDw939xw0VIhKkPPzUcInRffz84lsNvb8RdonAMdI+oCMFeICK2WZl9nv4IKx59hWJFZPXnWVkyUFGu5HShfObVUqUc9MqRTdVyrdPQfFlVLSFftDPNonAMcY3gl4qhBDrrqU+RDZDoaG9RzbimFgi5L6JZXLZQ0ODmbWHhruB/OSiikPw5vzsA8A0AbDO4EAdVv2PLeLTdcNe9x34oSu27Kl9yGycYdSdvApfc/Dd1f0SDy9caPGx8clKdMy+A33g96KwjjrfcTVsN4kDQ1FH1AsLET3JHwAiqZZWc+QbizZgDzqtux5bhcSL5et7euzVoruy2U/t9ml5WP7wCc+0bC0e7Bl8ClV76V27e2s95FSKXqNLN9KJcfRAwAaEUs2AMWR5rBQp5VH06h+51FFvdxWdWVIqJeW21t17VptfuaZVefnrPeRHTs4hz1iuD6ALDC8EyiA5eFYklIrFOO08mgahRg8qqiX26quroq/oKXl9rZpOeGTzjo/ZxWcYlhvz7odrg8ASSHpA3Iii4sKp5VH07jwzOhiNs48yzSOrRfzOz1KrOPy4rilbLm9mZGR9ueH+XA9y+2HOgCCQdKXkSJcRMCt3F9UJHzhOTs7q63bt2t2797UL2ZdfcrvRe9Cm8Tal/fG+ji6OW6+7EfH6MXLBEv1AHCu2WS/kG4hFHJJs7gGUFS9FDfJ8jXpqghLCMVffHlvrI+jm+Pmy34AAIpLFHJxj0ncQPJ6KX7Ca9IPy+dh27Ztuvvuu52dj17bA+0JAOBaq0IuJH0AVl2whnIBG0qcacrLMcht9VIAADLibfVOY8zHjDGPG2MeqvveBcaY+4wxD9fun+cyRiAEvc4nWjmHKYu5YEnMgWKejCfz9hIwPT2t67Zs0b4TJ6KlNEZHpWrVdVhIULDzHh3gWAFIXLNxn1ncJL1a0hZJD9V9b7eknbWvd0r6YLvthDCnL2khzNVBdnqdT7SyPWXRvpgDlYxcvReUy9b29UULgPf1RY/hlVDm0YaOYwWgG2oxp895ERZJm1YkffOS1te+Xi9pvt02ipj08Q8B9UK88E8r5hCPRdE0PUelUvRvaflWKrkJEE318r+H12Z8HCsA3Qgt6Tu14uc/bLeNIiZ9/EPwA+fBP6F/IFKENtX0HHnc05fX89Lpfs3MzNjrtmyxpzdujJLyctnao0fTDRIAEEsukz5J75Q0J2nu8ssvT/6oATGEnmD4rtkFaasL1dAvzvPapurPS9NzdPRolER4mEzk9bx0tV8eJ+cAUGShJX0M7wxc6BfdnSjSvrqw8oJ0+XiXy+VcXoBbG1ibapCkNYt/+ZyVA00QgjovMc3MzNhyuWzL5XJn+9VkGG4ejxEAhCS0pG/PikIuu9ttg6TPL3n9RDxUIV+IrYx9uW2Vy+XMevoaba+bHshcatDj0+z1H3rS1ysf20bX79VNevp47wcAt7xN+iT9paTHJP2rpOOS3i7pQkmzkh6u3V/QbjskfX7x8eKmyFxciLks0pL0/jbaXrO/UbiL3gY9PiTEjflYAKXr7TYZhlv0cwwArnmb9CV1I+kDmsv0Qqx2Mbgg2Ycke92WLen/zRV86ulLMhYvL6hzMrcri/PEUgcAgLSR9BWYlxeKyI1V7asuCViQogp/BZbkxbo3F/71vTw/+7PRzcPCK53w/TzxPg4AiKNV0te3erl25MnU1JQOHDigqakpzc7OauvWrZqdnXUdVsd8i923eLJUv+87duzQgQMHtGPHjuiH8/PS0pIkqSRp3fHjZ/3unj17dP7552vPnj0ZR+3G9PS0xsfHNT097dW2ejI5KR05Ii0uStWq9JznSAsL0sGD0tCQ29i6lMixrVal0VE98NWvqrp2rXbfeGNi8U1MTGj//v2amJhIbJsAgGIxUVIYtrGxMTs3N+c6DC/Nzs5qampK09PTZxLA8fFx7d+/33VoHdm6datXsceJp/7Y5+lirX7fT506pUOHDqlcLuvgwYPS6GiUECwtSX190shIlAzUnH/++Tp9+rQGBgb0ox/9yOFeoGv9/VHCt6xUipK+omvT9gEASJsx5kFr7Vijn9HTl3P1nxB701PQBd9ijxNPfS+r7zrpuazf971792p8fFx79+6NflipRBe7pVJ0X6mc9bu7du3SwMCAdu3a5ST2tPkUS2qGh6OkRoruh4edhpPWMe94u3W93FpaiqidsvEAABfkSURBVB57rBBtFQDwrGbjPkO6MafPYx4vtpy2kObheDNfrAs+xe5TLKnx7DWd1jHveLuBFbUpRFsFgIIRc/rgTP38nyNHosceSfPT7pDm4fjWk9oJn2LvKpbaXDD190f31Wp6ASZhaCgatujJPL60zn/H223Ty+0bn143AID0MacPZ+l0Hlrb53s+/8e3uYKxVKtR8jw/Hw2tq1ScX3inKa9zI89gLpiXct/uAAC5w5y+kMT81D+tHqpO56G1fb5n839WCvLTbs97T5MW0tzIplq9rj2bC8Zcr0gu2h0AAMuajfsM6ebjnL6u53PFnBeS1nyMTuNu+/wO5/+EMA/OeYylUtQ+lm+lkps4MtLJ4ujeavW69mwuGHO9IsG1MQBA4YnF2bPX9YVTzAv63F2Q1JLDBck+JNnrtmxxHVFTiV8Ud1oYw7MkwYUsE5NEXmutXtdxzn+GxVNy994CAEBBkPQ5kHZPX+7U7feCZE9v3Og6oqYSvyju9Jx7Vj0x7vFI8ri13FbCxyeRBLPX13VR3xcAAEBsrZI+Crn4pmBFOs5IoOBLsIUXPC92007cYjiZFc1ZURjlyQ0bdPWll3bdLhJpV72+rgNvIwAAIH2tCrmQ9MEPCVQwDLISpxR89ca4SVFmSfmKBGlRUr8UXruoF3gbAQAA6aN6J2JxWrUvgTWugqzEKQW3vtdKcdcjzGzdwhUVY5/euDHMdlEvgzZC1U4AAPKLnj6cEWxPWTNFHSpbdJz3ruTu9Q8AQMHQ0+dKzDX3fOFLT1liPQ4FW8+uZ4G116aGhqKhjwsL0T0JXyy+vP7TRG8mAKCoSPrSFFjSkdnwuzYSWxR5xaLX9siR3oOrk9QFpDcXooG1VySrl9d/uzbsSxtnwXUAQFGR9KVpRdKh+fm2v+LLxVHaWu1nYj0OdXO7FiU9umZNb9tbIakLSG8uRLtor64U5XUSinZt2Jc2XoTeTAAAGmq2lkNINx/X6bPWdrW2VpaLTreS9gLNmexnbb22pb4+W1271j7wiU8kuvmkjpE3i2GXy3ahtnj4guT1WnBFeZ2Eot1x4DgBAJA+sTi7I10sEr3q4sjRQtxJXFS3utDjItBDR4/a0xs32gXJnt64sau2ltV59aX9dPo68SVuAACQP62SPqp3+s7R+lxJrKnWbTXAYBdZR+EqQHbaVot2fAAAQHao3hkyR/OskijqsG3btq7mz/gy/6cXjeac+TAPLe0YijZnqtPXSdGODwAA8ESzLsCQbt4O70xCF/MC09ZuiFqvQ0PzMFeu0TFY/t7AwICz4X2+zIUDAABAstRieCc9fb6rVKIhnaVSdF+pOAmjvoeoXU9cr70ZPS8dUVtv7hdf8xp99MAB3fqe93S3nR40OgbT09MaGBjQ6dOnU+vF3LNnj84//3zt2bOnaVzXbdmifSdOhL8eH5ACH3rkAQBIXLNsMKRbrnv6PFHfQ9RpD1rmPW51vaNnipJ4Iu6x6PaYDQwMnOlNbMrD3mPAF/SGAwBCJQq5oFf777xTL/yN39CmZ56RWe5xHBqK9buZF6/o748WGF9WKkkLC+n/3QR1e8z27Nmj973vfdq1a5fe/e53N37SiuNj+/r0qiuvpHAOIApJAQDCRSEX9GzrBz6gzc88I7O0FFUTnZyM/buZF6+oW5RdfX3R48A0O2bthp69+93v1o9+9KPmCZ+06vg8umZN8IVzgKT0PLwcAAAPkfQhnh6qiMa9iEpsLk2TeZAhzdVpdswSqWy64vh85yMfcVpRMqTzAgAAECKSPsTTpvcsiQv3RglNV9sdGorWMlxYiO5rw1Drtx9qopFIr+mK47N1+3anPRt5WKIDAADAZyR9GQg1wThLmyqiSVy4N0pokkwI6refWaJRqySaVKXMvA09m52d1alTp1Qul1m7DgAAIC3NKryEdPO9emfbanBHj0YVFEul6P7o0WwDTEBaFTpD2+4qOamUmdbxolIiAABAMsQ6fW61HZI3ORkVR1lc7LhIii+9iGn1QLnebs/Ht4e5kD6J2zPa6fE667WRcK8oAAAAIiR9GWibYPSQGPg6H2p2dlajo6MaHR11npD2oufjm4NKorOzszp+/LjWrl2rbdu2tXxus+PVLBk867XRw4cfrvjyoQsAAEArJH0+6CExyHw5hJimpqZ06NAhHTp0yLuEtBM9H982cyFDMDU1pWPHjunpp5/W3Xff3fK5zY5XrOQ5wF5RXz90AQAAqEfS54MeEoN2vYiueiKmp6dVLpfdFehIaKhgz8NLm1QSDUkn57LZ8YqVPAfYK+rrhy4AAAD1TDTnL2xjY2N2bm7OdRgdm52d1dTUlKanp1ddJLf6WSe2bt2qAwcOaHx8XPv37080Rq+NjkZDBJeWogRiZCRKupJQrUZDD+fno8SkUgkymfMOxxUAAKBrxpgHrbVjjX5GT59DrYaGJTVsrNeeiMSHr2VVrKPDoYId9Yg6mnuW+/ljafeKUijmjNy3JQAAcLZmZT1Duvm+ZEMzrcrgZ7akQBuJx5HVEgYd/p2Olg4olaLtLt9KpYSCbq3wyxv0urRJTpbPSELh2xIAADmkEJdsMMZcY4yZN8Y8YozZ6TqeNLSaL9bRXLIeezBafeqf+JIJcXrgGuxPxz0THc6TbNQj2vRvOpp71mmvrW+9OT3H02sPa4CFYtLCXEQAAIrFyzl9xpiSpH+R9FpJxyV9XdKvWGsPNXp+qHP6EtPj/LVe5/11JE6sdc9ZMkbfeu5z9YbNm3Xo0KFsYqxpelwCmXuW6XnNIp7+/ijhW1YqRUNB40pznicAAIBjIc7pe4WkR6y1VWvtTyV9WtIbHcfkrx57MOJ+6p9Iz1GcHri6/emzVhueflqSMu+ZaHpcAqnI6bw3Z0WP7e4bb+wtnl57WHOwfAYAAEA3fO3pu07SNdbaf197vF3SL1hrf7PR8+npy6YHI7OeowY9fdVKJazqoUi+XQbSwwoAAOBCiD19psH3zspOjTHvNMbMGWPmTp48mVFY6ei5By2jHoy2PUdt5hbG3s+6/el7yUu0+aGHSPgc6LldJj2HLpAeVgAAAN/42tP3Skm3WGuvrj2+WZKstf+90fND7+nzbe5V19r07ORmPx1JYs3ETrbR8/liDh0AAEBmQuzp+7qkFxtjNhtjniPpBkn3Oo4pNc7nXiWlTc9ObvbTkSTWTOxkGz2fL+bQAQAAeMHLpM9auyDpNyXtk3RY0mestbntIkh8WYSUtB3u16bQRjf76duyAy4lkTR3so2e2yXDMQEAALzg5fDOToU+vDMUbYf7dVBoI+4wQ4aEAgAAAO2FOLwTHmrbS1TXszO7d6+2bt/etIeu0TDD+l695a+3bduW6pBQehIBAACQd/T05UwSxT6S0K6HrlGc9b8jKZMePnoSAQAAkAf09BVIEsU+ktCuV7DRfLH638mq6AvFZQAAAJB39PR5qlWPXbc/gydYZBwAAAAJa9XTR9LnqVbDDn0ckkiy2QHWrwMAAEDCGN4ZoFbDDn0ckujLsNIgtFnPEAAAAEgSSZ+nWq2R5uO6fj4mot5qs56hSw2rmVarUe9kf390X626CxAAAAAdI+kLmE/LDfiYiHqrUomGdJZK0X2l4jqiMxr22E5OaunwYWlxMbqfnHQXYFwkqgAAAGeQ9AXMyyGVXGy3V7eeoQ4e9KqIS8Me2/l59dXm/vZZG8Zw1MnJaN7k4mJ0H0KiCgAAkBKSvgwl3TNXf4HuTa9fQBfb3hwzjzTssR0e1pIxkhTdezQcddmqc8m8SQAAgDOo3pmhNKtuelPRs78/SviWlUpRj5aHlo/ZwMCAPv/5zzM0tZkAlphY1f6pkAoAAAqG6p2eSLPYiTeFVDwuUrLS9PS0BgYGdPr0ab+GyPrG4+Goy1a1f4/nTQIAAGSNnr6UFW79ugB6heoV7vwAAAAgl1ic3SFvhl0CAAAAyC2GdzrkzbBLICUUxAEAAPAbSV/KQlq/jot3dMPLpUMAAABwBkkfzuDiHd2gNxsAAMBvJH04g4t3dCOk3mwAAIAi6ncdAPwxMTHBhTsAAACQM/T0AQDgoRtvvFHve9/7XIcBAMgBkj60RYEXAOjcpk2bNDMz0/Xv33rrrdq1a1eCEQEAioqkD21R4AUAkrWwsOA6BABAgZD0oS0KvABAZ7Zv365jx45pcnJS69at0+7du2WM0e23367LL79cV111lSTp+uuv1wte8AL9zM/8jF796lfr4MGDZ7bxa7/2a/r93/99SdL999+vyy67TB/60If0/Oc/X+vXr9fHP/5xJ/sGAAgPSR/aCqE6I0NQAfjkzjvv1OWXX65KpaInn3xSb37zmyVJX/7yl3X48GHt27dPkvS6171ODz/8sB5//HFt2bJFb3nLW5pu87vf/a6eeOIJnThxQrfffrtuuukm/fCHP8xkfwAAYSPpQy4wBBVAp1x8WHTLLbfovPPO09q1ayVJv/7rv66BgQGtWbNGt9xyi77xjW/oiSeeaPi755xzjqampnTOOefo2muv1bp16zQ/P59Z7ACAcJH0IRcYggqgUy4+LNqwYcOZrxcXF7Vz50696EUv0vnnn69NmzZJkr7//e83/N0LL7xQ/f3PrrR07rnn6sknn0w1XgBAPpD0eYChib0LYQgqAL+k/WGRMabl9/7iL/5C99xzj2ZmZvTEE0/o0UcflSRZa1OJBwBQXCR9HmBoIgBkL+0Piy655BJVq9WmPz99+rTWrFmjCy+8UD/+8Y/13ve+N5U4AAAg6fMAQxMBIH9uvvlmvf/979fg4KA+97nPrfr5r/7qr2rjxo269NJLVS6XdeWVVzqIEgBQBCYPw0jGxsbs3Nyc6zAAAAAAwAljzIPW2rFGP6OnDwAAAAByjKQPAAAAAHKMpA8do9ooAAAAEA6SPnSMaqMAAABAOEj60DGqjQIAAADh6HcdAMIzMTHBIugAAABAIOjpQ1PM3QMAAADC5yTpM8Zcb4w5aIxZMsaMrfjZzcaYR4wx88aYq13Ehwhz9wAAAIDwuerpe0jSL0v6u/pvGmPKkm6QNCrpGkkfNsaUsg8PEnP3AAAAgDxwkvRZaw9ba+cb/OiNkj5trX3GWvtNSY9IekW20WHZxMSE9u/fz/w9AOjCpk2bNDMz09M27rjjDr3qVa9KKCIAQFH5NqfvUknfrnt8vPY9AAAAAEAXUkv6jDEzxpiHGtze2OrXGnzPNtn+O40xc8aYuZMnTyYTdM5QiAUA3Ni+fbuOHTumyclJrVu3Trt379ZXv/pVjY+Pa3BwUC972ct0//33n3n+HXfcoaGhIQ0MDGjz5s361Kc+pcOHD+vGG2/UV77yFa1bt06Dg4PudggAEDRjbcOcKps/bsz9kv6ztXau9vhmSbLW/vfa432SbrHWfqXVdsbGxuzc3FzK0YZn69atOnDggMbHx7V//37X4QCAP6pVaXJSmp+XhoelSkUaGkr0T2zatEm33XabXvOa1+jEiRN66UtfqjvvvFPXXHONZmdndcMNN+jIkSM699xztX79en3961/X8PCwHnvsMf3gBz/Q6Oio7rjjDt1222164IEHEo0NAJA/xpgHrbVjjX7m2/DOeyXdYIxZY4zZLOnFkv7ecUzBohALADQxOSkdOSItLkb3k5Op/rlPfvKTuvbaa3Xttdeqr69Pr33tazU2NqYvfOELkqS+vj499NBDevrpp7V+/XqNjo6mGg8AoFhcLdnwJmPMcUmvlPQ3tR49WWsPSvqMpEOS/lbSTdbaRRcx5gGFWACgifl5aWkp+nppKXqcom9961v67Gc/q8HBwTO3Bx54QI899pjOO+883XXXXbr11lu1fv16vf71r9eRI0dSjQcAUCyuqnd+3lp7mbV2jbX2Emvt1XU/+2/W2hdZa4ettf/LRXwAgJwbHpb6av8C+/qixwkz5tlp6hs2bND27dt16tSpM7ennnpKO3fulCRdffXVuu+++/TYY49pZGRE73jHO1ZtAwCAbvk2vBMAgPRVKtLIiFQqRfeVSuJ/4pJLLlG1WpUkvfWtb1WlUtG+ffu0uLion/zkJ7r//vt1/Phxfe9739O9996rp556SmvWrNG6detUKpXObOP48eP66U9/mnh8AIDiIOkDABTP0JB08KC0sBDdJ1zERZJuvvlmvf/979fg4KDuuusu3XPPPfqDP/gDXXzxxdqwYYP27NmjpaUlLS0t6UMf+pBe+MIX6oILLtCXv/xlffjDH5YkXXXVVRodHdULXvACXXTRRYnHCAAoBqfVO5MSUvXO2dlZTU1NaXp6mrl2AAAAABIRUvXO3JuamtKBAwc0NTXlOhQAAAAABUDSlzGWUQAAAACQpX7XARTNxMQEwzoBAAAAZIaePgAAAADIMZI+AAAAAMgxkj4AAAAAyDGSPgAAAADIMZI+AAAAAMgxkj4AAAAAyDGSPgAAAADIMZI+AAAAAMgxkj4AAAAAyDGSPgAAAADIMWOtdR1Dz4wxJyV9y3UciO0iSd93HQS8RztBXLQVxEVbQRy0E8TlW1vZaK29uNEPcpH0ISzGmDlr7ZjrOOA32gnioq0gLtoK4qCdIK6Q2grDOwEAAAAgx0j6AAAAACDHSPrgwkddB4Ag0E4QF20FcdFWEAftBHEF01aY0wcAAAAAOUZPHwAAAADkGEkfMmOMucYYM2+MecQYs9N1PPCTMWaDMeZLxpjDxpiDxph3uY4J/jLGlIwx/2iM+WvXscBfxphBY8znjDFHau8tr3QdE/xkjPnt2v+eh4wxf2mMea7rmOAHY8zHjDGPG2MeqvveBcaY+4wxD9fun+cyxlZI+pAJY0xJ0p9Kep2ksqRfMcaU3UYFTy1I+k/W2pdIulLSTbQVtPAuSYddBwHv/Q9Jf2utHZH0MtFm0IAx5lJJOySNWWt/TlJJ0g1uo4JH7pB0zYrv7ZQ0a619saTZ2mMvkfQhK6+Q9Ii1tmqt/amkT0t6o+OY4CFr7WPW2n+ofX1a0cXZpW6jgo+MMZdJer2k21zHAn8ZY86X9GpJt0uStfan1tpTbqOCx/olrTXG9Es6V9J3HMcDT1hr/07SD1Z8+42S/rz29Z9L2pZpUB0g6UNWLpX07brHx8WFPNowxmyS9POSvuY2EnjqTyS9R9KS60DgtSFJJyV9vDYU+DZjzHmug4J/rLUnJP2hpGOSHpP0hLX2f7uNCp67xFr7mBR9aC3p+Y7jaYqkD1kxDb5H6Vg0ZYxZJ+l/Svota+2PXMcDvxhj3iDpcWvtg65jgff6JW2R9GfW2p+X9JQ8HoIFd2rzsd4oabOkF0o6zxjzVrdRAckg6UNWjkvaUPf4MjFkAk0YY85RlPB9ylr7V67jgZe2SvolY8yjioaLX2WM+aTbkOCp45KOW2uXRwx8TlESCKz0GknftNaetNb+q6S/kjTuOCb47XvGmPWSVLt/3HE8TZH0IStfl/RiY8xmY8xzFE2MvtdxTPCQMcYomntz2Fr7R67jgZ+stTdbay+z1m5S9H7yRWstn8hjFWvtdyV92xgzXPvWhKRDDkOCv45JutIYc27tf9GEKPqD1u6V9Lba12+TdI/DWFrqdx0AisFau2CM+U1J+xRVw/qYtfag47Dgp62Stkv6Z2PMP9W+915r7RccxgQgbP9R0qdqHzpWJf07x/HAQ9barxljPifpHxRVkv5HSR91GxV8YYz5S0m/KOkiY8xxSf9F0gckfcYY83ZFHxpc7y7C1oy1TKsCAAAAgLxieCcAAAAA5BhJHwAAAADkGEkfAAAAAOQYSR8AAAAA5BhJHwAAAADkGEkfAABdMsZsMMZ80xhzQe3x82qPN7qODQCAZSR9AAB0yVr7bUl/pmitJtXuP2qt/Za7qAAAOBvr9AEA0ANjzDmSHpT0MUnvkPTz1tqfuo0KAIBn9bsOAACAkFlr/9UY825Jfyvp35LwAQB8w/BOAAB69zpJj0n6OdeBAACwEkkfAAA9MMa8XNJrJV0p6beNMesdhwQAwFlI+gAA6JIxxigq5PJb1tpjkvZI+kO3UQEAcDaSPgAAuvcOScestffVHn9Y0ogx5t84jAkAgLNQvRMAAAAAcoyePgAAAADIMZI+AAAAAMgxkj4AAAAAyDGSPgAAAADIMZI+AAAAAMgxkj4AAAAAyDGSPgAAAADIMZI+AAAAAMix/w8TpjgidI1MZwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "w_0, w_1 = 2, 3 # Pour des valeurs de w connues\n", "sample_size = 500 # On génére un nombre fixe de données d'entraînement\n", "\n", "X, y = data_simulation(sample_size, w_0, w_1)\n", "X = [np.ones(len(y)), X]\n", "X = np.asarray(X ).T\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, \n", " test_size=0.2, \n", " random_state=0)\n", "scatter_plot(X_train[:, 1], X_test [:, 1], y_train, y_test) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2.2 Estimateurs OLS\n", "\n", "**Questions**: \n", "1. Étant donné l'expression des moindres carrés donnée à la diapo 31 du cours, complétez le fonction OLS ci-dessous pour obtenir les estimateurs moindres carrés. Pour rappel, ces estimateurs sont définis comme suit (il vous suffit donc d'implémenter cette formule dans la fonction OLS):\n", "\n", "$$ \\hat{\\bf{w}}^{\\text{OLS}} := (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{y}$$\n", "\n", "où $\\bf{X}$ est la matrice de variables indépendantes (en anglais [design matrix](https://en.wikipedia.org/wiki/Design_matrix#:~:text=In%20statistics%2C%20a%20design%20matrix,specific%20values%20for%20that%20object.) et $\\bf{y}$ est le vecteur de sortie.\n", "\n", "2. Calculez les estimateurs associés aux données simulées\n", "\n", "*Note*: N'oubliez pas de calculer l'ordonnée à l'origine $\\bf{w}_0$. Pour ce faire, vous pouvez ajouter une colonne avec seulement des 1 à la matrice de variables indépendantes. (Explications en anglais [ici](https://en.wikipedia.org/wiki/Design_matrix#:~:text=In%20statistics%2C%20a%20design%20matrix,specific%20values%20for%20that%20object.)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Réponse**:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'X_train' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m...\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mw_ols\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mOLS\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'X_train' is not defined" ] } ], "source": [ "def OLS(X, y):\n", " \"\"\"\n", " X: matrice de variables indépendantes\n", " y: vecteur des cibles\n", " \n", " return: array of weights\n", " \"\"\"\n", " \n", " A = np.linalg.inv(np.dot(X.T, X))\n", " B = np.dot(X.T, y)\n", "\n", " # À COMPLÉTER : \n", " return (...)\n", "\n", "w_ols = OLS(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Calculez les prédictions sur les ensembles d'entraînement et de test. À partir de ces prédictions, calculez l'erreur MSE. Les résultats vous semblent-ils raisonnables?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Answer**:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE en entraînement: 26.255209347316768\n", "MSE en test: 25.524953820995712\n" ] } ], "source": [ "# Train set\n", "y_hat_train = ... \n", "\n", "# Test set\n", "y_hat_test = ... \n", "\n", "print('MSE en entraînement: ', MSE(y_hat_train, y_train))\n", "print('MSE en test: ', MSE(y_hat_test, y_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2.2.1 Biais de l'estimateur des moindres carrés\n", "\n", "**Question**: Calculez le biais (empirique) des estimateurs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Réponse**:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Biais de w_0: 0.009246856398277714\n", "Biais de w_1: 0.017635938784052563\n" ] } ], "source": [ "bias = ...\n", "\n", "print(\"Biais de w_0: \", bias[0]) # Bias of w_0\n", "print(\"Biais de w_1: \", bias[1]) # Bias of w_1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Ces valeurs sont-elle raisonnables?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question Bonus**: Comment réduire le biais empirique de ces estimateurs?" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "sample_size = 10**6" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2.2.2 Variance des estimateurs OLS (à sauter si manque de temps)\n", "\n", "Les estimateurs OLS calculés à la section précédente sont en fait des variables aléatoires. Ces estimateurs ont donc une variance. \n", "\n", "Cette variance peut être estimée de plusieurs façons. Nous en introduisons ici deux. La première est une approche empirique utilisant une méthode de Monte Carlo (c.-à-d. par échantillonnage). La seconde, est une approach analytique. \n", "\n", "\n", "#### Méthode Monte Carlo\n", "\n", "Malgré leur nom, les méthodes de Monte Carlo peuvent être relativement simples. Nous allons évaluer la variance de nos estimateurs en 4 étapes faciles. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Estimation MC de la variance de l'estimateur de w_0: 8.526898306870222e-05\n", "Estimation MC de la variance de l'estimateur de w_1: 3.127568686703808e-06\n" ] } ], "source": [ "# L'idée est que nous allons réestimer les estimateurs à partir de plusieurs \n", "# jeux de données. \n", "# Chaque jeu de données est tiré de la même distribution (ou du même processus de génération). \n", "# Nous allons ensuite pouvoir trouver la variance empirique des estimateurs.\n", "\n", "mc_estimates = 100 # Nombres d'estimations de Monte Carlo que vous allez utiliser\n", "M = np.zeros((mc_estimates, 2)) # Matrice où conserver les estimateurs\n", "\n", "# Step 1: Boucle for pour chaque estimation.\n", "for k in np.arange(mc_estimates):\n", " \n", " # Step 2: Simulation des données\n", " x, y = data_simulation( int(.8 * sample_size), w_0, w_1)\n", " \n", " X = [np.ones(len(y)), x] \n", " X = np.asarray(X).T\n", " \n", " # Step 3: Estimations OLS\n", " w_ols = OLS(X, y)\n", " M[k, :] = w_ols # On conserve les estimateurs\n", " \n", "# Step 4: On calcule la variance (indice: fonction np.var)\n", "var = np.var(M, axis=0)\n", "print(\"Estimation MC de la variance de l'estimateur de w_0: \", var[0]) # Variance de w_0\n", "print(\"Estimation MC de la variance de l'estimateur de w_1: \",var[1]) # Variance de w_1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Approche Analytique \n", "\n", "Nous pouvons aussi obtenir l'expression de la variance directement. Ceci est pratique dans certains cas où nous ne pouvons utilisez la méthode de Monte Carlo. \n", "\n", "\\begin{align}\n", " \\text{Var}(\\hat{\\bf{w}}^{\\text{OLS}}) \n", " &= \\text{Var}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{y}\\right) && \\text{Definition of the OLS estimators} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\text{Var} (\\bf{y})\\left((\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\right)^\\top && \\text{Property of the variance on matrices} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\text{Var} (\\bf{y}) \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top && \\text{Property of the transpose} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\text{Var}(\\bf{X} \\bf{w} + \\bf{\\epsilon}) \\ \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top && \\text{Modelization of the data}\\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\text{Var}(\\bf{\\epsilon}) \\ \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top && \\text{Property of the variance (only $\\epsilon$ is a random variable)} \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{I} \\ \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top && \\text{Since $\\epsilon$ is iid}\\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} \\bf{X}^\\top \\bf{X}\\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top \\\\\n", " &= \\left((\\bf{X}^\\top \\bf{X})^{-1} \\right)^\\top \\\\\n", " &= (\\bf{X}^\\top \\bf{X})^{-1} && \\text{Since $\\bf{X}^\\top \\bf{X}$ is symmetric and}\\\\\n", " & && \\text{by property of the matrix inv.}\n", "\\end{align}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Calculez la variance des estimateurs OLS en utilisant l'expression ci-dessus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Réponse**:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Variance analytique de l'estimé de w_0: 0.006753013933156844\n", "Variance analytique de l'estimé de w_1: 0.00023519713794636034\n" ] } ], "source": [ "# Calcul\n", "var = ... \n", "\n", "print(\"Variance analytique de l'estimé de w_0: \", var[0, 0]) \n", "print(\"Variance analytique de l'estimé de w_1: \",var[1, 1]) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Les résultats analytiques précédents sont-ils raisonnables? " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1.2.3 Estimateurs des moindres carrés (OLS) avec régularisation L2\n", "\n", "Comme montré à la diapo 45, on peut ajouter une régularisation L$_2$ sur les paramètres d'un modèle linéaire (voir la section 1.1). \n", "\n", "Le problème est connu sous le nom de (régression d'arête, ridge ou de Tikhonov)\n", "[https://en.wikipedia.org/wiki/Tikhonov_regularization] :\n", "\n", "$$ \\hat{w}^{\\text{ridge}} := (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\bf{y}$$\n", "\n", "où $\\lambda$ est l'hyperparamètre (voir diapos 45 et 46) qui contrôle la capacité du modèle.\n", "\n", "**Question**: Complétez la fonction ridge ci-dessous pour obtenir les estimateurs d'arêtes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Réponse**:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "def ridge(X, y, lambda_hp):\n", " \n", " A = ...\n", " B = ... \n", " \n", " return np.dot(A, B)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Obtenez les estimateurs d'arête pour différentes valeurs de $\\lambda$. En premier, essayer d'imaginer comment les estimateurs vont changer pour des valeurs de $\\lambda$ suivants: \n", "\n", "1. For $\\lambda = 0$. \n", "2. For $\\lambda = 10^{10}$.\n", "3. Pour des valeurs intermédiaires de $\\lambda$ (entre $0$ et $10^{10}$)? " ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "scrolled": true }, "outputs": [], "source": [ "lambda_hp = 10**3\n", "w_ridge = ridge(X_train, y_train, lambda_hp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Obtenez des prédictions sur l'ensemble d'entraînement et de test. Ce modèle est-il meilleur que le modèle sans régularisation (OLS)?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Réponse**:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE en entraînement: 28.85814500880032\n", "MSE en test: 28.754323122145074\n" ] } ], "source": [ "# Train set\n", "y_hat_train = ... \n", "\n", "# Test set\n", "y_hat_test = ... \n", "\n", "print('MSE en entraînement: ', MSE(y_hat_train, y_train))\n", "print('MSE en test: ', MSE(y_hat_test, y_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2.3.1 Biais des estimateurs d'arête\n", "\n", "**Question**: Calculez le biais des estimateurs d'arête." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Réponse**:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Biais de w_0: -1.3587023350491831\n", "Biais de w_1: -0.03769655685412143\n" ] } ], "source": [ "bias = ...\n", "\n", "print(\"Biais de w_0: \", bias[0]) # Bias de w_0\n", "print(\"Biais de w_1: \", bias[1]) # Bias de w_1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question**: Comparez le biais des estimateurs d'arête avec les estimateurs OLS. Les différences sont-elles raisonnables?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Réponse**: Les estimateurs d'arête sont biaisés. Leur biais empirique devrait être plus grand que le biais des estimateuers OLS (par contre, leur variance pourrait être plus petite). \n", "\n", "On peut voir plus formellement que les estimateurs d'arête sont biaisés. \n", "\n", "\\begin{align}\n", " \\mathbb{E}[\\hat{\\bf{w}}^{\\text{ridge}}] \n", " &= \\mathbb{E}[(\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\bf{y}] \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\mathbb{E}[\\bf{y}] \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\mathbb{E}[\\bf{X} \\bf{w} + \\bf{\\epsilon}] \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\{ \\mathbb{E}[\\bf{X} \\bf{w}] + \\mathbb{E}[\\bf{\\epsilon}] \\} \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\{ \\bf{X} \\bf{w} + \\bf{O} \\} \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{X}^\\top \\bf{X} \\bf{w} \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I} - \\lambda \\bf{I} ) \\bf{w} \\\\\n", " &= (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I}) \\bf{w} - (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1}\\lambda \\bf{I} \\bf{w} \\\\\n", " &= \\bf{w} - \\lambda (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{w}.\n", "\\end{align}\n", "\n", "Donc, le biais des estimateur d'arête est:\n", "$$ \\text{Bias}(\\hat{\\bf{w}}^{\\text{ridge}}) = - \\lambda (\\bf{X}^\\top \\bf{X} + \\lambda \\bf{I})^{-1} \\bf{w} $$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Remarque**: Comment choisir la valeur de l'hyperparamètre $\\lambda$? Nous en discutons à la section suivante." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.3 Validation - Pour trouver de bons hyperparamètres\n", "\n", "La validation est utile pour faire une sélection de modèles ainsi que pour trouver des bons hyperparamètres.\n", "\n", "La première étape de validation consiste à diviser l'ensemble d'entraînement en deux ensembles, un d'entraînement et un de validation (voir diapo 49). \n", "\n", "En python, on peut simplement utiliser la fonction train_test_split de la libraire [Scikit-learn library](https://scikit-learn.org/). (Notez que nous introduirons les différentes fonctionnalités de ces libraires à la semaine 4 du cours.)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "X_sub_train, X_validation, y_sub_train, y_validation = \\\n", " train_test_split(X_train, y_train, test_size=0.2, random_state=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous pouvons maintenant étudier la performance (MSE) de l'estimateur avec régularisation L2 en fonction de la valeur des hyperparamètres. \n", "\n", "Dans ce cas, le seul hyperparamètre est l'importance de la régularisation $\\lambda$.\n" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "losses_stack_sub_train, losses_stack_train = [], [] \n", "losses_stack_validation, losses_stack_test = [], []\n", "\n", "for lambda_hp in np.arange(0, 100, 1):\n", "\n", " # Apprendre les paramètres (w) avec une valeur de lambda \n", " w_ridge_cv = ridge(X_sub_train, y_sub_train, lambda_hp)\n", " \n", " # Obtenir des prédictions sur l'ensemble d'entraînement et de validation\n", " y_hat_sub_train = np.dot(X_sub_train, w_ridge_cv)\n", " y_hat_validation = np.dot(X_validation, w_ridge_cv)\n", " \n", " # Calculez et conserver les valeurs des erreurs MSE\n", " losses_stack_sub_train.append(MSE(y_sub_train, y_hat_sub_train))\n", " losses_stack_validation.append(MSE(y_validation, y_hat_validation))\n", " \n", " # On obtient la même chose pour nos ensembles d'entraînement et de test initiaux.\n", " w_ridge = ridge(X_train, y_train, lambda_hp)\n", " y_hat_train = np.dot(X_train, w_ridge)\n", " y_hat_test = np.dot(X_test, w_ridge)\n", "\n", " losses_stack_train.append(MSE(y_train, y_hat_train))\n", " losses_stack_test.append(MSE(y_test, y_hat_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En fonction des erreurs MSE sur l'ensemble de validation, nous pouvons maintenant sélectionner la meilleure valeur de l'hyperparamètre $\\lambda$. \n", "\n", "Attention: il ne faut jamais sélectionner les valeurs des hyperparamètres à partir de l'ensemble de test. " ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "La régularisation optimale est de 0\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cmap = plt.get_cmap(\"tab10\")\n", "\n", "plt.plot(losses_stack_test, label='Test', color=cmap(2))\n", "plt.plot(losses_stack_validation, label='Validation', color=cmap(0))\n", "plt.plot(losses_stack_sub_train, label='Training', color=cmap(1))\n", "\n", "plt.axvline(x=np.argmin(losses_stack_validation), color='red', label='Régularisation optimale')\n", "\n", "plt.xlabel('$\\lambda$ regularization')\n", "plt.ylabel('MSE')\n", "leg = plt.gca().legend(loc='center left', bbox_to_anchor=(1, .8))\n", "leg.get_frame().set_alpha(0)\n", "print('La régularisation optimale est de', np.argmin(losses_stack_validation))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous pouvons aussi comparer les erreurs des différents estimateurs sur l'ensemble de test:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TRAIN: estimateurs OLS: 26.259016856161516\n", "TRAIN: estimateurs Ridge: 26.259016856161516\n", "\n", "TEST: estimateurs OLS: 25.520015082615195\n", "TEST: estimateurs Ridge: 25.520015082615195\n" ] } ], "source": [ "print('TRAIN: estimateurs OLS: ', losses_stack_train[0])\n", "print('TRAIN: estimateurs Ridge: ', losses_stack_train[np.argmin(losses_stack_validation)])\n", "\n", "print('\\nTEST: estimateurs OLS: ', losses_stack_test[0])\n", "print('TEST: estimateurs Ridge: ', losses_stack_test[np.argmin(losses_stack_validation)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.4 Remarques finales\n", "\n", "1. Un modèle de plus haute capacité pourra mieux modéliser l'ensemble d'entraînement, mais attention à l'erreur de généralisation. \n", "2. Un estimateur non biaisé (OLS par rapport à Ridge) n'offre pas nécessairement une meilleure erreur de généralisation.\n", "3. Quand l'erreur est la MSE, on peut décomposer l'erreur de généralisation par rapport au biais et à la variance des estimateurs.\n", "4. La validation est très utile, on vous conseille de bien comprendre la Section 1.3!" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }