{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

Neural Networks Demystified

\n", "

Part 7: Overfitting, Testing, and Regularization

\n", "\n", "\n", "

@stephencwelch

" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo('S4ZUwgesjS8')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Last time, we trained our Neural Network, and it made suspiciously good predictions of your test score based on how many hours you slept, and how many hours you studied the night before. Before we celebrate and begin changing our sleep and study habits, we need some way to ensure that our model reflects the real world. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To do this, let’s first spend some time thinking about data. Like a lot of data, our input and output values come from real world observations. The assumption here is that there is some underlying process, and our observations give us insight into the process - BUT our observations are not the same thing as the process, they are just a sample." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our observation says that when we sleep for 3 hours and study for 5 hours, the grade we earned was a 75. But does this mean that every time you sleep for 3 hours and study for 5 hours you will earn a 75? Of course not, because there are other variables that matter here, such as the difficulty of test, or whether you’ve been paying attention in lectures – we could quantify these variables to build a better model, but even if we did, there would still an element of uncertainty that we could never explicitly model – for example, maybe the test was multiple choice, and you guessed on a few problems. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One way to think about this problem is that observations are composed of signal and noise. Nate Silver, the guy who correctly predicted the US election results for 50 out of 50 US states in 2012, wrote a great book on exactly this. The idea is that we’re interested in an underlying process, the signal, but in real data, our signal will always be obscured by some level of noise. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An interesting example of this shows up when comparing the SAT scores of students who take the SAT both Junior and Senior year. Right on the college board’s website it says: “The higher a student's scores as a junior, the more likely that student's subsequent scores will drop”. Why would this be? It seems like students who did well junior year would also do well senior year. We can make sense of this by considering that SAT scores are composed of a signal and a noise component – the signal being the underlying aptitude of the student, and the noise being other factors that effect test scores, basically if the student had a good day or not. Of the students who did well the first time, we expect a disproportionate number to have had a good day – and since having a good day is random, when these students have a regular or bad test day on their next test, their scores will go down. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So if we can convince our model to fit the signal and not the noise, we should be able to avoid overfitting. First, we’ll work on diagnosing overfitting, then we’ll work on fixing it. Last time we showed our model predictions across the input space for various combinations of hours sleeping and hours studying. We’ll add a couple more data points to make overfitting a bit more obvious and retrain our model on the new dataset. If we re-examine our predictions across our sample space, we begin to see some strange behavior. Neural networks are really powerful learning models, and we see here that all that power has been used to fit our data really closely – which creates a problem - our model is no longer reflective of the real world. According to our model, in some cases, studying more will actually push our score down, this seems unlikely - hopefully studying more will not decrease your score. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "from partSix import *" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "NN = Neural_Network()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# X = (hours sleeping, hours studying), y = Score on test\n", "X = np.array(([3,5], [5,1], [10,2], [6,1.5]), dtype=float)\n", "y = np.array(([75], [82], [93], [70]), dtype=float)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Test Score')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Plot projections of our new data:\n", "fig = figure(0,(8,3))\n", "\n", "subplot(1,2,1)\n", "scatter(X[:,0], y)\n", "grid(1)\n", "xlabel('Hours Sleeping')\n", "ylabel('Test Score')\n", "\n", "subplot(1,2,2)\n", "scatter(X[:,1], y)\n", "grid(1)\n", "xlabel('Hours Studying')\n", "ylabel('Test Score')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "#Normalize\n", "X = X/np.amax(X, axis=0)\n", "y = y/100 #Max test score is 100" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.000000\n", " Iterations: 190\n", " Function evaluations: 212\n", " Gradient evaluations: 212\n" ] } ], "source": [ "#Train network with new data:\n", "T = trainer(NN)\n", "T.train(X,y)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Cost')" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nO3de5hddX3v8fd379lzz8xkMsmQy5AEScQIhlwMKKiDtkpQG7WKYBWL9qScQo/2ZqH2ep6ep/bYelosJaaVWiqFqkhNBUWlDCrXEEzCJUSGS8yQkJALk8wtc9nf88daM1kz2ZPMbc1amfm8nmc/s/e67P1hJcwnv7X2WsvcHRERkaEySQcQEZF0UkGIiEhBKggRESlIBSEiIgWpIEREpKCipANMpLq6Ol+0aNGY1m1vb6eiomJiA00g5Ru/tGdUvvFJez5IZ8YtW7YccPfZBWe6+5R5rFq1ysfq/vvvH/O6k0H5xi/tGZVvfNKezz2dGYHHfZjfqdrFJCIiBakgRESkIBWEiIgUpIIQEZGCVBAiIlKQCkJERAqKtSDM7FIz22lmzWZ2fYH5ZmY3hvO3m9nKyLyXzOxJM9tqZo/HmVNERE4U24lyZpYFbgJ+GWgBNpvZJnd/JrLYWmBJ+LgAuDn82e8Sdz8QV8Z+N973HHaol8a4P0hE5DQS5whiDdDs7i+4ezdwB7BuyDLrgFvD8zUeAWrMbG6MmQr6ygPP89TBvsn+WBGRVIvzUhvzgd2R1y0MHh0Mt8x8YC/gwA/MzIGvuPvGQh9iZuuB9QD19fU0NTWNOmjG++jo8jGtO1na2tqUb5zSnlH5xift+eD0yBgVZ0FYgWlDb193smUucvc9ZjYH+KGZPevuPz5h4aA4NgKsXr3aGxsbRx208uH7INvLWNadLE1NTco3TmnPqHzjk/Z8cHpkjIpzF1ML0BB5vQDYM9Jl3L3/537gLoJdVrEozWXpyevWqyIiUXEWxGZgiZktNrNi4Apg05BlNgFXhd9muhBodfe9ZlZhZjMAzKwCeDfwVFxBS4oydOsQhIjIILHtYnL3XjO7DrgXyAK3uPvTZnZNOH8DcA9wGdAMdABXh6vXA3eZWX/Gf3f378eVtSSXpaczrncXETk9xXo/CHe/h6AEotM2RJ47cG2B9V4AlseZLaqkKENrn3YxiYhE6UxqgoLoySedQkQkXVQQ9B+kTjqFiEi6qCAIRxDaxSQiMogKAigp0ghCRGQoFQRQmsvQrfMgREQGUUEQjiB0HoSIyCAqCIIRhHYxiYgMpoIgGEH0OfRpN5OIyAAVBFCSCzbDsV7tZxIR6aeCAEqLwoLQfiYRkQEqCIJrMQF0aQQhIjJABUFwkBo0ghARiVJBEBykBo0gRESiVBAEl9oAjSBERKJUEAQX6wM41quCEBHpp4Lg+AiiS6dTi4gMUEGgEYSISCEqCCLHIHSQWkRkgAqCyLeYdJBaRGSACoLIeRAaQYiIDFBBoBGEiEghKgh0sT4RkUJUEOhEORGRQlQQgJlRlNGlNkREolQQoeKMRhAiIlEqiFAuazpRTkQkQgURCkYQ2sUkItJPBRHKZXSpDRGRKBVEKJc1XaxPRCRCBRHSCEJEZDAVRCgoCI0gRET6xVoQZnapme00s2Yzu77AfDOzG8P5281s5ZD5WTP7mZl9N86cAMVZ06U2REQiYisIM8sCNwFrgWXAlWa2bMhia4El4WM9cPOQ+Z8BdsSVMUojCBGRweIcQawBmt39BXfvBu4A1g1ZZh1wqwceAWrMbC6AmS0A3gv8c4wZB+QyulifiEhUUYzvPR/YHXndAlwwgmXmA3uBvwM+B8w42YeY2XqC0Qf19fU0NTWNKazleznSnh/z+nFra2tLbTZIfz5If0blG5+054PTI2NUnAVhBab5SJYxs/cB+919i5k1nuxD3H0jsBFg9erV3th40sWH9W/P3AtZY6zrx62pqSm12SD9+SD9GZVvfNKeD06PjFFx7mJqARoirxcAe0a4zEXAr5jZSwS7pt5pZl+PL2r/QWodgxAR6RdnQWwGlpjZYjMrBq4ANg1ZZhNwVfhtpguBVnff6+43uPsCd18Urvff7v7xGLMOnAfhPnSQIyIyPcW2i8nde83sOuBeIAvc4u5Pm9k14fwNwD3AZUAz0AFcHVeeU8llwB16+pziokJ7vkREppc4j0Hg7vcQlEB02obIcweuPcV7NAFNMcQbpDgblEJXbx/FRTp/UEREvwlD4V1HdU8IEZGQCiLUXxA6UC0iElBBhAZ2MakgREQAFcSA8vBozJGu3mSDiIikhAoiVJ4LRhBHunoSTiIikg4qiFB5+NXWI50qCBERUEEMOD6C0C4mERFQQQwo6z8GoRGEiAigghhQnDVKijIqCBGRkAoioqosp4PUIiIhFUREVWkRRzp1DEJEBFQQg2gEISJynAoiorosp2MQIiIhFUREVWlOX3MVEQmpICKqyopo1QhCRARQQQxSVRrsYtJd5UREVBCDVJXl6M07nbqiq4iICiKqqjQHoK+6ioigghikKrzehr7qKiKighjk+AhCBSEiooKIqCoLC0IjCBERFURUVWm4i0nHIEREVBBR/SMInQshIqKCGETHIEREjlNBRBQXZSjLZXUMQkQEFcQJqsp0yW8REVBBnCC4YJ9GECIiKoghqspyOkgtIoIK4gSzK0vYd6Qr6RgiIolTQQzRUFtGy+FO8nld0VVEprdYC8LMLjWznWbWbGbXF5hvZnZjOH+7ma0Mp5ea2WNmts3Mnjazv4gzZ1RDbTnHevO82nZssj5SRCSVYisIM8sCNwFrgWXAlWa2bMhia4El4WM9cHM4/RjwTndfDpwPXGpmF8aVNaqhthyA3Yc6JuPjRERSK84RxBqg2d1fcPdu4A5g3ZBl1gG3euARoMbM5oav28JlcuFjUvb5NMwMC+KwCkJEpreiGN97PrA78roFuGAEy8wH9oYjkC3A2cBN7v5ooQ8xs/UEow/q6+tpamoaU9i2tjaampro7gt66MdbnmFma/OY3isO/fnSKu35IP0ZlW980p4PTo+MUXEWhBWYNnQUMOwy7t4HnG9mNcBdZnauuz91wsLuG4GNAKtXr/bGxsYxhW1qaqJ/3fpHf0S2ejaNjcvH9F5xiOZLo7Tng/RnVL7xSXs+OD0yRsW5i6kFaIi8XgDsGe0y7v4a0ARcOvERC2uYWa5jECIy7cVZEJuBJWa22MyKgSuATUOW2QRcFX6b6UKg1d33mtnscOSAmZUBvwQ8G2PWQc6sLaflcOdkfZyISCrFtovJ3XvN7DrgXiAL3OLuT5vZNeH8DcA9wGVAM9ABXB2uPhf41/A4RAb4hrt/N66sQy2oLeeurS/T3ZunuEiniojI9BTnMQjc/R6CEohO2xB57sC1BdbbDqyIM9vJNMwswx32vNbJorqKpGKIiCRK/zwu4MxafdVVREQFUUD/qKF5f9splhQRmbpUEAXUV5VyRlUpW3e/lnQUEZHEqCCGsXJhDU/84nDSMUREEqOCGMaKhpnsPtTJq0d10T4RmZ5GVBBm9m8jmTaVrDizBkC7mURk2hrpCOKN0Rfh+QmrJj5Oepw7v5qijPEz7WYSkWnqpAVhZjeY2VHgTWZ2JHwcBfYD35mUhAkpzWVZNq9KxyFEZNo6aUG4+1+5+wzgi+5eFT5muPssd79hkjImZkVDDdt2t9Ldm086iojIpBvpLqbvmlkFgJl93My+ZGYLY8yVCm9bMpvOnj4effFg0lFERCbdSAviZqDDzJYDnwN2AbfGliolLjq7jtJchvt27E86iojIpBtpQfSG101aB/y9u/89MCO+WOlQVpzl4rPr+OEz+wj+80VEpo+RFsRRM7sB+ARwd/gtplx8sdLjXW+o5+XXOtm572jSUUREJtVIC+KjwDHgU+7+CsFtQb8YW6oUedc5cwD40TP7Ek4iIjK5RlQQYSncBlSb2fuALnef8scgAOZUlbLizBq+99QrSUcREZlUIz2T+nLgMeAjwOXAo2b24TiDpcl7z5vL03uO8NKB9qSjiIhMmpHuYvo88GZ3/6S7XwWsAf4kvljpsva8uQDc/eTehJOIiEyekRZExt2j3/U8OIp1T3vza8pYeWYNd29XQYjI9DHSX/LfN7N7zezXzezXgbsZcivRqe6y8+byzN4jvKjdTCIyTZzqWkxnm9lF7v4HwFeANwHLgYeBjZOQLzXe88YzALj/WZ00JyLTw6lGEH8HHAVw92+7+++6++8QjB7+Lu5wadJQW85Zsyto+vmrSUcREZkUpyqIRe6+fehEd38cWBRLohRrXDqHR144SGd3X9JRRERid6qCKD3JvLKJDHI6aHz9bLp78zz8woGko4iIxO5UBbHZzP7H0Ilm9mlgSzyR0mvN4lrKclmadmo3k4hMfUWnmP9Z4C4z+zWOF8JqoBj4YJzB0qg0l+WCs2p5+Hld/ltEpr6TFoS77wPeamaXAOeGk+929/+OPVlKLZtbxU+fO0BPX55cdtqcCiIi09CpRhAAuPv9wP0xZzktnD2nkt68s+tgO2fPmfJXPBeRaUz/BB6lJWEpNO9vSziJiEi8VBCj9Lo5FQA8t08FISJTmwpilMqLi5hfU0bzqyoIEZnaYi0IM7vUzHaaWbOZXV9gvpnZjeH87Wa2MpzeYGb3m9kOM3vazD4TZ87ROntOpUYQIjLlxVYQ4W1JbwLWAsuAK81s2ZDF1gJLwsd64OZwei/we+7+BuBC4NoC6yZmyZxKnn+1jb687lMtIlNXnCOINUCzu7/g7t3AHcC6IcusA271wCNAjZnNdfe97v4EgLsfBXYQ3OY0Fc6eU8mx3jwvH+5MOoqISGxG9DXXMZoP7I68bgEuGMEy84GBGy+Y2SJgBfBooQ8xs/UEow/q6+tpamoaU9i2trYRr3v0cHAtpm/f9xDnz4lzEx43mnxJSHs+SH9G5RuftOeD0yNjVJy/3azAtKH7ZE66jJlVAncCn3X3I4U+xN03El56fPXq1d7Y2DimsE1NTYx03Te1d/N/Hv0hM+a9jsaLF4/p80ZrNPmSkPZ8kP6Myjc+ac8Hp0fGqDh3MbUADZHXC4A9I13GzHIE5XCbu387xpyjVlOWoyhjHGw7lnQUEZHYxFkQm4ElZrbYzIqBK4BNQ5bZBFwVfpvpQqDV3feamQFfBXa4+5dizDgmmYwxs6KYg23dSUcREYlNbLuY3L3XzK4D7gWywC3u/rSZXRPO30Bw46HLgGagA7g6XP0i4BPAk2a2NZz2R+6emtuczqoo5mC7CkJEpq5Yj7CGv9DvGTJtQ+S5A9cWWO+nFD4+kRqzKos51K5dTCIydelM6jGqrSjRCEJEpjQVxBjNqijmkI5BiMgUpoIYo1kVxRw91suxXt2fWkSmJhXEGNVWFgNwSLuZRGSKUkGM0ayKEgB91VVEpiwVxBjN0ghCRKY4FcQY1VYEBXFQX3UVkSlKBTFGddrFJCJTnApijKrKiijKmHYxiciUpYIYIzNdj0lEpjYVxDjoekwiMpWpIMZhVmWxDlKLyJSlghiH2ooSHYMQkSlLBTEOuh6TiExlKohxqKsMrsfU0d2bdBQRkQmnghiHZfOqANi2uzXhJCIiE08FMQ4rz5wJwJZdhxJOIiIy8VQQ41BTXszS+koe33U46SgiIhNOBTFOqxbWsmXXYfJ5TzqKiMiEUkGM05sXzeRoVy8/33806SgiIhNKBTFOqxfWAvD4S9rNJCJTiwpinBpqyzijqpSvPfQSL7/WmXQcEZEJo4IYJzPjbz6ynH2tXaz7hwd58UB70pFERCaECmICXLykjjt/66305vP81m1P0NXTl3QkEZFxU0FMkKX1M/jS5cvZsfcIf3n3M0nHEREZNxXEBHrnOfX85tvP4uuP/IL/2rYn6TgiIuOigphgv/+e17PyzBpu+PaTPPT8Adx1foSInJ6Kkg4w1eSyGb78sZV84KYH+dg/Pcr8mjLm1ZQys7yYWZXF1FYUM6uihFmVxbxudiVL6ispKcomHVtE5AQqiBjMrynjgT9o5O7te2n6+ascbDvGroMdPPGL1zjc0U1f5KzrkqIM7zxnDh+/cCEXnV2XYGoRkcFUEDEpLy7iI6sb+MjqhkHT83mntbOHV9uO8dy+Nh578SB3P/kK33vqFd573lz+8gPnMrOiOKHUIiLHxXoMwswuNbOdZtZsZtcXmG9mdmM4f7uZrYzMu8XM9pvZU3FmnGyZjDGzopil9TN475vm8hfrzuXB6y/h9355KT98Zh+fuOVRWjt7ko4pIhJfQZhZFrgJWAssA640s2VDFlsLLAkf64GbI/O+BlwaV740KSnK8tvvWsJXPrGKna8c5dNf20xvXz7pWCIyzcU5glgDNLv7C+7eDdwBrBuyzDrgVg88AtSY2VwAd/8xMK1utHDJOXP44oeX8/iuw/zzT19MOo6ITHNxFsR8YHfkdUs4bbTLTCvrzp/Hu5fV8/9++HNdtkNEEhXnQWorMG3oSQEjWebkH2K2nmD3FPX19TQ1NY1m9QFtbW1jXneirZ2T5yc/z3PlPz7AH64pZWZpJlX5Ckl7Pkh/RuUbn7Tng9MjY1ScBdECRL/CswAYenrxSJY5KXffCGwEWL16tTc2No46KEBTUxNjXTcOC845xNX/spm/3Qafvnghxf4iv3TR2yjNpfOcibRtv0LSnlH5xift+eD0yBgVZ0FsBpaY2WLgZeAK4GNDltkEXGdmdwAXAK3uvjfGTKeNNy+q5eu/cQHX37mdv/iv4NpOf/zQ95lXXcbiugoW1ZUzt7qMmvIcteXFzKkqYXFdJTPLc5gVGpiJiIxObAXh7r1mdh1wL5AFbnH3p83smnD+BuAe4DKgGegAru5f38xuBxqBOjNrAf7M3b8aV940Or+hhu9/9u28eKCd23/wMGWzz+Slg+28dKCdTVv3cKSr94R1qstyLK6r4Ky6CmZXlVCeK6KiJEtZcZaK4qJBP8uHPC/LZclkVC4iEoj1RDl3v4egBKLTNkSeO3DtMOteGWe208niugreOq+Ixsalg6Z39fTxWkcPh9q72dvayYsH2gceDz1/kEPt3XSP8uuyM0qLqK0oZmZ5MXWVJZxRXcIZVaWcUR1cMmTJnBnMnlEykf95IpJSOpP6NFaay3JGdZYzqktZNq+q4DK9fXk6evroONZHR3cvHd19dHT30d7dS2f4vLO7l/bw+ZHOoHAOd3TTcriDLbsOcbhj8Il786pLefvS2Vx0dh1L6iuZW1WmixKKTEEqiCmuKJuhKpuhqjQ35vfo6unjldYuXn6tk2dfOcqWXYf47va93LH5+DeUiwxmP3IfdZUl1FUWs2BmOWfWltNQW0ZDbTnzqssoK85SnM1oN5bIaUIFIadUmsuyqK6CRXUVXHR2HZ++eDHdvXme23+UF15tZ9+RLp54ppny2joOtB1j35FjPL7rMEcLHCMByGWNjAUPMwZ+GsGlSDJmGMHtXDPGwDKZ8OB7JgMVxUVUleWoLstRV1nM/JoyltbP4PyGGuZUlU7exhGZwlQQMibFRRneOK+aN86rBqCp7xc0Ni4ftExrRw+7D3fwi0Md7G3t4lhvH8d68nT35cm74x5cvNBh4LW7k/fwNeHrPDjHp+fzTnt3H62dPew+1METuw5zsL174HOX1leyaFYF1WGB1JQHP1/e0ws791NdlqM0lyWXNYoyGYqyRnE2Q2lxlvJclqKsbpMiAioIiVF1eY7q8mrOnV8d+2d1dPeyY+9RHn/pEA8+f5BdBzto7eyhtbOHzsg9wjds33zK9yopylCczQQjl0z/aOf4iKZ/NJPJcMJIKDMwIoosm4mud+L79K97+HAXX9+1+fjIieAzzGzIe0NRxshlMxQXhY9s+CjKnDg9/JnNBiOw/tHZ8eeEz4+P5PpnWvjKDHYe6qPshYOYDV4uWP/4cqd6fwatN/gzCk07/u5E1rcT5r3SnufFA+0nLDv0cwfNi+Q8nt8G/h6U5rKUFE3f3aIqCJkSyouLWLVwJqsWzuQ33/G6QfOO9QajjR898BCvP+98Wjt76OrJ09OXp7fP6c3n6elzunr6aA8P5vf0eTiqiYxcwhFP//NgXmTEM7Dc8fl9+eHn9+Xzg977yDGn97Wu4yOnyPt4NIM7vX1OT1+e7t48x8Kfk+KxRybnc8bqJ02xvG1NeY45M0qoryplXnUZS+orWbVwJm9aUEN2CpeHCkKmvJKiLHNmZJlXmWHVwtqk4wwrOMv2bWNa193pzTvdvfnjxdH/PHzdl+/fbTew1sDz/un930aLLuc4OGzdto3ly5cHy4VXxAmeH8/g/SuH6w28hzNQfJFFhs0SnRf9rOPZBn9rzh2e2bGDN7zhnMHLDskXfX8KvH//vLwH27KrJ09nTx+vdXSz70gX+44c40d79vEfjwdf0JhVUcyVa87k1y9aRF3l1Pv6twpCZAowM3LZYLdTXLpbsqm+62FN63M0rlgwKZ91oO0YDz9/kE3b9nBTUzPffqKF29dfyMJZFZPy+ZNFBSEiMkp1lSW8f/k83r98Hk+2tHLVLY9y+Vce5t3LzuC8+dX86qoFU2LXk76uISIyDuctqOb29RdyRlUp39n6Mp+7czsf/McHeW7f0aSjjZsKQkRknM45o4rvXHcx2/7s3Xz5yhXsea2TD/3jQ/z0uQNJRxsXFYSIyAQxM96/fB6brruY+TPLuOqWR/nct7axt7Uz6WhjooIQEZlg82rK+OY1b+Hqixbznz/bw/u//CDPvnIk6VijpoIQEYnBjNIcf/K+ZdzzmYspyhgf/cojvNw2SeerTBAVhIhIjM6eM4NvXvMWshnjX546Rj5/+lz5WAUhIhKzhtpyblh7Ds2v5fnmlt2nXiElVBAiIpPgw6sWsHRmhr/63rMcilxcMs1UECIik8DM+OSyEtq6evnC93YkHWdEVBAiIpNk/owMn37bYr7xeAubXzqUdJxTUkGIiEyiz7xrCXNmlPAP/92cdJRTUkGIiEyi8uIiLl/dwE+ee5VXWruSjnNSKggRkUn24VULyDvc+URL0lFOSgUhIjLJFtVVsGZxLd/a0nLCvS3SRAUhIpKAy1c38OKBdm5/LL3nRaggREQS8MEV83nH0tn86Xee4uHnDyYdpyAVhIhIArIZ48sfW8HCWeX83je2Tt59xUdBBSEikpCq0hx//L5l7Gnt4j9/9nLScU6gghARSVDj0tmcO7+Kmx94nr6UXchPBSEikiAz49rGs3nxQDt3pWwUoYIQEUnYe954BivOrOF//9fTqTp5TgUhIpKwTMb40uXn09Pn/MG3tqXmgHWsBWFml5rZTjNrNrPrC8w3M7sxnL/dzFaOdF0RkalkcV0Ff/r+ZfzkuQN8/KuP8urRY0lHoiiuNzazLHAT8MtAC7DZzDa5+zORxdYCS8LHBcDNwAUjXFdEZEq5cs2ZlOWyfO7O7bz1C/fxjqWzWXf+fC45Zw6VJbH9uh5WnJ+4Bmh29xcAzOwOYB0Q/SW/DrjVg3PNHzGzGjObCywawboiIlPOB1bM59z51Xzj8d1s2rqHH+3YD8DM8hzlxUVkMpA1I2NGJmMYMLO8mG9c85YJz2JxXQfEzD4MXOruvxG+/gRwgbtfF1nmu8AX3P2n4ev7gD8kKIiTrht5j/XAeoD6+vpVd9xxx5jytrW1UVlZOaZ1J4PyjV/aMyrf+KQ9H4w+Y96dnYfyNL/Wx6EupycPeQ+mBz+D5cpzxqfOLRlTpksuuWSLu68uNC/OEYQVmDa0jYZbZiTrBhPdNwIbAVavXu2NjY2jiHhcU1MTY113Mijf+KU9o/KNT9rzwdgyvjOeKCMSZ0G0AA2R1wuAPSNcpngE64qISIzi/BbTZmCJmS02s2LgCmDTkGU2AVeF32a6EGh1970jXFdERGIU2wjC3XvN7DrgXiAL3OLuT5vZNeH8DcA9wGVAM9ABXH2ydePKKiIiJ4r1e1Pufg9BCUSnbYg8d+Daka4rIiKTR2dSi4hIQSoIEREpSAUhIiIFqSBERKSg2M6kToKZvQrsGuPqdcCBCYwz0ZRv/NKeUfnGJ+35IJ0ZF7r77EIzplRBjIeZPT7c6eZpoHzjl/aMyjc+ac8Hp0fGKO1iEhGRglQQIiJSkAriuI1JBzgF5Ru/tGdUvvFJez44PTIO0DEIEREpSCMIEREpSAUhIiIFTfuCMLNLzWynmTWb2fUpyNNgZveb2Q4ze9rMPhNO/3Mze9nMtoaPyxLO+ZKZPRlmeTycVmtmPzSz58KfMxPK9vrIdtpqZkfM7LNJbkMzu8XM9pvZU5Fpw24vM7sh/Du508zek2DGL5rZs2a23czuMrOacPoiM+uMbMsNw79zrPmG/TOd7G04TL7/iGR7ycy2htMnffuNibtP2wfBpcSfB84iuEnRNmBZwpnmAivD5zOAnwPLgD8Hfj/pbRbJ+RJQN2Ta/wWuD59fD/x1CnJmgVeAhUluQ+DtwErgqVNtr/DPextQAiwO/45mE8r4bqAofP7XkYyLossluA0L/pkmsQ0L5Rsy/2+BP01q+43lMd1HEGuAZnd/wd27gTuAdUkGcve97v5E+PwosAOYn2SmUVgH/Gv4/F+BDySYpd+7gOfdfaxn2E8Id/8xcGjI5OG21zrgDnc/5u4vEtwvZU0SGd39B+7eG758hODujokYZhsOZ9K34cnymZkBlwO3x5lhok33gpgP7I68biFFv4zNbBGwAng0nHRdONS/JandNxEO/MDMtpjZ+nBavQd3BCT8OSexdMddweD/KdO0DYfbXmn9e/kp4HuR14vN7Gdm9oCZvS2pUBT+M03bNnwbsM/dn4tMS8v2G9Z0LwgrMC0V3/s1s0rgTuCz7n4EuBl4HXA+sJdguJqki9x9JbAWuNbM3p5wnhOEt6v9FeCb4aS0bcPhpO7vpZl9HugFbgsn7QXOdPcVwO8C/25mVQlEG+7PNG3b8EoG/0MlLdvvpKZ7QbQADZHXC4A9CWUZYGY5gnK4zd2/DeDu+9y9z93zwD8xCbscTsbd94Q/9wN3hXn2mdlcgPDn/uQSAkF5PeHu+yB925Dht1eq/l6a2SeB9wG/5uEO9HDXzcHw+RaCfdIYE+0AAAOQSURBVPxLJzvbSf5MU7MNzawI+BDwH/3T0rL9TmW6F8RmYImZLQ7/tXkFsCnJQOG+yq8CO9z9S5HpcyOLfRB4aui6k8XMKsxsRv9zggOZTxFsu0+Gi30S+E4yCQcM+ldbmrZhaLjttQm4wsxKzGwxsAR4LIF8mNmlwB8Cv+LuHZHps80sGz4/K8z4QgL5hvszTc02BH4JeNbdW/onpGX7nVLSR8mTfgCXEXxT6Hng8ynIczHBUHg7sDV8XAb8G/BkOH0TMDfBjGcRfENkG/B0/3YDZgH3Ac+FP2sTzFgOHASqI9MS24YERbUX6CH41+2nT7a9gM+Hfyd3AmsTzNhMsC+//+/ihnDZXw3/7LcBTwDvTyjfsH+mk70NC+ULp38NuGbIspO+/cby0KU2RESkoOm+i0lERIahghARkYJUECIiUpAKQkREClJBiIhIQSoIkZCZtYU/F5nZxyb4vf9oyOuHJvL9ReKgghA50SJgVAXRf9LTSQwqCHd/6ygziUw6FYTIib4AvC28Tv/vmFk2vC/C5vCicL8JYGaNFty7498JTtbCzP4zvIDh0/0XMTSzLwBl4fvdFk7rH61Y+N5PWXB/jY9G3rvJzL5lwf0YbgvPssfMvmBmz4RZ/mbSt45MG0VJBxBJoesJ7jHwPoDwF32ru7/ZzEqAB83sB+Gya4BzPbikNMCn3P2QmZUBm83sTne/3syuc/fzC3zWhwguNLccqAvX+XE4bwXwRoJrCD0IXGRmzxBcUuIcd3cLb+AjEgeNIERO7d3AVeHdwB4luETGknDeY5FyAPhfZraN4N4JDZHlhnMxcLsHF5zbBzwAvDny3i0eXIhuK8GuryNAF/DPZvYhoKPAe4pMCBWEyKkZ8Nvufn74WOzu/SOI9oGFzBoJLsz2FndfDvwMKB3Bew/nWOR5H8Gd3XoJRi13Etxg6Puj+i8RGQUVhMiJjhLc7rXfvcD/DC/DjpktDa9iO1Q1cNjdO8zsHODCyLye/vWH+DHw0fA4x2yC21YOe9XR8D4h1e5+D/BZgt1TIrHQMQiRE20HesNdRV8D/p5g984T4YHiVyl8O9XvA9eY2XaCK4g+Epm3EdhuZk+4+69Fpt8FvIXgqp4OfM7dXwkLppAZwHfMrJRg9PE7Y/tPFDk1Xc1VREQK0i4mEREpSAUhIiIFqSBERKQgFYSIiBSkghARkYJUECIiUpAKQkRECvr/fZ2XfAitheMAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Plot cost during training:\n", "plot(T.J)\n", "grid(1)\n", "xlabel('Iterations')\n", "ylabel('Cost')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "#Test network for various combinations of sleep/study:\n", "hoursSleep = linspace(0, 10, 100)\n", "hoursStudy = linspace(0, 5, 100)\n", "\n", "#Normalize data (same way training data way normalized)\n", "hoursSleepNorm = hoursSleep/10.\n", "hoursStudyNorm = hoursStudy/5.\n", "\n", "#Create 2-d versions of input for plotting\n", "a, b = meshgrid(hoursSleepNorm, hoursStudyNorm)\n", "\n", "#Join into a single input matrix:\n", "allInputs = np.zeros((a.size, 2))\n", "allInputs[:, 0] = a.ravel()\n", "allInputs[:, 1] = b.ravel()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "allOutputs = NN.forward(allInputs)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Hours Study')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Contour Plot:\n", "yy = np.dot(hoursStudy.reshape(100,1), np.ones((1,100)))\n", "xx = np.dot(hoursSleep.reshape(100,1), np.ones((1,100))).T\n", "\n", "CS = contour(xx,yy,100*allOutputs.reshape(100, 100))\n", "clabel(CS, inline=1, fontsize=10)\n", "xlabel('Hours Sleep')\n", "ylabel('Hours Study')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Test Score')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#3D plot:\n", "#Uncomment to plot out-of-notebook (you'll be able to rotate)\n", "#%matplotlib qt\n", "\n", "from mpl_toolkits.mplot3d import Axes3D\n", "fig = plt.figure()\n", "ax = fig.gca(projection='3d')\n", "\n", "#Scatter training examples:\n", "ax.scatter(10*X[:,0], 5*X[:,1], 100*y, c='k', alpha = 1, s=30)\n", "\n", "\n", "surf = ax.plot_surface(xx, yy, 100*allOutputs.reshape(100, 100), \\\n", " cmap=cm.jet, alpha = 0.5)\n", "\n", "\n", "ax.set_xlabel('Hours Sleep')\n", "ax.set_ylabel('Hours Study')\n", "ax.set_zlabel('Test Score')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So it appears our model is overfitting, but how do we know for sure? A widely accepted method is to split our data into 2 portions: training and testing. We won’t touch our testing data while training the model, and only use it to see how we’re doing – our testing data is a simulation of the real world. We can plot the error on our training and testing sets as we train our model and identify the exact point at which overfitting begins. We can also plot testing and training error as a function of model complexity a see similar behavior. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "#Training Data:\n", "trainX = np.array(([3,5], [5,1], [10,2], [6,1.5]), dtype=float)\n", "trainY = np.array(([75], [82], [93], [70]), dtype=float)\n", "\n", "#Testing Data:\n", "testX = np.array(([4, 5.5], [4.5,1], [9,2.5], [6, 2]), dtype=float)\n", "testY = np.array(([70], [89], [85], [75]), dtype=float)\n", "\n", "#Normalize:\n", "trainX = trainX/np.amax(trainX, axis=0)\n", "trainY = trainY/100 #Max test score is 100\n", "\n", "#Normalize by max of training data:\n", "testX = testX/np.amax(trainX, axis=0)\n", "testY = testY/100 #Max test score is 100" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "##Need to modify trainer class a bit to check testing error during training:\n", "class trainer(object):\n", " def __init__(self, N):\n", " #Make Local reference to network:\n", " self.N = N\n", " \n", " def callbackF(self, params):\n", " self.N.setParams(params)\n", " self.J.append(self.N.costFunction(self.X, self.y))\n", " self.testJ.append(self.N.costFunction(self.testX, self.testY))\n", " \n", " def costFunctionWrapper(self, params, X, y):\n", " self.N.setParams(params)\n", " cost = self.N.costFunction(X, y)\n", " grad = self.N.computeGradients(X,y)\n", " \n", " return cost, grad\n", " \n", " def train(self, trainX, trainY, testX, testY):\n", " #Make an internal variable for the callback function:\n", " self.X = trainX\n", " self.y = trainY\n", " \n", " self.testX = testX\n", " self.testY = testY\n", "\n", " #Make empty list to store training costs:\n", " self.J = []\n", " self.testJ = []\n", " \n", " params0 = self.N.getParams()\n", "\n", " options = {'maxiter': 200, 'disp' : True}\n", " _res = optimize.minimize(self.costFunctionWrapper, params0, jac=True, method='BFGS', \\\n", " args=(trainX, trainY), options=options, callback=self.callbackF)\n", "\n", " self.N.setParams(_res.x)\n", " self.optimizationResults = _res\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.000000\n", " Iterations: 159\n", " Function evaluations: 170\n", " Gradient evaluations: 170\n" ] } ], "source": [ "#Train network with new data:\n", "NN = Neural_Network()\n", "\n", "T = trainer(NN)\n", "T.train(trainX, trainY, testX, testY)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Cost')" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Plot cost during training:\n", "plot(T.J)\n", "plot(T.testJ)\n", "grid(1)\n", "xlabel('Iterations')\n", "ylabel('Cost')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So now that we know overfitting is a problem, but how do we fix it? One way is to throw more data at the problem. A simple rule of thumb as presented by Yaser Abu-Mostaf is his excellent machine learning course available from Caltech, is that you should have at least 10 times as many examples as the degrees for freedom in your model. For us, since we have 9 weights that can change, we would need 90 observations, which we certainly don’t have.\n", "\n", "Link to course: https://work.caltech.edu/telecourse.html" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another popular and effective way to mitigate overfitting is to use a technique called regularization. One way to implement regularization is to add a term to our cost function that penalizes overly complex models. A simple, but effective way to do this is to add together the square of our weights to our cost function, this way, models with larger magnitudes of weights, cost more. We’ll need to normalize the other part of our cost function to ensure that our ratio of the two error terms does not change with respect to the number of examples. We’ll introduce a regularization hyper parameter, lambda, that will allow us to tune the relative cost – higher values of lambda will impose bigger penalties for high model complexity." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "#Regularization Parameter:\n", "Lambda = 0.0001 " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "#Need to make changes to costFunction and costFunctionPrim:\n", "def costFunction(self, X, y):\n", " #Compute cost for given X,y, use weights already stored in class.\n", " self.yHat = self.forward(X)\n", " #We don't want cost to increase with the number of examples, so normalize by dividing the error term by number of examples(X.shape[0])\n", " J = 0.5*sum((y-self.yHat)**2)/X.shape[0] + (self.Lambda/2)*(sum(self.W1**2)+sum(self.W2**2))\n", " return J\n", "\n", "def costFunctionPrime(self, X, y):\n", " #Compute derivative with respect to W and W2 for a given X and y:\n", " self.yHat = self.forward(X)\n", "\n", " delta3 = np.multiply(-(y-self.yHat), self.sigmoidPrime(self.z3))\n", " #Add gradient of regularization term:\n", " dJdW2 = np.dot(self.a2.T, delta3)/X.shape[0] + self.Lambda*self.W2\n", "\n", " delta2 = np.dot(delta3, self.W2.T)*self.sigmoidPrime(self.z2)\n", " #Add gradient of regularization term:\n", " dJdW1 = np.dot(X.T, delta2)/X.shape[0] + self.Lambda*self.W1\n", "\n", " return dJdW1, dJdW2" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "#New complete class, with changes:\n", "class Neural_Network(object):\n", " def __init__(self, Lambda=0): \n", " #Define Hyperparameters\n", " self.inputLayerSize = 2\n", " self.outputLayerSize = 1\n", " self.hiddenLayerSize = 3\n", " \n", " #Weights (parameters)\n", " self.W1 = np.random.randn(self.inputLayerSize,self.hiddenLayerSize)\n", " self.W2 = np.random.randn(self.hiddenLayerSize,self.outputLayerSize)\n", " \n", " #Regularization Parameter:\n", " self.Lambda = Lambda\n", " \n", " def forward(self, X):\n", " #Propogate inputs though network\n", " self.z2 = np.dot(X, self.W1)\n", " self.a2 = self.sigmoid(self.z2)\n", " self.z3 = np.dot(self.a2, self.W2)\n", " yHat = self.sigmoid(self.z3) \n", " return yHat\n", " \n", " def sigmoid(self, z):\n", " #Apply sigmoid activation function to scalar, vector, or matrix\n", " return 1/(1+np.exp(-z))\n", " \n", " def sigmoidPrime(self,z):\n", " #Gradient of sigmoid\n", " return np.exp(-z)/((1+np.exp(-z))**2)\n", " \n", " def costFunction(self, X, y):\n", " #Compute cost for given X,y, use weights already stored in class.\n", " self.yHat = self.forward(X)\n", " J = 0.5*sum((y-self.yHat)**2)/X.shape[0] + (self.Lambda/2)*(np.sum(self.W1**2)+np.sum(self.W2**2))\n", " return J\n", " \n", " def costFunctionPrime(self, X, y):\n", " #Compute derivative with respect to W and W2 for a given X and y:\n", " self.yHat = self.forward(X)\n", " \n", " delta3 = np.multiply(-(y-self.yHat), self.sigmoidPrime(self.z3))\n", " #Add gradient of regularization term:\n", " dJdW2 = np.dot(self.a2.T, delta3)/X.shape[0] + self.Lambda*self.W2\n", " \n", " delta2 = np.dot(delta3, self.W2.T)*self.sigmoidPrime(self.z2)\n", " #Add gradient of regularization term:\n", " dJdW1 = np.dot(X.T, delta2)/X.shape[0] + self.Lambda*self.W1\n", " \n", " return dJdW1, dJdW2\n", " \n", " #Helper functions for interacting with other methods/classes\n", " def getParams(self):\n", " #Get W1 and W2 Rolled into vector:\n", " params = np.concatenate((self.W1.ravel(), self.W2.ravel()))\n", " return params\n", " \n", " def setParams(self, params):\n", " #Set W1 and W2 using single parameter vector:\n", " W1_start = 0\n", " W1_end = self.hiddenLayerSize*self.inputLayerSize\n", " self.W1 = np.reshape(params[W1_start:W1_end], \\\n", " (self.inputLayerSize, self.hiddenLayerSize))\n", " W2_end = W1_end + self.hiddenLayerSize*self.outputLayerSize\n", " self.W2 = np.reshape(params[W1_end:W2_end], \\\n", " (self.hiddenLayerSize, self.outputLayerSize))\n", " \n", " def computeGradients(self, X, y):\n", " dJdW1, dJdW2 = self.costFunctionPrime(X, y)\n", " return np.concatenate((dJdW1.ravel(), dJdW2.ravel()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we train our model now, we see that the fit is still good, but our model is no longer interested in “exactly” fitting our data. Further, our training and testing errors are much closer, and we’ve successfully reduced overfitting on this dataset. To further reduce overfitting, we could increase lambda." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "NN = Neural_Network(Lambda=0.0001)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "#Make sure our gradients our correct after making changes:\n", "numgrad = computeNumericalGradient(NN, X, y)\n", "grad = NN.computeGradients(X,y)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2.196081573113094e-10" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Should be less than 1e-8:\n", "norm(grad-numgrad)/norm(grad+numgrad)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "T = trainer(NN)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.002618\n", " Iterations: 78\n", " Function evaluations: 81\n", " Gradient evaluations: 81\n" ] } ], "source": [ "T.train(X,y,testX,testY)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Cost')" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEGCAYAAACUzrmNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nO3deZxU1Z338c+vqld6AwSbZhFEUUHcwH2JhCQTdYxGM0bNvkyME5NJMlkmTmZ58rzmeSZ5ksloEqMx2yQx0SQmRsc4USfSmrgCLggSEBEVQRBEoKHp7qr6PX+c203RNF1Nh+p7oL/v16tet+rWvVXfLuj69Tn33nPM3REREelPJu0AIiISPxULEREpScVCRERKUrEQEZGSVCxERKSkirQD7EtjxozxKVOmDGrfbdu2UVdXt28D7SMxZ4O488WcDeLOF3M2iDtfzNlg13wLFy7c4O5jS+7k7gfMbfbs2T5Y8+bNG/S+5RZzNve488WczT3ufDFnc487X8zZ3HfNByzwAXy/qhtKRERKUrEQEZGSVCxERKQkFQsRESlJxUJEREpSsRARkZJULEREpCQVi652eOibjNy0KO0kIiLRUrHIVMJD32TCy3emnUREJFoqFtkKOOYSDtq4ELa/lnYaEZEoqVgAHHspGc/B4l+lnUREJEoqFgDjjqGtbjIs+nnaSUREoqRiAWDGuuY5sHo+bHwu7TQiItFRsUisaz4bMLUuRET6oGKR6Kw+CKaeHYqFe9pxRESiomJR7NjLYNMqeOnRtJOIiERFxaLY9LdB5Qh46pa0k4iIREXFolh1PRx1Piy5DXIdaacREYmGikVvx10GO16H5XennUREJBoqFr1NnQMVNbD6sbSTiIhEQ8Wit0wWGlpgy9q0k4iIREPFoi+N42HLmrRTiIhEQ8WiLw0tsFXFQkSkm4pFXxrHh24oXZwnIgKoWPStcTzkOzRkuYhIQsWiL43jw1JdUSIiQJmLhZmdY2bLzGyFmX2hj+fNzL6RPL/IzGb1ej5rZk+Y2dBOY9eQFAsd5BYRAcpYLMwsC1wHnAvMAC43sxm9NjsXmJbcrgCu7/X8J4Gl5cq4R40tYaliISIClLdlcTKwwt1XunsncAtwYa9tLgR+7MEjwEgzawEws4nAXwLfK2PGvtU3g2Vgq661EBEBqCjja08AXip6vBo4ZQDbTADWAtcAnwca+nsTM7uC0CqhubmZ1tbWQYVta2vbZd/TKpt4bdlCltngXm9f6p0tNjHnizkbxJ0v5mwQd76Ys8Hg8pWzWFgf63qfi9rnNmZ2PrDe3Rea2Zz+3sTdbwRuBDjxxBN9zpx+N9+j1tZWdtl3+aG01Dotg3y9fWm3bJGJOV/M2SDufDFng7jzxZwNBpevnN1Qq4FJRY8nAr0PAuxpmzOAC8xsFaH7aq6Z3VS+qH3QVdwiIj3KWSzmA9PM7FAzqwIuA+7otc0dwPuSs6JOBTa7+1p3v9rdJ7r7lGS/+9z9PWXMujtdxS0i0qNs3VDunjOzjwN3A1ngB+6+xMyuTJ6/AbgLOA9YAWwHPliuPHutcTzs2Ayd26CqLu00IiKpKucxC9z9LkJBKF53Q9F9B64q8RqtQGsZ4vWv+8K8LWthzOFD/vYiIjHRFdx7oqu4RUR6qFjsia7iFhHpoWKxJ7qKW0Skh4rFnlTVQU2TruIWEUHFon8NutZCRARULPqnC/NERAAVi/41tqhYiIigYtG/hvHQtg7yXWknERFJlYpFfxrHAx4KhojIMKZi0Z/iq7hFRIYxFYv+6CpuERFAxaJ/uopbRARQsejfiNGQrVaxEJFhT8WiP2Y6fVZEBBWL0hrGa8gPERn2VCxK0VXcIiIqFiV1d0O5p51ERCQ1KhalNIyHfAe0b0o7iYhIalQsSum5MO/ldHOIiKRIxaIUXcUtIqJiUVJ3sdj8Yro5RERSpGJRSkMLjD4MHvomdG5PO42ISCpULErJZOFt18KmVdD6f9NOIyKSChWLgTj0LJj9AXj4Onh5YdppRESGnIrFQL3lf0N9M9z+Cch1pp1GRGRIqVgMVE0TnP8fsH4JPHht2mlERIaUisXeOPJcmPkOeOD/wcrWtNOIiAwZFYu9dc5Xwum0P74Qbnk3bHwu7UQiImWnYrG36sfCxx6Buf8UWhfXnQJ3fxG2ap5uETlwqVgMRmUtvOGz8ImFcNyl4Syp/5gBv3g/PP+ABh0UkQOOisWfo2EcXHgdfHwBnHJlaGn86G3wrZNgyW0qGiJywFCx2BfGHA5v/T/wmT/BRd+Bimr45QdC4Vi3JO10IiJ/NhWLfamyFo67DD76APzlv8O6xXDDWXDX56GrPe10IiKDpmJRDpksnPTX8InH4cQPwmM3ws2XaWwpEdlvqViU04jRoYXx9m/DyvtVMERkv6ViMRSOfxe8/fpwptTNl6pgiMh+R8ViqBx/OVx0Azz/h1Awch1pJxIRGTAVi6F03GWhS+r5B2D+99JOIyIyYGUtFmZ2jpktM7MVZvaFPp43M/tG8vwiM5uVrK8xs8fM7CkzW2JmXypnziF1/Ltg6hz4w79Dx9a004iIDEjZioWZZYHrgHOBGcDlZjaj12bnAtOS2xXA9cn6DmCuux8HHA+cY2anlivrkJv7z7B9IzxyQ9pJREQGpJwti5OBFe6+0t07gVuAC3ttcyHwYw8eAUaaWUvyuC3ZpjK5HTiXQ0+cDUf+JTz0Ddj+WtppRERKKmexmAC8VPR4dbJuQNuYWdbMngTWA/e6+6NlzDr05n4xdENpbgwR2Q9UlPG1rY91vVsHe9zG3fPA8WY2ErjNzGa6++Ld3sTsCkIXFs3NzbS2tg4qbFtb26D3HazpB5/FmIe/zaOF4+msHrXH7dLItjdizhdzNog7X8zZIO58MWeDQeZz97LcgNOAu4seXw1c3Wub7wCXFz1eBrT08Vr/Any21HvOnj3bB2vevHmD3nfQNqxw/1+j3H/72X43SyXbXog5X8zZ3OPOF3M297jzxZzNfdd8wAIfwHd6Obuh5gPTzOxQM6sCLgPu6LXNHcD7krOiTgU2u/taMxubtCgws1rgzcCfypg1HQcdBrPeCwt+qPkwRCRqZSsW7p4DPg7cDSwFfuHuS8zsSjO7MtnsLmAlsAL4LvCxZH0LMM/MFhGKzr3ufme5sqZq9geh0BWuvRARiVQ5j1ng7ncRCkLxuhuK7jtwVR/7LQJOKGe2aIw7Bqoa4IUH4dhL0k4jItInXcGdtkwWDjkVXngo7SQiInukYhGDyafDhmWwbUPaSURE+qRiEYPJZ4Tliw+nm0NEZA9ULGIw/gSoqFFXlIhES8UiBhVVMPGkcJBbRCRCKhaxmHwGvPI07NicdhIRkd2oWMRi8ungBXjpsbSTiIjsRsUiFhNPgkyFuqJEJEoqFrGoGgHjZ+kgt4hEScUiJpNPh5cfh672tJOIiOxCxSImk88I40StXpB2EhGRXahYxGTSyYCpK0pEoqNiEZPakTBupg5yi0h0VCxiM/mMcPpsrjPtJCIiPVQsYjN+FuTaYdOqtJOIiPRQsYhN4/iwbHsl3RwiIkVULGLT0BKWW1UsRCQeAyoWZvaTgayTfaChOSy3rk03h4hIkYG2LI4ufmBmWWD2vo8jVDeEaVbVshCRiPRbLMzsajPbChxrZluS21ZgPXD7kCQcjhrGqWUhIlHpt1i4+7+5ewPwVXdvTG4N7n6Qu189RBmHn4ZxalmISFQG2g11p5nVAZjZe8zs62Y2uYy5hreGFrUsRCQqAy0W1wPbzew44PPAC8CPy5ZquOtuWbinnUREBBh4sci5uwMXAte6+7VAQ/liDXMNLZDbATteTzuJiAgw8GKx1cyuBt4L/DY5G6qyfLGGuYZxYanjFiISiYEWi0uBDuBD7v4KMAH4atlSDXc9xULHLUQkDgMqFkmB+CnQZGbnAzvcXccsykUtCxGJzECv4H4n8BhwCfBO4FEz+6tyBhvW6tWyEJG4VAxwuy8CJ7n7egAzGwv8D3BruYINa1UjoKZJLQsRicZAj1lkugtFYuNe7CuDoWstRCQiA21Z/M7M7gZuTh5fCtxVnkgC6CpuEYlKv8XCzA4Hmt39c2Z2MXAmYMDDhAPeUi4NLbDqj2mnEBEBSnclXQNsBXD3X7v737n7pwmtimvKHW5Y01XcIhKRUsViirsv6r3S3RcAU8qSSIKGFih0wfbX0k4iIlKyWNT081ztvgwivejCPBGJSKliMd/MPtJ7pZl9GFhYnkgCaHpVEYlKqbOhPgXcZmbvZmdxOBGoAi4qZ7Bhb5eWxaRUo4iI9Fss3H0dcLqZvRGYmaz+rbvfV/Zkw11991zcr6BiISJpG9B1Fu4+D5hX5ixSrKIaRhwUWhb1aYcRkeGurFdhm9k5ZrbMzFaY2Rf6eN7M7BvJ84vMbFayfpKZzTOzpWa2xMw+Wc6c0Wpo0TELEYlC2YpFMufFdcC5wAzgcjOb0Wuzc4Fpye0Kwox8ADngM+4+HTgVuKqPfQ98DeN0NpSIRKGcLYuTgRXuvtLdO4FbCDPtFbsQ+LEHjwAjzazF3de6++MA7r4VWEqYQ2N40ZAfIhKJgY4NNRgTgJeKHq8GThnANhOAnj+nzWwKcALwaF9vYmZXEFolNDc309raOqiwbW1tg963XKa81snkra/QtnVLdNmKxfjZdYs5G8SdL+ZsEHe+mLPB4PKVs1hYH+t6j13R7zZmVg/8CviUu2/p603c/UbgRoATTzzR58yZM6iwra2tDHbfsqlbAS/8gtFVeU6PLVuRKD+7RMzZIO58MWeDuPPFnA0Gl6+c3VCr2fWcz4nAmoFuY2aVhELxU3f/dRlzxiu5MK+qU0N+iEi6ylks5gPTzOxQM6sCLgPu6LXNHcD7krOiTgU2u/taMzPg+8BSd/96GTPGLbkwr7pDxUJE0lW2bih3z5nZx4G7gSzwA3dfYmZXJs/fQBi99jxgBbAd+GCy+xnAe4GnzezJZN0/uPvwmkNDLQsRiUQ5j1mQfLnf1WvdDUX3Hbiqj/3+SN/HM4aXuoMBU8tCRFKnqVFjlq2A+oPVshCR1KlYxK5hnFoWIpI6FYvYNbSoZSEiqVOxiJ1aFiISARWL2DW0UNm1GfJdaScRkWFMxSJ2dWMxHLZvTDuJiAxjKhaxqx0Zlu2vp5tDRIY1FYvY1Y4Kyx0qFiKSHhWL2NV0tyw2pZtDRIY1FYvYdbcs1A0lIilSsYhdrVoWIpI+FYvYVTfhmI5ZiEiqVCxil8mQq6hTy0JEUqVisR/IVdTrmIWIpErFYj/QVVmvloWIpErFYj+Qq6jXMQsRSZWKxX4gdEOpZSEi6VGx2A+Ebii1LER6uIMX0k4xrJR1WtX9Qb7gLHxhE2va4v2P19MN5Q6m2WZlmGl/HR7+Frz4SBhQc9sG2L6ROZ6HP1RCRQ1UVEGmArDwO2IZemZm7vmd6fW7Y73uFG9ntvvSMjtf1zKQyYBlIZMNy2xluJ+pZOam12H9D5Ns1WFZNQIq68Kyqg6qG6C6CWoaoaYJakeHi3CzcX4tx5lqCLk77//BY5w53nhX2mH2IFdRD4UcdLaF/2Aiw0GuA+Z/Dx74auiGnXgSjJ4KE0+EEWNY9dIapkxqgVwn5HaE3xE8aXV48iLJsucxe1hf/Nj7WRZ2tmoKefD8rsvODijkqNmxCdZvDj9DriPk69oO+c7SP3dNE4wYAw0t0NgCDePC/fpmqBsL9QdDdWPynjnI50IxGzNt8J/1AAz7YlGRzTBjfCOrNm9OO8oedVUmBaL9dRWL4aRzO6xfCuuXhOWry8IXx8QTwxfn2OnR/hX6Z9m2AZ75DTx4Lbz+Ikx9I7zlS9By3C6brWptZcqcOelkLGFBaytz+sqWz0HXNuhog46t0LEFdmwJPQftm0LLaftGaFsPW1+Blx4Ly3xH/29Y3wyfXV6Wn6XbAfg/be8dM6GJn63eRL7gZDPxdfPkKurCnfZNMHJSumFkaCy/B277KLQnsyRW1MKYw2HtU/DkT8O6yrrw1+ToqXDQYTDq0DA8TGUtVI4IXR+ZiqSbJOkyMSt63L0us+u6pFvFCl1QKITulnLK52Dzi/D8H2DJr8PS86E4vO1aOGxued9/KGUrINsUWg8D5R5+99vWw7b1YdmxNen2qgi3yhHly5xQsQBmTmiiMw8rX21jWnN8f7n3tCx0+uyBL98F9/0rPHgNNB8DF3wDmo+GkVPCl7Y7bFoFqxfAywtgw7Ow5gl45vbwBbsPnQ3wAIDt/FLq/oLKVoX72arQJ5+t2rV/vnuZrUz2qQyFKN+587b9Ndj0fGg9FHLhTUdPhTM/DUdfFH5uHaMLn8GI0eHGUanFULEgtCwAnn55c5TFIldRH+7o9NkD25Y1cOuH4MWHYfYH4ZwvQ2XNrtuYwehDw+3YS3auz3fB5pfCX5xd7aF/vHN7UZ96Yfdbz/p8KEK9+uBXPvcsUydPDl/khRwUukIroNAV3q/7Sz/XkSx3hPs7Nu/spy/kdm7nBch2F5aq0O/ecjwcfXEoEi3HQvNMFYhIqVgAh42toyoTisXFsyamHWc3O4uFWhYHrNdfgu+/JXzZv+P7cMxf7d3+2crwhbsPvZhrZWqkxwRk6KlYEA5yH9KYYfHLcR7k7qpUy+KAtmMz/Oyd0LkNPnQ3jJuZdiKR3eiivMSUxgyLX95CvtD7FLv0FTJJ013HLA44VuiCn78XNiyHS3+iQiHRUrFITGnK0N6VZ+WrbWlH2Z1ZmF5VLYsDiztHLP82PH8/XPBNmDon7UQie6RikZjSmAXCcYso1Y7SMYsDiTu0/hstr9wHc66G42O9JFQkULFItNQZNZWZiIuFWhYHjEIB7vlHuP8rrB33Zjj779NOJFKSDnAnshljRktjtAe5qRkJba+knUL+XLlOuP0qePoXcPJHWVZ7Di06VVT2A2pZFDlmQhNL1sR5kDt0Q6llsV/raIObLwuFYu4/wblfSQamE4mf/qcWmTmhie2dkR7krh0J7ZG2eqR/+S548ma48WxYOQ/e9g14w2d18ZnsV9QNVeTYiSOBSK/krh0FHZvD1bWZbNppZCA6t4dxnB78Rhj76OCj4d2/hMPfnHYykb2mYlHksLF1PQe5o7uSuyYUMnZsTsaIkah0D/a29il44UF44aEwflO+AyaeDOd9FY54q1oTst9SsShSkc3Ee5C7dlRYtm9SsdgLVugKV0b3jHvUPRZS0XwExeMkFfLJ2EedYRyk7jGPutrDsrMtFOz218NFkm3rYdMLYTC8zq3Jm2bCiKknfwSOPA8mn64iIfs9FYtejpnQxC8Xro5vuPLapGWhay32bP1SePi6MKDelrWwdS1nd2xJRk7dx7JVobVXNxZGHgKHnhWWY48MLYmaxjK8qUh6VCx6mTmhiR89/ALPb2jj8IMjOm7R3bLYoTOidlPIh2k37/vXMCz2mCNg7BEwdQ4rX21j6mFH7Jz6MtPH/A3FU2NmMmE47e5htSuqwlwSlTVhWTUiFInKWrUWZFgpa7Ews3OAa4Es8D13/3Kv5y15/jxgO/ABd388ee4HwPnAencfsgFzjpkYhitftHpzXMWiRi2LPr22En7zsTCs91Hnw/nXQP3YnqdfbG1l6plz0ssncoAo26mzZpYFrgPOBWYAl5vZjF6bnQtMS25XANcXPfefwDnlyrcnh4+tp7oiw5I1W4b6rftXfMxCguV3w/Vnwrpn4KLvwKU37VIoRGTfKed1FicDK9x9pbt3ArcAF/ba5kLgxx48Aow0sxYAd38AeK2M+fpUkc1w5LgGlq6NrVioZbGLp2+FW94Vups+9hAcd5m6hUTKqJzdUBOAl4oerwZOGcA2E4C1A30TM7uC0CqhubmZ1tbWwWSlra2tZ9+RdPD4iznmzZuHRfAF1NbWRusfHuTMbA1rn32a57w17Ui7KP7shkLLmrs5Yvn1bG46mqenfp78EyuAFVFk21sx54s5G8SdL+ZsMMh87l6WG3AJ4ThF9+P3At/stc1vgTOLHv8emF30eAqweKDvOXv2bB+sefPm9dz/4R9X+uS/v9Nf2dw+6Nfbl3qy/fsM99v+JtUsfSn+7Mruj9e4/0uj+02XuHduL7n5kGYbhJjzxZzNPe58MWdz3zUfsMAH8P1azm6o1cCkoscTgTWD2GbIHdUSTnt8JrquqGE+TPlTP4d7/znM2XzpTeGMJBEZEuUsFvOBaWZ2qJlVAZcBd/Ta5g7gfRacCmx29wF3QZXL9HGhWER53GK4HuDetAp++xk45DS4+LvhlFYRGTJlKxbungM+DtwNLAV+4e5LzOxKM7sy2ewuYCWhw/m7wMe69zezm4GHgSPNbLWZfbhcWXtrGlHJhJG1LF27dajecmBqRw7PqVXzOfj1R8MB7Iu+A1ldHiQy1Mr6W+fudxEKQvG6G4ruO3DVHva9vJzZSpneEuEZUQOZWrVzWxiaom7M0GQaCn/8Orz0SGhRjJqcdhqRYUlDlO/B9JZGVr7axo6ufNpRdqoduedjFmuegP/6FHztSPjmLNiS+qGffWP1Amj9MhxzCRz7zrTTiAxbKhZ7ML2lkYLDs+simtuidhTk2qFrx851rzwNN5wFN86Bp26GI8+FXEfo3/cIJ3HaG23r4dcfgcbxcN7X0k4jMqypWOzB9JYID3L3DFNe1Lp44Gvw+gvhy/Qzy+Ad34U3fhGW3QVLbksn576wegF85+wwIODF3915UaKIpELFYg8OGT2C2spsXKfP9gz5kRSLfC7MvDb9bWE47O4v1FM/BuNPgLs+B9s2ppP1z7HwR/DDc8OB7A/fA5NPSzuRyLCn00r2IJux+Ib96BnyIznIvXp+mFuh98xr2Qq44FthGs+7r4aLb9z53Mbn4NU/hfmgO7eGA+IjxsDhb4KGcUPzc+zJhhXw4DXwxE/gsLnwju9r7g6RSKhY9GN6SyO/XbQGd49i2I+dw5QnLYsV/xOG1Z76xt23HTcTzvoM3P8VGHcsbF0Ly38HG/seFgMIE/Yc/pYwWc+YadA4MQzZXS75HLz2HPzpztBl9srTgMGZn4a5/6TpY0UiomLRjxktDdz8WI61m3cwfmQEVwvX9GpZrLgXJp285/78sz4Dz9wO93wxTNZz6Bvg5I/CxBOhpgmq6qCqPlzw9uw98Oy98Mf/gD8kB5MrauGgw6ChJUzmU90QbtnqorkgMhzywgvwxyd3zgFhlhxc97DMtYf5qDu3QccW2LwaNj0Pr78UZqqDMGHQW/8NZlwITRPK+SmKyCCoWPSj+CB3FMWi+JjF1nVhvue5/7jn7Suq4d23wvpnYPIZUF3f93bjZiYtkb8Lr71uMWx4NrRCNjwL29aHeSM6toYv+3znzmIATAV4vlR4C4WpakQ4u2n8LJj5Dhh1KEw9O8wyJyLRUrHox1FFxeJN05tTTgNUNwIWWhbP3RfWHf6W/vcZOSncBqp2JEw5M9xKcQcvcH/rfZx95umQ74JCrmgDC62MihrNLCeyn1Ox6Ed9dQWHjB4Rz7AfmczOIT9W3Bvmfx53bHp5zMCyeKYydGmJyAFLp86WcFRsZ0TVjIRtG0LL4vA3l/cAtIhIQt80JUxvaeT5jdto74xk2I/aUfD8A6ErqvcpsyIiZaJiUcL0lkbcYdm6SLqiakfC9g3hTKTD5qadRkSGCR2zKGFGcpD7c798iuMmjeSwsfVMHVtHQ3UF2YxRkc1QmbVwP5Mhm4FsJqyrqshQlc1QXZGlpjKzb67V6D4jasJsXbAmIkNGxaKESaNr+du5hzN/1SYeWP4qty5cPajXMYO6qgpGVGWpr67goPoqxtRXM7ahmoMbqjlsbD3TmhuYctAIKrL9NPi6r7VQF5SIDCEVixLMjL/7iyN7Hm9u72LVhm20d+XJF5yufIFc3sm7ky84uYKTLxToyjkd+QJduQIduQLtnTm2debZ3pljy44cG9s6WL5uKw89t5HN7V09r1+VzTCtuZ6zjxjLm6YfzPGTRu0aqLtlUeqUWRGRfUjFYi811VZy3KR9OwLq9s4cz63fxvJ1W1m+fitPvfQ633lgJd9ufY7RdVXMHFXgkKPbmDq2Hqa9Bba8DOOP36cZRET6o2IRgRFVFRwzsYljJjb1rNvc3sX9y1/l90vX8d9Pr+HNX7+fi2dN5JNvOpZJF93Qz6uJiOx7KhaRaqqt5ILjxnPBceOZO+p1FnU185NHXuA3T7zMu045hH84bzo1lRpoT0SGhk6d3Q80VRv/dP4MHvjcG7ns5En85JEXuPQ7D7N+y47SO4uI7AMqFvuRcU01/Ovbj+GG98zm2fVtXPCtB1n88ua0Y4nIMKBisR9669HjuPXK08kY/NUND3HX02vTjiQiBzgVi/3UjPGN3P7xMzl6fBNX/exx/uupNWlHEpEDmIrFfmxsQzU3ffgUTpo8mk///Enu+9O6tCOJyAFKxWI/V1uV5fsfOJHpLY1cedPjPPTchrQjicgBSMXiANBQU8mPPnQyk0eP4CM/WsD8Va/h7mnHEpEDiK6zOECMrqvipr8+hUtueJhLbniY+uoKpo6t47Cx9bQ01VBTGQYzrKnMUlORpbYqy4iqsKypzFKVzVBVkaEym6EiY2FeIzMyBsauAyD2Hg9x044C67bs2LlVso8ZGJAxI2OGZcL9rBmZDGQtDMC4TwZYFJGyUrE4gDQ31vCrvzmd/168lufWt7FywzYeXbmRV7bsoFDuhkbr7we9a0XGqMgaldnuUXpDUauqyFBblaWuqoK66u5lcqvKMiJZVlVkekb4razI7FLaFr2ag2Xrd3m/vS1Ovbfu3r27iHYXxeIimbHuZVIgM9azrMjsHKV4Y3sotNmMUZnJhCJatG3WdhZukTSpWBxgxjZU877Tpuy2visfBjTc0ZWnvTNPe1ee7Z3h/o5cnq5cga6805nPk8s7Drj7bkWmr96t5cuXMe2II3qe9+SOdz9OXqfgntwgX+g18GLe6cwVdsm5o6tARy7Pto4cr27tYFtnjm0dYUDGzlxh4B/KwvkD3zYN95cutD0FqOgx7N7q25cKhQKZe/+7V5D+9xloYe0ufjuLLGSSIpkpatX2tEqte1/rec0d7e3Uzp9X9F7xFNTt24uENPYAAAfWSURBVLczYkHrXu2zW3rr//nin3f0iCp+ceVpe/V+e0vFYpiozIYupvrqff9P3tq+kjmnTN7nr9ufrnyB7ckovp25Ap3J6L6d+V2LyOOPP86sWbN6Hu/9oZxdd+je34see1IYIRREkoKZL4T1hUIokvlkmUsKZVfeeWbpUg6bdkTP40Jh5wjGYb/wmu5hfV8ZyuXFF17kkMmH7Paz74n3TrTbZ+U7/5ig+w8L73ndQvJ89x8UhYLjFH8G9ByLc2Ddug6am0cOKNtQW79+Bwcf3FR6w0Tv+L2POe724/Va0VBT/q9yFQvZL1VmMzTVZmiqrex3uy0rs8w6ZFS/26SpdeuKIS+0A9Xa+gpz5hyVdow9am1tZc6cE9KO0aeYsw2WzoYSEZGSVCxERKQkFQsRESlJxUJEREpSsRARkZJULEREpCQVCxERKUnFQkRESrIDaXRSM3sVeGGQu48BYh3fO+ZsEHe+mLNB3PlizgZx54s5G+yab7K7jy21wwFVLP4cZrbA3U9MO0dfYs4GceeLORvEnS/mbBB3vpizweDyqRtKRERKUrEQEZGSVCx2ujHtAP2IORvEnS/mbBB3vpizQdz5Ys4Gg8inYxYiIlKSWhYiIlKSioWIiJQ07IuFmZ1jZsvMbIWZfSGCPD8ws/Vmtrho3Wgzu9fMnk2WqczmY2aTzGyemS01syVm9snI8tWY2WNm9lSS70sx5UuyZM3sCTO7M8Jsq8zsaTN70swWxJTPzEaa2a1m9qfk/99pEWU7MvnMum9bzOxTEeX7dPL7sNjMbk5+T/Y627AuFmaWBa4DzgVmAJeb2Yx0U/GfwDm91n0B+L27TwN+nzxOQw74jLtPB04Frko+r1jydQBz3f044HjgHDM7NaJ8AJ8ElhY9jikbwBvd/fiic/BjyXct8Dt3Pwo4jvAZRpHN3Zcln9nxwGxgO3BbDPnMbALwt8CJ7j4TyAKXDSqbJ/P7DscbcBpwd9Hjq4GrI8g1BVhc9HgZ0JLcbwGWpZ0xyXI78JYY8wEjgMeBU2LJB0xMfjHnAnfG9m8LrALG9FqXej6gEXie5IScmLL1kfUvgAdjyQdMAF4CRhOm0b4zybjX2YZ1y4KdH2S31cm62DS7+1qAZHlwynkwsynACcCjRJQv6eZ5ElgP3OvuMeW7Bvg8UChaF0s2AAfuMbOFZnZFsi6GfFOBV4EfJl143zOzukiy9XYZcHNyP/V87v4y8DXgRWAtsNnd7xlMtuFeLKyPdTqXuAQzqwd+BXzK3beknaeYu+c9dAdMBE42s5lpZwIws/OB9e6+MO0s/TjD3WcRumWvMrM3pB0oUQHMAq539xOAbaTfXbcbM6sCLgB+mXaWbsmxiAuBQ4HxQJ2ZvWcwrzXci8VqYFLR44nAmpSy9GedmbUAJMv1aQUxs0pCofipu/86tnzd3P11oJVw/CeGfGcAF5jZKuAWYK6Z3RRJNgDcfU2yXE/ocz85knyrgdVJKxHgVkLxiCFbsXOBx919XfI4hnxvBp5391fdvQv4NXD6YLIN92IxH5hmZocmfxVcBtyRcqa+3AG8P7n/fsKxgiFnZgZ8H1jq7l8veiqWfGPNbGRyv5bwi/KnGPK5+9XuPtHdpxD+n93n7u+JIRuAmdWZWUP3fUK/9uIY8rn7K8BLZnZksupNwDMxZOvlcnZ2QUEc+V4ETjWzEcnv75sIJwfsfba0DwilfQPOA5YDzwFfjCDPzYS+xS7CX1QfBg4iHBh9NlmOTinbmYRuukXAk8ntvIjyHQs8keRbDPxzsj6KfEU557DzAHcU2QjHBZ5Kbku6fxciync8sCD5t/0NMCqWbEm+EcBGoKloXRT5gC8R/mhaDPwEqB5MNg33ISIiJQ33bigRERkAFQsRESlJxUJEREpSsRARkZJULEREpCQVC5GEmbUlyylm9q59/Nr/0OvxQ/vy9UXKTcVCZHdTgL0qFskIxv3ZpVi4++l7mUkkVSoWIrv7MnBWMjfBp5PBCb9qZvPNbJGZfRTAzOZYmN/jZ8DTybrfJAPxLekejM/MvgzUJq/302RddyvGktdenMwlcWnRa7cWzeHw0+QKXMzsy2b2TJLla0P+6ciwVJF2AJEIfQH4rLufD5B86W9295PMrBp40MzuSbY9GZjp7s8njz/k7q8lw43MN7NfufsXzOzjHgY47O1iwtXJxwFjkn0eSJ47ATiaMF7Zg8AZZvYMcBFwlLt79/AmIuWmloVIaX8BvC8Z+vxRwlAJ05LnHisqFAB/a2ZPAY8QBqmcRv/OBG72MFruOuB+4KSi117t7gXC0CpTgC3ADuB7ZnYxYaIdkbJTsRApzYBPeDIbmrsf6mFOAAjDZYeNzOYQBi88zcNsfU8ANQN47T3pKLqfByrcPUdozfwKeDvwu736SUQGScVCZHdbgYaix3cDf5MMz46ZHZGMzNpbE7DJ3beb2VGEqWe7dXXv38sDwKXJcZGxwBuAx/YULJlLpMnd7wI+RejCEik7HbMQ2d0iIJd0J/0nYf7nKcDjyUHmVwl/1ff2O+BKM1tEmLbykaLnbgQWmdnj7v7uovW3Eab3fYowou/n3f2VpNj0pQG43cxqCK2STw/uRxTZOxp1VkRESlI3lIiIlKRiISIiJalYiIhISSoWIiJSkoqFiIiUpGIhIiIlqViIiEhJ/x/8N7VhxzG1dQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot(T.J)\n", "plot(T.testJ)\n", "grid(1)\n", "xlabel('Iterations')\n", "ylabel('Cost')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Hours Study')" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "allOutputs = NN.forward(allInputs)\n", "\n", "#Contour Plot:\n", "yy = np.dot(hoursStudy.reshape(100,1), np.ones((1,100)))\n", "xx = np.dot(hoursSleep.reshape(100,1), np.ones((1,100))).T\n", "\n", "CS = contour(xx,yy,100*allOutputs.reshape(100, 100))\n", "clabel(CS, inline=1, fontsize=10)\n", "xlabel('Hours Sleep')\n", "ylabel('Hours Study')" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Test Score')" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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i8XIysoiLy9v3m5I49Hf309TU9O0MniFEPzud7/j4Ycf5r777uPTn/70nFXrkUiEc845R8/r+NSnPsUDDzyQlm319vbqkZQa8XZ0dPDAAw9w7733zlfs5CLpnugQQjA8PExtba2+UNfS0kJRURHr16/XHXV5eXkMDg5y6NAhvT+abNiKtkJujL20WCxj+sPTTdkafwya5ra0tPS4Eru5hM/no76+ntzcXFasWEE4HB5jYgDGBB5NNRoolYjH4zQ0NKAoCtXV1Uk/7fT29nLbbbdhtVp58skn53yqsHZT93g8xONxzj77bJ544omUV9bf/va36e7u5sYbbyQQCPD000/zrW99C4BPfvKTbN68mTvvvDOl20wSi6R7MkLrh+7atYs9e/awZ88eWltbEULwmc98hgsuuIAzzzxzVkYLLepPI+JIJKIbGDQCSubxW4s49Hg8KckEThUUReHQoUP4fD6qq6snjc+caMFSk2xNFYg/G2gTJqbTUxZC8Nvf/pZHHnmE+++/n0svvXTeb2yhUIizzz6bZ599lve9730peU9ZlrFYLDQ2NvLVr36Viy++mKqqKu677z6WLVvGddddRygU4le/+hVf/epX52MBdJF0TwVcdtll5Ofnc9lll3Hw4EFqa2t5++23kSSJM888UzdyVFVVzfhxebyBYWRkRI+9NPaHtSrQqG2dTtU9F9DCfIqKimYkmzMGHhmVAuOtzTNRTNTX1+tPKskqTHp6erjttttwOp088cQT875YqigKGzZsoLm5meuvv56vf/3rKd/GH//4R5544gm9oi8qKuLHP/4xL730EsFgkLKyMp5++umUbzcJLJLuqYBAIHBMpSaEIBAIsG/fPr0t0djYSG5uLhs2bGDDhg1s3rx5Vvba8VZWv9+PJElYrVYCgQAFBQXH7T/PJbRpt6qqpnwM+0RPBpOFwY+HUTFRXl6edEtAVVV+85vf8Oijj/If//EffPzjH5/36taI4eFhPvGJT/Dkk09y+umnz/h9FEXBbDajKAoA9913H3v37uWWW27h9ttv55Of/CQ33XQT+fn51NXVcdddd1FbW8vvf/971q1bl6rDSRanDun+4Q9/4Oabb0ZRFL7whS9w1113zfcuLThoF/eePXv02Ett7I6mH163bh0ej2dGF6+WUKYoCllZWQSDwTFjkbRKcK4f+Yw95bKysqTngc12m+PD4I2KCe3JQFEUPTinsrIy6fZLd3c3t956K16vl29961vzHnM5GR544AHcbndKZ5V94hOf4F//9V8555xz2LNnD0888QSXXnopF110ETabjSNHjvDkk09y7rnncuGFF6Zsu0li0gtn/mP/UwhFUbj++ut59dVX9bjGiy++mNNOO22+d21BQZIkCgoKuOSSS7jkkkuAxGfX2NjIrl27ePHFF7n//vuJxWKcccYZOhGfdtppU5KBceLFRJpb40ig9vZ2otHonI1FCoVC1NXV4Xa72bRp05zlN0iShNPpxOl06kYEY/Jcb28vBw8eJBqNkpWVRU5ODsFg8LiKCVVVeeGFF/jmN7/Jgw8+yMUXX7ygqtu+vj6sVitZWVmEw2H+93//d0YLWtrYLQ3XXXcdxcXF3HvvvSxfvpzDhw+zadMmNm/eTG5uLo888ghFRUW8//3vp6SkhLa2NiKRSCoPbdY4qUh3z549lJeXs2rVKgAuv/xyXnzxxUXSTQJms5mamhpqamr4/Oc/DyRkP3/5y1/YtWsXTz75JAcOHMDj8YwJ+dGCzZuamhgcHCQ/P5/NmzdP2Eqw2Wzk5+frj81GuZZm/031WCRt6kVvby9VVVULIl9CkiTdrt3V1UVeXh6rVq3Ss5g7OzsnlfCZTCa6u7u5+eabycnJ4fXXX09Z/GYq0dXVxZYtW1AUBVVV+cxnPjOjatPopHS73fzjP/4jl1xyCf/yL//CunXrOHjwIDt27OBDH/oQa9as4cCBA/pr9+/fzzvvvMMdd9yRsuNKBU6q9sKvf/1r/vCHP/C9730PgOeff57du3fz1FNPzfOenRwQQjAwMEBtba3elmhpaUGSJLxeL/fcc8+sQ+DHj0XSchVmMhZpZGSE+vp68vPzWbly5YLpKRunA1dVVZGdnT3hvxsfBv/II49w8OBBBgcH+dznPsc///M/U1FRsWCOK1Xo6urSjTvhcJjvfOc7LF26lI9//OO4XC6uv/56WlpaeOWVV3jsscf4/e9/j8ViwWKx8K1vfYvKykr9vebRDnxqtBcmuoEspEeuEx2SJJGXl8dHP/pRPvrRj7Jv3z6uvvpqrr76anJycnjttdf4xje+QSAQ4LTTTtMr4jVr1iTdvzXKsIqLi4GxKoHm5uYxAegT2XllWebQoUMEAgFOP/30BRN4Du+NzsnIyGDTpk1TthDMZjNZWVlkZWXR1dVFNBpl8+bNfOITn6ChoYF77rmHxx9/fL7E/ymHNs37z3/+M1arFZ/PR2FhIcFgkB07dlBRUcGmTZt4+umnWbZsGT/84Q+57bbb+OhHP0pjYyMf//jHgQQPCCEwmUwL8oZ0UpFucXExR48e1f+/vb09rWHMR48e5corr6S7uxuTycQ111zDzTffnLbtLTScdtppbN++XY84/OxnPwskerdaCPwPfvAD/vrXv2K1Wlm3bp3eHy4vL0/6grBYLOTk5Ix5jDYGoB89elTvD1ssFoaGhlixYgWVlZUL5qYrhKCtrW3ao3NUVeVnP/sZTz31FF/72te44IIL5uyY5vL8/ta3vkUsFuPf/u3fGBkZ4cEHHyQvL4//+7//42Mf+xjXX389b7zxhp4VfNlll3HVVVfpazZaC1FTOCyU730inFTtBS3I489//jNFRUVs2rSJn/3sZ6xevTot2+vq6qKrq4v169fj9/vZsGEDv/vd7xZ7yOMghMDn840JgdcmHhv7w7MJlYlEIhw8eJB4PI7H4yEYDOq5u3PtIhuPQCBAXV0d2dnZ05LOdXZ2ctNNN1FQUMBjjz025/3ouTi/Gxsbufnmm7FYLNx3332sXbuWPXv28B//8R+ce+653HjjjWRmZrJr1y6+853vUF1dTXZ2Nq2traxYsYJrr732mMW2BYJTRzL28ssvc8stt6AoCldddRX33nvvnG37klWoLxoAABJJSURBVEsu4YYbbuD888+fs22eqBBC0NHRwe7du/X+8MDAAJWVlXoI/Lp1647bv9Xe5+jRo8doW425uyMjI3rs5VyNRdLm7/X3909rdI6qqvzkJz/h2Wef5etf/zof+chHFgSppOP8vv/++3E6nccoG+rr63n22Weprq7mi1/8IiaTiVdffZUdO3bw2muv8dRTT+ma30XSPUXR2trKOeecw/79+xeU6+pEgqIoHDx4UK+G//KXvyCEYM2aNXo1XF1drcu9hoaGOHToEF6vl7KysqRkYHM1FknLcsjPz096dA4kWmI33XQTy5cv59FHH10w06HTcX4risL555/PPffcw4c//GFefPFFAoEAfX19/PM//zMvvfQSO3bs4NJLLyUWi5Gbm8v69ev11y9QstWwSLrpRCAQ4Nxzz+Xee+/l0ksvne/dOWmg6Vn37dvHnj172L17Nw0NDXrwTigU4tlnn6W8vHxWF18qxyKpqkpLSwtDQ0PU1NRMmuUw0et+/OMf893vfpdvfOMbnH/++QuGUNJxfmuqgu9973t84xvfQFVVfZpyZ2cnubm5vPTSSzzzzDP86le/IhgM8tvf/lZfNNR6twsYi6SbLsTjcS688EI+8pGPcOutt8737pz02L9/P5/73OdYu3YthYWF7N27l87OTkpLS8eEwGdkZMwqDS0UCulxj8mORRoeHqa+vp6CggJKSkqS3v7Ro0e58cYbWbVqFY888siCelJK5fk9WWW6Y8cOBgYG2LhxI3a7nZycHAoKCvjd737H+973PpqbmykvL5/VtucBi6SbDggh2LJlCzk5OXqc3CLSi97eXvx+P2VlZfrvtBB4LW1t3759RCKRY0LgZ9M2mGosksfjYWhoiHA4zGmnnTZmyvNUUFWVH/7whzz33HM89thjfOhDH1ow1S2k7vw2VqV+vx+r1YrD4ZhUQ9vZ2cm1117LE088QWlp6YTvcwJgkXTTgTfffJMPfOADnHHGGfrJ89BDD3HBBRekdbuKouiz1U7AgX1zgmg0qofA19bW6iHw69ev14m4tLR0VmqGeDxOR0cHbW1tOqFr4TZaa2Iyoj9y5Ag33HADlZWVPPLII0m3IeYSqT6/H3vsMd58802+8pWvHBN8o8kMa2tr2bp1K5/61Ke45557Zn0M84hF0j2Z8Pjjj7N37158Pt8i6SYJLQRe6w3X1tZy+PBhioqKdBLesGEDubm5SVWbsizT1NREOBympqYGp9OJEEK38mo9YuNYJE2j+8tf/pIf/OAHPPbYY/zd3/3dgqpuU4XxVey1115Lf38/TzzxBEVFRRO+5tlnn+WVV17hoYceWujKhGSwSLonC9rb29myZQv33nsvjz/++CLpzgJaQI/WlqitrWVkZITq6mrdxLF27VqcTueY101ndI5xLNJ9993Hzp07iUQiXHTRRZx11ll89rOfXTATmVMFI1E++uijXHjhhfziF7+guLiY973vfbz77rsEg0E+8pGPsGLFCj2Q3Ng+UFUVSZJOVMKFU8UGfCrglltu4ZFHHtEDURYxc5hMJlauXMnKlSu5/PLLgUTL4MCBA+zatYuf/vSn3HHHHZhMJtatW0d1dTWvvvoqV155JR/5yEeSsjZrKWM/+9nPqK+v50c/+hGbNm3inXfeYe/evXOWdjYXMLrBBgYGePTRRzly5AgXXXQRa9as4b777uO8884jFosRCoWor6/n8ccf1z8DI+EuRPtuqrBY6Z5AeOmll3j55Zd55pln2LZtG48++uhipZtmaCHw3/72t3nqqadYs2YNHR0dLFmyRHfTbdq0adJ5b4cPH+bGG2/kjDPO4KGHHprzHIirrrqKl156iSVLlrB///452+4LL7zA1VdfzUsvvcS5554LJHTVWrjPV7/6VbKysrj++uvnbJ/mGIvthZMBd999N88//zwWi0XXll566aX85Cc/me9dO6khhODhhx/mC1/4Avn5+XoYujEEvre3Vw+B37hxI2vXruXnP/85zz//PE888QQf+MAH5uVR+Y033sDj8XDllVemhXS1VoIWMnPhhRdy5513cu6557JlyxYkSeKHP/whkMg0Pnz4MHfccQeqqvLss8+OUSecZJi65zTFzyIWKF577TXxsY99LO3bGRoaEp/85CdFVVWVqK6uFjt27Ej7Nk9EyLIsDhw4IP7zP/9TfPGLXxQrVqwQn/70p0UwGJzvXROHDx8Wq1evTus2IpGIEEKIr3/966KyslIIIURdXZ249NJLxc9//nMhhBChUEj8z//8j3j66af116mqmtb9mkdMyquLpJtGPP3002JgYCAt7z1XpHvllVeK5557TgghRDQaFUNDQ2nf5smAhUQmqSZdRVH0//r9fvHQQw+Jl19+Wf/7c845R9x4441CCCF+9rOfib//+78XLS0tY14rROJGdRJjUl5dbC+kESaTif7+fj2SsLa2Fr/fz7nnnntCiLx9Ph9r167Vg8oXcWKitbWVCy+8MCXthYkWuW6//XasVitbtmyhurqawcFBCgsLefPNN9m4cSO33XYbF154Ieedd96st38CYdIL5uRdIpxn7N+/n9LSUp1wo9Eo27dv56c//emYVVptnMlCREtLC/n5+Xz+859n3bp1fOELXyAYDM73bi1iniBGg8Hr6+u59NJL+dKXvsSvfvUrHnzwQTo6Oti1axdDQ0Pk5ORw9tlnc9FFFwHw8MMPn2qEOyUWSTdN2L17N7Is09nZiaqq2O12TCYTNTU1wHsnsNlsHlM5LCQClmWZt956i+uuu46//OUvuN1uHn744fnerUXMIbq7u3nwwQfp6+tDkiTeeecdPvOZz/ChD32ITZs2cffdd7Nt2zZu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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#3D plot:\n", "\n", "##Uncomment to plot out-of-notebook (you'll be able to rotate)\n", "#%matplotlib qt\n", "\n", "from mpl_toolkits.mplot3d import Axes3D\n", "fig = plt.figure()\n", "ax = fig.gca(projection='3d')\n", "\n", "ax.scatter(10*X[:,0], 5*X[:,1], 100*y, c='k', alpha = 1, s=30)\n", "\n", "\n", "surf = ax.plot_surface(xx, yy, 100*allOutputs.reshape(100, 100), \\\n", " cmap=cm.jet, alpha = 0.5)\n", "\n", "ax.set_xlabel('Hours Sleep')\n", "ax.set_ylabel('Hours Study')\n", "ax.set_zlabel('Test Score')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And that’s it, we’ve trained and evaluated an Artificial Neural Network to predict your score on a test based on how many hours you’ve slept and studied the night before. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The End

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I’ve really enjoyed making these videos, and wanted to say a big thank you to everyone who’s watched and commented. I want to point out that supporting iPython notebooks are linked below and available at welchlabs.com/blog. To be kept up to date on future videos, follow @stephencwelch on twitter, thanks!" ] } ], "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": 1 }