diff --git a/autograd.py b/autograd.py deleted file mode 100644 index 21556e4..0000000 --- a/autograd.py +++ /dev/null @@ -1,15 +0,0 @@ -import torch -from torch import autograd - -device = torch.device('mps') - -x = torch.tensor(1.) -a = torch.tensor(2., requires_grad=True) -b = torch.tensor(2., requires_grad=True) -c = torch.tensor(3., requires_grad=True) - -y = a ** 2 * x + b * x + c ** 3 - -print('before:', a.grad, b.grad, c.grad) -grads = autograd.grad(y, [a, b, c]) -print('after:', grads[0], grads[1], grads[2]) diff --git a/lab/4_logistic-regression.ipynb b/lab/4_logistic-regression.ipynb new file mode 100644 index 0000000..c7e66fa --- /dev/null +++ b/lab/4_logistic-regression.ipynb @@ -0,0 +1,246 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# 导入必要的库\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.datasets import make_classification\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import accuracy_score" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAHHCAYAAABHp6kXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABmb0lEQVR4nO3dd3hT5fvH8feTtE0XbSmUJRsUFJGpyJ6CighuFBVQcW9/KnxVEBdOXCBuUBQHKm5AVEQBxQWIKFNEZI/SPZPn90dppHSlpWma8nldVy7IOc855z5Jm9x9prHWWkRERESCnCPQAYiIiIhUBCU1IiIiUi0oqREREZFqQUmNiIiIVAtKakRERKRaUFIjIiIi1YKSGhEREakWlNSIiIhItaCkRkRERKoFJTUiAdSnTx/69OlTYedr2rQpo0aNqrDzCRhjuPfeewMdhoj4QEmNCDBjxgyMMfz888+BDqVUS5cu5d5772X//v1+vU7Tpk0xxngfUVFRnHTSSbz++ut+va7kuffeewu8/pGRkTRu3JghQ4Ywffp0srKyyn3uzz//vEolag899BAffvhhoMOQaiAk0AGIHMm++OKLMh+zdOlSJk6cyKhRo4iLiyuwb+3atTgcFfe3Svv27bntttsA2L59Oy+//DIjR44kKyuLMWPGVNh1qrKMjAxCQgL3UTlt2jSio6PJyspi69atzJ8/n8suu4ynnnqKTz/9lEaNGpX5nJ9//jlTp06tMonNQw89xLnnnsuwYcMCHYoEOSU1IgEUFhZWoedzuVwVer6jjjqKiy++2Pt81KhRNG/enCeffLLSk5q0tDSioqIq9ZoA4eHhlX7Ng5177rnUrl3b+3z8+PG8+eabXHrppZx33nn88MMPAYxOpGpR85NIGSxfvpzTTjuNmJgYoqOj6d+/f5FfKr/99hu9e/cmIiKChg0b8sADDzB9+nSMMfz999/eckX1qXn22Wdp06YNkZGR1KxZk86dOzNr1iwgr0ni9ttvB6BZs2bepon8cxbVp2b//v3ccsstNG3aFJfLRcOGDbn00kvZs2dPme8/ISGB1q1bs3HjxgLbPR4PTz31FG3atCE8PJy6dety1VVXkZiYWKjcvffeS4MGDYiMjKRv37788ccfheLObw5ctGgR1157LXXq1KFhw4be/XPnzqVnz55ERUVRo0YNBg8ezOrVqwtca8eOHYwePZqGDRvicrmoX78+Q4cOLfD6//zzzwwaNIjatWsTERFBs2bNuOyyywqcp6g+Nb78HOTfw5IlS7j11ltJSEggKiqKs846i927d/v6khdpxIgRXHHFFSxbtowFCxZ4t3/33Xecd955NG7cGJfLRaNGjbjlllvIyMjwlhk1ahRTp0713lv+I9/jjz9Ot27dqFWrFhEREXTq1In33nuvUAwLFiygR48exMXFER0dTatWrfjf//5XoExWVhYTJkygZcuW3njuuOOOAk1nxhjS0tJ47bXXvLGoX5iUl2pqRHy0evVqevbsSUxMDHfccQehoaG88MIL9OnTh0WLFtGlSxcAtm7dSt++fTHGMG7cOKKionj55Zd9qkV56aWXuPHGGzn33HO56aabyMzM5LfffmPZsmVcdNFFnH322axbt4633nqLJ5980vsXfEJCQpHnS01NpWfPnvz5559cdtlldOzYkT179vDxxx/z77//FqgB8EVubi7//vsvNWvWLLD9qquuYsaMGYwePZobb7yRTZs2MWXKFJYvX86SJUsIDQ0FYNy4cTz66KMMGTKEQYMGsXLlSgYNGkRmZmaR17v22mtJSEhg/PjxpKWlATBz5kxGjhzJoEGDeOSRR0hPT2fatGn06NGD5cuX07RpUwDOOeccVq9ezQ033EDTpk3ZtWsXCxYs4J9//vE+HzhwIAkJCYwdO5a4uDj+/vtvPvjggxJfA19/DvLdcMMN1KxZkwkTJvD333/z1FNPcf311/POO++U6bU/1CWXXMKLL77IF198wSmnnALA7NmzSU9P55prrqFWrVr8+OOPPPvss/z777/Mnj0byHuvtm3bxoIFC5g5c2ah8z799NOceeaZjBgxguzsbN5++23OO+88Pv30UwYPHux9Dc444wxOOOEE7rvvPlwuFxs2bGDJkiXe83g8Hs4880wWL17MlVdeybHHHsuqVat48sknWbdunbcPzcyZM7niiis46aSTuPLKKwFo0aLFYb02cgSzImKnT59uAfvTTz8VW2bYsGE2LCzMbty40btt27ZttkaNGrZXr17ebTfccIM1xtjly5d7t+3du9fGx8dbwG7atMm7vXfv3rZ3797e50OHDrVt2rQpMdbHHnus0HnyNWnSxI4cOdL7fPz48RawH3zwQaGyHo+nxOs0adLEDhw40O7evdvu3r3brlq1yl5yySUWsNddd5233HfffWcB++abbxY4ft68eQW279ixw4aEhNhhw4YVKHfvvfdaoEDc+e9Hjx49bG5urnd7SkqKjYuLs2PGjClwjh07dtjY2Fjv9sTERAvYxx57rNj7mzNnTqnvubXWAnbChAne577+HOTfw4ABAwq81rfccot1Op12//79JV53woQJFrC7d+8ucn/+PZ511lnebenp6YXKTZo0yRpj7ObNm73brrvuOlvcx/+h58jOzrbHH3+87devn3fbk08+WWJs1lo7c+ZM63A47HfffVdg+/PPP28Bu2TJEu+2qKioAu+/SHmp+UnEB263my+++IJhw4bRvHlz7/b69etz0UUXsXjxYpKTkwGYN28eXbt2pX379t5y8fHxjBgxotTrxMXF8e+///LTTz9VSNzvv/8+7dq146yzziq07+Amh+J88cUXJCQkkJCQQNu2bZk5cyajR4/mscce85aZPXs2sbGxnHLKKezZs8f76NSpE9HR0SxcuBCAr776itzcXK699toC17jhhhuKvf6YMWNwOp3e5wsWLGD//v1ceOGFBa7ldDrp0qWL91oRERGEhYXxzTffFGoCy5ffyfrTTz8lJyen1NcCyvZzkO/KK68s8Fr37NkTt9vN5s2bfbpmcaKjowFISUnxbouIiPD+Py0tjT179tCtWzestSxfvtyn8x58jsTERJKSkujZsye//vqrd3v+a/fRRx/h8XiKPM/s2bM59thjad26dYH3ql+/fgDe90qkIimpEfHB7t27SU9Pp1WrVoX2HXvssXg8HrZs2QLA5s2badmyZaFyRW071J133kl0dDQnnXQSRx99NNddd12BKv2y2rhxI8cff3y5j+/SpQsLFixg3rx5PP7448TFxZGYmFigg/P69etJSkqiTp063gQo/5GamsquXbsAvF/ih74O8fHxhZqz8jVr1qzA8/Xr1wPQr1+/Qtf64osvvNdyuVw88sgjzJ07l7p169KrVy8effRRduzY4T1X7969Oeecc5g4cSK1a9dm6NChpQ6VLsvPQb7GjRsXeJ5/r8UlW75KTU0FoEaNGt5t//zzD6NGjSI+Pp7o6GgSEhLo3bs3AElJST6d99NPP+Xkk08mPDyc+Ph4EhISmDZtWoHjL7jgArp3784VV1xB3bp1GT58OO+++26BBGf9+vWsXr260Pt0zDHHAHjfK5GKpD41IlXIsccey9q1a/n000+ZN28e77//Ps899xzjx49n4sSJlR5P7dq1GTBgAACDBg2idevWnHHGGTz99NPceuutQF7fiTp16vDmm28WeY7i+vv44uBag/xrQV4/jHr16hUqf/DQ65tvvpkhQ4bw4YcfMn/+fO655x4mTZrE119/TYcOHTDG8N577/HDDz/wySefeIdKP/HEE/zwww/empDDdXBN08GstYd13t9//x34L0l0u92ccsop7Nu3jzvvvJPWrVsTFRXF1q1bGTVqVLE1Kgf77rvvOPPMM+nVqxfPPfcc9evXJzQ0lOnTp3s7q0Pe+/Ltt9+ycOFCPvvsM+bNm8c777xDv379+OKLL3A6nXg8Htq2bcvkyZOLvFZ5hqKLlEZJjYgPEhISiIyMZO3atYX2rVmzBofD4f2QbtKkCRs2bChUrqhtRYmKiuKCCy7gggsuIDs7m7PPPpsHH3yQcePGER4e7lOzUb4WLVp4v/wqwuDBg+nduzcPPfQQV111FVFRUbRo0YIvv/yS7t27F0pCDtakSRMg73U4uAZm7969Ptda5HcgrVOnjjfZKq38bbfdxm233cb69etp3749TzzxBG+88Ya3zMknn8zJJ5/Mgw8+yKxZsxgxYgRvv/02V1xxRaHzleXnwN/yO/kOGjQIgFWrVrFu3Tpee+01Lr30Um+5g0dH5SvuZ+j9998nPDyc+fPnF+jYPn369EJlHQ4H/fv3p3///kyePJmHHnqIu+66i4ULFzJgwABatGjBypUr6d+/f6k/s2X5mRYpiZqfRHzgdDoZOHAgH330UYEhwTt37mTWrFn06NGDmJgYIO9L5vvvv2fFihXecvv27Su2JuNge/fuLfA8LCyM4447Dmutt99H/lwtvswofM4557By5UrmzJlTaF95awruvPNO9u7dy0svvQTA+eefj9vt5v777y9UNjc31xtn//79CQkJYdq0aQXKTJkyxedrDxo0iJiYGB566KEi+8HkD5VOT08vNKKqRYsW1KhRw9u8lJiYWOg1yO8HVVwTVFl+Dvxp1qxZvPzyy3Tt2pX+/ft7Y4OC76u1lqeffrrQ8cX9DDmdTowxuN1u77a///670Gy/+/btK3TOQ1+7888/n61bt3p/Tg6WkZHhHc2WH4+/Z8iWI4NqakQO8uqrrzJv3rxC22+66SYeeOAB79wc1157LSEhIbzwwgtkZWXx6KOPesvecccdvPHGG5xyyinccMMN3iHdjRs3Zt++fSX+VTpw4EDq1atH9+7dqVu3Ln/++SdTpkxh8ODB3r4TnTp1AuCuu+5i+PDhhIaGMmTIkCInprv99tt57733OO+887jsssvo1KkT+/bt4+OPP+b555+nXbt2ZX6NTjvtNI4//ngmT57MddddR+/evbnqqquYNGkSK1asYODAgYSGhrJ+/Xpmz57N008/zbnnnkvdunW56aabeOKJJzjzzDM59dRTWblyJXPnzqV27do+/bUeExPDtGnTuOSSS+jYsSPDhw8nISGBf/75h88++4zu3bszZcoU1q1bR//+/Tn//PM57rjjCAkJYc6cOezcuZPhw4cD8Nprr/Hcc89x1lln0aJFC1JSUnjppZeIiYnh9NNPLzYGX38OKsp7771HdHQ02dnZ3hmFlyxZQrt27bzDtAFat25NixYt+L//+z+2bt1KTEwM77//fpG1YPk/QzfeeCODBg3C6XQyfPhwBg8ezOTJkzn11FO56KKL2LVrF1OnTqVly5b89ttv3uPvu+8+vv32WwYPHkyTJk3YtWsXzz33HA0bNqRHjx5A3pDzd999l6uvvpqFCxfSvXt33G43a9as4d1332X+/Pl07tzZG8+XX37J5MmTadCgAc2aNSs0NF7EJwEceSVSZeQPvy3usWXLFmuttb/++qsdNGiQjY6OtpGRkbZv37526dKlhc63fPly27NnT+tyuWzDhg3tpEmT7DPPPGMBu2PHDm+5Q4d0v/DCC7ZXr162Vq1a1uVy2RYtWtjbb7/dJiUlFTj//fffb4866ijrcDgKDO8+dEi3tXnDya+//np71FFH2bCwMNuwYUM7cuRIu2fPnhJfkyZNmtjBgwcXuW/GjBkWsNOnT/due/HFF22nTp1sRESErVGjhm3btq2944477LZt27xlcnNz7T333GPr1atnIyIibL9+/eyff/5pa9WqZa+++upC70dxw60XLlxoBw0aZGNjY214eLht0aKFHTVqlP3555+ttdbu2bPHXnfddbZ169Y2KirKxsbG2i5duth3333Xe45ff/3VXnjhhbZx48bW5XLZOnXq2DPOOMN7jnwcMqQ7/9jSfg6Ku4eFCxdawC5cuLDIe8uXP6Q7/xEeHm4bNmxozzjjDPvqq6/azMzMQsf88ccfdsCAATY6OtrWrl3bjhkzxq5cubLQe5Wbm2tvuOEGm5CQYI0xBYZ3v/LKK/boo4+2LpfLtm7d2k6fPt0bS76vvvrKDh061DZo0MCGhYXZBg0a2AsvvNCuW7euQDzZ2dn2kUcesW3atLEul8vWrFnTdurUyU6cOLHAz/SaNWtsr169bERERKHh/SJlYaw9zN5qIuKTm2++mRdeeIHU1NRiO48eifbv30/NmjV54IEHuOuuuwIdjogEMfWpEfGDg6elh7y+MjNnzqRHjx5HdEJz6OsC8NRTTwEUWi5CRKSs1KdGxA+6du1Knz59OPbYY9m5cyevvPIKycnJ3HPPPYEOLaDeeecdZsyYwemnn050dDSLFy/mrbfeYuDAgXTv3j3Q4YlIkFNSI+IHp59+Ou+99x4vvvgixhg6duzIK6+8Qq9evQIdWkCdcMIJhISE8Oijj5KcnOztPPzAAw8EOjQRqQbUp0ZERESqBfWpERERkWpBSY2IiIhUC0dUnxqPx8O2bduoUaOGpuUWEREJEtZaUlJSaNCgAQ5H8fUxR1RSs23bNi2iJiIiEqS2bNlCw4YNi91/RCU1+dPMb9mypVLWZxEREZHDl5ycTKNGjbzf48U5opKa/CanmJgYJTUiIiJBprSuI+ooLCIiItWCkhoRERGpFpTUiIiISLWgpEZERESqBSU1IiIiUi0oqREREZFqQUmNiIiIVAtKakRERKRaCJqkZtq0aZxwwgneifO6du3K3LlzAx2WiIiIVBFBM6Nww4YNefjhhzn66KOx1vLaa68xdOhQli9fTps2bQIdnoiIyBHJ5v6DTX8dMueCzYSQYzCRF0P4aRhTuXUnxlprK/WKFSg+Pp7HHnuMyy+/3KfyycnJxMbGkpSUpGUSREREDpPN/hG77wogB3Af2OoAPBA+GBP7OMY4D/s6vn5/B01NzcHcbjezZ88mLS2Nrl27FlsuKyuLrKws7/Pk5OTKCE9ERKTaszYDm3gtkA14Dtpz4P+Zn0NoR4i6pNJiCpo+NQCrVq0iOjoal8vF1VdfzZw5czjuuOOKLT9p0iRiY2O9j0aNGlVitCIiItVYxmdgkymY0BRk01+jMhuEgqr5KTs7m3/++YekpCTee+89Xn75ZRYtWlRsYlNUTU2jRo3U/CQiIlIK60mFrIXgSQTnUeDqhTGh3v2epLsgYw6QW+J5TJ2fMI7Yw4qlWjY/hYWF0bJlSwA6derETz/9xNNPP80LL7xQZHmXy4XL5arMEEVERIKatRbSXsKmTgEy8faRccRDzERM+KADJX3tK3P4fWp8FVTNT4fyeDwFamJERETkMKW9iE19nLyEBrzNS55E7P4bsZkLATCu7pRcS+OAkDYYR7Qfgy0oaGpqxo0bx2mnnUbjxo1JSUlh1qxZfPPNN8yfPz/QoYmIiFQL1pN6oIamyL2AwaY8Bq4+4Oqf1yzl3sF/I58O5sFEjfFbrEUJmqRm165dXHrppWzfvp3Y2FhOOOEE5s+fzymnnBLo0ERERKqHrC+BklpALLg3QO56TOgxUPMV7L5LwbMLMHn7cQJuTPQNmIjTKyNqr6BJal555ZVAhyAiIlK9eRL5Lzkpqdw+AExIc6g9DzI/wWbOB5sOIa0xkcMxocWPTvaXoElqRERExL+sTafUhAawjjqYA/83jmiIvBATeaFfY/NFUHcUFhERkQqU/btPxUzOz34OpHyU1IiIiEgeH5MVmz7Tz4GUj5IaEREROcCUXgQgd6N/wygnJTUiIiKSJ6wrPiU2JszvoZSHkhoREREBwESNpPSOwg5wnVoZ4ZSZkhoREREBwIR1hBr/K6WUAxM1qjLCKTMlNSIiIuLliBoFcS+COXh5gwNNUiYSU3MaJrR1IEIrleapERERkQIc4X2wrh8haxE2axGQgwk9HsKHVupaTmWlpEZEREQKMSYEwvtjwvsHOhSfqflJREREqgUlNSIiIlItKKkRERGRakFJjYiIiFQLSmpERESkWlBSIyIiItWCkhoRERGpFpTUiIiISLWgpEZERESqBSU1IiIiUi1omQQREREfWE8yZLyPzfwMPKkQ0hITeSGEdcMYE+jwBCU1IiIipbK5m7D7LgbPHsDmbXRvxmZ9ARHnQcz9GKPGj0DTOyAiIlICaz3YxKvAsw9vQgOAO++fjNmQ/kYgQpNDKKkREREpSfZicP+NN4kpgk17FWs9lRaSFE1JjYiISAls9jJK7a3h2Qae7ZUSjxRPSY2IiEiJbOlFAKyP5cRvlNSIiIiUwIR2AnJLLuSoC876lRKPFE9JjYiISElcfcDRAHAWW8REjcKY4vdL5VBSIyIiUgJjnJiaL4KpQcGvzQNJTPhgiBwVgMjkUJqnRkREpBQm9BioPRcy3sFmfAI2f/K9i8DVX3PUVBFKakRERHxgnLUg+lpM9LWBDkWKodRSREREqgUlNSIiIlItqPlJRESCmrUWcn7CZn0PuDGhHcDVS6ORjkBKakREJGhZ91Zs4tWQu5a80UgGSy44G0LcNExoq0CHKJVIzU8iIhKUrCcdu+8SyN1wYIsb7yR57m3YvRdj3bsDFZ4EgJIaEREJTpkfg/tfil5o0gMkYZPuzGuekiOCkhoREQlKNvMzwJRcKHsxNmVSpcQjgaekRkREgpMnCZ8Wm0yfgc1Z4/dwJPCU1IiISHAKaUlJ6zH9x4nNmO3vaKQKUFIjIiJByURcQNH9aQ7lhtwt/g5HqgAlNSIiEpzCToKI830o6ARHrN/DkcBTUiMiIkHJGIOJuQ9CO5VS0o2JOKNSYpLAUlIjIiJByxgHJvZRMNEU/ZXmhNAOENazskOTAFBSIyIiQc2ENMLEvwHOow5sceL9egvrgan5Esbo6+5IoGUSRESkSrM2GwjFmOLnpDGhx0HtBZC9FHJ+BxMKrt6YkJaVF6gEnJIaERGpcqwnDdJfx6bPAs9OIBQbfjomagwm9JgijzHGAa4eeQ85IimpERGRKsV6UrF7LwT3Ov6bXC8HMj/FZs6Fmq9gXF0CGaJUUWpkFBGRKsNai028DNxrKTxbcN6ClXb/jQeapEQKUlIjIiJVhk19DHJWlFDCAzYRMr+srJAkiCipERGRKsG690Daqz6UDMHm/un3eCT4KKkREZGqIfNzfFqgEg/GuPwdjQQhJTUiIlIlWE8ivi1Q6QFXX3+HI0EoaJKaSZMmceKJJ1KjRg3q1KnDsGHDWLt2baDDEhGRCmKc9fBpgcqQTpjQNn6PR4JP0CQ1ixYt4rrrruOHH35gwYIF5OTkMHDgQNLS0gIdmoiIVITw04GwksuYGpj4aZUSjgQfY631pQGzytm9ezd16tRh0aJF9OrVy6djkpOTiY2NJSkpiZiYGD9HKCIiZWXTZmJT7i9ijwHCoNb7OIqZfE+qL1+/v4N28r2kpCQA4uPjiy2TlZVFVlaW93lycrLf4xIRkfIzUZeAIwqb8uSBmYQPCO2IiZlQ7GzCIhCkNTUej4czzzyT/fv3s3jx4mLL3XvvvUycOLHQdtXUiIhUbda6IWcl2BRwNsaENAt0SBJAvtbUBGVSc8011zB37lwWL15Mw4YNiy1XVE1No0aNlNSIiPjIWps32Z11g6OWVruWgKi2zU/XX389n376Kd9++22JCQ2Ay+XC5dJcBiIiZWWthcwPsakvgXtD3kZHfYgaCZEjMcaXodcilStokhprLTfccANz5szhm2++oVkzVUWKiPiLTX0c0l4ir4PuAZ7t2JRHIPtXiHtaiY1UOUFTj3jdddfxxhtvMGvWLGrUqMGOHTvYsWMHGRkZgQ5NRKRasTm/HUhooPAMvxayvoDMuZUdlkipgiapmTZtGklJSfTp04f69et7H++8806gQxMRqVZs2tuUPLOvA5v+ZmWFI+KzoGp+EhGRSpC7lpJn9vVA7rrKikbEZ0FTUyMiIpXEEU2BvjRFMZGVEopIWSipERGRAkz4qZS8WrYTwgdXVjgiPlNSIyJyhLI5q7EZH2Ezv8B6Uv/bEX4mOOpRdL8aBxgXJvLiygpTxGdB06dGREQqhs1Zg00aC7l/HLQ1HBt1OSb6BowjCuJnYhOvAPdm/vuqyAUTi6n5PCak5HnCRAJBSY2IyBHE5m7C7rsQ7KHTYWRC2lSsJxkTew8mpAnUngdZ32KzlwK5mNCOED4IY0pZSVskQJTUiIhUczb3b8j8DOtJguyfwWYCnqILZ8zERo3EhDTOm1wvvC8mvG9lhitSbkpqRESqKWtzsEnjIfN9/usfU9JQbQAnNuNDTI0b/RydSMVTUiMiUk3Z5Ach84MDz0pLZvIZ8OzxV0gifqXRTyIi1ZB174KMtyl5aHZRPBhnHX+EJOJ3SmpERKqjrK8pe0JD3jHhwyo4GJHKoaRGRKQ6smmU6yM+crSGa0vQUp8aEZEgY202EIIxJSQtzmb43o8GMNGYqDEQddXhhicSMEpqRESCgLVZkP4GNm0meLYBTqxrACb6Skxo28IHuHqBozZ49lJ0M5QTQk/ERF0EJgLCumBMuJ/vQsS/lNSIiFRx1mZh942GnF/4L0FxQ9aX2KwvIW4KJrx/gWOMCYHYx7CJY8ibk+bgeWmc4IjDxD6kpiapVtSnRkSkqkt7GXJ+pXCNixvwYJNuK7h20wHG1R0TPwvCuvHfqtuhED4UU+sDJTRS7aimRkSkCrPWjU1/g2JnAMbmLXmQ+QlEXlhorwlrj4l/FevZD55kcNTKW9tJpBpSTY2ISFXm2X+gX0xJLDb9PawnsdgSxhGXt/SBEhqpxpTUiIgEiLXZWPf2EpMRfF08MncVds+Z2NwtFROcSBBSUiMiUsmsJxVPyqPYXSdjd/fG7uqCZ+8F2KxvC5U1jhoQ2gGfPq49e7BJt1R8wCJBQkmNiEglsp5U7L4LIe1VsAd17s1ZiU0cg01/v9AxJupqiu9TczA35PyGzfm9wuIVCSZKakREKpFNexFy11M4SfEAFps8vlBzlAnvi4m5F98+sg1k/1ohsYoEGyU1IiKVxFo3pL9FybUuuZDxYaGtJvIiiHvGtwsZDWyVI5OSGhGRyuLZDzaplEJObO6GIvcYV08wpY1eshDWtTzRiQQ9JTUiIpXFRPDfJHgllSs6cTEmAiIvKeEcTgjrjQlpVt4IRYKakhoRkUpiHJEQ1h1wllAqFxN+avHniL4BXAMPPMs/z4GP8pBWmLjHKiBSkeCkhlcRkUpkoq/B7ltKXm3LocseOCG004Eh3MUcb0Lz+tZkL8Wmvwvuf8ERj4kYBuGnYHyd10akGlJSIyJyGGzO79iMOeDeDc4ETMRZmNDjiy1vwk6EuCex+8cCmeTVtljADaGdMTWnYEzJTVTGGHB1x7i6V+StiAQ9JTUiIuXg8WRD4pWQs5S85h8LOLDpM7HhQzCxD+fVqhTBhJ8GdXpC5qfY3PVgwjGugRB6QqkJjYgUT0mNiEgZ2exf8hIam3JgS/4QbXfeP5mfYPFg4p4s9hzGEQ2Rw33pNiwiPlJHYRGRMrA5f2L3XXpQQlOMzM/wZMytnKBEBFBSIyJSJjb1Wbw1MqVJvhtrc/0aj4j8R0mNiIiPrCcNsr7Gt3WYyKvNKWKRShHxDyU1IiK+sin4nNAAYMC9yV/RiMghlNSIiPjKEUfJE+cdyoKp4adgRORQSmpERHxkTDg4m5fhiBAIH+C3eESkICU1IiJl4erie9nISzCOeP/FIiIFKKkRESkDE36mbwXDR2Bq3O7fYESkAE2+JyLVmvWk5k2Gl/kF2AwIbYOJGI4JPbp8JwxtB6EdIWclxQ7trjEeR9TF5Y5ZRMpHSY2IVFs2dwN230jw7Ma7gGTOSmz6TIj+P0z0lWU+pzEGaj6H3Xc55K4mr+Owh7yKbw8m+jaMEhqRgFBSIyLVkrXZeYmHZ1/+lgP/5tWu2NTHIaQFJrx/mc9tHPFQ6z3I/g6bMRdsGoQ0w0SchwlpXDE3ICJlpqRGRKqnzC/Bs72EAgab9nK5khoAY5zg6oNx9SnX8SJS8dRRWESqJZu9GEpcLtJCzi9Ym1VZIYmInympEZHqybOf/5qcSqC1mUSqDSU1IlI9ubf6VMzadD8HIiKVRUmNiFRP1sc1mnL/8m8cIlJp1FFYRKoMm70SmzEb3JvB1MREnAGufhgTgrX2wEimXHDUzuuoWxJHzWKnkSnAWb8iQheRKkBJjYgEnLUebPK9kPE2efO+uAEHNmsehByPjTgfMt6A3HV5B5hoLKF5q2abGIg4ExM1CuNs8N9JI0dC0g8lX9jE4tAQbJFqQ81PIhJ46dMPJDTwX/XKgeaj3NWQMh5y1/9X3qaCTQRywe6D9JnYPUOwOX94i5jwfuAopRYm+uYKugERqQqU1IhIQFmbg017uaQSh/xbFDfYdOz+G7AH+tIYYzC1Pig+sYm6EkfUiPKELCJVlJqfRCSwcteDZ28FnMgN7i2QvQRcPQEwzlqQsBCbtRDS386r4Qk5DhN9ecGmKhGpFpTUiEiAVeQ8MU7IWeVNagCMceTNGlzOmYNFJHio+UlEAsvZHHBV0Mks+ltN5MilpEZEAso4oiHyHCrm48hToJZGRI4sQZXUfPvttwwZMoQGDRpgjOHDDz8MdEgiUgFM9P9ByHHkrdV08HpNzgPPffmockLoyZjQY/0RoogEgaBKatLS0mjXrh1Tp04NdCgiUoGMIxpT602Ivg0c8eQlMiHgbAExDx5ooiJvW6FFKg98jIW0wtR8qrJCFpEqKKgan0877TROO+20QIchIv7g3g3pbx4YCWWAXHBvhOT/QeQYCBsH2d8B7rzEJ3c7eLaAicVEDAZXf4wJqo80Ealg1foTICsri6ysLO/z5OTkAEYjIsWx1o1NvAI8u/K3HPj3wER86S9hQltiYv4XiPBEJEgEVfNTWU2aNInY2Fjvo1GjRoEOSUSKkv0duP+m+MWaDDb1pbz1n0REilGtk5px48aRlJTkfWzZsiXQIYlIEWzWEkquOLbg3nBgaQQRkaJV6+Ynl8uFy1VR81+IiP/4spw2YCtyoj4RqW6qdU2NiAQHE9qBUmcWdtQDR+1KiUdEglNQJTWpqamsWLGCFStWALBp0yZWrFjBP//8E9jAROTwhA86MJS7uI8kg4kaiTFB9ZElIpUsqD4hfv75Zzp06ECHDh0AuPXWW+nQoQPjx48PcGQiwclai7WZWJsT0DiMCcPEPQ8mnLwJ9/Id+IhynQKRIwMRmogEkaDqU9OnTx+NfhCpANbmQvrb2PTXwL0ZMNiwrpioMRhX94DEZMLaQ+3PsGkzIfMzsOkQcjQmcgSEn44xzlLPISJHNmOPoCwhOTmZ2NhYkpKSiImJCXQ4IgFhrRu7/0bIWkDeJHeHfgSEgasPJmo0JqxTACIUESnI1+/voGp+EpEKkPH+gYQGCic0ANmQ9SV230XY9LcrMzIRkcOipEbkCGPTZ1J4/aRDeQCLTZ6Azd1YCVGJiBw+JTUiR5rc9RRdQ1MUBzb9LX9GIyJSYcqU1GRkZLB48WL++OOPQvsyMzN5/fXXKywwEalY1rMfm/oSvic0AG7IWnxglJQnr4OxiEgV5XNSs27dOo499lh69epF27Zt6d27N9u3b/fuT0pKYvTo0X4JUkQOj83diN1zOjb1ccqW1ADuv7C7OmB3HofdeRye3adi02cpwRGRKsfnpObOO+/k+OOPZ9euXaxdu5YaNWrQvXt3TXwnUsVZ68EmXg2eRMqc0HhPkk5ePxvAvQmbfC92/w1KbESkSvE5qVm6dCmTJk2idu3atGzZkk8++YRBgwbRs2dP/vrrL3/GKCKHI/u7A3PR+Li+UqkOJEZZX0HGOxV0ThGRw+dzUpORkUFIyH9z9RljmDZtGkOGDKF3796sW7fOLwGKSPnZ3I3Y1KmUPtqpPAw2Tf3oRKTq8HlG4datW/Pzzz9z7LHHFtg+ZcoUAM4888yKjUxEys1aNzb5Psh4i6In2KuQq+Q1RdkcjAn1w/lFRMrG55qas846i7feKnpo55QpU7jwwgu1hIFIgFibjc1ahM2Yg836AZv67IGEBvyT0ORzUHCtJhGRwNEyCSJBzqbPxqY8Bnb/QVv9VTtzMCe4euGo+YKfryMiRzpfv7+DakFLESnIpr+NTS5qlfrK+FvFg4kaUwnXERHxjWYUFglS1mZiUx49jDOEl7G8g7waIAcQgol9BBPW+TCuLyJSsVRTI1IFWfc2bPq7kLsGjAvjGgDhgzAm7L9CWYvAppb/Iq5ekPVF6eViHgFCIfsbsNmY0GMh4lyMM6H81xYR8QMlNSJVjE1/C5s88cAzD+DAZs6F1Ceh5muYkEYHdu2hfH1nnBDaFmrcVXpS42iII/KsvP9HnlHG64iIVC41P4lUITZrMTZ5AnnJzIEZfL0z+W7HJl723yy+jjqUK6Ex0ZjYh3CE1IfIkSWUdUDNKWU8v4hI4JQrqZk5cybdu3enQYMGbN68GYCnnnqKjz76qEKDEznS2LQXKX6ItDtvZuCshXllnc0o+VfYgIkFXAeeuyDiHEytOZiQlgA4Yu6C6DuAqIKHOltArY9whB5X7nsREalsZU5qpk2bxq233srpp5/O/v37cbvzpl6Pi4vjqaeequj4RI4Y1mZD9g+UvJyBE5u1EOtJhcTLKbmmxoGJexZT91dMnR8xdX/FEfsAJqRhwVLRV2Dq/gq1PoWaMyFhGY6EuThCW1XAXYmIVJ4yJzXPPvssL730EnfddRdO539/UXbu3JlVq1ZVaHAiRxSb42O5bMiYA54dlJjUhA/FuE7GmFCMI67EWX+NMThCj8Hh6oLDWbNscYuIVBFlTmo2bdpEhw4dCm13uVykpaVVSFAiRyQTCc5GlLxOkwcT2hab+Vnp58tZXlGRiYgEhTInNc2aNWPFihWFts+bN6/QulAi4jtjDKbEjrsGCIOIYeBJptROwocz3FtEJAiVeUj3rbfeynXXXUdmZibWWn788UfeeustJk2axMsvv+yPGEWOHJEXQfZSb2fg/xKXvKZeE/cExhGLDWkB7k0U3//GAc7mfg5WRKRqKXNSc8UVVxAREcHdd99Neno6F110EQ0aNODpp59m+PDh/ohR5IhhTAjETYGM97DpMyF3AxAG4adgoi7DhB6fVy5yODZrfgln8mCiLqqUmEVEqooyLWiZm5vLrFmzGDRoEHXr1iU9PZ3U1FTq1KnjzxgrjBa0lGBjrcWYwn1srLXYpHGQ+UERRxlw9c8b+WS0graIBD9fv7/L1KcmJCSEq6++mszMTAAiIyODJqERCUZFJTT5203sQ5ga48BR978djlqY6Jsxcc8ooRGRI06Zm59OOukkli9fTpMmTfwRj4j4yBgHRI2GyEvB/S9gwdkwrwlLROQIVOZPv2uvvZbbbruNf//9l06dOhEVVXAm0hNOOKHCghOR0hnjhBD9kSEiUqY+NQAOR+EWK2OMt+0/f4bhqkh9akRERIKPr9/fZa6p2bRp02EFJiIiIuIPZU5q1JdGREREqqIyJzWvv/56ifsvvfTScgcjIiIiUl5l7lNTs2bBxe5ycnJIT08nLCyMyMhI9u3bV6EBViT1qREREQk+fpmnBiAxMbHAIzU1lbVr19KjRw/eeuutwwpapKqynhRs7hasR4u2iohUVRUyocXRRx/Nww8/zMUXX8yaNWsq4pQiVYLNWYNNfQayvgY8gBPrGgBRl2NCT8ibK0ZERKqECpulKyQkhG3btlXU6UQCzmavxO67GMglL6EBcEPWfMiaj3XUgagxEHmxZu8VEakCypzUfPzxxwWeW2vZvn07U6ZMoXv37hUWmEgg5a2tdAeQw38JzSE8u7ApD0LOCoh9QrU2IiIBVuakZtiwYQWeG2NISEigX79+PPHEExUVl0hg5fwCbh/nZMr8DMJPhfBB/o1JRERKVOakxuMp5q9WkSBgPeng3gwmFJzNi69dyf2rDGd1YNNnYZTUiIgEVJnry++77z7S09MLbc/IyOC+++6rkKBEKpr1pOJJfgC7qyt271DsntOxu/th09+iyFkNTGQZzu6B3HUVFquIiJRPmeepcTqdbN++nTp16hTYvnfvXurUqaO1n6TK8biTYO8w8GwtuoCphalxG0Sc5e3waz3J2F3dgGzfLuJsjCPhywqJV0RECvLbPDX5C1ceauXKlcTHx5f1dCJ+ZT1psHdo8QkNgN2LTf4fdv8NWJsLgHHEQNRoH6/igPDTDz9YERE5LD73qalZsybGGIwxHHPMMQUSG7fbTWpqKldffbVfghQpL5vyEHh8nGog6ytIfxOiRgJgom/O64OTMbOEgxxgIjGRFx1+sCIiclh8bn567bXXsNZy2WWX8dRTTxEbG+vdFxYWRtOmTenatavfAq0Ian46sljPPuyuHuTNM+MjRx2ovQiH4795Z2zuFmz665DxPthUwAmYvPM6amNqvoAJbVvB0YuISD5fv7/L3Kdm0aJFdOvWjdDQ0MMOsrIpqTmy2KxvsIlXlv1AR31MjZswEWcXPJ91Q9Y32OwfAA8mtCOEn4IxYRUTsIiIFMnX7+8yD+nu3bu39/+ZmZlkZxfsSKlkQSqTtbmQ8RE2/U1w/wUmAsLPwEReCmXL1//j2Y5NGgueJMxB/WqMcUJ4f0x4/wqKXkREKlKZOwqnp6dz/fXXU6dOHaKioqhZs2aBh0hlsTYbm3gNNnkc5P4BNh08eyH9DezeM7A4OZyVQGzKY1hP1V11XkRECipzUnP77bfz9ddfM23aNFwuFy+//DITJ06kQYMGvP766/6IUaRoaa9A9rcHnhw8KaQbbBYk3wnhQyjHj/l/58z45PBiFBGRSlPmP2M/+eQTXn/9dfr06cPo0aPp2bMnLVu2pEmTJrz55puMGDHCH3GKFGBtLjZ9JlBcE5Mnr9Ym7CTIWgS2PDUuDqx7K4UnMBARkaqozH/C7tu3j+bNmwN5/Wf27cv7sujRowfffvttSYeKVBzPLvDsKaVQCGR9Uc6EBsBiHGpSFREJFmVOapo3b86mTXkL/bVu3Zp3330XyKvBiYuLq9DgRIrnLL0IQM4aDqv5KXxwOY8VEZHKVuZP+9GjR7Ny5UoAxo4dy9SpUwkPD+eWW27h9ttvr/AARYrkqAPOZlBi41AueJIo2N/GVwYizsOENC5ffCIiUunKPE/NoTZv3swvv/xCy5YtOeGEEyoqLr/QPDXVi03/AJs8tpi9TghpAe59YEtrpgoFcsjL8T1ACERehKkxFmPKP3pKREQqht/WfjpYZmYmTZo04eyzz660hGbq1Kk0bdqU8PBwunTpwo8//lgp15UqKOIsiMqfXC+/OerAj7SzAabmixAxkJKbqgzUuANT80VMjTsxMQ9gEr7DEXO3EhoRkSBT5qTG7XZz//33c9RRRxEdHc1ff/0FwD333MMrr7xS4QEe7J133uHWW29lwoQJ/Prrr7Rr145Bgwaxa9cuv15XAsO692AzPsNmfIzN3VRovzEGR43/w9SaAxHnQWgnCOuJiXkYU/szjLNB3iR83mUNDuUEE4eJOBvj6oOJGo2JPB/jrOXvWxMRET8oc1Lz4IMPMmPGDB599FHCwv6bHv7444/n5ZdfrtDgDjV58mTGjBnD6NGjOe6443j++eeJjIzk1Vdf9et1pXJZm4Fn/zjs7p7YpFuwSf+H3TMIz75RWPeOQuVNaBscsffhqPUWjviXMJFnY0x43r6Q5piaz+fNNIwh70f+QM2NIx4T/zrGUaPS7k1ERPynzEnN66+/zosvvsiIESNwOv+r1m/Xrh1r1qyp0OAOlp2dzS+//MKAAQO82xwOBwMGDOD777/323WlclnrwSZeA5lzAHfBndnLsHuHYz37y3RO4+qBSfgOU+PuvNFM4UMwsY9iEr7GhLaqsNhFRCSwytxpYOvWrbRs2bLQdo/HQ05OToUEVZQ9e/bgdrupW7duge1169YtNpnKysoiKyvL+zw5Odlv8UkFyf4OspcWs9MNnh2QPguiry3TaY2jBkRdguGSw49RRESqpDLX1Bx33HF89913hba/9957dOjQoUKCqiiTJk0iNjbW+2jUqFGgQ5JS2PQ5lNyx14NNn11Z4YiISBApc03N+PHjGTlyJFu3bsXj8fDBBx+wdu1aXn/9dT799FN/xAhA7dq1cTqd7Ny5s8D2nTt3Uq9evSKPGTduHLfeeqv3eXJyshKbqs6zi0LNToXK7K2UUEREJLiUuaZm6NChfPLJJ3z55ZdERUUxfvx4/vzzTz755BNOOeUUf8QIQFhYGJ06deKrr77ybvN4PHz11Vd07dq1yGNcLhcxMTEFHlLFOetR6mzBzoRKCUVERIKLzzU1f/31F82aNcMYQ8+ePVmwYIE/4yrSrbfeysiRI+ncuTMnnXQSTz31FGlpaYwePbrSYxH/MBHnYDNLqvFzYCLOr7R4REQkePic1Bx99NFs376dOnXqAHDBBRfwzDPPFOq4608XXHABu3fvZvz48ezYsYP27dszb968So1BfGNtNmQuwGb/AHgwoZ0g4nTvUOtihXUFV1/I+obCK3A7wdkQIi/yT9AiIhLUfF4mweFwsGPHDm9SU6NGDVauXOldsTsYaJmEymFz1mETr8gbqeTNm3PBxGJqPo8J61Ty8TYbm/wIZLwDZB/YasDVN2/GX2dtP0YvIiJVja/f35oHXiqU9SRhEy89sJAkQO5BO1OwiZdB7c8xzqOKPYcxYZjYe7A1boTsX/LOEXo8xtnAr7GLiEhw87mjsDEGY0yhbSIFZHwAnkSKHsHkAZuNTX/Tp1MZRywmvB8mfKASGhERKZXPNTXWWkaNGoXL5QLyFrO8+uqriYqKKlDugw8+qNgIJajYzPkU7gtzMDdkfAY17qiskERE5Ajhc1IzcuTIAs8vvvjiCg9GqgGbXnoZzw5s7l+YkODpjyUiIlWfz0nN9OnT/RmHVBchx0LuekqeQM9i998ItT5RE6aIiFSYMk++J1ISE3kRpc4IDJC7DnJ+9Xs8IiJy5NDoJ6lQJqwdNnwYZH5YSkkH5KyAUoZ3i8jh27NtH3Nf+opVi//E4TC079eW0y7vR2xtTW0h1YuSGql4ERf5kNRYILQSghE5si396Cfuv2AyHrcHj9sDwK9freLNB97j/o/H0r7v8QGOUKTiqPlJKpwJOw5MbCmlLLi6VUo8Ikeqf9Zs5b7zniA3J9eb0ABYjyUrI5u7hzzMnm37AhihSMVSUiMVzpgwTFRJ63E5IawnJqRlpcUkciT68Nm5WGyRsyxYjyUnM4fPX/yy8gMT8RMlNeIfUVdB+NADT/JX3T7w4xbSChP3eCCiEjmiLPvsFzy5nmL3ezwePn/lK5L3pVRiVCL+o6RG/MIYJyb2UUz8mxA+BEI75K3dFPc0ptZsjKNmoEMUCUo52Tn8u3472zftxOMpPmEBcOeWPhJx79Z9XH7cLWz+89+KClEkYNRRWPzGGANhJ2LCTgx0KCJBLzsrh1kPvs/Hz80nZV8qAPWb1+GCO4Zx+pgBRc75dFzXViz56McSa2sAknYnc0OXcTRoWY/U/WlERIfTd3h3zrppMBFR4X65HxF/8HmV7upAq3SLSDDKzcnlf6c/xIqFv2M9B31kG8DCObecwdVPjCx03MpFq/m/vveW+7qhrlAe+eIe2vY8ttznEKkIvn5/q/lJRKSK+2LGNyz/alXBhAa8HYDff/JT1v68sdBx7Xq34dJ7zy/3dXOycrjjlPvYtWVPuc8hUpmU1IiIVHEfT5tf4pIizhAHn7+4oMh9l4w/jzteu77c187NzuXj5+aV+3iRyqSkRkSkitu6fgcl9RRw53r4Z83WYvf3H9GThEa1yn39r2ctLvexIpVJSY2ISBUXEV1yZ13jMETFRhW73+FwcO4tQ8p9/eyMnHIfK1KZlNSIiFRx/S7qgcNZ/Me19Vj6XFDyDN3DbjyNARf3Ktf1W3ZsVq7jRCqbkhoRkSrurBtPJzzKVWRi4whx0PCY+vQ69+QSz+FwOLjjteupVT+uzNc/55YzynyMSCAoqRERqeLqNkng0S8nULNu3ppqzlAnzpC8mbpbnNCEx76aQFh4WKnnMcZQu1HtMl170GV96TywXdmDFgkATb4nIhIEWnVuwZt/T+OHT39hzbL1OEOcdB7UjjbdW5c4MupQ/S/qybqfNpbY8Rggrk4Ml0w4nyFXDyzT+UUCSZPviYgcQdKS0xnT9lb2bU/EfchMw8ZpiEuIZcqySdQpY42OiD9p8j0RESkkKiaSyYvuo8lxjYC8OW6cIXlfBY1bN+TJb+9TQiNBS81PIiJHmHpN6/D88sf4ffEaVn6zGmstJ/Q6jhN6H6emJglqSmpERKqQjSv/5o+la3E4HbTvdzxHtazvl+sYY2jb81it6yTVipIaEZGDJO9NISsjm5p1YwkJrbyPyF3/7Oahi55m9dK13oUqAU4+oxO3z7iOmPgalRaLSLBSR2EREeCHT39h1kPv8+cP6wGoER/NkKsHMnzcWURElTyj7+FKSUzl6g63s3fbvkKddx1OB83bNeGZpQ8SGhbq1zhEqip1FBYR8dEnz3/BPWc+zJofN3i3pexL5e1HPuT2fhPJTM/y6/U/e2EBu//dWyihAfC4PWz4dRPfvb/MrzGIVAdKaiqBtdnYzIXY9A+wWT9gbeEPLhEJjL3bE5l64ytA3nIDB/O4Paz7ZSPvP/mpX2OYP+ObQtc+mMNhWDBzkV9jEKkOlNT4mU1/C7urO3b/VdjksdjES7G7+2Kz9AElUhXMe/XrEhMK67F8/Ny8UierOxxJe5JL3O/xWBJ37Pfb9UWqCyU1fmTT3sAmTwCbVHCHZwc28Sps1pLABCYiXlvWbIVShjHv276fzLRMv8VQt0lCiSE4QxzUb1bHb9cXqS6U1PiJ9aRjUx8vbi9gsSmT/PrXn4iULjzSVercLA6HIdSV10k3LTmdD6fM5dbe47mqw//x8KXP8PuSNYcVw+lX9KekTwJ3rofTrhhwWNcQORIoqfGXrIVg00soYCF3HeSur7SQRKSwHuecjDvXXex+Z4iDrmeeSEhoCP+u387lx93M1JteZdXiP/lr5Wa+eXsJt/S8h+dunl7uP1IGjurDMR2bF7kKt3EYTh7Sic6DtKikSGmU1PiLZw8+vbye3X4PRUSK13FAW47p3AJHSBEJhcmrVx0+dhhut5u7Bj9E4s6k/MpWAO+IpTnPfM70u98qVwyuCBePfjWBQaP6EBL239w44VEuzrt1CONn34bDoY9rkdJonpoKYK0byAbCvdXYNnMedv+NpR5ras/FhLSosFhEpDBrLf+s2UrK3hTqNK5NncYJBfYn7Ulm/NBH+OP7dThDnGDAnesmPNLFuDduotvQE1n22S/cPeThUq915nWDuP6Zy8u93EDyvhQ2LP8bp9PBMZ2bExEdUa7ziFQnvn5/a0bhw2Bz1mDTXoTMeUAuOGpB5EUQORpcfcHUAJtSzNEOCGmjhEbEz5Z9/isvj32Dv3/f4t3WoX9brpk8kmZtmwAQWzuGpxY/wOola/j+45/Jysim+QlN6Hthd29Ssfzr33GGOnHnFN9UBfDx1Pk0anUUw64/rVzxxsTXoGP/tuU6VuRIp5qacrJZP2ATrwDcBx75HBByNCZ+FmR+gU0eV8TRDsCBiX8dE9b5sOIQkeItencpD1z4ZN6Tgz7pHE4HYeGhPLP0QRIa1Wbfjv3E1IomLiG22HNNu2UGHz03r9SkBiAkLIQ3Nk2lVv34w70FEcH3728lNeVgbTZ2V88DQ7WLmkjPAZEX44i5G5vxCTblUfDs/G93SEtMzL2YsJPKHYOIlCw7K4ez40eRlZFd5H7jMMTUrkHK3lQ87rzf406nnMDoBy6k1YktC5VfNPt7Hrhgss/Xb9CyHi+tmkyYS0sbiBwuLZPgT5lfgk2k6ISGvO0Zs7E2AxMxBJPwDSb+TUzcs5haH2BqfaaERsTPXr5zZrEJDeRNqpe0K9mb0EBeE9PNPe9h5TerC5XvPuxE4uvX9LmvzLYNO1j8/g9lD1xEyk1JTTnY3DWU2h3JZoB7KwDGODFhJ2LCB2FCjy93B0IR8Y21lq9mLS7zcR63B0+um0dHT8XjKfhHS0hoCPd/fCdhEWE+ncs4TLliEJHyU1JTDsaEQ4lTZeXz7cNPRCrWv+u2kbynuE76JfN4LLs272bF178X2ndMpxa88seTRMVElnoe67Gk7CtfDCJSPkpqysPVh4Kdgw9lwNkMnI0qKSAROVhm2uGtqm0M/Ltue5H76jZO4PGF9+JwlFzj6gxx0PCYBocVh4iUjZKacjChx0FYD8BZTAmLib5OzUwiZbT73738NG85Kxb+TnZm8f1hSlO/eV1CQov7/SydtRAZU/z8MC07NGPUAxeWeA53rofTr+hf7hhEpOw0T005mbinsIlXQc4v5L2M+e3vFhN9KybizABGJxJc9mzdyzPXvcwPn/ziXWogKjaS8/7vTC4cd1aZZ9ONjoui74U9+PLNb7Husg/wDHWF0GVwxxLLnHPLGfw0dzmrl6wt1P8G4NTL+9Gme+syX1tEyk9Dug+DtRayf8Bmfg42FZxNMZHnYpxHVUC0IkeG/buTuLbznezdnognt3BycMbVA7npuTHFHp+RmsHXsxaz7ueNhISFcNLpHek8qB3Je1K4oev/2L1lb4ERTsYYMHl9XopkYPidZ3H5QxeVGntWRhavjX+HT19cQEZK3ireNevFcd5tZ3LOLYO1tIFIBdE8NUXw1zIJIlJ+L935Bu9N/qRA4nGoF1c+7p3992A/zV/B/edPJiM1A6fzwPIGOW4aH3sUk+beRVhEGLMe/IB5r35NRmpm3uKQZ3RixN3n8tuiP3j1f2/idntwOh143B6shWE3nsZVj1+adz4fZWVksWXtNpwhThq3PipvqQURqTBKaoqgpEakarHWck7t0aQkphVbxhniZNj1p3L15FEFtm/6/R+u7Xwn7hx3odWxnSEO6jat4538Ljcnl+S9KUTUiCAiKtxbLnlvCl+/tZjd/+whNiGGPsO7U6dR7Qq9RxE5fFr7SUSqvJzs3BITGgCPx8Ouf/eSvDeF5V+tIjszhxbtm/L+k59iPZ5CCQ3kddLdtmEHiz9YRr8LexASGkJ8vZqFysXUqlHuNZpEpOpRUiMiARMaFkJ4lKvEIdjGGLas2cYFR11Jbnbuf9sdpvh+MYDDYVjy4Y/0u7BHhcYsIlWXkhoRCRh3rps23Vvzyxcriy3jcXv4+/d/Cm0vKaGBvEn09m1P5M0H3icrI4sW7ZvRbWhnQsO0FpNIdaWkRkQCIj0lg3GnPcgfS9f67Rq/L17DH9+vwzgM7hw3sQkx3P32LbTve7zfrikigaPxhiISEE9f8yJrlq33+3U8bg/unLwZwJP3pvC/0x/kr982+/26IlL5lNSISKXbs20fC99eUuIw7vIqaSJv67F43B7eefTDCr+uiARe0CQ1Dz74IN26dSMyMpK4uLhAhyMih2HVt3+W2ifGV2HhodQ6Kt77PDYhBoez+I82d66HRbO/x+0uaf02EQlGQZPUZGdnc95553HNNdcEOhQROUzu3IpJKBxOB2deeyqzNk/jvV2v8OH+12jfr23e4k0lXT/HTU5WbollRCT4BE1H4YkTJwIwY8aMwAYicoRIT8kgIzWT2No1CAmt2I+KTasKj2YqK+MwxNWJ5bz/G4LD4SC2dt6EXEe1rHegDar4xCauTiyuiLDDjkFEqpagqakpj6ysLJKTkws8RKRkq5euZdxpDzI07lKGH3Ul5yRcxvO3vUZKYmqFnD95bwrvP/lJ6QVLWeT++O6teWbpg4Um1Tv1sn4lz1/jdHDmNYPy1oASkWqlWic1kyZNIjY21vto1KhRoEMSqdKWfvwTt/Yez69f/uat6EhPzmDOM59zY9f/kbw35bCv8c07S3EXsXDloeo3q1u4b8yBPOTCsWcxedF91G2SUOi4ek3rcNmDF+YVPyRvcTgdNDmuIefceka5YheRqi2gSc3YsWMxxpT4WLNmTbnPP27cOJKSkryPLVu2VGD0ItVLZnoWj46cgvV4Co1K8rg9bNu4kxn3vH3Y19n5zx6fyiU0rsWxJx9N2EHNRI1bH8W4N2/islJW0B4+9izufP0GjjqmgXdbeJSLM68ZxJPf3kdkjYjyBS8iVVpA+9TcdtttjBo1qsQyzZs3L/f5XS4XLper3MeLHEm+e+8H0pLSi93vcXv44rVvGPPYJQUWhSw730Y9rfr2T7DgDHVy+aQR9D6vK/Wa1fG52WjAxb3oP6InOzbtIjszm7pN6xAeqc8DkeosoElNQkICCQmFq49FpPJt/mMLzlCnd6K6omRlZLN7y14atz6q0L6MtEz+WrkZY6DZCU2KTXza923Du49+VGo8+f1icrNzefV/s2h9UkvqN6/r493kMcaU+RgRCV5BM/rpn3/+Yd++ffzzzz+43W5WrFgBQMuWLYmOjg5scCJBbO/2RD5/6Uu+mvVdiQlNvvCogrUd2ZnZzLjnbT55/gvvwpQR0eEMuXogI+8fTpir4FpLx3VthcPpKNPEe8ZhmPXQB1reQERKFDRJzfjx43nttde8zzt06ADAwoUL6dOnT4CiEgluK79ZzV1nTCInMxtPKZPhGYehRbum1GlU27vNnevm//pN5M8f1hUom5GayezJn/DXqn944NOxOJ1O776omEhOu7wfn7/0FbaU+WTyedweln+1iozUDCKi1R9GRIoWNKOfZsyYgbW20EMJjUhhm//YwlNXvcB59a7grFqjGDvofn749JcCSUTiriTuHjKJbB8SGshrDrpk/HkFtr3yv1mFEpqDy/88fwVL5vxYaN8VD19MkzYNMY6yDavOysguU3kRObIETVIjIr75/pOfuar97cyb/jX7dyWRmpjG8q9/554zH2bqTa96E5v5r35NVka2T8sVOEMc3DTtSroNPRGAtT9v5M6B9zH78Y9LPfbzl74stC06LoqnlzzIqPuGk9Colk/3FVu7BjXi1dQsIsVTUiNSjezfncQDF0zG7XYXmAsmv//KR1Pm8e3s7wH4ZcFvPiU0xmFwOJ00ap03PHrVd39yc4+7Wf717z7FtGXdtiK3R9aI4KL/nc2szc/z3u5XCD2k783BHE4HQ64ZVKAZS0TkUEpqRKqRea8uJCc7t9hR0w6H4f2nPwPweUFH67G4c3K5/7zJZGfl8PhlU3Hnun1ekNKXRCS2Vgy3vXwNxphCE+45nA5atm/K+XcM9el6InLkUlIjUo2sWbauxM63Ho9l7bL1WGtp2+PYElezPvS4pD3JzHroA7Zt3FmmFbZ9bV7qP6Inj345nnZ92ni3xdauwUX/O5vHv5l4mHPjiMiRIGhGP4lI6XxKUg5MXjf4qlN457GPoAwLZvvSh+ZQrU5s6XPZ9n2Pp33f48lIzSA7M4fomlFqchIRn6mmRqQa6TigXakT9lprSdmXSp1GtTl9zIAynT+7HKOPju5Y9lnBI6IjiK0do4RGRMpESY1IFZedlcOSD3/kk2nzWfLhj2Rn5RRbtv+IHqUPk7Ywf8Y3ZKRl8uXriyo42oMYiK4ZRfezTvLfNUREDqLmJ5EqbN6rX/PC/71O6v4077YaNaO4evIo+gzvTtr+NKJiIwkLz1v00RniLLW/izGw/teNfPdeDTJSM/0St3EYHA4H/5t1c6EZhUVE/EVJjUgVteD1RTxxxbRC21MS03hs9FQmX/k87hw3zlAnfc7vxoi7z6FBi3oYAyVN1GschlBXKDv/3l3qWk8lya8RcjhMgeHjxmHoOqQzF/3v7DL1pxEROVxKakSqoNycXF68Y2aJZfKTEXeOm4VvL+Hb939g9P3DOaF3G1Z992exayu5cz10Ob0j+3bsL9P6S4d68tv7WbNsPft3JVG7YS16nXsyDqeD8CgXrgithi0ilU9JjUgVtPKb1ezfleRzeY/bg8ft4cXbZ+IILX6xSIfTQZ3Gtek29ESS96Yw7dYZZRqeDXk1M626HE2bbq1o061VmY4VEfEndRQWqYKSdieX+1hPzn8JTf4Qb8eBpqKERrV45It7CAkNIb5eTc69+Qwow/JLebMLO7jqsUvLHZ+IiL+opkakCko4aCXswzFoVB/270omLCKUrkNOpOe5JxPmCmXTqs18PWsxKYmptO15LH98vw53jhuHM6+WJ7Z2DfoM78G3s5eSuPO/GqPGrY/ipmlXqoZGRKokJTUiVVCb7q2o2zSBXZv3lDhDcEmcIU5cES7u++hO77ac7BweuugpFr69BGeIAzBYa/F4PHQbeiLH92hNgxb16DK4IyGhIVwzeSS/ffsHyXtTqdesDsd0ao4xZVtZW0Sksqj5SaQKcjgc3Dh1DBjKnUR43B727kgssG3KDa/yzbtLgbwOw+5cd17/GwtLP/qJqJhIug87iZDQvL93nCFOOvRrS+/zutKqcwslNCJSpSmpEamiTjqtAw99fheNjz2qXMcbh6FWvZre53u27WPuK1+V2DF45n2zfV7oUkSkqlHzk0gVsm9HIp+98CWLZi8lIzWTFu2bctXjlxJXN5bEHUnE149j5n2zWfrhT6Wey+P2MOCSXt7nyz79pdSmrD1b97Fh+d+06tzisO9FRKSyKakRqWD7diTyybQvWPj2EjJSMmjSphFDrhlE92En4nAUXzm67peN3HHKfWQkZ+Lx5I1g2rNtH99//DNnXHUKNz43BmMMd799C+fVvYK0pPRSY5l+91vc99GdhIWHkZmWhcNR/HDvfJlp/pllWETE39T8JFKBNq78myva3MKshz5g6/rt7Nuxn5XfrOa+cx9n3GkP8v3HP7FhxaZCNSbZWTncfcYkMlL+S2gAPAdm6v30hQXMfeVrAELDQrnu6ct8iufXr1bx0h1vANCkTaNSExrjMDRq1cDn+xURqUqU1IhUEHeum7uHPExackaB5CH//78u+I3xwx7lmo53cGW721j+9SpvmcUfLCNxZ1KxSYcx8N7kj73J0CmX9mbcGzcSmxBTYkzWY/ns5S9JS0qj44C21Glcu9gFLx0hDroPPZH4g/rhiIgEEyU1IhVk6cc/s+ffvT4tPbD5j38ZO+gBfv0qL7GZ8/RnJZa3Fras2UZKYqp3W7+LenL5pItKvVZOZg5/LtuAw+Fg3Js3ERIW4p2UL5/D6aBmnViueWp0qecTEamq1KdGpIKsXrLG5wUirceCgSk3vMLo+4ez5scNPl1jxde/89fKzWCgfd/jwccpbOyBJq3ju7dmyg+TeOP+91jy4Y943B5ckS4GjuzDiLvPoVZ91dKISPAytrwzewWh5ORkYmNjSUpKIiam5Gp7kbJ64f9eZ86zn5d51evGxx7FljXbSh2ZFBIWQm52Ls4QJ5DX3HXU0fXZun57icc5Q5y8vfUF4hJiC2zPTM8iPTmdGvHRhIaFlilmEZHK5Ov3t5qfRCpI+37HlzmhAfjnz60+zRrsXZU71407N+//2zftJNQVisNZTD8Zp4N+I3oUSmgAwiNdxNerqYRGRKoNJTUiFaTzoHY0aFmvUH+VilJU4uPJ9ZCTnUONmtF5s/0eyG3y/9+iXVOfR0qJiAQ7JTUiFcTpdPLgp+OoWTfW5+UEYmrVoHbD+MO+dr1mdbjq8Utp2qYRsQkxtOzYjJunXcmT391HVEzkYZ9fRCQYqE+NSAVLS0rji9cWsfDtJfy18m+yMrKLLRvqCuWSCecx/a63iqyJMQ4D1lLab2nj1kfxyh9PHWbkIiJVk/rUiARIVGwUZ914OpPm/o/cUvrY5GTlEBEdzkmDOwIUmEPGGeIgJNRJsxOalNik5Qhx0Kic60OJiFQnSmpE/GTn5j3eDr0l+e79H5j4we3c8uLVNGvbmFBXCFGxkQwc1Zdpvz7GRf87p8S5bzy5Hs64amBFhi4iEpQ0T42In0REh/tUbs/WfThDnJx+RX9Ov6J/of0Nj6lPt2En8v1HPxduojIw4OJedDrlhIoIWUQkqKmmRsRP6jWrU+ySBAeLq1Ny/y6n08k979zKyIkXFFgWIb5+Ta585BJun36dzx2TRUSqM9XUiPiJMYZjOrVg7U8lzxZ88uDOpZ4rJDSEEXefwwV3DmX7XzsxxlC/RV2cTmdFhSsiEvRUUyPiR2MevbjE/WERoZx6eT+fzxcSGkKjVkfR8JgGSmhERA6hpEbEj9r1bsM1T44CCo5sMg5DWEQY9314JzXrFJ7tV0REyk7NTyJ+dvZNgzmh93F8/Nx8Vi/OW/Ty5DM6ccbVA6nTqHagwxMRqTY0+Z6IiIhUab5+f6umRoJWVkYWP89fScq+VOo1q8MJvY/D4VCLqojIkUpJjQQday1znv6c1+59h/TkDO/2uk0TuOWFq+h0SrsARiciIoGiP2sl6Mx+/GOm3TqjQEIDsGvzHu4a/BArF60OUGQiIhJISmokqKQlpTFjwjtF7rPW4vFYXrrjjUqOSkREqgIlNRJUFs/5kZysnGL3W49l7U8b2LpheyVGJSIiVYGSGgkqiTuTcJawYvXB5URE5MiipEaCSu2j4nHnFr9i9cHlRETkyKKkRoJK97NOIjzKVex+h9NB257HUq9pnUqMSkREqgIlNRJUIqLCuerxkUXuczgMzhAHVz1+aSVHJSIiVYGSGgk6Z1x1CnfMuJ74+jULbG/WtjGPL5xIqxNbBigyEREJJC2TIEHL7Xazesla74zCLdo1DXRIIiLiB1omQao9p9PJCb2OC3QYIiJSRaj5SURERKoFJTUiIiJSLSipERERkWpBSY2IiIhUC0pqREREpFoIiqTm77//5vLLL6dZs2ZERETQokULJkyYQHZ2dqBDExERkSoiKIZ0r1mzBo/HwwsvvEDLli35/fffGTNmDGlpaTz++OOBDk9ERESqgKCdfO+xxx5j2rRp/PXXXz4fo8n3REREgk+1n3wvKSmJ+PiSV2LOysoiKyvL+zw5OdnfYYmIiEiABEWfmkNt2LCBZ599lquuuqrEcpMmTSI2Ntb7aNSoUSVFKCIiIpUtoEnN2LFjMcaU+FizZk2BY7Zu3cqpp57Keeedx5gxY0o8/7hx40hKSvI+tmzZ4s/bERERkQAKaJ+a3bt3s3fv3hLLNG/enLCwMAC2bdtGnz59OPnkk5kxYwYOR9lyMvWpERERCT5B0acmISGBhIQEn8pu3bqVvn370qlTJ6ZPn17mhEZERESqt6DoKLx161b69OlDkyZNePzxx9m9e7d3X7169QIYmYiIiFQVQZHULFiwgA0bNrBhwwYaNmxYYF+QjkgXERGRChYUbTijRo3CWlvkQ0RERASCJKkRERERKY2SGhEREakWlNSIiIhItaCkRkRERKoFJTUiIiJSLQTFkG7xv8z0LOa+/BWfvbiA3f/uJbZ2DING9WXINQOJqVUj0OGJiIiUKqDLJFQ2LZNQtNT9afxf3wn89ds/wH9z/xiHoVaDeJ767n7qNvFt5mcREZGK5uv3t5qfhOduns6m37cUmvvHeiyJOxKZNOLpAEYnIiLiGyU1R7ikPcl8PWsxHrenyP3uXA+rl65l48q/KzcwERGRMlJSc4TbsHwT7lx3qeX+/GF9JUQjIiJSfkpqjnAOp28/As4Q/aiIiEjVpm+qI1zrk1riinSVXMhA+37HV05AIiIi5aSk5ggXER3B0GsHYYwpcr/D6aD7sJOo36xuJUcmIiJSNkpqhFEPDKfb0BOB/5qZ8puljuncnNtfvTZgsYmIiPhKk+8JoWGhTHj///j1y9+Y++rX7Ni0i/i6cZxyaW+6ntmZkFD9mIiISNWnbysBwBhDp1Pa0emUdoEORUREpFzU/CQiIiLVgpIaERERqRaU1IiIiEi1oKRGREREqgUlNSIiIlItKKkRERGRakFJjYiIiFQLSmpERESkWlBSIyIiItWCkhoRERGpFo6oZRKstQAkJycHOBIRERHxVf73dv73eHGOqKQmJSUFgEaNGgU4EhERESmrlJQUYmNji91vbGlpTzXi8XjYtm0bNWrUwBhTYF9ycjKNGjViy5YtxMTEBChC/6jO9wa6v2Cn+wtuur/gFiz3Z60lJSWFBg0a4HAU33PmiKqpcTgcNGzYsMQyMTExVfqNPRzV+d5A9xfsdH/BTfcX3ILh/kqqocmnjsIiIiJSLSipERERkWpBSc0BLpeLCRMm4HK5Ah1KhavO9wa6v2Cn+wtuur/gVt3u74jqKCwiIiLVl2pqREREpFpQUiMiIiLVgpIaERERqRaU1IiIiEi1cMQmNQ8++CDdunUjMjKSuLg4n46x1jJ+/Hjq169PREQEAwYMYP369f4NtJz27dvHiBEjiImJIS4ujssvv5zU1NQSj+nTpw/GmAKPq6++upIiLtnUqVNp2rQp4eHhdOnShR9//LHE8rNnz6Z169aEh4fTtm1bPv/880qKtHzKcn8zZswo9D6Fh4dXYrRl8+233zJkyBAaNGiAMYYPP/yw1GO++eYbOnbsiMvlomXLlsyYMcPvcZZXWe/vm2++KfT+GWPYsWNH5QRcBpMmTeLEE0+kRo0a1KlTh2HDhrF27dpSjwuW37/y3F8w/f5NmzaNE044wTuxXteuXZk7d26JxwTLe1ecIzapyc7O5rzzzuOaa67x+ZhHH32UZ555hueff55ly5YRFRXFoEGDyMzM9GOk5TNixAhWr17NggUL+PTTT/n222+58sorSz1uzJgxbN++3ft49NFHKyHakr3zzjvceuutTJgwgV9//ZV27doxaNAgdu3aVWT5pUuXcuGFF3L55ZezfPlyhg0bxrBhw/j9998rOXLflPX+IG/2z4Pfp82bN1dixGWTlpZGu3btmDp1qk/lN23axODBg+nbty8rVqzg5ptv5oorrmD+/Pl+jrR8ynp/+dauXVvgPaxTp46fIiy/RYsWcd111/HDDz+wYMECcnJyGDhwIGlpacUeE0y/f+W5Pwie37+GDRvy8MMP88svv/Dzzz/Tr18/hg4dyurVq4ssH0zvXbHsEW769Ok2Nja21HIej8fWq1fPPvbYY95t+/fvty6Xy7711lt+jLDs/vjjDwvYn376ybtt7ty51hhjt27dWuxxvXv3tjfddFMlRFg2J510kr3uuuu8z91ut23QoIGdNGlSkeXPP/98O3jw4ALbunTpYq+66iq/xlleZb0/X39mqyLAzpkzp8Qyd9xxh23Tpk2BbRdccIEdNGiQHyOrGL7c38KFCy1gExMTKyWmirRr1y4L2EWLFhVbJth+/w7my/0F8++ftdbWrFnTvvzyy0XuC+b3Lt8RW1NTVps2bWLHjh0MGDDAuy02NpYuXbrw/fffBzCywr7//nvi4uLo3Lmzd9uAAQNwOBwsW7asxGPffPNNateuzfHHH8+4ceNIT0/3d7glys7O5pdffinwujscDgYMGFDs6/79998XKA8waNCgKvc+QfnuDyA1NZUmTZrQqFGjEv/yCkbB9P4djvbt21O/fn1OOeUUlixZEuhwfJKUlARAfHx8sWWC+f3z5f4gOH//3G43b7/9NmlpaXTt2rXIMsH83uU7oha0PBz57d1169YtsL1u3bpVri18x44dhaqyQ0JCiI+PLzHWiy66iCZNmtCgQQN+++037rzzTtauXcsHH3zg75CLtWfPHtxud5Gv+5o1a4o8ZseOHUHxPkH57q9Vq1a8+uqrnHDCCSQlJfH444/TrVs3Vq9eXeqCrcGguPcvOTmZjIwMIiIiAhRZxahfvz7PP/88nTt3Jisri5dffpk+ffqwbNkyOnbsGOjwiuXxeLj55pvp3r07xx9/fLHlgun372C+3l+w/f6tWrWKrl27kpmZSXR0NHPmzOG4444rsmywvncHq1ZJzdixY3nkkUdKLPPnn3/SunXrSoqoYvl6f+V1cJ+btm3bUr9+ffr378/GjRtp0aJFuc8rFatr164F/tLq1q0bxx57LC+88AL3339/ACMTX7Rq1YpWrVp5n3fr1o2NGzfy5JNPMnPmzABGVrLrrruO33//ncWLFwc6FL/w9f6C7fevVatWrFixgqSkJN577z1GjhzJokWLik1sgl21Smpuu+02Ro0aVWKZ5s2bl+vc9erVA2Dnzp3Ur1/fu33nzp20b9++XOcsK1/vr169eoU6mebm5rJv3z7vffiiS5cuAGzYsCFgSU3t2rVxOp3s3LmzwPadO3cWey/16tUrU/lAKs/9HSo0NJQOHTqwYcMGf4RY6Yp7/2JiYoK+lqY4J510UpVOFq6//nrvgIPSaiOC6fcvX1nu71BV/fcvLCyMli1bAtCpUyd++uknnn76aV544YVCZYPxvTtUtepTk5CQQOvWrUt8hIWFlevczZo1o169enz11VfebcnJySxbtqzY9smK5uv9de3alf379/PLL794j/3666/xeDzeRMUXK1asACiQxFW2sLAwOnXqVOB193g8fPXVV8W+7l27di1QHmDBggWV9j6VRXnu71But5tVq1YF9H2qSMH0/lWUFStWVMn3z1rL9ddfz5w5c/j6669p1qxZqccE0/tXnvs7VLD9/nk8HrKysorcF0zvXbEC3VM5UDZv3myXL19uJ06caKOjo+3y5cvt8uXLbUpKirdMq1at7AcffOB9/vDDD9u4uDj70Ucf2d9++80OHTrUNmvWzGZkZATiFkp06qmn2g4dOthly5bZxYsX26OPPtpeeOGF3v3//vuvbdWqlV22bJm11toNGzbY++67z/78889206ZN9qOPPrLNmze3vXr1CtQteL399tvW5XLZGTNm2D/++MNeeeWVNi4uzu7YscNaa+0ll1xix44d6y2/ZMkSGxISYh9//HH7559/2gkTJtjQ0FC7atWqQN1Cicp6fxMnTrTz58+3GzdutL/88osdPny4DQ8Pt6tXrw7ULZQoJSXF+/sF2MmTJ9vly5fbzZs3W2utHTt2rL3kkku85f/66y8bGRlpb7/9dvvnn3/aqVOnWqfTaefNmxeoWyhRWe/vySeftB9++KFdv369XbVqlb3pppusw+GwX375ZaBuoVjXXHONjY2Ntd98843dvn2795Genu4tE8y/f+W5v2D6/Rs7dqxdtGiR3bRpk/3tt9/s2LFjrTHGfvHFF9ba4H7vinPEJjUjR460QKHHwoULvWUAO336dO9zj8dj77nnHlu3bl3rcrls//797dq1ays/eB/s3bvXXnjhhTY6OtrGxMTY0aNHF0jYNm3aVOB+//nnH9urVy8bHx9vXS6Xbdmypb399tttUlJSgO6goGeffdY2btzYhoWF2ZNOOsn+8MMP3n29e/e2I0eOLFD+3Xfftcccc4wNCwuzbdq0sZ999lklR1w2Zbm/m2++2Vu2bt269vTTT7e//vprAKL2Tf4Q5kMf+fc0cuRI27t370LHtG/f3oaFhdnmzZsX+D2sasp6f4888oht0aKFDQ8Pt/Hx8bZPnz7266+/DkzwpSjqvg79XAzm37/y3F8w/f5ddtlltkmTJjYsLMwmJCTY/v37exMaa4P7vSuOsdbaSqgQEhEREfGratWnRkRERI5cSmpERESkWlBSIyIiItWCkhoRERGpFpTUiIiISLWgpEZERESqBSU1IiIiUi0oqREREZFqQUmNiFSYUaNGYYwp9Kioxf5mzJhBXFxchZyrvL799luGDBlCgwYNMMbw4YcfBjQeEfmPkhoRqVCnnnoq27dvL/Aoz0KB/paTk1Ou49LS0mjXrh1Tp06t4IhE5HApqRGRCuVyuahXr16Bh9PpBOCjjz6iY8eOhIeH07x5cyZOnEhubq732MmTJ9O2bVuioqJo1KgR1157LampqQB88803jB49mqSkJG8N0L333gtQZI1JXFwcM2bMAODvv//GGMM777xD7969CQ8P58033wTg5Zdf5thjjyU8PJzWrVvz3HPPlXh/p512Gg888ABnnXVWBbxaIlKRQgIdgIgcGb777jsuvfRSnnnmGXr27MnGjRu58sorAZgwYQIADoeDZ555hmbNmvHXX39x7bXXcscdd/Dcc8/RrVs3nnrqKcaPH8/atWsBiI6OLlMMY8eO5YknnqBDhw7exGb8+PFMmTKFDh06sHz5csaMGUNUVBQjR46s2BdARPwv0Ctqikj1MXLkSOt0Om1UVJT3ce6551prre3fv7996KGHCpSfOXOmrV+/frHnmz17tq1Vq5b3+fTp021sbGyhcoCdM2dOgW2xsbHe1ZbzV6V/6qmnCpRp0aKFnTVrVoFt999/v+3atWtpt1rsdUUkcFRTIyIVqm/fvkybNs37PCoqCoCVK1eyZMkSHnzwQe8+t9tNZmYm6enpREZG8uWXXzJp0iTWrFlDcnIyubm5BfYfrs6dO3v/n5aWxsaNG7n88ssZM2aMd3tubi6xsbGHfS0RqXxKakSkQkVFRdGyZctC21NTU5k4cSJnn312oX3h4eH8/fffnHHGGVxzzTU8+OCDxMfHs3jxYi6//HKys7NLTGqMMVhrC2wrqiNwfoKVHw/ASy+9RJcuXQqUy+8DJCLBRUmNiFSKjh07snbt2iITHoBffvkFj8fDE088gcORN4bh3XffLVAmLCwMt9td6NiEhAS2b9/ufb5+/XrS09NLjKdu3bo0aNCAv/76ixEjRpT1dkSkClJSIyKVYvz48Zxxxhk0btyYc889F4fDwcqVK/n999954IEHaNmyJTk5OTz77LMMGTKEJUuW8Pzzzxc4R9OmTUlNTeWrr76iXbt2REZGEhkZSb9+/ZgyZQpdu3bF7XZz5513EhoaWmpMEydO5MYbbyQ2NpZTTz2VrKwsfv75ZxITE7n11luLPCY1NbXAvDubNm1ixYoVxMfH07hx48N7kUTk8AS6U4+IVB8jR460Q4cOLXb/vHnzbLdu3WxERISNiYmxJ510kn3xxRe9+ydPnmzr169vIyIi7KBBg+zrr79uAZuYmOgtc/XVV9tatWpZwE6YMMFaa+3WrVvtwIEDbVRUlD366KPt559/XmRH4eXLlxeK6c0337Tt27e3YWFhtmbNmrZXr172gw8+KPYeFi5caIFCj5EjR5bhlRIRfzDWHtIQLSIiIhKENPmeiIiIVAtKakRERKRaUFIjIiIi1YKSGhEREakWlNSIiIhItaCkRkRERKoFJTUiIiJSLSipERERkWpBSY2IiIhUC0pqREREpFpQUiMiIiLVgpIaERERqRb+H2KWjb3NCJFAAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def generate_and_plot_dataset():\n", + " # 生成一个逻辑回归的数据集\n", + " x, y = make_classification(n_samples=100, n_features=2, \n", + " n_informative=2, n_redundant=0, \n", + " n_clusters_per_class=1, random_state=42)\n", + " # 可视化数据集\n", + " plt.scatter(x[:, 0], x[:, 1], c=y, cmap='viridis')\n", + " plt.xlabel('Feature 1')\n", + " plt.ylabel('Feature 2')\n", + " plt.title('Logistic Regression Dataset')\n", + " plt.show()\n", + " return x,y\n", + "x,y = generate_and_plot_dataset()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "模型准确率: 1.00\n" + ] + }, + { + "data": { + "image/png": "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UREzZszA39+f+Ph4Vq9eTWZmJm5ublXWmZSURJ8+fcjPz+eRRx7By8uLL774gptuuomVK1dyyy23VDj/1VdfRaPR8J///IesrCxee+01xo0bx44dOy7rfcnKyiI1NRVVVUlOTubdd98lNze3QoujqqrcdNNNbNiwgSlTptC5c2f++OMPnnzySeLj43nrrbcu67mqcscddxAeHs68efPYu3cvn3zyCb6+vvzvf/+znHPffffx1Vdfcffdd9OnTx/+/PNPbrjhhkrX2rVrF1u3buXOO+8kKCiIqKgoFi1axMCBAzly5AiOjo4Vzr/w52XgwIEEBwezdOnSSu/z0qVLiYyMpHfv3lf8WkUtUoWoRZ9//rkKqLt27ar2nNGjR6s6nU49ffq05b5z586pLi4uav/+/S33zZgxQ1UURd23b5/lvrS0NNXT01MF1LNnz1ruHzBggDpgwADL7Ztvvllt167dRWudP39+peuUCQ0NVSdMmGC5PXv2bBVQv//++0rnms3miz5PaGioOmzYMDUlJUVNSUlRDx48qN57770qoE6bNs1y3l9//aUC6tKlSys8/vfff69wf2JiompnZ6eOHj26wnnPP/+8ClSou+zfo2/fvqrRaLTcn5OTo7q7u6v3339/hWskJiaqbm5ulvszMjJUQJ0/f361r2/VqlWX/DdXVVUF1Dlz5lhuX+73QdlrGDp0aIX3+rHHHlO1Wq2amZl50eedM2eOCqgpKSlVHi97jbfccouqqqX/ni1atFCHDx9e4fny8/PV8PBw9brrrrPcN378eFWj0VT52sseu2HDBhVQN2zYoKqqqu7bt08F1BUrVly07gu/B2fOnKkC6l9//WW5LycnRw0PD1fDwsJUk8lU4fnatGmjFhUVWc59++23VUA9ePDgRZ+37P2+8Euv16uLFy+ucO4PP/ygAupLL71U4f7bb79dVRRFPXXqlKqqqnr27FkVUD///PNKz3fh90XZv9fkyZMrnHfLLbeoXl5eltv79+9XAXXq1KkVzrv77rsrXTM/P7/S827btk0F1C+//LLSa7/w50VVVXXWrFmqXq+v8P2WnJys2tnZVXguYV3S/STqlclkYs2aNYwePZqIiAjL/QEBAdx99938/fffZGdnA/D777/Tu3dvOnfubDnP09OTcePGXfJ53N3diYuLY9euXbVS93fffUenTp0q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ore3N5s3b65w3vvvv3/F9ZRd+5133qlw/4IFCyqdq9VqK/17vPvuuxdtKaqKt7c3I0eO5KuvvmLp0qWMGDGixjMfRd2SlhpRJz777DN+//33Svc/+uijvPTSS6xdu5a+ffsydepU7Ozs+PDDDykqKuK1116znPvUU0/x1Vdfcd111zFjxgzLlO6QkBDS09Mv2tIybNgw/P39ufbaa/Hz8+Po0aMsXLiQG264wfKJslu3bgA8++yz3Hnnndjb2zNq1KgqF9p68sknWblyJWPGjGHy5Ml069aN9PR0fvrpJz744AM6depU4/do5MiRtG/fnjfffJNp06YxYMAAHnzwQebNm8f+/fsZNmwY9vb2nDx5khUrVvD2229z++234+fnx6OPPsobb7zBTTfdxIgRIzhw4AC//fYb3t7el9UC5erqyqJFi7j33nvp2rUrd955Jz4+PsTExPDLL79w7bXXsnDhQk6cOMGQIUO44447aNu2LXZ2dqxatYqkpCTuvPNOAL744gvef/99brnlFiIjI8nJyeHjjz/G1dWV66+/vtoaLvf7oLasXLkSZ2dniouLLSsKb9myhU6dOrFixQrLeRqNhk8++YSRI0fSrl07Jk2aRLNmzYiPj2fDhg24urry888/A/DKK6+wZs0aBgwYwAMPPECbNm1ISEhgxYoV/P3335VWqobS6eLTp09nzJgxtGzZEqPRyJIlS9Bqtdx2223V1v/MM8/w9ddfM3LkSB555BE8PT354osvOHv2LN99912trz7822+/WVpckpOTWbZsGSdPnuSZZ56xBM5Ro0YxaNAgnn32WaKioujUqRNr1qzhxx9/ZObMmRXGu9x33328+uqr3HfffXTv3p3Nmzdz4sSJK66vc+fO3HXXXbz//vtkZWXRp08f1q9fX2VL7o033siSJUtwc3Ojbdu2bNu2jXXr1uHl5VXj5x0/fjy33347QJUfQISVWW3elbBJ1U0HLfuKjY1VVVVV9+7dqw4fPlx1dnZWHR0d1UGDBqlbt26tdL19+/ap/fr1U/V6vRoUFKTOmzdPfeedd1RATUxMtJx34ZTuDz/8UO3fv7/q5eWl6vV6NTIyUn3yySfVrKysCtd/8cUX1WbNmqkajabC9O4Lp9Oqaul08unTp6vNmjVTdTqdGhQUpE6YMEFNTU296HsSGhqq3nDDDVUeW7x4caWp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "def logistic_regression_analysis(x, y):\n", + " # 创建逻辑回归模型\n", + " model = LogisticRegression()\n", + "\n", + " # 拟合模型\n", + " model.fit(x, y)\n", + "\n", + " # 预测\n", + " y_pred = model.predict(x)\n", + "\n", + " # 计算准确率\n", + " accuracy = accuracy_score(y, y_pred)\n", + " print(f'模型准确率: {accuracy:.2f}')\n", + "\n", + " # 绘制决策边界\n", + " # 创建网格以绘制决策边界\n", + " xx, yy = np.meshgrid(np.arange(x[:, 0].min() - 1, x[:, 0].max() + 1, 0.01),\n", + " np.arange(x[:, 1].min() - 1, x[:, 1].max() + 1, 0.01))\n", + "\n", + " # 预测网格点的类别\n", + " Z = model.predict(np.c_[xx.ravel(), yy.ravel()])\n", + " Z = Z.reshape(xx.shape)\n", + "\n", + " # 绘制决策边界\n", + " plt.contourf(xx, yy, Z, alpha=0.8, cmap='viridis')\n", + " plt.scatter(x[:, 0], x[:, 1], c=y, edgecolors='k', marker='o', cmap='viridis')\n", + " plt.xlabel('Feature 1')\n", + " plt.ylabel('Feature 2')\n", + " plt.title('Logistic Regression Decision Boundary')\n", + " plt.show()\n", + "\n", + "# 调用函数\n", + "logistic_regression_analysis(x, y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 手动实现\n", + "$$\n", + "f_{\\vec{w},b}(x) = g(z) = \\frac{1}{1 + e^{-(\\vec{w} \\cdot \\vec{x} + b)}}\n", + "$$\n", + "\n", + "$$\n", + "J(\\vec{w},b) = -\\frac{1}{m} \\sum_{i=1}^{m} \\left( y^{(i)}\\ln(f_{\\vec{w},b}(x^{(i)})) + (1-y^{(i)})\\ln(1-f_{\\vec{w},b}(x^{(i)})) \\right)\n", + "$$\n", + "\n", + "$$\n", + "w_j = w_j - \\alpha \\frac{\\partial J(\\vec{w},b)}{\\partial w_j}\n", + "$$\n", + "\n", + "$$\n", + "b = b - \\alpha \\frac{\\partial J(\\vec{w},b)}{\\partial b}\n", + "$$\n", + "\n", + "$$\n", + "\\frac{\\partial J(\\vec{w},b)}{\\partial w_j} = \\frac{1}{m} \\sum_{i=1}^{m} (f_{\\vec{w},b}(x^{(i)}) - y^{(i)})x_j^{(i)}\n", + "$$\n", + "\n", + "$$\n", + "\\frac{\\partial J(\\vec{w},b)}{\\partial b} = \\frac{1}{m} \\sum_{i=1}^{m} (f_{\\vec{w},b}(x^{(i)}) - y^{(i)})\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_cost_vectorized(w, b):\n", + " m = x.shape[0]\n", + " z = np.dot(x, w) + b\n", + " f_wb = sigmoid(z)\n", + " cost = (-1/m) * np.sum(y * np.log(f_wb) + (1 - y) * np.log(1 - f_wb))\n", + " return cost\n", + " \n", + "def sigmoid(z):\n", + " return 1/(1+np.exp(-z))\n", + " \n", + "def gradient_descent(w, b, alpha, num_iterations):\n", + " m = len(x)\n", + " for i in range(num_iterations):\n", + " z = np.dot(w, x.T) + b\n", + " f_wb = sigmoid(z)\n", + " w -= alpha * 1/m * np.dot(x.T, (f_wb-y))\n", + " b -= alpha * 1/m * np.sum(f_wb-y)\n", + " return w, b" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-5.06824725 7.0491495 ] 5.093279915903578\n", + "0.0014207659474689705\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAADT8AAAqdCAYAAABsb7JzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAFxGAABcRgEUlENBAAEAAElEQVR4nOzdd1gUV9sG8JsqHRUUGyKKCqJg772hRuyKNbbYNdGYZjRqNDGJxm6MWGI39t4bGrB3saOAXUEFpNf5/sinr0mUObs7s7vA/buuvb7re/PseZ7BmT07O6eYSJIkgYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjIyJgaugAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiovfh5CciIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMkqc/ERERERERERERERERERERERERERERERERERERomTn4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjIKHHyExEREREREREREREREREREREREREREREREREZJU5+IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiKjxMlPRERERERERERERERERERERERERERERERERGSUOPmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIwSJz8RERERERERERERERERERERERERERERERERkVHi5CciIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMkqc/ERERERERERERERERERERERERERERERERERERomTn4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjIKHHyExEREREREREREREREREREREREREREREREREZJU5+IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiKjxMlPRERERERERERERERERERERERERERERERERGSUOPmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIwSJz8RERERERERERERERERERERERERERERERERkVHi5CciIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMkqc/ERERERERERERERERERERERERERERERERERERomTn4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjIKHHyExEREREREREREREREREREREREREREREREREZJU5+IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiKjxMlPRERERERERERERERERERERERERERERERERGSUOPmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIwSJz8RERERERERERERERERERERERERERERERERkVHi5CciIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMkqc/ERERERERERERERERERERERERERERERERERERomTn4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjIKHHyExEREREREREREREREREREREREREREREREREZJU5+IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiKjxMlPRERERERERERERERERERERERERERERERERGSUOPmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIwSJz8RERERERERERERERERERERERERERERERERkVHi5CciIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMkqc/ERERERERERERERERERERERERERERERERERERomTn4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjIKHHyExEREREREREREREREREREREREREREREREREZJU5+IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiKjxMlPRERERERERERERERERERERERERERERERERGSUOPmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIwSJz8RERERERERERERERERERERERERERERERERkVHi5CciIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMkqc/ERERERERERERERERERERERERERERERERERERomTn4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjIKHHyExEREREREREREREREREREREREREREREREREZJU5+IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiKjxMlPRERERERERERERERERERERERERERERERERGSUOPmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIwSJz8RERERERERERERERERERERERERERERERERkVHi5CciIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMkqc/ERERERERERERERERERERERERERERERERERERomTn4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIjIKHHyExEREREREREREREREREREREREREREREREREZJU5+IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiKjxMlPRERERERERERERERERERERERERERERERERGSUOPmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIwSJz8RERERERERERERERERERERERERERERERERkVHi5CciIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMkqc/ERERERERERERERERERERERERERERERERERERomTn4iIiIiIiIjIqJiYmMi+KOeJjIyU/XctVaqUocskIiIiHbHPJyLK3fr16yf7Ob9ixQpDl2m0SpUqJfv3i4yMNHSZREREOdqxY8dk+9vGjRsbukwiIiIiItIQJz8RERERERERERERERERERERERERERERERERkVHi5CciIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMkrmhi6AiIiIiIiIlBEZGQl3d3fZuEaNGuHYsWPqF0RERLmSaH+jDTMzM+TLlw/58uWDnZ0dChcuDBcXF7i5ucHT0xMVKlRAzZo14eDgoEp+IiIiIjlLly5FSEiIYu2ZmJjA0tLy7XegN6+CBQuicOHCb19FihRBgQIFFMtLRESktJCQECxdulTVHCYmJrCwsEC+fPlgZWUFZ2dnFCpUCK6urihfvjxcXV1hYmKiag1EREREREREZBic/ERERERERERERERGITMzE0lJSUhKSkJMTAwePnz4nxhTU1P4+PigdevW6Nq1K6pUqWKASomIiCivCgkJwcqVKw2S29nZGZ6enm9f1apVQ61atWBtbW2QeoiIiN519+5dg/WRb9ja2qJGjRqoV68e2rRpg9q1a8PU1NSgNRERERERERGRMjj5iYiIiIiIiIiIiHKMrKwsXL58GZcvX8ZPP/0Eb29vjB49Gr1794aVlZWhyyMiIiJSzYsXLxASEvKPnacsLCxQrVo11K9fH61bt0ajRo1gZmZmwCqJiIgMJzExEceOHcOxY8fw448/wsXFBX379sXQoUNV28WaiIiIiIiIiPSDy5sQEREREREREeUSK1asgImJSbavfv36GbpMIkVdv34dgwYNQvny5bFp0yZDl0NERESkV+np6Th9+jR+/fVXNGvWDMWKFcOwYcNw7NgxQ5dGRERkcM+fP8f06dNRtmxZDBgw4L07TBMRERERERFRzsDJT0RERERERERERJTjPXjwAN26dUPHjh0RGxtr6HKIiIiIDCIqKgqLFi1CkyZNUKlSJSxfvhypqamGLouIiMigMjMzsXz5cnh5eeH333+HJEmGLomIiIiIiIiINMTJT0RERERERERERJRrbN++HdWqVUN4eLihSyEiIiIyqGvXrmHAgAEoVaoUfvvtN2RmZhq6JCIiIoNKTEzE8OHDERAQgJSUFEOXQ0REREREREQa4OQnIiIiIiIiIiIiylXCw8PRqFEjREREGLoUIiIiIoN79uwZRo4ciWrVqiEkJMTQ5RARERncpk2b0LJlSyQnJxu6FCIiIiIiIiISZG7oAoiIiIiIiIiIiCj3cXFxQatWrTR6T1paGmJiYhAbG4vo6GiEh4dDkiSt8j969AgdOnTAyZMnYWtrq1UbRERERLnJlStX0KBBA4wePRozZsyAuTkfFRMRUd4VHByMgIAA7NixAyYmJoYuh4iIiIiIiIhk8BdtIiIiIiIiIjIq2k50IONWqlQp/tvmMZ6enlixYoVObcTExODs2bM4evQo/vjjD7x48UKj91+9ehVjxozB4sWLdaqDiIjEsc8n+ltQUBAaN24sHJ+VlYXk5GSkpqYiJSUFL1++xNOnT/Hs2TPcv38f165dw7Vr1xAWFob09HSdapszZw7OnTuHjRs3olixYjq1RXnPihUrdP6en5dFRkYaugQig5s0aRImT56s1XvT09Px+vVrxMfH49WrV7h+/TpCQ0Nx9uxZBAcHIysrS6P2du3ahZkzZ+KLL77Qqh4iIiIiIiIi0h9OfiIiIiIiIiIiIiKjVKBAAfj5+cHPzw/ff/89/vzzT3zzzTeIiooSbmPp0qXo378/6tSpo2KlRERERLoxNTWFra3t2x0rixUrhkqVKv0nLikpCcHBwThy5Aj27t2L69eva5XvxIkTqF69OoKCglC+fHmdaiciItIXCwsLODk5wcnJCaVKlULVqlXf/rcnT55g3bp1mDFjhka/G0yYMAFdu3aFm5ubGiUTERERERERkUJMDV0AERERERERERERkRwrKyv0798fV69ehZ+fn/D7JEnChAkTVKyMiIiISH9sbGzg5+eH6dOn49q1azh//jw+/fRT2Nvba9zW06dP0bRpU4SFhalQKRERkX4VK1YMX3zxBW7fvo1hw4YJvy81NRWT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fHj69ClGjBihep68TnT3pytXrmDbtm0atz9t2jQULlxYNi41NRXt27fHb7/9pnEOXT148ABffvkl3N3dMWPGDGRlZenU3scff4waNWoIxc6bNw+9e/dGYmKiTjnT09MxduxY4V0R86q8cD6mpKTgu+++g5ubG7777js8efJEpUr/68KFC5g6dapsXIUKFeDm5ibUZm47HkP7+eefheKioqLQsmVLRf/eCxcuFB606eXlhb59+yqWm+hdly5dQq9evVChQgXs2LFDo/eamppixYoVaNGihSq1lS5dWnihkAMHDqBx48Z49OiRKrV8SGZmJrZt24batWvjo48+wrVr13Ru89dff4WDg4NQ7Ndff41vvvlG5+9rIi5evIgffvhB9Ty6WLlyJcqXL4++ffsK7VSolLi4OKHPaVNTU/j5+emhIt2NGzcOjo6OsnFZWVkICAjA8ePHFct96tQpdOrUSWhncSsrK0yePFmx3ERvZGZmYsqUKRrtBmNlZaXIAldA3r0GRScAz5kzB6dPn1Ys76VLl+Dn54fk5GTF2iQxTk5OGDx4sFBsv379cPXqVUXz79q1C5MmTVK0TRHNmzcXihs0aBCePXumWN7U1FT06dMHGzZsUKxN+nsXs6FDh8rGyX2uOjo6onv37kqVRURERET/wslPREREREREZNS+++47lCpVSih269ataN26NaKionTK+erVK/j7+wtPKipUqJBGq4fK8fX1xaeffioUm5ycjF69eqFHjx5arWSflpaGOXPmoEqVKh8cVOTt7a1xu8bu6dOn+Oqrr1CiRAkMGjRI9UlfGzZsEH7gNWDAAJ1yNWzYUDbm4sWL+PLLL/UyuM5QzMzMsGLFCqFV5oG/d8OqXr06goKCVKnn7t27GDlyJMqUKYOFCxeqkoP+p1q1avjoo4+EYqdMmaLxZMDChQtj+fLlQrEZGRkYOXIk2rZti/v372uUR1NZWVk4ePAgunXrhtKlS+PXX3/VeQLSGyYmJli4cCHMzc2F4tetW4cqVapgz549WuULCQlB7dq1P7jjU27sm7SVl87H2NhY/PDDD3Bzc0P37t1x6NAhVfuyY8eOoVWrVkI7VWnTf+e24zEUPz8/4QGWt2/fRr169XDhwgWdcmZmZuLbb7/FiBEjhPuQRYsWwcLCQqe8RO+6efMmZsyYAR8fH1StWhXr1q3T+DPE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3nu69957dfPmzdw3l09Zex4qWrSow9dMTU3VM888o6ZNm2rTpk0Orb1371516NBBjz76qFuGU/KypKQkde/eXY899phDBp1jY2PVoUMHffzxxw7oztju3btVp04dTZkyRVlZWbmuN23aNNWqVUuHDx92QHe2GThwoOrXr69x48blagDcmoMHD6pz584e8Rg6d+6cGjZsqNdff13Jycm5qlWjRg01bdrUYnzNmjU6duxYrtaw1ZQpUwzjAwcOdEkfAAAAAAAAAJzL2mBQrWp+Cgr03FNUy5b2VURxb8Mchp8AAAA8h+e+swRwxwoMDNS0adOsDkD9uXsDAACeZMCAAVZzli5d6rD1Tp8+rSZNmmjs2LFOHWJZt26d6tata/XqW7mRlpamoUOHqmvXrjp79qzT1vFkkyZN0pNPPmn3bht5ndls1qhRo9StWzddunTJaescO3ZMLVu21IwZM5y2hpHRo0frsccec/iOZGvWrNF9992X412D8rPU1FTFxMQY5tSuXduha8bFxalFixb6/PPPHTKEYsk333yjhg0bumyYIa+7du2amjdvru+//96hdbOysjR8+HB98sknDq37d2vXrlWLFi1ytZNedv58j+KqL3ZdPYj0zTffqFmzZrp48aJL1/3ToUOHVL9+fe3evdthNY12fzKbzZo2bZrD1rLkxIkTWr16tcV43bp1VadOHaf3AQAAAAAAAMC5zGaz1c+P69Yq4KJucq5OTX/DOMNPAAAAnoPhJwBOYTKZNHXqVLVs2dIwb/z48bm+ujEAAI7Url07RUZGGub89ttvDhlu2L9/vxo0aKBdu3blupYt4uLi1K5dO6cMQCUmJuq+++7TxIkTHV77TrF+/XoNHTrU3W14pKFDh+qtt95y6K5mlqSlpenJJ5/U+PHjnb7W340ZM0Zvvvmm0+pv3rxZQ4YMcVr9vGr16tVKSkqyGDeZTKpbt67D1rtw4YKaN2+urVu3OqymkUOHDql58+Y6cuSIS9bLq27fvq377rvPqV9gDh8+XCtXrnR43a1bt6pjx45KSEhweG1Jun79ujp37qxz5845pb67xcTEqFWrVi7fXe/8+fNq3769w3flfPjhhw13s5s1a5bTd+CeOnWq4es9uz4BAAAAAAAAecOlS5d09epVwxxrg0WeoG5N4wGt/fv3O/VidwAAALCdj7sbAJB3eXl5acKECapdu7YyMzOzzbl69aq++uorDRo0yMXdAQCQPS8vL7Vv395w55jExETt2bNHDRo0yPE6Bw4cUKtWrax+IPwnX19f1alTR9HR0SpSpIiKFCkiPz8/Xb58WZcvX9aWLVu0d+9eq8MlN2/eVMeOHbVz506VKVMmx/3/XVJSktq1a6fNmzfbfIyfn5/q1KmjGjVqKCoqSqGhofLz89PNmzd148YNXb16VTExMYqJibkjdlHKyMjQE088YdMH3xUqVFCHDh3UoEEDVaxYUVFRUQoKClJQUJDS09N169Yt3bp1S9evX9eBAwcUExOjffv2adu2bYZDHJ7q1Vdf1RdffGFzfsWKFdW0aVNVqlRJhQoVktls1vXr13XkyBGtW7fO5l3Fhg0bptDQUPXv3z+nrdvs+++/18iRIy3GAwMD1aJFC1WoUEHFixdXkSJFFB8frytXrmjXrl3asGGDTTu/zZkzR926dVOXLl0c2H3e9u677xrG27Ztq4IFCzpkrVu3bqlt27Y6fvy4Tfm+vr5q1KiRoqOjVaZMGQUFBSk5OVkXLlxQTEyM1q1bZ9OFIi5evKjWrVtr27ZtVod38W9ms1m9e/fWtm3bLOaUKVNGzZs3V0REhIoXL67AwEBduXJFcXFxWr16tU27b5nNZvXr109HjhxRUFCQQ3o/c+aMHnjgAZsvKFK8eHG1bNlS1apVU5EiReTt7a2bN2/q2LFjWr9+vcX7blxcnB5++GF98803Duk7N8LCwlSzZs2/XiMKFiyoggULysvL66/XzxMnTmjHjh2KjY21qebhw4fVq1cvLVu2zMnd/yEzM1Pdu3c3fD0rW7asGjVqpEqVKqlIkSLy9/fX7du3FRcXp3379mn9+vXZ/rv7+/urf//++uijj7Kte/nyZS1ZskQPP/yww27P36Wnp2vWrFkW48HBwerdu7dT1gYAAAAAAABgLCsrSydOnNDOnTu1f/9+Xb9+XcnJyUpLS5Ofn58CAgIUFham6tWrq169eqpYsaK8vCxfW//69etW16xZ1fOHn2pWM+4xNTVVycnJDvtsHwAAADnH8BMAp6pRo4Z69OihuXPnWsz58ccfGX4CAHiUtm3bGg4/SdKuXbtyPPx09epVderUyabBp3bt2unZZ59Vq1atFBgYaJh78eJFff3113r//fcNP2y+evWqunbtqi1btsjX19fu/v8uKytLjz76qM2DT23atNGAAQPUuXNnq7dH+mMXn5iYGC1dulQLFizw2N1NvvrqK6sDDw0bNtTbb7+ttm3bWszx8fFRQECAIiIiJEmNGjX6K5acnKyVK1dq6dKlWrJkiS5fvuyY5p1o4cKFeu+996zmeXl56fHHH9ewYcNUs2ZNw9xNmzbpo48+0uLFi63WHTJkiO6++27Vq1fP1pbtdvLkSX366afZxtq0aaMXX3xRLVu2lL+/5S9Obt26pS+//FLvvPOObt++bbje8OHD1alTJ/n48Ou8NRMnTtSGDRsMcwYMGOCQtcxmsx5//HEdOnTIam54eLhGjhypfv36qVChQhbzkpOTNW/ePL377rs6efKkYc0LFy6oe/fuWrt2ba6f1/ObTz75REuXLv3XzwMCAvTMM8/oscceU/Xq1Q1rHDx4UK+++qrV56Xz58/rww8/1OjRo3PTsqT/e/215bWgWbNmevXVV3XvvffKZDJZzNuzZ48++ugjzZs371/D1Fu3brX4XOdMxYsXV6dOndSpUyfVqVNHUVFRNh8bFxenOXPmaPr06Tp69Khh7vLlyzVt2jQ99dRTuW3Zqo8//jjb903+/v568sknNWjQIKuvhUlJSZo/f362zyGDBg3S2LFjLQ7ET5kyxWnDTz/++KMuXbpkMd6rVy8FBwc7ZW0AAAAAAAAA/8tsNmvz5s1asmSJtm/frl27dunWrVs2Hx8SEqI6deronnvu0QMPPKCmTZv+z2fMKSkpVmsUDLU8POUpQkOs95iSksLwEwAAgAfw/HeXAO541q5Mv2HDBrYHBgB4lCZNmljN2blzZ45qm81m9erVS6dPnzbMq1Onjnbv3q0VK1bo/vvvt2lQKCIiQsOHD9fJkyc1cOBAw9xdu3bp/ffft6f1bH344YdatGiR1bwaNWpow4YNWrlypXr06GHT7ZH+2CGqXr16Gj16tA4fPqzdu3dr4MCB8vPzy23rDjVt2jTD+NChQ7VhwwbDwSdrAgIC1LlzZ02ZMkVnz57VzJkzrZ4c7U6XLl3Sk08+aTWvYsWK2rZtm2bMmGHT7WncuLEWLVqkZcuWqVixYoa5qamp6t27t1JTU23u215z5sz51xdFUVFRWrZsmVauXKn27dsbDj5JUsGCBfXSSy/p8OHDqlatmmHuiRMn9N133+W677xu0qRJeuaZZwxz7rnnHnXr1s0h602dOlVLliyxmvf444/r2LFjGjZsmOHgk/THY/6JJ57QwYMH9cILL1itvXnzZr399tu2toz/7/PPP//Xzx5++GEdPXpUY8aMsTr4JEnVqlXTokWLtGDBAqvDZxMmTHDILn6ffvqp1q9fb5hToEABTZs2TevWrVP79u0NB58kqXbt2vrmm2+0evVqlShR4l9xe3bxy40CBQpo4MCBWrduneLi4jR9+nR17drVrsEnSSpRooRGjBihQ4cOady4cVa/mB45cqTVAVRHyG6HqSZNmujAgQOaOHGiTa+FgYGBeuKJJ7J9DqtQoYLatWtn8diVK1fq1KlT9jVto6lTpxrGrb0/BQAAAAAAAJB7CQkJ+vLLL1WrVi01adJEH374oVavXm3X4NOfddauXauxY8eqefPmqlGjhiZOnKj4+HhJsun7N38/48+lPYEtPTrzu0YAAADYjuEnAE7XoUMHw22Q4+PjPXYXBwBA/lSmTBkVLFjQMMeW3T2yM3nyZK1cudIw55lnntGmTZtUu3btHK1RsGBBTZ48WWPHjjV8DX733XcVGxubozUkad++fRo1apTVvCeeeEI7d+60aajMmtq1a2vy5Mk6efKkhg0bpgIFCuS6Zm5dv35dW7ZssRi/99579dlnn8nb29tha/r5+alfv37au3evRowY4bC6jvT888/r5s2bhjkNGjTQ9u3bVbduXbvrd+jQQdu2bVPZsmUN844dO2bT7lOOUrt2bW3evFkdOnSw+9jIyEitWrVKFStWNMz78ssvc9penrd9+3a1adNGTz/9tMVdT6Q/dliZOnWqQx6Xly9f1siRI63mvffee5o1a5ZCQkLsqu/v76+xY8dqxowZhs/pkjRmzBgdPnzYrvr4Xy+99JK+/fZblSpVyu5jH3nkEc2bN88w58aNG1qwYEFO25MkXblyRW+99ZZhTnBwsH777TebhlD/qUWLFtq2bZsqVKjwPz939kVLihUrpjfeeENnzpzR5MmT1axZM6v3eVt4eXlp2LBh2rFjx187K2bn2rVrLhvw+rvevXtr9erV//r7zo3BgwdbjJnNZqtD2zlx+vRp/fbbbxbj0dHRTt2JEQAAAAAAAMjvzpw5o2eeeUaRkZEaMmSI9u3b59D6Bw8e1NChQ1WyZEkNGTJEly9ftnpMWrrl72o8hS09etqFOQEAAPIrhp8AOF1ISIiKFi1qmGPLL8QAALiStZ0ezp07Z3fN69evWz1B/sUXX9Rnn31mdacYW7zwwgsaPXq0xXhaWprefffdHNd/9tlnlZaWZrWH6dOnO/wD4cjISI0bN05VqlRxaN2c2LFjh+GQxdtvv211t43cKF68uNNq59TevXutDgBUrlxZy5cvt7r7jZGyZctq5cqVKly4sGHe2LFjdeXKlRyvY6tq1app3bp12e6YYqvw8HBNmjTJMGfDhg26ePFijte405nNZiUkJCguLk579+7V119/rRdffFGVK1dW/fr1tWrVKsPj/fz8tHDhQtWqVcsh/XzwwQe6ceOGYc5LL72kl19+OVfr9O/fX5988olhTlpamt54441crZOfvf766/rggw9y9Zz90EMPqU+fPoY5ud297f333ze8QqeXl5e+/fZbNW3aNMdrlCpVSitWrLD6/OpIEyZM0OjRo63u6pdTVapU0apVqwxfd6ZMmeKUtS1p3769Zs+ebXXHMHt17txZkZGRFuMzZ85URkaGQ9ecPn264YAcuz4BAAAAAAAAzpGVlaXPPvtMVapU0eeff66EhASnrpeYmKgvv/xS3bt3t5obn+Dci2o5QsJt6z0GBAS4oBMAAABYw/ATAJcIDw83jF+7ds1FnQAAYJvSpUsbxuPi4uzeAWHMmDGGJyv36NFDY8aMsaumNa+88orat29vMT579mxdvXrV7rq//vqrVq9ebZhz3333aezYsXbXvtOcPHnSYiw8PFz169d3YTee4d133zUcCPP29tb8+fNzNfj0pwoVKmjq1KmGOUlJSRo3blyu1zJSoEABzZ8/3+5dfbLTtm1bde7c2WI8KyvLcHeNO02rVq1kMpls/uPl5aXQ0FCVLFlStWvXVt++fTV27FgdPXrU6lpRUVFasWKF7rvvPof0fvXqVU2ePNkw55577nHY7mPPPvus4X1Dkn744Qd2f8qBZs2a2bSboS3Gjh1rOPS7evVqq8PDlty6dcvqrj3//e9/1bFjxxzV/7vy5cu7ZSckZ6patarefvtti/ETJ05o06ZNLuklNDRU06dPl4+Pj8Nr+/j46KmnnrIYj4uL008//eSw9TIzMzVjxgyL8aCgIKtDgQAAAAAAAADsd/z4cbVs2VLPPvuskpOTXbp2enq61Zx9h3P2Wbgr7T+Uahj39fVl+AkAAMBDOP7bdQDIRmhoqGHc1b+A4w4xbJi0Z4+7uwByp3Zt6dNP3d0FcsDazi3p6em6fPmyIiIibKoXHx+viRMnWowXLlxYkyZNcvgOQV5eXpowYYKqVKmS7bBWWlqavv76aw0bNsyuuh999JFhvEiRIpo+fbpdNe9URju+lClTxoWdeIZLly5p0aJFhjlDhgxR7dq1HbZmt27d1K5dO8OBoGnTpmn06NEO313jT6NGjdLdd9/tsHpPPPGEli5dajG+YcMG9e3b12Hr5XXFixfXwIED9dJLLyk4ONhhdWfPnq2kpCSLcS8vL02cOFFeXo679synn36q3377TSkpKdnGs7KyNHnyZKcP/OUlfn5+mjNnjry9vR1SLyIiQh07dtSSJUuyjaekpGjnzp1q1KiR3bW/+uorw6t2Fi1a1GFDXNIfg9mff/65NmzY4LCa7jZkyBCNHz9ex48fzza+fPlyNW7c2Ol9fPDBB4a7M+XWgAED9M477ygzMzPb+NSpU9WlSxeHrPXzzz/rwoULFuM9e/Z0yHAwAAAAAAAAgD+YzWZNnDhRI0aM8OhzrnbFpOjxR4zPGXO3HTHGw0/VqlVz6Pc8AAAAyDmGnwC4RGJiomE8KCjIRZ3gjrJnj7R2rbu7AJBPFS9e3GpOQkKCzcNPc+fONXw9fPPNNxUWFmZzf/aoVKmSunXrpu+//z7b+IIFC+wafjp27JhWrVplmDN+/Hib/27ysoyMDHe34HLz5s0zvN2FCxc23HUjpyZMmKDq1atbPMn7ypUrWrZsmR544AGHrx0SEqKnn37aoTXvu+8+FSxY0OJucXv37nXoenlRyZIl1atXLzVv3lwdOnQw3Iknp+bMmWMYf/zxx3XPPfc4dM3y5ctr+PDheueddyzmzJ07Vx999JFTdpTJi3r16qWoqCiH17Q0/CT98RjOyfDTvHnzDOOjRo1yyK56fzd+/HjVrVvXoTXdydvbW926ddOHH36YbXzVqlV66623nNpDeHi4BgwY4NQ1IiMj1blzZy1evDjb+PLly3X27Fmru53aYsqUKYbxgQMH5noNAAAAAAAAAH/IzMzUoEGD7ogLUe6yMljkCaz1WK9ePRd1AgAAAGsYSQfgEmfPnjWMO+tkbwAAcsqWrevtuYrW7NmzLcYKFiyoQYMG2VwrJ4xOOt2+fbtu3rxpc6358+fLbDZbjJcuXVo9e/a0p707WpEiRSzGjh496tFXW3MGa7s+9e7d2+En5ktS5cqV1a5dO8Mca73l1JNPPml1p1N7+fn5KTo62mL88OHDDl0vL7pw4YJ+/PFHrVmzxinDYqdOnbJa9z//+Y/D15X+2LnGaJeiy5cva+PGjU5ZOy967rnnHF6zYcOGhvGcPIYvXLigLVu2WIwHBATo8ccft7uuNXXq1FGDBg0cXtedOnbsaDG2d+9ew/c5jvDoo4+6ZDhx8ODBFmNZWVkOOTni3LlzWr58ucV4rVq1VL9+/VyvAwAAAAAAAEBKS0tTr169cv3ZXnCQSQ3rFtC9LQPV6d4g3dsyUI3qFVBIsGNPJ929L1UpKVkOrelI5+MydD7O+GKWeeniYAAAAHc6hp8AON358+d17do1w5wKFSq4qBsAAGxToEABqzm2DrVcuXJF27Ztsxjv2rWrU3Yk+bsmTZrI19c321hmZqY2bNhgc62ffvrJMD5o0CDDk/LzmmLFilmMJSYmaubMmS7sxr0SExO1efNmw5zHHnvMaetbq/377787Zd1u3bo5pW7NmjUtxm7duqWEhASnrJuXHDt2TOPGjVP9+vXVtm1brVmzxmG1f/vtN8N4tWrVnPaFWMmSJdWmTRvDnJUrVzpl7bymfPnyqlWrlsPrRkVFqWDBghbj1i4Qkp1Vq1YZDuV06tRJISEhdte1Re/evZ1S112Mdvq6ffu2Tp8+7dT1nTGklp17771X5cuXtxifMWOGxR0TbTV9+nTDGuz6BAAAAAAAADhGZmam+vTpo++++87uY8MKeWlIv4L66vNwHVgXpetHKmjjT6W1bF6klswuqWXzIrVhaWldP1JehzZEac7EcA19sqCKFs7dd77JKWZ9t/R2rmo40+wF8VZzGH4CAADwHAw/AXC6FStWGMZDQkIUGRnpom4AALCNLcNIaWlpNtVasWKFsrIsX9Hq4YcftrmvnAoMDDT8YHb37t021bl586a2b99uMW4ymfTUU0/Z3d+dzNpuBiNHjtSmTZtc1I17bdmyRenp6RbjlSpV0j333OO09bt06aLg4GCL8bNnzzr8hHY/Pz+n3aYqVaoYxi9fvuyUdfOq33//Xa1atdKgQYOUlJSU63rr1683jDt7WKRv376GcWv94Q9NmjRxWu3KlStbjOXk8bt27VrDuDN3XezRo4e8vPLOx4gRERGGcWcOP4WFhenuu+92Wv2/M5lMhruLnj171nDXJmuysrI0Y8YMi/HAwEA9+uijOa4PAAAAAAAA4A9ms1mDBg3S999/b9dx99T21/RPw3V2Vzl9/n5x9XkoVFUq+cnb25RtvpeXSXdV8FPvbqEa/05xndlVVl99Hq5G9axfONSSL2ffyvGxzpSRYdaUOca9+fr6Gl6sEAAAAK7l4+4GAOR9s2bNMow3a9ZMJlP2v1QDAOAuqampVnP8/f1tqrV161bDuKuuFhUVFaUtW7ZkG9u3b59NNXbt2mW460TVqlUVHh6eo/7uVJGRkapcubKOHDmSbTwhIUGtW7fWiy++qBdffFGhoaEu7tB19u7daxh35pCBJAUEBKhevXqGu/vs3btXZcuWddia0dHRNu0UlxNGu8ZIf+z+lBcMHz7ccEgkO1lZWYqPj1d8fLyuX7+umJgY7dmzx6bdsKZMmaK1a9fq119/Ndz9xRpr9/emTZvmuLYtmjVrZhiPiYlx6vp5RePGjZ1W2+gxnJPH7549ewzjzrzPhYeHq2LFijp69KjT1rCH2WzWhQsXFBcXp6tXryo+Pl6pqalKS0szfJ9iq7i4OAd0mb3o6Gin1c5O//799frrr1sc2p8yZYruv//+HNVevny5zpw5YzHeo0ePPP2+BwAAAAAAAHCViRMnavr06TbnR5Xy0eSxxdWuRVCu1vX391Kfh0LV56FQrducrAEvXNLxU5YvhJidLTtTtCsmRXVqOuf7tJz6eWWizl7IMMy59957nfY9IAAAAOzH8BMAp1q1apXWrVtnmNO+fXsXdQMAgO1SUlKs5gQEBNhUy2hXpcKFC1vdfcBRihQpYjF27tw5m2pYO/G6YcOG9rSUZzzxxBN66aWXLMZTU1P1zjvvaNy4cerdu7d69OihFi1ayMcnb/1Ktn//fsO4K074jo6ONhx+2rdvnx588EGHrVemTBmH1fqnkJAQw7gtQ5p3gvvvv18tW7bMdR2z2aydO3dq2rRpmjt3ruEg1JEjR9SmTRutW7dOJUuWtHutjIwMHT582GLcZDKpdu3adte1R1RUlMLCwnTjxo1s4zdu3NC5c+dUqlQpp/Zxp3PXY9jex6/ZbNahQ4csxsPDw1W8eHG7atqrVq1abht+unLlin755Rdt2rRJ27dv15EjRxyyg5sl165dc1rtOnXqOK12dooVK6aHH35Yc+fOzTb+888/68KFCzl6Lpw6daphfODAgXbXBAAAAAAAAPC/jh8/rhEjRticP+ixghrzelGFBHs5tI/mjQK0e2UZvfr+NU2YflP2XIfqw4k3NH9yCYf2kxtZWWaN/SL771f+bvDgwS7oBgAAALbKW2faAfAoCQkJVk908fX1Va9evVzUEQAAtrPlhFpbh5+MTpAPCQnRtGnTbO4rN06fPm0xdv78eZtqnDhxwjDeoEEDe1rKM55++ml99NFHunr1qmFeYmKipk6dqqlTpyosLExt2rRRy5Yt1bJlS1WrVu2O3w0zNjbWMO7sYRDJ+oCVtR7tFRYW5tB6fxccHGwYt7SLR35lMplUr1491atXT2+//bYGDx6shQsXWsw/ceKE7r33Xu3YscPuq/bFxcUpPd3ylQ3Lli1rdecuR4iOjtaqVassxmNjYxl+ssJdj2F7H78XL15UYmKixXitWrXsqpcTtWrV0nfffef0df6UkZGh77///q/d2rKysly2dnJystNqO3PgzpLBgwdbHH7KzMzUjBkz9Nprr9lVMy4uTj/99JPFeM2aNfPtUDwAAAAAAADgKFlZWXriiSds+syyYKiXFkyJyPVuT0YCA7007u1i6tIxSA8/FafrN2z73Pa7H2+rZ5fb6tLR+LsvV5k445Y2bTe+GGpUVJQ6duzooo4AAABgC4afgHxi5cqVatSokYKCnPcL7t8lJSWpa9euVk+Q7tmzp4oVK+aSngAAsMelS5es5oSGhlrNSUlJMRyIiY2N1YABA+zqzRni4+Ntyjt79qxh/K677nJEO3ec4OBgzZgxQw8++KDMNl7m7MaNG/r+++/1/fffS/rjBPyGDRuqcePGatq0qRo0aGDzgJ2nuHDhgmG8YsWKTu+hUqVKhnFrPdqrcOHCDq33d9aG4Wy9r+VHxYoV0w8//KD3339fr7zyisW8AwcO6I033tCHH35oV31PuK9Lf9zfjYafHH1/z4vc9Ri29/EbFxdnGHfF668rX+N/+OEHjRw5UsePH3fZmn/nzJ31XDEY+U/NmjVT9erVdeDAgWzj06dP16uvvmrXEPbMmTOVkZFhMe4J728BAAAAAACAO93nn3+u9evXW80rVsRby+dHqnYNfxd0JbVoHKg1i0qpfY/ziruUadMxT790Wc0aBKhIYW8nd2fs+Kk0vfyu8QUtpT8uKuXt7d5eAQAA8L8cu7cpAI/1+eefq1y5cho7dqxNO1nkxpEjR9SqVSv9/vvvhnl+fn568803ndoLAAA5Ze0kYz8/P5sGeO+UE89t3eHA2lBYoUKFHNDNnalz58766KOPcrx7040bN7Rs2TK9/vrratWqlQoXLqz27dvriy++0MWLFx3crXNY2/nKFSd8W1vjypUrDl3P3981XyIhZ15++WUNHjzYMOeTTz7Rnj177KrrCfd1W9Zx9P09L7pTHsPWXn894fnVERISEvTII4/o4Ycfdtvgk/THbkjOYsvwvDMYPReePn1aK1assLmW2Ww23Lk0ICBAjz76qF39AQAAAAAAAPhfZ86c0ciRI63mFQz1cung05+qV/bXigWRKhJm2ymol65k6r+vXXbrxf0yM80a8PxlJacY9+Dn56cnnnjCRV0BAADAVgw/AfnIlStX9OKLL6pcuXJ64YUXtHXrVofWT0hI0GuvvaaaNWtq27ZtVvNHjRql8uXLO7QHAAAc5cyZM4bxkiVL2jTkkpCQ4KiWnMrWHQ6sDVHn5+EnSXrhhRf03XffKTg4ONe1UlJStGLFCv3nP/9RqVKl1KlTJy1fvtwBXTqP0RCdt7e3S3YhtXZyvq2Dfsg7xo4dazismpmZqY8//tiumtbuR64abuD+nn9Ye/0NCQlxeg/Ovl9fvnxZzZo103fffefUddzNXcNPffv2NXwdnjp1qs21Vq5cqVOnTlmMP/LII/n+PSEAAAAAAACQWx999JFNn/MvmBLh8sGnP1Wr7K8fZpSUrdeGnL/ott7+5Lpzm7IgK8usQS9e1rot1v9OhwwZouLFi7ugKwAAANiD4ScgH7p8+bI++eQTNWzYUGXLltXw4cO1bNky3bhxw+5aCQkJ+uWXX9S7d29FRETo3XffVVpamtXj2rRpo5deeikn7QMA4HRms1kHDx40zCldurRNtfLaiefWbg8nukoPPfSQDhw4oMcee0xeXo75lSszM1M///yzOnbsqHr16mnt2rUOqetoKSkpFmOuODFfsj4MYtQj8qagoCANHz7cMOe7777T5cuXba5p7X7kKcNP3N/zDk+4zzlzjcTERN1///3au3ev09bwFI56b2CvggULqmfPnhbjP/74o9Udxv40ZcoUw/jAgQPt6g0AAAAAAADA/7p9+7Zmz55tNW/QYwXVroXzLz5opFnDAD07oJDN+aPHXtcHn7l2ACory6xnXrmimfPireZGRUXp7bffdkFXAAAAsJePuxsA4F6xsbH6+OOP9fHHH8tkMql06dKqXLmyoqKiFBERocKFC6tAgQLy9vZWQkKC4uPjlZCQoNjYWO3Zs0enTp2yezvi2rVra+HChfL29nbSrUKeUbu2uzsAco/78R3p1KlTun37tmFO9erVbaqVnp7uiJZwhylTpoxmz56tESNGaPLkyZo7d66uXbvmkNo7d+5Uy5Yt9fTTT2vcuHHy8/NzSF0gL+vevbvhxRdSU1P1448/6qmnnnJhV4DtsrKyDOO+vr5O78GZa7zwwgvasWOHTbne3t6qU6eO6tWrp8qVK6t8+fKKiIhQsWLFFBwcrKCgIPn4+Fjt15YdPPOaIUOGaPr06dnG0tPTNWvWLKsXqrl8+bKWLFliMV6jRg01btw4V30CAAAAAAAA+d0333yjhIQEw5yoUj4a83pRF3Vk7O2XiujnlYk6dtK278Zfff+art3I1HuvFJWvr3M/q01MytKg4Zc1b5Hx3+efpk+f7rKLOgIAAMA+DD8B+IvZbNaZM2d05swZp63RvHlzLVmyxGVXQscd7tNP3d0BgHxqw4YNVnPq1q1rUy1/f//ctuNRAgICDOM3b95k96e/qV69uj777DONHTtWK1as0G+//aZVq1bpwIEDdg+Q/9MXX3yhw4cPa9myZR4zAFWgQAElJiZmG7P2BY2j3Lp1yzBeoEABl/QBz1KuXDlFRUUpNjbWYs7GjRttHn6ydj+Kj7d+5UBH4P6ef1h7P+GK51hn3a+3b9+uyZMnW82rV6+e/vOf/6hr165Wdz2zJrevwXequnXrql69ehYHzaZNm6YRI0YYDobNmjXLcLh/wIABue4TAAAAAAAAyM/MZrO++OILq3lTPg5XSLB7dpr/p8BAL00fF67mD56z+ZhPvrypNRuTNf3TcNWs5pzv1NdtTtZTz1/SidO2DWUNHjxYbdq0cUovAAAAyD3PePcLIM8zmUx67rnntGLFCk6IBgB4vJUrV1rNsXX4KTAw0DDepEkTmc1mj/jjiNtz8+ZNm+rkN35+furUqZPGjx+vffv26dKlS/r+++/13//+V3Xq1MnxjpirVq3yqJ1qjIbjMjMzLQ5GOZK1YRBrA3zIu6Kjow3jmzZtsrmWtfuRpww/cX/POzxh4M5Za7z11luGcR8fH33yySfavn27+vXrl+vBJ8n6YycvGzJkiMXY8ePHtWrVKotxs9msadOmWYwXKFBAffv2zVV/AAAAAAAAQH63ZcsWxcTEGObcU9tfbZsbf2/rak3qB6h5Q/u+l9i1L1X1O5zRO59cU1qa4y5alZiUpWGvXVGrbudsHnwqV66cPvzwQ4f1AAAAAMdj+AmA00VHR2v16tX65JNP8tzuFwCAvCczM1MrVqwwzClUqJDuvvtum+oVKVLEMJ6SkmJzb54gIiLCMM7wk22KFSumhx56SOPHj9fOnTt18+ZNLVu2TMOHD1f16tXtqjVnzhx9++23TurUPsWKFTOMu+LkfGsntBcvXtzpPcAzWXs+tmcHXE+4r0t55/6emprq7hY8XuHChQ3jd+rwU1xcnJYtW2aY8+233+q5555z6Lo3btxwaL07Sc+ePQ0vSjN16lSLsTVr1ujYsWMW4927d1dYWFhu2gMAAAAAAADyvcWLF1vNGdyvkNP7yInB/ey/eFV6ujTqo+sqX/+URo+9pvNxGTle/9jJNA1/84qi6p7ShOk3bT6uYMGCWrx4sUJCQnK8NgAAAJyP4Scgnxg5cqSGDRumu+66y2VrNmzYUPPnz9eOHTvUokULl60LAEBuLFu2TJcuXTLMad++vXx8fGyqFxERIT8/P4vxy5cv29Wfu5UuXdowfvToURd1krcEBwerQ4cO+uijj7R//34dPXpUb7zxhkqUKGHT8W+++aaysrKc3KV11vo9ceKE03s4fvy4YdzWv1PkPbYMoyYnJ9tUyxPu65Lj7+8mk8lizNYdAnPi2rVrTqudV1j7t7xw4YLTe4iLi3N4zZ9++kmZmZkW4wMGDFDXrl0dvu7169cdXvNOERgYaLg706JFi3T16tVsY1OmTDGsPXDgwFz1BgAAAAAAAEDavn27YTyskJd6PBDsom7s07VjsMKLeefo2LhLmXrr4+sqd88pPfzkBU39+pZ2xaQY7giVnJylLTuT9cXMm+rQ87yqNInVuMk3deOm7d+bBgYG6pdfflHNmjVz1DcAAABch+EnIJ9o2LChxo0bpyNHjujEiRP64osv9Oijj6pSpUqGJ7jZw8vLS7Vr19Ybb7yhmJgYbd68WT169JCXF081AIA7h9HV7v/UuXNnm+uZTCaVLVvWYvzChQtKT0+3uZ67VahQwTC+detWF3WSt1WqVEmjR4/W6dOn9fHHHysgIMAw/9ChQ1q1apWLurPM6L4uSbt373Z6D9bWiIqKcnoP8Ey2DO/YuhtMiRIlDAdbT5486ZKdeBx9fzca7E1KSrKrlj3y8yCKrSIjIw1/t46JiXF6D3v37nV4zQ0bNhjGR4wY4fA1pT8eo/nZ4MGDLcbS0tI0e/bsf/382rVrWrRokcXjqlWrpqZNmzqkPwAAAAAAACC/ysrK0q5duwxzenYJUUCAZ56L5edn0qMP5273pMxMadEviRr84mXd0/6sClY6ofrtz6hrvwvqNThOPQfFqUu/C6rdOlYFK51Qk07n9MwrV/TbWvu/xwgODtZPP/2kxo0b56pnAAAAuIZtl6sHkKeUL19eQ4YM0ZAhQyRJN2/e1Pbt23X06FGdOnVKp06d0unTp3Xz5k3dvn1biYmJSk5Olre3t/z9/RUUFKRixYopPDxcZcuWVZUqVVSjRg01atRIBQvav30xAACeYs+ePVq6dKlhTnBwsF3DT5IUHR1tcUekzMxM7d+/X9HR0XbVdJc6deoYxrds2eKiTvIHPz8/Pf/884qOjtZ9992nlJQUi7m//fab2rZt68Lu/q1GjRqGcU8Yfrr77rud3gM8ky27C3l723Y1Qh8fH1WpUsXiwInZbNaePXvUvHlzu3q0x5kzZwyHhsLCwlSqVCm7avr7+1uMOXOY69y5c06rnVcUKFBA5cqVs7ir2JEjR5Sammr4b5hbzhh+OnjwoMVY7dq1VbFiRYevKUkbN250St07RbVq1dS8eXOtW7cu2/jUqVP1wgsv/M/PZs+erdTUVIs1BwwY4NAeAQAAAAAAgPzoxIkTunXrlmFOw7oFXNRNzjSsGyDppsPqpaWZtTMmVTtjLH8+mROFCxfWsmXLVL9+fYfWBQAAgPMw/ARAhQoVUrt27dSuXTt3twIAgFu98sorVncG6du3r0JDQ+2q26BBAy1YsMBifMOGDXfM8FN0dLS8vLyUlZWVbfzw4cO6dOmSwsPDXdxZ3taqVSu99NJLGj16tMWc9evXu7Cj7NWqVcsw7uyTzVNTU7Vz507DHGs9Iu+6evWq1Zzg4GCb69WqVctwt52NGzc6dfjJ2uOpZs2adtc0upiFtS9bcyO/D6LYqkaNGhaHnzIzMxUTE6N77rnHKWtnZGRo3759Dq8bGxtrMVatWjWHr/cn7nPSkCFDLA4/HTlyROvWrfuf57Bp06ZZrFWgQAE99thjDu8RAAAAAAAAyG+sfc8lSXVrevbwU92azrtIl6M0atRIc+bMUYUKFdzdCgAAAOzgmfufAgAAAC42e/ZsLVu2zGre0KFD7a5tbTeeJUuW2F3TXUJDQ9WwYUOL8aysLMOTY5FzQ4YMkclkshiPi4tzYTfZa9Cggfz8/CzGjx49atOXNjm1ZMkSw91pypQpo7JlyzptfXi2HTt2GMbDwsIUFBRkcz1rg01z5861uVZOzJkzxzDeokULu2sWL17cYuzIkSN217MVgyi2ady4sWF80aJFTlt7xYoVun37tsPrJiQkWIxFREQ4fD1JOn/+vPbs2eOU2neSbt26GT7mp0yZ8td/r1+/XocOHbKY+9BDD6lw4cIO7Q8AAAAAAADIj/bv328YDw4y6a4Kvi7qJmfKlPJRkTDPPC21QIECGjt2rNavX8/gEwAAwB3IM99lAgAAAC506NAhPfvss1bzevbsmaNdCO6++27DD09Xr15tcScHT9SpUyfD+OTJk5WZmemibvKP8PBwVaxY0WLcll1tnC0oKMjqyfnWBjZyw1pta4OIyLuOHj2qCxcuGOYYPb6yY23n3P379zttwOLSpUtasWKFYU5O7u9lypSxGLt586bOnDljd01r9u7dq1OnTjm8bl7UqlUrw/j8+fOdtrazhvnS0tIsxry9vZ2y5sSJE5WRkeGU2ncSPz8/9e/f32L8hx9+0I0bNyRJU6dONaw1cOBAh/YGAAAAAAAA5FfXr183jNeo4i9vb8sXS/QEJpNJNasZ7/5UsGBBF3Xzfxo1aqQ9e/bohRdecNrnzwAAAHAuhp8AAACQr124cEEdO3bUrVu3DPMCAgI0ZsyYHK/Tp08fi7GsrCx98MEHOa7tar1795aXl+VfJc6ePasFCxa4sKP8o2jRohZjqampLuzEsq5duxrGv/nmG8PdmXLqxIkTWr58uWGOtd6Qd9kyFGJtcO+foqKiFB0dbZgzadIku2raytqQaXh4uBo1amR33cqVKxvGN23aZHdNaz755BOH18yr6tatqxIlSliMnzp1yim7aCUkJDhtl8qAgACLscuXLzt8veTkZKuDPPnJoEGDLL6nS0lJ0VdffaUbN27o+++/t1ijSpUqVnfCAwAAAAAAAGCblJQUw3hoyJ1xuqe1Pu+9916NHz/eJbsv1axZUzNnztT69eutfg8CAAAAz3ZnvBsGAAAAnODgwYNq3LixYmNjrea+9tprhjtiWDN48GD5+vpajM+YMUPbt2/PcX1XioqKUvv27Q1znn32WV28eNFFHeUfRrs7ueMKadnp1auXfHx8LMavXr2qN9980+HrPvvss4Y7eRQvXlwdOnRw+LrwfLdu3dKnn35qNS8nOyX17dvXMD5t2jSH7/505swZq8O4ffr0MXwcWlK7dm3D+Lx58+yuaSQ2NtapuxXlNV5eXurevbthzquvvurwdd99913dvn3b4XUlqVixYhZjznhf9Nprr3nETomeoly5crr33nstxqdOnaqvv/5aycnJFnMGDBjgjNYAAAAAAACAfCktLc0w7ufn2bs+/clanxkZGfrvf/+ro0ePavny5XrggQcML75p//p+6tOnjzZu3Kg9e/aoX79+7PYEAACQBzD8BAAAgHxp1qxZNg8+tWvXTiNHjszVeiVKlNDjjz9uMZ6VlaVevXrp+vXruVrHVV566SXD+NWrV/Xkk0+6qJv84dq1azp9+rTFePny5V3XjIFixYrp4YcfNsyZMGGCDhw44LA1ly5dqp9//tkwZ+DAgTkaBsGd79lnn9WNGzcMc4oUKWJ1qDM7jz32mIKCgizGs7KyNHToUJnNZrtrW/Lcc88pKSnJYtzLy0uDBg3KUe169eqpQIECFuPLly9XXFxcjmr/U2Zmph599FGrX+Tif/Xv398wvnbtWv3www8OW+/kyZM2DQ/mlNFVPQ8ePKijR486bK01a9Zo3LhxDquXVwwePNhi7MCBAxo9erTFuL+/v+H7WwAAAAAAAAD28fPzM4ynpTnu+wZnstanv7+/pD++02jfvr2WLFmikydP6r333tN9992n8PBwu9csVaqUHnzwQY0bN05nz57V119/rcaNG8tkujMGxgAAAGAdw08AAADIV3bt2qX27durf//+unXrltX8MmXK6Ouvv3bIlabefvttBQcHW4yfOHFCHTt21LVr13K9lq327NmjU6dO2X1cixYtrA4K/PLLL3rxxRdz2tod47PPPtO5c+ecvs706dOVnp5uMV6vXj2n92CrV155xfCLhIyMDPXs2dMhO4nExsZaHbQLCgrSsGHDcr0W7jyjRo3S7NmzreZZ253PkiJFihgODkjSxo0bDYcH7PHFF19o4cKFhjndu3fXXXfdlaP6fn5+at26tcV4Wlqahg8fnqPa//Tmm29qw4YNDqmVn9SuXdvw30iSnn/+eYe8l8jMzNSgQYOUmpqa61qW3HPPPYbx1157zSHrxMbG6tFHH3XoIGJe0alTJ5UqVcpi3Oi+1K1bNxUpUsQZbQEAAAAAAAD5ktEFyiQp4XaWizrJHWt9Znc7o6Ki9PLLL+vnn39WXFyczp07pyVLlmjUqFHq37+/evTooQceeEBdunRRz5499cQTT+idd97RL7/8okuXLuns2bNavHixhg0bpuLFizvrpgEAAMCNGH4CAABAnpeenq4lS5aoU6dOqlu3rlasWGHTcZGRkVq1apXDPhyNiIjQu+++a5izbds2RUdHa/PmzQ5Z05Lff/9dnTp1UnR0tE6cOJGjGuPHj7f6AfzYsWP11FNPOXxnjwsXLuj555/X4cOHHVo3J2bMmKEKFSpowIAB2rdvn1PW2L17t0aNGmWY06lTJ6esnRN33323+vbta5izf/9+3X///UpISMjxOmfPnlW7du105coVw7wRI0ZwcnY+c+nSJT3wwAN66623rOYWLlxYL7zwQo7XGjlypAoXLmyYM3r0aI0fPz7Ha0jS119/rf/+97+GOf7+/nr77bdztc4jjzxiGJ87d66+/fbbHNc3m80aOXKk3nnnnRzXyO/eeOMNw/iZM2f00EMPKTk5OVfrDBs2TCtXrsxVDWvuvfdew/h3332nGTNm5GqNI0eOqHXr1jp//nyu6uRV3t7eGjBgQI6OHThwoIO7AQAAAAAAAPK3sLAww/j+w2nKyvLsizyZzWbtO2T83XChQoUM4yaTSZGRkXrggQf05ptvasaMGZo/f76WLFmiRYsWad68eZo+fbpeffVVdezYkWEnAACAfILhJwAAAOQ5mZmZOnr0qGbMmKHevXurRIkS6tKli37++Weba0RFRWn16tWqUKGCQ3t75pln1LFjR8Ocs2fPqnnz5ho5cqQuXrzosLVjY2P1/vvvq0qVKmrbtq1dfx/ZqVy5stVhLumPHYvq1aunjRs35mo9Sdq7d68GDx6s8uXLa9y4cUpJScl1TUdIS0vTtGnTVLNmTTVv3lzTp09XfHy8Q2ovWrRILVu2NLytUVFRVnficrWxY8daHQhZt26dGjZsmKOhsZUrV6p+/fo6duyYYV7lypU1cuRIu+vjzmM2m7Vt2zYNHDhQFStW1NKlS206bsKECVa/TDRStGhRffjhh1bzhg0bpsGDByspKcmu+mlpaXr55Zf12GOPKTMz0zD35ZdfVqVKleyq/0/du3e3OizYp08fLViwwO7aZ8+e1cMPP6wxY8bktD3oj90Xu3btapizdu1atW/f3upwaHbS0tI0YMAAff755zlt0WbNmzdX6dKlDXMGDhyY415mz56tBg0a6OTJk//zc29v7xzVy6ueeuop+fj42HXMXXfdpZYtWzqnIQAAAAAAACCfql69umE84XaWjp1Md1E3OXPuQoauXDP+PqNGjRou6gYAAAB5iX3fagMAAABOtm7dOmVkZFjNM5vNSk1NVUpKihITE3Xp0iXFxcUpNjZWhw4dytVQTPv27TV37lyrgxs5YTKZ9M0336hp06Y6ePCgxbyMjAyNGTNGn376qfr06aNevXqpUaNGCgoKsnmtmzdvauvWrVq7dq2WLVumPXv2OOAW/K/nnntOW7dutboLyL59+9S0aVO1bdtWAwcO1P3336/AwECr9dPS0hQTE6OffvpJCxYs8IidnqxZv3691q9fr6efflotW7bUfffdp+bNm6tmzZo2n2ydmJioFStW6NNPP9W6deus5o8ePVpeXp51bYtixYppxowZ6tq1q8xmy1egO3jwoOrUqaMnn3xSw4YNU5UqVQzrbtmyRWPHjtUPP/xgtYcCBQpo3rx58vPzs7t/uM7PP/+s48eP23WM2WxWQkKCbt26pevXrysmJka7d++2eyexIUOGqHfv3nYdk50nn3xSv/zyixYuXGiYN3nyZP30009/DTOFhIRYzE1JSdH8+fP17rvv2vT306RJE73yyit29/5PgYGB+u9//2u421xGRoZ69uz5V3/VqlUzrHngwAHNnj1bEyZMyPb1+ZlnntGECRNy3Xt+Mn78eK1evVo3b960mLN+/XrVqlVLY8aMUZ8+fWx6nVi7dq2effZZ7d2791+x2rVrO/y9hLe3t5599lkNHz7cYk5mZqaeeeYZLVq0SC+99JLatWsnk8lkMT8lJUWLFy/W2LFjtXPnzmxzXn75ZXYf+5uSJUvqgQcesPoc9nc53S0KAAAAAAAAgGX16tWzmrMzJkWVK3rud187Y1Kt5tStW9cFnQAAACCvYfgJAAAAHmXmzJmaOXOmW9YOCgrSG2+8oeHDhzt1kCQsLEzLly9X8+bN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afny5ZozZ45TnmP/aejQoVq5cqUqVKiQ61qFChXS1KlTtXjxYgUFBTmgO/zpgw8+0MKFCx22G2DRokX17bff6tVXX3VIPVt16dJF27dvV926dR1SLzAwUB988IE2bdqkEiVKOKRmXlakSBGrJx489dRTLtnJEQAAAAAAAMiPdu7cqYMHD1rN27wjRWs3JbmgI9tt252iVRuSDXNCQkLUrl07F3UEAACAvMbH3Q0AAAAA9vLy8pK/v/9ff4KCglSsWDGFh4erePHiKlWqlCpXrqwqVaqocuXKCggIcHfLNgkMDNRrr72mESNGaOHChVqwYIFWrFihpKTcfXAdFBSk5s2bq02bNmrbtq1q1qzp9JNWCxUqpI8++kivvfaaZs6cqfnz52vr1q05rufj46OGDRuqQ4cO6tGjh1N3OrFXjRo1VKNGDb322mu6fPmyfv31V23YsEGbNm3SwYMHlZWVlav6pUuXVp8+fdS3b1+37lLmKGFhYfr888/16quvatKkSfrmm2908uTJHNWqWbOm+vbtqwEDBjhlpxB4Nh8fn79eA4oXL64SJUqoUqVKqlatmurXr686deo4fMciezVq1EgbN27U2rVrNWXKFC1ZskSJiYl21/H391fHjh315JNP6v7773f54EHLli21f/9+TZ06VePHj9eJEyfsOr548eJ6+umnNXToUHZ7cqKuXbuqRYsWeuuttzRlyhQlJxt/yZydgIAAPfHEExo1apSKFSvmhC6tq1SpkrZv366lS5fq/fff15YtW+yuUbJkSQ0cOFCDBw+2uOOg0YCVO3bj9BR79+61GPP19VW/fv1c1wwAAAAAAACQz0yaNMnm3AEvXNbu38soKND9179PScnSE89espqXkJCgFStWqEOHDi7oCgAAAHmNyWw2m93dBADkV9WrV8/2ii3VqlXTgQMH3NDR/0lNTbV6InL58uUdumsDAODfkpOTtX37dm3btk0xMTE6ffq0zp49q1u3bikpKUnp6ekKCgpSSEiIQkNDFRoaqrJly6pKlSqqUqWKqlatqurVq8vX19fdN0UXLlzQhg0btGXLFh05ckSnTp3SlStXlJiYqNTUVAUEBCgkJEQhISEqVqzYX7ehevXqatq0qUJDQ919E+wWHx+v7du368iRIzp+RhJUvAABAABJREFU/LhOnDih2NhY3bp1SwkJCbp9+7Yy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Q5qOmz6jNZdd3XYpq3fv3vna175WnkAAAABUlPITAAAAAAAAAABAD7Teeuvl85//fJszE16ck0uunFamRB3z899+mOkzWtuc+fa3v53BgweXKREAAACVpPwEAAAAAAAAAADQQ40dO7bdmSNOnJxJb88tQ5r2PfT47Pz23CntznXk6wIAAKBnUH4CAAAAAAAAAADooXbeeecsueSSbc5Mm96ag456P8VisUypPtns2a3Z7/D30l6MDTbYIA0NDeUJBQAAQMUpPwEAAAAAAAAAAPRQvXv3zoEHHtju3C13zcrZF00tQ6JPViwWc+RPJ+eFl9s/geq73/1uGRIBAADQXSg/AQAAAAAAAAAA9GBHHXVUlltuuXbnDj/hg/z5uullSPTffvqbj3LuH9ovX40ZMya77bZbGRIBAADQXSg/AQAAAAAAAAAA9GCDBg3Keeed1+5csZjsedi7+cNV08qQ6l/PLOb4kyfn57/9qN3Z2traXHzxxamuri5DMgAAALoL5ScAAAAAAAAAAIAebscdd8zuu+/e7lxra7Lv99/Lcb+cnObm1i7N9NHHLdnj0PfyqzM/7tD8SSedlJEjR3ZpJgAAALof5ScAAAAAAAAAAIDFwO9+97sst9xyHZr99VkfZ8yX3sxjTzV1SZYbb5uRtTd/PX++bnqH5seMGZMf/ehHXZIFAACA7k35CQAAAAAAAAAAYDEwePDgXHzxxSkUCh2an/DinGz0lTdz1E8/yFvvzCtJhokvzckeh76br+31Tt59v6VD9/Tr1y+XXnppampqSpIBAACARYvyEwAAAAAAAAAAwGJim222yTnnnNPh+dbW5LfnTskq67+anfd/J3fdPyvFYrFTz5w7t5hr/zY9W+88KSM2ez1/+kvHTntKktra2lx//fUZPnx4p54JAABAz+GjMAAAAAAAAAAAABYjBx10UKZMmZJjjjmmw/e0tCR/uWlG/nLTjHxmhZqsv25dGkb1zuhRdRk5rC79+hZS26uQ5jnFTJnWmqfHN6fx6eY0PtOUx55syocft3Y6Z3V1da644op88Ytf7PS9AAAA9BzKTwAAAAAAAAAAAIuZo48+OnV1dfnBD37Q6XsnvT0vk96el+tuntkFyearq6vL1VdfnR122KHLngEAAMCioarSAQAAAAAAAAAAACi/ww8/PJdcckl69epV6Sj/YdCgQbnl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fdq955133sn555+fM888Mx9++GG788cee2zWXnvtbLfddqWIDAAAAAAAAACLtPbKT0nyp79M67blp6fHN+fZ5+e0O3fcccdlvfXWK0MiAACokKlTkxNOSM4+O2ntgtNbV1xx/mlSO+5Y+t0Ai4CqSgcAKmeJJZbI4YcfnsbGxjz//PM59dRTs8UWW3So+JQkyy+/fE466aS8/vrr2X///dudLxaL2X///TNlypSFTA4AAAAAAAAAi77ll18+K6ywQpszl141PTNmdsHLkyVw7h+mtDuzyiqr5Pjjj+/6MAAAUAnFYnL11cnw4cmZZ5a++FRdnRx1VDJhguITsFhTfoLF0Oqrr57zzjsvb731Vk4//fSMHj16ofb17ds3v//97/OHP/wh1dXVbc6+8847+fWvf71QzwMAAAAAAACAnmK77bZr8/q06a3547XTy5Sm46ZOa+lQriuvvDK1tbVlSAQAAGX28svJdtsl3/pW8s47pd+/0UbJk08mp56a9OtX+v0AixDlJ1iMrLnmmrn88sszceLEHHjggR0+4amj9txzz5x55pntzp155pmZNm1aSZ8NAAAAAAAAAIuiAw88sN2ZMy+Ykrlzi2VI03HnXzY1M2e1nWmHHXbI+uuvX6ZEAABQJs3NyS9/mYwcmdxyS+n3DxqU/P73yX33JWuvXfr9AIsg5SdYDCy77LIZN25cxo8fn913373d05kWxiGHHJI999yzzZmZM2fmqquu6rIMAAAAAAAAALCoWH/99TNmzJg2Z55/aU5+deZHZUrUvpdemZOf/qb9PD/72c/KkAYAAMroH/9I1l03+fGPk6am0u/fc8/khReS/fdPqrzqD/Av/kaExcA+++yTQw45JDU1NWV53sknn9zuqVLXX399WbIAAAAAAAAAQHc3duzYdmd+cfpHeXp8cxnStK21tZj9f/BeZje1ferTRhttlHXXXbc8oQAAoKu9/36y117JFlskEyeWfv+wYcnddyd/+EOy9NKl3w+wiFN+AkpuyJAh2W233dqcue+++9La2lqmRAAAAAAAAADQfe2yyy4ZNGhQmzPz5iX7Hv5e5sxpu3TU1c68YEruf7T9T7jvSKELAAC6vdbW5Pe/n19OuvTS0u/v3Tv5xS+Sp59ONt+89PsBegjlJ6BLbL/99m1enzZtWl5//fUypQEAAAAAAACA7qtPnz75wQ9+0O7cU881Z9/D30tra2UKULfcNTNH/2Jyu3OrrbZadt555zIkAgCALvTMM8kmmyQHHph8/HHp92+zTfLcc8nxxye1taXfD9CDKD8BXWKzzTZrd+aVV14pQxIAAAAAAAAA6P5+9KMfZa211mp37s/XTc/BR72flpbyFqDuun9WvrnfO5k7t/3Z888/P7Ve3gQAYFE1Y0Zy1FHJ6NHJQw+Vfv/yyydXXZXcfHOy2mql3w/QAyk/AV1i8ODB7f4gc8qUKeUJAwAAAAAAAADdXF1dXS655JJUVbX/Os+Ff5qW7xz6bmbPbi1DsuTav03PV3Z/O7Ob2i9cHXLIIdlyyy3LkAoAALrADTcka62V/OY3SUtLaXdXVSXf+14ycWKy885JoVDa/QA9mPIT0GWWWmqpNq/Pnj27TEkAAAAAAAAAoPtbf/3186Mf/ahDs1fdMCOjt34jDz7Wdf/2PmVqS/Y9/N1864B3M2dO+8WnoUOH5tRTT+2yPAAA0GXeeCP52tfm/3rzzdLvHzMmefTR5IwzkgEDSr8foIdTfgK6zKxZs9q83rt37zIlAQAAAAAAAIBFw09+8pOMGDGiQ7Mvvjw3m311Uo766QclPwXq73fOzKgt3sgfrpze4XsuvPDC9OvXr6Q5AACgS82dO/+Up+HD55/6VGoDBiRnnZU8/HDS0FD6/QCLCeUnoEtMnz49U6dObXNm0KBBZUoDAAAAAAAAAIuGurq6XHPNNVlyySU7NF8sJr89d0rW3Oi1/Oy0D/P2u/MW+Nlz5xZz9Y3T88VvTMr233k7b73T8V0nn3xyttxyywV+NgAAlN2DD84vJB11VNLOB/4vkF13TSZOTA49NKmuLv1+gMWI8hPQJZ588skUi20feb/aaquVKQ0AAAAAAAAALDqGDRuWW265Jf379+/wPW+/25Kf/uajrLL+q/nWAe/k6hun55XX57b7b/dTp7Xk7gdm5aRTP8wq67+aXQ98N/94cHan8h555JE55phjOnUPAABUzEcfJQcemGy8cfLss6Xfv9pqyS23JH/+c7L88qXfD7AYqql0AKBnuummm9q8PmDAgKy00kplSgMAAAAAAAAAi5YxY8bk5ptvznbbbZfp06d3+L5585Jr/zYj1/5tRpJk0BJVGb12XdZYtTb1vQupri6kqbk1709uyRPPNOefr85dqJzf/e53c+qpp6ZQKCzUHgAA6HLFYnLZZckPf5hMnlz6/b16Jccckxx7bFJfX/r9AIsx5Seg5FpaWnLllVe2ObPJJpukqsrhcwAAAAAAAADwaTbZZJPcfffd2WabbTJ5AV/O/HhKa+68b3buvK9zpzl1xAknnJCf/vSnik8AAHR/zz+fjB2b/OMfXbN/iy2SceOSYcO6Zj/AYk7zACi566+/Pq+//nqbMzvuuGOZ0gAAAAAAAADAoquhoSEPPfRQxowZU+ko/9avX79cdNFF+dnPfqb4BABA9zZ7dvLjHyfrrNM1xaell55/mtSddyo+AXQh5SegpFpaWnLiiSe2OVNbW5udd965TIkAAAAAAAAAYNG2+uqr56GHHsrJJ5+c2traimb54he/mGeffTb77LNPRXMAAEC7brklGTky+eUvk7lzS7//oIOSF15IvvOdxIcCAHQp5SegpM4555xMmDChzZm99torgwcPLlMiAAAAAAAAAFj01dTU5Nhjj80TTzxRkVOg+vXrl3PPPTe33357hg4dWvbnAwBAh739dvKtbyXbbpu88krp948alTz4YHLuucmgQaXfD8B/UX4CSua1117Lscce2+ZMr169cvTRR5cpEQAAAAAAAAD0LCNGjMhDDz2Us846K6uuumqXP693797Zb7/9Mn78+Bx00EEp+ER7AAC6q5aW5Mwzk2HDkquvLv3+vn2T005LGhuTDTcs/X4APlVNpQMAPUNLS0v22muvzJgxo825ww8/PKuttlqZUi24s88+O+PGjevy57z88std/gwAAAAAAAAAepaampoceuihOeSQQ3Lbbbdl3Lhx+dvf/pZisViyZ6y++uo55JBDsvfee2fw4MEl2wsAAF3i8ceTgw+eX0zqCl/7WvK73yUrrtg1+wFok/ITUBInnHBC7r333jZnVlxxxZxwwgllSrRwPvjgg0yYMKHSMQAAAAAAAADgU1VVVWWbbbbJNttsk9deey2XXHJJbr/99jz11FOZNWtWp/etueaa2WijjbLrrrtm6623TlVVVRekBgCAEpo6Nfnxj5Ozz05K+GEA/7bSSvNPk9pxx9LvBqDDlJ+AhXbjjTfmV7/6VZszhUIhF110Ufr371+mVAAAAAAAAACw+Bg6dGh+8pOf5Cc/+UlaWloyceLENDY2prGxMS+99FJmzpyZ2bNnp6WlJb179059fX2WX375rLfeemloaMh6662XAQMGVPrLAACAjikWk6uuSg4/PHn33dLvr6lJjjgiOfHEpG/f0u8HoFOUn4CF8txzz2X33XdPsZ22/GGHHZatttqqTKkAAAAAAAAAYPFVXV2dESNGZMSIEdlzzz0rHQcAAErrn/9MDj00ue22rtm/8cbJOecka6/dNfsB6DRnUwML7P33388OO+yQ6dOntzm3/vrr5ze/+U2ZUgEAAAAAAAAAAADQ4zQ3Jz//eTJyZNcUnwYPTi64ILn3XsUngG7GyU/AApkxY0a22267vPbaa23OLbnkkrn66qtTW1tbnmAAAAAAAAAAAAAA9Cx33ZUcckjy4otds3/vvZNTT02WXrpr9gOwUJSfgE6bM2dOdtpppzQ2NrY5V19fnxtuuCErr7xymZKVztJLL5211lqry5/z8ssvp7m5ucufAwAAAAAAAAAAALDIee+95Mgjk8sv75r9w4cn55yTfOELXbMfgJJQfgI6paWlJbvttlvuuOOONud69eqVq6++OhtvvHGZkpXWoYcemkMPPbTLnzNixIhMmDChy58DAAAAAAAAAAAAsMhobU1+//vkmGOSKVNKv7937+TEE5Mf/jCprS39fgBKSvkJ6LBisZj9998/f/nLX9qcq6qqyqWXXpqvfOUrZUoGAAAAAAAAAAAAQI/w9NPJwQcnDz/cNfu33TY566xk1VW7Zj8AJVdV6QDAouP73/9+Lrnkknbnzj333Oy6665dHwgAAAAAAAAAAACAnmHGjOTII5OGhq4pPq2wQnLNNclNNyk+ASxinPwEdMhxxx2XM888s9250047LQcccEAZEgEAAAAAAAAAAACwyCsWkxtuSL773WTSpNLvr6pKvve95Gc/S/r3L/1+ALqc8hPQrpNPPjmnnHJKu3M//elPc8QRR5QhEQAAAAAAAAAAAACLvNdfn196uvHGrtm//vrJeecl663XNfsBKAvlJ6BNZ5xxRo4//vh254466qiceOKJZUgEAAAAAAAAwMJoaWnJiy++mMbGxjz11FN5++23M3v27DQ1NaW6ujr19fXp169f1lhjjTQ0NKShoSFLLbVUpWMDAAA9ydy5yemnJz/9aTJrVun3DxyYnHJKcuCBSXV16fcDUFbKT8CnOv/883P44Ye3O3fYYYfl1FNP7fpAAAAAAAAAACyQp556Kn/+85/z4IMP5sknn8zMmTM7df9KK62UhoaGbL311tltt92yxBJLdE1QAACg57v//uSQQ5Lnnuua/d/+dnLaaclyy3XNfgDKTvkJ+ESXXXZZDj744Hbn9ttvv/zud78rQyIAAAAAAAAAOqOpqSnXXHNNzj777Dz88MMLteuNN97IG2+8keuuuy5HHnlkvv3tb2fs2LFZb731SpQWAADo8T78MDn66OTCC7tm/xprJOPGJVtt1TX7AaiYqkoHALqfq6++Ovvss0+KxWKbc7vttlvOP//8FAqFMiUDAAAAAAAAoD0fffRRjjvuuKy44orZY489Frr49H/NmjUrF1xwQUaPHp0NN9wwf/nLX9r992UAAGAxViwml1ySDBvWNcWn2trkJz9JnnlG8Qmgh1J+Av7DX//61+y+++5paWlpc26nnXbKpZdemqoqf40AAAAAAAAAdBfXXXddhg8fnlNOOSWTJ0/u8uc9/PDD+cY3vpHtt98+b731Vpc/DwAAWMQ8/3yy+ebJPvskXfE9ylZbJc8+m5x0UtK7d+n3A9AtaC0A/3brrbfmW9/6VubOndvm3LbbbpsrrrgiNTU1ZUoGAAAAAAAAQFs+/PDDfPvb387Xv/71vP/++2V//s0335wRI0bk4osvdgoUAACQzJqVHH98ss46yb33ln7/sssmf/pTctttyZprln4/AN2K8hOQJPnHP/6RnXbaKc3NzW3ObbnllvnLX/6S2traMiUDAAAAAAAAoC1/+9vfstZaa+XPf/5zRXNMnTo1++67b7bffvu89957Fc0CAABU0N//nowcmZx8ctLOB/J3WqGQHHJIMnFisttu838PQI+n/ATkoYceyg477JDZs2e3ObfJJpvkr3/9a3o7FhQAAAAAAACgW/jd736XHXbYoSKnPX2am2++OZ/73Ofyz3/+s9JRAACAcnrrrWTnnZPttktefbX0+9ddN3n44WTcuGSJJUq/H4Buq6bSAYDKamxszLbbbpsZM2a0Obf++uvnpptuSt++fcuUDAAAAAAAAIC2/PznP8+JJ564UDsGDqjKeiPrsvRS1eldV0hLSzJrdmv++ercTHhxTlpbF2zv66+/nk022SS333571l577YXKCAAAdHPz5iVnn538+MdJO++jLpB+/ZKf/zw57LCkxuvvAIsjf/vDYuzZZ5/Nl7/85UydOrXNuXXWWSe33nprBgwYUKZk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55y6Qrp2/fSy0aIqFAr55n7LZcdtuubI777VrFOgHn300Vx99dUZPnz4p8707Nkz2223XbbbbrsybgsAAEuZMWOSo45KRo1qnfw990wuuyz5PyezAgAtU/4/dQMAAAAAAAAAWIrdc889uemmm0rOFQrJyAtWziVnrdQqxaf/1G/Vqtx1U98ccdByzZo/+eSTM3Xq1FbdCQAAlloffph8+9vJJpu0TvFp9dWT3/8++cMfFJ8AoAyUnwAAAAAAAAAA/tcHH3yQo446qlmz1126So48uGcrb/T/VVYWMvKClTN8WOl7zp49O4cddliKxWIbbAYAAEuJYjG5/fZkwICFJzI1NpY3v7Iy+e53k0mTkr32Km82AHRgyk8AAAAAAAAAAP/rggsuyPTp00vOXXjGivnmfs07hamcCoVCLjtnpXxt7+4lZx999NHcddddbbAVAAAsBf75z2S33ZL99kveeKP8+VtskYwZk/zsZ0n30j+vAwDNp/wEAAAAAAAAAJCkrq4uV111Vcm5nbfrmhOO6tX6C32KiopCRv505azWt6rk7OWXX94GGwEAQDs2b15y7rnJoEHJn/5U/vzll0+uuSZ58slkyJDy5wMAyk8AAAAAAAAAQMfU2NiYZ599NhdffHEOOOCArLXWWpkxY0aT1yzXoyLXXLhyCoVCG235yXouV5lrLly55NzDDz+cKVOmtMFGAADQDv35z8mGGyann57MnVv+/G98I5kyJTniiKTCY9kA0FpKfwUQAAAAAAAAAMAyZMaMGfnlL3+ZkSNH5sUXX2zRtReeuWJW79eplTZrmV2275bDDlgu1932YZNzV111VS699NK2WQoAANqDd95JTj45+eUvWyd/3XWTkSOT7bdvnXwA4L+oGAMAAAAAAAAAHcK4ceNy+OGHp1+/fjnxxBNbXHwaPKBzDt1/uVbabtGce9qKqa5u+hSqG2+8MbNnz26jjQAAYAlqbEx+8YuF5aTWKD7V1CRnn52MG6f4BABtSPkJAAAAAAAAAFimffDBBznssMOy4YYb5rrrrktdXd0i5Rw9rGcKhaaLRm1txRUqs9+e3ZucmTlzZu6+++422ggAAJaQF15IttkmOeKIZMaM8ufvsksyYUJy+ulJdXX58wGAT6X8BAAAAAAAAAAss+67774MHjw4119//WLldO9WyEFfaV+nPv3L8GG9Ss78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1tb++5/NNtssK6+8cln2eemll7LOOuukqUceOncuZNQDq2fQutVluWdzLFhQzJ8enZOrb5qZhx6fk/r6RX8ko1evXvnyl7+c4cOHZ5NNNinjlgAAdCjFYvKb3yQnnJC8+Wb586uqku98J/nhD5Nu3cqfDwD8l476/LnyE8AS1FH/5QMAAAAAAMDS4cUXX8xVV12VG2+8MTNmzFisrEKhkB122CHHHHNMvvSlLy326UW77bZb7rvvviZnNt6gOn+5Z/VUVRUW616LYt68YiZMqc/o8fV56tm63Pa7j9Lw6V2xJMlmm22W448/PrW1tVlnnXVSUVHRNssCALBs+sc/kmOPTR54oHXyt9oqueqqZPDg1skHAD6moz5/7k/JAAAAAAAAAIB/a2hoyO9///vsvPPOWXfddXPJJZcsdvEpSYrFYh566KHss88+WXPNNXPWWWfljTfeWOS8Y445puTMqHH1uWjk4u++KDp3LmTokJoccVDPzJlbLFl8qqioyG9+85sccMABWXfddRWfAABYdPX1yVlnLSwltUbxqXfv5LrrkscfV3wCANqEPykDAAAAAAAAAJIkjz32WAYPHpwvf/nLefDBB1vtPq+//np+9KMf5TOf+UxOP/301NfXtzjji1/8YgY340HLH13wXu59aPairFkWP7vy/fz27lkl5/bff/+sscYabbARAADLtEceSTbYIPnRjxaWoMpt2LDkb39LDj00UdgHANqInzoAAAAAAAAAoIObNWtWvvWtb2X77bfP3/72tza7b319fc4999wMHTo0zz33XIuurayszNVXX51CodDkXENDst8Rb+ThJ+YszqqLZMQNH+T7Z79Xcm755ZfPhRde2AYbAQCwzHrrreTgg5MddlhYTiq39dZLHnssueGGZMUVy58PANAE5ScAAAAAAAAA6MAee+yxDBkyJFdeeeUS22HSpEnZfPPNc+qpp7boFKgtt9wyJ510Usm5uXOL2eOg6bnzj6VPYCqHYrGY837+fo477Z1mzV9++eXp06dPK28FAMAyqbExufrqZMCA5JZbyp9fU5Oce24ydmyy7bblzwcAaAblJwAAAAAAAADogIrFYn784x9n++23z9SpU5f0OmlsbMz555+fzTffPK+//nqzrzvrrLPyuc99ruTcvHnF7HvYGznme2/no1mNi7Nqk157fX52P3B6fnB+6ROfkmSvvfbKAQcc0Gr7AACwDBs3Ltlqq+Too5MPPih//he/mEycmJx6atK5c/nzAQCaSfkJAAAAAAAAADqYxsbGHHfccTnzzDOX9CofM3bs2GyzzTZ56aWXmjXfpUuX3HDDDSkUCs2av/qmmdlg+1fyyJNzFmfNjykWi7nutpkZsv2ruf/R5mX37t07V111VbN3BwCAJMmsWcl3v5vU1ibPPFP+/L59k9/+Nrn33mSttcqfDwDQQlVLegEAAAAAAAAAoO00NjbmiCOOyPXXX79I1/dbtSq1Q6oX/rNBTdZZq1O6dqlIZWUyd24xb7+3IGPG12fM+LkZM74+4yfXp6GhZfeYOnVqttlmmzz++OP57Gc/W3J+yy23zAUXXJCTTz65WfmvTGvITl99PXvs3C3HDOuZnbbtmoqKRSsgzZ3bmN/eMysjbpiZv46Z2+zrqqqqcuutt6ZPnz6LdF8AADqgYjH5wx+S445Lpk0rf35FRXL88clPfpL06FH+fACARaT8BAAAAAAAAAAdRLFYzHe+850WF586dy7kq1/qnuHDembz2pomTyrqv3qnbLJhTZKeSZJ33m3Ijb/+MFf9cmZefq35Lag33ngjO+20U5588sn069ev5Px3v/vdvPvuu/npT3/a7Hvc88Ds3PPA7Ky9Zqcc9Y2FJaiBn+ucqqqmi1B1dY0ZN6k+f/jT7Fx/24d59/0Fzb5nkhQKhdx0003ZddddW3QdAAAd2CuvLCw93X136+Rvskly9dXJRhu1Tj4AwGIoFIvF4pJeAqCjGjRoUCZNmvSx1wcOHJiJEycugY0AAAAAAABYll166aU58cQTmz1fU1PIqcctn6O+0TMrrbh436+6YEEx9z82Jz88/72MnVDf7OsGDx6cZ555Jt26dSs5WywWc8IJJ+Syyy5b5D1ragrZYGB1hg6pTt9VqtKlppDG4sLC09TXGjJ63NxMenFeFrSs7/RvhUIh11xzTQ4//PBF3hEAgA5k/vzkkkuSH/84mTOn/Pk9eybnnZcceWRSWVn+fACgrDrq8+dOfgIAAAAAAACADmDChAk55ZRTmj2/1SY1ue7SVbLOWp3Lcv/KykJ226Fbdvp815x/+fs5+5L309CMg6AmTJiQ008/PZdeemnJ2UKhkEsvvTQ9e/bMWWedtUh7zp1bzF/HzM1fx8xdpOubUlVVlVtuuSVf+9rXyp4NAMAy6Mknk+HDkwkTWif/gAOSiy5K+vRpnXwAgDKpWNILAAAAAAAAAACtq6GhIYccckjmz59fcrZz50IuOnPFPHrnamUrPv2nTp0K+eFJK+TZP62RDQY1L/+yyy7LE0880azZQqGQn/zkJ7n22mvTtWvXxVm1rPr06ZM//elPik8AAJT23nvJ4Ycn22zTOsWnz342eeCB5NZbFZ8AgKWC8hMAAAAAAAAALOMuuOCCjBo1quRct66F3Htr35xw1PKprCy06k4bDKrOn3+/er6wdZeSs8ViMYccckhmz57d7PzDDz8848ePz+c///nFWbMsDjrooEycODE77LDDkl4FAID2rFhMbrwxGTAgue668ud37pyccUbywgvJTjuVPx8AoJUoPwEAAAAAAADAMmzixIk588wzS8517VLIn37VL1/Yuu1OS+rRvSJ339w3O3y+dAHqpZdeymmnndai/LXXXjuPPvpoLrvssiVyClSfPn3yhz/8ITfffHN69+7d5vcHAGApMnlyst12ySGHJO++W/78HXZYWHo688ykpqb8+QAArUj5CQAAAAAAAACWYd/73vcyf/78JmcqKpLfXrdqttykdAmp3GpqKvK76/umdkh1ydkrrrgif//731uUX1FRkeOOOy7jx4/P1772tVRWVi7qqs3WrVu3fPvb387EiROz5557tvr9AABYis2Zk5x+erLBBsnjj5c/f+WVk1tvTR58MPnc58qfDwDQBpSfAAAAAAAAAGAZ9Y9//CP33ntvybkTj+qVXbbv1gYbfbLu3Spy0xV9Ul1daHKusbExI0eOXKR7rL322vnVr36VV155JWeccUZWXXXVRcppysCBA3PFFVdk+vTpufTSS532BABA0/74x2Tw4OTcc5MSX1jQYoVCMnx4MmVKcsABC38NALCUUn4CAAAAAAAAgGXUVVddVXJm3bU75ccnr9AG2zRtwDqdc9b3Su9xww03ZM6cOYt8n379+uXMM8/MK6+8kttvvz177bVXVlhh0T//6quvnoMPPjiPPvpoJkyYkGOPPTbLLbfcIucBANABvP568tWvJrvvnkydWv78DTdMnn46GTEiWX758ucDALSxqiW9AAAAAAAAAABQfnV1dbn++uubnKmoSK7/+Srp0qV9fHfqCUf2yu/unZVnRs/91JkPPvggv/rVr3LooYcu1r06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gw8+qPgEANBSjY3JL36xsJzUGsWnmprk7LOTceMUnwAAWGzKTwAAAAAAAADwv/bbb7+ssMIKJecOP+mtzPxwQRts9MkWLCjmyO++nZkfNjY5VygUcvTRR5flnhUVFTn11FMzatSoDB06tCyZi6p///556KGHMnLkyHTp0mWJ7gIAsNR54YVkm22SI45IZswof/4uuyQTJiSnn55UV5c/HwCADkf5CQAAAAAAAAD+V5cuXfLDH/6w5NxLL8/PXt+Ynjlzmi4ftYZisZjhp7yd+x+dU3L2G9/4RtZdd92y3n/IkCF55plnctZZZy2RU6COPvrovPDCC9lhhx3a/N4AAEu12bOT730vGTo0eeqp8uevumrym98k992XrL12+fMBAOiwlJ8AAAAAAAAA4D9861vfyhZbbFFy7om/zs1e35yeWbPbrgDV2FjMsd9/J9fd9mHJ2T59+uTiiy9ulT06deqUH/zgBxk3blwOOOCAVi9BFQqF7LrrrnniiScycuTI9OjRo1XvBwCwzLn77mTgwOSCC5KGhvJmV1Qkxx2XTJmSfPWrSaFQ3nwAADo85ScAAAAAAAAA+A+VlZW54YYbUlNTU3L2kSfrstNXp+Xl1+a3+l4fzFyQA4a/matvmtms+auvvjq9e/du1Z3WW2+93HrrrXnttddy7rnnZo011ihrfu/evXPyySfn73//e+67775svfXWZc0HAFjmvfpq8uUvJ3vuufB/l1ttbfLXvyaXXZYst1z58wEAIMpPAAAAAAAAAPAx6667bs4+++xmzT77fH2GbPdKRv7ygzQ2Fltln/senp0h27+a2++a1az5Aw88MHvuuWer7PJJVllllZx66qn55z//mbvuuiuHHHJIBg0alIqKlj+WsPbaa+drX/tabr755kybNi0XXHBB1l577VbYGgBgGTZ/fnLRRQtPe/r978uf36NHcvnlC4tPG29c/nwAAPgPhWKx2Dp/8gpASYMGDcqkSZM+9vrAgQMzceLEJbARAAAAAAAA/7JgwYJst912efLJJ5t9zRe27pIrz185n1u7c1l2eOfdhnz/nPdy468+bPY1/fr1y/jx41v91KfmmD17dsaNG5fRo0dn/Pjxee+991JXV5f6+vp07tw5NTU16dWrVwYNGpTa2toMHTo0vXr1WtJrAwAs3Z5+Ojn66GT8+NbJ/9rXkosvTvr2bZ18AAA+VUd9/rxqSS8AAAAAAAAAAO1RZWVlfvvb32abbbbJ3//+92Zd88iTdVlv61ey83ZdM3xYz+y+Y7dUVhZadN9isZhnRs/NiBtm5rf3zMq8ec3/TtPlllsud999d7soPiVJt27dsuWWW2bLLbdc0qsAACz73n8/OfXU5JprWid/7bWTK69MdtmldfIBAOBTKD8BAAAAAAAAwKdYZZVV8uCDD2brrbfOtGnTmn3dA4/NyQOPzcka/aqyx87dMnRIdTbeoCbrrdM5VVX/XYYqFot56eX5GT2+PmPG1+fBP8/OuInzWrxrly5dcu+992ajjTZq8bUAACzFisXklluS73wneeed8ud36pR8//sLi1VdupQ/HwAASlB+AgAAAAAAAKBdWLBgQerq6jJ37twUCoV06dIlNTU1qaioWKJ79e/fP4899lh22mmnTJ06tUXXvvp6Q0bcMPPfv+5SU8jq/arSpaaQikIhdXMb88bbCzLzw8bF2rFHjx65++67s/XWWy9WDgAAS5kpU5JjjkkefbR18rffPhkxIhkwoHXyAQCgGZSfAAAAAAAAAGhz06dPz+jRozNq1KiMHj06zz//fKZPn/6xuUKhkP79+6e2tva//llhhRXadN+11147TzzxRHbZZZdMnDhxkXPq5hbz4kvzy7hZsuKKK+a+++7LxhtvXNZcAADasbq65Nxzk5/+NJlf3p8vkyQrrZRcfHFy4IFJoVB6HgAAWpHyEwAAAAAAAABt4vXXX8+1116bm2++Of/85z+bdU2xWMzLL7+cl19+OXfccce/X19//fVzyCGHZNiwYVl++eVba+X/0q9fvzz99NM56aST8otf/KJN7lnKjjvumOuuuy5rrLHGkl4FAIC2cv/9ybHHJi+91Dr5Rx6ZnHde0rt36+QDAEALVSzpBQAAAAAAAABYdhWLxTzyyCPZd999079///z4xz9udvGpKS+88EJOOumk9OvXL4cddlhGjx5dhm1L69GjR6699tr86U9/ymqrrdYm9/wk3bt3z1VXXZUHHnhA8QkAoKOYPj35+teTXXdtneLTkCHJU08lV1+t+AQAQLui/AQAAAAAAABAq3j44YczZMiQ7LDDDrnjjjuyYMGCst+jrq4u119/fTbeeON8/vOfz9ixY8t+j0+yyy67ZMKECTnssMPa5H7/accdd8yECRNy1FFH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pdtuu03Lli2ztD4AACgidu2Sbr9deuAB6fBh6+u3bClFR0tjxkjFillfHwAAAAAAAADgMsJPBVRKSormzZunzp07q0OHDtq1a1e260zTlGEY6tq1qwIDAz3cJQAAAAAAAABP2LZtm2677bYcBZ+qVvLV6KFh2htVQ19OrqA724fou/lnFdFunz6bFa/EpMuny1tt0aJFatOmjXr27Km4uDi37wcAAAoBu10aPVpq0ED69Vfr65cqJX38sfT331JEhPX1AQAAAAAAAAA55uvtBgoiTz6J1DRNnT9/XvHx8YqLi9PWrVsVExOjqKgoxcfHZ63JnPKU3dQnf39/DRkyxGM9AwAAAAAAAPAcu92u+++/XydPnnRpvc0mPd+7lEa8UFqBgRnPx9q+K1lPDTyqFWuS3NnqFX3yySf69ddf9cknn+jWW2/1Sg8AAKAAWLpU6t1b2rrVPfUff1x6912pXDn31AcAAAAAAAAA5Arhp1xo27btReEib8gMOUm6LPh04RrDMDRs2DDVqFHDo/0BAAAAAAAA8Iw33nhDGzdudGltnZp++mxCBbVomjEl3jRNffhpnF4afUJJHpj05MiBAwd022236amnntKECRMUHBzs1X4AAEA+cuyYNHiwNHOme+rXqSNNmSK1beue+gAAAAAAAACAPLF5u4GCzDRNr70Mw8h6ZR7LdGEwq3379nrllVe88esBAAAAAAAA4GZRUVF66623XFr74N3FFPV7tazgU1qaqT5DjmnAq8e9Hny60CeffKKbbrpJp06d8nYrAADA29LTpY8/zggnuSP4FBgojRolrV9P8AkAAAAAAAAA8jEmP+VBfpr+lOnCKVCtW7fWnDlzvN4nAAAAAAAAAOvZ7XY98cQTSktLc7q2R9fimjKmnHx8Mu4VpqSYeqL/EX0991yeeqhY3keN6geodEkf+fsbSk01dS4hXZu3J2v7rpRc1121apXatGmj33//XRUqVMhTjwAAoICKiZF69ZL++cc99W+7TfrwQ+nqq91THwAAAAAAAABgGcJPeZBd+MgbLgw3ZfbUo0cPffDBBwoMDPRWWwAAAAAAAADc6L333tOmTZucrnvonmKa+m452WwZ9xHT0011H3A0V8GnCuV89PgDxXVD80BFRgSqYvkr32KOP5umdRvtWrPeri/nxGvjluQc7bVp0ya1b99ef/31l0qX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1T6VK1fW1q1bNWXKFL366quy2+25qtPx5mBNe7e8Klf0zdX1jiQmpmv4uyc1ftoZuZBTk81m0/Lly3X99ddb3gsAAPme3S6984705psZf7da6dLSu+9KTzwh2WzW1wcAAAAAAAAAWKaofv+cu9cAAAAAAAAACoVJkya5FHx6rkcJDX+htAc6upivr6EvJ1VQ+zbBTtfmNvgkSQcPHtR3332nwYMHa926dWrRokWu6ixcfF4N2+7V51/HKS3NumdorVidqMj2+zRuimvBJ0l64YUXCD4BAIqmxYuliAhp+HD3BJ+efFLatk3q3p3gEwAAAAAAAAAg3+IOdh4YhuHtFgAAAAAAAABISktL08SJE52ua9IgQGOHl/XavT1/f0MzPyyvMqV93LrP5MmTJUl169bVihUrNGbMGAUGBua4Tlx8up4aeEy1rtujdz44peMnUnPVT1JSur74Ll433LlfN3Y+oG27XA933XXXXXrjjTdytS8AAAXW0aPSo49Kt9wibd9uff169aS//pI++0wqU8b6+gAAAAAAAAAAWIjwEwAAAAAAAIACb+HChdq7d6/DNb6+0mcTysvPz7sPNSpXxlcfvFXWrXusXbtWa9askST5+Pho8ODB2rFjh4YMGaIyufiC894DqRr25klVi9yjh545rA8/PaOVaxJ1/nz2o5tSU01t3GLX51/H6dmXjqla0916ot9R/RuVlKN927Vrp2+//VZ+fn457hkAgAIpPV2aOlWqU0f66ivr6wcFSW+9Ja1bJ914o/X1AQAAAAAAAABwA19vN1AQVatWLdsnw4aGhnqhGwAAAAAAAACZk44ceWVgaUXUC/BAN87df1cxfTe/mH745Zzb9pg8ebI+//zzrPdVqlTR22+/rREjRui7777TSy+9pEOHDuWoZnKyqe/mn9N38zP6ttmk2lf7q1RJmwL8DaWkmDp33tS2nclKTDLz1P/NN9+sH3/8MVcTqwAAKJDWr5d69ZJWrXJP/dtvlz78UKpRwz31AQAAAAAAAABwE8M0zbx9Ag0AyLX69etr8+bNlx2vV6+eYmNjvdARAAAAAAAFz65du1SrVi05utVZtZKvdvwb7vWpTxc6dCRVNa7drdTU3F1vs2UMh7iSwMBAHTt2zOFDmwYOHKj3338/dw240d13363Zs2cTfAIAFA1nz0rDh0sTJjj+xz23KleW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3gMTAQAqNdOU/vtfKTpaGj9eDtcOusrXVxo5Utq8+cTWJwAAAAAAAAAAAAsRfiqD33//XYMGDTq12UlSiaEnPz8/de7cWU899ZSmTJmizz//XCNGjDhVa4Vbb71VAQEBxfZcuHChJWegcti8ebMmTZpkt+biiy/WvHnzXP5U5ho1aujbb79Vx44d7dZNmDBBW7Zscak3AAAAAACouOrVq6fvvvtO3333ndMftOJOeXmmet97UKvW5nr87J+WZKnvkEMO33fu7++viRMnemYoAEDl9fff0jXXSLfdJh08aH3/zp2ltWul11+XwsKs7w8AAAAAAAAAAKo8wk+llJ2drTvvvFP5+fnFBp9O/tyoUSNNnDhRqampWrZsmV555RUNGjRIt956q2JiYiydqVq1auratWuxG6V++eUXS89CxTZ27FgVFhaWeL1mzZr67LPPFBISUqr+oaGh+vzzz1WjRo0SawoLC/XCCy+Uqj8AAAAAAKiYDMPQtddeq4ULF2rLli165JFHXP7gFXtCQ0M1ePBgrV+/XsOGDXNYn5FpU48++7Romec2QH01P1O97z2o/HzHW+Gfe+45tWnTxgNTAQAqpbw86eWXpVatpB9/tL5/RIT0/vvSb79J/H0FAAAAAAAAAADciPBTKY0ZM0Z79uw5I+h0ctuTaZry8fHRyy+/rO3bt2vo0KGlDpG4qlevXmf8fHKe1atXKzMz0yMzoHz7+++/9eWXX9qteemll9SgQYMyndOoUSONHTvWbs1///tf7dq1q0znAAAAAAAA5xUUFGjr1q1auXKlFi9erAULFmjJkiX6448/9Ndff6moqMhjs0RHR+udd97R/v379cknn+jBBx9UfHy8/P39ne7h5+entm3b6r777tOMGTO0f/9+TZkyRbGxsXrttdfUpEkThz0ys0xdfed+jRl31KlAUmllZdv06LNH1Od+54JPcXFxevLJJ902DwCgkvv1V6ldO+nZZ6VcN2w5vPdeaetW6f77JR9ebgQAAAAAAAAAAO7l5+0BKqLDhw9r4sSJ5wSfTn4fERGhr776St27d/f4bF27dj31/elzFRUV6c8//9TFF1/s8ZlQvkyaNMnuG5maN2+uBx980JKzhg4dqnfffVd///13sdeLioo0adIkjRs3zpLzAAAAAADA/7PZbNq4caNWr16tpKQkJSUlaf369crL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SjNnStHR0vTp1vcPCJCef17asEG68krr+wMAAAAAAAAAAFRSft4eoCpo0aKFXnnlFb3yyis6cOCA/vjjD61du1bJycnau3evDhw4oIyMDOXk5KigoECBgYEKCQlRZGSkGjZsqAsuuEDt27fXRRddpNjYWD4dF6USFxenWbNmlXh97dq1bj1/zZo1dq+3b9/erecDAAAAAFDehYaG2r2+c3eBhyYpPdM09beDOUNCQjw0DQAALti8WRoyRFq61D39r7hCmjxZuvBC9/QHAAAAAAAAAACoxAg/eVjdunV100036aabbvL2KKhi4uLi7F5ft26dioqK5Ovra/nZhYWFWr9+vd0awk8AAAAAgKruggsusHt949Y85eXZFBhYfj8YZ9+BQh3+p8hujaPfEwAAj8rOll56SRo3TiostL5/VJT09tvSnXdKhmF9fwAAAAAAAAAAgCqg/L5TAoClEhISFBQUVOL1zMxMJSUlueXsVatWKTs7u8TrQUFBio+Pd8vZAAAAAABUFI7+27igQPpzS76HpimdpA15Dmt4DgAAUG58/73UurX06qvWB58M48QmqeRkqW9fgk8AAAAAAAAAAABlQPgJqCKCgoLUpUsXuzU///yzW85euHCh3evdunWzG8wCAAAAAKAqcCYUlLg+1wOTlN4aB+GnwMBAtWrVykPTAABQgv37pT59pGuvlXbutL5/u3bS779LkydLERHW9wcAAAAAAAAAAKhiCD8BVUiPHj3sXv/qq6/ccu4XX3xh93rPnj3dci4AAAAAABVJnTp1VLduXbs1837M8tA0rjNNU3N/yLRbExsbq4CAAA9NBADAWQoLpXfflaKjJQfPW5dKWJj09tvS6tXSRRdZ3x8AAAAAAAAAAKCKqrLhp8LCQqWnpxf7BVRWt956q93ra9as0datWy09c+PGjfrzzz9LvG4YhsO5AAAAAACoKhxtf/ppSbb+2pnvoWlc89vKXG3aan82Z7ZbAQDgFqtWSR07So8+KmXaD+uWyi23SFu2nOjv52d9fwAAAAAAAAAAgCqsyoafZs2apYiIiHO+atas6e3RALdp2rSpOnXqZLdmwoQJlp45fvx4u9c7d+6sxo0bW3omAAAAAAAV1WWXXeawZtrsNA9M4rops447rHHm9wMAwFLHj0vDhkmdOklr11rfv3Fj6bvvTmySql/f+v4AAAAA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QJJ07Ngx06dPL/le5ScAlsfll1+ek08+uawf3K6rq8tll12WE044oWx3AEAx2223XV588cWy7PZrPABqzUUXXZSf/OQnVbm7RYsW+d3vfpdjjz22KvcDQFKd8tO/HXbYYbnhhhvSsmXLqtwPAKtq7ty52WabbVbovVT5Cfi3+moHAIA11fTp0/OVr3wl1157bbWjAAAAVNwNN9xQ9uJT8smHwk866aTceOONZb0HAACA6po/f36OO+64nH322dWOAgBVcdttt2WvvfbK7Nmzqx0FAFbK2WefXbUSMbD6a1rtAABQS5o3b57Pfvaz6dGjR7p27ZpOnTqldevWmT17dqZOnZpJkybl8ccfz4QJE5Zr35IlS/Ld7343bdu2zYABA8qcHgAAoDY8++yzOeaYY5ar+LTzzjvn61//enbeeedsttlmadeuXWbOnJlx48blqaeeyk033ZRnnnmm6I5CoZBjjjkmPXv2zI477liqHwMAAIBV1KRJk/Tq1Ss9e/ZM165ds/baa6dNmzaZN29epk6dmsmTJ+eJJ57I2LFjl3vneeedl9atW+f0008vY3IAWHlNmjTJpptumi233DLdu3dPhw4d0q5du7Rv3z6LFy/OjBkzMmPGjLz++usZOXJkxo8fv9y7n3jiiRx66KG55557Ul/vu+8BWH2MHDkyv/3tb6sdA1iNKT8B0Oj16dMn+++/f/bZZ5/06dMnzZs3b/A148aNy2WXXZZrrrkms2bNKjpbKBQyaNCgbLnlltl+++1LFRsAAKAmzZgxIwMGDMjChQuLzm2xxRa58sors8cee3zqrFOnTunTp0/69OmTk08+Of/4xz9ywgknFP0muAULFuTwww/PCy+8kPbt26/yzwEAAMDK2WqrrfLlL385++67bz7/+c+ndevWDb5m8uTJufrqq3PppZdm6tSpDc7/5Cc/yTbbbJP99tuvFJEBYJVsvPHG+eIXv5hddtklX/ziF7PVVlst12dP/m3KlCm5+eabc91112XUqFENzt9///256KKL8tOf/nRVYgNAxSxevDjf+c53smjRompHAVZjqv8ANErrr79+fvazn2Xs2LF5/vnnc+6556Zv377L/Y9P3bp1y5AhQ/LWW2/lwAMPbHB+/vz5GTRoUIMf/gOAaqurq0uPHj3Sr1+/akcBYDV11lln5a233io6s+eee+a5555bavFpafr375/nn38+u+22W9G5t956K+ecc87yRgWAqtlss83Sv3//ascAgJLp2LFjTjnllAwfPjyvvPJKfvWrX2W33XZbruJTkmywwQY5++yzM2HChBx99NENzhcKhRx99NGZNm3aKiYHgBXXpEmTfOlLX8qQIUPyxhtv5O23384tt9ySE044Idtuu+0KFZ+STz7Dctppp+XFF1/MlVdemU6dOjX4mvPOOy8TJkxY2R8BACrq4osvzsiRI5d61q1btwqnAVZXyk8ANCrbb799brnllkycODE///nP06NHj1Xat/baa2fo0KH5xS9+0eDsSy+9lD/+8Y+rdB8AlFJdXV26d++eww8/PL/+9a/zyCOPZNq0aRk7dqwPjgOwUsaMGZPLL7+86Ezfvn0zdOjQdOjQYYV2d+zYMXfffXc+97nPFZ279NJL88orr6zQbgAop0022SSHHHJIzj///Nx///358MMP89Zbb+Wqq66qdjQAWGWbb755rrrqqrzzzjv57W9/m969e6/SvjZt2uSaa67JDTfckCZNmhSdnTx5cn75y1+u0n0AsKJ++9vf5r333stjjz2WU089Nd27dy/Z7vr6+hx33HF55plnstFGGxWdnT9/fs4///yS3Q0A5fLmm28u8zMoO++8c4488sjKBgJWW02rHQAAKmGHHXbI2WefnQMOOKAs+3/6059m+vTp+dWvflV07sILL8wxxxyT+nr9YwAqr2vXrunTp0922GGH7LDDDunTp086duxY7VgArEHOPffcLFq0aJnnnTt3zl/+8pfl/ubv/6tNmza57bbbst122y3z270XLVqU8847L7fccstK3QEAq2LDDTf8X3/n2nHHHbPOOutUOxYAlFyPHj1y1llnZcCAAQ2WlFbGUUcdldmzZ+eEE04oOnfppZfmJz/5Sdq3b1/yDACwNF/+8pfLfscWW2yRxx57LNttt11mzZq1zLlbbrklQ4YMSbt27cqeCQBW1rHHHpu5c+d+6s+bNWuWq666KnfccUcVUgGrI5+8BmCN1q1bt9xyyy159tlny1Z8+reLLroou+66a9GZCRMmZNiwYWXNAQD/0znnnJMHHnggU6dOzbhx43L77bfn9NNPzx577KH4BEBJjRs3Lv/93/9ddOb888/PJptsskr3dOnSJeeee27Rmdtvvz3jx49fpXsAYHmdfPLJufvuuzN58uS88847GTp0aAYPHpz99ttP8QmANc56662XK664IqNHj843vvGNshSf/u3444/PUUcdVXRm9uzZue2228qWAQCqpXv37g3+O+js2bN9BgWAmvbHP/4xDz/88FLPfvCDH+Qzn/lMhRMBqzPlJwDWaD/+8Y8zYMCA1NXVlf2uurq6XHzxxQ3eddddd5U9CwD82ymnnJL+/func+fO1Y4CwBru8ssvz+LFi5d5vsUWW+S73/1uSe464YQT0q1bt2WeL168OJdffnlJ7gKAhnznO9/JAQcckPXXX7/aUQCg7L71rW/l+OOPT9OmTSty3wUXXNDg04P97g2ANdXJJ5/c4JcZPv7445UJAwAr6L333ssPf/jDpZ5169YtZ511VoUTAas75ScAKKHevXtn9913Lzrz6KOPViYMAABAhSxevDi33HJL0ZlTTz21ZN8I3rRp03zve98rOnPzzTdnyZIlJbkPAACA6thoo41yxBFHFJ355z//6e9/AKyRmjVrlv3226/ozCuvvFKhNACwYr73ve/l448/XurZFVdckVatWlU4EbC6U34CgBI74IADip6PHTs2CxcurFAaAACA8hs2bFgmT568zPOWLVvmyCOPLOmdAwcOTPPmzZd5/u677/ryCQAAgDVAQ797mzFjRiZMmFChNABQWX379i16/u6771YoCQAsv7vvvju33XbbUs8OP/zw7L333hVOBKwJlJ8AoMS+9KUvFT1ftGhRJk6cWKE0AAAA5Xf33XcXPd9///3Trl27kt7ZsWPH7LvvvkVnGsoFAABA7Wvod29JMm7cuAokAYDKW2+99Yqez549u0JJAGD5zJw5MyeccMJSzzp27JhLLrmksoGANYbyEwCU2Prrr9/gzLRp08ofBAAAoEIeeuihouf7779/We5taO+DDz5YlnsBAAConM6dOxd98m/id28ArLk6dOhQ9Lx169YVSgIAy+eMM87IpEmTlnp24YUXLtfnKwGWRvkJAEpsnXXWaXBm7ty5FUgCAABQfpMnT84rr7xSdGbPPfcsy9177bVX0fPRo0dnypQpZbkbAACAyll77bWLnvvdGwBrqvfff7/oeUPvkQBQSU899VSuvPLKpZ717ds3xx57bIUTAWsS5ScAKLE5c+Y0ONOyZcsKJAEAACi/Z599tuj5Jptskk022aQsd2+22WbZYIMNis4899xzZbkbAACAymno929+9wbAmurtt98uet6tW7cKJQGA4hYsWJCjjz46hULhU2dNmzbNVVddlbq6uiokA9YUyk8AUGIN/cNTknTq1KkCSQAAAMpvxIgRRc979+5d1vt32GGHoucjR44s6/0AAACU18yZMzN9+vSiM373BsCa6v777y96vssuu1QoCQAU94tf/CKvvPLKUs9OO+20bLPNNhVOBKxplJ8AoMQa+uBf06ZN06VLlwqlAQAAKK8XXnih6Pm2225b1vsb2q/8BAAAsHobOXLkUr85/H/q3r17hdIAQOVMnDgxTz755DLPmzZtmj333LOCiQBg6caMGZOLLrpoqWebbbZZzj777AonAtZEyk8AUGL33HNP0fMtt9wyTZs2rVAaAACA8nrttdeKnm+xxRZlvX/zzTcvev7666+X9X4AAADKq6HfvbVv3z6bbrpphdIAQOWccsopWbx48TLPv/rVr2bDDTesYCIA+LQlS5bk6KOPzoIFC5Z6fsUVV6R169YVTgWsiZSfAKCEpk+f3uAvYPr161ehNAAAAOVVKBQyfvz4ojMNlZNWVUP7G8oHAABA7Vq8eHH+8pe/FJ354he/mPp6H38BYM1yySWX5M4771zmedOmTXPGGWdUMBEALN3ll1+ep59+eqlnhx12WPbdd98KJwLWVP71BwBK6Nprr83s2bOLzhx44IEVSgMAAFBe7733XubNm1d0ptzfPNrQ/tmzZ+f9998vawYAAADK46677sqECROKzvjdGwBrkoULF+bss8/OqaeeWnTuJz/5SbbbbrvKhAKAZXj77bdz5plnLvWsQ4cOueSSSyobCFijKT8BQInMmDEjv/zlL4vOrLfeetlzzz0rlAgAAKC83n333QZn1l9//bJmWJ79y5MTAACA2rJ48eKcddZZRWeaN2+er33taxVKBADls3Dhwtx1113Zbrvtct555xWd3WeffTJ48OAKJQOAZTvhhBMyc+bMpZ5dcMEF2WCDDSqcCFiTNa12AABYU5x33nn54IMPis5873vfS5MmTSqUCAAAoLymTp1a9Lx9+/Zp0aJFWTO0bt06bdu2zaxZs5Y501BOAAAAas+VV16ZMWPGFJ0ZOHBgOnfuXKFEALDqFi9enBkzZmTmzJmZNGlSXnjhhQwfPjxDhw5drn/H3GeffXLnnXemWbNmFUgLAMt266235u9///tSz3baaaccd9xxFU4ErOmUnwCgBJ555pkGH9HauXPnnHjiiZUJBAAAUAEfffRR0fP27dtXJEf79u2Llp8aygkAAEBtGT9+fH7yk58UnWnWrFlOP/30CiUCgOUzatSobLPNNiXf27Rp0wwePDhnnnmmL90FoOo++uijfP/731/qWdOmTXPVVVelvr6+wqmANZ3yEwCsolmzZmXgwIFZvHhx0bmf//zn6dChQ4VSAQAAlN/HH39c9Lxdu3YVydHQPcpPAAAAq4/Fixdn4MCBRb/kIklOOeWUdO/evUKpAKA66urqctBBB+Wcc87JZz/72WrHAYAkyWmnnZb3339/qWennnpqtt122wonAhoD5ScAWEXHHntsxo4dW3Smd+/eOfbYYyuUCAAAoDLmzZtX9LxNmzYVydG2bdui5w3lBAAAoHYMHjw4jz/+eNGZTTbZJIMHD65QIgCovK222iqHHHJIjjzyyGy99dbVjgMA//HQQw/lhhtuWOpZly5dcs4551Q2ENBoeJ4cAKyCyy67LDfffHPRmRYtWuTGG2/02HEAAGCNs2DBgqLnTZtW5ruXGrqnoZwAAADUhrvvvjsXXXRR0Zm6urr88Y9/rNjThgGg0po2bZpu3bplo402SuvWrasdBwD+Y86cOUW/BP7yyy/33gWUjfITAKykhx56KKeeemqDcxdccEF69epVgUQAAACVpfwEAABAqYwaNSrf+MY3UigUis6ddNJJ2XPPPSuUCgAqb9GiRbn33ntz0kknpXv37vnKV76Sf/3rX9WOBQA566yzMm7cuKWeHXroodl///0rnAhoTJSfAGAljB07NocddlgWLVpUdO6ggw7KaaedVqFUAAAAlbVkyZKi55V6Am5D9yxevLgiOQAAAFg577//fr785S9n5syZRed23HHH/OY3v6lQKgCoviVLluTOO+9M37598/Wvfz0ff/xxtSMB0EgNHz48l1xyyVLP2rdvn9///veVDQQ0OpX56lUAKmrMmDHp379/tWOU1KRJk6od4T8mT56cffbZp8F/UOrevXuuv/76yoQCwPsfAFRBQ09caugLI0qloXuaNWtWkRwAAACsuFmzZmW//fbL+PHji86ttdZauf3229O8efPKBAOAlbDRRhvlmmuuWeb53LlzM23atEybNi0TJ07Ms88+m4kTJy7X7ltuuSWPP/54br/99vTt27dUkQGgQYsWLcrRRx+9zC8cvOCCC7LBBhtUOBXQ2Cg/AayBFixYkHfeeafaMdZI06ZNyz777NPgL1/WWWed3HvvvenYsWNFcgHg/Q8AqqGhD5xVqvy0cOHCouc+GAcAAFCbFixYkEMOOSTDhw8vOteqVasMHTo0Xbp0qVAyAFg5nTp1ytFHH71Cr3n//ffz17/+NVdddVVeeOGForPvvPNO9t5779x33335whe+sApJAWD5/eY3v1nme9TnPve5HH/88ZUNBDRK9dUOAACrizlz5mT//ffPSy+9VHSuXbt2ue+++9KjR48KJQMAAKiOhp6otGDBgorkUH4CAABY/SxevDhHHHFEHnrooaJzzZo1y+233+4D3gCssdZdd90cd9xxGTlyZB5++OF079696PzMmTOzzz77ZMyYMRVKCEBj9sYbb+Tcc89d6lnTpk1z1VVXpb5eJQEoP/+XBgCWw4IFC3LwwQfnqaeeKjrXqlWr3H333enTp0+FkgEAAFRP27Zti57PmjWrIjlmzpxZ9LyhnAAAAFRWoVDI0Ucfnb/+9a9F5+rr63PjjTdm//33r1AyAKiu3XffPS+99FK+/e1vF52bNWtWjjzyyAa/GAoAVtV3v/vdzJs3b6ln3//+97PddttVNhDQaCk/AUADFi1alAEDBuTBBx8sOtesWbPccccd6devX4WSAQAAVFfnzp2Lns+YMaMiORq6p6GcAAAAVNb3v//9XH/99Q3O/eEPf8iAAQPKHwgAakjr1q1z7bXXNliAGjlyZH75y19WKBUAjdF//dd/5ZFHHlnqWZcuXZb5RCiAclB+AoAilixZkkGDBuXOO+8sOtekSZPcdNNN2W+//SqUDAAAoPrWWmutoufTpk2rSI7p06cXPW8oJwAAAJXz05/+NJdeemmDcxdffHGOOeaYCiQCgNpTV1eXa665JrvuumvRud/97neZO3duZUIB0Ki89957+dGPfrTM88suuyxt2rSpYCKgsVN+AoAijj/++Nx0001FZ+rq6nLttdfma1/7WoVSAQAA1Ia111676Pn8+fPLXoD66KOPsmDBgqIzyk8AAAC14YILLsiFF17Y4Ny5556b0047rQKJAKB21dfX59JLL02TJk2WOfPhhx/mxhtvrGAqABqLk046KR9//PFSz7761a/mgAMOqHAioLFTfgJYA2233XYpFApr1H/VcOqpp+bqq69ucO6yyy7LoEGDyh8IgKK8/wFA5W266aYNzrz33ntlzbA8+5cnJwAAAOX1u9/9LmeeeWaDcz/60Y9y1llnVSARANS+z3zmMzn88MOLzvztb3+rUBoAGou//e1vueOOO5Z61r59+/z+97+vcCIA5ScAWKozzzwzl1xySYNzv/71r3PCCSeUPxAAAEANatu2bYNPVZowYUJZM4wfP77o+brrrps2bdqUNQMAAADFXX311TnllFManDvppJPyq1/9qvyBAGA1cvDBBxc9f+KJJ7JkyZLKhAGgUSj2JN7zzz8/G264YQXTAHyiabUDAECtOf/883PBBRc0OHfuuefmhz/8YQUSAQAA1K6uXbtm6tSpyzx//fXX079//7Ld/8YbbxQ979q1a9nuBgAAoGF/+tOfctxxxzU4953vfMe3hwPAUuyzzz6pr69fZsFpxowZGTt2bHr27FnhZACsqT788MOl/nn79u3TokWLXHvttSW7a8SIEUXPX3/99Qbv69evX7bYYouSZQJqk/ITAPwPQ4YMyeDBgxucO/3003PWWWdVIBEAAEBt69WrV55//vllno8dO7as9ze0v1evXmW9HwAAgGW7/fbb861vfSuFQqHo3BFHHJGrr746dXV1FUoGAKuPdu3aZe21187777+/zJn3339f+QmAspsxY0aOPfbYit751FNP5amnnio6c9111yk/QSNQX+0AAFArrrjiivzgBz9ocO7kk0/ORRddVIFEAAAAta93795Fz0eOHFnW+xv6Nrjtt9++rPcDAACwdH/729/yjW98I4sXLy46d8ghh+TGG29Mfb2PsADAsqy33npFz6dOnVqhJAAAUB3+5QgA8knz/6STTmpw7uijj87vfve7CiQCAABYPTRUfnrhhRca/KDbylq0aFFefPHFojPKTwAAAJX3wAMP5LDDDsvChQuLzu2777659dZb07Rp0wolA4DVU/v27Yuez507t0JJAACgOpSfAGj0brnllhx99NEpFApF54488shcddVVqaurq1AyAACA2rfDDjukZcuWyzyfNWtWhg8fXpa7n3322cyZM2eZ5y1btkyfPn3KcjcAAABL9+ijj+aQQw7J/Pnzi87tvvvu+etf/5rmzZtXKBkArL5mz55d9LxNmzYVSgIAANWh/ARAo3bnnXfmqKOOypIlS4rOHXroobn++utTX++tEwAA4H9q2bJlvvCFLxSdefDBB8ty90MPPVT0fJdddilazAIAAKC0nn766Xz5y19u8OkTX/ziF/O3v/3N39kAYDm9/fbbRc87depUoSQAAFAdPsENQKN13333ZcCAAVm0aFHRuQMOOCA333xzmjRpUqFkAAAAq5e99tqr6Plf//rXstx7xx13FD3v379/We4FAADg04YPH5599903s2bNKjq344475p577vGECgBYTu+8806mTp1adKZ79+4VSgMAANWh/ARAozRs2LB85StfyYIFC4rO7bXXXrnjjjvSrFmzCiUDAABY/Rx66KFFz0eMGJGxY8eW9M5Ro0bl5ZdfXuZ5XV1dg7kAAAAojZdffjl77713pk+fXnTus5/9bB544IG0b9++QskAYPX3j3/8o+h5u3btstFGG1UoDQCNwbRp01IoFCry39lnn100y8CBAxvcMWjQoMr8DwNUlfITAI3OU089lQMPPDDz5s0rOtevX78MHTo0LVq0qFAyAACA1VP37t2z0047FZ259NJLS3rn73//+6LnO++8czbbbLOS3gkAAMCnvfbaa9lrr70afCLF1ltvnQcffDCdOnWqUDIAWDNcf/31Rc932WWX1NXVVSYMAABUifITAI3K8OHDs99++2X27NlF5/r27Zu///3vadWqVYWSAQAArN6+/e1vFz2/7rrrMnny5JLcNWnSpPzpT38qOuMb3gAAAMpv/Pjx2WOPPfLee+8Vndtiiy3y0EMPZZ111qlQMgBYMwwbNiyPP/540Zm99967QmkAAKB6lJ8AaDRGjRqVvffeO9OnTy8616dPn9x3331p27ZthZIBAACs/r75zW9m3XXXXeb5nDlzcsYZZ5TkrtNPP73o03zXW2+9fPOb3yzJXQAAACzdu+++mz322COTJk0qOrfZZptl2LBh2WCDDSqUDADWDDNnzsx3v/vdojPNmjXLEUccUaFEAABQPcpPADQKr7/+evbaa69MnTq16Ny2226bf/zjH+nQoUOFkgEAAKwZWrZsme9///tFZ2688cbceeedq3TPbbfdlptvvrnozCmnnJIWLVqs0j0AAAAs2wcffJA99tgj48aNKzq38cYbZ9iwYdl4440rlAwAyuOhhx7K7NmzK3bfnDlzcsghh+TNN98sOjdgwABPVgQAoFFQfgJgjTdx4sTsueeemTJlStG5nj175sEHH0znzp0rlAwAAGDNcsopp2STTTYpOjNw4MA8++yzK7X/X//6V77zne8UnenSpUuDJSwAAABW3rRp09K/f/+8+uqrRefWX3/9DBs2LF27dq1QMgAon8suuyxdu3bNb37zm8yZM6esd40dOza77bZbHn744aJzzZs3zznnnFPWLAAAUCuUnwBYo02ZMiV77rlnJk6cWHRu8803z0MPPZR11123QskAAADWPK1bt86QIUOKzsycOTP9+/fP3//+9xXaPXTo0Oy9996ZNWtW0bmLL744rVq1WqHdAAAALJ9Zs2Zl3333zQsvvFB0bu21187DDz+cLbbYojLBAKACPvjgg/zoRz9K165d84Mf/CDPPPNMSffPnDkzP/vZz7Ltttsu1xdInX322enWrVtJMwAAQK1qWu0AAFBOe+21V15//fWiM3V1dTniiCNy7733VihV0qNHj3zpS1+q2H0ANG733HNPJk+evEKvGTt2bNHzWbNm5dprr13hLPvvv3822GCDFX4dAKuPQw89NF//+tdz8803L3Nm+vTpOfDAA3PEEUdk8ODB2WqrrZY5O2bMmJx33nn5y1/+0uDd3/jGN/LVr351pXIDwKp4/PHH89prr63Qa6ZOndrgzMr8vatfv34+aA5A2RxxxBH517/+1eDc4YcfnqeeeipPPfVUBVIlG2ywQfbff/+K3AUA77//foYMGZIhQ4akS5cuOfTQQ7PHHntkp512SqdOnVZo18yZM/PPf/4zf/7znzN06NDlfqrUHnvskdNPP31l4gMAwGqprlAoFKodAgDKpa6urtoRlmrgwIG5/vrrqx0DgEZi1113zWOPPVbtGEmSRx55JLvuumu1YwBQZrNmzcoOO+zQYJn237bffvvsvPPO6dq1a9q2bZuZM2fmrbfeypNPPpkXX3xxuXZstdVWee6559K2bdtViQ4AK2XQoEG54YYbqh0jSXLddddl0KBB1Y4BwBpqs802y4QJE6od41P69euXRx99tNoxAFiDHXzwwRk6dGjRmbq6umyyySbZcsst06VLl6y//vrp3LlzWrZsmSZNmmTmzJmZMWNGZs6cmQkTJuSFF17IW2+9lRX9COd2222Xxx57LO3bt1+VHwkAasI555yTc889d5nnPmsJ/JsnPwEAAAAAJdW2bds88MAD2WWXXfL22283OD9y5MiMHDlype/bdNNN88ADDyg+AQAAAABVUygUMnHixEycOLFsd3zpS1/K0KFDFZ8AAGh06qsdAAAAAABY83Tp0iXDhg1L9+7dy3rP5ptvnmHDhmXTTTct6z0AAAAAANVSV1eXU089Nf/4xz/SsWPHascBAICKU34CAAAAAMpi8803z3PPPZe99967LPv32WefPPfcc2UvWAEAAAAAVMv222+fRx55JEOGDEmLFi2qHQcAAKpC+QkAAAAAKJtOnTrl/vvvz/XXX5911123JDvXXXfd3HDDDbnvvvt8yykAAAAAUHZnnHFGTjnllPTo0aNid+6000659dZb8/zzz6dfv34VuxcAAGqR8hMAAAAAUHYDBw7MuHHjcvnll6dnz54rtWPrrbfO5ZdfnrfeeitHHXVUiRMCAAAAACzdTjvtlN/+9rcZO3Zs3nzzzVxxxRU58sgjs8UWW6Surq4kd9TX12e77bbLWWedlZdeeilPP/10Dj/88NTX+5gnAADUFQqFQrVDAAAAAACNy2uvvZb7778/I0aMyOjRo/POO+9k5syZmTNnTlq3bp127dpl4403ztZbb53evXtn3333zRZbbFHt2AAAAAAA/8u0adPy3HPP5bXXXstbb72Vt956K+PHj8+0adMya9aszJ49O3Pnzk2TJk3SokWLtGnTJuuss07WW2+9bLbZZtlqq63ymc98Jn379k2HDh2q/eMAQEU9+uijefTRR5d5vt122+Xggw+uWB6gdik/AQAAAAAAAAAAAAAAADXJ81ABAAAAAAAAAAAAAACAmqT8BAAAAAAAAAAAAAAAANQk5ScAAAAAAAAAAAAAAACgJik/AQAAAAAAAAAAAAAAADVJ+QkAAAAAAAAAAAAAAACoScpPAAAAAAAAAAAAAAAAQE1SfgIAAAAAAAAAAAAAAABqkvITAAAAAAAAAAAAAAAAUJOUnwAAAAAAAAAAAAAAAICapPwEAAAAAAAAAAAAAAAA1CTlJwAAAAAAAAAAAAAAAKAmKT8BAAAAAAAAAAAAAAAANUn5CQAAAAAAAAAAAAAAAKhJyk8AAAAAAAAAAAAAAABATVJ+AgAAAAAAAAAAAAAAAGqS8hMAAAAAAAAAAAAAAABQk5SfAAAAAAAAAAAAAAAAgJqk/AQAAAAAAAAAAAAAAADUJOUnAAAAAAAAAAAAAAAAoCYpPwEAAAAAAAAAAAAAAAA1SfkJAAAAAAAAAAAAAAAAqEnKTwAAAAAAAAAAAAAAAEBNUn4CAAAAAAAAAAAAAAAAapLyEwAAAAAAAAAAAAAAAFCTlJ8AAAAAAAAAAAAAAACAmqT8BAAAAAAAAAAAAAAAANQk5ScAAAAAAAAAAID/r707DbKyvvIHfppmUdqmEYIQXGjcQBAjIIoaERzFQlEjkmJYJhIj6jhuE5UYY6lEHSViZSJlGRQEE9zGihkMCupERFHZlUUFidogKipb0yBNN3T/X2T07xjupZd7ux+az6eq33B+zzmnrfvkRW59+wcAAAAkkvATAAAAAAAAAAAAAAAAkEjCTwAAAAAAAAAAAAAAAEAiCT8BAAAAAAAAAAAAAAAAiST8BAAAAAAAAAAAAAAAACSS8BMAAAAAAAAAAAAAAACQSMJPAAAAAAAAAAAAAAAAQCIJPwEAAAAAAAAAAAAAAACJJPwEAAAAAAAAAAAAAAAAJJLwEwAAAAAAAAAAAAAAAJBIwk8AAAAAAAAAAAAAAABAIgk/AQAAAAAAAAAAAAAAAIkk/AQAAAAAAAAAAAAAAAAkkvATAAAAAAAAAAAAAAAAkEjCTwAAAAAAAAAAAAAAAEAiCT8BAAAAAAAAAAAAAAAAiST8BAAAAAAAAAAAAAAAACSS8BMAAAAAAAAAAAAAAACQSMJPAAAAAAAAAAAAAAAAQCIJPwEAAAAAAAAAAAAAAACJJPwEAAAAAAAAAAAAAAAAJJLwEwAAAAAAAAAAAAAAAJBIwk8AAAAAAAAAAAAAAABAIgk/AQAAAAAAAAAAAAAAAIkk/AQAAAAAAAAAAAAAAAAkUuP6XgAAAAAAAICqeeqpp6KkpKS+14iIiJ/85CfRtGnT+l4DoM4UFRXFwoULv/lZtGhRbN68Oe0zlZWVdbMcAAAAAEADllPp/20FAAAAAADYKxQWFsbq1avre42IiNi0aVO0bNmyvtcAyIq1a9f+Q9Bp/fr11e7j63gAAAAAgNpz8xMAAAAAAADsI6ZMmRI//elPU9Y/+uijKCwsrLuFIAE+//zzWLBgwf8JO33++ef1vRYAAAAAAP9L+AkAAAAAAACAfdbZZ58dS5Ysqe81AAAAAABIoVF9LwAAAAAAAAAAAAAAAACwO8JPAAAAAAAAAAAAAAAAQCIJPwEAAAAAAAAAAAAAAACJJPwEAAAAAADQQEyePDkqKyvr5Kdly5b1/esC1JvCwsLo379/fa8BAAAAALBPaFzfCwAAAAAAAABAUh166KFxwgknRM+ePeOEE06IE044IVq3bh1FRUXRsWPH+l4PAAAAAKDBE34CAAAAAAAAgIho3779NwGnnj17Rq9evaJNmzb1vRYAAAAAwD5N+AkAAAAAAACAfdbVV18dbdu2jRNOOCHatWtX3+sAAAAAAPAdwk8AAAAAAAAA7LN+9rOf1fcKAAAAAACk0ai+FwAAAAAAAAAAAAAAAADYHeEnAAAAAAAAAAAAAAAAIJEa1/cCAAAAAAAAUFRUFK+//nrMnTs3/va3v8VHH30UGzZsiG3btkVZWVnsv//+kZ+fH4cddlgcccQR0atXr+jTp0/06NGjvlePTZs2xcKFC2PFihXf/Kxbty62bNkSJSUlsXXr1mjSpEnsv//+0apVqzjkkEPi8MMPj+7du0fv3r2jZ8+e0aiRv1m4L9u0aVO89NJL8cYbb8TKlSvjb3/7W2zevDlKSkqioqIiWrRoEQcffHAce+yx8dhjj9V6XkVFRSxbtixef/31WLhwYXz44YexevXqKC4ujm3btkVFRUXk5eVFy5Yto7CwMI4++ug4+eSTo1+/flFYWFj7XxgAAAAAAKohp7KysrK+lwAAAAAAAGDPCgsLY/Xq1SnrkydPjpEjR9bdQrX05ZdfxqRJk+LJJ5+MJUuW1KhHYWFhjBgxIq666qpo27Zthjfcve3bt8fLL78cs2bNilmzZsXbb78dFRUVNe7Xpk2buPDCC+Nf//Vf4/jjj8/Ynnv6vGTaxRdfHFOmTEl75pVXXol+/fqlrM+aNSv69u2b2cX+1+233x5jxoxJWa/N16Z9+/aN2bNn77Z2+umnxyuvvLLbeTNmzIjx48fHiy++WKXPUEFBQWzevLnGe77zzjsxceLEePrpp+OTTz6pUY8TTzwxRo4cGT/96U9jv/32q/EuDUFRUVF07Ngx7RlfxwMAAAAA1J4/IQcAAAAAAECdWr9+fVxzzTXRoUOH+OUvf1nj4FPE38MHd955ZxQWFsaNN94Y27Zty+Cm/195eXlMnz49RowYEQcddFAMHDgw7rvvvli8eHGtgk8Rfw+BPfTQQ9G9e/c455xzYvny5RnamqR666234uSTT45zzz03Zs6cWevP0J4sW7YsLrjggujWrVv853/+Z42DTxER8+fPjyuvvDI6duwYEydOFO4BAAAAACDrhJ8AAAAAAACoM5MnT45OnTrF+PHjY/v27RnrW1paGuPGjYsuXbrEG2+8kbG+X+vatWucd9558dhjj8XWrVsz3v9rM2bMiB49esRvfvMboZIG6v77749evXrFvHnzsj6rtLQ0brzxxujRo0c8++yzGf1MrVu3LkaNGhV9+/aNzz77LGN9AQAAAADgu4SfAAAAAAAAyLrt27fHv/zLv8Qll1wSGzduzNqcNWvWRL9+/WLKlCkZ7btly5aM9kunvLw8fvGLX8SIESNi586ddTaX7Lvuuuvi2muvjV27dmV9VlFRUZx66qkxbty4rH6OXn311ejZs2csXLgwazMAAAAAANi3CT8BAAAAAACQVcXFxXHGGWfE1KlT62ReWVlZXHLJJfHwww/Xybxsefzxx+MnP/lJfa9Bhvz617+O3/3ud3Uya/ny5XHSSSfF4sWL62TeZ599FmeddZYAFAAAAAAAWdG4vhcAAAAAAACg4dq6dWucddZZsWDBgio/07lz5+jdu3e0bds2WrVqFfn5+bFhw4b44osv4t13343XXnstysrK0vaorKyMyy+/PNq3bx/nnntubX+NKjn44IPjBz/4QRx22GFRUFAQLVu2jIKCgigrK4vi4uLYvHlzvPPOO7Fo0aLYsGFDlXo+8cQTcdxxx8VNN92U5e3Jpueffz5uu+22lPX99tsvTjrppOjWrVscdthhkZ+fHzt37ozi4uJYuXJlzJs3L95///0qzXrnnXeiX79+sX79+iqdb9KkSfTo0SO6d+8erVu3jtatW0fTpk3jiy++iC+++CLmzp0bS5YsicrKyrR9Nm/eHAMGDIhFixbFYYcdVqXZAAAAAABQFcJPAAAAAAAAZEVFRUUMHz68SsGnY445Jq6//vo4//zzo02bNmnPbtu2LaZPnx5jxoyJ9957L+W5ysrKGD58eCxevDgOP/zwau+/J506dYoLLrggzj777PjBD34QrVu3rvKzy5Yti0ceeST++Mc/7jEIddttt8X5558fXbp0qdZ+Y8eOjZKSkv/zb2+88UZMnjw55TP33HNPtX6Pbzv66KNr9FxDt3nz5hg1atRua8cee2yMHj06Bg0aFHl5eWn7LF++PCZMmJD2zPr162PgwIFVCj6dddZZce2110a/fv2i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AACJJPwEAAAAAAAAAAAAAAAAJJLwEwAAAAAAAAAAAAAAAJBIwk8AAAAAAAAAAAAAAABAIgk/AQAAAAAAAAAAAAAAAIkk/AQAAAAAAAAAAAAAAAAkkvATAAAAAAAAAAAAAAAAkEjCTwAAAAAAAAAAAAAAAEAiCT8BAAAAAAAAAAAAAAAAiST8BAAAAAAAAAAAAAAAACSS8BMAAAAAAAAAAAAAAACQSMJPAAAAAAAAAAAAAAAAQCIJPwEAAAAAAAAAAAAAAACJJPwEAAAAAAAAAAAAAAAAJJLwEwAAAAAAAAAAAAAAAJBIwk8AAAAAAAAAAAAAAABAIgk/AQAAAAAAAAAAAAAAAIkk/AQAAAAAAAAAAAAAAAAkkvATAAAAAAAAAAAAAAAAkEjCTwAAAAAAAAAAAAAAAEAiCT8BAAAAAAAAAAAAAAAAiST8BAAAAAAAAAAAAAAAACSS8BMAAAAAAAAAAAAAAACQSMJPAAAAAAAAAAAAAAAAQCIJPwEAAAAAAAAAAAAAAACJJPwEAAAAAAAAAAAAAAAAJJLwEwAAAAAAAAAAAAAAAJBIwk8AAAAAAAAAAAAAAABAIgk/AQAAAAAAAAAAAAAAAIkk/AQAAAAAAAAAAAAAAAAkkvATAAAAAAAAAAAAAAAAkEjCTwAAAAAAAAAAAAAAAEAiCT8BAAAAAAAAAAAAAAAAiST8BAAAAAAAAAAAAAAAACSS8BMAAAAAAAAAAAAAAACQSMJPAAAAAAAAAAAAAAAAQCIJPwEAAAAAAAAAAAAAAACJJPwEAAAAAAAAAAAAAAAAJJLwEwAAAAAAAAAAAAAAAJBI/w9zFR8SUjbIuQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "if __name__ == \"__main__\":\n", + " w = np.zeros(x.shape[1])\n", + " b = 0\n", + " alpha = 0.04\n", + " num_iterations = 50000\n", + " w, b = gradient_descent(w, b, alpha, num_iterations)\n", + " print(w, b)\n", + " loss = compute_cost_vectorized(w, b)\n", + " print(loss)\n", + " \n", + " plt.figure(dpi=600)\n", + " # 绘制数据点\n", + " plt.scatter(x[:, 0], x[:, 1], c=y, cmap='viridis', edgecolors='k')\n", + "\n", + " # 计算决策边界\n", + " x_min, x_max = x[:, 0].min() - 1, x[:, 0].max() + 1\n", + " y_min, y_max = x[:, 1].min() - 1, x[:, 1].max() + 1\n", + " xx = np.linspace(x_min, x_max, 100)\n", + " # 计算对应的y值: w1*x + w2*y + b = 0 => y = -(w1*x + b)/w2\n", + " if w[1] != 0:\n", + " yy = -(w[0] * xx + b) / w[1]\n", + " plt.plot(xx, yy, color='red', label='Decision Boundary')\n", + " else:\n", + " # 当w2=0时,决策边界为垂直线x = -b/w1\n", + " x_boundary = -b / w[0]\n", + " plt.axvline(x=x_boundary, color='red', label='Decision Boundary')\n", + "\n", + " plt.xlabel('Feature 1')\n", + " plt.ylabel('Feature 2')\n", + " plt.title('Logistic Regression Decision Boundary')\n", + " plt.legend()\n", + " plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pt", + "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.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/mlcode/22.py b/mlcode/22.py deleted file mode 100644 index db7a52e..0000000 --- a/mlcode/22.py +++ /dev/null @@ -1,9 +0,0 @@ -import numpy as np - -w = np.array([1, 2, 3]) -b = 4 -x = np.array([10, 20, 30]) - -f = np.dot(w, x) + b - -print(f) diff --git a/mnist/README.md b/mnist/README.md deleted file mode 100644 index 0f727ad..0000000 --- a/mnist/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# No deep learning,just function mapping - -$$ -X = [v_1,v_2,.....,v_{784}]\\ -X:[1,dx] -$$ - -$$ -H_1 = XW_{1} + b_{1} \\ -W_1:[d_1,dx] \\ -b_1:[d_1] -$$ - -$$ -H_2 = H_1W_2 + b_2 \\ -W_1:[d_2,d_1] \\ -b_1:[d_2] -$$ - -$$ -H_3=H_2W_3 + b_3 \\ -W_3:[10,d_2]\\ -b_3:[10] -$$ - -## Loss - -$$ -H_3:[1,d_3] \\ -Y:[0/1/2/.../9] \\ -eg.:1\geq[0,1,0,0,0,0,0,0,0,0,0] \\ -eg.:3\geq[0,0,0,1,0,0,0,0,0,0,0] \\ -Euclidean\ Distance:H_3\ vs\ Y -$$ - - - -## In a nutshell - -$$ -pred = W_3 \times \{W_2\cdot[W_1X+b_1]+b_2\}+b_3 -$$ - diff --git a/plt/logistic.py b/plt/logistic.py new file mode 100644 index 0000000..836bcd6 --- /dev/null +++ b/plt/logistic.py @@ -0,0 +1,40 @@ +import numpy as np +import matplotlib.pyplot as plt + +def logistic_function(x, w, b): + return 1 / (1 + np.exp(-(w * x + b))) + +def cost_function(f_wb, y): + if y == 1: + return -np.log(f_wb) + else: + return -np.log(1 - f_wb) + +f_wb = np.linspace(-1, 2, 100) # 避免log(0)的情况 + +cost_y1 = cost_function(f_wb, 1) +cost_y0 = cost_function(f_wb, 0) + +plt.figure(figsize=(12, 6),dpi=600) + +plt.subplot(1, 2, 1) +plt.plot(f_wb, cost_y1, label='y=1') +plt.title('Cost Function when y=1') +plt.xlabel('f_wb') +plt.ylabel('Cost') +plt.axhline(0, color='black', linewidth=0.8) # 增加水平坐标轴 +plt.axvline(0, color='black', linewidth=0.8) # 增加垂直坐标轴 +plt.legend() + +plt.subplot(1, 2, 2) +plt.plot(f_wb, cost_y0, label='y=0') +plt.title('Cost Function when y=0') +plt.xlabel('f_wb') +plt.ylabel('Cost') +plt.axhline(0, color='black', linewidth=0.8) # 增加水平坐标轴 +plt.axvline(0, color='black', linewidth=0.8) # 增加垂直坐标轴 +plt.legend() + +plt.tight_layout() +#plt.show() +plt.savefig('plt/logistic_cost_function.png') \ No newline at end of file diff --git a/plt/logistic_cost_function.png b/plt/logistic_cost_function.png new file mode 100644 index 0000000..c922b4f Binary files /dev/null and b/plt/logistic_cost_function.png differ diff --git a/week1/C1_W1_Lab01_Python_Jupyter_Soln.ipynb b/week1/C1_W1_Lab01_Python_Jupyter_Soln.ipynb deleted file mode 100644 index c9c94e7..0000000 --- a/week1/C1_W1_Lab01_Python_Jupyter_Soln.ipynb +++ /dev/null @@ -1,160 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Brief Introduction to Python and Jupyter Notebooks\n", - "Welcome to the first optional lab! \n", - "Optional labs are available to:\n", - "- provide information - like this notebook\n", - "- reinforce lecture material with hands-on examples\n", - "- provide working examples of routines used in the graded labs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab, you will:\n", - "- Get a brief introduction to Jupyter notebooks\n", - "- Take a tour of Jupyter notebooks\n", - "- Learn the difference between markdown cells and code cells\n", - "- Practice some basic python\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The easiest way to become familiar with Jupyter notebooks is to take the tour available above in the Help menu:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "
missing
\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Jupyter notebooks have two types of cells that are used in this course. Cells such as this which contain documentation called `Markdown Cells`. The name is derived from the simple formatting language used in the cells. You will not be required to produce markdown cells. Its useful to understand the `cell pulldown` shown in graphic below. Occasionally, a cell will end up in the wrong mode and you may need to restore it to the right state:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " missing\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The other type of cell is the `code cell` where you will write your code:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "This is a code cell\n" - ] - } - ], - "source": [ - "#This is a 'Code' Cell\n", - "print(\"This is a code cell\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Python\n", - "You can write your code in the code cells. \n", - "To run the code, select the cell and either\n", - "- hold the shift-key down and hit 'enter' or 'return'\n", - "- click the 'run' arrow above\n", - "
\n", - " \n", - "
\n", - "\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Print statement\n", - "Print statements will generally use the python f-string style. \n", - "Try creating your own print in the following cell. \n", - "Try both methods of running the cell." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "f strings allow you to embed variables right in the strings! 23\n" - ] - } - ], - "source": [ - "# print statements\n", - "variable = \"right in the strings!\"\n", - "var='23'\n", - "print(f\"f strings allow you to embed variables {variable} {var}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Congratulations!\n", - "You now know how to find your way around a Jupyter Notebook." - ] - } - ], - "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.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week1/C1_W1_Lab02_Model_Representation_Soln.ipynb b/week1/C1_W1_Lab02_Model_Representation_Soln.ipynb deleted file mode 100644 index a08c3ae..0000000 --- a/week1/C1_W1_Lab02_Model_Representation_Soln.ipynb +++ /dev/null @@ -1,501 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "d5947faf528d757", - "metadata": {}, - "source": [ - "# Optional Lab: Model Representation\n", - "\n", - "
\n", - " \n", - "
" - ] - }, - { - "cell_type": "markdown", - "id": "428fc5f273aad770", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab you will:\n", - "- Learn to implement the model $f_{w,b}$ for linear regression with one variable" - ] - }, - { - "cell_type": "markdown", - "id": "7b23d466e8a13579", - "metadata": {}, - "source": [ - "## Notation\n", - "Here is a summary of some of the notation you will encounter. \n", - "\n", - "|General
Notation | Description| Python (if applicable) |\n", - "|: ------------|: ------------------------------------------------------------||\n", - "| $a$ | scalar, non bold ||\n", - "| $\\mathbf{a}$ | vector, bold ||\n", - "| **Regression** | | | |\n", - "| $\\mathbf{x}$ | Training Example feature values (in this lab - Size (1000 sqft)) | `x_train` | \n", - "| $\\mathbf{y}$ | Training Example targets (in this lab Price (1000s of dollars)) | `y_train` \n", - "| $x^{(i)}$, $y^{(i)}$ | $i_{th}$Training Example | `x_i`, `y_i`|\n", - "| m | Number of training examples | `m`|\n", - "| $w$ | parameter: weight | `w` |\n", - "| $b$ | parameter: bias | `b` | \n", - "| $f_{w,b}(x^{(i)})$ | The result of the model evaluation at $x^{(i)}$ parameterized by $w,b$: $f_{w,b}(x^{(i)}) = wx^{(i)}+b$ | `f_wb` | \n" - ] - }, - { - "cell_type": "markdown", - "id": "d6756737db18e1c", - "metadata": {}, - "source": [ - "## Tools\n", - "In this lab you will make use of: \n", - "- NumPy, a popular library for scientific computing\n", - "- Matplotlib, a popular library for plotting data" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "792fae4c5017098a", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "plt.style.use('./deeplearning.mplstyle')" - ] - }, - { - "cell_type": "markdown", - "id": "f8e92dd846374938", - "metadata": {}, - "source": [ - "# Problem Statement\n", - " \n", - "\n", - "As in the lecture, you will use the motivating example of housing price prediction. \n", - "This lab will use a simple data set with only two data points - a house with 1000 square feet(sqft) sold for \\\\$300,000 and a house with 2000 square feet sold for \\\\$500,000. These two points will constitute our *data or training set*. In this lab, the units of size are 1000 sqft and the units of price are 1000s of dollars.\n", - "\n", - "| Size (1000 sqft) | Price (1000s of dollars) |\n", - "| -------------------| ------------------------ |\n", - "| 1.0 | 300 |\n", - "| 2.0 | 500 |\n", - "\n", - "You would like to fit a linear regression model (shown above as the blue straight line) through these two points, so you can then predict price for other houses - say, a house with 1200 sqft.\n" - ] - }, - { - "cell_type": "markdown", - "id": "d877986e09640e0f", - "metadata": {}, - "source": [ - "Please run the following code cell to create your `x_train` and `y_train` variables. The data is stored in one-dimensional NumPy arrays." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "5306a3aeca0c549a", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "x_train = [1. 2.]\n", - "y_train = [300. 500.]\n" - ] - } - ], - "source": [ - "# x_train is the input variable (size in 1000 square feet)\n", - "# y_train is the target (price in 1000s of dollars)\n", - "x_train = np.array([1.0, 2.0])\n", - "y_train = np.array([300.0, 500.0])\n", - "print(f\"x_train = {x_train}\")\n", - "print(f\"y_train = {y_train}\")" - ] - }, - { - "cell_type": "markdown", - "id": "1f2af3b208024cc1", - "metadata": {}, - "source": [ - ">**Note**: The course will frequently utilize the python 'f-string' output formatting described [here](https://docs.python.org/3/tutorial/inputoutput.html) when printing. The content between the curly braces is evaluated when producing the output." - ] - }, - { - "cell_type": "markdown", - "id": "8e8c52a75e71157d", - "metadata": {}, - "source": [ - "### Number of training examples `m`\n", - "You will use `m` to denote the number of training examples. Numpy arrays have a `.shape` parameter. `x_train.shape` returns a python tuple with an entry for each dimension. `x_train.shape[0]` is the length of the array and number of examples as shown below." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "eca4f6257ac4de85", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "x_train.shape: (2,)\n", - "Number of training examples is: 2\n" - ] - } - ], - "source": [ - "# m is the number of training examples\n", - "print(f\"x_train.shape: {x_train.shape}\")\n", - "m = x_train.shape[0]\n", - "print(f\"Number of training examples is: {m}\")" - ] - }, - { - "cell_type": "markdown", - "id": "a0f74fc14328cbb1", - "metadata": {}, - "source": [ - "One can also use the Python `len()` function as shown below." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "314bdb01cd4b140b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of training examples is: 2\n" - ] - } - ], - "source": [ - "# m is the number of training examples\n", - "m = len(x_train)\n", - "print(f\"Number of training examples is: {m}\")" - ] - }, - { - "cell_type": "markdown", - "id": "7954c480ba221f81", - "metadata": {}, - "source": [ - "### Training example `x_i, y_i`\n", - "\n", - "You will use (x$^{(i)}$, y$^{(i)}$) to denote the $i^{th}$ training example. Since Python is zero indexed, (x$^{(0)}$, y$^{(0)}$) is (1.0, 300.0) and (x$^{(1)}$, y$^{(1)}$) is (2.0, 500.0). \n", - "\n", - "To access a value in a Numpy array, one indexes the array with the desired offset. For example the syntax to access location zero of `x_train` is `x_train[0]`.\n", - "Run the next code block below to get the $i^{th}$ training example." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "b6a441b1c3984a36", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(x^(0), y^(0)) = (1.0, 300.0)\n" - ] - } - ], - "source": [ - "i = 0 # Change this to 1 to see (x^1, y^1)\n", - "\n", - "x_i = x_train[i]\n", - "y_i = y_train[i]\n", - "print(f\"(x^({i}), y^({i})) = ({x_i}, {y_i})\")" - ] - }, - { - "cell_type": "markdown", - "id": "34065d7bc1038bf0", - "metadata": {}, - "source": [ - "### Plotting the data" - ] - }, - { - "cell_type": "markdown", - "id": "e89956448ccd316d", - "metadata": {}, - "source": [ - "You can plot these two points using the `scatter()` function in the `matplotlib` library, as shown in the cell below. \n", - "- The function arguments `marker` and `c` show the points as red crosses (the default is blue dots).\n", - "\n", - "You can use other functions in the `matplotlib` library to set the title and labels to display" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "c1b08142e0243c78", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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nDixkSutPwsXLjRat25t9O/f3+jfv7+xfv16U/NLN3CJiDgZpxjjFxGR3yj4RUScjIJfRMTJKPhFRJyMgl9ExMko+OWyMWHCBEJDQwkLCyMqKopTp06Rn5/PPffcU+dtT5o0iVWrVgHw4osvcu2111a5nvrIkSPExsYSFBTEmDFjKCsrA+DMmTMMGzaMzp07k5iYyKlTpwAoLy/nL3/5C0FBQURFRZGfn1/nOm+//XZ69OjBggULePnll+3tu3fvJiUlpc7bF+eg4JfLwvr161m/fj1bt27l22+/5Z133sHDw4OAgADeeeedOm373LlzrFixgqFDhwIwePBgNmzYUOVzL774IsnJyezevRsPDw+WLl0KwMyZMwkNDWXXrl3069eP1157DYCMjAxOnz7N7t27eeCBB5g0aVKd6iwoKGDPnj1s3bqV5OTkSsEfFBTEsWPHOHjwYJ32Ic5BwS+XhcOHD+Pv72+fhycoKAhPT09++OEHIiMjAbj55puJiIggIiKCpk2bsnXrVkpKSkhOTqZPnz707duXr7/+usq2MzMz6devn/39DTfcQEBAQJXPffzxx/bpL0aPHm2/K3rFihXcfffd1bbfeeedrF69uso2s7KyCAsLIyIigptuugmA06dPM3LkSEJDQxk3bpz9L4+kpCR27txJREQEd955J4WFhURERNin8U1MTOS9996r7T+tOKN6uQ1MxGQnT540unbtaoSHhxv/9V//ZVgsFsMwDGPfvn1G3759K312+fLlxqBBg4yysjLjiSeeMJYtW2YYhmHs2bPnglP5Pvvss8bs2bOrtF9zzTWV3gcEBNhff/fdd8agQYMMwzCMbt26GcePHzcMwzB+/vlno1OnToZhGMbNN99sbN682b5OYGCgUV5eXmmbSUlJxhdffGEYhmGcOHHCMIyK6ZYff/xxwzAMIyMjw/j1v+nv+/r7+nJzc40777yzSj9Efk9H/HJZ8Pb2ZsuWLbz00ktYrVb69evHt99+W+Vz+/fv5+mnn2bBggW4urry+eef8+yzzxIREcFtt912wYnMCgoKaN26db3UWdspsKOionjqqad4/fXXsVqtQMWw1q9TSyclJXHVVVc5tC1/f38KCgpqV7A4JaeYpE2uDE2aNCExMZHExETKy8tZvXo1t99+u325zWZj1KhRTJ8+nWuuuQaoeCLXypUrLzh086umTZvaQ7c6Xl5elJSU0KJFCw4dOkTbtm0BCAgI4NChQ/j6+vLjjz9WaY+IiODs2bM0adKkyhfDM888Q2JiIitWrKBPnz588803GJc4i4rVarXP6S5SHR3xy2UhLy+Pffv2ARUzGebl5dG+fftKn3niiSe4+eabGTBggL0tPj7efrIVKmYt/b0uXbqwd+/eGmtITExk4cKFACxcuJBbbrkFqDi3MH/+/Grb3333XRISEqpsc+/evURERPCPf/yDDh06cPDgQW666SaWLFkCVJwnuNjUwy4uLpSXl9vf7969+4qejVTqj4JfLgunTp1i1KhRhIaGEh4eTkhICHfccUelz0ydOpV3333XfoI3Ly+PCRMmcOjQIcLDw+nWrRsLFiyosu0hQ4awbt06+/v//u//pl27dhw9epR27drx5ptvAvD3v/+d+fPnExQUhNVqtf+1kZaWhsViISgoiPXr1zNu3DgAhg8fTrNmzejUqRNvvPEGzz77bJV9p6en2/sUGhpKjx49GDduHLt376Znz56sXbvW/tfL740ePZru3bvbT+5mZ2czZMiQS/jXFWej2TlFqBhL/7//+z+uvvrqxi6lijZt2tQ4dl9aWsqAAQNYs2aN0zyBTC6dgl+EiiEgm81G7969G7uUKhwJ/v3797Nnzx4GDhzYQFXJ5UzBLyLiZDTGLyLiZBT8IiJORsEvIuJkFPwiIk5GwS8i4mQU/CIiTub/AdtOrR2H7MLzAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Plot the data points\n", - "plt.scatter(x_train, y_train, marker='x', c='r')\n", - "# Set the title\n", - "plt.title(\"Housing Prices\")\n", - "# Set the y-axis label\n", - "plt.ylabel('Price (in 1000s of dollars)')\n", - "# Set the x-axis label\n", - "plt.xlabel('Size (1000 sqft)')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "3d4f63fe1b74df05", - "metadata": {}, - "source": [ - "## Model function\n", - "\n", - " As described in lecture, the model function for linear regression (which is a function that maps from `x` to `y`) is represented as \n", - "\n", - "$$ f_{w,b}(x^{(i)}) = wx^{(i)} + b \\tag{1}$$\n", - "\n", - "The formula above is how you can represent straight lines - different values of $w$ and $b$ give you different straight lines on the plot.




\n", - "\n", - "Let's try to get a better intuition for this through the code blocks below. Let's start with $w = 100$ and $b = 100$. \n", - "\n", - "**Note: You can come back to this cell to adjust the model's w and b parameters**" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "6ef1590ead23e422", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "w: 100\n", - "b: 100\n" - ] - } - ], - "source": [ - "w = 100\n", - "b = 100\n", - "print(f\"w: {w}\")\n", - "print(f\"b: {b}\")" - ] - }, - { - "cell_type": "markdown", - "id": "2c9b74a9dafeb729", - "metadata": {}, - "source": [ - "Now, let's compute the value of $f_{w,b}(x^{(i)})$ for your two data points. You can explicitly write this out for each data point as - \n", - "\n", - "for $x^{(0)}$, `f_wb = w * x[0] + b`\n", - "\n", - "for $x^{(1)}$, `f_wb = w * x[1] + b`\n", - "\n", - "For a large number of data points, this can get unwieldy and repetitive. So instead, you can calculate the function output in a `for` loop as shown in the `compute_model_output` function below.\n", - "> **Note**: The argument description `(ndarray (m,))` describes a Numpy n-dimensional array of shape (m,). `(scalar)` describes an argument without dimensions, just a magnitude. \n", - "> **Note**: `np.zero(n)` will return a one-dimensional numpy array with $n$ entries \n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "b6247cda89575683", - "metadata": {}, - "outputs": [], - "source": [ - "def compute_model_output(x, w, b):\n", - " \"\"\"\n", - " Computes the prediction of a linear model\n", - " Args:\n", - " x (ndarray (m,)): Data, m examples \n", - " w,b (scalar) : model parameters \n", - " Returns\n", - " y (ndarray (m,)): target values\n", - " \"\"\"\n", - " m = x.shape[0]\n", - " f_wb = np.zeros(m)\n", - " for i in range(m):\n", - " f_wb[i] = w * x[i] + b\n", - " \n", - " return f_wb" - ] - }, - { - "cell_type": "markdown", - "id": "ab0afd05a817d94f", - "metadata": {}, - "source": [ - "Now let's call the `compute_model_output` function and plot the output.." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "95d34926475c6344", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tmp_f_wb = compute_model_output(x_train, w, b,)\n", - "\n", - "# Plot our model prediction\n", - "plt.plot(x_train, tmp_f_wb, c='b',label='Our Prediction')\n", - "\n", - "# Plot the data points\n", - "plt.scatter(x_train, y_train, marker='x', c='r',label='Actual Values')\n", - "\n", - "# Set the title\n", - "plt.title(\"Housing Prices\")\n", - "# Set the y-axis label\n", - "plt.ylabel('Price (in 1000s of dollars)')\n", - "# Set the x-axis label\n", - "plt.xlabel('Size (1000 sqft)')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "a1b84ae24243cb1b", - "metadata": {}, - "source": [ - "As you can see, setting $w = 100$ and $b = 100$ does *not* result in a line that fits our data. \n", - "\n", - "### Challenge\n", - "Try experimenting with different values of $w$ and $b$. What should the values be for a line that fits our data?\n", - "\n", - "#### Tip:\n", - "You can use your mouse to click on the green \"Hints\" below to reveal some hints for choosing b and w." - ] - }, - { - "cell_type": "markdown", - "id": "ee76a723f8f5dbd5", - "metadata": {}, - "source": [ - "
\n", - "\n", - " Hints\n", - "\n", - "

\n", - "

    \n", - "
  • Try $w = 200$ and $b = 100$
  • \n", - "
\n", - "

" - ] - }, - { - "cell_type": "markdown", - "id": "7f423cd19a7ba591", - "metadata": {}, - "source": [ - "### Prediction\n", - "Now that we have a model, we can use it to make our original prediction. Let's predict the price of a house with 1200 sqft. Since the units of $x$ are in 1000's of sqft, $x$ is 1.2.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "9cdc794cbcf34c22", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "$340 thousand dollars\n" - ] - } - ], - "source": [ - "w = 200 \n", - "b = 100 \n", - "x_i = 1.2\n", - "cost_1200sqft = w * x_i + b \n", - "\n", - "print(f\"${cost_1200sqft:.0f} thousand dollars\")" - ] - }, - { - "cell_type": "markdown", - "id": "4c8ad73f0d6f18f2", - "metadata": {}, - "source": [ - "# Congratulations!\n", - "In this lab you have learned:\n", - " - Linear regression builds a model which establishes a relationship between features and targets\n", - " - In the example above, the feature was house size and the target was house price\n", - " - for simple linear regression, the model has two parameters $w$ and $b$ whose values are 'fit' using *training data*.\n", - " - once a model's parameters have been determined, the model can be used to make predictions on novel data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b3eb2771a91f081b", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.10.14" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week1/C1_W1_Lab03_Cost_function_Soln.ipynb b/week1/C1_W1_Lab03_Cost_function_Soln.ipynb deleted file mode 100644 index 1f7014f..0000000 --- a/week1/C1_W1_Lab03_Cost_function_Soln.ipynb +++ /dev/null @@ -1,352 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Cost Function \n", - "
\n", - "
\n", - "
\n", - "\n" - ], - "id": "2eb3fe737905ed4d" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab you will:\n", - "- you will implement and explore the `cost` function for linear regression with one variable. \n" - ], - "id": "1fcf9bd45e9feda9" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Tools\n", - "In this lab we will make use of: \n", - "- NumPy, a popular library for scientific computing\n", - "- Matplotlib, a popular library for plotting data\n", - "- local plotting routines in the lab_utils_uni.py file in the local directory" - ], - "id": "7d157dcf2c8adeb1" - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "%matplotlib widget\n", - "import matplotlib.pyplot as plt\n", - "from lab_utils_uni import plt_intuition, plt_stationary, plt_update_onclick, soup_bowl\n", - "plt.style.use('./deeplearning.mplstyle')" - ], - "id": "520a04274f8b8984" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Problem Statement\n", - "\n", - "You would like a model which can predict housing prices given the size of the house. \n", - "Let's use the same two data points as before the previous lab- a house with 1000 square feet sold for \\\\$300,000 and a house with 2000 square feet sold for \\\\$500,000.\n", - "\n", - "\n", - "| Size (1000 sqft) | Price (1000s of dollars) |\n", - "| -------------------| ------------------------ |\n", - "| 1 | 300 |\n", - "| 2 | 500 |\n" - ], - "id": "8a119e41544f0e89" - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "x_train = np.array([1.0, 2.0]) #(size in 1000 square feet)\n", - "y_train = np.array([300.0, 500.0]) #(price in 1000s of dollars)" - ], - "id": "f2abb1684508d059" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Computing Cost\n", - "The term 'cost' in this assignment might be a little confusing since the data is housing cost. Here, cost is a measure how well our model is predicting the target price of the house. The term 'price' is used for housing data.\n", - "\n", - "The equation for cost with one variable is:\n", - " $$J(w,b) = \\frac{1}{2m} \\sum\\limits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)})^2 \\tag{1}$$ \n", - " \n", - "where \n", - " $$f_{w,b}(x^{(i)}) = wx^{(i)} + b \\tag{2}$$\n", - " \n", - "- $f_{w,b}(x^{(i)})$ is our prediction for example $i$ using parameters $w,b$. \n", - "- $(f_{w,b}(x^{(i)}) -y^{(i)})^2$ is the squared difference between the target value and the prediction. \n", - "- These differences are summed over all the $m$ examples and divided by `2m` to produce the cost, $J(w,b)$. \n", - ">Note, in lecture summation ranges are typically from 1 to m, while code will be from 0 to m-1.\n" - ], - "id": "aa7329fc4c914325" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The code below calculates cost by looping over each example. In each loop:\n", - "- `f_wb`, a prediction is calculated\n", - "- the difference between the target and the prediction is calculated and squared.\n", - "- this is added to the total cost." - ], - "id": "d3a36b72897daea3" - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_cost(x, y, w, b): \n", - " \"\"\"\n", - " Computes the cost function for linear regression.\n", - " \n", - " Args:\n", - " x (ndarray (m,)): Data, m examples \n", - " y (ndarray (m,)): target values\n", - " w,b (scalar) : model parameters \n", - " \n", - " Returns\n", - " total_cost (float): The cost of using w,b as the parameters for linear regression\n", - " to fit the data points in x and y\n", - " \"\"\"\n", - " # number of training examples\n", - " m = x.shape[0] \n", - " \n", - " cost_sum = 0 \n", - " for i in range(m): \n", - " f_wb = w * x[i] + b \n", - " cost = (f_wb - y[i]) ** 2 \n", - " cost_sum = cost_sum + cost \n", - " total_cost = (1 / (2 * m)) * cost_sum \n", - "\n", - " return total_cost" - ], - "id": "2c1741a176659c0a" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Cost Function Intuition" - ], - "id": "949501e9bdaccf82" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " Your goal is to find a model $f_{w,b}(x) = wx + b$, with parameters $w,b$, which will accurately predict house values given an input $x$. The cost is a measure of how accurate the model is on the training data.\n", - "\n", - "The cost equation (1) above shows that if $w$ and $b$ can be selected such that the predictions $f_{w,b}(x)$ match the target data $y$, the $(f_{w,b}(x^{(i)}) - y^{(i)})^2 $ term will be zero and the cost minimized. In this simple two point example, you can achieve this!\n", - "\n", - "In the previous lab, you determined that $b=100$ provided an optimal solution so let's set $b$ to 100 and focus on $w$.\n", - "\n", - "
\n", - "Below, use the slider control to select the value of $w$ that minimizes cost. It can take a few seconds for the plot to update." - ], - "id": "44df7c59f9760dc9" - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7d57d1ccadbf42d6bc17488114bbf179", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt_intuition(x_train,y_train)" - ], - "id": "22cd3ef9d4ec0ad6" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The plot contains a few points that are worth mentioning.\n", - "- cost is minimized when $w = 200$, which matches results from the previous lab\n", - "- Because the difference between the target and pediction is squared in the cost equation, the cost increases rapidly when $w$ is either too large or too small.\n", - "- Using the `w` and `b` selected by minimizing cost results in a line which is a perfect fit to the data." - ], - "id": "375ff8495648a3fc" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Cost Function Visualization- 3D\n", - "\n", - "You can see how cost varies with respect to *both* `w` and `b` by plotting in 3D or using a contour plot. \n", - "It is worth noting that some of the plotting in this course can become quite involved. The plotting routines are provided and while it can be instructive to read through the code to become familiar with the methods, it is not needed to complete the course successfully. The routines are in lab_utils_uni.py in the local directory." - ], - "id": "11ced4ee637d0bc2" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Larger Data Set\n", - "It is instructive to view a scenario with a few more data points. This data set includes data points that do not fall on the same line. What does that mean for the cost equation? Can we find $w$, and $b$ that will give us a cost of 0? " - ], - "id": "965277e5ec9d8183" - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "x_train = np.array([1.0, 1.7, 2.0, 2.5, 3.0, 3.2])\n", - "y_train = np.array([250, 300, 480, 430, 630, 730,])" - ], - "id": "e7497ddb4e257caf" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the contour plot, click on a point to select `w` and `b` to achieve the lowest cost. Use the contours to guide your selections. Note, it can take a few seconds to update the graph. " - ], - "id": "7d477a675cb9fca2" - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "d5cceda8ce34448290f1c2cac01ee091", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.close('all') \n", - "fig, ax, dyn_items = plt_stationary(x_train, y_train)\n", - "updater = plt_update_onclick(fig, ax, x_train, y_train, dyn_items)" - ], - "id": "d93ed50102bca74e" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, note the dashed lines in the left plot. These represent the portion of the cost contributed by each example in your training set. In this case, values of approximately $w=209$ and $b=2.4$ provide low cost. Note that, because our training examples are not on a line, the minimum cost is not zero." - ], - "id": "27a1d1e4a0575e15" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Convex Cost surface\n", - "The fact that the cost function squares the loss ensures that the 'error surface' is convex like a soup bowl. It will always have a minimum that can be reached by following the gradient in all dimensions. In the previous plot, because the $w$ and $b$ dimensions scale differently, this is not easy to recognize. The following plot, where $w$ and $b$ are symmetric, was shown in lecture:" - ], - "id": "3e066cb5f7dfd29c" - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b9ea89764a324a98893ec2d8d2689e77", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "soup_bowl()" - ], - "id": "f9545acc0a1322e0" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Congratulations!\n", - "You have learned the following:\n", - " - The cost equation provides a measure of how well your predictions match your training data.\n", - " - Minimizing the cost can provide optimal values of $w$, $b$." - ], - "id": "653d254837760414" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [], - "id": "cc3b485e8def457" - } - ], - "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.6" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week1/C1_W1_Lab04_Gradient_Descent_Soln.ipynb b/week1/C1_W1_Lab04_Gradient_Descent_Soln.ipynb deleted file mode 100644 index bda2a5d..0000000 --- a/week1/C1_W1_Lab04_Gradient_Descent_Soln.ipynb +++ /dev/null @@ -1,649 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Gradient Descent for Linear Regression\n", - "\n", - "
\n", - "
\n", - "
" - ], - "id": "64d8b1775dd1fa3a" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab, you will:\n", - "- automate the process of optimizing $w$ and $b$ using gradient descent." - ], - "id": "99b50273cf2c810a" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Tools\n", - "In this lab, we will make use of: \n", - "- NumPy, a popular library for scientific computing\n", - "- Matplotlib, a popular library for plotting data\n", - "- plotting routines in the lab_utils.py file in the local directory" - ], - "id": "4502238878e707b7" - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import math, copy\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "plt.style.use('deeplearning.mplstyle')\n", - "from lab_utils_uni import plt_house_x, plt_contour_wgrad, plt_divergence, plt_gradients" - ], - "id": "3e02dd559bcc5bce" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Problem Statement\n", - "\n", - "Let's use the same two data points as before - a house with 1000 square feet sold for \\\\$300,000 and a house with 2000 square feet sold for \\\\$500,000.\n", - "\n", - "| Size (1000 sqft) | Price (1000s of dollars) |\n", - "| ----------------| ------------------------ |\n", - "| 1 | 300 |\n", - "| 2 | 500 |\n" - ], - "id": "a52a5b79363891a4" - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# Load our data set\n", - "x_train = np.array([1.0, 2.0]) #features\n", - "y_train = np.array([300.0, 500.0]) #target value" - ], - "id": "5f14f59dcc4f7e1e" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### Compute_Cost\n", - "This was developed in the last lab. We'll need it again here." - ], - "id": "7057888cd71b77c1" - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "#Function to calculate the cost\n", - "def compute_cost(x, y, w, b):\n", - " \n", - " m = x.shape[0] \n", - " cost = 0\n", - " \n", - " for i in range(m):\n", - " f_wb = w * x[i] + b\n", - " cost = cost + (f_wb - y[i])**2\n", - " total_cost = 1 / (2 * m) * cost\n", - "\n", - " return total_cost" - ], - "id": "52ab101b90f4d2c3" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Gradient descent summary\n", - "So far in this course, you have developed a linear model that predicts $f_{w,b}(x^{(i)})$:\n", - "$$f_{w,b}(x^{(i)}) = wx^{(i)} + b \\tag{1}$$\n", - "In linear regression, you utilize input training data to fit the parameters $w$,$b$ by minimizing a measure of the error between our predictions $f_{w,b}(x^{(i)})$ and the actual data $y^{(i)}$. The measure is called the $cost$, $J(w,b)$. In training you measure the cost over all of our training samples $x^{(i)},y^{(i)}$\n", - "$$J(w,b) = \\frac{1}{2m} \\sum\\limits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)})^2\\tag{2}$$ " - ], - "id": "71fc10831d272645" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "In lecture, *gradient descent* was described as:\n", - "\n", - "$$\\begin{align*} \\text{repeat}&\\text{ until convergence:} \\; \\lbrace \\newline\n", - "\\; w &= w - \\alpha \\frac{\\partial J(w,b)}{\\partial w} \\tag{3} \\; \\newline \n", - " b &= b - \\alpha \\frac{\\partial J(w,b)}{\\partial b} \\newline \\rbrace\n", - "\\end{align*}$$\n", - "where, parameters $w$, $b$ are updated simultaneously. \n", - "The gradient is defined as:\n", - "$$\n", - "\\begin{align}\n", - "\\frac{\\partial J(w,b)}{\\partial w} &= \\frac{1}{m} \\sum\\limits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)})x^{(i)} \\tag{4}\\\\\n", - " \\frac{\\partial J(w,b)}{\\partial b} &= \\frac{1}{m} \\sum\\limits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)}) \\tag{5}\\\\\n", - "\\end{align}\n", - "$$\n", - "\n", - "Here *simultaniously* means that you calculate the partial derivatives for all the parameters before updating any of the parameters." - ], - "id": "60baf048109b0868" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Implement Gradient Descent\n", - "You will implement gradient descent algorithm for one feature. You will need three functions. \n", - "- `compute_gradient` implementing equation (4) and (5) above\n", - "- `compute_cost` implementing equation (2) above (code from previous lab)\n", - "- `gradient_descent`, utilizing compute_gradient and compute_cost\n", - "\n", - "Conventions:\n", - "- The naming of python variables containing partial derivatives follows this pattern,$\\frac{\\partial J(w,b)}{\\partial b}$ will be `dj_db`.\n", - "- w.r.t is With Respect To, as in partial derivative of $J(wb)$ With Respect To $b$.\n" - ], - "id": "a3d60bc28ec4ab6c" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### compute_gradient\n", - "\n", - "`compute_gradient` implements (4) and (5) above and returns $\\frac{\\partial J(w,b)}{\\partial w}$,$\\frac{\\partial J(w,b)}{\\partial b}$. The embedded comments describe the operations." - ], - "id": "f775b4e5b10ecad4" - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_gradient(x, y, w, b): \n", - " \"\"\"\n", - " Computes the gradient for linear regression \n", - " Args:\n", - " x (ndarray (m,)): Data, m examples \n", - " y (ndarray (m,)): target values\n", - " w,b (scalar) : model parameters \n", - " Returns\n", - " dj_dw (scalar): The gradient of the cost w.r.t. the parameters w\n", - " dj_db (scalar): The gradient of the cost w.r.t. the parameter b \n", - " \"\"\"\n", - " \n", - " # Number of training examples\n", - " m = x.shape[0] \n", - " dj_dw = 0\n", - " dj_db = 0\n", - " \n", - " for i in range(m): \n", - " f_wb = w * x[i] + b \n", - " dj_dw_i = (f_wb - y[i]) * x[i] \n", - " dj_db_i = f_wb - y[i] \n", - " dj_db += dj_db_i\n", - " dj_dw += dj_dw_i \n", - " dj_dw = dj_dw / m \n", - " dj_db = dj_db / m \n", - " \n", - " return dj_dw, dj_db" - ], - "id": "ee90c07f78acea2" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
" - ], - "id": "19087465bb1bb266" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " The lectures described how gradient descent utilizes the partial derivative of the cost with respect to a parameter at a point to update that parameter. \n", - "Let's use our `compute_gradient` function to find and plot some partial derivatives of our cost function relative to one of the parameters, $w_0$.\n" - ], - "id": "d7ec2e7ed2eda8c" - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt_gradients(x_train,y_train, compute_cost, compute_gradient)\n", - "plt.show()" - ], - "id": "b6ce17e4e7a6d49c" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, the left plot shows $\\frac{\\partial J(w,b)}{\\partial w}$ or the slope of the cost curve relative to $w$ at three points. On the right side of the plot, the derivative is positive, while on the left it is negative. Due to the 'bowl shape', the derivatives will always lead gradient descent toward the bottom where the gradient is zero.\n", - " \n", - "The left plot has fixed $b=100$. Gradient descent will utilize both $\\frac{\\partial J(w,b)}{\\partial w}$ and $\\frac{\\partial J(w,b)}{\\partial b}$ to update parameters. The 'quiver plot' on the right provides a means of viewing the gradient of both parameters. The arrow sizes reflect the magnitude of the gradient at that point. The direction and slope of the arrow reflects the ratio of $\\frac{\\partial J(w,b)}{\\partial w}$ and $\\frac{\\partial J(w,b)}{\\partial b}$ at that point.\n", - "Note that the gradient points *away* from the minimum. Review equation (3) above. The scaled gradient is *subtracted* from the current value of $w$ or $b$. This moves the parameter in a direction that will reduce cost." - ], - "id": "b0e2daeddf6ed7cc" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### Gradient Descent\n", - "Now that gradients can be computed, gradient descent, described in equation (3) above can be implemented below in `gradient_descent`. The details of the implementation are described in the comments. Below, you will utilize this function to find optimal values of $w$ and $b$ on the training data." - ], - "id": "28097a7c403638d0" - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def gradient_descent(x, y, w_in, b_in, alpha, num_iters, cost_function, gradient_function): \n", - " \"\"\"\n", - " Performs gradient descent to fit w,b. Updates w,b by taking \n", - " num_iters gradient steps with learning rate alpha\n", - " \n", - " Args:\n", - " x (ndarray (m,)) : Data, m examples \n", - " y (ndarray (m,)) : target values\n", - " w_in,b_in (scalar): initial values of model parameters \n", - " alpha (float): Learning rate\n", - " num_iters (int): number of iterations to run gradient descent\n", - " cost_function: function to call to produce cost\n", - " gradient_function: function to call to produce gradient\n", - " \n", - " Returns:\n", - " w (scalar): Updated value of parameter after running gradient descent\n", - " b (scalar): Updated value of parameter after running gradient descent\n", - " J_history (List): History of cost values\n", - " p_history (list): History of parameters [w,b] \n", - " \"\"\"\n", - " \n", - " # An array to store cost J and w's at each iteration primarily for graphing later\n", - " J_history = []\n", - " p_history = []\n", - " b = b_in\n", - " w = w_in\n", - " \n", - " for i in range(num_iters):\n", - " # Calculate the gradient and update the parameters using gradient_function\n", - " dj_dw, dj_db = gradient_function(x, y, w , b) \n", - "\n", - " # Update Parameters using equation (3) above\n", - " b = b - alpha * dj_db \n", - " w = w - alpha * dj_dw \n", - "\n", - " # Save cost J at each iteration\n", - " if i<100000: # prevent resource exhaustion \n", - " J_history.append( cost_function(x, y, w , b))\n", - " p_history.append([w,b])\n", - " # Print cost every at intervals 10 times or as many iterations if < 10\n", - " if i% math.ceil(num_iters/10) == 0:\n", - " print(f\"Iteration {i:4}: Cost {J_history[-1]:0.2e} \",\n", - " f\"dj_dw: {dj_dw: 0.3e}, dj_db: {dj_db: 0.3e} \",\n", - " f\"w: {w: 0.3e}, b:{b: 0.5e}\")\n", - " \n", - " return w, b, J_history, p_history #return w and J,w history for graphing" - ], - "id": "596f5f893cabdacb" - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration 0: Cost 7.93e+04 dj_dw: -6.500e+02, dj_db: -4.000e+02 w: 6.500e+00, b: 4.00000e+00\n", - "Iteration 1000: Cost 3.41e+00 dj_dw: -3.712e-01, dj_db: 6.007e-01 w: 1.949e+02, b: 1.08228e+02\n", - "Iteration 2000: Cost 7.93e-01 dj_dw: -1.789e-01, dj_db: 2.895e-01 w: 1.975e+02, b: 1.03966e+02\n", - "Iteration 3000: Cost 1.84e-01 dj_dw: -8.625e-02, dj_db: 1.396e-01 w: 1.988e+02, b: 1.01912e+02\n", - "Iteration 4000: Cost 4.28e-02 dj_dw: -4.158e-02, dj_db: 6.727e-02 w: 1.994e+02, b: 1.00922e+02\n", - "Iteration 5000: Cost 9.95e-03 dj_dw: -2.004e-02, dj_db: 3.243e-02 w: 1.997e+02, b: 1.00444e+02\n", - "Iteration 6000: Cost 2.31e-03 dj_dw: -9.660e-03, dj_db: 1.563e-02 w: 1.999e+02, b: 1.00214e+02\n", - "Iteration 7000: Cost 5.37e-04 dj_dw: -4.657e-03, dj_db: 7.535e-03 w: 1.999e+02, b: 1.00103e+02\n", - "Iteration 8000: Cost 1.25e-04 dj_dw: -2.245e-03, dj_db: 3.632e-03 w: 2.000e+02, b: 1.00050e+02\n", - "Iteration 9000: Cost 2.90e-05 dj_dw: -1.082e-03, dj_db: 1.751e-03 w: 2.000e+02, b: 1.00024e+02\n", - "(w,b) found by gradient descent: (199.9929,100.0116)\n" - ] - } - ], - "source": [ - "# initialize parameters\n", - "w_init = 0\n", - "b_init = 0\n", - "# some gradient descent settings\n", - "iterations = 10000\n", - "tmp_alpha = 1.0e-2\n", - "# run gradient descent\n", - "w_final, b_final, J_hist, p_hist = gradient_descent(x_train ,y_train, w_init, b_init, tmp_alpha, \n", - " iterations, compute_cost, compute_gradient)\n", - "print(f\"(w,b) found by gradient descent: ({w_final:8.4f},{b_final:8.4f})\")" - ], - "id": "bff23449aa3de468" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " \n", - "Take a moment and note some characteristics of the gradient descent process printed above. \n", - "\n", - "- The cost starts large and rapidly declines as described in the slide from the lecture.\n", - "- The partial derivatives, `dj_dw`, and `dj_db` also get smaller, rapidly at first and then more slowly. As shown in the diagram from the lecture, as the process nears the 'bottom of the bowl' progress is slower due to the smaller value of the derivative at that point.\n", - "- progress slows though the learning rate, alpha, remains fixed" - ], - "id": "9df6b2fd3473f9f8" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Cost versus iterations of gradient descent \n", - "A plot of cost versus iterations is a useful measure of progress in gradient descent. Cost should always decrease in successful runs. The change in cost is so rapid initially, it is useful to plot the initial decent on a different scale than the final descent. In the plots below, note the scale of cost on the axes and the iteration step." - ], - "id": "4dcde8c8bc9c91c7" - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAEoCAYAAAAt0dJ4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeXhU5d3/8Xc2spFkEnZiggsgIglWxZBNAibiwlIVKzUi9an4qBVFLfJ7irEgtKRS7WIpYLWKFlDcQKxFDDtKCCAQIyoqIsYgJCYhAUKWyfn9MWWSMwl7Jmcm+byuqxdzf88snwQv7n7n3Oc+PoZhGIiIiIiIiIjlfK0OICIiIiIiIg5q0ERERERERDyEGjQREREREREPoQZNRERERETEQ6hBExERERER8RBq0ERERERERDyEGjTxes899xwDBgwgNDSUXr16cffdd1NUVHTW73f++eeTm5vbgglPbuHChdx0000A7N27l6CgILd91rRp07j33ntNtUsvvZQtW7ac83sfPnyY/v37c/To0ZM+Ly0tjVdfffWsP2ft2rX069fPVPvFL37B8uXLz/o9RURam+au0+fOucvVq6++yv3339/i73vvvfcybdo0AF566SUeffTRFv8MaTvUoIlXmzlzJtOnT+fpp5+mtLSUgoICBg4cyMaNG62OdtoyMzN5++23W+S96urqzvg1n376KYMGDTrnz54zZw633HILISEh5/xeJ1JbW9ts/dFHH+XJJ5902+eKiLQkzV1mVs5drmbMmMEjjzzS4u/bWGZmJm+99RYlJSVu/RzxYoaIlyorKzOCg4ONZcuWnfA5O3fuNBITE42IiAgjMTHR2Llzp2EYhmG3243777/f6NSpkxEeHm4kJCQYNTU1xi9/+UvDx8fHCA4ONkJDQ4033njD9H7r1683+vTpY6r9+te/Nh599FHDMAxj+vTpRrdu3YywsDBj4MCBRlFR0Sl/jhdffNEYPny4YRiG0adPHwMwQkNDjdDQUOPAgQNGXV2d8cQTTxixsbFGt27djEceecSora01DMMwfvvb3xq333678dOf/tQICQkxNmzYYCxbtswYMGCA0bFjR6Nv377G22+/bRiGYaxZs8YICAgw/P39jdDQUOOnP/2pYRiG0atXL2PTpk2GYRjGjz/+aNx6661GVFSU0adPH+O1115z5hwyZIgxffp044orrjDCw8ONsWPHGtXV1c7jffr0MT799FPnuLnfxZNPPmn4+voagYGBRmhoqPH0008bdrvduOmmm4wuXboYkZGRxtixY43y8nLDMAzjm2++MQIDA42//e1vRo8ePYy7777bCAoKMnx8fIzQ0FCjU6dOzs+75JJLnH+/IiKeSnOXZ81djX344YfGoEGDTLW1a9cal19+uREREWEMGTLE+OqrrwzDaJifnnvuOaN79+5G9+7djVdeecX5uh9++MHIyMgwOnbsaNx4443G7bffbvz2t791Hr/vvvuMv/zlL6f8PUv7pAZNvNZ7771n+Pv7G3V1dc0er66uNnr16mXMnz/fqKmpMf7+978bvXr1Mqqrq43//Oc/xpVXXmlUVFQYdXV1xqZNm5zv0/gffVf19fVGz549je3btztr559/vrF582bjs88+M2JiYowDBw4Ydrvd2Llzp7PROJnGk9zxf/Abe+qpp4z09HSjuLjYKC8vN9LS0oy//vWvhmE4JrnAwEBj5cqVht1uN44dO2asWbPG+Pzzzw273W4sXbrU6Nixo1FcXOx8/v/+7/+a3r/xzzt27Fhj/PjxRlVVlZGbm2uEh4cbu3btMgzDMckNGDDA+Pbbb42ysjKjf//+xssvv2wYhmHs2bPHiIqKcr7nyX4XQ4YMMRYvXux8rt1uN1555RXjyJEjRmlpqTF06FBjypQpzt+Hj4+Pce+99xpVVVXG0aNHjTVr1hgXX3xxk9/jPffcYzz11FOn/H2LiFhJc5fnzF2unnjiCeORRx5xjvft22d06dLF2LBhg1FXV2c8++yzxhVXXGHU19c756dHH33UqK6uNt5//30jLCzMOHLkiGEYhnHLLbcYd999t1FVVWX85z//MTp06GBq0BYtWmTccMMNp/w9S/ukJY7itX788Uc6d+6Mn59fs8dzc3Px9/fnnnvuISAggPvuuw8/Pz9yc3MJCAigsrKS3bt34+vry+DBg0/4Po35+PgwZswYlixZAsDmzZsBuOqqq/D396e6uprPPvsMwzCIj48nIiLinH/OF154gd/97nd07tyZiIgIHn30Ud544w3n8WHDhpGRkYGvry+BgYGkpaVx8cUX4+vry+jRo+nduzc7duw45efY7XbefPNNZs6cSVBQEAkJCdxyyy28/vrrzudMmDCB2NhYbDYbN954Izt37gQcS0369OnjfN6Z/C58fX254447CAkJITIykoceesi0zMcwDKZPn05QUBDBwcEnzN+vXz/y8/NP+XOKiFhJc5eDJ8xdrlznsoULFzJmzBhSUlLw8/PjgQce4Ntvv2Xv3r2AY37KysqiQ4cOXHvttQQFBbFnzx7q6upYtmwZ06ZNIygoiOuuu46UlBTTZ2nOkpNRgyZeq1OnTpSUlGC325s9XlRURExMjKkWGxvL/v37ueaaa5gwYQLjx48nOjraeeHu6bjtttuc//AvWbKEn/3sZwD07t2bp556ismTJ9OtWzcefPBBqqurz+6Ha2Tfvn1kZGRgs9mw2WxkZmZSXFzsPO76M27cuJGkpCSioqKw2Wx88skn/Pjjj6f8nOLiYux2O9HR0c5ar1692L9/v3PctWtX5+OQkBAOHz4MwKFDh+jYsaPz2Jn8Lurq6pg0aRK9evUiPDyczMxMU94OHTqYPvdEwsLCOHTo0CmfJyJiJc1dDp4wd7lyncv27dvHiy++6PwZbDYbR44ccW7mEhgYaGpmj793SUkJ9fX19OzZ03ksNjbW9Fmas+Rk1KCJ10pMTMTf35/33nuv2eM9e/aksLDQVNu3bx89evQAHBtLFBQUsH79el544QU++OADwPFN46k+t7q6mo8//pg33njDOckBjB8/nry8PD755BM2btzIyy+/fEY/U3OfHR0dzfr16ykvL6e8vJxDhw6xa9euE75m3Lhx/PKXv+TAgQOUl5cTFxeHYRin/Nm6dOmCr68v33//vbPW+Pd1MhEREU0mvBP9LlwzLFy4kA0bNrBp0yYqKipYuHChM29zzz/Rz1BZWdki3/qKiLiT5q7mX2PF3OXKdS6Ljo7m3nvvdf4M5eXlHD16lOTk5JO+T+fOnfHx8TE1id99953pOZqz5GTUoInXstlsTJ06lfvvv58PPviAmpoajhw5wty5c1myZAmDBw+mpqaG559/nrq6OubPn09dXR2DBw9m69atbNu2DbvdTnh4OP7+/s5lIl27dmXPnj0n/NzjS0UmT55MQEAAV1xxBQBffPEF69evp6amho4dOxIYGHhaS08a69y5MzU1Naatlu+66y7+7//+j/3792MYBnv37mXdunUnfI/Kykrn8pnFixdTUFDgPNa1a1e++eYbUwN0nJ+fHzfffDNPPPEEx44dIy8vjzfffJMxY8acMndcXBxfffWVc3yy34Xr77eyspKgoCAiIyM5ePAgzzzzzEk/q2vXrhw4cKDJdv5ffPEFcXFxp8wqImIlzV3Ns2LuchUXF8eXX37pHP/85z/ntddeY/369dTX11NZWWlapnki/v7+jBo1iunTp1NdXc0HH3zAhg0bTM/RnCUnowZNvNrjjz/O448/zqRJk4iMjOSSSy5h+/btpKam0qFDB5YtW8bzzz9Pp06dePHFF1m2bBkdOnTg0KFDjB8/noiICOLj4/n5z3/OsGHDAPj1r3/N5MmTsdlsvPXWW81+7m233cbq1au59dZbnbXq6moeeeQROnXqxAUXXMCAAQMYN24c4Lj/ies9XJoTGhrK5MmTiY+Px2azcfDgQR577DESExNJTk4mIiKCkSNHNvkmrrFnn32W++67j06dOvHhhx+SmJjoPHbzzTdTXl5OZGRks5PXnDlzqKiooGfPnmRmZjJ37lz69+9/yty9evWic+fOfPbZZ6f8XfzqV7/i+eefx2az8ec//5k777yTsLAwunTpwtChQ7nxxhtP+lmXXHIJN9xwA+eddx7du3d31jds2MDw4cNPmVVExGqau5qyYu5yNXz4cNM10BdeeCGLFy/mscceIyoqin79+rF06dLTeq85c+bw9ddf07lzZ/785z83ya05S07Gx2ju6wgRkTM0e/ZsKisrLbkfWUFBAePHj2fbtm2t/tkiItJ2DBgwgGXLlnHRRRe57TPq6uro06cPeXl5dOnSxW2fI95LZ9BEpEXcd999vPnmm02WHraGp59+mt/+9ret/rkiItK2ZGVl8fTTT7v1MxYuXMhNN92k5kxOSGfQREREREREPITOoImIiIiIiHgINWgiIiIiIiIewt/qAC1BN/oTERHAa+4rpHlLRESg+XlLZ9BEREREREQ8hBo0ERERERERD9Emljg25i3LW0REpGVYuVywoKCAe+65Bz8/P3r37s0///lPfHx8AJg2bRpvv/02kZGRjBo1ikceeaTZ99C8JSLSvpxq3mpzDZqIiEhrufjii/noo48AuOuuu9i6dSuDBg1yHn/66adJT0+3Kp6IiHghLXEUERE5SwEBAc7HgYGBxMTEmI5PmTKF9PR0duzY0drRRETES6lBExEROQfvvPMOAwYM4ODBg3Tq1MlZf/DBB9m2bRtz585l4sSJ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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# plot cost versus iteration \n", - "fig, (ax1, ax2) = plt.subplots(1, 2, constrained_layout=True, figsize=(12,4))\n", - "ax1.plot(J_hist[:100])\n", - "ax2.plot(1000 + np.arange(len(J_hist[1000:])), J_hist[1000:])\n", - "ax1.set_title(\"Cost vs. iteration(start)\"); ax2.set_title(\"Cost vs. iteration (end)\")\n", - "ax1.set_ylabel('Cost') ; ax2.set_ylabel('Cost') \n", - "ax1.set_xlabel('iteration step') ; ax2.set_xlabel('iteration step') \n", - "plt.show()" - ], - "id": "9ab3e30b473e57d6" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Predictions\n", - "Now that you have discovered the optimal values for the parameters $w$ and $b$, you can now use the model to predict housing values based on our learned parameters. As expected, the predicted values are nearly the same as the training values for the same housing. Further, the value not in the prediction is in line with the expected value." - ], - "id": "e557c848a8191c07" - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1000 sqft house prediction 300.0 Thousand dollars\n", - "1200 sqft house prediction 340.0 Thousand dollars\n", - "2000 sqft house prediction 500.0 Thousand dollars\n" - ] - } - ], - "source": [ - "print(f\"1000 sqft house prediction {w_final*1.0 + b_final:0.1f} Thousand dollars\")\n", - "print(f\"1200 sqft house prediction {w_final*1.2 + b_final:0.1f} Thousand dollars\")\n", - "print(f\"2000 sqft house prediction {w_final*2.0 + b_final:0.1f} Thousand dollars\")" - ], - "id": "f492269c6a06d60e" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Plotting\n", - "You can show the progress of gradient descent during its execution by plotting the cost over iterations on a contour plot of the cost(w,b). " - ], - "id": "d2ecb7dc0ac32a6f" - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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zy94XmFhobC1tRXl5eUiMTFR+Pn5iS5dugghhFixYoUYOnTodb9m8eLFYuDAgUIIIZKSkoSVlVWd7UycOFF4enqKo0ePirKyMnH77beL//73vxc9nokTJwoXFxexf/9+UVRUJAYMGCCef/55IYQQWVlZYs2aNaK8vFycOnVKhIWFifnz59+U/b788svizjvvFAUFBSI2NlZ4enqKDRs2XHB8F6NTp07irbfeEpWVleK7774T5ubmYvHixfoYzv/Orl27VqSmporq6moxd+5c0apVK/13efTo0WLy5MmirKxMrF+/XlhaWoo33njjgjhSU1OFm5ub2Lp1q347nTp1ElqtViQlJQkTExPx3HPPiYqKCrFhwwZhb28vSkpK9DFd7vs9d+5cERkZKbKysvTve58+fa643/nz54vhw4eLsrIyUVFRIbZv3y6EECI/P1+4ubmJr776SlRWVoqsrCxx9OhRIYQQ06ZNE/fff78oKioSGRkZom3btuK333674vt3sfdboahPVGVaoTiPnJwcXF1dMTMzu+j6Xbt2YW5uzqOPPoqFhQWPPfYYZmZmdSqSL7/8Mra2toSFhREWFqavcF7Pti7H2LFj6dixIxYWFpibm1+w3tramldeeQVLS0smT55Ms2bN2LlzZ53naDQaVq5cyaxZs7C2tqZbt26MHj36qm9h//zzzzz//PO0bNkSDw8Pnn/++avS7Wq1WpYsWcJnn32Gq6srFhYWREVF6bc5ZcoUgoODcXR0ZMaMGfptWlhYkJqaSlZWFg4ODnTs2PGq4jyfY8eOERwcrF+Oiopi69atAGzbto0XXniBrVu3IoRg+/bt+tjO50rnODQ0tM7dhksxevRo/vzzTwoLCwFYtmyZ/k7ItRzzQw89REBAAG5ubjz33HOsWLHigufY29sTHBzMvn372LZtG6NHj6agoICSkhK2bt160WO9ntdcivHjxxMWFoa1tTWjR4/m8OHDl3zuqFGj6NixI3Z2drz22mv643Fzc2PYsGFYWVnh5eXF5MmTryjDutr9/vzzz8yYMQMHBwdCQkKYMmXKVX2mk5OTOXHiBC+99BIWFhY8+OCD+Pv713nO+d/ZoUOH4u3tjZmZGU888QQlJSUkJydTXV3N6tWrmTlzJtbW1gwaNOiS5/iHH35gzJgxREVF6beTkpJCcnIyAEIIXn/9dSwtLRkw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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots(1,1, figsize=(12, 6))\n", - "plt_contour_wgrad(x_train, y_train, p_hist, ax)" - ], - "id": "f758c238eb415c01" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, the contour plot shows the $cost(w,b)$ over a range of $w$ and $b$. Cost levels are represented by the rings. Overlayed, using red arrows, is the path of gradient descent. Here are some things to note:\n", - "- The path makes steady (monotonic) progress toward its goal.\n", - "- initial steps are much larger than the steps near the goal." - ], - "id": "d4fa08759d4c0681" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Zooming in**, we can see that final steps of gradient descent. Note the distance between steps shrinks as the gradient approaches zero." - ], - "id": "e763eb94c55dd87" - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAswAAAERCAYAAABvmfF2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdd1yV5fvA8Q8bZSOggIp74kJzopKWO/fMHJUrR5qVDSvtl1lq2nCv0K+jXKlZmiMnmlFmubc4QAHZIPs8vz9uOOwN4rjer9d5yXnOc+7nPoy6zn2u+7oMNE3TEEIIIYQQQmTLsLQnIIQQQgghxONMAmYhhBBCCCFyIQGzEEIIIYQQuZCAWQghhBBCiFxIwCyEEEIIIUQuJGAWQgghhBAiFxIwi2faihUrcHd3x8LCAjc3N0aNGkVAQECRxpw5cybjxo0rphkWTZUqVTh58mSe540cOZIvv/yyUNdISEigV69e2NjY0Lx580KNkV+HDx+mTp06uZ5jYGDA/fv39fd//PFHxo8fXyLXTE5OpmHDhgQGBhZ6/ILy8vLixx9/fGTXy86GDRvo06cPAH5+fpibm2d4vCi/T/lVktcNCwujbdu2WFtbM2DAgCKPVxDjxo1j5syZQMbvc1EU9Pvy448/4uXlVeTrFqfsft5CPEoSMItn1qxZs/j000+ZP38+oaGhnDt3jkaNGuHj41PaU8uWTqdDp9OV9jSyOH36NCdPniQ4OBhfX9/Snk4Wn332GVOnTi2RsY2MjBg9ejRfffVViYz/uBo6dCjbt28v7WmUmH379hETE0N4eDhbtmwp9DhF/Zt92r/PQjxJJGAWz6Tw8HBmz57N0qVL6dy5M2ZmZlhZWTFp0iQGDhwIwJkzZ2jdujW2tra0bt2aM2fO6J9vYGDAihUrqFKlCg4ODsydOxdQq5GzZ89m9erVWFpa6leH8hor/Ypo+hXEkSNHMnnyZLy8vLCwsMiy+p26+vn+++9jY2ND/fr1c1xRDg0NZeDAgZQrV45atWqxefNmANauXcuGDRuYMWMGlpaWTJkyJctzk5OTmT59OhUrVsTV1ZXp06eTnJzMH3/8gZeXF8HBwdjb2zN9+vQsz42JiWH8+PG4urpiZ2fHsGHD9I99++23VK1aFScnJ8aOHUtsbCwAly9fpnXr1lhbW+Pk5MQXX3xBcnIyXbt25cqVK1haWuLg4JDTj1fvxIkTWFhYUKNGDQCGDBmCt7c3oIIiAwMDzp49C8CcOXOYPHlyjmPl9D0eMGAA69atIykpKc/5dOzYkY0bN+rvh4eHY2lpSVhYWLavOScXLlygQYMG2NvbM378+GyvvXfvXtq3b6+/7+Liwttvvw1AUFAQdnZ2ZO5bld/nrFmzhi5dugDQqVMn4uPjsbS0xNLSkqCgIP35HTt2xMrKii5duhAWFpbtaxk5ciRvvvkmbdq0wcbGhoEDBxIdHQ1ASEgIXbp0wcHBAScnJyZMmEBiYmKxXDc2NpaxY8fi5ORE1apV+fbbbwHYtGkTI0aM4MyZM1hbW7NixYosz71y5QrNmzfH2tqa119/nRdffJE1a9boX0/mv9mVK1dSs2ZNrKysaNy4cYY35YGBgXTq1AkrKyt69OhBVFSU/rH032eAI0eO0LRpU2xtbfHy8uL69etA2urrypUrcXZ2xtnZmfXr1wP5+/tOSkpiwoQJ2Nvb06BBA86fP5/h8Zyu+/DhQwYOHIidnR12dnb07t1b/5x///2X9u3bY2trS+XKlfVvPGJjY5k4cSIuLi5UrFiROXPmZPhdmDp1arY/v5x+3kI8MpoQz6Ddu3drxsbGWlJSUraPx8fHa25ubtry5cu1hIQEbcmSJZqbm5sWHx+vaZqmAdqQIUO06Oho7ezZs1qZMmU0Pz8/TdM0bcaMGdrYsWMLNNa9e/f057dv31774YcfNE3TtBEjRmgODg7aqVOntISEBC0xMTHDPA8dOqQZGRlpM2fO1OLj47WVK1dqLi4u+rHd3Ny0P/74Q9M0TRs8eLA2YsQILTY2Vjt58qRmbW2tXbhwQX+dL774Isfv17Jly7RGjRpp9+7d0wICArQGDRpoy5cv18+hdu3aOT531KhRWvfu3bXg4GAtISFBO3bsmKZpmvbbb79pFStW1K5cuaKFh4drHTt21D744ANN0zRt0KBB2hdffKHpdDotIiJCO3XqVL6ulfn7+cknn2hTp07VP7Zo0SLt1Vdf1TRN0z7++GOtSpUq2uLFizVN07QePXpoW7ZsyTJeXt9jTdO0WrVqab6+vrnOS9PU97FXr176+99//73WtWvXXF9zZu3bt9eqVaumXb9+XQsKCtIaNWqkLVq0KMt5kZGRmoWFhRYXF6ddv35dq1Klivbcc89pmqZpW7du1bp3717o53h7e2udO3fWNE3Tbt68qZmZmWUYZ8SIEZqLi4t29uxZLTY2VuvQoYP2f//3f9m+nhEjRmj29vbaqVOntKioKK1Tp07aO++8o2mapgUFBWm7du3S4uLitLt372ru7u7a0qVLi+W677//vvbiiy9qERER2uXLlzUXFxdt7969WV5fdpo2bap99tlnWkJCgrZ27VrN2NhY8/b21s8h89/sL7/8ot2+fVtLSkrSFi5cqFWsWFH/t9yvXz9t1KhRWmxsrLZnzx7N1NRUmzFjRpZ53L59W3N0dNSOHTumH6dp06aaTqfTbt68qRkYGGhvv/22Fh8fr+3du1ezsrLSYmJi9HPK7e974cKFWpMmTbSgoCD9z719+/Z5Xnfp0qVaz549tdjYWC0+Pl47fvy4pmmaFh4erjk6OmqrVq3SEhIStKCgIO3s2bOapmna+PHjtVdeeUWLiorSAgICtHr16mk///xznj+/7H7eQjxKssIsnkkhISE4ODhgZGSU7eMnT57E2NiYMWPGYGJiwhtvvIGRkVGGlcX3338fCwsL3N3dcXd3169UFmas3AwYMAAPDw9MTEwwNjbO8ri5uTkffPABpqamjBo1ijJlyvDHH39kOCc5OZlt27Yxa9YszM3NadGiBf369cv3x82bNm3inXfeoUKFCjg7O/POO+/kK49Wp9Oxbt06vvvuOxwcHDAxMcHT01M/5tixY6lZsyY2NjZ88skn+jFNTEy4ffs2QUFBWFtb4+Hhka95Znb+/Hlq1qypv+/p6cmxY8cA8PHx4d133+XYsWNomsbx48f1c8ssr+9xnTp1MnxqkJN+/fpx4MABIiMjAdi8ebP+E42CvObXXnuNatWq4ejoyNtvv83WrVuznGNlZUXNmjX5+++/8fHxoV+/fkRERBATE8OxY8eyfa2FeU5OBg0ahLu7O+bm5vTr14///vsvx3P79u2Lh4cHlpaWfPTRR/rX4+joSI8ePTAzM8PV1ZVRo0blmTKV3+tu2rSJTz75BGtra2rVqsXYsWPz9Tvt5+fHpUuXeO+99zAxMWH48OFUrVo1wzmZ/2a7d+9OpUqVMDIyYuLEicTExODn50dSUhI7d+5k5syZmJub06VLlxy/xxs2bKB///54enrqx7l16xZ+fn4AaJrGxx9/jKmpKZ06dcLc3JwbN27k+XoAtm7dyttvv42joyPVqlXjtddey9d1TUxMCAkJwc/PD1NTU1q3bg3AL7/8Qp06dXj99dcxMTHB0dERd3d3NE3D29ub+fPnY2lpibOzM2+88UaG39+C/N4I8ShJwCyeSeXKlePBgwckJydn+3hAQACVKlXKcKxy5crcu3dPf9/JyUn/ddmyZfUfIxdmrNxkfm5mTk5OmJqaZjg/89jBwcEkJyfj6uqqP+bm5pbvOWR+Dfl9bnBwMAkJCVSpUqVAY86ZM4eYmBjc3d1p0aIFR44cydc8M4uIiMDS0lJ/v0GDBgQHB3Pnzh2uXr3KyJEj8fX15dy5c5QrV44KFSpkO05e32MrKysiIiLynI+DgwOtW7fm559/JiwsjGPHjuk/xi7Ia07/fcvtdyn1DYKPjw+enp60aNGCP/74g2PHjtG2bdtie0528vv3kdvriYqKYvjw4bi6umJtbc0HH3xASEhIsVy3sL/T9+/fx8nJCRMTE/2x9H9XmV8PwI4dO/Dw8MDW1hZbW1vCw8MJCQnhwYMH6HQ6XFxc9OdWrlw52+vevn0bb29v/Ri2trbExMTo07TMzMywsbHJ12vP7jVl/hnk57rDhg3Dy8uL7t27U716dZYsWQLA3bt3qVatWpbrBAcHExsbS61atfRjffjhhxnSKwryeyPEoyQBs3gmtWrVCmNjY3bv3p3t4y4uLty9ezfDsdu3b+Ps7Jzn2AYGBgUaq2zZsjx8+FD/WOaKC5nHyywoKEif1wlw586dLIGfo6MjhoaG+Pv7ZzuHvK7h4uLCnTt3sn1ubhwdHTE1NeXWrVsFGtPFxYW1a9cSGBjIqFGjePnll/M1z8xsbGwy/A/X0NCQVq1asXDhQho3bkzZsmUpX74869aty3X1NK/vcVRUVIZgJTcDBw5ky5YtbN++neeffx5bW9tcX3N20v8+ZffzTuXp6YmPj49+9dzT05M9e/Zw+fJlmjVrVizPKejPpCCvZ8GCBYSGhnLmzBkiIyP54osv9HnXRb1uYX+nK1SokOX3IfPegvRzi4+PZ8iQIcyZM4eQkBDCw8OxtbVF0zQcHBwwMDDIEKinn1N6rq6ujBs3jvDwcP3t4cOHtGnTJs855/W9qlChQpafQX6ua2pqyqxZs7h+/TqbN29m2rRpXLlyhUqVKnHz5s0s13FwcMDc3Jxbt27px4qMjGTPnj1Ffg1ClDQJmMUzydbWlunTpzN+/Hj2799PQkICMTExLF26lM2bN9OyZUsSEhJYtWoVSUlJLF++nKSkJFq2bJnn2E5OTty8eVP/P/a8xmrUqBEbN24kOTmZ//3vf1y7dq1AryUuLo45c+aQmJiIt7c3Dx8+pFWrVhnOMTIyom/fvnzyySfExcXh6+vLtm3b6N+/v37OuX18O2DAAObPn09gYCD379/nq6++0qcS5MbQ0JDhw4czefJkQkJCSExM5Pjx4/oxV6xYwbVr14iMjOSzzz7Tj7lt2zbu37+PoaEhtra2+tQZJycnAgMDM7zByE2DBg24evVqhmOenp4sW7ZMv1qa+T6o0oAjR47U38/re3z58mUaNGgAqI/sc/ufe9++fTl48CCrV6/O8D3M6TVn5/vvv8fPz4/g4GAWLFhAv379sr1227Zt9SvVDg4OeHp6snLlSjw8PDAzM8t27II+x8HBgYSEhCKVY/zpp5/4999/iY6O5vPPP9e/nqioKMqWLYuNjQ03b97MsAGvqNcdMGAAs2bNIjIykqtXr7J8+fJ8/U5XqVKF2rVrM2/ePBITE1m/fn2ufzvx8fEkJCTg6OiIpmnMnTtX/2mEsbExPXv25NNPPyU+Pp79+/frU4YyGzJkCJs2beLo0aPodDqioqKyTcXJTl5/33379mXBggU8ePCAmzdv8v333+fruocPH+bixYtomqb/nTUyMqJ79+5cvHgRb29vkpKSCA4O5ty5cxgaGjJs2DDeeustwsPD0el0XLx4MV/VdYrj90yIopCAWTyzPvroIz766COmTJmCnZ0ddevW5fTp07Rt2xZTU1N27tzJqlWrKFeuHN7e3uzcuTPDx/I56du3L+Hh4djZ2dG/f/88x/r6669Zv3499vb2nDp1Sp8HmF81atQgOjoaBwcH5s2bx5YtW7INbBYvXkxkZCQuLi4MHTqUpUuXUq9ePUDtTj9x4gS2trbZlmAbM2YMXbp0oUmTJnh4eNCtWzdGjx6dr/ktWLAAFxcX6tevT/ny5fVBT9euXXnrrbfo2LEjNWrUwM3NjU8++QRQed9NmjTB0tKSWbNm6SsQ1K1bl27dulGxYsUcV1UhbTWqc+fOWXJe27ZtS1RUlH5F2dPTM8N9AH9/f5577jn9/dy+x4GBgYSFhelzjv39/XNcvQWwt7fH09OTU6dO0atXL/3xnF5zdoYMGcJLL71ErVq1aN68ub7ud+Zru7i44OjoqF+FrFu3Lqamprmuphf0ORYWFrz77rs0bNgQW1vbQlUvePnll5kwYQKurq5YWFjo6xBPnjyZO3fuYGtry+DBgzPUJC7qdWfMmEGlSpWoUaMGL7zwAm+//XaGihS52bBhA9u3b8fe3p4DBw7Qpk2bHN+AWFtbM2/ePDp27IiLiwsJCQkZ0h8WL17M9evXcXBw4JtvvtG/ic2sWrVq/PDDD0ybNg17e3vq1KnDjh078jXfvP6+33jjDZo1a0bNmjXp2bMnQ4cOzdd1AwIC6NmzJ1ZWVjz//PPMmjWL6tWrY2Njw2+//cbq1aspV64czZo14/LlywB88803WFtb66u8DB8+PMdKJukVx++ZEEVhoGmZ6goJIZ4Yhw8fZty4cVy6dKm0p/JYiI6Oxtramri4OP0bEnd3d3bu3En16tXzPY6npyd79+7FwsIiz3MXLVqEn5+fvhbz3LlzqVSpEkOGDCnciyiC0rx2YY0cOVJfGvFJVa1aNdasWUO7du1KeypCiBKSdcu9EEI8obZs2YK7u3uGTwI+/vhj5s+fr9+QlB/5bV6TnJzMypUr2bt3r/7YtGnT8j/hYlaa136W/Pnnn7i6ulKhQgWWLVtGbGxsiXe5FEKULgmYhRBPha5du+Ln58fKlSszHB80aBCDBg0qkWsaGRlJ2atn0J07d+jTpw+RkZHUrl2bbdu2SdtmIZ5ykpIhhBBCCCFELmTTnxBCCCGEELl4rFMy8tMIQAghhBBCiOKUuba+rDALIYQQQgiRCwmYhRBCCCGEyMVjnZKRXn7bzoon3EtANLAecC3luQDEAueAUym3zE34ygINgGZAKx6POQshhBCiwHJLBX5iAmbxjLBCBczJpT2RFGWA51JuAOHAP6jg+T/AH/gz5bYYqAS0AFoCDQGTRzxfIYQQQhQ7CZjF48UVuAfcBSqX8lyyYwt0SLkBBAOnUQGzL3An5bYVFWw3S7k1B3Lu5CyEEEKIx5gEzOLxUgX4GxWEti7dqeSLI9Ap5ZYMnAdOptxuAsdSbgA1gTZAW6AqYPCoJyuEEEKIwnisG5ekzyWRHOZnxGVgHGAJbAGe5OZZ91Grzn+n3GLTPeYCeKbc6gFGj3x2QgghhEgnt7hTAmbx+BkPXATeAnqW8lyKSwIq7/l4yi083WN2qLzndkBTwPSRz04IIYR45knALJ4sB4HPUPnC3in/Pk1SUzd8Um730j1mgUrb8ELlPsumQSGEEOKRkIBZPFk04G1UHrMn8H88vfm+GirX+QRwGLie7jEL1OtvjwTPQgghRAmTgFk8ee4Do4AYYBLQt3Sn88jcAY4Ah4Ab6Y5boOo8d0QFz7JdVwghhChWEjCLJ1NqaoYh8CVptZCfFbdRwfNhMgbP1qiUjReA+ki/TiGEEKIYSMAsnlyrUV3/LFCNQdxKdzqlxh+16nwAuJXueHnS6kJX5+lNXRFCCCFKmATM4smlAz4FjqIafywG7Et1RqVLQ602H0CtwAele6wiatX5RVTZOiGEEELkmwTM4skWC0wFLgG1gG9QXfSedTrgHPA7qjlKWLrHGqCaqXihaloLIYQQIlcSMIsnXxgwEQhAtZn+HNn4ll4yqqrIPlTwHJdy3ARVpq4j6vsmNZ6FEEKIbEnALJ4Od1FBcwQq7eB9ZMNbdmJRKSx7gX9RaRygVprbA11R3QUl31kIIYTQk4BZPD0uotIz4oD+qK6AEvjlLBCV6/w7GWs8V0YFzp14tnPChRBCiBQSMIuny9/AB0ASMAx4FQma8+MmatV5H2n5zoaottwvAq0Bs9KZmhBCCFHaJGAWT59DwCzUxrfuwFuAUanO6MmRBPgCe4A/UPnPoEr3paZs1EfehAghhHimSMAsnk4+qKA5HrVKOgOpnlFQYaiUjf3A5XTHq6DeiLwIyJ+eEEKIZ0BucWeJbZkKCAjAw8MDc3NzkpKSSExMpFWrVlhaWnLt2jX9ebVr18bLywsvLy8uXLhQUtMRTyNPYAEqoPsTtcocluszRGZ2QD9gGbAWGJJyzA9V83oAMBM4SdpKtBBCCPGMKbGA2d7ent9//52WLVsCYGxszI4dO+jfv3+G8xwdHTl8+DCHDx+mXr16JTUd8bSqByxCNeq4DExClZ571HS6UrhoMasMjAE2o5rFNEelbxxB5YwPRAXWt0trgkIIIUTpKLGA2dzcHDs7O/19AwMDypcvn+W80NBQ2rVrx9ixY4mLi8vyuBB5qggsBGqiWkhPBK4WcczoaNi4Ef74A/LKWtq/H2xsoFo1WLUKkpIyPn7hAtStC61bw3//FXFij4Ax0A6YA2wCRgGVgNCU+yNQq/kHgYRSmqMQQgjxCJV6FVsfHx+OHj2Km5sbK1asKO3piCeVPfA14IFKy5gCnCrCeKNGwdChKsh1d4fPP4fQ0OzPXblSBdg3b8Lo0eDqCt98k/b41q1w6ZIKvlu3hp9+SnssKgqmT4d58yDhMYw+HYGhqHSNRai8ZnNUfefPUCkbi1DtuoUQQoinVKkHzPb2qghsnz59OHfuXCnPRjzRLIAvgQ7AQ1Rjk1FzoGZN6NNHBa45fYqhabB9O7z+OvTsCfv2pT124QJ89BE4OsKff2Z8XlgY7NqV8VhQELz1Fixdqu4PHgxWVurrhw+hXz+wtoaICBVsz54N06bBmDF5r2aXFgNU5Yx3gK3AZKAGEAlsA14H3gB2ATGlNEchhBCihJRqc+GEhAQ0TcPMzIzjx49TvXr10pyOeFIEBMDx41CvHtSvn/ExE2A64IDKxV0zC5Kj4do12LEDjI2hfXsVEBume794+jT07Zv7dXU6labRokXaMUPDnIPcgAC1arxgQdZAPSoKJkyAgQPTjq1dC7VrwwcfQGQkHDgAbduqQP1xYgH0TrldAX5FNUa5lHJbgmrF/RJQu5TmKIQQQhSjEisrl5iYSNeuXTl16hQeHh7Mnj2b+fPn4+PjQ9WqVZk2bRotW7aka9euWFpaYmdnx/r167FKXYlDysqJHLi7w/nz6uvq1aFNG5gyBZo0yXje0lswoSZoiVnHWL9epVykunxZBeC5bd5zdIRz58DJKePxzp0zrkibm0OvXrBhg8pZbto0+/FGjFCB8c6dWa/bt69K3ShXDv7+G6pUyXlej4M44BiwG5WukaoW0BO16i8l/4QQQjzGpA6zePxoGsTGQpkyYJBHh4zwcPD1hatX1W3FCvXczE6dAg+PtPvHjkG7dlnPMzRUAXKNGhmPnzunUi7s7WH3brWBD9T9L79U6RqG2WQxbdoEr7yicpenTlXnWViox2Ji1Crx6dNq41+bNhASAsOHq5SN9IF2DhJr1+beK6+QHBeHiYMDJo6O6pbytamjI4bm5nmO88jcRqVm7AWiUo6VRdV0fgmQD5KEEEI8hiRgFo+XpCTo1k1Vl0jNL+7ZE1q1yhqQXryoAs6QkLzH3bABXn457b6mwQsvwMGDacesGsK3G+BV99zHCg+HGTNU9Ys33wQHh9zP1+myD6ZTxceDWaa+0zNnwqef5j5uigfALVSsGUXWPXZGlpaYlC+PZaNGWDVvrm5Nm2JsbZ2v8UtEPHAYFTyfT3e8Hipwfh5pxS2EEOKxIQGzeDxomtoQd/o0dO2a9XE7O7h7F8qWTTu2bp1ajc1L585qVThz0Lpjh8oTNjODDvMgYgwYGKrSaMMp/W2vV66ofGYbG7C2RvfeexiuWZPn0+5XrcpdKysSg4NJfPAALTGbtBMDA8rWrYtV8+ZYpwTRFg0bYmhiUvyvIy83UIHzftI2BVoD3YBeQIVHPyUhhBAiPQmYxaOVnAx+fmp1+NKljP+G5dGK79df1epzqrg4mDxZpVBUr67SKM6fV6vJAJUqwZo10KFDzmMGBqpg3MQUtgDLAR3QFtWQ4zHJrY25eJFrL71Ew+vXySNJRb0xOHQIWrRA8/UluVo14sPDifr7b6J8fYny9SX6v/+yBNJGlpbYPv88dp07Y9+5M+bVq2OQV0pMcYpFrTrvQG0YBFWBoxVqE2FTSv9NjBBCiGeSBMyiaPbtgx9/VBUcevaEOnWyzzuOiVGl0bZtUykIBeXmBtevg5FR7ueFhal0BltbVb7N1rZg1/EF/g+10lkN1dWuYsGnW5ySIiI46eZGckQE9jVqUHvwYEwdHSExUVXm+OefrE8yMVEbCk+eVJsC//wzw4ZEXVwc0f/9R5SvL5G+vkT9+SexVzN2dDGrVAlbLy9svLyw9fLCvGrVRxNAa8BFVOB8GEiN612BHkAXoIA/ViGEEKIoJGAWRWNnp3J6U1lbqxSITZsyBs6//ZZ9qkV6lpZq81t0tFpxBlXq7dNP4b338g6Wi8tt4CPgDmqFeSrwwqO5dHYSw8I4YW8Phoa0CQvLmHt8/XrWDYrZ6d5d1YTOJeCNu3OHsP37Cdu7l7DffycpU264WeXKlOvenXK9e2Pr5YWhqWlhX1L+haFK0+0CglKOmQBeQD+kNJ0QQohHQgJmkT+aBv7+qlrE+fNp/546lX25tZUrVUe8VOHh0Ly5qmRRvrwKjFNvdeqof11dVUDn6wuDBoGzM3z3HTRr9uheZ6oYYB5wJOV+V2ASpZai8UfFiiT4+/PclSuUrVkz7QFNUyv3P/ygVu4zt95O7913VVm7339XDVHat8/xVE2nI+b8ecIPHSLi8GHCjxwhKV03QyNra+y7dcOhVy/sOnXCJKXJUIlJRq3+/wz8iVqFBtUwpS8qhaYU0q+FEEI8GyRgFlkFBaUFxam38+dV97n8On5ctXpOT9NUN7vUsmqPOw34BdXeOQFwQ6VouD36qZzt1o3QPXuo8d13uE6alPOJmqYqf7yQx5K4tbWqA53PGs6aTkf0P//wYOdOQnbuJObs2bQHDQ2xbtEC+65dKffSS1g0alSyqRsBwE7UynPqJkE7VLpGD8Aph+cJIYQQhSQB87MsPDxjYJz6dXBw4ce0t4fvv1fNOZ4WN1GB8i3AHHgL6PRopxC8dSsXBgzAuFw5ml+9iomdXc4nnz+vGrjkpXVrlSrz00+qhF/mNzi5iL1xg5CdOwnZtYsIH58MGwjL1KyJ48CBOA4ahIW7e8kFz7HAPibOZs4AACAASURBVFSus1/KMUPUJsE+gAfkvUNSCCGEyJsEzE+Tn35SH7c3aaKqSbi4ZH/enTsweDCcOFGw8W1sVCDm7q7aTru7q1JvqaXd+vVTqRi5BXNPqljga1TpM1Alz97kkdUK1jSN/zp0IOLwYVwmTqTmwoW5P+HECVXLOjFRlabbsQNu3856nqurSrUB2L4devcu8NySoqIIP3iQ0N27ebB9O4np3nCVrVsXh/79cejTB8vGjUsmeNaAM6h0jaNAalZKVVSec0fUGx0hhBCikCRgfloEB6sAOX0Oq4ODCmbnz8947qJFkNvH+mXLpgXE6f9NzTHO7MgRVZWhVau8O/M9yTRUe+dvUZUbqgEzgMqP5vLRZ89yqnFj0DQa7NmDfefO+X/yG2/AsmW5n2NvD2fOqJ9zIWlJSYQfOULw5s0Eb9uWYeOgWeXKOPTujdOQIVi1aFEywXMoKlVjJ5B6aStUDnpPVKUNIYQQooAkYH5SRUer9IkzZ9Tt33/VqmJ2P7LTp6Fx47T7t2+r2sR37qjNdukDY3d3VcItt850z7prqBSNu6iVy0mogOwRvFe4NWsWfh9/jImDA01Pn8asYj5r3v3zD7z2mmqGkpiY8+bAWrXg6FH47DNVM3v27EJ/YqBLTCT80CEebN9OyM6dJNy7p3+sTM2aOL3yCuVfeYUy1aoVavxcJZJW0/lCyjEDoAUqXaMZUtNZCCFEvknA/LhLToYbN9IC4zNn4OxZVU4sPwwNISBAVabILK+WzSJnMcACILWzdlvgbaCEfxU1nY6zXbsStm8f1m3a0OjgwcKVd3vwQH0ikV0XwDJlIDZWfZ2PcnT5nXfUX38RvHkzQRs3knD/vv4x69atcRw0CMf+/THLKY2oKC4D21E/q/Q1nfuhajo/Js1phBBCPL4kYH6chIamBcSpwfG5c6qyRGE4O8PmzeDpWbzzFIqGymn+FngIOADvozrSlaCE4GBONWlCgr8/FV59lVqrVxc8vSEpSW308/PL+9yFC2HiRBVcx8eretlFoCUnE/b77wSuW8eDn35Cl/r7bWCAjacnTkOG4DRkCMYFbTqTl3BUSs3PQGDKMUvgJdSqs2PxXk4IIcTTQwLm0pCQoNo5pw+Mz5xJ23yVH0ZGqn5xw4bq1qCBqok8Y4Z6fORIlav8pJRwe5LdA2YD51LuDwReB0qwr0fUqVP827YtuthYqs6ZQ+Vp0wo+SEyM2iQaG6uC4aNH1RuszOUDDQ1Vref161Ud5+3bi+1NWHJ0NCG//krwpk2E7N6NltIF0tDcHIe+fanw2mvYPv88BsX5SUgy4INqhX4+5ZgR8DzQH2mGIoQQIgsJmEuSpsG9e1kD44sXs/8oPCcVKqiAODU4bthQ5R6bZSrRoNPBzp0q/aIAJcJEMUgGNgBrAR1QHfiEEt0QGPzTT1zo1w+Lxo2pOGUKFUaMKPqgbm7ZV9NIz9VV1XAuV67o10snKSqKkJ07ub9mDeG//64/blapklp1fuUVLBs0KNZrcgEVOB9F/dwA3FErzu0A4+K9nBBCiCeTBMzFTdNg7Vr43/9UcJypvXCuzMzU5rv0gXGDBuAknRieGBeAz1HNNcyBiagSdCW0IfDe999zZdw4SEyk+tdfU3HKlKIN+OWXMHOmSr3ITZcu4O2tOjE2bgwDBhRrhZQ4Pz/ur13LfW9v4m/d0h+3aNAAp1deocLw4ZhWqFBs1+M+8BMqZSO1GYojasW5OyAf1AghxDNNAubidvasCnTz4uaWMTBu2BBq1ABjWdJ64j0EviGtZnNbYCpQzCm5qe7Mm8eNlJSMiu+8Q7U5c4qWwhAXp9I0EhJUucIWLbLPo3dwUJsHQb1BHDas8NfMgabTEXniBIHr1xO8eTNJYWEAGBgbU653b5xHj8auY0cMjIyK54IPUc1QfgLupByzQHUQ7It0ERRCiGeUBMzFzd9f5RZHR6v7VlZZ0ync3VUTEPF0248KnB+iguUpQPuSuVTgunVcfu01tKQknIYMoba3N4aZU3YKq04dlXOfG0tLVdqwYkW4dUuVpytmuoQEQn/7jfve3oTs2qUqyABmFStSfvhwyo8YQdniuq4O+BPYBPyXcswQlaYxipzrOWvA3pSvuxTPVIQQQpQ+CZhLgr8/XLigVoylpvGz7T4wFzidcr8DqkNgCfzKhu7bx4V+/UiOjsbGywv37duLp9LEqVNqA2lYmFp1PndO1fDOrHx5sLaGq1dh3DhYsqTEGtnE+/tz39ub+97exN24oT9u3bo1FUaOxHHQIIytrYvnYpeAzcCRlPsbgJyyQSKAE6ic6ABgAtAcFUg/xT19hBDiaScBsxAlTYfqPLcCiAPsgHeAEtiXGf3vv5zt1o2Ee/coW68eDfbswbxyMe88vHMH8jNmCaVppKfpdET4+BC4Zg1Bmzeji1EJyIYWFpQfNgzn0aOx8vAonosFo974dMrn+amB83uoYDkaVcZOCCHEEye3uLPElkUDAgLw8PDA3NycpKQkEhMTadWqFZaWlly7dk1/3oYNG2jdujU9evQgMjKypKYjRMkyRFVdWAU0BMKA6cB8ILZ4L2XZuDFNTp6kbL16PLxwgX/btCHm/Pm8n1gQLi6QnyB07FjVZfKvv1TnwIKUTcwnA0NDbNu1o/b339P6/n1qr12LTfv26GJiuLdsGf80bcqppk0JWLqUpMzl8grKkfwFywkp//qjNn7eQTVOeQv4v5TjQgghnholtsIcFxdHbGwsffr04cCBAxgZGREUFMR7773HRx99RI0aNUhMTKRDhw4cOnSIbdu2cfv2bd599139GLLCLJ5IOmArKnhOROXCfgjUK97LJIaFca5nTyJ9fDC2s8P9l1+wKc5SgzqdKo8YF6dKJH71FWzblvU8Y2NV/SUmpsTK0WUn5vx57q1YQeC6dfqNgoZlyuA4cCDOo0Zh3aZNwZu95CZzysU14DNUkPw/oAnQEfWztwWGF9+lhRBClLxSWWE2NzfHzs5Of9/AwIDymVo3X7lyhQYNGmBsbMwLL7zAyZMnS2o6Qjw6hqjGJkuBaqjVxknAciCPSm4FYWJnR8N9+yjXqxdJYWGc6diRoB9+KL4LGBqqEohNm0LLltCkSfbnJSWpYBnUCnPXGvBzNzgyCf5ZADd3Qch5SCrepXaL+vWp8e23tAoIoO7Gjdh26IAuNpbAtWv5t21b/q5XD/+FC0kqrk+uUoPlX4EZqDdEY1ANUR4AwwAX4AVUakchm3cKIYR4/JRqfbPw8HCsUzbt2NjYEJaySiTEU6E6KmhejVp1/BHVfe4doFHxXMKoTBnqb93K1fHjubdyJRdffpmwgwep8e23GJUtWzwXSTVliqoIc+mSWnG+cweOH0+rFpPqr3D4Yo9KS7kDDEatvgJYuIB1NXBoDK7twLktWBSt1rKhubm+1Xbs9evc//577nt78/DSJa69+SY3P/yQ8sOH4zJhAhb1CrnMrwGHUHnq1VDl56qgNnZOQqXjpLoNBAHF/O0XQghRekq1tIOtra0+bzkyMhLb4tjtL8TjxBR4A1gIuAF3UaXnviateUYRGRgbU3P5cmouW4aBmRn3V63in+bNiz+v2cIC3nxTVcZYuRJ++w2mjsv+3JPAZdQq63pDiK4MhsYQEwD3fODsIvhtIHg7w/o6cHAMXF4PUbdVY6BCKlO9OlU//5yWt29Tb9s2bLy8SI6OJmDJEv6uX5//OnbkwfbtaElJBRtYh/rZXUNt6qyICpbvAlFkDJg3AZ3TPU8IIcQTr1QD5lq1anHu3DmSk5M5cOAALVu2LM3pCFFy6qEqaIxAfYT/M/AacKp4hjcwMMBl7Fg8fH0pW6cOD8+f55/nniNw/friuUB2Yu5D5GL1enKToIONNtDzBtx9E5LfgxafQaUXwcQCwi/DhZWwfxisdQNvF9jdB86tgOiAQk3NwNgYx759aXzoEM3OnsV53DgMLSwIP3iQ8337crJKFW5+8glx2ZXOy44RKid5K1AJeBtVg/sBqs12Kl/UhsAOKfel2qQQQjwVSmzTX2JiIl27duXUqVN4eHgwe/Zs5s+fj4+PD1WrVmXatGn06tWLdevWsXTpUuzs7Ni4cWOGJGvZ9CeeSjdQdZtT+4T0AsYCZYpn+OSYGK5OmEDg2rUAuL75JtW++gpDE5PiuUCq6LuwphJEGULjH8HYFiIi4MMPVZ3mzGxs1OOgVqnfeAOSE+HBafA/AgFH1epzfHjG5zk2haovQdWeKpWjkBv5kiIiuL92LQGLFxN75Yo6aGSEY79+uE6ZgnXLlgXbJBiKSrv4ANUlsCwqv9kT1dBER1rAnID6tEEIIcRjS+owC/G4SQZ+ANYCSajNYu8CjYtneE3TuLdiBdcmTUJLTMTa05N6mzdj5uxcPBdItaYyRN+BIWehXMpS67BhkNfKtrm5apZSr15aCoaBgfo64poKoP12wZ39GTcLWlaEKj3UzdVLrVAXkKZpRBw5QsDy5TzYulWfnmH13HO4Tp6MY//+BeugeBLV9MQaFTg3y3xB1Bui8sDLQN0CT1kIIcQjIAGzEI+ra8AXqFVngG6o4KqYGthFnjzJ+f79SfD3x7RCBer+8AO2Xl7FMzjA3iFw9UdoNh1azlLHLl+Gjz8GPz+1OTAgAIKCsj7XwQHmzoUPPlDt5Ddvhsz7GJJi4e5BVWnDb5fKgU5lXFatOtcaApU7g1HB24TH372L/5Il3Fu+nKTQUABMHB2p8PrruIwdi3mVKvkfLJbsPyW4BYxGlRgEVad7ENASSdkQQojHiATMQjzOEoGNqHbMiagugeNRNX2LoYxwQmAgFwYPJuLwYTAwoNK0aVT5v//D0LQYcgQCjsFP7cDQBAadhnL1s54TEgJOTqquc2apq8oAgwfDxo05p1xoGgT/o4LnW7sh6K+0x0xtoHpfqDkEKj6vNhgWQPLDhwSuX0/A4sXEnDmjn5t9t25UfOstbDt0KFpN51BU/vPPpG32dAMGAC8i6RpCCPEYkIBZiCfBbWAB8F/K/WbAVKAYsii0pCT8Pv2U27Nng06HZePG1NmwofBl1tI7NA7OL4fyLaCfT9ZgVdPA0xNOnMh7rDVrVL3nn3+G4cNzb88d6QdXN6kV7gf/ph0v4wjV+6sA2vV5MMxrV2L6qWpEnjhBwNKlBG/ZgpagWvpZNGpExSlTcBo8GENz83yPl0UMKs95G6r0HKg3SAOAnkDBM0yEEEIUEwmYhXhSaMAeYBmqXJk5qjlGL4rl4/uI48e5NHw4cTduYGhuTvUFC3AeN65oq6fxEbCxPsT4Q5N3oM28rOdoGly4ALGxkJAAvr5qc2BsNs1MUjcHOjrCmTNQIR91mkMvpgTPP0D4lbTjFq5QZzjUfRVsaxboZSUEB3Nv+XL8Fy0iMTAQABMHByqMHo3LuHGY5xbM5yUJVdd5E3A95ZglqjxdP1TJOiGEEI+UBMxCPGnCgO+Awyn3GwLTUG22iygpKorrkydz39sbgHI9e1J79WpMHBwKP6j/UdjZEXRJ0GmjyivOTUCAaqOdly5d4NdfVdfB/NA0tdp8bStc2wQR19Mec26jAucaA8HUKn/jAbq4OIJ++AH/hQuJPn1aHTQ0xKF3b1wmTsTWy6vwbzg04C9UOk5KJgjmwEuobpFF+JEIIYQomNziTqOZM2fOfMTzybf4+LQ+wuZF+RhUiCdNGcAL1VXuP9TGsV9QOc11yLv2cS4Mzcxw6NWLsnXrErZ/PzFnzhC4fj2WjRtTplq1wg1q7QZm5VRu8a3dUKE1WFfN+XwrK7XpLyxM/WttrVaVM+c5X7umbn//Da+9pp7n4ZHzuAYGYOEMlTpCw0nqX4CIqyp4vvkz/PcthF4AQ1M1xzxSNgyMjbFs0gTnMWOw69SJ5IcPib14kYfnzxO4di0Ptm/HyNKSsnXrYmBUwB+MAepNUFegKSrX+RZwAdgBBJLWJEUIIUSJyi3ulBVmIR53EcBiVKMMgMrAWxRLCbq4W7e4NGwYEceOFX1DoKbBodFwYTUYGEHbb6HB+PzXTV60CCZNyv0cAwM4dAjaty/Y3BKi4doWuLRG1XtOVcYJ6r4G9UeDTf7fLMTfu8e95csJWLZMn65h6upKxcmTcR4zBuOi/PfqKmrF+ShqBdoAVdt5KFC78MMKIYTInaRkCPE0+Af4BkhtTvciqu22XdGG1ZKTufX559z69FPQ6bBo2JDaa9Zg1aRJwQfTJcPJD+Gfuep+vVHQflH+Sr6dPKkC4ZSNdjmqWBH+/Rd+/x3i42Ho0PynbABE3FD5zlc2Qui5lIMGULkTuI9TNZ7zWWVDFx9P4IYN3J0/n4cXLgBgZGlJhdGjqTh5MuZubvmfV2a3UfWd95FWkq4FMAzIphiJEEKIopGAWYinRQLwI7AeFURZoYLmLhS5BF36DYEGxsZU/vBDKk+fXrjV5ssb4eDrkBwHzp7QbQeUKZf384KC4Nw5Vb85OhpWrYLffst6np2dSucAmDIFvv664HPUNLh/Es4tU/nOySkfxZWtALWGqs2CDg3zN5ROR+jevdz96ivCDx5UB42McOjTh4qTJ2Pdpk3h85xDgC3ATiAu5VhjVBOUZhRL6UEhhBASMAvx9PFHrTb/nXK/CfA2Rd4UmBwTw80PP8T/u+8AVU6tztq1WDZqVPDBgk7B7t6qhbZNTXhpN9jWKNgYn38OH32U93m7d0PXruprTSt4++zYELj8Pzi3HMIvpx13aAwNJkCtl8GkbL6Gijp9mrvz5xO8aZO+i6B1q1ZUev99yvXogUFBVsPTi0DVct5OWi3nmsBgoD1FymsXQgghAbMQTycNOAAsAiIBM9TH9QMBk6INHX7kCJdfey1ttfnjj6n8wQcYmhRw4Gh/+KWHqlxh7gDdd4Jz6/w/398f3nxTlZdLTITwcLU5MDMLC1i4ED79FKpUUV0DnZwKNldQwXbgn3Dpf6q+c3zKKraZvcpzdh8H1lXyNVR8QAABS5cSsGSJvotg2Xr1qDRtGk5DhhS+cUw0sAu16pwyPVxQK86dKPLPXgghnlUSMAvxNAtHbQo8kHK/EjAZVXWhCJJjYrjx/vsELFoEgFWzZtRZt46ydeoUbKCEKNg7CG7tUbnMHb6H2i8XfmJ16qj227np3h127Sr4SnN6yfFqo+B/36XrKmgAlV6E+qNUW+585GYnR0dzb9Uq7s6fT/zduwCYOjvjMmECLmPHFr6cXwLwG6qWc2rH8PKoFeduSPdAIYQoICkrJ8TTzBxoBzQALqI2Be5DlSerT6G7xxmamlKuWzds2rcn/PBhHl68yP3VqzGytMTquefyn1pgZAY1B0HsAwg8CTd+guQEcG0PBoVIT/D1VSvOubl6FcqVU/Wely2D+vVVQ5SCMDRWOcz1R0PlriofO/yyaoxybYvKfX4YCNbVwDzn/GxDU1OsW7bEZeJEylSvTuy1a8TduEH4wYP4L1xI/J07lKldG5Ny+cjxTs8IVTWjN6pyyi1Uqs6fqEDaEFWWsGBdwoUQ4pklZeWEeFYkoD6qXwfEo+o5j0R1jytCjmtSZCTXJk8mcM0aAKyaN6fWypVYNszfpjhApTucWQQ+U0DTqUYiL25QNZwLQtPgjz8gJESlaVy8CF9+qTYJZmZoqGo7V6miKmsU9b8jcWFweT1cWAkhZ1MOGkDVl6Dhm1CxQ56r2pqmEXbgAP5ff03onj0pQxjgOGAAlaZNw6ppIT8a0AHHUD/71H4t0nZbCCHyTVIyhHjW3Eelafik3K+B2hRYwGyKzB7s2sXVN94gwd8fA2NjKr33Hm4ffYRhQT4BunsY9g+FmAAwtYHnV0DNgYWfVGSkWk1O2WCXo6FDYd06uHFDNUApTI5zKk1TaRrnlsHlDaBLKYVnWwvc34A6I8A873p/MRcvcnfBAgLXrkVLVLXjbDt2pNK772LXqVPhKmtowAlU4JyauZLadrs/YF3wIYUQ4lkgAbMQz6o/gG9RHeMMUB/fv4oqR1dISZGR3PzgAwKWLgVNo0ytWtRauRLbdu3yP0jsA1V27ubP6n7d11SjE1PLwk1q5Up1e/gQ4uLg1q3sA2gvLzh8GGxtYd8+eO65wl0vvYeBqrrG+RUQ46+OGZeBmkNU4xanvFeM4+/e5e7XX3NvxQqSU1bKLRo1otI77+A4aFDBN1tC9m23y6I+bZDAWQghspCAWYhnWSywFpWqoUO1WR6Dqt1cyApnoOo2Xxk9mocXLwLgPG4c1ebOxdgqn9G4pqkVWp+pKj/YthZ02QwOhShhl9nEibB4ce7nVK8Op0+r1ebioEuCm7vg3FK4sz/tePnm0HgqVO+XZ0OUpPBwApYtw//bb0m4fx8As0qVcJ0yBZcxYzCyLOQbirPA/0grQ1iWtBVn28INKYQQTxvZ9CfEs8wE1eCiLeCH6iB3ArX6WAMoZJEG88qVcR41CgMjIyJPnCDK15egDRso6+5OmerV8x7AwADKPwfV+sC9YxB2ES6uAQtXcCxEl8H0dDrYsSP3NI2wMLV5MCREteS2t4d69Qp/TQNDsK8LdYZBzZfB0ATCL0HEdbi+VeU+GxiBfX0wyr6EhaG5OTaenrhOmoR51arEXrlC3I0bhO3bR8CKFWhJSVg2aoShWT46J6ZXHlVyrikQjNogeBbVDCUCqIrkOAshnnmy6U8IoWjA78AyVAc5A6AH8Dpq5bmQYs6d49LIkUSfOgWA0yuvUP2rrzAtXz5/AyTFwtFJcGG1ul/3NWj3HZgUIYoLD1d1nBMTVVDcqxfExGQ9z8BArXYbG8OJE8WTppEq8SFcWgv/zleBM6iazg0nQIOJUDb3PGpNpyPk11+5PXs2USdPAmBsa4vrm2/iOnkyJvb2hZvXeVS3yJMp902AzsBQoELhhhRCiCedpGQIITKKQaVpbEOlaVij0jS6Uug0DS0piTtffYXfzJlo8fEY29pS9YsvcB4zJv8l6C54w5HxKkXDuhp0WKkqTxRVfDy4uqrAOTc1asBff8GePaqiRrduRb82gC4ZbuyA0/NUYxRIKbc3WAXO5Zvl+nRN0wj//XduffYZEUePqqdbWuI8ZgyuU6ZgXqlS4eZ1DRU4H0W9mTJCpeq8ggTOQohnTqkEzAEBAfTo0YMLFy4QHR2NsbEx8+bNY+fOnbi5ubFmzRpMTEyoXbs2zs7OACxZsoR66T4SlYBZiBJ2E1gInE65Xx/V9KRm4YeMvX6dqxMnEvbbb4BqC11z2bL8l6B7cAb2D4OQlJ1q9V6HNl+BWRGTbc+dgx9+UKvMCQmwfz9cu5b1PEdHCA5WX3/7reo0WFw0De75wD/zwO8XVJSKKrHX9ENw65pnWbrwo0e5PWsWYftVnrSBsTFOQ4ZQ6f33sShsSsltVOD8O+oNlDHqzdNQVDqHEEI8A0olYI6LiyM2NpY+ffpw4MABwsLCGDFiBLt372bOnDlUq1aNAQMG4OnpiY+PT7ZjSMAsxCOQmqaxBNVq2QDVKW4Uhd4QpmkaD7Zu5drkySTcuwdGRlScOpUqM2ZgZJGPNIvkRDg9F3z/T5VsK1sB2i+B6n0KN6HsfPklfPBB7ueYmqoV54YNVbBblM6BmUVch7NL4eJqiA9Xxxwagcf7UKN/nhsEo/75h7tffUXQ5s2QnKyv5ez28cdYuLsXbk7ZBc7dUG23JXAWQjzlcos7i7BHPnfm5ubY2aXVIfX19cXLywuAF154gZMp+XihoaG0a9eOsWPHEhcXV1LTEULkxAB4AVVFoT/qvwq/AsOA7UByIYZMCd6eu3gRl4kTQafj7rx5/O3uTujevXkPYGQCzabD4H+hQmt4eB/29IUDr6pW28Vh8GDw9ARLSzAzyz4YTkiATp1g7lyws4Nhw1ROdHGwqQ6eX8GI22oFvawzPPgP9g2B/1VTq9BxYTk+3crDg7obN9Li2jVcxo/HwMSE4M2b+btBA8716kXkyZM5PjdHlYEPAW/U74QO+Bm10jwP1UlQCCGeQSUWMGcWHh6OtbUq/GljY0NYmPofgY+PD0ePHsXNzY0VK1Y8qukIITKzBCYA36OqakQD36Fym/8r3JDGNjbUXLiQJn/+iWXjxsT5+XG2Sxcuvvwy8QEBeQ9gXxf6HYO234GROVxaAz82hvuFCAYzq1IFjh2DqChVuzkxUQXFmQUGwvvvQ0QErF8Pn35a9GunZ2oFTd6G4TfAa7kqrxd9B05MgzUV4fB4CLuc49PNq1Sh5uLFtLh+HddJkzA0Nyfk55853aoV/z7/PKH79lHgDxIrA9NJC5w1YDcwHBU43y/kaxVCiCfUIwuYbW1tiYyMBCAyMhJbW/VZr33KLu8+ffpw7ty5RzUdIUROKgNzgc9QG79uAFOAWcCDwg1p/dxzNPH1peqXX2Jobk7QDz/wV+3a3Jk3D11eK7YGhtBoEgz6BxwaQ+QN2OYJf34CScX4qZSREdSvn/1j6QPO2bPh0CH45ht47z1VjaM4GJuD+xgYehFe2g2VOkHSQ1XXeUNd+G0gBJ/O8elmFStS47vvaHHrFpU//BAjGxsiDh/mbOfO/NOsGcFbt6LpdAWbU2rgvBa1GRBU4DwM+BoIKswLFUKIJ0+JV8nw8vLiwIEDhIaG8uqrr/Lrr78yd+5cqlSpQu/evdE0DTMzM1atWkVISAjvvfee/rmSwyxEKYsHfgQ2AglAGdQqY18g+1LCeYq9eZPrU6cSsmMHAGXr1aPmkiXYtm+f95OT4+Hkx6raBKi0hnYL1Wa54pCYCAcPqnbbiYlqBXrFClXXOR3NwACDlP90nm7Ygd2r9tPO1ZDm5cHMqHimAkDIefjvW1WaLrX9dqVO0PR9cPXKNac6KSKCgGXLuPv11yQGBgJg0aABbjNn4tC7d/4rl6R3FxU8/45adU7dHPgyUlVDCPHEK5VNf4mJiXTt2pVTp07h4eHB7NmzOXz4MLt27aJy5cqsWbOGsLAwxThz5QAAIABJREFUunbtiqWlJXZ2dqxfvx6rdF23JGAW4jFxD7UpMHV/rgswDvBE5UAXQuhvv3Ft0iRiUypVOL3yCtXnzcO0Qj4ir4BjKlUhNOVTqWp9oO03YFW5cJPJybFjkI+W39N6z2Fep2lUjr5PvUqWNK9mSTsXaFkeLArR1TqLaH84PR8urIDElFrSTs+pwLlqLzDMOUpPjo3lvrc3d774gvi7dwGwbNwYt08/pdxLL2FQmI2MfsA64BAZy9G9jPrdEEKIJ5DUYRZCFA9fVOB8K+V+Y2AikI/GftnRxcVxe+5cbs+ejRYfj5GNDVU//xyXceMwMMpjqTY5Ec58B74zITEajMtCi8+g0eRcA8iCTVAHM2bA3r2QmEjogyis/W9irGVdcd7dajDdT/zAHduKdJhykGtONTE2hFbl4ZVaMKg62BSwQV8WcaFwdjH89x3EpeTH2NZSrbfrjFBpHTm9lPh47q1eze3PPychJX/csmlT3KZPp1yvXoVbcb6NCpwPojYIGqJWnIchVTWEEE8cCZiFEMUnGVU5YQ0QiQqSegGvAlY5Py03sdevc+3NNwndvRsAq2bNqLFoEdYtWuT95Oi74DMVrm1R9yu0ho7eYFercJPJhed2mPd2K1rdzH3T4e06zRj4yXH+ijBFl/Jf2DLG0LcqvFoHnncFw6JUqEt8CBe/h9NfQVTKu5eyztD0A6g/OvfAOe7/2TvzsKjKNoz/2AVZFNldWBQVd1zTFtts1dLcSi1Ny8z0UzMtTVvcxa3MrdwVLU1L08xKM83cV1QEBBERFARFZIeZ+f54BlCDgRkwMd/fdXHReeGc846QPvOc+7nvLOK/+YbYqVPJuSLTe3YBAdQaMwa3117DzNKwnV2RxAJrgN+RwtkK6IS4a5gYRqhQKBT/NobqTovPPvvss395P6XGUKa3QqG4R5gDAUikdhYQDpxFhsHskW6zkc1KK2dn3Hr1onKTJqTu20dGWBhXliwhMyoKxzZtsNQ77BSJtSPU6Q6uLSHuT7h+FkKXSMfZvZUMDZYTNezhp5BUngrfibmBXoNTUjxvVUvko8x9DN34GVl16rPPqianrsGqCFgZDtezwMcBqprSdbawAvfW0Pg9cG4gg5A3zsHFXyB0GZhbi6dzEV7OZpaWOLZpg9d772Ht4UH66dNkRUWR9OOPJH73HZbOzlRu2NC4jrMTIs95ErgBRCG/Ez8BGUgQTlm76wqFQnGXMVR3qg6zQqEoG+cR+7l86zl/RKZRymC/O9GkpXFx6lRiZ81Cl52NuZ0d3uPGUeP99zG3KaHqyroOfw2H8FVyXK0JPDYXqpdioLCU9PgN9p26SlenZGa0zMX68iV45RWxpisOZ2cu7j3JsrQarAiHmFuspJtWE8nG2wFlkGzodBD9k8hTkk7Imp2HyFMaDTKYkqjNySFxzRouTplSoCe3Cwig1rhxuPXsWbI0piiiEEu6v/XHlZFB0W5IDLtCoVBUQJQkQ6FQ3F10yADYIkCfKs2jiIdzDdMumRkdzflRo0jauBEA27p1qfPVVzg/80zJJ0dvhT1DCuUK/q9CuyBwqGnaZm4hPh36/QG/X4IuvrC+zQ0svTwMF8wATzwBmzah3bCRo64NmWvXmh/OQ0aefNneCt4KgP81Bl9Ti8qiCmcrB2j0jhTP9sX/MHR5eVxZtYqYCRPIjpE/N9u6dfEeN850qcZZxNf7iP7YDugK9ECeRigUCkUFQhXMCoXi3yETWI9Y0WUh7gkvI1Z0Jv4vfH3HDs4NGUJmuIR3uHTtSu3Zs6lUqwRHjLxMScs7OhU0WSLRaDEGAj8wqPEtDSeS4InNkJIDnbwh2HoPjj+ug8xM+di5E65e/eeJ1atDXJzYwf38M1kdnue3WPjyFPyhT9EzN4OuflI4P+xhYhq3TgcXf5N48Ut/6C9sDQ0Hyp+BffFWFtqcHBJWr+bi5MlkRUcDYFunDrU+/hi33r0xtzLB9uMUkiSZXzg7Aq8BnQGltlMoFBUEVTArFIp/lySks7gd6T47Av2Al5Ai2ki0OTlc+uILYiZMQJuejrmdHbXGjKHG++9jYWdn+OTUGNg3qnAosEpdSdSr8bjxG7mFA1fg2Z8hNQc87eDr9tDJR//F/v1h+XLDF3Bzg5AQcHeHzExOpNsy5yR8Gwm5ehMOP0fo5Q+v14W6xasqDJNwRArnyA2ADixsoMHb0Hy0wY67NjdXpBqTJxdINSr5+uLz+ee49eplmlTjFLAECNEfOyNWdJ0w2ddboVAoygtVMCsUintDFDAfyA+o80P0zYGmXS770iWiRo7k6vr1gKTb+UyejHufPiUPqV3aBbvfk6FAgID+8PAMqGS6jcP5VHh9J+zTR0X3qQtfPgzOJw/CW29BVJQEoOTlFX2BBg2k67xrlyQIjhpFXBrMPw0rI0T+kU9XPxjXApq5mLjZ5NMi1YgSiQvmVhDwpnScHX2KPU2Xl0fid98RM2lSQZffrmFDfCdNEjs6Y1vgOuAwsBSI0K+5AH0QSzpVOCsUinuEKpgVCsW9Q4cEniwA9IUljwLvANVNu+T1Xbs4P3IkacelErcPDKT2F19QpaSQEU02HJ0ORyZLcp6NM7T5XAbjinCUKA0aLcw9BWMPQpYGPOxg6ePwgvct33T5MtSsCRqN4Yv9+ivoNdoaLeyOh9URsPYc5Oi7zp28YURTeNzLRLlG8ml5/efWATp53fVeh+YfGbTi02k0JAQHc+HTTws0zg6tWuEzaRJVO3QotnDW6XTETJiAQ+vWVHv+lkRGHTIUuBwZHAXxbn4deBZJEVQoFIp/EVUwKxSKe082om9ei+ibLRF98+uYpG/WabUkrF5N9McfkxMnAmC3Xr3wmzEDG68S4uauh0lSYNwuOXZuAI98AbU6GL8RPedSoP8u2HtFwg8ntoaxzfVFbU4O+PqCPjCkWFxdYfduWLgQPDxg1CiwsiI+HWaegEWhkKlvVtd1gkENoW89cDZFB3w9DI5MgYg1oNMCZlCvN7T+HJz8ij1Nm53N5cWLiZk0idyEBOwaNKDlqVPFdvhzk5O5snIlF8aNo9bYsXiPG3fHBYG/kMI5PxCnBtAfaI/RFoUKhUJhKqpgVigUFYeriL75V6TLWBl5HP8KJj2O12RkEBsUROz06WizsrCwt8f700+pPmyY4QE1nQ6iN8PekeJjDODTCR6ZBVX8jd8IoNXBtGMw7pC8tO61YfkT+njsmzfhjz/ETSMnB5YsgT17/nkRGxvI9wL98EOYNq3gS4kZsOAMLD5bKNewsYAetWFkU2hqilwjJRKOTYewlaDNlY5zw4HQchxU9iz2NE16OnHz5mFXvz4uL79s8BbarCxOPPEEPhMm4NyhQ8Ga+a0+pxrgTyQQ55J+rS7itNLChNelUCgURqIKZoVCUfGIBL6m0DnBHSmOnkBatEaSGR1N1IgRJG/eDIBd/fr4zZiB84svGtbZarLh5JdweKJEbJtbQdPh0OoTsDbN++znGOi1QwYCGzvD/Efh0Tub3h9/LLplQ5iZwe+/Q9OmcOKEWNNZWJCnlXssOgO/xkpxDqJzHtscmruasOnUaDj4GYSvBnRgaSvBKIEfgF3Zcq4vTptG6r59NPrpJ3R5eVzfsYOEVavA3ByfiROx9fUt/OY8JARnFZCsX2sODAAalGkbCoVCYRBVMCsUiorLIaRwztexNkQGA+ubdrnkX34h6n//K3B2cHrsMfxmzMCxdWvDJ6ZfgQMfw9nlgA4qV4dH50DtbiaJhcOuw8u/QIT+r7HOvjCtDdSrqv+GxEQpmMPCZDAwLg4iIqTzfSs2NiLVuHQJnn4atm+HWxwqzqfC3BCRa2TrJdLP1IQxgdDeFJ1z8hk4OA7Ob5Jji0rScW4+GuyNF51nx8dzumNH6sydi9MjjxD9ySdknjuH26uvknbsGDcPH6bR1q3/lHRkAT8gEp784ceHkAj28k89VygUClUwKxSKCo4GsaBbClzXrz0JvAUUrwooFm12NvELFxIzcSJ5164B4Nq9O75TpmBbp47hkxMOw+7BkKhvfXs+DO1mgGdbo/eRlguzTkDQCQkosTCDdxrApy3B7U43vKwscHSU4tkQEybA+PH/WI5Ph9knpeucrtc5P+QuhXNHH/F3NoqEI3BkkshWQHycGwyAVuMNSjXuJHrcODIjImiwfj05V69yOCCAwP37sfP3Jy8lhfOjR+P96afYVC+mGE9FtO8bkSIaZGj0LaAEK26FQqEwBkN1p8Vnn3322b+8n1JjKNNboVD8hzBHuoYdkSGwcMSSbjOQBtQDjIiNNrO0xPGhh/B65x0wMyPtyBHSQ0KIX7iQvBs3cGzT5nb97K3YV4eAAVIUXjkIKeFwdilcCwW3VgZjpu/E2gIerw7964s841gSHEqEb85C9crQpNotHWBLS7GhO3nS4DXZvRsqV4a+feHHH+H558HeHgdr6SwPaiia6VPX4NwN+C4S1kVKwdy0GliUdojO3gvqvgp+r0BWsrhrJB6G0wsg5ya4thDZRhFos7O5vGwZlk5OxM6cSe3Zs7F2cyNi0CDsAgLw7N8fgJzERC7NmoXHgAFY2BZ9LWwQSUZHRHtyDogGfkL08P6IDl6hUCjKiKG6U3WYFQpFxeMKMhi4AymSHJDBwM6YNBiYFRvLhU8+IWHlStDpsHJ1xXfyZDz69zccwJGTCseC4MRsSQ60sBFNb/OPTNI3n7kGo/bDLxfl+BVfWNQeXG+tFZOSID1dOs2zZsGiRYYv+txz8PPPcIekIT0XlpyFWSchNk3WajvC1Iegm58JUo1roXBgHJz/UY6tnUSm0XQYWN1esealpnJu0CCSfvwR6+rVaRMZSd6NGxxv25amf/yBtYcHAGF9+2JmbU29xYvRabUle2mDhOKsAH5B3lxZA12QABRTI8UVCoUC1WFWKBT3G/bIY/d2iGNCDDIcuBNJh/PBqMFASycnXDp3plqnTqSHhpIZFkbyli0k/fgjNt7e2NapU/RgoIUN1HgS6r0BmQmQdALi/4KzK6CSC7g0MarydLOV5D5fB9gZByeTYVW4dJsbOusvZWcHVaqAszNcuQJbthi+aGQkVK0KDz1027K1hUgyhjaGxtXgVLJ0nL+PkkHBek7g7VDqrYOtK/j3hFrPi6vI9TCJ3T67FMxtwLVZgZe1uY0Nrl27Uu2ll7i5fz+ZUVFYOjmRm5iIa/fumFlYkBkZyfnRo2m0ZUtBd7lUISh2yO/FE4h85zxwBtiCFND+gAnp3QqFQqE6zAqF4v5FBxwEFlHo09sQGIxJrgk6nY6r69dzfvRosi9Kq7fKE0/gN2MGDi1K8C+7vB/+GibSBAD31vDIHPBsZ/Q+Ym5Cvz/gT70187SH4MM7ExA1Gti2DU6f5nuzOrhdvUj7BeNE73wnw4bBxIngUHQVnKeVjvOnhyExU9Ye8YDRgfCitwka59idcGAsJBySY/sa0GKs6Jwtbn8MkHv9OhZ2dpx6/nk8Bw7EpkYN4r76CruAAHw++6z03eWiCEfitvPdVqoiTyM6oQpnhUJhFGroT6FQ3P9ogJ+Rx/H5g4GPIMNf3sWcYwBtVhZx8+dzcfJk8q7LBd169cJ38mQq+fgUf6JOC+HBsO8jyLgsaz4d4aHJ0nE2Zg86WB4mw3q7XwaXYmS8mXnwZQjMOK6j369fMuv7EUV/Y82acPAgeBY/lHczR0JQ5p6ClBxZq18FRjWTaG9rAwqVf5DvZX1gPFw7LWtOtaHtdKj9yj+679d++42YiROxdnPDtVs3XHv0MCyJMYajSOEcpj/2QqzoTLQpVCgUDx6qYFYoFP8d0oFvgQ1IeqA5EqX8JmCC/3Du9etcnDqVuLlz0WVnY2ZtTfUhQ6g1bhxWVasWf2JOGhzX65tz0wEzqPuaFM6OPkbtQacrnbKjy3ZoF3OQUYvfQ5eejll2ttjN3eqssXo19OlT4rVu5kjHefZJuKS3bfN3ghlt4SUfIzXOOi1E/QAHx4tUA8CjHbSbDl6P/OPb81JSsKwiw5M6ne42KcbFadOw9vLCvU8f47vO+XHbSyh8GlEf8fe+s3uvUCgUd3BPCub4+Hg6duxIaGgoaWlpWFpaMmPGDDZv3oy3tzcrVqzAysqKNWvWMH/+fJydnVm7di2OjoVTG6pgVigUxZKMhFv8jHSfbYAewGtAMZ1aQ2TFxHBh/HgSgoNBp8PS2RnvTz/Fa9AgzK0NTBpmJMKRyXB6EWhz9IOBo6D5hyYHnxTFukiYcxIOdJXjgiJbo4HgYFiwQOQY334rvs2lJFcD66Jg0lEIT5G1Rz1hZltobWxeiTYPQpfAwU8hM1HWaj4DD00U+UoJZMfHc9DPD112NvbNmuE3cyZVn3rKyE0gvw+/IHHb1/RrLZGOs4n+3gqF4r/PPSmYs7KyyMzMpEuXLuzYsYPr16/Tt29ftm3bxvTp0/Hz86Nz5848+eST7Nq1i40bN3Lx4kVGjRpVqo0rFAoFAHHAYmC3/tgZ6A88B5jwtP/m8eOcHzmSlF27AKjk44P355/j3ru3YflAagzsHwPnvpXjyl7SYa3bC8xM1Ofm7ykHOv0CAwOgV13QaI2whysluRoJP/n8CCTrJdI968CUNuBnrPtEzk04Pkvffb8paz4doc0EcC2+1avTaEgIDib644/JiYsDwPmFF/ALCqJyw4bGv6hMxL/5OwrDTx5Ffj98jL+cQqH4b2Oo7iznv3ILqVSpElVveZx56NAhHn/8cQCefvppDhw4QEREBI0bN8bS0rJgrTQsHraTEYErOb07tmBt38YIRgSuZN3EfQVrNxIzGBG4kk87rL/t/Fm9tjAicCWxockFa9sXnWBE4Eq2LzpRsBYbmsyIwJXM6nX7lPqnHdYzInAlNxIzCtbWTdzHiMCV7NsYUbB2encsIwJXsnjYztvOHxG4khGBK9VrUq9JvabyeE0dVzJi80qYCwQA12DxZzsZ0XIlp78uzI0u7WtyCAxkh/sINjVbQVaDx8m6cIHwvn1ZFvguIwJX8svC40W/JkdveHYtdN3Lp+vmMWLuFG5sGgob2kLsTtZNMP3ntCwMEs8lc7in/Jzyi2Vjfk4lYWUhjhpRveCjQKhkIV3t+t/C0L8KrelKhbUDtPkM3ogWCz5LO7iwFdY1h1+6w43zRZ5mZmGBR9++tI6IwGfyZCwcHLi2bRtHmjQh/O23yYqNLfK8YrFFBgDXIk8ebIC/kE7zdMTHWaFQKEpBqQvmv//+m6CgIGbMmMHff/9t9I1SUlIK5BZOTk5cv369yDWFQqEwicbAfGA8hSEnq4GhwIniTioGvaQ2YN066q1YgY23N7lXpbpKWLWKm8eOFX+u58NQSS+JsHUVF4nNT0vBaAQaMzNWhEFiBmyIgheSLsj6XZ46cbIRr+bw1+CNuuKuMe801F4Dg/fAtSIMOorFthq0myqFc7P3JWY7agOsbQD7x0onuggs7OzwHjuW1pGReA0eDGZmXFmyhEP+/kS+/z45V42sdB0RHXMw8BLy890OvI74fWcadzmFQvHgUSpJxqhRozh27BhdunQB4Mcff6RFixYEBQWVeIPHH3+cHTt28Ouvv3LmzBlGjx7NsWPHCA4OZsCAAcyfP58FCxZw7do13nrrLX744YeCc5UkQ6FQmEQOkgQXDOT/NdIScdSoZ/zlioraduvdWxw1vA1YdOSkQchcOD4DsvUC4ZodoM1E8Ghj8J6pOfDWn7A1Brzt4exrRX9faQcGTeVUMkw+BusjpVnvUglmtYPX65pw37Q4ka2Er5ZjO09oOxXqv25QtpIREcGF8eO5ul665haOjtT6+GNq/O9/xSc2GiIO+AbYoz8uo4xHoVD8NyizhjkgIIDQ0NCCSWatVkuTJk04ffp0iTfPL5ivXbvGm2++yc8//0xQUBA+Pj506dKFp556qkDDfOHCBUaPHl2qjSsUCkWJZCBuGusp1LA+jhTO1Y2/XO7161ycMkUcNXJyMLOxofp771Hzww+xdnMr/sTsG3Bizu2aXr8u0HYaVK1r8J5/xcPQvdC9NgxvIrHXt/K/vdIF/qQleNgVfY18ecec431L+1L/wZlr8N5fsFvvG93WXbyjH/My4WJXDoifdb6Hs2tzeGgK1HrGYBV+8/hxoseO5fr27QDYeHvjO2UKbq++apqP8ylgIXBWf+yD/G60Q1nRKRQPIGVO+tu9ezdNmjTBxcUFgLCwMKKjo+ncuXOx5+Tm5vLss89y/Phxdu7cSYsWLdDpdHz00UdkZmby0UcfYW1tjaWlJYMHDyY8PJypU6felqyikv4UCkWZsAKaAi8i7dFzQBTSfU5Fus1G/NViYWuL8zPP4NanD7mJiaSfOEHq/v3EL1yINj0d++bNC1LrbsOyEtR4HBoOlE7q1WOQfArOLILMJHBr+Y946Xy8HWBQQ/nseselkzKh9044kCCyidg0qFcFqt3xmn79+iQAzw1qVvoXewduttC3ngwA7rsijhorwuFwoiQJuhdTrBeJfQ0JOHGqAwkHISUCIoIh7k+oUg8cahZ5mo2nJ+59+uDYrh3pJ06Qee4cST/8QPLWrdj6+2Pr62vci3IHXgBqIQEoccAfiKdzTf3XFQrFA4PJSX9t27bFzMyMrKwsQkJCCAgIAODs2bMEBgZy+PDhu7RlQXWYFQpFuZKIaFZ/QwpoO6C7/qPoetUgN48e5cInn3Bt2zYALJycqPH++9QYMQLLYhL3AEiLh0OfQOgy2YhVZWg8BAI/AFsXo/YQeg3GHYJN0fKSzIDOvpIa2OYuFXw3c8S/eeZJSMuVe/auCxNaga+xjhp5mRAyD45OhWz9HEvtbvDwTBmkLAadRkPCqlVEjxtHTry0vZ2ffx7f6dOxb9zY+BdVlIznUeAdTHoaoVAo7j9MlmTExMQU9yUAvA1p98oBVTArFIq7QiSiYc1/z++IuCm8DBiwXC6OG/v3c2H8eFJ2ituFlasr3p98gufAgYY9nJNOiaY35mc5trKHZiMh8H2wNq7yDL8Os07CynDI0craK74im/CvYvxrKg2JGaJvXngGcrVgZQ5jAmFcC3HdMIrsG3B8JpyYJUW0RSV5A1GCn7UmI4NLX3xB7LRpaG7eBDMz3N94A99Jk7CpUcP4F5WOSHjWA1mAJfJ78Tqg/hlSKP7TqKQ/hUKhKIoQJBXulP7YDegHPINJw18pf/5J9NixpO7fD4BtnTr4TpmCS9euhjW2CYfh0KcQ84scV6oGLcZA48FgaVwKy5UMidH+8pREaluaw6AGonG+U9JRXlxIhU8OQ3CEdLlbusLqp6C+gaDEYrkZC/s+vN3Puu1UqNfH4GBgztWrXJw4kfhFi9Dl5mJuZ0etMWOoMXJk0TKZkkhCnkZsR15UZaRo7oJJb6oUCkXFRxXMCoVCURw64ABSOOfbA3sjXr2PYPTwl06nI3nTJs6PGUNmeDgAlZs0wWfCBKq99NJtMdD/IP4vsVu7vFeOK1eH1p9CwJtgbmnUPuLSpIhdHgadtu/EwgzcRjzF+02h7l3qOP8ZB/12QcxN8XGe3AaGNjKh2wxweR/8NRwS9Y8B3FrBI7OLjNq+lcyoKM5/9BFJGzYAMhjoFxSEa/fuhv/siyMKWAQc0R97IIOBT3AXkwwUCsW9QBXMCoVCURJaYCcSp3xZv9YQKZyLD6crFl1eHpeXLiVm4sSC1DqHVq3wmTSJqh06FF+86XTSaT4wFpJkWI8qdaHlx5IaaGThfCoZlj0tLhlfDOyLGdCttoSTNC99gnapSc2BYXtlIBDA30lkIV18TbCh02khfA3s/wjS9fYcvi9Du2lQ1XDGdcqffxI5bBjpISEAOLRujV9QEFXatzdyE3oOIYVztP64LqJvbm7a5RQKRcVDFcwKhUJRWnKBrcAqQG+dTCDwJhKOYiTarCziv/mGi5Mnk5uYCIBT+/b4Tp6M08MPF3+iTguR38OBj+FGlKw5+kGLj6B+X7AovS7g9O5YYm/Cxso1WRUhemOAZ2qK5ri9V/l7OW+9ACP3QYT+r/GHPWBmW3jIw4SL5aSJl/XxmZCXIW8amr0PLccb1DfrNBp50/Lpp+RcuQKAc8eO+E2bZlrUtgaRaKxAJBsgTyEGoQYDFYr/AKpgVigUCmPJAH4A1gH5sdCtkcfx/sZfTpOeTtxXXxEbFESePtXU+fnn8Z0yBftmBuzeNLkQsQaOTIEb52TNvia0HCdSDQur4s8tgrg0mB0CX5+B9DxZa+sOn7WCDjXKt3DO1cDis/DZYbiqTwjs7Q8LHwMHU3TA6Zfh4CcQuhTQyZ/DwzOgTg+DG9ekp3Np9mxig4LQpKWBuTmeAwbgM3ky1q4mtNmzEH/vNRQOBr6CDI4aMEdRKBQVG1UwKxQKhamkIY4JG5EiGuBJJBnOhK5iXkoKsbNnEzdnjhRvgGuPHniPH0/lRo2KP1Grgcj1cGQSXAuVNSd/aDMB/HsYHIgriuQsmH8a5p6S/wZo5iIDgr38TSxoiyE1B6YfFyu6LA00cobNz4uns0kkHII/3xU/awDPR+DRL8HNsD4iJzGRmAkTuPz11+jy8rCsUgWfSZPwGjQIMwsThNbJiPZ9u/7YARkMNNFtRaFQ3FtUwaxQKBRl5QbSUdyEyDYsgI7AG0i0spHkXL3KxSlTiF+wAF1ODgAu3brh/cknhn2EC6Qa4ws7zi7NoPVn4NupyMJ538YIANq1z4Qb56F2l4KvpeVK4TzzBCTpC2d7K+jjD+80lCK6vIhIgZd/gbAUcLaB9c/AUyY4vwHyBuLsMpGsZF4FzKTj/tBkqGxY95ERHk7k//7H9d9+A8C+WTPqzJtnWCJjiHDga+C4/tgLeRLxOCoxUKG4j1AFs0KhUJQXCYiG9TdkUNAG6Si+BpjgPpF96RIXp03j8uLFBYWza48e+EyYgF29esWfqMmFsBVw6HNIl6FCXj0BLk1qqDHjAAAgAElEQVT/8a0F0djjlkBqNDgHgP+rkraXvw8NbIyCr0Nhz+XCc9t7wfgW8GT18pFr3MiWdMKfY8DCDMY2F99ma1OcNED8mw9PhJC5oM0FKwdoORaajQALm2JPy3cziRw+nOyLFwFwe+01fKdOpZIpGQP5bitfA/kRBg2A9/SfFQpFhafM0dj3ChWNrVAoKhz2yKDXY8gj+WjgDLAZyATqYFTctqWjI9VeeAGP/v3R5eWRduIE6SEhxC9cSPbFi9gHBmJZVMPA3ALcWkDjd8HWVfS8Dd8u8h43rmYQ2DgW36rHoXco2NeCM4vBvY14PiN+zY2rwZv1oUdtOT6bIl3hVRHwWyy4VhIZhUUZ7NQqWULP2qDRSWG++zJsjobW7uBlQtoilpWg1jPyBiD1Alw7BZd2QtQGefPgUHTxa2Zmhl1AAJ7vvAMWFqQePEj6iRPEL1yIJi0Nh1atMDfm3x0zJE67E+AChAGxwDbEdaUBkiypUCgqLCZHY99rVIdZoVBUeCKQjvN+/bEd0A2J2y7ewKFYsi9dImbiRC4vXQoaDWbW1ni9+y41P/wQG09P0/e5vadYs3X9q9Sn3MiGeadhTkihztmlEvSsA2/UlSK3LOy9DG/ugsgb0m3+KBDGtwQbU7vNABd/hz1DIEVkKDQcCG2nQSXDKSpZMTFEjx1L4tq1AFi5uOA7ZQoeAwYYDp0pjgxEwvM9IuGxRfTNXVH6ZoWigqIkGQqFQnG3CUUK5/y4bQdEptEFozrO+WScO0fMp5+S+K0k3pnZ2OD59tvU+vBD0yKfrxwUt43Lf8uAXAkBILeSliuuGkvD4Oz1wvW27vB+U+jsKx1pU8jIhXGH4IsQUTUEusCPz4F3Wdwm8rLg6BQ4Ok1kGpVcJC0w4E3pzBsg9dAhokaOJHWvhMc4tG6N//z5OLRsadpe4oAFwD79sRfwNtAepW9WKCoYqmBWKBSKf4tTSKTyCf2xM1I4d0L0zkaSdvIkMRMmkPTDDwCYWVvjOWAANT/6iEq1apV8AZ2WG3pPNyc3Ozg2E3JuwEMTjd6LTgcnkmB1hASTXNc/vfRxgOFNoH990901/r4Mb/wB51NF9vFXZxMlGreSfAZ2vysJigCuLeCxueDZzuBpOp2Oq+vWETVyJDnx8WBmhufAgfhOnoxVtWqm7eUwMJ9CfXND4F39Z4VCUSFQBbNCoVD8m+iAo4jlmD7xrqBwfgmTHsmnnTrFxcmTubp+Peh0mFlZ4dGvH7U+/tjwkFpSCJ+8tIubmVWYc7wvHJsB2Snw0KQyTfGl5cLKcJhzEqJSZc3RGjp6Q1c/+WzsIF9KNjy9BY5ehQZVYU9nqFbW8RWdDs6tg78/KByOrNcH2gVBZcMSl7ybN4mZMIG4L74QG7pq1fCbOhWP/v1Ns6HTAD8jTyLyO/VPIsEndyF1UaFQGIca+lMoFIp/EzPk0fuLSMhJLPJo/jDwKyLRqA0YIWOwdnfHtVs3XLt3Jy8lhfRTp0g7epT4+fPJSUjAvmlTLB2LMDaO2khTi8lUccrGt3YOxGyTIblqBjyfS7MfC2jtBu81kojtuHQ4dwNOXYP1UbDoDMSng6cdeJRy2K2SJbziKw4aodchPgNe8SvTNuVNQbVG0OgdsdxLOAhXj0PoErDzlMHAYt44mNvY4PzMM7h060ZGWBgZoaEkb9lC8k8/YRcQQCUfH+P2Yg7UQ+wIzZA3U5HAFv3X6yN2hQqF4p6ghv4UCoXiXqID/gaWA+f1a15AX+ApTCqSMsLDiZk4UYbUbuk41xw9Gts6dW7/5vTLcHQqaPPAp6MUzOaWhV8PXQ6pUdB0ONiabrwcfh1+uiCuGqevFa4Huoj7Ri//0nWMo25Ao3UScrLrJXi8PGOnb5yHPf+DmJ/l2PtFeOJrsDd8E51Ox9Xvv+f8qFEFNnSu3btTe84cbKqbuMErwCJgt/7YCxgCtDXtcgqFomwoSYZCoVBUBLTAn8gj+Vj9mjdSOLfHqI5zPulnzhAzYQJXv/9e5Afm5ri9+iren3zyTx9nreafQ2+aXFjtB2mXwKISBPSDwA/Aqbbxm9Gj04msYnkYrD0HKWIvjbU5PFMTHvcSf+dmLsUPC44/BJOOQkBVONOzfCO70ekgfDX8NUzkKTZVRKLRYECJiYmazEwuzZzJxWnT0GZkYGFvj8/EiVQfMgQzS0uD5xbLUeArCvXNbYDBQCkk6gqFovxQBbNCoVBUJDTA78BKpMsIUji/jqTDmdJxjoggdto0ElavRpeXB+bmuPfuTa3x47Hz9zd88uV9cGSyyDVAisY63aH5h+AaaPxmbiErT7rOy8Pgt0ugveVfHAcreNgDHvOCxzyhlZusLzgNnx+RQtvJGi73BVsTa1GDpMXDroGF3Wb3NtB+QYkR2wBZFy8SOWwYyZs2AVC5SRP8Fy7EqZ3hgcJiyUNSJFcA6cibp5eRN1Pqnz+F4l9BFcwKhUJREckFfgHWIgmCIOEXryPDYCYUzlkxMVycMoUry5ZJ4Wxhwd7WX2Dt6cmojV0Nn3wtVIYCI4JFvgFQ61lo/hFUb1/mNm98Ouy4BLvjJbQk8sbtX69kAVVt4HKGHD9dA+a0g0YmGlOUivyhwL3vQ8ZlebPQaLC4iNiUHN2YvHUrkUOHknXhAgAe/fvjO20a1q4mTvFdQ6Q725AnEg5Af8RlRembFYq7iiqYFQqFoiKTi0RtB1PYca6BdBefwKRCKTM6mouTJ3NlxQo2NV4KwMCGv1Pro4+o3KiEgb+bsXBiDoR+A7npsub+kERO+7xYomyhtMSnwx598bwnHs7onSPqOsGsdvCidzlLMQyRkwoHP5OIbZ0G7NzhicXg26nEUzUZGVycOpXYoCB0OTlYVq2Kz6RJeL3zjmluGgBRiH/zMf2xP/A/oGyzmgqFwgAVpmDOy8ujT58+JCQk0KpVK4KCgnByciIwUB75/fDDDzg7Oxd8vyqYFQrFA0UesANYDcTr17yBN4FHMUnjnBkVxZGxX3Dt521USZeJw2qdOlFzzBic2pYwXZZ1DU7Nh5NfQlayrDn5Q9NhUL8vWJsQZWiApEzxYQ50Aat71U1NCoHdgyXgBaDRu/DwTLAq2eojIyKCyCFDuP777wDYN2uG/9df49i6tWl70QF7kMI5Ub/WAXgHuJtdd4XiAaXC2Mpt3LgRa2trlixZwk8//UT16tU5cuQIe/bsoV+/ftja2t72/cpWTqFQPFCYA3WAzoA70mWMQwYF9yCP570xqnC2cnbGu/sL+PTujC4vj/SQEDJCQ7mydCkpf/6JtZcXlfz8MCuqlWtpK1KMxu9BpWqQEgap0aJ1PrUAMpOgSr1SSRdKg50VVLcHi/JpYJu4CXcZfLR2hLhdYkN3/gfwaFeib7NVtWq49elD5caNST1wgMzwcK4sW0be9es4PfII5tZGGnCbAT6IDZ05cBY4B2wFrBCLunv5Z6VQ/McwVHf+qwXz1q1bady4MXXr1uXy5cvExMSwbt06tm7dSkREBE899dRtf2mrglmhUDyQmCOP4F9GOonnkcJ5D1I8O2J04WxZpQrVXngBz4EDMbOyIj0khMyICBKDg7m2fTvWXl7Y1qlTdOFsYQ2ebaHJUKjWBNLj4cY5uLIfTs2DlCioWg9s/yPpG2Zmkgbo0wni98D1MDi7DDQ5UjibFz+BaGZmRuUGDfB85x10eXmk7t/Pzf37SQgOppKfH3b16xu/HysgENG1X0F+H44gvwvV9R8KhaLMVJiCOSkpib1799KhQwdmz56Ng4MDK1euZPDgwWzYsAGdTke9W2yQVMGsUCgeaCyQMIvOgBsQjUmF8/ZFJ4g8coU6LT2wqFyZqk89hdfgwVg6OZF+8iSZ586RuHYtyZs3Y+nkhF1AAGbmRVzUzBycG0CD/uJfnJcOyach6YR0nJNCoLIX2Nf6F8XHd5HKHhDwJuTehCsHpXiO2ijOIQ6GPd/Mrayo2qED1Tp14uaRI2SGhXH1u+9IO3ECx3btsDRFZuiI+HbXR0JPLiESnnNIxHb5KmQUigeOClMw+/v7s3XrVmbNmoWLiwsBAQG0a9cOMzMzLC0tCQkJ4dFHHy3VxhUKheKBwQKoy+1SjXikcN5NYeFcTI06/+1fiTqawHODmhWsmVeqhNMjj+D13ntYVq1KWkgIWVFRJG3cSMLq1ZhZWFC5SRPMrayKvqh9dajdVWKmtTmQfAqunYazy+H8j2BuJcW1gW7sfYGFFXg/DzWfhiv79N3m5ZB5Fbwek+67AWw8PfEcMAArFxdu7N1LekgIlxcvxtzGBodWrUwbCqyBuGZUBkKRjvNW5OcfgHLTUChMpEIm/Q0cOJCPP/6YGjVqYGFhwbhx42jcuDE9e/Ys+B419KdQKBRFkItEbAdTaEdXC+iFdCDvqFG3LzoBcFvBfCfarCwSVq8mduZMMiMiALByd6fmBx/gNWgQFvYltC/TL8uA4JnFkKmfULNzFxlHo3ehkrPh8+8H8rLgyCQ4Nl1s95z84fkN4NKkVKdnx8UROXw4SRs2AFC5cWP8v/665OFLQyQBC4E/9Mc1gaFAK9MvqVA8qFQYl4y4uDh69+6Nubk5b7zxBs2aNaN///5UrlwZPz8/li1bhsUt77ZVwaxQKBQGyAW2A2soLJw9gNeA5wAjZ8wAdFotyZs3EzN5MmlHjwJgWa0aNUaMoPqQISVLCTTZELkBTsyCq8dlzaoyNHgLmo4AR2/jN1XRuHoCdrwhXXWLSvD4QhkULCXJ27YROWQIWdHRYGZG9eHD8Z00CQu7kp04iuUo8CWFCZKPAu8hTyQUCkWpqDAFs7GoglmhUChKQb4d3VoKCyYX4FXEYcHGwLnHgDTgsduXdTod17Zv5+LEiaTu3w+AhaMjngMHUmPYMGxq1DC8J50OLu2UIJTY32TNzALqdBPXDc9H7m+dc14m7B4iw4AgWufHvpI3B6VAk5lJzIQJxM6YARoNtnXqUHfJEqq0b2/6nnKBDcAqIAv5ufcBemDSmyeF4kFDFcwKhULxIKBBdM3BiK4VwB1ixySDFdRscId5bzrwN5IqdxMYhDzK11Ggh9bpdKT88QcxkyZx488/ATCztMStd29qfvBBySEoAEkn4fhMiPhWQkEAnBtB43dFA23tWIYXfY8JXS6+zZosqFIXnvm2VNHa+dw8coTwN98k/fRpADzffhu/oCAsq5TBqu8qItPYpT/2AoYBJtpBKxQPCqpgVigUigcJHbAPWAnUhxGrVwIw53jf4s85jKQNfkCxHenUw4e5NHMmVzdsAK0WAOcXXqDmqFE4tW9ftCXdrdyMhTPfQOhiyNBrSKzspWhu9G6ptcAVjuTT8OtrMvRobgVtp0KzEaVORNRmZ3Nx2jQuTp6MLjcXa09P/OfPx6VLl7Lt6xjwFXBBf/wkItP4D8jJFYq7gSqYFQqF4kFEB2TDrP5bABi5toiY5xzkcf1fSKd5NBAJ/Ag0QGQddwwRZkZFcWnOHK4sW4Y2MxMAhzZtqDV2LNU6dizaku5WNDlwfhOcXghxfxauez0GgSPFss78PrN6yMuEv0fJ4CNAzWegwyoZfCwl6aGhRLz1VoEExqVLF+rMm4eNl1cZ9gV8j7x5ykacNd5CXDbusz9iheJuowpmhUKhUBRyi+QCgBvAGMRl42+kw9wY8XqugUQxF0FuUhJx8+cT99VX5CVLdLZd/fpUHz4c99dfL90Q27VQOL0IwlZCTqqs2deEgP7i91yC33GFI3oL7OwPWUlSLD/3PXg9WvJ5enRaLfGLFhH94Ydo0tKwcHSkzty5uL/xRskdfENcRoYCD+qP6wLDERs6hUIBqIJZoVAoFEWxFziAhKG0QZwVhgPLkBjuMGAnMAAwYIWvSU/n8uLFXJo1i+xLlwCwdHbGa9AgvIYMwcbTcKQ0IMVy6DII+QpS8wXYZlDrWXHY8H1JPJHvB9Li4fc+Eq1tbgVPLIYAA3KYIsiKjeXc4MFc27oVkG6z/9dfY+1ahjRFHfIkYT6QiLxpegF4G1D/xCoUqmBWKBQKxS3sQyQXrsggmD8Sr/wZYks3SP99x4DVwJzSXVabm0vSxo1cmj2bm4cPA2BmbY1H377UGDUKO3//ki+i04pM48xiiPpBQlEAKleXIcGGA++PCG5tHuwdCSFz5bjlOGgzwShnEJ1OR8KqVUQOHYrm5k2sXF3xX7gQ165dy7a3TOTnuh4ZFHVEfubPUWz4jULxIKAKZoVCoXiA+bTDegA+/70HaJFiaQ3wPDAEsEICMIYi3WVb/YkjgRaIVENLiRHc+eh0OlL37ePS7Nkk/fijWMyZmeHStSu1PvwQh5YtS3ehzGSICBbJxvUwWTO3Bv8eUL8vVH+i4mudTy2EPUPkjUDdXvDUMrAw5PP3T7JiYgh/801Sdonthdtrr1Hnq6+wqlathDNLIAaRaejtsmkOvI+8eVIoHkBUwaxQKBQPMCMCi3DJSAHWIbKMgUiRvBP4UP/1SGQA8Iey3TsjPJzYmTNJWLkSXW4uAI5t21J92DBcu3bFzLIU0dk6HcTukG7thZ8RbQFgXwPqvS6SDSe/sm30bnJhG/zaA3LTZbDx+R/A1rhiN1/bfH7UKLQZGVi5u1P3669xefnlsu1Nh3h4zwNSEf16P6Ab/xj2VCj+66iCWaFQKB5gbiRmAODkVsQQXjoy9OcITEAG/MwRV4U6SPCFEd3l4siOi+PSF19wefFiNPq/2228vakxfDgeAwZg6eBQyhdzHsJWQfgqSI0uXK/1LDQaBD4dwbwCVnpXj8OWFyHjMjj6wYuboVopPKzvIDMqivD+/bmxZw8Abr16UWfu3LJ3m1MQbfMO/bEfMAIwfosKxX2LKpgVCoVCYRgdomndhjhjtAFe5J/WY1r9ZxMLaE1aGgmrV3Npzhwyz50DwMLJCa9Bg6g+dCg21UupB9BpIX6vJO2dWyfBIQCVvaDBAOk8VymFZvrf5GYsbOsMV49JIuDTq6G28V7LOq2WuHnziB4zBm1GBtaentQPDqbqk0+WfY+HgC8QVw2Q3wE1FKh4QFAFs0KhUChKhw5JinO75fjWQbDdwHLEn/lpTH5sr9NoSN6yhdhZs0jduxcAMysr3F57jRojRmDfrFnpL5Z1TbrOpxdBSnjhumsg1HsD6vWuOIOCuRmw622IWCvH7YKg+SiTLpUZFUVY376k/v03mJlR88MP8ZkwAXOrMrqJZCEa9+8QH2cnZCjwWdRQoOI/jSqYFQqF4gFm3cR9APQc367sFxuHeDUDuCOF8wtI+ImJpB48yKVZs7i6cWNBgqDjww9TfehQXF55pfQFoE4Hcbul63x+E+TelHVzK5FqBLwJ3s/fe8mGTgfHZ8G+0YAOnt8ItV8x7VJ5ecRMmkTMxImg1eLQqhUBa9diW6dO2fcZg3SbT+iPWyGDoKXPYlEo7itUwaxQKBQPMEUO/ZlKLjIcuBaI1a85A92Bl4BSZJUUR+b588TNncuV5cvRpEqIibWnJ56DBuE1cCDWHh6lv1heFlzYCmdXwMVfRMIBEiZS73WJ467WxCibt3Ln+Cz4+wORZ3Q7YJKmOZ8be/dytndvsi9exMLenjrz5pU97ATkCcNvwAJkKNAO0bl3pMy6doWioqEKZoVCoXiA2bcxAoB2XeuW30U1iMPGGuCcfs0B6Kz/cC7DpdPSSAgOJu6rr8gIDQVukWuMHIl9kybGXTAtHsJXw9nlt0s2HP3A/1X5cGls+oZNRaeTgJOIteBUB149IcWzieSlpBAxaBBX160DwLVHD/wXLsTKuQw/jHyuId3mv/THTRELuvssiFGhMIQqmBUKhUJxd9Ahg2LBwGn9mhXwDNCDMhVUOp2OlD//JP6rr0javLlArlHlySfxGjyYai+9ZJxeV6eDKwckhjt6E2QkFH7NuWFh8VylHOQMpSU3AzY8BMmnoNn78MisMl2uIOxkyBA0aWlYe3lRb8UKnDt0KPtedYiG/UvEVcMK6A28RpkkOQpFRUEVzAqFQqG4+5xCBsX26Y/NgHZAT6CMDdzM6GjivviCy0uXok1PB/RyjbffxnPgwNK7a+Sj1UD8Hjj3HURugOxrhV9zbSGFs8+LULX+3ZdtJByBDW3kv7vtB/fWZb5kZlQUYW+8Qeo++WHUHDMG3wkTSud7XRI3gEXAdv1xLUTbbGTjX6GoaKiCWaFQKB5gTu8WsXGj9jX/nRteRCzqfkM0zyDFVC8kirsM9WdeSgoJq1cTv2ABGWGS/mdmaYlLt27UGD4cxzZtjL+oJhcu7YCIb28fFgSRbfh2At+XwPNRsCijA0Vx/D0ajs+QYJNXdpfLJXUaDRenTePCJ5+AVkuVJ58k4LvvsHYtJ8eQE8BsCrXsLyP6Zttiz1AoKjSqYFYoFIoHmHId+jOGa8Am4EcgTb9WG5FqPIE80jcRnU7Hjd27iV+wgKs//AAaDQAObdpQY9gwXLp2xdzaBJ1AXibE/AJRP8DF7ZCVXPg1ayfwfg58OonbRqVy0Abnk30DljiDmTkMTAXL8qs6U/78k9CePclNTMSmZk0abNyIY6tW5XPxHETHvhaxoPMCPqLMTxQUinuBKpgVCoXiAWbxsJ0AvP3lU/dmAxnAFqTrnK98cAG6IM4a9mW7fFZsLPHz53P5m2/Iu34dACtXV9z79cNr0CBs/UyMzdZqIOEARG+BC1vgWmjh18wswLW5yCc82kH1xySquyx81wySTkKX3XK9ciQ7Lo4z3bpx88ABzKyt8Z8/H48BA8ruopFPJDAVOI88QegO9EeithWK+4QKUzDn5eXRp08fEhISaNWqFUFBQcyYMYPNmzfj7e3NihUrsLplgEMVzAqFQvEfIgeJXv4euKBfs0OK5m5AGdOdNenpJAQHEz9vHumn9ROIZmY4v/gi1YcMoWqHDpiZl8EL7UZUYfEcvwe0ebd/3dFPJBXV28tnR9/S6Z9zM+DYNDgWBJpseHKJpBWWM9rsbKJGjCB+4UIA3Hr3xn/hwtLHkpdELrAa6ThrgerAB4ARGTQKxb2kwhTM33//PZGRkYwZM4ahQ4fSrVs3pk+fzrZt25g+fTp+fn507969VBtXKBQKxX2KDjiMDAge16/lO2v0BMootdbpdNw8eJD4hQtJXLcOXXY2ALb+/ni99x4efftiWaVK2W6SkwoJhyHhEFz+S2K6b9U+A9h5QJV64OQHTrXBsbb8t2PtQjnH+U2wdwTcjJHjeq/D4wvLZC9XEldWreLcu++izcjA1t+fgHXrcAgMLL8bhAFBQLT+uBMwkDI/SVAo7jYVpmCePn06jRo14sUXX2Tp0qVkZWWRnp7O6NGjOXr0KGvXrmXWrEJLHVUwKxQKxX+cMOBbxN83P4a7HfJIvwlljmLOuXqVK0uXEr9gAdmxMp1mbmeHe+/eeLz9Ng4tW5aPLEGbJ3KK+D3yEbfndueNO7F2AlsX6VoDuDSFx+aB1yNl30spyAgLI7RnT9JDQgokGp5vvVV+N8hFdM3BiLbZBfFtblt+t1AoypsKUzBv2rSJffv2ERQURJ8+fQgICKBatWoMGjSIyMhIpkyZwrJly0q1cYVCoVCUjns29GcMRTlr1EMK5/ZAGd3QdHl5JG/ZQty8eaT88UfBeuWmTfF86y3cevfGqmrVst3kthtqITUabpyH1Cj5fCNK/99RkKufgrSpAg9NhobvgLlF+d2/FGgyM4l6/30uL1oEgPfnn+M9fnz56ZpBusxByBsjkITAwSgnDUWFpMIUzBqNhuHDhxMaGoqPjw/Nmzcv6DAfO3aM4OBgZs+eXaqNKxQKhaJ03BcFcz75zhqbkShmADegK/AC5fJYPz00lMtLlpCwahV5yeKCYV6pEi7duuH51ls4PfZY+RaNd6LTQVYSpMZAFX+wubf/vsV/8w3n3n0XtFo8Bw3Cf948zCzKsXjXABuApciboerAWKBB+d1CoSgPKkzBfCsDBw5k3LhxvPvuu/z8888EBQXh4+NDjx49Cr5HFcwKhULxgJKFdJs3UOjza4foYbsC5WAlrM3OJmnzZq4sWcL1338vWLetWxevd9/FvU8frFxcyn6j+4CkTZsIffVVdNnZuHTpQv01a7CwLec28Hlgsv6zOZIS+DplshdUKMqTClMwx8XF0bt3b8zNzXnjjTfo168f06dPZ8uWLdSqVYsVK1ZgfYtvpiqYFQqF4gFHCxxE5Bon9GsWiEyjK+XWpcyMjubK8uVcWbaMnLg4AMysrKj20kt49OtH1WefNS6G+z4k5a+/OPPSS+SlpODYti2Nfvqp/N8w5ADLkJ+nDvADxgD/Yhq5QlEcFaZgNhZVMCsUCoWigHDEWWMPUkgDBCCFcznonKFQ6xz/zTdc/+030MqNrNzdce/TB49+/ajcqFHZb1RBST9zhlPPP092bCy2devS+JdfTPexNkQIMB2IR94AvYEkQZbDz1ChMBVVMCsUCsUDzD0PLilvEhCN81Yg38ktX+f8IlBOjmzZ8fEkBAeTsHx5QQw3gGO7dngOHIhr9+5Y2NmVz80qENnx8Zx64QXST57Eys2Nxtu24dCiRfnfKBP4BtGsA9RFtM3e5X8rhaI0qIJZoVAoHmDuq6E/Y8gEfgc2Ii4bIMVyR6Az4FE+t9HpdNw8fJgry5eTuHYtmlSZRrSwt8ela1fcevem6pNPlu+g3D0mLzWV0G7duP7775hXrkzDjRtxfvbZu3OzY4iTRgKSDDgUGfC8i3OXCkVRqIJZoVAoHmBO75apuUbty5gIUlHJ1zmvA07q18yBh4FXgKaUW/GlSU8ncd06Ln/zDTcPHixYt/bwwPW11/Do1w/7Jk3K52b3GG1ODuEDBpAYHIyZpSUN1q/HpUuXu3OzdOBL5A0QiMRmJFBOIYQKRWlQBbNCoVAoHgzCEGeN3UhgBoA/4uf8BOWqkc04d47ENWtIXLOGzMjIgnX7Fi3w6N8ft79IV5kAABRaSURBVNdeK19v53uATqvl/OjRXJo1CzMbG5ru2oVT27uYPvI7MAd5euCKSDRUtLbiX0IVzAqFQqF4sEgGftJ/pOjXXJCOc0fKtXOp0+m4eegQCatWkbh2LXkpckMzGxucn3sOt549ce7YEUuH+7NdqtPpODd4MJcXLcLKzY3mBw9Sycfn7t0wDrGfO4s8GegJ9EfZzynuOqpgVigUigeYfRsjAGjXte493sk9IBvYAXwPxOjXKgHPIjpnn/K9nTYri6RNm7iybBnXd+yQkBIkGMX5hRdw79MH5xdewNzGpnxvfJfR5uZy+sUXuf7771Ru1Ihm+/bd3TcAecBqJFpbizwl+Bg1EKi4q6iCWaFQKB5g/rNDf8agAw4jhfORW9YDgS5AO8TerBzJjo8naeNGEtevJ3Xv3oJ1y6pVce3ZE/fXX8exbdu7mypYjuSlpHC8bVsywsJw69WL+sHBd3/vp4ApwBVkIPBd4CXUQKDirqAKZoVCoXiAWTdxHwA9x7e7xzupIEQjVma/IYmCILZ0LyG2dFXK/5bZly6R+N13JKxeTXpISMG6Tc2auHTuTLXOnXF69NEKH46SfvYsx1q1Qpuejv/XX+M1cOC/cFNgLvLzAhkI/IByiUlXKG5FFcwKhUKhUNxJGrAdKZ7j9GtWwFNAN6D2XbptSAgJwcEkrl1bkCoIYOnsjEuXLrj26CE2dZYVM8UjYc0awvr0wczGhhbHj1M5IODfufEfwCwgA/AC/t/evUdXWWZ3HP9iEgiCJCSHiwVhICjlIkO8MJAQE0NQBI0XGhmVVa9L7Squjq2iq+0ArjYVhGnVdupd0CqFdIpoZhhuCjIGQoQRQwKigbEowkBIjoeQkOvTP55DEjLxcEKS857L77PWu0LOeUm2D8+SnYf97r0IW6oh0kWUMIuIiPyQJmyZxnvY9nRn/1acANwKpNEtD5yZpiZO7dpF+dq1nHzvvXOGo8S4XLjuuIMBd95pT5579uz6ADrhwIMPcuzNN4nPymLCxo2BKyv5FpsoH8T+mcwDbkElGtIllDCLiESw749XAxA3MPym0nW5b4E12JPnGu9r/bGDNG4BBnXftz5dWsqJvDyOr15NzYEDza9H9e1LfFYWCTfdROLMmfQaOrT7gvBT/cmTFF1+OQ2VlYx77z1ct90WuG9eC/wHdtIjQCa2Z7O2t3SSEmYRkQimh/4uQDW2J/D72JpnsMNQpmJHcF9Jt51qGmM4vXcvJ/LyKF+7lurS0nPe73v11bhuvZXE226jz/jxjj00eOSXv6Rs3jz6jB/PNXv3Bj6AzdgSjTPAUGAhMCrwYUj4UMIsIhLBFk7PA+CZTXc6HEkIMkAJts75Y6DR+/oobFu6TKB394Zw5vBhKtavp2LdOio3baKpurr5vdgRI0iYMYP4668nLj2dngMHdm8wrTTV1fFJ376Y+nqmVlUR1adPwL53s8PAM8AhbInGX2H/XFSiIRdACbOIiEhnlWMHoeTTMgylD5CFrXUe0f0hNNbUULl5Myfff5+T+fnUHz9+zvsXjx1LfEYG8dOm0X/aNKK7+e/OXRMmcHrvXpJ37qTfpEnd+r1+UC3wn9g/G7BdNJ6i23+QkfCjhFlERKSr1AFbsIlz62qJidjTzVS6dAT3DzGNjXiKinBv2YJ7yxY8BQU01dS03BAVRb/Jk+k/fTr9Jk/mkmuvJSYhocu+f3l+Pl/MnUujx8PYX/2KAbNnd9nXviBbgaXYcpqRwD8DlzoZkIQaJcwiIiLd4RC2zrl1T2cXLT2duy4/Pa+mujpOffop7i1bqNy4Ec+OHZiGhnPu6T1qFJdMmtRyJSdzUWxsh76PaWzk64ULOZybC0DirbcydtWqDn+dbnEY+EfgG6AftlxjoqMRSQhRwiwiEsF+cXc+AH+38haHIwljVdikeS02WQN7ypyK7a6RjH1oMIAaPB57+rx1K6c+/ZSq3btpOnPmnHt6REfTZ8IEYkeMIGbAAHu5XPQ8+2vvZerrqdqzh6o9e6hYv55ThYVw0UWMePZZLnvyyeCaVliFPV3eiZ3eOA9bMhNEIUpwUsIsIhLB1CUjgAzwe2xP5x3YHs8AQ4CbgRl0yyRBfzTV11NdWoqnqIhT3ut0aSk0NZ3/N7cRM2AAY1aton9mZjdE2gUagdeA1d7PZwA/w47XFvkBSphFRCLYN/tOAnDZ2ESHI4kwJ4B1wG+8vwbbySENe+r8Yxw/9WysqqJqzx5qjxyhvryc+hMnWi7v53UnToAx9Jkwgb4TJ9I3OZmEG24gxuVyNnh/bMK2nqsFrsCWaAx2NCIJYkqYRUREnNKILQ/I59xJgsOxp87TAf0V133KgAXAUVTXLD4FTcJcXV1NTk4Op0+fJi4ujry8PAYOHEhycjIAa9asIaHVE7xKmEVEJKwcw546rwNOel+LwQ5EmYUjtc4RwQPkAkXY2vKnsO0ARVrxlXdGLVq0aFGgAsnPz6dnz54sX76cQ4cO4fF4KCsrY9u2bdx333307n1u08Ta2trmX8cGw9O3IiIhaP3LeyjbdYxR1+jfoh3XF5sU3wEkYVugfYudJrjRe1UDf4bt8Sxdoxd2yEw1dhDN77B9msfheFmMBA9feWdAf45NSkpqDsbtdpOYmMj+/ftJS0vj6aefJoirQ0REQtaGVz5nwyufOx2GtBaNHbCxBPhv4D5gEPYEejnwU+AfgEJapgtK50QBf42dBgjwMnbgScefeZQIFPCSjOzsbI4ePcrAgQP58MMPcbvd9O/fn0cffZRZs2aRnZ3dfL9KMkREOm/9y3sAmPGoCjeDWhO2w8avgQLgbAtlF7bOeQYwzJnQws6HwGLsGmcCT2NLYySiBU1Jxuuvv86wYcN49913KS8v5+DBg0yePJkePXoQHR1NcXExaWlpzferJENEpPNGXTNY5RihoAe2FCMD20WjH/BH71WC7fH8KTaxHgr0dCTK8DASW47xO+ArYB+2jlxJc0QLmpIMY0zzQ30ul4vKykoaG+2/NRUUFJCUlBTIcERERIJTf+Bu4L+AF4GZ2JrbfcC/An8BPOf9XNWMF+Zq4HnsWu8G/oaWBzFF2ghoSYbb7WbOnDnU1tYSExPDkiVLeOihh+jTpw8jR47kzTffJCoqqvl+lWSIiHSe+jCHiRrsiehvgOJWrw8HbsB2fRjoQFyh7gi2JONbbB35EuyaSsQJmrZyHaWEWUSk8zTpLwwdxram2wC4va/1wPYXngFcB6iS0X9u4O+B/cAl2PrmsY5GJA7wlXeq26OISJgbOiaBoWMSzn+jhI5hwKPA/wD/gq17jgY+A54FZgPLUMmGv+KxpS4pwCnsifMfHI1IgoxOmEVERMJBFbAFWI9NlM8aBkzzXkMciCuUNGKnAm7Hdif5dzRKO4KoJENERCSS/B/wW+wglMpWr/85tt45E43j/iG1wHxsnfhl2KRZaxURlDCLiIhEogZsB4gPgU+wDw6CLd+Ygk2ef4LaqbVVBfwMOIitZf4FqgmPAEqYRUQi2MLpeQA8s+lOhyMRR53BDkTZCOyiZcJdP+zUwQzgx9iJeALlwDxsH+ypwCK0NmHOV94ZHehgREQksDzlNee/ScJfLC21zCexp84bgENAvvdKwJZrTANGYztvRCoXtlvGY9jT+ZewCbREJJ0wi4iEue+PVwMQN/BihyORoHQQ2Ip9YPBIq9eH0JJgR/JI7s+BJ7DlLX+LncIoYUklGSIiIuKbAQ5gT54/AipavTcKSMOWbURi8rweO9AkClgKJDsbjnQPJcwiIiLiv0ZgD7AZO13wdKv3RmAT5wwiK3l+GViNHaX9hvejhBUlzCIiEWz1P20HYM7PUxyOREJSHbbTxjZsLW9Vq/dGYhPndMI/eW4EnsQOh5kC5BLZNd5hSAmziEgE02hs6TL12OR5KzZ5bn3yPAw7KS8N2+85HGcJHwcexP7Q8HPsA5ISNpQwi4hEsO3/+yUAKbOvcDgSCStnT563YtvVtU6eE4FUbDu2iYRXn+dfY/syDweWo1PmMKKEWURERLpPA7AXe+pcgO1dfFYfYDI2gb4a2/c5lDUAc7APRf4b9gcCCQtKmEVERCQwDPAVNnn+BPhDq/cuAsZgE+ifYLtvhOIJ7XLgbWz99kJnQ5Guo4RZRCSClXz8DQDj0y9zOBKJSEewifNO7Cl0Q6v3XNjEeTL29Ll3wKO7MN8AfwkMAPIcjkW6jBJmEZEIpof+JGjUYOueC7EJdHmr92Kwp88Tvdc4oGegA/RTI3Cj9+NvsVMUJeRpNLaISAQbe91Qp0MQsXpjHwScii3dOIhNnguBfUCx93obmyxfiT15vhpbvhEsnTeisKfLx7zXjxyNRgJAJ8wiIiLivFPYZHmP9ypr834/Wk6exwCjce4E+o/AT73ffw32wUYJeTphFhERkeB2CbaTRqr3czfwe++1C5ukbvNeYDOYUcBYbBJ9JfbUNxA+8n5MQclyhAhowlxdXU1OTg6nT58mLi6OvLw8XnzxRd5//32GDx/OihUriIkJp2aNIiIickHisYNBMrHlG0ewDw2WAvux3Te+8F5rvL/nUmwS/aNW12V0TR9oA3yHrcF+2/va9C74uhISAlqSsWbNGkpKSliwYAG5ubkMHTqU1atXs27dOpYsWcLIkSPJyclpvl8lGSIinaeH/iQsncYmy/uAEu9V3c59FwFDgRHYBHoIEOe94r1Xrza/x2BPtA8AX7b6eKrVPTOwo7KDpa5aOi1oSjKSkpLYvXs3AG63m4aGBjIyMgDIyspi5cqV5yTMrbX+jxAREf8t2noboP+PShga5b2yO/E1znivtnrT0rHjh5zy8Z6ElYD+XHT55Zezc+dOxo0bx65duxg1ahT9+tmRP3FxcVRWVgYyHBERERGR8wpowvzWW29x4403UlpayqxZs2hoaMDj8QDg8XiIj48PZDgiIiIiIucV0JIMYwwJCQkAuFwuvv76a4qKipg/fz6bN29m8uTJ59yvumURERERcVpAH/pzu93MmTOH2tpaYmJiWL16Na+99hr5+fkMGzaMFStW0LNnsI71EREREZFIFNCSjPj4eDZs2MDWrVvZtGkTCQkJPPXUU+Tl5fHFF1/Qr18/GhoaaGpqYu7cuaSnp5OVlUV5uZ2d+e6775KSksLNN9/cXMoh7fvuu++46qqriI2N9bmmo0ePJiMjg4yMDPbt2+dw1MGt7ZoCPPbYY2RkZPDAAw/Q2NgIaJ92hL9rqn3qn507d5KSkkJaWhqPP/44AEuXLmXq1Kncc8891NfXA9qjHeHvmmqP+q/tmtbX1zNlyhT69u1LWVnLtBLtU//4u57ao51kgkBNTY2pqKgw6enppr6+3uzevdvcf//9xhhj3nnnHfP888+buro6M3XqVFNfX29WrVplnnvuOYejDm7+rKkxxqSmpjoZZkhpu6ZFRUXm4YcfNsYYs2zZMrN27Vrt0w7yZ02N0T7119GjR01NTY0xxpi7777bbNu2zdx0003GGGMWL15s8vLytEc7yJ81NUZ7tCParmlxcbE5duyYuffee81XX31ljDHapx3gz3oaoz3aWUHRPTA2Npb+/fs3fz5kyBB69OgB2DKOxMREvvzyS6688kqio6PJysqisLDQqXBDgj9rClBRUcF1113HI488wpkz7fXVkbParumhQ4eYMGECABMnTmTHjh3apx3kz5qC9qm/Bg8eTGxsLADR0dEUFxef07qzsLBQe7SD/FlT0B7tiLZrGhUVxaBBg865R/vUf/6sJ2iPdlZQJMxtuVwuamtrGTNmDC+99BJ33HEHbrdbLeg6ob01Bfjkk0/Ytm0bw4cP59VXX3U4ytAyevRoPv74YwA++ugjKisrtU87qb01Be3TjiouLqa8vJz4+Pg/2Y/aoxfG15qC9uiFOLumY8eO/ZP3tE87ztd6gvZoZwVlwrxx40bi4uLYv38/ixYtYtmyZcTHx6sFXSe0t6ZAc9eS22+/nZKSEidDDDkTJ05k/PjxXH/99Xg8HgYNGqR92kntrSlon3ZERUUF8+bN44033mh3P2qPdtz51hS0Rzuq9Zq2R/u0Y863nqA92llBmTCbNu3nvv/+e6644gpKSkpobGxstwWd+NbemtbV1VFbWwtAQUEBSUlJToYYkhYsWMCWLVtITExk1qxZ2qddoO2aap/6r6Ghgblz57J06VIGDx7Mtdde23xif3Y/ao92jD9rqj3aMW3XtD3ap/7zZz21R7uA00XUxtji/mnTppn4+HiTmZlpCgsLzezZs016erpJS0szZWVlxhhj3n77bTNlyhQzc+ZM43a7HY46uPmzpseOHTPJyckmLS3NZGdnG4/H43TYQa29NU1PTzeZmZkmNze3+T7tU//5s6bap/5buXKlcblcJj093aSnp5vt27ebxYsXm9TUVHPXXXeZ2tpaY4z2aEf4s6baox3T3prm5OSYSy+91KSkpDQ/7Kt96h9/1lN7tPMC2odZRERERCTUBGVJhoiIiIhIsFDCLCIiIiLigxJmEREREREflDCLiIiIiPighFlERERExAclzCIiIiIiPihhFhERERHxQQmziEgYyM3NZcWKFQBkZ2fzxBNPADB//nzWrFnjYGQiIqFPCbOISBhITU2loKAAgMrKSj777DMAduzYQUpKipOhiYiEPCXMIiJhYNKkSRQVFXHgwAHGjRtHdHQ0Ho+HiooKBg8e7HR4IiIhLdrpAEREpPMuvvhievXqxQcffEBKSgoul4tXXnmF5ORkp0MTEQl5OmEWEQkTKSkpvPDCC6SmppKamsoLL7ygcgwRkS6ghFlEJEykpqbS0NBAUlISU6ZM4ejRo0qYRUS6QA9jjHE6CBERERGRYKUTZhERERERH5Qwi4iIiIj4oIRZRERERMQHJcwiIiIiIj4oYRYRERER8UEJs4iIiIiID0qYRURERER8UMIsIiIiIuLD/wPfbpeUcyUwmwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots(1,1, figsize=(12, 4))\n", - "plt_contour_wgrad(x_train, y_train, p_hist, ax, w_range=[180, 220, 0.5], b_range=[80, 120, 0.5],\n", - " contours=[1,5,10,20],resolution=0.5)" - ], - "id": "c5a157bda2c18e2c" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### Increased Learning Rate\n", - "\n", - "
\n", - " \n", - "
\n", - "In the lecture, there was a discussion related to the proper value of the learning rate, $\\alpha$ in equation(3). The larger $\\alpha$ is, the faster gradient descent will converge to a solution. But, if it is too large, gradient descent will diverge. Above you have an example of a solution which converges nicely.\n", - "\n", - "Let's try increasing the value of $\\alpha$ and see what happens:" - ], - "id": "f24d64e2c8fee91c" - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration 0: Cost 2.58e+05 dj_dw: -6.500e+02, dj_db: -4.000e+02 w: 5.200e+02, b: 3.20000e+02\n", - "Iteration 1: Cost 7.82e+05 dj_dw: 1.130e+03, dj_db: 7.000e+02 w: -3.840e+02, b:-2.40000e+02\n", - "Iteration 2: Cost 2.37e+06 dj_dw: -1.970e+03, dj_db: -1.216e+03 w: 1.192e+03, b: 7.32800e+02\n", - "Iteration 3: Cost 7.19e+06 dj_dw: 3.429e+03, dj_db: 2.121e+03 w: -1.551e+03, b:-9.63840e+02\n", - "Iteration 4: Cost 2.18e+07 dj_dw: -5.974e+03, dj_db: -3.691e+03 w: 3.228e+03, b: 1.98886e+03\n", - "Iteration 5: Cost 6.62e+07 dj_dw: 1.040e+04, dj_db: 6.431e+03 w: -5.095e+03, b:-3.15579e+03\n", - "Iteration 6: Cost 2.01e+08 dj_dw: -1.812e+04, dj_db: -1.120e+04 w: 9.402e+03, b: 5.80237e+03\n", - "Iteration 7: Cost 6.09e+08 dj_dw: 3.156e+04, dj_db: 1.950e+04 w: -1.584e+04, b:-9.80139e+03\n", - "Iteration 8: Cost 1.85e+09 dj_dw: -5.496e+04, dj_db: -3.397e+04 w: 2.813e+04, b: 1.73730e+04\n", - "Iteration 9: Cost 5.60e+09 dj_dw: 9.572e+04, dj_db: 5.916e+04 w: -4.845e+04, b:-2.99567e+04\n" - ] - } - ], - "source": [ - "# initialize parameters\n", - "w_init = 0\n", - "b_init = 0\n", - "# set alpha to a large value\n", - "iterations = 10\n", - "tmp_alpha = 8.0e-1\n", - "# run gradient descent\n", - "w_final, b_final, J_hist, p_hist = gradient_descent(x_train ,y_train, w_init, b_init, tmp_alpha, \n", - " iterations, compute_cost, compute_gradient)" - ], - "id": "b8c0fc11602dd2b7" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, $w$ and $b$ are bouncing back and forth between positive and negative with the absolute value increasing with each iteration. Further, each iteration $\\frac{\\partial J(w,b)}{\\partial w}$ changes sign and cost is increasing rather than decreasing. This is a clear sign that the *learning rate is too large* and the solution is diverging. \n", - "Let's visualize this with a plot." - ], - "id": "8b57dc7379bdedc" - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsIAAAFcCAYAAADClth3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdd5yTVd7//1fK9F5gBhhmAAGpQ1MpDisiLrYFFcQuuIu6yOKuq+C96iJyq6uu+nNv1q9lsdyoeyuWXcRGE5QqKtIRcKnD0CaZXlLP74+LZJJMy5RMkpnP8/HgAdeV5LpOrsyQd04+5xydUkohhBBCCCFEB6MPdgOEEEIIIYQIBgnCQgghhBCiQ5IgLIQQQgghOiQJwkIIIYQQokOSICyEEEIIITokCcJCCCGEEKJDkiAsRDtz7NgxJk2aRO/evRkwYAC//vWvqaysbNIx3nrrLQoLCwPUwrr16NGD6urqem8/cuQIH374YcDbMW7cOH766adWPeaMGTP48ssvW/WYngoKCrjjjjsCdnxfzXkt5s+fz6ZNm/y673PPPdecZtUSiNdSCNG+SBAWoh1RSjF58mRuvPFGfv75Z/bu3cvkyZMpKytr0nGCEYQb01ZBOFTZ7fZ6b+vatStLlixps/M157VYuHAhY8aM8eu+rRWEm6Kh5yuEaL8kCAvRjqxatYqUlBRuvfVW977JkyeTkZHB2bNnueqqq8jNzWXixImcPn0agHnz5tGvXz+GDBnCX//6Vz755BO+//57rrvuOsaOHVvrHMuXL2fkyJEMHTqUOXPmAHDy5Ekuvvhihg4dSm5urrsX7rXXXmPw4MEMGTKEhQsXAvDYY49x4YUXMmjQIB588MFaxy8tLWX8+PEMHz6coUOHsnbtWkDrUVyxYgVDhw7l3XffpaysjFtvvZULL7yQkSNH8sMPPwDw4osvup/PH/7wB69j22w2BgwYAMC2bdswGAyUlJRQXl7O8OHD3fd78803GTFiBMOHD+f48ePu5zhp0iQuuOACLrnkEg4dOgRovY4PPfRQrfvXp67rB3DNNdcwYsQIBg0axPvvvw9ogXP48OHceeedjBgxgnXr1jFx4kR+9atf0adPH5588kn3/UaNGgXAggULuOuuu8jLy+O8885j5cqVAFRUVHDttdcycOBAZs2aRWZmZq22rVu3jiuvvJIpU6Zw9dVXt/i18OTqFa+oqOCKK64gNzeXwYMHs27dOq/7zZ8/H5PJxNChQ7n//vtxOp387ne/Y9CgQYwYMYItW7YA1PvzXB9/rq/D4WDmzJkMGDCAG264gWHDhnHkyBEA/vGPf3DhhReSm5vLX/7ylwbPJYQII0oI0W68+OKL6v7776/ztlmzZqkXX3xRKaXUSy+9pGbOnKlMJpPq0aOHcjgcSimliouLlVJKXXLJJWrfvn21jnHmzBk1YcIEVV1drZRS6s4771TLly9Xzz33nJo/f75SSimr1aoqKyvVjh071JAhQ1RJSYlSSimTyeT1t8PhUJMnT1ZbtmxRSimVk5OjqqqqlNVqVaWlpUoppfLz89WwYcOUUkqtXbtW3Xjjje62zJ07Vy1btkwppdR//vMfddFFFymllEpPT1eVlZVez8fTJZdcovLz89WiRYvUsGHD1JdffqlWrVql7rnnHvftCxcuVEop9dxzz6mHH35YKaXUjTfeqH788UellFJff/21mjJlSoP39zR9+nT1xRdf1Hv9PK9LSUmJGjBggLJarerw4cPKYDCo3bt3u69B586dVWFhoaqoqFBZWVmqvLxcHT58WI0cOVIppdRjjz2mLr/8cmW329X333+vxowZo5RS6plnnlHz5s1TSim1fPlyVdd//2vXrlXJycnq1KlT7teyJa9FXdfgww8/VHfccYdSSvsZcB3fU0ZGhvvf77//vrruuuuU0+lUO3fuVOeff75Squ6fZ1+eP8f+XN/333/f/bx27Nih9Hq9Onz4sNq1a5eaNm2acjgcym63q8svv1zt3Lmz1vmEEOHHGOwgLoRoG5s2bWLBggUA3HbbbSxatIjExETi4+O5++67mTx5MldddVWDx9iyZQs7d+5k5MiRAFRVVTFkyBAuuOAC7rzzToxGI1OnTqV///6sW7eOm266icTERABSU1MBWLNmDX/961+prq7mzJkz7N271308l4ceeogNGzag1+vZv38/DoejVlvWrFnDihUrmD9/PgDFxcUADB8+nDvuuIOpU6cyefLkWo8bM2YMGzduZOPGjcybN4+NGzdiNBq9vrafNGkSAMOGDeONN94AYO3atV71prGxsQ3evynXD7Se7GXLlgFw9OhR8vPz0el09O/fn4EDB3q1Py0tDYCePXty8uRJjEbv/8qvvvpqDAYDw4YN4+jRo4D2+j/yyCOA1jvq2X5PeXl5ZGRkuLdb8lrUZfDgwfzxj3/k4Ycf5rrrruPCCy+s976udt90003odDoGDx5MbGwsp0+frvPnuSH+XN9NmzYxZcoUAHJzc+nXrx+gvfabNm1yf2tQXl7OwYMHGTx4cIPnFEKEPgnCQrQj/fv355NPPqnzNqUUOp3Oa5/RaOT7779nxYoVLFmyhI8++oi33nqr3uOrczXIr732Wq3bvvnmG5YvX851113HSy+9VOf5qqur+eMf/8h3331HZmYmDzzwABaLxes+77zzDtXV1Wzbtg2j0UhaWho2m63OtnzxxRd07drVa//nn3/O2rVr+fDDD3n55ZdrffV+8cUXs3LlSk6ePMnkyZPdz/eWW25x3ycqKgoAvV7vrh3V6/Vs27YNvb52RVld969Lfddv7dq1bNmyhW+//Zbo6GhGjBiBxWIhOjqauLi4Os/leT7fIFxXe+p6Perieb6WvhZ16du3Lz/88AOffvops2bNYvbs2dx555313t+33UqpJj0f8P/6NnSuWbNm8fDDD/t1PiFE+JAaYSHakQkTJmAymXjvvffc+5YuXcqpU6e4+OKL3fv/+c9/kpeXR3l5OSUlJUyaNIlnnnmG7du3AxAfH1/nALtRo0axZs0aTpw4AWh1midPnuTo0aN06dKFWbNmMW3aNHbt2sWll17Ke++95z6O2WymuroavV5PWloaxcXF7h46T6WlpWRkZGA0Glm+fDlms7nONk2YMIGXXnrJvb1z506cTif5+flMmDCBF154gX379tU6/pgxY/jXv/5F9+7diYmJwWq1cujQIXr37t3gtR07diyvv/46AE6nkz179jR4/7rUd/1KS0tJTU0lOjqa7du3s3PnziYfuzFjxozho48+ArQPC/7MJNKS16I+BQUFxMfHM2PGDO6991527NhR6z46nQ6n0wloH1zef/99lFLs2bOH6upqMjIy6vx5buh5+HN9x4wZw8cffwzArl272L9/PwDjx4/nvffec/d0Hz16lJKSknrPJ4QIHxKEhWhH9Ho9//73v3nnnXfo3bs3AwcOZOXKlSQmJrJgwQI+//xzcnNz+fjjj3niiScoKyvj6quvZsiQIVx//fX893//NwB33HEHt912W63Bcp07d+all15i0qRJ5ObmctVVV2E2m1m3bh25ubkM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ivLycqZMmeJ1zLy8PCoqKti+fbt734cffsi0adP46aefWLx4MTt37qS4uJglS5YQGxtbq10Wi4X169dz8cUXe+1/9913WbZsGfv372fTpk28+uqrjV6DvLw81q9fD8CGDRvo0aOH1/bYsWMBiIyMZNiwYaxdu7bRYwoRbGERhCtssOIYPPIt2BzBbo0QQoiOxmQykZ6ejsFgqPP2LVu2YDQaufvuu4mIiGDWrFkYDAa2bNlCREQEZWVlHDhwAL1ez6hRo+o9jiedTsfUqVNZunQpAN9++y0AF110EUajEYvFwr59+1BKkZubW+cCVQcPHiQpKanWbb/+9a/p1asXnTp14oEHHuDDDz9stD2+QXju3LmsX78epRQbN24kLy/Pfd9+/fq5e8SFCGUhH4SnroDkN+CKz+CpbfDd2WC3SAghREeTlpZGYWEhDkfdvTEFBQV0797da192djYnT57ksssu46677mL69Ol069aNBQsW+H3eG2+8kQ8++ACApUuXusswevfuzbPPPsvcuXPJyMjgvvvuw2Kx1Hp8SUkJ8fHxtfZ7ttXVzsYMHjyYs2fPcvz4cQ4ePMiMGTPYunUru3fvJi0tjczMTPd9ExISZFVIERZCPghH6sHurNleeyJ4bRFCCNExjR49GqPRyOeff17n7V27dnXPyuBy7NgxunTpAsADDzzA7t27+eabb3j99ddZtWoVoPX6NnZei8XCtm3b3GURLtOnT2fr1q3s2rWLDRs2sGTJklqPT0pKory8vNZ+z7YeP37cK8TWR6/XM3r0aBYtWsTQoUOJjY0lIyODt99+26s3GKCsrKzOHmohQk3IB+FLu3lvSxAWQgjR1pKTk3nkkUe49957WbVqFVarlYqKCl5++WWWLl3KqFGjsFqtLF68GLvdzquvvordbmfUqFF8//33/PDDDzgcDhITEzEaje7SiM6dO3Po0KF6z+sqj5g7dy4RERGMGDECgP379/PNN99gtVqJj48nKiqqznKLvn37UlpaSmlpqdf+N954gyNHjnD27FleeOEFd33ykSNHGgzneXl5vPLKK+56YN9tl/379zN48GA/rqwQwRXQILxkyRIuu+wyxo0bx4kTzUuwvkF44ymwSJ2wEEKINvboo4/y6KOP8oc//IGUlBT69+/Pjz/+yNixY4mMjGTZsmUsXryYtLQ03nzzTZYtW0Zk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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt_divergence(p_hist, J_hist,x_train, y_train)\n", - "plt.show()" - ], - "id": "624c656455504a91" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, the left graph shows $w$'s progression over the first few steps of gradient descent. $w$ oscillates from positive to negative and cost grows rapidly. Gradient Descent is operating on both $w$ and $b$ simultaneously, so one needs the 3-D plot on the right for the complete picture." - ], - "id": "aaeedde0bcfa1065" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Congratulations!\n", - "In this lab you:\n", - "- delved into the details of gradient descent for a single variable.\n", - "- developed a routine to compute the gradient\n", - "- visualized what the gradient is\n", - "- completed a gradient descent routine\n", - "- utilized gradient descent to find parameters\n", - "- examined the impact of sizing the learning rate" - ], - "id": "5eff9781d2060439" - } - ], - "metadata": { - "dl_toc_settings": { - "rndtag": "40291" - }, - "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.6" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week1/betaversion/C1_W1_Lab01_Python_Jupyter_Soln.ipynb b/week1/betaversion/C1_W1_Lab01_Python_Jupyter_Soln.ipynb deleted file mode 100644 index 2b26925..0000000 --- a/week1/betaversion/C1_W1_Lab01_Python_Jupyter_Soln.ipynb +++ /dev/null @@ -1,159 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Brief Introduction to Python and Jupyter Notebooks\n", - "Welcome to the first optional lab! \n", - "Optional labs are available to:\n", - "- provide information - like this notebook\n", - "- reinforce lecture material with hands-on examples\n", - "- provide working examples of routines used in the graded labs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab, you will:\n", - "- Get a brief introduction to Jupyter notebooks\n", - "- Take a tour of Jupyter notebooks\n", - "- Learn the difference between markdown cells and code cells\n", - "- Practice some basic python\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The easiest way to become familiar with Jupyter notebooks is to take the tour available above in the Help menu:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "
missing
\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Jupyter notebooks have two types of cells that are used in this course. Cells such as this which contain documentation called `Markdown Cells`. The name is derived from the simple formatting language used in the cells. You will not be required to produce markdown cells. Its useful to understand the `cell pulldown` shown in graphic below. Occasionally, a cell will end up in the wrong mode and you may need to restore it to the right state:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " missing\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The other type of cell is the `code cell` where you will write your code:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "This is code cell\n" - ] - } - ], - "source": [ - "#This is a 'Code' Cell\n", - "print(\"This is code cell\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Python\n", - "You can write your code in the code cells. \n", - "To run the code, select the cell and either\n", - "- hold the shift-key down and hit 'enter' or 'return'\n", - "- click the 'run' arrow above\n", - "
\n", - " \n", - "
\n", - "\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Print statement\n", - "Print statements will generally use the python f-string style. \n", - "Try creating your own print in the following cell. \n", - "Try both methods of running the cell." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "f strings allow you to embed variables right in the strings!\n" - ] - } - ], - "source": [ - "# print statements\n", - "variable = \"right in the strings!\"\n", - "print(f\"f strings allow you to embed variables {variable}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Congratulations!\n", - "You now know how to find your way around a Jupyter Notebook." - ] - } - ], - "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.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week1/betaversion/C1_W1_Lab02_Course_Preview_Soln.ipynb b/week1/betaversion/C1_W1_Lab02_Course_Preview_Soln.ipynb deleted file mode 100644 index 81a0133..0000000 --- a/week1/betaversion/C1_W1_Lab02_Course_Preview_Soln.ipynb +++ /dev/null @@ -1,33 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Ungraded Lab - Examples of Material that will be covered in this course\n", - "Work in Progress" - ] - } - ], - "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.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week1/betaversion/C1_W1_Lab03_Model_Representation_Soln.ipynb b/week1/betaversion/C1_W1_Lab03_Model_Representation_Soln.ipynb deleted file mode 100644 index 2d7ae94..0000000 --- a/week1/betaversion/C1_W1_Lab03_Model_Representation_Soln.ipynb +++ /dev/null @@ -1,428 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Model Representation\n", - "\n", - "
\n", - " \n", - "
" - ], - "id": "7fae6127b91f846d" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab you will:\n", - "- Learn to implement the model $f_{w,b}$ for linear regression with one variable" - ], - "id": "558caa26f894e501" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Notation\n", - "Here is a summary of some of the notation you will encounter. \n", - "\n", - "|General
Notation | Description| Python (if applicable) |\n", - "|: ------------|: ------------------------------------------------------------||\n", - "| $a$ | scalar, non bold ||\n", - "| $\\mathbf{a}$ | vector, bold ||\n", - "| **Regression** | | | |\n", - "| $\\mathbf{x}$ | Training Example feature values (in this lab - Size (1000 sqft)) | `x_train` | \n", - "| $\\mathbf{y}$ | Training Example targets (in this lab Price (1000s of dollars)).) | `y_train` \n", - "| $x^{(i)}$, $y^{(i)}$ | $i_{th}$Training Example | `x_i`, `y_i`|\n", - "| m | Number of training examples | `m`|\n", - "| $w$ | parameter: weight, | `w` |\n", - "| $b$ | parameter: bias | `b` | \n", - "| $f_{w,b}(x^{(i)})$ | The result of the model evaluation at $x^{(i)}$ parameterized by $w,b$: $f_{w,b}(x^{(i)}) = wx^{(i)}+b$ | `f_wb` | \n" - ], - "id": "387f93949917f1d2" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Tools\n", - "In this lab you will make use of: \n", - "- NumPy, a popular library for scientific computing\n", - "- Matplotlib, a popular library for plotting data" - ], - "id": "26fe2d14cedb9a1a" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "plt.style.use('./deeplearning.mplstyle')" - ], - "id": "e7a25e396c4b3d2d" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Problem Statement\n", - " \n", - "\n", - "As in the lecture, you will use the motivating example of housing price prediction. \n", - "This lab will use a simple data set with only two data points - a house with 1000 square feet(sqft) sold for \\\\$300,000 and a house with 2000 square feet sold for \\\\$500,000. These two points will constitute our *data or training set*. In this lab, the units of size are 1000 sqft and the units of price are $1000's of dollars.\n", - "\n", - "| Size (1000 sqft) | Price (1000s of dollars) |\n", - "| -------------------| ------------------------ |\n", - "| 1.0 | 300 |\n", - "| 2.0 | 500 |\n", - "\n", - "You would like to fit a linear regression model (shown above as the blue straight line) through these two points, so you can then predict price for other houses - say, a house with 1200 sqft.\n" - ], - "id": "a9cebb19cb18409e" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Please run the following code cell to create your `x_train` and `y_train` variables. The data is stored in one-dimensional NumPy arrays." - ], - "id": "514bee6257b3de45" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# x_train is the input variable (size in 1000 square feet)\n", - "# y_train in the target (price in 1000s of dollars)\n", - "x_train = np.array([1.0, 2.0])\n", - "y_train = np.array([300.0, 500.0])\n", - "print(f\"x_train = {x_train}\")\n", - "print(f\"y_train = {y_train}\")" - ], - "id": "a2b5841f412550ba" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - ">**Note**: The course will frequently utilize the python 'f-string' output formatting described [here](https://docs.python.org/3/tutorial/inputoutput.html) when printing. The content between the curly braces is evaluated when producing the output." - ], - "id": "8845118d4044e7df" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Number of training examples `m`\n", - "You will use `m` to denote the number of training examples. Numpy arrays have a `.shape` parameter. `x_train.shape` returns a python tuple with an entry for each dimension. `x_train.shape[0]` is the length of the array and number of examples as shown below." - ], - "id": "9435bc31d71a55a1" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# m is the number of training examples\n", - "print(f\"x_train.shape: {x_train.shape}\")\n", - "m = x_train.shape[0]\n", - "print(f\"Number of training examples is: {m}\")" - ], - "id": "3042542073a8dee" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "One can also use the Python `len()` function as shown below." - ], - "id": "681e2c43a225a085" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# m is the number of training examples\n", - "m = len(x_train)\n", - "print(f\"Number of training examples is: {m}\")" - ], - "id": "29b77e357217cb68" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Training example `x_i, y_i`\n", - "\n", - "You will use (x$^{(i)}$, y$^{(i)}$) to denote the $i^{th}$ training example. Since Python is zero indexed, (x$^{(0)}$, y$^{(0)}$) is (1.0, 300.0) and (x$^{(1)}$, y$^{(1)}$) is (2.0, 500.0). \n", - "\n", - "To access a value in a Numpy array, one indexes the array with the desired offset. For example the syntax to access location zero of `x_train` is `x_train[0]`.\n", - "Run the next code block below to get the $i^{th}$ training example." - ], - "id": "a09b9410eb2bdb4f" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "i = 0 # Change this to 1 to see (x^1, y^1)\n", - "\n", - "x_i = x_train[i]\n", - "y_i = y_train[i]\n", - "print(f\"(x^({i}), y^({i})) = ({x_i}, {y_i})\")" - ], - "id": "6c3c658d4f75db4" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Plotting the data" - ], - "id": "a49af67439b97d82" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can plot these two points using the `scatter()` function in the `matplotlib` library, as shown in the cell below. \n", - "- The function arguments `marker` and `c` show the points as red crosses (the default is blue dots).\n", - "\n", - "You can also use other functions in the `matplotlib` library to display the title and labels for the axes." - ], - "id": "b15cbcf6b0ca004c" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Plot the data points\n", - "plt.scatter(x_train, y_train, marker='x', c='r')\n", - "# Set the title\n", - "plt.title(\"Housing Prices\")\n", - "# Set the y-axis label\n", - "plt.ylabel('Price (in 1000s of dollars)')\n", - "# Set the x-axis label\n", - "plt.xlabel('Size (1000 sqft)')\n", - "plt.show()" - ], - "id": "24298cc22c6eae4b" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Model function\n", - "\n", - " As described in lecture, the model function for linear regression (which is a function that maps from `x` to `y`) is represented as \n", - "\n", - "$$ f_{w,b}(x^{(i)}) = wx^{(i)} + b \\tag{1}$$\n", - "\n", - "The formula above is how you can represent straight lines - different values of $w$ and $b$ give you different straight lines on the plot.




\n", - "\n", - "Let's try to get a better intuition for this through the code blocks below. Let's start with $w = 100$ and $b = 100$. \n", - "\n", - "**Note: You can come back to this cell to adjust the model's w and b parameters**" - ], - "id": "1650263e8dd4d997" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "w = 100\n", - "b = 100\n", - "print(f\"w: {w}\")\n", - "print(f\"b: {b}\")" - ], - "id": "d14be934509bf334" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, let's compute the value of $f_{w,b}(x^{(i)})$ for your two data points. You can explicitly write this out for each data point as - \n", - "\n", - "for $x^{(0)}$, `f_wb = w * x[0] + b`\n", - "\n", - "for $x^{(1)}$, `f_wb = w * x[1] + b`\n", - "\n", - "For a large number of data points, this can get unwieldy and repetitive. So instead, you can calculate the function output in a `for` loop as shown in the `compute_model_output` function below.\n", - "> **Note**: The argument description `(ndarray (m,))` describes a Numpy n-dimensional array of shape (m,). `(scalar)` describes an argument without dimensions, just a magnitude. \n", - "> **Note**: `np.zero(n)` will return a one-dimensional numpy array with $n$ entries \n" - ], - "id": "7d6df6dd84468603" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_model_output(x, w, b):\n", - " \"\"\"\n", - " Computes the prediction of a linear model\n", - " Args:\n", - " x (ndarray (m,)): Data, m examples \n", - " w,b (scalar) : model parameters \n", - " Returns\n", - " y (ndarray (m,)): target values\n", - " \"\"\"\n", - " m = x.shape[0]\n", - " f_wb = np.zeros(m)\n", - " for i in range(m):\n", - " f_wb[i] = w * x[i] + b\n", - " \n", - " return f_wb" - ], - "id": "1fcf5af9a7d85129" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now let's call the `compute_model_output` function and plot the output.." - ], - "id": "47d041104e3c39d6" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "tmp_f_wb = compute_model_output(x_train, w, b,)\n", - "\n", - "# Plot our model prediction\n", - "plt.plot(x_train, tmp_f_wb, c='b',label='Our Prediction')\n", - "\n", - "# Plot the data points\n", - "plt.scatter(x_train, y_train, marker='x', c='r',label='Actual Values')\n", - "\n", - "# Set the title\n", - "plt.title(\"Housing Prices\")\n", - "# Set the y-axis label\n", - "plt.ylabel('Price (in 1000s of dollars)')\n", - "# Set the x-axis label\n", - "plt.xlabel('Size (1000 sqft)')\n", - "plt.legend()\n", - "plt.show()" - ], - "id": "736ec583c1cf5d67" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As you can see, setting $w = 100$ and $b = 100$ does *not* result in a line that fits our data. \n", - "\n", - "### Challenge\n", - "Try experimenting with different values of $w$ and $b$. What should the values be for a line that fits our data?\n", - "\n", - "#### Tip:\n", - "You can use your mouse to click on the triangle to the left of the green \"Hints\" below to reveal some hints for choosing b and w." - ], - "id": "7dec7d8a8efef44" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "\n", - " Hints\n", - "\n", - "

\n", - "

    \n", - "
  • Try $w = 200$ and $b = 100$
  • \n", - "
\n", - "

" - ], - "id": "5ba15f56d2568e04" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Prediction\n", - "Now that we have a model, we can use it to make our original prediction. Let's predict the price of a house with 1200 sqft. Since the units of $x$ are in 1000's of sqft, $x$ is 1.2.\n" - ], - "id": "2ae9a0f157f44afb" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "w = 200 \n", - "b = 100 \n", - "x_i = 1.2\n", - "cost_1200sqft = w * x_i + b \n", - "\n", - "print(f\"${cost_1200sqft:.0f} thousand dollars\")" - ], - "id": "7604756c838dc53a" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Congratulations!\n", - "In this lab you have learned:\n", - " - Linear regression builds a model which establishes a relationship between features and targets\n", - " - In the example above, the feature was house size and the target was house price\n", - " - for simple linear regression, the model has two parameters $w$ and $b$ whose values are 'fit' using *training data*.\n", - " - once a model's parameters have been determined, the model can be used to make predictions on novel data." - ], - "id": "b9411842a79a5c" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [], - "id": "6854e2f089d03b0c" - } - ], - "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.6" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week1/betaversion/C1_W1_Lab04_Cost_function_Soln.ipynb b/week1/betaversion/C1_W1_Lab04_Cost_function_Soln.ipynb deleted file mode 100644 index a18c5da..0000000 --- a/week1/betaversion/C1_W1_Lab04_Cost_function_Soln.ipynb +++ /dev/null @@ -1,307 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Cost Function \n", - "
\n", - "
\n", - "
\n", - "\n" - ], - "id": "7d3391ce25e5ba89" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab you will:\n", - "- you will implement and explore the `cost` function for linear regression with one variable. \n" - ], - "id": "1e010f719c5d086f" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Tools\n", - "In this lab we will make use of: \n", - "- NumPy, a popular library for scientific computing\n", - "- Matplotlib, a popular library for plotting data\n", - "- local plotting routines in the lab_utils_uni.py file in the local directory" - ], - "id": "13698dcbd73ca0d9" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "%matplotlib widget\n", - "import matplotlib.pyplot as plt\n", - "from lab_utils_uni import plt_intuition, plt_stationary, plt_update_onclick, soup_bowl\n", - "plt.style.use('./deeplearning.mplstyle')" - ], - "id": "32c06d217d8bb153" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Problem Statement\n", - "\n", - "You would like a model which can predict housing prices given the size of the house. \n", - "Let's use the same two data points as before the previous lab- a house with 1000 square feet sold for \\\\$300,000 and a house with 2000 square feet sold for \\\\$500,000.\n", - "\n", - "\n", - "| Size (1000 sqft) | Price (1000s of dollars) |\n", - "| -------------------| ------------------------ |\n", - "| 1 | 300 |\n", - "| 2 | 500 |\n" - ], - "id": "68e608da30aff630" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "x_train = np.array([1.0, 2.0]) #(size in 1000 square feet)\n", - "y_train = np.array([300.0, 500.0]) #(price in 1000s of dollars)" - ], - "id": "8f289b3bf82b01f0" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Computing Cost\n", - "The term 'cost' in this assignment might be a little confusing since the data is housing cost. Here, cost is a measure how well our model is predicting the target price of the house. The term 'price' is used for housing data.\n", - "\n", - "The equation for cost with one variable is:\n", - " $$J(w,b) = \\frac{1}{2m} \\sum\\limits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)})^2 \\tag{1}$$ \n", - " \n", - "where \n", - " $$f_{w,b}(x^{(i)}) = wx^{(i)} + b \\tag{2}$$\n", - " \n", - "- $f_{w,b}(x^{(i)})$ is our prediction for example $i$ using parameters $w,b$. \n", - "- $(f_{w,b}(x^{(i)}) -y^{(i)})^2$ is the squared difference between the target value and the prediction. \n", - "- These differences are summed over all the $m$ examples and divided by `2m` to produce the cost, $J(w,b)$. \n", - ">Note, in lecture summation ranges are typically from 1 to m, while code will be from 0 to m-1.\n" - ], - "id": "ab44dcb0c92cfdc" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The code below calculates cost by looping over each example. In each loop:\n", - "- `f_wb`, a prediction is calculated\n", - "- the difference between the target and the prediction is calculated and squared.\n", - "- this is added to the total cost." - ], - "id": "a63a74f54bb59b2d" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_cost(x, y, w, b): \n", - " \"\"\"\n", - " Computes the cost function for linear regression.\n", - " \n", - " Args:\n", - " x (ndarray (m,)): Data, m examples \n", - " y (ndarray (m,)): target values\n", - " w,b (scalar) : model parameters \n", - " \n", - " Returns\n", - " total_cost (float): The cost of using w,b as the parameters for linear regression\n", - " to fit the data points in x and y\n", - " \"\"\"\n", - " # number of training examples\n", - " m = x.shape[0] \n", - " \n", - " cost_sum = 0 \n", - " for i in range(m): \n", - " f_wb = w * x[i] + b \n", - " cost = (f_wb - y[i]) ** 2 \n", - " cost_sum = cost_sum + cost \n", - " total_cost = (1 / (2 * m)) * cost_sum \n", - "\n", - " return total_cost" - ], - "id": "60ea841f910b8fb8" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Cost Function Intuition" - ], - "id": "b1c901ba1558365" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " Your goal is to find a model $f_{w,b}(x) = wx + b$, with parameters $w,b$, which will accurately predict house values given an input $x$. The cost is a measure of how accurate the model is on the training data.\n", - "\n", - "The cost equation (1) above shows that if $w$ and $b$ can be selected such that the predictions $f_{w,b}(x)$ match the target data $y$, the $(f_{w,b}(x^{(i)}) - y^{(i)})^2 $ term will be zero and the cost minimized. In this simple two point example, you can achieve this!\n", - "\n", - "In the previous lab, you determined that $b=100$ provided an optimal solution so let's set $b$ to 100 and focus on $w$.\n", - "\n", - "
\n", - "Below, use the slider control to select the value of $w$ that minimizes cost. It can take a few seconds for the plot to update." - ], - "id": "954affed3a8238a1" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt_intuition(x_train,y_train)" - ], - "id": "1b2e52672dee209" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The plot contains a few points that are worth mentioning.\n", - "- cost is minimized when $w = 200$, which matches results from the previous lab\n", - "- Because the difference between the target and pediction is squared in the cost equation, the cost increases rapidly when $w$ is either too large or too small.\n", - "- Using the `w` and `b` selected by minimizing cost results in a line which is a perfect fit to the data." - ], - "id": "63966209b0e61188" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Cost Function Visualization- 3D\n", - "\n", - "You can see how cost varies with respect to *both* `w` and `b` by plotting in 3D or using a contour plot. \n", - "It is worth noting that some of the plotting in this course can become quite involved. The plotting routines are provided and while it can be instructive to read through the code to become familiar with the methods, it is not needed to complete the course successfully. The routines are in lab_utils_uni.py in the local directory." - ], - "id": "8e2feee1b673a863" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Larger Data Set\n", - "It's use instructive to view a scenario with a few more data points. This data set includes data points that do not fall on the same line. What does that mean for the cost equation? Can we find $w$, and $b$ that will give us a cost of 0? " - ], - "id": "454fc752f58e3ee" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "x_train = np.array([1.0, 1.7, 2.0, 2.5, 3.0, 3.2])\n", - "y_train = np.array([250, 300, 480, 430, 630, 730,])" - ], - "id": "dc3d7ddc773fc308" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the contour plot, click on a point to select `w` and `b` to achieve the lowest cost. Use the contours to guide your selections. Note, it can take a few seconds to update the graph. " - ], - "id": "7685a3371c85960d" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt.close('all') \n", - "fig, ax, dyn_items = plt_stationary(x_train, y_train)\n", - "updater = plt_update_onclick(fig, ax, x_train, y_train, dyn_items)" - ], - "id": "9132ad0f6d362e2f" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, note the dashed lines in the left plot. These represent the portion of the cost contributed by each example in your training set. In this case, values of approximately $w=209$ and $b=2.4$ provide low cost. Note that, because our training examples are not on a line, the minimum cost is not zero." - ], - "id": "78bf73a9e76b7764" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Convex Cost surface\n", - "The fact that the cost function squares the loss ensures that the 'error surface' is convex like a soup bowl. It will always have a minimum that can be reached by following the gradient in all dimensions. In the previous plot, because the $w$ and $b$ dimensions scale differently, this is not easy to recognize. The following plot, where $w$ and $b$ are symmetric, was shown in lecture:" - ], - "id": "136c6383bf6097f5" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "soup_bowl()" - ], - "id": "2a02853e7204d759" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Congratulations!\n", - "You have learned the following:\n", - " - The cost equation provides a measure of how well your predictions match your training data.\n", - " - Minimizing the cost can provide optimal values of $w$, $b$." - ], - "id": "1f57a3241189a2cc" - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [], - "id": "9b162b4e8ebec360" - } - ], - "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.6" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week1/betaversion/C1_W1_Lab05_Gradient_Descent_Soln.ipynb b/week1/betaversion/C1_W1_Lab05_Gradient_Descent_Soln.ipynb deleted file mode 100644 index 16db021..0000000 --- a/week1/betaversion/C1_W1_Lab05_Gradient_Descent_Soln.ipynb +++ /dev/null @@ -1,558 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Gradient Descent for Linear Regression\n", - "\n", - "
\n", - "
\n", - "
" - ], - "id": "5c7e9de1670dfc91" - }, - { - "cell_type": "markdown", - "id": "da452e68", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab, you will:\n", - "- automate the process of optimizing $w$ and $b$ using gradient descent." - ] - }, - { - "cell_type": "markdown", - "id": "6f6d4021", - "metadata": {}, - "source": [ - "## Tools\n", - "In this lab, we will make use of: \n", - "- NumPy, a popular library for scientific computing\n", - "- Matplotlib, a popular library for plotting data\n", - "- plotting routines in the lab_utils.py file in the local directory" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ef4d610a", - "metadata": {}, - "outputs": [], - "source": [ - "import math, copy\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "plt.style.use('./deeplearning.mplstyle')\n", - "from lab_utils_uni import plt_house_x, plt_contour_wgrad, plt_divergence, plt_gradients" - ] - }, - { - "cell_type": "markdown", - "id": "c571a7b4", - "metadata": {}, - "source": [ - "\n", - "# Problem Statement\n", - "\n", - "Let's use the same two data points as before - a house with 1000 square feet sold for \\\\$300,000 and a house with 2000 square feet sold for \\\\$500,000.\n", - "\n", - "| Size (1000 sqft) | Price (1000s of dollars) |\n", - "| ----------------| ------------------------ |\n", - "| 1 | 300 |\n", - "| 2 | 500 |\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "26dd9666", - "metadata": {}, - "outputs": [], - "source": [ - "# Load our data set\n", - "x_train = np.array([1.0, 2.0]) #features\n", - "y_train = np.array([300.0, 500.0]) #target value" - ] - }, - { - "cell_type": "markdown", - "id": "2b7851bd", - "metadata": {}, - "source": [ - "\n", - "### Compute_Cost\n", - "This was developed in the last lab. We'll need it again here." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9c6ffb7d", - "metadata": {}, - "outputs": [], - "source": [ - "#Function to calculate the cost\n", - "def compute_cost(x, y, w, b):\n", - " \n", - " m = x.shape[0] \n", - " cost = 0\n", - " \n", - " for i in range(m):\n", - " f_wb = w * x[i] + b\n", - " cost = cost + (f_wb - y[i])**2\n", - " total_cost = 1 / (2 * m) * cost\n", - "\n", - " return total_cost" - ] - }, - { - "cell_type": "markdown", - "id": "fd4be849", - "metadata": {}, - "source": [ - "\n", - "## Gradient descent summary\n", - "So far in this course, you have developed a linear model that predicts $f_{w,b}(x^{(i)})$:\n", - "$$f_{w,b}(x^{(i)}) = wx^{(i)} + b \\tag{1}$$\n", - "In linear regression, you utilize input training data to fit the parameters $w$,$b$ by minimizing a measure of the error between our predictions $f_{w,b}(x^{(i)})$ and the actual data $y^{(i)}$. The measure is called the $cost$, $J(w,b)$. In training you measure the cost over all of our training samples $x^{(i)},y^{(i)}$\n", - "$$J(w,b) = \\frac{1}{2m} \\sum\\limits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)})^2\\tag{2}$$ " - ] - }, - { - "cell_type": "markdown", - "id": "6061233c", - "metadata": {}, - "source": [ - "\n", - "In lecture, *gradient descent* was described as:\n", - "\n", - "$$\\begin{align*} \\text{repeat}&\\text{ until convergence:} \\; \\lbrace \\newline\n", - "\\; w &= w - \\alpha \\frac{\\partial J(w,b)}{\\partial w} \\tag{3} \\; \\newline \n", - " b &= b - \\alpha \\frac{\\partial J(w,b)}{\\partial b} \\newline \\rbrace\n", - "\\end{align*}$$\n", - "where, parameters $w$, $b$ are updated simultaneously. \n", - "The gradient is defined as:\n", - "$$\n", - "\\begin{align}\n", - "\\frac{\\partial J(w,b)}{\\partial w} &= \\frac{1}{m} \\sum\\limits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)})x^{(i)} \\tag{4}\\\\\n", - " \\frac{\\partial J(w,b)}{\\partial b} &= \\frac{1}{m} \\sum\\limits_{i = 0}^{m-1} (f_{w,b}(x^{(i)}) - y^{(i)}) \\tag{5}\\\\\n", - "\\end{align}\n", - "$$\n", - "\n", - "Here *simultaniously* means that you calculate the partial derivatives for all the parameters before updating any of the parameters." - ] - }, - { - "cell_type": "markdown", - "id": "6cfb9401", - "metadata": {}, - "source": [ - "\n", - "## Implement Gradient Descent\n", - "You will implement batch gradient descent algorithm for one feature. You will need three functions. \n", - "- `compute_gradient` implementing equation (4) and (5) above\n", - "- `compute_cost` implementing equation (2) above (code from previous lab)\n", - "- `gradient_descent`, utilizing compute_gradient and compute_cost\n", - "\n", - "Conventions:\n", - "- The naming of python variables containing partial derivatives follows this pattern,$\\frac{\\partial J(w,b)}{\\partial b}$ will be `dj_db`.\n", - "- w.r.t is With Respect To, as in partial derivative of $J(wb)$ With Respect To $b$.\n" - ] - }, - { - "cell_type": "markdown", - "id": "f9b6ad38", - "metadata": {}, - "source": [ - "\n", - "### compute_gradient\n", - "\n", - "`compute_gradient` implements (4) and (5) above and returns $\\frac{\\partial J(w,b)}{\\partial w}$,$\\frac{\\partial J(w,b)}{\\partial b}$. The embedded comments describe the operations." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "857066af", - "metadata": {}, - "outputs": [], - "source": [ - "def compute_gradient(x, y, w, b): \n", - " \"\"\"\n", - " Computes the gradient for linear regression \n", - " Args:\n", - " x (ndarray (m,)): Data, m examples \n", - " y (ndarray (m,)): target values\n", - " w,b (scalar) : model parameters \n", - " Returns\n", - " dj_dw (scalar): The gradient of the cost w.r.t. the parameters w\n", - " dj_db (scalar): The gradient of the cost w.r.t. the parameter b \n", - " \"\"\"\n", - " \n", - " # Number of training examples\n", - " m = x.shape[0] \n", - " dj_dw = 0\n", - " dj_db = 0\n", - " \n", - " for i in range(m): \n", - " f_wb = w * x[i] + b \n", - " dj_dw_i = (f_wb - y[i]) * x[i] \n", - " dj_db_i = f_wb - y[i] \n", - " dj_db += dj_db_i\n", - " dj_dw += dj_dw_i \n", - " dj_dw = dj_dw / m \n", - " dj_db = dj_db / m \n", - " \n", - " return dj_dw, dj_db" - ] - }, - { - "cell_type": "markdown", - "id": "dccbb458", - "metadata": {}, - "source": [ - "
" - ] - }, - { - "cell_type": "markdown", - "id": "42358679", - "metadata": {}, - "source": [ - " The lectures described how gradient descent utilizes the partial derivative of the cost with respect to a parameter at a point to update that parameter. \n", - "Let's use our `compute_gradient` function to find and plot some partial derivatives of our cost function relative to one of the parameters, $w_0$.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "01d52fb1", - "metadata": {}, - "outputs": [], - "source": [ - "plt_gradients(x_train,y_train, compute_cost, compute_gradient)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "20269810", - "metadata": {}, - "source": [ - "Above, the left plot shows $\\frac{\\partial J(w,b)}{\\partial w}$ or the slope of the cost curve relative to $w$ at three points. On the right side of the plot, the derivative is positive, while on the left it is negative. Due to the 'bowl shape', the derivatives will always lead gradient descent toward the bottom where the gradient is zero.\n", - " \n", - "The left plot has fixed $b=100$. Gradient descent will utilize both $\\frac{\\partial J(w,b)}{\\partial w}$ and $\\frac{\\partial J(w,b)}{\\partial b}$ to update parameters. The 'quiver plot' on the right provides a means of viewing the gradient of both parameters. The arrow sizes reflect the magnitude of the gradient at that point. The direction and slope of the arrow reflects the ratio of $\\frac{\\partial J(w,b)}{\\partial w}$ and $\\frac{\\partial J(w,b)}{\\partial b}$ at that point.\n", - "Note that the gradient points *away* from the minimum. Review equation (3) above. The scaled gradient is *subtracted* from the current value of $w$ or $b$. This moves the parameter in a direction that will reduce cost." - ] - }, - { - "cell_type": "markdown", - "id": "09cde02a", - "metadata": {}, - "source": [ - "\n", - "### Gradient Descent\n", - "Now that gradients can be computed, gradient descent, described in equation (3) above can be implemented. The details of the implementation are described in the comments. Below, you will utilize this function to find optimal values of $w$ and $b$ on the training data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ca792dcb", - "metadata": {}, - "outputs": [], - "source": [ - "def gradient_descent(x, y, w_in, b_in, alpha, num_iters, cost_function, gradient_function): \n", - " \"\"\"\n", - " Performs batch gradient descent to fit w,b. Updates w,b by taking \n", - " num_iters gradient steps with learning rate alpha\n", - " \n", - " Args:\n", - " x (ndarray (m,)) : Data, m examples \n", - " y (ndarray (m,)) : target values\n", - " w_in,b_in (scalar): initial values of model parameters \n", - " alpha (float): Learning rate\n", - " num_iters (int): number of iterations to run gradient descent\n", - " cost_function: function to call to produce cost\n", - " gradient_function: function to call to produce gradient\n", - " \n", - " Returns:\n", - " w (scalar): Updated value of parameter after running gradient descent\n", - " b (scalar): Updated value of parameter after running gradient descent\n", - " J_history (List): History of cost values\n", - " p_history (list): History of parameters [w,b] \n", - " \"\"\"\n", - " \n", - " w = copy.deepcopy(w_in) # avoid modifying global w_in\n", - " # An array to store cost J and w's at each iteration primarily for graphing later\n", - " J_history = []\n", - " p_history = []\n", - " b = b_in\n", - " w = w_in\n", - " \n", - " for i in range(num_iters):\n", - " # Calculate the gradient and update the parameters using gradient_function\n", - " dj_dw, dj_db = gradient_function(x, y, w , b) \n", - "\n", - " # Update Parameters using equation (3) above\n", - " b = b - alpha * dj_db \n", - " w = w - alpha * dj_dw \n", - "\n", - " # Save cost J at each iteration\n", - " if i<100000: # prevent resource exhaustion \n", - " J_history.append( cost_function(x, y, w , b))\n", - " p_history.append([w,b])\n", - " # Print cost every at intervals 10 times or as many iterations if < 10\n", - " if i% math.ceil(num_iters/10) == 0:\n", - " print(f\"Iteration {i:4}: Cost {J_history[-1]:0.2e} \",\n", - " f\"dj_dw: {dj_dw: 0.3e}, dj_db: {dj_db: 0.3e} \",\n", - " f\"w: {w: 0.3e}, b:{b: 0.5e}\")\n", - " \n", - " return w, b, J_history, p_history #return w and J,w history for graphing" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "af449437", - "metadata": {}, - "outputs": [], - "source": [ - "# initialize parameters\n", - "w_init = 0\n", - "b_init = 0\n", - "# some gradient descent settings\n", - "iterations = 10000\n", - "tmp_alpha = 1.0e-2\n", - "# run gradient descent\n", - "w_final, b_final, J_hist, p_hist = gradient_descent(x_train ,y_train, w_init, b_init, tmp_alpha, \n", - " iterations, compute_cost, compute_gradient)\n", - "print(f\"(w,b) found by gradient descent: ({w_final:8.4f},{b_final:8.4f})\")" - ] - }, - { - "cell_type": "markdown", - "id": "f659147c", - "metadata": {}, - "source": [ - " \n", - "Take a moment and note some characteristics of the gradient descent process printed above. \n", - "\n", - "- The cost starts large and rapidly declines as described in the slide from the lecture.\n", - "- The partial derivatives, `dj_dw`, and `dj_db` also get smaller, rapidly at first and then more slowly. As shown in the diagram from the lecture, as the process nears the 'bottom of the bowl' progress is slower due to the smaller value of the derivative at that point.\n", - "- progress slows though the learning rate, alpha, remains fixed" - ] - }, - { - "cell_type": "markdown", - "id": "a2366fd8", - "metadata": {}, - "source": [ - "### Cost versus iterations of gradient descent \n", - "A plot of cost versus iterations is a useful measure of progress in gradient descent. Cost should always decrease in successful runs. The change in cost is so rapid initially, it is also helpful in this case to view a plot that does not include the initial iterations." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ceb161ee", - "metadata": {}, - "outputs": [], - "source": [ - "# plot cost versus iteration \n", - "fig, (ax1, ax2) = plt.subplots(1, 2, constrained_layout=True, figsize=(12,4))\n", - "ax1.plot(J_hist)\n", - "ax2.plot(1000 + np.arange(len(J_hist[1000:])), J_hist[1000:])\n", - "ax1.set_title(\"Cost vs. iteration\"); ax2.set_title(\"Cost vs. iteration (tail)\")\n", - "ax1.set_ylabel('Cost') ; ax2.set_ylabel('Cost') \n", - "ax1.set_xlabel('iteration step') ; ax2.set_xlabel('iteration step') \n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "205bd40f", - "metadata": {}, - "source": [ - "### Predictions\n", - "Now that you have discovered the optimal values for the parameters $w$ and $b$, you can now use the model to predict housing values based on our learned parameters. As expected, the predicted values are nearly the same as the training values for the same housing. Further, the value not in the prediction is in line with the expected value." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "54271146", - "metadata": {}, - "outputs": [], - "source": [ - "print(f\"1000 sqft house prediction {w_final*1.0 + b_final:0.1f} Thousand dollars\")\n", - "print(f\"1200 sqft house prediction {w_final*1.2 + b_final:0.1f} Thousand dollars\")\n", - "print(f\"2000 sqft house prediction {w_final*2.0 + b_final:0.1f} Thousand dollars\")" - ] - }, - { - "cell_type": "markdown", - "id": "b7081853", - "metadata": {}, - "source": [ - "\n", - "## Plotting\n", - "You can show the progress of gradient descent during its execution by plotting the cost over iterations on a contour plot of the cost(w,b). " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e6c9e24f", - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(1,1, figsize=(12, 6))\n", - "plt_contour_wgrad(x_train, y_train, p_hist, ax)" - ] - }, - { - "cell_type": "markdown", - "id": "1d3bda0a", - "metadata": {}, - "source": [ - "Above, the contour plot shows the $cost(w,b)$ over a range of $w$ and $b$. Cost levels are represented by the rings. Overlayed, using red arrows, is the path of gradient descent. Here are some things to note:\n", - "- The path makes steady (monotonic) progress toward its goal.\n", - "- initial steps are much larger than the steps near the goal." - ] - }, - { - "cell_type": "markdown", - "id": "9d2f0d6b", - "metadata": {}, - "source": [ - "**Zooming in**, we can see that final steps of gradient descent. Note the distance between steps shrinks as the gradient approaches zero." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5e58742e", - "metadata": {}, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(1,1, figsize=(12, 4))\n", - "plt_contour_wgrad(x_train, y_train, p_hist, ax, w_range=[180, 220, 0.5], b_range=[80, 120, 0.5],\n", - " contours=[1,5,10,20],resolution=0.5)" - ] - }, - { - "cell_type": "markdown", - "id": "66a68a52", - "metadata": {}, - "source": [ - "\n", - "### Increased Learning Rate\n", - "\n", - "
\n", - " \n", - "
\n", - "In the lecture, there was a discussion related to the proper value of the learning rate, $\\alpha$ in equation(3). The larger $\\alpha$ is, the faster gradient descent will converge to a solution. But, if it is too large, gradient descent will diverge. Above you have an example of a solution which converges nicely.\n", - "\n", - "Let's try increasing the value of $\\alpha$ and see what happens:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "01c2c046", - "metadata": {}, - "outputs": [], - "source": [ - "# initialize parameters\n", - "w_init = 0\n", - "b_init = 0\n", - "# set alpha to a large value\n", - "iterations = 10\n", - "tmp_alpha = 8.0e-1\n", - "# run gradient descent\n", - "w_final, b_final, J_hist, p_hist = gradient_descent(x_train ,y_train, w_init, b_init, tmp_alpha, \n", - " iterations, compute_cost, compute_gradient)" - ] - }, - { - "cell_type": "markdown", - "id": "84d9cb5e", - "metadata": {}, - "source": [ - "Above, $w$ and $b$ are bouncing back and forth between positive and negative with the absolute value increasing with each iteration. Further, each iteration $\\frac{\\partial J(w,b)}{\\partial w}$ changes sign and cost is increasing rather than decreasing. This is a clear sign that the *learning rate is too large* and the solution is diverging. \n", - "Let's visualize this with a plot." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cd87463e", - "metadata": {}, - "outputs": [], - "source": [ - "plt_divergence(p_hist, J_hist,x_train, y_train)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "1af14beb", - "metadata": {}, - "source": [ - "Above, the left graph shows $w$'s progression over the first few steps of gradient descent. $w$ oscillates from positive to negative and cost grows rapidly. Gradient Descent is operating on both $w$ and $b$ simultaneously, so one needs the 3-D plot on the right for the complete picture." - ] - }, - { - "cell_type": "markdown", - "id": "17283374", - "metadata": {}, - "source": [ - "\n", - "## Congratulations!\n", - "In this lab you:\n", - "- delved into the details of gradient descent for a single variable.\n", - "- developed a routine to compute the gradient\n", - "- visualized what the gradient is\n", - "- completed a gradient descent routine\n", - "- utilized gradient descent to find parameters\n", - "- examined the impact of sizing the learning rate" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "852c45c0", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "dl_toc_settings": { - "rndtag": "40291" - }, - "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.8.10" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week1/betaversion/images/C1W1L1_Markdown.PNG b/week1/betaversion/images/C1W1L1_Markdown.PNG deleted file mode 100644 index 006a37a..0000000 Binary files a/week1/betaversion/images/C1W1L1_Markdown.PNG and /dev/null differ diff --git a/week1/betaversion/images/C1W1L1_Run.PNG b/week1/betaversion/images/C1W1L1_Run.PNG deleted file mode 100644 index 9fee855..0000000 Binary files a/week1/betaversion/images/C1W1L1_Run.PNG and /dev/null differ diff --git a/week1/betaversion/images/C1W1L1_Tour.PNG b/week1/betaversion/images/C1W1L1_Tour.PNG deleted file mode 100644 index bda413e..0000000 Binary files a/week1/betaversion/images/C1W1L1_Tour.PNG and /dev/null differ diff --git a/week1/betaversion/images/C1_W1_L3_S1_Lecture_b.png b/week1/betaversion/images/C1_W1_L3_S1_Lecture_b.png deleted file mode 100644 index 6b6120e..0000000 Binary files a/week1/betaversion/images/C1_W1_L3_S1_Lecture_b.png and /dev/null differ diff --git a/week1/betaversion/images/C1_W1_L3_S1_model.png b/week1/betaversion/images/C1_W1_L3_S1_model.png deleted file mode 100644 index c7e1076..0000000 Binary files a/week1/betaversion/images/C1_W1_L3_S1_model.png and /dev/null differ diff --git a/week1/betaversion/images/C1_W1_L3_S1_trainingdata.png b/week1/betaversion/images/C1_W1_L3_S1_trainingdata.png deleted file mode 100644 index 19aeea9..0000000 Binary files a/week1/betaversion/images/C1_W1_L3_S1_trainingdata.png and /dev/null differ diff --git a/week1/betaversion/images/C1_W1_L3_S2_Lecture_b.png b/week1/betaversion/images/C1_W1_L3_S2_Lecture_b.png deleted file mode 100644 index 737a39a..0000000 Binary files a/week1/betaversion/images/C1_W1_L3_S2_Lecture_b.png and /dev/null differ diff --git a/week1/betaversion/images/C1_W1_L4_S1_Lecture_GD.png b/week1/betaversion/images/C1_W1_L4_S1_Lecture_GD.png deleted file mode 100644 index c21a949..0000000 Binary files a/week1/betaversion/images/C1_W1_L4_S1_Lecture_GD.png and /dev/null differ diff --git a/week1/betaversion/images/C1_W1_Lab02_GoalOfRegression.PNG b/week1/betaversion/images/C1_W1_Lab02_GoalOfRegression.PNG deleted file mode 100644 index fddc8da..0000000 Binary files a/week1/betaversion/images/C1_W1_Lab02_GoalOfRegression.PNG and /dev/null differ diff --git a/week1/betaversion/images/C1_W1_Lab03_alpha_too_big.PNG b/week1/betaversion/images/C1_W1_Lab03_alpha_too_big.PNG deleted file mode 100644 index 540b33d..0000000 Binary files a/week1/betaversion/images/C1_W1_Lab03_alpha_too_big.PNG and /dev/null differ diff --git a/week1/betaversion/images/C1_W1_Lab03_lecture_learningrate.PNG b/week1/betaversion/images/C1_W1_Lab03_lecture_learningrate.PNG deleted file mode 100644 index f81e034..0000000 Binary files a/week1/betaversion/images/C1_W1_Lab03_lecture_learningrate.PNG and /dev/null differ diff --git a/week1/betaversion/images/C1_W1_Lab03_lecture_slopes.PNG b/week1/betaversion/images/C1_W1_Lab03_lecture_slopes.PNG deleted file mode 100644 index f77d3d9..0000000 Binary files a/week1/betaversion/images/C1_W1_Lab03_lecture_slopes.PNG and /dev/null differ diff --git a/week1/betaversion/lab_utils_common.py b/week1/betaversion/lab_utils_common.py deleted file mode 100644 index fbef0da..0000000 --- a/week1/betaversion/lab_utils_common.py +++ /dev/null @@ -1,112 +0,0 @@ -""" -lab_utils_common.py - functions common to all optional labs, Course 1, Week 2 -""" - -import numpy as np -import matplotlib.pyplot as plt - -plt.style.use('./deeplearning.mplstyle') -dlblue = '#0096ff'; dlorange = '#FF9300'; dldarkred='#C00000'; dlmagenta='#FF40FF'; dlpurple='#7030A0'; -dlcolors = [dlblue, dlorange, dldarkred, dlmagenta, dlpurple] -dlc = dict(dlblue = '#0096ff', dlorange = '#FF9300', dldarkred='#C00000', dlmagenta='#FF40FF', dlpurple='#7030A0') - - -########################################################## -# Regression Routines -########################################################## - -#Function to calculate the cost -def compute_cost_matrix(X, y, w, b, verbose=False): - """ - Computes the gradient for linear regression - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - verbose : (Boolean) If true, print out intermediate value f_wb - Returns - cost: (scalar) - """ - m = X.shape[0] - - # calculate f_wb for all examples. - f_wb = X @ w + b - # calculate cost - total_cost = (1/(2*m)) * np.sum((f_wb-y)**2) - - if verbose: print("f_wb:") - if verbose: print(f_wb) - - return total_cost - -def compute_gradient_matrix(X, y, w, b): - """ - Computes the gradient for linear regression - - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - Returns - dj_dw (ndarray (n,1)): The gradient of the cost w.r.t. the parameters w. - dj_db (scalar): The gradient of the cost w.r.t. the parameter b. - - """ - m,n = X.shape - f_wb = X @ w + b - e = f_wb - y - dj_dw = (1/m) * (X.T @ e) - dj_db = (1/m) * np.sum(e) - - return dj_db,dj_dw - - -# Loop version of multi-variable compute_cost -def compute_cost(X, y, w, b): - """ - compute cost - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - Returns - cost (scalar) : cost - """ - m = X.shape[0] - cost = 0.0 - for i in range(m): - f_wb_i = np.dot(X[i],w) + b #(n,)(n,)=scalar - cost = cost + (f_wb_i - y[i])**2 - cost = cost/(2*m) - return cost - -def compute_gradient(X, y, w, b): - """ - Computes the gradient for linear regression - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - Returns - dj_dw (ndarray Shape (n,)): The gradient of the cost w.r.t. the parameters w. - dj_db (scalar): The gradient of the cost w.r.t. the parameter b. - """ - m,n = X.shape #(number of examples, number of features) - dj_dw = np.zeros((n,)) - dj_db = 0. - - for i in range(m): - err = (np.dot(X[i], w) + b) - y[i] - for j in range(n): - dj_dw[j] = dj_dw[j] + err * X[i,j] - dj_db = dj_db + err - dj_dw = dj_dw/m - dj_db = dj_db/m - - return dj_db,dj_dw - diff --git a/week1/betaversion/lab_utils_uni.py b/week1/betaversion/lab_utils_uni.py deleted file mode 100644 index 2ba5a37..0000000 --- a/week1/betaversion/lab_utils_uni.py +++ /dev/null @@ -1,398 +0,0 @@ -""" -lab_utils_uni.py - routines used in Course 1, Week2, labs1-3 dealing with single variables (univariate) -""" -import numpy as np -import matplotlib.pyplot as plt -from matplotlib.ticker import MaxNLocator -from matplotlib.gridspec import GridSpec -from matplotlib.colors import LinearSegmentedColormap -from ipywidgets import interact -from lab_utils_common import compute_cost -from lab_utils_common import dlblue, dlorange, dldarkred, dlmagenta, dlpurple, dlcolors - -plt.style.use('./deeplearning.mplstyle') -n_bin = 5 -dlcm = LinearSegmentedColormap.from_list( - 'dl_map', dlcolors, N=n_bin) - -########################################################## -# Plotting Routines -########################################################## - -def plt_house_x(X, y,f_wb=None, ax=None): - ''' plot house with aXis ''' - if not ax: - fig, ax = plt.subplots(1,1) - ax.scatter(X, y, marker='x', c='r', label="Actual Value") - - ax.set_title("Housing Prices") - ax.set_ylabel('Price (in 1000s of dollars)') - ax.set_xlabel(f'Size (1000 sqft)') - if f_wb is not None: - ax.plot(X, f_wb, c=dlblue, label="Our Prediction") - ax.legend() - - -def mk_cost_lines(x,y,w,b, ax): - ''' makes vertical cost lines''' - cstr = "cost = (1/m)*(" - ctot = 0 - label = 'cost for point' - addedbreak = False - for p in zip(x,y): - f_wb_p = w*p[0]+b - c_p = ((f_wb_p - p[1])**2)/2 - c_p_txt = c_p - ax.vlines(p[0], p[1],f_wb_p, lw=3, color=dlpurple, ls='dotted', label=label) - label='' #just one - cxy = [p[0], p[1] + (f_wb_p-p[1])/2] - ax.annotate(f'{c_p_txt:0.0f}', xy=cxy, xycoords='data',color=dlpurple, - xytext=(5, 0), textcoords='offset points') - cstr += f"{c_p_txt:0.0f} +" - if len(cstr) > 38 and addedbreak is False: - cstr += "\n" - addedbreak = True - ctot += c_p - ctot = ctot/(len(x)) - cstr = cstr[:-1] + f") = {ctot:0.0f}" - ax.text(0.15,0.02,cstr, transform=ax.transAxes, color=dlpurple) - -########## -# Cost lab -########## - - -def plt_intuition(x_train, y_train): - - w_range = np.array([200-200,200+200]) - tmp_b = 100 - - w_array = np.arange(*w_range, 5) - cost = np.zeros_like(w_array) - for i in range(len(w_array)): - tmp_w = w_array[i] - cost[i] = compute_cost(x_train, y_train, tmp_w, tmp_b) - - @interact(w=(*w_range,10),continuous_update=False) - def func( w=150): - f_wb = np.dot(x_train, w) + tmp_b - - fig, ax = plt.subplots(1, 2, constrained_layout=True, figsize=(8,4)) - fig.canvas.toolbar_position = 'bottom' - - mk_cost_lines(x_train, y_train, w, tmp_b, ax[0]) - plt_house_x(x_train, y_train, f_wb=f_wb, ax=ax[0]) - - ax[1].plot(w_array, cost) - cur_cost = compute_cost(x_train, y_train, w, tmp_b) - ax[1].scatter(w,cur_cost, s=100, color=dldarkred, zorder= 10, label= f"cost at w={w}") - ax[1].hlines(cur_cost, ax[1].get_xlim()[0],w, lw=4, color=dlpurple, ls='dotted') - ax[1].vlines(w, ax[1].get_ylim()[0],cur_cost, lw=4, color=dlpurple, ls='dotted') - ax[1].set_title("Cost vs. w, (b fixed at 100)") - ax[1].set_ylabel('Cost') - ax[1].set_xlabel('w') - ax[1].legend(loc='upper center') - fig.suptitle(f"Minimize Cost: Current Cost = {cur_cost:0.0f}", fontsize=12) - plt.show() - -# this is the 2D cost curve with interactive slider -def plt_stationary(x_train, y_train): - # setup figure - fig = plt.figure( figsize=(9,8)) - #fig = plt.figure(constrained_layout=True, figsize=(12,10)) - fig.set_facecolor('#ffffff') #white - fig.canvas.toolbar_position = 'top' - #gs = GridSpec(2, 2, figure=fig, wspace = 0.01) - gs = GridSpec(2, 2, figure=fig) - ax0 = fig.add_subplot(gs[0, 0]) - ax1 = fig.add_subplot(gs[0, 1]) - ax2 = fig.add_subplot(gs[1, :], projection='3d') - ax = np.array([ax0,ax1,ax2]) - - #setup useful ranges and common linspaces - w_range = np.array([200-300.,200+300]) - b_range = np.array([50-300., 50+300]) - b_space = np.linspace(*b_range, 100) - w_space = np.linspace(*w_range, 100) - - # get cost for w,b ranges for contour and 3D - tmp_b,tmp_w = np.meshgrid(b_space,w_space) - z=np.zeros_like(tmp_b) - for i in range(tmp_w.shape[0]): - for j in range(tmp_w.shape[1]): - z[i,j] = compute_cost(x_train, y_train, tmp_w[i][j], tmp_b[i][j] ) - if z[i,j] == 0: z[i,j] = 1e-6 - - w0=200;b=-100 #initial point - ### plot model w cost ### - f_wb = np.dot(x_train,w0) + b - mk_cost_lines(x_train,y_train,w0,b,ax[0]) - plt_house_x(x_train, y_train, f_wb=f_wb, ax=ax[0]) - - ### plot contour ### - CS = ax[1].contour(tmp_w, tmp_b, np.log(z),levels=12, linewidths=2, alpha=0.7,colors=dlcolors) - ax[1].set_title('Cost(w,b)') - ax[1].set_xlabel('w', fontsize=10) - ax[1].set_ylabel('b', fontsize=10) - ax[1].set_xlim(w_range) ; ax[1].set_ylim(b_range) - cscat = ax[1].scatter(w0,b, s=100, color=dlblue, zorder= 10, label="cost with \ncurrent w,b") - chline = ax[1].hlines(b, ax[1].get_xlim()[0],w0, lw=4, color=dlpurple, ls='dotted') - cvline = ax[1].vlines(w0, ax[1].get_ylim()[0],b, lw=4, color=dlpurple, ls='dotted') - ax[1].text(0.5,0.95,"Click to choose w,b", bbox=dict(facecolor='white', ec = 'black'), fontsize = 10, - transform=ax[1].transAxes, verticalalignment = 'center', horizontalalignment= 'center') - - #Surface plot of the cost function J(w,b) - ax[2].plot_surface(tmp_w, tmp_b, z, cmap = dlcm, alpha=0.3, antialiased=True) - ax[2].plot_wireframe(tmp_w, tmp_b, z, color='k', alpha=0.1) - plt.xlabel("$w$") - plt.ylabel("$b$") - ax[2].zaxis.set_rotate_label(False) - ax[2].xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax[2].yaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax[2].zaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax[2].set_zlabel("J(w, b)\n\n", rotation=90) - plt.title("Cost(w,b) \n [You can rotate this figure]", size=12) - ax[2].view_init(30, -120) - - return fig,ax, [cscat, chline, cvline] - - -#https://matplotlib.org/stable/users/event_handling.html -class plt_update_onclick: - def __init__(self, fig, ax, x_train,y_train, dyn_items): - self.fig = fig - self.ax = ax - self.x_train = x_train - self.y_train = y_train - self.dyn_items = dyn_items - self.cid = fig.canvas.mpl_connect('button_press_event', self) - - def __call__(self, event): - if event.inaxes == self.ax[1]: - ws = event.xdata - bs = event.ydata - cst = compute_cost(self.x_train, self.y_train, ws, bs) - - # clear and redraw line plot - self.ax[0].clear() - f_wb = np.dot(self.x_train,ws) + bs - mk_cost_lines(self.x_train,self.y_train,ws,bs,self.ax[0]) - plt_house_x(self.x_train, self.y_train, f_wb=f_wb, ax=self.ax[0]) - - # remove lines and re-add on countour plot and 3d plot - for artist in self.dyn_items: - artist.remove() - - a = self.ax[1].scatter(ws,bs, s=100, color=dlblue, zorder= 10, label="cost with \ncurrent w,b") - b = self.ax[1].hlines(bs, self.ax[1].get_xlim()[0],ws, lw=4, color=dlpurple, ls='dotted') - c = self.ax[1].vlines(ws, self.ax[1].get_ylim()[0],bs, lw=4, color=dlpurple, ls='dotted') - d = self.ax[1].annotate(f"Cost: {cst:.0f}", xy= (ws, bs), xytext = (4,4), textcoords = 'offset points', - bbox=dict(facecolor='white'), size = 10) - - #Add point in 3D surface plot - e = self.ax[2].scatter3D(ws, bs,cst , marker='X', s=100) - - self.dyn_items = [a,b,c,d,e] - self.fig.canvas.draw() - - -def soup_bowl(): - """ Create figure and plot with a 3D projection""" - fig = plt.figure(figsize=(8,8)) - - #Plot configuration - ax = fig.add_subplot(111, projection='3d') - ax.xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax.yaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax.zaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax.zaxis.set_rotate_label(False) - ax.view_init(45, -120) - - #Useful linearspaces to give values to the parameters w and b - w = np.linspace(-20, 20, 100) - b = np.linspace(-20, 20, 100) - - #Get the z value for a bowl-shaped cost function - z=np.zeros((len(w), len(b))) - j=0 - for x in w: - i=0 - for y in b: - z[i,j] = x**2 + y**2 - i+=1 - j+=1 - - #Meshgrid used for plotting 3D functions - W, B = np.meshgrid(w, b) - - #Create the 3D surface plot of the bowl-shaped cost function - ax.plot_surface(W, B, z, cmap = "Spectral_r", alpha=0.7, antialiased=False) - ax.plot_wireframe(W, B, z, color='k', alpha=0.1) - ax.set_xlabel("$w$") - ax.set_ylabel("$b$") - ax.set_zlabel("$J(w,b)$", rotation=90) - ax.set_title("$J(w,b)$\n [You can rotate this figure]", size=15) - - plt.show() - -def inbounds(a,b,xlim,ylim): - xlow,xhigh = xlim - ylow,yhigh = ylim - ax, ay = a - bx, by = b - if (ax > xlow and ax < xhigh) and (bx > xlow and bx < xhigh) \ - and (ay > ylow and ay < yhigh) and (by > ylow and by < yhigh): - return True - return False - -def plt_contour_wgrad(x, y, hist, ax, w_range=[-100, 500, 5], b_range=[-500, 500, 5], - contours = [0.1,50,1000,5000,10000,25000,50000], - resolution=5, w_final=200, b_final=100,step=10 ): - b0,w0 = np.meshgrid(np.arange(*b_range),np.arange(*w_range)) - z=np.zeros_like(b0) - for i in range(w0.shape[0]): - for j in range(w0.shape[1]): - z[i][j] = compute_cost(x, y, w0[i][j], b0[i][j] ) - - CS = ax.contour(w0, b0, z, contours, linewidths=2, - colors=[dlblue, dlorange, dldarkred, dlmagenta, dlpurple]) - ax.clabel(CS, inline=1, fmt='%1.0f', fontsize=10) - ax.set_xlabel("w"); ax.set_ylabel("b") - ax.set_title('Contour plot of cost J(w,b), vs b,w with path of gradient descent') - w = w_final; b=b_final - ax.hlines(b, ax.get_xlim()[0],w, lw=2, color=dlpurple, ls='dotted') - ax.vlines(w, ax.get_ylim()[0],b, lw=2, color=dlpurple, ls='dotted') - - base = hist[0] - for point in hist[0::step]: - edist = np.sqrt((base[0] - point[0])**2 + (base[1] - point[1])**2) - if(edist > resolution or point==hist[-1]): - if inbounds(point,base, ax.get_xlim(),ax.get_ylim()): - plt.annotate('', xy=point, xytext=base,xycoords='data', - arrowprops={'arrowstyle': '->', 'color': 'r', 'lw': 3}, - va='center', ha='center') - base=point - return - - -def plt_divergence(p_hist, J_hist, x_train,y_train): - - x=np.zeros(len(p_hist)) - y=np.zeros(len(p_hist)) - v=np.zeros(len(p_hist)) - for i in range(len(p_hist)): - x[i] = p_hist[i][0] - y[i] = p_hist[i][1] - v[i] = J_hist[i] - - fig = plt.figure(figsize=(12,5)) - plt.subplots_adjust( wspace=0 ) - gs = fig.add_gridspec(1, 5) - fig.suptitle(f"Cost escalates when learning rate is too large") - #=============== - # First subplot - #=============== - ax = fig.add_subplot(gs[:2], ) - - # Print w vs cost to see minimum - fix_b = 100 - w_array = np.arange(-70000, 70000, 1000) - cost = np.zeros_like(w_array) - - for i in range(len(w_array)): - tmp_w = w_array[i] - cost[i] = compute_cost(x_train, y_train, tmp_w, fix_b) - - ax.plot(w_array, cost) - ax.plot(x,v, c=dlmagenta) - ax.set_title("Cost vs w, b set to 100") - ax.set_ylabel('Cost') - ax.set_xlabel('w') - ax.xaxis.set_major_locator(MaxNLocator(2)) - - #=============== - # Second Subplot - #=============== - - tmp_b,tmp_w = np.meshgrid(np.arange(-35000, 35000, 500),np.arange(-70000, 70000, 500)) - z=np.zeros_like(tmp_b) - for i in range(tmp_w.shape[0]): - for j in range(tmp_w.shape[1]): - z[i][j] = compute_cost(x_train, y_train, tmp_w[i][j], tmp_b[i][j] ) - - ax = fig.add_subplot(gs[2:], projection='3d') - ax.plot_surface(tmp_w, tmp_b, z, alpha=0.3, color=dlblue) - ax.xaxis.set_major_locator(MaxNLocator(2)) - ax.yaxis.set_major_locator(MaxNLocator(2)) - - ax.set_xlabel('w', fontsize=16) - ax.set_ylabel('b', fontsize=16) - ax.set_zlabel('\ncost', fontsize=16) - plt.title('Cost vs (b, w)') - # Customize the view angle - ax.view_init(elev=20., azim=-65) - ax.plot(x, y, v,c=dlmagenta) - - return - -# draw derivative line -# y = m*(x - x1) + y1 -def add_line(dj_dx, x1, y1, d, ax): - x = np.linspace(x1-d, x1+d,50) - y = dj_dx*(x - x1) + y1 - ax.scatter(x1, y1, color=dlblue, s=50) - ax.plot(x, y, '--', c=dldarkred,zorder=10, linewidth = 1) - xoff = 30 if x1 == 200 else 10 - ax.annotate(r"$\frac{\partial J}{\partial w}$ =%d" % dj_dx, fontsize=14, - xy=(x1, y1), xycoords='data', - xytext=(xoff, 10), textcoords='offset points', - arrowprops=dict(arrowstyle="->"), - horizontalalignment='left', verticalalignment='top') - -def plt_gradients(x_train,y_train, f_compute_cost, f_compute_gradient): - #=============== - # First subplot - #=============== - fig,ax = plt.subplots(1,2,figsize=(12,4)) - - # Print w vs cost to see minimum - fix_b = 100 - w_array = np.linspace(-100, 500, 50) - w_array = np.linspace(0, 400, 50) - cost = np.zeros_like(w_array) - - for i in range(len(w_array)): - tmp_w = w_array[i] - cost[i] = f_compute_cost(x_train, y_train, tmp_w, fix_b) - ax[0].plot(w_array, cost,linewidth=1) - ax[0].set_title("Cost vs w, with gradient; b set to 100") - ax[0].set_ylabel('Cost') - ax[0].set_xlabel('w') - - # plot lines for fixed b=100 - for tmp_w in [100,200,300]: - fix_b = 100 - dj_dw,dj_db = f_compute_gradient(x_train, y_train, tmp_w, fix_b ) - j = f_compute_cost(x_train, y_train, tmp_w, fix_b) - add_line(dj_dw, tmp_w, j, 30, ax[0]) - - #=============== - # Second Subplot - #=============== - - tmp_b,tmp_w = np.meshgrid(np.linspace(-200, 200, 10), np.linspace(-100, 600, 10)) - U = np.zeros_like(tmp_w) - V = np.zeros_like(tmp_b) - for i in range(tmp_w.shape[0]): - for j in range(tmp_w.shape[1]): - U[i][j], V[i][j] = f_compute_gradient(x_train, y_train, tmp_w[i][j], tmp_b[i][j] ) - X = tmp_w - Y = tmp_b - n=-2 - color_array = np.sqrt(((V-n)/2)**2 + ((U-n)/2)**2) - - ax[1].set_title('Gradient shown in quiver plot') - Q = ax[1].quiver(X, Y, U, V, color_array, units='width', ) - ax[1].quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',coordinates='figure') - ax[1].set_xlabel("w"); ax[1].set_ylabel("b") diff --git a/week1/data.txt b/week1/data.txt deleted file mode 100644 index d1b6bc3..0000000 --- a/week1/data.txt +++ /dev/null @@ -1,47 +0,0 @@ -2104,3,399900 -1600,3,329900 -2400,3,369000 -1416,2,232000 -3000,4,539900 -1985,4,299900 -1534,3,314900 -1427,3,198999 -1380,3,212000 -1494,3,242500 -1940,4,239999 -2000,3,347000 -1890,3,329999 -4478,5,699900 -1268,3,259900 -2300,4,449900 -1320,2,299900 -1236,3,199900 -2609,4,499998 -3031,4,599000 -1767,3,252900 -1888,2,255000 -1604,3,242900 -1962,4,259900 -3890,3,573900 -1100,3,249900 -1458,3,464500 -2526,3,469000 -2200,3,475000 -2637,3,299900 -1839,2,349900 -1000,1,169900 -2040,4,314900 -3137,3,579900 -1811,4,285900 -1437,3,249900 -1239,3,229900 -2132,4,345000 -4215,4,549000 -2162,4,287000 -1664,2,368500 -2238,3,329900 -2567,4,314000 -1200,3,299000 -852,2,179900 -1852,4,299900 -1203,3,239500 \ No newline at end of file diff --git a/week1/deeplearning.mplstyle b/week1/deeplearning.mplstyle deleted file mode 100644 index e01280f..0000000 --- a/week1/deeplearning.mplstyle +++ /dev/null @@ -1,124 +0,0 @@ -# see https://matplotlib.org/stable/tutorials/introductory/customizing.html -lines.linewidth: 4 -lines.solid_capstyle: butt - -legend.fancybox: true - -# Verdana" for non-math text, -# Cambria Math - -#Blue (Crayon-Aqua) 0096FF -#Dark Red C00000 -#Orange (Apple Orange) FF9300 -#Black 000000 -#Magenta FF40FF -#Purple 7030A0 - -axes.prop_cycle: cycler('color', ['0096FF', 'FF9300', 'FF40FF', '7030A0', 'C00000']) -#axes.facecolor: f0f0f0 # grey -axes.facecolor: ffffff # white -axes.labelsize: large -axes.axisbelow: true -axes.grid: False -axes.edgecolor: f0f0f0 -axes.linewidth: 3.0 -axes.titlesize: x-large - -patch.edgecolor: f0f0f0 -patch.linewidth: 0.5 - -svg.fonttype: path - -grid.linestyle: - -grid.linewidth: 1.0 -grid.color: cbcbcb - -xtick.major.size: 0 -xtick.minor.size: 0 -ytick.major.size: 0 -ytick.minor.size: 0 - -savefig.edgecolor: f0f0f0 -savefig.facecolor: f0f0f0 - -#figure.subplot.left: 0.08 -#figure.subplot.right: 0.95 -#figure.subplot.bottom: 0.07 - -#figure.facecolor: f0f0f0 # grey -figure.facecolor: ffffff # white - -## *************************************************************************** -## * FONT * -## *************************************************************************** -## The font properties used by `text.Text`. -## See https://matplotlib.org/api/font_manager_api.html for more information -## on font properties. The 6 font properties used for font matching are -## given below with their default values. -## -## The font.family property can take either a concrete font name (not supported -## when rendering text with usetex), or one of the following five generic -## values: -## - 'serif' (e.g., Times), -## - 'sans-serif' (e.g., Helvetica), -## - 'cursive' (e.g., Zapf-Chancery), -## - 'fantasy' (e.g., Western), and -## - 'monospace' (e.g., Courier). -## Each of these values has a corresponding default list of font names -## (font.serif, etc.); the first available font in the list is used. Note that -## for font.serif, font.sans-serif, and font.monospace, the first element of -## the list (a DejaVu font) will always be used because DejaVu is shipped with -## Matplotlib and is thus guaranteed to be available; the other entries are -## left as examples of other possible values. -## -## The font.style property has three values: normal (or roman), italic -## or oblique. The oblique style will be used for italic, if it is not -## present. -## -## The font.variant property has two values: normal or small-caps. For -## TrueType fonts, which are scalable fonts, small-caps is equivalent -## to using a font size of 'smaller', or about 83%% of the current font -## size. -## -## The font.weight property has effectively 13 values: normal, bold, -## bolder, lighter, 100, 200, 300, ..., 900. Normal is the same as -## 400, and bold is 700. bolder and lighter are relative values with -## respect to the current weight. -## -## The font.stretch property has 11 values: ultra-condensed, -## extra-condensed, condensed, semi-condensed, normal, semi-expanded, -## expanded, extra-expanded, ultra-expanded, wider, and narrower. This -## property is not currently implemented. -## -## The font.size property is the default font size for text, given in points. -## 10 pt is the standard value. -## -## Note that font.size controls default text sizes. To configure -## special text sizes tick labels, axes, labels, title, etc., see the rc -## settings for axes and ticks. Special text sizes can be defined -## relative to font.size, using the following values: xx-small, x-small, -## small, medium, large, x-large, xx-large, larger, or smaller - - -font.family: sans-serif -font.style: normal -font.variant: normal -font.weight: normal -font.stretch: normal -font.size: 8.0 - -font.serif: DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif -font.sans-serif: Verdana, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif -font.cursive: Apple Chancery, Textile, Zapf Chancery, Sand, Script MT, Felipa, Comic Neue, Comic Sans MS, cursive -font.fantasy: Chicago, Charcoal, Impact, Western, Humor Sans, xkcd, fantasy -font.monospace: DejaVu Sans Mono, Bitstream Vera Sans Mono, Computer Modern Typewriter, Andale Mono, Nimbus Mono L, Courier New, Courier, Fixed, Terminal, monospace - - -## *************************************************************************** -## * TEXT * -## *************************************************************************** -## The text properties used by `text.Text`. -## See https://matplotlib.org/api/artist_api.html#module-matplotlib.text -## for more information on text properties -#text.color: black - diff --git a/week1/images/C1W1L1_Markdown.PNG b/week1/images/C1W1L1_Markdown.PNG deleted file mode 100644 index 006a37a..0000000 Binary files a/week1/images/C1W1L1_Markdown.PNG and /dev/null differ diff --git a/week1/images/C1W1L1_Run.PNG b/week1/images/C1W1L1_Run.PNG deleted file mode 100644 index 9fee855..0000000 Binary files a/week1/images/C1W1L1_Run.PNG and /dev/null differ diff --git a/week1/images/C1W1L1_Tour.PNG b/week1/images/C1W1L1_Tour.PNG deleted file mode 100644 index bda413e..0000000 Binary files a/week1/images/C1W1L1_Tour.PNG and /dev/null differ diff --git a/week1/images/C1_W1_L3_S1_Lecture_b.png b/week1/images/C1_W1_L3_S1_Lecture_b.png deleted file mode 100644 index 6b6120e..0000000 Binary files a/week1/images/C1_W1_L3_S1_Lecture_b.png and /dev/null differ diff --git a/week1/images/C1_W1_L3_S1_model.png b/week1/images/C1_W1_L3_S1_model.png deleted file mode 100644 index c7e1076..0000000 Binary files a/week1/images/C1_W1_L3_S1_model.png and /dev/null differ diff --git a/week1/images/C1_W1_L3_S1_trainingdata.png b/week1/images/C1_W1_L3_S1_trainingdata.png deleted file mode 100644 index 19aeea9..0000000 Binary files a/week1/images/C1_W1_L3_S1_trainingdata.png and /dev/null differ diff --git a/week1/images/C1_W1_L3_S2_Lecture_b.png b/week1/images/C1_W1_L3_S2_Lecture_b.png deleted file mode 100644 index 737a39a..0000000 Binary files a/week1/images/C1_W1_L3_S2_Lecture_b.png and /dev/null differ diff --git a/week1/images/C1_W1_L4_S1_Lecture_GD.png b/week1/images/C1_W1_L4_S1_Lecture_GD.png deleted file mode 100644 index c21a949..0000000 Binary files a/week1/images/C1_W1_L4_S1_Lecture_GD.png and /dev/null differ diff --git a/week1/images/C1_W1_Lab02_GoalOfRegression.PNG b/week1/images/C1_W1_Lab02_GoalOfRegression.PNG deleted file mode 100644 index fddc8da..0000000 Binary files a/week1/images/C1_W1_Lab02_GoalOfRegression.PNG and /dev/null differ diff --git a/week1/images/C1_W1_Lab03_alpha_too_big.PNG b/week1/images/C1_W1_Lab03_alpha_too_big.PNG deleted file mode 100644 index 540b33d..0000000 Binary files a/week1/images/C1_W1_Lab03_alpha_too_big.PNG and /dev/null differ diff --git a/week1/images/C1_W1_Lab03_lecture_learningrate.PNG b/week1/images/C1_W1_Lab03_lecture_learningrate.PNG deleted file mode 100644 index f81e034..0000000 Binary files a/week1/images/C1_W1_Lab03_lecture_learningrate.PNG and /dev/null differ diff --git a/week1/images/C1_W1_Lab03_lecture_slopes.PNG b/week1/images/C1_W1_Lab03_lecture_slopes.PNG deleted file mode 100644 index f77d3d9..0000000 Binary files a/week1/images/C1_W1_Lab03_lecture_slopes.PNG and /dev/null differ diff --git a/week1/lab_utils_common.py b/week1/lab_utils_common.py deleted file mode 100644 index a089704..0000000 --- a/week1/lab_utils_common.py +++ /dev/null @@ -1,112 +0,0 @@ -""" -lab_utils_common.py - functions common to all optional labs, Course 1, Week 2 -""" - -import numpy as np -import matplotlib.pyplot as plt - -plt.style.use('deeplearning.mplstyle') -dlblue = '#0096ff'; dlorange = '#FF9300'; dldarkred='#C00000'; dlmagenta='#FF40FF'; dlpurple='#7030A0'; -dlcolors = [dlblue, dlorange, dldarkred, dlmagenta, dlpurple] -dlc = dict(dlblue = '#0096ff', dlorange = '#FF9300', dldarkred='#C00000', dlmagenta='#FF40FF', dlpurple='#7030A0') - - -########################################################## -# Regression Routines -########################################################## - -#Function to calculate the cost -def compute_cost_matrix(X, y, w, b, verbose=False): - """ - Computes the gradient for linear regression - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - verbose : (Boolean) If true, print out intermediate value f_wb - Returns - cost: (scalar) - """ - m = X.shape[0] - - # calculate f_wb for all examples. - f_wb = X @ w + b - # calculate cost - total_cost = (1/(2*m)) * np.sum((f_wb-y)**2) - - if verbose: print("f_wb:") - if verbose: print(f_wb) - - return total_cost - -def compute_gradient_matrix(X, y, w, b): - """ - Computes the gradient for linear regression - - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - Returns - dj_dw (ndarray (n,1)): The gradient of the cost w.r.t. the parameters w. - dj_db (scalar): The gradient of the cost w.r.t. the parameter b. - - """ - m,n = X.shape - f_wb = X @ w + b - e = f_wb - y - dj_dw = (1/m) * (X.T @ e) - dj_db = (1/m) * np.sum(e) - - return dj_db,dj_dw - - -# Loop version of multi-variable compute_cost -def compute_cost(X, y, w, b): - """ - compute cost - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - Returns - cost (scalar) : cost - """ - m = X.shape[0] - cost = 0.0 - for i in range(m): - f_wb_i = np.dot(X[i],w) + b #(n,)(n,)=scalar - cost = cost + (f_wb_i - y[i])**2 - cost = cost/(2*m) - return cost - -def compute_gradient(X, y, w, b): - """ - Computes the gradient for linear regression - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - Returns - dj_dw (ndarray Shape (n,)): The gradient of the cost w.r.t. the parameters w. - dj_db (scalar): The gradient of the cost w.r.t. the parameter b. - """ - m,n = X.shape #(number of examples, number of features) - dj_dw = np.zeros((n,)) - dj_db = 0. - - for i in range(m): - err = (np.dot(X[i], w) + b) - y[i] - for j in range(n): - dj_dw[j] = dj_dw[j] + err * X[i,j] - dj_db = dj_db + err - dj_dw = dj_dw/m - dj_db = dj_db/m - - return dj_db,dj_dw - diff --git a/week1/lab_utils_uni.py b/week1/lab_utils_uni.py deleted file mode 100644 index acd0079..0000000 --- a/week1/lab_utils_uni.py +++ /dev/null @@ -1,398 +0,0 @@ -""" -lab_utils_uni.py - routines used in Course 1, Week2, labs1-3 dealing with single variables (univariate) -""" -import numpy as np -import matplotlib.pyplot as plt -from matplotlib.ticker import MaxNLocator -from matplotlib.gridspec import GridSpec -from matplotlib.colors import LinearSegmentedColormap -from ipywidgets import interact -from lab_utils_common import compute_cost -from lab_utils_common import dlblue, dlorange, dldarkred, dlmagenta, dlpurple, dlcolors - -plt.style.use('deeplearning.mplstyle') -n_bin = 5 -dlcm = LinearSegmentedColormap.from_list( - 'dl_map', dlcolors, N=n_bin) - -########################################################## -# Plotting Routines -########################################################## - -def plt_house_x(X, y,f_wb=None, ax=None): - ''' plot house with aXis ''' - if not ax: - fig, ax = plt.subplots(1,1) - ax.scatter(X, y, marker='x', c='r', label="Actual Value") - - ax.set_title("Housing Prices") - ax.set_ylabel('Price (in 1000s of dollars)') - ax.set_xlabel(f'Size (1000 sqft)') - if f_wb is not None: - ax.plot(X, f_wb, c=dlblue, label="Our Prediction") - ax.legend() - - -def mk_cost_lines(x,y,w,b, ax): - ''' makes vertical cost lines''' - cstr = "cost = (1/m)*(" - ctot = 0 - label = 'cost for point' - addedbreak = False - for p in zip(x,y): - f_wb_p = w*p[0]+b - c_p = ((f_wb_p - p[1])**2)/2 - c_p_txt = c_p - ax.vlines(p[0], p[1],f_wb_p, lw=3, color=dlpurple, ls='dotted', label=label) - label='' #just one - cxy = [p[0], p[1] + (f_wb_p-p[1])/2] - ax.annotate(f'{c_p_txt:0.0f}', xy=cxy, xycoords='data',color=dlpurple, - xytext=(5, 0), textcoords='offset points') - cstr += f"{c_p_txt:0.0f} +" - if len(cstr) > 38 and addedbreak is False: - cstr += "\n" - addedbreak = True - ctot += c_p - ctot = ctot/(len(x)) - cstr = cstr[:-1] + f") = {ctot:0.0f}" - ax.text(0.15,0.02,cstr, transform=ax.transAxes, color=dlpurple) - -########## -# Cost lab -########## - - -def plt_intuition(x_train, y_train): - - w_range = np.array([200-200,200+200]) - tmp_b = 100 - - w_array = np.arange(*w_range, 5) - cost = np.zeros_like(w_array) - for i in range(len(w_array)): - tmp_w = w_array[i] - cost[i] = compute_cost(x_train, y_train, tmp_w, tmp_b) - - @interact(w=(*w_range,10),continuous_update=False) - def func( w=150): - f_wb = np.dot(x_train, w) + tmp_b - - fig, ax = plt.subplots(1, 2, constrained_layout=True, figsize=(8,4)) - fig.canvas.toolbar_position = 'bottom' - - mk_cost_lines(x_train, y_train, w, tmp_b, ax[0]) - plt_house_x(x_train, y_train, f_wb=f_wb, ax=ax[0]) - - ax[1].plot(w_array, cost) - cur_cost = compute_cost(x_train, y_train, w, tmp_b) - ax[1].scatter(w,cur_cost, s=100, color=dldarkred, zorder= 10, label= f"cost at w={w}") - ax[1].hlines(cur_cost, ax[1].get_xlim()[0],w, lw=4, color=dlpurple, ls='dotted') - ax[1].vlines(w, ax[1].get_ylim()[0],cur_cost, lw=4, color=dlpurple, ls='dotted') - ax[1].set_title("Cost vs. w, (b fixed at 100)") - ax[1].set_ylabel('Cost') - ax[1].set_xlabel('w') - ax[1].legend(loc='upper center') - fig.suptitle(f"Minimize Cost: Current Cost = {cur_cost:0.0f}", fontsize=12) - plt.show() - -# this is the 2D cost curve with interactive slider -def plt_stationary(x_train, y_train): - # setup figure - fig = plt.figure( figsize=(9,8)) - #fig = plt.figure(constrained_layout=True, figsize=(12,10)) - fig.set_facecolor('#ffffff') #white - fig.canvas.toolbar_position = 'top' - #gs = GridSpec(2, 2, figure=fig, wspace = 0.01) - gs = GridSpec(2, 2, figure=fig) - ax0 = fig.add_subplot(gs[0, 0]) - ax1 = fig.add_subplot(gs[0, 1]) - ax2 = fig.add_subplot(gs[1, :], projection='3d') - ax = np.array([ax0,ax1,ax2]) - - #setup useful ranges and common linspaces - w_range = np.array([200-300.,200+300]) - b_range = np.array([50-300., 50+300]) - b_space = np.linspace(*b_range, 100) - w_space = np.linspace(*w_range, 100) - - # get cost for w,b ranges for contour and 3D - tmp_b,tmp_w = np.meshgrid(b_space,w_space) - z=np.zeros_like(tmp_b) - for i in range(tmp_w.shape[0]): - for j in range(tmp_w.shape[1]): - z[i,j] = compute_cost(x_train, y_train, tmp_w[i][j], tmp_b[i][j] ) - if z[i,j] == 0: z[i,j] = 1e-6 - - w0=200;b=-100 #initial point - ### plot model w cost ### - f_wb = np.dot(x_train,w0) + b - mk_cost_lines(x_train,y_train,w0,b,ax[0]) - plt_house_x(x_train, y_train, f_wb=f_wb, ax=ax[0]) - - ### plot contour ### - CS = ax[1].contour(tmp_w, tmp_b, np.log(z),levels=12, linewidths=2, alpha=0.7,colors=dlcolors) - ax[1].set_title('Cost(w,b)') - ax[1].set_xlabel('w', fontsize=10) - ax[1].set_ylabel('b', fontsize=10) - ax[1].set_xlim(w_range) ; ax[1].set_ylim(b_range) - cscat = ax[1].scatter(w0,b, s=100, color=dlblue, zorder= 10, label="cost with \ncurrent w,b") - chline = ax[1].hlines(b, ax[1].get_xlim()[0],w0, lw=4, color=dlpurple, ls='dotted') - cvline = ax[1].vlines(w0, ax[1].get_ylim()[0],b, lw=4, color=dlpurple, ls='dotted') - ax[1].text(0.5,0.95,"Click to choose w,b", bbox=dict(facecolor='white', ec = 'black'), fontsize = 10, - transform=ax[1].transAxes, verticalalignment = 'center', horizontalalignment= 'center') - - #Surface plot of the cost function J(w,b) - ax[2].plot_surface(tmp_w, tmp_b, z, cmap = dlcm, alpha=0.3, antialiased=True) - ax[2].plot_wireframe(tmp_w, tmp_b, z, color='k', alpha=0.1) - plt.xlabel("$w$") - plt.ylabel("$b$") - ax[2].zaxis.set_rotate_label(False) - ax[2].xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax[2].yaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax[2].zaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax[2].set_zlabel("J(w, b)\n\n", rotation=90) - plt.title("Cost(w,b) \n [You can rotate this figure]", size=12) - ax[2].view_init(30, -120) - - return fig,ax, [cscat, chline, cvline] - - -#https://matplotlib.org/stable/users/event_handling.html -class plt_update_onclick: - def __init__(self, fig, ax, x_train,y_train, dyn_items): - self.fig = fig - self.ax = ax - self.x_train = x_train - self.y_train = y_train - self.dyn_items = dyn_items - self.cid = fig.canvas.mpl_connect('button_press_event', self) - - def __call__(self, event): - if event.inaxes == self.ax[1]: - ws = event.xdata - bs = event.ydata - cst = compute_cost(self.x_train, self.y_train, ws, bs) - - # clear and redraw line plot - self.ax[0].clear() - f_wb = np.dot(self.x_train,ws) + bs - mk_cost_lines(self.x_train,self.y_train,ws,bs,self.ax[0]) - plt_house_x(self.x_train, self.y_train, f_wb=f_wb, ax=self.ax[0]) - - # remove lines and re-add on countour plot and 3d plot - for artist in self.dyn_items: - artist.remove() - - a = self.ax[1].scatter(ws,bs, s=100, color=dlblue, zorder= 10, label="cost with \ncurrent w,b") - b = self.ax[1].hlines(bs, self.ax[1].get_xlim()[0],ws, lw=4, color=dlpurple, ls='dotted') - c = self.ax[1].vlines(ws, self.ax[1].get_ylim()[0],bs, lw=4, color=dlpurple, ls='dotted') - d = self.ax[1].annotate(f"Cost: {cst:.0f}", xy= (ws, bs), xytext = (4,4), textcoords = 'offset points', - bbox=dict(facecolor='white'), size = 10) - - #Add point in 3D surface plot - e = self.ax[2].scatter3D(ws, bs,cst , marker='X', s=100) - - self.dyn_items = [a,b,c,d,e] - self.fig.canvas.draw() - - -def soup_bowl(): - """ Create figure and plot with a 3D projection""" - fig = plt.figure(figsize=(8,8)) - - #Plot configuration - ax = fig.add_subplot(111, projection='3d') - ax.xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax.yaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax.zaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) - ax.zaxis.set_rotate_label(False) - ax.view_init(45, -120) - - #Useful linearspaces to give values to the parameters w and b - w = np.linspace(-20, 20, 100) - b = np.linspace(-20, 20, 100) - - #Get the z value for a bowl-shaped cost function - z=np.zeros((len(w), len(b))) - j=0 - for x in w: - i=0 - for y in b: - z[i,j] = x**2 + y**2 - i+=1 - j+=1 - - #Meshgrid used for plotting 3D functions - W, B = np.meshgrid(w, b) - - #Create the 3D surface plot of the bowl-shaped cost function - ax.plot_surface(W, B, z, cmap = "Spectral_r", alpha=0.7, antialiased=False) - ax.plot_wireframe(W, B, z, color='k', alpha=0.1) - ax.set_xlabel("$w$") - ax.set_ylabel("$b$") - ax.set_zlabel("$J(w,b)$", rotation=90) - ax.set_title("$J(w,b)$\n [You can rotate this figure]", size=15) - - plt.show() - -def inbounds(a,b,xlim,ylim): - xlow,xhigh = xlim - ylow,yhigh = ylim - ax, ay = a - bx, by = b - if (ax > xlow and ax < xhigh) and (bx > xlow and bx < xhigh) \ - and (ay > ylow and ay < yhigh) and (by > ylow and by < yhigh): - return True - return False - -def plt_contour_wgrad(x, y, hist, ax, w_range=[-100, 500, 5], b_range=[-500, 500, 5], - contours = [0.1,50,1000,5000,10000,25000,50000], - resolution=5, w_final=200, b_final=100,step=10 ): - b0,w0 = np.meshgrid(np.arange(*b_range),np.arange(*w_range)) - z=np.zeros_like(b0) - for i in range(w0.shape[0]): - for j in range(w0.shape[1]): - z[i][j] = compute_cost(x, y, w0[i][j], b0[i][j] ) - - CS = ax.contour(w0, b0, z, contours, linewidths=2, - colors=[dlblue, dlorange, dldarkred, dlmagenta, dlpurple]) - ax.clabel(CS, inline=1, fmt='%1.0f', fontsize=10) - ax.set_xlabel("w"); ax.set_ylabel("b") - ax.set_title('Contour plot of cost J(w,b), vs b,w with path of gradient descent') - w = w_final; b=b_final - ax.hlines(b, ax.get_xlim()[0],w, lw=2, color=dlpurple, ls='dotted') - ax.vlines(w, ax.get_ylim()[0],b, lw=2, color=dlpurple, ls='dotted') - - base = hist[0] - for point in hist[0::step]: - edist = np.sqrt((base[0] - point[0])**2 + (base[1] - point[1])**2) - if(edist > resolution or point==hist[-1]): - if inbounds(point,base, ax.get_xlim(),ax.get_ylim()): - plt.annotate('', xy=point, xytext=base,xycoords='data', - arrowprops={'arrowstyle': '->', 'color': 'r', 'lw': 3}, - va='center', ha='center') - base=point - return - - -def plt_divergence(p_hist, J_hist, x_train,y_train): - - x=np.zeros(len(p_hist)) - y=np.zeros(len(p_hist)) - v=np.zeros(len(p_hist)) - for i in range(len(p_hist)): - x[i] = p_hist[i][0] - y[i] = p_hist[i][1] - v[i] = J_hist[i] - - fig = plt.figure(figsize=(12,5)) - plt.subplots_adjust( wspace=0 ) - gs = fig.add_gridspec(1, 5) - fig.suptitle(f"Cost escalates when learning rate is too large") - #=============== - # First subplot - #=============== - ax = fig.add_subplot(gs[:2], ) - - # Print w vs cost to see minimum - fix_b = 100 - w_array = np.arange(-70000, 70000, 1000) - cost = np.zeros_like(w_array) - - for i in range(len(w_array)): - tmp_w = w_array[i] - cost[i] = compute_cost(x_train, y_train, tmp_w, fix_b) - - ax.plot(w_array, cost) - ax.plot(x,v, c=dlmagenta) - ax.set_title("Cost vs w, b set to 100") - ax.set_ylabel('Cost') - ax.set_xlabel('w') - ax.xaxis.set_major_locator(MaxNLocator(2)) - - #=============== - # Second Subplot - #=============== - - tmp_b,tmp_w = np.meshgrid(np.arange(-35000, 35000, 500),np.arange(-70000, 70000, 500)) - z=np.zeros_like(tmp_b) - for i in range(tmp_w.shape[0]): - for j in range(tmp_w.shape[1]): - z[i][j] = compute_cost(x_train, y_train, tmp_w[i][j], tmp_b[i][j] ) - - ax = fig.add_subplot(gs[2:], projection='3d') - ax.plot_surface(tmp_w, tmp_b, z, alpha=0.3, color=dlblue) - ax.xaxis.set_major_locator(MaxNLocator(2)) - ax.yaxis.set_major_locator(MaxNLocator(2)) - - ax.set_xlabel('w', fontsize=16) - ax.set_ylabel('b', fontsize=16) - ax.set_zlabel('\ncost', fontsize=16) - plt.title('Cost vs (b, w)') - # Customize the view angle - ax.view_init(elev=20., azim=-65) - ax.plot(x, y, v,c=dlmagenta) - - return - -# draw derivative line -# y = m*(x - x1) + y1 -def add_line(dj_dx, x1, y1, d, ax): - x = np.linspace(x1-d, x1+d,50) - y = dj_dx*(x - x1) + y1 - ax.scatter(x1, y1, color=dlblue, s=50) - ax.plot(x, y, '--', c=dldarkred,zorder=10, linewidth = 1) - xoff = 30 if x1 == 200 else 10 - ax.annotate(r"$\frac{\partial J}{\partial w}$ =%d" % dj_dx, fontsize=14, - xy=(x1, y1), xycoords='data', - xytext=(xoff, 10), textcoords='offset points', - arrowprops=dict(arrowstyle="->"), - horizontalalignment='left', verticalalignment='top') - -def plt_gradients(x_train,y_train, f_compute_cost, f_compute_gradient): - #=============== - # First subplot - #=============== - fig,ax = plt.subplots(1,2,figsize=(12,4)) - - # Print w vs cost to see minimum - fix_b = 100 - w_array = np.linspace(-100, 500, 50) - w_array = np.linspace(0, 400, 50) - cost = np.zeros_like(w_array) - - for i in range(len(w_array)): - tmp_w = w_array[i] - cost[i] = f_compute_cost(x_train, y_train, tmp_w, fix_b) - ax[0].plot(w_array, cost,linewidth=1) - ax[0].set_title("Cost vs w, with gradient; b set to 100") - ax[0].set_ylabel('Cost') - ax[0].set_xlabel('w') - - # plot lines for fixed b=100 - for tmp_w in [100,200,300]: - fix_b = 100 - dj_dw,dj_db = f_compute_gradient(x_train, y_train, tmp_w, fix_b ) - j = f_compute_cost(x_train, y_train, tmp_w, fix_b) - add_line(dj_dw, tmp_w, j, 30, ax[0]) - - #=============== - # Second Subplot - #=============== - - tmp_b,tmp_w = np.meshgrid(np.linspace(-200, 200, 10), np.linspace(-100, 600, 10)) - U = np.zeros_like(tmp_w) - V = np.zeros_like(tmp_b) - for i in range(tmp_w.shape[0]): - for j in range(tmp_w.shape[1]): - U[i][j], V[i][j] = f_compute_gradient(x_train, y_train, tmp_w[i][j], tmp_b[i][j] ) - X = tmp_w - Y = tmp_b - n=-2 - color_array = np.sqrt(((V-n)/2)**2 + ((U-n)/2)**2) - - ax[1].set_title('Gradient shown in quiver plot') - Q = ax[1].quiver(X, Y, U, V, color_array, units='width', ) - ax[1].quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',coordinates='figure') - ax[1].set_xlabel("w"); ax[1].set_ylabel("b") diff --git a/week2/C1_W2_Lab01_Python_Numpy_Vectorization_Soln.ipynb b/week2/C1_W2_Lab01_Python_Numpy_Vectorization_Soln.ipynb deleted file mode 100644 index 24f4d9c..0000000 --- a/week2/C1_W2_Lab01_Python_Numpy_Vectorization_Soln.ipynb +++ /dev/null @@ -1,916 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Python, NumPy and Vectorization\n", - "A brief introduction to some of the scientific computing used in this course. In particular the NumPy scientific computing package and its use with python.\n", - "\n", - "# Outline\n", - "- [  1.1 Goals](#toc_40015_1.1)\n", - "- [  1.2 Useful References](#toc_40015_1.2)\n", - "- [2 Python and NumPy ](#toc_40015_2)\n", - "- [3 Vectors](#toc_40015_3)\n", - "- [  3.1 Abstract](#toc_40015_3.1)\n", - "- [  3.2 NumPy Arrays](#toc_40015_3.2)\n", - "- [  3.3 Vector Creation](#toc_40015_3.3)\n", - "- [  3.4 Operations on Vectors](#toc_40015_3.4)\n", - "- [4 Matrices](#toc_40015_4)\n", - "- [  4.1 Abstract](#toc_40015_4.1)\n", - "- [  4.2 NumPy Arrays](#toc_40015_4.2)\n", - "- [  4.3 Matrix Creation](#toc_40015_4.3)\n", - "- [  4.4 Operations on Matrices](#toc_40015_4.4)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np # it is an unofficial standard to use np for numpy\n", - "import time" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 1.1 Goals\n", - "In this lab, you will:\n", - "- Review the features of NumPy and Python that are used in Course 1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 1.2 Useful References\n", - "- NumPy Documentation including a basic introduction: [NumPy.org](https://NumPy.org/doc/stable/)\n", - "- A challenging feature topic: [NumPy Broadcasting](https://NumPy.org/doc/stable/user/basics.broadcasting.html)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 2 Python and NumPy \n", - "Python is the programming language we will be using in this course. It has a set of numeric data types and arithmetic operations. NumPy is a library that extends the base capabilities of python to add a richer data set including more numeric types, vectors, matrices, and many matrix functions. NumPy and python work together fairly seamlessly. Python arithmetic operators work on NumPy data types and many NumPy functions will accept python data types.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 3 Vectors\n", - "\n", - "## 3.1 Abstract\n", - "Vectors, as you will use them in this course, are ordered arrays of numbers. In notation, vectors are denoted with lower case bold letters such as $\\mathbf{x}$. The elements of a vector are all the same type. A vector does not, for example, contain both characters and numbers. The number of elements in the array is often referred to as the *dimension* though mathematicians may prefer *rank*. The vector shown has a dimension of $n$. The elements of a vector can be referenced with an index. In math settings, indexes typically run from 1 to n. In computer science and these labs, indexing will typically run from 0 to n-1. In notation, elements of a vector, when referenced individually will indicate the index in a subscript, for example, the $0^{th}$ element, of the vector $\\mathbf{x}$ is $x_0$. Note, the x is not bold in this case. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 3.2 NumPy Arrays\n", - "\n", - "NumPy's basic data structure is an indexable, n-dimensional *array* containing elements of the same type (`dtype`). Right away, you may notice we have overloaded the term 'dimension'. Above, it was the number of elements in the vector, here, dimension refers to the number of indexes of an array. A one-dimensional or 1-D array has one index. In Course 1, we will represent vectors as NumPy 1-D arrays. \n", - "\n", - " - 1-D array, shape (n,): n elements indexed [0] through [n-1]\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 3.3 Vector Creation\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Data creation routines in NumPy will generally have a first parameter which is the shape of the object. This can either be a single value for a 1-D result or a tuple (n,m,...) specifying the shape of the result. Below are examples of creating vectors using these routines." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "np.zeros(4) : a = [0. 0. 0. 0.], a shape = (4,), a data type = float64\n", - "np.zeros(4,) : a = [0. 0. 0. 0.], a shape = (4,), a data type = float64\n", - "np.random.random_sample(4): a = [0.04076162 0.01386783 0.16757523 0.9833998 ], a shape = (4,), a data type = float64\n" - ] - } - ], - "source": [ - "# NumPy routines which allocate memory and fill arrays with value\n", - "a = np.zeros(4); print(f\"np.zeros(4) : a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")\n", - "a = np.zeros((4,)); print(f\"np.zeros(4,) : a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")\n", - "a = np.random.random_sample(4); print(f\"np.random.random_sample(4): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Some data creation routines do not take a shape tuple:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "np.arange(4.): a = [0. 1. 2. 3.], a shape = (4,), a data type = float64\n", - "np.random.rand(4): a = [0.37476357 0.06946621 0.79627083 0.96134986], a shape = (4,), a data type = float64\n" - ] - } - ], - "source": [ - "# NumPy routines which allocate memory and fill arrays with value but do not accept shape as input argument\n", - "a = np.arange(4.); print(f\"np.arange(4.): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")\n", - "a = np.random.rand(4); print(f\"np.random.rand(4): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "values can be specified manually as well. " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "np.array([5,4,3,2]): a = [5 4 3 2], a shape = (4,), a data type = int64\n", - "np.array([5.,4,3,2]): a = [5. 4. 3. 2.], a shape = (4,), a data type = float64\n" - ] - } - ], - "source": [ - "# NumPy routines which allocate memory and fill with user specified values\n", - "a = np.array([5,4,3,2]); print(f\"np.array([5,4,3,2]): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")\n", - "a = np.array([5.,4,3,2]); print(f\"np.array([5.,4,3,2]): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "These have all created a one-dimensional vector `a` with four elements. `a.shape` returns the dimensions. Here we see a.shape = `(4,)` indicating a 1-d array with 4 elements. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 3.4 Operations on Vectors\n", - "Let's explore some operations using vectors.\n", - "\n", - "### 3.4.1 Indexing\n", - "Elements of vectors can be accessed via indexing and slicing. NumPy provides a very complete set of indexing and slicing capabilities. We will explore only the basics needed for the course here. Reference [Slicing and Indexing](https://NumPy.org/doc/stable/reference/arrays.indexing.html) for more details. \n", - "**Indexing** means referring to *an element* of an array by its position within the array. \n", - "**Slicing** means getting a *subset* of elements from an array based on their indices. \n", - "NumPy starts indexing at zero so the 3rd element of an vector $\\mathbf{a}$ is `a[2]`." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0 1 2 3 4 5 6 7 8 9]\n", - "a[2].shape: () a[2] = 2, Accessing an element returns a scalar\n", - "a[-1] = 9\n", - "The error message you'll see is:\n", - "index 10 is out of bounds for axis 0 with size 10\n" - ] - } - ], - "source": [ - "#vector indexing operations on 1-D vectors\n", - "a = np.arange(10)\n", - "print(a)\n", - "\n", - "#access an element\n", - "print(f\"a[2].shape: {a[2].shape} a[2] = {a[2]}, Accessing an element returns a scalar\")\n", - "\n", - "# access the last element, negative indexes count from the end\n", - "print(f\"a[-1] = {a[-1]}\")\n", - "\n", - "#indexs must be within the range of the vector or they will produce and error\n", - "try:\n", - " c = a[10]\n", - "except Exception as e:\n", - " print(\"The error message you'll see is:\")\n", - " print(e)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.2 Slicing\n", - "Slicing creates an array of indices using a set of three values (`start:stop:step`). A subset of values is also valid. Its use is best explained by example:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a = [0 1 2 3 4 5 6 7 8 9]\n", - "a[2:7:1] = [2 3 4 5 6]\n", - "a[2:7:2] = [2 4 6]\n", - "a[3:] = [3 4 5 6 7 8 9]\n", - "a[:3] = [0 1 2]\n", - "a[:] = [0 1 2 3 4 5 6 7 8 9]\n" - ] - } - ], - "source": [ - "#vector slicing operations\n", - "a = np.arange(10)\n", - "print(f\"a = {a}\")\n", - "\n", - "#access 5 consecutive elements (start:stop:step)\n", - "c = a[2:7:1]; print(\"a[2:7:1] = \", c)\n", - "\n", - "# access 3 elements separated by two \n", - "c = a[2:7:2]; print(\"a[2:7:2] = \", c)\n", - "\n", - "# access all elements index 3 and above\n", - "c = a[3:]; print(\"a[3:] = \", c)\n", - "\n", - "# access all elements below index 3\n", - "c = a[:3]; print(\"a[:3] = \", c)\n", - "\n", - "# access all elements\n", - "c = a[:]; print(\"a[:] = \", c)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.3 Single vector operations\n", - "There are a number of useful operations that involve operations on a single vector." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a : [1 2 3 4]\n", - "b = -a : [-1 -2 -3 -4]\n", - "b = np.sum(a) : 10\n", - "b = np.mean(a): 2.5\n", - "b = a**2 : [ 1 4 9 16]\n" - ] - } - ], - "source": [ - "a = np.array([1,2,3,4])\n", - "print(f\"a : {a}\")\n", - "# negate elements of a\n", - "b = -a \n", - "print(f\"b = -a : {b}\")\n", - "\n", - "# sum all elements of a, returns a scalar\n", - "b = np.sum(a) \n", - "print(f\"b = np.sum(a) : {b}\")\n", - "\n", - "b = np.mean(a)\n", - "print(f\"b = np.mean(a): {b}\")\n", - "\n", - "b = a**2\n", - "print(f\"b = a**2 : {b}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.4 Vector Vector element-wise operations\n", - "Most of the NumPy arithmetic, logical and comparison operations apply to vectors as well. These operators work on an element-by-element basis. For example \n", - "$$ c_i = a_i + b_i $$" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Binary operators work element wise: [0 0 6 8]\n" - ] - } - ], - "source": [ - "a = np.array([ 1, 2, 3, 4])\n", - "b = np.array([-1,-2, 3, 4])\n", - "print(f\"Binary operators work element wise: {a + b}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Of course, for this to work correctly, the vectors must be of the same size:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The error message you'll see is:\n", - "operands could not be broadcast together with shapes (4,) (2,) \n" - ] - } - ], - "source": [ - "#try a mismatched vector operation\n", - "c = np.array([1, 2])\n", - "try:\n", - " d = a + c\n", - "except Exception as e:\n", - " print(\"The error message you'll see is:\")\n", - " print(e)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.5 Scalar Vector operations\n", - "Vectors can be 'scaled' by scalar values. A scalar value is just a number. The scalar multiplies all the elements of the vector." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "b = 5 * a : [ 5 10 15 20]\n" - ] - } - ], - "source": [ - "a = np.array([1, 2, 3, 4])\n", - "\n", - "# multiply a by a scalar\n", - "b = 5 * a \n", - "print(f\"b = 5 * a : {b}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.6 Vector Vector dot product\n", - "The dot product is a mainstay of Linear Algebra and NumPy. This is an operation used extensively in this course and should be well understood. The dot product is shown below." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The dot product multiplies the values in two vectors element-wise and then sums the result.\n", - "Vector dot product requires the dimensions of the two vectors to be the same. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's implement our own version of the dot product below:\n", - "\n", - "**Using a for loop**, implement a function which returns the dot product of two vectors. The function to return given inputs $a$ and $b$:\n", - "$$ x = \\sum_{i=0}^{n-1} a_i b_i $$\n", - "Assume both `a` and `b` are the same shape." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def my_dot(a, b): \n", - " \"\"\"\n", - " Compute the dot product of two vectors\n", - " \n", - " Args:\n", - " a (ndarray (n,)): input vector \n", - " b (ndarray (n,)): input vector with same dimension as a\n", - " \n", - " Returns:\n", - " x (scalar): \n", - " \"\"\"\n", - " x=0\n", - " for i in range(a.shape[0]):\n", - " x = x + a[i] * b[i]\n", - " return x" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "my_dot(a, b) = 24\n" - ] - } - ], - "source": [ - "# test 1-D\n", - "a = np.array([1, 2, 3, 4])\n", - "b = np.array([-1, 4, 3, 2])\n", - "print(f\"my_dot(a, b) = {my_dot(a, b)}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note, the dot product is expected to return a scalar value. \n", - "\n", - "Let's try the same operations using `np.dot`. " - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "NumPy 1-D np.dot(a, b) = 24, np.dot(a, b).shape = () \n", - "NumPy 1-D np.dot(b, a) = 24, np.dot(a, b).shape = () \n" - ] - } - ], - "source": [ - "# test 1-D\n", - "a = np.array([1, 2, 3, 4])\n", - "b = np.array([-1, 4, 3, 2])\n", - "c = np.dot(a, b)\n", - "print(f\"NumPy 1-D np.dot(a, b) = {c}, np.dot(a, b).shape = {c.shape} \") \n", - "c = np.dot(b, a)\n", - "print(f\"NumPy 1-D np.dot(b, a) = {c}, np.dot(a, b).shape = {c.shape} \")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, you will note that the results for 1-D matched our implementation." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.7 The Need for Speed: vector vs for loop\n", - "We utilized the NumPy library because it improves speed memory efficiency. Let's demonstrate:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "np.dot(a, b) = 2501072.5817\n", - "Vectorized version duration: 197.7768 ms \n", - "my_dot(a, b) = 2501072.5817\n", - "loop version duration: 8699.8875 ms \n" - ] - } - ], - "source": [ - "np.random.seed(1)\n", - "a = np.random.rand(10000000) # very large arrays\n", - "b = np.random.rand(10000000)\n", - "\n", - "tic = time.time() # capture start time\n", - "c = np.dot(a, b)\n", - "toc = time.time() # capture end time\n", - "\n", - "print(f\"np.dot(a, b) = {c:.4f}\")\n", - "print(f\"Vectorized version duration: {1000*(toc-tic):.4f} ms \")\n", - "\n", - "tic = time.time() # capture start time\n", - "c = my_dot(a,b)\n", - "toc = time.time() # capture end time\n", - "\n", - "print(f\"my_dot(a, b) = {c:.4f}\")\n", - "print(f\"loop version duration: {1000*(toc-tic):.4f} ms \")\n", - "\n", - "del(a);del(b) #remove these big arrays from memory" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So, vectorization provides a large speed up in this example. This is because NumPy makes better use of available data parallelism in the underlying hardware. GPU's and modern CPU's implement Single Instruction, Multiple Data (SIMD) pipelines allowing multiple operations to be issued in parallel. This is critical in Machine Learning where the data sets are often very large." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.8 Vector Vector operations in Course 1\n", - "Vector Vector operations will appear frequently in course 1. Here is why:\n", - "- Going forward, our examples will be stored in an array, `X_train` of dimension (m,n). This will be explained more in context, but here it is important to note it is a 2 Dimensional array or matrix (see next section on matrices).\n", - "- `w` will be a 1-dimensional vector of shape (n,).\n", - "- we will perform operations by looping through the examples, extracting each example to work on individually by indexing X. For example:`X[i]`\n", - "- `X[i]` returns a value of shape (n,), a 1-dimensional vector. Consequently, operations involving `X[i]` are often vector-vector. \n", - "\n", - "That is a somewhat lengthy explanation, but aligning and understanding the shapes of your operands is important when performing vector operations." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "X[1] has shape (1,)\n", - "w has shape (1,)\n", - "c has shape ()\n" - ] - } - ], - "source": [ - "# show common Course 1 example\n", - "X = np.array([[1],[2],[3],[4]])\n", - "w = np.array([2])\n", - "c = np.dot(X[1], w)\n", - "\n", - "print(f\"X[1] has shape {X[1].shape}\")\n", - "print(f\"w has shape {w.shape}\")\n", - "print(f\"c has shape {c.shape}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 4 Matrices\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 4.1 Abstract\n", - "Matrices, are two dimensional arrays. The elements of a matrix are all of the same type. In notation, matrices are denoted with capitol, bold letter such as $\\mathbf{X}$. In this and other labs, `m` is often the number of rows and `n` the number of columns. The elements of a matrix can be referenced with a two dimensional index. In math settings, numbers in the index typically run from 1 to n. In computer science and these labs, indexing will run from 0 to n-1. \n", - "
\n", - "
missing
\n", - "
Generic Matrix Notation, 1st index is row, 2nd is column
\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 4.2 NumPy Arrays\n", - "\n", - "NumPy's basic data structure is an indexable, n-dimensional *array* containing elements of the same type (`dtype`). These were described earlier. Matrices have a two-dimensional (2-D) index [m,n].\n", - "\n", - "In Course 1, 2-D matrices are used to hold training data. Training data is $m$ examples by $n$ features creating an (m,n) array. Course 1 does not do operations directly on matrices but typically extracts an example as a vector and operates on that. Below you will review: \n", - "- data creation\n", - "- slicing and indexing" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 4.3 Matrix Creation\n", - "The same functions that created 1-D vectors will create 2-D or n-D arrays. Here are some examples\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Below, the shape tuple is provided to achieve a 2-D result. Notice how NumPy uses brackets to denote each dimension. Notice further than NumPy, when printing, will print one row per line.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a shape = (1, 5), a = [[0. 0. 0. 0. 0.]]\n", - "a shape = (2, 1), a = [[0.]\n", - " [0.]]\n", - "a shape = (1, 1), a = [[0.44236513]]\n" - ] - } - ], - "source": [ - "a = np.zeros((1, 5)) \n", - "print(f\"a shape = {a.shape}, a = {a}\") \n", - "\n", - "a = np.zeros((2, 1)) \n", - "print(f\"a shape = {a.shape}, a = {a}\") \n", - "\n", - "a = np.random.random_sample((1, 1)) \n", - "print(f\"a shape = {a.shape}, a = {a}\") " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "One can also manually specify data. Dimensions are specified with additional brackets matching the format in the printing above." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " a shape = (3, 1), np.array: a = [[5]\n", - " [4]\n", - " [3]]\n", - " a shape = (3, 1), np.array: a = [[5]\n", - " [4]\n", - " [3]]\n" - ] - } - ], - "source": [ - "# NumPy routines which allocate memory and fill with user specified values\n", - "a = np.array([[5], [4], [3]]); print(f\" a shape = {a.shape}, np.array: a = {a}\")\n", - "a = np.array([[5], # One can also\n", - " [4], # separate values\n", - " [3]]); #into separate rows\n", - "print(f\" a shape = {a.shape}, np.array: a = {a}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 4.4 Operations on Matrices\n", - "Let's explore some operations using matrices." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 4.4.1 Indexing\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Matrices include a second index. The two indexes describe [row, column]. Access can either return an element or a row/column. See below:" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a.shape: (3, 2), \n", - "a= [[0 1]\n", - " [2 3]\n", - " [4 5]]\n", - "\n", - "a[2,0].shape: (), a[2,0] = 4, type(a[2,0]) = Accessing an element returns a scalar\n", - "\n", - "a[2].shape: (2,), a[2] = [4 5], type(a[2]) = \n" - ] - } - ], - "source": [ - "#vector indexing operations on matrices\n", - "a = np.arange(6).reshape(-1, 2) #reshape is a convenient way to create matrices\n", - "print(f\"a.shape: {a.shape}, \\na= {a}\")\n", - "\n", - "#access an element\n", - "print(f\"\\na[2,0].shape: {a[2, 0].shape}, a[2,0] = {a[2, 0]}, type(a[2,0]) = {type(a[2, 0])} Accessing an element returns a scalar\\n\")\n", - "\n", - "#access a row\n", - "print(f\"a[2].shape: {a[2].shape}, a[2] = {a[2]}, type(a[2]) = {type(a[2])}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is worth drawing attention to the last example. Accessing a matrix by just specifying the row will return a *1-D vector*." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Reshape** \n", - "The previous example used [reshape](https://numpy.org/doc/stable/reference/generated/numpy.reshape.html) to shape the array. \n", - "`a = np.arange(6).reshape(-1, 2) ` \n", - "This line of code first created a *1-D Vector* of six elements. It then reshaped that vector into a *2-D* array using the reshape command. This could have been written: \n", - "`a = np.arange(6).reshape(3, 2) ` \n", - "To arrive at the same 3 row, 2 column array.\n", - "The -1 argument tells the routine to compute the number of rows given the size of the array and the number of columns.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 4.4.2 Slicing\n", - "Slicing creates an array of indices using a set of three values (`start:stop:step`). A subset of values is also valid. Its use is best explained by example:" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a = \n", - "[[ 0 1 2 3 4 5 6 7 8 9]\n", - " [10 11 12 13 14 15 16 17 18 19]]\n", - "a[0, 2:7:1] = [2 3 4 5 6] , a[0, 2:7:1].shape = (5,) a 1-D array\n", - "a[:, 2:7:1] = \n", - " [[ 2 3 4 5 6]\n", - " [12 13 14 15 16]] , a[:, 2:7:1].shape = (2, 5) a 2-D array\n", - "a[:,:] = \n", - " [[ 0 1 2 3 4 5 6 7 8 9]\n", - " [10 11 12 13 14 15 16 17 18 19]] , a[:,:].shape = (2, 10)\n", - "a[1,:] = [10 11 12 13 14 15 16 17 18 19] , a[1,:].shape = (10,) a 1-D array\n", - "a[1] = [10 11 12 13 14 15 16 17 18 19] , a[1].shape = (10,) a 1-D array\n" - ] - } - ], - "source": [ - "#vector 2-D slicing operations\n", - "a = np.arange(20).reshape(-1, 10)\n", - "print(f\"a = \\n{a}\")\n", - "\n", - "#access 5 consecutive elements (start:stop:step)\n", - "print(\"a[0, 2:7:1] = \", a[0, 2:7:1], \", a[0, 2:7:1].shape =\", a[0, 2:7:1].shape, \"a 1-D array\")\n", - "\n", - "#access 5 consecutive elements (start:stop:step) in two rows\n", - "print(\"a[:, 2:7:1] = \\n\", a[:, 2:7:1], \", a[:, 2:7:1].shape =\", a[:, 2:7:1].shape, \"a 2-D array\")\n", - "\n", - "# access all elements\n", - "print(\"a[:,:] = \\n\", a[:,:], \", a[:,:].shape =\", a[:,:].shape)\n", - "\n", - "# access all elements in one row (very common usage)\n", - "print(\"a[1,:] = \", a[1,:], \", a[1,:].shape =\", a[1,:].shape, \"a 1-D array\")\n", - "# same as\n", - "print(\"a[1] = \", a[1], \", a[1].shape =\", a[1].shape, \"a 1-D array\")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Congratulations!\n", - "In this lab you mastered the features of Python and NumPy that are needed for Course 1." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "dl_toc_settings": { - "rndtag": "40015" - }, - "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.6" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/week2/C1_W2_Lab02_Multiple_Variable_Soln.ipynb b/week2/C1_W2_Lab02_Multiple_Variable_Soln.ipynb deleted file mode 100644 index ea16775..0000000 --- a/week2/C1_W2_Lab02_Multiple_Variable_Soln.ipynb +++ /dev/null @@ -1,737 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Multiple Variable Linear Regression\n", - "\n", - "In this lab, you will extend the data structures and previously developed routines to support multiple features. Several routines are updated making the lab appear lengthy, but it makes minor adjustments to previous routines making it quick to review.\n", - "# Outline\n", - "- [  1.1 Goals](#toc_15456_1.1)\n", - "- [  1.2 Tools](#toc_15456_1.2)\n", - "- [  1.3 Notation](#toc_15456_1.3)\n", - "- [2 Problem Statement](#toc_15456_2)\n", - "- [  2.1 Matrix X containing our examples](#toc_15456_2.1)\n", - "- [  2.2 Parameter vector w, b](#toc_15456_2.2)\n", - "- [3 Model Prediction With Multiple Variables](#toc_15456_3)\n", - "- [  3.1 Single Prediction element by element](#toc_15456_3.1)\n", - "- [  3.2 Single Prediction, vector](#toc_15456_3.2)\n", - "- [4 Compute Cost With Multiple Variables](#toc_15456_4)\n", - "- [5 Gradient Descent With Multiple Variables](#toc_15456_5)\n", - "- [  5.1 Compute Gradient with Multiple Variables](#toc_15456_5.1)\n", - "- [  5.2 Gradient Descent With Multiple Variables](#toc_15456_5.2)\n", - "- [6 Congratulations](#toc_15456_6)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 1.1 Goals\n", - "- Extend our regression model routines to support multiple features\n", - " - Extend data structures to support multiple features\n", - " - Rewrite prediction, cost and gradient routines to support multiple features\n", - " - Utilize NumPy `np.dot` to vectorize their implementations for speed and simplicity" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 1.2 Tools\n", - "In this lab, we will make use of: \n", - "- NumPy, a popular library for scientific computing\n", - "- Matplotlib, a popular library for plotting data" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import copy, math\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "plt.style.use('./deeplearning.mplstyle')\n", - "np.set_printoptions(precision=2) # reduced display precision on numpy arrays" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 1.3 Notation\n", - "Here is a summary of some of the notation you will encounter, updated for multiple features. \n", - "\n", - "|General
Notation | Description| Python (if applicable) |\n", - "|: ------------|: ------------------------------------------------------------||\n", - "| $a$ | scalar, non bold ||\n", - "| $\\mathbf{a}$ | vector, bold ||\n", - "| $\\mathbf{A}$ | matrix, bold capital ||\n", - "| **Regression** | | | |\n", - "| $\\mathbf{X}$ | training example matrix | `X_train` | \n", - "| $\\mathbf{y}$ | training example targets | `y_train` \n", - "| $\\mathbf{x}^{(i)}$, $y^{(i)}$ | $i_{th}$Training Example | `X[i]`, `y[i]`|\n", - "| m | number of training examples | `m`|\n", - "| n | number of features in each example | `n`|\n", - "| $\\mathbf{w}$ | parameter: weight, | `w` |\n", - "| $b$ | parameter: bias | `b` | \n", - "| $f_{\\mathbf{w},b}(\\mathbf{x}^{(i)})$ | The result of the model evaluation at $\\mathbf{x^{(i)}}$ parameterized by $\\mathbf{w},b$: $f_{\\mathbf{w},b}(\\mathbf{x}^{(i)}) = \\mathbf{w} \\cdot \\mathbf{x}^{(i)}+b$ | `f_wb` | \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 2 Problem Statement\n", - "\n", - "You will use the motivating example of housing price prediction. The training dataset contains three examples with four features (size, bedrooms, floors and, age) shown in the table below. Note that, unlike the earlier labs, size is in sqft rather than 1000 sqft. This causes an issue, which you will solve in the next lab!\n", - "\n", - "| Size (sqft) | Number of Bedrooms | Number of floors | Age of Home | Price (1000s dollars) | \n", - "| ----------------| ------------------- |----------------- |--------------|-------------- | \n", - "| 2104 | 5 | 1 | 45 | 460 | \n", - "| 1416 | 3 | 2 | 40 | 232 | \n", - "| 852 | 2 | 1 | 35 | 178 | \n", - "\n", - "You will build a linear regression model using these values so you can then predict the price for other houses. For example, a house with 1200 sqft, 3 bedrooms, 1 floor, 40 years old. \n", - "\n", - "Please run the following code cell to create your `X_train` and `y_train` variables." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "X_train = np.array([[2104, 5, 1, 45], [1416, 3, 2, 40], [852, 2, 1, 35]])\n", - "y_train = np.array([460, 232, 178])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 2.1 Matrix X containing our examples\n", - "Similar to the table above, examples are stored in a NumPy matrix `X_train`. Each row of the matrix represents one example. When you have $m$ training examples ( $m$ is three in our example), and there are $n$ features (four in our example), $\\mathbf{X}$ is a matrix with dimensions ($m$, $n$) (m rows, n columns).\n", - "\n", - "\n", - "$$\\mathbf{X} = \n", - "\\begin{pmatrix}\n", - " x^{(0)}_0 & x^{(0)}_1 & \\cdots & x^{(0)}_{n-1} \\\\ \n", - " x^{(1)}_0 & x^{(1)}_1 & \\cdots & x^{(1)}_{n-1} \\\\\n", - " \\cdots \\\\\n", - " x^{(m-1)}_0 & x^{(m-1)}_1 & \\cdots & x^{(m-1)}_{n-1} \n", - "\\end{pmatrix}\n", - "$$\n", - "notation:\n", - "- $\\mathbf{x}^{(i)}$ is vector containing example i. $\\mathbf{x}^{(i)}$ $ = (x^{(i)}_0, x^{(i)}_1, \\cdots,x^{(i)}_{n-1})$\n", - "- $x^{(i)}_j$ is element j in example i. The superscript in parenthesis indicates the example number while the subscript represents an element. \n", - "\n", - "Display the input data." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "X Shape: (3, 4), X Type:)\n", - "[[2104 5 1 45]\n", - " [1416 3 2 40]\n", - " [ 852 2 1 35]]\n", - "y Shape: (3,), y Type:)\n", - "[460 232 178]\n" - ] - } - ], - "source": [ - "# data is stored in numpy array/matrix\n", - "print(f\"X Shape: {X_train.shape}, X Type:{type(X_train)})\")\n", - "print(X_train)\n", - "print(f\"y Shape: {y_train.shape}, y Type:{type(y_train)})\")\n", - "print(y_train)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 2.2 Parameter vector w, b\n", - "\n", - "* $\\mathbf{w}$ is a vector with $n$ elements.\n", - " - Each element contains the parameter associated with one feature.\n", - " - in our dataset, n is 4.\n", - " - notionally, we draw this as a column vector\n", - "\n", - "$$\\mathbf{w} = \\begin{pmatrix}\n", - "w_0 \\\\ \n", - "w_1 \\\\\n", - "\\cdots\\\\\n", - "w_{n-1}\n", - "\\end{pmatrix}\n", - "$$\n", - "* $b$ is a scalar parameter. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For demonstration, $\\mathbf{w}$ and $b$ will be loaded with some initial selected values that are near the optimal. $\\mathbf{w}$ is a 1-D NumPy vector." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "w_init shape: (4,), b_init type: \n" - ] - } - ], - "source": [ - "b_init = 785.1811367994083\n", - "w_init = np.array([ 0.39133535, 18.75376741, -53.36032453, -26.42131618])\n", - "print(f\"w_init shape: {w_init.shape}, b_init type: {type(b_init)}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 3 Model Prediction With Multiple Variables\n", - "The model's prediction with multiple variables is given by the linear model:\n", - "\n", - "$$ f_{\\mathbf{w},b}(\\mathbf{x}) = w_0x_0 + w_1x_1 +... + w_{n-1}x_{n-1} + b \\tag{1}$$\n", - "or in vector notation:\n", - "$$ f_{\\mathbf{w},b}(\\mathbf{x}) = \\mathbf{w} \\cdot \\mathbf{x} + b \\tag{2} $$ \n", - "where $\\cdot$ is a vector `dot product`\n", - "\n", - "To demonstrate the dot product, we will implement prediction using (1) and (2)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 3.1 Single Prediction element by element\n", - "Our previous prediction multiplied one feature value by one parameter and added a bias parameter. A direct extension of our previous implementation of prediction to multiple features would be to implement (1) above using loop over each element, performing the multiply with its parameter and then adding the bias parameter at the end.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def predict_single_loop(x, w, b): \n", - " \"\"\"\n", - " single predict using linear regression\n", - " \n", - " Args:\n", - " x (ndarray): Shape (n,) example with multiple features\n", - " w (ndarray): Shape (n,) model parameters \n", - " b (scalar): model parameter \n", - " \n", - " Returns:\n", - " p (scalar): prediction\n", - " \"\"\"\n", - " n = x.shape[0]\n", - " p = 0\n", - " for i in range(n):\n", - " p_i = x[i] * w[i] \n", - " p = p + p_i \n", - " p = p + b \n", - " return p" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "x_vec shape (4,), x_vec value: [2104 5 1 45]\n", - "f_wb shape (), prediction: 459.9999976194083\n" - ] - } - ], - "source": [ - "# get a row from our training data\n", - "x_vec = X_train[0,:]\n", - "print(f\"x_vec shape {x_vec.shape}, x_vec value: {x_vec}\")\n", - "\n", - "# make a prediction\n", - "f_wb = predict_single_loop(x_vec, w_init, b_init)\n", - "print(f\"f_wb shape {f_wb.shape}, prediction: {f_wb}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note the shape of `x_vec`. It is a 1-D NumPy vector with 4 elements, (4,). The result, `f_wb` is a scalar." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 3.2 Single Prediction, vector\n", - "\n", - "Noting that equation (1) above can be implemented using the dot product as in (2) above. We can make use of vector operations to speed up predictions.\n", - "\n", - "Recall from the Python/Numpy lab that NumPy `np.dot()`[[link](https://numpy.org/doc/stable/reference/generated/numpy.dot.html)] can be used to perform a vector dot product. " - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def predict(x, w, b): \n", - " \"\"\"\n", - " single predict using linear regression\n", - " Args:\n", - " x (ndarray): Shape (n,) example with multiple features\n", - " w (ndarray): Shape (n,) model parameters \n", - " b (scalar): model parameter \n", - " \n", - " Returns:\n", - " p (scalar): prediction\n", - " \"\"\"\n", - " p = np.dot(x, w) + b \n", - " return p " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "x_vec shape (4,), x_vec value: [2104 5 1 45]\n", - "f_wb shape (), prediction: 459.99999761940825\n" - ] - } - ], - "source": [ - "# get a row from our training data\n", - "x_vec = X_train[0,:]\n", - "print(f\"x_vec shape {x_vec.shape}, x_vec value: {x_vec}\")\n", - "\n", - "# make a prediction\n", - "f_wb = predict(x_vec,w_init, b_init)\n", - "print(f\"f_wb shape {f_wb.shape}, prediction: {f_wb}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The results and shapes are the same as the previous version which used looping. Going forward, `np.dot` will be used for these operations. The prediction is now a single statement. Most routines will implement it directly rather than calling a separate predict routine." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 4 Compute Cost With Multiple Variables\n", - "The equation for the cost function with multiple variables $J(\\mathbf{w},b)$ is:\n", - "$$J(\\mathbf{w},b) = \\frac{1}{2m} \\sum\\limits_{i = 0}^{m-1} (f_{\\mathbf{w},b}(\\mathbf{x}^{(i)}) - y^{(i)})^2 \\tag{3}$$ \n", - "where:\n", - "$$ f_{\\mathbf{w},b}(\\mathbf{x}^{(i)}) = \\mathbf{w} \\cdot \\mathbf{x}^{(i)} + b \\tag{4} $$ \n", - "\n", - "\n", - "In contrast to previous labs, $\\mathbf{w}$ and $\\mathbf{x}^{(i)}$ are vectors rather than scalars supporting multiple features." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Below is an implementation of equations (3) and (4). Note that this uses a *standard pattern for this course* where a for loop over all `m` examples is used." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_cost(X, y, w, b): \n", - " \"\"\"\n", - " compute cost\n", - " Args:\n", - " X (ndarray (m,n)): Data, m examples with n features\n", - " y (ndarray (m,)) : target values\n", - " w (ndarray (n,)) : model parameters \n", - " b (scalar) : model parameter\n", - " \n", - " Returns:\n", - " cost (scalar): cost\n", - " \"\"\"\n", - " m = X.shape[0]\n", - " cost = 0.0\n", - " for i in range(m): \n", - " f_wb_i = np.dot(X[i], w) + b #(n,)(n,) = scalar (see np.dot)\n", - " cost = cost + (f_wb_i - y[i])**2 #scalar\n", - " cost = cost / (2 * m) #scalar \n", - " return cost" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Cost at optimal w : 1.5578904880036537e-12\n" - ] - } - ], - "source": [ - "# Compute and display cost using our pre-chosen optimal parameters. \n", - "cost = compute_cost(X_train, y_train, w_init, b_init)\n", - "print(f'Cost at optimal w : {cost}')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Expected Result**: Cost at optimal w : 1.5578904045996674e-12" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 5 Gradient Descent With Multiple Variables\n", - "Gradient descent for multiple variables:\n", - "\n", - "$$\\begin{align*} \\text{repeat}&\\text{ until convergence:} \\; \\lbrace \\newline\\;\n", - "& w_j = w_j - \\alpha \\frac{\\partial J(\\mathbf{w},b)}{\\partial w_j} \\tag{5} \\; & \\text{for j = 0..n-1}\\newline\n", - "&b\\ \\ = b - \\alpha \\frac{\\partial J(\\mathbf{w},b)}{\\partial b} \\newline \\rbrace\n", - "\\end{align*}$$\n", - "\n", - "where, n is the number of features, parameters $w_j$, $b$, are updated simultaneously and where \n", - "\n", - "$$\n", - "\\begin{align}\n", - "\\frac{\\partial J(\\mathbf{w},b)}{\\partial w_j} &= \\frac{1}{m} \\sum\\limits_{i = 0}^{m-1} (f_{\\mathbf{w},b}(\\mathbf{x}^{(i)}) - y^{(i)})x_{j}^{(i)} \\tag{6} \\\\\n", - "\\frac{\\partial J(\\mathbf{w},b)}{\\partial b} &= \\frac{1}{m} \\sum\\limits_{i = 0}^{m-1} (f_{\\mathbf{w},b}(\\mathbf{x}^{(i)}) - y^{(i)}) \\tag{7}\n", - "\\end{align}\n", - "$$\n", - "* m is the number of training examples in the data set\n", - "\n", - " \n", - "* $f_{\\mathbf{w},b}(\\mathbf{x}^{(i)})$ is the model's prediction, while $y^{(i)}$ is the target value\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 5.1 Compute Gradient with Multiple Variables\n", - "An implementation for calculating the equations (6) and (7) is below. There are many ways to implement this. In this version, there is an\n", - "- outer loop over all m examples. \n", - " - $\\frac{\\partial J(\\mathbf{w},b)}{\\partial b}$ for the example can be computed directly and accumulated\n", - " - in a second loop over all n features:\n", - " - $\\frac{\\partial J(\\mathbf{w},b)}{\\partial w_j}$ is computed for each $w_j$.\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_gradient(X, y, w, b): \n", - " \"\"\"\n", - " Computes the gradient for linear regression \n", - " Args:\n", - " X (ndarray (m,n)): Data, m examples with n features\n", - " y (ndarray (m,)) : target values\n", - " w (ndarray (n,)) : model parameters \n", - " b (scalar) : model parameter\n", - " \n", - " Returns:\n", - " dj_dw (ndarray (n,)): The gradient of the cost w.r.t. the parameters w. \n", - " dj_db (scalar): The gradient of the cost w.r.t. the parameter b. \n", - " \"\"\"\n", - " m,n = X.shape #(number of examples, number of features)\n", - " dj_dw = np.zeros((n,))\n", - " dj_db = 0.\n", - "\n", - " for i in range(m): \n", - " err = (np.dot(X[i], w) + b) - y[i] \n", - " for j in range(n): \n", - " dj_dw[j] = dj_dw[j] + err * X[i, j] \n", - " dj_db = dj_db + err \n", - " dj_dw = dj_dw / m \n", - " dj_db = dj_db / m \n", - " \n", - " return dj_db, dj_dw" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dj_db at initial w,b: -1.673925169143331e-06\n", - "dj_dw at initial w,b: \n", - " [-2.73e-03 -6.27e-06 -2.22e-06 -6.92e-05]\n" - ] - } - ], - "source": [ - "#Compute and display gradient \n", - "tmp_dj_db, tmp_dj_dw = compute_gradient(X_train, y_train, w_init, b_init)\n", - "print(f'dj_db at initial w,b: {tmp_dj_db}')\n", - "print(f'dj_dw at initial w,b: \\n {tmp_dj_dw}')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Expected Result**: \n", - "dj_db at initial w,b: -1.6739251122999121e-06 \n", - "dj_dw at initial w,b: \n", - " [-2.73e-03 -6.27e-06 -2.22e-06 -6.92e-05] " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 5.2 Gradient Descent With Multiple Variables\n", - "The routine below implements equation (5) above." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "def gradient_descent(X, y, w_in, b_in, cost_function, gradient_function, alpha, num_iters): \n", - " \"\"\"\n", - " Performs batch gradient descent to learn w and b. Updates w and b by taking \n", - " num_iters gradient steps with learning rate alpha\n", - " \n", - " Args:\n", - " X (ndarray (m,n)) : Data, m examples with n features\n", - " y (ndarray (m,)) : target values\n", - " w_in (ndarray (n,)) : initial model parameters \n", - " b_in (scalar) : initial model parameter\n", - " cost_function : function to compute cost\n", - " gradient_function : function to compute the gradient\n", - " alpha (float) : Learning rate\n", - " num_iters (int) : number of iterations to run gradient descent\n", - " \n", - " Returns:\n", - " w (ndarray (n,)) : Updated values of parameters \n", - " b (scalar) : Updated value of parameter \n", - " \"\"\"\n", - " \n", - " # An array to store cost J and w's at each iteration primarily for graphing later\n", - " J_history = []\n", - " w = copy.deepcopy(w_in) #avoid modifying global w within function\n", - " b = b_in\n", - " \n", - " for i in range(num_iters):\n", - "\n", - " # Calculate the gradient and update the parameters\n", - " dj_db,dj_dw = gradient_function(X, y, w, b) ##None\n", - "\n", - " # Update Parameters using w, b, alpha and gradient\n", - " w = w - alpha * dj_dw ##None\n", - " b = b - alpha * dj_db ##None\n", - " \n", - " # Save cost J at each iteration\n", - " if i<100000: # prevent resource exhaustion \n", - " J_history.append( cost_function(X, y, w, b))\n", - "\n", - " # Print cost every at intervals 10 times or as many iterations if < 10\n", - " if i% math.ceil(num_iters / 10) == 0:\n", - " print(f\"Iteration {i:4d}: Cost {J_history[-1]:8.2f} \")\n", - " \n", - " return w, b, J_history #return final w,b and J history for graphing" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the next cell you will test the implementation. " - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration 0: Cost 2529.46 \n", - "Iteration 100: Cost 695.99 \n", - "Iteration 200: Cost 694.92 \n", - "Iteration 300: Cost 693.86 \n", - "Iteration 400: Cost 692.81 \n", - "Iteration 500: Cost 691.77 \n", - "Iteration 600: Cost 690.73 \n", - "Iteration 700: Cost 689.71 \n", - "Iteration 800: Cost 688.70 \n", - "Iteration 900: Cost 687.69 \n", - "b,w found by gradient descent: -0.00,[ 0.2 0. -0.01 -0.07] \n", - "prediction: 426.19, target value: 460\n", - "prediction: 286.17, target value: 232\n", - "prediction: 171.47, target value: 178\n" - ] - } - ], - "source": [ - "# initialize parameters\n", - "initial_w = np.zeros_like(w_init)\n", - "initial_b = 0.\n", - "# some gradient descent settings\n", - "iterations = 1000\n", - "alpha = 5.0e-7\n", - "# run gradient descent \n", - "w_final, b_final, J_hist = gradient_descent(X_train, y_train, initial_w, initial_b,\n", - " compute_cost, compute_gradient, \n", - " alpha, iterations)\n", - "print(f\"b,w found by gradient descent: {b_final:0.2f},{w_final} \")\n", - "m,_ = X_train.shape\n", - "for i in range(m):\n", - " print(f\"prediction: {np.dot(X_train[i], w_final) + b_final:0.2f}, target value: {y_train[i]}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Expected Result**: \n", - "b,w found by gradient descent: -0.00,[ 0.2 0. -0.01 -0.07] \n", - "prediction: 426.19, target value: 460 \n", - "prediction: 286.17, target value: 232 \n", - "prediction: 171.47, target value: 178 " - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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9u2NrKwsq1jfvn0NLy8v4+LFi4Zh/Hrn0MPDw0hOTrb53PT0dJtjy5YtMwDjP//5j+XY5s2bDcByR/Rmt975y8rKMmrVqmUEBAQYqampluM///yzYTabjTZt2liO3cjP29vb+Pnnny3HT548abi7uxvPP/+8zeeJiNxM44x9NM4UfJwZOnSo4erqajPzZRiGUadOnXxnurKzs43MzEyb48OHDzd8fHyMa9eu3fb6DOP2M2gnTpwwAGPq1Kl3zFucQ10cpdRJS0ujUqVKdr/+o48+IigoiPDwcMsxk8lkuVMXGxsLgK+vr+X369evOyzfIUOGcOrUKctdPYDPPvuM8+fPW92p8vX1JSkpiX379jnss+313//+lx9//JHBgwdz8eJFzp07Z/np1asXV69eZfv27Vbv6dWrF/Xq1bM5l7e3N5D38PilS5c4d+4cnTt3BuCHH34oUH47d+7k1KlTjBkzhsqVK1uOBwQEMHjwYHbt2sXJkyet3vP73//e6uH9WrVqERwczOHDhwuUg4iUHxpnHE/jjLWUlBQqV658V63+XV1d8fDwAPKagKSmpnLu3Dm6devG5cuX+emnn+w+1838/f0BOHfuXIHeL46nAk1KnUqVKpGWlmb365OTky3LIm7WrFkzAI4ePQpAly5dGDBgALNmzcLf359evXrx+uuvF/oLq2/fvnh6erJy5UrLsZUrV+Lj40Pv3r0tx2bNmsXly5dp1qwZzZo149lnn7UabIvS/v37AXjuueeoVq2a1c9TTz0F5LUDvlmDBg3yPdf3339Pjx498Pb2pnLlylSrVo3AwEAAUlNTC5TfjU5mN5bJ3OzW/4435Deo+/n5ceHChQLlICLlh8YZx9M44xjvvfceYWFhVKxYkSpVqlCtWjWefPJJoODXnpub68gUxQFUoEmp06xZM3766ScyMzPtfs9v3aG6ETOZTKxZs4adO3cyadIkrly5woQJEwgODi7UHio+Pj706dOHDz74gGvXrnHlyhU++ugj+vXrh6enp+V1nTp14siRI6xYsYL27duzfv16HnroIUaNGlXgz7bXjS/nqKgoNm/enO9P9+7drd5zc+43JCcn07VrV06ePMnLL7/MRx99xObNm/n000+tPqeg8vvvaPyvi9qtsZv3lMnv9SIit6NxxvE0zlirVq0aFy9evKsx6f333+fJJ5+kVq1aLF68mI8//pjNmzfz97//HSj4td8o7G48MyjFT01CpNR5/PHH+eabb1i5ciUjR4684+vr16+f73KOG8du3aelTZs2tGnThunTp5OYmEibNm14+eWXLXcm72Y5wg1Dhgxh7dq1bNq0iYyMDK5cuZLvg7i+vr4MHjyYwYMHk52dzbBhw3j33XeZPHmyQxpb3C73oKAgIG8wvHWAvBsbNmzg6tWrfPzxx1Z/r/ktu7ibv8cb5/rxxx/p16+fVezGXdni3m9HRMoOjTMFp3HGPk2bNiUnJ4djx47ZnPd2ea9cuZIGDRqwceNGy75zQKGX7t94/42ZQil+mkGTUmf06NHUr1+f559/nj179tjEs7Oz+fvf/86JEycA6NOnD4cOHWL9+vWW1xiGwf/93/9Z4pB3B+nWO1lNmzbF09PTarmC2Wzm4sWLd5Vzz549qVKlCitXrmTlypXUrFmThx56yOo158+ft/rdzc2N0NBQAKvP379/P8ePH7+rz785d7BdBtG6dWuaNGnCa6+9lu9Sm5SUFLvOf+Nu4q138V566SW7c8lP27ZtLXcMb152dPLkSVasWEHr1q2pXbu2XTmKiNyJxhmNMzcU1Thzo6tkfs/Mmc3mfHO+ce03/z+UkZHB66+/XqhcduzYAeRtkC4lg2bQpNTx8fHho48+omfPntx3331ERETQsWNHKlasyKFDh4iJieHIkSM88cQTAEyZMoW1a9cSGRlpaX/88ccf88knnzB27FjL4LR8+XLeeOMN+vbtS1BQENnZ2axevZrLly9b3YVs164dn376KePHj+e+++7DxcWFQYMG/WbOFSpUICIiguXLl5OTk8PYsWNtlkY0bdqUBx54gHbt2lGjRg1++uknFixYQJMmTWjTpo3V67p06cLXX3991393N9r5Tp06lcjISNzd3XnooYeoXr06S5cu5eGHH6ZZs2aMGjWKwMBAzp07x549e9iwYQPXrl274/kfeeQRKlasSK9evRgzZgyurq7Exsba/KMAICQkBC8vL9566y3MZjM+Pj40b96c5s2b27zWzc2N+fPnM2jQINq3b8/IkSMt7Y+zsrJ47bXX7vrvQkTkdjTOaJwp6nGmffv21K5dm88//5yIiAirWLt27XjvvfeIjo6mcePGmM1m+vTpQ9++fVm3bh29evWiX79+XLhwgWXLllkK0YL69NNPadOm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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# plot cost versus iteration \n", - "fig, (ax1, ax2) = plt.subplots(1, 2, constrained_layout=True, figsize=(12, 4))\n", - "ax1.plot(J_hist)\n", - "ax2.plot(100 + np.arange(len(J_hist[100:])), J_hist[100:])\n", - "ax1.set_title(\"Cost vs. iteration\"); ax2.set_title(\"Cost vs. iteration (tail)\")\n", - "ax1.set_ylabel('Cost') ; ax2.set_ylabel('Cost') \n", - "ax1.set_xlabel('iteration step') ; ax2.set_xlabel('iteration step') \n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "*These results are not inspiring*! Cost is still declining and our predictions are not very accurate. The next lab will explore how to improve on this." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "# 6 Congratulations!\n", - "In this lab you:\n", - "- Redeveloped the routines for linear regression, now with multiple variables.\n", - "- Utilized NumPy `np.dot` to vectorize the implementations" - ] - } - ], - "metadata": { - "dl_toc_settings": { - "rndtag": "15456" - }, - "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.6" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week2/C1_W2_Lab03_Feature_Scaling_and_Learning_Rate_Soln.ipynb b/week2/C1_W2_Lab03_Feature_Scaling_and_Learning_Rate_Soln.ipynb deleted file mode 100644 index 473c018..0000000 --- a/week2/C1_W2_Lab03_Feature_Scaling_and_Learning_Rate_Soln.ipynb +++ /dev/null @@ -1,864 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Feature scaling and Learning Rate (Multi-variable)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab you will:\n", - "- Utilize the multiple variables routines developed in the previous lab\n", - "- run Gradient Descent on a data set with multiple features\n", - "- explore the impact of the *learning rate alpha* on gradient descent\n", - "- improve performance of gradient descent by *feature scaling* using z-score normalization" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Tools\n", - "You will utilize the functions developed in the last lab as well as matplotlib and NumPy. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from lab_utils_multi import load_house_data, run_gradient_descent \n", - "from lab_utils_multi import norm_plot, plt_equal_scale, plot_cost_i_w\n", - "from lab_utils_common import dlc\n", - "np.set_printoptions(precision=2)\n", - "plt.style.use('./deeplearning.mplstyle')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Notation\n", - "\n", - "|General
Notation | Description| Python (if applicable) |\n", - "|: ------------|: ------------------------------------------------------------||\n", - "| $a$ | scalar, non bold ||\n", - "| $\\mathbf{a}$ | vector, bold ||\n", - "| $\\mathbf{A}$ | matrix, bold capital ||\n", - "| **Regression** | | | |\n", - "| $\\mathbf{X}$ | training example maxtrix | `X_train` | \n", - "| $\\mathbf{y}$ | training example targets | `y_train` \n", - "| $\\mathbf{x}^{(i)}$, $y^{(i)}$ | $i_{th}$Training Example | `X[i]`, `y[i]`|\n", - "| m | number of training examples | `m`|\n", - "| n | number of features in each example | `n`|\n", - "| $\\mathbf{w}$ | parameter: weight, | `w` |\n", - "| $b$ | parameter: bias | `b` | \n", - "| $f_{\\mathbf{w},b}(\\mathbf{x}^{(i)})$ | The result of the model evaluation at $\\mathbf{x}^{(i)}$ parameterized by $\\mathbf{w},b$: $f_{\\mathbf{w},b}(\\mathbf{x}^{(i)}) = \\mathbf{w} \\cdot \\mathbf{x}^{(i)}+b$ | `f_wb` | \n", - "|$\\frac{\\partial J(\\mathbf{w},b)}{\\partial w_j}$| the gradient or partial derivative of cost with respect to a parameter $w_j$ |`dj_dw[j]`| \n", - "|$\\frac{\\partial J(\\mathbf{w},b)}{\\partial b}$| the gradient or partial derivative of cost with respect to a parameter $b$| `dj_db`|" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Problem Statement\n", - "\n", - "As in the previous labs, you will use the motivating example of housing price prediction. The training data set contains many examples with 4 features (size, bedrooms, floors and age) shown in the table below. Note, in this lab, the Size feature is in sqft while earlier labs utilized 1000 sqft. This data set is larger than the previous lab.\n", - "\n", - "We would like to build a linear regression model using these values so we can then predict the price for other houses - say, a house with 1200 sqft, 3 bedrooms, 1 floor, 40 years old. \n", - "\n", - "## Dataset: \n", - "| Size (sqft) | Number of Bedrooms | Number of floors | Age of Home | Price (1000s dollars) | \n", - "| ----------------| ------------------- |----------------- |--------------|----------------------- | \n", - "| 952 | 2 | 1 | 65 | 271.5 | \n", - "| 1244 | 3 | 2 | 64 | 232 | \n", - "| 1947 | 3 | 2 | 17 | 509.8 | \n", - "| ... | ... | ... | ... | ... |\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# load the dataset\n", - "X_train, y_train = load_house_data()\n", - "X_features = ['size(sqft)','bedrooms','floors','age']" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's view the dataset and its features by plotting each feature versus price." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig,ax=plt.subplots(1, 4, figsize=(12, 3), sharey=True)\n", - "for i in range(len(ax)):\n", - " ax[i].scatter(X_train[:,i],y_train)\n", - " ax[i].set_xlabel(X_features[i])\n", - "ax[0].set_ylabel(\"Price (1000's)\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Plotting each feature vs. the target, price, provides some indication of which features have the strongest influence on price. Above, increasing size also increases price. Bedrooms and floors don't seem to have a strong impact on price. Newer houses have higher prices than older houses." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Gradient Descent With Multiple Variables\n", - "Here are the equations you developed in the last lab on gradient descent for multiple variables.:\n", - "\n", - "$$\\begin{align*} \\text{repeat}&\\text{ until convergence:} \\; \\lbrace \\newline\\;\n", - "& w_j := w_j - \\alpha \\frac{\\partial J(\\mathbf{w},b)}{\\partial w_j} \\tag{1} \\; & \\text{for j = 0..n-1}\\newline\n", - "&b\\ \\ := b - \\alpha \\frac{\\partial J(\\mathbf{w},b)}{\\partial b} \\newline \\rbrace\n", - "\\end{align*}$$\n", - "\n", - "where, n is the number of features, parameters $w_j$, $b$, are updated simultaneously and where \n", - "\n", - "$$\n", - "\\begin{align}\n", - "\\frac{\\partial J(\\mathbf{w},b)}{\\partial w_j} &= \\frac{1}{m} \\sum\\limits_{i = 0}^{m-1} (f_{\\mathbf{w},b}(\\mathbf{x}^{(i)}) - y^{(i)})x_{j}^{(i)} \\tag{2} \\\\\n", - "\\frac{\\partial J(\\mathbf{w},b)}{\\partial b} &= \\frac{1}{m} \\sum\\limits_{i = 0}^{m-1} (f_{\\mathbf{w},b}(\\mathbf{x}^{(i)}) - y^{(i)}) \\tag{3}\n", - "\\end{align}\n", - "$$\n", - "* m is the number of training examples in the data set\n", - "\n", - " \n", - "* $f_{\\mathbf{w},b}(\\mathbf{x}^{(i)})$ is the model's prediction, while $y^{(i)}$ is the target value\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Learning Rate\n", - "
\n", - " \n", - "
\n", - "The lectures discussed some of the issues related to setting the learning rate $\\alpha$. The learning rate controls the size of the update to the parameters. See equation (1) above. It is shared by all the parameters. \n", - "\n", - "Let's run gradient descent and try a few settings of $\\alpha$ on our data set" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### $\\alpha$ = 9.9e-7" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration Cost w0 w1 w2 w3 b djdw0 djdw1 djdw2 djdw3 djdb \n", - "---------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", - " 0 9.55884e+04 5.5e-01 1.0e-03 5.1e-04 1.2e-02 3.6e-04 -5.5e+05 -1.0e+03 -5.2e+02 -1.2e+04 -3.6e+02\n", - " 1 1.28213e+05 -8.8e-02 -1.7e-04 -1.0e-04 -3.4e-03 -4.8e-05 6.4e+05 1.2e+03 6.2e+02 1.6e+04 4.1e+02\n", - " 2 1.72159e+05 6.5e-01 1.2e-03 5.9e-04 1.3e-02 4.3e-04 -7.4e+05 -1.4e+03 -7.0e+02 -1.7e+04 -4.9e+02\n", - " 3 2.31358e+05 -2.1e-01 -4.0e-04 -2.3e-04 -7.5e-03 -1.2e-04 8.6e+05 1.6e+03 8.3e+02 2.1e+04 5.6e+02\n", - " 4 3.11100e+05 7.9e-01 1.4e-03 7.1e-04 1.5e-02 5.3e-04 -1.0e+06 -1.8e+03 -9.5e+02 -2.3e+04 -6.6e+02\n", - " 5 4.18517e+05 -3.7e-01 -7.1e-04 -4.0e-04 -1.3e-02 -2.1e-04 1.2e+06 2.1e+03 1.1e+03 2.8e+04 7.5e+02\n", - " 6 5.63212e+05 9.7e-01 1.7e-03 8.7e-04 1.8e-02 6.6e-04 -1.3e+06 -2.5e+03 -1.3e+03 -3.1e+04 -8.8e+02\n", - " 7 7.58122e+05 -5.8e-01 -1.1e-03 -6.2e-04 -1.9e-02 -3.4e-04 1.6e+06 2.9e+03 1.5e+03 3.8e+04 1.0e+03\n", - " 8 1.02068e+06 1.2e+00 2.2e-03 1.1e-03 2.3e-02 8.3e-04 -1.8e+06 -3.3e+03 -1.7e+03 -4.2e+04 -1.2e+03\n", - " 9 1.37435e+06 -8.7e-01 -1.7e-03 -9.1e-04 -2.7e-02 -5.2e-04 2.1e+06 3.9e+03 2.0e+03 5.1e+04 1.4e+03\n", - "w,b found by gradient descent: w: [-0.87 -0. -0. -0.03], b: -0.00\n" - ] - } - ], - "source": [ - "#set alpha to 9.9e-7\n", - "_, _, hist = run_gradient_descent(X_train, y_train, 10, alpha = 9.9e-7)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It appears the learning rate is too high. The solution does not converge. Cost is *increasing* rather than decreasing. Let's plot the result:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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TO27d+9W9Hq9pt+F/atdu7aSkZGhORZQ3nvvPYvrCSE8k4z9Wunp6YqPj48yefJkU1uTJk2UESNGKIDy66+/KoqiKIcPH1YA5aOPPjId16tXL6VXr14W5/zqq68UQPnuu+8s9r333nsKoOzYscNiX69evZRatWrd9GcQriMpJaJM6enphIeH23z8d999R+PGjbn33ntNbTqdjkmTJgGwevVqACIiIkyv8/Ly7NbfUaNGcf78eU2Kw/r160lJSWHUqFGmtoiICA4cOMBff/1lt2tb8+OPP5KSksLo0aO5cuWKabt69Sp9+vThzJkzHDlyxOIzFH5/zIWEhADqLdG0tDSuXLnC7bffTkFBAXv27ClX/zZu3EhOTg7/93//p3mQsl27dvTu3ZsffvhBU40F4IEHHiA0NFRzbHh4OMePHy9XH4QQ7kfGfq2wsDDatWtnevDx/PnzHD16lIcffphatWqZ2hMSEgDo1atXmefMzs4GsPoQe2BgoOYY4dm8IuCeP38+HTp0ICAggLFjx97Ue5ctW0aLFi0ICQmhUaNG/Pzzz47ppBsLDw8nPT3d5uNPnTpltWRRXFwcACdPngTUwWjYsGHMmDGDqKgo+vbty3/+8x+uXLlSof4OHjyYoKAgli5dampbunQpYWFh3HPPPaa2GTNmkJGRQVxcHHFxcTzxxBMOyUMuzIMePHgwMTExmm3GjBkAXLp0SfOeBg0aWD3XunXr6NatG0FBQURGRhITE2Ma1K9evVqu/hXmmRemnpiLi4sjOzubixcvatrr1atncWxkZCSpqanl6oMQ5mTMdg8y9luKj49n165dZGVlkZCQgJ+fH127dqVXr16agLtGjRo0bdq0zPMFBQUBkJuba7EvJydHc4zwbF4RcNesWZMpU6Ywbty4m3rfxo0bee655/j000/JyMhg69atNGzY0EG9dF9xcXEcPnzY9MNvi9Iebincp9PpWL58Obt27eLZZ58lKyuLp59+mubNm5OYmFju/oaFhdG/f3++/vprcnNzycrK4rvvvmPIkCGageu2227jxIkTLFmyhC5duvDNN99wxx138NBDD5X72tYUFBQA8MEHH7Bx40ar2y233KJ5j7UBdseOHfTr1w+Ad999lzVr1rBx40bTw5CF1ykva39nyo0HnYrv8/HxsXoORaoVCDuQMds9yNhvqVevXqbndRIS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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_cost_i_w(X_train, y_train, hist)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The plot on the right shows the value of one of the parameters, $w_0$. At each iteration, it is overshooting the optimal value and as a result, cost ends up *increasing* rather than approaching the minimum. Note that this is not a completely accurate picture as there are 4 parameters being modified each pass rather than just one. This plot is only showing $w_0$ with the other parameters fixed at benign values. In this and later plots you may notice the blue and orange lines being slightly off." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### $\\alpha$ = 9e-7\n", - "Let's try a bit smaller value and see what happens." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration Cost w0 w1 w2 w3 b djdw0 djdw1 djdw2 djdw3 djdb \n", - "---------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", - " 0 6.64616e+04 5.0e-01 9.1e-04 4.7e-04 1.1e-02 3.3e-04 -5.5e+05 -1.0e+03 -5.2e+02 -1.2e+04 -3.6e+02\n", - " 1 6.18990e+04 1.8e-02 2.1e-05 2.0e-06 -7.9e-04 1.9e-05 5.3e+05 9.8e+02 5.2e+02 1.3e+04 3.4e+02\n", - " 2 5.76572e+04 4.8e-01 8.6e-04 4.4e-04 9.5e-03 3.2e-04 -5.1e+05 -9.3e+02 -4.8e+02 -1.1e+04 -3.4e+02\n", - " 3 5.37137e+04 3.4e-02 3.9e-05 2.8e-06 -1.6e-03 3.8e-05 4.9e+05 9.1e+02 4.8e+02 1.2e+04 3.2e+02\n", - " 4 5.00474e+04 4.6e-01 8.2e-04 4.1e-04 8.0e-03 3.2e-04 -4.8e+05 -8.7e+02 -4.5e+02 -1.1e+04 -3.1e+02\n", - " 5 4.66388e+04 5.0e-02 5.6e-05 2.5e-06 -2.4e-03 5.6e-05 4.6e+05 8.5e+02 4.5e+02 1.2e+04 2.9e+02\n", - " 6 4.34700e+04 4.5e-01 7.8e-04 3.8e-04 6.4e-03 3.2e-04 -4.4e+05 -8.1e+02 -4.2e+02 -9.8e+03 -2.9e+02\n", - " 7 4.05239e+04 6.4e-02 7.0e-05 1.2e-06 -3.3e-03 7.3e-05 4.3e+05 7.9e+02 4.2e+02 1.1e+04 2.7e+02\n", - " 8 3.77849e+04 4.4e-01 7.5e-04 3.5e-04 4.9e-03 3.2e-04 -4.1e+05 -7.5e+02 -3.9e+02 -9.1e+03 -2.7e+02\n", - " 9 3.52385e+04 7.7e-02 8.3e-05 -1.1e-06 -4.2e-03 8.9e-05 4.0e+05 7.4e+02 3.9e+02 1.0e+04 2.5e+02\n", - "w,b found by gradient descent: w: [ 7.74e-02 8.27e-05 -1.06e-06 -4.20e-03], b: 0.00\n" - ] - } - ], - "source": [ - "#set alpha to 9e-7\n", - "_,_,hist = run_gradient_descent(X_train, y_train, 10, alpha = 9e-7)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Cost is decreasing throughout the run showing that alpha is not too large. " - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuwAAADnCAYAAABFeAMWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeVxUVf/A8c+w74gs7mJiiiLigrsG9KhphrmlGaaUJWbb8/jkWu5LZWlZZm6l/UzE0jQ1tdRcMykXMHFDCcw1AZUlQZb7++M+jDPMoIjADPB9v16+cs659853JjlzOHPu96tRFEVBCCGEEEIIYZYsTB2AEEIIIYQQomgyYRdCCCGEEMKMyYRdCCGEEEIIMyYTdiGEEEIIIcyYTNiFEEIIIYQwYzJhF0IIIYQQwozJhF0IcU/h4eE0aNDA1GEIIUSVERwcjEajQaPR0KFDhxJfp0uXLtrr1K1btxQjFOVNJuyizNy8eZPp06fTqlUrXFxcsLOzo1GjRrz88sscO3aszJ73yy+/5OOPPy6z65dEeHg4Go2G3Nxcbdt3333HtGnTTBeUjqNHjzJt2jQSExNNHYoQooKTsb90+Pr6smrVKqZPn27QFxMTQ48ePXB2dqZatWr079+fhIQEg+OmTJnCqlWr8PX1LY+QRRnSSOEkURbi4uLo1asXV65c4ZlnnqFTp07Y2dkRHx/Pt99+S2JiIhcuXCiT3/i7dOnCxYsXzWryGR4ezldffUVOTg5WVlYADB06lNWrV2MOP4LLly/n5ZdfZvfu3QQHB+v15eTkkJ+fj62trWmCE0JUGDL2l46CcXjPnj0GfadPn6Zdu3Z4eXnxxhtvkJWVxUcffYRGo+HYsWPUqFHD6PXOnTvHxYsXyzhyUVasTB2AqHwyMjLo06cPmZmZREdH07p1a73+2bNn88EHH5jFRLUyysvLIy8vDxsbm1K5nrW1dalcRwhRucnYXz4mTpyIoijs3buXOnXqANCrVy9atmzJnDlzWLBggYkjFGVBtsSIUrd06VISEhL48MMPDQZsACsrKyZOnEi9evW0bZcuXSI8PJwaNWpga2tLs2bN+OijjwwG9piYGEJDQ6lRowZ2dnbUr1+fgQMHcuHCBQAaNGjAL7/8QlJSknbfnkajKTLWBQsWoNFoOHz4sEHfvn370Gg0LF26FFAnwu+++y6+vr44ODhQvXp12rRpw2efffbA71FwcDCrV68G0ItTd2Vo79699OjRA1dXV+zt7enQoQNbtmzRu86ePXvQaDQsW7aMDz/8EB8fH2xtbTl48CAA8+fPJygoCC8vL2xtbWnUqBFTp04lJydHe41p06bx8ssvAxASEqKNZeXKlUDRe9hXrVpF69atsbe3p3r16gwYMIDTp08bjW/58uUsXryYRo0aYWtrS8uWLdm9e/cDv29CCPMlY7++8ePHY21tTUZGhrbt66+/RqPR0KtXL71jn332Wb33pSgZGRls3bqVgQMHaifrAP7+/oSEhBAVFXXfa4iKSVbYRanbsGEDtra2PPfcc8U6PiUlhU6dOnH16lVeffVVGjZsyJYtWxgzZgznz59n4cKFAFy/fp1u3bpRrVo1xowZg4eHB5cvX+ann37i4sWL1K9fn48//pjx48eTmprKRx99dN/nfvbZZ/nvf//L6tWrCQwM1OuLjIzExsaGgQMHAjBjxgxmzJhBeHg4Y8aMISsri5MnT7J//35effXVB3qP3n77bXJycjh48CCrVq3Stnt6egKwfv16Bg8eTMeOHZk6dSpWVlasWbOGPn36sGbNGgYPHqx3vQULFpCbm8vIkSNxcHCgVq1aAHzwwQc88cQT9OnTBwcHBw4cOMCsWbO4cOECK1asAKB///5cvHiRL774gkmTJtG0aVMAOnXqVGT8H374IWPHjqVdu3a8++67pKam8umnn9KxY0d+//13GjVqpHf8kiVLSE9P5+WXX8ba2pqPP/6Yp59+mqSkJNzc3B7ovRNCmCcZ+/UFBwczd+5cfvnlF5544glAXYixsLDgwIED5ObmardI7tu3j8cff/y+cR8/fpw7d+7Qvn17g74OHTqwa9cuLl68KDeYVkaKEKWsevXqSosWLYp9/NixYxVAWbdunbYtPz9f6devnwIox48fVxRFUTZu3KgAym+//XbP63Xu3Fnx9vYu9vP36NFDqVWrlpKXl6dtu3PnjuLu7q48/fTT2raWLVsqTz75ZLGvq2v48OEKoOTk5GjbwsLCFGM/gpmZmYq7u7syYMAAvfbc3FwlMDBQqVevnpKfn68oiqLs3r1bARQvLy/l5s2bBtfKyMgwaJs2bZpiYWGhXLx4Udu2bNkyBVB2795tNHbd9zM5OVmxs7NT2rRpo2RlZWnbjxw5olhYWOjFXRBf3bp1lfT0dL1jAeWzzz4zeD4hRMUkY7++tLQ0xdLSUpk4caK27dFHH1WeffZZBVB+/fVXRVEU5cyZMwqgLF26VHtcUFCQEhQUZHDNb7/9VgGUTZs2GfR99tlnCqAcOnTIoC8oKEipU6fOA78GYT5kS4wodWlpabi4uBT7+E2bNtGoUSMGDBigbdNoNIwdOxaAzZs3A+Dq6qp9fOfOnVKLNywsjCtXruht0fjxxx9JSUkhLCxM2+bq6kpcXBynTp0qtec2ZufOnaSkpDB06FCSk5O1f27cuEGvXr3466+/OHv2rMFrKHh/dDk6OgLqV7o3b94kOTmZkJAQ8vPzOXr0aIni27FjB1lZWfz73//WuxG1devWdOvWja1bt+plwwF4/vnncXJy0jvWxcWF8+fPlygGIYT5kbFfn7OzM61bt9beOHrlyhXi4+N56aWXqFOnjrZ97969AAQFBd33mrdv3wYwmgTAzs5O7xhRuciEXZQ6FxcX0tLSin18YmKi0ZRTzZo1A+DPP/8E1MFs0KBBzJw5E3d3d5588kk++eQTkpOTHyrefv36YW9vT2RkpLYtMjISZ2dnnnrqKW3bzJkzSU9Pp1mzZjRr1ozXXnutTPZhF+wD79evH56ennp/Zs6cCcDff/+td84jjzxi9Frbt2+nU6dO2Nvb4+bmhqenp/ZD4caNGyWKr2CffcHWGV3NmjXj9u3bXLt2Ta/d29vb4Fg3NzdSU1NLFIMQwvzI2G8oODiYw4cPk5mZyd69e7G2tqZjx44EBQXpTdhr1apF48aN73s9e3t7ALKzsw36srKy9I4RlYtM2EWpa9asGWfOnNEOHsVxr5uDCvo0Gg1r167l8OHDjBs3jszMTMaMGYOvry8xMTEljtfZ2ZnQ0FC+++47srOzyczMZNOmTfTv319v4OvatSsJCQmsXr2aDh06sGHDBh5//HFGjBhR4uc2Jj8/H4DPP/+cHTt2GP3TvHlzvXOMDdCHDh2id+/eAHz66ads2bKFHTt2aG8mLXiekjL2/0z5341ihfssLS2NXkORbBFCVBoy9hsKCgrS3q+0d+9e2rVrh4ODA8HBwfzyyy/k5uayd+/eYq2uA9SuXRuAy5cvG/QVtBUcIyoXmbCLUte3b1+ys7P1Vi3upUGDBka/aixoK5yhpE2bNkyePJm9e/dy9OhRbt26xdy5c7X99/oAKEpYWBg3b95k69atfP/992RmZup9JVrA1dWV5557ji+//JKkpCTt3wtvUSmOouIsuGGzevXqdOvWzeif4tyouXbtWmxsbNi1axcRERH07t2bbt26UbNmzWLHYkzB/4+TJ08a9J0+fRp7e3u8vLyKfT0hROUgY7+hrl27YmlpyZ49e/Qm5kFBQWRkZPDNN99w8eLFYk/Y/f39sba2Jjo62qAvOjoaLy8vueG0kpIJuyh1I0eOpEGDBowdO9ZoVbvc3Fzef/99bQGH0NBQzp07x4YNG7THKIrChx9+qO0HdQtH4RXZpk2bYm9vr7e1wsnJiZs3bz5QzL169aJ69epERkYSGRlJzZo1De7YT0lJ0XtsZWWFv78/QIm2dhTs6S68NeWJJ57Azc2NOXPmGN2LWHg7TFEsLS3RaDTk5eVp2/Ly8vjggw+KHYsx3bt3x87Ojk8++URvP2lsbCw7duygV69e2swHQoiqQ8Z+Qy4uLrRq1Yr169dz6tQp7cS8cePG1KpVS7vNsbgTdmdnZ5588knWrVvHlStXtO0nTpxg9+7dDBo0qES/uAjzJ5+qotQ5OzuzadMmevXqRfv27fWq3Z07d45169aRkJDA0KFDAZgwYQLffPMNQ4YM0ab2+uGHH9i2bRuvvvqqdmD86quv+PTTT+nXrx+NGjUiNzeXqKgo0tPT9VZE2rZty/bt23nzzTdp3749FhYWPPvss/eM2drammeeeYavvvqKvLw8Xn31VYNtHE2bNqVLly60bduWGjVqcObMGRYuXEiTJk1o06bNA79Pbdu2ZfHixbz22mvaSW5oaCjOzs4sX76cwYMH4+fnx/PPP0+9evW4cuUKhw4d4vTp08W6WfPpp59m/vz5PP744wwfPpzbt2+zdu1ao1thAgMD0Wg0vPvuu9y8eRN7e3vat29vdG+8u7s7M2bMYNy4cTz22GMMGTJEm9bRxcWF995774HfCyFExSdjv3FBQUHMmzcPKysrOnfurNceFRWFl5eX0XuCijJnzhzat2/PY489xuuvv052djYfffQRnp6eTJo0qdjXERWMKVPUiMotNTVVmTJlihIQEKA4OjoqNjY2io+PjzJy5EglNjZW79iLFy8qw4YNUzw8PBQbGxvF19dXmTdvnjZ9oaIoytGjR5WwsDClQYMGip2dnVK9enWlS5cuynfffad3rVu3bilDhgxR3NzcFI1GYzR1ojH79u1TgCLTh82ZM0fp2LGj4u7urtja2ioNGzZUXn/9deXq1av3vbaxtI537txRRo8erXh5eWnj/PPPP7X90dHRSt++fRV3d3fFxsZGqVevnhIaGqqsWbNGe0xB2sRly5YZfd6oqCjF399fsbOzU2rXrq28+eabyokTJxRAWbFihd6xixYtUho2bKhYWlrq9RdO61jgq6++Ulq2bKnY2toq1apVU/r166ecOnVK75h7xeft7a0MHz783m+cEKLCkbFf3+bNmxVA6dChg177559/rgDKwIEDDc4pKq1jgSNHjijdunVTHB0dFRcXF6Vv375KfHx8kcdLWseKT6MocteXEEIIIYS5CA4OJicnh++//x5ra2ujaXuL49atW+Tk5GgL1RVsRxIVj+xhF0IIIYQwMwcPHsTT01NbJbUkevfujaenJwcPHizFyIQpyAq7EEIIIYQZOXLkiDYJgKurK23bti3RdQ4fPqy9EdfOzo4uXbqUWoyifMmEXQghhBBCCDMmWWL+59atW6YOQQghHlpJ97pWNDJmCyEqg+KO2bKHXQghhBBCCDMmE3YhhBBCCCHMmGyJMaKqfKUshKgcqvr2EBmzhRAVSUnGbFlhF0IIIYQQwozJhF0IIYQQQggzJhP2UiCJMYUQQgghRFmRCXspmBgNb0fDnTxTRyKEEEIIIcrarWzILsd5n0zYH9LPF2HuMZhzFDptgDM3TB2REEIIIYQoS2//Bo9GwqITkJVb9s8nE/aHcCMbhv0MBTtijlyHVutgcZxskxFCCCGEqIwuZcCyk/BXBry6HxpFwsnUsn1OmbA/hD/TIL/QxPx2LryyD/psg7//MU1cQgghhBCibLwfA3fy7z621ECjMs4uKxP2h9DaE/4YDP0fMezbkgT+38CWxHIPSwghxH38k2PqCIQQFdGVTFh6Ur9tUmuwsSzb55UJ+0Nyt4N1T8CXIeBkrd/3920I3Qaj98mHgxBCmIO/MtQxuf7XkHzb1NEIISqauTH6N5vWc4Jw37J/XpmwlwKNBl7whZhnoGMNw/7P46D1OnWPuxBCCNOY8hs0Wq2OySlZMD/W1BEJISqSq/+o9ynqmtAKbMt4dR1kwl6qfFxhX1+Y3lbdz6TrzE3o8B28exTy8o2fL4QQouy42ujvO/30hKyyCyGK78MYyNJZXa/jCCOals9zy4S9lFlZwJRAONAXfFz0+3LzYVI0hGyCxDTTxCeEEFXVKD/wsr/7OCMH5skquxCiGP7+BxaZaHUdZMJeZjrUhJhBMMLIvqb9VyDgW/j6rKR/FEKI8uJoDeNb6bd9+gdcl1V2IcR9zItVMwEWqOUAL5XT6jrIhL1MOVnD8hD47gn15lRdaXfg+V3w3E41n7sQQoiyN6oZ1NBZZc/MlVV2IcS9Jd+Gz07ot41vBXZW5ReDTNjLQb+G8McgeKKeYV/UOQj4BvZcKv+4hBBVW3Z2NiNGjMDb2xtnZ2datWrFtm3bAEhMTESj0eDk5KT9M3PmTO25iqIwfvx43N3dcXd3Z9y4cSg6XxkmJiYSEhKCg4MDvr6+7Ny5U++5IyMj8fb2xtHRkb59+5KaerfqSHZ2Ni+++CIuLi7UrFmT+fPnl9prdjCyyr5QVtmFEPcwL1b95b5ADXsY2ax8Y5AJezmp5Qhbe8MnXQz3O/2VAY9vgnG/6qcKEkKIspSbm0u9evXYu3cvt27dYubMmQwaNIjExETtMTdv3iQjI4OMjAwmT56sbV+6dCkbN24kNjaW48ePs2XLFpYsWaLtHzJkCK1atSIlJYXZs2czcOBArl9XU2XFxcURERHBqlWruHbtGg4ODowePVp77rRp04iPjycpKYndu3czd+5ctm/fXmqvO8LIKvuHMaV2eSFEJZKSBQsLra6PawX25bi6DqBRFNlFDXDr1i3t311dy7ZcVVwqhO2E2BTDvpYesPpf0Kx6mYYghKhESnP8atGiBVOnTqVNmzY88sgj5OTkYGVl+MnUqVMnwsPDGTlyJABffPEFy5Yt49ChQ5w9exZ/f3+Sk5NxdnYGoGvXroSFhTFq1CgmTZpEYmIikZGRAJw/f56mTZuSkpKCs7MzderUYcWKFfTo0QOAyZMnEx8fT1RUVKm95o9j4T8H7z52sII/w8DL4YEvJYSoxN6JhtlH7z72slfHCgfros+5n5KMX7LCbgJ+1SF6AIxtCYWyPxKTDG3WqTdCya9SQojydO3aNc6ePYufn5+2zdvbm7p16/LCCy+QnJysbY+LiyMgIED7OCAggLi4OG1fw4YNtZN1Y/265/r4+GBjY8PZs2e5ceMGly9fLvLapSXCD2rqTM7/yYUPZS+7EEJHahZ88od+29iWDzdZLymZsJuIrSXM7Qi7+kBdR/2+rDx44wA8+YNaAlcIIcpaTk4OYWFhDB8+HF9fXzw8PPj9999JSkriyJEjpKenExYWpj0+IyNDb2XI1dWVjIwMFEUx6CvoT09PN3qubn9GRob2sbFzS4u9lZqSTddnJ9TUbUIIAbDgOKTrVKr3sINX/Io+vizJhN3EQurA8cEwuJFh3/a/oMU3sPHP8o9LCFF15Ofn8/zzz2NjY8PChQsBcHJyIjAwECsrK2rUqMHChQv56aefSEtL0/YX/B0gLS0NJycn7Y2qun0F/QUr7vfqd3Jy0j42dm5pGtlMTc1W4J9c+ED2sgshgJvZsKDQ6vpbLdX0sKYgE3Yz4GYLa7rBqn+Bi41+X3IW9NsOL+9Ri3wIIURpUhSFESNGcO3aNdavX4+1tfFPI41Goz0ewM/Pj9jYu3tIYmNjtVtp/Pz8SEhI0FsVL9yve25CQgLZ2dk0btwYNzc3atWqVeS1S5PRVfY4uCar7EJUeQuOw607dx+728GrzU0Xj0zYzYRGA0MbQ+wz0LWWYf/yU9DqW4i+Vv6xCSEqr1deeYVTp06xefNm7O3vpk6Jjo7mzJkz5Ofnk5KSwhtvvEFwcLB2q8qwYcOYP38+ly5d4vLly8ybN4/w8HAAGjduTMuWLZk+fTpZWVls2LCB48ePM2DAAADCwsLYvHkz+/fvJzMzkylTptC/f3/tKvqwYcOYNWsWN27c4PTp0yxbtkx77dJWeJX9tqyyC1Hl3cqGj4/rt41podbXMRWZsJuZBi6wuw/MaQ9Whf7vnLsFnTfAjMOQm2+a+IQQlUdSUhJLliwhJiaGmjVravOtr169moSEBHr27ImzszPNmzfH1taWNWvWaM+NiIggNDQUf39/mjdvTu/evYmIiND2R0VFcfjwYdzc3JgwYQLr1q3D09MTUFfYFy9eTFhYGF5eXqSnp7No0SLtudOnT8fHxwdvb2+CgoIYO3YsPXv2LJP3wM4KJrbWb1sUB1dllV2IKuvTE3BTZ3XdzRZe8zddPCBpHbXKM61jcR3+W03/ePaWYV/HGvB1N2joUv5xCSHMizmOX2WtNF9zVi74RMJlnZv8xwTAvE4PdVkhRAWUfge8v9avQj+zHbzTpvSeQ9I6VjKBXnD0GeN3JP96Ta2Q+uUpSf8ohBAPw84KJhbay/65rLILUSUtPKE/Wa9mA6+bcO96AZmwmzlHa1j0GGzuBZ52+n0ZOTBiD/T6AS6UbsYzIYSoUl5qCnV0UuzezoW5x0wXjxCi/GXkwLxC9Rj+3QJcbU0Tjy6ZsFcQTzWAPwZDb2/Dvh//Ar+18PkJyJfVdiGEeGDG9rJ/Hie1MISoShadgJSsu49dbODNFqaLR5dM2CuQGg7qSvvnj6npyHRl5MDo/fD4JvXmVCGEEA+m8Cp7Vh7MlYwxQlQJmTnwYaGf9zf9oZoZrK6DTNgrHI0GRvnB8UEQVNuwf+9ltdjS/FjIk0wyQghRbLaWMKnQKvtiWWUXokr4PA6u66yuO1ur22HMhUzYK6hGrvBzH1jU1TAv6O1c+O9BNQXkyVTTxCeEEBXRiKZQt9Aq+/uyl12ISu2fHMP6C2/4Q3U748ebgkzYKzALDbzSHE4MhifqGfZH/60WW5pzBHLyyj8+IYSoaIyusp/UT/kohKhclpyEv2/ffexkDf8JMF08xsiEvRLwdoZtvWFFiJp+SNedfHj7N2j3HcQkmyY+IYSoSF5sCvWc7j7OzoP3ZJVdiErpdq7hvSqvNQd3M1pdBxNM2KOiomjatCmOjo74+Piwf/9+AHbt2oWvry8ODg6EhISQlJSkPUdRFMaPH4+7uzvu7u6MGzcO3XpPiYmJhISE4ODggK+vLzt37tR7zsjISLy9vXF0dKRv376kpla+fSIaDYT7wsln4ekGhv0xydB2PbwTrX74CCGEMM7YKvvSk3ApwzTxCCHKzrKT+jUXHK3gv2a2ug7lPGHfsWMH48ePZ8WKFaSnp7Nv3z4aNmxIcnIy/fv3Z+bMmaSmphIYGMjgwYO15y1dupSNGzcSGxvL8ePH2bJlC0uWLNH2DxkyhFatWpGSksLs2bMZOHAg169fByAuLo6IiAhWrVrFtWvXcHBwYPTo0eX5sstVLUfY0BOiuoNHod8Oc/Nh9lFo/S1EXzNNfEIIURG86Av1ZZVdiEotIwfeLfRzPbo5eNibJp570ShK+dXJ7NSpEyNGjGDEiBF67UuXLmXlypUcPHgQgMzMTDw8PDh27Bi+vr506tSJ8PBwRo4cCcAXX3zBsmXLOHToEGfPnsXf35/k5GScnZ0B6Nq1K2FhYYwaNYpJkyaRmJhIZGQkAOfPn6dp06akpKRoj4fKWdr7+m148wCsOWfYZ6FR736e2RYcrA37hRAVR2Ucv+6nPF7z0pMQsffuYxsLSAiDOk5FnyOEqDim/gYzjtx9bG8FiWHg5VC2z1uS8avcVtjz8vI4fPgw169fp1GjRtStW5fXXnuN27dvExcXR0DA3e8fCrbLxMXFARj0BwQE6PU1bNhQb/JduF/3XB8fH2xsbDh79myZvl5z4GkPkd1hY0+oVegfX76ipn5s8Y2aClIIIYS+8CbqPUIF7uQbrsYJISqmSxnwQaGqpv9pUfaT9ZIqtwn7tWvXyMnJYd26dezfv5+YmBiOHTvGrFmzyMjIMPgNw9XVlfT0dACDfldXVzIyMlAU5YHPLdxfFTz9CMQ9q37FW9j5NAj+Hl7dB+l3yj82IYQwVzaW8HahvezLTsJfspddiApvyu/qDacFvOxhQivTxXM/5TZht7dXNwS9/vrr1KpVCw8PD8aMGcPWrVtxcnIiLS1N7/i0tDTtqnnh/rS0NJycnNBoNA98buH+qsLNFr4IgR+f0t+XWWBRHDRfCz9eKP/YhBDCXA03sso++TfTxSOEeHixybDitH7b9LbgbGP8eHNQbhN2Nzc36tati0ajMejz8/MjNvbu9xKZmZmcP38ePz8/o/2xsbF6fQkJCXor5oX7dc9NSEggOzubxo0bl+4LrCB61FPztr/a3LDvQgb0/AFe3A03sss/NiGEMDc2ljC5jX7bV2fgyHXTxCOEeDiKAm/9Cro3cDZ1g5eamiykYinXLDEvvPACn376KX///Tc3btzg448/5qmnnqJfv36cOHGC9evXk5WVxYwZM2jRogW+vuoejmHDhjF//nwuXbrE5cuXmTdvHuHh4QA0btyYli1bMn36dLKystiwYQPHjx9nwIABAISFhbF582b2799PZmYmU6ZMoX///lVuhV2Xsw0s7Ap7n1Yrpha24jQ0i4Lv/yz/2IQQwtwMbwLNq+u3/ecX9YNfCFGx/PgX7Lyo3/ZBR7Ay88pE5Rre5MmTadu2LY0bN6Zp06a0atWKt99+G09PT9avX8/bb7+Nm5sb0dHRREVFac+LiIggNDQUf39/mjdvTu/evYmIiND2R0VFcfjwYdzc3JgwYQLr1q3D09MTUFfYFy9eTFhYGF5eXqSnp7No0aLyfNlm67HaEPsMvBWgZo3RdfUf6LsdhuxQs80IIURVZWUB8zrpt+2/At8lmCYeIUTJ5ObDWwf12x6vA0/WN008D6Jc0zqas6qYFk1X9DV1K8zJG4Z9HnbwaRcY3Egt0CSEMC8lHb+ys7MZPXo0O3fuJDU1lUaNGjFnzhx69eoFqAXtXn31VS5cuED79u1ZuXIl3t7egFrQbsKECSxfvhyAESNG8P7772u3PSYmJvLCCy8QHR1N/fr1WbhwId26ddM+d2RkJBMnTiQ5OZnu3bvz5ZdfUr16dW1cr7zyCuvWrcPBwYFx48YxZsyYUnnND6P3D7BV5z6fhi5qsTpby3J5eiHEQ1p2EkbqpGrVAEefgZYe5RuHWad1FOatfQ31H+07bQy/FkrOgiE7od92uJxpmviEEKUvN9ojIGsAACAASURBVDeXevXqsXfvXm7dusXMmTMZNGgQiYmJJi1oN23aNOLj40lKSmL37t3MnTuX7du3l98bU4QPO4GlzqJFQhp8+ofp4hFCFF/6HcMbxoc1Kf/JeknJCvv/VPUVdl0xyepq+7Fkwz5XG/ios5qfWFbbhTAPpTl+tWjRgqlTp5KSkmKygnZ16tRhxYoV9OjRA1C3U8bHx+ttlTTVmP3afvjsxN3HLjZw7jm17oUQwnxN+Q1mFiqSdHYI1DVBITRZYReloqUHRPeHOe3Vyn66bt1RJ/M9f4DENOPnCyEqpmvXrnH27Fn8/PxMVtDuxo0bXL58uchrm9q0QHXhokDaHZj6u+niEULc36UM+LBQkaT/Bphmsl5SMmEXRllbwsTWEDMIOtQw7P/pL2i2Ft49Cnfyyj8+IUTpysnJISwsjOHDh+Pr62uygnYZGRnax8bONTUPe5gSqN+25CTEpZomHiHE/b3zm2GRpHEtTRdPSciEXdxTUzc40Bfmd1K/PtJ1OxcmRUPAN/DzRePnCyHMX35+Ps8//zw2NjYsXLgQuH/RubIqaOfk5KR9bOxcc/Bac/2UuPmKYeYJIYR5iElWayfommHmRZKMkQm7uC9LC/hPABwfBMG1DftP34R/bYawnXBFbkoVokJRFIURI0Zw7do11q9fj7W1NWC6gnZubm7UqlWryGubAxtLmNtBv237X7BdKkULYVaU//0yrXuzZjM3GGHmRZKMkQm7KLZGrrCrDywPBnc7w/7IePCNUrMm5OaXe3hCiBJ45ZVXOHXqFJs3b8be/u6dk6YsaDds2DBmzZrFjRs3OH36NMuWLdNe21z0fQSCCi1g/PegjH1CmJNtF2DXJf22ilAkyZgKGLIwJQuN+pvpmSHwspHfUNPuwBsHoN16OHS1/OMTQhRfUlISS5YsISYmhpo1a+Lk5ISTkxOrV682aUG76dOn4+Pjg7e3N0FBQYwdO5aePXuW3xtTDBqNulVQN1nWyRtqnmchhOnl5sPYX/Xb/lUHelWAIknGSFrH/5G0jiXz61V4ZR/Ephjvf7kpvNvB+Iq8EKJ0VMXxy1xe8ws/w0qd/bEedhD/HFSzNVlIQghg6UmIMIMiScZIWkdR7jrWhMMDYUFncLY27F92CnzXwIrT6o1ZQghRmcxuD446N+QnZ8HsI0UfL4Qoe8aKJA2vQEWSjJEJu3hoVhbwRgt1m8yQRob9yVlq7vauG+F4ESvxQghREdV2hPGt9NsW/AHnbxk/XghR9ubGwN+37z62t4JZ7UwXT2mQCbsoNbUcIbI77AyFJtUM+w9ehdbfwphf1N9+hRCiMvhvANR1vPs4Jx/GHzJdPEJUZRczYF6hIklvBUCdClQkyRiZsItS96+6EDsIZrczzN2ep8BHx9VsMt+cU1MuCSFEReZgrd6ro2t9Auy7bJp4hKjKChdJqmEPYytYkSRjZMIuyoStJUxqAycHQ6i3Yf/lTBi8A57YAmdvln98QghRmp57FNp66beNOSj37ghRno5dh/8rXCSpXcUrkmSMTNhFmWrgApuehO97greRQoU7LoL/WphS6DdiIYSoSCw08FEn/bYj12HVGePHCyFKl6LAW7/qF0nyc4MXfU0WUqmSCbsoF30eUVfbJ7UG60L/6u7kw8wj4BcFW5NME58QQjyszrXgGR/9tkm/QWaOaeIRoirZegF+riRFkoypJC9DVAQO1moKtOOD4PE6hv1/pkPvrdB/O1xIN+wXQghz934HsNH5ZL2cCR/EmC4eIaoCY0WSutWFnhW0SJIxMmEX5c7XTc0kE9kNajoY9m/4E5pGwfvH4E5e+ccnhBAl9YgL/CdAv21ujJq5QghRNj6Pg1M37j7WAB92VCsSVxYyYRcmodHAkEfh9LPwhr+6/1PXP7kw4RC0/Bb2XDJ+DSGEMEeTWoOnTnXn27kwKdp08QhRmf2VYfjzFe4LARW4SJIxMmEXJuVqCwu6wOEB0N7LsP/UDQjZBM/vgmv/lH98QgjxoFxsYGahIi2rzsLhv00TjxCVlaLAq/sgQ+c+ERebil8kyRiZsAuz0MoTDvaHpUFQ3daw/+uz0GQNfHYC8vLLPz4hhHgQI5pC8+r6bW/+ImkehShN6xJgc6FkFe+1VysQVzYyYRdmw0IDLzeDM0NghJE0TLfuwGv7od16+OVK+ccnhBDFZWUB8wuleTx4FRbHmSYeISqbG9nw+n79tk41IcLPNPGUNZmwC7PjYQ/LQ+CXftDC3bD/aDJ02QiDf4LEtPKPTwghiqN7PcPCceMPSRYsIUrD+F/h2u27j60tYFmQ4T1xlYVM2IXZ6lQTjgxUi5E4WRv2f3MefKNg4iFIu1P+8QkhxP189pj++JWRA6/sU/feCiFKZt9lWHZKv21iK2hW3fjxlUGxJ+wvvvgi6emGywKZmZm8+OKLpRqUEAWsLODfAWo2mcGNDPuz8+C9Y/BoJCw7KfvbRdUi47L5q+ek5mbXtfUCrIk3TTxCVHRZuTByr35bk2owsbVp4ikvGkUp3u/5lpaWXLlyBS8v/VQeycnJ1KxZk9zcil1X/tatW9q/u7q6mjAScS/7LsN/flG3xRjTwl3dN/qvuuUblxCmUDAu29revVPb1dW10ozL91KRxux8BYI2woGrd9vc7eDUs+Bpb7q4hKiIpv4GM47ot+19Gh6rbZp4SqIk41exV9gVRUFTKAO9oigcOHAAT0/P4l5GiIfyWG34fSCsDDF+F/jxFOi2GfpshbM3yz8+IcqTjMsVg4UGlgeDreXdtpQsePOAyUISokKKS4V3j+m3vdy0Yk3WS+q+E3YLCwssLS3RaDTUrFkTS0tL7R8rKysGDBjAkCFDyiNWIQD1w2+4L5wdAlPagL2V4TGbk8BvLfz7AKRmlX+MQpSlwuNy9erVtX8eZFxeuHAhgYGB2NraEh4erm1PTExEo9Hg5OSk/TNz5kxtv6IojB8/Hnd3d9zd3Rk3bhy6X9YmJiYSEhKCg4MDvr6+7Ny5U+95IyMj8fb2xtHRkb59+5Kamqrty87O5sUXX8TFxYWaNWsyf/78h3inzEcTN5gaqN+25hxsSTRJOEJUOPmKuhUmR2fra00HmNvRdDGVJyNTHX2rVq1CURSGDRvGwoUL9ZbubWxseOSRRwgMDLzHFYQoG47WML0dvNRMrXL29Vn9/tx8WPAH/N9ZmBYIr/iBtaXxawlRkRQel62t797VWK1atWKPy7Vr1+add97hxx9/5Pbt2wb9N2/exMrK8GNi6dKlbNy4kdjYWDQaDd27d6dhw4aMGjUKgCFDhtCxY0e2bt3K1q1bGThwIPHx8Xh6ehIXF0dERAQ//PADrVu3ZuTIkYwePZqoqCgApk2bRnx8PElJSVy9epWQkBCaNWtGz549S/p2mY23AtSb5WN0tvS9sk9dHXSxMV1cQlQES+LU1Ki6PukC1YzUbqmMir2Hfe/evXTu3Nno4F0ZVKT9kMK4367Bfw4a/kAXaOwKH3aCp7xBU0nTPomqpWBczszM1LaVZPx65513uHjxIitXrgTUFfJHHnmEnJwco2N+p06dCA8PZ+TIkQB88cUXLFu2jEOHDnH27Fn8/f1JTk7G2dkZgK5duxIWFsaoUaOYNGkSiYmJREZGAnD+/HmaNm1KSkoKzs7O1KlThxUrVtCjRw8AJk+eTHx8vHZCX6CijtlHr6u1JPJ0Pnlf8YNFj5kuJiHM3aUMaLZWPyNcqDd836tifp6X6R72Rx99lL//vltX+dixY4wdO1Y7wAthau1qwIG+sLY7eDsb9p+9BX22QffN6l53ISq6wuNybGxsqY7L3t7e1K1blxdeeIHk5LvLwnFxcQQEBGgfBwQEEBcXp+1r2LChdrJurF/3XB8fH2xsbDh79iw3btzg8uXLRV67MmjtCW+11G/7PE69oV4IYdzrB/Qn607WasrUijhZL6liT9ife+45tm/fDkBKSgqPP/44P/zwA2+88QYffPBBmQUoxIPQaGBQIzUN5LvtwdlI/vZdl6DVtzByD1z7p7wjFKL06I7Lqamp9OnTp1TGZQ8PD37//XeSkpI4cuQI6enphIWFafszMjL0VoVcXV3JyMhAURSDvoL+gvST9+rPyMjQPjZ2bmUxNRAeLbSo9tIeuF15k/oIUWIbEmDDn/ptc9qrKVOrkmJP2E+cOEH79u0B+O6772jYsCEnT57kq6++Yvny5WUWoBAlYWcFE1pD/HPqHeSFK5/lK2rRhUcj4b2jal5XISoa3XF58+bNNGjQoFTGZScnJwIDA7GysqJGjRosXLiQn376ibS0NG1/wd8B0tLScHJy0t6oqttX0F+w4n6vficnJ+1jY+dWFvZWatYYXfG3YMZhk4QjhNm6lQ2vFcqm1N4LRvuZJh5TKvaEPTMzExcXFwB+/vlnQkNDAQgMDOSvv/4qm+iEeEg1HGBpMBx7Bv5Vx7A/PQcmRkPTKPjmnFQfFBWL7ri8b98+7Y2ZpT0uF6SOLLjlyc/Pj9jYWG1/bGwsfn5+2r6EhAS9VfHC/brnJiQkkJ2dTePGjXFzc6NWrVpFXrsyeaw2jGqm3/ZBjLrHXQihmhQNl+/eooOVhfqZblns2WvlUeyX/Mgjj7Bv3z4yMjLYsWMH3bp1A+D69euVbvVDVD4t3GFHKGzqpd58WlhiOgzeAV03wu9/G/YLYY50x+Xdu3cTHBwMFH9czs3NJSsri7y8PPLy8sjKyiI3N5fo6GjOnDlDfn4+KSkpvPHGGwQHB2u3qgwbNoz58+dz6dIlLl++zLx587RpIRs3bkzLli2ZPn06WVlZbNiwgePHjzNgwAAAwsLC2Lx5M/v37yczM5MpU6bQv39/bbzDhg1j1qxZ3Lhxg9OnT7Ns2TK9lJOVyfsdoY5OPYk8BUbsgZw8k4UkhNk4eFW9v0PX2AD187wqKvaEfcyYMYSHh1OvXj3q169P586dAXVVp3nz5mUWoBClRaOB0Abwx2D4uDO4GUkF9ctVNYPD87vgYka5hyjEAykYl/38/Khbty4dOnQAij8uz5o1C3t7e9577z2+/vpr7O3tmTVrFgkJCfTs2RNnZ2eaN2+Ora0ta9as0Z4XERFBaGgo/v7+NG/enN69exMREaHtj4qK4vDhw7i5uTFhwgTWrVunLeTk5+fH4sWLCQsLw8vLi/T0dBYtWqQ9d/r06fj4+ODt7U1QUBBjx46tFCkdjXGxgc8LZYeJSYZ5scaPF6KqyM6Dl/eA7pfejVxhchXOIl7stI4AR48e5cKFC3Tv3h1HR3VZYNOmTbi5udG1a9cyC7I8VNQUYaLkUrNg+mFYFKfmbC/M3kr9bX5cKzXnuxDm6OjRo5w6dYqQkBAcHR1xdXWtNOPyvVSmMfu5HWoRpQK2lhD7jFpsSYiqaOZhmPK7ftuuUHi8rmniKW0lGb8eaMJemVWmwV88mDM34K1fYUuS8f7ajjCnHTzfxPDmVSHMQVUcvyrTa75+W72PJkWnKnPXWrDnaRlzRNVz+gYEfAN3dBbSXvCFL0NMF1NpK9M87AC7d++mW7du1KpVi9q1a9O9e3f27NlT7PODg4Oxs7PTlrpu0qSJtm/Xrl34+vri4OBASEgISUl3Z09lWQZbiCZusPlJdY+7f3XD/suZEL5b3SojuZKFudm9ezdPP/00TZo0wdfX94HHZWF6nvawoLN+2/4ramVHIaqSfAVG7tWfrHvawQcdTReTuSj2hH3NmjV069YNFxcXJkyYwLhx43BycqJbt26sXbu22E+4cOFCMjIyyMjI4MyZMwAkJyfTv39/Zs6cSWpqKoGBgQwePFh7jm4Z7OPHj7NlyxaWLFmi7R8yZAitWrUiJSWF2bNnM3DgQK5fV2+1LyiDvWrVKq5du4aDgwOjR48udryi6uhWV80msyQIvOwN+49ch6Dv4ckf9EuLC2EqBeOys7Mz//73v3njjTdKNC4L03vuUehVX79t/CH4S+6lEVXIF6fUX1Z1LegC7namicecFHtLjJ+fH0OHDmXixIl67XPmzCEyMpITJ07c9xrBwcEMHTqUl156Sa996dKlrFy5koMHDwJqqjIPDw+OHTuGr69vmZbBLlCZvl4VDy/tDsw5Ch/F6v+mr2twI5jZFh6tVr6xCVGgYFzWXYRwdXV9oHG5oqqMY/aFdPBbCxk5d9t6e8PmClp+XYgHkZCmFjXUrWjaqz788GTl+/dfpltizp07xzPPPGPQPmjQIM6dO2fkDOMmTpyIh4cHnTt31n5tW7hUtaOjIz4+PkWWsi6tMthCFMXFBt7rAKeHwDM+xo9Ze07ddzpyj2SUEaZRWuOyMA/1neH9DvptPyTBmnjTxCNEebmTB4N/0p+sO1jBoq6Vb7JeUsWesHt6enL8+HGD9piYGG26rvt5//33SUhI4NKlS4wcOZLQ0FDOnz//wKWsS6sMthD384gLfNMDDvSFLjUN+/P+VzG1UST89yAk3y7/GEXVVRrjsjAvo/wMx5o3f1FvTBWispoYDYcLFQ17vwM0cDFNPOao2BP2oUOHEhERwZIlSzh58iSnTp1i8eLFvPLKKzz//PPFukb79u1xdnbG1taW4cOH07lzZ7Zu3frApaxLqwy2EMXVuRbs66t+NRdgpGhDdh7Mj4WGq2H675B+x/AYIUpbwbi8YsUKTp8+zZkzZx54XBbmxUIDy4PV1I4FkrNg+M/qDXlCVDZbEtXPT119H4FXpcSPHqviHjhr1izy8vJ48803ycnJQVEUbG1teeONN5gxY0aJnlyj0aAoCn5+fnz11Vfa9szMTM6fP29Qyrpdu3ZA0WWwCybhsbGxPPfcc3rnFtAtgy3Eg9Bo4Elv6Fkfvj0Pk3+D+Fv6x6TnwLTDsPAETGwNo/3Artg/ZUI8mIJxecKECaU2LgvTa+IGUwPVsuwFtl2AucdgQmvTxSVEabuYof4yqqu+E3wRLFthCrvvTaf5+fmcOHGCRx99FHt7e27fvq3dG+nj48O5c+do3rw5Fhb3Xqy/efMm0dHRBAUFYWVlxdq1axk5ciRHjx6levXqNGrUiC+//JLevXszdepU9u7dy6FDhwBYvHgxCxYsYOfOnWg0Grp3787rr7/OqFGjAOjQoQNdunRh1qxZbNu2jRdeeIH4+Hg8PT2Ji4ujY8eO/PDDD7Ru3ZqIiAhyc3OJiorSi68y3sAkylZOHqw8oxZfupRp/Ji6juoHb7gvWD1QElUhilZ4XL569SoJCQkAtGzZstjjckVW2cfsnDwI3qSWZy9goYHdfeCx2qaLS4jSkpsPj2/SzwpjqVG/ze5kZAtqZVImN52uXr2aYcOGYWNjA4C9vT3+/v74+/tjY2PDsGHDipU+LCcnh3feeQdPT088PDz49NNP2bhxI02aNMHT05P169fz9ttv4+bmRnR0tN6EuizLYAtRUtaW8HIziH8O5nUynnbqYia8vBeaRak3qcpX2qI0GBuX/fz88PPze6BxWZgva0uI6q4/ruQr8OwO+Psf08UlRGmZftgwheOsdpV/sl5S911hDw4OZsSIEUXuh/z666/54osv2L17d5kEWF4q+2qNKHtpd9R9ePNi9dOy6WrlAbPbqdtq5Os+UVKFx+XC41dlGZfvpaqM2duS4Mmt+m3d6sL23mBZeb9AEZXcrovQfTPoTkB71INtvatGdd8yWWE/ffo0nTp1KrK/Y8eOnDp1qlhPJkRl5mID09pCQhj8p4X+TWMFjiWrH76PbYQDVwz7hSgOGZerjl7eMLGVftvOizD7qGniEeJhXfsHhu7Sn6zXdID/e7xqTNZL6r4T9lu3bpGTU8RyIXDnzh2DLCxCVGWe9jC/s7pV5qWm6p68wg5cha4bobdUTRUlIONy1TKjHTxWS79t2u/qKqUQFUm+AsN+hqs627o0wNf/ghoOJgurQrjvhN3b25uYmJgi+2NiYqhfv36R/UJUVfWcYFkwnHxWrYpqzNYLamW3ITsg/ma5hicqMBmXqxYrC1jTHTx19rMrwHM74UoRN7wLYY7mHoOf/tJve7sN/KuuaeKpSO47Ye/Tpw+TJ08mI8OwlGNaWhpTp04lNDS0TIITojJoXE29eezoQLXMsjFRUjVVPAAZl6ue2o4Q2V1djSzw920YslPNtiGEuTt4Fd75Tb+tay01k5q4v/vedJqamkqrVq3Iycnh9ddfp2nTpmg0GuLi4li4cCHW1tYcPXoUd3cj1WQqkKpyA5Mwvf2X1apuv1w13m9rqRaMmNgKPOzLNzZRMRQel+vXr49Go+H06dMsX7680ozL91JVx+xpv6vZNXRNag2z25smHiGKIzVL/Tb5gs4ag7sdxDwDdZ1MF5eplGT8uu+EHeDSpUuMGjWKbdu2kZ+v/ipvYWFBr169WLRoEfXq1SthyOajqg7+wjQURS2EMikaYlOMH+NsDf8NgDEB4GxTvvEJ81cVxuV7qapjdl4+PLEFdl3Sb9/6pHqDqhDmRlGg/4+w8U/99s294KkGJgnJ5MokSwxAnTp12Lx5M9evXyc6OppDhw5x/fp1Nm/eXOk/FIQoCwVVU48+A2u6QSMjP68FVVMbroaPYiErt/zjFOZLd1zetWsXO3fu5Pz58w80Li9cuJDAwEBsbW0JDw/X69u1axe+vr44ODgQEhJCUlKStk9RFMaPH4+7uzvu7u6MGzcO3bWfxMREQkJCcHBwwNfXl507d+pdOzIyEm9vbxwdHenbty+pqanavuzsbF588UVcXFyoWbMm8+fPL8G7U3lZWsDqbmpWDV3P/wx/yXY6YYYWnjCcrP+nRdWdrJfUA2VxdXNzo23btrRr1w43N7eyikmIKsNCA88+CicHw9IgqONoeExyFow5CD6RsOA4/FN0chBRBbm5udG6dWvatGlDtWrVHujc2rVr88477/Diiy/qtScnJ9O/f39mzpxJamoqgYGBDB48WNu/dOlSNm7cSGxsLMePH2fLli0sWbJE2z9kyBBatWpFSkoKs2fPZuDAgVy/fh2AuLg4IiIiWLVqFdeuXcPBwYHRo0drz502bRrx8fEkJSWxe/du5s6dy/bt20vy1lRaNRzU+2J0U+ClZKlFlXLyTBeXEIUdvQ5vHdRvC/SE9zqYJp6KrFhbYqqCqvr1qjAvt3Nh0Ql495j6AWyMlz28FQCvNAcn6/KNT5inhx2/3nnnHS5evMjKlSsBdUK+cuVKDh5UP2kzMzPx8PDg2LFj+Pr60qlTJ8LDwxk5ciQAX3zxBcuWLePQoUOcPXsWf39/kpOTcXZ2BqBr166EhYUxatQoJk2aRGJiIpGRkQCcP3+epk2bkpKSgrOzM3Xq1GHFihX06NEDgMmTJxMfH69X/bo0XnNlMOcIvF3oJr63AuCDolP0C1Fu0u9A63Vw7u6PKi42agIGn6r5I6tVZltihBDlw94K/ttSLb40NdD4hPzv2zDuEDT4Wv3ATrtT/nGKyi0uLo6AgADtY0dHR3x8fIiLizPaHxAQoNfXsGFD7WTdWL/uuT4+PtjY2HD27Flu3LjB5cuXi7y20DehNfQstPvpw1jY9Kfx44UoL4oCo/bpT9YBlgXJZL2kZMIuhBnSrZo6JkCdyBeWkqWurnmvUjNH3Mgu/zhF5ZSRkWGw6uPq6kp6errRfldXVzIyMlAU5YHP1e0vSFNZ+NoF5wp9FhpY9S+oW2gr3fCfIVHqZgkTWnEaIuP120Y2g0FF1CQR9ycTdiHMmKc9zOsEiWEwvpXxFfebd9Q0b96r4O1oSL5d/nGKysXJycmgUmpaWpp21bxwf1paGk5OTmg0mgc+V7ffyclJ+9jYucKQhz2s7aEWVypw8w4M2gF3ZD+7MIETKfDaAf225tXh486miaeykAm7EBWAl4N6k07iUHinjboCX1h6Dsw5qm6VGXsQrv1jeIwQxeHn50dsbKz2cWZmJufPn8fPz89of2xsrF5fQkKC3qp44X7dcxMSEsjOzqZx48a4ublRq1atIq8tjOtUE94tlIf9979h7K+miUdUXZcy4Mmt6v1YBRysYG13498Ui+KTCbsQFYi7HcxsB0lDYUZbcLM1PCYzV93H2uBr+PcBdQAVwpjc3FyysrLIy8sjLy+PrKwscnNz6devHydOnGD9+vVkZWUxY8YMWrRoga+vLwDDhg1j/vz5XLp0icuXLzNv3jxtWsjGjRvTsmVLpk+fTlZWFhs2bOD48eMMGDAAgLCwMDZv3sz+/fvJzMxkypQp9O/fX7uKPmzYMGbNmsWNGzc4ffo0y5YtM0g5KQz9NwBCC+Vh/+QPWH/eNPGIqudWtjpZL5xedGFXaFbdNDFVJjJhF6ICqmYLkwPVFfd324OHneExWXmw4A81j/vofXBBtgGLQmbNmoW9vT3vvfceX3/9Nfb29syaNQtPT0/Wr1/P22+/jZubG9HR0XpZWiIiIggNDcXf35/mzZvTu3dvIiIitP1RUVEcPnwYNzc3JkyYwLp16/D09ATUFfbFixcTFhaGl5cX6enpLFq0SHvu9OnT8fHxwdvbm6CgIMaOHUvPnj3L702poDQa+Opf4F1o99Dwn9XVdiHK0p08GPAjHC9UCHBUMwhvYpqYKhtJ6/g/kiJMVGSZObDkJMw9BteK2MNubQHDm8DE1tDQpXzjE2WrKo5fVfE1F8dv16DLRsjJv9vmYQcH+kITKZ8iyoCiwPO7YHWhm0z7NIDvnlCLfQl9ktZRiCrK0VrNJvPnUPiki/ECTDn5sPwUNI6E8J/h7M3yj1MIUbba1YAFhW7uS86CJ36Ay5mmiUlUbpOiDSfr7b3UKt4yWS898lYKUYnYW8Hr/nA+DBY/Zvj1OECeAl+dgaZR8NwOiEs1PEYIUXG90hwmttJvS0qHnlvgpqR/FaVo0Ql475h+WyNX2PwkOEhhv1IlE3YhKiFbS4jwg/gh8EUw+BjZApOvwJpz4L8WnvkRYpPLPUwhRBmZ3R5G+Oq3v8JJoAAAIABJREFU/ZEKoYUyeAhRUhv/hNf267d52sH23mpKYlG6ZMIuRCVmbQkvNoXTQ9QCK02qGR6jAOsSoOW38PQ2OCw3qAlR4Wk0sDhI3Ues68BVeHYH5OYbPU2IYvn1KgzZoX5+FHCwgh96SyXTsiITdiGqACsLGNoY4gZDVHe1iIUxmxKh7Xp48gd1QBZCVFxWFurPe5ea+u2bEmHUXvVmQSEe1NmbELpNzURWwFID3/SAtl6mi6uykwm7EFWIpQUMbgSxg2D9E9DSw/hx2y5Apw3QbRPsvVy+MQohSo+9FWx60vCX9C9Owzu/mSYmUXFd+0e9FyIlS7/988egt7fxc0TpkAm7EFWQhQb6N4SjA2Fzr6JXRXZdguDvodN3sCEB8uRrdCEqHDdb+PEpw5vQ5xyFT46bJiZR8WTkQO+t8Gehmh6T28DLzUwTU1UiE3YhqjCNBp5qANH91RuFOtc0ftyv16D/j2pmmcVxctOaEBVNbUf46SnDImtv/gJr4o2fI0SB3HwY9BMcua7fHt4Eprc1TUxVjUzYhRBoNPBEfdjfF37uAyG1jR8Xfwte2Qf1V8H03+F6EUWahBDmp3E12NobHK3024f/DD/9ZZqYhPlTFPWeh20X9NufqAdLg9TPD1H2pNLp/0jVPCH0HbgCs4/A9nt8kNtZwgu+atGmRvJjYzJVcfyqiq+5tPz0Fzy1Vb8aqqMV7H5abhosNYoC+TmQn/u//+YU83E5nZOXA0pu0Y+7fgINnwZgxmGY+rv+y2vtAXueBmcbE7y3lUBJxi+ZsP+PDP5CGPdHCsyLhch4/Q94XRqg3yPwVkvoWMS2GlF2quL4VRVfc2laEw/P7dRv87CDA32hiVs5BqIooOQVb6KZ97//Fkwsi/u4oC2viOuWxcRZybv/azdn3VdBk6F8eQpG7NHvauAMv/aHmg4miaxSkAn7Q5DBX4h7u5QBn/wBi09C2p2ij+tcU52492mg3twqyl5VHL+q4msubZ/E5rHxl700U05iRS7W5OBpm8Mo3xxcrMpiQlvENYT5efxLtju9wFNb1erYBarbwi/9wLc8f6mrhGTC/hBk8BeieNLuwPJT8PFx+Cuj6OMau6pbZYY1UVPLibJTFcevqviaS93e1+GPhaaOQpihGP8ldDwzUi/Xup0l7AyFzrVMF1dlIRP2hyCDvxAPJicPvjkPH8ZCTHLRx3nawWv+MNoPPKRcdZn4//buPC6qen3g+GfYVxEBwUAlUcTQkHJNSkC9VmaaZbhxMzdyq3vTq2W5UFZer9Y1vWQ3K80w+imWdc0yMXBJTU1QcUMJcyUFjU328/vj5CQ4IMMyMzDP+/U6L5izzDyPR77zzHe+53vMsf0yx5zr3SoPKKzmj1eYMA1Y2f+xOFT6qWOdpT1Y3/L7zW3WDmDdDBy9wMIaLKyJO2PNpJ/cycXp1ldjw0B1OmBRd1Kw14E0/kLUjqKo87UvSYbvqrlA1d4KxgXA3++VW1fXN3Nsv8wx53r3v8ch42tjRyFMgWdPlMHf8mZqc5031Foeona8iPohBXsdSOMvRN0dzoKlybDutDpvry4a1F6af3SFnp4GDa/JMsf2yxxzrneF1+DEasg+TmlZCQm/lnKtsARrpUQ7pt3FqoT7WhRir9yAshtQWmkpr+aCFtGofO21kMevvFJhnYUG3n8IJsiNkeqVFOx1II2/EPXn/B8XqL5/hwtUH2wFM4PUmzfJBaq1Z47tlznm3NCuFcHnsQsYXPABLcj+o2iXi0LNxXTNu6ywmK59bGcJnw+Ax+82YlBNVG3aL7lxkhCi3vk4weLe8OsYWNIbfBx177fzEgz5Fu6Jgw+OQaHUBiYlNDQUOzs7nJyccHJyomPHjtptCQkJBAQE4ODgQFhYGGfPntVuUxSF2bNn4+bmhpubG7NmzeLWvqGMjAzCwsJwcHAgICCAbdsqzi+4bt062rZti6OjI0OHDiU7O7vhkxW4Zu3kuYJovLmIPYVSrDdVFtbq+HWbZpTbtuA3Sx/e0zzHSs1z2l2a26h3xpVi3XRIwS6EaDAutjCjK6SPhrX9IMhN934nr8OkJGj7KSw8CFmFho1TVG3FihXk5eWRl5fHyZMnAbh69SrDhg3j9ddfJzs7m27duhEREaE95r///S9ffvklKSkpHD58mP/973+8//772u0jR44kODiYrKws3njjDZ566imuXFHveZ6amkpUVBRr164lMzMTBwcHpkyZYtikzVVZkbEjEIbS7yMyx/xOt+ZZeHKOKRbvUaqxBuAuR/Wu1w9WccdrYRxSsAshGpy1JYzxh0PD1V6bAT669/vtBsz9Cdqshek7IT3HsHGKmtm4cSOBgYEMHz4cOzs7FixYQEpKCidOnABgzZo1zJgxAx8fH7y9vZkxYwarV68G4NSpU/z8889ER0djb2/Pk08+SZcuXYiPjwcgNjaWwYMH89BDD+Hk5MTrr7/Oxo0byc3NNVa65sOnH9wzQe2BFU1XeQnl257lLxtzOVRpkqCOzeHHJ6BzFZ0rwnikYBdCGIxGAwNaw9bBkDwcIv3BSkcrVFAKK45C+1gYsgW2nVdnoxGG9/LLL+Pu7k6fPn1ITEwE1F7woKAg7T6Ojo74+fmRmpqqc3tQUFCFbe3atcPZ2bnK7bce6+fnh42NDadOnWqwHMUfNBoI/wAm5cCELBiXyc++c40dlWgA5WXFZORUnBmgZ0v1Trdtnas4SBiVUQr2tLQ07OzsGDNmjHadjIcUwrwEucMn/dThMjOCwFlHp54CfJUBA75Wx7mvOFL9Rayifv3zn/8kPT2dCxcuMGnSJAYPHsyZM2fIy8u77UIpFxcXbS945e0uLi7k5eWhKIrex1beLgzAyg7sWoBdC+77dZGxoxEN4AXNMnI0f/6dPdIGEh6Xe2WYMqMU7FOnTqV79+7axzIeUgjz1doJljwA5yJhcS/wruIC1RPXYfou8P5EHS5z4pph4zRHPXv2xNnZGVtbW5555hn69OnDN998g5OTEzk5Fccr5eTkaHvNK2/PycnByckJjUaj97GVtwtD0oC10513E6av3VC+DrtIW6uL2FgUEWMxVbsp0h82PQyOMhLKpBm8YI+Li6N58+b069dPu07GQwohXGzhH8Fqj/sn4dDVXfd+eSXqcJlOcWrP+6ZfoKyKOd9F/dJoNCiKQmBgICkpKdr1+fn5nDlzhsDAQIDbtqekpFTYlp6eXqENrrz91mPT09MpKirC39+/QXMTOlhYwsDPwcXP2JGIOirJ2MqQHa34VWlFicZGu35mEKwOV68zEqbNoAV7Tk4O8+bNY+nSpRXWy3hIIcRNNpYQ2RF+fgp2PwEj2use5w7q2Pah34LfOlh8SGaXqU/Xr1/nu+++o7CwkNLSUmJjY9mxYwcDBw7kiSee4OjRo8THx1NYWMhrr73GvffeS0BAAAB//etfefvtt7lw4QIXL15k6dKljB07FgB/f3+6du1KdHQ0hYWFfPHFFxw+fJgnn3wSgNGjR/P111+zc+dO8vPzmTdvHsOGDZMedmNpMwAiT8M0BaaUUO7Y2tgRiVr4sbwblS8D+ldv+NcDcg+MxsKgBfvcuXMZP348rVtX/IOX8ZBCiMo0GnjACz4boM7nvqAbeDno3vdsLszeCz6fwPgf4NAVw8baFJWUlPDqq6/i4eGBu7s7y5cv58svv6Rjx454eHgQHx/PK6+8gqurK/v27SMuLk57bFRUFIMHD6ZLly507tyZQYMGERUVpd0eFxfHgQMHcHV15aWXXmLDhg14eHgAag/7ypUrGT16NC1btiQ3N5eYmBiD5y90UMqwyD9n7CiEnl7TzOVpi//TPrayUL/FnNnViEEJvVkZ6oWSk5PZtm0bhw4dum2bjIcUQlSnlSPM7w4v3wcb09UhMbsv375fYRl8dEJdHvCC6Z1hWDu1117ox8PDg/3791e5vX///tphi5VpNBoWL17M4sWLdW739fXVzjijy6hRoxg1apRe8QoDsLSFrjMgeemd9xVGF2T3C4dLfCusc7CCDX+BR9oaJyZRewYr2BMTE8nIyKBNmzaA2vNdVlbGsWPHeO6551izZo1236rGQ/bo0QOoejzkzSI8JSVF29jLeEghmg4bSxjRQV1+vgL/OQrr0tRCvbIfL6uLlwNE3QOT7lFvCCKEqIOQJRA4Cc6o14nt+w3apL9LK3R8ghZGcwV3Mopd4ZbhLm52sPlR6OlpvLhE7WkUxTCzGxcUFFTo6V6yZAkZGRm89957ALRv356PPvqIQYMGMX/+fJKSkti7dy8AK1euZNmyZWzbtg2NRsOAAQOYPn06zz2n3ka3V69ehISEsHDhQrZs2cKzzz5LWloaHh4epKam0rt3bzZv3sx9991HVFQUpaWlFb6+Bfj999+1v1ceQiOEMF1ZhfDhcYhJVYfGVMXKAp5qB9M6q73vmiY0btMc2y9zzNlUHUmMocvRqXfeURjEXnryvMW77Nf00K7r46VOo9uumREDE1q1ab8M1sPu4OCAg8OfA1CdnJyws7PTjluMj49n2rRpjBkzhp49e942HjI9PZ0uXboAMGHChNvGQ44dOxZXV1fatGlT5XjIrKws+vfvz8cff2yIlIUQBuBmB7OC1bncN5+F5UfVi1ErKy2HuNPq0tVdHS4zsgPYG6wVFKJp6uJewzFnFtagsQQLq2p+Wqmz0+j8Wd1x9XT8zd/renzln9Uebwma2l9SmFMML+6GD3WMULOxgIU94MUgsJRbZTZqButhN3XSWyNE03H8GsQchdUn1Wkgq9LCFsZ3gimB4NuIe57Msf0yx5xNVnEeFP9ObqkV0QetWHXSklKsKOPPn4rGgnEBsPQBaG5r7ICbjsQLMPYH3d8uBrurF5d2djN8XKJ6tWm/pGD/gzT+QjQ9OcXwyUn1ItWT16veTwMM9lWHy/T3aXzDZcyx/TLHnBuLxAswPhHSc27fdpcjvPcgPH63wcNqUm6Uwpx98O/Dt2+z1MCc++DV++WCe1MlBXsdSOMvRNOlKJBwAZYfga8zuG0+4lt1bK4W7n/tCM1sqtnRhJhj+2WOOTcm+SUw9ye1oNT19zayPSwLAQ97g4fW6O3/Df6aoN79ubKA5rAmHHrIhaUmTQr2OpDGXwjzkJED76XCquOQXVT1fo5WENEeJnZSZ1Uw5V53c2y/zDHnxmjvZRiXqA5Tq8zdDlY8CE/7mfbfl6koLoOFB+HNn6FMR+X2t3vhzZ5yXU5jIAV7HUjjL4R5uVEKn6WpF6kmX61+384tYEIniPSHFnaGiU8f5th+mWPOjVVRGbx+ABYd0l1oDvGFmIdk2tXqHLqiDjM6pKOtausMq8Mg1NvgYYlakoK9DqTxF8I8KQrsyVSHy2xIV2eTqYqtJTzZTi3eQ+8ynV5Bc2y/zDHnxu7QFbW3XdcHZBcb9YLUsR1lNpObFAUSL8LiQ/BtFTeYHR8Ab/dpPMP3hEoK9jqQxl8IcSkf3j+mDpe5kF/9vu1d1ML9mY7qzZmMyRzbL3PMuSkoKYN/JUP0ASjW8eG4rbN6Dcn4TuBqprPJlJXDxl/UQv3AFd37eDnAqlAYJHcsbZSkYK8DafyFEDeVlsO3v6qF+//O6v4a/yYrCxjcVh3r/pfWxukdNMf2yxxzbkqOX4NxP8DeTN3bHazUIWjPd4F7Whg2NmO5UQqrT8DSFDijY4admyLaw38eVO9BIRonKdjrQBp/IYQuF/PVN9FVx+GXau6kCtDaCcYFqEsbZ8PEB+bZfpljzk1NWbk6FG3OT2qxWpX+PmrhPqgtWJjIMLT6lFWo3jdi+RG4Ulj1fr091ekaH/M1WGiigUjBXgfS+AshqlOuwA8X4IPj8EW67q/zb9IAD7dRe90fawvWDTwXsjm2X+aYc1OVngNvHITYNPUC1ar4NVOHyzwbAC5NYLhMRg68c1jtDCio5gPL474wqyv0aWWw0EQDk4K9DqTxF0LU1NUbsPaUWrzrmq7uVp72MDZAHe/evoGaFnNsv8wx56bu6g31b+o/R6u/hsTJWr04dVpn6OhquPjqS/JVdRz/56erHm5nbaEOCZrZFTo1whxF9aRgrwNp/IUQ+lIU+PGy2kP2+Znqv9YHdWaZiZ1gWDuwq8e5ks2x/TLHnM1FSRl88Qu8ewR2X65+34dbwwv3wgAf051dpqhMvdnRrkuw9Rz8cLHqfZvZwHP3qDnJNJdNlxTsdSCNvxCiLn4vgnVpag+hrrmSb+Vqq/aeTewEnd3q4bXNsP0yx5zN0cEr8O5hiDtd/TA0Ryu43wO6t4QeLdWfvs7GmXo1p1j9IL/zkrr89Fv1Q31ALc7/1gUm3dM0hvuI6knBXgfS+Ash6svPV+CDY+qY3NyS6vft5akOl4lor37VXxvm2H6ZY87mLLNAnXL1vVS4XFCzY9ztoJvHnwV895bg2QBTsF4u+LM433kJDmep17zURCdX+EdXGNVBvc+DMA9SsNeBNP5CiPqWXwLrz6i97j/e4at9J2v1TXtCJ7XI0KdnsCm2X9nZ2YwfP56tW7fi7u7OW2+9xahRo7Tbm2LO4s6Ky2DDGVh2RO251lcbpz+L9+4ecHczdRx5WTmUKuqUrqWVH5er+5Tesi6rEH7MVAv007/f+XUrC/GCWcFNd+YbUT0p2OtAGn8hRENKzYYPj8Mnp9Q3+6p4O8LZMfqNx22K7dfIkSMpLy/nww8/JDk5mUGDBvHjjz8SGBgINM2chX72ZcKKo+o9E65W8zdlClo7wYOt1KXvXXIhqbmTgr0OpPEXQhhCUZk6LeSq45Bw4fbtc++H13ro95xNrf3Kz8/H1dWVo0eP4u/vD0BkZCTe3t4sWrQIaHo5i9pTFDibq/a47/8N9l9Rx77n3WE4WkO6x/XPAv3BVoa9L4MwfbVpv+pxngIhhBB3YmsJIzqoy5nf1V73j0+q42A1qLdkN3enTp3C0tJSW6wDBAUFkZSUZMSohKnSaMC3mbo83V5dV1YOJ67/UcD/phbzKVlQUs2Fq7VlZQH3u/9ZnPdpJXchFfVPCnYhhDASPxd4sxdEd4dvflVnl2krPXHk5eXd1uvk4uJCbu4dbjUrxB8sLSCwhbqMDVDXFZWpF4TeLOAPXlFndLGyACuN+tPyj586193y2MYSAv/oRe/pCY61vGBciJqSgl0IIYzM2hKG3K0uApycnMjJyamwLicnB2dn+TQjas/W8s8LTqcYOxgh9GSitxkQQghhrvz9/SktLSUtLU27LiUlRXvBqRBCmBsp2IUQQpgUR0dHhg0bxrx588jPz2f37t1s2rSJyMhIY4cmhBBGIQW7EEIIkxMTE8ONGzdo2bIlI0eO5L333pMediGE2ZJpHf9w6xQ7QgjRWJnLFIfSZgshmoKattnSwy6EEEIIIYQJk4JdCCGEEEIIEyZDYoQQQgghhDBh0sMuhBBCCCGECZOCXQghhBBCCBMmBbsQQgghhBAmTAr2OsjOzuaJJ57A0dGRtm3bsm7dOmOH1KCKiooYP348bdu2xdnZmeDgYLZs2WLssAwmLS0NOzs7xowZY+xQDCYuLo5OnTrh6OiIn58fO3fuNHZIDS4jI4NHH30UV1dXvLy8mDZtGqWlpcYOSzQQfdrxNWvWcP/999OsWTN8fHyYNWuWyf3f0Cefd955By8vL1xcXBg3bhxFRUUGjLR2appfYzhXutSmrggPD0ej0Zh8fvrklp6ezmOPPYazszPu7u7MmjXLgJHWTk3zUxSFV199FW9vb1xcXAgNDSU1NfWOzy8Fex1MnToVGxsbMjMziY2NZfLkyTX6R2+sSktLad26NUlJSfz++++8/vrrPP3002RkZBg7NIOYOnUq3bt3N3YYBvP9998ze/ZsPv74Y3Jzc9mxYwft2rUzdlgNbsqUKbRs2ZJLly6RnJxMUlISMTExxg5LNBB92vGCggL+/e9/c/XqVfbt20dCQgJLliwxcMTVq2k+3333HYsWLSIhIYGMjAzS09OZP3++ESLWT03zawznShd964rY2FiTL9RvqmluxcXFDBgwgPDwcC5fvsz58+cbRUdZTfNbv349H330ETt37iQ7O5vevXvX7C7OiqiVvLw8xdraWjl58qR23ZgxY5TZs2cbMSrD69Kli7JhwwZjh9HgPvvsM2X48OHK/PnzldGjRxs7HIPo3bu3smrVKmOHYXABAQHK5s2btY9nzpypTJo0yYgRiYZS13Z86dKlymOPPdZQ4elNn3xGjhypvPzyy9rH27ZtUzw9PQ0SZ23V5XyZ2rnSRd/8rl+/rnTo0EHZs2ePAiglJSWGClVv+uT2/vvvKyEhIYYMr870yW/RokXK8OHDtY+PHj2q2Nra3vE1pIe9lk6dOoWlpSX+/v7adUFBQU26h72yzMxMTp061eRvF56Tk8O8efNYunSpsUMxmLKyMg4cOMCVK1do3749Pj4+TJs2jRs3bhg7tAb3wgsvEBcXR0FBARcuXGDLli08/PDDxg5LNIC6tuM7duwwqfZPn3xSU1MJCgqqsF9mZiZZWVkGibU26nK+TO1c6aJvfnPmzGHy5Ml4eXkZKsRa0ye3vXv34uvryyOPPIK7uzuhoaEcOXLEkOHqTZ/8RowYwenTpzl16hQlJSWsWbOmRu8xUrDXUl5e3m23k3VxcSE3N9dIERlWSUkJo0eP5plnniEgIMDY4TSouXPnMn78eFq3bm3sUAwmMzOTkpISNmzYwM6dO0lOTubQoUMsXLjQ2KE1uL59+5Kamqod+9qtWzeGDh1q7LBEA6hLO/7xxx9z4MABZs6c2VDh6U2ffCrve/N3U34Pq+35MsVzpYs++R04cIDdu3czffp0Q4VXJ/rkdv78eeLi4nj++ee5ePEigwYNYsiQIRQXFxsqXL3pk1+rVq148MEH6dixI/b29qxfv5533nnnjq8hBXstOTk5kZOTU2FdTk4Ozs7ORorIcMrLy4mMjMTGxoYVK1YYO5wGlZyczLZt2/j73/9u7FAMyt7eHoDp06fTqlUr3N3defHFF/nmm2+MHFnDKi8vZ+DAgQwbNoz8/HyuXr3KtWvXmD17trFDE7UQGhqKRqPRuYSEhNS6Hf/yyy956aWX2LJlC+7u7g2Zgl70yafyvjd/N+X3sNqcL1M9V7rUNL/y8nKmTJnCsmXLsLKyMmSItabPubO3tyckJIRHHnkEGxsbZs6cSVZWFsePHzdUuHrTJ7/o6Gj279/PuXPnKCwsZP78+YSHh1NQUFDta0jBXkv+/v6UlpaSlpamXZeSkmLyX7nVlaIojB8/nszMTOLj47G2tjZ2SA0qMTGRjIwM2rRpg5eXF0uWLCE+Pp777rvP2KE1KFdXV3x8fNBoNMYOxaCys7M5d+4c06ZNw9bWFjc3N5599tkm/0GlqUpMTERRFJ3Lrl27atWOf/vtt0ycOJGvv/6aLl26GCKNGtMnn8DAQFJSUirs5+npiZubm0FirQ19z5cpnytdappfTk4OBw4cICIiAi8vL+1kCD4+PiY7k5c+5+7ee+9tdO89+uSXkpJCREQEPj4+WFlZMXbsWK5du8axY8eqf5E6jrM3axEREcqIESOUvLw8ZdeuXUqzZs2Uo0ePGjusBhUVFaX07NlTyc3NNXYoBpGfn69cunRJu8yYMUN58sknld9++83YoTW4uXPnKt26dVMyMzOV7OxsJSQkRHn11VeNHVaDu/vuu5W33npLKSkpUa5du6YMHTpUGTVqlLHDEg1En3Y8ISFBadGihZKUlGTgKGuupvls2bJF8fT0VFJTU5Xs7GwlLCysUUyaUNP8GsO50qUm+ZWXl1d4X/rpp58UQDl//rxSVFRkpMjvrKbn7sSJE4q9vb3y/fffK6Wlpcrbb7+ttGvXzqRzU5Sa57dgwQKlT58+yuXLl5WysjLlk08+URwcHJRr165V+/xSsNdBVlaWMmTIEMXBwUFp3bq1Ehsba+yQGlRGRoYCKLa2toqjo6N2+fTTT40dmsGY0ywxxcXFyuTJkxUXFxfF09NTmT59unLjxg1jh9XgDh06pPTt21dp3ry54ubmpjz11FNKZmamscMSDaS6dvzs2bOKo6OjcvbsWUVRFCU0NFSxtLSs0P49/PDDxgpdp6ryqZyLoqgzp7Rs2VJxdnZWxo4dqxQWFhor7BqraX6N4Vzpos/5u+mXX34x+VliFEW/3OLj4xU/Pz/F2dlZ6du3b6PoDK1pfjdu3FCmTJmieHl5Kc7OzkpwcLCyZcuWOz6/RlEUpV6/FxBCCCGEEELUGxnDLoQQQgghhAmTgl0IIYQQQggTJgW7EEIIIYQQJkwKdiGEEEIIIUyYFOxCCCGEEEKYMCnYhRBCCCGEMGFSsAuzNHbsWPr372/sMG4TGhrKhAkTjB2GEEKYJY1Go13y8vL0Otbd3V177Pnz5xsoQmGupGAXZmnZsmWsX78egAkTJhAaGmrQ11+4cCG+vr63rd+4cSNvv/22QWMRQgjxpxUrVnDp0iUcHR2163Jzc5k4cSJubm44OjryyCOPcObMmQrHHTt2jPj4eEOHK8yEFOzCLLm4uODq6lrvz1tcXFyn41u0aEGzZs3qKRohhBD6cnFxwcvLC41Go10XGRlJQkICGzZsYNeuXSiKwoABA7hx44Z2n5YtW9KiRQtjhCzMgBTswizdHBKzYMECPvzwQ5KSkrRfZa5evRqAvLw8XnjhBby9vXFwcCA4OJiNGzdqnyMjIwONRkNsbCyPPvoojo6OzJkzB0VRmDhxIn5+ftjb29OuXTvmzJlDUVERAKtXr2bu3LmcPXtW+5oLFiwAbh8SU1JSwksvvYS3tzc2Njbcc889rFu3rkIuGo2GmJgYIiMjcXZ2pnXr1ixevLhh/wGFEKIR2LZtG7a2thQUFABQWFiInZ0dISEh2n1++OEHrKysyMnJ0fkcp06dYtOmTaxcuZKwsDCCg4P57LPepxxUAAAFg0lEQVTPuHDhAp9//rlB8hDCytgBCGFMM2fOJC0tjV9++UVbjLu4uKAoCoMHD0ZRFD7//HPuuusutm3bxogRI9iyZQv9+vXTPsfs2bNZtGgRK1asQKPRoCgKnp6erFu3Dk9PTw4fPkxUVBTW1tZER0cTERHBiRMniI2NZf/+/QA4OTnpjG/OnDl89NFHrFy5kqCgIDZs2MCYMWPw9PSsEEN0dDQLFy5kwYIFbN68mRdeeIHu3bsTFhbWgP96Qghh2vr06YNGo2Hnzp0MHDiQ3bt34+zszE8//UReXh5OTk5s376dbt26Vfnt5u7du7G2tq7Q5rq6utKjRw927drF2LFjDZSNMGdSsAuz5uTkhL29PTY2Nnh5eWnXJyYmsmfPHjIzM3FxcQFg0qRJ7N27l+XLl1douKOiohgzZkyF5124cKH2d19fX86cOUNMTAzR0dHY29vj5OSEpaVlhdesrKCggHfffZd33nmH4cOHA2oBv3//ft54440KMURERDBx4kQAnn/+eWJiYti6dasU7EIIs2Zvb0+vXr1ISEhg4MCBbN++nccff5w9e/awY8cOHn30UbZv3054eHiVz3Hp0iXc3d2xtLSssN7Ly4tLly41dApCAFKwC6HT/v37KS4uxtvbu8L64uJiOnToUGFdjx49bjv+gw8+YNWqVWRkZJCfn09paSnl5eV6xXD69GmKi4t56KGHKqzv27cvb731VoV1Xbt2rfDY29ubzMxMvV5PCCGaovDwcL766isAtm/fzvTp07Gzs2P79u089NBD7N+/n+jo6Fo9963j3IVoSFKwC6FDeXk5Li4u2iErt7Kxsanw+NaZBADWr1/P1KlTWbRoEX379qVZs2asX7+eV155pVaxVH5DUBTltnWVY9JoNHp/QBBCiKYoPDyc6Ohofv31Vw4ePEh4eDi2trYsXLiQfv36YWFhQZ8+fao8vlWrVly9epWysrIKveyZmZn4+/sbIgUhpGAXwsbGhrKysgrrunXrxvXr1yksLKRz5856Pd+OHTsIDg7mxRdf1K7LyMi442tW1r59e2xtbUlKSiIwMLDC89/6WAghRNV69uyJvb09r732Gh06dMDLy4uwsDAiIiJYv349vXr1wt7evsrj+/TpQ0lJCdu3b2fAgAEAXL9+nX379jFu3DhDpSHMnMwSI8ze3XffzYkTJ0hNTeXq1asUFRURHh5O//79GTZsGF988QXp6ekcPHiQ5cuX88EHH1T7fB07duTIkSNs2rSJM2fOsGzZsgqzy9x8zcuXL7Nnzx6uXr2qncHgVg4ODjz//PPMnTuX9evXk5aWxptvvsmmTZuYM2dOvf4bCCFEU2VtbU1ISAhr1qzRjlVv0aIFXbp0Ye3atdWOXwfw9/dnyJAhTJ48maSkJJKTkxk1ahTe3t5EREQYIgUhpGAXYvz48XTv3p0HHngADw8PPvvsMzQaDV999RXDhg3jxRdfJCAggEGDBrF582b8/Pyqfb6oqCgiIyN59tlnCQ4OZt++fdppG28aOnQow4cPZ9CgQXh4eFQ5DeMbb7zBxIkT+dvf/kZgYCCffvopn376aYULToUQQlSvX79+lJaWVijOw8PDb1tXlbVr1xIaGsoTTzzBAw88QHl5OVu3bq22Z16I+qRRFEUxdhBCCCGEEMam0WhYu3btbTN/1VRiYiJhYWGcO3cOHx+feo5OmDMp2IUQQgghUAt2W1tbrKysyMzMvG1Sger4+vqSmZlJYWGhFOyi3slFp0IIIYQQQFpamvZ3BwcHvY794YcftJMJtGrVql7jEkJ62IUQQgghhDBhctGpEEIIIYQQJkwKdiGEEEIIIUyYFOxCCCGEEEKYMCnYhRBCCCGEMGFSsAshhBBCCGHC/h/4cmXS/9a/8wAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_cost_i_w(X_train, y_train, hist)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "On the left, you see that cost is decreasing as it should. On the right, you can see that $w_0$ is still oscillating around the minimum, but it is decreasing each iteration rather than increasing. Note above that `dj_dw[0]` changes sign with each iteration as `w[0]` jumps over the optimal value.\n", - "This alpha value will converge. You can vary the number of iterations to see how it behaves." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### $\\alpha$ = 1e-7\n", - "Let's try a bit smaller value for $\\alpha$ and see what happens." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration Cost w0 w1 w2 w3 b djdw0 djdw1 djdw2 djdw3 djdb \n", - "---------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", - " 0 4.42313e+04 5.5e-02 1.0e-04 5.2e-05 1.2e-03 3.6e-05 -5.5e+05 -1.0e+03 -5.2e+02 -1.2e+04 -3.6e+02\n", - " 1 2.76461e+04 9.8e-02 1.8e-04 9.2e-05 2.2e-03 6.5e-05 -4.3e+05 -7.9e+02 -4.0e+02 -9.5e+03 -2.8e+02\n", - " 2 1.75102e+04 1.3e-01 2.4e-04 1.2e-04 2.9e-03 8.7e-05 -3.4e+05 -6.1e+02 -3.1e+02 -7.3e+03 -2.2e+02\n", - " 3 1.13157e+04 1.6e-01 2.9e-04 1.5e-04 3.5e-03 1.0e-04 -2.6e+05 -4.8e+02 -2.4e+02 -5.6e+03 -1.8e+02\n", - " 4 7.53002e+03 1.8e-01 3.3e-04 1.7e-04 3.9e-03 1.2e-04 -2.1e+05 -3.7e+02 -1.9e+02 -4.2e+03 -1.4e+02\n", - " 5 5.21639e+03 2.0e-01 3.5e-04 1.8e-04 4.2e-03 1.3e-04 -1.6e+05 -2.9e+02 -1.5e+02 -3.1e+03 -1.1e+02\n", - " 6 3.80242e+03 2.1e-01 3.8e-04 1.9e-04 4.5e-03 1.4e-04 -1.3e+05 -2.2e+02 -1.1e+02 -2.3e+03 -8.6e+01\n", - " 7 2.93826e+03 2.2e-01 3.9e-04 2.0e-04 4.6e-03 1.4e-04 -9.8e+04 -1.7e+02 -8.6e+01 -1.7e+03 -6.8e+01\n", - " 8 2.41013e+03 2.3e-01 4.1e-04 2.1e-04 4.7e-03 1.5e-04 -7.7e+04 -1.3e+02 -6.5e+01 -1.2e+03 -5.4e+01\n", - " 9 2.08734e+03 2.3e-01 4.2e-04 2.1e-04 4.8e-03 1.5e-04 -6.0e+04 -1.0e+02 -4.9e+01 -7.5e+02 -4.3e+01\n", - "w,b found by gradient descent: w: [2.31e-01 4.18e-04 2.12e-04 4.81e-03], b: 0.00\n" - ] - } - ], - "source": [ - "#set alpha to 1e-7\n", - "_,_,hist = run_gradient_descent(X_train, y_train, 10, alpha = 1e-7)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Cost is decreasing throughout the run showing that $\\alpha$ is not too large. " - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot_cost_i_w(X_train,y_train,hist)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "On the left, you see that cost is decreasing as it should. On the right you can see that $w_0$ is decreasing without crossing the minimum. Note above that `dj_w0` is negative throughout the run. This solution will also converge, though not quite as quickly as the previous example." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "tags": [] - }, - "source": [ - "## Feature Scaling \n", - "
\n", - " \n", - "
\n", - "The lectures described the importance of rescaling the dataset so the features have a similar range.\n", - "If you are interested in the details of why this is the case, click on the 'details' header below. If not, the section below will walk through an implementation of how to do feature scaling." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - "\n", - " Details\n", - "\n", - "\n", - "Let's look again at the situation with $\\alpha$ = 9e-7. This is pretty close to the maximum value we can set $\\alpha$ to without diverging. This is a short run showing the first few iterations:\n", - "\n", - "
\n", - " \n", - "
\n", - "\n", - "Above, while cost is being decreased, its clear that $w_0$ is making more rapid progress than the other parameters due to its much larger gradient.\n", - "\n", - "The graphic below shows the result of a very long run with $\\alpha$ = 9e-7. This takes several hours.\n", - "\n", - "
\n", - " \n", - "
\n", - " \n", - "Above, you can see cost decreased slowly after its initial reduction. Notice the difference between `w0` and `w1`,`w2`,`w3` as well as `dj_dw0` and `dj_dw1-3`. `w0` reaches its near final value very quickly and `dj_dw0` has quickly decreased to a small value showing that `w0` is near the final value. The other parameters were reduced much more slowly.\n", - "\n", - "Why is this? Is there something we can improve? See below:\n", - "
\n", - "
\n", - "
\n", - "\n", - "The figure above shows why $w$'s are updated unevenly. \n", - "- $\\alpha$ is shared by all parameter updates ($w$'s and $b$).\n", - "- the common error term is multiplied by the features for the $w$'s. (not $b$).\n", - "- the features vary significantly in magnitude making some features update much faster than others. In this case, $w_0$ is multiplied by 'size(sqft)', which is generally > 1000, while $w_1$ is multiplied by 'number of bedrooms', which is generally 2-4. \n", - " \n", - "The solution is Feature Scaling." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The lectures discussed three different techniques: \n", - "- Feature scaling, essentially dividing each positive feature by its maximum value, or more generally, rescale each feature by both its minimum and maximum values using (x-min)/(max-min). Both ways normalizes features to the range of -1 and 1, where the former method works for positive features which is simple and serves well for the lecture's example, and the latter method works for any features.\n", - "- Mean normalization: $x_i := \\dfrac{x_i - \\mu_i}{max - min} $ \n", - "- Z-score normalization which we will explore below. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### z-score normalization \n", - "After z-score normalization, all features will have a mean of 0 and a standard deviation of 1.\n", - "\n", - "To implement z-score normalization, adjust your input values as shown in this formula:\n", - "$$x^{(i)}_j = \\dfrac{x^{(i)}_j - \\mu_j}{\\sigma_j} \\tag{4}$$ \n", - "where $j$ selects a feature or a column in the $\\mathbf{X}$ matrix. $µ_j$ is the mean of all the values for feature (j) and $\\sigma_j$ is the standard deviation of feature (j).\n", - "$$\n", - "\\begin{align}\n", - "\\mu_j &= \\frac{1}{m} \\sum_{i=0}^{m-1} x^{(i)}_j \\tag{5}\\\\\n", - "\\sigma^2_j &= \\frac{1}{m} \\sum_{i=0}^{m-1} (x^{(i)}_j - \\mu_j)^2 \\tag{6}\n", - "\\end{align}\n", - "$$\n", - "\n", - ">**Implementation Note:** When normalizing the features, it is important\n", - "to store the values used for normalization - the mean value and the standard deviation used for the computations. After learning the parameters\n", - "from the model, we often want to predict the prices of houses we have not\n", - "seen before. Given a new x value (living room area and number of bed-\n", - "rooms), we must first normalize x using the mean and standard deviation\n", - "that we had previously computed from the training set.\n", - "\n", - "**Implementation**" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], - "source": [ - "def zscore_normalize_features(X):\n", - " \"\"\"\n", - " computes X, zcore normalized by column\n", - " \n", - " Args:\n", - " X (ndarray (m,n)) : input data, m examples, n features\n", - " \n", - " Returns:\n", - " X_norm (ndarray (m,n)): input normalized by column\n", - " mu (ndarray (n,)) : mean of each feature\n", - " sigma (ndarray (n,)) : standard deviation of each feature\n", - " \"\"\"\n", - " # find the mean of each column/feature\n", - " mu = np.mean(X, axis=0) # mu will have shape (n,)\n", - " # find the standard deviation of each column/feature\n", - " sigma = np.std(X, axis=0) # sigma will have shape (n,)\n", - " # element-wise, subtract mu for that column from each example, divide by std for that column\n", - " X_norm = (X - mu) / sigma \n", - "\n", - " return (X_norm, mu, sigma)\n", - " \n", - "#check our work\n", - "#from sklearn.preprocessing import scale\n", - "#scale(X_orig, axis=0, with_mean=True, with_std=True, copy=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's look at the steps involved in Z-score normalization. The plot below shows the transformation step by step." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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pKRErFixQvj4+AgLCwvh7Owsxo4dK65evaq0LG33LEJU7hqtivdDvB+SCKHDcEJERET12KRJk7B161b8888/xs4KEREZGPswERERVSA+Pp6DOhAR1VMMmIiIiLQQQuDixYvl3r9ERET1AwMmIiIiLS5fvowHDx4wYCIiqqfqZR+m+/fvGzsLRPWSpreZ13YsU4iMh+UKEembarnCGiYiIiIiIiINGDARERERERFpUO9fXFtXq/KJTEV9a1bCMoWo5rFcISJ901ausIaJiIiIiIhIAwZMREREREREGjBgIiIiIiIi0oABExERERERkQYMmIiIiIiIiDRgwERERERERKQBAyYiIiIiIiINGDARERERERFpwICJiIiIiIhIAwZMREREREREGjBgIiIiIiIi0oABExERERERkQYMmIioXggKCoKVlRWkUimkUim8vb0V0w4ePAgfHx/Y2NggODgYWVlZimlCCMyZMweOjo5wdHTEO++8AyGEMTaBiIgMLCMXCD8ABO+U/c7INXaOyBgYMBFRvREdHY38/Hzk5+cjOTkZAJCTk4OwsDAsWrQId+7cQZcuXTBixAjFd9auXYsdO3YgPj4eFy5cwJ49e7BmzRpjbQIRERlIRi7QbzfwfSpw5Lrsd7/dDJrqIwZMRFSvbdu2Db6+vhg+fDisrKywcOFCxMfH49KlSwCAb775BrNmzULLli3h6uqKWbNmYePGjcbNNBER1bj5Z4A0leAoLVeWTvULAyYiqjfmzp0LJycnBAQE4MiRIwCAhIQE+Pn5KeaxtbWFl5cXEhIS1E738/NTTCMiorrr2gP16dc1pFPdZZIBE/saEJG+LV26FOnp6bh27RomTpyIQYMGIS0tDfn5+XBwcFCa18HBAXl5eQBQbrqDgwPy8/NZthAR1XGuturTW2hIp7rLJAMmgH0NiEi/unXrBjs7O1haWiIiIgIBAQGIjY2FVCpFbq5ym4vc3FzY2dkBQLnpubm5kEqlkEgkBs0/EREZ1qKugJe9cpqXvSyd6heTDZjUYV8DItIXiUQCIQR8fX0RHx+vSH/w4AHS0tLg6+sLAOWmx8fHK6YREZF+bE4FpOsA89Wy35tTjZ0jwNMe2D8IGN0WCG4h+71/kCyd6heTDZjY14CI9OXevXv49ddfUVhYiMePH+P777/HsWPH0L9/fwwbNgwXL15ETEwM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1VSpaTBT4S55169f5yuvvMK4uDjOmTOHmzdvptfrHdc2LORd+oZDERERERGRKUZzmERERERERILQgElERERERCQIDZhERERERESC0IBJREREREQkCA2YREREREREgtCASUREREREJAgNmMQ0FosFZWVlpm7T7/dj0aJFOHbsmKnbbWpqQmZmJqxWK5xOZ9D1Nm3ahO3bt5u6bxEJnXJFRMymXJHx0vcwiWmuXr2Khx56CFar1bRtHjp0CPv27UNjYyMsFotp283NzcXg4CAOHjyImTNn4quvvkJeXh5uPRw6OzuRmpqKpqYmJCcnm7Z/EQmNckVEzKZckfHSFSYxTXx8vKnhAwB79uzByy+/bGr4AEBraytcLhecTidmz54ddL3ExESsWrUK+/fvN3X/IhIa5YqImE25IuNGkXGoq6vjkiVLaLfbabfb+eSTT7KmpoYkCYBHjhwhSRYXFxPAiGX9+vXGtk6ePMklS5bQarVy7ty53LBhA3t6eoz2xsZGAmBnZ2dAH0pLS5mWlsaYmBg+/PDDXLZsGa9cuWK0f/LJJ5w/fz5jYmKYnZ3N6upqAmBdXR3b29tH9Mnlct22nx988AHnzJkzCdUUEVK5IiLmU66ImTRgkpD5fD46HA4WFBSwpaWFLS0trKys5JkzZ0gGBlB/fz89Ho+xnDhxgtOmTePhw4dJkt988w1nzJjBd955hy0tLfzxxx+5YsUKLlu2jH6/nyS5d+9eJiYmBvTh3LlzjIqK4kcffcSOjg7+8ssvLC0tNQLo559/psVi4Y4dO9jc3MyKigo6nU4jgHw+Hz0eD+fNm8eioiJ6PB729fXx3XffJQCjv//++6+xzwsXLhAAL168ONklFrnvKFeUKyJmU64oV8ymAZOErLe3lwD47bffjto+PICGu3z5MuPj41lYWGg853K5WFRUFLDepUuXCICNjY0kyS1btjAzMzNgncrKSsbGxrKvr2/UPrzwwgvMzs4OeG7fvn1GAA15/PHHuWvXLuPxkSNHGOyCa19fHwHw888/H7VdRO6cckW5ImI25YpyxWyawyQhczgc2LhxI5566ink5uZi9+7d+PXXX2/7moGBATz99NPIzs7G7t27jed/+ukn7N27F3a73VgWLFgA4ObndQHA6/WO+Izx6tWrkZycjKSkJKxbtw4lJSXo6ekx2i9evIilS5cGvCYnJ2dCP/dQH7xe74S2IyIjKVeUKyJmU64oV8ymAZOMS2lpKRoaGrB69WqcPn0a6enpOHDgwKjr+v1+PP/885g+fTrKysrwwAMPBLQVFRXB7XYHLK2trcjNzQUAzJ49G729vQHbtNvtOHfuHI4fP47U1FS8//77SElJQUNDAwCApOkTLof6cLvJliJy55QrImI25YqYSQMmGbf09HRs3boVX375JfLz81FSUjLqetu3b4fb7cZnn30Gm80W0JaRkYELFy4gJSVlxGK32wEAixcvRmtrK65fvx7w2qioKCxfvhw7d+5EQ0MDEhISUF5eDgBYuHAhvvvuu4D1b308mujoaADAjRs3RrQ1NTUhKioKixYtGnM7InJnlCsiYjbliphFAyYJ2W+//YaioiLU19fj0qVLOHv2LOrq6oxL08N9+OGH2L9/Pw4ePAjg5nceXL16FX19fQCAnTt3orq6GgUFBXC73Whra0NNTQ3y8/ONS8krV66ExWLBDz/8YGy3uroae/bsQUNDAy5fvoyqqipcuXLF6ENBQQHOnj2L1157DS0tLTh+/DjefvvtMX+2pKQkAMCJEyfw119/YWBgwGirra1FTk4OYmNj77ByIhKMckW5ImI25YpyxXRhnkMlU8iff/7JNWvWMDExkdHR0UxISODGjRuNO7Rg2CTK9evXj3mbzjNnznDVqlW02+202WxMS0vjli1bODg4aKyzYcMGvvTSS8bj06dPc+XKlZw1axZjYmKYkpLCN99807hTDUkePXqUycnJjI6OZmZmJquqqsacREnenLT5yCOP0GKxGP30+/10Op0sLy83rY4i8n/KFRExm3JFzGYhb/mqYJEI0tbWZlwOnzt37h1to6OjA0lJSairqxv3hMpPP/0Uu3btgtvtRlRU1B3tX0Qii3JFRMymXLm36SN5EtHmz5+PAwcOoL29PSz7/++//3D48GGFj8g9RLkiImZTrtzbpoW7AyJjWbt2bdj2nZeXF7Z9i8jkUa6IiNmUK/cufSRPREREREQkCH0kT0REREREJAgNmERERERERILQgElERERERCQIDZhERERERESC0IBJREREREQkCA2YREREREREgvgfeaaZlHTxgTgAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "mu = np.mean(X_train,axis=0) \n", - "sigma = np.std(X_train,axis=0) \n", - "X_mean = (X_train - mu)\n", - "X_norm = (X_train - mu)/sigma \n", - "\n", - "fig,ax=plt.subplots(1, 3, figsize=(12, 3))\n", - "ax[0].scatter(X_train[:,0], X_train[:,3])\n", - "ax[0].set_xlabel(X_features[0]); ax[0].set_ylabel(X_features[3]);\n", - "ax[0].set_title(\"unnormalized\")\n", - "ax[0].axis('equal')\n", - "\n", - "ax[1].scatter(X_mean[:,0], X_mean[:,3])\n", - "ax[1].set_xlabel(X_features[0]); ax[0].set_ylabel(X_features[3]);\n", - "ax[1].set_title(r\"X - $\\mu$\")\n", - "ax[1].axis('equal')\n", - "\n", - "ax[2].scatter(X_norm[:,0], X_norm[:,3])\n", - "ax[2].set_xlabel(X_features[0]); ax[0].set_ylabel(X_features[3]);\n", - "ax[2].set_title(r\"Z-score normalized\")\n", - "ax[2].axis('equal')\n", - "plt.tight_layout(rect=[0, 0.03, 1, 0.95])\n", - "fig.suptitle(\"distribution of features before, during, after normalization\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The plot above shows the relationship between two of the training set parameters, \"age\" and \"size(sqft)\". *These are plotted with equal scale*. \n", - "- Left: Unnormalized: The range of values or the variance of the 'size(sqft)' feature is much larger than that of age\n", - "- Middle: The first step removes the mean or average value from each feature. This leaves features that are centered around zero. It's difficult to see the difference for the 'age' feature, but 'size(sqft)' is clearly around zero.\n", - "- Right: The second step divides by the standard deviation. This leaves both features centered at zero with a similar scale." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's normalize the data and compare it to the original data." - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "X_mu = [1.42e+03 2.72e+00 1.38e+00 3.84e+01], \n", - "X_sigma = [411.62 0.65 0.49 25.78]\n", - "Peak to Peak range by column in Raw X:[2.41e+03 4.00e+00 1.00e+00 9.50e+01]\n", - "Peak to Peak range by column in Normalized X:[5.85 6.14 2.06 3.69]\n" - ] - } - ], - "source": [ - "# normalize the original features\n", - "X_norm, X_mu, X_sigma = zscore_normalize_features(X_train)\n", - "print(f\"X_mu = {X_mu}, \\nX_sigma = {X_sigma}\")\n", - "print(f\"Peak to Peak range by column in Raw X:{np.ptp(X_train,axis=0)}\") \n", - "print(f\"Peak to Peak range by column in Normalized X:{np.ptp(X_norm,axis=0)}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The peak to peak range of each column is reduced from a factor of thousands to a factor of 2-3 by normalization." - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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yP+VEK5CkmQhyuDr68uzzz7LxIkT+e2339i/fz+vvfaaaWJZSZ577jkWL17M4cOHSUpKYsGCBdSrVw9/f38AwsLC2LBhA8ePH+f8+fMVGr155513WLx4Mfv27WPMmDGcOXOGMWPGACq5b9CgATExMSQnJ7N+/XpeeumlIiNJQUFB+Pn5sXz5ck6fPs2lS5dueZxXX32VHTt28PLLL5OcnMzSpUt5/vnneeSRRyqV7ISHhzN06FDGjh3LsmXLSE5O5sUXXyQxMZFXX321wveree6558jLy2Pw4MGsW7eOlJQU1q9fz4QJE0wfcpo2bUpcXByrV6/mwIEDTJw4kS1bthS5n7CwMJKTk02Jh9bZpHfv3nz++eds2rSJxMRERo4cadao3/jx49m3bx+PPvooW7du5ejRo6xevZoXX3zRlBSV9fwpSWnPCXMej5Iex/T0dEaOHEliYiLr16/nscceo2vXrqZJZ7dy11130bt3b4YMGcKvv/7KkSNHiI+P59NPP+XLL78s83EqjbWekyVp2rQp586d46uvvuLIkSN8//33zJo1q1z38dZbb7Fq1Spmz55NRkYGp0+f5vTp02RkZJiOMWfOHPbs2UNCQgLDhw+/KSE253Xj4YcfJjg4mGHDhrFjxw7i4+N56KGHCA0NLfekUyFcmSTJQpjhnXfeYfDgwTz22GN06NCBy5cvF6klvBWj0cjf//53mjdvTrdu3cjMzGTJkiWmJPWtt94iLS2Npk2bEhwczPHjx8sd1/vvv8+kSZNo3bo1GzZs4H//+5+pA0KVKlWYN28eZ8+epU2bNowbN4633367yOiVm5sb//nPf/j555+pV68ebdq0ueVxWrZsyW+//caaNWto1aoVjz32GAMGDODzzz8vd8zFzZ49mz59+vDoo4/SqlUrNmzYwB9//EFERESl77tmzZps2rSJoKAghgwZQtOmTXnkkUc4duwYtWvXBmDSpEl0796d++67j86dO3Pp0qWbOhaMHj2a9u3b06VLF4KDg/npp58A9fg3b96cPn360K9fP7p160b79u3LjCsyMpKNGzeSkZFBnz59aNasGU899RTXrl2jevXqQNnPn5KU9pww5/Eo6XFcvnw5J0+epH379gwcOJDmzZvf1CKtOIPBwG+//caQIUN4+eWXiYiIYMCAASxatIjw8PAyH6fSWPM5eSsDBw5k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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig,ax=plt.subplots(1, 4, figsize=(12, 3))\n", - "for i in range(len(ax)):\n", - " norm_plot(ax[i],X_train[:,i],)\n", - " ax[i].set_xlabel(X_features[i])\n", - "ax[0].set_ylabel(\"count\");\n", - "fig.suptitle(\"distribution of features before normalization\")\n", - "plt.show()\n", - "fig,ax=plt.subplots(1,4,figsize=(12,3))\n", - "for i in range(len(ax)):\n", - " norm_plot(ax[i],X_norm[:,i],)\n", - " ax[i].set_xlabel(X_features[i])\n", - "ax[0].set_ylabel(\"count\"); \n", - "fig.suptitle(\"distribution of features after normalization\")\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Notice, above, the range of the normalized data (x-axis) is centered around zero and roughly +/- 2. Most importantly, the range is similar for each feature." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's re-run our gradient descent algorithm with normalized data.\n", - "Note the **vastly larger value of alpha**. This will speed up gradient descent." - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration Cost w0 w1 w2 w3 b djdw0 djdw1 djdw2 djdw3 djdb \n", - "---------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", - " 0 5.76170e+04 8.9e+00 3.0e+00 3.3e+00 -6.0e+00 3.6e+01 -8.9e+01 -3.0e+01 -3.3e+01 6.0e+01 -3.6e+02\n", - " 100 2.21086e+02 1.1e+02 -2.0e+01 -3.1e+01 -3.8e+01 3.6e+02 -9.2e-01 4.5e-01 5.3e-01 -1.7e-01 -9.6e-03\n", - " 200 2.19209e+02 1.1e+02 -2.1e+01 -3.3e+01 -3.8e+01 3.6e+02 -3.0e-02 1.5e-02 1.7e-02 -6.0e-03 -2.6e-07\n", - " 300 2.19207e+02 1.1e+02 -2.1e+01 -3.3e+01 -3.8e+01 3.6e+02 -1.0e-03 5.1e-04 5.7e-04 -2.0e-04 -6.9e-12\n", - " 400 2.19207e+02 1.1e+02 -2.1e+01 -3.3e+01 -3.8e+01 3.6e+02 -3.4e-05 1.7e-05 1.9e-05 -6.6e-06 -2.7e-13\n", - " 500 2.19207e+02 1.1e+02 -2.1e+01 -3.3e+01 -3.8e+01 3.6e+02 -1.1e-06 5.6e-07 6.2e-07 -2.2e-07 -2.6e-13\n", - " 600 2.19207e+02 1.1e+02 -2.1e+01 -3.3e+01 -3.8e+01 3.6e+02 -3.7e-08 1.9e-08 2.1e-08 -7.3e-09 -2.6e-13\n", - " 700 2.19207e+02 1.1e+02 -2.1e+01 -3.3e+01 -3.8e+01 3.6e+02 -1.2e-09 6.2e-10 6.9e-10 -2.4e-10 -2.6e-13\n", - " 800 2.19207e+02 1.1e+02 -2.1e+01 -3.3e+01 -3.8e+01 3.6e+02 -4.1e-11 2.1e-11 2.3e-11 -8.1e-12 -2.7e-13\n", - " 900 2.19207e+02 1.1e+02 -2.1e+01 -3.3e+01 -3.8e+01 3.6e+02 -1.4e-12 7.0e-13 7.6e-13 -2.7e-13 -2.6e-13\n", - "w,b found by gradient descent: w: [110.56 -21.27 -32.71 -37.97], b: 363.16\n" - ] - } - ], - "source": [ - "w_norm, b_norm, hist = run_gradient_descent(X_norm, y_train, 1000, 1.0e-1, )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The scaled features get very accurate results **much, much faster!**. Notice the gradient of each parameter is tiny by the end of this fairly short run. A learning rate of 0.1 is a good start for regression with normalized features.\n", - "Let's plot our predictions versus the target values. Note, the prediction is made using the normalized feature while the plot is shown using the original feature values." - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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AvLy8uy6Tr1ej6FDh9p9St4DBw4gNTUVcrkc/fr1k3zetGnT8Mwzz9j1vZnzjB49GlOmTLH7enNzczF27Fi7r5cxe5kzZw6ioqIgCAL69euHxMREV1eJMeYhOMB2M6dOncL//u//2nWdy5cvBxHhgQcesOt6Z86cCYVCgcOHD+Onn35CXl4eBEGweN4LL7yARYsWoayszK7vzxhjjrJz5068+uqrWLJkCU6dOoWHH37Y1VVijHkQDrDdTHR0NORyuV3X+dZbb2Hq1KmiwW9XlJSUICMjA/369UNkZKTk82JjYzFmzBi89957dn1/5t2am5tdXQXmw0pKSuDn54d7770X0dHRCA4Odsr7crtnzDtwgO0C27dvx6hRoxAeHo7w8HAMGTIE3377LQDTFJEXX3wRgiBY/OXm5hrXVVBQgFGjRiE4OBixsbF4/PHHUV1dbVy+d+9eFBcX47777jOpw7JlyzBw4EDI5XL06NED6enpOHHihHH5J598gsTERMjlctx+++1Yv349BEHA9u3bUV5eDkEQUFpaihdeeAGCIGD06NGYNGmScRvM6zl+/Hi7p74w59Hr9Zg9ezZ69uwJhUKBKVOmoLGx0bj83//+N5KTkyGXy3HDDTfgn//8J3Q6nXH5xYsX8fDDDyM0NBRRUVGYO3cuzCeRHT16NCZPngy1Wo3evXsjNjYWAFBUVIT09HQEBwejW7duePTRR3H27FmT165cuRKDBg1CUFAQ+vTpg7lz55q8f9u6586di169eiEiIgLPP/889Ho9XnrpJURFRSEyMhLPP/+8yXrXrVuHoUOHIiQkBBEREUhNTcWePXvs9rky95Sbm4tJkyZBr9cbj2dirLW7lpYWzJ49G7GxsQgMDMSgQYPw4YcfmqxDEAS88847ePTRR6FUKpGdnQ0AeOWVV9C/f38EBQUhMjIS48aNM9nnGLseBQUFGD16NLp37w6lUomMjAzs2rXLuFyr1eKuu+6CXC5H37598e6771qkCep0Orz44otQqVSQy+VISUnB4sWLXbE57q2L072zTtLpdNStWzeaPn06HT16lI4ePUpr1qyhrVu3EhERAFq1ahUREdXV1dGpU6eMf+vXryd/f39avnw5EREVFhZScHAwvfPOO3T06FHatWsXjR49mu644w7S6/VERLRgwQKKjY01qcPu3btJJpPRypUrqby8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IigoSPQ5bW23I0FBQfjNb36DN954AwcOHMDly5exdu1au24D8y3V1dU4dOgQZs+ejXHjxmHQoEGQy+XGu3aDBg3CuXPncOzYMeNrLl68iKNHjxof33rrrQCA48ePWxzvExISnLtBbs7f1RXwNceOHcPSpUtxzz33IC4uDlVVVdi2bRtuueUWi+euWLEC7733HtavXw8AOH36NAAgODgYSqUSL730Eu666y5Mnz4dOTk5CA8PR0lJCT799FMsXLgQwcHByMzMhCAI2LlzJ+644w4AhpERysrKkJ6ejsjISPz888+orKw0ppdMnz4dt912G55//nnk5OSguLgY8+fPt7ptKpUKALB+/XqkpaUhODjYGOhv3rwZaWlpUCgUXf8QmdNVV1fjz3/+M55++mmUlZVBrVbjySefhFKpxJw5czBnzhwAhvQjnU6HAwcOYM+ePXj99deRmJiI3//+9/jzn/+MxYsXIyoqCq+99ppNt7yfeuopvP3228jNzcWcOXNw6dIl/OlPf0JaWpqxPT/33HO455578Nprr+H+++/H3r178eKLL2LGjBkmqSWd9cMPP6CwsBB33XUXevfujZKSEuzfvx+TJ0++7nUy72Gt3QUGBuKvf/0r1Go1IiMjcfPNN+PTTz/FunXrUFBQ0OG6P/jgA+j1eqSmpiIiIgKFhYWoq6szHqMZux7dunVDZGQkli5dioSEBFRXV2PmzJnGISjHjh2LITuxmnEAAAMaSURBVEOG4LHHHsPbb7+NwMBAPP/88/D39zde2U5MTMQTTzyBJ598Em+88QZGjhyJhoYG/Pzzzzh37hxmzZrlyk10Ly7M//ZJVVVVNH78eIqNjaXAwEDq3bs3TZkyxTjiBtp1cszJySEAFn85OTnG9W3dupXGjBlDYWFhFBISQsnJyfT0009TS0uL8Tm5ubn05JNPGh9v2bKFMjMzqWfPnhQUFESJiYn06quvGkceISL66KOPqH///hQYGEipqam0du1aq50ciQydKnv16kWCIBjrqdfrqV+/fvThhx/a7XNkzpORkUGPP/64cUSEsLAwevzxx6mhocH4nGXLltGQIUMoKCiIIiIiKDU1ld577z3j8vPnz9ODDz5IISEh1LNnT5o9ezY99thjFp0c2/dUb/Pjjz/SHXfcQXK5nJRKJT3yyCN05swZk+esWLGCkpOTKSAggGJiYmjOnDkm+4DYuseMGWOyLxERjRs3jrKzs4mI6ODBg3T33XdTVFQUBQYGUt++femZZ54x6XDJvJe1To5E1ttdc3MzzZo1i2JiYiggIIAGDhxIq1evNlkHRDq25+fn08iRIykiIoKCg4MpJSWFR2hgdrF582YaPHgwBQUFUVJSEn322WeUkJBA8+bNIyJDJ8axY8dSUFAQ9enThxYuXEi33XYbPfXUU8Z16HQ6ev3112nAgAEUEBBAPXr0oPT0dPrkk09ctFXuSSDqRIIk80ilpaXGdJKYmJjrWkd5eTlUKhW2bdvW6Q6Pn3zyCTQaDfbu3WvSUY4xxhhj7quurg59+vTByy+/jL/85S+uro5H4RQRH5CQkIDFixdDq9Ved4DdFU1NTVi+fDkH14wxxpgbW79+Pfz9/TFw4ECcPXsW//jHPyAIAh566CFXV83jcIDtI1y5c7TN8MgYY4wx93X58mW89NJLKC8vR2hoKG699VZs374dUVFRrq6ax+EUEcYYY4wxxuyIh+ljjDHGGGPMjjjAZowxxhhjzI44wGaMMcYYY8yOOMBmjDHGGGPMjjjAZowxxhhjzI44wGaMMcYYY8yO/j8XBeHNHwQdwQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#predict target using normalized features\n", - "m = X_norm.shape[0]\n", - "yp = np.zeros(m)\n", - "for i in range(m):\n", - " yp[i] = np.dot(X_norm[i], w_norm) + b_norm\n", - "\n", - " # plot predictions and targets versus original features \n", - "fig,ax=plt.subplots(1,4,figsize=(12, 3),sharey=True)\n", - "for i in range(len(ax)):\n", - " ax[i].scatter(X_train[:,i],y_train, label = 'target')\n", - " ax[i].set_xlabel(X_features[i])\n", - " ax[i].scatter(X_train[:,i],yp,color=dlc[\"dlorange\"], label = 'predict')\n", - "ax[0].set_ylabel(\"Price\"); ax[0].legend();\n", - "fig.suptitle(\"target versus prediction using z-score normalized model\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The results look good. A few points to note:\n", - "- with multiple features, we can no longer have a single plot showing results versus features.\n", - "- when generating the plot, the normalized features were used. Any predictions using the parameters learned from a normalized training set must also be normalized." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Prediction**\n", - "The point of generating our model is to use it to predict housing prices that are not in the data set. Let's predict the price of a house with 1200 sqft, 3 bedrooms, 1 floor, 40 years old. Recall, that you must normalize the data with the mean and standard deviation derived when the training data was normalized. " - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[-0.53 0.43 -0.79 0.06]\n", - " predicted price of a house with 1200 sqft, 3 bedrooms, 1 floor, 40 years old = $318709\n" - ] - } - ], - "source": [ - "# First, normalize out example.\n", - "x_house = np.array([1200, 3, 1, 40])\n", - "x_house_norm = (x_house - X_mu) / X_sigma\n", - "print(x_house_norm)\n", - "x_house_predict = np.dot(x_house_norm, w_norm) + b_norm\n", - "print(f\" predicted price of a house with 1200 sqft, 3 bedrooms, 1 floor, 40 years old = ${x_house_predict*1000:0.0f}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Cost Contours** \n", - "Another way to view feature scaling is in terms of the cost contours. When feature scales do not match, the plot of cost versus parameters in a contour plot is asymmetric. \n", - "\n", - "In the plot below, the scale of the parameters is matched. The left plot is the cost contour plot of w[0], the square feet versus w[1], the number of bedrooms before normalizing the features. The plot is so asymmetric, the curves completing the contours are not visible. In contrast, when the features are normalized, the cost contour is much more symmetric. The result is that updates to parameters during gradient descent can make equal progress for each parameter. \n" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt_equal_scale(X_train, X_norm, y_train)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Congratulations!\n", - "In this lab you:\n", - "- utilized the routines for linear regression with multiple features you developed in previous labs\n", - "- explored the impact of the learning rate $\\alpha$ on convergence \n", - "- discovered the value of feature scaling using z-score normalization in speeding convergence" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Acknowledgments\n", - "The housing data was derived from the [Ames Housing dataset](http://jse.amstat.org/v19n3/decock.pdf) compiled by Dean De Cock for use in data science education." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.6" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week2/C1_W2_Lab04_FeatEng_PolyReg_Soln.ipynb b/week2/C1_W2_Lab04_FeatEng_PolyReg_Soln.ipynb deleted file mode 100644 index c5cd8b0..0000000 --- a/week2/C1_W2_Lab04_FeatEng_PolyReg_Soln.ipynb +++ /dev/null @@ -1,505 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Feature Engineering and Polynomial Regression\n", - "\n", - "![](./images/C1_W2_Lab07_FeatureEngLecture.PNG)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab you will:\n", - "- explore feature engineering and polynomial regression which allows you to use the machinery of linear regression to fit very complicated, even very non-linear functions.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Tools\n", - "You will utilize the function developed in previous labs as well as matplotlib and NumPy. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from lab_utils_multi import zscore_normalize_features, run_gradient_descent_feng\n", - "np.set_printoptions(precision=2) # reduced display precision on numpy arrays" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Feature Engineering and Polynomial Regression Overview\n", - "\n", - "Out of the box, linear regression provides a means of building models of the form:\n", - "$$f_{\\mathbf{w},b} = w_0x_0 + w_1x_1+ ... + w_{n-1}x_{n-1} + b \\tag{1}$$ \n", - "What if your features/data are non-linear or are combinations of features? For example, Housing prices do not tend to be linear with living area but penalize very small or very large houses resulting in the curves shown in the graphic above. How can we use the machinery of linear regression to fit this curve? Recall, the 'machinery' we have is the ability to modify the parameters $\\mathbf{w}$, $\\mathbf{b}$ in (1) to 'fit' the equation to the training data. However, no amount of adjusting of $\\mathbf{w}$,$\\mathbf{b}$ in (1) will achieve a fit to a non-linear curve.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Polynomial Features\n", - "\n", - "Above we were considering a scenario where the data was non-linear. Let's try using what we know so far to fit a non-linear curve. We'll start with a simple quadratic: $y = 1+x^2$\n", - "\n", - "You're familiar with all the routines we're using. They are available in the lab_utils.py file for review. We'll use [`np.c_[..]`](https://numpy.org/doc/stable/reference/generated/numpy.c_.html) which is a NumPy routine to concatenate along the column boundary." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration 0, Cost: 1.65756e+03\n", - "Iteration 100, Cost: 6.94549e+02\n", - "Iteration 200, Cost: 5.88475e+02\n", - "Iteration 300, Cost: 5.26414e+02\n", - "Iteration 400, Cost: 4.90103e+02\n", - "Iteration 500, Cost: 4.68858e+02\n", - "Iteration 600, Cost: 4.56428e+02\n", - "Iteration 700, Cost: 4.49155e+02\n", - "Iteration 800, Cost: 4.44900e+02\n", - "Iteration 900, Cost: 4.42411e+02\n", - "w,b found by gradient descent: w: [18.7], b: -52.0834\n" - ] - }, - { - "data": { - "image/png": "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v1jHLwy9fR87doyLFy+aHpnllpWVle8+i3Le2Qr6O12/fp2UlBQaN26c57VBQUH5tudu1atXx9XV1eyxPD09OXbsGADPP/88zz//vO5+rl27BhTvXIv697TVtRF/kyBRgTg6OupuV7kS0vl9syvuoCyj0YibmxvffPNNgXWHDh3K1q1beemll2jTpg3e3t44ODgwe/bsHHc9+cmvneY+2HN/YGa3u0GDBixatKjQr8n9+sKed7aC/k7Z/9U7x9x/y+Ic5+79GI1GQEscd+nSRbduSEiIqW5Rz7Wg65ebra6N+JsECZFDvXr1OHr0aJ7t2duyew8VVaNGjdi8eTPNmzfH39/fbL1bt26xceNGIiIi8ozUnj59ep765oJB9jfM3MnQtLQ0Ll++XKR2//LLL3Tv3j3Ho7qivL4w510U2T17Tpw4kafs5MmTFjlGtuxEs6urKw8++GCBdS19rkVly2tTUUhOQuTQt29fTp06xddff23appTirbfeMpUXx9ChQwGYMWOGbvn169cB7ZuiwWAwfYPN9vPPP/P777/neZ2Hh4dur5h69erh5OTE//3f/+XY/u9//7vAR0S5252YmMi8efPylCmluHHjRoGvh4LPuygcHR15+OGH2bJlS46upampqSxevLjI+8tPmzZtaNKkCe+9957uud7dfmuca1HZ8tpUFHInIXKYMmUKa9asYejQoaYusN9//z2bNm3i2WefpXnz5sXab5cuXXj55Zd5++23OXLkCH379qVKlSrExsayadMmWrRowdKlS/H09OSBBx5g3rx5pKamEhQUxKFDh1iyZAkhISGmhGq2du3asXLlSqKioggKCsLDw4O+ffvi5eVFaGgo//nPf1BKcc8997Bz5062b9+Or69vods9bNgw1q9fz7Rp09ixY4epa+XZs2dZv349w4YNy3duqsKed1HNmjWLzZs30717d8aPH2/q5pndBdhSczU5ODiwZMkSHnroIZo1a8ZTTz1FgwYNuHHjBvv37+ebb74xjauw1rkWla2uTYVhp15Vwoayu8Bu2bIlTxmgIiIicmy7ePGiGjFihPL19VWVK1dWwcHBasGCBXm6KpqDThfYbJ9//rnq0qWL8vDwUG5ubqpRo0Zq5MiRaufOnaY6V69eVWFhYcrPz0+5ubmpTp06qZ9++kmFh4erwMDAPG3t06eP8vT0VECO8j///FOFhoYqLy8v5eHhoR577DF17tw5s11gzXVnzcrKUgsXLlRt2rRRrq6uysPDQzVt2lQ9++yzObpZ5qcw553dzfPkyZM5XpvdviVLluTYvnPnTtW5c2fl7OysAgIC1NSpU9W6desUoHbt2pVnv3fr1q2bqlWrVp52Zr9Xzp49m2P70aNHVWhoqKpRo4aqVKmSqlmzpnrwwQfVBx98YNFzVSr/LrCWvjaiYDJ3kxDlyDvvvMPLL79MXFwcNWvWtHdzShW5NsUjQUKIMio1NTVH76CUlBRatWqFg4ODqetqRSXXxnIkJyFEGdW4cWOeeOIJmjZtyvXr11mxYgWnTp1izZo19m6a3cm1sRy5kxCijPrXv/7F1q1bTRMNtmjRgilTptCvXz87t8z+5NpYjgQJIYQQZpWrx023b9+2dxOEEKLM8vb2zrNNBtMJIYQwS4KEEEIIs8rV46a76d02CSGEyKmgx/RyJyGEEMIsCRJCCCHMkiAhhBDCrHKbk8hNKUV8fHyeKaiFcHBwoFq1ajI7qCiboqKgSRMYMgRWr4bjxyEiwmK7rzBBIj4+Hnd3d1xcXOzdFFHKpKWlER8fj4+Pj72bIkTRREZqQcLBQQsQGzaA0QhKaWUWUGEeNxmNRgkQQpeLi4vcYYqyJypK+wEtMHzzjfbf3GUlVGGChBBClCtNmmh3EHocHLRyC5AgIYQQZdGQIWBuOeG+fbVyC5AgUc6NHDmS1157DYDt27fTxELfLgpiMBg4deqUxfdbr149fvrpJ4vvV4gyJzsHoWfDBq3cAiRIlAL16tXD1dUVDw8P/P39GTVqFElJSRY/TteuXTl+/HiB9ZYuXcp9991n8eMDjB07lhEjRuTZfvDgQZydnYmPj7fKcYUod44f/zsHkZvRqJVbgASJUmLDhg0kJSWxb98+9uzZw+uvv56nTmZmph1aZlkjR45k3bp1JCcn59i+fPly/vGPf1CtWjU7tUyIMiYi4u+urg4O0K/f3zmKu8tKqMIGCcOH1v0prlq1atG7d28OHz6stdNg4IMPPqBx48Y0btwYgO+++45WrVpRpUoVOnfuzMGDB02v379/P23atMHT05PBgweTlpZmKvv555+pXbu26fcLFy4wcOBA/Pz88PHxYfz48Rw9epRx48axc+dOPDw8qFKlCgDp6elMnDiRunXr4u/vz7hx40hNTTXta/78+QQEBFCzZk0+++wzs+fXqVMnatWqxdq1a03bsrKy+PzzzwkPD+f06dP07NkTHx8ffH19CQ0N5datW7r7uvtRmt75Xbp0iccffxw/Pz/q16/Pv//97/wvvhBlTWSk9rNqFaxfr/03e5uFVNggUVpduHCBjRs30rp1a9O29evX8/vvv3PkyBH27dvH6NGjWbRoETdv3mTs2LE89thjpKenc+fOHfr378/w4cOJj49n0KBBOT6M75aVlcU//vEPAgMDOXfuHHFxcQwZMoSmTZvy0Ucf0alTJ5KSkkwf0JMnT+bEiRMcOHCAU6dOERcXx8yZMwH44YcfeOutt9iyZQsnT54sMGcwYsQIli9fbvr9p59+IiMjg969e6OUYurUqVy6dImjR49y4cIFIovxhjcajfTt25eWLVsSFxfH1q1beffdd9m8eXOR9yVEqRYR8XeSesgQiw6kAwkSpUb//v2pUqUK9913H926dePVV181lU2dOpVq1arh6urK4sWLGTt2LB06dMDR0ZHw8HCcnZ3ZtWsXu3btIiMjgxdffJFKlSrxxBNP0K5dO93j7d69m0uXLjF//nzTIENzeQilFIsXL+add96hWrVqeHp68uqrr7L6r8TYmjVrGDVqFPfccw/u7u4FfqgPHz6cbdu2mZaWXL58OcOGDaNSpUo0atSIXr164ezsjJ+fHy+//DLbtm0r8vXcs2cP169fZ8aMGVSuXJkGDRowZswYU5uFEIVTYUZcl3br16/nwQcf1C2rU6eO6f9jY2NZtmwZ77//vmnbnTt3uHTpEgaDgVq1auWYXiIwMFB3nxcuXCAwMBAnp4LfAtevXyclJYV7773XtE0pRVZWFqA91rm7zNwxs9WtW5f777+flStXMn78eNavX8/27dsBuHbtGs8//zzbt28nMTERo9FI1apVC2xjbrGxsVy6dMn0uAy0u6euXbsWeV9CVGQVNkioZ+zdgsK7+0O/Tp06TJs2jWnTpuWpt23bNuLi4lBKmV5z/vx5GjZsmKdunTp1OH/+PJmZmXkCRe45jHx9fXF1dSUmJoZatWrl2VdAQAAXLlww/X7+/PkCzyk8PJw5c+YQEBBA/fr1adOmDaDdNRkMBg4ePIiPjw/r169n/Pjxuvtwd3cnJSXF9PuVK1dynF/9+vU5efJkgW0RQpgnj5vKmDFjxvDRRx/x+++/o5QiOTmZ77//nsTERDp16oSTkxP//ve/yczMZN26dezevVt3P+3btycgIIApU6aQnJxMWloav/32GwD+/v5cvHiRO3fuANoEeGPGjOGll17i2rVrAMTFxZme7z/55JMsXbqUI0eOkJKSQlQhpgN4/PHHuXDhAhEREYSHh5u2JyYmmhLmcXFxzJ8/3+w+WrVqxcaNG4mPj+fKlSu8++67Oc7Py8uLuXPnkpqaSlZWFocPH2bPnj0Ftk0I8TcJEmVM27ZtWbx4MePHj6dq1ao0atSIpUuXAlC5cmXWrVvH0qVLqVq1Kl988QUDBw7U3Y+joyMbNmzg1KlT1K1bl9q1a/PFF18A0LNnT0JCQqhRowa+vr4AzJ07l0aNGtGxY0e8vLx48MEHTWMuevfuzYsvvkjPnj1p1KgRPXv2LPA83N3dTYEiNDTUtD0iIoJ9+/bh7e3No48+arb9oOU2WrZsSb169XjooYcYPHhwnvM7cOAA9evXx9fXl6effrrAVbiEEDkZlFLK3o2wlLs/AHIvX3r9+nX8/Pxs3SRRRsj7Q1RU+X1ugtxJCCGEyIcECSGEsKeoqL/nWVq92mJTfFtKhe3dJIQQdmeDRYNKSoKEEELYg96iQXeXGQwWHz1dHPK4SQgh7MFGiwaVlAQJIYSwBxstGlRSEiSEEMIebLRoUElJkBBCCHuw0aJBJSVBQphERkYSFhZm8f1ac6U7IcosGy0aVFISJEqR7t27U7VqVdLT0wtV31YfvnFxcTg5OXH69Ok8ZQMGDGDixIlWb4MQ5ZINFg0qKQkSpcS5c+fYvn07BoOBb7/91t7NyaFWrVo88MADrFixIsf2+Ph4Nm7cmGOCPiFEEVl50aCSkiBREBuNhly+fDkdO3Zk5MiRLFu2LEdZUZYZ7d69O5988onptbnvNl544QXq1KmDl5cX9957r2kdh4KEh4fnCRKrV68mJCSE5s2bM2fOHBo2bIinpyfNmjXj66+/1t3PuXPnMBgMOdbrzt3mzz77jKZNm1K1alUefvhhYmNjC9VGIYTlSZDIT/ZtX2go9O+v/ddKt4LLly8nNDSU0NBQNm/ezNWrV4GiLzNakHbt2nHgwAHi4+MZNmwYgwYNyrEOtjkDBgzgxo0b/Prrr6ZtK1asYMSIEQA0bNiQ7du3c/v2bSIiIggLC+Py5ctFvg7r16/nzTffZN26dVy/fp2uXbsydOjQIu9HCGEZEiTM0RsNmd0T4e4yC/j111+JjY3lySef5N5776Vhw4Z8/vnnQNGWGS2MsLAwfHx8cHJyYsKECaSnp5um/M6Pq6srgwYNMq1NffLkSfbu3cuwYcMAGDRoEDVr1sTBwYHBgwfTuHFjs2tZ5GfRokVMnTqVpk2b4uTkxKuvvsqBAwfkbkIIO7FpkAgLCyMgIAAvLy+CgoJyPGLYunUrwcHBuLm50aNHjxwfCkopJk+ejI+PDz4+PkyaNAmrz3Buw9GQy5Yt46GHHjKt3TBs2DDTI6eiLDNaGAsWLKBp06Z4e3tTpUoVbt++zY0bNwr12vDwcNasWUNaWhorVqzgkUceoXr16oB2J9SqVSuqVKlClSpVOHz4cKH3e7fY2FheeOEF036qVauGUoq4uLgi70uI8u7PdJi4Az4+Yr1j2HTupqlTp/Lpp5/i7OzMsWPH6N69O61btyYwMJCBAwfyySef0LdvX6ZPn87gwYPZtWsXAB9//DHr168nOjoag8FAr169aNCgAePGjbNeY4cM0XIQd8+nks2CoyFTU1NZs2YNWVlZ1KhRA4D09HRu3bpFdHR0kZYZhfyX9Ny+fTtz585l69athISE4ODgQNWqVQsdcLt27YqPjw/ffPMNK1euZN68eYD2wT5mzBi2bt1Kp06dcHR0pFWrVrr7dXd3ByAlJQUvL688bcxenvXuhYiEEDndyYIPY2DmHxCfDr4uMLgheDtb/lg2vZMICQnB2Vk7C4PBgMFg4PTp06xbt46QkBAGDRqEi4sLkZGRREdHc+zYMUD7pj1hwgRq165NrVq1mDBhgmk1Nqux0WjI9evX4+joyJEjRzhw4AAHDhzg6NGjdO3aleXLlxdpmVHQlvRct24dKSkpnDp1ik8//dRUlpiYiJOTE35+fmRmZjJz5kwSEhKK1N4RI0YwefJkbt26Rd+/phRITk7GYDCYFu1ZsmQJhw8f1n29n58ftWrVYuXKlWRlZfHZZ5/l6Fo7btw4Zs+eTUxMDKAtiPLll18WqY1ClFdKwbozEPIFvPibFiAAbqTB7P3WOabNcxL/+te/cHNzIzg4mICAAPr06UNMTAwtW7Y01XF3d6dhw4amD4rc5S1btjSVWY2NRkMuW7aMUaNGUbduXWrUqGH6GT9+PKtWrUIpVaRlRl966SUqV66Mv78/4eHhOb6RP/zww/Tu3ZugoCACAwNxcXGhTp06RWrviBEjOH/+PIMHDzYF/GbNmjFhwgQ6deqEv78/hw4dokuXLmb3sXjxYubPn4+Pjw8xMTF07tzZVDZgwAAmT57MkCFD8PLy4p577mHTpk1FaqMQ5dHuq3D/enh8M5zSWYV37RnIyLL8ce2yfGlWVhY7d+7k559/ZvLkyYwbNw4/Pz/mzJljqtOlSxfGjBnDyJEjcXR0JCYmhuDgYEBLmgYFBWE0GnM8crH48qV3z/Xet+/fc71HRJSqwS6i5GT5UlFsUVFajjL7EfXx4xYd63AuAV79Hf57Sr/coxJMbQ0vtQTXYiQQClq+1C7rSTg6OnLfffexcuVKPvzwQzw8PPI89khISMDT0xMgT3lCQgIeHh66z+QtKjJSm9Pdim8AIUQZZsVFg26nw5v74L1DkK5zh+BggH82hch24O9WokPly66LDmVmZnL69GlCQkJyDCBLTk42bQctlxEdHU379u0BiI6ONpVZ3d0BoZRM3SuEKAWstGhQRhYsOgJRf2i5Bj196sL8TtCsWjHaXUQ2y0lcu3aN1atXk5SURFZWFps3b+a///0vPXv2ZMCAARw+fJi1a9eSlpbGzJkzadGihenx0ogRI3j77beJi4vj0qVLLFiwgJEjR9qq6UIIkZeFu8krBd+eheZr4Llf9QNESx/Y0he+f9Q2AQJseCdhMBj48MMPGTduHEajkcDAQN5991369esHwNq1axk/fjxhYWF06NCB1Xf1Hho7dixnzpyhefPmADz99NOMHTvWVk0XQoi8LNhNfu91bbzDz5f0y2u6wxvtYXgQONq4u5FdEtfWYvHEtagw5P0himz1am2qHr1ekA4O2oyuBQSKC0kw7XdYcUK/3N0JJrWGCS3BvZIF2qyjVCau7cHBwYG0tDRcXFzs3RRRyqSlpeFg7rGBEOaUoJt84h2Ysx/ejoY0M0np0cEwsx0EuFuovcVUYYJEtWrViI+PJzEx0d5NEaWMg4MD1arZ6AGvKD8iIrREgrlu8jpJ60wjfHIUIvbAtVT93T5cR0tKN/excvsLqcIECYPBgI9PKbnqQojyoZDd5JWCjefhlZ1w9E/9Xd1TTQsOj9S1frOLosLkJIQQwh4O3NCS0lvNzFFZww1mtYNRwbZPSoPkJIQQwi7ikuC13bDsOOh9E3d1gldawiuttVHTpZUECSGEsKCkDJi/H96KhpTMvOUGILwJvN4eannYvHlFJkFCCCEsIMsIS47B9D1wJUW/Ts9asKAztPK1bdtKQoKEEEKU0ObzMHEnHI7XL29aVUtK96mr5bnLEgkSQghRTIduaj2WNl/QL/dzgZnt4emm4FRGh+JIkBBCiCK6kgLTd8Nnx8Cok5V2cYSXWsCUNuBV2fbtsyQJEkKIiq0I60GkZMCCaJi7H5J1ktIAYUHaPEt1Pa3YZhuSICGEqLgKuR5EllGbX2nabriUrL+r+wO0pHTb6jZpuc1IkBBCVEyFXA9i60UtKX3ghv5ugrxhXid4rF7ZS0oXhgQJIUTFlL0ehJlZXI82ascrG+H7WP2X+7hAZFsY2wwqOVq3qfZURvPtQghRQkOGaJPy5XLNw49/TfqO5ol9dANEZQd4pRWcGgbjm5fvAAFyJyGEqKiycxB/Sa3kwrs9X2T2Q1NJdPXSnUtjSCOY3QHqedmwnXYmQUIIUTH9tR6E0WDg83bDePWxN7lQTX8K1i41tKR0B38bt7EUkCAhhKiYIiL4xakuExLv4Y/AdrpVGnrB3I4wsEH5TEoXhgQJIUSFc+IWTN4F66uNAp31pqo6w4x74V/3QOVynnMoiAQJIUSFcSMVZu6FD2O0VeJyq+QAzzWHaW2gmqx0DEiQEEJUAGmZ8P4heGMf3L6jX+eJBjCnIzSU9cpykCAhhCi3lIIvTsHU3+GcmeXtO/prSenONWzbtrJCgoQQolz67TJM2AG/X9Mvr++p3TkMalhxk9KFIUFCCFGunL6tJaXXntEv964M0+/VBsI5V/CkdGFIkBBClAvxaTBrL3xwGDJ0ktJODvCvEJjRVptSQxSOBAkhRJmWHvU6/wnswyxjG/5M168zoL423qFxFdu2rTyQICGEKJOUgrVz1jDZMJQzqQ1167T105LS99e0cePKEQkSQogyZ9cVmPDFeXZUeVK3vO7NWGY7/cGQcY/jIEnpEpFZYIUQZcbZBBiyBTp9DTsq551nySv1NnO+nsyx15sxrF6GBAgLkDsJIUSpdysd3tgL/z4Ed3SS0o5ZmYz9dRER30dRPek69OunTQUuSkyChBCi1MrI0qbQiPoD4s0kpfse/JZ5X08i+Orxvzdu2KBNBS6BosQkSAghSh2l4JtzMGknnLytX6d1xmUWfDCMHid+zltoNGpTgYsSk5yEEKJU+eMadP8GBvygHyBqucOynvDHcwH0GNpN2+jgoD1icvjrIy0iQvsRJSZ3EkKIUiE2Eab9DqtO6pd7VIIpreGlFuBW6a+NkZHanBpNmmiPllav1u4gJEBYjEEppbNIX9l0+/bfXzu8vWUqRyHKgoQ7MHsfvHMQ0rPyljsYYExTiGwHNdxs377yrqDPTbmTEELYRaYRPj4CkXvgepp+nd51YX4nCNFZGEjYhgQJIYRNKQXfx8IrO+HYLf06LXzgrU7Qq45t2ybyslniOj09naeeeorAwEA8PT1p3bo1mzZtMj+2G8wAAB/6SURBVJVv3bqV4OBg3Nzc6NGjB7GxsaYypRSTJ0/Gx8cHHx8fJk2aRDl6SiZEhbH/OjzwLfTdpB8gAtzgsx6w7wkJEKWFzYJEZmYmderUYdu2bdy+fZtZs2bx5JNPcu7cOW7cuMHAgQOZNWsW8fHxtG3blsGDB5te+/HHH7N+/Xqio6M5ePAg3333HYsWLbJV04UQJXQxCUb+H9z7FfzvUt5yNyeIbAsnh8GoYHCUfpelhl0T1y1atCAiIoKbN2+ydOlSduzYAUBycjK+vr7s37+f4OBgOnfuzMiRI/nnP/8JwKeffsrixYvZtWtXjv1J4lqI0iXxDsw7AAuiITUzb7kBGJ26j5k1zlNzWH/pnWQHpTZxffXqVU6cOEFISAgffvghLVu2NJW5u7vTsGFDYmJiCA4OJiYmJkd5y5YtiYmJsUezhRCFkGmEz47BjN1wNVW/Tq/a8Fb0h7SY/i9tfMOavtpIaaNRS1xERtq0zUKfXYJERkYGoaGhhIeHExwcTFJSEn5+fjnqeHt7k5ioLUqblJSUI8J5e3uTlJSEUgqDrDsoRKnyw3mYuANi/tQvD6kKb3WGh5dEYcgOBEYjfPPN35WiorTxD3JHYXc2DxJGo5Hhw4dTuXJlFi5cCICHhwcJCQk56iUkJODp6albnpCQgIeHhwQIIUqRgze1Hks/XtAv93eFWe21nIOTA9oAOAcHLUDk5uCglQu7s2l6SCnFU089xdWrV1m7di2VKmnDJkNCQoiOjjbVS05O5vTp04SEhOiWR0dHm8qEEPZ1ORme/h+0WqMfIFyd4LV7taT0mGZ/BQjQRkj37au/0759ZXK+UsKmQeKZZ57h6NGjbNiwAVdXV9P2AQMGcPjwYdauXUtaWhozZ86kRYsWBAcHAzBixAjefvtt4uLiuHTpEgsWLGDkyJG2bLoQIpfkDIjaA40+h0+PQe4eMAYgvAmcGKrdQXhWzlVh9WotB6EnexZXYXc2e9wUGxvLokWLcHZ2pkaNGqbtixYtIjQ0lLVr1zJ+/HjCwsLo0KEDq+96g4wdO5YzZ87QvHlzAJ5++mnGjh1rq6YLIe6SZYRlx+G13XA5Rb9Oz1raYLjWfvrlgNaLSe9RE8gsrqWIzN0khCi0LRdg4k4t/6AnuIo2jcajgVreuUCRkVqS2sFBe8SU3bspIkJ6N9lIqe0CK4QoO2LitaT0pvP65X4uENUOnm4KlRyLsGOZxbXUkzsJIYRZV1Ngxh745CgYdT4pnB3h5RYwpQ145c45iDJB7iSEEEWWkqFN3T1nPyRl6NcJbQxvdoC6nrZtm7AtCRJCCBOjgpUntMV/Libr17k/ABZ0hrbVbds2YR8SJIQQAPwvDibsgP039Msbe8O8TtCvXq6kdFSU5BTKMQkSQlRwx/6ESTthQ6x+uY8LRLSFcc10ktJ3907KHvcgcy+VKxIkhKigrqdqq8ItOgJZOknpyg7wQgt4tQ1UcdbZQVSU9gMy91I5JkFCiAomLRPePQhv7oNEM0npIY20pHR9r3x2JHMvVQjSBVaICsKoYPVJmPo7nE/Sr9O5BrzdGTr4F3Kn/fvnvIPI1q8frF9f7LYK2ynoc1PWfxKiAth+CTqug9Ct+gGioRd8+RD82r8IAULmXqoQ5HGTEOXYiVswZRd8fVa/vKozTL8Xnr0HKhdlpDTI3EsVhAQJIcqhm2kw8w/4T4y2SlxulRxg/D3aFN7VXIp5kIgIrReTubmXJGldLkiQEKIcSc+C9w/B63vh9h39Ok80gDkdoaEl0nYy91K5V+jEdcOGDRkzZgyjRo3C37+wDy1tSxLXoqJSCr48rT1aOpuoX6dDdW2kdJcA27ZNlG4WS1yPGDGCRYsWUbduXQYOHMjmzZst00IhRInsuAKdv4bBW/QDRD1PWN0Ldg6UACGKrtBBIiIigjNnzvDtt9/i6OjIY489Rr169Xj99de5dOmSNdsohNBx+jY8+SN0+Rp2Xc1b7l1ZW9vh6BAY3KiQ6zsIkUuxx0lcv36djz/+mNdff53MzEz69OnDxIkT6dq1q6XbWGjyuElUBH+mazmH9w9Bhk5S2skBngmBGfeCr2ve8jxk7qUKzSpThR87doxPPvmEZcuW4eHhwfDhw4mLi+PBBx9k8uTJzJw5s/gtFkLoupMF/zkMM/dqgUJP//owtyMEVSnkTmXuJVGAQt9JpKWl8eWXX7J48WJ+++03unTpwtixY3niiSdwdtYmdvn2228ZPnx4jshkS3InIcojpWDdGZi8C04n6Ndp6wdvdYZuNYuw46io/ANBZKTcUVQAFruTCAgIwMHBgbCwMD766COaNWuWp879999PtWrVitlUIURuv1/Vpu/+7Yp+eR0PmN0BhjYGh6LmHGTuJVEIhb6TWLp0KUOGDMHFpbgjb6xP7iREeXEuQZtjafUp/XLPStrsrC+0ANeSjHaSuZcqvII+N2WCPyFKkVvp2uys7x2EOzpf8B0NMLaZtr5DdbcSHmz1aggNNX8nsWqVlswW5ZqscS1EGZCRBR8dgag/tCk19PQNhLmdoGlVCx1U5l4ShSBBQgg7Ugq+PaetDHfCTH+P1r7wVifoWdvCB5e5l0QhSJAQwk7+uAYTd8I2M2NRa7nDG+1heJNiJKULS+ZeEgWQnIQQNnYhCV79HVae0C93d4IpbeDlFuBWybZtExWP5CSEKCUS7sCcffDOQUjLylvuYICnm0JUO6hR0qS0EBYiQUIIK8s0wuIjELEHrptJSveuC/M6wj0+xTiATKshrEiChBBWohRsPA+v7ISjf+rXaV5Nm767V51iHkSm1RBWJkFCCCs4cEMbKf1/cfrlAW7wensIbwKOxV1pPipK+wEtMNw9KC4qSktIyx2FKCEJEkJYUFwSvLYblh0HvR4hbk7wSiuY2Ao8SpqUlmk1hA1I7yYhLCApA+bth7eiITUzb7kBGBUMs9pDTXcLHlim1RAlJL2bhLCiLCN8dgym74arqfp1etXWZmhtUZykdH6ycxB6NmzQymVaDVFCEiSEKKYf/kpKH47XL29WVRsp/UhdK60KJ9NqCBuQICFEER26qY2U/vGCfnl1V+2x0uhgbZU4q5FpNYQNSJAQopAuJ2uPlZYcB6NOJs/FESa0hMmtwbOyjRol02oIK5PEtRAFSM6ABdFaYjrZTFJ6eBC80QFqe9i8eUKUiCSuhSimLCMsP6F1ab2UrF+nR00tKd3GrwQHkhHTohSz5hPTPBYuXEjbtm1xdnZm5MiROcq2bt1KcHAwbm5u9OjRg9jYWFOZUorJkyfj4+ODj48PkyZNohzdAIlS6KeLcO9XMPp/+gGiSRX4tjdsfayEASIyUvsJDdW6s4aG/r1NiFLApkGiZs2avPbaa4wePTrH9hs3bjBw4EBmzZpFfHw8bdu2ZfDgwabyjz/+mPXr1xMdHc3Bgwf57rvvWLRokS2bLiqImHh49HvotQGib+Yt93WBD7rCoSehb70S9lrSGzGd3Vvp7jIh7MimQWLgwIH0798fH5+cHcbXrVtHSEgIgwYNwsXFhcjISKKjozl27BgAy5YtY8KECdSuXZtatWoxYcIEli5dasumi3LuagqM2wYt1mjzLeXm7AhTWsOpYfCve6CSowUOmj1iWo+MmBalhE2DhDkxMTG0bNnS9Lu7uzsNGzYkJiZGt7xly5amMiFKIiUD3twLjT6HRUf0ey2FNobjQ2F2R/B2tuDBhwzRuq3q6dtXBsKJUqFUJK6TkpLw88v5YNfb25vExERT+d1Zd29vb5KSklBKYbDKKCVR3hkVrDqhLf5z0UxSumuANkNru+pWaoSMmBZlQKkIEh4eHiQkJOTYlpCQgKenp255QkICHh4eEiBEsfwcp83Quu+Gfnljb5jXCfrVs9JI6WwyYlqUAaXicVNISAjR0dGm35OTkzl9+jQhISG65dHR0aYyIQrr2J/w2Ebo8a1+gKjmDO91gcODoX99KwcIyDkq2sFBm5QvO0chI6ZFKWHTO4nMzEwyMzPJysoiKyuLtLQ0nJycGDBgAK+88gpr167l0UcfZebMmbRo0YLg4GAARowYwdtvv02fPn0wGAwsWLCA5557zpZNF2XY9VSI+gM+ioEsnZxDZQd4vjlMuxeqWDLnUBgyYlqUcjYdcR0ZGUlUrm59ERERREZG8tNPPzF+/HhiY2Pp0KEDS5cupV69esDf4yQ++eQTAJ5++mnmzp2b53GTjLgWd0vLhPcOwZv7tPWl9QxuBLM7QH2vEhxIBsOJMqygz02ZlkOUO0YFq0/C1N/hfJJ+nc41YEEn6FijhAe7e/nQ3BPsyYA4UQbItByiQtl+CSbshD3X9MsbeMHcjvB4AwvkHGT5UFEBSJAQ5cLJWzB5F3x9Vr+8SmWY3haevUcbGGcRsnyoqADkcZMo026mwaw/4IMYyNT5rK7koAWG6fdCNRcrNECWDxVlnDxuEuVSehYsPASv74VbZpLSjzeAOR2hkbW+L8hgOFEBSJAQZYpS8OVpmLILzibq12lfXRspfV+AlRsjg+FEBSBBQpQZO6/Ayztg11X98kBPrTvr4EbgYIvB+LJ8qKgAJEiIUu9Mgnbn8OVp/XKvyjCtjTYgzsXW72gZDCfKOUlci1Lrz3Qt5/D+IcjQearjaIBnQiCiLfi6luBAMhhOVGCSuBZlzp0s+DAGZv4B8en6dR6rB/M6QpOqJTzY3YPhshPRRqP2GEkGwwkhQUKUHkpp4xwm74JTt/XrtPHVktLda1nggDIYTogCSZAQpcLuq9r03b9e0S+v7a4t+jOssQWT0jIYTogCSU5C2NW5BG3hn/+e0i/3qARTW8NLLcHVGl9pZDCcqOAkJyFKpdvp2uys7x3SBsbl5mCAMU0hqh34u1mpETIYTogCSZAQNpWRpa0lHfUH3EjTr9OnLszvBM2qWbkxMhhOiAKVipXpRPmnFHx7Fpqvged+1Q8QLXxgS1/4/tEiBoioKO1bP2j/zbVmiVmyMpwQBZI7CWF1e6/DxB3w8yX98gA3eKMDjAgCx6J+bSlpF1YZDCdEviRxLazmQpKWlF55Qr/c3QkmtYYJLcG9UjEOEBWVfyCIjJQPeyEKIIlrYXMJd2Dufng7GtLMJKVHB8PMdhDgXoIDSRdWIaxO7iSExWQa4ZOjELEHrqXq13mojpaUbuFjoYNKF1YhSkTuJITVKQUbz8MrO+Hon/p17qkGb3WCh+ta8MDShVUIq5MgIUrkwA0tKb01Tr+8hhvMagcjg8HJXFK6uBPsSRdWIaxOgoQolrgkeG03LDsOes8rXZ1gYkstMe2RX1K6JL2TZD0HIaxOgoQokqQMmL8f3oqGlMy85QYgvAm83h5qeRSwM0tMsCddWIWwKgkSolCyjLDkGEzfA1dS9Ov0rKXN0NrKt5A7tVTvpLsDguQghLAo6d0kCrT5PEzcCYfj9cubVtV6LPWpq32pLxLpnSSEXRX0uSnTcgizDt2ER76DR77XDxB+LvDh/XDw+Ewe3blaCxBFmRajML2ThBB2JY+bRB6Xk2HGHvjsGBh17jNdHOGlFjClDXi9GVn8xLP0ThKi1JMgIUySM2BBNMzbD8k6SWmAsCB4oz3U9aTkiWfpnSREqSdBQpBlhBUnYNpuuJSsX+f+AC0p3bb6XRstkXiW3klClGqSuK7gtl6ECeuuEF2phm55kDfM6wSP1TOTlJbEsxBlmiSuha4j8fCPjfDgBnQDhI8xhffvg8ODoV99MwFCEs9ClHsSJCqYqynwzDZosQa+j81bXjkjnUk/zuXUKzUZvy6KSo757EwSz0KUe5KTqCBSM+GdaJizHxIz9OsM2fNfZn8zlXrxsYXLKUjiWYhyT4JEeZDPBHlGBZ+f1Bb/uZCk//Iup35lwboJdDi3+++NffsWbvSyJJ6FKNckcV3W3T1BXq5v8tv+GcmEHdryoXoaOiQyb9EoBuxfS56Ug4MDrFol01wIUc5J4rosiIr6O8lblBHLeuMUjEaOVw+i35XWdP9GP0BUdYZ3OsORK+8yUC9AZO9PcgpCVHjyuMneSjJVdq5xCjfcfYh6NIKPuo4j0zHv/NyVHOC55vDavVqgoOV0UFmSUxBCmCWPm6D4i96U9PVRUfkHgsjIgvfTvz9p3//A+92f441HpnHbrYputScawJyO0FDvspT0/IUQZVa5Wb40Pj6ep556ih9//BFfX19mz57NsGHDSr7jknyTL+nrSzhiWf13NV9ccmNKxDFiferp1unor42U7qw/Vk4jU20LIcwoM3cSQ4cOxWg08umnn3LgwAEeffRRduzYQUhIiKlOke8kSvpN3kJ3AsUZsfzrZZjw5UV2V6qtW17/xhnmVNrLoMmDij59txCiwigXievk5GTWrl3LrFmz8PDw4L777uOxxx5jxYoVJdtx9jd5PYUZJ1DS1xdjxPKp2/D4D9B1PboBwjvlFm+tncDRrFU8OUUChBCiZMpEkDhx4gSOjo4EBQWZtrVs2ZKYmJiS7XjIEC1Zq6cw4wRK+voijFiOT4OXfoNmq2Hd2bzVnTDyfHM4HfB/TOjqhXPk9PyPLYQQhVAmgkRSUlKe2yBvb28SExNLtuOSzj1U0tff3YPIwUF7xJR9Z/JXWXoWvB0NDVfBuwchQyemDKgPR4Y68N594DNsoCSdhRAWUyYS1x4eHiQkJOTYlpCQgKenZ8l2XNK5hywxd5GZEctqRgRfnYYpu+BMgv5L2/ppSen7axZ8GCGEKI4yESSCgoLIzMzk5MmTNG7cGIDo6OgcSetiKencQ5aauyhX76JdV2DCethxRb96XQ+Y3QGGNAYHyTkIIayozPRuGjJkCAaDgU8++YQDBw7Qp0+fkvduymavcRK5nE3Q7hzWnNYv96oMr7aBF5qDS5kI70KI0q6gz80yEyTi4+MZPXo0W7ZswcfHhzlz5uQZJ1FW5266lQ5v7IV/H4I7Ok+vHA0wLgQi2oKfq+3bJ4Qov8pNkCiMshYk7mTBRzEQ9QfEp+vX6RuorQwXXNW2bRNCVAzlZsR1eaIUrD8Lk3fBydv6dVr7aknpHrVs2zYhhLibBAkb23MNJuyA7Zf1y2u5w5sdICxIktJCCPuTIGEjsYnawj+fn9Qv96gEk1vDyy3ALe8ErkIIYRcSJKzsdjrM3q8NhEvPylvuYIAxTSGyHdRws337hBAiPxIkrCQjCxYfhYg9cCNNv07vujC/E4RUs23bhBCisCRIWJhS8F0svLITjt/Sr9PCB97qBL3q2LZtQghRVBIkLGjfdZi4A/53Sb88wA3e6AAjgsCxTMyaJYSo6CRIWMDFJJj2O6w4AXqDTtycYFIrmNgK3CUpLYQoQyRIlEDiHZi7HxZEQ5pOUtoAjA6GWe0hwN3mzRNCiBKTIFEMmUb49CjM2APXUvXr9KoNb3XW8g9CCFFWSZAoAqXgh/MwcScc+VO/TkhVLTg8Ute2bRNCCGuQIFFI0Te04PDTRf1yf1eY2V57vOQkSWkhRDkhQaIAl5Lhtd2w9Jh+UtrVCSa01BLTnpVt3jwhhLAqCRJmJGXAWwdg/gFIycxbbgBGNIHX20NtD5s3TwghbEKCRC5ZRlh6HKbvhssp+nV61tIGw7X2s23bhBDC1iRI3OXHC9pguEPx+uXBVbRpNB4N1JalFkKI8k6CBJCSAY9vhh8u6Jf7uUBUOxjTTJLSQoiKRYIE2tTceklpZ0dt6u4pbbT1pYUQoqKRIPGX+Z1gy0Uw/hUtwoLgjfZQ19O+7RJCCHuSIPGX5j7aGIcTt7RlQ9tWt3eLhBDC/iRI3OX9+7RHTJKUFkIIjQSJu7jI1RBCiBykr44QQgizJEgIIYQwS4KEEEIIsyRICCGEMEuChBBCCLPKbX+e27dv27sJQghR5smdhBBCCLMkSAghhDDLoJTSm9tOCCGEkDsJIYQQ5kmQEEIIYVaFChLx8fEMGDAAd3d3AgMD+fzzz83Wfeedd6hRowbe3t6MHj2a9PR0q7YtPT2dp556isDAQDw9PWndujWbNm3Srbt06VIcHR3x8PAw/fz8889WbR9A9+7dcXFxMR2zSZMmZuva+vrdfS08PDxwdHTkueee061rq+u3cOFC2rZti7OzMyNHjsxRtnXrVoKDg3Fzc6NHjx7Exsaa3U9R3reWaN+uXbvo1asX1apVw8/Pj0GDBnH58mWz+ynK+8IS7Tt37hwGgyHH32/WrFlm92Pr67dq1aocbXNzc8NgMLB3717d/Vjr+lmMqkCGDBminnzySZWYmKi2b9+uvLy81OHDh/PU++GHH1T16tXV4cOHVXx8vOrWrZuaPHmyVduWlJSkIiIi1NmzZ1VWVpbasGGD8vDwUGfPns1Td8mSJapLly5WbY+ebt26qcWLFxdYzx7X725JSUnK3d1dbdu2TbfcVtdv7dq16uuvv1bjxo1T4eHhpu3Xr19XXl5eas2aNSo1NVVNnDhRdejQwex+Cvu+tVT7Nm7cqNasWaNu376tkpOT1ahRo9TDDz9sdj+FfV9Yqn1nz55VgMrIyCjUfmx9/XJbsmSJatCggTIajbrl1rp+llJhgkRSUpKqVKmSOn78uGlbWFiY7ofX0KFD1dSpU02///TTT8rf398m7bxb8+bN1VdffZVne2kPEva+fkuXLlX169c3+4/S1tdv2rRpOT5EFi1apDp16mT6PSkpSbm4uKijR4/meW1R3reWal9ue/fuVR4eHmbLrf0hl7t9RQkSpeH6de/eXUVGRpotL+1BosI8bjpx4gSOjo4EBQWZtrVs2ZKYmJg8dWNiYmjZsmWOelevXuXmzZs2aSvA1atXOXHiBCEhIbrl+/fvx9fXl6CgIGbNmkVmZqZN2jV16lR8fX3p0qWL2Uc09r5+y5YtY8SIERjyWRjEXtcP8l4fd3d3GjZsqPteLMr71lp++eUXs+/DbIV5X1haYGAgtWvXZtSoUdy4cUO3jr2vX2xsLL/88gsjRozIt549rl9hVZggkZSUhLe3d45t3t7eJCYmFlg3+//16lpDRkYGoaGhhIeHExwcnKf8/vvv5/Dhw1y7do21a9fy3//+l/nz51u9XXPnzuXMmTPExcXxz3/+k759+3L69Ok89ex5/c6fP8+2bdsIDw83W8de1y9bSd6L+dW1hoMHDzJz5sx8r09h3xeW4uvry549e4iNjWXv3r0kJiYSGhqqW9fe12/58uV07dqV+vXrm61j6+tXVBUmSHh4eJCQkJBjW0JCAp6eeRexzl03+//16lqa0Whk+PDhVK5cmYULF+rWadCgAfXr18fBwYHmzZszY8YMvvrqK6u3rUOHDnh6euLs7Ex4eDhdunRh48aNeerZ8/otX76c++67L99/lPa6ftlK8l7Mr66lnTp1it69e/Pee+/RtWtXs/UK+76wFA8PD9q2bYuTkxP+/v4sXLiQH3/8Mc91yq5rr+sH2vsxvy8sYPvrV1QVJkgEBQWRmZnJyZMnTduio6N1b6NDQkKIjo7OUc/f3x8fHx+rtlEpxVNPPcXVq1dZu3YtlSpVKtTrDAYDyg5jIs0d117XDwr3jzI3W1+/3NcnOTmZ06dP674Xi/K+taTY2FgefPBBpk+fzvDhw4v0Wltfz+zHinrHtNf1A/jtt9+4dOkSTzzxRJFeZ69/z2bZMR9ic4MHD1ZDhgxRSUlJ6tdffzXby2HTpk3K399fxcTEqPj4eNWjRw+b9M4ZO3as6tChg0pMTMy33saNG9WVK1eUUkodPXpUhYSE5JsYs4Q///xT/fDDDyo1NVVlZGSolStXKjc3N3Xs2LE8de11/X777Tfl5uamEhIS8q1nq+uXkZGhUlNT1ZQpU1RYWJjp2l27dk15eXmpr776SqWmpqpJkybl27upsO9bS7Xv4sWLqkGDBmrevHkF7qMo7wtLtW/Xrl3q2LFjKisrS924cUM9+eSTqnv37mb3Y+vrl23MmDFq+PDh+e7DmtfPUipUkLh586bq16+fcnNzU3Xq1FGrVq1SSikVGxur3N3dVWxsrKnuggULVPXq1ZWnp6caOXKkSktLs2rbzp07pwDl7Oys3N3dTT8rV67M074JEyao6tWrKzc3N1W/fn01ffp0defOHau279q1a6pt27bKw8NDeXt7qw4dOqgff/xRKVU6rp9SSv3zn/9UYWFhebbb6/pFREQoIMdPRESEUkqpLVu2qCZNmigXFxfVrVu3HF2d33jjDfXII4+Yfjf3vrVW+yIjIxWQ433o7u6u27783hfWat/nn3+u6tWrp9zc3FSNGjXU8OHD1eXLl3Xbp5Ttr59SSqWmpipvb2/1008/5Xmdra6fpcjcTUIIIcyqMDkJIYQQRSdBQgghhFkSJIQQQpglQUIIIYRZEiSEEEKYJUFCCCGEWRIkhBBCmCVBQggrUErxwAMP0KVLF7KysnKU9evXj9atW3Pnzh07tU6IwpMgIYQVGAwGli1bxtGjR3nzzTdN2z/++GN+/PFHVq1aReXKle3YQiEKR0ZcC2FFX3zxBWFhYezYsYOqVavSqlUrZs+ebXZpVSFKGwkSQlhZWFgYe/bsoUqVKlStWpVNmzbluyCSEKWJBAkhrOzWrVvUqlULBwcHTpw4QUBAgL2bJEShSU5CCCtbuXIlRqORlJQU9u7da+/mCFEkcichhBUdO3aMNm3asGDBAs6cOcOKFSs4fPgwvr6+9m6aEIUiQUIIK8nIyKBjx474+/uzceNG0tPTadeuHY0bN2bt2rX2bp4QhSKPm4SwkhkzZnD+/Hk+++wzAJydnVm5ciXff/89y5cvt3PrhCgcuZMQwgp+/fVXunXrxldffcWAAQNylM2fP5833niDgwcPUrduXTu1UIjCkSAhhBDCLHncJIQQwiwJEkIIIcySICGEEMIsCRJCCCHMkiAhhBDCLAkSQgghzJIgIYQQwiwJEkIIIcySICGEEMKs/weZPwqfDWg6AgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# create target data\n", - "x = np.arange(0, 20, 1)\n", - "y = 1 + x**2\n", - "X = x.reshape(-1, 1)\n", - "\n", - "model_w,model_b = run_gradient_descent_feng(X,y,iterations=1000, alpha = 1e-2)\n", - "\n", - "plt.scatter(x, y, marker='x', c='r', label=\"Actual Value\"); plt.title(\"no feature engineering\")\n", - "plt.plot(x,X@model_w + model_b, label=\"Predicted Value\"); plt.xlabel(\"X\"); plt.ylabel(\"y\"); plt.legend(); plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Well, as expected, not a great fit. What is needed is something like $y= w_0x_0^2 + b$, or a **polynomial feature**.\n", - "To accomplish this, you can modify the *input data* to *engineer* the needed features. If you swap the original data with a version that squares the $x$ value, then you can achieve $y= w_0x_0^2 + b$. Let's try it. Swap `X` for `X**2` below:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# create target data\n", - "x = np.arange(0, 20, 1)\n", - "y = 1 + x**2\n", - "\n", - "# Engineer features \n", - "X = x**2 #<-- added engineered feature" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration 0, Cost: 7.32922e+03\n", - "Iteration 1000, Cost: 2.24844e-01\n", - "Iteration 2000, Cost: 2.22795e-01\n", - "Iteration 3000, Cost: 2.20764e-01\n", - "Iteration 4000, Cost: 2.18752e-01\n", - "Iteration 5000, Cost: 2.16758e-01\n", - "Iteration 6000, Cost: 2.14782e-01\n", - "Iteration 7000, Cost: 2.12824e-01\n", - "Iteration 8000, Cost: 2.10884e-01\n", - "Iteration 9000, Cost: 2.08962e-01\n", - "w,b found by gradient descent: w: [1.], b: 0.0490\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "X = X.reshape(-1, 1) #X should be a 2-D Matrix\n", - "model_w,model_b = run_gradient_descent_feng(X, y, iterations=10000, alpha = 1e-5)\n", - "\n", - "plt.scatter(x, y, marker='x', c='r', label=\"Actual Value\"); plt.title(\"Added x**2 feature\")\n", - "plt.plot(x, np.dot(X,model_w) + model_b, label=\"Predicted Value\"); plt.xlabel(\"x\"); plt.ylabel(\"y\"); plt.legend(); plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Great! near perfect fit. Notice the values of $\\mathbf{w}$ and b printed right above the graph: `w,b found by gradient descent: w: [1.], b: 0.0490`. Gradient descent modified our initial values of $\\mathbf{w},b $ to be (1.0,0.049) or a model of $y=1*x_0^2+0.049$, very close to our target of $y=1*x_0^2+1$. If you ran it longer, it could be a better match. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Selecting Features\n", - "\n", - "Above, we knew that an $x^2$ term was required. It may not always be obvious which features are required. One could add a variety of potential features to try and find the most useful. For example, what if we had instead tried : $y=w_0x_0 + w_1x_1^2 + w_2x_2^3+b$ ? \n", - "\n", - "Run the next cells. " - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# create target data\n", - "x = np.arange(0, 20, 1)\n", - "y = x**2\n", - "\n", - "# engineer features .\n", - "X = np.c_[x, x**2, x**3] #<-- added engineered feature" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration 0, Cost: 1.14029e+03\n", - "Iteration 1000, Cost: 3.28539e+02\n", - "Iteration 2000, Cost: 2.80443e+02\n", - "Iteration 3000, Cost: 2.39389e+02\n", - "Iteration 4000, Cost: 2.04344e+02\n", - "Iteration 5000, Cost: 1.74430e+02\n", - "Iteration 6000, Cost: 1.48896e+02\n", - "Iteration 7000, Cost: 1.27100e+02\n", - "Iteration 8000, Cost: 1.08495e+02\n", - "Iteration 9000, Cost: 9.26132e+01\n", - "w,b found by gradient descent: w: [0.08 0.54 0.03], b: 0.0106\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEeCAYAAAB/vulGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeVjU5drA8e8Asg6bgwuCouKCoqLlkrlbmhvmkjsK5drJVkqz5YDLe9JKj3Usc8kwNZeOHkrT3EqzRTNTVMpdUKEUJGRRFJjn/WNiZBx2kGG5P9c1V/I8v/nNPRPX3Dy7RimlEEIIIfJgZekAhBBCVFySJIQQQuRLkoQQQoh8SZIQQgiRL0kSQggh8iVJQgghRL4kSQhRRZw+fZq+ffvi5uaGRqMhIiLC0iGJKkCShLC4nj17sm/fvgKv0Wg0eZbv27ePKVOm0KJFC5ycnPD29mbw4MEcOXLkPkSav5iYGBo2bFjgNREREYSEhORZ9/bbb9OtWzdq166NnZ0dPj4+jBw5khMnThQ5hpCQEI4cOUJ4eDhr1qyhe/fuxXgHRafX6wkPDycyMvK+3F9ULJIkhEXs3r2bzMxMs/ITJ05w+fJlsrOz2bVrV57P3bVrF9nZ2QC8+uqr7Nixg379+vHee+/xzDPPEBUVRceOHdm2bdt9fQ8pKSl8//33ZuVKKXbs2AFAdHQ0sbGxZtekp6ezf/9+48+HDx+mefPmzJw5k6VLlzJx4kQOHz5Mhw4dOHjwYKGxZGRkcPDgQcaMGcMLL7xAUFAQjRs3LsW7y59er2f27NmSJKoLJUQ50+v1auzYsap169bqwIEDqkePHuqrr75SM2bMUI0aNVLffvutunLliurQoYMaPHiwio2NVYCKjY1VgwcPVp06dVJXrlxRSim1b98+lZWVZXL/q1evKp1Op1q3bn1f38fx48dV8+bN1VNPPaV++eUX5ePjo06cOKG6dOmi+vXrp9LS0tSGDRuUt7e3WrBggVqxYoUKDg5WX3zxhfL19VUzZ84s8P5//PGHsrGxUaNHjy40lpzP6PXXXy+rt5evzMxMBajg4OAyv3dWVpa6fft2md9XlJwkiWrq9u3bqm3btqpOnTrq2rVrJnUDBgxQ9vb2Kjo6utj3HTBggHJ0dFSnTp0yKX/66aeVRqNRe/bsMZYdOnRI9ezZUzk6OipPT0/1f//3f+rmzZvGer1er9avX6/atGmjANWmTRu1cePGIsUxbNgwZW1tXez4lVLq3LlzSqvVqkcffVTp9XpjeVJSkvLy8lJ+fn7GODMzM9UHH3ygGjdurGxtbVWHDh3U7t27Te6XlJSkXnrpJVWzZk3l5OSkhg4dqk6fPl1oHNnZ2crZ2Vn169evwOuCg4MVYPbIkZmZqebPn69atGih7OzslE6nU+PGjVOXL182uc93332nxowZoxo2bGi8bvjw4SaxXrx4Mc/X6tGjh1JKqU8++UQB6uLFi2ZxAiosLMz487fffqsAtXz5cvXOO++oxo0bK2tra/Xtt98qpZRKS0tTs2bNMn62np6e6umnn1ZJSUkm9z169KgaNGiQql27trKzs1P169dXw4cPV7GxsYV+xqJwNuXedBEVgq2tLevWrePBBx9k8uTJxq6DDz/8kO3bt/P+++/TsmXLYt931apVtG7dmqCgIH788Udq1KjB9u3bWbp0KS+99BKPPPKI8VorKys0Gg3q7+3DNBqNydiDRqPB2tra5P75jU3cKz4+nlq1ahU7fgBfX1/ee+89Jk6cyOLFi3nxxRcBmDZtGteuXePLL7/EwcEh3xjvde81977P3BITE9Hr9Vy5coVFixaRmprKY489VuD9p06dStu2bXnxxRd5/PHHeeKJJ4x1SilGjBjB9u3bCQkJ4fnnnycuLo4lS5bw3XffcfToUXQ6HQCbNm0iPj6e4OBgvLy8iI2NZfny5XTr1o2TJ09Sq1YtatWqxerVqwkODqZbt25MmTIFgDp16hTyqebvvffeIysriylTpuDo6Iinpye3b9/mkUceITo6milTptC8eXPOnDnDBx98wMGDB/npp5+ws7MjISGBRx99FDc3N1566SU8PDyIj49n165dXLlyhQYNGpQ4LvE3S2cpYVnvv/++AtSKFSvUqVOnlKOjo3rsscdM/oIuri+++MLY9ZGQkKDq1KmjWrdurTIyMpRShhbC+PHjTbqbtm3bpl555RXVqFEjtW/fPnXlyhXVqVMns+6mwMBA9dBDD6m4uLh8X3/37t0KUC+99FKJ34NShtaInZ2dOnHihPr0008VoP71r38Z60+cOKFatmypnnzySbPupv79+6u0tDS1adMmVb9+fTV//nxjd1NkZKTy9fVVr776qtlrkuuvcxcXFzVr1iyz7rS85PyFf29308aNGxWgtm7dalL+66+/Kmtra5Pr09LSzO57+vRpZWtrq9566y1jWUHdTSVpSdSuXVslJyebXLtgwQJVo0YNdeTIEZPynN+tFStWKKWUioyMVID6+eefzV5PlA1JEtWcXq9X/fr1U05OTqp169bKw8NDxcfHl/q+U6ZMUdbW1qpDhw7GL9rcdu7cqe7cuaOUUqpHjx7GLobjx4+rS5cuqaysLPX1118br8/998zXX3+d7xfn5cuXVd26dVWjRo3UjRs3SvUeEhMTVb169VTLli2Vi4uL6tatm8rOzjbW37hxQx04cEApZfiS9vHxUUoZPtPt27crpZQ6efKkiomJUUoZvkBzvljT0tLUvn37zF5z9+7daseOHWrJkiWqQ4cO6tlnn1W3bt0qNNb8ksTQoUOVt7e3SkhIMHs0bdpUPfTQQ3neLzU1VSUmJqqEhATVunVrNWzYMGNdWSeJF1980ezadu3aqc6dO5vFfO3aNeXg4GAcp8m5x5tvviljGfeJJAmh/vjjD+Xo6KgA9d///rdM7pmenq68vb0VoN59990Cr82dJPJTlEZvQkKCatGihdLpdCUaT8lLzl+uTk5Oxi/7vOROEvnJnSSKIjk5WTVo0EAFBQUVem1+SaJFixZ5jiHkPBo3bmy8Nj4+Xk2YMEG5u7ubXderVy/jdWWdJN5//32zax0cHAqMu3fv3kopQ0IeOXKkApRWq1X9+/dX7733nkpISCj0MxNFI2MSgv3793Pz5k0AoqKiGD58eKnvefToUf744w/jPQtS2BoJwDhukZ/k5GT69u3LlStX+Oabb0o0npKX7du3A3Dz5k3OnTuHj49Pntc1bNiQmJiYAu8VEhKS7zqJvLi6ujJgwACWL1/OihUrsLe3L/Jzc+j1eho3bsyyZcvyrM8ZW9Hr9fTt25e4uDhefPFF/P390Wq1WFlZ8cILL6DX64v0evmNteRMWS4ohnvj7ty5M3PmzMnzOe7u7sbX27hxIzNmzGD79u3s2bOHl156iTlz5rBnzx7atm1bpLhFASydpYRlXb58Wbm7u6suXbqo8ePHK2tra/XTTz+V6p4pKSmqUaNGytfXV7388ssKUJs2bSqjiM2lpqaqhx56SDk4OOTZhVNSW7duVYB6/vnnlZ+fn/Ly8jKbWXO/hYSEKEBdvXq1wOvya0kMHDhQOTs7q8zMzAKff+zYMQWoTz75xKzO09PTOHtJKcM0VfJpSeS0vH799VeT8jNnzuTbksgZX8jN399ftWjRosCY8xMVFaVsbGzUmDFjSvR8YUoW01VjSimCg4PJyspizZo1LFmyhPr16xMUFERaWlqJ7/vcc89x6dIl1q5dy1tvvUXHjh2ZNm0a8fHxZRi9wa1btwgMDOTIkSP897//pUePHmVy34SEBCZOnEi7du14++23WbduHdeuXePpp58uk/vnlp6eTnp6ull5XFwcW7duxcfHh9q1a5fo3mPGjCE1NZW3337brE4pRWJiIoBx9tW9LYbVq1cbW4Q5rK2tsbe356+//jK7Z9OmTQH45ptvTMoXL15c7Lh///13PvvsM7O67OxskpKSAPjrr7/MWpktWrTAwcHBeI0oHeluqsYWLVrEN998w6pVq2jUqBEAa9asoUePHrz44ousWLHCeG3Pnj3Zv39/od0+W7ZsISIign/+85889NBDAKxdu5Z27doREhLCzp07izyNtSjGjRvHvn37GD58OElJSaxdu9akfujQoTg5OQGGrTMaNWpEcHBwofsaTZw4kZSUFL799ltsbW154IEHCA8P5/XXXycwMJBx48aV2Xs4e/YsvXv3ZsSIETRv3hytVsuZM2eIiIggOTmZVatWlfjeY8eOJTIyktdff50ff/yR3r174+DgwMWLF4mMjGTs2LGEh4fj5+eHn58foaGhxMbGUq9ePQ4dOkRkZGSeK7c7dOjAnj17ePfdd/H29qZ27dr07t2bFi1a0KNHD9544w2uX7+Ot7c3u3btIi4urlhxh4aGsn37doKCgti2bRudO3cG4Ny5c2zevJl58+YREhLC6tWr+c9//sPQoUNp0qQJWVlZbNiwgdTU1DL9f1StWbYhIyzl+PHjys7OzmTWSo5Zs2YpQH3xxRfGsgcffFDVrVu3wHvGx8crnU6nOnbsaNa9sWzZMgWo9957r2zewN98fHwKHODMPYB64sQJBeQ59TSvWO8dUM3OzlZdu3ZVrq6uZbpQKyEhQT399NPK399fubi4KBsbG+Xl5aVGjRpV5Kmd+XU35cS9ZMkS9cADDygHBwel1WpVixYt1DPPPGMywH/u3DkVGBio3N3djYsJjx49qnr06GHS3aSUYdZW9+7djRMectdfunRJDRo0SDk6Oio3Nzc1fvx4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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "model_w,model_b = run_gradient_descent_feng(X, y, iterations=10000, alpha=1e-7)\n", - "\n", - "plt.scatter(x, y, marker='x', c='r', label=\"Actual Value\"); plt.title(\"x, x**2, x**3 features\")\n", - "plt.plot(x, X@model_w + model_b, label=\"Predicted Value\"); plt.xlabel(\"x\"); plt.ylabel(\"y\"); plt.legend(); plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note the value of $\\mathbf{w}$, `[0.08 0.54 0.03]` and b is `0.0106`.This implies the model after fitting/training is:\n", - "$$ 0.08x + 0.54x^2 + 0.03x^3 + 0.0106 $$\n", - "Gradient descent has emphasized the data that is the best fit to the $x^2$ data by increasing the $w_1$ term relative to the others. If you were to run for a very long time, it would continue to reduce the impact of the other terms. \n", - ">Gradient descent is picking the 'correct' features for us by emphasizing its associated parameter\n", - "\n", - "Let's review this idea:\n", - "- Intially, the features were re-scaled so they are comparable to each other\n", - "- less weight value implies less important/correct feature, and in extreme, when the weight becomes zero or very close to zero, the associated feature is not useful in fitting the model to the data.\n", - "- above, after fitting, the weight associated with the $x^2$ feature is much larger than the weights for $x$ or $x^3$ as it is the most useful in fitting the data. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### An Alternate View\n", - "Above, polynomial features were chosen based on how well they matched the target data. Another way to think about this is to note that we are still using linear regression once we have created new features. Given that, the best features will be linear relative to the target. This is best understood with an example. " - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# create target data\n", - "x = np.arange(0, 20, 1)\n", - "y = x**2\n", - "\n", - "# engineer features .\n", - "X = np.c_[x, x**2, x**3] #<-- added engineered feature\n", - "X_features = ['x','x^2','x^3']" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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+LPw40NSyRvgNJcMCD+e18E4kAhccQfb6/UqEGg7vyMQCCgtLS3inxHJnedId/XgzjQQXX/Kk/51SPryR+8wDU2V3r6O5hpwmo7y+qc8+2oC7OaKBjs7O1stLS364osvNHLkSElSeXl5xAscJZpnwE1GpAebabawBJyPvALteYwxxu4iIjF9+nR5PB4VFxerrKxMkydP1s6dO9s02UeO/PCc1pOnlACJyMmZcHJtgB2cnAkn1wbYobNMuGIOtiQ9/vjjam5u1s9+9jPddNNNWr16dZfuYAMAAACx4Jo72JH48W8TANpy2l0n8gp0jLwC7uHqO9gAAACAG9BgAwAAABaKqykiAAAAgN24gw0AAABYiAYbAAAAsBANNgAAAGChhGmwDx8+rClTpig1NVWZmZl69tln7S6pSy677DIlJyfL6/XK6/XqnHPOsbuksFatWqWxY8cqKSlJBQUFbY5t375dOTk5SklJ0YQJE1RdXW1PkafQUf0HDhyQx+MJ/f/v9Xq1bNky+wpNAG7I7Ole78YYLVq0SBkZGcrIyFBhYaHsWg5z7NgxzZkzR5mZmUpLS9P555+v1157LXTcLechSfn5+Ro4cKDS09OVnZ2t4uLi0DE3nYcbOT2v0bzODxw4oAkTJiglJUU5OTnatm1bTM/tiy++UHJysvLz811/Phs2bNC5556r1NRUZWVlaceOHe49H5Mgpk+fbm688UbT0NBgduzYYdLT083u3bvtLiti48ePN08++aTdZXSqpKTEvPTSS2bevHlm9uzZofGvv/7apKenmxdeeME0Nzeb3/72t2bcuHH2FdqBjuqvqqoykszx48ftKy7BuCGzp3u9P/HEEyY7O9t8+eWXpqamxpx77rlm9erVNpyBMY2NjWbx4sWmqqrKtLa2mi1bthiv12uqqqpcdR7GGLN7925z9OhRY4wxe/bsMf379zcffvih687DjZye12he57/4xS/M3Xffbf773/+ajRs3Gp/PZ+rr62N2bpMmTTJ5eXlmxowZxpjuv/7YdT5bt241w4YNM++//75pbW01NTU1pqamxrXnkxANdmNjo+nVq5f5/PPPQ2P5+flm0aJFNlbVNW5psL/3wAMPtGk41qxZYy688MLQ542NjSY5Odns2bPHhuo6d3L9NNix5bbMdvV6v/DCC82aNWtCx4uLix31C+fo0aPNxo0bXX0ee/fuNQMGDDDPP/+8q8/DDdyW1+9ZcZ1//vnnpnfv3iYQCISO5+XlxewXtOeee87ccMMNZvHixaEG263nc+GFF5ri4uJ24249n4SYIrJv3z716NFD2dnZobHc3FxVVFTYWFXX3XffferXr58uvvhivfXWW3aX0yUVFRXKzc0Nff792z9u+zvIzMzUkCFDdMstt+jQoUN2lxO33J7Zzq73k4876dzq6uq0b98++f1+V57HnXfeGXoreODAgZo8ebIrz8NN3JhXq67ziooKnXXWWUpLSwt7PJoCgYB+//vfa8WKFW3G3Xg+ra2t+vDDD/X111/r7LPP1pAhQzR//nw1Nze78nykBJmD3djY2O4xlj6fTw0NDTZV1HWPPPKI9u/fr9raWt1+++26+uqrVVlZaXdZEXP730G/fv30z3/+U9XV1froo4/U0NCgGTNm2F1W3HL79dJZ/Scf9/l8amxstH3e7/HjxzVjxgzNnj1bOTk5rjyPxx9/XA0NDdqxY4emTp2qpKQkV56Hm7gtr1Ze53aee1FRkebMmaOhQ4e2GXfj+dTV1en48ePauHGjduzYobKyMn388cdavny5K89HSpAG2+v1KhAItBkLBAJtfqNxunHjxiktLU1JSUmaPXu2Lr74Yr366qt2lxUxt/8deL1ejR07Vj179lT//v21atUqbd26td05wRrxcL2cqv6TjwcCAXm9Xnk8npjW+WMnTpzQzJkz1bt3b61atUqSO89Dknr06KG8vDzV1NRo9erVrj0Pt3BTXq2+zu0697KyMm3btk133313u2NuPJ8+ffpIkhYsWKCBAweqX79+uueee/Tqq6+68nykBGmws7Oz1dLSoi+++CI0Vl5eLr/fb2NV3ePxeFx1d8Xv96u8vDz0eVNTkyorK137d/D9P7xu+jtwE7dntrPr/eTjdp+bMUZz5sxRXV2dSkpK1KtXL0nuO4+TtbS0hOp183k4nVvyGo3r3O/3a//+/W3uiMbi3N966y0dOHBAw4YN04ABA/Too4+qpKREP//5z115Pn379tWQIUPC/lLrxvORlDi7iEybNs1Mnz7dNDY2mnfffddxK5xP5dtvvzWvv/66aW5uNsePHzfr1683KSkpZu/evXaX1s7x48dNc3Oz+d3vfmfy8/NDNdfX15v09HSzceNG09zcbAoLCx25iKij+nft2mX27t1rWltbzaFDh8yNN95oLrvsMrvLjWtuyOzpXu+rV682OTk5pqamxtTW1ppRo0bZumvF3Llzzbhx40xDQ0ObcTedR11dnXnuuedMQ0ODaWlpMa+//rpJSUkxmzdvdtV5uJUb8hqt63zcuHFm4cKFprm52WzatCkmu1Q0NTWZr776KvRn4cKF5vrrrzf19fWuPB9jjCkqKjJjx441dXV15vDhwyYvL888+OCDrj2fhGmwv/nmG3PttdealJQUM3ToUPPMM8/YXVLE6uvrzdixY43X6zU+n8+MGzfObN261e6ywlq8eLGR1ObP4sWLjTHGvPnmm+acc84xycnJZvz48aaqqsrWWsPpqP5nn33WDB8+3KSkpJgBAwaYmTNnmq+++srucuOaGzJ7utf7iRMnzL333mv69u1r+vbta+69915z4sQJW87hwIEDRpJJSkoyqampoT/r16931XnU19ebSy+91Ph8PpOWlmbOO+88s3bt2tBxt5yHWzk9r9G8zquqqsz48eNNcnKyyc7ONm+++WasT6/NLiLGuPN8/ve//5k77rjD+Hw+079/f7NgwQLT3Nzs2vPxGMN73AAAAIBVEmIONgAAABArNNgAAACAhWiwAQAAAAvRYAMAAAAWosEGAAAALESDDQAAAFiIBhsAEpAxRgUFBfJ4PLr++uvV2tpqd0kAOkBe3YcGGwAS0Pz58/Xyyy+ruLhY7733ngoKCnTyYxE+/fRTzZw5U8OHD1dycrJGjBihu+66S//5z39sqhpITJHktbm5WVdddZWGDRum5ORk9e/fX9ddd50+++wzm6pObDTYAJBgCgsLtXnzZr3zzjuaM2eO3n33Xb333nu644472nzdv/71L3m9XhUXF+uzzz7TE088oS1btuimm26yqXIg8USaV4/Ho0mTJumFF17Q559/rn/84x9qaWnR5ZdfrqNHj9pUfQKLyfMiEfcOHTpkhgwZYn7zm9+Exurq6syAAQNMYWGhjZUBiSOSHD700ENm5MiRbR41bIwxBw8eNKNHjzb33HPPKf83Nm7caDwejzly5Ijl9QOJJBZ5LSsrM5JMWVmZ5fXj1HhUOizzzjvv6PLLL9emTZt01VVX6YorrtCRI0e0Y8cO9erVy+7ygIQQ7Rz+7W9/04IFC3TkyBH17NnTgoqBxBXNvDY0NOj+++/XSy+9pH379iklJcWiqhGJHkuWLFlidxGID5mZmTLG6P7771d9fb22bNmiN998UxkZGXaXBiSMaObw3//+t26++WYVFBToiiuusKBaILFFI6+LFi3SlClTtHTpUgUCAW3dulX9+/e3sGpEgjvYsNSJEyeUl5en999/Xxs2bNC0adPsLglIONHIYX19vSZOnKihQ4dq8+bNvCsFWMTqvB46dEjffvutamtr9eijj6q6ulo7d+5UWlqaRRUjEixyhKW++uor7du3Tz169NC+ffvsLgdISFbnsKamRuPHj1dmZqY2bdpEcw1YyOq89uvXTyNHjtRll12mTZs26bsf1UoAAAFwSURBVMCBA3rmmWcsqBRdQYMNy5w4cUL5+fny+/3auHGjli5dqnfffdfusoCEYnUOKysrdckll2jUqFHatGmTkpKSLKwWSGyx+HfTGKNjx45Z+jPROVaowDIPP/ywPv30U5WVlWnIkCGaN2+eZsyYobKyMvXt29fu8oCEYGUOP/vsM02cOFFjxozRX/7yF33zzTehY2eeeaZ69OhhdflAQrEyr2+99Zb27Nmjiy66SH379tWXX36pRx55RGeccYamTJkSpTNAR5iDDUvs3LlT48ePV0lJia655hpJ0rFjx3TBBRfo7LPPVklJic0VAvHP6hwuWbJEDz30UNhjVVVVGj58eHdLBhKW1Xn94IMPVFhYqN27d6uxsVEDBgzQJZdcovvvv1+jRo2KxingFGiwAQAAAAsxBxsAAACwEA02AAAAYCEabAAAAMBCNNgAAACAhWiwAQAAAAvRYAMAAAAWosEGAAAALESDDQAAAFjo/wPM+TMU0vfSzQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig,ax=plt.subplots(1, 3, figsize=(12, 3), sharey=True)\n", - "for i in range(len(ax)):\n", - " ax[i].scatter(X[:,i],y)\n", - " ax[i].set_xlabel(X_features[i])\n", - "ax[0].set_ylabel(\"y\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, it is clear that the $x^2$ feature mapped against the target value $y$ is linear. Linear regression can then easily generate a model using that feature." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Scaling features\n", - "As described in the last lab, if the data set has features with significantly different scales, one should apply feature scaling to speed gradient descent. In the example above, there is $x$, $x^2$ and $x^3$ which will naturally have very different scales. Let's apply Z-score normalization to our example." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Peak to Peak range by column in Raw X:[ 19 361 6859]\n", - "Peak to Peak range by column in Normalized X:[3.3 3.18 3.28]\n" - ] - } - ], - "source": [ - "# create target data\n", - "x = np.arange(0,20,1)\n", - "X = np.c_[x, x**2, x**3]\n", - "print(f\"Peak to Peak range by column in Raw X:{np.ptp(X,axis=0)}\")\n", - "\n", - "# add mean_normalization \n", - "X = zscore_normalize_features(X) \n", - "print(f\"Peak to Peak range by column in Normalized X:{np.ptp(X,axis=0)}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can try again with a more aggressive value of alpha:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration 0, Cost: 9.42147e+03\n", - "Iteration 10000, Cost: 3.90938e-01\n", - "Iteration 20000, Cost: 2.78389e-02\n", - "Iteration 30000, Cost: 1.98242e-03\n", - "Iteration 40000, Cost: 1.41169e-04\n", - "Iteration 50000, Cost: 1.00527e-05\n", - "Iteration 60000, Cost: 7.15855e-07\n", - "Iteration 70000, Cost: 5.09763e-08\n", - "Iteration 80000, Cost: 3.63004e-09\n", - "Iteration 90000, Cost: 2.58497e-10\n", - "w,b found by gradient descent: w: [5.27e-05 1.13e+02 8.43e-05], b: 123.5000\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEeCAYAAAB/vulGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeXiMV/vA8e8kJGQlS4ktCBJCg2pVUanSWpoireW1JYo3tGpfSpXEVnvVT2nwElstbYillqqW0pYqFZJaiiZILIkgi4Qkc35/REbGJAQxk8T9ua5cbc45zzP3jMnc8zxn0yilFEIIIUQuzEwdgBBCiMJLkoQQQog8SZIQQgiRJ0kSQggh8iRJQgghRJ4kSQghhMiTJAnxWKKiotBoNISEhOjKQkJC0Gg0REVFGT0ef39/qlatavTHFcazYsUKPDw8sLCwQKPRmDqc544kiQKyd+9eNBoNGo2GHTt2GNRnf5D++OOPJohOGFtUVNQjk1dISAj+/v4G5ampqXz99de0a9eOypUrY2VlRZ06dRg9ejQ3b958NgHnITAwkMDAwIe28fb2Zu/evQblV65cwc/Pjzp16mBvb4+1tTWenp5MmjSJpKSkfD3+yZMn+eCDD6hQoQLBwcGsWrXqCZ5F/hw9epTAwECTfNkpzCRJPAOfffaZqUMwql69epGamoqrq6upQzGpxMREDhw4YFCulNJ9cYiMjCQ6OtqgTUpKCvv27QMgOjqagQMHkpyczMCBA5k/fz4tWrTgiy++4OWXXyYxMfGZPo8//viD+Ph4g/L4+Hj++OMPAHbv3k16erpBmxMnTnDx4kUArl+/zr///su7777L559/zty5c2nWrBlTp06lZcuWZGRkPDKWffv2odVqmTlzJn369KFnz55P+ezydvToUYKCgiRJPECSRAFr2LAhR44cYdOmTc/8sW7fvv3MHyM/zM3NKVWq1HN/KyA6Opp+/frRt29frl+/DkBERATNmzdn/vz5pKSkEBERQbNmzZg5c6buQ3LLli14eXnpEomzszPHjh3jl19+Ydy4cfTr149FixYRHBzM2bNnWbp06TN9Hr/99hsNGzZk2bJlKKVQSrFs2TJeeuklDh06hFKKkJAQXnrpJV1SvH37NmPGjKFDhw6cO3cOAE9PT3755RemT5/Ohx9+SEBAAMHBwUydOpU///yTPXv2PDKWa9euAVCmTJln94SNoLD8rT4RJQrEzz//rAD11VdfqSpVqqh69eoprVarq1++fLkC1O7du/WOu3TpkvLz81MvvPCCsrCwULVr11Zz587VO1YppVq0aKEqVqyoTp06pdq2batsbW1VixYt9OrOnz+v2rdvr2xsbNQLL7ygxo8fr7RarYqPj1c9e/ZUZcuWVba2tuqDDz5QqampeuffvHmz6tChg6pUqZKysLBQ5cqVU35+fury5ct67f79918FqOXLlxs8t3///VfvtcjrJ7udUkpdu3ZNffjhh6pSpUqqZMmSytXVVX3yyScqLS3N4DWeO3euqlatmrK0tFT169dXW7duVX5+fsrV1fWh/zZ37txR9evXV+XKlVPXrl3Tq2vXrp0qVaqUioyMzPP4s2fPKhsbG9WqVSu9f5eEhARVsWJF5eHhoW7fvq2UUio9PV199dVXqnr16srCwkK9/PLLBv/mCQkJavjw4crBwUFZW1urTp06qdOnTz/0OSilVGJiogJU3759H9k2NzNmzFCAWrlypV75hg0bFKAmTJigK7t06ZLq06ePsrOzU3Z2duqDDz5QMTExescdOnRIeXt7KysrK+Xi4qKmTp2qex0eJvvx1q1b99B2ub13/Pz8dPXnz59XvXr10v3t1KpVS82cOVNlZmbqnWfOnDnq9ddfV87OzsrCwkK5ubmpCRMmqLt37+raTJw4MdfHy36ft2jRQvf3ltOD732llPLz81OAunDhguratasqU6aMqlq1qq7+2LFjqmPHjsrBwUFZWlqqevXqqWXLlj3ydTOVEkbKRc8NCwsLPvvsM/r378/69evp1q1bnm2vX7/Oa6+9xpUrV/joo4+oXr0627ZtY/jw4Zw7d44FCxbotb99+zatWrXi7bffZvbs2Zibm+vqUlNTadWqFW+99RYzZ85k06ZNTJkyBRsbG9avX0/t2rWZOnUq+/btY9myZZQrV45p06bpjl+2bBkZGRkMGDCAF154gVOnTrFkyRIOHTrEsWPHsLS0zPdrULt2bYN7x5mZmYwaNYrk5GRsbW11z//VV18lKSmJ//73v1SpUoUjR44wa9YsTpw4wbZt23THT506lfHjx9O8eXOGDh1KTEwM3bt3z9ctLgsLC9asWcNLL71E//79CQsLA2DhwoVs376d+fPnU6dOnTyPd3Nz48svv6Rv377MmzePYcOGATBgwACuXbvGli1bKF26NAAajUbv3yU3D7bJ7st6lNjYWCDrSuNJjBw5kh07djBo0CBef/11XF1diYmJISAggFdeeUXvNqlGo8HMzEzv9weZmZmh0WhQ95Z/y+t53Llzh6SkJNLS0jh27Bhjx47FysqK5s2bPzTeVatWsXHjRjZt2sTs2bMpV64cbm5uAJw9e5YmTZpgY2PDxx9/jLOzM3v37mX06NFERUXx1Vdf6c4za9Ys3n77bd59912srKw4cOAAU6ZM4cKFCyxfvhwAX19fLl26xP/+9z/GjRtH7dq1AXjttdfy+/IaaNu2LbVr12batGncuXMHyLpKa926NW5ubowePRpbW1u2bt3KBx98QHx8PKNGjXrix3tmTJ2liovsb89LlixR6enpqkaNGsrd3V1lZGQopXK/khg1apQC1Hfffacr02q1qlOnTgpQx48f15W3aNFCAerzzz83eOzsunnz5unK7t69q1xcXJRGo1HDhw/Xa9+oUSPl4OCgV5acnGxw3r179ypArV27VleWnyuJ3Hz88ccG3x4HDhyoypYtqy5cuKDX9ssvv9R7reLj45WlpaV67bXXVHp6uq7d9u3bFfDIK4ls8+fP1/0bnTp1SllZWam3337b4KotL76+vsrS0lKdOHFCrVy5UgFq2rRpuvoTJ06oOnXqqD59+qg///xTubq6qhMnTqimTZuqtm3bquTkZLVhwwZVuXJlNX36dLVkyRLl5+enwsLClJubm/rkk08e+vg9evRQGo1GhYeH5yve3Fy4cEGVKVNGNW/eXKWnp6tWrVopa2tr9c8//+jazJ8/X1WpUkUtXbpUTZgwQU2YMEEtXbpUValSRc2fP19ptVrVq1cvVa9ePbV//37VokULtW3bNjVq1ChVrVo1tXfvXr3HzH5/ZP/Url3b4OoqL9nf8HPGp5RSbdu2VdWqVVO3bt3SKx82bJjSaDTqzJkzurLc3tuBgYHKzMxMXbp0SVe2ZMkSBaiff/7ZoP2TXEkEBATotdVqtapOnTrq1Vdf1XsfK6VUp06dlJWVlbp586bBY5iaJIkCkjNJKKXUqlWrFKBCQkKUUrknCXd3d1WjRg2Dc/32228KUFOnTtWVZSeC3N5ELVq0UGZmZga3kDp06KAAvT8YpZQaMmSIAlRCQoLBubRarbp165aKi4tTcXFxqkyZMnpJ5kmSxOLFixWgxo8fr/c4Dg4OqmvXrrrHyv75+++/FaD70Fy7dq0C1DfffGNw7tq1a+c7SWi1WtWmTRtlbW2t6tWrp5ycnFRsbGy+jlUqK1lVqFBB1alTR9nZ2anmzZvr3dq4deuW2r9/v1Iq63XKjkur1art27crpZSKiIhQUVFRSqms1y379klycrLBh2tO2R9gDyb8J5H9ejZp0kTvPZvt4MGDKi4uTimV9SE9ceJEpZRScXFx6uDBg0oppXbt2qW7XdOiRQvdB+vx48cNkn5sbKzavXu3Cg0NVSNHjlQNGjRQ3377bb5izS1J3LhxQ2k0GjVy5EiD987OnTsVoL7++muDc2VkZKgbN26ouLg4tW/fPgWoLVu26OoLOkk8mMzDw8MVoObPn28Qd/Zj79y5M1+vizHJ7aZnpHv37nz++edMmjSJ7t2759omKiqK1q1bG5Rn3/r4999/9codHBywt7fP9VwvvPACpUqV0ivL7uyrUqVKruUJCQmULVsWgDNnzvDJJ5+we/dukpOT9drfuHEj18fMj3379vHRRx/RsWNHJk2apCuPi4sjISGB9evXs379+lyPze60zB5t4u7ubtDG3d2dv/76K1+xaDQali9fjpubGydOnOC7777DxcUl38/F0dGRRYsW0aFDB6ytrVm1apXeLRk7OzuaNWuW6+O2bdsWyOrMzY21tTUtWrTItW7z5s0MHDgQHx8fZsyYke9489KtWzc2bNjApk2baN++Pf369dOrb9y4ca7HOTk54eTkBMBbb72Va5t69eoZlLm4uOheZ19fXzZt2oSvry+7d++mVatWjx3/mTNnUEoxe/ZsZs+enWub7PcOwM6dO5k0aRJ//vmnwYisp3lvP0q1atX0fj916hQAgwcPZvDgwbkekzPuwkKSxDNiZmZGYGAgXbp0YdmyZXne03/YvegH67Lve+fmYffB86pT9+4lJyUl0aJFC0qWLMnEiROpWbMmVlZWaDQaunXrhlarzfPcD/Pvv//y/vvv4+HhwapVq/SeT/Y5O3XqxIcffpjr8RUqVNCLsyBGT+3bt0830iQ8PJz33nvvsY7fvn07kNU/dPbs2Tz7RKpWrfrIoZT+/v65zpPI6YcffqBr1640b96cDRs2UKLE0//JJiQkcOjQISDr3v7t27exsrLKte2j5kgAuc6ReJgOHTpgZWXF8uXLnyhJZL93BgwYkOe/X/Xq1QE4ePAg7du3p3Hjxvzf//0flSpVwtLSkpiYGPz9/fP93s7Z95JTZmZmnsc8+Pea/ViBgYE0bdo012Py+hJhSpIknqH3338fLy8vpkyZwvjx4w3qq1atysmTJw3Ks8uMNZP4p59+4sqVK/z88894e3vrylNTU5/4m1ZSUhI+Pj5oNBq2bNmCjY2NXr2zszN2dnakpaU98oMi+xvZqVOnaNCggV7d6dOn8x3TpUuXGDhwIE2bNqV69epMmzaNdu3a8eqrr+br+G3bthEcHMyQIUPYtWsXfn5+nDhxQnc1VtB++eUXOnbsiJeXF1u2bDG4UnxSAQEBxMfH88UXXzB8+HBGjRql19H7rGVmZpKRkfHE7y03NzddJ/mj3jvr16/HwsKCPXv26H1o79q1y6Dtw76ElC1bVje0N6fz58/nO+4aNWoAWcnjSZKjqcg8iWdIo9EwadIkLl26xOLFiw3qfXx8OHv2rN6ciuzL6Ox6Y8i+0njwW9XMmTOf6CpCq9XSvXt3zpw5Q2hoaK7JztzcnC5durBr165cJ6ClpaXpZuW2bt0aS0tLFixYoDcBa8eOHbkm2dwopfDz8yMjI4NVq1axYMECKleuTM+ePQ1ur+UmLi6Ovn370qBBA2bOnMmaNWu4du0aAwcOzNfjP64//viDd955hxo1arBz506DJPukVqxYwXfffcfUqVMZOnQow4YNY+HChbmuEvC08rp1smzZMu7evcsrr7zyROd1dnbmzTffZMWKFZw9e9agPjExUTeayNzcHI1Go/eNPzMzk1mzZhkcl/0a55a8atasyalTp7h8+bKu7NatW7rRUfnRsGFD3N3d+fLLL3OdrBgXF5fvcxmTXEk8Y++++y6vvPKKbqZqTp988gkbNmzgP//5j24I7Pfff8+OHTv46KOPcr2/+yw0bdoUZ2dnevXqxccff4ydnR0//fQThw8fxtHR8bHP9/XXX7Nt2zbatWtHdHS0wQzjTp06YW1tzfTp0/nll19o2bIl/v7+NGjQgLS0NE6fPs23335LaGgo3t7eODo6Mm7cOCZOnEjLli3p3LkzMTExLFy4kLp16+ZriYe5c+fy008/sWzZMt2VyapVq2jRogXDhg1jyZIlDz2+b9++JCYm8vPPP2NhYUHDhg0JDAzk008/xcfHhx49ejz265SX6Oho2rRpQ2pqKn5+fnz//fd69eXKldPrywoMDCQoKMjgSvBBUVFRDB48GG9vb4YPHw7AtGnT2L17Nx988AEnTpzQ9TkUhGnTprFv3z7atGlDtWrVSElJ4cCBA2zatIlatWoxZMiQJz73okWLaNq0KQ0aNKBfv37Url2bW7duERERQWhoKBEREVStWpUOHTowd+5cWrZsiZ+fH6mpqaxfvz7XLz+NGjVCo9Hw+eefc/PmTUqXLk3jxo2pVq0a/fv3Z86cObRq1YqAgABu377NkiVLqFSpkl7ieBgzMzOWL1/OW2+9RZ06dejbty/Vq1cnPj6ev/76i82bN+uSW6Fiyl7z4uTB0U057dq1Szf8L7fJdL1791ZOTk7KwsJCeXh4qDlz5uQ5mS43edVlj7J4cLhdbiNGjhw5ot544w1la2urypQpozp16qTOnz+vXF1d9SYw5Wd0U14Tk7J/co4EuXHjhho1apSqUaOGsrCwUI6Ojurll19WgYGB6vr163pxz549W7m6uipLS0vl5eWV78l0x48fV5aWlsrX19egbuzYsQpQmzdvzvP44OBg3aiUnDIzM1WzZs2Uvb29io6OfmgMj+NRkxEfHGUzYsQIpdFo1MmTJ/M8Z3asZcqUMRh9lP36dOrUqcCeg1JK/fDDD6pjx46qcuXKytLSUpUuXVrVrVtXjRs3Lt9DPfMaAqtU1t/OgAEDVOXKlVXJkiXVCy+8oJo1a6ZmzpypN9Jv3bp1ql69eqpUqVKqQoUKasiQISoiIsLgfayUUgsXLlTVq1dX5ubmBvWhoaHKw8NDlSxZUrm5uakFCxY8dHTTg3932U6ePKl69Oihypcvr0qWLKkqVKigWrVqpb766qt8vSbGplEql94YIUSR8fLLL1O1alW+/fZbU4ciiiFJEkIUYTdu3KBcuXKEh4frZgkLUZAkSQghhMiTjG4SQgiRJ0kSQggh8lSshsDeunXL1CEIIUSRlduyP3IlIYQQIk+SJIQQQuSpWN1uyimv1VKFEELc96jb9HIlIYQQIk+SJIQQQuRJkoQQQog8Fds+iQcppUhISHjiDXRE8WVmZoaDg0OBbGokhNEFBYG7O3TrBuvWwenTMHFigZ3+uUkSCQkJWFtbF9jGLaL4SEtLIyEh4YmWRRfCpAIDs5KEmVlWgti6FbRaUCqrrgA8N7ebtFqtJAiRq1KlSskVpih6goIgKIj9bs1Ixww2b85KEDnqCsJzkySEEKJYcXfnN7emvDlkD28O2cMVu3L368zMsm5BFQBJEkIIUQRd9unG+x9tIb2EBftrvs5Lnxzh92r39mv38cnqoygAkiSKOX9/f8aPHw/A/v37cS+gbxePotFoct1/+GlVrVqVH3/8scDPK0RRcjcTOq+J43IpB11ZbJmKXLZ3yfpl69asPooCYNQk0bNnT1xcXLCzs6NWrVosXboUyNp7V6PRYGNjo/uZPHmy7jilFGPGjMHR0RFHR0dGjx5NcdoGo2rVqpQuXRobGxvKlStHnz59SE5OLvDHad68OadPn35ku5CQEJo1a1bgjw8QEBBA7969DcqPHz+OpaUlCQkJz+RxhShORvwGv2Y665V9sutzfI9tyvpFq80a5VQAjJokxo4dS1RUFImJiWzZsoXx48dz5MgRXf3NmzdJTk4mOTmZzz77TFe+ePFiwsLCCA8P5/jx42zbto3g4GBjhv7Mbd26leTkZI4ePcrhw4eZMmWKQZuMjAwTRFaw/P392bhxIykpKXrlK1eu5J133sHBwSGPI4UQACtPw4II/bLWJ3czhcNZfRGQNQS2gIbBGjVJeHp6YmlpCWTdjtBoNJw7d+6Rx61YsYIRI0ZQqVIlKlasyIgRIwgJCXmqWDSLnu3Pk6pYsSJt27YlIiLrXaDRaPjqq6+oWbMmNWvWBGDbtm3Ur1+fMmXK8Nprr3H8+HHd8X/99RcNGzbE1taWrl27kpaWpqvbu3cvlSpV0v1+8eJFfH19cXZ2xtHRkUGDBnHy5EkGDBjA77//jo2NDWXKlAHgzp07jBw5kipVqlCuXDkGDBhAamqq7lyzZs3CxcWFChUqsGzZsjyfX5MmTahYsSKhoaG6sszMTL755hv8/Pw4d+4cLVu2xNHREScnJ3r06MHNmzdzPVfOW2m5Pb/Y2Fjee+89nJ2dqVatGvPnz3/4iy9EIXc0DgL26Ze5Zt5k7atJmIdthDVrsoa+FtDwVzBBn8SHH36IlZUVHh4euLi40K5dO12dq6srlSpVok+fPsTHx+vKIyMj8fLy0v3u5eVFZGSkUeM2losXL7J9+3YaNGigKwsLC+PQoUP8/fffHD16lA8++IDg4GCuX79OQEAA7777Lnfu3OHu3bt07NiRXr16kZCQQOfOnfU+jHPKzMzknXfewdXVlaioKGJiYujWrRu1a9fm66+/pkmTJiQnJ+s+oMeMGcOZM2c4duwYZ8+eJSYmhkmTJgGwc+dOZs+eze7du/nnn38e2WfQu3dvVq5cqfv9xx9/JD09nbZt26KUYuzYscTGxnLy5EkuXrxI4BO84bVaLT4+Pnh5eRETE8OePXuYN28eu3bteuxzCVEYXE8D312Qlnm/rJQ5bOpaBsfuvlkF3boV6EQ6MEGSWLhwIUlJSezfvx9fX18sLS1xcnLi8OHDREdHc+TIEZKSkujRo4fumOTkZL1VXe3t7UlOTi5W/RIdO3akTJkyNGvWjBYtWjBu3Dhd3dixY3FwcKB06dIsWbKEgIAAGjdujLm5OX5+flhaWnLw4EEOHjxIeno6Q4cOpWTJkrz//vu8/PLLuT7eH3/8QWxsLLNmzdJNMsyrH0IpxZIlS/jiiy9wcHDA1taWcePGse5ex9iGDRvo06cPdevWxdra+pEf6r169WLfvn1cunQJyLrV1L17d0qWLEmNGjVo3bo1lpaWODs7M3z4cPbt2/fQ8+Xm8OHDxMXFMWHCBCwsLKhevTr9+/fXxSxEUZKphf/shugk/fLFLaCBc+7HFBSTzLg2NzenWbNmrF69mkWLFjF48GAaNWoEQLly5ViwYAEuLi4kJiZiZ2eHjY0NiYmJuuMTExOxsbEpVssohIWF0apVq1zrKleurPv/6OhoVqxYwf/93//pyu7evUtsbCwajYaKFSvqvS6urq65nvPixYu4urpSosSj3wJxcXHcvn2bl156SVemlCIzM+srTWxsrF5dXo+ZrUqVKrz++uusXr2aQYMGERYWxv79+wG4du0agwcPZv/+/SQlJaHVailbtuwjY3xQdHQ0sbGxuttlkHX11Lx588c+lxCmNv4P2H1Jv2xQXehlhMGKJl2WIyMjI9c+iewPuewrBU9PT8LDw3nllVcACA8Px9PT86keWw18qsONKueHfuXKlfn000/59NNPDdrt27ePmJgYlFK6Yy5cuICbm5tB28qVK3PhwgUyMjIMEsWDydfJyYnSpUsTGRlJxYoVDc7l4uLCxYsXdb9fuHDhkc/Jz8+P6dOn4+LiQrVq1WjYsCGQddWk0Wg4fvw4jo6OhIWFMWjQoFzPYW1tze3bt3W/X7lyRe/5VatWjX/++eeRsQhRmIWeg+l/6Zc1LQ9zXjPO4xvtdtO1a9dYt24dycnJZGZmsmvXLtauXUvLli05dOgQp0+fRqvVcv36dQYPHoy3t7fuFlPv3r2ZO3cuMTExxMbGMmfOHPz9/Y0VeqHSv39/vv76aw4dOoRSipSUFL7//nuSkpJo0qQJJUqUYP78+WRkZLBx40b++OOPXM/zyiuv4OLiwieffEJKSgppaWn8+uuvQNbV3KVLl7h79y6QtQBe//79GTZsGNeuXQMgJiZGd3+/S5cuhISE8Pfff3P79m2C8rEcwHvvvcfFixeZOHEifn5+uvKkpCRdh3lMTAyzZs3K8xz169dn+/btJCQkcOXKFebNm6f3/Ozs7JgxYwapqalkZmYSERHB4cOHHxmbEIXF3wng/7N+mYsVfPsWWJgbJwajJQmNRsOiRYuoVKkSZcuWZeTIkcybN48OHTpw/vx52rRpg62tLXXr1sXS0pK1a9fqjg0ICMDHx4d69epRt25d2rdvT0BAgLFCL1QaNWrEkiVLGDRoEGXLlqVGjRq6kV4WFhZs3LiRkJAQypYty/r16/H19c31PObm5mzdupWzZ89SpUoVKlWqxPr16wFo2bIlnp6elC9fHicnJwBmzJhBjRo1ePXVV7Gzs6NVq1a6ORdt27Zl6NChtGzZkho1atCyZctHPg9ra2tdosjZ/zRx4kSOHj2Kvb097du3zzN+yOrb8PLyomrVqrz11lt07drV4PkdO3aMatWq4eTkRL9+/R65C5cQhcWtO9BpJySn3y8raQbfvQ0u1saLQ6OKUe9vzg+AB7cvjYuLw9n5GffwiCJL3h+iMNEq8N0Jm6P0yxc2h4F1C/axHva5CbIshxBCFDqfHzVMEP7uMODpumKfiCQJIYQoRHZEw2cPdCW+5AwLXwdTDOiUJCGEEIXEuVvQ/UfI2QfgWApC34bSJhqLKklCCCEKgdvpWTOqb969X2amgXWtwdXWdHE9N9uXCiFEoRQUhKrlTn/nbhy/rl81vTG0qpT7YcYiVxJCCGEq9xbjm7/0IN88MO+zsxuMrG+SqPRIkhBCCFO4tw/1vpqvM6LTbL2qOrGRLDs4zSQd1Q+SJCGEEKbg7s55Zzfe6x9Kpvn9O/92qbfYtPQ9bGpVN2Fw90mSEDqBgYH07NmzwM/7LHe6E6KoutWpGz6jfuK6jZNe+aqQXtRq7FFge1Q/LUkShYi3tzdly5blzp07+WpvrA/fmJgYSpQoketijJ06dWLkyJHPPAYhipMMLXRbGcvfNlX0ygO3TeTdE1sLdI/qpyVJopCIiopi//79aDQatmzZYupw9FSsWJE333yTVatW6ZUnJCSwfft2vQX6hBCPNup32JlRQa+s2+G1TNietZFXQe5R/bQkSTxKUND9jL5uXdbvz8DKlSt59dVX8ff3Z8WKFXp1j7PNqLe3N0uXLtUd++DVxpAhQ6hcuTJ2dna89NJLun0cHsXPz88gSaxbtw5PT0/q1avH9OnTcXNzw9bWljp16rBp06ZczxMVFYVGoz51aPQAACAASURBVNHbr/vBmJctW0bt2rUpW7Ysb7/9NtHR0fmKUYiiYPHfMO+4ftnLUX+w7OYmNM9gj+qnJUniYbL3iu3RAzp2zPpvAe8fm23lypX06NGDHj16sGvXLq5evQo8/jajj/Lyyy9z7NgxEhIS6N69O507d9bbBzsvnTp1Ij4+ngMHDujKVq1aRe/evQFwc3Nj//793Lp1i4kTJ9KzZ08uX7782K9DWFgY06ZNY+PGjcTFxdG8eXP+85//PPZ5hCiMfo6Bjx74XlYxM5HNXrGU3rjhmexR/bQkSeTl3vA0IOvSb/PmrP8+WFcADhw4QHR0NF26dOGll17Czc2Nb775Bni8bUbzo2fPnjg6OlKiRAlGjBjBnTt3dEt+P0zp0qXp3Lmzbm/qf/75hyNHjtC9e3cAOnfuTIUKFTAzM6Nr167UrFkzz70sHiY4OJixY8dSu3ZtSpQowbhx4zh27JhcTYgi75+b8N6urP6IbFYlYGtXO1y6d8wqeAZ7VD8tSRJ5cXcHszxeHjOzrPoCsmLFCt566y3d3g3du3fX3XJ6nG1G82POnDnUrl0be3t7ypQpw61bt4iPj8/XsX5+fmzYsIG0tDRWrVpFmzZteOGFF4CsK6H69etTpkwZypQpQ0RERL7Pm1N0dDRDhgzRncfBwQGlFDExMY99LiEKi5t3wGcH3HhgTMqqN5/9HtVPS5blyEu3bll9EJs3G9b5+BTY8LTU1FQ2bNhAZmYm5cuXB+DOnTvcvHmT8PDwx9pmFB6+pef+/fuZMWMGe/bswdPTEzMzM8qWLUt+txRp3rw5jo6ObN68mdWrVzNz5kwg64O9f//+7NmzhyZNmmBubk79+vVzPa+1ddZuKbdv38bOzs4gxuztWXNuRCREUZahhS4/wOkH7ghPfQV8C8dUiIeSK4m8rFuXNQwtNwU4PC0sLAxzc3P+/vtvjh07xrFjxzh58iTNmzdn5cqVj7XNKGRt6blx40Zu377N2bNn+d///qerS0pKokSJEjg7O5ORkcGkSZNITEx8rHh79+7NmDFjuHnzJj4+PgCkpKSg0Wh0m/YsX76ciIiIXI93dnamYsWKrF69mszMTJYtW6Y3tHbAgAF8/vnnREZGAlkbonz77bePFaMQhcmwX2H3Jf2yHjVhbEPTxPO4jJokevbsiYuLC3Z2dtSqVUtvRMuePXvw8PDAysqKN954Q+8etFKKMWPG4OjoiKOjI6NHj873t98ndvr0/T6IBxXg8LQVK1bQp08fqlSpQvny5XU/gwYNYs2aNSilHmub0WHDhmFhYUG5cuXw8/PT+0b+9ttv07ZtW2rVqoWrqyulSpWicuXKjxVv7969uXDhAl27dsXS0hKAOnXqMGLECJo0aUK5cuU4ceIETZs2zfMcS5YsYdasWTg6OhIZGclrr93f0b1Tp06MGTOGbt26YWdnR926ddmxY8djxShEYbEwAhY88H3p1XKw1Ns0e0M8EWVEERERKi0tTSml1MmTJ1W5cuXUn3/+qeLi4pSdnZ3asGGDSk1NVSNHjlSNGzfWHff111+rWrVqqYsXL6pLly6p2rVrq0WLFhmc/+bNm7qfB127du3xA544USlQysxMqQ4dsv4LWeWiWHmi94cQD7H7olLmi5Ri4f2fyiuVupJi6sj0PexzUymljNon4el5f+89jUaDRqPh3LlzHDlyBE9PTzp37gxkLQ/h5OTEqVOn8PDwYMWKFYwYMYJKlbLWzB0xYgRLlixhwIABzzbgwMCsdO/ufr+P4vTpQjf6QAhRuJy+AZ13QWaOGx7WJWBrWyhnZbq4noTR+yQ+/PBDrKys8PDwwMXFhXbt2hEZGYmXl5eujbW1NW5ubrr70g/We3l56eqeuYkT73dSF8LhaUKIwiUhLWskU87NgzTAN63AyynPwwotoyeJhQsXkpSUxP79+/H19cXS0pLk5GTs7e312tnb25OUlARgUG9vb09ycvKz75cQQojHkJ4JnX+Af27pl09/Fd6tZpqYnpZJRjeZm5vTrFkzLl26xKJFi7CxsTEYZZOYmIitbdaefQ/WJyYmYmNjk+sQUCGEMAWl4OMD8NMDU3r83GFUIdg86EmZdAhsRkYG586dw9PTk/DwcF15SkqKrhwwqA8PD9fr3xBCCJO5t77bgggI/lu/qml5CG5RhEYy5cJoSeLatWusW7eO5ORkMjMz2bVrF2vXrqVly5Z06tSJiIgIQkNDSUtLY9KkSbz44ot4eHgAWcMu586dS0xMDLGxscyZMwd/f//HenwzM7N8rVEknj9paWmY5TW7XoiHubfO0s4pKxm6P1OvqqotbGoDluamCa2gGG10k0ajYdGiRQwYMACtVourqyvz5s2jQ4cOAISGhjJo0CB69uxJ48aNWZdjslpAQADnz5+nXr16APTr14+AgIDHenwHBwcSEhJ0/RxCZDMzM8PBwcHUYYii5t4abifLe9D1g7VoNfezgU1aEluvr8K59IcmDLBgaFQx6v29det+b9GDHeFCCFGg1q3jyoDhvDryN6Idq+qKNVotW4M70H5cj0Kzu9zDPOpzU9ZuEkKIJ5Dk24120S8TbVdVr3z2xpG0r25eJBJEfsiNWCGEeEzpmdB5xWX+snPTK+93YAnDfvqiUG0/+rQkSQghxGNQCvrvg10ZLnrl7SK+Z9G6gWigUG0/+rQkSQghxGOYcBhWPPD53yj6MOuvrKIE97p4C9H2o09L+iSEECKfgiNhyhH9suqZCXz/4iVspq+DdR2L3fpuMrpJCCHyYWsUdNwJ2hyfmE6l4LdOULOMycJ6ao/63JTbTUII8QiHrkLX3foJonQJ2NauaCeI/JAkIYQQD/HPTXhnO6Rm3C8z08D61tC4nOniMhZJEkIIkYdrt6Ht9xD/wIo+C5uDT1WThGR0kiSEECIXKenwzg4498A28J82hIDnaH1RSRJCCPGADC10+QEOX9Mv710LJr9imphMRZKEEELkoBQM/AW2X9Avb10JlngX7WW/n4QkCSGEyGHKEVh6Ur+svhOEvg0WRXzZ7ychSUIIIe5ZfiprRnVOrrawvR3YWpgmJlOTJCGEeL7d21lu5wXo/7NWr6qsJexoDy7WJoqtEJBlOYQQz6/AQAgK4ohrI94f0YHMEqV1VZbmsLUt1C5ruvAKA7mSEEI8n+7tLPevY1XaD9hKSo4EodFq+SZhPU1dHnL8c0KShBDi+eTuzuUyFWj98W6u2pfXq/oydCi+VYvNsnZPxWhJ4s6dO/Tt2xdXV1dsbW1p0KABO3bsACAqKgqNRoONjY3uZ/LkybpjlVKMGTMGR0dHHB0dGT16NMVoXUIhhAlc79iN1mN/49wLNfTKR+2eycd2F4rNznJPy2h9EhkZGVSuXJl9+/ZRpUoVtm/fTpcuXThx4oSuzc2bNylRwjCkxYsXExYWRnh4OBqNhtatW1O9enUGDBhgrPCFEMVI4l1os/I6kbaueuXd/1jD9LBPsiZDrFsniQIjXklYW1sTGBhI1apVMTMz45133qFatWocOXLkkceuWLGCESNGUKlSJSpWrMiIESMICQl59kELIYqd2+ngsx3+zHTUK/c5voWQlf6YKVWsdpZ7Wibrk7h69SpnzpzB0/P+Iiiurq5UqlSJPn36EB8fryuPjIzEy8tL97uXlxeRkZFGjVcIUfTdzYT3f4BfLuuXtzy9hw1XV1GSe0Ngi9HOck/LJEkiPT2dHj164Ofnh4eHB05OThw+fJjo6GiOHDlCUlISPXr00LVPTk7W2wzD3t6e5ORk6ZcQQuRbphZ67oEdDyy30Tj9Epsb36DUxm9hzZqsYbGBgaYIsVAy+s50Wq2W7t27k5iYyObNmylZsqRBmytXruDi4sKtW7ews7PD3t6e3bt388orWStrHTlyBG9vb5KSkvSOk53phBC50SrotzdrRnVOLzrCz++CQymThFUoFKqd6ZRS9O3bl6tXrxIaGpprggDQ3FtBKzt/eXp6Eh4erqsPDw/Xu00lhBB5UQqG/WqYIGraww/vPN8JIj+MmiQGDhzIyZMn2bp1K6VL35+4cujQIU6fPo1Wq+X69esMHjwYb29vXVbr3bs3c+fOJSYmhtjYWObMmYO/v78xQxdCFFETD8P8E/pllW3gRx8oZ2WamIoSow2BjY6OJjg4GEtLS8qXvz9xJTg4GDMzM8aNG8e1a9ews7OjdevWrF27VtcmICCA8+fPU69ePQD69etHQECAsUIXQhRRs4/B5AcGUJYrDXt8oIqtaWIqaozeJ/EsSZ+EECLb4r8hYJ9+WRkL2Ncxqy9CZClUfRJCCGEMa/+BAQ8kCOsSsPMdSRCPS5KEEKJY2fIv9NoDOW+RWJrD1nbQuJzJwiqyJEkIIYqNPZegy27IzJEhSpjBd2/BGxVNF1dRJklCCFG03ds06OAV6LA1nTuZ96s0wKqW8E5VUwVX9MmmQ0KIouvepkHhlevTduQ7pJS00asObgHdapomtOJCriSEEEXTvU2DzrxQk7c+2snNBxLEnKRd9K9jotiKEUkSQoiiyd2d0+U98B66l2t2+j3SE7cHMbzKDRMFVrzIPAkhRJF06ga0DEngcikHvfKhe75gbsY+NGFhJoqsaJF5EkKIYufkDfBen2qQIPodWMLc0OFotm7N2jRIPDXpuBZCFCl/J8AbW+CaKq1X3u/AEoLXBqAB2TSoAMmVhBCiyIi4Dt6b4Vqqfvl/DywmOGU7ZvdWkJZNgwqOXEkIIYqEE9fhzS0Ql6ZfPuD2n3z1jh1m/9mUdYvp9GlJEAVIOq6FEIXe8XsJIv6BBPGhJyxoDtkXEOLxSce1EKJIOxYPLXNJEIPqSoIwBrndJIQotP6Kg1ZbIeGOfvngejCvqSQIY5ArCSFEoXQ0Dt7MJUEMfVEShDFJkhBCFDpH4rL6IG48kCCGe8Hc1yRBGJPRksSdO3fo27cvrq6u2Nra0qBBA3bs2KGr37NnDx4eHlhZWfHGG28QHR2tq1NKMWbMGBwdHXF0dGT06NEUo/52IUQOh69Bqy1w865++UgvmN1EEoSxGS1JZGRkULlyZfbt28etW7eYPHkyXbp0ISoqivj4eHx9fZk8eTIJCQk0atSIrl276o5dvHgxYWFhhIeHc/z4cbZt20ZwcLCxQhdCGMmhq9B6q2GCGF0fZkqCMAmTDoF98cUXmThxItevXyckJITffvsNgJSUFJycnPjrr7/w8PDgtddew9/fn//+978A/O9//2PJkiUcPHhQ73wyBFaIIigoCNzdOejdjbc33SURC73qsQ1gamNJEM9KoR0Ce/XqVc6cOYOnpyeRkZF4eXnp6qytrXFzcyMyMhLAoN7Ly0tXJ4QowgIDITCQ38f/H299e9sgQXzaUBKEqZkkSaSnp9OjRw/8/Pzw8PAgOTnZIIPZ29uTlJQEYFBvb29PcnKy9EsIUZTd2w/igFtT3vpoJ0klrPSqP0vZx+RXJEGYmtGThFarpVevXlhYWLBgwQIAbGxsSExM1GuXmJiIra1trvWJiYnY2NigkXePEEWXuzvb67bnrY9/ILmUrV7VxO1BTKp0WRJEIWDUJKGUom/fvly9epXQ0FBKliwJgKenJ+Hh4bp2KSkpnDt3Dk9Pz1zrw8PDdXVCiKLpm4bd6DAgjFQL/SuIwG0TCTT/C7p1M1FkIiejJomBAwdy8uRJtm7dSunS95f57dSpExEREYSGhpKWlsakSZN48cUX8fDwAKB3797MnTuXmJgYYmNjmTNnDv7+/sYMXQhRgBacgB57IMNMf9GHKVs+ZeL2SSD7QRQaRksS0dHRBAcHc+zYMcqXL4+NjQ02NjasWbMGZ2dnQkND+fTTTylbtiyHDh1iXY43SEBAAD4+PtSrV4+6devSvn17AgICjBW6EKKAKAWBh+HjA/rlGq2WhWsH8unOaVkFsh9EoSGrwAohjEKrYMgBWBChX14iM51VK/3oVuF21hWEVpu11HdgoEnifN486nNTFvgTQjxz6Zng9xOsPatfblUCQm+up83wd7P6IGQ/iEJHriSEEM/U7XR4/wfYcUG/vKwlfN8OmpQ3TVwiS4FNpnNzc2P69OlcvXq1YCITQhR7N+5A622GCcLFCn7pIAmiKMh3kujduzfBwcFUqVIFX19fdu3a9SzjEkIUcZdToEUY/HZFv7yGPfzaCeo6miYu8XjynSQmTpzI+fPn2bJlC+bm5rz77rtUrVqVKVOmEBsb+yxjFEIUMeduQbMwOJGgX+7lCAc6QjU708QlHt8T90nExcWxePFipkyZQkZGBu3atWPkyJE0b968oGPMN+mTEML0jl+Ht7fBldv65c1dYEtbKGNpmrhE7p7JAn+nTp1ixowZzJs3DxsbGz7++GNKlSpFq1atmDBhwpNHK4Qo0g5chtfDDBPEO66w6x1JEEVRvq8k0tLS+Pbbb1myZAm//vorTZs2JSAggPfffx9Ly6x/+S1bttCrVy+9zGRMciUhhAncW+p7e5NuvL89g9QHRtb3qgX/84aS5qYJTzxcgc2TcHFxwczMjJ49e/L1119Tp04dgzavv/46Dg4OTxiqEKLICQyEoCDWvNIT/+vvGyyzMfRFmPMamMlCfUVWvpPEF198Qbdu3ShVqlSebcqUKcO///5bIIEJIQq5oCBUUBBfvjGEYZ3nGVRPSf6Jca+1lJVci7h890n4+/s/NEEIIZ4vGbU8GNTtK4MEodFqWbTuQz6tfE0SRDEgy3IIIR5b4l3oatuVna/rl5fMuMvqkJ50qXxXlvouJky2fakQomi6kATNNsHOi/rltqmJbFv0Dl2OfitLfRcjciUhhMi3w9fAZztcTdUvr3I9mu8Xtqfu5Xt7z8tS38WGXEkIIfJl43losdkwQbwc9QeHZjeh7is1wOzeR8rEibKSazEhVxJCiIdSCmYfg9EHDeveqw4rr+3G6uu5stR3MSVLhQsh8pSeCR/thyUnDevGNIBpjWUORFEnmw4JIZ7IzTvQ+Qf48ZJ+eQkzWNQc+hnOpxXFkFH7JBYsWECjRo2wtLTE399fVx4VFYVGo9Hte21jY8PkyZN19UopxowZg6OjI46OjowePZpidAEkRKHzbyI03WSYIOwtYEd7SRDPE6NeSVSoUIHx48eza9cuUlNTDepv3rxJiRKGIS1evJiwsDDCw8PRaDS0bt2a6tWrM2DAAGOELcRz5fcr0GEHxKXpl1e1zdpJro6svPNcMeqVhK+vLx07dsTR8fF2G1mxYgUjRoygUqVKVKxYkREjRhASEvJsghTiObbhLLyxxTBBvFoODvlKgngeFaohsK6urlSqVIk+ffoQHx+vK4+MjMTLy0v3u5eXF5GRkaYIUYjiJygItXYd045A191wJ1O/umsN+OldeMHKNOEJ0yoUScLJyYnDhw8THR3NkSNHSEpKokePHrr65ORkvV53e3t7kpOTpV9CiKcVGMjdyVP5YGcan/5hWP1pQ/imFZSWIS7PrULxT29jY0OjRo0AKFeuHAsWLMDFxYXExETs7OywsbEhMTFR1z4xMREbGxs0snqYEE8uKIjLXwTTechP/FqjmV5VyYy7LLm9Hb/GHU0UnCgsCsWVxIOyP/yzrxQ8PT0JDw/X1YeHh+Pp6WmS2IQoLg64NaXh2KMGCaJsSgI/fNUGP9e0PI4UzxOjJomMjAzS0tLIzMwkMzOTtLQ0MjIyOHToEKdPn0ar1XL9+nUGDx6Mt7e37hZT7969mTt3LjExMcTGxjJnzhy9IbRCiPxTCv7vBLyR0oor9i56dW7XzvL7rCZ4e9jJKq4CMHKSmDJlCqVLl2b69OmsXr2a0qVLM2XKFM6fP0+bNm2wtbWlbt26WFpasnbtWt1xAQEB+Pj4UK9ePerWrUv79u0JCAgwZuhCFAu306HXHhh8ADK0+nWtT/7AoVmNcb92RlZxFTqyLIcQz4lzt8B3Fxy/blg3budUJm2dgLnKkTkCA2UNpufAoz43C2WfhBCiYG2PhkbfGSYIW+0dNgV3ZOq2CZi/6yOruAoDhWJ0kxDi2dAqmPwnBP0JD94yqFMWNr5tiXt8A/ikm6ziKnIlt5uEKKZu3Mnqf/g+2rCusxssewNsSho/LlG4yCqwQjyHjl8H351wLlG/3FwDM16F4V4g04xEfkiSEKKY+eYM9NsHqRn65c6lYP1b8EZF08QliibpuBaiqAsKgnXrSM+EIctO02OPYYJ45QU40lkShHh8ciUhRFEWGAhBQVyxd6HLuXrsdzBciSCgDnzZDCzNjR+eKPokSQhRVAUFQVAQ+92a0bXvei6XqaBXbakyWPhGCT6obaL4RLEgt5uEKKIyankwwWcS3sP2GiSIKgnRHLDbIwlCPDW5khCiCPo3EXpYduX3toZ1rU7uZu3llTh9usr4gYliR64khChivjkDXhvg96uGdWN3TmPngjY4bfxG1l4SBUKuJIQoIhLvwkf7YfUZw7ryty6zckVvWp/6MatAkTVzWoinJFcSQhQBB69A/Q25J4h3Tmzl+Of1ae1uLWsviQInVxJCFGKZWvj8Lwg8DJkPLKBTyhxmvwYfXjuKJvhLWXtJPBOydpMQhdSFpKy1l365bFhX1wHWtoK6jsaPSxQvsnaTEEXQt+fgv3vh5l3Duo/rZa2/VFr+eoURyNtMiEIkOR2GHIBlpwzrnEpBSEto72r8uMTzy6gd1wsWLKBRo0ZYWloa7FG9Z88ePDw8sLKy4o033iA6+v76xkopxowZg6OjI46OjowePZpidJdMPO/urb10JA4aLkvMNUG8VRlOdJUEIYzPqEmiQoUKjB8/ng8++ECvPD4+Hl9fXyZPnkxCQgKNGjWia9euuvrFixcTFhZGeHg4x48fZ9u2bQQHBxszdCGejcBAtEFBzFz+F002pPOP1k6vuqQZzH0NdrSH8lYmilE814yaJHx9fenYsSOOjvq9bRs3bsTT05POnTtTqlQpAgMDCQ8P59SprK9UK1asYMSIEVSqVImKFSsyYsQIQkJCjBm6EAUvKIjTi9biPXQvYzrOIN1Mfwcgj4w4DvnCMC8wk70fhIkUinkSkZGReHl56X63trbGzc2NyMjIXOu9vLx0dUIURRlamO7aEa9Pw9lf83WD+oADwRxx2ksDZxMEJ0QOhaLjOjk5GWdn/b8Ge3t7kpKSdPU5h2bZ29uTnJyMUgqNbK8liphj8dD3Zzia6gUPbB/qkHydpWv60amqgv+EmSZAIXIoFEnCxsaGxET9fRYTExOxtbXNtT4xMREbGxtJEKJIScuAyUdgxl+GE+MA2kZsZ/E3/6XSzRg4YZY1Ma5bN+MHKkQOheJ2k6enJ+Hh4brfU1JSOHfuHJ6enrnWh4eH6+qEKAp+uwINvoVpRw0ThGNyPKuX9+D7he2zEgSAVitrL4lCwahJIiMjg7S0NDIzM8nMzCQtLY2MjAw6depEREQEoaGhpKWlMWnSJF588UU8PDwA6N27N3PnziUmJobY2FjmzJljMIRWiMIoOR0GH4Bmm+DUTcP6rmkR/D2pDj2OrEPToYOsvSQKHaPebpoyZQpBQUG631evXs3EiRMJDAwkNDSUQYMG0bNnTxo3bsy6HMscBwQEcP78eerVqwdAv379CAgIMGboQjy2Hy7Cf/dBdJJhXQVrWNgcOlSrC4kfgbu7rL0kCiVZu0mIApaQBiN+g5A87hb1rw0zm0AZS+PGJURuZO0mIZ61oCDdlUDoygN8lFifq+Y2Bs2q28GSFtCykgliFOIJSZIQ4mkEBkJQEFfsXRh0sgqh5ZuBuX4TMw0MfREmvQzWJXM9ixCFliQJIZ5UUBCZkyaztNl/Gdvhc25YOxg08SwL/3sDGpczQXxCFABJEkI8oV+qN2PIJ39yrHIDg7qSGXcZZ3OGcZ3rYmGey8FCFBGSJIR4TBeSYNTvsCH5TahsWP9y1B/8L2YN9VZ/afzghChgkiSEyKfb6TDrGMw4BqkZhvVWd1KYtG0CQ3+ah7kGeKeJzJgWRZ4kCSEeQamsneJG/Q4XknNv0/2PNcwIG3N/xrRCZkyLYkGShBAPER4PQ36FfbG51zdMj2X+l51pGnUQfHxg6+WsJTVkxrQoJiRJCJGL+FT47A9YfBK0uUw3faE0TGsM/u4VML/xFrh/LDOmRbEkM66FyDEZLn3tehZdtGOiY1tu3jVsWsIMBteDCS+BvcyYFsWAzLgW4mHuTYbDzIwff/ibIZW68reLJ+SSINpUhi+agkdZo0cphMlIkhDPr6AgCArizAs1GdNxBmH1O+XarKZ9VnJoVwVkCxPxvJEkIZ5b52s0ZFLvEFa90hOtmeGMN1vS+ezVkgx5EZkQJ55bkiTEc+diMkw5AsuSfch4Nfc2/jF7+Hzcm5S3Mm5sQhQ2kiTEc+NyStbOcIv/hrva3Nu8ev535n87mJcvHoW6a2QynHjuSZIQxV5cata+0l9FQFpm7m08rpwkaNtE3v/rO8yyB/zJZDghCsce10I8CwlpMO4gVFsNc8JzTxBuGQmsCulJxNQX6VL5LmbZPdMyGU4IoJAlCW9vb0qVKoWNjQ02Nja4u7vr6vbs2YOHhwdWVla88cYbREdHmzBSUZjdugOBh6HaGvj8L0jJZZ2lKjaw1BtOfuhAz3Y1MV+9CsLCYM2arGGxgYFGjlqIwqlQTabz9vamZ8+e9OvXT688Pj4eNzc3li5dio+PD5999hn79+/n4MGDeu1kMt1z6t5kuOT3uvF/q8OZdbsWN8xK59q0gjWMbwh9a8uIJSGgmEym27hxI56ennTu3BmAwMBAnJycOHXqFB4eHiaOTphUYCApn88i+PUBTL/ShjhLr1yvj18oDWMbQIAnlC4S73ohCodCdbsJYOzYsTg5OdG0aVP27t0LQGRkJF5eXro21tbWuLm5ERkZaaIoRWEQM3kuY49ZUnnqRUb4ziHOsoxBG8dSMONVON8DhnpJ7702DgAAEMdJREFUghDicRWqP5kZM2ZQp04dLCwsWLduHT4+Phw7dozk5GScnZ312trb25OUlGSiSIUpHY2DueGw3mkoGW/n/j3H/vZNRjpcYHCPF7GzMHKAQhQjhSpJNG7cWPf/fn5+rF27lu3bt2NjY0NiYqJe28TERGxtbY0dojARrYJtUTD3eM5luw0ThE1aEkN/msdwy1OU/W6NMUMUolgqVEniQRqNBqUUnp6erFixQleekpLCuXPn8PT0NGF0whhS0iHkNMw7Dmdv5d3OIfk6Aw58zbA9X+CUch3MzGCdj0yGE+IpFZokcfPmTQ4dOkSLFi0oUaIE69ev55dffmHevHk4ODgwatQoQkNDad++PZMmTeLFF1+UTuti7FIyLIjImh19407e7dyvnGLoz/PofXAlVump9yu0WpkMJ0QBKDRJIj09nfHjx3Pq1CnMzc3x8PAgLCxMN1ciNDSUQYMG0bNnTxo3bsy6detMHLEoMDn2cziyehdfxLmw3upFMvJYOgOgZUUY7gVtl6/HbH9w1pVDhw6wdavsDCdEASpU8ySelsyTKIICA8mcNJltL77LF50ns8+hbp5NS5rBf2rAMC+o75SjIkeSkZ3hhHg8j/rclCQhTObUlAWE/JnMqsa9iC1TMc92DpYw0BM+qgsu1kYMUIjnQLGYTCeKj5t3YP3ZrM7og46D4O2827qbJTK0mR29a4FVSePFKIS4T5KEeOYytfDjpazEsOlfuJPHSqzZWp7aw/CU32i75DPMZCc4IUxKkoR4Zk7fgBWnYeUZiEl5eFvrtGS6HN3A4L3zqX8pPKsjulVNGcIqhIlJkhBPL0fH8a21oWy4YMHymj78fvXRh3qf+Zk+vy/H99hGbO7kyCQyhFWIQkGShHg6gYFkTJ7Czx5vEhLpwkandqTZlYaHJIiqtuDvDr3dodrcfXBolQxhFaKQkiQhnkjSXdg1dwObo9z4fsY1blg7PLS9VQno7JaVHF6vwP2+hsBA0GhkCKsQhZQMgRX5FpsCW6KyfvZcynuf6JxaVMhKDO9VB1tZaE+IQkeGwIonphREJsDmqKyfw9fyd5zr9Sj8bhyk94RuuEmuFqJIkyQh9DqeM9au58C/qWxu4c+WKDif+MijgawF9nxObKX3oZV4/7M3a6/ol5HRSUIUcZIknneBgcTPXsBe95ZsiSjH92VakVDWEY4/+tDqmQl02BtCh+ObaXruV0poc0yAUEpGJwlRDEiS+P/27j8mqjPdA/gXARlmBrgKAiouQivYRcvay0pcfnpto239kSZVsYCIbK25SdM07da6rQVrTa2mt2lCdtO0Xa1FawxTs7e76EWbCqi12xCxwqJUi9OrUCjQCkMHHJhn/xhhgZkzzMj8EPh+kgkw8553njy8zMM573vOmYT0XUBVM1D1t2pUmdehfl+Rw9suDgfWzAXWxAC/njYdPm2dgK6Sq5OIJigWiYnAzgXuRID6n+4UhTuP7w13tgv8TyDQftcBvsCy2ZaisDIamDXy2klcnUQ0oXF103hXVGQpElOmAKtWoe/vZbgwOxFV//0Gqh5cjjPNQFuPc11ON7Rj5a2LWJ3/X1j+K0DL6yYRTVhc3TSB9e98HY1/KkFt4hpcnJ2Is79Kwbm9JehWaS0NGh3rZ4q5H7+5UYPMhtNYfel/LfMLEGDBIeA+TjwTTWYsEveCUe6HIAL8vwGo7bA86u58/Wf4H9Gz8zWn3y7A1zK3kHa1Cul/eQNLGr9EcE+XdUNOPBNNeiwS3jbkcJEcOYKW0/9AXeQDqFUdR23yo4NFoctka2PHfn1B/kBKJJA203K2c9IMQOUHAGmAYQmws3zwcBUnnoloKM5JAGO/s5mD2/9iApp+sZy53NQNNB37P9z8qhZNIbNwY1oU6iMfQLs2zMYbOCe8swVp184g7XcxSH/8ITwYCvhOGXv8RDTxTJg5iY6ODhQUFKC8vBxhYWF488038dRTT42946ETv0eO/Ps/aRHLawpEAJMZML7xJoz/82cYAzRoPV6Nm5ca0RQciSZNFZoeSsPN7n8XhZ9vj+gkaDnwsJ277jgg1NCGhU2XkNBUh9/cqEH61UrMa/0WPgAwuwiY8dDonQwtCDz5jYiGGDd7Ehs2bIDZbMaHH36ImpoaPP744zh37hwSEhIG2zi9J7Fz52AhuBwRj32P/AE9fioYpwbC6B8I47wHYIyai55+wNh359EP9Nz5avZg5oKnAgumAwnTLF8XTAcSpgPhe4vgM2R107DDRXaKHBERMEH2JLq7u6HT6VBbWwutVovU1FSsXr0aH3/8Mfbs2XP3HcfHWz5czWb8qJ2Bv/yuwLqNg9crcpXA27/g183/xILmOixY+iASli7CglAgSmM5HcEKz1MgIjcaF0WioaEBvr6+iIuLG3wuMTERFRUVY+t44EP1r3+Fqs/Jkwnugt8UYKYamKW2nJQ2u+4fmHXyGGb93ITZP9/E3I7riGlrhK/cubxqbBEQvWj0jnm4iIjcZFwUCYPBYLUbFBISgq4uG8s2nTEwBwEg8LbR6c19YUZgTzcCTUaoTD0I7W7HrFtNlg/9zibMevIxzMr4LWZrLEVhRiCG37N5xWKgqwzYeXDI4aJGQMDVRUR0TxgXRUKr1aKzc/jlSDs7OxEUFDS2jq9csRy/BxD18w28X/J7qPp6EHjbiECTEYFPrYdqcx4C/YBAX8uy0UBfINAPUPkC/m/ssn/cPwlA3m/tx8DDRUR0DxsXRSIuLg59fX349ttvMW/ePADAxYsXh01a35XCQssypZ078R+9Xfj9jLbhE79/zHN4+zGdZ8DDRUR0jxo3q5uysrLg4+ODDz74ADU1NXjsscfGvrppgIfOkyAiuteM9rk5bopER0cHNm/ejJMnTyI0NBR79uyxOk9iUl7gj4hoDCZMkXAEiwQRkXNG+9y0d7EGIiKa5FgkiIhI0bhY3XQ3hu5CERHR3eGeBBERKWKRICIiRRNqdRMREbkW9ySIiEgRiwQRESmaVEWio6MDTzzxBDQaDaKjo3H48GHFtu+88w4iIyMREhKCzZs3o7e3162x9fb2oqCgANHR0QgKCsKiRYtw/Phxm20PHDgAX19faLXawcfp06fdGh8AZGZmQqVSDb5nfHy8YltP529oLrRaLXx9ffHss8/abOup/BUXFyMpKQkBAQHYtGnTsNc+//xzzJ8/H2q1GkuXLoVer1fsx5lx64r4zp8/j0ceeQTTp0/HjBkzsHbtWjQ3Nyv248y4cEV8169fh4+Pz7Df365duxT78XT+Dh06NCw2tVoNHx8fVFdX2+zHXflzGZlEsrKyZN26ddLV1SVVVVUSHBwstbW1Vu1OnDgh4eHhUltbKx0dHZKRkSHbtm1za2wGg0EKCwulsbFR+vv75bPPPhOtViuNjY1Wbffv3y8pKSlujceWjIwMef/990dt5438DWUwGESj0UhFRYXN1z2VP51OJ8eOHZOtW7dKXl7e4PM//vijBAcHy9GjR8VoNMqLL74oycnJiv04Om5dFV9ZWZkcPXpUbt26Jd3d3ZKfny/Lly9X7MfRceGq+BobGwWAmEwmh/rxdP5G2r9/v8TGxorZbLb5urvy5yqTpkgYDAbx9/eXK1euDD6Xk5Nj88Nrw4YNsn379sGfT506JRERER6Jc6iFCxdKaWmp1fP3epHwdv4OHDggMTExin+Uns7fK6+8MuxD5L333pMlS5YM/mwwGESlUkl9fb3Vts6MW1fFN1J1dbVotVrF1939ITcyPmeKxL2Qv8zMTCkqKlJ8/V4vEpPmcJPS3e3q6uqs2tbV1SExMXFYu5aWFrS3t3skVgBoaWlBQ0OD4uXQL1y4gLCwMMTFxWHXrl3o6+vzSFzbt29HWFgYUlJSFA/ReDt/H330ETZu3Agfm/d7tfBW/gDr/Gg0Gtx33302x6Iz49ZdKisrR70svyPjwtWio6MRFRWF/Px8tLW12Wzj7fzp9XpUVlZi48aNdtt5I3+OmjRFwpm7241sO/D9mO+E5yCTyYTs7Gzk5eVh/vz5Vq+np6ejtrYWra2t0Ol0+OSTT7Bv3z63x/XWW2/hu+++w82bN7FlyxasWrUK165ds2rnzfx9//33qKioQF6e8r1AvJW/AWMZi/bausM333yD119/3W5+HB0XrhIWFoavv/4aer0e1dXV6OrqQnZ2ts223s7fwYMHkZaWhpiYGMU2ns6fsyZNkXDm7nYj2w58P+Y74TnAbDYjNzcXU6dORXFxsc02sbGxiImJwZQpU7Bw4UK89tprKC0tdXtsycnJCAoKQkBAAPLy8pCSkoKysjKrdt7M38GDB5Gammr3j9Jb+RswlrFor62rXb16FY8++ijeffddpKWlKbZzdFy4ilarRVJSEvz8/BAREYHi4mKUl5db5WmgrbfyB1jGo71/WADP589Zk6ZIDL273QClu9slJCTg4sWLw9pFREQgNDTUrTGKCAoKCtDS0gKdTgd/f3+HtvPx8YF44ZxIpff1Vv4Ax/4oR/J0/kbmp7u7G9euXbM5Fp0Zt66k1+vx8MMPY8eOHcjNzXVqW0/nc+Cwoq339Fb+AODs2bNoamrCk08+6dR23vp7VuTF+RCPW79+vWRlZYnBYJAzZ84ornI4fvy4RERESF1dnXR0dMjSpUs9sjrnmWeekeTkZOnq6rLbrqysTH744QcREamvr5eEhAS7E2Ou8NNPP8mJEyfEaDSKyWSSkpISUavVcvnyZau23srf2bNnRa1WS2dnp912nsqfyWQSo9EoL7/8suTk5AzmrrW1VYKDg6W0tFSMRqO89NJLdlc3OTpuXRXfjRs3JDY2Vvbu3TtqH86MC1fFd/78ebl8+bL09/dLW1ubrFu3TjIzMxX78XT+Bjz99NOSm5trtw935s9VJlWRaG9vlzVr1oharZY5c+bIoUOHREREr9eLRqMRvV4/2Pbtt9+W8PBwCQoKkk2bNklPT49bY7t+/boAkICAANFoNIOPkpISq/heeOEFCQ8PF7VaLTExMbJjxw65ffu2W+NrbW2VpKQk0Wq1EhISIsnJyVJeXi4i90b+RES2bNkiOTk5Vs97K3+FhYUCYNijsLBQREROnjwp8fHxolKpJCMjY9hS5927d8uKFSsGf1Yat+6Kr6ioSAAMG4cajcZmfPbGhbviO3z4sMydO1fUarVERkZKbm6uNDc324xPxPP5ExExGo0SEhIip06dstrOU/lzFV67iYiIFE2aOQkiInIeiwQRESlikSAiIkUsEkREpIhFgoiIFLFIEBGRIhYJIiJSxCJBRESKWCSIiEgRiwSRm7S3t2POnDl47rnnBp9rbW3FzJkzsW3bNi9GRuQ4XpaDyI0qKyuxbNkyfPrpp1i5ciVWrFiBW7duoaqqyuGr/BJ5k5+3AyCayNLT0/Hqq68iPz8feXl5+Oqrr3DhwgUWCBo3uCdB5GZmsxmpqan48ssvceTIEaxfv97bIRE5jHMSRG7W3Nw8eK/lhoYGb4dD5BTuSRC5kdlsxrJly2A2m/H8889j7dq1+OKLL5Camurt0IgcwjkJIjfavXs3Ll26hJqaGkRFRWHr1q3Izs5GTU0Npk2b5u3wiEbFPQkiNzl37hwyMjKg0+mwevVqAEBvby8WL16M+++/HzqdzssREo2ORYKIiBRx4pqIiBSxSBARkSIWCSIiUsQiQUREilgkiIhIEYsEEREpYpEgIiJFLBJERKSIRYKIiBT9C7+E1xyYIDo5AAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x = np.arange(0,20,1)\n", - "y = x**2\n", - "\n", - "X = np.c_[x, x**2, x**3]\n", - "X = zscore_normalize_features(X) \n", - "\n", - "model_w, model_b = run_gradient_descent_feng(X, y, iterations=100000, alpha=1e-1)\n", - "\n", - "plt.scatter(x, y, marker='x', c='r', label=\"Actual Value\"); plt.title(\"Normalized x x**2, x**3 feature\")\n", - "plt.plot(x,X@model_w + model_b, label=\"Predicted Value\"); plt.xlabel(\"x\"); plt.ylabel(\"y\"); plt.legend(); plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Feature scaling allows this to converge much faster. \n", - "Note again the values of $\\mathbf{w}$. The $w_1$ term, which is the $x^2$ term is the most emphasized. Gradient descent has all but eliminated the $x^3$ term." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Complex Functions\n", - "With feature engineering, even quite complex functions can be modeled:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Iteration 0, Cost: 2.20188e-01\n", - "Iteration 100000, Cost: 1.70074e-02\n", - "Iteration 200000, Cost: 1.27603e-02\n", - "Iteration 300000, Cost: 9.73032e-03\n", - "Iteration 400000, Cost: 7.56440e-03\n", - "Iteration 500000, Cost: 6.01412e-03\n", - "Iteration 600000, Cost: 4.90251e-03\n", - "Iteration 700000, Cost: 4.10351e-03\n", - "Iteration 800000, Cost: 3.52730e-03\n", - "Iteration 900000, Cost: 3.10989e-03\n", - "w,b found by gradient descent: w: [ -1.34 -10. 24.78 5.96 -12.49 -16.26 -9.51 0.59 8.7 11.94\n", - " 9.27 0.79 -12.82], b: -0.0073\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x = np.arange(0,20,1)\n", - "y = np.cos(x/2)\n", - "\n", - "X = np.c_[x, x**2, x**3,x**4, x**5, x**6, x**7, x**8, x**9, x**10, x**11, x**12, x**13]\n", - "X = zscore_normalize_features(X) \n", - "\n", - "model_w,model_b = run_gradient_descent_feng(X, y, iterations=1000000, alpha = 1e-1)\n", - "\n", - "plt.scatter(x, y, marker='x', c='r', label=\"Actual Value\"); plt.title(\"Normalized x x**2, x**3 feature\")\n", - "plt.plot(x,X@model_w + model_b, label=\"Predicted Value\"); plt.xlabel(\"x\"); plt.ylabel(\"y\"); plt.legend(); plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Congratulations!\n", - "In this lab you:\n", - "- learned how linear regression can model complex, even highly non-linear functions using feature engineering\n", - "- recognized that it is important to apply feature scaling when doing feature engineering" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.6" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week2/C1_W2_Lab05_Sklearn_GD_Soln.ipynb b/week2/C1_W2_Lab05_Sklearn_GD_Soln.ipynb deleted file mode 100644 index ce0dfc0..0000000 --- a/week2/C1_W2_Lab05_Sklearn_GD_Soln.ipynb +++ /dev/null @@ -1,277 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Linear Regression using Scikit-Learn" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There is an open-source, commercially usable machine learning toolkit called [scikit-learn](https://scikit-learn.org/stable/index.html). This toolkit contains implementations of many of the algorithms that you will work with in this course.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab you will:\n", - "- Utilize scikit-learn to implement linear regression using Gradient Descent" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Tools\n", - "You will utilize functions from scikit-learn as well as matplotlib and NumPy. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.linear_model import SGDRegressor\n", - "from sklearn.preprocessing import StandardScaler\n", - "from lab_utils_multi import load_house_data\n", - "from lab_utils_common import dlc\n", - "np.set_printoptions(precision=2)\n", - "plt.style.use('./deeplearning.mplstyle')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Gradient Descent\n", - "Scikit-learn has a gradient descent regression model [sklearn.linear_model.SGDRegressor](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDRegressor.html#examples-using-sklearn-linear-model-sgdregressor). Like your previous implementation of gradient descent, this model performs best with normalized inputs. [sklearn.preprocessing.StandardScaler](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler) will perform z-score normalization as in a previous lab. Here it is referred to as 'standard score'." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Load the data set" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "X_train, y_train = load_house_data()\n", - "X_features = ['size(sqft)','bedrooms','floors','age']" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Scale/normalize the training data" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Peak to Peak range by column in Raw X:[2.41e+03 4.00e+00 1.00e+00 9.50e+01]\n", - "Peak to Peak range by column in Normalized X:[5.85 6.14 2.06 3.69]\n" - ] - } - ], - "source": [ - "scaler = StandardScaler()\n", - "X_norm = scaler.fit_transform(X_train)\n", - "print(f\"Peak to Peak range by column in Raw X:{np.ptp(X_train,axis=0)}\") \n", - "print(f\"Peak to Peak range by column in Normalized X:{np.ptp(X_norm,axis=0)}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Create and fit the regression model" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "SGDRegressor(alpha=0.0001, average=False, early_stopping=False, epsilon=0.1,\n", - " eta0=0.01, fit_intercept=True, l1_ratio=0.15,\n", - " learning_rate='invscaling', loss='squared_loss', max_iter=1000,\n", - " n_iter_no_change=5, penalty='l2', power_t=0.25, random_state=None,\n", - " shuffle=True, tol=0.001, validation_fraction=0.1, verbose=0,\n", - " warm_start=False)\n", - "number of iterations completed: 135, number of weight updates: 13366.0\n" - ] - } - ], - "source": [ - "sgdr = SGDRegressor(max_iter=1000)\n", - "sgdr.fit(X_norm, y_train)\n", - "print(sgdr)\n", - "print(f\"number of iterations completed: {sgdr.n_iter_}, number of weight updates: {sgdr.t_}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### View parameters\n", - "Note, the parameters are associated with the *normalized* input data. The fit parameters are very close to those found in the previous lab with this data." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "model parameters: w: [110.29 -21.12 -32.54 -38.03], b:[363.17]\n", - "model parameters from previous lab: w: [110.56 -21.27 -32.71 -37.97], b: 363.16\n" - ] - } - ], - "source": [ - "b_norm = sgdr.intercept_\n", - "w_norm = sgdr.coef_\n", - "print(f\"model parameters: w: {w_norm}, b:{b_norm}\")\n", - "print( \"model parameters from previous lab: w: [110.56 -21.27 -32.71 -37.97], b: 363.16\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Make predictions\n", - "Predict the targets of the training data. Use both the `predict` routine and compute using $w$ and $b$." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "prediction using np.dot() and sgdr.predict match: True\n", - "Prediction on training set:\n", - "[295.18 485.97 389.61 492.14]\n", - "Target values \n", - "[300. 509.8 394. 540. ]\n" - ] - } - ], - "source": [ - "# make a prediction using sgdr.predict()\n", - "y_pred_sgd = sgdr.predict(X_norm)\n", - "# make a prediction using w,b. \n", - "y_pred = np.dot(X_norm, w_norm) + b_norm \n", - "print(f\"prediction using np.dot() and sgdr.predict match: {(y_pred == y_pred_sgd).all()}\")\n", - "\n", - "print(f\"Prediction on training set:\\n{y_pred[:4]}\" )\n", - "print(f\"Target values \\n{y_train[:4]}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Plot Results\n", - "Let's plot the predictions versus the target values." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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27fr1rl58yYDwH777TfB/Tekgf3iiy/WWZ74GtgeHh66csUYY5999hlr166d7vXTTz/NaawwxtjcuXPrbGDXVFFRwQYNGsQGDBjA2U9tO3bsYC4uLqywsJB3eVRUFOvevbuubtY2YMAANnbsWE7a6tWrmZ2dne7H0MCBA1nHjh0521i0aBELCQnhvE+j0bAOHTpwfmjWNnDgQNatWzdO2rRp01hoaKjutbe3N/vnP//JWef9999nCoVC99rPz48NHjyYs051Gfn55591aT/++CMDwH766Sdd2o4dOxgAVlxcLJjPd999l0VGRnKOt64Gdk3r169nDg4O7MSJE4wxxtLT05lIJGKXLl3irPfxxx+zHj16MMYYS0hIYADY5cuXdctzc3OZnZ1dgxrYhh5zVFQUe+qppzjb2rlzJxOJRCwjI4MxxphcLmfz58/nrDNmzBjOcQ8cOJDNnTuXs05mZiYDwM6cOcMYowY2aXrURYRYjR07diAsLAxeXl5wcnLChAkTUFFRgVu3bnHWe+qpp3T/v3btGioqKhAaGspZp1+/frr/5+XlITMzE7Nnz4aTk5PuX/VgomvXrhmUz3HjxqGsrAy//PILAO0j0aKiIl1XjpMnT6KiogJyuZyzv7i4OFy9epWzreDgYM7ryZMn48KFCwgMDMT06dOxfft2VFRUGJS/999/H59++ilCQkIwd+5cHD58uEHvq/mZtWrVivfxb838pqamoqysDGPGjOEc57Rp01BYWIi8vDzd+59++mnd+2xsbDjfYW25ubnIysrC0KFDG5RvIampqXB3d0fXrl11aba2tggJCUFqaipn3Z49e+r+365dO0gkEty+ffux9j9jxgz89NNPePLJJ/Hee+9h79699Q5qfOKJJ2Bra6t7LZfLOfm4ePFinWW9Pm+//TaysrLw888/6/YzfPhwzvcHAEOGDEGHDh2gUCgwfvx4rFu3Dnfu3NFt5/Tp04iIiIBYzH8JSk1NRVhYGCdt4MCBKC8vR1pami6tT58+nG2cPHkSp0+f5uTH2dkZGRkZenWntprfIcD97IqKinDjxg3ePGVkZOD+/fu6tNp1slqPHj10/6/u69+9e3e9tNzcXACARqPBsmXL0LNnT3h4eMDJyQnffPMNMjMz6zwOPvv378esWbMQGxurqzunTp0CYwx9+/blfF6ffvqp7rO6ePEi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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# plot predictions and targets vs original features \n", - "fig,ax=plt.subplots(1,4,figsize=(12,3),sharey=True)\n", - "for i in range(len(ax)):\n", - " ax[i].scatter(X_train[:,i],y_train, label = 'target')\n", - " ax[i].set_xlabel(X_features[i])\n", - " ax[i].scatter(X_train[:,i],y_pred,color=dlc[\"dlorange\"], label = 'predict')\n", - "ax[0].set_ylabel(\"Price\"); ax[0].legend();\n", - "fig.suptitle(\"target versus prediction using z-score normalized model\")\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Congratulations!\n", - "In this lab you:\n", - "- utilized an open-source machine learning toolkit, scikit-learn\n", - "- implemented linear regression using gradient descent and feature normalization from that toolkit" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week2/C1_W2_Lab06_Sklearn_Normal_Soln.ipynb b/week2/C1_W2_Lab06_Sklearn_Normal_Soln.ipynb deleted file mode 100644 index 7820d64..0000000 --- a/week2/C1_W2_Lab06_Sklearn_Normal_Soln.ipynb +++ /dev/null @@ -1,241 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Linear Regression using Scikit-Learn" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There is an open-source, commercially usable machine learning toolkit called [scikit-learn](https://scikit-learn.org/stable/index.html). This toolkit contains implementations of many of the algorithms that you will work with in this course.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Goals\n", - "In this lab you will:\n", - "- Utilize scikit-learn to implement linear regression using a close form solution based on the normal equation" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Tools\n", - "You will utilize functions from scikit-learn as well as matplotlib and NumPy. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.linear_model import LinearRegression\n", - "from lab_utils_multi import load_house_data\n", - "plt.style.use('./deeplearning.mplstyle')\n", - "np.set_printoptions(precision=2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Linear Regression, closed-form solution\n", - "Scikit-learn has the [linear regression model](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression) which implements a closed-form linear regression.\n", - "\n", - "Let's use the data from the early labs - a house with 1000 square feet sold for \\\\$300,000 and a house with 2000 square feet sold for \\\\$500,000.\n", - "\n", - "| Size (1000 sqft) | Price (1000s of dollars) |\n", - "| ----------------| ------------------------ |\n", - "| 1 | 300 |\n", - "| 2 | 500 |\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Load the data set" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "X_train = np.array([1.0, 2.0]) #features\n", - "y_train = np.array([300, 500]) #target value" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Create and fit the model\n", - "The code below performs regression using scikit-learn. \n", - "The first step creates a regression object. \n", - "The second step utilizes one of the methods associated with the object, `fit`. This performs regression, fitting the parameters to the input data. The toolkit expects a two-dimensional X matrix." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "linear_model = LinearRegression()\n", - "#X must be a 2-D Matrix\n", - "linear_model.fit(X_train.reshape(-1, 1), y_train) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### View Parameters \n", - "The $\\mathbf{w}$ and $\\mathbf{b}$ parameters are referred to as 'coefficients' and 'intercept' in scikit-learn." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "b = linear_model.intercept_\n", - "w = linear_model.coef_\n", - "print(f\"w = {w:}, b = {b:0.2f}\")\n", - "print(f\"'manual' prediction: f_wb = wx+b : {1200*w + b}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Make Predictions\n", - "\n", - "Calling the `predict` function generates predictions." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "y_pred = linear_model.predict(X_train.reshape(-1, 1))\n", - "\n", - "print(\"Prediction on training set:\", y_pred)\n", - "\n", - "X_test = np.array([[1200]])\n", - "print(f\"Prediction for 1200 sqft house: ${linear_model.predict(X_test)[0]:0.2f}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Second Example\n", - "The second example is from an earlier lab with multiple features. The final parameter values and predictions are very close to the results from the un-normalized 'long-run' from that lab. That un-normalized run took hours to produce results, while this is nearly instantaneous. The closed-form solution work well on smaller data sets such as these but can be computationally demanding on larger data sets. \n", - ">The closed-form solution does not require normalization." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# load the dataset\n", - "X_train, y_train = load_house_data()\n", - "X_features = ['size(sqft)','bedrooms','floors','age']" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "linear_model = LinearRegression()\n", - "linear_model.fit(X_train, y_train) " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "b = linear_model.intercept_\n", - "w = linear_model.coef_\n", - "print(f\"w = {w:}, b = {b:0.2f}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(f\"Prediction on training set:\\n {linear_model.predict(X_train)[:4]}\" )\n", - "print(f\"prediction using w,b:\\n {(X_train @ w + b)[:4]}\")\n", - "print(f\"Target values \\n {y_train[:4]}\")\n", - "\n", - "x_house = np.array([1200, 3,1, 40]).reshape(-1,4)\n", - "x_house_predict = linear_model.predict(x_house)[0]\n", - "print(f\" predicted price of a house with 1200 sqft, 3 bedrooms, 1 floor, 40 years old = ${x_house_predict*1000:0.2f}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Congratulations!\n", - "In this lab you:\n", - "- utilized an open-source machine learning toolkit, scikit-learn\n", - "- implemented linear regression using a close-form solution from that toolkit" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/week2/__pycache__/lab_utils_common.cpython-37.pyc b/week2/__pycache__/lab_utils_common.cpython-37.pyc deleted file mode 100644 index 180af28..0000000 Binary files a/week2/__pycache__/lab_utils_common.cpython-37.pyc and /dev/null differ diff --git a/week2/__pycache__/lab_utils_multi.cpython-37.pyc b/week2/__pycache__/lab_utils_multi.cpython-37.pyc deleted file mode 100644 index 6c79bf1..0000000 Binary files a/week2/__pycache__/lab_utils_multi.cpython-37.pyc and /dev/null differ diff --git a/week2/__pycache__/lab_utils_uni.cpython-37.pyc b/week2/__pycache__/lab_utils_uni.cpython-37.pyc deleted file mode 100644 index 03053d1..0000000 Binary files a/week2/__pycache__/lab_utils_uni.cpython-37.pyc and /dev/null differ diff --git a/week2/archive/C1_W2_Lab01_Python_Numpy_Vectorization_Soln-Copy1.ipynb b/week2/archive/C1_W2_Lab01_Python_Numpy_Vectorization_Soln-Copy1.ipynb deleted file mode 100644 index 8e137d2..0000000 --- a/week2/archive/C1_W2_Lab01_Python_Numpy_Vectorization_Soln-Copy1.ipynb +++ /dev/null @@ -1,730 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Optional Lab: Python, NumPy and Vectorization\n", - "A brief introduction to some of the scientific computing used in this course. In particular the NumPy scientific computing package and its use with python.\n", - "\n", - "# Outline\n", - "- [  1.1 Goals](#toc_40015_1.1)\n", - "- [  1.2 Useful References](#toc_40015_1.2)\n", - "- [2 Python and NumPy ](#toc_40015_2)\n", - "- [3 Vectors](#toc_40015_3)\n", - "- [  3.1 Abstract](#toc_40015_3.1)\n", - "- [  3.2 NumPy Arrays](#toc_40015_3.2)\n", - "- [  3.3 Vector Creation](#toc_40015_3.3)\n", - "- [  3.4 Operations on Vectors](#toc_40015_3.4)\n", - "- [4 Matrices](#toc_40015_4)\n", - "- [  4.1 Abstract](#toc_40015_4.1)\n", - "- [  4.2 NumPy Arrays](#toc_40015_4.2)\n", - "- [  4.3 Matrix Creation](#toc_40015_4.3)\n", - "- [  4.4 Operations on Matrices](#toc_40015_4.4)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np # it is an unofficial standard to use np for numpy\n", - "import time" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 1.1 Goals\n", - "In this lab, you will:\n", - "- Review the features of NumPy and Python that are used in Course 1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 1.2 Useful References\n", - "- NumPy Documentation including a basic introduction: [NumPy.org](https://NumPy.org/doc/stable/)\n", - "- A challenging feature topic: [NumPy Broadcasting](https://NumPy.org/doc/stable/user/basics.broadcasting.html)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 2 Python and NumPy \n", - "Python is the programming language we will be using in this course. It has a set of numeric data types and arithmetic operations. NumPy is a library that extends the base capabilities of python to add a richer data set including more numeric types, vectors, matrices, and many matrix functions. NumPy and python work together fairly seamlessly. Python arithmetic operators work on NumPy data types and many NumPy functions will accept python data types.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 3 Vectors\n", - "\n", - "## 3.1 Abstract\n", - "Vectors, as you will use them in this course, are ordered arrays of numbers. In notation, vectors are denoted with lower case bold letters such as $\\mathbf{x}$. The elements of a vector are all the same type. A vector does not, for example, contain both characters and numbers. The number of elements in the array is often referred to as the *dimension* though mathematicians may prefer *rank*. The vector shown has a dimension of $n$. The elements of a vector can be referenced with an index. In math settings, indexes typically run from 1 to n. In computer science and these labs, indexing will typically run from 0 to n-1. In notation, elements of a vector, when referenced individually will indicate the index in a subscript, for example, the $0^{th}$ element, of the vector $\\mathbf{x}$ is $x_0$. Note, the x is not bold in this case. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 3.2 NumPy Arrays\n", - "\n", - "NumPy's basic data structure is an indexable, n-dimensional *array* containing elements of the same type (`dtype`). Right away, you may notice we have overloaded the term 'dimension'. Above, it was the number of elements in the vector, here, dimension refers to the number of indexes of an array. A one-dimensional or 1-D array has one index. In Course 1, we will represent vectors as NumPy 1-D arrays. \n", - "\n", - " - 1-D array, shape (n,): n elements indexed [0] through [n-1]\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 3.3 Vector Creation\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Data creation routines in NumPy will generally have a first parameter which is the shape of the object. This can either be a single value for a 1-D result or a tuple (n,m,...) specifying the shape of the result. Below are examples of creating vectors using these routines." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# NumPy routines which allocate memory and fill arrays with value\n", - "a = np.zeros(4); print(f\"np.zeros(4) : a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")\n", - "a = np.zeros((4,)); print(f\"np.zeros(4,) : a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")\n", - "a = np.random.random_sample(4); print(f\"np.random.random_sample(4): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Some data creation routines do not take a shape tuple:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# NumPy routines which allocate memory and fill arrays with value but do not accept shape as input argument\n", - "a = np.arange(4.); print(f\"np.arange(4.): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")\n", - "a = np.random.rand(4); print(f\"np.random.rand(4): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "values can be specified manually as well. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# NumPy routines which allocate memory and fill with user specified values\n", - "a = np.array([5,4,3,2]); print(f\"np.array([5,4,3,2]): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")\n", - "a = np.array([5.,4,3,2]); print(f\"np.array([5.,4,3,2]): a = {a}, a shape = {a.shape}, a data type = {a.dtype}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "These have all created a one-dimensional vector `a` with four elements. `a.shape` returns the dimensions. Here we see a.shape = `(4,)` indicating a 1-d array with 4 elements. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 3.4 Operations on Vectors\n", - "Let's explore some operations using vectors.\n", - "\n", - "### 3.4.1 Indexing\n", - "Elements of vectors can be accessed via indexing and slicing. NumPy provides a very complete set of indexing and slicing capabilities. We will explore only the basics needed for the course here. Reference [Slicing and Indexing](https://NumPy.org/doc/stable/reference/arrays.indexing.html) for more details. \n", - "**Indexing** means referring to *an element* of an array by its position within the array. \n", - "**Slicing** means getting a *subset* of elements from an array based on their indices. \n", - "NumPy starts indexing at zero so the 3rd element of an vector $\\mathbf{a}$ is `a[2]`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#vector indexing operations on 1-D vectors\n", - "a = np.arange(10)\n", - "print(a)\n", - "\n", - "#access an element\n", - "print(f\"a[2].shape: {a[2].shape} a[2] = {a[2]}, Accessing an element returns a scalar\")\n", - "\n", - "# access the last element, negative indexes count from the end\n", - "print(f\"a[-1] = {a[-1]}\")\n", - "\n", - "#indexs must be within the range of the vector or they will produce and error\n", - "try:\n", - " c = a[10]\n", - "except Exception as e:\n", - " print(\"The error message you'll see is:\")\n", - " print(e)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.2 Slicing\n", - "Slicing creates an array of indices using a set of three values (`start:stop:step`). A subset of values is also valid. Its use is best explained by example:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#vector slicing operations\n", - "a = np.arange(10)\n", - "print(f\"a = {a}\")\n", - "\n", - "#access 5 consecutive elements (start:stop:step)\n", - "c = a[2:7:1]; print(\"a[2:7:1] = \", c)\n", - "\n", - "# access 3 elements separated by two \n", - "c = a[2:7:2]; print(\"a[2:7:2] = \", c)\n", - "\n", - "# access all elements index 3 and above\n", - "c = a[3:]; print(\"a[3:] = \", c)\n", - "\n", - "# access all elements below index 3\n", - "c = a[:3]; print(\"a[:3] = \", c)\n", - "\n", - "# access all elements\n", - "c = a[:]; print(\"a[:] = \", c)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.3 Single vector operations\n", - "There are a number of useful operations that involve operations on a single vector." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = np.array([1,2,3,4])\n", - "print(f\"a : {a}\")\n", - "# negate elements of a\n", - "b = -a \n", - "print(f\"b = -a : {b}\")\n", - "\n", - "# sum all elements of a, returns a scalar\n", - "b = np.sum(a) \n", - "print(f\"b = np.sum(a) : {b}\")\n", - "\n", - "b = np.mean(a)\n", - "print(f\"b = np.mean(a): {b}\")\n", - "\n", - "b = a**2\n", - "print(f\"b = a**2 : {b}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.4 Vector Vector element-wise operations\n", - "Most of the NumPy arithmetic, logical and comparison operations apply to vectors as well. These operators work on an element-by-element basis. For example \n", - "$$ \\mathbf{a} + \\mathbf{b} = \\sum_{i=0}^{n-1} a_i + b_i $$" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = np.array([ 1, 2, 3, 4])\n", - "b = np.array([-1,-2, 3, 4])\n", - "print(f\"Binary operators work element wise: {a + b}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Of course, for this to work correctly, the vectors must be of the same size:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#try a mismatched vector operation\n", - "c = np.array([1, 2])\n", - "try:\n", - " d = a + c\n", - "except Exception as e:\n", - " print(\"The error message you'll see is:\")\n", - " print(e)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.5 Scalar Vector operations\n", - "Vectors can be 'scaled' by scalar values. A scalar value is just a number. The scalar multiplies all the elements of the vector." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = np.array([1, 2, 3, 4])\n", - "\n", - "# multiply a by a scalar\n", - "b = 5 * a \n", - "print(f\"b = 5 * a : {b}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.6 Vector Vector dot product\n", - "The dot product is a mainstay of Linear Algebra and NumPy. This is an operation used extensively in this course and should be well understood. The dot product is shown below." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The dot product multiplies the values in two vectors element-wise and then sums the result.\n", - "Vector dot product requires the dimensions of the two vectors to be the same. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's implement our own version of the dot product below:\n", - "\n", - "**Using a for loop**, implement a function which returns the dot product of two vectors. The function to return given inputs $a$ and $b$:\n", - "$$ x = \\sum_{i=0}^{n-1} a_i b_i $$\n", - "Assume both `a` and `b` are the same shape." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def my_dot(a, b): \n", - " \"\"\"\n", - " Compute the dot product of two vectors\n", - " \n", - " Args:\n", - " a (ndarray (n,)): input vector \n", - " b (ndarray (n,)): input vector with same dimension as a\n", - " \n", - " Returns:\n", - " x (scalar): \n", - " \"\"\"\n", - " x=0\n", - " for i in range(a.shape[0]):\n", - " x = x + a[i] * b[i]\n", - " return x" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# test 1-D\n", - "a = np.array([1, 2, 3, 4])\n", - "b = np.array([-1, 4, 3, 2])\n", - "print(f\"my_dot(a, b) = {my_dot(a, b)}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note, the dot product is expected to return a scalar value. \n", - "\n", - "Let's try the same operations using `np.dot`. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# test 1-D\n", - "a = np.array([1, 2, 3, 4])\n", - "b = np.array([-1, 4, 3, 2])\n", - "c = np.dot(a, b)\n", - "print(f\"NumPy 1-D np.dot(a, b) = {c}, np.dot(a, b).shape = {c.shape} \") \n", - "c = np.dot(b, a)\n", - "print(f\"NumPy 1-D np.dot(b, a) = {c}, np.dot(a, b).shape = {c.shape} \")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, you will note that the results for 1-D matched our implementation." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.7 The Need for Speed: vector vs for loop\n", - "We utilized the NumPy library because it improves speed memory efficiency. Let's demonstrate:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "np.random.seed(1)\n", - "a = np.random.rand(10000000) # very large arrays\n", - "b = np.random.rand(10000000)\n", - "\n", - "tic = time.time() # capture start time\n", - "c = np.dot(a, b)\n", - "toc = time.time() # capture end time\n", - "\n", - "print(f\"np.dot(a, b) = {c:.4f}\")\n", - "print(f\"Vectorized version duration: {1000*(toc-tic):.4f} ms \")\n", - "\n", - "tic = time.time() # capture start time\n", - "c = my_dot(a,b)\n", - "toc = time.time() # capture end time\n", - "\n", - "print(f\"my_dot(a, b) = {c:.4f}\")\n", - "print(f\"loop version duration: {1000*(toc-tic):.4f} ms \")\n", - "\n", - "del(a);del(b) #remove these big arrays from memory" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So, vectorization provides a large speed up in this example. This is because NumPy makes better use of available data parallelism in the underlying hardware. GPU's and modern CPU's implement Single Instruction, Multiple Data (SIMD) pipelines allowing multiple operations to be issued in parallel. This is critical in Machine Learning where the data sets are often very large." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 3.4.8 Vector Vector operations in Course 1\n", - "Vector Vector operations will appear frequently in course 1. Here is why:\n", - "- Going forward, our examples will be stored in an array, `X_train` of dimension (m,n). This will be explained more in context, but here it is important to note it is a 2 Dimensional array or matrix (see next section on matrices).\n", - "- `w` will be a 1-dimensional vector of shape (n,).\n", - "- we will perform operations by looping through the examples, extracting each example to work on individually by indexing X. For example:`X[i]`\n", - "- `X[i]` returns a value of shape (n,), a 1-dimensional vector. Consequently, operations involving `X[i]` are often vector-vector. \n", - "\n", - "That is a somewhat lengthy explanation, but aligning and understanding the shapes of your operands is important when performing vector operations." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# show common Course 1 example\n", - "X = np.array([[1],[2],[3],[4]])\n", - "w = np.array([2])\n", - "c = np.dot(X[1], w)\n", - "\n", - "print(f\"X[1] has shape {X[1].shape}\")\n", - "print(f\"w has shape {w.shape}\")\n", - "print(f\"c has shape {c.shape}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# 4 Matrices\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 4.1 Abstract\n", - "Matrices, are two dimensional arrays. The elements of a matrix are all of the same type. In notation, matrices are denoted with capitol, bold letter such as $\\mathbf{X}$. In this and other labs, `m` is often the number of rows and `n` the number of columns. The elements of a matrix can be referenced with a two dimensional index. In math settings, numbers in the index typically run from 1 to n. In computer science and these labs, indexing will run from 0 to n-1. \n", - "
\n", - "
missing
\n", - "
Generic Matrix Notation, 1st index is row, 2nd is column
\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 4.2 NumPy Arrays\n", - "\n", - "NumPy's basic data structure is an indexable, n-dimensional *array* containing elements of the same type (`dtype`). These were described earlier. Matrices have a two-dimensional (2-D) index [m,n].\n", - "\n", - "In Course 1, 2-D matrices are used to hold training data. Training data is $m$ examples by $n$ features creating an (m,n) array. Course 1 does not do operations directly on matrices but typically extracts an example as a vector and operates on that. Below you will review: \n", - "- data creation\n", - "- slicing and indexing" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 4.3 Matrix Creation\n", - "The same functions that created 1-D vectors will create 2-D or n-D arrays. Here are some examples\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Below, the shape tuple is provided to achieve a 2-D result. Notice how NumPy uses brackets to denote each dimension. Notice further than NumPy, when printing, will print one row per line.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = np.zeros((1, 5)) \n", - "print(f\"a shape = {a.shape}, a = {a}\") \n", - "\n", - "a = np.zeros((2, 1)) \n", - "print(f\"a shape = {a.shape}, a = {a}\") \n", - "\n", - "a = np.random.random_sample((1, 1)) \n", - "print(f\"a shape = {a.shape}, a = {a}\") " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "One can also manually specify data. Dimensions are specified with additional brackets matching the format in the printing above." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# NumPy routines which allocate memory and fill with user specified values\n", - "a = np.array([[5], [4], [3]]); print(f\" a shape = {a.shape}, np.array: a = {a}\")\n", - "a = np.array([[5], # One can also\n", - " [4], # separate values\n", - " [3]]); #into separate rows\n", - "print(f\" a shape = {a.shape}, np.array: a = {a}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## 4.4 Operations on Matrices\n", - "Let's explore some operations using matrices." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 4.4.1 Indexing\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Matrices include a second index. The two indexes describe [row, column]. Access can either return an element or a row/column. See below:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#vector indexing operations on matrices\n", - "a = np.arange(6).reshape(-1, 2) #reshape is a convenient way to create matrices\n", - "print(f\"a.shape: {a.shape}, \\na= {a}\")\n", - "\n", - "#access an element\n", - "print(f\"\\na[2,0].shape: {a[2, 0].shape}, a[2,0] = {a[2, 0]}, type(a[2,0]) = {type(a[2, 0])} Accessing an element returns a scalar\\n\")\n", - "\n", - "#access a row\n", - "print(f\"a[2].shape: {a[2].shape}, a[2] = {a[2]}, type(a[2]) = {type(a[2])}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is worth drawing attention to the last example. Accessing a matrix by just specifying the row will return a *1-D vector*." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Reshape** \n", - "The previous example used [reshape](https://numpy.org/doc/stable/reference/generated/numpy.reshape.html) to shape the array. \n", - "`a = np.arange(6).reshape(-1, 2) ` \n", - "This line of code first created a *1-D Vector* of six elements. It then reshaped that vector into a *2-D* array using the reshape command. This could have been written: \n", - "`a = np.arange(6).reshape(3, 2) ` \n", - "To arrive at the same 3 row, 2 column array.\n", - "The -1 argument tells the routine to compute the number of rows given the size of the array and the number of columns.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "### 4.4.2 Slicing\n", - "Slicing creates an array of indices using a set of three values (`start:stop:step`). A subset of values is also valid. Its use is best explained by example:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#vector 2-D slicing operations\n", - "a = np.arange(20).reshape(-1, 10)\n", - "print(f\"a = \\n{a}\")\n", - "\n", - "#access 5 consecutive elements (start:stop:step)\n", - "print(\"a[0, 2:7:1] = \", a[0, 2:7:1], \", a[0, 2:7:1].shape =\", a[0, 2:7:1].shape, \"a 1-D array\")\n", - "\n", - "#access 5 consecutive elements (start:stop:step) in two rows\n", - "print(\"a[:, 2:7:1] = \\n\", a[:, 2:7:1], \", a[:, 2:7:1].shape =\", a[:, 2:7:1].shape, \"a 2-D array\")\n", - "\n", - "# access all elements\n", - "print(\"a[:,:] = \\n\", a[:,:], \", a[:,:].shape =\", a[:,:].shape)\n", - "\n", - "# access all elements in one row (very common usage)\n", - "print(\"a[1,:] = \", a[1,:], \", a[1,:].shape =\", a[1,:].shape, \"a 1-D array\")\n", - "# same as\n", - "print(\"a[1] = \", a[1], \", a[1].shape =\", a[1].shape, \"a 1-D array\")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Congratulations!\n", - "In this lab you mastered the features of Python and NumPy that are needed for Course 1." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "dl_toc_settings": { - "rndtag": "40015" - }, - "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.9.10" - }, - "toc-autonumbering": false - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/week2/data/houses.txt b/week2/data/houses.txt deleted file mode 100644 index a9f6f69..0000000 --- a/week2/data/houses.txt +++ /dev/null @@ -1,100 +0,0 @@ -9.520000000000000000e+02,2.000000000000000000e+00,1.000000000000000000e+00,6.500000000000000000e+01,2.715000000000000000e+02 -1.244000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,6.400000000000000000e+01,3.000000000000000000e+02 -1.947000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.700000000000000000e+01,5.098000000000000114e+02 -1.725000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,4.200000000000000000e+01,3.940000000000000000e+02 -1.959000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.500000000000000000e+01,5.400000000000000000e+02 -1.314000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.400000000000000000e+01,4.150000000000000000e+02 -8.640000000000000000e+02,2.000000000000000000e+00,1.000000000000000000e+00,6.600000000000000000e+01,2.300000000000000000e+02 -1.836000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,1.700000000000000000e+01,5.600000000000000000e+02 -1.026000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,4.300000000000000000e+01,2.940000000000000000e+02 -3.194000000000000000e+03,4.000000000000000000e+00,2.000000000000000000e+00,8.700000000000000000e+01,7.182000000000000455e+02 -7.880000000000000000e+02,2.000000000000000000e+00,1.000000000000000000e+00,8.000000000000000000e+01,2.000000000000000000e+02 -1.200000000000000000e+03,2.000000000000000000e+00,2.000000000000000000e+00,1.700000000000000000e+01,3.020000000000000000e+02 -1.557000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.800000000000000000e+01,4.680000000000000000e+02 -1.430000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+01,3.741999999999999886e+02 -1.220000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.500000000000000000e+01,3.880000000000000000e+02 -1.092000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,6.400000000000000000e+01,2.820000000000000000e+02 -8.480000000000000000e+02,1.000000000000000000e+00,1.000000000000000000e+00,1.700000000000000000e+01,3.118000000000000114e+02 -1.682000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.300000000000000000e+01,4.010000000000000000e+02 -1.768000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.800000000000000000e+01,4.498000000000000114e+02 -1.040000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,4.400000000000000000e+01,3.010000000000000000e+02 -1.652000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,2.100000000000000000e+01,5.020000000000000000e+02 -1.088000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,3.500000000000000000e+01,3.400000000000000000e+02 -1.316000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,1.400000000000000000e+01,4.002819999999999823e+02 -1.593000000000000000e+03,0.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+01,5.720000000000000000e+02 -9.720000000000000000e+02,2.000000000000000000e+00,1.000000000000000000e+00,7.300000000000000000e+01,2.640000000000000000e+02 -1.097000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,3.700000000000000000e+01,3.040000000000000000e+02 -1.004000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,5.100000000000000000e+01,2.980000000000000000e+02 -9.040000000000000000e+02,3.000000000000000000e+00,1.000000000000000000e+00,5.500000000000000000e+01,2.198000000000000114e+02 -1.694000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,1.300000000000000000e+01,4.906999999999999886e+02 -1.073000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+02,2.169600000000000080e+02 -1.419000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.900000000000000000e+01,3.681999999999999886e+02 -1.164000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,5.200000000000000000e+01,2.800000000000000000e+02 -1.935000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.200000000000000000e+01,5.268700000000000045e+02 -1.216000000000000000e+03,2.000000000000000000e+00,2.000000000000000000e+00,7.400000000000000000e+01,2.370000000000000000e+02 -2.482000000000000000e+03,4.000000000000000000e+00,2.000000000000000000e+00,1.600000000000000000e+01,5.624260000000000446e+02 -1.200000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.800000000000000000e+01,3.698000000000000114e+02 -1.840000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.000000000000000000e+01,4.600000000000000000e+02 -1.851000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,5.700000000000000000e+01,3.740000000000000000e+02 -1.660000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.900000000000000000e+01,3.900000000000000000e+02 -1.096000000000000000e+03,2.000000000000000000e+00,2.000000000000000000e+00,9.700000000000000000e+01,1.580000000000000000e+02 -1.775000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.800000000000000000e+01,4.260000000000000000e+02 -2.030000000000000000e+03,4.000000000000000000e+00,2.000000000000000000e+00,4.500000000000000000e+01,3.900000000000000000e+02 -1.784000000000000000e+03,4.000000000000000000e+00,2.000000000000000000e+00,1.070000000000000000e+02,2.777740000000000009e+02 -1.073000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+02,2.169600000000000080e+02 -1.552000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,1.600000000000000000e+01,4.258000000000000114e+02 -1.953000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.600000000000000000e+01,5.040000000000000000e+02 -1.224000000000000000e+03,2.000000000000000000e+00,2.000000000000000000e+00,1.200000000000000000e+01,3.290000000000000000e+02 -1.616000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,1.600000000000000000e+01,4.640000000000000000e+02 -8.160000000000000000e+02,2.000000000000000000e+00,1.000000000000000000e+00,5.800000000000000000e+01,2.200000000000000000e+02 -1.349000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,2.100000000000000000e+01,3.580000000000000000e+02 -1.571000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,1.400000000000000000e+01,4.780000000000000000e+02 -1.486000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,5.700000000000000000e+01,3.340000000000000000e+02 -1.506000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.600000000000000000e+01,4.269800000000000182e+02 -1.097000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,2.700000000000000000e+01,2.900000000000000000e+02 -1.764000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.400000000000000000e+01,4.630000000000000000e+02 -1.208000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.400000000000000000e+01,3.908000000000000114e+02 -1.470000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.400000000000000000e+01,3.540000000000000000e+02 -1.768000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,8.400000000000000000e+01,3.500000000000000000e+02 -1.654000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,1.900000000000000000e+01,4.600000000000000000e+02 -1.029000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,6.000000000000000000e+01,2.370000000000000000e+02 -1.120000000000000000e+03,2.000000000000000000e+00,2.000000000000000000e+00,1.600000000000000000e+01,2.883039999999999736e+02 -1.150000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,6.200000000000000000e+01,2.820000000000000000e+02 -8.160000000000000000e+02,2.000000000000000000e+00,1.000000000000000000e+00,3.900000000000000000e+01,2.490000000000000000e+02 -1.040000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,2.500000000000000000e+01,3.040000000000000000e+02 -1.392000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,6.400000000000000000e+01,3.320000000000000000e+02 -1.603000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.900000000000000000e+01,3.518000000000000114e+02 -1.215000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,6.300000000000000000e+01,3.100000000000000000e+02 -1.073000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+02,2.169600000000000080e+02 -2.599000000000000000e+03,4.000000000000000000e+00,2.000000000000000000e+00,2.200000000000000000e+01,6.663360000000000127e+02 -1.431000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,5.900000000000000000e+01,3.300000000000000000e+02 -2.090000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.600000000000000000e+01,4.800000000000000000e+02 -1.790000000000000000e+03,4.000000000000000000e+00,2.000000000000000000e+00,4.900000000000000000e+01,3.303000000000000114e+02 -1.484000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.600000000000000000e+01,3.480000000000000000e+02 -1.040000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,2.500000000000000000e+01,3.040000000000000000e+02 -1.431000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,2.200000000000000000e+01,3.840000000000000000e+02 -1.159000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,5.300000000000000000e+01,3.160000000000000000e+02 -1.547000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.200000000000000000e+01,4.303999999999999773e+02 -1.983000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.200000000000000000e+01,4.500000000000000000e+02 -1.056000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,5.300000000000000000e+01,2.840000000000000000e+02 -1.180000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,9.900000000000000000e+01,2.750000000000000000e+02 -1.358000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.700000000000000000e+01,4.140000000000000000e+02 -9.600000000000000000e+02,3.000000000000000000e+00,1.000000000000000000e+00,5.100000000000000000e+01,2.580000000000000000e+02 -1.456000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.600000000000000000e+01,3.780000000000000000e+02 -1.446000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.500000000000000000e+01,3.500000000000000000e+02 -1.208000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,1.500000000000000000e+01,4.120000000000000000e+02 -1.553000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.600000000000000000e+01,3.730000000000000000e+02 -8.820000000000000000e+02,3.000000000000000000e+00,1.000000000000000000e+00,4.900000000000000000e+01,2.250000000000000000e+02 -2.030000000000000000e+03,4.000000000000000000e+00,2.000000000000000000e+00,4.500000000000000000e+01,3.900000000000000000e+02 -1.040000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,6.200000000000000000e+01,2.673999999999999773e+02 -1.616000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,1.600000000000000000e+01,4.640000000000000000e+02 -8.030000000000000000e+02,2.000000000000000000e+00,1.000000000000000000e+00,8.000000000000000000e+01,1.740000000000000000e+02 -1.430000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,2.100000000000000000e+01,3.400000000000000000e+02 -1.656000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,6.100000000000000000e+01,4.300000000000000000e+02 -1.541000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,1.600000000000000000e+01,4.400000000000000000e+02 -9.480000000000000000e+02,3.000000000000000000e+00,1.000000000000000000e+00,5.300000000000000000e+01,2.160000000000000000e+02 -1.224000000000000000e+03,2.000000000000000000e+00,2.000000000000000000e+00,1.200000000000000000e+01,3.290000000000000000e+02 -1.432000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,4.300000000000000000e+01,3.880000000000000000e+02 -1.660000000000000000e+03,3.000000000000000000e+00,2.000000000000000000e+00,1.900000000000000000e+01,3.900000000000000000e+02 -1.212000000000000000e+03,3.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+01,3.560000000000000000e+02 -1.050000000000000000e+03,2.000000000000000000e+00,1.000000000000000000e+00,6.500000000000000000e+01,2.578000000000000114e+02 diff --git a/week2/deeplearning.mplstyle b/week2/deeplearning.mplstyle deleted file mode 100644 index a77929b..0000000 --- a/week2/deeplearning.mplstyle +++ /dev/null @@ -1,124 +0,0 @@ -# see https://matplotlib.org/stable/tutorials/introductory/customizing.html -lines.linewidth: 4 -lines.solid_capstyle: butt - -legend.fancybox: true - -# Verdana" for non-math text, -# Cambria Math - -#Blue (Crayon-Aqua) 0096FF -#Dark Red C00000 -#Orange (Apple Orange) FF9300 -#Black 000000 -#Magenta FF40FF -#Purple 7030A0 - -axes.prop_cycle: cycler('color', ['0096FF', 'FF9300', 'FF40FF', '7030A0', 'C00000']) -#axes.facecolor: f0f0f0 # grey -axes.facecolor: ffffff # white -axes.labelsize: large -axes.axisbelow: true -axes.grid: False -axes.edgecolor: f0f0f0 -axes.linewidth: 3.0 -axes.titlesize: x-large - -patch.edgecolor: f0f0f0 -patch.linewidth: 0.5 - -svg.fonttype: path - -grid.linestyle: - -grid.linewidth: 1.0 -grid.color: cbcbcb - -xtick.major.size: 0 -xtick.minor.size: 0 -ytick.major.size: 0 -ytick.minor.size: 0 - -savefig.edgecolor: f0f0f0 -savefig.facecolor: f0f0f0 - -#figure.subplot.left: 0.08 -#figure.subplot.right: 0.95 -#figure.subplot.bottom: 0.07 - -#figure.facecolor: f0f0f0 # grey -figure.facecolor: ffffff # white - -## *************************************************************************** -## * FONT * -## *************************************************************************** -## The font properties used by `text.Text`. -## See https://matplotlib.org/api/font_manager_api.html for more information -## on font properties. The 6 font properties used for font matching are -## given below with their default values. -## -## The font.family property can take either a concrete font name (not supported -## when rendering text with usetex), or one of the following five generic -## values: -## - 'serif' (e.g., Times), -## - 'sans-serif' (e.g., Helvetica), -## - 'cursive' (e.g., Zapf-Chancery), -## - 'fantasy' (e.g., Western), and -## - 'monospace' (e.g., Courier). -## Each of these values has a corresponding default list of font names -## (font.serif, etc.); the first available font in the list is used. Note that -## for font.serif, font.sans-serif, and font.monospace, the first element of -## the list (a DejaVu font) will always be used because DejaVu is shipped with -## Matplotlib and is thus guaranteed to be available; the other entries are -## left as examples of other possible values. -## -## The font.style property has three values: normal (or roman), italic -## or oblique. The oblique style will be used for italic, if it is not -## present. -## -## The font.variant property has two values: normal or small-caps. For -## TrueType fonts, which are scalable fonts, small-caps is equivalent -## to using a font size of 'smaller', or about 83%% of the current font -## size. -## -## The font.weight property has effectively 13 values: normal, bold, -## bolder, lighter, 100, 200, 300, ..., 900. Normal is the same as -## 400, and bold is 700. bolder and lighter are relative values with -## respect to the current weight. -## -## The font.stretch property has 11 values: ultra-condensed, -## extra-condensed, condensed, semi-condensed, normal, semi-expanded, -## expanded, extra-expanded, ultra-expanded, wider, and narrower. This -## property is not currently implemented. -## -## The font.size property is the default font size for text, given in points. -## 10 pt is the standard value. -## -## Note that font.size controls default text sizes. To configure -## special text sizes tick labels, axes, labels, title, etc., see the rc -## settings for axes and ticks. Special text sizes can be defined -## relative to font.size, using the following values: xx-small, x-small, -## small, medium, large, x-large, xx-large, larger, or smaller - - -font.family: sans-serif -font.style: normal -font.variant: normal -font.weight: normal -font.stretch: normal -font.size: 12.0 - -font.serif: DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif -font.sans-serif: Verdana, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif -font.cursive: Apple Chancery, Textile, Zapf Chancery, Sand, Script MT, Felipa, Comic Neue, Comic Sans MS, cursive -font.fantasy: Chicago, Charcoal, Impact, Western, Humor Sans, xkcd, fantasy -font.monospace: DejaVu Sans Mono, Bitstream Vera Sans Mono, Computer Modern Typewriter, Andale Mono, Nimbus Mono L, Courier New, Courier, Fixed, Terminal, monospace - - -## *************************************************************************** -## * TEXT * -## *************************************************************************** -## The text properties used by `text.Text`. -## See https://matplotlib.org/api/artist_api.html#module-matplotlib.text -## for more information on text properties -#text.color: black - diff --git a/week2/images/C1_W2_L1_S1_Lecture_b.png b/week2/images/C1_W2_L1_S1_Lecture_b.png deleted file mode 100644 index 6b6120e..0000000 Binary files a/week2/images/C1_W2_L1_S1_Lecture_b.png and /dev/null differ diff --git a/week2/images/C1_W2_L1_S1_model.png b/week2/images/C1_W2_L1_S1_model.png deleted file mode 100644 index c7e1076..0000000 Binary files a/week2/images/C1_W2_L1_S1_model.png and /dev/null differ diff --git a/week2/images/C1_W2_L1_S1_trainingdata.png b/week2/images/C1_W2_L1_S1_trainingdata.png deleted file mode 100644 index 19aeea9..0000000 Binary files a/week2/images/C1_W2_L1_S1_trainingdata.png and /dev/null differ diff --git a/week2/images/C1_W2_L1_S2_Lectureb.png b/week2/images/C1_W2_L1_S2_Lectureb.png deleted file mode 100644 index 737a39a..0000000 Binary files a/week2/images/C1_W2_L1_S2_Lectureb.png and /dev/null differ diff --git a/week2/images/C1_W2_L2_S1_Lecture_GD.png b/week2/images/C1_W2_L2_S1_Lecture_GD.png deleted file mode 100644 index c21a949..0000000 Binary files a/week2/images/C1_W2_L2_S1_Lecture_GD.png and /dev/null differ diff --git a/week2/images/C1_W2_Lab02_GoalOfRegression.PNG b/week2/images/C1_W2_Lab02_GoalOfRegression.PNG deleted file mode 100644 index fddc8da..0000000 Binary files a/week2/images/C1_W2_Lab02_GoalOfRegression.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab03_alpha_to_big.PNG b/week2/images/C1_W2_Lab03_alpha_to_big.PNG deleted file mode 100644 index 540b33d..0000000 Binary files a/week2/images/C1_W2_Lab03_alpha_to_big.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab03_lecture_learningrate.PNG b/week2/images/C1_W2_Lab03_lecture_learningrate.PNG deleted file mode 100644 index f81e034..0000000 Binary files a/week2/images/C1_W2_Lab03_lecture_learningrate.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab03_lecture_slopes.PNG b/week2/images/C1_W2_Lab03_lecture_slopes.PNG deleted file mode 100644 index f77d3d9..0000000 Binary files a/week2/images/C1_W2_Lab03_lecture_slopes.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab04_Figures And animations.pptx b/week2/images/C1_W2_Lab04_Figures And animations.pptx deleted file mode 100644 index 874900d..0000000 Binary files a/week2/images/C1_W2_Lab04_Figures And animations.pptx and /dev/null differ diff --git a/week2/images/C1_W2_Lab04_Matrices.PNG b/week2/images/C1_W2_Lab04_Matrices.PNG deleted file mode 100644 index 3f70f51..0000000 Binary files a/week2/images/C1_W2_Lab04_Matrices.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab04_Vectors.PNG b/week2/images/C1_W2_Lab04_Vectors.PNG deleted file mode 100644 index c2a35e3..0000000 Binary files a/week2/images/C1_W2_Lab04_Vectors.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab04_dot_notrans.gif b/week2/images/C1_W2_Lab04_dot_notrans.gif deleted file mode 100644 index 39d972a..0000000 Binary files a/week2/images/C1_W2_Lab04_dot_notrans.gif and /dev/null differ diff --git a/week2/images/C1_W2_Lab06_LongRun.PNG b/week2/images/C1_W2_Lab06_LongRun.PNG deleted file mode 100644 index 0f8965a..0000000 Binary files a/week2/images/C1_W2_Lab06_LongRun.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab06_ShortRun.PNG b/week2/images/C1_W2_Lab06_ShortRun.PNG deleted file mode 100644 index 0b4b0eb..0000000 Binary files a/week2/images/C1_W2_Lab06_ShortRun.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab06_contours.PNG b/week2/images/C1_W2_Lab06_contours.PNG deleted file mode 100644 index bc31d2d..0000000 Binary files a/week2/images/C1_W2_Lab06_contours.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab06_featurescalingheader.PNG b/week2/images/C1_W2_Lab06_featurescalingheader.PNG deleted file mode 100644 index dc37d27..0000000 Binary files a/week2/images/C1_W2_Lab06_featurescalingheader.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab06_learningrate.PNG b/week2/images/C1_W2_Lab06_learningrate.PNG deleted file mode 100644 index e673ba0..0000000 Binary files a/week2/images/C1_W2_Lab06_learningrate.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab06_scale.PNG b/week2/images/C1_W2_Lab06_scale.PNG deleted file mode 100644 index 60144ed..0000000 Binary files a/week2/images/C1_W2_Lab06_scale.PNG and /dev/null differ diff --git a/week2/images/C1_W2_Lab07_FeatureEngLecture.PNG b/week2/images/C1_W2_Lab07_FeatureEngLecture.PNG deleted file mode 100644 index e4fd46e..0000000 Binary files a/week2/images/C1_W2_Lab07_FeatureEngLecture.PNG and /dev/null differ diff --git a/week2/lab_utils_common.py b/week2/lab_utils_common.py deleted file mode 100644 index fbef0da..0000000 --- a/week2/lab_utils_common.py +++ /dev/null @@ -1,112 +0,0 @@ -""" -lab_utils_common.py - functions common to all optional labs, Course 1, Week 2 -""" - -import numpy as np -import matplotlib.pyplot as plt - -plt.style.use('./deeplearning.mplstyle') -dlblue = '#0096ff'; dlorange = '#FF9300'; dldarkred='#C00000'; dlmagenta='#FF40FF'; dlpurple='#7030A0'; -dlcolors = [dlblue, dlorange, dldarkred, dlmagenta, dlpurple] -dlc = dict(dlblue = '#0096ff', dlorange = '#FF9300', dldarkred='#C00000', dlmagenta='#FF40FF', dlpurple='#7030A0') - - -########################################################## -# Regression Routines -########################################################## - -#Function to calculate the cost -def compute_cost_matrix(X, y, w, b, verbose=False): - """ - Computes the gradient for linear regression - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - verbose : (Boolean) If true, print out intermediate value f_wb - Returns - cost: (scalar) - """ - m = X.shape[0] - - # calculate f_wb for all examples. - f_wb = X @ w + b - # calculate cost - total_cost = (1/(2*m)) * np.sum((f_wb-y)**2) - - if verbose: print("f_wb:") - if verbose: print(f_wb) - - return total_cost - -def compute_gradient_matrix(X, y, w, b): - """ - Computes the gradient for linear regression - - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - Returns - dj_dw (ndarray (n,1)): The gradient of the cost w.r.t. the parameters w. - dj_db (scalar): The gradient of the cost w.r.t. the parameter b. - - """ - m,n = X.shape - f_wb = X @ w + b - e = f_wb - y - dj_dw = (1/m) * (X.T @ e) - dj_db = (1/m) * np.sum(e) - - return dj_db,dj_dw - - -# Loop version of multi-variable compute_cost -def compute_cost(X, y, w, b): - """ - compute cost - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - Returns - cost (scalar) : cost - """ - m = X.shape[0] - cost = 0.0 - for i in range(m): - f_wb_i = np.dot(X[i],w) + b #(n,)(n,)=scalar - cost = cost + (f_wb_i - y[i])**2 - cost = cost/(2*m) - return cost - -def compute_gradient(X, y, w, b): - """ - Computes the gradient for linear regression - Args: - X (ndarray (m,n)): Data, m examples with n features - y (ndarray (m,)) : target values - w (ndarray (n,)) : model parameters - b (scalar) : model parameter - Returns - dj_dw (ndarray Shape (n,)): The gradient of the cost w.r.t. the parameters w. - dj_db (scalar): The gradient of the cost w.r.t. the parameter b. - """ - m,n = X.shape #(number of examples, number of features) - dj_dw = np.zeros((n,)) - dj_db = 0. - - for i in range(m): - err = (np.dot(X[i], w) + b) - y[i] - for j in range(n): - dj_dw[j] = dj_dw[j] + err * X[i,j] - dj_db = dj_db + err - dj_dw = dj_dw/m - dj_db = dj_db/m - - return dj_db,dj_dw - diff --git a/week2/lab_utils_multi.py b/week2/lab_utils_multi.py deleted file mode 100644 index ad31e3b..0000000 --- a/week2/lab_utils_multi.py +++ /dev/null @@ -1,569 +0,0 @@ -import numpy as np -import copy -import math -from scipy.stats import norm -import matplotlib.pyplot as plt -from mpl_toolkits.mplot3d import axes3d -from matplotlib.ticker import MaxNLocator -dlblue = '#0096ff'; dlorange = '#FF9300'; dldarkred='#C00000'; dlmagenta='#FF40FF'; dlpurple='#7030A0'; -plt.style.use('./deeplearning.mplstyle') - -def load_data_multi(): - data = np.loadtxt("data/ex1data2.txt", delimiter=',') - X = data[:,:2] - y = data[:,2] - return X, y - -########################################################## -# Plotting Routines -########################################################## - -def plt_house_x(X, y,f_wb=None, ax=None): - ''' plot house with aXis ''' - if not ax: - fig, ax = plt.subplots(1,1) - ax.scatter(X, y, marker='x', c='r', label="Actual Value") - - ax.set_title("Housing Prices") - ax.set_ylabel('Price (in 1000s of dollars)') - ax.set_xlabel(f'Size (1000 sqft)') - if f_wb is not None: - ax.plot(X, f_wb, c=dlblue, label="Our Prediction") - ax.legend() - - -def mk_cost_lines(x,y,w,b, ax): - ''' makes vertical cost lines''' - cstr = "cost = (1/2m)*1000*(" - ctot = 0 - label = 'cost for point' - for p in zip(x,y): - f_wb_p = w*p[0]+b - c_p = ((f_wb_p - p[1])**2)/2 - c_p_txt = c_p/1000 - ax.vlines(p[0], p[1],f_wb_p, lw=3, color=dlpurple, ls='dotted', label=label) - label='' #just one - cxy = [p[0], p[1] + (f_wb_p-p[1])/2] - ax.annotate(f'{c_p_txt:0.0f}', xy=cxy, xycoords='data',color=dlpurple, - xytext=(5, 0), textcoords='offset points') - cstr += f"{c_p_txt:0.0f} +" - ctot += c_p - ctot = ctot/(len(x)) - cstr = cstr[:-1] + f") = {ctot:0.0f}" - ax.text(0.15,0.02,cstr, transform=ax.transAxes, color=dlpurple) - - -def inbounds(a,b,xlim,ylim): - xlow,xhigh = xlim - ylow,yhigh = ylim - ax, ay = a - bx, by = b - if (ax > xlow and ax < xhigh) and (bx > xlow and bx < xhigh) \ - and (ay > ylow and ay < yhigh) and (by > ylow and by < yhigh): - return(True) - else: - return(False) - -from mpl_toolkits.mplot3d import axes3d -def plt_contour_wgrad(x, y, hist, ax, w_range=[-100, 500, 5], b_range=[-500, 500, 5], - contours = [0.1,50,1000,5000,10000,25000,50000], - resolution=5, w_final=200, b_final=100,step=10 ): - b0,w0 = np.meshgrid(np.arange(*b_range),np.arange(*w_range)) - z=np.zeros_like(b0) - n,_ = w0.shape - for i in range(w0.shape[0]): - for j in range(w0.shape[1]): - z[i][j] = compute_cost(x, y, w0[i][j], b0[i][j] ) - - CS = ax.contour(w0, b0, z, contours, linewidths=2, - colors=[dlblue, dlorange, dldarkred, dlmagenta, dlpurple]) - ax.clabel(CS, inline=1, fmt='%1.0f', fontsize=10) - ax.set_xlabel("w"); ax.set_ylabel("b") - ax.set_title('Contour plot of cost J(w,b), vs b,w with path of gradient descent') - w = w_final; b=b_final - ax.hlines(b, ax.get_xlim()[0],w, lw=2, color=dlpurple, ls='dotted') - ax.vlines(w, ax.get_ylim()[0],b, lw=2, color=dlpurple, ls='dotted') - - base = hist[0] - for point in hist[0::step]: - edist = np.sqrt((base[0] - point[0])**2 + (base[1] - point[1])**2) - if(edist > resolution or point==hist[-1]): - if inbounds(point,base, ax.get_xlim(),ax.get_ylim()): - plt.annotate('', xy=point, xytext=base,xycoords='data', - arrowprops={'arrowstyle': '->', 'color': 'r', 'lw': 3}, - va='center', ha='center') - base=point - return - - -# plots p1 vs p2. Prange is an array of entries [min, max, steps]. In feature scaling lab. -def plt_contour_multi(x, y, w, b, ax, prange, p1, p2, title="", xlabel="", ylabel=""): - contours = [1e2, 2e2,3e2,4e2, 5e2, 6e2, 7e2,8e2,1e3, 1.25e3,1.5e3, 1e4, 1e5, 1e6, 1e7] - px,py = np.meshgrid(np.linspace(*(prange[p1])),np.linspace(*(prange[p2]))) - z=np.zeros_like(px) - n,_ = px.shape - for i in range(px.shape[0]): - for j in range(px.shape[1]): - w_ij = w - b_ij = b - if p1 <= 3: w_ij[p1] = px[i,j] - if p1 == 4: b_ij = px[i,j] - if p2 <= 3: w_ij[p2] = py[i,j] - if p2 == 4: b_ij = py[i,j] - - z[i][j] = compute_cost(x, y, w_ij, b_ij ) - CS = ax.contour(px, py, z, contours, linewidths=2, - colors=[dlblue, dlorange, dldarkred, dlmagenta, dlpurple]) - ax.clabel(CS, inline=1, fmt='%1.2e', fontsize=10) - ax.set_xlabel(xlabel); ax.set_ylabel(ylabel) - ax.set_title(title, fontsize=14) - - -def plt_equal_scale(X_train, X_norm, y_train): - fig,ax = plt.subplots(1,2,figsize=(12,5)) - prange = [ - [ 0.238-0.045, 0.238+0.045, 50], - [-25.77326319-0.045, -25.77326319+0.045, 50], - [-50000, 0, 50], - [-1500, 0, 50], - [0, 200000, 50]] - w_best = np.array([0.23844318, -25.77326319, -58.11084634, -1.57727192]) - b_best = 235 - plt_contour_multi(X_train, y_train, w_best, b_best, ax[0], prange, 0, 1, - title='Unnormalized, J(w,b), vs w[0],w[1]', - xlabel= "w[0] (size(sqft))", ylabel="w[1] (# bedrooms)") - # - w_best = np.array([111.1972, -16.75480051, -28.51530411, -37.17305735]) - b_best = 376.949151515151 - prange = [[ 111-50, 111+50, 75], - [-16.75-50,-16.75+50, 75], - [-28.5-8, -28.5+8, 50], - [-37.1-16,-37.1+16, 50], - [376-150, 376+150, 50]] - plt_contour_multi(X_norm, y_train, w_best, b_best, ax[1], prange, 0, 1, - title='Normalized, J(w,b), vs w[0],w[1]', - xlabel= "w[0] (normalized size(sqft))", ylabel="w[1] (normalized # bedrooms)") - fig.suptitle("Cost contour with equal scale", fontsize=18) - #plt.tight_layout(rect=(0,0,1.05,1.05)) - fig.tight_layout(rect=(0,0,1,0.95)) - plt.show() - -def plt_divergence(p_hist, J_hist, x_train,y_train): - - x=np.zeros(len(p_hist)) - y=np.zeros(len(p_hist)) - v=np.zeros(len(p_hist)) - for i in range(len(p_hist)): - x[i] = p_hist[i][0] - y[i] = p_hist[i][1] - v[i] = J_hist[i] - - fig = plt.figure(figsize=(12,5)) - plt.subplots_adjust( wspace=0 ) - gs = fig.add_gridspec(1, 5) - fig.suptitle(f"Cost escalates when learning rate is too large") - #=============== - # First subplot - #=============== - ax = fig.add_subplot(gs[:2], ) - - # Print w vs cost to see minimum - fix_b = 100 - w_array = np.arange(-70000, 70000, 1000) - cost = np.zeros_like(w_array) - - for i in range(len(w_array)): - tmp_w = w_array[i] - cost[i] = compute_cost(x_train, y_train, tmp_w, fix_b) - - ax.plot(w_array, cost) - ax.plot(x,v, c=dlmagenta) - ax.set_title("Cost vs w, b set to 100") - ax.set_ylabel('Cost') - ax.set_xlabel('w') - ax.xaxis.set_major_locator(MaxNLocator(2)) - - #=============== - # Second Subplot - #=============== - - tmp_b,tmp_w = np.meshgrid(np.arange(-35000, 35000, 500),np.arange(-70000, 70000, 500)) - z=np.zeros_like(tmp_b) - for i in range(tmp_w.shape[0]): - for j in range(tmp_w.shape[1]): - z[i][j] = compute_cost(x_train, y_train, tmp_w[i][j], tmp_b[i][j] ) - - ax = fig.add_subplot(gs[2:], projection='3d') - ax.plot_surface(tmp_w, tmp_b, z, alpha=0.3, color=dlblue) - ax.xaxis.set_major_locator(MaxNLocator(2)) - ax.yaxis.set_major_locator(MaxNLocator(2)) - - ax.set_xlabel('w', fontsize=16) - ax.set_ylabel('b', fontsize=16) - ax.set_zlabel('\ncost', fontsize=16) - plt.title('Cost vs (b, w)') - # Customize the view angle - ax.view_init(elev=20., azim=-65) - ax.plot(x, y, v,c=dlmagenta) - - return - -# draw derivative line -# y = m*(x - x1) + y1 -def add_line(dj_dx, x1, y1, d, ax): - x = np.linspace(x1-d, x1+d,50) - y = dj_dx*(x - x1) + y1 - ax.scatter(x1, y1, color=dlblue, s=50) - ax.plot(x, y, '--', c=dldarkred,zorder=10, linewidth = 1) - xoff = 30 if x1 == 200 else 10 - ax.annotate(r"$\frac{\partial J}{\partial w}$ =%d" % dj_dx, fontsize=14, - xy=(x1, y1), xycoords='data', - xytext=(xoff, 10), textcoords='offset points', - arrowprops=dict(arrowstyle="->"), - horizontalalignment='left', verticalalignment='top') - -def plt_gradients(x_train,y_train, f_compute_cost, f_compute_gradient): - #=============== - # First subplot - #=============== - fig,ax = plt.subplots(1,2,figsize=(12,4)) - - # Print w vs cost to see minimum - fix_b = 100 - w_array = np.linspace(-100, 500, 50) - w_array = np.linspace(0, 400, 50) - cost = np.zeros_like(w_array) - - for i in range(len(w_array)): - tmp_w = w_array[i] - cost[i] = f_compute_cost(x_train, y_train, tmp_w, fix_b) - ax[0].plot(w_array, cost,linewidth=1) - ax[0].set_title("Cost vs w, with gradient; b set to 100") - ax[0].set_ylabel('Cost') - ax[0].set_xlabel('w') - - # plot lines for fixed b=100 - for tmp_w in [100,200,300]: - fix_b = 100 - dj_dw,dj_db = f_compute_gradient(x_train, y_train, tmp_w, fix_b ) - j = f_compute_cost(x_train, y_train, tmp_w, fix_b) - add_line(dj_dw, tmp_w, j, 30, ax[0]) - - #=============== - # Second Subplot - #=============== - - tmp_b,tmp_w = np.meshgrid(np.linspace(-200, 200, 10), np.linspace(-100, 600, 10)) - U = np.zeros_like(tmp_w) - V = np.zeros_like(tmp_b) - for i in range(tmp_w.shape[0]): - for j in range(tmp_w.shape[1]): - U[i][j], V[i][j] = f_compute_gradient(x_train, y_train, tmp_w[i][j], tmp_b[i][j] ) - X = tmp_w - Y = tmp_b - n=-2 - color_array = np.sqrt(((V-n)/2)**2 + ((U-n)/2)**2) - - ax[1].set_title('Gradient shown in quiver plot') - Q = ax[1].quiver(X, Y, U, V, color_array, units='width', ) - qk = ax[1].quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',coordinates='figure') - ax[1].set_xlabel("w"); ax[1].set_ylabel("b") - -def norm_plot(ax, data): - scale = (np.max(data) - np.min(data))*0.2 - x = np.linspace(np.min(data)-scale,np.max(data)+scale,50) - _,bins, _ = ax.hist(data, x, color="xkcd:azure") - #ax.set_ylabel("Count") - - mu = np.mean(data); - std = np.std(data); - dist = norm.pdf(bins, loc=mu, scale = std) - - axr = ax.twinx() - axr.plot(bins,dist, color = "orangered", lw=2) - axr.set_ylim(bottom=0) - axr.axis('off') - -def plot_cost_i_w(X,y,hist): - ws = np.array([ p[0] for p in hist["params"]]) - rng = max(abs(ws[:,0].min()),abs(ws[:,0].max())) - wr = np.linspace(-rng+0.27,rng+0.27,20) - cst = [compute_cost(X,y,np.array([wr[i],-32, -67, -1.46]), 221) for i in range(len(wr))] - - fig,ax = plt.subplots(1,2,figsize=(12,3)) - ax[0].plot(hist["iter"], (hist["cost"])); ax[0].set_title("Cost vs Iteration") - ax[0].set_xlabel("iteration"); ax[0].set_ylabel("Cost") - ax[1].plot(wr, cst); ax[1].set_title("Cost vs w[0]") - ax[1].set_xlabel("w[0]"); ax[1].set_ylabel("Cost") - ax[1].plot(ws[:,0],hist["cost"]) - plt.show() - - -########################################################## -# Regression Routines -########################################################## - -def compute_gradient_matrix(X, y, w, b): - """ - Computes the gradient for linear regression - - Args: - X : (array_like Shape (m,n)) variable such as house size - y : (array_like Shape (m,1)) actual value - w : (array_like Shape (n,1)) Values of parameters of the model - b : (scalar ) Values of parameter of the model - Returns - dj_dw: (array_like Shape (n,1)) The gradient of the cost w.r.t. the parameters w. - dj_db: (scalar) The gradient of the cost w.r.t. the parameter b. - - """ - m,n = X.shape - f_wb = X @ w + b - e = f_wb - y - dj_dw = (1/m) * (X.T @ e) - dj_db = (1/m) * np.sum(e) - - return dj_db,dj_dw - -#Function to calculate the cost -def compute_cost_matrix(X, y, w, b, verbose=False): - """ - Computes the gradient for linear regression - Args: - X : (array_like Shape (m,n)) variable such as house size - y : (array_like Shape (m,)) actual value - w : (array_like Shape (n,)) parameters of the model - b : (scalar ) parameter of the model - verbose : (Boolean) If true, print out intermediate value f_wb - Returns - cost: (scalar) - """ - m,n = X.shape - - # calculate f_wb for all examples. - f_wb = X @ w + b - # calculate cost - total_cost = (1/(2*m)) * np.sum((f_wb-y)**2) - - if verbose: print("f_wb:") - if verbose: print(f_wb) - - return total_cost - -# Loop version of multi-variable compute_cost -def compute_cost(X, y, w, b): - """ - compute cost - Args: - X : (ndarray): Shape (m,n) matrix of examples with multiple features - w : (ndarray): Shape (n) parameters for prediction - b : (scalar): parameter for prediction - Returns - cost: (scalar) cost - """ - m = X.shape[0] - cost = 0.0 - for i in range(m): - f_wb_i = np.dot(X[i],w) + b - cost = cost + (f_wb_i - y[i])**2 - cost = cost/(2*m) - return(np.squeeze(cost)) - -def compute_gradient(X, y, w, b): - """ - Computes the gradient for linear regression - Args: - X : (ndarray Shape (m,n)) matrix of examples - y : (ndarray Shape (m,)) target value of each example - w : (ndarray Shape (n,)) parameters of the model - b : (scalar) parameter of the model - Returns - dj_dw : (ndarray Shape (n,)) The gradient of the cost w.r.t. the parameters w. - dj_db : (scalar) The gradient of the cost w.r.t. the parameter b. - """ - m,n = X.shape #(number of examples, number of features) - dj_dw = np.zeros((n,)) - dj_db = 0. - - for i in range(m): - err = (np.dot(X[i], w) + b) - y[i] - for j in range(n): - dj_dw[j] = dj_dw[j] + err * X[i,j] - dj_db = dj_db + err - dj_dw = dj_dw/m - dj_db = dj_db/m - - return dj_db,dj_dw - -#This version saves more values and is more verbose than the assigment versons -def gradient_descent_houses(X, y, w_in, b_in, cost_function, gradient_function, alpha, num_iters): - """ - Performs batch gradient descent to learn theta. Updates theta by taking - num_iters gradient steps with learning rate alpha - - Args: - X : (array_like Shape (m,n) matrix of examples - y : (array_like Shape (m,)) target value of each example - w_in : (array_like Shape (n,)) Initial values of parameters of the model - b_in : (scalar) Initial value of parameter of the model - cost_function: function to compute cost - gradient_function: function to compute the gradient - alpha : (float) Learning rate - num_iters : (int) number of iterations to run gradient descent - Returns - w : (array_like Shape (n,)) Updated values of parameters of the model after - running gradient descent - b : (scalar) Updated value of parameter of the model after - running gradient descent - """ - - # number of training examples - m = len(X) - - # An array to store values at each iteration primarily for graphing later - hist={} - hist["cost"] = []; hist["params"] = []; hist["grads"]=[]; hist["iter"]=[]; - - w = copy.deepcopy(w_in) #avoid modifying global w within function - b = b_in - save_interval = np.ceil(num_iters/10000) # prevent resource exhaustion for long runs - - print(f"Iteration Cost w0 w1 w2 w3 b djdw0 djdw1 djdw2 djdw3 djdb ") - print(f"---------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|") - - for i in range(num_iters): - - # Calculate the gradient and update the parameters - dj_db,dj_dw = gradient_function(X, y, w, b) - - # Update Parameters using w, b, alpha and gradient - w = w - alpha * dj_dw - b = b - alpha * dj_db - - # Save cost J,w,b at each save interval for graphing - if i == 0 or i % save_interval == 0: - hist["cost"].append(cost_function(X, y, w, b)) - hist["params"].append([w,b]) - hist["grads"].append([dj_dw,dj_db]) - hist["iter"].append(i) - - # Print cost every at intervals 10 times or as many iterations if < 10 - if i% math.ceil(num_iters/10) == 0: - #print(f"Iteration {i:4d}: Cost {cost_function(X, y, w, b):8.2f} ") - cst = cost_function(X, y, w, b) - print(f"{i:9d} {cst:0.5e} {w[0]: 0.1e} {w[1]: 0.1e} {w[2]: 0.1e} {w[3]: 0.1e} {b: 0.1e} {dj_dw[0]: 0.1e} {dj_dw[1]: 0.1e} {dj_dw[2]: 0.1e} {dj_dw[3]: 0.1e} {dj_db: 0.1e}") - - return w, b, hist #return w,b and history for graphing - -def run_gradient_descent(X,y,iterations=1000, alpha = 1e-6): - - m,n = X.shape - # initialize parameters - initial_w = np.zeros(n) - initial_b = 0 - # run gradient descent - w_out, b_out, hist_out = gradient_descent_houses(X ,y, initial_w, initial_b, - compute_cost, compute_gradient_matrix, alpha, iterations) - print(f"w,b found by gradient descent: w: {w_out}, b: {b_out:0.2f}") - - return(w_out, b_out, hist_out) - -# compact extaction of hist data -#x = hist["iter"] -#J = np.array([ p for p in hist["cost"]]) -#ws = np.array([ p[0] for p in hist["params"]]) -#dj_ws = np.array([ p[0] for p in hist["grads"]]) - -#bs = np.array([ p[1] for p in hist["params"]]) - -def run_gradient_descent_feng(X,y,iterations=1000, alpha = 1e-6): - m,n = X.shape - # initialize parameters - initial_w = np.zeros(n) - initial_b = 0 - # run gradient descent - w_out, b_out, hist_out = gradient_descent(X ,y, initial_w, initial_b, - compute_cost, compute_gradient_matrix, alpha, iterations) - print(f"w,b found by gradient descent: w: {w_out}, b: {b_out:0.4f}") - - return(w_out, b_out) - -def gradient_descent(X, y, w_in, b_in, cost_function, gradient_function, alpha, num_iters): - """ - Performs batch gradient descent to learn theta. Updates theta by taking - num_iters gradient steps with learning rate alpha - - Args: - X : (array_like Shape (m,n) matrix of examples - y : (array_like Shape (m,)) target value of each example - w_in : (array_like Shape (n,)) Initial values of parameters of the model - b_in : (scalar) Initial value of parameter of the model - cost_function: function to compute cost - gradient_function: function to compute the gradient - alpha : (float) Learning rate - num_iters : (int) number of iterations to run gradient descent - Returns - w : (array_like Shape (n,)) Updated values of parameters of the model after - running gradient descent - b : (scalar) Updated value of parameter of the model after - running gradient descent - """ - - # number of training examples - m = len(X) - - # An array to store values at each iteration primarily for graphing later - hist={} - hist["cost"] = []; hist["params"] = []; hist["grads"]=[]; hist["iter"]=[]; - - w = copy.deepcopy(w_in) #avoid modifying global w within function - b = b_in - save_interval = np.ceil(num_iters/10000) # prevent resource exhaustion for long runs - - for i in range(num_iters): - - # Calculate the gradient and update the parameters - dj_db,dj_dw = gradient_function(X, y, w, b) - - # Update Parameters using w, b, alpha and gradient - w = w - alpha * dj_dw - b = b - alpha * dj_db - - # Save cost J,w,b at each save interval for graphing - if i == 0 or i % save_interval == 0: - hist["cost"].append(cost_function(X, y, w, b)) - hist["params"].append([w,b]) - hist["grads"].append([dj_dw,dj_db]) - hist["iter"].append(i) - - # Print cost every at intervals 10 times or as many iterations if < 10 - if i% math.ceil(num_iters/10) == 0: - #print(f"Iteration {i:4d}: Cost {cost_function(X, y, w, b):8.2f} ") - cst = cost_function(X, y, w, b) - print(f"Iteration {i:9d}, Cost: {cst:0.5e}") - return w, b, hist #return w,b and history for graphing - -def load_house_data(): - data = np.loadtxt("./data/houses.txt", delimiter=',', skiprows=1) - X = data[:,:4] - y = data[:,4] - return X, y - -def zscore_normalize_features(X,rtn_ms=False): - """ - returns z-score normalized X by column - Args: - X : (numpy array (m,n)) - Returns - X_norm: (numpy array (m,n)) input normalized by column - """ - mu = np.mean(X,axis=0) - sigma = np.std(X,axis=0) - X_norm = (X - mu)/sigma - - if rtn_ms: - return(X_norm, mu, sigma) - else: - return(X_norm) - -