Files
FYS-STK4155/doc/Programs/ANN/Ann1.ipynb
T
2018-04-08 15:31:03 -04:00

571 lines
63 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## <p style=\"text-align: right;\"> Nicolas Dronchi </p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Day 22 Pre-Class assignment: Introduction to Artificial Neural Networks\n",
"\n",
"This entire Artificial Neural Networks module is from Neural Networks Demystified by @stephencwelch. We have streamlined the content to better fit the format of the class. However, if you have questions or are just curious I highly recommend downloading everything from the following git repository. It is a great reference to have:\n",
"\n",
" git clone https://github.com/stephencwelch/Neural-Networks-Demystified\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Goals for today's pre-class assignment \n",
"\n",
"</p>\n",
"\n",
"1. Think about the architecture of Artificial Neural Networks\n",
"1. Model data flow by performing forward propagation\n",
"1. Explore A Neural Network (through a visualization)\n",
"\n",
"## Assignment instructions\n",
"\n",
"**This assignment is due by 11:59 p.m. the day before class** and should be uploaded into the appropriate \"Pre-class assignments\" dropbox folder in the Desire2Learn website.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1. The architecture of Artificial Neural Networks"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Watch the following video:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/jpeg": "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\n",
"text/html": [
"\n",
" <iframe\n",
" width=\"640\"\n",
" height=\"360\"\n",
" src=\"https://www.youtube.com/embed/bxe2T-V8XRs\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"text/plain": [
"<IPython.lib.display.YouTubeVideo at 0x21a31c34e48>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import YouTubeVideo\n",
"YouTubeVideo('bxe2T-V8XRs',width=640,height=360)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will use the data from the video above:\n",
"$$X = \\left[\\begin{matrix} 3 & 5 \\\\ 5 & 1 \\\\ 10 & 2 \\end{matrix}\\right] \\hspace{1cm} , \\hspace{1cm}y = \\left[ \\begin{matrix} 75 \\\\ 82 \\\\ 93 \\end{matrix}\\right] $$\n",
"\n",
"\n",
"### &#9989; Step 1: Initialize your inputs\n",
"Create two numpy arrays to store the values of the variables $X$ and $y$, as well as their normalized counterparts \n",
"$X_{norm}$ and $y_{norm}$."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# your code here (Note include needed libraries):\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# input data (hours of sleep, hours of study)\n",
"X = np.array([[3,5],[5,1],[10,2]])\n",
"\n",
"# normalized X\n",
"X_norm = X/np.amax(X)\n",
"\n",
"# output data (test score)\n",
"y = np.array([[75],[82],[93]])\n",
"\n",
"# normalized y\n",
"y_norm = y/100\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2. Data flow: forward propagation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Data in a neural network flows via a process called **forward propagation**. Watch the following video:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUDBAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI\nCAgIChAMCAgOCQgIDBUMDhERExMTCA0WGBYSGBASExIBBQUFCAcIDwkJDxQPEBQUFBQUFBQUFBQU\nFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP/AABEIAWgB4AMBIgACEQED\nEQH/xAAcAAEAAQUBAQAAAAAAAAAAAAAAAQIDBAUGCAf/xABVEAABAwICBAcIDQoEBQQDAAABAAID\nBBEFIQYSMUETIlFUYXGUFBgyUoGRodQHCCNCYnJ0sbTB0dXwJDM1Q0SCkpPC4RVTs/ElNIOy0mNk\nc6IXRUb/xAAaAQEBAAMBAQAAAAAAAAAAAAAAAQIDBAUG/8QAMxEBAQACAQEHAgMIAgMBAAAAAAEC\nEQMhBBIxQVFhkXGBBaHwExQVIjKxweFS0WLC8UL/2gAMAwEAAhEDEQA/APGSIiAiIgIiICIiAiIg\nIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIi\nAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIi\nICIiAiIgIiICIiAiIgIiICIiAiIgIiICL0V3nelXOMF7XVepp3nelXOMF7XVepqbHnVF6K7zvSrn\nGC9sqvU07zvSrnGC9rqvU02POqL0V3nelXOMF7XVepp3nelXOMF7XVeppsedUXovvO9KucYL2uq9\nTUd53pVzjBe11XqabHnVF6K7zvSrnGC9rqvU1Ped6Vc4wXtdV6mrsedEXorvO9KucYL2uq9TTvO9\nKucYL2uq9TQedUXorvO9KucYL2yq9TU953pVzjBe2VXqaDzoi9Fd53pVzjBe11Xqad53pVzjBe11\nXqaDzqi9Fd53pVzjBe2VXqad53pVzjBe11XqaDzqi9Fd53pVzjBe11XqanvO9KucYL2uq9TQedEX\novvOtKucYL2yq9TTvOtKucYL2yq9TQedEXovvOtKucYL2yq9TTvOtKucYL2yq9TQedEXovvOtKuc\nYL2yq9TTvOtKucYL2yq9TQedEXovvOtKucYL2yq9TTvOtKucYL2uq9TQedEXovvOtKucYL2yq9TT\nvOtKucYL2yq9TQedEXovvOtKucYL2yq9TTvOtKucYL2yq9TQedEXovvOtKucYL2yq9TTvOtKucYL\n2yq9TQedEXovvOtKucYL2yq9TTvOtKucYL2yq9TQedEXovvOtKucYL2yq9TTvOtKucYL2yq9TQed\nEXovvOtKucYL2yq9TTvOtKucYL2yq9TQedEXovvOtKucYL2yq9TTvOtKucYL2yq9TQedEXovvOtK\nucYL2yq9TTvOtKucYL2yq9TQedEXovvOtKucYL2yq9TTvOtKucYL2yq9TQedEXovvO9KucYL2uq9\nTTvO9KucYL2uq9TQedEXorvO9KucYL2uq9TTvO9KucYL2uq9TQedUXorvO9KucYL2uq9TTvO9Kuc\nYL2uq9TQedUXorvO9KucYL2uq9TTvPNKucYL2uq9TQedUXorvPNKucYL2uq9TTvPNKucYL2uq9TQ\nedUXorvPNKucYL2uq9TUd57pVzjBe11XqiGnnZF6J7z3SrnGC9rqvVFYxD2o+lEEMs76jB9SGKSZ\n+rV1RdqRML3WHcmZs0ounv8AD+Nq9F/TZV3Vn9Z+5/UFdWCpul1SiIqul1TdSipul1CIibpdQiCb\npdQiCbpdQiCbpdaytx6jgnFPPUxQymHujVlcI2iEyiAPMj7MF5XBoBNyb2BsVTgmORVT5odSWCop\n3e6U87Wtl4Muc2KojLXFs1NIGktkYSNoNnNc0UbW6XUIgm6XUIgm6m6pRBVdLqlEFV0uqVKIlFCX\nRUooul0RKi+dlIKpHhHqCCpERAREQEREBERARERREREERFVQiIoIREQEREUKhSoQEREEKFKhCC1e\nl/6OxD5DV/R5FtFq9L/0diHyGs+jyIrZD85+5/UritN/Ofuf1K4VESigBSiCIiBdERAUoiAiIgLk\nfZP0nfhdPDM2pw+mDpH8K/EWVsjOBjic95hZRNLnSCzTZ1hq3N8l1y572RcAnxTD5aGCqZSGaSnM\nkklOamOSCKeOWWnfCJYy5kjWFh4wycdt0HF4Bg8+k2GR11eYKY4nRVFDXQR0kwL6JtRO+hlg7sdr\nUlbG55k1y2Rh4Q2Bs1w7HAtE201XHVOqJZu5sPiwyjhLIooqanaY3TODYmgPllfDCSbANETQAMyd\nnglNUwQltZWd2Saznmc08VKGsIB1ODiOqGts7Mm9jmTa60o0wdUlzcKopsQDXavdLnNpaC4uCW1E\novMAWkHg2uV0WyOrRceNIMahe/unAw+Frm+7UGIRVDiwjNzaeaOOR5B2ty6LrocEximrGF9PIHhp\n1ZGEOZLE/wASaJ4D4n9DgETbPRERRERAREQEREBEREFKhEEhQNp8ikKG+EfJ8yBrjWDd52BXLLXT\nf8zH8U/WtiqIsllKoe8CwJAJvYEgE2FzblsFdCUVqCpjkGtHIyRt9XWY9r263JdptfoV1TQIiJoE\nUJdNCUUXUpoERQmhNksqUBTQqIVKpPhKofj5kURSiCCoUlQgIiKKhQpKhAWr0v8A0diHyGr+jyLa\nLVaYfo7EPkNX9HkRWyH5z9z+pXVaH5w/E/qV1RBQiIiJHhrS52QaC4mxNgBc5DM5KilqGSsbJG4P\nY8BzXDYQdhVxc5itY3CnPmLXOpJy4ljBcxVRBIDG+JKRs3Oz3rTzcv7P+bL+nzvp7/T1dXZ+D9v/\nACY/1+U9fWfXznr4eOm+ZUxukfEHtMkYa57AeM0PvqFw3A2KvLV6N0To43SzW7pqXcNOeRxHEiF/\nesbZtugraLLiyuWO8pr9dPvrx92vnwxwzuOF3J0363z17b8PYRFqRVyx4gYZH60FVDr0vFA4OaDK\noiuBd2sx0cgv4sm4LY0tstPVYo/ungoTDIw0dVMwa2b6inmjjMeu0kNa0v1XZEgkcllt3OsCTsAJ\nPUMyud0Nw6N9BQSysBl41a1wLgWS1bnzPsWkXaeFsWm4NhcFVKp0WxVs1Q9sJe+GamhrZLlz2UtR\nUBj+AErsjrse2QMHg6rjkHADplHzDcqKiZsbHyPIayNrnvccg1rAXOJJ2AAFQ8HL15ditZLR/wD6\n2jIbWuDiDV1ZAe2jBbnwDGua5/KSG8q6mCJrGtYxrWMYA1rGgNa1oFg1rRkABuC5v2LnMfhNJOxw\nf3U19W+QWOu+plfK51xtPGA/dXTqpBabSLCDJaqpdWOvhF4ZPBEzRmaWoI/OQP2WPgkhwsQtyiKx\nMFxBlVTxVDAQ2VgdqnwmOBLXxut79rw5p6WlZa53Q+UCbFadpBbT4g5zQD4PdUMVU5p5PdJJDb4S\n6JCdRERFEREQRERREREEREEhQ3afJ8ykKG7T5EGDU/8AMxdX2rZLWVp/KIev6wtmrAsuUwpsdbUY\nz3SNZkNS2gDXHitpmUtLUvaRewbI+dzneM3VByAWLiOi1NW1r5GvrQWVDJaqoZiFfEx0kQZqUUEU\nM7YgwNYwScW1rtN3Pc5u7rdHYJn1QkaH09fE2OspnA6kzmNEbZNZrgWuMQEbhnrNYzZq5hpNHNGa\nbunEqiKCOmo8Qjpoo4YWiFsxp2yB2INjZYRvcZGNa8AEiBjr5tW20BxGSrwyiqJjrSyQN4R4FhI9\nhMbpANwcWa1vhK1SaI0tLHO3D29xy1EYhdPrzTvjjub8CJ5HBjgHOItlexIday3OF0MVLBDTQMEc\nMEbIYmDY2ONoaxtztyAVgyUXz/T7ShlHV8CdKMEwg8Ex3cmIwQyTcbW911n10J1HWy4vvTmtbgel\n8k1TBG3TDRSrD5Y29zwUrW1E4c4DgoXNxh1pXZgHUdmRkdiTqlun1ErmtHdM6aurq7DooauOqw4x\nirbPCyNjOGaXQ6rxIRKHtBILLjlsulXwj2R5mt0roZqaeenosTaNHsbq6cBsbqga9RR0jJ73jqSN\neJ0rM2CQNDg7ZPOT9e359Put8Lf17/l1+z6pgumNLVwVdTDHWGGiknimc6llGvJTOc2cU+X5UGOY\n4a0esCRYElYbvZIwluFR426admGSlmpUuoqzMSPEcbzEIjI1jnkNDi2xuOVdNS0EUMDaaGNkMEcQ\nhjijaGsjjDdRrGNGTWgZWXmWpqJan2P5KCmkLRhFJVTV5Fi61DiMopqF19j3iF8jt4bC3/MBTf6/\nuf7/ANPRuJaRUlM2mfO6WMVkjIaf8lqnOfLILsjc1kRMTyATZ4b4J5Csd2JvmxQ0MbtRlJSw1dSQ\nBrSGqknipoQT4LB3PM91szxBe1767RuYYnUxVutrUlDEIqWxBZNWyRNFXUgjwhE0mnaRsc6o6Fsh\nhj4sUfWsaXx1dJDSz2teJ9JJPLTyWJ4zHCplYbZghm4m2V6X5/0xl3N/T/bH0dq6iasxmCWdzmU9\nRTx05DImmFstFDM4CzeMQ+Qm7r7gs7RbEzVQvLxaWCoqKSewsDLTSuic9o3MeA2QDcHhY2EYTNRz\n4nVPlFSK2aOobBFTmOSMxU0VM2JrnTOEtxC03Ibm47tl/RDC30sDxKQZ6ipqKyfVN2slqZXSGJrr\ncZsbS2MO36l96k/x+f62yvt6/l+tNuPCK0+leONoKdsmpws008dLSQa2rw9VUP1Ioy6x1WbXudY2\naxxsbLcN2lcJ7J0Lv8Q0XlN+Bixt4lPvQ+XDq2OnLv8AquAHSQN6nnPrP7rfC32v9m50rra2hwir\nqmyU8lXS0lRUufLE8QF0UT5S1sUbg7U4uqLuvbMknbewCsqqnC6SoBj7rmo6echzS2J0r4mSOYQM\n2McSRcXte+drLXezRUth0dxx73NaBhdcAXODRrOp5GtaCffFxAA5Stxoa0DDsPDSCBRUgBBuCBBH\nmCNqTrcvt/7f6S9O79//AF/2vYBikdbTx1MVw19w5jra0cjHGOWJ9vfska5p6WrPXCewqXmkxGQ6\n3BS49jL4L7DF3dIy7fgF7ZCOtd2l8r7S/MWec97Pi6ERFFQoVSgoIWr0v/R2IfIaz6PItotXpf8A\no7EPkNZ9HkQbL9Z+5/UqyqPf/ufWqyogihSgpkka0FziGtaCXOcbAAbSSdgXJMoXYvK6ecOZQxaz\naOO5aZXkFpq3DaANrfJ036qqgZKx0cjQ9jhZzXbCNtj0KxDiNNriFs8HCAZRNlj1gBYW1Abi2QXL\n2jinJZM7O76f8r5S+08ded+nXu7Jz5cWOWXFL3/+X/GednvfDflPDx6W8AqXyQ6spvNC90Ex5Xx5\nB9t2s0td+8tiseCijZJLK1pEk2pwp1nWcWN1WnVJsDbK4GayFv48bMdZfr0++vH3c/PljlncsOkv\nXXpfOfSXw9haXS88HDHV5/kM7Kp9szwADoqnIbbQSSut8FbpUTRte1zHgOa5pa5pFw5rhZwIO0EE\nhZtNj5nHVz0VBXYpGX1FLirqyoLY/dDSSTOfHSVEYHhQOYItce9Njyr6NhVKIYIIQbiKGKIHl4Nj\nW39CwXT0OFU8UILKeJoLKeBus57rknUhiF3yG5OQvtWA52IYhYN18MpDtc4A4hM3LJrc20rTnmbu\n2bFWE6dIzcd0jgpXCFrX1NW4DUpKdvCTG+x0lsoY9+s+2XKuT0pwSsxGOKDEJiyStcY2UFK8ilp4\nm3fNPPILPqZGx2GZ1NZ4sCu3wbB6ejYWU8QZrG73kl8sjjtdLK8l0jr7yVrtHX91zz1/6u7qOkuN\nsMMh4aUX3STNyPixNVLN9KxvYrkb/hVLThrI30LXUE8TCCIpqRxhe02G06of/wBQFdSuQqqSTC6y\nprqeB89FWgS10EDQZoamMEGsijv7sHssHsbxrtBF9i3eBaQUVcwPpKqGYb2teBI0+K+J1nxu6HAb\nFNLK2ix8SrI6eGSeZwZFEx0j3Hc1oues7gN5K1+PaTUFCPympiY8+DCHB88hOQbHC273EnLYtCMN\nqcae2SvikpMMjeySGgedWoq3ts5slbqniRA2tDtuM9mbRvyijQuCSmikxOQFjcTnlq6yIixibI61\nNNbaNWFrA7oIO5dyDfMZg5i2zNQ4AgggEEWIIyIORFuSy0VJMaGVlNIT3NM7VpJDc8G859yyOO7b\nqE7hbcqTo3yIgUURERREREERFQREUEhQza7rHzKVS3a7rQa+vP5RD1j/ALgtqsWWnDnh+9treTNX\niHcvoCo5aj0CpaaSd9BNVUDKp8UtVDBO8xSSxTtmdMwSlxhmks5j3MI12vNxexHWK1qv8b/6tU6r\nvHP8LfsTZpWio1T4x8zfsUhp8Y+Zv2JsUTU0b/Djjf8AGY13zhWBhdKHB3c1OHNILXcBFrNINwWn\nVuDfesu3SfR9iW6T6PsQYOkFBLU00sENXNQvlaWiqp2wunivkXRcOxzA+2wlpsuW0p9juKuweHBx\nVPpo4H08ramGGI1AlppWzMmbr8VszpGlzn2JcXuOV129uk+j7Et0n0fYgtUEcjI2NlkE0jQA6QME\neuR77UDiGk9B8y4+j9jmkhwfEcIicWsxN2ISVE+qNd0uIPke59t+oHtaByRhdrbpPo+xLdPzJeqz\np4MLAsKgoaWCjpmCOCmiZDEwbmMAAvyk7Sd5JWYpt0pZW3aSaiFIUWPL6P7qQDyjzf3U2IbtPWsH\nGsNhrIHwTA6r9Vwc0gSRyRvEkU0bj4MrJGte124tCzwLKSorANCyWFkVWIastA1jLDGWvcMtfg3a\nwa49HKdit1eHWpzT0Zjo2u4utDEwcEx3hmFjbMbLbY4ggE3sbWOxSyuzTEwqghpYIqanYI4YWNjj\nYLnVa3lJzcTtJOZJJWWUsORQluyTQiIoooKlQUELV6X/AKOxD5DWfR5FtFq9L/0diHyGs+jyINn7\n/wDd+tVFU++/d+sKtRFKt1U7ImOkkcGMYC57nGwa0bSVdK5nSeM1VZR0BPuBa+rqW/5jInNbFG63\nvS+/m6Fq5+S4Y7k3ekn1vSfb19nT2XgnLyayupJbb7SbuvfynusRQz4s4ySPkp8NuRHCwlktWBlr\nyuGbYjuA/utkdEsMtbuGn5LhlnnK1y8cYnput01oAAAAAFgALAAZAADYFUtOHY8PHOTPK+Ns38b8\nJ6Rv5PxHl3rit48Z4Y42z51431t/s5vuafDQXQumqqMXL4JHGSenZ41O85yMaP1bs7DIrf0s7JWN\nkjcHse0Oa5puHNOwhXFxEuPx4ZiD8NEckz6xvdOH00YzLjrd0s1jxYoQWl9ycrmwKyxx/ZZST+m9\nNel8fj+3TXRjlnO0YZZZf149d/8AKbk6/wDlNzr5ze+rtnvDQXOIa0C5c4gAAbSScgFzjMflrXFm\nFsa+IEtkxCYO7laQbObTtFnVUgzzFmDlKobgNVWv18UlYYLAtwyC/c4cDk6omNnVR2cWwbfcV00U\nbWtDWtDWtADWtADWgbAAMgF1PP61q8JwCCCR051p6p4s+qnOvLbxY90MfwGABbZEUVodM62RscVL\nA4tqa+UU8Tm+FFGReoqB0Rxaxvylq3FFTMhijhjGrHExsbG8jWgAeXJaDRdoq558TfmHOfS0Wdwy\nkieQ+Ro3OllDiTyMaF0qtSeotLi2imG1bteooqeSTP3XgwybPaeGjs+/lW6RRdbaXBNFMNon8JS0\nVPFLn7qIw6bPbaZ93gdF963agIqBVjEaOOoifDKLseLHlBGbXNO5wNiD0K+pKK0uBVsjXuoqpwNR\nE3WjkOXdUGwSgeONjhyi+9bpa/GsNbUsFnGOaM68E7fDik5elh2FuwhWcFxQyOfTztEdXCAZGC4Z\nKw5CeEnwozybWnIoxnTo2yKApRRERBFlKIgIiIJVLdp61UFSzaetAm8E9SuFWpvBd1FXCrAVqqqG\nRNL5HtY0EC7jbjOIa1o5XFxAAGZJVNTWQxFollijLzZgkkYwvPI0OI1j1LncRqhLjGFRBzX05osR\nrI3NIdG+eJ9DBE9rgbOLYqqYi3j3VGzbpJh5q+4BW0preNak4ePug6oDnARX1iQ0gkbQCtlBO2Ro\nexzXtN7OaQ5psSDYjLIgjyLjsUbRVlXRRRy0zYcLxA1MjxLHrurtWWJlLENbWMhkqC6R3KA3Mudq\n52jU5GJ4zTt/MxPopmjc2eppy6oA5L6kTyOWRx98pOpXT3S6hFRVdFC1mOY3DSGBjxJJNVSOipqe\nEB0sz2Rulk1Q5wa1jY2ucXuIAyzuQCGzRaWk0lppKajqSJ4u7tUU9NNC+Ore9wJMZpzxmua0Oc4n\nJoaSTbNbpAugcuap8UnrKrEYqZ7I2Ye9tGNdusJa2SniqXvk3mGKKohs1pGs4uubALX4G7E21+I0\nTq41kUVJSzQVM1NTxvgq5nT61LL3M1jJY+DjiktqhzWyjM3BU3B2usp1lqMAxuGqpqWe7Y3VTSGx\nucNbhWB3DQt8dzHMkGXiEraqipxVAddH7FREoqtERRRERBCIiAoKlEFK1el/6OxD5DWfR5FtFq9L\n/wBHYh8hrPo8iK2fvv3frVRKp99+79aqUQXPgWxkl3v8Nsw//HU3eOvjtK6BaXSiF7eBrIml8lI4\nucxu2SneLTsA3usA4dLFo7R/T3vSy/bz/J19iu87h4d7G4/e+HzdT7t0pViiqo5o2yxOD43i7XDM\nEfUejcry3SyzccuWNxur0qV8o08wls+PMrHvmEFFQMp6h8Mro5KU1MzjHVQOb4MjS4F17gtGzJd9\npFj0dKBGwcNVyZQ0zDd73HYXAeBHvuVb0bwQxU8oqrS1FZrPq3bnF4I4MfAa0kDyrny5O/yTDHyu\n8vbp0n1vjr0+ztw4f2fBlyck/qmsJ69Zbl9JJrfnb08Kwxi8+HFkeIF01KdVkeJtaDYnICuYwe5k\n5e6NGqd9l08bw4BzSHNcAQ5pBBB2EEbQuf0SqDqz4dUceaiIjJe24npJATTS55OBYNR3Sw32q1Lg\n9RQky4Zx4jd0mGyvtE4k3LqWV3/LvzPFN2noXU86V060OmtU8QNpYXatTXv7liI2sa4XqJstgZDr\nm/KWrLwLGoasODNaOaPKanlGpPC7kew7uRwuCtfgZ7rrqqs2xU96Cl5NZh1quVvXJqx35IikLd9G\n8oKVkEUcMYtHExsbB8FgAF+nJX0RRkIi0WJaY4TTEioxKhiI3PqYQc8tmtclVG9RUQyNe0PY5r2u\nF2uaQ5rgdhBGRCrUUREVQWsx7DDO1r4ncFUwnXgltsdvY/licLgjpWzRDxazAcWFSHse3gqmAhtT\nAdsbiLhwPvo3DMO5Fs1qsbw57y2opnNjq4gQxzhxJmbTBNvMZOw7Qcwr+C4k2pYSAY5YzqTwu8OG\nUC5aeVu8OGRGaJL5M9FClFERY0lfA06rp4Wu8V0rA7bbYTfapcpPHolyk8WSihrgQCDcHYRmD1KV\nVFDdp61Khu09aCmfwXdRSun4OOSQgkRse8gbSGNLrDpNkqPAd1K65VXn2bH45dFn1kj46vGNK2x0\nz3MLZW0MWKSupoIXuBIpqOmhe4AGwdIxxzc5xX2mhwWl7noGwcVlCyIUckfF1Y2xCHVGVnRPiyII\nsbgjMNIyHYHRFhjNHSGMytnMfc0OoZmG7JizVsZQRcP2hbBWdGOmmj0Vwtk7apmG4eyqY5z2VLaK\nmbOx7gQXiVrA8OOsbkEE3PKsvB8NZTNk1SXyTSunqJXeHNM4NaXutkAGMYwNGTWsaBsWaiK5f2R8\nVipaeF0uLPwcOmsKhlPFU8JaN5MLmzQSNa332tYHiAXzseCOn9Gz/wDvsKb8roqBnn90iX2UussO\nqkaciAesA/OoulvR2rE1JTy91Q1gkhY8VdO0MgqQ4awmia17gI3AgizndZXCYY19dpZXTCrmMGCU\nVPRsYBTuY2qxIirq4/zVwBTxUYvfX4541iukxbHGUxhZwcjxI9zLxBmpCGxvfrykuGqy7Q0aoJu8\nZWuRyGCxspTWywulHdtZLWVUjn8eWeRrGBoIAtGyKOONrdgawbTmeXm7Vjx5et69P17Ovh7Fny49\nPDp1/wCvu3WhlZ3bpFpFLJxv8LNDhVKDmIo5KSKvqnNB8F8kk8YcRtFPHyLNxOqxsVvBQT4UY5JQ\n5tM+kqnzw0QIa6eoqmVbWa5IfqtEYuSG56rnDVUlaM3NawEm5da7nEZXc45krZ4diTo3ucA27y0y\nXHhlo1RrOOYIAsDsHIsMO2TpuNnJ2DOb0yYcIqoJcXbSyMhfiLxWU1VJDw8VPVGmgpJGywCRhkA7\nnjlaNYA67hfi52dHKHFaCKXuqekruL7jHRUM1LLPUvPGlq5qirm1iSBd/FABJN7ADpKWqbI0Oacj\nuO0HeD0q8HLrllnT0/JxWavX1/NzMOjPBYIKB8l5oqdzxUMFjHWguqO6YbjiltQS9vQADfNZnsdY\n8cUwnDcQIDXVlHBO8DYHvjBfb4Ote3Qo05xJ0FDO2FvCVlRHJT0MANnTVUrHNjGWbY2k6732s1jH\nE7Fd0EwFuF4Zh+HMdrtoaSCm1/HMUbWOf5XAnyrKef2/z/r8mFnh9/8AGv8AP5t1LsVMYyUy7Ebs\nSqlSihRRQpRBCIigKCpUFUQtXpf+jsQ+Q1n0eRbRavS/9HYh8hrPo8ig2Q8I/FHzlVKkeEfij53K\npARSiI0lVo83XdLSzTUUjzrP4DVMUjvGfA8Fhd0ixVh+C4i7iuxZ4YRY6lJAyTyPaeKekLokXNl2\nXjvrPpllJ8SyO3H8Q5pOtl98sccr85S382qwLR+no9Z0bXPmfnJPKdeZ5O27zsHQLLaopW7j48eP\nHu4zUc3NzZ8uXfztyvrXO6WN7mkgxNrb9zXiq7Xu6ilI13WHhGN+rJbkDl0DHhwDmkEOALSMwQRc\nEHeLKJY2vaWuAc1wLXNOYc0ixBG8EXWg0Nc6ATYdISXUbvcXONzJRykup3X3lovEf/jHKtjTOlYn\nsj0LHxRPi1o8TfI2CgnicWSslk8Iuc3w4GsDnOa64sNys4BiZwqOGgxJrIWMa2OGvZrCkqXE7ZS6\n/c07iS4hxsSTYrYYe/uvEZphnBQNdSRG2TqqSzqp7T8FupHl8Jb6qgZKx0crGyRvGq9j2hzHA7Q5\nrsiESTzi40ggEG4OYIzBB2EHeFK5T/BKvDyX4ZJwtMLk4ZUO4g3kUdQ7OAncx1257lqtMNOYe4ai\nCNz6XE5eBo46SccHPHUVpEbCwniyhoc52uwkcVNL3mdXRf43O6EPd/hEALZzG9zP8QqNazoRIwg9\nzx6tnW8Iu6ARtzojhZhFOcOojCCCIzTREXGx3g31unas/BcNio6eGmhbqxwRtjaOWwzceVzjdxO8\nkrMTZI42XQCCC78KqKnCZdbXtBI6Wme61vdaSdxY5vQLLP0cxmoEvcOJMijrQ1z4pIb9zV0TTxpI\nNbNkjRbWiOYvcZbOjWm0xww1NK7g8qmnIqaSQDjR1EPHZqnbZ1iwje15CbNa8G5RYOA4i2rpaeqY\nLNniZKAdrS5t3NN94dceRZyKIiIC1GN4bIXtqqQtZVRgNId+bqYr3MMvT4rtxW3RCxhYNiTKlhc0\nOY9jiyWJ+UkMg2sePmOwhXcRrGQRmR97DINGbnuOQa0b3Fa7GMKkMnddG8RVTW2c0/mqpg2RTjlG\n5+0X82swzGWV2JMh8B1JSmaWmcRwkVQ+QR8YbSGgGzthutPPnccf5fG3U9t+f2nVp5c7jNTxt1P+\n/s2RoamquaiZ9PEdkFOdV9t3CzW1r2yLRlkq6XRnD4vBpIbm13ObwjzbeXvuSelbdFjj2Xj8cp3r\n63rf9fSaiTs3H45TvX1vW/6+2mnqMMfBeWicWEcZ1K43gm5QAfzL7bHNy5Qtjh1W2eNsrQQHDNrv\nCa4ZOY4bnA3CvrVYYNSqq42+A7gprbhJI2z+q+qCp3ZxZyY+F6a9Lq3c9PC7/wDqd2ceU14Xpr31\nvp6eHVtlDd/WVIUN39ZXS6FM4u0gco/7hf0KsvHT5j9iIqI1uvzH7Ev1+YqUum10jW/FioL+vzFC\nVZlkU2aW6qoAG/zH7Fz2LYmBkCb9TvsWZilVqgrlqmUk3KwzybuPHbCxao1jt+fac1FG1pYQZA7V\naQDm0atyeKHZ8qsVYuT1rDqAbEZ3Xh8meuS2vp+LCfssZOjaYNcst0nP5ltKcHWuSuPgqKiPwH5d\nIHzrIjxSoc4BzhYeRbJ2nD0rVycOdtu47zRmstLJETk4m3xm/wBl0bZByjzrhdH32ljffa9tz5c/\nQV3i7ux5Xua93kduwkz36xLWMLg/VaXhpaH2GsGkglodtDSQMugLIasbUb4o8wVYib4oXbtwaXZT\nkqm7FQANiqBURKJdEBEUICIiAoKlQUELV6X/AKOxD5DWfR5FtFq9L/0diHyGs+jyINi3wnfFb87l\nWqG+E7qb/Uq0QREQSoREEoiIC4n2Vq5+HQsxWAt4eG9MWH9dHU8UNsBmY5NWUDkY5dsubhibX10s\njwH0tEH0sTDYslqZGgVMhG/UYRGPjOVjHPrNRtNGqBlNSQQscHhsYJkH617+PJLffrPc53lWwXO6\nGSOh4fDZSS+icOBcf1lFLc0zr7y0B0Z5NQcqzsVxfg5BTQNE9W5usIQ6zYmHZLUO/VxX8p2AKLua\nXMexeOkjD3hz5HnUggjF5Z5TsjjbvPKdgGZXEaZ4JwrsKrsRDZKluL4eIowS6CjY+X83GNkkhIZr\nSHaQLWAXZYTg/Bv7oqH90Vjm6pmIsyNp2xU7D+aiv5TvKo00wo1tDPAy3C6rZKcnY2ohc2WA33e6\nMaL8hKrGzfVuFK1GieOMxCmbMBwcrSYqmB3h01SzKWGQbWkHMX2gg71tlGaVDnBo1ibAZknYAMyT\n0WUrkNKa99bOcHo3ZuA/xOoYR+R0rhfgs/2iZt2gbgSeqpWv9jPDap+F08rMQqYWyuqJY4nRU0rW\nRSVMz4w3Xj1g3ULTYk7V0b8MxC3FxQ3y8Kipndeyy3FNCyNjI42hrI2tYxoyDWtAa1o6AAFcTad1\nou4cUGzEYHfHoAPOWThQIsYF/dsNdyEwVLerISn51vkTZpomx4uTxpsNYPgwVLyf4pRZQaXFiR+W\n0TW2z1aKRxvy8aoyG1b5Q5wAJJAABJJNgAMySTsCGnOz0mJxtfI/FaZrGgvJfh7WxsYLk6zuHvYC\n2d9y0Gg1HWPxaqxCrFO01FKxlOY4XRSzUjHAMfIHOcWu1gHapOxw8nSMacQkbI6/cEbtaNhuO7JG\nkFsrxzZpHFafCOZyAWXjLHMdFVMaXGAuEjWi7nQSAcJqgbXNIa63wStHaJ/LL6WX/v8A7aObHpMv\nSy/r6Nmiohla9rXscHNcLtcDcEHeCq1ul26BanBCXzVk2Wq6RkbDyiJtiekXO1W8SxAzE01IQ6Q5\nSSjOOFux13t/WbgFtKKnbDGyNuxgA6Tyk9JOflXLMv2vJLj/AE476+t8NT6Te/f7uaZftM5rwx8/\nfw19vNeCN39Z+dFDfrPzrrdSUREBQShKtuKCHuWFUyK/M9aqvmsCsayjUYzUXNrrTyFZNXJdxWI9\nasq6cJphSnM9Z+dWQ2+3zquZ1ta/KfnVl0i8Hmv81fRcX9MXWw32DMDz/YoazdsPSoikPIrjX52s\nLnesIys02uF3aB0EEeRfQY3awBGwgEdRF189oXbjvXcYQ/WgjPwbfwkt+per2HLxjx/xDHwrMCra\nVQpC9F5dXbqbq20qq6qK7pdU3S6CtFSpuiJRRdLoBUIiKLVaYfo7EPkNZ9HkW1Wq0vP/AA7EPkNZ\n9HkQbJvhO6m/1KtUN8J37v1qooxSiIgIufxLSImR9NQRd11Lbhx1tWngOz3aTYSD70Z5bVRSQYy5\nofLUUcTxf3FsDpIiNxMmuHAnoXLe143LWEuXvJ0+bZN+0d8/D85j3uTLHDfhMr1vv3ZLde9kjoyi\n08eLSROaytibDrEBtRE4vpnE5AOc4B0LidmtkeVbhb8OTHPw+POfZy8vBlx+PhfCzrL9LP1Gs0kr\nnQQ2izqJ3tgpx/6shsHkeKxus89DFk4RQMpoI4GXLY22Ljte4kufI7lc5xc49LlpWVMctbUVUrmt\npcNaYI5HkBgqHNBqpAT4rCyO/KXAKpj5sTbkJKWgdazuNHVVbegbaendy+E4cgK2NErntO8WkFRF\nVYeSG0pdTYlWtY2SGClmcwO1QT7vNE/VfZtw3O+9drgmGQ0serFdxfx5Jnu15Z3n9ZLIc3k+YbrK\n6MPgEBphExsBY6IxBoDNRwIc23SCfOtVoVO5sctDKSZsPfwFztkpy3WpZeoxEN64ylSTVdAigIoz\nc7jujJkn7toqh1DXBuq+RrGyQVTR4LKynNuFA2BwIcNx2LDdW6RRjVNBhlQ64AlhrpoGEb3GKaEu\nG7IOK65ArtjpyBw/HqsWqK2kw2InNuHRvnqS3e3umps2J3wmsJW90bwKmw+HgaZhAc4vkkkcZJ5p\nCSTJNK7jSPzOZ2brLZoi6ERQoqURQ5wAJJAABJJNgAMySTsCCJHhoLnENa0Ekk2AAzJJOwWWk4M4\njZzw5tCCCyM3a6sINw+UbRT5XDPfbTlkqYNbEH67gW0DHe5MORrHNP52QEf8sCLtb77acrBb9Vj4\noAAsBkBkAMgByAcilEUZNO/CZYnufRStgDyXSQyMMkBedr2NDgYncoGRUuw2plyqKriHbHTxiIEc\nheSXW6Ft0Wi9l47669N3XxvTn/dsPfXpu6+NrNHSxwtDImNY3bZotc8p5XdJV1Si3ySTU6N+OMk1\nBQ36z86lUtPzn51VSVF0KpLkUJVp7lLnKxK9QWal60WKTLZ1cmS53EH3KxrPGMN5Vp6uFW3Baq6M\nWtrPCP43K1C25zWRiLbOaeUfN/useLaLLxefHWde1w57wjJYwKWxtJyPz/YqoyrzWD8Ba5G21foz\ns8y7bAHXgb0Fw9JP1rh4mjkseorrdFJsnxn449DXf0ru7FlrPTg7djvDbdqURes8aiqBVKIi4Cpu\nrYKqCorul1TdCUFd0VKlBKXVKIJK1Wl/6OxD5DWfR5FtFq9L/wBHYh8hq/o8iDZt8J37vzKpUM2u\n6x8wVRRilaPSSqkc+KhgJbLUhxklb+pp2+G7oc7wQevoW7WkwNmtWYhMRxhJHA05ZMjjBIHIC43X\nP2jdkwnTd19vG/Otfd29j1j3uWzfdm5Pe2SfFu/fWmywzD4aaMRQRtjYNwGZPjOO1zukrLS6Lfjj\nMZqdI5M88s7csru3xtW54mvaWvaHNIILXAEEHaCDtC43FMfbg0VbHM+0cUPDYeZHXLi8iMUoJzeW\nyubYbdU9C7UFcP7JWjcGI1eEMku2WGplqIJAA8RuiY2TjRu4sjSWNyPJuutPNJLjn4WWT6y3Wvz+\nXV2W3OZ8XjLjb9LjLlue+pZ7y6ZGimCPnp6Z9YxzYYwJIaOTa6V3HdU1g/WSmRznBhybcXz2ditJ\nR4tLE9sFexkUjzqxVEZPc1QeQF2cMp/y3X6CVu10VxTXkLm8dtS4hR1uxk//AA+pOVvdDr0j3dUw\nLL/+qukC1+keGispZ6YmxljIY7xJRxonjpbIGu8iRMmwUrU6JYmaujhmcLSgGKdp2sqIXGOZpHx2\nk9RC2qjJKKEQSihFRN0UKUALn5P+JSFgJ7ghdZ5Gytmac4wd9Kw7SPCcLbAb3MTqXVUr6GBzmtZq\n92zjLUY4X7nid/nvG0+9aeUi25pomRsbGxoYxjQ1rWiwa0CwACMfFWBbIZAZADYByAcilFCMkooU\noCIiAii6ICpbs8p+dVK005eU/OiqiVQ4qSVaeVBTI5Ysz1clcsSZyDDrpMloah1ytpXv2rUPOa15\nNuK25UqoqAsG2MavjuwHkNvP+AsONllt547xv6Bf+HP6lrmDLoXmdrx/n29PsuX8ml2Nt1fY07Vi\nSS6oG87gq45LjM+QfauZ0zfizGG+zby/jctlgdSY5WuOwHPqOR9BWlin1T+As2nlucllhn3btjyz\neNlfQrKCtbo9W8JHqO8Ng87NgPk2eZbMhe7hnMpuPAzxuN1UIUVJWbBUgKpS6C4CpurYKkFBcuio\nupBVRUl1TdEFV1qtL/0diHyGr+jyLZrV6X/o7EPkNX9HkQbWPa/rH/aFJVMW1/xh/wBrVWjEWmoi\nIa+oiP7SxlTHfZrMHBStB3nJh8q3K12N4b3QGOZIYZ4Xa8EwGtqu2Oa5t+PG5uRatXNjdS49bLv/\nABfy/N09lzxluGd1Mprfp5y/Mm/bbYqVpmYyYQG1zO5nXtw2b6V58YSj81fxZLeVV1GkdCwZ1ULu\nQRvErieQNiuSVP3jj11sn16X8z9y5t6mNy9LjNy/SzcrbLnKKXurE5JWZwUcRga8eC+eQgyap32b\nxT/dJ5KuvBjjZJRUrrB88g1amZp2tii2xAj3zs8/It5h1HFTxthiYGRsFgB6STvcdt1q3ebKa6Yy\n7362eGvaeO/Ppp0TGdlwy713nlNanXuy+Nt9bOmvLrvV6KqyljmjdFKxskbxZzHC4Pk5elc+ZZ8M\nsH8LVYfsEuclRRDklA409OPGF3N33Ga6YqF2PN0t0s7JWNkie2SN4DmPYQ5rgd4I2q6ucrMOqKN7\np8OY2SJxLp8PJDGvJ2y0r9kU3wTxXdBW1wbFIauMviLgWnUkjkaWSwyDayWM5td6DtF0JWmwz8jx\nSppySIsRb3dT8gqYw2OsjBvtLeCkt8ZdOuc0/Y5tKKyP89h0jaxnwo47iojPQ6AyDyBdBTytkY17\nDdr2te08rXAOaR5CEqT0VotVpDj1PQtaZnF0kp1YKeMa9RUP8SGIZuPTsG8rQvj0irLubNR4PFfi\nR8D3fVEbuFLi2JhOXFbe3Kmltdmi4ulxfFsOaHYyylqaa5D6/DmTNNON0lVSvueC5Xx31d43rsae\nZkjGyRua9j2hzHscHNc05hzXDJwI3hCVWtPpDWy3ZSUptVTg+6Wu2lhGTqh4ORI2Nbvd1FZeMYi2\nmj13DWe4hkMQ8OaV3gxtHkzO4AlWNHsNdA18kzhJVVDuEqJBsvsZFGD4MUbbNA6CdpKF9GVhdDHT\nRCKMGwuXOOb5HuzfJI73z3HMlZahFFTdQilACKEQSoRFQRFF0RKssOXlPzq5dWYzkes/OoyS4qzI\n5VvKx5CgtSuWHO9X5XLAqnqLGBWvWuKyqtyxSsK24oUsCgBXGBYM4yaePWy5Rbz5LQTOsAOQZ9YX\nS0g2LmKq4fIPFe8eZxH1Li7ZPD7u3sd61akeAC4nIbT9Q5VZE5J5B4t/nPKseudfV8Vpvbld/Y+l\nWKZ5vbK983HO18wAN5tZeZXq4t7A8W2ehXqeoGtqm43jLMhayF9wRncecjk6lk07DfWtnsN+vLP8\nbVNrljI6PD6t0T2vGYBB6xvHlC7eOQOaHNN2uAI6iLhfOqOS425C/n+xdXoxV3aYidnGZ1bx58/K\nV6fYeXV7teR23i//AFG6KgpdQSvTeaglUko4q056oua6nXWK6RU8KoaZweqg5YDZleZIrtGVdTdW\nmPVd0ErV6X/o7EPkNX9HkWzutXpcf+HYh8hq/o8io20O1/x/6Wq4rcHv/jn5mq4jBClQiIOAORAI\nO0HMHrCtwU0bLlkcbCdpaxrb+VoV1QpZGUzsmpUoiKsUogRFFp8YwYvkFVTP4CsY3VElrxzM/wAq\npYPDZfYdrd3ItuEVSzbT4RjEdXwlLPHwNU1hFRSSWJLHAtL4zsmp3Z2ePLZajBsY7gw2pbOC5+GS\nyUbGA8ecAt7ha3LwpGSQt67rfY5gsFWGcIHMljOtDURHUnhdtvG8br7Wm4O8L5hiEOKjSXDKKqYx\n9LM4Vb6qMDUqn4ZHI6KSSIu9wlHCtY4C9yGkZDKsLbK7/RPR7gC6sq7TYlUEvmldxhAHXtTU2t+a\nhY06thtsTvXRJdAozk0ELjat0WAymfWEWEVL7TM95QVbzZkkTfe08ziGFgya8tIycV2S1ulOGxVl\nFVU07GvilgkaQ4AgHVJY8X2Oa4NcDuLQUiX1YuDUr55RX1LHRv1Sylp32vTQu2ueN1RIACeQWbyr\nerT6FV7qrDqGoffXlpYXvJ2l/BgOPlcCfKtvdFkSihEVKJdQoJRUqpUFCXUFECUuoJUXRU3WPEcj\n1lXrrFhOR+MVFS8rHlKuyOWNK5BYmctbVPWXUPWrqX7VKzkYszlZVTiqVrbIkK7ErLVfiUZM+kC5\njHG6lTO073646ngP+tdRSLS6e02q6GoAuHAxO62kub5SC7+Fc3asd4bdHZctZ69XPVLbjV8HkI+r\npWPEC0ltjla24EnlPKs2KRjhnby7lXwTPeuNuTIjI7iQvJsetM0wM2F20eQD7Vd1RfLMjzelXIIm\ngZXJO3credzs86mm3HLbMgk1Tby2W7wqo1HtfuBz6jkfQStNTMGR3rPiP2brehbcL3btz82Mymna\n8KnCrVYfPrRtzzHFPk2eiyvmRe7jlubjwcsNWxmOerEj1Z4RWqqoaxpc9waBvcbD/dXZMdq5JFaM\ni1jsbpybBxPSBl6VVHiMTtjvOFhOXH1bLw5zyrYtkV2OVa9sgOYIPVmrjJFnK16beGRZbXXWngkW\ndw7WNLnuDWtFyTsAV2x0y7rSaZVkTaCvaZGB3cVWLawv/wAvJuGxaXFsedOSyMuZFfdk5/S48nwf\nnXO6Ry/kNaBzSp/0Xrkz7Zq6xduHYrZvK6fWqf33x3fUrit02x3x3fOq12vNEQoiClQiKqCKApCo\nIiKAiKUELk9MpW02IYPWPB4Php8PkfujNbGOBc7kaZYWtv8ADC6xa/STCY66knpZcmzMIDt8bxZ0\ncreRzHhrh8VWJWxS653RDH+HBpKpzY8SpbR1UBNi8gWFTCD+cgkHGBGy5G5dEii5/wBkPFhSYdUv\nA1pZWGmpox4UlRUAxRMaOW7tbqaVscaxmloma9VURQN3a7gHO6GM8J56ACuXwGlnxWsjxSrjfDRU\n2t/hdHK0tkc92Tq6pYfBkysxu4Z9JRjfR1OjuHiko6WlH7PTww9Zjja0nbygrOUKUZIU2UKVAUIg\nQERFQVKkqklAuoRRdAusOE+F8YrKJWBA7wvjKKrkcsSZyvSOWHUORYxKl61tQ5ZVU9a+R2awrZIp\nVN0JVKxZxWFeiKsXV6NRWxpSr+O0XdFJLGPDDeEj+OzjADrF2/vLFpitxSPS4zKaqTLu2WPlVOeo\n+g+dZ0R32PkOfoVWkdD3PUyR2swnhI+TUdcgeQ3b+6saB3k8tv8AdeJljZbK9zGzLWUbKM5bT1Zq\nBYdJ+3/dWWv2fUeVXRfMDdy/YVi24xmUrhl+Niyy4EDZ+Ny1sbcwb79ltqzY37fQPx1JFs22+FTW\nNr5O+cf2utg5y5+KXPLIi32hbIVAK9PsnJvHu+jye18Wsu96oxjE2U0ZkfmdjW73O5OrpXz/ABHF\n5ah5c92w5AbGjkaNwUaV4rw0zjrcRnEjG7La7y7fMtNTTbDyny7dq0c/P3rrydXZuCYY7vi31Lcj\nMrY0rrWP4K0cDyR6LfjrWZBMBlflt5vnWmZt1m2/pJtXNp8m7qIW2p6kO6DyfYuZhk6PTs6FlwTH\n7F0cfNcXNzdnmXV08Ei5/SnGNd3AMdxIzx7HJ0g3Hobs678gWPj+PGlppHgEyABrSMwC421id1r3\n8y4uixEOLc7km5zv6U7V2ma7uP3Ydm7NZe9l9nXUcmWataRNBoa35JU/6L1h0tTewB38qyccyoa3\n5JU/6D1xYZdXblOj63A8NadbLjPO/e429Ck1DPGHpVxF9E+ZW+Hj8dnnCkTs8dn8QVWqORNQcg8y\nCnh2eOz+IfaqhIzxm/xBRwY5B5kMTfFHmCCsOHKPOFIPUrXAs8VvmCcAzxW+YILyKzwDPFHmTgGe\nKFReUqzwLeQ+c/agiHT/ABO+1BeuitcGOV38TvtTU6XfxFBrtIdG6HEA0VlNHMWeBJxmTM+JNGQ9\ng6AbLUs0Dpmu4tZizYrWNP8A4lUGG37xLx5HLp9X4TvOPrU2PjHzN/8AFNp3Y0mG6G4ZTvbKykjf\nMw3bNPrVEzTytknLi09Vlvyrdj4x8zfsTVPjHzN+xNkmvBWioIPjHzD7FFj4x8w+xFXEVuzvG9DU\n1XeOfM1QXEVrVd458zfsTUd458zPsVF1QVa1Hf5jvMz/AMVSY3f5j/8A6f8AioLypKtGI+O/zj6g\nqTD8OT+M/UgvFUlY5p/hy/zH/arbqYePL/Nk+1BlErV0r83daumnaM7yZcsjz6CVbIDb2RUSuWDU\nvV+Z6wKhyjKMSpcsN5V6dyxnFYVsiSVTfNQSousWcVAq9GVjq5GVFbGnK2tK5aanctlTOWUY1rNP\nKHhIBO0ceC+tymJxAd/CbHq1lxcTt6+nvAc0tcLtcCHA7CCLEHyL5nWUpp55ITnqOsCffMNiw9eq\nR6V5/bOPV73q9HsXJvG4+jJjdv2rOZnYXtZayF/Ll6Vl08t9/V5OlcWnbKzW59Y37rq8xwFr7Ojb\ndYolABzuqIprkgeT8blG6TbYwvztnc7bqzj8z2U8jmC5Dc+hpycfILqGAjPL51kNOtt2EWIIyO7z\nLZjlZ4NPJjt8vnnuBne5PnyurtEL7f8AbJNKsPNHNqi/BP1nxE8hObL8rSbeZThDgbH0LXazng3U\nDMhY/j8WV12WefSPQqoNUAW/H4zSd17jfu6cv7I097qvwzbuv+y2ELrZ8oWjguD0Z+kLOp6q23qW\neOWm3u78GdVxiRha4BwIsQd4IzHSvkuNRS4bXNidfueQOfC+/IeNGT4zbjrBHSvrAlB/tyLT6W4K\nyup3wk6rjxopLXMcrfBd1bQRvBIWHJN9YvH/AC3V8GnwSuD3xhuw5rp8eqB3DWDf3JU/6L18p0Pq\nJoq2WnqAWSU7dVzTmLk8VzfGYQLg7wV32LVgNFVj/wBrUf6L1OOsebF97REX0j5cUqEQShUIgm6K\nApVEqVSpQFKhEEooRAupUIglQpUICIiApUIgIqUQCUuipKCSVSShVJKCHFWnFVOKtOKC3K5Ykjle\nlKxJXKKtTOWDUFZMrlgVDlKyjFlKsEquUrBr5w0W5fx+OpaOXOYY96unh4ryZTGJmqdzfP8A2WBU\nSPPv3eQ29AVmWvjZm57WjlP4ueoLX11ZLqueGOY3c6YiIPHK1r7OG7cRntXkcnNnn5/D6Hi7Jhxz\nwn1qmvqZGG7ZZGkfDdY+lYtLpXUROs/Vlbf3wANuhzfrutHWY0C4h2R67jzha2tn1swVrxzynhXR\nl2XDKaykfXcC0lpp7Au4KQ+8kIAJ+C/Y70HoXUwuXmplZIw7bjpXV6M6f1FNZjrSxDLUfc2HwHDN\nvzdC7uLtnlm8vtH4XZ14/h9xMi5fTalDuDnAzb7m/wCKTxD5HEj94KvAdKqWtAEb9SS35p5s6/wT\nseOrPoCysScHsew7HNLeq+/z5rq5JOXCyPO4+9xZzc05KJx3K6GEEZ/YOlWaRpzB2glp6CDYq+8H\nqXkT3ex5r1LKcrm4vmculZVMTyC9/QsGM2tycmy/2FXYZyLAdZz+rcpW3Fumi4zy6EiIGRKx6aQk\nXv575/2Vx5uPrUlZa30Yek+FNrIHQkgO8KKS35uSxAJ+Cb2PWvnmBslhdLDMwsljeWavLsIc072H\ncV9OZJcZG9lYq4IprEtBeMr2z6rrK495ptuM05unLhbktc8l1en2ArYy0IAy8llhTsOxZa00+bE2\nDI8gV2BhuFVAwb7cv46VkiO2d/MnRtxys8F2A2sCsgC4yWCeW5Nj0BZVPKBvsclh4M7utPpFgTan\n3SPVZVMbZj9muwEng3kbW3JIO4k8pXG1mLFkFZDICyRtPUMc12RDuCfkQvphe03uTkdoXK6e4HDU\n09TPbUnjpZrSC9ntbE8hsjdh6DtHoU116JZZLvweiUUXRfSPlUoiICIiAiIqBQIiCbqVSiCoIoCX\nQTdCoQlBKXUIglFCIJVJREBEUIBKgoqSgFW3FVOKtuKClxVl5VxxViRyC1KVhTvV+d611RKoyi3N\nIsGV91VNIsZzljWUUvK5jSypc1wazwnABudgCb5k7mjMnqXSuWk0nw8zRuewXkbG9oAGbgc8vhbf\n4iuXtPHc8NR3di5Zx8ktcccXLDqwkhwvefLhXcuo79Uz4I8t1akk1+NI9z3fCcSfStW9ro9e4sRu\nIseogrGMzjsy6F52PE93PlnjPlsZ4mkHIEG/JcfYtNK4MyIsLkAnot59qu8K8utt6eRYGM6xeBfY\nM+s/XYBZ82MxxlY8PLbnoLw7NW5DY5BRRRE9azTRkeFkOqx8xXK7LnNsaCvkjII3cp2LuNHNPHkC\nOpBcNgkvd467+EPSuJqaawyWrluw7T8yzw5csL0a+Tgw5pqx9upqlr3uewhzX2cCNmyx+YLLvdcT\n7F1TwtNITtZMWnfkWMIXbBqZZd67cf7PudPRUCLX5N/zeVWwRtN9pt5d995VwEfjaseo68uRYsoz\nKepNw29923Ythwlxy9JXPU8h1hu6Vt+EFhbasa2zxX2DVN9vKruzMBWoHfZ+OVZZZcdCTI5MdsaQ\nX+ta6si5FsywgZWWNNF19e9bJk57hpqGuDdu3d9ijXLrndu5cleqKckm+zzdKxZHFpsNg9PUplWz\nCKgDfN2wbB9avRtO63o2LBdI6+V896zqO5tf7LrXcnR3bpkRjPyKzpEy9FV/JKn/AEXrMY3kVnSC\nld3FWHWv+SVGX/ResMcurHOdH2RF4U78XSbmOBdlxD7wTvxdJuY4F2XEPvBfVafGvdiBeE+/F0m5\njgXZcQ+8E78XSbmOBdlxD7wTQ92ovCXfi6TcxwLsuIfeCnvxdJuY4F2XEPvBND3Yi8J9+LpNzHAu\nzYh94J342k/McC7LiH3gmh7sReE+/G0n5jgPZcQ+8E78bSfmOBdlxD7wV0PdiLwn342k/McC7LiH\n3gnfjaT8xwLsuIfeCaHuxF4T78bSfmOBdlxD7wTvxtJ+Y4D2XEPvBND3Yi8J9+NpNzHAey4h94J3\n42k/McC7LiH3gmh7sReE+/G0n5jgXZcQ+8E78bSfmOBdlxD7wTQ92IvCffjaT8xwLsuIfeCd+NpP\nzHAuy4h94Joe7FC8Kd+NpPzHAey4h94J34uk3McC7LiH3gmh7rULwp34uk3McC7LiH3gnfiaTcxw\nLs2IfeCaNvdRVJXhbvxNJuY4F2XEPX078PSbmOBdmxD19NG3uVxVDivDZ9uDpNzHAuzYh6+oPtv9\nJeY4H2av9fTQ9wPKx5XLxKfbeaSn9hwPs1f6+rbvbb6SH9iwTs1f6+po29nVT1rKh68fSe2u0id+\nxYL5Keu9eVh3tpNID+x4P2et9dU0sr148q24ryIfbQY/zPB+z1vrqpPtncf5pg/Z631xTu1l3o9d\nFWyvJHfN49zTCP5Fb64oPtmse5phH8is9cU7lXvx6mxnCYaoWkFnWs2RttYefJw6Cvn+NaPSU7s+\nMwmzZGjik+KRtY/oNwdxK+Md8zj3NMI/kVnrity+2Txx7S11Hg7muFi009YQRyEGsWGXDvq38fae\n708n1aaRsTduYGzeT08gWjbK6R2w3LrZ3zOd18frPZdxGVxJpqBtzezY6mw6BrVJPnVqD2WMRZsg\not+ZjqN+39f0BcHN2Tlzvk9Hg7dw4Trvf0egaCnyyBy8Hdc7xc7+pZzqMOHGJA5bjZylef2ezZio\nAAp8OyFh7jUXA5Ae6MlP/wCbsV2dzYda9w3gqmwPac/Ktc7By+3yzv4lxet+H23EQ0DijijK+4+d\na1sAlBIGQ3nl5Okr41V+zDikvhQ0Q+LHPbl2GdVD2Y8TDQ0U9AABbKKo35k3NRmbrH9w5d+Xy2Y/\ninDJ5/D0f7F41Y6pgFjwrHX62W+pdmZCOTzkryTgns54tSa/B02HO17E68NSdl9mrUjlWwf7YrGz\n+y4X5IKv1tZTsPLry+WvL8S4bd9fh6pjlJN8upRM4W6d3J/uvKzfbE40BbuXCv5FXf6WoPth8a2d\ny4V/Iq/W1Z2Hl9vlP4hw+/w9QgHWv5StpS5kHcvJY9sRjfNcL/kVfravw+2SxxuykwnqMFZ62pew\n8vt8sv4lxe/w9hUwHRblWU7IdBXjrvnMe5ng/Z6311Vt9tDj4/Y8HNtgNPW2+mrD+H83t8sv4nw+\n/wAPYDYiNo/HKsedoBt5V5LPtptINvceDdnrfXVZk9s7jzjc0eD9nrfXFl+4cs9Plj/EeG+O/h6s\nrIj5LLCmiyy615ed7ZvHiLGkwjs9Z64rJ9snjh/ZMJ/kVnrit7Dy+3yxx/EeGevw9OtgubnzfUs1\nkfIvKY9sfjnNMJ/kVnraqb7ZLHB+yYT/ACKz1xYX8P5fb5bp+K8Pv8PWrGi2e5MddegrCMvyWpvy\n24CTzBeTR7ZfHeaYR/IrPXFFZ7ZXHZYpYXUmEBssb4nEQVgcGyMLCW3rLXs47QUx/DuWXy+TP8U4\nbPP4fFERF7z5oREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQ\nEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBER\nAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQER\nEBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAR\nEQEREH//2Q==\n",
"text/html": [
"\n",
" <iframe\n",
" width=\"640\"\n",
" height=\"360\"\n",
" src=\"https://www.youtube.com/embed/UJwK6jAStmg?align=Center\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"text/plain": [
"<IPython.lib.display.YouTubeVideo at 0x21a350dba90>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import YouTubeVideo\n",
"YouTubeVideo('UJwK6jAStmg',width=640,height=360, align='Center')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Question 1:** How many input layers, hidden layers and output layers are there in the neural network shown in the video?"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Put your answer here\n",
"inputLayerSize = 2\n",
"outputLayerSize = 1\n",
"hiddenLayerSize = 3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &#9989; Step 2: Initialize random weights\n",
"Randomly initialize two numpy arrays W1 and W2, of the right dimensions, to store the weights (zero-one) in the synapses between input layer --> hidden layer, and hidden layer --> output layer "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# your code here:\n",
"\n",
"W1 = np.random.randn(inputLayerSize, hiddenLayerSize)\n",
"\n",
"\n",
"W2 = np.random.randn(hiddenLayerSize, outputLayerSize)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &#9989; Step 3: Multiply the normalized input matrix by $W^{(1)}$\n",
"$$Z^{(2)} = X W^{(1)} $$ \n",
"Here is the code using the NumPy `dot` function. If you get an error you may have initilized the size of your variables incorrectly. Make sure the second dimension of ```X_norm``` matches the first dimension of ```W1```:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[-0.85206517, -0.46315777, 0.47725383],\n",
" [-0.96041205, -1.14843537, 0.98384797],\n",
" [-1.92082411, -2.29687075, 1.96769593]])"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Z2 = np.dot(X_norm, W1)\n",
"Z2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &#9989; **Do This:** Implement and test the sigmoid function \n",
"\n",
"$$a(z) = \\frac{1}{1 + e^{-z}} $$ \n",
"\n",
"The implemented sigmoid function should take as input a numpy array and return a numpy array of the same dimension, with the function $f$ applied to each entry."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# your code here:\n",
"def sigmoid(z):\n",
" # apply sigmoid activation function\n",
" return 1/(1+np.exp(-z))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Test your sigmoid function using the following testing code:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\npHIXEUlA/w9Y/WjLrGBbcQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x21a2f8a4908>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"testInput = np.arange(-6,6,0.01)\n",
"plt.plot(testInput, sigmoid(testInput), linewidth= 2)\n",
"plt.grid(1)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &#9989; Step 4: Apply the sigmoid function to $Z^{(2)}$\n",
"$$a^{(2)} = f({Z^{(2)}})$$ \n",
"Here is the code to apply the sigmoid function to $Z^{(2)}$ and display the results"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.29899982, 0.38623698, 0.6170992 ],\n",
" [0.2767957 , 0.24077498, 0.72787107],\n",
" [0.1277697 , 0.09138246, 0.87736342]])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a2 = sigmoid(Z2)\n",
"a2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &#9989; Step 5: multiply $A^{(2)}$ by $W^{(2)}$ to get $Z^{(3)}$\n",
"$$Z^{(3)} = A^{(2)} W^{(2)} $$ "
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[1.72574334],\n",
" [1.70159205],\n",
" [1.58224372]])"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Z3 = np.dot(a2, W2)\n",
"Z3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &#9989; Step 6: Apply the sigmoid function again to $Z^{(3)}$ to produce $\\hat{y}$\n",
"$$\\hat{y} = f({Z^{(3)}})$$ "
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# your code here:\n",
"yHat = sigmoid(Z3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Final Comparison\n",
"Now compare the estimation output ($\\hat{y}$) to the actual output ```y_norm```. "
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.75],\n",
" [0.82],\n",
" [0.93]])"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_norm"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.84886714],\n",
" [0.84574255],\n",
" [0.82952205]])"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"yHat"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Of course the results from forward propagation are terrible; no surprises here! The weights have not been properly chosen. That's what training a network does: the goal is to find a combination of weights so that the result of forward propagation fits the intended output data as best as possible. \n",
"\n",
"We will be covering this topic in class."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 3. Exploring A Neural Network\n",
"\n",
"Please go to the following website : http://playground.tensorflow.org/\n",
"\n",
"There, you'll have the opportunity to play with an actual neural network (e.g., choosing its architecture and the type of activation function) for classification purpose. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"# Assignment wrap-up\n",
"\n",
"Please fill out the form that appears when you run the code below. **You must completely fill this out in order to receive credit for the assignment!**"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<iframe \n",
"\tsrc=\"https://goo.gl/forms/XqTdYAtXYDSc1R7V2\" \n",
"\twidth=\"80%\" \n",
"\theight=\"1200px\" \n",
"\tframeborder=\"0\" \n",
"\tmarginheight=\"0\" \n",
"\tmarginwidth=\"0\">\n",
"\tLoading...\n",
"</iframe>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import HTML\n",
"HTML(\n",
"\"\"\"\n",
"<iframe \n",
"\tsrc=\"https://goo.gl/forms/XqTdYAtXYDSc1R7V2\" \n",
"\twidth=\"80%\" \n",
"\theight=\"1200px\" \n",
"\tframeborder=\"0\" \n",
"\tmarginheight=\"0\" \n",
"\tmarginwidth=\"0\">\n",
"\tLoading...\n",
"</iframe>\n",
"\"\"\"\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---------\n",
"### Congratulations, you're done with your pre-class assignment!\n",
"\n",
"Now, you just need to submit this assignment by uploading it to the course <a href=\"https://d2l.msu.edu/\">Desire2Learn</a> web page for today's dropbox (Don't forget to add your name in the first cell)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"&#169; Copyright 2017, Michigan State University Board of Trustees"
]
}
],
"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.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}