{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Import libraries" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "load libraries\n" ] } ], "source": [ "print(\"load libraries\")\n", "import numpy as np\n", "from sklearn.decomposition import PCA\n", "from sklearn.model_selection import train_test_split\n", "\n", "# https://stackoverflow.com/a/34306306/4126114\n", "np.random.seed(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generate data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "X [[ 0.17640523 -0.04837975 3.00395099 2.16057371 -0.10517378 -0.01855321]\n", " [ 0.13984914 0.32847254 3.03383776 1.89052903 0.21265031 0.02973896]\n", " [ 0.29654313 0.38435079 2.91578168 2.12583722 0.27954611 0.08289748]\n", " [ 0.51960953 0.57123257 2.99503677 2.14580907 0.68264116 0.35470685]\n", " [ 0.57617414 0.74538793 2.87697546 1.97077968 0.60628914 0.34932812]\n", " [ 0.38169775 0.91970676 2.90112073 2.06723926 1.01889409 0.38890958]\n", " [ 0.65965132 1.06804433 3.06020746 2.09316863 0.98003401 0.64648072]\n", " [ 0.62908197 1.22078298 2.98404514 2.10442932 0.83640144 0.52616506]\n", " [ 0.70703421 1.56743515 2.8716652 2.00828541 0.93021428 0.65769332]\n", " [ 0.82438676 1.52178427 2.87617799 1.94159486 0.87491239 0.72126619]]\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Using TensorFlow backend.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N=100000\n", "X = np.zeros(shape=(N,6))\n", "# X[:,0] = 2*np.ones(shape=(N,))\n", "# X[:,1] = 3*np.ones(shape=(N,))\n", "# X[:,2] = 4*np.ones(shape=(N,))\n", "sigma = 0.1\n", "xt=np.arange(0,N/10,1/10)\n", "X[:,0] = 1*np.sin(1*xt) + np.random.normal(0, sigma, N) # first sine wave\n", "X[:,1] = 2*np.sin(1*xt) + np.random.normal(0, sigma, N) # close duplicate of col above\n", "X[:,2] = np.random.normal(3, sigma, N) # first flat\n", "X[:,3] = np.random.normal(2, sigma, N) # close duplicate of col above\n", "X[:,4] = np.sin(2*xt) + np.random.normal(0, sigma, N) # second sine wave of new frequency\n", "\n", "# Case 1: keep col 5 at 0\n", "# Performances in descending order:\n", "# - PCA with dimensionality reduction\n", "# - AE with PCA (after dimensionality reduction)\n", "# - Note: even just dropping the col5=0 makes a difference\n", "# - AE with PCA without dimensionality reduction\n", "# - AE without PCA\n", "#\n", "# Case 2: make col 5 a linear combination of 0 and 4\n", "# X[:,5] = X[:,0]+X[:,4]\n", "#\n", "# Case 2: make col 5 a non-linear combination of 0 and 4\n", "X[:,5] = X[:,0]*X[:,4]\n", "\n", "print('X',X[0:10,:])\n", "\n", "from utils import myPlot\n", "myPlot(X)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Normalize" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "X normalized [[ 0.57256629 0.48237672 0.50144069 0.68264278 0.45789738 0.49970711]\n", " [ 0.55996018 0.56194547 0.5381266 0.3728326 0.57438926 0.51835497]\n", " [ 0.61399499 0.57374362 0.39321318 0.64279116 0.59890853 0.53888196]\n", " [ 0.69091786 0.61320192 0.49049852 0.66570397 0.74665473 0.64384027]\n", " [ 0.71042376 0.64997315 0.34557868 0.46490058 0.71866947 0.64176329]\n", " [ 0.64335996 0.6867789 0.37521691 0.57556434 0.86990132 0.65704755]\n", " [ 0.73921027 0.71809896 0.57049531 0.60531194 0.85565796 0.75650781]\n", " [ 0.72866865 0.75034826 0.47700633 0.61823083 0.8030124 0.71004831]\n", " [ 0.75554993 0.82354054 0.33906036 0.50792923 0.83739756 0.76083752]\n", " [ 0.79601813 0.81390179 0.34459979 0.43141814 0.81712779 0.78538598]]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4XMWh9/Hv2b6rlVa9d3fLXW5gY4wpwbQAIYQkELgE\nuJeQQN6EEEhCCgklQJJLkgsXSIIpoYaObYqNu7GN3CWrWL1Lq93V9n7m/UNGwRjbcoe983kePWj3\nzJmZnT3nd+bMrowihECSJEn68tOc6g5IkiRJx4cMdEmSpAQhA12SJClByECXJElKEDLQJUmSEoQM\ndEmSpAQhA12SJClByECXJElKEDLQJUmSEoTuZDaWmZkpSktLT2aTkiRJX3pbt24dEEJkHa7cSQ30\n0tJSqqqqTmaTkiRJX3qKorSNpJxccpEkSUoQMtAlSZIShAx0SZKkBCEDXZIkKUHIQJckSUoQMtAl\nSZIShAx0SZKkBHFSv4d+Krj7e6nbuA6d3kBRxWSyS8tPdZf+z7C3tzLY00155Wy0uoQ/1L6wVDUO\ngEajPcU9OfmEECiKcsrad/V0YW9vJez3UzptBsnpmSe0vYQ5ywY62miv3klWcSkhn4+exnpcPV00\nb6tCjccAUDQa5lz2DXJHjcaSkkp2WTlanf4U9/zEiEUi7Fm3ip69dSiKgqOrE3d/L0JVyR87nrwx\n4+luqCV31FhmXXL5cRkHd38v3fW19DY30t1QS29jAwAZhcXkjRlHNBQio6iYsqmV5Iwac0pPtBNN\nVeNUvf06H7/5L1Kyc9DqdNjbWskpH03BuAnoDEbS8gvIKRtFak4esVgUNRbHaLEcVXtCCPpbmhjo\naCMaDjPY14OruxNXTxfu/n5MVitnXXcTBrOZaCjEmDmnJ3TA121Yw+Y3XsHV04U5OYW8MePQaHUM\n9nbj6OwgKTWVlKwcbNk52LJyKJwwicKJk46pzYDHTXv1Tjz2fnxOB/2tzXTV1Qxvv+zOX53wQFdO\n5v8keubMmeJ4/KWoz+lg2/K3CLjdCDWOz+WgvWY3fOq1aPV6UjKzKZ48jdlfvQKtTsfqZ/5G3YY1\nw2V0RiNzL7+KWZdcnhAHd8DjZvfK92jdtY2BtlZCfh/mFBuKopCak0d6QSFCFbTsqCLgHsSakYnP\nMYA1LR1jkpWMohImzF9IRmERyRlZ6PSHDnlHZwcNm9YT9Hnoa26iu34PADqDkezSckbPPo2UzCw2\nvvxPwsEAOoMBd18vAFklZUxedB4TzjgLU5L1hI/NydJZV8O2pW/S27QXr8NOyZTpqPE4ajxGZlEp\n3fV7GOhoRwh1eB+d0UgsEkGr1TJ98SVUXngp1rT0g7YhhMDrsOPq6SYSCNDf2kRj1WYG2lv/Xafe\nQGpePul5Bdhy82jfvYO+5sbh7XmjxzHn8ivJKRtN0OshNS8fvcF4QsbkZAp43Kx/8Rl2r3yP7NJR\nFE2ags8xQH9rM0KoJGdkkVlcQtDjwW3vw9Pfh3/QBcComXPIKRuNNSODUZVzsKTYPreNofEfYLC3\nBzUeI+j1ULdxLa07tqLGh+6GjJYkUrKyGXf6AsqmVWKyWrHY0g57Th2MoihbhRAzD1vuyxDoTVs3\n0169C7/LiX/QRW9jA6oaJyk1HUWjYE5OoXTqDCYtPBdnTydGcxK5o8ccMOsUQuDs6iAaDuMdsLNn\n3Yc0fryJlKxsUnNyGTv3DCoWnnPUg/5p0XCIztoaBjraCHrcaLQ69EYjBrOZjMJiMgqLMZjM6E2m\no27D1dvNnrUfkpqTh72thZ3vLyMWjZA7agyZxWVMmH8mRRVTDpgJx2MxAp5BktMzad72MdWrP0Co\ngs66GkJez3C5pNQ0kjOzSMnMJiktjXgkSjjgJ+T3Mdjbjbu/D0XRYDCbSc7IZMIZZ1E2rZKMwmI0\n2s+/QIZ8Puo/Wsuule/R39KETm+gfMYsrOkZZBQVM+60BUc9S/2EEAJXTxd9TXsZ7OslFgkTj8VQ\n1Th6gxG9yYwpycroWXOxpmccU1sAe7dsZMd7Swn5fPS3NpGUmkbhhEmMnjWXcacv+Nw7kXgsykBH\nO/0tTdjbWzBbU3D391Kz9kMAMgqKUDQaTElWrOkZ6E0mwoEA7r5enN2dREPB4boUjYb8seMZP28h\nJVOmoTcYSUpNQ9FoPtVejIaP1mFOsRH0uFn19JMEP/Vep+bmceGtd5BdVn7Mk5t4LIqjswN7Wwv2\nthbCgQCKAhZbGklpaVjTM8gqLsNgNiNUlaTUtKNuK+AepGHzRnZ+sIxYOEzAM0g0FKbyokuZf9V3\nRrTUFw2F2Lb8Lba8+QqR4L5xVRRSMrOwZeWQkpVNLBolFgljMFvobqgdnph8wpqewfh5ZzLutDNI\nzy/AYD62Y/izjlugK4pSBDwD5AACeEII8YiiKL8GbgTs+4r+TAix7FB1HW2gr1ryBLs/fB9rejpJ\nqelkFBYx65KvYcvOPeK6Pk0IQd2GNezdshFXdxcDHW1Y0zOYedFlZJeWozMah8LsEAecu78PZ3cn\nvU0NDHS0YzCZ8dj76KqrIR4bWurR6nSocXW/WdknrBmZZJeUkZSWzpRFXyF39NjD9jsWibDh5efY\ntuzN4RmBomiYuOAsZl1yBRmFRUc1HrFolJ6GWjwDdjz2fjwDdrwOO54BO36XE53BgNGShNFiwZaT\nR+6oMUyYv/CoT8i+5kZ2r/qA5q1bCPl9RENB9EYTC6+9gclnncdgXw/WjMxDzhyFEIR8Xjr27GbH\nu+8Q8LiJhkN47P3DZbQ6HRqdHo1GMxzuABqtluJJU8koLELRaMkqKWPiGWd9bjuDvT2YU2zDF5vu\nhlp2rXgPR1c7vY0NpObmkZqTR8G4iVRedCl649FdqJ3dXTR8tI7e5r0oikLQ68XvchIJBTGYzaRk\n5ZBRWERGQRFpeYWYrFZSsrKP+C4nFo3SVVeDo7MDvdHIxpefw+dygqIwYf5CzvvPW0c8sYlGwjRV\nbaa7vpaexnrsrc3DY6zTGzBZraiqStDj+dxzID2/kPLK2YyaMZv8cRPQaLXEotGDti9UlfqP1rHx\nXy/g6u4EIHfUGFJz89Hq9cy6+HIyCouPaDw+oapxBtrbaNq6GVdPN+6+XjwD/egMBnQGI2G/f2jZ\ncNpMMgqL0OkNaHRacspHn9C7/OMZ6HlAnhBim6IoycBW4FLgSsAnhHh4pJ062kBX4/GDzviOFyEE\nbbt3sPn1l+jcU73ftvIZszjnxltITs9ksK+XrroaktLS2fn+Uho/3jRUSFFIzc4lGgljtiZTMmU6\npVNnkDdm3PDVOh4dmuHaW5tx9fUQCQQY6GjD0dmOu78PNRZj/je/A0BmcSnFk6aiKApCVWmv3kX1\n6g8IeNx4HQO4ujuZdNZ5zLvy24T8PvRGE7bsnBM6RieSEILexgbWv/Qs7bt3YDCbiQSDKBoN2aXl\nlE2rZNxpZ5BZXEo8FmX3hx9Qu3419tZmouEQALacXLJLylE0GoonTaFg3ETS8gsOuFOLx6K4+/vZ\ntWI57dU7cfV0I9Q48ViMyosuo3z6LFp3baPx402MnTOP7LJylj7yIFqdnrJplUTDIVp2bMWUZCW9\nsJgxs+YyffElX+oPfgMeN3Ub1uLs6mDnB8sonDiJiQsWMdjbQ29jPWPnnkFqTh49e+uG7sB0Wjpr\na3D399JRs5uQz4vOaCS3fAy5o8eSUz6arJIy0vLyh4NOVeMEPR48A/3Y21qIR6PEYzFad26jo2Y3\najyGKcmK3mTG67AzZvbpzLjwq6Tm5LH7w/do370Tr8OO1+FAjceGLsALFlEwfiK5o8Ym9GcyJ2zJ\nRVGUN4G/AvM4SYF+stnbWwl6PERCQfpbmvj4rVeJx6KkZGXj7u8bXqvXGYzMvvQKiiqmkFlUckxr\nwQGPmzcf+h3dDbXDz6Xm5pFdNpq+pgbc/X2YrMmk5eWjxlVOv/JblE+fdcyv9YtGVeNsW/omjq4O\n8kaPwzNgp7N2N931dQihYk1LJxoJE/b7yS4dRf64CaTm5JGWn0/p1BlHPUsSqsrKpx5n5/tLgaFl\njKySMvpbmoChNef0wiI6anaj0+spr5zNaV+76rjfWn8RVK9ewaoljw9fUG3ZOQz29hxQTqvXk5KV\nQ3ZJGVPOOZ/CCZOOeuIVCQZo3bWd5m0fE49GMaekULN6xb+XQIC8MeOwZeeSnJlFdmk5Y+fOS4jP\nvkbihAS6oiilwFpgEvAj4DrAA1QBPxZCuA61/5cl0D/L1dtNzeqVOLs7yCgsYeyc0/EPusgoLCY5\n4/h9ah2PxXB2d2JJsdG6cxsNm9bj6GzHlp3DpEVfYcys09AZDMetvS+ToRnkGvpbmtHotIyZdRql\n0yqP66xMCEH77p2gQGZRCRZbKjs/WE7Hnt2cd9P3MVqSjltbX3SqGsfd14sxyYo5OYWuuhoiwSD5\n4ybg6OxAjcfIGz3uhB6PIZ+Pjj27cHZ1Uj5jFlklZSesrS+64x7oiqJYgTXAvUKI1xRFyQEGGFpX\n/y1DyzLXf85+NwE3ARQXF1e2tY3on/WVJEmS9hlpoI/oL0UVRdEDrwL/FEK8BiCE6BNCxMXQpxxP\nArM/b18hxBNCiJlCiJlZWYf9H25IkiRJR+mwga4M3dP+HagVQvzxU8/nfarYZUD1Z/eVJEmSTp6R\nfCw/D7gG2K0oyo59z/0M+KaiKNMYWnJpBf7zhPRQkiRJGpHDBroQYj3weZ88HfI755IkSdLJJf+1\nRUmSpAQhA12SJClByECXJElKEDLQJUmSEoQMdEmSpAQhA12SJClByECXJElKEDLQJUmSEoQMdEmS\npAQhA12SJClByECXJElKEDLQJUmSEoQMdEmSpAQhA12SJClByECXJElKEDLQJUmSEoQMdEmSpAQh\nA12SJClByECXJElKEDLQJUmSEoQMdEmSpAQhA12SJClByECXJElKEDLQJUmSEoQMdEmSpASREIEu\nhEAI8bnbQv4ozdvthPzRk9yrI+fs9lO9phOfK0QkFMPZ7cdtDxCPq6e6a0dMCEHQF8HvDp/qroxY\nPKbi6vUTj375xhvAMxCkt8WNEIJ4XCUWjZ/qLkknme5Ud+BoqXEVRVHobXbzwVN7CLgjWGwG8ken\noijgdYUwWvR01rmIBGPoDBomn1nIzAtLMZi+GC9bCEH9pl7aqh0YLTrqPuolHlNZ82IDfOr6ZE03\nMmlBAUIVWNNNlE/LOuWvobfZTffeQbKKkvE4ggx0+vAMBEFANBzH3ukjFh4KlNQcC8UV6RSMTSMl\n00RaThJa/amfS3gGgrTvcWJv92Jv9+Lo9qHGBHqTlsJxaaTlWmircRL0RjjjyrGUTs4gHhcYTFoU\nRTnV3UdVBa4eP+FAlMG+IOteaiAWVUnJNBHwRlHjKvmjU9EZtCTZDMy5pBxzsuFUd3tY0BehddcA\nQW8UnytMwB3Glm0hKdWIUAVeZ4iQP4oQAkuygYxCK2VTMjFa9Ke66wgh8A+GiYSGjvF4TKV6bRfN\n2+3klqVgy7YQi8SJRuKEfFH8g2EWfns8ueW2E9ov5WAz2xNh5syZoqqq6pjradzaz+p/1hGLqKiq\nIDnDxKhpWXgcIbr3ulAUhZRMEyF/jPS8JCacnkfj1n7qN/diSTFgsRkwJekpmpDOxPn5mJJO3gEi\nhKB2Yw/NO+wEvVH6Wz1YUgyE/FFKJ2dSubiEtmrH0GvIMhELq+zZ0E1fi2e4Dp1Ry9yvljNlYSGK\n5uQHS/deF2/9eed+M1mDWYcty4xGq6DRKmQWJWPLMqPGBZ21Trr2Dg6XN6cYmHxmAZMWFJySgHF2\n+9n6Xit7t/QhBBgtOrKKk8kqTiY1x0Jfi4euBhdue5DMQiuKomBv9w7vrzdqyR+byrjZueSUpZCc\nYTppAR8Jxqha3kpnnYvBvgDR8L9n4fljUhkzK4eWnXZsmWY0eg1d9S6EAFevH71Ri9GsQwiYubiU\ncaflotWe3AurEIK+Fg8NW/qo3dhNLDJ0TBhMWiw2Ix57EFUdyiSdXjN0fCgQ8ESIR1U0GoWkVCMZ\nhVbmXTGa1GzLSe1/PKpS9W4r1au7Drjr12gVSqdkMtDhJeiNojNohsbcoicp1cisC0vJLkk5qnYV\nRdkqhJh52HJflkC3d3ipWtqKo8uH2x4kuzSFgjGpKBqYcX4pRvPhZ6zdjYPs+KAdIcDrCOHo8mGx\nGag8v4SUTDMF49LQG7RH1b9D+eQk7G8bCoWuehe2bDMGk45xc3OZsrAQ4KDhLIQg4IlgtOgY6PBR\ntayVtmoHOWUpzDivhIA3gt6gYXRlzgmZ+frdYTpqnbj7h2binXVOktNNXHDzFLyOEMkZJmzZ5kOG\nWiwSZ6DTh9cRon7z0F2JVq9hzKwcxs/NJSnViDXNiE5//MdfqILeZjetux30tbjp2juITq+hYsHQ\nRcWW9fl9j8dUtDoN8bhK3cYeQv4oikbB6wjRssOO3x0BhoL07OsmkJJhPu59H34NQtC8w866l/bi\nd4f33UEkkVOWgiXFgKoKCsenHTSgHd0+Nr/ZjFanwesM0dfiwWDWkVuWghCC0imZTD7z+E8QvM4Q\nRsvQubn9/XbqN/XidYbQ6jSMqsxi2tnF2LLN6I1Ddz3xqEokFENRFIxJuuH3RQhBf6uXlp12fK4w\nLbsGUGMqRRPTyRuVyvjTczFbT8zkwOcKs3t1Jx21TnyuEEFvlPJpWRSOT8Nk/fdkMKc0hZTME3MM\nJFSgb3m7maplrRgtegonpJFdnMKUswuPeXZhb/fy4bO1DHT4ADAn65l2TjET5uUdl4MjFomzZ0M3\nW5e3EfBGyCpKJuiLUHFGAZVfKTnqk+eTpZrNbzXjc/17jdqSYmDKokLGn5aHJcVwzLPGkC/Kqufq\naN5hB0BRwJZtIW+0jdkXlWNNMx513c4ePzs/7KBhS9/w0ozRomPivHymf6X4mMdfCEHdRz3sWNGB\nxx4ktm92l1lkpbgigymLCo+pDVUV9Ld56Nnr5uNlLcQjKnqTluySZCrPLyV/bOqxj78/irPHj6PT\nR9O2froaBskosLLw6nHklh39rbsQgrZqB83b7dg7vMRjQ0s32SXJpOUlUTo5k1Ezso65/23VDpY9\ntgtFo2AwaQl6oxRXZDB2VjZlU7MwjGASdjA+V5gtbzfT0+RmsC+AVqfBYNGh02uYc0k5Y2fnHFP/\no5E4Go1C3Uc9rHt5L2pMJX9sGtZUI2Nm51BSkXHUdR+N4xboiqIUAc8AOQyt7D4hhHhEUZR04CWg\nFGgFrhRCuA5V19EG+t6qPnqb3My6qOy4L48IVeB1hRjsDbD9g3Y661xodAoZ+VayS5KZenYRablJ\nI6orEooRcEfoaXLTumuA9j0OYhGV/DGpnP610eSUHt3t1sHEonG6GgZJzTbjcYTY/n47HXucAOhN\nWiafWUjl4hJiERVTkg7NIS6AQgh6m9zsrerHMxAkGo4z2B8g5I8y47wSRs3IJi3Pctxv0SOh2PDn\nHG3VDpq22zGYtBRPTMfnCjNqRjbjT8slGlZJSj34RSoeVelr9eC2BxjsD9Kxb208uySZvDGpZJck\nUzop85hC5GDc9iB71ncRCcZp3mEn4ImQW26jcnEJJZMyjihYwoEo7TVO9lb10bbbMbz8YMsyU7Gg\ngCmLjn0i81lCCGo39LBrdScBT4SgJ0L59CymLiois9AKCiP+zEYIQdtuB92Ng+z6sJP0/CRyy214\nnSEqzy85IWvIjm4ftet7iEXj2Nu99Ld5KRibyhlXjSUj3zrieoQQ9DS52b2qk+bt9uGxL5qQxpnf\nGo8t68TdgR3O8Qz0PCBPCLFNUZRkYCtwKXAd4BRCPKAoyp1AmhDip4eq63itoZ9Iji4f9Zt6cXT5\n6G4cJBZVySlNIX9MKvljUknNthAJxWjZOYDRoiMtN4ntH7TT3+rZbz3TmmakdEomY2bmkD8m9aT1\nf6DTS2edi75WD41V/cPPa3UasoqTGTUji1gkTjgQY/LCQvZW9VG9pgs1PrSsozdqh5eDdIah2c7R\nrvsdDUe3j/Uv72WwL4AxSY+j0ze8LSXLzNhZORSMTSUWVYlFVDIKkti9pos967uH1+gVjUJWcTIT\nTs+jYn7+Sf2cIRaNU7uhh23vt+FzhknPTyIl00xaroWxs3No2NyHxxGkZFIm1lQjvsEwvc1uNBqF\noDdCy+4B1JjAnKxn3Nw8CselkZpjISXz5KzTq3GV7R+0U7W0ldinPiP55M6mpCKdnHIbGo1CX6uH\n2vXd+D0RCsakYbEZaNjSS3uNE41WIX9MKl+5YdJ+yxInmlAFezZ089HrTYQDseG7yIAnQlquhbxR\nqRSMS2OwL4BGp5BZYKV+Sy/Obj/RcBx3fxCjRcf4uXmYrDosNiMTTss7JZ9VfdoJW3JRFOVN4K/7\nfhYKIXr2hf5qIcS4Q+37ZQj0Twt6I1Sv7aJjj5O+Vg9q/N9jpSjwydBZUgyMrswmKdVIks1Aer6V\nzCLrKf8mRFeDi656FyarHq8jRGe9a2h5SQGNRhmagQgoHJ+GNd1EdnEy40/LQ288/uvYR0MIQWe9\nC3ubF61OQ8suO10Ng/t9AwiG3ovxp+VRNjWTjAIrFpvhhKzFH4l4TKVhSy+1G3uIBOM4e/wIVaAo\nYE42EPBEhssaLbrh92TMrBxGV+aQU5aC5hSGSCQUo223A99gmFgkTmedi54mN0IVGMw6tHoNQU8E\nnUGDNc3EYF8AAJ1Bw2mXjaLijAK0ulP3TaagN0L95l7627xotAomqx5XT4Duva7hD2I/oTdqyR8z\n9O240imZjJ2d+4U5Bz5xQgJdUZRSYC0wCWgXQqTue14BXJ88/sw+NwE3ARQXF1e2tbWNuL0vkmgk\nTl+LB//g0Jp1SUUGIX+UgU4fJZMzTsiHqSeCZ2BoBhIJxdn2bhtZJUMz2VN98RmpkD9KX6sHg0mH\nRqPQ3+Yhb7SNzMLkU921Q/I4grTsGKBoYjppORYc3X6ioRgGs470vKRTPgMciXAwRmetk7aaoaXE\nognplE/PwmjWEfBEiARjmKz6k/qtsSMVjcRxdPlIy7EQDavYO7zkj0kd0ZcqTqXjHuiKoliBNcC9\nQojXFEUZ/HSAK4riEkKkHaqOL9sMXZIk6YtgpIE+onsiRVH0wKvAP4UQr+17um/fUssn6+z9B9tf\nkiRJOvEOG+j7llP+DtQKIf74qU1vAdfu+/1a4M3j3z1JkiRppEaycDQPuAbYrSjKjn3P/Qx4AHhZ\nUZTvAm3AlSemi5IkSdJIHDbQhRDrgYN9YnP28e2OJEmSdLRO/b+QJEmSJB0XMtAlSZIShAx0SZKk\nBCEDXZIkKUHIQJckSUoQMtAlSZIShAx0SZKkBCEDXZIkKUHIQJckSUoQMtAlSZIShAx0SZKkBCED\nXZIkKUHIQJckSUoQMtAlSZIShAx0SZKkBCEDXZIkKUHIQJckSUoQMtAlSZIShAx0SZKkBCEDXZIk\nKUHIQJckSUoQMtAlSZIShAx0SZKkBCEDXZIkKUHIQJckSUoQMtAlSZJOEDUQQA2FTlp7X4pAj3u9\n+LdsGX4shCDu9Z609tVwmEhr62HLCSGOqN7gzp2o4fCIyw++9jq+deuOqA048n59WYTq6mj99tUM\nvvHGqe4KAIHt2wnV1x+XuiJtbfTdfz/eD1cdtmy0u5ve++4juLv6uLQNIFSVnrt/if3RR49bnZ8V\n7euj45bvs3fRInp+9esT1s7BqJEI7jffJDYwcFzrjblcqH4/Ih6n9eqraf7qV4kPDh7XNg5Gd1Ja\nOUa99/wW34cfUr70HbwrVtL/8MOIUIiUiy4i//778K1dS3DHTqJdncQ9XszTppF+3XVorUmfW1/M\n5cLzzlJ8q1ejy8kh+ZxzSF501ueWDTe30PXDHxLeu5fcX/2StKuuQgiBoij7lQt8/DHt138XfUEB\nKRcsJvPmm1H0+uHtIhYDjQZFM3QNHXz9DXruuov0a79Dzl13HXYMPMuX0/Ozn6FJSmLUu8vRZWUN\n9y/cUI/GYiHptNP2azM2MIDjyScZfPU1RCSCadIkip54HK3V+rltqOEwvjVrUAMBiMVA0WCeOgXD\nqFEHvN5QfQMIFdP48cRcLrzvvUdw+3YC23eAAgUPP4yhuJhgdTWoKubpM9Bak3C9+CJCVbFdcsl+\n/Qhs3Upg6zY01iRSFi9Gl5YGgOvFlwg3NpLzs6ExEuEwGrMZzwcf0P2jHyOiUUK1tRhLSxn4298w\nT5lKxo03oCgKgW3bcD3/Alk/vA1dejq+NWtQDAZMEyeiz8sbqk8IwvX1GEePRtEd+nTwb9xIcOdO\nbF/9Kvr8fNRgkL77H8BQWkrSaXNpv/Y60GjI/cXPcb/1NorRSP7vHyBUXY131Soira3k/OQn6ItL\n6H/4IVLOX0zS3DlDx+Py5cQHHKR965s4n34Gx9//DqqK89nnyH/gfmyXXIL/o49w/vOf5Nx5F/qC\nfELV1YQbm+h/+GHiDgeuZ58j7dvfJueOn6AYDIc9pg54//1+XC++hDY9HdXjZvCVVwBImjMHS2Xl\nAeXDjY1Eu7rQFxZiHDUK/6bNBHfuJOOG76JotQDE7Ha0Ntvn9sfx+BP4167FNHUKgy+9hGVmJbaL\nLya4ezeOv/0dfW4ulrlzsM6bh2IwEHM66frh/0NrS8EyaxYpF1yALjNz+H30r1uHb9169Pn5pFyw\nGH1Ozn7teVeuxLnkacINDWTceAOBj6uGjgmzmcz/+i8ybroRVJVYby9qOIKIhBHhMCIex1RRgcZo\nPOA1RPv68K1aTerXLkfR64l0dNB61TfRWq3YLruM8J5aUBS6fvQjip544rDH2LFSTubsbebMmaKq\nquqI94t0dNB88SUYR48mVFuLZdYsjOXluJ5/Hm1GBnGHA3Q69Pn5aCwWwnV1aNPTSb38MtRgiOD2\n7dguvRR9YQHu19/Au3o1RKMYysuJu1zEXS5yf/MbRCiIf9Nm0GjQ2mzEnU5869ejTU7GOGYMgS1b\n0KSkICIRUhYvxjxlMlqbjeTzz6fjhhsJ1dVhmjgR//r1mGfMIO+e3xAbGKDv/gcINzVhKCig+Kl/\nEGlvp+PMmu4qAAAgAElEQVTGmxCqisZiYfSqVTge/18QAl1WFqHaOixz5mC78AKczz9PqGYP3pUr\nMZSUEG5sJGXx+WTefDMDjz6G5+23h8fpk76kXnEFxtGjaL3qm4Sbmkg57zx0WZk4n/snKYsXk//Q\ng4hwGM/ydzGUlGCZMZ1ofz+d3/8BoV27Dhh/bWYmlunTAYj7vMR6+4i0tIBeT+4v78bxt78RbWtH\nm5GBefo0wntqh2Y9QiCiUQCMY8Zg+9rl9D/w+32VatEmJ2OZMwfL7Fn03Xc/xOMAaJKTybjxRkzj\nxtLxXzeDEGR+72YCH1cRbmqi8JH/pvP7P0BfVETePb+h7ZrvoPr9oNGAqmJdtAhjeRnOp59BRKNo\n09PRmExEu7uH2tbrSbvySkyTJ+F5+x38GzZgmjiR3N/8GtPEiTiXPI135UrQKOiystBakwk3NhLc\nvn14f+uZC4j124fHS7FY0FqtaFNTCTc0oLHZEMEgKMrQRchqBUVBa7NhmjAe7wcrQKMhae4c/B9X\nwb5xQquFeBzb1y4n86ab6Pnlrwhs3oy5spLgzp0Qi6EvLsZQUoJ/392avqSYggcfxP3W27j++c+h\n8LFaUf1+jGPHEu3qItrZCYpC+nXXkX71t4ffW9Xvx/XyK4TravFv2kysr294W9IZZxBuakRjMpN1\n220YSkswFBWhmM0MPPYYA3/+y/B4ZN36AwYefQwRDGK79FJy7roT99KlQxe8/HzSrrmGcH0dismM\nZcZ0ks5YQOOZZ2I9exH5991H2zXfIVxfj3n6dPybN6NJSkKEQohwGG1qKjm/+AXe997Fu3oN+rw8\nou3toNWSffvtpF5+GV3/7//h3/gRil6PiEbR5eVR+tyz6AsKgKG7uZavX4k+Pw99Xj6BTZsAyPrh\nDwnVVOP9YAWp3/gGwW3bCO/de8A5YBw7ltxf/RLFYCBcX0/M5cJSWUn3nXcRbW/HevbZpF9zNb2/\n/g0xl2u475aZM7Fddhk9P/85BX/6IymLF48o8z5LUZStQoiZhy13uEBXFOUfwEVAvxBi0r7nfg3c\nCNj3FfuZEGLZ4Ro72kAHcPzjKfoffBB9URFlr7+G1mrFsWQJg6/8i4wbb8B24YXDs9Pgjh0MPP4E\nvrVrUbRaDGVlhPfdCmvT07FdfDG2yy/DNG4cajhM580349/4EQCG8nIUvZ744CCKVkvy4vNJ/853\n0KWnM/D4E8SdDtR9YSgCAQCsZ5+Nb+VKsn78IzJvvBH3O0vp/fWvh2a6QmAoKcF69iIGX35lqG6X\nC0NJCdm3/5jO7/8AU0UFoZoa0OkgFhs6GX0+tGlpxF0u9AUFGEpLybvvPlzPPYfjySeHBkWnI+PG\nG0g591yi/f143lmKd+VKRDCIYfQoIk3NFD3+v1gXLABg4LHHsD/yZ0wVFUT7+4jbh241TRUVhJua\nQKMh7557ME+ZjKLToYbDBLdtw79pM6Fdu1AMejTWZLQ2G0nz5uF+801C1dVorFYK/+d/sMyehaIo\nxJxO+h/+A9pkK9azFhFzDNBz188QkQiWuXPJ/uFteNesIWa341m6DBEMYq6spPCvfyHW34/9vx/B\nt2rV8PthKCvDt3Il6PVoLRbibjeKXk/ZG69jHDUK9ztLcT71FLn3/Ab/uvUMPP44Ihgk6fTTyLrt\nNrrvvAtFpyX7p3eitaUw+PLLDL76GqgqmqQkUq/6Bu433yI+MIA2M5P4wMBQKFosRPv7UL2+fbO+\nC0hedBbOfz6Pd+UK4oNu8u+7l1BNDc5/Pk/xE49jGDUK92uvY/vqJUS7u7E/8meSv3IeqZddRnB3\nNW3XXAPxOJnf+x6R9nYC27aScu652C69FEWnY+Cxx0iaN4/Ur30NGLprcj37LI6nlmAaP570//gP\nOm+9FVSVrB/eRtJpp2MoK0WzbwbsWb6cvvvuR5eVhSYlhXBDA/r8fAzlZUS7uglu3Yrtq5dgKCsj\n0tGBb9Vq4k4nurw8jGWlZH7/+0S7uvCuWEnuL+8mtKeWzltuQUQiw+eiNj2duNNJyiUXk3bVVfT9\n/veEdu5Cl59HylfOx/nUU8Nlk04/jUhXF9G29qHJUCyGCAQwjh9PuK6OkuefH5pQdHXR98ADRLu6\nMY4fT85P70BjNuPbuBHH408MX0yzf3I7Gd/9LuGmJvr/9Cd8K1aiy80l7nCQfccdpH3jSkL1DbRf\nfz1am428++7FOGoU7dd/l5jDQfnbb6FNTcXzzjsoBiMpXzkPoar0/upXDL7yL3Q5OWTceCPa1FQU\nowGN0Ujc5aLv9w8SdzoPyCVNUhKpX/86ziVLhh5bLBQ9+cTQOfDA7yn8y58xTZxIoKoKc2XlAXe6\nIzXSQEcIccgfYAEwA6j+1HO/Bm4/3L6f/amsrBRHS41Ghf3RR0WooWHE+0SdThHzeISqqsK3abPw\nrFol1EjkgHJxv1/0PfwH4duwYcR1x4NBEbXbRe9994k948aLuhmVIubx7Nd230MPid777hfxQEAI\nIURgxw7RcOZC0fObe0TM6xOqqoqmiy4Se8aNF113/UzEQyER6esTajwuBp58UjRfdrnwrFp1QLvO\n558XrldfE6Gm5gP6FfP6RO9994s9EyaK/r/+db9taiwm+h56SLRd/13R/r1bhG/DBtH/17+K5q9f\nKXruvVeE9u4d8esXQojY4KDo+c09IrBr92HLeteuEx3f/76IOp37PR/p7haOp58WcZ9vv+d9mzeL\nzh/fLkJ794qY2y06f/IT4duwQQR2V4v6uaeJgb//45DtxcPh4d/VWEyoqrp/370+EWpuFrHBwaHH\nbrdwPP2MaLvhRuH616sHlP8sVVWFGo3++/HnHFefx/Xa66L39w8KNR4fUfnh+uPx4T6FW1pEpLPz\niPYXYmgceu69V+yZWCH2jBsv6ueeJtq/d4sI7NhxyP1iXp8I1tQI97Jlwv7YY6Lrp3eKgSefHH4N\nMa9X9D38sAg1NgohhPCuXSsGnnpKuF57XajxuIiHwyLU2Dj0PsRiou/hh8WeceNF08WXHHachRBC\nDYdF7/0PiM7bfyLUWOzfz0ciov2WW0Tt9BkHnLuBHTvE3rMWiT3jxg//eFauPHgb8bjwrFwpYm73\n526P2u1i8J13hGflShFqbhaRnh7hWLJEBHZXCyGE8G/ZIjwrVhxwHB8vQJUYQcaOaMlFUZRS4B2x\n/wzdJ4R4+EiuMscyQ/+iEqqK/ZE/YyguJvVrlx/x/r61a3G/8SZ59/4Ojdl83PoV9/kOulb+ZSfi\n8eE1WunICSEQkQiKwXDUM8Zjbd+zdBmGslLMFRXHXJfqD3zu52VqKMTgSy+hhiNY58/DNHHiMbV1\nKh23JZd9lZVyYKBfB3iAKuDHQgjX4epJxECXJEk60UYa6Ef7tcXHgFHANKAH+MMhOnKToihViqJU\n2e32gxWTJEmSjtFRBboQok8IERdCqMCTwOxDlH1CCDFTCDEza99X7SRJkqTj76gCXVGUvE89vAw4\nfn/RIEmSJB2Vw37LXVGUF4CFQKaiKJ3Ar4CFiqJMAwTQCvznCeyjJEmSNAKHDXQhxDc/5+m/n4C+\nSJIkScfgS/FvuUiSJEmHJwNdkiQpQchAlyRJShAy0CVJkhKEDHRJkqQEIQNdkiQpQchAlyRJShAy\n0CVJkhKEDHRJkqQEIQNdkiQpQchAlyRJShAy0CVJkhKEDHRJkqQEIQNdkiQpQchAlyRJShAy0CVJ\nkhKEDHRJkqQEIQNdkiQpQchAlyRJShAy0CVJkhKEDHRJkqQEIQNdkiQpQchAlyRJShAy0CVJkhKE\nDHRJkqQEIQNdkiQpQfyfC3QhxIjKucNuagZqjqje/kD/0XbrhPmkX6pQT3VXRqzR1ciO/h1Hte+6\nznVc8dYVNA02HedeSdIXX0IF+sHC2hfxAbCxeyOnv3A6j2x7hGg8etB6PBEP1717Hd9a9i2aB5sB\nUIXK/Zvv5+2mtw8oH46H+cWGX3D2K2fzm49+gzvsptvXzdM1T/NMzTP4o/4R9f/D9g/57Ue/Jaoe\nvG+HE1fjrGxbyQ8+/AFXL7uas185m7NfOZt/VP/jsPs6Q05erHvxkGPziR5fD/XOegCWNi/ljrV3\nDI/z0VCFiifiYWXbSr659Jtcs/wa7lh7B0/XPM1H3R+NqI6oGuX3H/+eelc9N31wE12+ruFtvoiP\nRlfjfsfIYGjwiC7C/2r4F9e9e93w6x4pIQQr21dy64e3ssu+64j2HYkOTwf3brqXOmcdA8EBnqp+\nCnfYfUAf3m56mwZXAwCd3k7u3XQv1793/X5l42p8+Pjr9ffut63eWc/dG+6m1lELwEBw4LAThZFO\noI6EM+TEGXIC4Ag6+Lj3YwA2dG3g9jW3E4wFD9qXT/dHCMFAcOCo+vBJHixrXnZU+58oyokY8IOZ\nOXOmqKqqOuL91nauZW3nWto97VxQfgEXll/Imo41VGRUkGfNQwjBYzsf4+map7l09KVcP+l6cpJy\nAHi+9nke2PIAV467kg/aPiAu4rjDbkxaE+mmdC4bcxnfmfgdzDozf6j6A0tblmLQGOgP9qPX6Jlf\nMJ8/LvwjbzS+wd0b7gbgztl3cvGoi3m14VVeqn+JwfAg/qif+QXzWd+1/oD+pxpT+cuivzApcxJv\nNL7BgsIFZFuyEUKwon0FW3q2EFWjvLr3VQBun3k711Zce9hxqR6o5r7N95FpzmRh0UIWFC7gx6t/\nzLb+beQm5VKWUka6OZ1Wdyvdvm7eu+I9Wt2tFCYXkmxIxh6wExdxciw5xNQY333/u2zv386Nk2/k\npik3sa1vG5OyJqFVtKxoW8GylmXoNDrOKT6Hh6oeIhqP8sR5T/C9Fd/DF/VRkVHBI2c9QpI+iefr\nnmd27mwqMip4cveTfND2AZ3eTqZmT8WsMyOE4Bdzf0FuUi4DwQFuWXkLexx7AJiUMYm5+XN5uubp\n4XC5dfqt3DD5BmIixgu1LzC/cD4F1gL+vO3PxNQYU7Km0OPv4ZFtj3DbjNv4R/U/KEspY8niJdy1\n7i7eb30fgWB8+nhunnozEzMmcvWyq4fG/ZJX2dG/g1ZPK9dVXIdOoxse4xVtK1jeshyTzsRbTW+h\n0+jQoKHEVsJgaBCrwcq5JefyX1P/C71GT1yNU+2oZkrmFBRFocXdwi83/JId9h1oFA1JuiR+ffqv\n0Wq0FCUX0epu5fFdj3P1hKu5dPSlLGtZxsSMiRQnF/Ni/YuUpZQxN38uK9pWkJOUw9SsqdgDdto8\nbfijfhoHG/nb7r/hi/rQKToMWgOBWIBLR1/Kb+f9lg5PBzlJOTyz5xke2fYICgolKSW0elqHXqeA\neQXz+POiP7OpZxN3rr0TgWBixkQ29WyiOLmY5y54jlf3vspftv+FmBpDr9FTZiujwdVAflI+i4oX\nMTp1NKnGVDLMGRRYC3h81+O82/ou3oiXGdkzOLPwTDZ2b8QX9ZFvzefuuXdjM9qGxzmqRqnqraLN\n08b2/u00uBr4xrhvcOW4K2nztPHHrX+keqCaFEMKLe4WDFoD95x+D4/tfIxWTys/mfkTntz9JIPh\nQX4w/QfcNOWm/c6VHf07uHvD3YxPH89DZz7E0zVP84/qf+AMObnn9Hs4q+gsntj9BFnmLAqsBfT4\neyi0FjI1eyqZ5kwA+vx9/HzDz1lYuBCjzsg9H92DVtHyh4V/IEmfhD/qJ92UzpTMKfQGelnespxL\nRl1CsiGZ1/a+xtfGfA2TzjTi3Ps0RVG2CiFmHrbc4QJdUZR/ABcB/UKISfueSwdeAkqBVuBKIYTr\ncI0dbaA/9PFDvLr3VdKMaXT6OkkxpOCJeEjWJ3PTlJtocjfxRuMbVGRUUO+sx6wz88PKH6IoCr/b\n9DsKrAV0eDsw68y8eOGLdPu7+aj7I5rdzazvWk+mOZPZubNZ1rKMOXlziMajXDPxGhpcDTy28zHu\nmn0Xj+96nMLkQmwGG+u61g33bW7eXMpsZSwoXMD8gvlU9Vaxe2A3Bq2B+QXz8YQ9/GTtT4ipMWbn\nzubt5rcpSi7i1hm3sqR6CTWOGsw6M+F4mAvLLsQZcrLDvoMFhQv4qPsjzig4g8lZk4nEI2zs3kiZ\nrYzbZtxGj6+H694dCh+j1kinrxOtokWraPnF3F9w8aiLh4OpqreK/3jvPzg9/3Q2dm+k3FbON8Z9\ng4erHiaqRskwZZBhzqDB1UBFRgW1ztrhMTNqjSgohOIhCqwFBKIBXGEXpSmlOENOArEACPjRzB/x\n31v/G4Eg2ZCMM+REq2gps5XRONjInLw5lKaUsr1/O6pQ6fJ1UW4r59bpt3L/lvvpC/Rxw+QbSDel\nc0HZBVj0FsLxMKFYiPu33M/S5qUsLFoIAlZ3rsZmtDEubRwf936MSWcanpVNzZrKs4ufZVnLMu5c\ndyeTMyeze2A33xr/LUpSSnih7gVaPa2YdWY0ioaYGiPfmk+ruxWBYHr2dIQQDIYHmZY9jTcb3yTV\nmIon4uGCsgv4YeUPeWTbI3giHtJN6fT5+9jQvYGpWVP5n7P/h+frnufRHY9y5+w7mZgxkRvfvxGj\n1sjtM29nVu4sbnj/hv3uHADMOjOReIT5BfNZ07kGs85MRUYFVX1D50qBtWB4n1m5s9jet52YiA3v\nPyVrCj+f83Neqn8Jd9hNkj6Jt5ve5spxV/JS/UvYjDY8YQ/nlJxDSUoJNQM1zM6bzUXlF7GyfSUP\nbHmAdFM6rpCLUamjKLeVs2tgF/ML5vNG4xvYDDYcIQfnlpzLD6b/gEd3PEqXr4sFhQvY3r+drX1b\nCcfD+70mjaLhgrILyDRnsqxlGf2BfkpTSimwFrCldwuTMydz6ehLWdm+Eovewta+rcN3S+mmdHIs\nOdQ6azFqjYTjYZL0SSwqWoQ36mVC+gRWdayizlmHUWuk3FY+XHZixkTqnfU8ed6TxNQYjpCDd1ve\nZUX7CkxaE4FYgOsqrmNJzRLm5M4hGA/S4GygJKWEvYN7D7jj0Cga5hfMZ1zaOJY2L6XH34NAYNAY\nmJQ5CV/UN3zX84kCawGOoINQPESSPgmT1oQj5OAPZ/6B80rPO+L8g+Mb6AsAH/DMpwL9QcAphHhA\nUZQ7gTQhxE8P19jRBnowFsSoNSKEYEnNEnbad/KV0q/wfO3z7BrYhYLCtyZ8iztm3UGnt5Ofr/85\nO+xDa7Bj08byzOJn2GXfhVFrZEbOjP3q3tG/gz9t/RPb+rexuGwxD5zxABplaCXKF/Hx9be/Tqev\nE42i4YULX2BM2hjWd66n3lXPxIyJLChccNj+1zhquGbZNUTVKBeVX8SqjlX4o35yk3K5ZdotXFx+\nMQBajZZWdyuXvXUZGjScUXgGW3q24I16AShOLqbD20GaKQ1XyEWaKY1nFz9LUXIR67rW8dre1/jO\nxO8c8BqFEFyz/Bp22ncyO3c2exx78EV9VOZUcm7Juexx7KHWWcs5xedwbcW1fP3trxNVo3x/2vfZ\n49iDQHBB2QVMzZqKL+pjRdsKFhUvYmP3Ru5YewffnvBt7px9Jx3eDp6ueZpuXzfXVlzLS/Uvsb5r\nPfecfg/nl52/X58+bP+Q21bdBkCGKYM/nfUnpmdP/9zxU4XKs3ue5S/b/0I4HubmqTfzVtNbdPm6\nuHvu3Vw+5nKaBpuocdQwK3cWRclFCCG4ecXNbOjewCWjLuF3836HoijE1Bgv17/Ma3tf46ezf0qL\nu4Xfbvot8wrmcW7xuTxU9RAF1gJSjals6d3CoqJFPHjmg2gV7X4z9097t+Vdfrb+Z4xJG8Ne114A\ndBodyfpkjDojT5//NFmWLGDos5k9jj0kG5JpdjejUTScUXAG1y6/liZ3E9dMHHqfqgequX3m7QyG\nB1nRtoLrKq5j7+Be3mt9j/NKzmNB4QKS9EkUJheSZkxDUZTh/ngjXi587UJcYReLihah1+oJx8I8\neOaDmHXmA46NJTVLaHG3kGfN49qJ12LRW4a3v9rwKr/d9FtunnozN025ab92PhFX4/QGevFGvPT4\netg7uJf5BfOZmDERgEg8Qn+gnwJrAYqisLxlOXesvQOAQmshAkFxcjFXjb+KiowKsixZKCi83fw2\nexx7yEvK48LyC4dnyp+M4wNbHuCi8ouoyKjg9jW3c9Goi5iePZ1L37yUmPrvC16yIZkrxlzB9ZOu\n57p3r6PJ3URpSikvX/wy3oiXK966Am/Ey5/O+hMT0ifgCrvIseTQ4e1gdcdq3ml+h75AH5nmTB45\n6xGeq32OVe2reOmil7DoLbzd9DYT0ieQZkqjxd3C642vk25K58pxV/LsnmeJxCPcMPmGA87LIzHS\nQB9eVzrUD0Mz8epPPa4H8vb9ngfUj6SeyspKcTxF41HR5m4ToVhov+dj8ZjY1b9L7OrfJYLR4GHr\nUVVV1DpqRTQePWBbJB4Rja5GUeeoO6a+vt/6vvjfHf873NYr9a8c0O9P1AzUiG5v93D79oBd2AN2\nIYQQG7o2iO+t+J54dPujosvbNeL265314sldT4pIPCLqnfXib7v+JsKx8OeW9Uf8B932Wbv6d4lI\nPHLQ7ZHYwbe90/TOIcfhszo8HaKqt0oIIcRAYGD494Pp9fWKR3c8KvwR/0HLqKoqdvbvHO6nqqrD\n2wYCAyKuxkfUt+Uty8XkJZPFvBfmiV39u8Ss52aJGc/MELWO2hHtbw/YxYauDUKIoff8k/f/aG3s\n2iiWVC8Zcf8PJRANHHMdn/Vh24difef6/cb7eKnqrRJLm5aKDZ0bRPVA9X7939q7VVz42oViV/+u\n4ecanA1iW9+2Q9apqurwWKqqeshj6kQAqsQIMnZEa+iKopQC74h/z9AHhRCp+35XANcnjw/laGfo\nkvRlsKZjDTajjWnZ06jqHTrOZ+YeflIlSYcz0hn6599DHgEhhFAU5aBXBUVRbgJuAiguLj7W5iTp\nC+vMojOHf5dBLp0KR/u1xT5FUfIA9v33oN/9EkI8IYSYKYSYmZWVdZTNSZIkSYdztIH+FvDJ9+qu\nBd48Pt2RJEmSjtZhA11RlBeAj4BxiqJ0KoryXeAB4FxFUfYC5+x7LEmSJJ1Ch11DF0J88yCbzj7O\nfZEkSZKOQUL96b8kSdL/ZTLQJUmSEoQMdEmSpAQhA12SJClByECXJElKEDLQJUmSEoQMdEmSpAQh\nA12SJClByECX/n97dx4c93nfd/z97H1hAeziIAgQxMH7kkhCpBRJHimxZUq2I9uSHWfaJmmT8bRT\nZ5oe03HqmY5n+keapMe007SpU7tNOlZjp7ZqtbYVyaEkypJFifcNEsR9L+69z6d/PD+Q4AFSJIHd\nxfL7mtnZ5Q8L7Hef37Of3/M8vx8IIUSFkEAXQogKIYEuhBAVQgJdCCEqhAS6EEJUCAl0IYSoEBLo\nQghRISTQhRCiQkigCyFEhZBAF0KICiGBLoQQFUICXQghKoQEuhBCVAgJdCGEqBAS6EIIUSEk0IUQ\nokJIoAshRIVwlLqAosrnIBOFtHVLzsF0D8QmoZCFQAO4qiA+CbkUBBphz6+Bw13qyitDJg5974LT\nC8H1cOoViI5DoB6au6BqndknNptp+/rtYH+4uuiqymVg7DTEJqBpDzj9ELkI535o9seul0DZIJuE\nfAbcAQisA5ev1JWLj6nyPi2ZOHT/FPreAbsLUvMw02tuydl7/3lH/g2EO8332pzgrYWaDdDyGLQ+\nDjUbQamVfx9rkdYw+AsYPWXCYPwcTJyHQg4S0zA3YIJikbKbEI9Hbty+yO42+9DphVCH2Q+hDgi1\nQz5rwmfjk+ZnoMyB4GGXmIHJi6b/z/abNo6Omsfzw2Zf3Mzpg2wCDv+r2//MYItp+7rNEN5kbiiY\n7YMNB2DdHvkMgOn/CyOwMAbDH5nPQmLaZEdyFl76NrQ9uaolKK31qr7AUl1dXfrYsWMr88MKBdOh\nJs5bt3MwecF0XF0AT43pZK4qCHdAbTtUNYG76vrNEzTbq1tMx49NmANCoN508v534Z0/hnzaBPli\nMM30m5E+gL/ehExNq/lZrQeh9Qlw+VfmfZazxIzpuBdeg9ETJpjjketfd/rMh93uBF/IHPw6f9mE\n90wvbP+caftcBkZPmoOvt9bsv7lBGD8NhTykF2CmD6avQmz89rXYnCbot30Gnvhd8IeL0walko5B\nz89g6rJpl+kemLl6fdCibKZtCwWoaoTaNnNretR8DsbPmP4caIDNn4aFUeh72xxEXT5zIE1HzUFg\nusfcpnogPX9rLaEO2PZZ8z02uxnstDwG3poiNkgJLIyaGef4GTOj73sXprqvf722zRwMvTWmXz/+\nD6Bx5329lFLquNa6667PWxOBrrUJjDPfv34EnLwI2bj5urJBqBMad0D9Nmh72ozcVmvEVsib1x/6\nAEZOmpHn3KDp/DpvwqV5vwn3UIf5kGw4YEY5a1E6Cn1HTFgMH4Mrb5rwXTyouYOmvX0haP+ECe1s\nwgTHSi9XpWOmvR0ec/AdeM/Ul4nBxAUTcmhzIG/aY4Kmfgs07IRg08rWUixamwPe0IcQuQTJGbj6\nljnQgTWC7jAj51CnuW89aEJkpetITMPUFXPQrW6G3nfg/Kumf2BliS4AChq2m36/4aC5hTrW7kg+\nl4bBD2DkuHU7YWY+YPqiw2362I4Xzfts2GYGeSuksgL9//1jOPYdcHjNUc9fZ450jbvMff228ljn\ny8TNTu87Av0/N+uVhez1r3tDZlaw5RA89jtmCluuknMmHC/9GC6/bgIazLrr5k+aEPHXQfM+MyMp\nl/MMk5fgwo9M8PQdMWvEi6qtpbJwp5mhbf+c+fCVm9ikqX3stJnJjJ2B+UHzNW8t+MKwfh/s/y1Y\nv7c8+n42aUbo2aQJvKGj5rMwfOz6qN5XZ43eu8x9/TYzwy23pbLUAswPwdyQuZ+6Aud+AIkp8/VQ\nhxmwNe83fX/dnlV/D0UJdKVUPxAF8kDubi9434F+9bDp2Lu/BJ7q+ym1NHJpiE9ZI9x3zOgqOgFX\n3j0roFIAABQ0SURBVDBB37DD3Fw+E6BNe8xJ2BU8st9RIW9C4+phEyD5jBltx8avr3376mD7Z2H3\nl80UPtBg1rTXivkRszQ3dgaGPzSj3IVRzGhSmQ9lqN20ef126HzWHKiKJTVvarvwIxOEmbhZRkGb\ngAxZI++tL5iZz1qbZRQKZhli6CgMHjVLdNNXrn/d6TOhuPV5M5uaGzAz7qZHweFa3dqSs9D/nplh\nLIyag+X42esHz0V2N2z+FOz922am4Qutbl23UcxA79JaT32c56/oGvpaFh03VxZcft0s1WQT4AqY\nNVCA1l+ynjdmwrTtaXPVR6DRjGg+7pUfhYLptIvT3MEP4Of/3pqqK/PhWRx5N+4yHTo1Z15n3R7z\nIWveb9ZFK4nWpm2P/Xdz4mrpchmYg5q31gR729MmSAs5cw4g3GkO1Hbnje1SKED/ERPQdVtNEDtc\nEIuY2eXMVbPvcikzAkzOQOTy9fBweExYuKug6RHY9EmzT1Y71EohMWOWLGZ6Tbj3vm0dxJZweMyV\nTxufMPeZmGnvjU+aQcUirc1tcYSstenv2ZTpyw6P2bdjp2HslLmPdJvnLc4cvCEzW0hMm6WS9XvN\nAb661VwA4W8o+SxCAn0tmh2As9+H8//HjII9NdD71k1XJigTNg432Bymk9sc5qSuUmZGoJQZ1UUu\n3Xplz+K5hkLBdNrmfdDxzI0fkodRPgcTZ81MZWHMfLgXRk3gLwY9mHZeGvyeGnPSK71gTsgvfZ7L\nb2ZnaLNElZwxAeOpNrdwp1kybNgJG3/JLMc9rMZOm2APbzbtO/ALGHzfzF6Wtj+YAYevzrRnYtq0\n6c4vmBO3g78w57Dy6Vtfw+k3s+CG7Wb24683B9HWx80BuowVK9D7gFnM/PW/aq2/dZvnfBX4KkBr\na+v+gYGB+369h1Jixrq6Y8IshcQmrcv8subkUyF3/aYLZn01nzOdu26TGeWhAG068I4Xy77zlpVY\nxFxB5XCbtdTZfhPU+awZASbnzL0umCXBus1m5D3VbZZPvLWw84vmxKy4d+moWf7zVEMmYU6CR7rN\nQMUXMv19YcRcaVXdbK5yQpmDra/WjNQDDWYJJ9y5ZmebxQr0Zq31iFKqAXgT+F2t9ZHlni8jdCHE\nqshlzEBlrV5FcxcfN9AfaGFIaz1i3U8CrwIHHuTnCSHEfXG4KjbM78V9B7pSyq+Uqlp8DDwHnFup\nwoQQQtybB/nV/0bgVWWOig7gFa316ytSlRBCiHt234Gute4FHlnBWoQQQjyAMvsVLSGEEPdLAl0I\nISqEBLoQQlQICXQhhKgQEuhCCFEhJNCFEKJCSKALIUSFkEAXQogKIYEuhBAVQgJdCCEqhAS6EEJU\nCAl0IYSoEBLoQghRISTQhRCiQkigCyFEhZBAF0KICiGBLoQQFUICXQghKoQEuhBCVAgJdCGEqBAS\n6EIIUSEk0IUQokJIoAshRIWQQBdCiAohgS6EuEUqmy91CeI+OEpdwGpLZHJcGo9y+OIkk9EUfreD\nKreDXEEzE8+QK2gmo2muTETZ3hRkd3M1qVyezvoAT26qo7nGy2Q0xbH+WbwuO4+01BDyu+iNxAgH\n3FR7naV+i2VrfD7FyFyCPS01jM+nODk0R0OVG4dNEU3niKdzLCRzLKSyLCSzVHuddNYH+EXvNJFo\nmtaQj0O71lHtdfLDEyOkcnnCfhf7Ntayp7kah13GI3eiteZqJMbYfIp0toDXZWdkNslCKsuO9UEa\ngx4i0TSvnxsnmsrhcthYSGU5MzzH0EySR1qqeWF3E8/tXEf3eJSQ38WB9lCp39aakC9oeiMxfnpu\nnLH5FAG3nV97rJVNDYFVfV2ltV7VF1iqq6tLHzt27IF/jtaacyML9E7F0Bo+saWeD/umOXxpEpfD\nxnwyx9BMgqGZBNPxDAB2m6Iu4CKezhPP5LArRa3fhctuI+h1sqkhwKmhWYZmkjhsilzBtMvu5mq6\nJ6JkcgUAnHZFa8jH1Uic+io3f/TyHoIeB363g7awn0g0jcOuWBf0oJR64Pda7hKZHA6bjflkliOX\nI7x9OcKlsQWS2TzDs0kA/C478cydR3xL29zlsNEYdDM2l7q2TSlw2mxk8mY/hPwuntvRyHM7G4ml\n88zGMzy/ex31ATeZfAG3w76K77q8zMYzvNszhdOmmIymOT4wSyqb5/JElP7pxF2/3+O0Efa7Sefy\nBNwONjdWsakhwPs9U5wenr/huV0ba2kIulEo3E4bg9MJqjwO/ulzW9nVXL1ab7Gs5Quat7snGZhO\nMBVLc+RKhO7xKNm8RikI+10kMnn+7De6eHJT3X29hlLquNa6667PWwuBfnJwlqHZJF6nnTPDc/zk\n7BhXI/Fbnlfjc6KAKo+TDSEvrSEfLbU+2sJ+ntwUpsbnAqBghYTNdmPgaq3JFzQ2peiJxHjzwgRv\nXphge1MVX+7aQCZX4I0LE5wbmeeZrQ18/9gQfVO31rFYy2f3NHFoZxPt9X6aa7z3/L7LTSSa5tzo\nvBnN2RXvXpniex8NXQtdgLqAm32tNXicdnasD7Kh1sd7V6dYX+3hma0NzCWyFLTG73YQcDsIeh0E\nPU58LjvT8Qw9kzF2NVcTcDuYT2T54clhFpI5vvxYC03VXiLRNEf7pnnj/ASHL00SS+euvbbDprBb\nB4anNtWxqzlItdfJwfYwO9cH1/SIXmvNj8+O8YPjwyiliKayRKJpnHYbA9OJawc6gKZqD9VeJw1B\nD4d2rmNzYwC3w0Yik2dd0EPA4+D86AJziQxuh52nN9fhd99+st4zGeW9nml2rA9yfmSeVz4cpKCh\noDWpTJ7mWi9XI3Fm4hnawj5aw3581r7f1BBgYiHFwfYwO9YHi9VUq6I3EuPsyDwH28N82D/Dzy5M\nMDafpKAXZ6Jm8GJT0LUxxL6NtbSFfTy7rYHGoOeBX7+iAv1fvHqWV44OAmakvb+1lpf2N7OvtZZE\nJs/hS5N01Pv5zO6mon5oo6ksf3Nxkmqfk4Vklv6pBI1BN9l8gWMDs7x+bpy0NbLf3hTk5f0tfP7R\n9TgdNpKZ/LXlGptSuBzlEzZaa4Znk5wfnWdiIU0snWN0Lsn/Pj587f2ACdAvdW1gfbUHp8PGU5vq\n2NEUvOVAuVpS2TzH+mep8TlxO2y8enKEbL6A1vDGhQmGZxMsHmvsNkVTtYcnOsI0BN3MxDM8t3Md\nz2ypL6uZVCZX4K3uSc6PLtBR52doJsGJwVn6puL0TydoDfkIeh34XA4agx6yuQIttV4+98h6XA4b\nAbeDDSFfUWueT2b57tEBzo3MMzKXIpbK0jsVZzFalIIXdjdxoC1EY9AcbDY1BJiMpuiNxHm8I0x9\nlbuoNd9NOpfnrUsRTg/PMTGf4rXTozcMXBqDbjaG/TjtCrfDzpf2t/BEZxiP047HufKzw6IEulLq\nEPAfADvw37TW//pOz7/fQJ9LZJiKpYmmcnTUB9bMuvV8Msv5kXkujkf50akRztw0fV1kU7Ah5OPZ\nrQ28vL+Fjno/Ptfqnd5I5/IMzSSZS2TojcQZmjXT8sGZBJfGoozOJYkuGfmCCe8v7G3mS10bCPmd\nZHKauoCLhhUYfawWrTXT8Qzv9UzRMxnjaiTGu1emSGTyeJ12YukcNT4nDVVu5hJZmqo9/MEX91wb\nTUZTWQJuB0opCgUzfV6J8C8UNL1TMU4MztE/FSeZzRP0OJlLZPi/Z8aYsZYJF21trGJj2MevbG/g\n5f0bsBfpgPkgZuIZRueS1Ppd/MX7/fzV8eFb3tcim4ID7SFe2N3EoZ3rqPI46Z+Os6WxalXfq9aa\nqViGGp+TH58Z4z+/3UNj0IPbYedo3zTRVA6HTeF3O/jMnia+sLeZY/2zbGkM8OzWhqINXKAIga6U\nsgOXgU8Bw8BHwK9rrS8s9z0rtYa+VnWPR/nr8+N4nDb8bgdziSwA6WyeS+NR3uqeJJs3+6O9zs9j\nbbVsaayisz5AMpvnPx3uweWw8dtPtdNS66W+yk1dwM2RyxEKGn55WwMz8Qxj80l8LgcnB2fpt9Y4\nA24HM/EMb3VPcmF04YbRhlKgNawLetjVHKSl1kdnvZ89LTU013oJuB047bY1ESR3ky9oClqjNfz4\n7CjH+meJRNNUe528fTnCXCLD9qagtQYdY9u6KnY3V/Pa6VE66wP83SfbaKvz83b3JO9fnSbkc6EU\nZPKa1pCXPS01bKj18e2f9xFLZznYHubyRJTu8SgTCykCHgeJTJ5oyhww7TaFz2knlsnhtNn41I5G\nXtrfzBMddQzOJKgLuAgHymv0ej+0NhcfTMcyTMfTXJ6IUeN10l7v5+3uCD89O8aVyRhKgV2ZZbOW\nWi+ff7SZjWEfP7s4wfhCml3rg9f6YmvIR66gsSs42BFmY9jHXCLL4UuTeJx2Our9zCUyTCykGZ1L\n0j0eJRJLk84W8LvtDM8mGZtPXev/25uCaK1J5wocaAtxaPc6nt5UVxZLdcUI9CeAb2qtP239+/cB\ntNZ/sNz3POyBfjeRaJr3r04xPJvk5OAsJwbnbhjVdNT7yRc0A0tOdC12RgCfy07ippOPS082KgX7\nWms50B5ia2MVtX4XrSEfrSFfRYT1g5qJZ/iTt3q4MhkD4JGWal4/N87ATILP7G7i9NAcvdY5E5vV\nlvFMHgU47Iq+qfi1oK7xOWms8tA9EaW5xsujG2poCLpJpPM47IpHN9Swt7WGjroANpsimy+QL+hV\nma6vFVcmoteWKVtqvbx6coSP+mcoaKgLuOisD3BhdAEU5PKa5D1cWmlTZpDUVO3F5bCRyOQI+93s\nba1hIZmludZb1rOfYgT6y8AhrfXvWP/+O8BBrfXXlvseCfR7NxvP0DsVYz6Z5enN9SjgxOAcsXSW\nsfkUo3NJDraHyWvNG+fH6awP0F7nJ5bOsb0pyOaGAJl8gXg6j92m1sxyVbnQWpPNa1wOG/mC5vJE\nlLH5JFsaq2ip9d3y3EvjUS5PRHl2WwNBj/OGZRtx7xKZHAPTCTY1BHAuGSkvLpe47DZimRxHe6eZ\njKZx2BTPbG1AazPwCQdcNAY91Fe5b/j+taZsAl0p9VXgqwCtra37BwYG7uv1hBDiYfVxA/1BDlkj\nwIYl/26xtt1Aa/0trXWX1rqrvr7+AV5OCCHEnTxIoH8EbFZKtSulXMBXgNdWpiwhhBD36r6vjdNa\n55RSXwP+GnPZ4ne01udXrDIhhBD35IEudtZa/wT4yQrVIoQQ4gGs3dO+QgghbiCBLoQQFUICXQgh\nKoQEuhBCVIii/m+LSqkIcL+/WVQHTK1gOSulXOuC8q1N6ro35VoXlG9tlVbXRq31XX+Rp6iB/iCU\nUsc+zm9KFVu51gXlW5vUdW/KtS4o39oe1rpkyUUIISqEBLoQQlSItRTo3yp1Acso17qgfGuTuu5N\nudYF5VvbQ1nXmllDF0IIcWdraYQuhBDiDtZEoCulDimlupVSPUqpr5ewjg1KqbeUUheUUueVUv/I\n2v5NpdSIUuqUdXuhBLX1K6XOWq9/zNoWUkq9qZS6Yt3XFrmmrUva5JRSakEp9Xulai+l1HeUUpNK\nqXNLtt22jZTxH60+d0Ypta/Idf2xUuqS9dqvKqVqrO1tSqnkkrb70yLXtey+U0r9vtVe3UqpTxe5\nru8tqalfKXXK2l7M9louH4rXx7TWZX3D/E+OV4EOwAWcBnaUqJYmYJ/1uArzN1V3AN8E/lmJ26kf\nqLtp2x8BX7cefx34wxLvx3FgY6naC/gEsA84d7c2Al4Afgoo4HHgaJHreg5wWI//cEldbUufV4L2\nuu2+sz4HpwE30G59Zu3Fquumr/9b4F+WoL2Wy4ei9bG1MEI/APRorXu11hngL4EXS1GI1npMa33C\nehwFLgLNpajlY3oR+HPr8Z8Dny9hLb8CXNVal+xPVmmtjwAzN21ero1eBP5CGx8ANUqppmLVpbV+\nQ2uds/75AeYPyBTVMu21nBeBv9Rap7XWfUAP5rNb1LqU+Vt/Xwb+12q89p3cIR+K1sfWQqA3A0NL\n/j1MGYSoUqoN2AsctTZ9zZo2fafYSxsWDbyhlDquzJ/9A2jUWo9Zj8eBxhLUtegr3PghK3V7LVqu\njcqp3/09zEhuUbtS6qRS6h2l1NMlqOd2+65c2utpYEJrfWXJtqK31035ULQ+thYCvewopQLAD4Df\n01ovAP8F6AQeBcYwU75ie0prvQ94HviHSqlPLP2iNnO8klzSpMxftPpV4K+sTeXQXrcoZRstRyn1\nDSAHfNfaNAa0aq33Av8EeEUpFSxiSWW575b4dW4cOBS9vW6TD9esdh9bC4H+sf52abEopZyYnfVd\nrfUPAbTWE1rrvNa6APwZqzTVvBOt9Yh1Pwm8atUwsTiFs+4ni12X5XnghNZ6wqqx5O21xHJtVPJ+\np5T6LeCzwN+yggBrSWPaenwcs1a9pVg13WHflUN7OYAvAt9b3Fbs9rpdPlDEPrYWAr1s/naptT73\nbeCi1vrfLdm+dN3rC8C5m793levyK6WqFh9jTqidw7TTb1pP+03gR8Wsa4kbRk2lbq+bLNdGrwG/\nYV2J8Dgwv2TavOqUUoeAfw78qtY6sWR7vVLKbj3uADYDvUWsa7l99xrwFaWUWynVbtX1YbHqsnwS\nuKS1Hl7cUMz2Wi4fKGYfK8bZ3we9Yc4GX8YcXb9RwjqewkyXzgCnrNsLwP8EzlrbXwOailxXB+YK\ng9PA+cU2AsLA3wBXgJ8BoRK0mR+YBqqXbCtJe2EOKmNAFrNe+dvLtRHmyoM/sfrcWaCryHX1YNZX\nF/vZn1rPfcnax6eAE8DnilzXsvsO+IbVXt3A88Wsy9r+P4C/f9Nzi9ley+VD0fqY/KaoEEJUiLWw\n5CKEEOJjkEAXQogKIYEuhBAVQgJdCCEqhAS6EEJUCAl0IYSoEBLoQghRISTQhRCiQvx/Pe6oMQTi\nOhAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from utils import myNorm3\n", "\n", "X_norm = myNorm3(X)\n", "print(\"X normalized\",X_norm[0:10,:])\n", "\n", "# plot\n", "myPlot(X_norm)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## AE without PCA: reduce to 3" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "autoencoder\n", "Train on 80000 samples, validate on 20000 samples\n", "Epoch 1/25\n", "80000/80000 [==============================] - 2s - loss: 0.0438 - val_loss: 0.0376\n", "Epoch 2/25\n", "80000/80000 [==============================] - 1s - loss: 0.0311 - val_loss: 0.0246\n", "Epoch 3/25\n", "80000/80000 [==============================] - 1s - loss: 0.0190 - val_loss: 0.0141\n", "Epoch 4/25\n", "80000/80000 [==============================] - 1s - loss: 0.0110 - val_loss: 0.0084\n", "Epoch 5/25\n", "80000/80000 [==============================] - 1s - loss: 0.0073 - val_loss: 0.0065\n", "Epoch 6/25\n", "80000/80000 [==============================] - 1s - loss: 0.0061 - val_loss: 0.0058\n", "Epoch 7/25\n", "80000/80000 [==============================] - 1s - loss: 0.0056 - val_loss: 0.0054\n", "Epoch 8/25\n", "80000/80000 [==============================] - 1s - loss: 0.0053 - val_loss: 0.0052\n", "Epoch 9/25\n", "80000/80000 [==============================] - 1s - loss: 0.0052 - val_loss: 0.0051\n", "Epoch 10/25\n", "80000/80000 [==============================] - 1s - loss: 0.0051 - val_loss: 0.0051\n", "Epoch 11/25\n", "80000/80000 [==============================] - 2s - loss: 0.0051 - val_loss: 0.0050\n", "Epoch 12/25\n", "80000/80000 [==============================] - 1s - loss: 0.0051 - val_loss: 0.0050\n", "Epoch 13/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 14/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 15/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 16/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 17/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 18/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 19/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 20/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 21/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 22/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 23/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 24/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "Epoch 25/25\n", "80000/80000 [==============================] - 1s - loss: 0.0050 - val_loss: 0.0050\n", "encoder predict\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# split\n", "X_train, X_test = train_test_split(X_norm, train_size=0.8, random_state=8888)\n", "\n", "from utils import buildNetwork\n", "\n", "# train autoencoder\n", "print(\"autoencoder\")\n", "autoencoder, encoder = buildNetwork(X_norm.shape[1], encoding_dim_ae = 3)\n", "N_epochs = 25\n", "autoencoder.fit(\n", " X_train,\n", " X_train,\n", " epochs=N_epochs,\n", " batch_size=256,\n", " shuffle=True,\n", " validation_data=(\n", " X_test,\n", " X_test,\n", " )\n", ")\n", "\n", "print(\"encoder predict\")\n", "X_enc = encoder.predict(X_norm)\n", "\n", "# plot\n", "myPlot(X_enc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## AE without PCA: reduce to 2" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "autoencoder\n", "Train on 80000 samples, validate on 20000 samples\n", "Epoch 1/25\n", "80000/80000 [==============================] - 2s - loss: 0.0462 - val_loss: 0.0441\n", "Epoch 2/25\n", "80000/80000 [==============================] - 2s - loss: 0.0393 - val_loss: 0.0337\n", "Epoch 3/25\n", "80000/80000 [==============================] - 1s - loss: 0.0288 - val_loss: 0.0247\n", "Epoch 4/25\n", "80000/80000 [==============================] - 1s - loss: 0.0215 - val_loss: 0.0187\n", "Epoch 5/25\n", "80000/80000 [==============================] - 1s - loss: 0.0167 - val_loss: 0.0149\n", "Epoch 6/25\n", "80000/80000 [==============================] - 1s - loss: 0.0137 - val_loss: 0.0127\n", "Epoch 7/25\n", "80000/80000 [==============================] - 2s - loss: 0.0122 - val_loss: 0.0119\n", "Epoch 8/25\n", "80000/80000 [==============================] - 1s - loss: 0.0118 - val_loss: 0.0117\n", "Epoch 9/25\n", "80000/80000 [==============================] - 2s - loss: 0.0117 - val_loss: 0.0116\n", "Epoch 10/25\n", "80000/80000 [==============================] - 1s - loss: 0.0116 - val_loss: 0.0115\n", "Epoch 11/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 12/25\n", "80000/80000 [==============================] - 2s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 13/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 14/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 15/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 16/25\n", "80000/80000 [==============================] - 2s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 17/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 18/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 19/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 20/25\n", "80000/80000 [==============================] - 2s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 21/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 22/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 23/25\n", "80000/80000 [==============================] - 2s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 24/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "Epoch 25/25\n", "80000/80000 [==============================] - 1s - loss: 0.0115 - val_loss: 0.0115\n", "encoder predict\n" ] }, { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# split\n", "X_train, X_test = train_test_split(X_norm, train_size=0.8, random_state=8888)\n", "\n", "from utils import buildNetwork\n", "\n", "# train autoencoder\n", "print(\"autoencoder\")\n", "autoencoder, encoder = buildNetwork(X_norm.shape[1], encoding_dim_ae = 2)\n", "autoencoder.fit(\n", " X_train,\n", " X_train,\n", " epochs=N_epochs,\n", " batch_size=256,\n", " shuffle=True,\n", " validation_data=(\n", " X_test,\n", " X_test,\n", " )\n", ")\n", "\n", "print(\"encoder predict\")\n", "X_enc = encoder.predict(X_norm)\n", "\n", "# plot\n", "myPlot(X_enc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PCA without dim reduction" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PCA\n", "X_pca_2 [[ 3.47484144e-02 -1.05492779e-01 1.80723854e-02 1.47581444e-01\n", " -1.77832712e-01 -6.67594235e-02]\n", " [ 3.55306023e-01 2.12514685e-01 -2.92968346e-02 -1.53110597e-02\n", " 1.14649543e-01 -1.87383813e-02]\n", " [ 4.75348593e-01 2.79626885e-01 -8.23541256e-02 2.06495550e-02\n", " -1.68559030e-01 -5.12012937e-02]\n", " [ 7.42288868e-01 6.83471504e-01 -3.53041664e-01 1.53349053e-01\n", " -1.76572905e-01 -1.00566423e-01]\n", " [ 9.23368265e-01 6.07178761e-01 -3.47688167e-01 -1.09228256e-03\n", " -7.66305770e-02 -2.07722286e-01]\n", " [ 9.92031287e-01 1.01983740e+00 -3.86522676e-01 -9.89540456e-02\n", " -8.55912013e-02 4.47415805e-02]\n", " [ 1.24928018e+00 9.81706476e-01 -6.43894654e-01 1.35182638e-01\n", " -7.75395758e-02 -2.11373020e-02]\n", " [ 1.37216189e+00 8.37840034e-01 -5.23925086e-01 2.46061973e-02\n", " -9.94922502e-02 2.78322773e-02]\n", " [ 1.71705333e+00 9.32076275e-01 -6.55095879e-01 -1.37125042e-01\n", " -4.96154854e-02 4.66615677e-03]\n", " [ 1.72882619e+00 8.76951195e-01 -7.18666141e-01 -8.05199874e-02\n", " -2.14972992e-02 -1.22652777e-01]]\n", "Explained variance ratio (cumsum) [ 0.75803365 0.91221382 0.99095633 0.9939935 0.9970125 1. ]\n" ] }, { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"PCA\")\n", "encoding_dim_pca = X.shape[1] # 'mle'\n", "pca = PCA(n_components=encoding_dim_pca, random_state=888, svd_solver = 'full')\n", "X_pca_2 = pca.fit_transform(X)\n", "print(\"X_pca_2\",X_pca_2[0:10,:])\n", "\n", "print(\"Explained variance ratio (cumsum)\", np.cumsum(pca.explained_variance_ratio_))\n", "\n", "# plot\n", "myPlot(X_pca_2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PCA with dimensionality reduction" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PCA MLE\n", "X_pca_1 [[ 0.03474841 -0.10549278 0.01807239]\n", " [ 0.35530602 0.21251468 -0.02929683]\n", " [ 0.47534859 0.27962688 -0.08235413]\n", " [ 0.74228887 0.6834715 -0.35304166]\n", " [ 0.92336826 0.60717876 -0.34768817]\n", " [ 0.99203129 1.0198374 -0.38652268]\n", " [ 1.24928018 0.98170648 -0.64389465]\n", " [ 1.37216189 0.83784003 -0.52392509]\n", " [ 1.71705333 0.93207628 -0.65509588]\n", " [ 1.72882619 0.87695119 -0.71866614]]\n", "Explained variance ratio (cumsum) [ 0.75803365 0.91221382 0.99095633]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAD8CAYAAABjAo9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXdYVMf3h99LExsqioAoothQbIi9l9hLYklMM80Y00zv\n3yTml55ookk0xiSKUaPGWGKNXewFFUVBQREQpAnSOzu/P0ZNNJaFvezCOu/z8Czs3jtzdrn7uWfO\nnDmjCSFQKBQKhfVgY2kDFAqFQqEvStgVCoXCylDCrlAoFFaGEnaFQqGwMpSwKxQKhZWhhF2hUCis\nDCXsCoVCYWUoYVcoFAorQwm7QqFQWBl2lui0Tp06wsvLyxJdKxQKRYXlyJEjl4QQLnc6ziLC7uXl\nRVBQkCW6VigUigqLpmnRxhynQjEKhUJhZShhVygUCitDCbtCoVBYGUrYFQqFwspQwq5QKBRWhhJ2\nhUKhsDKUsCsUCoWVoYS9AiCEYFv0Ns5ePmtpUxQKRQVACXsJEUKwK3YXCdkJZumv0FDIpwc/5eWd\nL/PKzlcoNBSapV/F9WyL3saL219E7RGsqAgoYS8B+cX5fLDvA57f9jzv7H7HLH0uOLWAZWeW0bt+\nb6IyolgVscos/ZZnfgz+Ef9F/gxYPoDdsbvN0ueqs6vYeWEnF7MvmqU/xfXkF+fzx5k/yCrIsrQp\nFQIl7CXgt1O/sfrsavzq+hGUGERQQhAbIjdwJvWM7n0JIcgtymVh6EJ6ePTg+37f075ue348/iM5\nhTm691dRiMuK4+eQn2lZuyUGYWD+qfm691FYXMgnBz5hS/QWAIoNxRxNPApAaEqo7v1VJL489CVT\n901FCMH+i/vZHLW5zPssLC7k1Z2v8vGBj/n15K9l3p81oIS9BGyN2Upbl7bMuWcOzo7OvLj9Rd7a\n/RafHfxM137WnltL9yXdeW/Pe6TmpfKU71NomsbLfi9zKfcSy8OX69pfReL7Y99jo9nwVa+vGN9i\nPIcTDnMh44KufYRcCmHZmWW8uvNV/rfnf4RfDiezMBO4+4T9ct5lntnyDF8e+pK4rDh+P/07KyJW\n8MWhL3h+2/O8Hvg6+y/uL1Mbvjr8Fbtid+FRzYMV4SvIL84v0/6sASXsRpKUk0RoSih9GvShsl1l\nJraeSHZhNr61fTmWdIzknGTd+toWs43Mwky2RG+hnUs7Orh2AMDP1Y/Obp2Zf3I+uUW5XM67rFuf\nFYHDCYdZH7meR3wewa2qG6O8R2Gj2bDqrL7hqRPJJwAY03QMf537iznH5wDgUtmF0JRQcgpz2BW7\niwuZF6w65p6Sm8KjGx9l38V9LApbxIf7PkRDw7e2L7+f/h3XKq541/TmrV1vcSrlVJnYkFGQweqz\nqxnddDQfdv2Qy/mX2RS1qUz6siaUsBtJYGwgAH3q9wHgEZ9HCHwgkE96fIJAsC1mmy79CCE4lnSM\n4Y2H81mPz/i4+8domnbt9cltJ5OSl8KgPwfRe1lvwlLCdOm3PHI8+Ti7YncBkJ6fzrt73qWhU0Mm\ntZkEgGtVV7rX687KiJW6TmafuHQCj2oevNP5HVwqu7D9wnY8qnnQw6MHoSmhTAuaxvPbnmfoyqHM\nOzlPt37LGxvPbyQ6I5rZ/WfjWsWVg/EH6efZj2/6fMNgr8H80P8HvunzDZqmMX7deL46/JVufa+L\nXMfac2tZH7mevOI87m9+P13cu9CoRiNmB8/mUPwh3fqyRpSwG8nOCzvxqOaBd01vADRNo5ZjLbxr\netOoRqNr8VhTicqIIjUvFX9Xf0Z4j8Crhtd1r/u7+TOs8TAa1WiEpmm63VDKI58d/Iwp26dwKP4Q\nb+9+m+ScZL7o+QVV7KtcO+b59s+TX5zP438/rttcx4nkE7RxaUMl20o86fskAP6u/rSs3ZK0/DRW\nRKxgsNdg/Or6sezMMqv12k8kn8Ctqhs96/fkzY5vYqPZMKHlBNyrufN176+vXfvr7lvHKO9RLAxd\nqIujsSpiFe/sfod397zLD8d+wMfZh1a1W6FpGh90+QCDMPDU5qeYsn0KMRkxOrxT60MJ+21IyE4g\nOCmY6UHT2Ru3l74N+l7nPV/lnob3EJQYpEus8VjSMUCGXW7FFz2/YMGQBbSp04Y9cXtM7rM8kpaX\nRlhKGMWimImbJ7Inbg//6/I/fOv4Xndcq9qt+GXgL2QXZjN27VjeDHyTYkNxqftNyE4gMSeRti5t\nARjbbCw9PXoyqskoWtZuCYANNrzc4WXGNBtDfHY8IZdCSv9GyzHHk49f+xwGeg1k9/jdtKvb7j/H\nVXeozlud3qK6fXXmnphrUp9HE48ydf9UutXrRr8G/cgoyGBM0zHXXvd382fNvWt4ye8lDsYfZMLG\nCRQUF5jUpzWihP0WxGfFM2zlMB7d+CgLTi3g3ib38ly752567P3N7qehU0Oe2fIMv4T8YlK/RxKP\n4OzojJeT1x2P7eHRg1Mpp0jJTTGpz/LIwYSDCATvdn4X96ruTO06lbHNxt702FZ1WrHuvnU84vMI\nG6M2XgublYarIt2mThsAHO0cmT1gNh3dOtLcuTmV7SozwnsEHtU86NOgD3Y2dlYZ803OSeZi9sVr\nnwOAk4PTLY+v7lCdh3weYmvM1lLH2w3CwJeHv8Slsgvf9vmWab2n8V3f7xjTbMx1xznaOTKx9USm\n9Z5GSl4Ku+PMk/JakVDCfgsWhi2kWBTzbZ9vWXPvGqZ2m0p1h+o3Pda1qivLhi9jcKPBzDw6k3kn\n5/HT8Z/YELmhRH3GZMRwMP4g7eu2v+nI4EZ61O8BwL6L+0rUT0XgQPwBqtlXY1yzcWwau+k/X+4b\nqVGpBq/5v4Z7VXcWhi4sVX8jVo3g4/0f42DjQAvnFv85ppJtJZYNX8a7nd8FpNB1r9edzdGbyS3K\nLXGf5ZmrE8ht67Y1+pxHfB6hTuU6TNo86drIsySsi1xHaEooL/m9RBX7Ktjb2tPXsy92Njff6K1r\nva44Ozqz7ty6Evdl7ShhvwkZBRmsCF/B4EaDGdBwwH/i3Dejsl1lPu3xKT08evDtkW/5IfgH3t3z\nrtEX+KzgWQxfNZyUvBRGeo806hwfZx9qO9a+NsFoTRy4eICObh1v+aW+GXY2djzU4iGCEoP4NeRX\nFoUuMiossyFyA5O3TAagXd12PNX6Kext7W96bKMajXC0c7z29+imo0nITuDe1fdyPPm40baWd45f\nOo69jT0+zj5Gn1PTsSa/DfmNWo61eGbLMyWa88goyODbI9/SqnYrhjUeZtQ5djZ2DG00lMDYQNLz\n043u627AaGHXNG2epmlJmqad/NdzzpqmbdE0LeLKY62yMdO8LD+znJyiHJ5o9USJzrO3sWd67+lM\n7TqVP0f8iXtVd97c9eYtLzohBPFZ8Xx/7HvmHJ/D8MbD2TxmM/08+xnVn41mQ1/PvgTGBlrVoqXo\njGhis2Lp4t6lxOeObjaaqvZVmXF0Bl8e/vKO3ntuUS5fHPoC3zq+LBm2hO/6fXfLkNvN6OfZj3mD\n5lEkivgm6JsS21seOZZ0jMALgfg4++Bg61CicxtUb8C8QfOobl+dKdun3DFMGJ8VT2RaJN8EfUNq\nXirvd30fG814f3O493AKDYUsOLWgRHZaOyXx2AOAwTc89zawTQjRFNh25e8KjUEY+DP8T/xd/Wnu\n3LzE51exr8KYZmNo7tycr3t/zaXcS3yw94P/ZE4UG4p5Z887DFwxkLkn5jKs8TA+7v4xLlXuuAH5\ndYz0HkluUS5bY7YSlxXH+fTzJba5vDH/5HzsbeyNvsH9GycHJ/4Y/gd/3fsXAzwH8N2x727rOa6M\nWMnl/Mu85v8a1Ryqlcrejm4dGdtsLMeSjnEp91Kp2igvbDy/kQkbJxCbGcu45uNK1UbdKnWZ2W8m\nKXkpPLftuVuWAdgRs4Phq4Yz6q9RrIhYwYSWE2hVu1WJ+mrp3JIRjUfwc8jP/BqiVqVeQwhh9A/g\nBZz8199nAPcrv7sDZ4xpp0OHDqI05BbmiqLiolKdaywHLh4QvgG+Yu25tbq0t+DkAuEb4CtmB88W\nBcUFoqCoQIQkh4i3dr0lfAN8xbTD08SJpBPCYDCUqn2DwSAG/zlYjF0zVvRY0kP0W9ZPFBYX6mK7\nJYhKjxJtF7QVnx/83OS2UnNTRZ9lfUSvpb3EscRj170WkxEjtkZvFfcsv0dM2DDB5L7CU8OFb4Cv\nWHZ6mcltWZJXdrwi+v/RX2QVZJncVuCFQNFuQTsxYcMEkZKbcu35pOwkMe3wNNF2QVsxfu14sez0\nMjH98HSRU5hTqn6KiovEaztfE60DWouo9CiT7S7PAEHCCI01PoB5c1yFEPFXfk8AXE1s77b8HPIz\nm6M281TrpxjWeBj2NjePg5rCiogVODk4cU/De3Rp79GWjxKcHMzs4NksPb2UzILMaxUan2v7HM+2\ne9ak9jVNY4T3CH48/iP2NvakGdLYE7eHPg366GD9PwQnBbP67GrCUsPwcfahp0dPOrt3LrWXeyNZ\nBVn8ePxHAmMDcbB1YGLriSa3WcuxFvMGzeOFbS8wYeMEvGt641HNg4yCjGtzH3aaHVO7TTW5ryY1\nm9DQqSFbordwf/P7TW7vRnIKc9hxYQcnL52kaa2mjPIeha2Nra59FBuKORh/kP6e/alqX9Xk9nrV\n78XnvT7nvd3vMW7tOO5rch+Xci+x5twaikUxQxsN5X9d/mdyX7Y2trzd6W22x2xnUegi3uvynsm2\n30hidiLLzizDq4YXzWo1Y1vMNgZ4DijVqN4cmCrs1xBCCE3TbrlSQ9O0ScAkAE9Pz1L14Vvbl8AL\ngby/931+DP6RF9q/wAjvEaUz+AYyCzJZHLaYrdFbGddsHJVsK+nSrqZpTO89nd1xu1l7bi1uVd3w\nreNLW5e2uFV106WPMU3HcCL5BJPaTOK1wNdYEbFCV2HfeH4j7+55F0dbR5o7N+fvqL9ZEbECOxs7\nnm37LBNbTyxRXPRmzD4+m0Whi/Bz9ePF9i9Sp3IdXWxvVKMRvw/7nSWnl3A8+ThJOUnYaDZMaT+F\nbh7dcK3iqktfmqYxwHMAAacCeG/PezzU4iFa1SlZWOFGLmReYFXEKhztHFkevpyE7ATsbewpNBSy\n9PRSZvSdQb1q9Uy2/SqhKaFkFGTQtV5X3doc7DUYLycv3t/7Pj+H/IytZsu9Te7liVZP0MCpgW79\n1Klch2GNh/HXub/wc/UjsyCTcc3GGZVddjsMwsDC0IXMCp71n8ynjec38ueIP6+bTC83GOPWC1E+\nQjFCyNBD4IVAcf/a+0XrgNYiLjOu1G39mzcD3xS+Ab5i8pbJIik7SZc2LcG3Qd+KtgvaisTsRJPb\nSs1NFR/t+0i0DmgtHtv4mMjIzxBCCFFQXCAOxx8Wr+18TfgG+IpXd7xa6lCSEELEZsaK9r+1F+/v\ned9kmy1JTEaMmLR5kuiyuIsYsWqESZ9JsaFYPLT+IeEb4Ct8A3zF2DVjxcGLB0VhcaHYGLlRdF3c\nVdyz/B4Rkx5jst0Z+Rlid+xu8WPwj8I3wPe6sImeFBYXitzC3DJpWwghzqSeufZ5+Qb4ipDkEJPa\nyy/KF5O3TBa+Ab7iha0viJiMGHHw4kHxx5k/xMbzG4VvgK/4Jugbnaw3DowMxZgq7F8Db1/5/W3g\nK2PaMUXYrxKXGSdaB7QWs47NMrmtguIC0WVxF/HB3g9MbsvSRKdHi9YBrcV3R78rdRvFhmKxKHSR\n6Pp7V9F2QVvxxcEvbvqFNBgMYtaxWcI3wFfsjdtb6v7e2fWO6LCwg4jPii91G+WJZaeXCd8AX3Hq\n0qlSt7E0bKnwDfAVf539S2TkZ/znJnHq0inRfUl30XlxZ7EodJFIy0srVT/FhmIxafMk4RvgK9os\naCPGrRlXapvLAxsiN4hN5zcJv9/8xCf7PzGprTnBc4RvgK9YFLropjfp9/e8L3wDfMXXh74We2L3\niK1RW026mRuDscJeknTHJcB+oLmmabGapj0FfAHco2laBDDgyt9moV61enRx78Lqs6tNWkIOMn6c\nVZhFL49eOllnOTydPOnv2Z8lp5eQXZhdqjYWhS7ii0Nf0Kp2K1aMXMFbnd666XBT0zQmtp6Ie1V3\nvjv6XalqppxJPcO6yHU87POwbqEpSzPIaxB2Nnasj1xfqvNzi3KZeWwmnd06M6LxCKo7VP9PSKFl\n7ZYsHbaUNnXa8MWhL+i5tOdNs6/uxMLQhey7uI/RTUfjXtWd4Y2Hl8rm8sKQRkMY6DWQfp792Bi1\nsVTlBvKL8zl56SRzT8xlkNcgHvZ5+KYhnXc7v8sDzR9gQegCJm+dzMs7X2bHhR16vA3TMUb99f7R\nw2MXQoiNkXI49O7ud8XMIzNFWEpYqdqZHjRdtPutncjMz9TFLktzIumE8A3wFQEnA0p8bkZ+hui+\npLt4etPTRnsfqyJWCd8AXzFy1Ugx48iMEnktz2x5RnT7vVupPc7yygvbXhB9l/UtVRbXunPrhG+A\nrzgUf+iOxxoMBnEk4YiYum+q8A3wFX+c+cPofjLzM0WHhR3EC9teKHNP09zsurBL+Ab4ii1RW0p0\nXmxmrOi4qKPwDfAVnRd3NiqkeSLphDgUf0iMXDVSDF0xVBQUFZTW7DuC3h57eaSfZz+8nLzYEr2F\n+SfnM27tuFLVatkTt4cOdTvoluFhaVq7tKazW2dmB882uvpjck4ys4Jn8eG+D0nPT+flDi8bPfE0\novEIXvJ7iVqOtfgl5Bf2xxtXDO1wwmH2xu3l6dZPU6NSDaPOqSiM9B5Jcm4yXx7+EoMwGHVOdmE2\nQgjWnltLvar1rtXhvx2apuHn6sf7Xd6nq3tXvjr0FdEZ0Ub1tyduD/nF+TzR6gmTJxnLG1fLDWyO\nLtkOTxsiN5BblMv/Ov+PZcOXUbdK3Tue09qlNR3dOvJGxzeIyYzh99O/l9Zs3ajQwu5g68Da+9Zy\n6OFD7Lh/B13cu7AwdCEFxQVGD0lPpZwi4nIEPTx6lLG15uXTHp/SuEZjXt7xMttjtt/x+IVhC5lz\nfA5borcwtNHQa5UMjcHWxpaJrScy95651Ktaz+iwzE/Hf6JO5TqMbzHe6L4qCv09+zOh5QSWnF7C\n14e/vuPxu2J30WtpL57e8jT74/cz3Ht4iTKNbDQbPu3xKZqm8d3R72577KqIVSRkJ7A9ZjvOjs7X\nKjhaE3Y2dnSt15WD8QdLFJ7aGLWR9nXb80CLB2jo1LBEffbw6EF3j+78dPwni2+CU6GF/d/UdKzJ\n460eJzUvlZURKxm/fjwf7f/olv/UM6lnOJxwmBe3vYhbVTfd0ibLC65VXQkYEkBDp4b8EvLLbS9u\nIQTbY7bTxb0LgQ8E8mmPT0vVp4OtA8+2e5ZTKadYG7n2tsceTz7OwYSDPN7q8fKZLmYiNpoNb3R8\ng6GNhrL67OpraxduxraYbby04yXqVavHkcQjGISBEY1Lfj26VHHhsVaPsTl6M6cu3bzCYmRaJB/s\n+4CXdrzE7rjd9GnQR/d8+PJCZ7fOpOalEpEWYdTxZy+fJeJyBIO9blxgbzxv+L9BTlEOs4Nnl7oN\nPbAaYQc5/PKo5sGnBz8lNCWUP8P/ZFHYov8cdzTxKGPXjuXJTU+SW5TL7P6zqV25tgUsLlsq2Vbi\nYZ+HCbkUctMCVWvPreW+v+7jUMIhojOiGeA5AGdH5xIV3rqREY1H0L5uez7a99EtC6AVGYr4/tj3\n1KhUg3HNSrdsvaIwsOFAsgqzCE4K/s9rWQVZrD23ltd3vk7L2i1ZPGwxi4Ys4tMenxpVeO5mPNby\nMWpWqsmzW59l8pbJ/xH4nbE7AZmznlWYRb8GJS/bUFG4WmvowMUDRh2/NnItNpoNA70GlrpP75re\njGs2jj/C/2Dqvqm678drLFYl7DaaDQ+2eBCAL3t+SX/P/kwLmsaXh768rl7Fztid2NnYMaPPDP4c\n+SdNazW1lMllzijvUVR3qM7HBz7m9cDXOZxwGJArGacFTeNs2lle2vESAH09+5rcn62NLTP7zsS9\nmjsvbHuBo4lHAbmqceyasTy64VFe2iE3SXih3QvX7YZkjXSp1wU7Gzt2x+3mQsaFa3VrPj/4OV2X\ndOXdPe/SxqUNc++Zi5ODE63qtDK6uufNqOZQjW/6fEOXel0IvxzOE5ueuK7659XiXmObjaVWpVp0\nqVfyQmsVBfdq7ng5eXEgXgp7dmE2y8OX88eZP/4juCsjVjL/5Hz6e/Y3ecHaS34vMa7ZONZFruPe\nv+7l5xM/Gz3PohdaSeJPeuHv7y+CgoLKpG0hBIk5ibhVdSOnMIevg75mRfgK+jboy8x+MwEYs2YM\nNSvV5NdBd0fRoF9CfmFeyDxsbGzIL8rnq15fcTJFpnMNbTSUDec30KZOGxYPW6xbn3FZcUzeMpmL\nWReZNWAWtpotT256kip2VcgpyuEN/zeY0GqCbv2VZyZunsiFjAvkFuWSW5TL8+2eZ/qR6QzxGkKf\nBn3o69mXynaVde83OSeZ57Y9x+nU09zb5F6e8n2KUX+N4unWT/N8u+fJKcrRpXRAeeaTA5+w5twa\n1t+3ng/2fXBtx7GalWoyb9A89sbtZdXZVUSmR9Ldozsz+szQLTSYlJPEF4e+YEv0Fj7t8alJN+yr\naJp2RAjhf8fjrE3Yb8bVzS82jdmEjWZD/+X9eaXDK9f2s7xbSM1L5alNT3E27SwAfRr0YUafGUzd\nP5Xe9XszoOEAXftLy0vjkY2P4GDrQDuXdqyLXMfmMZtJyUu5tnfs3cCCUwuYFjSNGpVqUMWuCvHZ\n8TSo3oCVI1eW+fxCblEuPx3/iYBTAWiaRpGhiCXDlvxni0FrJTgpmImbJyKEoMBQwNud3qaDawee\n2fIMl/MuIxB0cO3AwIYDGdtsbInLFN8JIQT3r7uf3KJcVo9abVKYE4wX9gqdx24sMRkxwjfAV8wJ\nniNWhq8UvgG+4nTKabPaUF5Iz08XGyI3iD/P/CmSc5LLvL81Z9cI3wBf0XZBW/H6ztfLvL/ySEJW\ngnhs42MiKCFIhKeGi/Frx4vD8YfNasPplNPiofUPiZGrRopiQ7FZ+7Y0EakR4uH1D4svD315LV//\n5KWT4ulNT4vt0dvLvP+t0VuFb4CvWBq21OT1AhiZx35XeOwgh8NR6VHUrFST1LxUto3bZnW5u+WR\nIkMRI1aNIDYrlhl9ZtC/YX9Lm3RXYxAGkwu2KUqGEIIH1z/IqZRTuFV145Pun9DZvXOp2jLWY79r\n/sPjmo0jMSeR5NxkpvhNUaJuJuxs7Hilwyv41va9tkerwnIoUTc/mqYxd+Bc/q/b/+Hj7EO9qvpV\n5Lxln3eLxy6EICItgkY1GpVJHXeFQqEoa4z12HWrx17e0TSNZrWaWdoMhUKhKHPUuEyhUCisDCXs\nCoVCYWUoYVcoFAorQwm7QqFQWBlK2BUKhcLKUMKuUCgUVoYSdoVCobAylLArFAqFlaGEXaFQKKwM\nXYRd07RXNE07pWnaSU3TlmiaZn17nSkUCkUFwWRh1zTNA5gC+AshfAFbwPp2J1YoFIoKgl6hGDug\nsqZpdkAV4KJO7SoUCoWihJgs7EKIOGAaEAPEA+lCiM03Hqdp2iRN04I0TQtKTk42tVuFQqFQ3AI9\nQjG1gFFAI6AeUFXTtEduPE4IMVcI4S+E8HdxcTG1W4VCoVDcAj1CMQOA80KIZCFEIbAS6KZDuwqF\nQqEoBXoIewzQRdO0Kprclqg/EKZDuwqFQqEoBXrE2A8CfwJHgZArbc41tV2FQqFQlA5ddlASQnwI\nfKhHWwqFQqEwDbXyVKFQKKwMJewKhUJhZShhVygUCitDCbtCoVBYGUrYFQqFwspQwq5QKBRWhhJ2\nhUKhsDKUsCsUCoWVoYRdoVAorAwl7AqFQmFlKGFXKBQKK0MJu0KhUFgZStgVCoXCylDCrlAoFFaG\nEnaFQqGwMpSwKxQKhZWhhF2hUCisDCXsCoVCYWUoYVcoFAorQwm7QqFQWBm6CLumaTU1TftT07TT\nmqaFaZrWVY92daUgGw78CEX5lrbkzhxfCt+0hJxUS1uiqIikXYBLEZa2QmFB9PLYZwJ/CyFaAG2B\nMJ3a1Y+g+fD323BskaUtuTMhyyEjDg7OgeJCuBgMuZctbVXpKSqAjIuWtsJ4hICzW6Egx9KWlI6/\nnof5Q6Ewz9KWKCyEycKuaVoNoBfwK4AQokAIkWZqu6UifBOc+VuK4Y0cXyIfD/wIBoN57SoJhbkQ\ntRc0GzgwBxbeB3N7w5desHu6pa0rOceXwfd+MKONvEFVBLZ9BIvGwIY3/nku+QwcCbCYSUZTlA8X\nDkJ2knQQtn0MSx+G4iJLW3b3UFwIkTulg2Ah9PDYGwHJwHxN045pmvaLpmlVdWi3ZORnyQt4yQMw\ns50cjhoMkHoe4k9A4klo2B1SIuDcNrObZzTR+6AoF/q+B/npELMf7vk/8OoJe2dK4S/vFOaBoRj2\n/QCrJkFVF6hSG1Y9U/69yD0zYM+3UMsLghfJm6wQsGYKrH0JMuItbeHtiTsKRXlg5wib34Pd0+D0\nOjj4o6Utu3sImg+/jYLg369/PvsSbH4f8jLK3AQ9hN0O8AN+FEK0B7KBt288SNO0SZqmBWmaFpSc\nnKxDtzdw4QAYCqHn65CXDiufhpUT4bt20uu1sYex86G6Oxyaq3//phK2FgKGw9EF8kvZ9XkY+T08\ntha6vwS93pDvK2ydpS29HoPh+pvN0YVydPGZhxSWlvfCxK1w7yxIPg3bP7aYqXfkSABs/RBajYbJ\ne6CmJ6x5EU6tlNcXlG+nACB6j3zs/6G8Xrx6QrMhsP0TmNkW5vS0qCd5R05vkN+Df4/uksPh4Fw5\nYr0cbTnbjOXEMvm4+T3ISob0WNj+qXQ498+CqN1lboKdDm3EArFCiINX/v6Tmwi7EGIuMBfA399f\n/yvr/G4p3j1fBZfmUtgB2j4IEZuh9Vio7gq+Y6Sw52dCpeq6m1FqDs395x/u3Q/sK4PfhH9e9+oJ\nNRvCvu9kWKlBJ+jzn4/Z/Pz9FoT/DU/vgH3fw94Z0KgXuPrK99D7bbCxhSYDwP8peWE3GwyNelra\n8us5/AvRw1+NAAAgAElEQVSsfx2a3AP3/QR2DnDfXFg0Gv58EqrWBU2Ds9ug/SOWtvbWRO+Dui2h\n0yRwdILmQ2V4ZtEY+XrCCUgKBddWlrXzRqL2SqfmxDIZhvxtJAz8FNIvwO5vpNMGEPg1DPwYOj1t\nWXtvRWokxAXJa+TEHzCtyZUXNGgxTN5wXZqVuRkmC7sQIkHTtAuapjUXQpwB+gOhpptWQqJ2g0cH\ncKgKbe6HrCSo2QBajpJhgas0HwL7f4Bz2+Vr5YH8TIjeD63ug8xEKYA3YmMDfo9Kz0uzlTG81uOg\ntrfZzb2OmP2QFgO/9IfLUdDhCRg2XYr5jQz8WH7uqybDvbOhcW+zm3tT9s+GTe/IG87Y+VLUARp2\nhUdWwrKHoe+7EHsYTq+X19PN3p8lCfkTLp+HmIPQ7iGwtbv+BvTcPhlG+qaFdHTKk7CfXCFvnvZV\noduL4Pe4vKGueUG+3uo+GY4UAta9DBvfhIbdys97uDpnZ2Mj/w9o0Ocd8B0L0XvBsQb4jJDhPTOh\nh8cO8CKwWNM0ByASeEKndu/MsUUyvHIxWHrrV+n2wj+///tL2KALONaUk6zlRdjP75Ieif+T0tu9\nFV2ehxqeUN9fDqm3fwLj5pvPzhspLpKTirWbyrmLpoNg6LRbi55DVRg7D5Y9Kj2yPu9YftRRkA2B\nX8gRxQOLpSD+m4Zd4fWz8kvr6ATBi2HnF2BXCTo+BZVrWcbufxO2DlZMBK4MhL163Pw4J3dwawMR\nW6DHKzJb6epNzJIc/AlqN4FndoNDFfnc8welo2DnCM6N/jl2zK/wXXvY9B48ukqOoizJpQh5E8qI\nlxGA3FRo2ANq1Jc/3n0tYpYuwi6ECAb89WirRKTHydSuq3gZMby3tYNmg2T44PxuqFZXhm4sScQW\ncKgmbzq3w6EKtH1A/t71edj1lRRGS9mfchaKC2T8v5YXuLf5rzDeiIcfvHgElj8mPeVuU/75MluC\nkOUyFt3z9VvbbnNlKqpxXzla2vWV/PvAj/JGZcmRR/hmGXb08IMxv0BiqByV3oqm98gJ4sXjIOEk\nTDkqQ2aWIjFUZvEM/OT668C+MtT1+e/xVZyh91tyhLXhdenhm9ETvo7USAgYBsIgv4/5GVDNVc7R\nWJiKvfL0aky6cV9wbizjzsbQbLC8sy4YDr8OlDcIS3BuO/wxAUL/gsZ9SuY9+T8pH89sKAvLjCPx\npHx0bQWenY0XCHtHKej56XJi0lIIISfl3FqD5x1uqiBF5bG1cj7hmd1yiL3uZculEu6dCb+PA2dv\nGL9Efgd8ht8+TNR0IIhiGY7JvChThC3JkQCwdYC2Dxl/TseJ0O4ROLJAfn8t9fkf+FFmuDy2Du75\nCIZ/e8XRKvsY+p2o2MIeGQiVnWUcdMox44XFZ4SMA4/+Weacrp5smdz2fd//88Vq80DJznVylxOU\nEVv1t8tYkkLBxg7qlOJCbtgNXFpA0Dz97TKWmAOQdAo6Pm38kN6ru/SO3dtILzM18p81EuakqEBO\nJDYZABO3yMQAY/Dwhw6Pw/2/QTU3OWKxFJmJMrTVchRUrW38eXYOMstqzM+QlSg9fnMjhBz1e/eF\nui3M3/8dqLjCLoSMTTfq+c9Q2Vhs7eVdv839MPgz2U7YX2Vj560oKpATpn6PwVvnoeXIkrfRZIBM\nwzNDXuxNSTwlRb00cVpNk6OOuCMQG6S/bcYQvEiGwFqPLd35zYdAPT8I/EqGc8xJzD4oyJQT7SUJ\npdjawYiZUkx9R8swYK5l1hOy4xOZsdPnndKd791fZsKF/62vXcaQfFomDTQbZP6+jaDiCntqJGTE\n3n6y0RjaPyq9/jMb9bHLWOKC5EIkU+xveg8YiuB8oH52lYTEU6ZlJrR7SE5k7/lWP5uMpSAbTq2W\nefYOpVxPp2ky0yfzIiwcbV5xD98EtpVMi+/7joXifAhdrZ9dxpIQItc8dJpU+swuRyc58ovYrK9t\nxnD1ZtJ0oPn7NoKKKexCyEJZAI36mNaWja0UyIgt16dFljXndwOaHNqXlgadoZKTtN3c5F6WOcam\nCHul6tD5GbkyMum0frYZQ9haKMiC9g+b1o5XDxnWiD8uMzXMRfgmOVot7U0JroSU2sGOz8xbi0gI\n+VlVrgm937jz8bej2WDpPV+O0sU0oyjIkdePe1twqme+fktAxRN2QzEse0RmJjTuo08ed7NBcjLV\nHCGB/bPlStjTa2Wc1pR0OVt7GY4JWytDO+bCYJBL7NHAy8QRU+fJYF/FvF57XrrMDKnlBZ46FCJt\nMUyG0iI2m2dV56WzkHpOppeagqbJsEz2JVjxtPyfRu3Vx8bbEb5JjjL7vGN6uujVUMje78zz2Z/e\nANOayRBi6/vLvr9SUvGEPeaA9PB6vi4nTfXIY/XuL9PYyjpWZzDICdNz2+VQ1Jj0zDvR7iF5U4rY\nJL3ei8dMb/N2FOTA2ikQtkZOHtbvYFp7VZzlZF7IcvMsFy/MgyUPylTNYd/olwft3U9O5CWZYW3e\n1UwoPeK79drJNR9nt8iVn2VdaE4IWbahdtN/MrtMobY3dH4Wgn6FLR+Y3t7tEAK2TpWJC4+tlSmO\n5ZSKJ+yhf8lFCz1e0W/1X+WaMlZ3JAAO/Vx2IZmLx2Q8tvdbctVoh8dNb7NxX5ndsGeGTP1aeF/Z\nFQrLiIc5PeDYQujxqn4XdtcX5DLyfd/r097t2D1drga8bw406a9fu42vLEQ5t0O/Nm9F2Fq50KhW\nQ33a6z8VXg2To6fovWVbaC4hRIZOur0gR5x6MPhz+V3a953Miy8rzm2HS2eg52tybszSi6NuQ8US\ndoNBeopNBkClavq2Pfhzufptw+uyDnpZELZGpgd2eVYuJqnT1PQ2be1kdk9ckFwslHsZTpZRbvim\nd2Sd+AlrYMCH+l3YNTzkwqtjC2X1u7KKt6eel7nfvmNLnwlzK2p4QJ3m8stflmRchNhDpcuiuhU2\nNjJW7N1fVoaM3qdf2yC/tz/3g8O/yu+AZgMthuvXvqbJGix2jmVbxfLAj1cWIN1Xdn3oRMUS9tjD\nkBkvMxn0xq01PLUZ6neSnrve8TohpKfl1VP/Zej+T0K99vDwcikuh+bqb//ZbXBqlfRWymKlZe+3\n5Xs4OAcWj9V/0Ul6rKxRY2MnM1nKAu++UhQP/SxrFZUFp9fLRx8dhf0qXt3lYiG9b05pUTImvXWq\nDLk17A5V6+jbRxVnaDte1v8/tliWKdDzO5CZKMNVHZ6Q5STKORVL2EP/kileZZU7qmmyouKlcLhw\nSN+2E0/KCS8fHT2Vqzg3gkk7ZZZEp6chPlh+kfQk8Cuo1UiuGC0LajaAJ/+GcQtkto2eKXgJITCr\ns8xcGf5N2WUytLwXEHLUt2R82fRxapW8eZdFGQmHqnIy+ew2fUUx4coK5fwMmb1SFjclkLH24nz4\n6zlZKOzqymg9OL9LPjYfrF+bZUjFEnafETDoU5m/Wla0uk8uWjn6m77tHlskvaGyriPRdjw4VJde\no17kZ8rRku9oWQ6gLGk2WIbE9v+gn7gE/y5XGD+3X34+ZUXDrvDuRbjnY3ljjT+ub/tha2UM3O9R\nfdv9N80GQXIYfOurX+3/hBAZfmn7oExSaDFMn3ZvpG4LWcjt/t9kf3ruXXA+UJaQcGujX5tlSMUS\n9oZdy74Oc6Vqsmb7yRUyDUwPCvNk3r3PCDlkLEsqVYd2D8oaLFk6bWgSvV/WF9Eji+dO2NhAl+fk\nRHPsYdPbE0IuPmvU6/oqgWWFja0UXjtHfbfSy02TW/W5tpaTnGVFp2dkzRNbOwj8Up82E0LkCuXh\nM+CZQDkfUVb4DJeraht0kTdCvTi/S17/5a1c8y2oWMJuLrq+ICeRDug0EXN6HeSlyVWu5qDjRDmR\nekynUUfULjnaaNBZn/buRJv7ZcjtlA7hmJSzsk65OZd+V64lR34nlsstG00lai/81EvG7UfO1C+b\n5GbY2sk5G78JclOOzETT20wIkXNY9o7y0Rz4DJd1gFIjTW/rchSkRUOjcrJ/gBEoYb8ZLs3khXHo\nZ9PrsBQVyFTEmp7muzBcmsvFW7umySwQU9M3z++G+h3NV163UnVpf9ha08MxV4usmbumR4cnZC2X\nkytMaycrSU4mazbw+Hq5mYw5aDJAPpo6kZqTKkt/mEvQr3I168aUcExmAkxrDr9dSdYwtXyJGVHC\nfit6vCrLyq6cZFoNkB2fQmIIDP6i5MXKTOHeH6U4bvmg9CGBpDAIXSM9N3OEYf6NzwhIj4HIHTKb\nojRZJlczkeq2kjdWc9KgE7j4mB6O2fedHD0+/KcMRZoL19ZyO8CzJlYPvTqBaW5hr9VQxsNPmyDs\nB3+C7CRAyFCSpfdtKAFK2G+Fhx8M/lIuE583uHTpd7FB0mP2e6zsJoxuhVM9eHCJXOFX0lhjcaGs\n5fFjN/jjUbmRgLl3gmk+RHqpi8fJcgOlCYvtnyWrX5blZOOt0DTwfwIuHi39JGpWssz99h0LdZrc\n+Xg9sbGRC7jObTdtxHc1m8TVzMIO0jm4cKh04aT8LFlSusVwmBIMzx8q1wuSbkQJ++3oMlmuUEwK\nlTmsJcFgkClX1VxlJo+laD4EovaULKR0aK7MSvGbABO3wVNbjNuIQk+q1pGhKztHuTlzyHLja+YX\n5UtR3/K+TK0ry8nG29HmftMmUXd+Lr31XiYWyiotTQfKchVXc+dLypEA2PU1NBsC1Vx0Nc0oWgwH\nBJwphf3Bi+W8WLcpUtArkKiDEvY70+o+Kc4l+XIaDHLX+7gjMGCqjBlbiuZD5H6q57YZd7yhWAq7\nZzdZIKq+v/E7U+nN2HlyG70er8rc9pj9d/Ye8zLgp96w6V0Zirp3tuW+lJVryfTW0kyiRu2V9U86\nP2u5HXl8RsrNULZ+WPIic5mJsO4VGasfF1Am5t2Ruj5yV6mSxtkNxdIxaNAZGnQsG9vKGCXsd8LW\nXu72HrH5zlvoCSF3KZ/RGja+IS+Mku6MpDf1O8l68zu/kBNB2z+9/YRkxGaZBdB5ktlMvCVVnKG6\nG7QYKnewX/0sfOIqVxfeDCFkgbJL4TD+d7nZsSVvqiBrmJR0ErW4UL6Pmg2hnxlLAd+Ird0/u0Qt\nvBeWPyFLGhjD2a0yhNf/w7Jf+3ArNE2GY84HyjIVOanyJltcePvzwtbKLJhuL5rHzjJAN2HXNM1W\n07RjmqbpuCqgnOD3mBSN3dNuf9zGt2DFU3KD7DG/wqOrzTthejNs7aQwJp+WC7t2fSW92Rs5vxtm\ntIHVz0H1evrW8jAVh6oyrJGTAlVdYPvHN/cgT66QKzP7v2/+OY1b0aCTDCXdOOLLz7x17Dd4sUzT\nHPKVafXW9aDJAGgzXpbyOLMRlj9+c2HMS7++OmfEZlmcztyTpjfS8WmoUlvemOb0hJUT5Xu42fWT\nECLj6nu+kausmw81u7l6oafqvASE6dhe+aFWQ1nJMGie9Mj/TeIpOcmVlSTDL+0eljHp1mPNlx54\nJwZ9Bs8dlBNAHZ+GA7Nl3D3lnFwRKwSE/CEXZNX3h0GflG2udGkYNh3ePA+jvpdhmZvl6AcvvlL2\n4CXz23crNE167RePylz0g3Pl8389D3O6/7MtnaFYThKfXi/TVD38y8e2a5oGo3+SewrfO0vuL7rt\n//573NKH5WR76nmZaHBuBzQdYPnYdM0G0sEqypNOTveXZKbMmiveeEGO3E3LYJCCv+4VOdnd7YUK\nsxjpZtjp0YimafWBYcCnwKt6tFnuGDBVxszXvCh3DarrI0MzP/eXVRrbjperM7tNkRdQecKxhvwB\nWQDrzAb4+x0pKukxMi0scqfMfBm/2KKm3hIbW/nj3V+GuAK/krVZHGvI92FjKzMwur5g+VHSjbR7\nWHrg0fvkaKlRT7lhg6FQhsiGfCEnGXd+/s85I2ZaXhRvxHeM3EB+/w/Q6t5/cupjDkLUbvn7qmeg\n15syVbi8bBvn2hJePCr3hrWvLBfb7foamg2UNym7ytDvf/+Mkjz8ZUG6CowmdKjHoWnan8DnQHXg\ndSHEbcfx/v7+IijIQhsYm0JmghzOOTrB0ztk6OX47/I1+6pS4J+x0P6jJeHYIukx2jnKPVNbDJdF\nt4Z8XT5i63ci/gT8MkCGOfLS5I5C/k/IkcjTO2Sqankk5Rx87wfO3rIgnFdPKfZt7pclJ9o8ICtn\nZibI/QbKm7CDDLnM6gxV6sCkHXJkt/h+Wf5hwIew9spoSbOVm7RfdSjKE4W58j2kRUuRLy6Q4u7o\nBC+fLN3m7GZC07QjQgj/Ox1nsmupadpwIEkIcUTTtD63OW4SMAnA09PMi0X0orqbnOFfMAK+bSXj\npN2myMmZ+ONlW2BKT9o+CHFHpUd1+Jd/Kik27mNJq4zHvQ0M+RLWvSw3w3Z0kqJew7N8e1q1veVO\nS+e2g6uvLFa19GFZTbFRT1l50tIx9TvhWAOGfi23p9w/S65IjtgEfd+Tc1FO9eWCvBoNyqeog/Ta\nh30DK56EUbPkfMDR38D/lXIt6iXBZI9d07TPgUeBIsARcAJWCiEeudU5FdZjv0r0PlkxMD0W7l8A\nyeFyiP3gUqha29LWlYzgJbB6spwwfTW0fHqJN0MIuWlDPT/p4c4fIrMYBnxoactuz5mNsqTvwE9l\nHLeisvRhmflSpbb0eifv0X/zm7LGUCxDePmZcnLb77GyrRyrA8Z67LqEYv7VaR+sORRjjeRlyM15\nfUfLnO+KSmaCDA+Ut/mNGxFCTpA2vadCbNhwSzIuwg+doDAbntxkubUOdxlmC8UoKjiOTvDkRjmE\nrshUd7O0BcahaWWz2Yq5uVqyIjdViXo5RFdhF0LsBHbq2abCDJTnuLSi/NLIzIXhFEZTzvLCFAqF\nQmEqStgVCoXCylDCrlAoFFaGEnaFQqGwMpSwKxQKhZWhhF2hUCisDCXsCoVCYWUoYVcoFAorQwm7\nQqFQWBlK2BUKhcLKUMKuUCgUVoYSdoVCobAylLArFAqFlaGEXaFQKKwMJewKhUJhZShhVygUCitD\nCbtCoQDgZFw6l7LyLW2GQgeUsP+LlKx8vtkSTlxarqVNuasIT8zk+IU09Nx/V1Ey8ouKeeCn/Xy6\nPszSpih0QO15eoX951J4cckxLmXlExKbxvwnOnEs5jKN6lSlZhUHS5tntQgheDLgMLGXc2nvWZOf\nJ/hTp1oF3uS5gnL8QjrZBcXsOJNEsUFga6NZ2iSFCSiPHYhOyWbSwiBqVLbj0S4N2XEmmecXH+W+\n2fvo8eUOftkdaWkTrZbIS9nEXs5lcCs3QmLT+XZL+HWvKy++bLicXUBQVOq1v/eduwRAWk4hx2Iu\nX/m9gDXHL1JsUP+DiobJHrumaQ2A3wBXQABzhRAzTW3XXESnZDN50VFsNI2AJzpR16kSuyKSWR8S\nz6h29UjMyOOT9WE80LEB1R3tLW2u1fDR2lP4uDuRW1AMwLtDfXB1qsSigzFM6OpFem4hH609Ra0q\nDix8qhOapjxIPflo7SnWHL/Iztf74lm7CvvPpdC4TlWiU3PYdjqJGpXtmfhbENEpOZy6mM47Q3ws\nbbKiBOgRiikCXhNCHNU0rTpwRNO0LUKIUB3aLjOiLmXz/fazrA6Ow85GY86jHWjgXAWAWQ/5cTw2\njYc6ebLjTBIHIlM5nZBJRy9nC1ttHQRfSGP+3iiqO9rR0t0JT+cqeNauwpT+TVlxNI5BM3YBUMXB\nllMFGew9m0KPpnUsbLX1kJiRx7oT8RgEzN93nrcGt+BYTBqPdWtISFw6fxy+wPy956lWyZ6BLV35\nKTCSNh41GdbG3dKmK4zEZGEXQsQD8Vd+z9Q0LQzwAMqlsG8IiWdO4DlC4tJxsLXhsa5eTO7dmLpO\njteO8fWoga9HDQB83J0ACIvPUMKuE3N2nqOKgy2ZeUUcPJ/Kw509AahdrRI/PNSeozFp1KvhyKBW\nbgyeuYsfdkQoYdeRRQeiKRaCLo2dWXb4As1dq1NQbKCrd23calTmQGQofZu78PnoNjhXdWDMj/v4\nbEMYg1q5YmerorcVAV0nTzVN8wLaAwf1bFcvkjLzeO2P49Sr6cirA5rxQKcG1K3ueNtz3JwcqVXF\nntCLGWay0ro5l5zFptAEnu/ThPDETDaHJtLzX6Ldp3ld+jSve+3vSb28+XhdKBtC4hnaWnmMphJ1\nKZtFB6Lp38KVV+5pyrDv9vD2yhBqVbGno5czvZq60NGrFq09alwLf73YrwmTFh5h06lE5bWXktTs\nAv4+mcDes5d4Y1BzvOpULdP+dBN2TdOqASuAl4UQ/1FBTdMmAZMAPD099eq2RMzecY6CYgO/PNaR\nRkZ+sJqm0bKeE6HxGaTnFLL33CU6NXJWmRulZPrmMzja2fJYNy8y8wqpWsmOXs1cbnn8Q508WXP8\nIi/8fpRnenvTwq06A1u6UdnB1oxWWwfHL6TxRMBhAF4b2AwfdyemjWuLjQY9mta5NofUpn7N687r\n7+NKw9pV+GVPpBL2UpBXWMzYOfuITM7GzcmRi2m5ZS7smh5ZB5qm2QPrgE1CiG/udLy/v78ICgoy\nud+SEJOSw4BvAhnt58EXY9qU6NxP1oWy8EA0Q3zdWB18EU2D94b6MLFn4zKy1rrYcTqJGVvDGdG2\nHp+sD+OVAc14aUBTo8/PKShiypJgtoYlAtChYS3mP9ERJzWZbTSXsvIZ9t1u7G1tWPhUZ6Mdm6ss\n2BfFh2tO0dLdiZcGNGVQK7cystT6mL75DN9vP8tPj3ZgYEtXkxIBNE07IoTwv9NxJgfMNGnlr0CY\nMaJuCXILinlm0REq2dswpb/xgnKVlvWcyC8ysDr4IqP9POjRpA7TNp8hPl0tZDKGn3dHcjw2nU/W\nh+Hm5MjTvRqV6PwqDnb88pg/IVMHMnN8O07EpvH4vEMYVBqeUWTnF/Hy0mDScgqZ+6h/iUUd4OHO\nnnwwvCV5hcW8veIE+UXFZWCp9RGZnMWcwHOMbu/BoFZuZsvu0iMU0x14FAjRNC34ynPvCiE26NC2\nSSRl5DF9czjHY9M4k5jJvMc7Uq9m5RK307KenEB1tLfhnSE+5BUW0396INM2hTP9/rZ6m21VJGbk\nsT8yhYk9GmFrq9G7qQtVHEp32VV3tGdUOw/yiwy8+ecJNp5MUKGBO3Ak+jJTlhwjLi2Xr8a0uXYt\nlxQ7Wxue7NGIJnWrMWHeITadSmRk23o6W2t9LDoQA8A7Q82bLqpHVsweoFwmGS89fIE/jlygfYOa\nfDmmDX3/NSlXErxdqlGrij3jO3niUl3G1p/o4cVPgZH0ae7CCHWB/4e0nAJOxmVwOiEDIeDBzp54\nu1TTpe0xfvWZuyuSGVvDGezrplZJ3gKDQfDWihMALJ/cVZesrh5N6lC/VmWWHopRwn4H8ouKWXks\nloEt3a7phrmw6tylrWGJtG9Qk5XPded+/walbsfe1obAN/vyxsDm1557ZUAzOnk58+ofwew7e0kP\nc62K6ZvDeeTXg3y2IQxfDyfdRB3A1kZjSv+mRCRl8UTAYTaExOvWtjURGJ7M2aQs3hjUXLdUXRsb\njfEdG7DvXApnEjJJzMhjypJjRCZn6dK+NbH5VCJpOYWM71R67SktVivsiRl5nIhNp7+Pqy7tOTna\nY/Mvz9DR3pafH/OnbnVHZu08q0sf1kRgeDJN61bD26UaT3YvWUzdGIa3dmdSr8acTczkucVHVeG2\nmzB3VyTuNRx1D1c90NET56oOPLv4CM8sPMKa4xf55oZSEHc7QggW7IvCo2Zlunubfw2G1Qr7trAk\nAO5pqY+w34wale0Z2tqNw+cvk1NQVGb9VDSiU7KJSc3hkS4N2fJqb0b71de9DxsbjXeH+vD7010A\nWHf8ou59VGROxqWzPzKFJ7p7Ya/zoiKX6pWY/bAfMSk5BF9Io0PDWmwIiedCao6u/VRkfj8UQ1D0\nZZ7r632dQ2gurFbYN51KoIFzZZrW1S8EcDN6NXOhoNjAgciUMu2nIrErQoamepphtahXnaq0rV+D\nNUrYr+Pn3ZFUq2TH+E5ls2akS+PazHmkA9PHtWXWQ37Y2miqWN4VLqbl8tn6MLo3qc1DZfT53wmr\nFPZlh2MIDE/mvvb1yzy9qKOXM472NuwKV3H2q+wOT8ajZuVSpdWVhpHtPDh1MYNJvwUx6NtdZOXf\n3aOnuLRc1p2IZ3zHBmWa6z+gpStjOtTHrYYjw1q7szr4okpBBZYciiG3sJgvRrexWPE6qxP2ozGX\neW/VSXo2rcOUfk3KvD9He1u6NK7NrvDkMu+rIpCeW8j+cyn0auZitot6RBt3bDTYeSaZM4mZLDt8\nwSz9lkeEEMzcKuPdT/TQf27jVvRo6kJ6biERSXf3JKoQgjXHL9LNu861ooKWwOqE/afAczhVtmfW\nw35mK1jUu5kLkZeymbE1nIIig1n6LI8UGwRTlhwjr6iYBzqaLxOgrpMjSyd1ZdtrvenoVYt5e85T\nVHz3/R8MBsH/Vp/kj6BYnurRCI9SrNkoLZ2uZN0c+leN97uRE7HpRKfkWDwV1KqEPSE9j61hSYzz\nr2/W5eYPdGzAiLb1mLE1gmcXHblrN4f4adc5AsOT+WikL+0a1LzzCTrSqZEzDZyrMLFnY+LScvn7\nVIJZ+y8P/HU8jsUHY3imd2PeGdLCrH03cK5M3eqVOHz+7hb2NccvYm+rMcjXsiUXrErYlx2+QLFB\nmH3CooqDHd8/2J53hrRg2+mku3Iir6jYwIJ9UfRq5sJDnS0zYQQwwMcV9xqOrL3L/gdFxQZmbo3A\nx92Jtwa1MHtsV9M0OjZyvm5XpruNqEvZLA+6QJ/mdalR2bJ1jKxG2LeFJTJ/33l6Nq1Dw9rmmbS7\nkYk9G9O2fg3+b20o6TmFFrHBUuw4k0xiRv612uqWwtZGo1dTF/afS7mrtnRbeTSOqJQcXr2nmUXS\n60CGYy6m5/HH4QvsOJ1kERssRXpuIU8uOIytjcb/hll+tymrEPaF+6N4akEQrtUd+XBEK4vZYWuj\n8WFOehMAABsASURBVNno1qTmFPDTrnMWs8MSLDkUQ93qlejXonRlG/Ske9M6ZOQVcTIu3dKmmIXD\nUan837pQ2tavwQAfy33+nRrJOPubK04w8bcgLt5Fi8a+3xZB1KVs5jzSwWKO5b+p8MJ+KSufrzad\noUeTOqx9sQdNyjhv/U60qleDEW3qMX9vFMmZ+Ra1xVwkZuSx84yc29B7MUxp6OZdG4A9d0Gph8jk\nLCb8eoi61Ssx59EOFt0btoVbdaaPa8v3D7YHIGBflMVsMSeXsvJZdDCae9t70LlxbUubA1iBsE/f\nHE5uQTFTR7bCwa58vJ2XBzSloNjAjzvvDq99Q4jcP/O+9vqvMC0NdapVwsfdib13gbBvPJlAbmEx\nCyd2xr2G+bJgboamaYzpUJ8RbesxtLU7Sw7GkJln/SHJn3dHUlBk4Pm+ZZ9ebSzlQwlLSXx6LssO\nx/BIl4YW99T/TWOXaoxqV4+lh2NIz7X+C3v9iXhauFUvV/+DHk1qExR1mcvZBZY2pUzZHZFMS3cn\ns6Y2GsPEHo3IzC+y+jUF6bmFLNofzfA29XQtdGcqFVrY/wyKxSAokyJTpvJk90bkFBSzPMi6L+yE\n9DyCoi8zrJztRzrarz4CwevLj1tt+ml2fhFHoi+bpXRDSWnboCadvJyZvzfKqtcULDkUQ3ZBMZN7\ne1valOuosMJuMAiWBV2ge5PaeNa23AqvW+HrUYOOXrVYsD/KarMzgi+kMX3zGQCGlrMNL3zcnXhv\nqA/bTiexwEpjvYfOp1JYLOhRDoUdYGLPRsSl5bLxpHWuKSgoMhCwN4ruTWqXegOTsqLCCvues5eI\nvZzL+I6WTa+7HU90b8SF1FwCw60v9ev4hTTum72X5Udi6eZdu1wNQ6/yWDcv6TXui7JKr31XRDKV\n7Gx0q7WuN/19XPGqXYWfd0daZQ2ZjSfjScjIY2KP8rf3cYUU9uTMfN5bHULd6pUY2KrsyvKaygAf\nV2pVsWfl0ThLm6I7q47FYW9rw963+7F4YmdLm3NTNE1jrH99oq+Ul7UWUrMLmLggiAX7oujepA6O\n9raWNumm2NpovNCvKSdi0/kx0PoSCZYdvoCncxV6N3OxtCn/ocIJe7FB8PRvQSRn5vPzBH8q2ZXP\nixrAwc6GkW3rsTk0kQwryg4oNgjWh8TTr3ldPGpWtmiK3Z0Y7OuGg50Nq49Zz811wb4otp1O5Nk+\n3nw1to2lzbktY/w8GNG2HtM3n+GwFa1Kjb2cw75zKYztUN9iC8JuR4UT9qCoVIIvpPHRyFa0NXM9\nktJwn199CooMbLSi7dsORqaQnJnPyHblf89LJ0d77vFxZd2JeAqtZBJvfUg8nbyceWNQC+pUM+9e\nmiVF0zQ+H92aOtUq8VOg9dRrvzoKH+3nYWFLbk6FE/aNJxOoZGfD8DblX1QA2tavQeM6VflmSzjz\n9py3ionUP4/EUtXBtlysMjWGsf71SckuYKkVpN6FJ2ZyNimL4eVssvp2VKtkx6h29QgMTyItp+Kn\nnyZl5LHs8AW6edemfq3yl7gBOgm7pmmDNU07o2naWU3T3tajzZthMAj+PplA72YuVK1kV1bd6Iqm\naXw9ri0eNSvzf+tCWXEk1tImmcSR6MusCo7jwU6e5Ta2eyN9mrnQpbEz0zefqfDCsu5EPJqGxasH\nlpRR7TwoLBZsCKnYGTLhiZkM/34PqdkFvNivqaXNuSUmC7umabbALGAI0BJ4UNO0lqa2ezOOXUgj\nISOPIa0r1kXdoWEtVjzbDY+aldkSlmhpc0pNYbGBd1eG4O7kyCv3NLO0OUajaRofjmhFRm4hM7dF\nWNqcUiOEYENIPJ0bOVO3uqOlzSkRreo54e1SldXBFXuuY/7eKHIKiln1fDe6epeP8gE3Qw+PvRNw\nVggRKYQoAJYCo3Ro9z/8fTIee1uN/j7lNxPmVmiaRr8WddkTcYm8wmJLm1MqtoQmciYxkw9GtKww\nI6ar+Lg7MdqvPksOxZBaQVejhidmcTYpq9wtBjMGTdO4t50Hh86nVujiYMEX0mjvWZMWbuUrb/1G\n9BB2D+DfwcvYK89dh6ZpkzRNC9I0LSg5uXTbyPVtXpe3Brcw6yYaetLPpy65hcUcrKCbEawPiadO\nNQcGVMAbK8CkXo3JKzSw6EC0pU0pFetD4rGpgGGYq1ydbK+otfJzCooIT8w0+yYypcFsk6dCiLlC\nCH8hhL+LS+nyPrs1qcPEnuVvMYCxdG1cm8r2tmyvgOGY3IJitoclMaiVm9m2HNSbZq7V6dvchQX7\noircqEkIwfoTF+ncqHaFC8NcpWHtqrT3rMnq4Iop7KcuZlBsEHeNsMfB/7d35tFVVfce/+zcjITM\nCUnISAIBwiQhAgEEEShgFbRqVVAGW6u11rraarV09dn1fL72WX19XdT6tCAOVFvFAZ/QAgLKFDBh\nSoCMZDAh8zyP+/1xTzBQAiS5Oefcm/1ZKysnOyfnfLPPud+z9+/s/dv0XuAyXCtTXIa7i4V54wL5\n5NQFimqajZbTL/ZlltPS0WWXYYDePHxTDFVN7XbXaswqayS3osl0qRv6y8ppozlXUk9WWYPRUvrN\nKW2S29Tw4WHsXwHjhBBjhBCuwH3Adhsc1yF5ZvkEurol338zhaa2TqPlXDc9YZiexRTslaTYAGKD\nPHnnaKHRUvrFK/tzcHV2Ytkk+wzD9PDtqaOxOAm7HB124utawnw9CPIy99wBsIGxSyk7gceBfwLn\ngL9LKc8M9riOSmzQSDauSiCjtIG/2om5OEIYpgchBA/MjuLU17WkFdnHCkuHcyv55OQFHl0Qaxem\ncjWCvNxYNjmErUcL7Wr5yKrGNk4U1NhFGAZsFGOXUu6QUsZJKWOllP9hi2M6MgvigogP9eafZ+xj\nTK+jhGF6+E5COB4uFta+cYy5v91LbkWj0ZL6pL61g199lE6EvweP3Wyu1LAD5fGFY2ls6+SNw3lG\nS7ku3jiUx4zn93ChrtVueqz23fyyY5ZOCiG1sMYuls9zlDBMDz4eLvzy1gkkRPpRXNvC/syBjdIa\najq6uvnR1uMUVjfzu7um2s2EsGsxMdSbJfHBbD6YZ/oVljq6unllf642FyWJB2dHGS3pulDGbhDf\nmhSMlLDH5CNkHCkM05sHk6L5y9pEwnw9OFFYY7ScK/L2kQIOZFfywp1TmBNrzpzrA+WJW8ZR39rJ\nW0fMPfR0b0Y5FQ1tPLoglhlR/qZM+HUlHOeTamdMCPEiwt+DXSYPx3yeUeZQYZjLuSHSlxOF5kzp\nuzO9hPhQb757Y8S1d7YzpoT7cPP4IDYdzKO53byDCN47VsgoLzcWjjdfat6roYzdIIQQLI0P4WBO\npanzl2xLLSLUx900q6/bmukRvhTXtlDe0Gq0lEuoamwjtaCGxfH2ORnsevjxLeOobmrnZ38/xeFc\n8y08fr6ikS+yKrgnMdzueqv2pdbBMHtipPKGVr7MruTO6WFY7KQL2l+mR1pHOZw0Wat9X2YF3RKW\n2Oks3+thRpQf6+ZEsy+znFWvH704Ttws/OfODEa4OrNujvnWVL4WytgNZHKYlhjJpItAfHLiAl3d\nku8khBstZciYNNoHZydhuhWW9pwtI9jbjclh5s5JMlieWzGJo88uxtXixHYTTRo7nFvJ7rNlPLbQ\nPoeYKmM3kIuJkfKrTTcTtaqxjS2H85kW4cvYUeZbz9RWuLtYiB/tzZfZFabJlZ9T3sD+rHIWTww2\n9epUtsJnhAvz44LYkVZiirVRG1o7ePbDNMJ8PXhorv211kEZu+HcMT0MIeCH7xxnR1oJ/7Mnm/MG\njqt+eVcmz2w7zffeTKGysY3nbh+SDMym4sHZUaQX1/PCjnNGS6GmqZ2HtqQw0s2FxxaONVqObtw+\nLZSSulaOGzxCSUrJsx+mUVTTwh/uu8Fuh5jaV+5VByTCfwSvrEpgw8fpPLb1OACF1c289N1pumvJ\nrWjkj3tzcHYSdEnJxvsTmB7pp7sOvbknMYIzF+rZdDAPDxcLP10SZ9iwtpd3Z1Fa18p7j8wmzNfD\nEA1GsGhiMK7OTvzf6RISo42ZL1HV2MbP3z/FvswKnlo6nhsN0mELlLGbgOVTQpkdE0BGaQNvHMrj\nQHYFUkrdu+FvHynAxSI4+ItbAAj2ts8sggPhV9+eSEt7Fxv35VBW38qL9+j/YG1u7+TjE8XcNjWU\nhGHwQO3NSDdn5o0N5Iss4yaLPfm3kxzNq+Y3KyaxJsk+JiL1hQrFmAQ/T1eSYgNYHB9MeUMbGaX6\nZr9rautkW2oRt04JJdjbfViZOoCzxYnf3jWFVbMi+ehEsSEJ2nakldLQ1sm9Djhu/XqYOzaQvMom\nQxbiOF/RyIHsSn68cCxr50Tb/bsNZewmY0GcdSKE3i2Xj04U09DWyZqkaF3PayaEECybFEJntyS1\nQP9Y73vHCokJ9HSY1A39Ze5Y61yJQzn6j2l/91ghzk6Ce2c6xkNVGbvJCPZ2Z0KIF1/qaOxSSt4+\nUsCk0d4kRNpH9rqhYkaUH85OguTzVbqe90huFSkFNdw/M9LuW4sDZXywF4EjXTmUU0ldc4du2R9b\nO7p4P7WIpZNC7HYRk8tRxm5C5scFkZJfo1s44FheNZllDaxJihq2ptKDp5szU8N9dDX2zq5ufvPp\nGcL9PHjQzmO7g0EIQVJsIPsyK1j40n5u23iAupahN/cdaSXUNnewelbkkJ9LL5Sxm5AFcUG0d3Xr\nZi5vJRfg4+HCimn/slTtsGR2TACni+p0e7C+e6yQjNIGNtw60W6H19mKeWMDqGvpwNPNQkltK89s\nO42UQzu2/Z3kAmICPUmKdZy0GcrYTUhitB8eLhZdwjG7zpTy2ekS7p8ZiYfr8DaVHmbHBNDZLTmS\nO/QP1pqmdl7anUVSTADL7HSRaluy8oYwfn1bPJ8+Po+nlo5nZ3rpkL1vklJy9kI9xwtrWTXLsUJg\narijCXFztjA7xp8vsytp7egip7yRyWE+Nj3H9lMXyCptYMvhfKaG+/Dk4nE2Pb49c2O0P6N93Nnw\ncRrRgZ5cqG1hRpQfnm62/7i8vDuL+pYO/m1FvEMZy0Bxd7Hw0DzrbM91c6P5w55sPj9Xzs3jR9n0\nPMnnq1i7+RgerhZcnZ24e4Zjpc1QLXaTsiAuiLzKJu59LZnbNx606So/dS0dPPHuCf60P4dRXm68\n+sCMYR8C6I2Hq4VN626kqa2LxS9/wZrNx9h00Par/ew6U8rWowU8MDuKCSGOnRNmILg5W5g7NpC9\nGeU2DcdIKXlhxzl8PFy4IcKXJxePw3eEq82ObwZUi92kzNeGPfZkvNuXUU5skG1ytpwptq71uWX9\nzIvDKxWXMjHUm01rE/kiq4J/nCnlSG4VTywaXK/mneQCUvKrWTd3DGcv1PPc9jNMCffl6WUTbKTa\n8bhlwij2nCsjp7yRccFeNjnmjrRSThfV8eLdU7kn0TGGN16OMnaTMibQk9umhjIlzIcPUovYn1nB\n92+Kscmx0zRjn2Lj8I6jMSsmgFkxAbR1dvNOcgFtnV24OQ+8Z7P5YB7nK5v4+KQ1i+HUcB/eXH8j\nI4cgxOMo3KwtcLE3o9wmxt7R1c3vd2USFzzSobOWDuqOEkK8CNwOtAO5wHoppbnyn9opQgg2rkoA\noKqpnS2H8mlq67RJnDetuI4wXw/8PR2r+zlUzBzjz6aDeZwuqsPF4sSYAE98Rrj06xiVjW2cr2zi\nkQUxRPqPYGKoN9MjfFVc/RqM9vVgQogXu86W8ciCWLYeLSC7rJHnVkwa0PHeTykir7KJ19ckOuwa\nAzD4GPtuYLKUciqQBTw7eEmKy7lZG/542EajNNKL6xw+z7ctmaklg/rfL3K585VDvLgr46r7v7Dj\nHH/en3tJWc9M1iUTg1k9K4qESD9l6tfJPYkRpBbUsDOthBc+O8eWw/kDyoDa0t7FH/ZkMSPKj8UT\nbfsy1mwMytillLuklD2DfZMBx+3bGEhitD8j3ZzZerRg0Pmq61s7yK9qVmGYfuDn6cr4YC/2nCtH\nSmuMtrOr+4r71ja3s/lgHv+9J4uy+m+W20vJr8bV4mTz0U3DgdWzIgnycuOJ907Q0tGFk4APUov6\nfZw3DudR3tDGL5ZNcPiHqi1HxTwE7Ozrl0KIHwghUoQQKRUVxmVws0dcnZ346ZI49mdWsOHjdD46\nUURxPxIlVTS0sT+znJb2LtJ74uvhwzt1QH/pmbzyvXljqG5qv6T31HvExu6zZXR2S9o7u3nty/MX\ny1MKapga7qNGHw0AdxcLjy6IpaNLcuf0cBaOH8UHqUV9PlyvRF1zB6/uz+WWCaOGRS6eawZshRB7\ngCvNnNggpfxE22cD0Als7es4UsrXgNcAEhMTjV8mxc5YPzeawupmthzO591jhYT6uPOPn8y/rljv\nrz9JZ2d6Ka7OTnhqk5BUi71//PiWsSyfHMK0CF/+/tXXfHrqAiE+7ry0K5O9GeVMDvPhkfkx/CO9\nlDBfD2aN8eft5AIOZlcy2ted9OK6i+OzFf1n9axIapvbeTApiuMFtXyeUc5naSXausHd/OVAHoXV\nTbxw55SLrfHCqmY+PX2B9OI66ls7aGjr5Oll4w3+T/ThmsYupVx8td8LIdYBtwGL5FDP/R3GCCH4\nt9vjWTUrkuKaFh5+K4VffpzG8ysn4zvC5V+6ljvSSsirbGL1rEg+P1fO8skhhPt5UNHQRoT/CPXi\ntJ8EjHQjYKR17cslk4J5P7WI91OLGOFq4e4Z4aTk1/DY1uM4CcGapGjWz42mrKEVDxdn0opr6eiS\nzIkNNPi/sF/cXSz87FtWU140cRRTw334xbbTVDS08UFq0cU01w/fFEOApxv//tlZPjxeRLeESP8R\nXKht4d7EiGEzX0AMxouFEMuAl4EFUsrrjq8kJibKlJSUAZ9XARv3ZvP7XVmA9cadOzaQ1IJq/Ea4\n8vSyCdz/ejLtnd0snxzCzvRSPntiHpNGq1a6LcitaOSvRwuJCfJkycRgRnm709Lexfff+opDOVVs\n+2ESM6K+6e53dHWTVdZAfKi3w8d29aKioY27/nyYwupmxgR6snpWJM9/do7n75hMXmUTWw7ns35O\nNOvnjSHM14POrm4sTsLu618IkSqlTLzmfoM09hzADegJOCZLKR+91t8pYx88UkoOZFeSWdrAgZxK\nks9XMS3ch5Nf19LZLfH1cMHHw4X8qmYmhHix8yc32f1NbXZaO7o4W1I/7FY/MorSulayyhqYOzYQ\nJwFzfruX6ZG+nCisZdJob/6y9kajJdqc6zX2QQ2KllIOn9V2TYYQgvlxQcyPC+Lh+d9MXNqXUc5T\nH5zm+TsmM9LNmQc2HeXuGeHK1HXA3cWiTF1HQnzcCfH5Jn96UmwA209eoLNbDptYel+oKW8OxsIJ\no/hqw6KLRr7jiZsYF2ybVAQKhZlJigngw+PFuFqcWDQx2Gg5hqKM3QHp3TqPHz08XhYpFD1DUufH\nBeLt3r+ZwY6GMnaFQuEQhPuN4Kml45k/TiW2U8auUCgchh8tVK/9QOVjVygUCodDGbtCoVA4GMrY\nFQqFwsFQxq5QKBQOhjJ2hUKhcDCUsSsUCoWDoYxdoVAoHAxl7AqFQuFgDCq744BPKkQFUDDAPw8E\nKm0ox1aYVReYV5vS1T/MqgvMq83RdEVJKa85tdYQYx8MQoiU60lbqTdm1QXm1aZ09Q+z6gLzahuu\nulQoRqFQKBwMZewKhULhYNijsb9mtIA+MKsuMK82pat/mFUXmFfbsNRldzF2hUKhUFwde2yxKxQK\nheIq2JWxCyGWCSEyhRA5QohnDNQRIYTYJ4Q4K4Q4I4T4iVb+nBCiWAhxUvu61QBt+UKINO38KVqZ\nvxBitxAiW/uu68KcQojxverkpBCiXgjxpFH1JYTYLIQoF0Kk9yq7Yh0JK3/U7rnTQogEnXW9KITI\n0M79kRDCVyuPFkK09Kq7V3XW1ee1E0I8q9VXphBiqc66/tZLU74Q4qRWrmd99eUP+t1jUkq7+AIs\nQC4QA7gCp4B4g7SEAgnatheQBcQDzwE/N7ie8oHAy8r+C3hG234G+J3B17EUiDKqvoD5QAKQfq06\nAm4FdgICmA0c1VnXtwBnbft3vXRF997PgPq64rXTPgenADdgjPaZteil67LfvwT82oD66ssfdLvH\n7KnFPhPIkVKel1K2A+8BK40QIqUskVIe17YbgHNAmBFarpOVwJva9pvAHQZqWQTkSikHOkFt0Egp\nvwSqLyvuq45WAm9JK8mArxAiVC9dUspdUspO7cdkIHwozt1fXVdhJfCelLJNSpkH5GD97OqqS1gX\n/v0u8O5QnPtqXMUfdLvH7MnYw4Cve/1chAnMVAgRDUwHjmpFj2vdqc16hzw0JLBLCJEqhPiBVhYs\npSzRtksBI5dwv49LP2xG11cPfdWRme67h7C27HoYI4Q4IYT4QghxkwF6rnTtzFJfNwFlUsrsXmW6\n19dl/qDbPWZPxm46hBAjgW3Ak1LKeuDPQCxwA1CCtSuoN/OklAnAcuBHQoj5vX8prX0/Q4ZCCSFc\ngRXA+1qRGerrXzCyjvpCCLEB6AS2akUlQKSUcjrwU+CvQghvHSWZ8tr14n4ubUDoXl9X8IeLDPU9\nZk/GXgxE9Po5XCszBCGEC9aLtlVK+SGAlLJMStklpewGXmeIuqBXQ0pZrH0vBz7SNJT1dO207+V6\n69JYDhyXUpZpGg2vr170VUeG33dCiHXAbcBqzRDQQh1V2nYq1lh2nF6arnLtzFBfzsB3gL/1lOld\nX1fyB3S8x+zJ2L8Cxgkhxmgtv/uA7UYI0eJ3m4BzUsqXe5X3jovdCaRf/rdDrMtTCOHVs431xVs6\n1npaq+22FvhET129uKQVZXR9XUZfdbQdWKONXJgN1PXqTg85QohlwNPACillc6/yICGERduOAcYB\n53XU1de12w7cJ4RwE0KM0XQd00uXxmIgQ0pZ1FOgZ3315Q/oeY/p8ZbYVl9Y3x5nYX3abjBQxzys\n3ajTwEnt61bgbSBNK98OhOqsKwbriIRTwJmeOgICgM+BbGAP4G9AnXkCVYBPrzJD6gvrw6UE6MAa\nz/xeX3WEdaTCn7R7Lg1I1FlXDtb4a8999qq2713aNT4JHAdu11lXn9cO2KDVVyawXE9dWvkW4NHL\n9tWzvvryB93uMTXzVKFQKBwMewrFKBQKheI6UMauUCgUDoYydoVCoXAwlLErFAqFg6GMXaFQKBwM\nZewKhULhYChjVygUCgdDGbtCoVA4GP8P+16rmMPDaMIAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"PCA MLE\")\n", "encoding_dim_pca = 3 # 'mle'\n", "pca = PCA(n_components=encoding_dim_pca, random_state=888, svd_solver = 'full')\n", "X_pca_1 = pca.fit_transform(X)\n", "print(\"X_pca_1\",X_pca_1[0:10,:])\n", "\n", "print(\"Explained variance ratio (cumsum)\", np.cumsum(pca.explained_variance_ratio_))\n", "\n", "# plot\n", "myPlot(X_pca_1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Normalize PCA output\n", "\n", "Use the one with dimensionality reduction, otherwise worse results\n", "\n", "To test using the one without dimensionality reduction,\n", "replace `X_pca_use = X_pca_1` with `X_pca_use = X_pca_2`" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "X_pca_use normalized [[ 0.50271309 0.4580017 0.50065471]\n", " [ 0.564895 0.57468857 0.48239804]\n", " [ 0.58818091 0.59931414 0.46194912]\n", " [ 0.6399621 0.74749734 0.35762289]\n", " [ 0.67508796 0.71950315 0.35968619]\n", " [ 0.68840725 0.8709205 0.34471891]\n", " [ 0.7383085 0.85692907 0.24552465]\n", " [ 0.76214515 0.80413998 0.29176237]\n", " [ 0.82904734 0.8387182 0.24120756]\n", " [ 0.83133105 0.81849109 0.21670682]]\n" ] }, { "data": { "image/png": "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\njDItR2u1adUqBUUZ8OpQiEiA+BHQpj90m9w0u6NlOaa/fPM8OLgSblgCBYeh6yXgH/Lrx6dvgK3v\nQKt42DAXAkLh9rXmd1M4sgkWjIfovnBshwnq0X+BqN6nX57WGvhxjnm9FfnQbrB5zd7+rq/9hLXP\nmeDrPMFsfOJG/Lz2wjRIXgq9rzEt+JWP1v5DmeAc+xh0HNMUlUPuAdj+Puz4wCxP5Wlqv/V7E3q/\nVF0Grw4xn4VWseb3tPfBy8f1tZ9weDV8cKWpt/tlEDscQuPNayrOBC8/s3yjepvusIMrYMXfwMMT\nukyA3tOg4wVNV/vSe8we3an6XgeXvQJ5B6EkE3xaQmRP8HF8NLf7BrrWpovl2E5oPwQ8veGq9+q2\nK7btffjybtNi0XboMgmunG+6ZlzFboPXR0DOHvP36L+aMKyrzERYMAH6XGNWnqbwxV2w9wu4f7/5\n4NW1C0hr0zWz+BZImATT3jPvn6udWA96XwNTXjv7umOzwNp/m+6kE33tRemmG6nv9a7tBihMMw0T\nWw10GgejHjTHjqpLf3sDf+Bb+PAqaBkJZcdh8B0w6V8uK/tn9n4Jn99hAnzGcvALqtvz8g7Cyr9D\nxiazkZq5AcI7NW6tv1SeD6+cB/6hMPZRCIk164RfEIR3abQGYl0DHa21y34GDBigHVJdrvXmN7V+\nLEjrn15v2DSqSrS2WrRe/5KZztd/caymurJazE/i22a+61/SOm291nZ7/af17d/NNFLXOb3MsyrP\n1/qpKK2XzGr4NH56w9T/4bVaW6qcV1tdpG3Q+okwrd+9TGtrTcOmUVmk9TuXmNcwd6DWGYnOrfFM\n7Hat371U66djtC5Irf/zC1LNOvj1X0ztq2drbbM6u8ozs9m0XvWUmfe8C7QuOdaw6ZQc0/qf7bRe\nMMlM0xXsdrP8Pp5u1p/sPa6Zby0gUdchY8+dFvqxnfDOZNPfHNULbl3teOvuq/thy3yz+x8/svG6\nX6w18PZE0+esgdbd4I/fNHx+NRXw2lAz3dvWQG6y6WZq3dWJRf9CTrJpWW163fTH3rradD001KZ5\nsPz/oNOFpl+0sbtfyvPhh9mw9V0Ibgu3rnKsL9xmhT2fw3ePmdpnbmz8Loxt78GXs+Di/8B5tzR8\nOtYa+GImJH1qRlNZq0xrvd/1zqv1l2xW+ORGM0ih7/XmNXj7NXx6J/ayovvAmEdMN0xjsVbDx9NN\n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\nhJv4f9jjQia9E/WLAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# choose the PCA with the dimensionality reduction\n", "X_pca_use = X_pca_1\n", "X_pca_use = myNorm3(X_pca_use)\n", "print(\"X_pca_use normalized\",X_pca_use[0:10,:])\n", "myPlot(X_pca_use)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## AE with PCA: keep at 3" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "autoencoder\n", "Train on 80000 samples, validate on 20000 samples\n", "Epoch 1/25\n", "80000/80000 [==============================] - 2s - loss: 0.0626 - val_loss: 0.0531\n", "Epoch 2/25\n", "80000/80000 [==============================] - 1s - loss: 0.0422 - val_loss: 0.0306\n", "Epoch 3/25\n", "80000/80000 [==============================] - 1s - loss: 0.0196 - val_loss: 0.0102\n", "Epoch 4/25\n", "80000/80000 [==============================] - 1s - loss: 0.0049 - val_loss: 0.0016\n", "Epoch 5/25\n", "80000/80000 [==============================] - 1s - loss: 8.4474e-04 - val_loss: 5.3210e-04\n", "Epoch 6/25\n", "80000/80000 [==============================] - 2s - loss: 4.4101e-04 - val_loss: 3.9548e-04\n", "Epoch 7/25\n", "80000/80000 [==============================] - 1s - loss: 3.7434e-04 - val_loss: 3.6122e-04\n", "Epoch 8/25\n", "80000/80000 [==============================] - 1s - loss: 3.4989e-04 - val_loss: 3.4602e-04\n", "Epoch 9/25\n", "80000/80000 [==============================] - 1s - loss: 3.3630e-04 - val_loss: 3.3244e-04\n", "Epoch 10/25\n", "80000/80000 [==============================] - 1s - loss: 3.2939e-04 - val_loss: 3.2838e-04\n", "Epoch 11/25\n", "80000/80000 [==============================] - 1s - loss: 3.2629e-04 - val_loss: 3.2438e-04\n", "Epoch 12/25\n", "80000/80000 [==============================] - 1s - loss: 3.2464e-04 - val_loss: 3.2451e-04\n", "Epoch 13/25\n", "80000/80000 [==============================] - 1s - loss: 3.2365e-04 - val_loss: 3.2515e-04\n", "Epoch 14/25\n", "80000/80000 [==============================] - 1s - loss: 3.2295e-04 - val_loss: 3.2211e-04\n", "Epoch 15/25\n", "80000/80000 [==============================] - 1s - loss: 3.2241e-04 - val_loss: 3.2163e-04\n", "Epoch 16/25\n", "80000/80000 [==============================] - 1s - loss: 3.2208e-04 - val_loss: 3.2144e-04\n", "Epoch 17/25\n", "80000/80000 [==============================] - 1s - loss: 3.2182e-04 - val_loss: 3.2050e-04\n", "Epoch 18/25\n", "80000/80000 [==============================] - 1s - loss: 3.2166e-04 - val_loss: 3.2530e-04\n", "Epoch 19/25\n", "80000/80000 [==============================] - 1s - loss: 3.2128e-04 - val_loss: 3.2013e-04\n", "Epoch 20/25\n", "80000/80000 [==============================] - 1s - loss: 3.2115e-04 - val_loss: 3.2178e-04\n", "Epoch 21/25\n", "80000/80000 [==============================] - 1s - loss: 3.2114e-04 - val_loss: 3.2190e-04\n", "Epoch 22/25\n", "80000/80000 [==============================] - 1s - loss: 3.2111e-04 - val_loss: 3.2094e-04\n", "Epoch 23/25\n", "80000/80000 [==============================] - 1s - loss: 3.2094e-04 - val_loss: 3.2098e-04\n", "Epoch 24/25\n", "80000/80000 [==============================] - 1s - loss: 3.2089e-04 - val_loss: 3.2404e-04\n", "Epoch 25/25\n", "80000/80000 [==============================] - 1s - loss: 3.2083e-04 - val_loss: 3.1959e-04\n", "encoder predict\n" ] }, { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Use the PCA with dimensionality reduction\n", "# If using the one without dimensionality reduction, result won't be as good\n", "# split\n", "X_train, X_test = train_test_split(X_pca_use, train_size=0.8, random_state=8888)\n", "\n", "# train autoencoder\n", "print(\"autoencoder\")\n", "autoencoder, encoder = buildNetwork(X_pca_use.shape[1], encoding_dim_ae = 3)\n", "autoencoder.fit(\n", " X_train,\n", " X_train,\n", " epochs=N_epochs,\n", " batch_size=256,\n", " shuffle=True,\n", " validation_data=(\n", " X_test,\n", " X_test,\n", " )\n", ")\n", "\n", "print(\"encoder predict\")\n", "X_enc = encoder.predict(X_pca_use)\n", "# print(\"encoded\",X_enc)\n", "# # X_enc_dec = decoder.predict(X_enc)\n", "# # print(\"enc-dec\",X_enc_dec)\n", "# X_rec = autoencoder.predict(X_pca)\n", "# print(\"recoded\",X_rec)\n", "\n", "# plot\n", "# from matplotlib import pyplot as plt\n", "myPlot(X_enc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## AE with PCA: reduce to 2" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "autoencoder\n", "Train on 80000 samples, validate on 20000 samples\n", "Epoch 1/25\n", "80000/80000 [==============================] - 2s - loss: 0.0604 - val_loss: 0.0533\n", "Epoch 2/25\n", "80000/80000 [==============================] - 1s - loss: 0.0465 - val_loss: 0.0404\n", "Epoch 3/25\n", "80000/80000 [==============================] - 1s - loss: 0.0350 - val_loss: 0.0301\n", "Epoch 4/25\n", "80000/80000 [==============================] - 1s - loss: 0.0260 - val_loss: 0.0225\n", "Epoch 5/25\n", "80000/80000 [==============================] - 1s - loss: 0.0195 - val_loss: 0.0170\n", "Epoch 6/25\n", "80000/80000 [==============================] - 1s - loss: 0.0154 - val_loss: 0.0144\n", "Epoch 7/25\n", "80000/80000 [==============================] - 1s - loss: 0.0140 - val_loss: 0.0137\n", "Epoch 8/25\n", "80000/80000 [==============================] - 1s - loss: 0.0135 - val_loss: 0.0134\n", "Epoch 9/25\n", "80000/80000 [==============================] - 1s - loss: 0.0133 - val_loss: 0.0133\n", "Epoch 10/25\n", "80000/80000 [==============================] - 1s - loss: 0.0133 - val_loss: 0.0132\n", "Epoch 11/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 12/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 13/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 14/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 15/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 16/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 17/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 18/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 19/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 20/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 21/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 22/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 23/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 24/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "Epoch 25/25\n", "80000/80000 [==============================] - 1s - loss: 0.0132 - val_loss: 0.0132\n", "encoder predict\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Use the PCA with dimensionality reduction\n", "# If using the one without dimensionality reduction, result won't be as good\n", "# split\n", "X_train, X_test = train_test_split(X_pca_use, train_size=0.8, random_state=8888)\n", "\n", "# train autoencoder\n", "print(\"autoencoder\")\n", "autoencoder, encoder = buildNetwork(X_pca_use.shape[1], encoding_dim_ae = 2)\n", "autoencoder.fit(\n", " X_train,\n", " X_train,\n", " epochs=N_epochs,\n", " batch_size=256,\n", " shuffle=True,\n", " validation_data=(\n", " X_test,\n", " X_test,\n", " )\n", ")\n", "\n", "print(\"encoder predict\")\n", "X_enc = encoder.predict(X_pca_use)\n", "# print(\"encoded\",X_enc)\n", "# # X_enc_dec = decoder.predict(X_enc)\n", "# # print(\"enc-dec\",X_enc_dec)\n", "# X_rec = autoencoder.predict(X_pca)\n", "# print(\"recoded\",X_rec)\n", "\n", "# plot\n", "# from matplotlib import pyplot as plt\n", "myPlot(X_enc)" ] } ], "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.5.3" } }, "nbformat": 4, "nbformat_minor": 2 }