{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Softmax classification" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this exercise, you will implement a softmax classifier for multi-class classification." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's now import the `digits` dataset provided by `scikit-learn`:\n", "\n", "\n", "\n", "It contains 1797 small (8x8) black and white images of digits between 0 and 9. \n", "\n", "The two following cells load the data and visualize 16 images chosen randomly." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from sklearn.datasets import load_digits\n", "digits = load_digits()\n", "\n", "N, w, h = digits.images.shape\n", "d = w * h # number of pixels\n", "c = len(digits.target_names) # number of classes" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABPwAAAUQCAYAAADQzE67AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAChIElEQVR4nOzdfZiVBZ038N/AwEERBt9AkOElrFCRINAVXxLf2GXVpFZyywzM9vEFURYrJWvBt8audjdyDQoysFWDx+dSoPIlLMC6ig3RKbM2ZRMZUyRZmUHKQfB+/jgXgxOgnHFm7nvu8/lc1/ljjufM+c49+OXmO2fOqUiSJAkAAAAAIBc6pR0AAAAAAGg9Bj8AAAAAyBGDHwAAAADkiMEPAAAAAHLE4AcAAAAAOWLwAwAAAIAcMfgBAAAAQI4Y/AAAAAAgRwx+AAAAAJAjBj8iImLhwoVRUVERjz/+eKt8voqKirjqqqta5XO99XPOmjWrxff/4he/GOeee24ceeSRUVFREZMnT261bEB+lEMfvtWjjz4aFRUVUVFREa+88kqrfE6g48t7F65fv76p+/76smjRolbNCXRsee/Durq6+MhHPhLvec97onv37lFVVRUjR46MO+64I3bs2NGqOWlflWkHgPbyta99LYYPHx4f/vCH4zvf+U7acQBS99prr8U//dM/Rb9+/eLFF19MOw5Au5s6dWp84hOfaHbde9/73pTSALS/bdu2Rc+ePeNLX/pSDBgwILZv3x4PPvhgTJ06NWpra+Pb3/522hFpIYMfZWPr1q3RqVPxSa3/+Z//mXIagPRdf/31cfDBB8c555wTt9xyS9pxANrdgAED4sQTT0w7BkBqhg4dGnfddVez68aPHx+bNm2Ku+66K77xjW9EoVBIKR3vhl/pZb+9/vrrce2118aIESOiqqoqDjnkkBgzZkwsXbp0n/f51re+Fe973/uiUCjEMcccs9dfkdi4cWNcdtll0b9//+jatWsMHjw4brzxxlZ/+vCusQ/g3erofRgR8dOf/jTmzZsX3/72t6Nz586t/vmB/MtDFwK0hjz24eGHHx6dOnVyntiBeYYf+62xsTH+93//Nz772c/GkUceGdu3b49HH300PvrRj8aCBQviU5/6VLPbL1u2LFasWBE33XRTdO/ePebMmRMf//jHo7KyMi644IKIKBbYCSecEJ06dYp/+Zd/iSFDhsQvfvGLuOWWW2L9+vWxYMGCt800aNCgiCi+DgtAe+noffiXv/wlLr300pg2bVp88IMfjGXLlrXoOADlraN3YUTEbbfdFl/4wheisrIyPvjBD8bnP//5+PCHP1zysQDKWx76MEmS2LlzZ2zdujV+9KMfxcKFC+Paa6+NykqzUYeVQJIkCxYsSCIiWbNmzX7fZ8eOHckbb7yRXHrppcnIkSOb/beISA444IBk48aNzW4/dOjQ5Kijjmq67rLLLksOOuig5Pnnn292/3/9139NIiJ5+umnm33OmTNnNrvdkCFDkiFDhux35l26d++eTJo0qeT7AflXDn147bXXJu95z3uSP//5z0mSJMnMmTOTiEj+9Kc/7df9gfzLexe++OKLyT/90z8l//f//t/kpz/9aXLPPfckJ554YhIRyfz58/f7awbyL+99uEtNTU0SEUlEJBUVFckNN9yw3/clm/yOIyW577774uSTT46DDjooKisro0uXLnHnnXfG7373uz1ue+aZZ0afPn2aPu7cuXNceOGFsW7dunjhhRciIuIHP/hBnH766dGvX7/YsWNH02X8+PEREbFq1aq3zbNu3bpYt25dK36FAPuno/bhL3/5y5g9e3Z861vfigMOOKCULxlgDx21C/v27Rvz5s2LiRMnximnnBKf+MQn4rHHHouRI0fG9ddf79eHgZJ11D7cZfLkybFmzZp45JFH4vOf/3x89atfjalTp+73/ckegx/77f7774+PfexjceSRR8bdd98dv/jFL2LNmjXx6U9/Ol5//fU9bn/EEUfs87rNmzdHRMTLL78c3//+96NLly7NLscee2xERLzyyitt+BUBtExH7sNPf/rT8dGPfjRGjx4dW7ZsiS1btjRlbmhoiK1bt7bK4wD515G7cG+6dOkSF154YWzevDmeffbZNnscIH/y0IdHHHFEjB49OsaNGxe33XZb3HTTTXHHHXfEk08+2aqPQ/vxy9jst7vvvjsGDx4cixcvjoqKiqbrGxsb93r7jRs37vO6Qw89NCIiDjvssBg+fHjceuute/0c/fr1e7exAVpdR+7Dp59+Op5++um477779vhvQ4YMiQ984ANRW1vbKo8F5FtH7sJ9SZIkIrzZG1CaPPbhCSecEBERzzzzTIwcObJNH4u2YfBjv1VUVETXrl2bFdjGjRv3+c5DP/7xj+Pll19ueqryzp07Y/HixTFkyJDo379/RESce+658eCDD8aQIUPi4IMPbvsvAqAVdOQ+XLFixR7XLVy4MO66665YsmRJHHnkkW322EC+dOQu3Js33ngjFi9eHIcddlgcddRR7frYQMeWtz6M2H3OqA87LoMfzfzkJz/Z67v4/P3f/32ce+65cf/998eVV14ZF1xwQdTV1cXNN98cffv23euvPRx22GFxxhlnxJe+9KWmdx767//+72ZvN37TTTfF8uXL46STToqrr7463v/+98frr78e69evjwcffDC++c1vNhXe3uwqn/15bYJVq1bFn/70p4goFurzzz8f/+///b+IiDjttNPi8MMPf8fPAZSPvPbh2LFj97hu5cqVERFx8sknx2GHHfa29wfKS167cPr06fHGG2/EySefHEcccUTU1dXFf/zHf0RtbW0sWLAgOnfuvJ9HCCgXee3DmTNnxssvvxwf+tCH4sgjj4wtW7bEww8/HPPnz4+JEyfGqFGj9vMIkTUGP5q57rrr9nr9c889F5dcckls2rQpvvnNb8Z3vvOdeM973hPXX399vPDCC3HjjTfucZ8Pf/jDceyxx8YXv/jF2LBhQwwZMiTuueeeuPDCC5tu07dv33j88cfj5ptvjq9+9avxwgsvRI8ePWLw4MHxd3/3d+/4k4xSXlB55syZzV7YdOXKlU3/yF2xYsVe/xEMlK889yHA/sprFw4bNiy+9a1vxb333hsNDQ3Ro0ePOOGEE+KRRx6JcePG7dfnAMpLXvtw9OjRcfvtt8eSJUti8+bN0a1btzjmmGPia1/7WlxxxRX79TnIpopk1wtVAAAAAAAdnlejBQAAAIAcMfgBAAAAQI4Y/AAAAAAgRwx+AAAAAJAjBj8AAAAAyBGDHwAAAADkSGV7P+Cbb74ZL774YvTo0SMqKira++GBDiJJkti6dWv069cvOnXK388mdCGwv/QhgC4E2GV/+7DdB78XX3wxqqur2/thgQ6qrq4u+vfvn3aMVqcLgVLpQwBdCLDLO/Vhuw9+PXr0aO+HpIP42c9+lnaEqK+vTztCREScc845aUfIjLx2Rl6/rpaqqqpKO0Lce++9aUeIiIgf/OAHaUeIuXPnph2Bvchrb2Tl6xowYEDaESIi4qmnnko7Am+xYcOGtCNERMR1112XdoR48MEH044QEdnpjNaW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0qVLY/PmzbF48eI488wzIyLi9NNPj8bGxvjCF74Qv/rVr2LkyJEppwRoe08//XTceeedceutt8bnPve5iIgYO3ZsbN68OW655Za4/PLL45BDDkk5JUDb+vOf/xwXXXRRnHHGGfH9738/Kioqmv7bxRdfnGIygPY1dOjQuOuuu5pdN378+Ni0aVPcdddd8Y1vfCMKhUJK6Xg3PKWJ/fb666/HtddeGyNGjIiqqqo45JBDYsyYMbF06dJ93udb3/pWvO9974tCoRDHHHNMLFq0aI/bbNy4MS677LLo379/dO3aNQYPHhw33nhjqz59uEuXLhERUVVV1ez6Xr16RUREt27dWu2xgPzryH24ZMmSSJIkLrnkkmbXX3LJJfGXv/wlHn744VZ7LCDfOnIX3nffffHSSy/F5z73uWZjH0BLdOQ+3JfDDz88OnXqFJ07d27zx6JteIYf+62xsTH+93//Nz772c/GkUceGdu3b49HH300PvrRj8aCBQviU5/6VLPbL1u2LFasWBE33XRTdO/ePebMmRMf//jHo7KyMi644IKIKBbYCSecEJ06dYp/+Zd/iSFDhsQvfvGLuOWWW2L9+vWxYMGCt800aNCgiIhYv379295uwoQJMWDAgLj22mtjzpw5MXDgwHjiiSfitttui/POOy+OPvroFh8XoPx05D78zW9+E4cffngcccQRza4fPnx4038H2B8duQsfe+yxiIjYuXNnnHLKKfHLX/4yunfvHn/3d38X//Zv/xb9+vVr2UEBylJH7sNdkiSJnTt3xtatW+NHP/pRLFy4MK699tqorDQbdVgJJEmyYMGCJCKSNWvW7Pd9duzYkbzxxhvJpZdemowcObLZf4uI5IADDkg2btzY7PZDhw5NjjrqqKbrLrvssuSggw5Knn/++Wb3/9d//dckIpKnn3662eecOXNms9sNGTIkGTJkyH7lffHFF5MxY8YkEdF0mThxYvL666/v75cMlIG89+HZZ5+dvP/979/rf+vatWvyf/7P/3nHzwHkX9678G//9m+TiEh69eqVfP7zn09+8pOfJN/85jeTQw89NDnqqKOSbdu27ffXDeRb3vtwl5qamqZ/J1dUVCQ33HDDft+XbPIrvZTkvvvui5NPPjkOOuigqKysjC5dusSdd94Zv/vd7/a47Zlnnhl9+vRp+rhz585x4YUXxrp16+KFF16IiIgf/OAHcfrpp0e/fv1ix44dTZfx48dHRMSqVaveNs+6deti3bp175j71VdfjfPPPz8aGhrinnvuicceeyzmzJkTP/vZz+LDH/6wdx8CStZR+zAi3vbX1/xqG1CKjtqFb775ZkREXHjhhfGVr3wlTj/99LjsssvizjvvjHXr1sW9996738cAIKLj9uEukydPjjVr1sQjjzwSn//85+OrX/1qTJ06db/vT/Z4bib77f7774+PfexjMXHixPjc5z4XRxxxRFRWVsbcuXPjO9/5zh63/+tfF3vrdZs3b47+/fvHyy+/HN///vebXmPvr73yyiutkv0rX/lK1NbWxvPPPx99+/aNiIhTTz01hg4dGmeccUbcc889MWnSpFZ5LCD/OnIfHnrooVFbW7vH9du2bYvt27d7ww5gv3X0LoyI+Nu//dtm1//t3/5tVFRUxBNPPNEqjwOUh47ch299/F0Zxo0bFwcffHBcf/318elPf9obXHZQBj/229133x2DBw+OxYsXN3sGSGNj415vv3Hjxn1et+sk67DDDovhw4fHrbfeutfP0Vqvn1JbWxtHHnlk09i3y/HHHx8RXrMKKE1H7sPjjjsuFi1aFBs3bmx2svnUU09FRMSwYcNa5XGA/OvIXTh8+PC9vkD+Lp06+UUoYP915D7clxNOOCEiIp555hmDXwdl8GO/VVRURNeuXZsV2MaNG/f5zkM//vGP4+WXX256qvLOnTtj8eLFMWTIkOjfv39ERJx77rnx4IMPxpAhQ+Lggw9us+z9+vWLH//4x/HHP/4xjjzyyKbrf/GLX0RENOUB2B8duQ/PP//8+OIXvxh33XVXXHfddU3XL1y4MA444ID4u7/7uzZ7bCBfOnIXfuQjH4kbbrghHnroofjIRz7SdP1DDz0USZLEiSee2GaPDeRPR+7DfVmxYkVERBx11FHt/ti0DoMfzfzkJz/Z67v4/P3f/32ce+65cf/998eVV14ZF1xwQdTV1cXNN98cffv2jWeffXaP+xx22GFxxhlnxJe+9KWmdx767//+72Y/Tb3pppti+fLlcdJJJ8XVV18d73//++P111+P9evXx4MPPhjf/OY333aM21U+7/TaBFOmTIl77rknzj777Lj++uujuro6fvOb38Qtt9wSffr0iYsuumg/jxBQLvLah8cee2xceumlMXPmzOjcuXMc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pJOiR48eB32XYufOnQd9N6Morr766li9enU88MADMXTo0LTH6XKbNm2KnTt3xvjx46O6ujqqq6tj/fr18a1vfSuqq6tj3759aY/YpQYPHhxnnHFGm+tOP/30wv2y3rzTwoMVvYURevhaWlgceniwovdQC9vSw2LQwoMVvYURevhaRW5ht1n49erVK8aPHx9r165tc/3atWvj3HPPTWmqdCRJEldddVXccccdcf/998eIESPSHikVF154YTz66KOxefPmlsuECRNi5syZsXnz5ujRo0faI3apiRMnHvS280888UQMGzYspYnoDFrYSgtb6WErLSwOPWylh2Va2JYeFoMWttLCVnrYqtAtTOe9Qtpn5cqVSc+ePZNly5Yljz32WDJv3rykT58+ybZt29IerUtdccUVSU1NTbJu3brk+eefb7n84Q9/SHu01BX1nYeSJEl+8YtfJNXV1ckNN9yQPPnkk8n3v//95Pjjj09uvfXWtEejg2lhmRYeWVF7qIXFoodlenh4RW1hkuhhkWhhmRYeWVF7WOQWdquFX5IkyXe+851k2LBhSa9evZJ3vOMdhXyL7Yg45GX58uVpj5a6okbsgLvuuisZPXp0UiqVklGjRiVLlixJeyQ6iRZq4dEUuYdaWCx6qIdHUuQWJokeFokWauHRFLmHRW1hVZIkSde9nhAAAAAA6Ezd5nf4AQAAAABHZ+EHAAAAADli4QcAAAAAOWLhBwAAAAA5YuEHAAAAADli4QcAAAAAOWLhBwAAAAA5YuEHAAAAADli4QcAAAAAOWLhBwAAAAA5YuEHAAAAADli4UdERKxYsSKqqqrioYce6pA/r6qqKq666qoO+bNe+2cuXLiwXfdduHBhVFVVHfaycuXKDp0V6L7y3sOGhob44Ac/GH/xF38Rffr0iZqamhg3blx8+9vfjr1793bonED3pYUAZXnv4QG//vWvY8aMGXHyySdHqVSK4cOHx5VXXtkxA5KK6rQHgK5w2WWXxfve976Drv/kJz8Zv/3tbw/53wDyaPfu3dGvX7/40pe+FG9+85tjz549cffdd8fVV18dmzdvjn/7t39Le0SATqeFAK0eeOCBmDZtWpx33nnx3e9+N0466aTYvn17PPLII2mPxutg4UchDB06NIYOHdrmum3btsWWLVti5syZ0b9//3QGA+hio0aNiptvvrnNdVOn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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "rng = np.random.default_rng()\n", "indices = rng.choice(N, 16)\n", "plt.figure(figsize=(16, 16))\n", "for i in range(16):\n", " plt.subplot(4, 4, i+1)\n", " plt.imshow(digits.images[indices[i], :], cmap=\"gray\")\n", " plt.title(\"Label: \"+ str(digits.target[indices[i]]))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Digits are indeed to be recognized, the hope being that they are linearly separable and we can apply a softmax classifier directly on the pixels. \n", "\n", "The only problem is that each image is a 8x8 matrix, while we want vectors for our model. Fortunately, that is very easy with `reshape`:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1797, 64)\n" ] } ], "source": [ "X = digits.images.reshape((N, d))\n", "print(X.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's know have a look at the targets, i.e. the ground truth / labels of each digit:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0 1 2 ... 8 9 8]\n", "(1797,)\n" ] } ], "source": [ "labels = digits.target\n", "print(labels)\n", "print(labels.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each label is an integer between 0 and 9, while our softmax classifier expects a **one-hot-encoded** vector of 10 classes, with only one non-zero element, for example for digit 3:\n", "\n", "$$[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]$$\n", "\n", "To do the conversion, we can once again use a built-in method of `scikit-learn`:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1. 0. 0. ... 0. 0. 0.]\n", " [0. 1. 0. ... 0. 0. 0.]\n", " [0. 0. 1. ... 0. 0. 0.]\n", " ...\n", " [0. 0. 0. ... 0. 1. 0.]\n", " [0. 0. 0. ... 0. 0. 1.]\n", " [0. 0. 0. ... 0. 1. 0.]]\n", "(1797, 10)\n" ] } ], "source": [ "from sklearn.preprocessing import OneHotEncoder\n", "\n", "t = OneHotEncoder().fit_transform(labels.reshape(-1, 1)).toarray()\n", "\n", "print(t)\n", "print(t.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** Split the data into a training set `X_train, t_train` and a test set `X_test, t_test` using `scikit-learn` (e.g. with a ratio 70/30)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1257 training samples, 540 test samples.\n" ] } ], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "X_train, X_test, t_train, t_test = train_test_split(X, t, test_size=0.3)\n", "\n", "N_train = X_train.shape[0]\n", "N_test = X_test.shape[0]\n", "\n", "print(N_train, \"training samples,\", N_test, \"test samples.\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Softmax linear classifier" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's remember the structure of the softmax linear classifier: the input vector $\\mathbf{x}$ is transformed into a **logit score** vector $\\mathbf{z}$ using a weight matrix $W$ and a bias vector $\\mathbf{b}$:\n", "\n", "$$\n", " \\mathbf{z} = W \\times \\mathbf{x} + \\mathbf{b}\n", "$$\n", "\n", "This logit score has one element per class, so the weight matrix must have a size $(c, d)$, where $c$ is the number of classes (10) and $d$ is the number of dimensions of the input space (64). The bias vector has 10 elements (one per class).\n", "\n", "The logit score is turned into probabilities using the **softmax** operator:\n", "\n", "$$\n", " y_j = P(\\text{class = j}) = \\frac{\\exp(z_j)}{\\sum_k \\exp(z_k)}\n", "$$\n", "\n", "The following Python function allows to turn any vector $\\mathbf{z}$ (numpy array) into softmax probabilities:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def softmax(z):\n", " e = np.exp(z - z.max())\n", " return e/np.sum(e)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** Experiment with the `softmax()` to understand its function. Pass it different numpy arrays (e.g. [-1, 0, 2]) and print or plot the corresponding probabilities. " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.04201007 0.1141952 0.84379473]\n" ] } ], "source": [ "z = np.array([-1, 0, 2])\n", "s = softmax(z)\n", "print(s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The loss function to use is the **cross-entropy** or **negative log-likelihood**, defined for a single example as:\n", "\n", "$$\n", " \\mathcal{l}(W, \\mathbf{b}) = - \\mathbf{t} \\cdot \\log \\mathbf{y} = - \\log y_j \n", "$$\n", "\n", "where $\\mathbf{t}$ is a one-hot encoding of the class of the example and $j$ is the index of the corresponding class.\n", "\n", "After doing the derivations, we obtain the following learning rules for $W$ and $\\mathbf{b}$ to minimize the loss function:\n", "\n", "$$\n", " \\Delta W = \\eta \\, (\\mathbf{t} - \\mathbf{y}) \\, \\mathbf{x}^T\n", "$$\n", "\n", "$$\n", " \\Delta \\mathbf{b} = \\eta \\, (\\mathbf{t} - \\mathbf{y})\n", "$$\n", "\n", "Note that because $W$ is a $(c, d)$ matrix, $\\Delta W$ too. $(\\mathbf{t} - \\mathbf{y}) \\, \\mathbf{x}^T$ is therefore the **outer product** between the error vector $\\mathbf{t} - \\mathbf{y}$ ($c$ elements) and the input vector $\\mathbf{x}$ ($d$ elements)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Implementation\n", "\n", "You will now modify your implementation of the online Perceptron algorithm from last week.\n", "\n", "Some things to keep in mind:\n", "\n", "* `W` must now be defined as a $(c, d)$ matrix (numpy array) and `b` as a vector with $c$ elements. Both can be initialized to 0.\n", "\n", "* When computing the logit score $\\mathbf{z} = W \\times \\mathbf{x} + \\mathbf{b}$, remember that `W` is now a matrix, so its position will matter in the dot product `np.dot`.\n", "\n", "* Use the `softmax()` function defined above on the whole vector instead of `np.sign()` or `logistic` to get the prediction $\\mathbf{y}$.\n", "\n", "* For $\\Delta W$, you will need the **outer** product between the vectors $\\mathbf{t} - \\mathbf{y}_\\text{train}$ and $\\mathbf{x}_\\text{train}$. Check the doc for `np.outer()`.\n", "\n", "* The one-hot encoding of the class of the example $i$ is now a vector with 10 elements `t_train[i, :]`. You can get the index of the corresponding class by looking at the position of its maximum with `t_train[i, :].argmax()`.\n", "\n", "* Similarly, the predicted class by the model can be identified by the class with the maximum probability: `y.argmax()`.\n", "\n", "* Do not forget to record and plot the evolution of the training error and loss. Compute the test error and loss at the end of each epoch, and plot them together with the training error/loss.\n", "\n", "* Pick the right learning rate and number of epochs.\n", "\n", "**Q:** Let's go." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Final training error: 0.0\n", "Final training loss: 0.005522075921611576\n", "Final test error: 0.04259259259259259\n", "Final test loss: 0.04259259259259259\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABMcAAAIOCAYAAAC8pGoRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAACWYElEQVR4nOzdeVxU9f7H8fdsMCCbCoILKu77EragmZWlaVm35ebV0uxqZbaZdSuzbuWt/FVm1i21zcxWu7fydssWWixSy90Wl24m4gIqLiAiMAzz++MwAwjqDAIDM6/n43EeDGfOnPmM071+/Hy/38/X5HK5XAIAAAAAAACCkNnfAQAAAAAAAAD+QnEMAAAAAAAAQYviGAAAAAAAAIIWxTEAAAAAAAAELYpjAAAAAAAACFoUxwAAAAAAABC0KI4BAAAAAAAgaFEcAwAAAAAAQNCiOAYAAAAAAICgRXEMQL21YMECmUym4x5Lly71d4gAAAC15qefftL111+vpKQk2e12RURE6LTTTtOTTz6pAwcO+Ds8v5ozZ44WLFjg7zBOybnnnqtzzz3X32EAkGT1dwAAcDKvvfaaunTpUul8t27d/BANAABA7Xv55Zc1adIkde7cWX/729/UrVs3ORwOrV69WvPmzdOKFSv04Ycf+jtMv5kzZ45iY2M1btw4f4cCIABQHANQ7/Xo0UP9+vXz+nqXy6WCggKFhYVVeu7o0aOy2+0ymUzVjic/P1/h4eHVfj0AAMCJrFixQjfffLMuvPBCLV68WKGhoZ7nLrzwQt1111367LPPTniPo0ePVpkLBSOHwyGTySSrlX/+AqgayyoBNHgmk0m33nqr5s2bp65duyo0NFSvv/66Z1nmF198ob/+9a+Ki4tTeHi4CgsLVVJSoieffFJdunRRaGiomjVrprFjx2rnzp0V7n3uueeqR48e+u6779S/f3+Fh4frr3/9q58+KQAACAaPP/64TCaTXnrppQqFMbeQkBBdeumlnt/btm2rSy65RB988IH69u0ru92uRx55RJL0yy+/6LLLLlPjxo1lt9vVp08fvf766xXuV1JSokcffVSdO3dWWFiYYmJi1KtXLz377LOea/bt26cbb7xRiYmJCg0NVVxcnAYMGKAvv/zSq8+0evVqXXrppWrSpInsdrv69u2r9957r8I17tztm2++0c0336zY2Fg1bdpUV1xxhXbv3l3h8/7666/69ttvPe022rZtK0launSpTCaT3njjDd11111q2bKlQkND9fvvv0uS5s+fr969e8tut6tJkya6/PLLtWnTpgpxjBs3ThEREfr11181ePBgNWrUSHFxcbr11luVn5/vuW7w4MHq0qWLXC5Xhde7XC516NBBF198sVd/NuUdOHBAkyZNUsuWLRUSEqJ27dpp2rRpKiwsrHDdv/71L5155pmKjo5WeHi42rVrVyFH9eY7BVCG0jmAes/pdKq4uLjCOZPJJIvF4vl98eLFSktL09///nclJCSoWbNmWrVqlSTpr3/9qy6++GK98cYbOnLkiGw2m26++Wa99NJLuvXWW3XJJZcoPT1dDz74oJYuXaq1a9cqNjbWc+/MzExde+21uueee/T444/LbGZcAQAA1A6n06mvv/5aycnJSkxM9Pp1a9eu1aZNm/TAAw8oKSlJjRo10pYtW9S/f381a9ZMzz33nJo2bao333xT48aN0549e3TPPfdIkp588kk9/PDDeuCBB3TOOefI4XBo8+bNOnTokOf+Y8aM0dq1a/XYY4+pU6dOOnTokNauXav9+/efNLZvvvlGF110kc4880zNmzdP0dHRevfddzVy5Ejl5+dXWho5YcIEXXzxxXr77be1Y8cO/e1vf9O1116rr7/+WpL04Ycf6qqrrlJ0dLTmzJkjSZWKiFOnTlVKSormzZsns9msZs2aacaMGbr//vs1atQozZgxQ/v379fDDz+slJQUrVq1Sh07dvS83uFwaPjw4brpppt03333afny5Xr00Ue1fft2/fe//5Uk3XHHHbrsssv01Vdf6YILLvC89tNPP9XWrVv13HPPef39SVJBQYHOO+88bd26VY888oh69eqltLQ0zZgxQ+vXr9cnn3wiyZhZOHLkSI0cOVIPP/yw7Ha7tm/f7vnzkbz7TgGU4wKAeuq1115zSarysFgsnuskuaKjo10HDhyo8vVjx46tcH7Tpk0uSa5JkyZVOP/jjz+6JLnuv/9+z7lBgwa5JLm++uqrWviEAAAAFWVlZbkkuf7yl794/Zo2bdq4LBaLa8uWLRXO/+Uvf3GFhoa6MjIyKpwfNmyYKzw83HXo0CGXy+VyXXLJJa4+ffqc8D0iIiJckydP9jqm8rp06eLq27evy+FwVDh/ySWXuJo3b+5yOp0ul6ssdzs2R3vyySddklyZmZmec927d3cNGjSo0nt98803Lkmuc845p8L5gwcPusLCwlzDhw+vcD4jI8MVGhrqGj16tOfcdddd55LkevbZZytc+9hjj7kkub7//nuXy+VyOZ1OV7t27VyXXXZZheuGDRvmat++vaukpOQEfypGnln+M8ybN88lyfXee+9VuO6JJ55wSXJ98cUXLpfL5Zo5c6ZLkuf7q4o33ymAMkx/AFDvLVy4UKtWrapw/PjjjxWuOf/889W4ceMqX3/llVdW+P2bb76RpEqjlGeccYa6du2qr776qsL5xo0b6/zzzz/FTwEAAFB7evXqpU6dOlU49/XXX2vw4MGVZqCNGzdO+fn5WrFihSQjB9qwYYMmTZqkzz//XLm5uZXuf8YZZ2jBggV69NFH9cMPP8jhcFR43uVyqbi4uMIhSb///rs2b96sa665RpIqPD98+HBlZmZqy5YtFe5Vfsmo+7NJ0vbt273+8zg2/1uxYoWOHj1aKf9LTEzU+eefXyn/k+SJ2W306NGSynJJs9msW2+9VR9//LEyMjIkSVu3btVnn32mSZMm+dzj9uuvv1ajRo101VVXVTjvjtkd4+mnny5Juvrqq/Xee+9p165dle7lzXcKoAzFMQD1XteuXdWvX78KR3JycoVrmjdvftzXH/uce/p/Va9p0aJFpeUBJ7o3AABATYqNjVV4eLi2bdvm0+uqylf2799/3HzH/bxkLEGcOXOmfvjhBw0bNkxNmzbV4MGDtXr1as9rFi1apOuuu06vvPKKUlJS1KRJE40dO1ZZWVmSpNdff102m63CIUl79uyRJN19992Vnp80aZIkKTs7u0J8TZs2rfC7e8nk0aNHq/3n4Wv+Z7VaK8WRkJBQ4V6S0b4jLCxM8+bNkyS98MILCgsLq1aP2v379yshIaFSUa1Zs2ayWq2e9z3nnHO0ePFiFRcXa+zYsWrVqpV69Oihd955x/Mab75TAGUojgEICCcamTv2OXeik5mZWena3bt3V+g3drJ7AwAA1CSLxaLBgwdrzZo1lTYKOpGq8pWmTZseN9+R5Ml5rFarpkyZorVr1+rAgQN65513tGPHDg0dOtTTgD42NlazZ89Wenq6tm/frhkzZuiDDz7wzGoaMWJEpZn+5d9j6tSplZ53H3369PH6c3rrVPO/4uLiSgUzdyGwfNEsOjraUzQ8cOCAXnvtNY0ePVoxMTE+x9y0aVPt2bOnUoP/vXv3qri4uEKM7l5nOTk5Wrp0qVq1aqXRo0d7ZgN6850CKENxDEDQcS+RfPPNNyucX7VqlTZt2qTBgwf7IywAAABJRiHJ5XLphhtuUFFRUaXnHQ6Hpyn8iQwePFhff/11hZ0eJaNlRXh4uM4666xKr4mJidFVV12lW265RQcOHFB6enqla1q3bq1bb71VF154odauXSvJKOwcO9Nfkjp37qyOHTtqw4YNlZ53H5GRkd78sVQQGhrq00yylJQUhYWFVcr/du7c6Vl+eqy33nqrwu9vv/22JGM38/Juv/12ZWdn66qrrtKhQ4d06623eh1XeYMHD1ZeXp4WL15c4fzChQs9zx8rNDRUgwYN0hNPPCFJWrduXaVrvPlOgWDHbpUA6r1ffvml0m6VktS+fXvFxcX5fL/OnTvrxhtv1D//+U+ZzWYNGzbMs1tlYmKi7rzzzpoIGwAAoFpSUlI0d+5cTZo0ScnJybr55pvVvXt3ORwOrVu3Ti+99JJ69OihESNGnPA+Dz30kD7++GOdd955+vvf/64mTZrorbfe0ieffKInn3xS0dHRkoxZXz169FC/fv0UFxen7du3a/bs2WrTpo06duyonJwcnXfeeRo9erS6dOmiyMhIrVq1Sp999pmuuOKKk36eF198UcOGDdPQoUM1btw4tWzZUgcOHNCmTZu0du1a/etf//L5z6hnz5569913tWjRIrVr1052u109e/Y87vUxMTF68MEHdf/992vs2LEaNWqU9u/fr0ceeUR2u10PPfRQhetDQkL09NNPKy8vT6effrpnt8phw4bp7LPPrnBtp06ddNFFF+nTTz/V2Wefrd69e/v8eSRp7NixeuGFF3TdddcpPT1dPXv21Pfff6/HH39cw4cP9+yI+fe//107d+7U4MGD1apVKx06dEjPPvusbDabBg0aJOnk3ymAiiiOAaj3rr/++irPv/zyy5owYUK17jl37ly1b99er776ql544QVFR0froosu0owZMyr1lwAAAKhrN9xwg8444ww988wzeuKJJ5SVlSWbzaZOnTpp9OjRXs1O6ty5s5YvX677779ft9xyi44ePaquXbvqtddeq9CY/rzzztP777+vV155Rbm5uUpISNCFF16oBx98UDabTXa7XWeeeabeeOMNpaeny+FwqHXr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ewfLKgEAOGVms1kLFizQ6aefrgEDBujnn3/Wl19+qa5du/o7NAQhd55H+wwAAE5dQ83zmDnmBffMsWIa8gMAcMoSExO1bNkyf4cBSCLPAwCgJjXUPI+ZY14o262SEUUAAIBA4i6OlbikEnI9AACCEsUxL7h3q2RZJQAAQGBxL6uUJAezxwAACEoUx7xgY+YYAABAQHLneRJ9xwAACFYUx7xgKZ1u73AymggAABBI3HmexI6VAAAEK4pjXrC5dzEiYQIAAAgoNnNZOlzMQCgAAEGJ4pgX3I1anSUuuVwUyAAAAAKF2WySe/IYA6EAAAQnimNesJYfUSRpAgAEmLZt22r27Nme300mkxYvXnzc69PT02UymbR+/fpTet+aug9wqqysEgAABCjyPO9Y/R1AQ2A9plGrzeLHYAAAqGWZmZlq3Lhxjd5z3LhxOnToUIVkLDExUZmZmYqNja3R9wJ8ZTWbVCSWVQIAAh95XtUojnmhYqPWEklUxwAAgSshIaFO3sdisdTZewEnYvVsvsTMMQBAYCPPqxrLKr3gbsgvscU3AKB+efHFF9WyZUuVlFSc8XLppZfquuuu09atW3XZZZcpPj5eEREROv300/Xll1+e8J7HTrdfuXKl+vbtK7vdrn79+mndunUVrnc6nRo/frySkpIUFhamzp0769lnn/U8//DDD+v111/Xf/7zH5lMJplMJi1durTK6fbffvutzjjjDIWGhqp58+a67777VFxc7Hn+3HPP1e2336577rlHTZo0UUJCgh5++GHf/+CAcso2X2LmGACg/iDPq7s8j5ljXrCYTTKZJJdLcpA0AUDwcLkkR75/3tsWLplMJ73sz3/+s26//XZ98803Gjx4sCTp4MGD+vzzz/Xf//5XeXl5Gj58uB599FHZ7Xa9/vrrGjFihLZs2aLWrVuf9P5HjhzRJZdcovPPP19vvvmmtm3bpjvuuKPCNSUlJWrVqpXee+89xcbGavny5brxxhvVvHlzXX311br77ru1adMm5ebm6rXXXpMkNWnSRLt3765wn127dmn48OEaN26cFi5cqM2bN+uGG26Q3W6vkBi9/vrrmjJlin788UetWLFC48aN04ABA3ThhRee9PMAVXG30GAQFACCCHkeeV45FMe8ZDWb5HC65KRRKwAED0e+9HgL/7z3/bulkEYnvaxJkya66KKL9Pbbb3uSpn/9619q0qSJBg8eLIvFot69e3uuf/TRR/Xhhx/qo48+0q233nrS+7/11ltyOp2aP3++wsPD1b17d+3cuVM333yz5xqbzaZHHnnE83tSUpKWL1+u9957T1dffbUiIiIUFhamwsLCE06vnzNnjhITE/X888/LZDKpS5cu2r17t+699179/e9/l7l0g5xevXrpoYcekiR17NhRzz//vL766iuKY6g29+ZLNOQHgCBCnkeeVw7LKr3kSZoYUQQA1DPXXHON3n//fRUWFkoyEp2//OUvslgsOnLkiO655x5169ZNMTExioiI0ObNm5WRkeHVvTdt2qTevXsrPDzccy4lJaXSdfPmzVO/fv0UFxeniIgIvfzyy16/R/n3SklJkancSOqAAQOUl5ennTt3es716tWrwuuaN2+uvXv3+vReQHllM8dYIQAAqF/I8+omz2PmmJesFpPkYEQRAIKKLdwY2fPXe3tpxIgRKikp0SeffKLTTz9daWlpmjVrliTpb3/7mz7//HPNnDlTHTp0UFhYmK666ioVFRV5dW+X6+R/77333nu688479fTTTyslJUWRkZF66qmn9OOPP3r9GdzvZTpmiYH7/cuft9lsFa4xmUyVenEAvqAhPwAEIfI88rxyKI55yZ00MaIIAEHEZPJqyru/hYWF6YorrtBbb72l33//XZ06dVJycrIkKS0tTePGjdPll18uScrLy1N6errX9+7WrZveeOMNHT16VGFhYZKkH374ocI1aWlp6t+/vyZNmuQ5t3Xr1grXhISEyOl0nvS93n///QrJ0/LlyxUZGamWLVt6HTPgK3dDftpnAEAQIc8jzyuHZZVespYmTYwoAgDqo2uuuUaffPKJ5s+fr2uvvdZzvkOHDvrggw+0fv16bdiwQaNHj/Zp9G306NEym80aP368Nm7cqCVLlmjmzJkVrunQoYNWr16tzz//XL/99psefPBBrVq1qsI1bdu21U8//aQtW7YoOztbDoej0ntNmjRJO3bs0G233abNmzfrP//5jx566CFNmTLF04cCqA0W98wxZiACAOoh8rzaV60I5syZo6SkJNntdiUnJystLe2412ZmZmr06NHq3LmzzGazJk+efMJ7v/vuuzKZTPrTn/5UndBqja00aWJEEQBQH51//vlq0qSJtmzZotGjR3vOP/PMM2rcuLH69++vESNG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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Parameters\n", "eta = 0.001\n", "nb_epochs = 100\n", "\n", "# Initialize the weight matrix and bias vector\n", "W = np.zeros((c, d))\n", "b = np.zeros(c)\n", "\n", "# Perceptron algorithm\n", "training_errors = []\n", "training_losses = []\n", "test_errors = []\n", "test_losses = []\n", "\n", "for epoch in range(nb_epochs):\n", " error = 0\n", " loss = 0.\n", " \n", " # Iterate over all training examples\n", " for i in range(N_train):\n", " \n", " # Prediction\n", " z = np.dot(W, X_train[i, :]) + b\n", " \n", " # Probability\n", " y = softmax(z)\n", " \n", " # Update the weight\n", " W += eta * np.outer((t_train[i, :] - y), X_train[i, :])\n", " \n", " # Update the bias\n", " b += eta * (t_train[i, :] - y) \n", " \n", " # Increment the error if the maximum probability is different from the class\n", " if y.argmax() != t_train[i, :].argmax():\n", " error += 1\n", " \n", " # Accumulate the loss\n", " loss -= np.log(y[t_train[i, :].argmax()])\n", " \n", " training_errors.append(error/N_train)\n", " training_losses.append(loss/N_train)\n", "\n", " # Test error\n", " error = 0\n", " loss = 0.\n", "\n", " # Iterate over all test examples\n", " for i in range(N_test):\n", "\n", " # Prediction\n", " z = np.dot(W, X_test[i, :]) + b\n", "\n", " # Probability\n", " y = softmax(z)\n", "\n", " # Increment the error if the maximum probability is different from the class\n", " if y.argmax() != t_test[i, :].argmax():\n", " error += 1\n", "\n", " # Accumulate the loss\n", " loss -= np.log(y[t_test[i, :].argmax()])\n", "\n", " test_errors.append(error/N_test)\n", " test_losses.append(loss/N_test)\n", "\n", "print(\"Final training error:\", training_errors[-1])\n", "print(\"Final training loss:\", training_losses[-1])\n", "\n", "print(\"Final test error:\", test_errors[-1])\n", "print(\"Final test loss:\", test_errors[-1])\n", "\n", "plt.figure(figsize=(15, 6))\n", "plt.subplot(121)\n", "plt.plot(training_errors, label=\"training\")\n", "plt.plot(test_errors, label=\"validation\")\n", "plt.legend()\n", "plt.title(\"Error\")\n", "plt.subplot(122)\n", "plt.plot(training_losses, label=\"training\")\n", "plt.plot(test_losses, label=\"validation\")\n", "plt.legend()\n", "plt.title(\"Cross-entropy loss\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** What is the final training error and loss of the model? After how many epochs do you get a perfect classification? Why do they evolve like this? \n", "\n", "*Hint:* you may need to avoid plotting the error/loss during the first 20 epochs or so to observe the effect." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A:** The training error reaches quickly 0, but the loss still decreases for a number of epochs. This is because the probability vector `y` is a correct prediction for the class (the maximum probability corresponds to the correct class) but not with a probability of 1 yet. The loss continues to evolve even when there is no error, as it wants to bring the probability vector as close as possible to a binary vector.\n", "\n", "This is the main difference with the mean square error (mse) loss function: as soon as there are no errors, the mse loss becomes 0 and learning stops. In classification problems, one should therefore track the loss function, not the training error." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** Compare the evolution of the training and test errors during training. What happens?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The test error is higher than the final training error, as the examples were not used for training. This is a classical sign of **overfitting**, although the model is linear. Regularization may help.\n", "\n", "If you let the network learn for more epochs, the validation error may even start to go up: you need **early stopping**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Q:** The following cell samples 12 misclassified images from the test and shows the predicted class together with the ground truth. What do you think?" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABP4AAAPZCAYAAACBDuTAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAACZB0lEQVR4nOzdfVxUdf7//yfIMCgq5LUIAmlepaapbV6kYGlhttWutVuapmmZeJVbP9csQ13D2toP22665ZqWmrqVoVteZBdga+qq6daq26UoaWoXAmpJCe/fH3wBRy4HZziHw+N+u80fHM6Z85wDPBlenDkTYIwxAgAAAAAAAOAogVYHAAAAAAAAAOB7DP4AAAAAAAAAB2LwBwAAAAAAADgQgz8AAAAAAADAgRj8AQAAAAAAAA7E4A8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAciMEfAAAAAAAA4EAM/ry0dOlSBQQEaNeuXT65v4CAAE2cONEn93X+fSYlJXm1zfHjx9W4cWMFBATo1Vdf9WmejIwMBQQEFN0CAwPVuHFjDRkyRNu2bfPpvspy9913KyYmxmNZVY7T0aNHlZSUpL1795b4XFJSkgICAqoesoouPL4X3m644YZqz4TawUl9OHbsWHXu3Fnh4eGqW7eu2rVrp4ceekjffvutT/PQh/4XFxdHF6JaOakLY2JiSv35GT9+vE/z0IX+99NPP2nWrFmKjY1VcHCwoqOjNWPGDP3444+W5EHt4JQ+TEtLK/fvK192In3of2+88YZGjhypLl26yOVyWZbDSkFWB4A9JCYmKiQkxK/7mDRpku68807l5eVp3759mj17tuLj47Vt2zZ1797dr/suzbZt2xQZGenVNkePHtXs2bMVExOjbt26eXxu7Nixlvxh2bJly1J/KaSmpuqJJ57QrbfeWu2ZgJrmzJkzuvfee9W2bVuFhIRo165dmjdvntavX689e/YoODjYp/ujD/3r0ksv1YoVKzyWhYeHWxMGqGH69u2rp556ymNZ8+bN/bIvutB/7rjjDq1fv16zZs1Sr169tG3bNv3hD3/Qvn37tG7dOksyATXFlVdeWerfVwsXLtRLL73kl7+v6EP/ef3117V9+3Z1795dbrdbu3fvtiSHlRj8Qa+99po2bdqkZ599VqNGjfLbflq3bq2rr75aUsGTyrZt2+raa6/VggULtGjRolK3+fHHHxUSEuKXqXxhFl+JjIz0uhx9we12l/pYZsyYoXr16umOO+6o9kxATbNy5UqPjwcOHKgGDRpowoQJ+te//qWBAwf6dH/0oX/VrVvX548JqC3Cw8Or7eeHLvSP7du3a82aNXr66ac1bdo0SdJ1112noKAgPfzww9q8ebMGDRpU7bmAmqJhw4Yl+sAYo+HDhys6OtovPz/0of8sWrRIgYEFL3adOHFirRz88VJfPzh79qx+97vfqVu3bgoLC1OjRo3Uu3dvrV27tsxtnnvuObVr105ut1udOnXSqlWrSqxz7Ngx3XfffYqMjFRwcLBiY2M1e/ZsnTt3rspZv//+eyUmJmrevHlq3bp1le+nKgrL5NChQ5KKTw1/6623NGbMGDVt2lT16tVTbm6uJGn16tXq3bu3QkNDVb9+fV1//fXas2dPiftdunSp2rdvL7fbrY4dO+qll14qdf+lnb585MgR3XvvvYqKilJwcLAiIiI0bNgwHT9+XGlpaerVq5ckafTo0UWnYxfeR2mnL+fn5+vJJ59Uhw4d5Ha71axZM40cOVJfffWVx3pxcXHq3Lmzdu7cqWuuuUb16tXTpZdeqvnz5ys/P9+7Ayvpiy++UHp6um6//XY1bNjQ6+0BX6lJfXihpk2bSpKCgvz/PzL6sJiv+xCwg5rchdWJLix2MV24detWSdKQIUM8lg8dOlRSwT/9AavU1D5877339OWXX2r06NFFQyR/og+LXexzw+r4etkdR8APcnNz9f333+vBBx9UamqqVq5cqX79+ulXv/pVqT9Y69at0zPPPKM5c+bo1VdfVXR0tO644w6Pa+0dO3ZMV111lTZt2qRZs2Zpw4YNuueee5ScnKxx48ZVOevkyZMVGxtbpWsnFF5Hqao+//xzScV/XBcaM2aMXC6Xli1bpldffVUul0uPP/647rjjDnXq1En/+Mc/tGzZMp06dUrXXHON9u/fX7Tt0qVLNXr0aHXs2FGvvfaaHnnkEc2dO1fvvvtuhXmOHDmiXr166fXXX9e0adO0YcMGpaSkKCwsTCdPntSVV16pJUuWSJIeeeQRbdu2Tdu2bdPYsWPLvM/7779f06dP16BBg7Ru3TrNnTtXGzduVJ8+fUpcO+zYsWMaPny4RowYoXXr1ikhIUEzZszQ8uXLK31MC73wwgsyxpSbDagONakPJencuXM6c+aMtm7dqkcffVT9+vVT3759K9yOPrRXH37xxRdq1KiRgoKC1KZNG82cOZPrWsFSNakLt2zZogYNGsjlcqlTp056+umnlZeXV6lt6UJ7dOFPP/0kqeBVIecr/Pijjz6q8LED/lKT+vB8ixcvVmBgoEaPHl2p9elDe/Qh/h8DryxZssRIMjt37qz0NufOnTM///yzueeee0z37t09PifJ1K1b1xw7dsxj/Q4dOpi2bdsWLbvvvvtM/fr1zaFDhzy2f+qpp4wks2/fPo/7fOyxxyrM9cYbbxiXy2U+/vhjY4wx7733npFkXnnllUo9roEDB5o6depUuN7BgweNJPPEE0+Yn3/+2Zw9e9bs3r3b9OrVy0gyb775pjGm+NiOHDnSY/vDhw+boKAgM2nSJI/lp06dMi1atDC33367McaYvLw8ExERYa688kqTn59ftF5GRoZxuVwmOjraY/sLj9OYMWOMy+Uy+/fvL/Ox7Ny500gyS5YsKfG5xx57zJz/I3XgwAEjyUyYMMFjvR07dhhJ5uGHHy5aNmDAACPJ7Nixw2PdTp06meuvv77MPKU5d+6cadWqlenQoYNX2wHeclIfGmPMtm3bjKSi25AhQ0xOTk6ltqUPPVnZhzNnzjQLFiww7777rnnzzTfNxIkTTVBQkOnfv7/Jy8urcHvAW07qwgkTJpgXXnjBpKenm9TUVDN8+HAjyYwYMaJSj4su9GRVF6amphpJZtmyZR7LFy9ebCSZdu3albs9UFVO6sPznTx50oSEhHj1dxl96MkufysnJiZ65KgtOOPPT1555RX17dtX9evXV1BQkFwulxYvXqwDBw6UWPfaa6/1uGhynTp19Jvf/Eaff/550Wmub7zxhuLj4xUREaFz584V3RISEiRJ6enpXuXLzs7Wfffdp+nTp6tz585VeozvvPOOV6dOT58+XS6XSyEhIerRo4cOHz6s5557rsTLEH796197fLxp0yadO3dOI0eO9HjsISEhGjBggNLS0iRJn3zyiY4ePao777zT478r0dHR6tOnT4X5NmzYoPj4eHXs2LHSj6k87733nqSCd0k631VXXaWOHTvqnXfe8VjeokULXXXVVR7LunbtWnR6d2Vt3LhRR44c0T333ON9aMAP7N6Hhbp06aKdO3cqPT1df/7zn7Vnzx4NGjRIP/zwQ4Xb0oflq84+/MMf/qD7779f8fHxGjJkiP7yl79o/vz52rJlS7kvIwL8rSZ04bPPPqvRo0erf//+uvnmm7V8+XJNnDhRy5cvL/UlYxeiC8tXXV2YkJCgtm3bavr06dq8ebOysrK0ceNGPfzww6pTpw4ve4PlakIfnm/FihU6e/asV6+mog/LZ9XfyrUVb+7hB2vWrNHtt9+u2267TQ899JBatGihoKAgLVy4UC+88EKJ9Vu0aFHmsu+++06RkZE6fvy4/vnPf8rlcpW6zwtPha3IzJkz5XK5NHHiRGVlZUmSTp8+LUn64YcflJWVpbCwMJ9eKHTKlCkaMWKEAgMDFR4ertjY2FLvv2XLlh4fHz9+XJKKrhlwocInL999952kso9nRkZGufm++eYbn15wtDDPhY9HkiIiIkqUVOPGjUus53a7vX552uLFi+VyuTRy5EivtgP8oSb0YaHQ0FD17NlTktS/f3/94he/0NVXX63nnntODzzwQJXusyz0YTF/9mGhESNG6MEHH9T27dt5p3NYoiZ14YVGjBihv/71r0XviOhLdGExX3ZhcHCwNmzYoLvuukuDBw+WVPA77vHHH9fcuXPVqlWrqj4E4KLVxD5cvHixmjZtqptvvvmi7qc89GGx6nhuWNsw+POD5cuXKzY2VqtXr/b4YS288OaFjh07Vuaywm/wJk2aqGvXrpo3b16p9xEREeFVxv/+97/KyMgo9Qe/8J19T548qfDwcK/utzyRkZFFf1SX58KCa9KkiSQVXdOhLIXHqrzjWZ6mTZuWuJDoxSjM8/XXX5coyaNHjxY9Ll86ceKE3njjDf3yl79Us2bNfH7/gLdqQh+WpWfPngoMDNSnn37qk/s7H31YzF99WBrOcoFVanIXGmMk+efnhy4s5usubNu2rbZt26YjR47o+++/V5s2bZSdna0pU6aof//+PtsP4K2a1od79uzRnj179Lvf/a7MwaIv0IfFqvO5YW3B4M8PAgICFBwc7PFDeezYsTJfYvTOO+/o+PHjRacw5+XlafXq1WrTpk3RD8HQoUO1fv16tWnTRpdccslFZ0xJSSk606/Q3r179cADDygpKUkDBgxQ/fr1L3o/vnD99dcrKChIX3zxRYlTm8/Xvn17tWzZUitXrtS0adOKjv+hQ4f0wQcfVFj4CQkJWrZsmT755BO1b9++1HUKL4pcmf8sDBw4UFLBL7fz/wOzc+dOHThwQDNnzqzwPrz10ksv6eeff+ZlvrCNmtCHZUlPT1d+fr7atm3rt314iz6smhdffFFS8TvkAdWtJndh4cX27fTzQxdWXqtWrYrO8HvkkUcUGhrK80RYqqb14eLFiyXJtj839CEqg8FfFb377rulng47ZMgQDR06VGvWrNGECRM0bNgwZWZmau7cuWrZsqU+++yzEts0adJEAwcO1KOPPqrQ0FAtWLBA//vf/zzepnzOnDnavHmz+vTpo8mTJ6t9+/Y6e/asMjIytH79ev3tb3/z6tTbbt26lfm5yy+/XHFxcRXeR1xcnNLT04v+E+wvMTExmjNnjmbOnKkvv/xSN9xwgy655BIdP35c//73vxUaGqrZs2crMDBQc+fO1dixY3Xrrbdq3LhxysrKUlJSUqlnNl5ozpw52rBhg/r376+HH35YXbp0KbomyrRp09ShQwe1adNGdevW1YoVK9SxY0fVr19fERERpRZl+/btde+99+ovf/mLAgMDlZCQoIyMDD366KOKiory+UsHpYJfTFFRUbr++ut9ft9AWWp6H77xxhtatGiRfvnLXyo6Olo///yzdu3apZSUFLVt27ZS13OhD+3Rh++//77mzZunW2+9VZdeeqnOnj2rDRs26Pnnn9fAgQN10003+WQ/QGlqehe+/PLLWrNmjW688UZFR0crKytLr7zyilatWqW7775bV1xxRYX3QRfaowsl6cknn1SLFi3UunVrHT9+XP/4xz+UmpqqZcuW8VJf+F1N78NCZ8+e1csvv6w+ffp4fW07+tA+fXjo0CHt3LlTkvTFF19IUtG7QsfExFTqTMsaz9K3FqmBCt9Np6zbwYMHjTHGzJ8/38TExBi32206duxoFi1aVOKdbIwpeLecxMREs2DBAtOmTRvjcrlMhw4dzIoVK0rs+5tvvjGTJ082sbGxxuVymUaNGpkePXqYmTNnmtOnT3vcp7fvVGSM9+/q26NHD9OiRYsK1yt8p6I//vGP5a5X0btApaammvj4eNOwYUPjdrtNdHS0GTZsmHn77bc91vv73/9uLrvsMhMcHGzatWtnXnjhBTNq1KgK36nIGGMyMzPNmDFjTIsWLYzL5TIRERHm9ttvN8ePHy9aZ+XKlaZDhw7G5XJ53EdpX9+8vDzzxBNPmHbt2hmXy2WaNGliRowYYTIzMz3WGzBggLn88stLPObScpdl69atRpKZNWtWpdYHLpZT+vDAgQNm2LBhJjo62oSEhJiQkBDToUMH89BDD5nvvvuuUseCPrRHH3722WdmyJAhplWrVsbtdpuQkBDTpUsXM2/ePHP27NlytwWqyilduG3bNnPttdcW/czXq1fP9OrVyyxYsKDS74hNF9qjC40xZvbs2aZNmzbG7Xab8PBwc8MNN5gtW7ZUuB1wMZzSh4VWrFhhJJkXXnjB62NBH9qnD8v7vhw1alSF2ztBgDF+HkHDkU6dOqVGjRopJSVFiYmJVscBAMvQhwBAFwJAIfoQdsNVrlElW7ZsUatWrTRu3DirowCApehDAKALAaAQfQi74Yw/AAAAAAAAwIE44w8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAcKKi6d5ifn6+jR4+qQYMGCggIqO7dA6hhjDE6deqUIiIiFBjonP9V0IUAvEUfAgBdCACFKtuH1T74O3r0qKKioqp7twBquMzMTEVGRlodw2foQgBVRR8CAF0IAIUq6sNqH/w1aNCgundpa2FhYVZHkCT961//sjqCJGnFihVWR7CNhQsXWh1BkpSdnW11BEnO6w6nPZ6L1a9fP6sjSJJmzJhhdQRJ9vndcOONN1odwTYdZCdO6w+nPZ6LNX/+fKsjSJK6dOlidQRJUuvWra2OIMkefXj48GGrI9iK07rDTo/HDj93dvn71C7Pye644w6rI0iS1q9fb3UElKKi/qj2wR+nLXuyy/Gwyy+akJAQqyPYhl2+N+zCacfDaY/nYgUFVfuvo1KFhoZaHUGSVL9+fasjSOL71K6c9nVx2uO5WHZ5LmSXPrTLc1QnvaTUKZzWHXZ6PHb4fm/YsKHVESTZJ4fL5bI6Amysov6w/icaAAAAAAAAgM8x+AMAAAAAAAAciMEfAAAAAAAA4EAM/gAAAAAAAAAHYvAHAAAAAAAAOBCDPwAAAAAAAMCBGPwBAAAAAAAADsTgDwAAAAAAAHAgBn8AAAAAAACAAzH4AwAAAAAAAByIwR8AAAAAAADgQFUa/C1YsECxsbEKCQlRjx499P777/s6FwDYHl0IAAXoQwCgCwHYk9eDv9WrV2vq1KmaOXOm9uzZo2uuuUYJCQk6fPiwP/IBgC3RhQBQgD4EALoQgH15Pfj705/+pHvuuUdjx45Vx44dlZKSoqioKC1cuLDU9XNzc5WTk+NxA4Caji4EgAL0IQDQhQDsy6vB308//aTdu3dr8ODBHssHDx6sDz74oNRtkpOTFRYWVnSLioqqeloAsAG6EAAK0IcAQBcCsDevBn/ffvut8vLy1Lx5c4/lzZs317Fjx0rdZsaMGcrOzi66ZWZmVj0tANgAXQgABehDAKALAdhbUFU2CggI8PjYGFNiWSG32y23212V3QCArdGFAFCAPgQAuhCAPXl1xl+TJk1Up06dEv+1OHHiRIn/bgCAU9GFAFCAPgQAuhCAvXk1+AsODlaPHj20efNmj+WbN29Wnz59fBoMAOyKLgSAAvQhANCFAOzN65f6Tps2TXfddZd69uyp3r176/nnn9fhw4c1fvx4f+QDAFuiCwGgAH0IAHQhAPvyevD3m9/8Rt99953mzJmjr7/+Wp07d9b69esVHR3tj3wAYEt0IQAUoA8BgC4EYF9VenOPCRMmaMKECb7OAgA1Cl0IAAXoQwCgCwHYk1fX+AMAAAAAAABQMzD4AwAAAAAAAByIwR8AAAAAAADgQAz+AAAAAAAAAAdi8AcAAAAAAAA4EIM/AAAAAAAAwIEY/AEAAAAAAAAOxOAPAAAAAAAAcCAGfwAAAAAAAIADBVkdoLZLSUmxOoIkKSsry+oItvLYY49ZHcE23xtAbTJgwACrI9iKHY7H2rVrrY4AVKtu3bpZHUGStHTpUqsjSJIyMjKsjiDJPjmA6mCH7/dbbrnF6giSpKlTp1odQZIUHx9vdQRJPC+rqTjjDwAAAAAAAHAgBn8AAAAAAACAAzH4AwAAAAAAAByIwR8AAAAAAADgQAz+AAAAAAAAAAdi8AcAAAAAAAA4EIM/AAAAAAAAwIEY/AEAAAAAAAAOxOAPAAAAAAAAcCAGfwAAAAAAAIADMfgDAAAAAAAAHIjBHwAAAAAAAOBAXg/+tmzZoptuukkREREKCAhQamqqH2IBgL3RhQBQgD4EALoQgH15Pfg7c+aMrrjiCv31r3/1Rx4AqBHoQgAoQB8CAF0IwL6CvN0gISFBCQkJ/sgCADUGXQgABehDAKALAdiX14M/b+Xm5io3N7fo45ycHH/vEgBshy4EgAL0IQDQhQCqj9/f3CM5OVlhYWFFt6ioKH/vEgBshy4EgAL0IQDQhQCqj98HfzNmzFB2dnbRLTMz09+7BADboQsBoAB9CAB0IYDq4/eX+rrdbrndbn/vBgBsjS4EgAL0IQDQhQCqj9/P+AMAAAAAAABQ/bw+4+/06dP6/PPPiz4+ePCg9u7dq0aNGql169Y+DQcAdkUXAkAB+hAA6EIA9uX14G/Xrl2Kj48v+njatGmSpFGjRmnp0qU+CwYAdkYXAkAB+hAA6EIA9uX14C8uLk7GGH9kAYAagy4EgAL0IQDQhQDsi2v8AQAAAAAAAA7E4A8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAciMEfAAAAAAAA4EAM/gAAAAAAAAAHYvAHAAAAAAAAOBCDPwAAAAAAAMCBGPwBAAAAAAAADhRkdQArxcTEWB1Bo0aNsjqCJCk+Pt7qCJKku+++2+oIkqS1a9daHUFZWVlWRwCqzS233GJ1BFt58cUXrY4gyR5dCMAaqampVkeQZI/n6wCqX1pamtURJEkpKSlWR5Bkn+Nhh062y9/JdslRGZzxBwAAAAAAADgQgz8AAAAAAADAgRj8AQAAAAAAAA7E4A8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAciMEfAAAAAAAA4EAM/gAAAAAAAAAHYvAHAAAAAAAAOBCDPwAAAAAAAMCBGPwBAAAAAAAADsTgDwAAAAAAAHAgBn8AAAAAAACAA3k1+EtOTlavXr3UoEEDNWvWTLfccos++eQTf2UDAFuiCwGgAH0IAHQhAHvzavCXnp6uxMREbd++XZs3b9a5c+c0ePBgnTlzxl/5AMB26EIAKEAfAgBdCMDegrxZeePGjR4fL1myRM2aNdPu3bvVv39/nwYDALuiCwGgAH0IAHQhAHvzavB3oezsbElSo0aNylwnNzdXubm5RR/n5ORczC4BwHboQgAoQB8CAF0IwF6q/OYexhhNmzZN/fr1U+fOnctcLzk5WWFhYUW3qKioqu4SAGyHLgSAAvQhANCFAOynyoO/iRMn6qOPPtLKlSvLXW/GjBnKzs4uumVmZlZ1lwBgO3QhABSgDwGALgRgP1V6qe+kSZO0bt06bdmyRZGRkeWu63a75Xa7qxQOAOyMLgSAAvQhANCFAOzJq8GfMUaTJk3S66+/rrS0NMXGxvorFwDYFl0IAAXoQwCgCwHYm1eDv8TERL388stau3atGjRooGPHjkmSwsLCVLduXb8EBAC7oQsBoAB9CAB0IQB78+oafwsXLlR2drbi4uLUsmXLotvq1av9lQ8AbIcuBIAC9CEA0IUA7M3rl/oCQG1HFwJAAfoQAOhCAPZW5Xf1BQAAAAAAAGBfDP4AAAAAAAAAB2LwBwAAAAAAADgQgz8AAAAAAADAgRj8AQAAAAAAAA7E4A8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAciMEfAAAAAAAA4EBBVgew0i233GJ1BGVnZ1sdQZIUExNjdQRJUlxcnNURJEnR0dFWR9DevXutjiBJ6tatm9UR4GdJSUlWR9CUKVOsjmAr4eHhVkeQZI9OTktLszoCUK3s8vv/5MmTVkewlfT0dKsj2KKTUTvY4XnI1KlTrY4gSbriiiusjiDJPsfj//7v/6yOoBdffNHqCJKku+++2+oIlcYZfwAAAAAAAIADMfgDAAAAAAAAHIjBHwAAAAAAAOBADP4AAAAAAAAAB2LwBwAAAAAAADgQgz8AAAAAAADAgRj8AQAAAAAAAA7E4A8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAciMEfAAAAAAAA4EAM/gAAAAAAAAAHYvAHAAAAAAAAOJBXg7+FCxeqa9euatiwoRo2bKjevXtrw4YN/soGALZFHwIAXQgAEl0IwN68GvxFRkZq/vz52rVrl3bt2qWBAwfq5ptv1r59+/yVDwBsiT4EALoQACS6EIC9BXmz8k033eTx8bx587Rw4UJt375dl19+eanb5ObmKjc3t+jjnJycKsQEAHvxtg/pQgBOxHNDAKALAdhbla/xl5eXp1WrVunMmTPq3bt3meslJycrLCys6BYVFVXVXQKALVWmD+lCAE7Hc0MAoAsB2I/Xg7+PP/5Y9evXl9vt1vjx4/X666+rU6dOZa4/Y8YMZWdnF90yMzMvKjAA2IU3fUgXAnAqnhsCAF0IwL68eqmvJLVv31579+5VVlaWXnvtNY0aNUrp6elllprb7Zbb7b7ooABgN970IV0IwKl4bggAdCEA+/J68BccHKy2bdtKknr27KmdO3fqz3/+s5577jmfhwMAO6MPAYAuBACJLgRgX1W+xl8hY4zHRUkBoLaiDwGALgQAiS4EYB9enfH38MMPKyEhQVFRUTp16pRWrVqltLQ0bdy40V/5AMCW6EMAoAsBQKILAdibV4O/48eP66677tLXX3+tsLAwde3aVRs3btSgQYP8lQ8AbIk+BAC6EAAkuhCAvXk1+Fu8eLG/cgBAjUIfAgBdCAASXQjA3i76Gn8AAAAAAAAA7IfBHwAAAAAAAOBADP4AAAAAAAAAB2LwBwAAAAAAADgQgz8AAAAAAADAgRj8AQAAAAAAAA7E4A8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAcKMAYY6pzhzk5OQoLC6vOXZapW7duVkfQnj17rI5gK9nZ2VZHkCQtXbrU6ghKSUmxOoIkKSMjw+oIkgq+Nxo2bGh1DJ+xUxfaQVxcnNURJNknx2OPPWZ1BNt44IEHrI4gyT6dLNGHTmeXHrKLtLQ0qyNIskcOOzw/leyTgy70Hzt8jUeNGmV1BEn2+fs0KSnJ6giS7PG9kZWVZXUE26moDznjDwAAAAAAAHAgBn8AAAAAAACAAzH4AwAAAAAAAByIwR8AAAAAAADgQAz+AAAAAAAAAAdi8AcAAAAAAAA4EIM/AAAAAAAAwIEY/AEAAAAAAAAOxOAPAAAAAAAAcCAGfwAAAAAAAIADMfgDAAAAAAAAHIjBHwAAAAAAAOBAFzX4S05OVkBAgKZOneqjOABQ89CFAFCAPgQAuhCAvVR58Ldz5049//zz6tq1qy/zAECNQhcCQAH6EADoQgD2U6XB3+nTpzV8+HAtWrRIl1xyia8zAUCNQBcCQAH6EADoQgD2VKXBX2Jiom688UZdd911Fa6bm5urnJwcjxsAOAFdCAAF6EMAoAsB2FOQtxusWrVKH374oXbu3Fmp9ZOTkzV79myvgwGAndGFAFCAPgQAuhCAfXl1xl9mZqamTJmi5cuXKyQkpFLbzJgxQ9nZ2UW3zMzMKgUFALugCwGgAH0IAHQhAHvz6oy/3bt368SJE+rRo0fRsry8PG3ZskV//etflZubqzp16nhs43a75Xa7fZMWAGyALgSAAvQhANCFAOzNq8Hftddeq48//thj2ejRo9WhQwdNnz69RJkBgBPRhQBQgD4EALoQgL15Nfhr0KCBOnfu7LEsNDRUjRs3LrEcAJyKLgSAAvQhANCFAOytSu/qCwAAAAAAAMDevH5X3wulpaX5IAYA1Gx0IQAUoA8BgC4EYB+c8QcAAAAAAAA4EIM/AAAAAAAAwIEY/AEAAAAAAAAOxOAPAAAAAAAAcCAGfwAAAAAAAIADMfgDAAAAAAAAHIjBHwAAAAAAAOBADP4AAAAAAAAAB2LwBwAAAAAAADgQgz8AAAAAAADAgQKMMaY6d5iTk6OwsLDq3KWtdevWzeoIkqSkpCSrI0iSMjIyrI4gSZo6darVEXCB7OxsNWzY0OoYPkMXojwxMTFWR5AkpaWlWR3BNuzyNZHoQ8AKcXFxVkewzfN1OxwLiS50Orv8Xbh06VKrI0iyz88/7KmiPuSMPwAAAAAAAMCBGPwBAAAAAAAADsTgDwAAAAAAAHAgBn8AAAAAAACAAzH4AwAAAAAAAByIwR8AAAAAAADgQAz+AAAAAAAAAAdi8AcAAAAAAAA4EIM/AAAAAAAAwIEY/AEAAAAAAAAOxOAPAAAAAAAAcCAGfwAAAAAAAIADeTX4S0pKUkBAgMetRYsW/soGALZFHwIAXQgAEl0IwN6CvN3g8ssv19tvv130cZ06dXwaCABqCvoQAOhCAJDoQgD25fXgLygoiP9eAIDoQwCQ6EIAkOhCAPbl9TX+PvvsM0VERCg2Nla//e1v9eWXX5a7fm5urnJycjxuAOAE3vQhXQjAqXhuCAB0IQD78mrw94tf/EIvvfSSNm3apEWLFunYsWPq06ePvvvuuzK3SU5OVlhYWNEtKirqokMDgNW87UO6EIAT8dwQAOhCAPYWYIwxVd34zJkzatOmjf6//+//07Rp00pdJzc3V7m5uUUf5+TkUGrn6datm9URJBVckNYOMjIyrI4gSZo6darVEXCB7OxsNWzY0OoYZaqoD+lCeCMmJsbqCJKktLQ0qyPYhl2+JpK9+5DnhnCquLg4qyPY5vm6HY6FRBc6nV3+Lly6dKnVESTZ5+cf9lRRH3p9jb/zhYaGqkuXLvrss8/KXMftdsvtdl/MbgDA9irqQ7oQQG3Ac0MAoAsB2IvX1/g7X25urg4cOKCWLVv6Kg8A1Ej0IQDQhQAg0YUA7MWrwd+DDz6o9PR0HTx4UDt27NCwYcOUk5OjUaNG+SsfANgSfQgAdCEASHQhAHvz6qW+X331le644w59++23atq0qa6++mpt375d0dHR/soHALZEHwIAXQgAEl0IwN68GvytWrXKXzkAoEahDwGALgQAiS4EYG8XdY0/AAAAAAAAAPbE4A8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAciMEfAAAAAAAA4EAM/gAAAAAAAAAHYvAHAAAAAAAAOBCDPwAAAAAAAMCBGPwBAAAAAAAADhRkdYDabu/evVZHkCSFh4dbHUGSlJqaanUEALVYXFyc1REk2acLw8LCrI6gtWvXWh0BqFYpKSlWR5AkZWRkWB1Bkn2eK999991WR1BWVpbVEVBL2OFvw+joaKsjSLLPczLgYnDGHwAAAAAAAOBADP4AAAAAAAAAB2LwBwAAAAAAADgQgz8AAAAAAADAgRj8AQAAAAAAAA7E4A8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAciMEfAAAAAAAA4EAM/gAAAAAAAAAHYvAHAAAAAAAAOBCDPwAAAAAAAMCBGPwBAAAAAAAADuT14O/IkSMaMWKEGjdurHr16qlbt27avXu3P7IBgG3RhQBQgD4EALoQgH0FebPyyZMn1bdvX8XHx2vDhg1q1qyZvvjiC4WHh/spHgDYD10IAAXoQwCgCwHYm1eDvyeeeEJRUVFasmRJ0bKYmJhyt8nNzVVubm7Rxzk5Od4lBACboQsBoAB9CAB0IQB78+qlvuvWrVPPnj112223qVmzZurevbsWLVpU7jbJyckKCwsrukVFRV1UYACwGl0IAAXoQwCgCwHYm1eDvy+//FILFy7UZZddpk2bNmn8+PGaPHmyXnrppTK3mTFjhrKzs4tumZmZFx0aAKxEFwJAAfoQAOhCAPbm1Ut98/Pz1bNnTz3++OOSpO7du2vfvn1auHChRo4cWeo2brdbbrf74pMCgE3QhQBQgD4EALoQgL15dcZfy5Yt1alTJ49lHTt21OHDh30aCgDsjC4EgAL0IQDQhQDszavBX9++ffXJJ594LPv0008VHR3t01AAYGd0IQAUoA8BgC4EYG9eDf4eeOABbd++XY8//rg+//xzvfzyy3r++eeVmJjor3wAYDt0IQAUoA8BgC4EYG9eDf569eql119/XStXrlTnzp01d+5cpaSkaPjw4f7KBwC2QxcCQAH6EADoQgD25tWbe0jS0KFDNXToUH9kAYAagy4EgAL0IQDQhQDsy6sz/gAAAAAAAADUDAz+AAAAAAAAAAdi8AcAAAAAAAA4EIM/AAAAAAAAwIEY/AEAAAAAAAAOxOAPAAAAAAAAcCAGfwAAAAAAAIADMfgDAAAAAAAAHIjBHwAAAAAAAOBAQVYHAM6XlpZmdQQAFrj55putjiBJSk1NtTqCJOnQoUNWR5AkpaSkWB1BSUlJVkcAaqWpU6daHUGSFB0dbXUESfbo5SlTplgdAbVEeHi41RGUnZ1tdQRJUkZGhtURgIvGGX8AAAAAAACAAzH4AwAAAAAAAByIwR8AAAAAAADgQAz+AAAAAAAAAAdi8AcAAAAAAAA4EIM/AAAAAAAAwIEY/AEAAAAAAAAOxOAPAAAAAAAAcCAGfwAAAAAAAIADMfgDAAAAAAAAHIjBHwAAAAAAAOBADP4AAAAAAAAAB2LwBwAAAAAAADiQV4O/mJgYBQQElLglJib6Kx8A2BJ9CAB0IQAUog8B2FWQNyvv3LlTeXl5RR//97//1aBBg3Tbbbf5PBgA2Bl9CAB0IQAUog8B2JVXg7+mTZt6fDx//ny1adNGAwYMKHOb3Nxc5ebmFn2ck5PjZUQAsB9v+5AuBOBEPDcEgAI8NwRgV1W+xt9PP/2k5cuXa8yYMQoICChzveTkZIWFhRXdoqKiqrpLALClyvQhXQjA6XhuCAAFeG4IwE6qPPhLTU1VVlaW7r777nLXmzFjhrKzs4tumZmZVd0lANhSZfqQLgTgdDw3BIACPDcEYCdevdT3fIsXL1ZCQoIiIiLKXc/tdsvtdld1NwBge5XpQ7oQgNPx3BAACvDcEICdVGnwd+jQIb399ttas2aNr/MAQI1CHwIAXQgAhehDAHZTpZf6LlmyRM2aNdONN97o6zwAUKPQhwBAFwJAIfoQgN14PfjLz8/XkiVLNGrUKAUFVfmVwgBQ49GHAEAXAkAh+hCAHXk9+Hv77bd1+PBhjRkzxh95AKDGoA8BgC4EgEL0IQA78vrfEIMHD5Yxxh9ZAKBGoQ8BgC4EgEL0IQA7qtI1/gAAAAAAAADYG4M/AAAAAAAAwIEY/AEAAAAAAAAOxOAPAAAAAAAAcCAGfwAAAAAAAIADMfgDAAAAAAAAHIjBHwAAAAAAAOBADP4AAAAAAAAABwqq7h0aY6p7l6iEM2fOWB0BKJfTusNpj+di/fzzz1ZHkCTl5ORYHUGSdOrUKasjSJLOnj1rdQSUwmn94bTHc7Hs8nNnlx6il4vZ5XelXTitO+z0ePLz862OYJuffTt9XYCyVPR9GmCq+Tv5q6++UlRUVHXuEoADZGZmKjIy0uoYPkMXAqgq+hAA6EIAKFRRH1b74C8/P19Hjx5VgwYNFBAQ4PX2OTk5ioqKUmZmpho2bOiHhDULx6MYx8KTU46HMUanTp1SRESEAgOdc3WCi+1CyTlfY1/gWHjieBRz0rGgD0vnpK+xL3A8inEsPDnleNCFZXPK19gXOBaeOB7FnHQsKtuH1f5S38DAQJ/8Z6Zhw4Y1/ovkSxyPYhwLT044HmFhYVZH8DlfdaHkjK+xr3AsPHE8ijnlWNCHZXPK19hXOB7FOBaenHA86MLyOeFr7CscC08cj2JOORaV6UPn/IsEAAAAAAAAQBEGfwAAAAAAAIAD1bjBn9vt1mOPPSa32211FFvgeBTjWHjieDgfX+NiHAtPHI9iHAvn42vsieNRjGPhiePhfHyNi3EsPHE8itXGY1Htb+4BAAAAAAAAwP9q3Bl/AAAAAAAAACrG4A8AAAAAAABwIAZ/AAAAAAAAgAMx+AMAAAAAAAAciMEfAAAAAAAA4EA1bvC3YMECxcbGKiQkRD169ND7779vdaRql5ycrF69eqlBgwZq1qyZbrnlFn3yySdWx7KF5ORkBQQEaOrUqVZHscyRI0c0YsQINW7cWPXq1VO3bt20e/duq2PBx+jCAvRh2ehD+rC2oA/pwvLQhXRhbUEXFqAPy0Yf1t4+rFGDv9WrV2vq1KmaOXOm9uzZo2uuuUYJCQk6fPiw1dGqVXp6uhITE7V9+3Zt3rxZ586d0+DBg3XmzBmro1lq586dev7559W1a1ero1jm5MmT6tu3r1wulzZs2KD9+/fr6aefVnh4uNXR4EN0YTH6sHT0IX1YW9CHBejC0tGFdGFtQRcWow9LRx/W8j40NchVV11lxo8f77GsQ4cO5ve//71FiezhxIkTRpJJT0+3OoplTp06ZS677DKzefNmM2DAADNlyhSrI1li+vTppl+/flbHgJ/RhWWjD+nDQvRh7UAflo4upAsL0YW1A11YNvqQPixUm/uwxpzx99NPP2n37t0aPHiwx/LBgwfrgw8+sCiVPWRnZ0uSGjVqZHES6yQmJurGG2/UddddZ3UUS61bt049e/bUbbfdpmbNmql79+5atGiR1bHgQ3Rh+ehD+rAQfeh89GHZ6EK6sBBd6Hx0YfnoQ/qwUG3uwxoz+Pv222+Vl5en5s2beyxv3ry5jh07ZlEq6xljNG3aNPXr10+dO3e2Oo4lVq1apQ8//FDJyclWR7Hcl19+qYULF+qyyy7Tpk2bNH78eE2ePFkvvfSS1dHgI3Rh2ehD+vB89KHz0YelowvpwvPRhc5HF5aNPqQPz1eb+zDI6gDeCggI8PjYGFNiWW0yceJEffTRR/rXv/5ldRRLZGZmasqUKXrrrbcUEhJidRzL5efnq2fPnnr88cclSd27d9e+ffu0cOFCjRw50uJ08CW6sCT6kD48H31Ye9CHnuhCuvB8dGHtQReWRB/Sh+erzX1YY874a9KkierUqVPivxYnTpwo8d+N2mLSpElat26d3nvvPUVGRlodxxK7d+/WiRMn1KNHDwUFBSkoKEjp6el65plnFBQUpLy8PKsjVquWLVuqU6dOHss6duxYKy/s61R0YenoQ/rwQvSh89GHJdGFdOGF6ELnowtLRx/ShxeqzX1YYwZ/wcHB6tGjhzZv3uyxfPPmzerTp49FqaxhjNHEiRO1Zs0avfvuu4qNjbU6kmWuvfZaffzxx9q7d2/RrWfPnho+fLj27t2rOnXqWB2xWvXt27fE29V/+umnio6OtigRfI0u9EQfFqMPPdGHzkcfFqMLi9GFnuhC56MLPdGHxehDT7W6D615T5GqWbVqlXG5XGbx4sVm//79ZurUqSY0NNRkZGRYHa1a3X///SYsLMykpaWZr7/+uuj2ww8/WB3NFmrzOxX9+9//NkFBQWbevHnms88+MytWrDD16tUzy5cvtzoafIguLEYflo8+pA+djj4sQBeWjy6kC52OLixGH5aPPqydfVijBn/GGPPss8+a6OhoExwcbK688spa+bbckkq9LVmyxOpotlCby8wYY/75z3+azp07G7fbbTp06GCef/55qyPBD+jCAvRh+ehD+rA2oA/pworQhXRhbUAXFqAPy0cf1s4+DDDGmOo7vxAAAAAAAABAdagx1/gDAAAAAAAAUHkM/gAAAAAAAAAHYvAHAAAAAAAAOBCDPwAAAAAAAMCBGPwBAAAAAAAADsTgDwAAAAAAAHAgBn8AAAAAAACAAzH4AwAAAAAAAByIwR8AAAAAAADgQAz+AAAAAAAAAAdi8AcAAAAAAAA4EIM/AAAAAAAAwIEY/AEAAAAAAAAOxOAPAAAAAAAAcCAGf15aunSpAgICtGvXLp/cX0BAgCZOnOiT+zr/PpOSkipcLyYmRgEBASVu48eP92mejIwMj/sPDAxU48aNNWTIEG3bts2n+yrL3XffrZiYGI9llT1O5zt69KiSkpK0d+/eEp9LSkpSQEBA1UNWUU5OjubNm6e4uDi1aNFC9evXV5cuXfTEE0/o7Nmz1Z4HtYeT+vDUqVOaPHmyWrVqJbfbrXbt2unJJ59UXl6eT/PQh/4XFxdX6u+2G264wZI8cD660Ht0of/l5ubqj3/8ozp37qzQ0FA1b95cCQkJ+uCDDyzJg9rBSX3I38rO6cOffvpJs2bNUmxsrIKDgxUdHa0ZM2boxx9/tCSPFYKsDgBr9e3bV0899ZTHsubNm/tlX5MmTdKdd96pvLw87du3T7Nnz1Z8fLy2bdum7t27+2Wf5dm2bZsiIyO92ubo0aOaPXu2YmJi1K1bN4/PjR071pI/LA8fPqyUlBTdddddmjZtmurXr6/3339fSUlJ2rx5szZv3mxZyQI1wblz5zRo0CB9+umnmjt3rtq1a6eNGzfq97//vb766is988wzPt8nfehfl156qVasWOGxLDw83JowQA1BFzqrC8eNG6cVK1ZoxowZGjhwoL7//nvNnz9fAwYM0NatW3XVVVdZkguoSfhb2Rl9eMcdd2j9+vWaNWuWevXqpW3btukPf/iD9u3bp3Xr1lmSqbox+KvlwsPDdfXVV1fLvlq3bl20r759+6pt27a69tprtWDBAi1atKjUbX788UeFhIT4ZXDl68cdGRnpdTn6QmxsrDIyMhQaGlq0bODAgQoNDdVDDz2krVu3ql+/ftWeC6gpXn31Ve3YsUOvvfaafvWrX0mSBg0apNOnT+vZZ59VYmKi2rdv79N90of+Vbdu3Wr73QY4BV3onC7Mzc3Vyy+/rDvvvFN/+MMfipb37dtXERERWrFiBYM/oBL4W9l3rOrD7du3a82aNXr66ac1bdo0SdJ1112noKAgPfzww9q8ebMGDRpU7bmqGy/19YOzZ8/qd7/7nbp166awsDA1atRIvXv31tq1a8vc5rnnnlO7du3kdrvVqVMnrVq1qsQ6x44d03333afIyEgFBwcrNjZWs2fP1rlz5/z5cPymsEwOHTokqfjU8LfeektjxoxR06ZNVa9ePeXm5kqSVq9erd69eys0NFT169fX9ddfrz179pS436VLl6p9+/Zyu93q2LGjXnrppVL3X9rpy0eOHNG9996rqKgoBQcHKyIiQsOGDdPx48eVlpamXr16SZJGjx5ddDp24X2Udvpyfn6+nnzySXXo0EFut1vNmjXTyJEj9dVXX3msFxcXp86dO2vnzp265pprVK9ePV166aWaP3++8vPzyz2OoaGhHkO/QoVP6DIzM8vdHvCnmtCHW7duVUBAgBISEjyWDx06VPn5+Xr99de9vk9v0YfFLqYPAbuiCyuHLix2MV0YGBiowMBAhYWFeSxv2LChAgMDFRISUu72gD/VhD60A/qw2MX04datWyVJQ4YM8Vg+dOhQSdJrr71W7vZOweDPD3Jzc/X999/rwQcfVGpqqlauXKl+/frpV7/6Vak/WOvWrdMzzzyjOXPm6NVXX1V0dLTuuOMOvfrqq0XrHDt2TFdddZU2bdqkWbNmacOGDbrnnnuUnJyscePGVTnrli1b1KBBA7lcLnXq1ElPP/10pa/jUngdpar6/PPPJUlNmzb1WD5mzBi5XC4tW7ZMr776qlwulx5//HHdcccd6tSpk/7xj39o2bJlOnXqlK655hrt37+/aNulS5dq9OjR6tixo1577TU98sgjmjt3rt59990K8xw5ckS9evXS66+/rmnTpmnDhg1KSUlRWFiYTp48qSuvvFJLliyRJD3yyCPatm2btm3bprFjx5Z5n/fff7+mT5+uQYMGad26dZo7d642btyoPn366Ntvv/VY99ixYxo+fLhGjBihdevWKSEhQTNmzNDy5csrfUzPV/iYL7/88iptD/hCTejDn376SYGBgXK5XB7L3W63JOmjjz6q8D7oQ3v14RdffKFGjRopKChIbdq00cyZM2vVdVxgP3Rh5dCFvulCl8ulCRMm6MUXX1RqaqpycnKUkZGhcePGKSws7KL+dgAuVk3ow0L8rVyspvbhTz/9JKn4d1khb363OYKBV5YsWWIkmZ07d1Z6m3Pnzpmff/7Z3HPPPaZ79+4en5Nk6tata44dO+axfocOHUzbtm2Llt13332mfv365tChQx7bP/XUU0aS2bdvn8d9PvbYYxXmmjBhgnnhhRdMenq6SU1NNcOHDzeSzIgRIyr1uAYOHGjq1KlT4XoHDx40kswTTzxhfv75Z3P27Fmze/du06tXLyPJvPnmm8aY4mM7cuRIj+0PHz5sgoKCzKRJkzyWnzp1yrRo0cLcfvvtxhhj8vLyTEREhLnyyitNfn5+0XoZGRnG5XKZ6Ohoj+0vPE5jxowxLpfL7N+/v8zHsnPnTiPJLFmypMTnHnvsMXP+j9SBAweMJDNhwgSP9Xbs2GEkmYcffrho2YABA4wks2PHDo91O3XqZK6//voy85TlP//5j6lbt6659dZbvd4WqCyn9GFKSoqRZN5//32P5Y8++qiRZAYPHlzh46IPPVnZhzNnzjQLFiww7777rnnzzTfNxIkTTVBQkOnfv7/Jy8urcHvAW3RhMbrQk5VdmJ+fb2bNmmUCAwONJCPJtG7d2uzZs6fCbYGqckofGsPfyk7pw9TUVCPJLFu2zGP54sWLjSTTrl27crd3CgZ/Xqpsmf3jH/8wffr0MaGhoUW/bCWZkJAQj/UkmaFDh5bYvvAHIzMz0xhjTKtWrcxNN91kfv75Z4/bvn37jCSzYMECj/usTJmVZuLEiUaS+fDDD6u0fWkKy+zCW/Pmzc1zzz1XtF7hsV27dq3H9osWLSo65hc+/t/85jemWbNmxhhj9u/fbySZp556qkSGAQMGVFhmLVu2rPBJrTdltmDBAiPJ/Pvf/y6xbseOHc0vfvELj3wtWrQosd5vf/tb06FDh3IzXejgwYMmKirKtGvXznz33XdebQt4wyl9+M0335hGjRqZjh07mu3bt5uTJ0+al19+2YSFhRlJ5oYbbqjkEakYfVi9fVio8In/mjVrqrQ9UB660Ht0of+7cO7cuaZevXpmzpw55r333jNr1641gwYNMk2aNPHp83zgfE7pw7Lwt3LN68Pc3FzTtm1bExERYd566y1z8uRJs2HDBtO8eXNTp06dKj+3rGl4qa8frFmzRrfffrtatWql5cuXa9u2bdq5c6fGjBmjs2fPlli/RYsWZS777rvvJEnHjx/XP//5T7lcLo9b4cs4LzwVtqpGjBghqeAimL42ZcoU7dy5U7t379YXX3yhr7/+Wvfee2+J9Vq2bOnx8fHjxyVJvXr1KvH4V69eXfTYC49VecezPN98841PLzhamOfCxyNJERERRZ8v1Lhx4xLrud1ur16edujQIcXHxysoKEjvvPOOGjVq5GVqwLdqQh82adJEGzdulFRwPZVLLrlEkyZN0p/+9CdJUqtWrby6v8qgD4v5qw/P58/fbUBl0IWlowuL+bILDxw4oFmzZmn27Nl69NFHFRcXp1/+8pd68803FR4eXnSBe8AKNaEPy8LfyjWvD4ODg7Vhwwa1bt1agwcP1iWXXKJhw4bp4Ycf1iWXXOKX3212xLv6+sHy5csVGxur1atXe7yuv/DCmxc6duxYmcsKv8GbNGmirl27at68eaXeR0RExMXGliQZYyQVXBTY1yIjI9WzZ88K17vwWghNmjSRpKJrOpSl8FiVdzzL07Rp0xIXEr0YhXm+/vrrEiV59OjRosflK4cOHVJcXJyMMUpLS7P0HTWBQjWlD3v16qX9+/crIyNDZ86c0WWXXabdu3dLkvr37+/1/VWEPizmjz4siz9+twGVQReWji4s5ssu/M9//iNjTNGF9gu5XC5dccUVSk9P98l+gKqoKX1YGv5Wrnl9KElt27bVtm3bdOTIEX3//fdq06aNsrOzNWXKFL/8brMjBn9+EBAQoODgYI8fymPHjpX5TkXvvPOOjh8/rubNm0uS8vLytHr1arVp06boh2Do0KFav3692rRpo0suucRv2QsvqFpdb1teGddff72CgoL0xRdf6Ne//nWZ67Vv314tW7bUypUrNW3atKLjf+jQIX3wwQcVFn5CQoKWLVumTz75RO3bty91ncKLgFbmrJOBAwdKKvjldv4Tr507d+rAgQOaOXNmhfdRWYcPH1ZcXJzy8vKUlpZWbukD1amm9WFMTIykgid2Tz/9tCIiInTbbbf5dB8Xgz6smhdffFGSvX63oXahC32LLixf4ePavn27BgwYULQ8NzdXH374If8chqVqWh+ej7+Va14fnq9Vq1ZFZ/g98sgjCg0N1T333OPz/dgRg78qevfdd5WRkVFi+ZAhQzR06FCtWbNGEyZM0LBhw5SZmam5c+eqZcuW+uyzz0ps06RJEw0cOFCPPvqoQkNDtWDBAv3vf//zeJvyOXPmaPPmzerTp48mT56s9u3b6+zZs8rIyND69ev1t7/9zatf4i+//LLWrFmjG2+8UdHR0crKytIrr7yiVatW6e6779YVV1xR4X3ExcUpPT296D8f/hITE6M5c+Zo5syZ+vLLL3XDDTfokksu0fHjx/Xvf/9boaGhmj17tgIDAzV37lyNHTtWt956q8aNG6esrCwlJSVV6vTlOXPmaMOGDerfv78efvhhdenSRVlZWdq4caOmTZumDh06qE2bNqpbt65WrFihjh07qn79+oqIiCi1KNu3b697771Xf/nLXxQYGKiEhARlZGTo0UcfVVRUlB544AGfHJ8TJ04oPj5eX3/9tRYvXqwTJ07oxIkTRZ+PjIzkCR78qqb3oSTNnDlTXbp0UcuWLXX48GG98MIL2rFjh958803V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tG7dOiUkJGjGjBlavnx5ubl3796tM2fO6LLLLtP999+vSy65RMHBwerZs6fefPPNCh834E81oQ9/+uknBQYGyuVyeSx3u92SpI8++qjC+6AP7dGHLpdLEyZM0IsvvqjU1FTl5OQoIyND48aNU1hY2EX9vgQuRk3owvOdO3dOZ86c0datW/Xoo4+qX79+6tu3b4Xb0YX26MKyFD7myy+/vErbA75Qk/pw8uTJio2NrdJ1BulDe/Qhzw3/HwOvLFmyxEgyO3furPQ2586dMz///LO55557TPfu3T0+J8nUrVvXHDt2zGP9Dh06mLZt2xYtu++++0z9+vXNoUOHPLZ/6qmnjCSzb98+j/t87LHHKsw1YcIE88ILL5j09HSTmppqhg8fbiSZESNGVOpxDRw40NSpU6fC9Q4ePGgkmSeeeML8/PPP5uzZs2b37t2mV69eRpJ58803jTHFx3bkyJEe2x8+fNgEBQWZSZMmeSw/deqUadGihbn99tuNMcbk5eWZiIgIc+WVV5r8/Pyi9TIyMozL5TLR0dEe2194nMaMGWNcLpfZv39/mY9l586dRpJZsmRJic899thj5vwfqQMHDhhJZsKECR7r7dixw0gyDz/8cNGyAQMGGElmx44dHut26tTJXH/99WXmMcaYlStXGkmmYcOGpm/fvmbdunXmjTfeMPHx8SYgIMBs3Lix3O2BqnJKH6akpBhJ5v333/dY/uijjxpJZvDgwRU+LvrQk1V9aIwx+fn5ZtasWSYwMNBIMpJM69atzZ49eyrcFqgKp3RhoW3bthX97EgyQ4YMMTk5OZXali70ZGUXXug///mPqVu3rrn11lu93haoLCf14RtvvGFcLpf5+OOPjTHGvPfee0aSeeWVVyr1uOhDTzw3tBZn/PnJK6+8or59+6p+/foKCgqSy+XS4sWLdeDAgRLrXnvttR5vqFGnTh395je/0eeff150musbb7yh+Ph4RURE6Ny5c0W3wpempaene53x2Wef1ejRo9W/f3/dfPPNWr58uSZOnKjly5eXelrwhd555x2vTp2ePn26XC6XQkJC1KNHDx0+fFjPPfechgwZ4rHer3/9a4+PN23apHPnzmnkyJEejz0kJEQDBgxQWlqaJOmTTz7R0aNHdeedd3r8dyU6Olp9+vSpMN+GDRsUHx+vjh07Vvoxlee9996TVPAuSee7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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "misclassified = []\n", "\n", "for i in range(N_test):\n", " pred = softmax(np.dot(W, X_test[i, :]) + b).argmax()\n", " if pred != t_test[i, :].argmax():\n", " misclassified.append([X_test[i, :].reshape((8, 8)), t_test[i, :].argmax(), pred])\n", " if len(misclassified) > 12: break\n", " \n", " \n", "plt.figure(figsize=(16, 12))\n", "for i in range(12):\n", " if i < len(misclassified):\n", " X, t, pred = misclassified[i]\n", " plt.subplot(3, 4, i+1)\n", " plt.imshow(X, cmap=\"gray\")\n", " plt.title(\"Label \" + str(t) + \" ; Prediction \" + str(pred))\n", " \n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**A:** For some misclassified images, the mistakes are quite understandable, so the classifier did a quite good job. Real-world data are never clean, there always are some bad annotations. It is therefore important to use methods that are robust to outliers, such as soft classifiers." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.9.13 ('base')", "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.9.13" }, "vscode": { "interpreter": { "hash": "3d24234067c217f49dc985cbc60012ce72928059d528f330ba9cb23ce737906d" } } }, "nbformat": 4, "nbformat_minor": 4 }