Skip to content

Instantly share code, notes, and snippets.

@yosemitebandit
Last active January 22, 2016 08:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yosemitebandit/75c3ca7a988ac7aee38c to your computer and use it in GitHub Desktop.
Save yosemitebandit/75c3ca7a988ac7aee38c to your computer and use it in GitHub Desktop.
notes from the udemy class
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline\n",
"sns.set(style='ticks', palette='Set2')\n",
"\n",
"\n",
"def sigmoid(z):\n",
" return 1 / (1 + np.exp(-z))\n",
"\n",
"\n",
"def cross_entropy(T, Y):\n",
" E = 0\n",
" for i in xrange(N):\n",
" if T[i] == 1:\n",
" E -= np.log(Y[i])\n",
" else:\n",
" E -= np.log(1 - Y[i])\n",
" return E"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cross entropy with random weights: 115.10\n",
"final cross entropy: 1.17\n",
"final weight: [ 0.05036284 1.57522621 1.27040357]\n",
"final classification rate: 1.0\n"
]
}
],
"source": [
"\"\"\"A simple example with two point clouds.\n",
"\"\"\"\n",
"N = 100\n",
"H = N/2\n",
"D = 2\n",
"\n",
"# Generate a random point cloud.\n",
"X = np.random.randn(N, D)\n",
"\n",
"# Create two classes with this data, centering the first class at (2, 2) and\n",
"# the second at (-2, -2).\n",
"X[H:, :] = X[H:, :] + 2*np.ones((H, D))\n",
"X[:H, :] = X[:H, :] - 2*np.ones((H, D))\n",
"\n",
"# Initialize some targets (the actual classes). We are basically saying that\n",
"# the \"0\" class is data centered around (2, 2) and the \"1\" class is data around\n",
"# (-2, -2).\n",
"T = np.array([0]*H + [1]*H)\n",
"\n",
"# Set up the input data in matrix form.\n",
"ones = np.array([[1] * N]).T\n",
"Xi = np.concatenate((ones, X), axis=1)\n",
"\n",
"# Initialize the weights.\n",
"w = np.random.randn(D + 1)\n",
"\n",
"# Calculate the model output.\n",
"z = Xi.dot(w)\n",
"Y = sigmoid(z)\n",
"\n",
"# The initial cross entropy is high.\n",
"print 'cross entropy with random weights: %0.2f' % cross_entropy(T, Y)\n",
"\n",
"# Now apply gradient descent.\n",
"learning_rate = 0.1\n",
"regularization = 0.1\n",
"for i in xrange(1000):\n",
" w += learning_rate * np.dot((T - Y).T, Xi) - regularization * w\n",
" Y = sigmoid(Xi.dot(w))\n",
"\n",
"print 'final cross entropy: %0.2f' % cross_entropy(T, Y)\n",
"print 'final weight: %s' % w\n",
"print 'final classification rate: %s' % (1 - np.abs(T - np.round(Y)).sum() / N)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cross entropy with closed form weights: 0.01\n",
"final classification rate: 1.0\n"
]
}
],
"source": [
"# We can also look at the closed form solution, where the weights can be\n",
"# analytically calculated (see notes).\n",
"w2 = np.array([0, 4, 4])\n",
"z = Xi.dot(w2)\n",
"Y = sigmoid(z)\n",
"print 'cross entropy with closed form weights: %0.2f' % cross_entropy(T, Y)\n",
"print 'final classification rate: %s' % (1 - np.abs(T - np.round(Y)).sum() / N)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nKC4upj179tCuXbvol19+of3799PLly9lOrZ8Zrs7d+5UmrZXLBZTRkaGTClXG6LLly/z0rNqa2tL\nLJ8rTWJiIllaWnLH9ejRo8J0u5s2beIWfNHV1ZW5ib8yu3fvJkNDQ97fiba2drVT/spLfn4+2dra\n8loOWOuadKz5nakxsVhMFy9epFOnTkk0zf355580ceJEcnJyoqtXr9b4HBMnTuR9sTRv3pz09fWp\nZ8+eXDPuq1evyMrKittn4MCB5OTkxDvO3NycuxHIy8ujMWPGkLa2NrVr1478/f1rfhEaseLiYkpP\nT6/Wl2f5UfJRUVFcznZZpaWl0T///NNoKnofHx/q06cP9e3bl/bs2SPzcXFxcbRs2TLy8PCg5OTk\nSvcNDQ2ljRs3SqxYVxtz5syRGDeze/du+uyzz2jGjBkfdI0Fb29viS6B8mMymBKsUmekunHjBh0+\nfJiysrLkUl5OTg49ffq02v1y48aNk9pvCIAGDBhAREReXl4S7/Xu3Zu3bWJiwvXdFRYW0v/+9z8a\nMWIEzZo166N+Sr958yYdO3aMgoODKSAgQKa8/ZVJSUmhI0eOUH5+PsXFxVWYwrUiERERFB4eTvHx\n8XTs2LGPJgWrInr16hX179+fawH46quveEvADhgwoNa/L7LauHGjxN/40aNHP8i5GxpWqTMSPD09\nudHtXbt2pbi4uFqVd/ToUTI2NiZlZWUyMjIiBwcH+u6772Sq4A8ePEhaWlpSK3Vzc3MiklwrWiAQ\n0PLly0lXV5cbZOTu7s6VOW/ePN7+n3/+ea0+X0OVm5vLGwCXl5dXrQFxFcnJyaGwsLBqD44Ui8W8\nHPFEJLHdkB07dowmTpxIU6ZMoZs3b9Z3ODIpKCigf/75h9LS0iQWbFFRUflgN11paWlkbW3NnXvo\n0KFUUFDwQc7d0LCBcgzP27dvsXfvXm6+8KNHj+Dt7Q1fX98al7lhwwZuPeekpCQkJSXh9OnTSEpK\nqnIOrIuLC1q3bo3IyEjcv3+flye8dODd3Llzce7cOZw7dw4CgQBffPEFNm/ejLFjxyI8PBzt2rXD\nzJkzuePKZ8eLiYmp8WdryF6/fo327dtz2/LKjKapqSlzStmypGVGk3WAnqKLiIjA7NmzuUFzd+/e\nxbVr12RO01pfmjRpwqUi1tfX573XunVrLod/XdPX10dYWBh+++03qKmpwd3dXeYseoxsWKXeSBUV\n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\nRUWFOnbsKLUbQF9fX2rlKKuzZ8/S5s2b6dq1a9U6rqCggL0WUHQAABPXSURBVIyNjXmxzJkzh3Jy\ncigkJKTCmMLDw7l/N11dXdq7dy/vfUdHR16Z7du35/rpNTU1ZU69W9aiRYt4Zero6LBme0au6qVS\nf/78Ob148YJcXFx4lXpcXBw5OjqSUCikxMREsrOzq3EyB1apM7ISCoXk7e1NHh4eFBkZSXl5ebyB\na7169aI3b95UWkZYWBjZ29uTjY1NpTcAb968IRsbG96ALENDQ4kBeVUpfQqV9mNmZsb1nZe+NnLk\nyFot/HHx4kVavXo1HTx4kLekaPkfX1/fGpXv7e3NtQDo6uryEu1UJSsrS2KBmfL56qUpf/PWvXt3\n3vtlr19pt8ydO3do27ZtMj1wSPvuKr/KWtOmTWs9c4JhyqrX5vdp06bxKvU9e/bQnj17uO1Zs2bR\nvXv3alQ2q9SZ2sjJySEvLy/asGEDZWRkyK3c8v3TpT87duyoVrrcadOmVVip6+joUE5ODhUWFtLB\ngwfp4MGD1V5+tSr37t2jmTNnkpqaGq+1oHzLmzSpqan02Wef0YABA+irr76ivLw8iRz8I0aMqFY8\nZdPjamtry9T6UT7VbPk55lu3buUWVBEIBDR//nyZYrlz5w4NHDiQjIyMaOTIkfTq1SvuvcjISN74\nC0dHR5aFjpErhcool5aWhh49enDbBgYGSEtLq4tTMUylNDU18d1338m93KdPn0q8pqKigsWLF2P7\n9u3Yvn07HBwcqiznt99+Q3x8PKKioiTeGzBgAJclzsXFpfZBS2FtbY19+/ahe/fuOHz4MFRUVDBn\nzhxYWVlVeaybmxtCQkIAADdu3ICqqqpEJjolJaVqxfPHH39g48aNyMzMxKhRozBu3LhK9yciaGpq\nQkVFBcXFxVBVVcXkyZN5+yxevBj6+vq4efMmzMzMsGjRIpliWbx4Ma5fvw4ASEpKwrJlyxAYGAgA\nGDJkCIKCghAUFARtbW0sWbJE5iyEDFOXqqzUZ8yYgYyMDInXFy9ejOHDh9dJUAyj6IyNjRETE8Nt\nq6mpoaioCADw33//Ye3atTJV6k2bNoWXlxcmTJiArKws7rXPP/8cu3btqnWc+fn5iI+Ph4mJCVq0\naFHhfosWLZK5sisVFxfH23727BlcXV3h6emJnJwcGBoaYs6cOdUqU01NDWvXrpV5/zVr1uDEiRMg\n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\nAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f83703290>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f702c2750>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\"\"\"The donut problem -- two classes arranged in concentric rings.\n",
"\"\"\"\n",
"N = 1000\n",
"H = N/2\n",
"D = 2\n",
"R_inner = 5\n",
"R_outer = 10\n",
"\n",
"# Half the data spread around some inner radius, the other half at another\n",
"# radius.\n",
"R1 = np.random.randn(H) + R_inner\n",
"theta = 2*np.pi * np.random.randn(H)\n",
"# Convert polar to x/y.\n",
"X_inner = np.concatenate([[R1 * np.cos(theta)], [R1 * np.sin(theta)]]).T\n",
"\n",
"R2 = np.random.randn(H) + R_outer\n",
"theta = 2*np.pi * np.random.randn(H)\n",
"X_outer = np.concatenate([[R2 * np.cos(theta)], [R2 * np.sin(theta)]]).T\n",
"\n",
"# Create the full input dataset and apply some class labels.\n",
"X = np.concatenate([X_inner, X_outer])\n",
"T = np.array([0]*(H) + [1]*(H))\n",
"\n",
"# No line can separate these two classes..\n",
"plt.scatter(X[:,0], X[:,1], c=T)\n",
"plt.show()\n",
"sns.despine()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f836ed6d0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"final w: [ 0.17289872 -0.05879016 1.89976781 1.46830725]\n",
"final classification rate: 1.0\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f836ed150>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Now let's try to handle the donut problem..\n",
"# Create a col of ones for the bias term.\n",
"ones = np.array([[1] * N]).T\n",
"\n",
"# And create another col which is the radius of the point.\n",
"r = np.zeros((N, 1))\n",
"for i in xrange(N):\n",
" r[i] = np.sqrt(X[i,:].dot(X[i,:]))\n",
"\n",
"# Now the inputs have more dimensions (so this should be reflected when we init\n",
"# the weights).\n",
"Xi = np.concatenate((ones, r, X), axis=1)\n",
"w = np.random.rand(D + 2)\n",
"\n",
"z = Xi.dot(w)\n",
"Y = sigmoid(z)\n",
"\n",
"# Gradient descent..\n",
"learning_rate = 0.0001\n",
"regularization = 0.01\n",
"error = []\n",
"for i in xrange(5000):\n",
" e = cross_entropy(T, Y)\n",
" error.append(e)\n",
" w += learning_rate * (np.dot((T - Y).T, Xi) - regularization*w)\n",
" Y = sigmoid(Xi.dot(w))\n",
"\n",
"plt.plot(error)\n",
"plt.title('cross entropy')\n",
"plt.show()\n",
"sns.despine()\n",
"\n",
"print 'final w:', w\n",
"print 'final classification rate: %s' % (1 - np.abs(T - np.round(Y)).sum() / N)\n",
"\n",
"# This will reveal that, as constructed, the points don't much matter in the\n",
"# classification (weights for these will be near zero), whereas the radius\n",
"# will, naturally, be the determiner."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n8QAAMBihBwDAYBG7du3aFe4hhmLRokXhHiFsxvLZJc7P+cfu+cfy2SXOP9Tz2/quewAA8GDjrXsA\nAAxG6AEAMBihBwDAYIQeAACDEXoAAAz2wIe+o6NDeXl5Sk1N1S9+8Qvdvn07YE1LS4vWrFmj9PR0\nZWRk6I9//GMYJg2t2tpapaWlKTU1VWVlZfdds2/fPqWkpCgrK8u4nz440PmrqqqUmZmpzMxMvfDC\nC7p06VIYphw+wfz3l6S6ujo9+uijqqmpGcHphlcwZz9z5oyys7O1bNkyrV69eoQnHF4Dnf/GjRta\nt26dsrKylJGRocrKyjBMOTwKCwv11FNPKSMjo881Jj/vDXT+IT/vWQ+4AwcOWGVlZZZlWVZpaan1\n6quvBqxpbW21Lly4YFmWZf373/+2UlJSrC+++GJE5wylrq4ua8mSJVZjY6N19+5dKzMzM+A8H374\nobV+/XrLsizr3Llz1vPPPx+OUYdFMOf/9NNPrVu3blmWZVmnTp0ac+f/bt2aNWusDRs2WO+//34Y\nJg29YM5+69Yt69lnn7VaWlosy7Ks69evh2PUYRHM+YuLi63f/va3lmV9e/aFCxda9+7dC8e4IffP\nf/7TunDhgrVs2bL73m7y855lDXz+oT7vPfCv6H0+n5YvXy5JWr58uU6ePBmwZvr06Zo7d64kKTo6\nWm63W62trSM6ZyjV1dUpMTFR8fHxioqKUnp6esBvbfL5fMrOzpYkzZs3T7dv31ZbW1s4xg25YM4/\nf/58TZw4sefPfr8/HKMOi2DOL0nHjx9Xampqn78eejQK5uxVVVVKSUmRy+WSpDF3/tjYWHV2dkqS\nOjs7NWXKFEVG2vq1JQ+MBQsWaNKkSX3ebvLznjTw+Yf6vPfAh769vV2xsbGSvg16e3t7v+sbGxtV\nX1+vxx57bCTGGxZ+v19xcXE9l10uV8AXLq2trZoxY0avNabELpjz/7e33npryL8N8UEUzPn9fr9O\nnjypF198caTHG1bBnP3q1avq6OjQ6tWr9dxzz+nEiRMjPeawCeb8K1eu1Oeff67FixcrKytLhYWF\nIz1m2Jj8vDdYg3neeyC+DFy7du19vyrbtGlTwHUOh6PPx+ns7FRBQYEKCwsVHR0d0hnxYDp9+rQq\nKyv15ptvhnuUEfXKK69o69atPZetMfQDLru6unThwgW98cYb+uqrr7Rq1So9/vjjY+ZXV5eWluqR\nRx7R8ePH1dDQoLVr1+rdd9/lOW8MGezz3gMR+tdff73P26ZNm6a2tjbFxsbqyy+/7PNtum+++UYF\nBQXKysrSkiVLhmvUEeFyudTc3Nxz2e/3y+l09lrjdDrV0tLSc7mlpaXnrczRLpjzS1J9fb127Nih\nI0eOaPLkySM54rAK5vznz5/X5s2bZVmWbty4odraWkVGRsrj8Yz0uCEVzNldLpemTp2q8ePHa/z4\n8VqwYIHq6+uNCH0w5//kk0+0ceNGSdKsWbOUkJCgK1euKCkpaURnDQeTn/eCNZTnvQf+rfsf//jH\nPd9V+pe//KXPJ7LCwkLNnj1bP/vZz0ZyvGGRlJSkhoYGNTU16e7du6qurg44t8fj6XnL8ty5c5o0\naVLPRxyjXTDnb25uVkFBgQ4cOKBZs2aFadLhEcz5fT6ffD6fPvjgA6WlpWnnzp2jPvJS8P/vnz17\nVl1dXfr6669VV1cnt9sdpolDK5jzu91uffTRR5KktrY2Xb16VTNnzgzHuMOiv3enTH7e+05/5x/q\n894D8Yq+P+vXr9emTZv0zjvvKD4+Xq+99pqkbz+rKSoqUmlpqc6ePauqqio9/PDDys7OlsPh0ObN\nm0ft57YREREqKipSXl6eLMtSTk6O3G63Kioq5HA4lJubq6efflqnTp3S0qVLNWHCBO3fvz/cY4dM\nMOc/fPiwOjo6tHv3blmWpcjISL399tvhHj0kgjm/qYI5u9vt1uLFi5WZmalx48Zp5cqVmj17drhH\nD4lgzr9hwwYVFhYqMzNTlmVp69atmjJlSrhHD4ktW7bozJkzunnzpp555hl5vV7du3dvTDzvSQOf\nf6jPe/z2OgAADPbAv3UPAACGjtADAGAwQg8AgMEIPQAABiP0AAAYjNADAGAwQg8AgMEIPQAABvs/\n25x+KIO2OygAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f71183fd0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f6da34e10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\"\"\"The XOR problem -- data that is also inseparable by a line.\n",
"\"\"\"\n",
"\n",
"N = 4\n",
"D = 2\n",
"\n",
"X = np.array([\n",
" [0, 0],\n",
" [0, 1],\n",
" [1, 0],\n",
" [1, 1],\n",
"])\n",
"T = np.array([0, 1, 1, 0])\n",
"\n",
"ones = np.array([[1] * N]).T\n",
"\n",
"plt.scatter(X[:,0], X[:,1], c=T)\n",
"plt.show()\n",
"sns.despine()"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfkAAAFnCAYAAACl2jDXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl0FNedL/Bv9b5oX7q1IoTEIgSIRWY3YJCEzSbAZkhC\nbE+cnNiJkWKbMYl54yWOJ56T2OadB/HDZDxh8uKxM/Fgj22c4LEMwmTMvggQmwCjtSW19rVb3X3f\nHxIdyUhISC1Vd+v7OUenVdWl0q+vsb51b92qkoQQAkREROR3FHIXQERERMODIU9EROSnGPJERER+\niiFPRETkpxjyREREfoohT0RE5KcY8kRERH6KIU9Ed2Xnzp3YunWr3GUQ0QAw5Im8jNPplLuEIeM9\ntoi8A0OeaIRYLBbk5ORg3rx5mDt3Ll555RUAwAcffIBvf/vbePXVVzFnzhzs3LkTQgi8+eabWLp0\nKRYsWICf/exnaG5uBgDY7XY8++yzmDNnDu655x5s2LABtbW1AIC9e/ciIyMDM2fOREZGBj755JNe\naxFCYPfu3cjMzMTcuXPx9NNPo7GxEQBQVlaGSZMm4cMPP8R9992HefPmYdeuXQCAL7/8Ert27cKn\nn36KGTNmYO3atQCAhx9+GNu3b8e3v/1tTJ8+HaWlpaiqqsKPfvQjzJkzB8uXL8ef/vQn9+/fuXMn\ncnNz8fTTT2PmzJlYv349Ll++DAB4++23kZub26PeV155Bb/85S899Z+CaPQQRDTsnE6nWLNmjfjn\nf/5n0d7eLmw2mzh58qQQQoi9e/eKyZMniz/84Q/C6XQKm80m/vSnP4msrCxRWloqWltbxebNm8XW\nrVuFEEK899574oknnhA2m024XC5x4cIF0dzcLFpbW8XMmTPF119/LYQQorq6WhQVFfVaz549e8TG\njRtFZWWlsNvt4oUXXhDPPPOMEEKI0tJSMXHiRPH8888Lm80mLl68KKZMmSKuXbsmhBBix44d4tln\nn+2xv+9+97vivvvuE0VFRcLpdIqOjg6xadMm8fLLLwu73S4uXrwo5s6dK44cOeLeR2pqqvjss8+E\nw+EQb7/9tli6dKlwOByiqqpKTJ8+XTQ1NQkhhHA4HGLevHmisLDQw/9ViPwfe/JEI6CgoADV1dV4\n9tlnodVqodFoMHPmTPf7ZrMZmzZtgkKhgEajwSeffIK///u/R2xsLPR6PZ555hns27cPLpcLKpUK\n9fX1uHHjBiRJwuTJk2E0GgEASqUSV65cgc1mQ0REBJKSknqt549//COeeuopmEwmqNVqPPnkk9i/\nfz9cLhcAQJIkbN68GRqNBpMmTcKkSZNw6dKlO37GdevWISkpCQqFAlarFadPn8Y//MM/QK1WY9Kk\nSdiwYQM+/PBD9/ZTpkxBZmYmlEolvve978Fms+HMmTOIjIxEeno6/vznPwMADh06hLCwMKSkpAzp\nvwHRaMSQJxoBFRUViImJgULR+/9yUVFRPZarqqoQExPjXo6NjYXD4YDVakV2djYWLlyIZ555BosW\nLcJrr70Gp9MJvV6P7du3491338XChQvxxBNP4Pr1673+vvLycmzevBmzZ8/G7NmzsXLlSqhUKlit\nVvc2ERER7u91Oh1aW1vv+Bm7f4aqqioEBwdDr9e718XExKCqqqrX7SVJQlRUlPv9tWvX4qOPPgIA\nfPzxx1izZs0dfzcR9Y4hTzQCoqOjUVFR4e4pf5MkST2WTSYTysvL3ctlZWVQqVSIiIiASqXCk08+\niX379uG9997DgQMH3D3kBQsW4F//9V/x17/+FYmJiXj++ef7rOe3v/0tjh07hmPHjuH48eM4c+YM\nTCbToD9j989gMpnQ0NDQ48CgoqKix/4tFov7eyEELBaL+/2MjAxcuXIFV69exYEDBxjyRIPEkCca\nAdOmTUNkZCRee+01tLW1wW6349SpU31uv3LlSuzZswelpaVoaWnB9u3bsXLlSigUChw9ehRXrlyB\ny+WCwWCASqWCQqFATU0N8vLy0NbWBpVKBYPB0OfIwcaNG/HGG2+4DyRqa2uRl5fnfl/cYXZ8REQE\nysrK7rhNVFQUZsyYgTfeeAN2ux2XLl3C+++/j+zsbPc258+fx+effw6n04k9e/ZAq9Vi+vTpAACt\nVovMzExs2bIFaWlpt410ENHAeF3I79ixQ+4S/B7beGR0b2eFQoFdu3bh5s2bWLJkCRYvXuw+59yb\nhx56CNnZ2fjud7+LzMxM6PV6/OM//iMAwGq1Ijc3F7NmzcKqVaswZ84cZGdnw+VyYc+ePVi0aBHm\nzp2L48eP46WXXup1/48++iiWLVuGxx57DLNmzcK3vvUtFBQUuN//5shC9+X7778fQgjMmTMH69ev\n73V7AHj99ddRWlqKe++9F7m5ufjJT36CuXPnut9ftmwZPv30U9xzzz34+OOP8Zvf/AZKpdL9/tq1\na3HlyhX3DP7e8N/y8GMbj4zhamdJ3OlwHJ1Dalu3bkVNTQ0UCgU2bNiARx55pMc2x44dw49//GPE\nx8cDADIzM/HjH/94UAVNnDjRfSkNDQ+28chgO/dt586dKC4uxq9+9as+t7FYLHjggQdw+PBh98TC\nb2IbDz+28cgYrnZW9beBUqnEc889h5SUFLS0tGD9+vVYsGDBbbN209PT3dfSEhENhcvlwttvv40V\nK1b0GfBE1L9+Qz4yMhKRkZEAAKPRiKSkJFRVVfV5aQ4R0VC0tbVh/vz5iIuLw7/8y7/IXQ6RT+s3\n5LsrLS3FpUuXMG3atNveO336NLKzs2E2m7F161YkJyd7rEgi8i+bN2/u8z29Xo/Tp0+PYDVE/mvA\nId/S0oLc3Fxs27bttuGz1NRUHDx4EHq9Hvn5+e4ba9yt9vZ2AMDNmzd7TMAhzystLZW7hFGB7Tz8\n2MbDj208vG49r6K9vR06nc6j++534h0AOBwOPP7441i0aBEeffTRfne6dOlS7N27FyEhIX1us2PH\nDuzcufPuqiUiIhpFNm/ejJycnEH//IBCfuvWrQgNDcVzzz3X6/tWq9V9d6yCggI89dRT+OKLL+66\nmJs3byIrKwvvvPMOr4slIqJRwWKxYNOmTfjss8+QkJDg0X33O1x/8uRJfPzxx5gwYQLWrl0LSZLw\n9NNPo7y8HJIkYePGjdi/fz/effddqFQq6HQ6bN++fVDF3Bqij4qKQlxc3KD2QURE5IuG4zR1vyE/\na9YsXLx48Y7bbNq0CZs2bfJYUURERDR0XnfHOyIiIvIMhjwREZGfYsgTERH5KYY8ERGRn2LIExER\n+SmGPBERkZ9iyBMREfkphjwREZGfYsgTERH5KYY8ERGRn2LIExER+SmGPBERkZ9iyBMREfkphjwR\nEZGfYsgTERH5KYY8ERGRn/LKkBdCyF0CERGRz/PKkK+3t8ldAhERkc/zypBv7rDJXQIREZHP88qQ\nb+xol7sEIiIin+eVIc+ePBER0dB5Zcg3sSdPREQ0ZAx5IiIiP+WVIc/heiIioqHzypBvsrMnT0RE\nNFTeGfLsyRMREQ2Zd4a8ox0u3vWOiIhoSLwy5F0CaHWwN09ERDQUXhnyANDA8/JERERD4sUhz/vX\nExERDYXXhnydrVXuEoiIiHya14Z8LUOeiIhoSLw25NmTJyIiGhovDvkWuUsgIiLyaV4Z8nqlmj15\nIiKiIfLKkA/R6lFrb4XgDXGIiIgGzStDPlijg83pQJuzQ+5SiIiIfJZ3hrxaD4CT74iIiIbCO0Ne\nYwAA1HLyHRER0aB5acjrALAnT0RENBReGvKdw/W8IQ4REdHgeWXIh3QN1/NaeSIiosHzzpDX6iFB\ngrWdIU9ERDRYXhnyCklCmNYAa3uz3KUQERH5LK8MeQCI0AWg3t4Gu9MhdylEREQ+yWtDPlIfAACo\n4Xl5IiKiQfHakI/QdYY8h+yJiIgGx+tDvrqNIU9ERDQYXhvykezJExERDYnXhjyH64mIiIbGa0Pe\nqNJAp1SjmiFPREQ0KF4b8pIkIUJnhLW9mc+VJyIiGgSvDXmgc8je7nKisaNd7lKIiIh8jleHvEkf\nCACoamuSuRIiIiLf49Uhb9YHAQAq2xplroSIiMj3eHXIR3X15C2t7MkTERHdLa8OefbkiYiIBs+r\nQz5ArYVBpWHIExERDYJXh7wkSYjSB6G6vRlOl0vucoiIiHyKV4c8AJgNQXAJwZviEBER3SWvD/lb\nk+84ZE9ERHR3vD7kb02+szDkiYiI7orPhHwlL6MjIiK6K14f8pH6AEiQOFxPRER0l7w+5NUKJSJ1\nRlS0NvJBNURERHfB60MeAKKNIWhx2NDEB9UQERENmE+EfKwhGABQ1tIgcyVERES+wydCPsYYAgAo\na62XuRIiIiLf0W/IWywWPPLII1i5ciVWr16N3//+971u98orryArKwvZ2dm4ePGiR4u81ZMvZ0+e\niIhowFT9baBUKvHcc88hJSUFLS0tWL9+PRYsWICkpCT3Nvn5+SguLsZnn32Gs2fP4sUXX8R//Md/\neKxIkz4QSkmBcvbkiYiIBqzfnnxkZCRSUlIAAEajEUlJSaiqquqxTV5eHtauXQsASEtLQ1NTE6xW\nq8eKVCmUMOsDUd7aABdn2BMREQ3IXZ2TLy0txaVLlzBt2rQe66uqqhAVFeVeNpvNqKys9EyFXWKN\nIbA5Hai1tXh0v0RERP5qwCHf0tKC3NxcbNu2DUajcThr6lWMoWvyXQuH7ImIiAai33PyAOBwOJCb\nm4vs7GxkZGTc9r7JZILFYnEvWywWmM3mO+5zx44d2Llz54ALjTV2Tb5rbUBaeNyAf46IiMgXLFu2\n7LZ1mzdvRk5OzqD3OaCQ37ZtG5KTk/Hoo4/2Wdg777yDFStW4MyZMwgKCkJERMQd95mTk3Nb4aWl\npb1+SOBvPfly9uSJiMgP5eXlIS7Os53YfkP+5MmT+PjjjzFhwgSsXbsWkiTh6aefRnl5OSRJwsaN\nG7F48WLk5+cjMzMTer0er776qkeLBIBwnRFapQolDHkiIqIB6TfkZ82aNaDr3l944QWPFNQXhSQh\n3hiKa41W2J0OaJQDGoQgIiIatXzijne3jAkIhYBAKXvzRERE/fKxkA8DABQ318pcCRERkffzyZAv\naamTuRIiIiLv51MhH2UIglqhZE+eiIhoAHwq5JWSArHGEJS1NMDhcspdDhERkVfzqZAHgDHGUDiF\nC+WtfCIdERHRnfheyLsn3/G8PBER0Z34cMjzvDwREdGd+FzIxxiDoZQUDHkiIqJ++FzIqxVKxBlD\nUNJchw5OviMiIuqTz4U8ACQGRsAhXCjleXkiIqI++WTIjwsKBwBcb7LKXAkREZH38s2QD+x8jO2N\nphqZKyEiIvJePhnyEboABKi0uN7InjwREVFffDLkJUlCYlA4amwtaLC3yV0OERGRV/LJkAc4ZE9E\nRNQfnw35xFshzyF7IiKiXvlsyI8NDIMEzrAnIiLqi8+GvF6lQawxBDeaanhTHCIiol74bMgDQHKQ\nCR0uJ2428Ra3RERE3+TTIT8h2AQAuNJQJXMlRERE3senQ358cCQA4GojQ56IiOibfDrkgzR6ROmD\ncK2xGk7hkrscIiIir+LTIQ90DtnbnA4+epaIiOgbfD7kx3edl7/aUC1zJURERN7Fb0L+SkOlzJUQ\nERF5F58P+VCtARG6ABQ1VMPF8/JERERuPh/yAJASEoU2ZwevlyciIurGb0IeAArrK2SuhIiIyHv4\nRchPCjFDgoTCOovcpRAREXkNvwh5o1qLsYFhuN5oRZujQ+5yiIiIvIJfhDwATA6JhgsClznLnoiI\nCIA/hXxo13n5Op6XJyIiAvwo5BMDI6BTqnCRIU9ERATAj0JeqVBgYrAZVe3NqG5rlrscIiIi2flN\nyAPAlLBYAMC52jKZKyEiIpKfX4X8tLAYAMDZ2lKZKyEiIpKfX4V8iNaAhIAwXGmoQpvDLnc5RERE\nsvKrkAeAaWGxcAmB85yAR0REo5zfhXxaeBwAoKCG5+WJiGh087uQjzOGIFRrwPm6cjj5VDoiIhrF\n/C7kJUnCtLBYtDrsuNZQLXc5REREsvG7kAeA6V1D9qdrSmSuhIiISD5+GfITg80wqjQ4aS2BSwi5\nyyEiIpKFX4a8UqHA9PB4NNjbcK2RQ/ZERDQ6+WXIA0B65BgAwInqYpkrISIikoffhnznkL0Wp2tK\n4OIseyIiGoX8NuSVCgVmRMShwd6Gokar3OUQERGNOL8NeQCYFXFryP6mzJUQERGNPL8O+YkhZgSq\ntThlLYbTxSF7IiIaXfw65JWSAvdEJqCpw4bzdeVyl0NERDSi/DrkAWCeeRwA4KvKGzJXQkRENLL8\nPuTjjaGIMQSjoLYMLR02ucshIiIaMX4f8pIkYZ55HJzCheOcgEdERKOI34c8AMwxjYUECV9Vccie\niIhGj1ER8sEaPVJDo/B1Uw0qWhvkLoeIiGhEjIqQB4D55iQAwJeWIpkrISIiGhmjJuTTwmMRpNbh\nq8obsDsdcpdDREQ07EZNyKsUSiyISkKrw46TVj60hoiI/N+oCXkAWBiVBAlAfsVVuUshIiIadqMq\n5CN0AUgNjcGNphqUNNfJXQ4REdGwGlUhDwCLopMBAIfYmyciIj836kJ+algMwrQGHKm6gZYOu9zl\nEBERDZtRF/IKSYH7YibC7nLycjoiIvJroy7kgc4JeFqlCgfKL8PhcspdDhER0bAYlSFvUGmwwJyE\nensbL6cjIiK/NSpDHgCWxkyEBAmfl12CEELucoiIiDxu1IZ8pD4AM8LjUNxch6sNVXKXQ0RE5HH9\nhvy2bdswf/58rF69utf3jx07hvT0dKxbtw7r1q3Dm2++6fEih0tG3CQAwP7SizJXQkRE5Hmq/jZY\nv349Hn74YWzdurXPbdLT07Fr1y6PFjYSkoIikRwUifN15ShursWYgDC5SyIiIvKYfnvy6enpCAoK\nGolaZLFyzBQAwKfFF2SuhIiIyLM8ck7+9OnTyM7Oxg9/+EMUFfnWtecpIVEYGxiO0zUlKGupl7sc\nIiIij+l3uL4/qampOHjwIPR6PfLz8/Hkk09i//79/f7cjh07sHPnzqH++iGTJAkr46fgN4X5+HPJ\nBfxg0gK5SyIiolFo2bJlt63bvHkzcnJyBr3PIYe80Wh0f7948WL8/Oc/R319PUJCQu74czk5ObcV\nXlpa2uuHHG5Tw2IQbwzFiepirB4zFWaD/56eICIi75SXl4e4uDiP7nNAw/V3uo7carW6vy8oKACA\nfgPe20iShBVjUiEg8EnxebnLISIi8oh+e/JbtmzB0aNHUV9fjyVLliAnJwcdHR2QJAkbN27E/v37\n8e6770KlUkGn02H79u0jUbfHTQ+PR7wxFMerv8b98ZMRa/StAxUiIqJv6jfkX3/99Tu+v2nTJmza\ntMljBclFIUnIHjsNOy/k48Ovz+LJ1MVyl0RERDQko/aOd72ZEhqD5KBIFNSW4VpjtdzlEBERDQlD\nvhtJkrBu7HQAwAc3zvKe9kRE5NMY8t+QHByJqWExuNpYhQt1FXKXQ0RENGgM+V5kJ6RBAvCfN07D\nKVxyl0NERDQoDPlexAeEYr55HMpbG3DYck3ucoiIiAaFId+H7LFp0CpV+OjrArQ67HKXQ0REdNcY\n8n0I1uixIj4VzQ4bPuUNcoiIyAcx5O9gWewkROiM+KL8CirbGuUuh4iI6K4w5O9ArVDiwcQZcAoX\n3r9+Wu5yiIiI7gpDvh8zwuMxIdiEgtoynK0plbscIiKiAWPI90OSJHwn+R4oJQXevXYC7c4OuUsi\nIiIaEIb8AEQbgpEVl4I6Wyv2cRIeERH5CIb8AK2IT0WEzojPSy+hrKVe7nKIiIj6xZAfII1ShW8l\npcMFgXeKjsHF+9oTEZGXY8jfhalhsZgZEY9rjVZ8WVEkdzlERER3xJC/SxvHzYJBpcZ/fn0a1vZm\nucshIiLqE0P+LoVoDfi7cbNgczrwh6vH+DhaIiLyWgz5QZhrSsTUsBhcrLfwATZEROS1GPKDIEkS\nNiXPhl6pxvs3TqG2vUXukoiIiG7DkB+kUK0Bf5c0C+1OB35/9SiH7YmIyOsw5IdgnikRU0I7h+0P\nlF+RuxwiIqIeGPJDIEkSHpkwB4FqLf7zxmneJIeIiLwKQ36IgjV6PDJ+LhzChX+59FfYnQ65SyIi\nIgLAkPeIaeGxWBI9HuWtDdj79Rm5yyEiIgLAkPeYBxNnINoQjAPlV3CutkzucoiIiBjynqJRqvCD\nSfOhkhTYc/kI6mytcpdERESjHEPeg+KMoXho3Ew0O2z47aXDcLpccpdERESjGEPew5ZEj8c9kQm4\n1mjl+XkiIpIVQ97DJEnCd5NnI0ofhM/LLuGUtVjukoiIaJRiyA8DnUqNx1MWQqNQ4t+uHEFlW6Pc\nJRER0SjEkB8mMcYQfHf8bLQ7HXir8DDanR1yl0RERKMMQ34YzTElYnH0eJS11uPfLh+Bi/e3JyKi\nEcSQH2Z/N24mJgSbcKqmBPuKz8tdDhERjSIM+WGmUijxw0kLEa414pPic5yIR0REI4YhPwICNTr8\nOHURtAoVfnf5K5Q018ldEhERjQIM+RESZwzF9ybOg93lxJuF+Wi0t8ldEhER+TmG/AiaERGPNQnT\nUGtrxc4L+bDxiXVERDSMGPIjbEV8KuaZx+Fmc23nrW8Fb31LRETDgyE/wiRJwsPJs5ESEoVzteX4\n47WTELy0joiIhgFDXgZKhQKPp9yLOGMI8iuuYn/pRblLIiIiP8SQl4lepcbm1CUI1RjwwddncLTq\nhtwlERGRn2HIyyhUa0DOlCXQK9XYc+UICmrK5C6JiIj8CENeZrHGEGxOXQKlpMDuS4dxub5S7pKI\niMhPMOS9QHJwJH40+V64hMBvCvPxdVON3CUREZEfYMh7idTQGHx/4nzYnU78n/MHUN5SL3dJRETk\n4xjyXmRW5Bg8PH42Whx2/O/zB/gceiIiGhKGvJdZEJWEDeNmosHehjcK8hj0REQ0aAx5L5QROwkP\nJc5APYOeiIiGgCHvpTLjUnoGfSuDnoiI7g5D3otlxqVgw7iZnUF/jkFPRER3hyHv5TJiJ7mD/rWC\nz1HGWfdERDRADHkfkBE7CRvHzUJjRzteK/gcNxqtcpdEREQ+gCHvI5bGTsTfT5iLdkcHtp/7Ahfr\nLHKXREREXo4h70Pmmcfh8ZSFcAoXdl44iNPWErlLIiIiL8aQ9zHTI+Ld97p/6+Jh/E/ldblLIiIi\nL8WQ90EpoVF4etpSGFRq/NuVI9hXfA5CCLnLIiIiL8OQ91GJgRF4Ni0T4VojPrp5Dr+/ehROl0vu\nsoiIyIsw5H1YtCEYP52ehTEBYfifyuvYceEg2hwdcpdFRERegiHv44I1evzDtAxMDYvBxXoLXiv4\nb9TZWuUui4iIvABD3g9olSr8aPIiLI4ej9KWevzzmf240cRr6YmIRjuGvJ9QSgp8OykdDyXOQIO9\nHa+d/RxHqm7IXRYREcmIIe9HJElCZlwKNqcuhlqhxO8uf4X3r5+GS3BCHhHRaMSQ90NTwmLws+nL\nYdYH4r/LLmLnhXy0Ouxyl0VERCOMIe+nogxB+Nn05UgNjcaFugq8emY/H25DRDTKMOT9mEGlwebU\nxciKS0FVWxNePbMfX/EOeUREowZD3s8pJAUeTJyBJ1LuhVJSYM+VI/h/V4+iw+WUuzQiIhpmKrkL\noJExIyIeccYQvHXxMA5bruFmUy0eT1mISH2g3KUREdEw6bcnv23bNsyfPx+rV6/uc5tXXnkFWVlZ\nyM7OxsWLFz1aIHlOpD4QW9MysTAqCSUtdXjl9F9wsrpY7rKIiGiY9Bvy69evx9tvv93n+/n5+Sgu\nLsZnn32Gl19+GS+++KJHCyTP0ihVeHj8HHxvwjy4hAu7Lx3Gv105gnYnb4dLRORv+g359PR0BAUF\n9fl+Xl4e1q5dCwBIS0tDU1MTrFbebc3bzTUn4n/NeABjAkLxP5XX8U+n/sy75BER+ZkhT7yrqqpC\nVFSUe9lsNqOysnKou6UREGUIwk/TspAVl4Lq9mb86ux/49PiC7x5DhGRn+Ds+lFOpVDiwcQZeGrq\nUgSpdfivm2fxekEeqtua5S6NiIiGaMiz600mEywWi3vZYrHAbDb3+3M7duzAzp07h/rryUMmhUTh\n+Zkr8M7VYzhVU4KXT+3D+sTpWBw9AQpJkrs8IiK/t2zZstvWbd68GTk5OYPe54BCXghxx6Leeecd\nrFixAmfOnEFQUBAiIiL63WdOTs5thZeWlvb6IWlkBKi1+GHKQhyvvon3rp3Ae9dO4pS1BI+Mn8NL\n7YiIhlleXh7i4uI8us9+Q37Lli04evQo6uvrsWTJEuTk5KCjowOSJGHjxo1YvHgx8vPzkZmZCb1e\nj1dffdWjBdLIkiQJs01jMTHEjH8vOo4zNaV4+dSnWDd2OpbEsFdPRORL+g35119/vd+dvPDCCx4p\nhrxHsEaPJ1Ludffq/3j9JE5ai7EpeTZijMFyl0dERAPAiXfUp1u9+pdmrcSM8HgUNVbjldN/xodf\nn4Xd6ZC7PCIi6gdDnvoVpNHjicn34seTFyFYo8OfSy7g56f24XxtudylERHRHTDkacDSwuPw4qyV\nyIxNQW17K3ZcOIjdFw+jwd4md2lERNQLPqCG7opOqcZD42Zgjmks3ik6hpPWYlyoK8eK+ClYGjsR\naoVS7hKJiKgLe/I0KPEBodialoVNyfdAKSmx9+sz+PnJfThbU3rHSy6JiGjksCdPg6aQJCyKHo9Z\nEQn4pPgcDpZfwZuFhzA5JAobxs3iLHwiIpmxJ09DZlRrsDFpFp6fuQKTQ6JQWG/BL059iveunUCT\nvV3u8oiIRi325MljYozByJ1yH87VluNP10/iQPkVfFV5HVlxk5EROwlaJf+5ERGNJP7VJY+SJAnT\nwmMxOTQKhyqKsK/4PD66WYCD5VewKmEqFpqToFRwAImIaCTwry0NC5VCiaWxE/HKPWuwcswU2JwO\n/HvRcbx0ah9OVhdzch4R0QhgT56GlV6lxpqEaVgSPR77is/jkKUIuy8dRrwxFKsSpiItLBYS74dP\nRDQsGPKM0BzfAAAUeElEQVQ0IoI0enw7+R4si52Ej28W4Hj1TfzfwkMMeyKiYcSQpxFl0gfi+5MW\nYMWYKfi0+HyPsF+dMBXTGPZERB7DkCdZRBuCbwv7N7vC/v74yZgZEQ+FxCkjRERDwZAnWXUP+33F\n53Giuhi/vfRXROoCkBmXgnmmRGh46R0R0aCwq0ReIdoQjB9MWoCX01dhUVQy6myt+Pei49h2/CN8\nWnweLR12uUskIvI57CKRVzHpA7Fp/GysSpiKL8ovI7/8Kv7rZgH+UlqIe6OScV/MBEToAuQuk4jI\nJzDkySsFa/RYN3Y67o9LxZeWIuSVXcLnZZeQV3YZaeGxWBozEROCTZykR0R0Bwx58mp6lRpZcSm4\nL2YCTlqL8UXZZZypKcWZmlLEGkKwNHYCZkeO5Xl7IqJe8C8j+QS1Qom5pkTMiRyL601WHCi/gpPW\nYvy/q8ew98YZLIxKxqLoZA7lExF1w5AnnyJJEpKCIpEUFIkHbTOQX3EVX1YUYX9pIT4rLURKaDTu\njUpGWlgs75FPRKMeQ558VqjWgLVj07ByzBScqL6JLy3XUFhXgcK6CgSpdZgfNQ4LzcmI1LN3T0Sj\nE0OefJ5aocQ88zjMM49DeUs9vrRcw5GqG/hLSSH+UlKIlJAo3BuVjGnhsVArlHKXS0Q0Yhjy5Fdi\njCHYmDQL68am4VRNCb6sKMLFegsu1ltgUKmRHpGAueZEjAuM4Mx8IvJ7DHnySxqlCnNNiZhrSkRF\nawP+p/I6jlV9jUOWIhyyFMGkC8BccyLmmBI5WY+I/BZDnvxetCEYDybOwLqxabhUX4mvKm/gdE0J\nPrp5Dh/dPIfxQSbMNY/FjPB4GNVaucslIvIYhjyNGgpJgcmh0ZgcGo12RwdO1ZTgSOUNXG6oxNXG\nKrxTdByTQ6KQHpmA6eFx0Ks0cpdMRDQkDHkalXQqNeabx2G+eRxq2ltwovomTlhv4nxdBc7XVUAl\nKZAaGo30yARMC4uFTqWWu2QiorvGkKdRL1xnxPL4yVgePxmVbY04WV2ME9XFOFtbhrO1ZVArlJga\nGoPpEXGYGhYLA3v4ROQjGPJE3Zj1QVgxZgpWjJmCitaGzh5+dTFO1ZTgVE0JFJKEicFmTA+PQ1p4\nHEK1BrlLJiLqE0OeqA/RhmCsTpiGVWOmoqK1wX3P/FuX5L177QTGBoQhLTwe08PjEG0I4mV5RORV\nGPJE/ZAkCTHGEMQYQ7BizBTU2lpwtqYMZ2tKcbmhEl831+K/bp5FpC4AU8JiMCU0BhOCTXxoDhHJ\njn+FiO5SmNaI+2Im4L6YCWjpsON8XRnOWEtRWF+BA+VXcKD8CtQKJSYGm9yhH6kPlLtsIhqFGPJE\nQ2BUazDH1HlTHYfLiWuNVpyvK8f52nL3TH3gJMz6QKSGxmBKWDTGB7GXT0Qjg39piDxEpVBiYogZ\nE0PMeDBxBmrbW7qCvhyX6iz4ovwyvii/DJWkwLigCEwKMWNSSBTGBoTziXlENCwY8kTDJExnxKLo\nzufcd7icKGqoRmF9BS7VW3C1oQpXGqrw0c1z0ClVGB9swqSQKKSERCHGEMwJfETkEQx5ohGgViiR\nEhqFlNAoAEBzhw1XGipxqb4SF+stOFdbjnO15QCAQLUOE4NNSA42YUKwCdGGYCgY+kQ0CAx5IhkE\nqLWYGTEGMyPGAABqbS2dgV9nwaV6C05Yi3HCWgwAMKg0SA6KRHJwJCYEmTAmIIzD+0Q0IAx5Ii8Q\npjW6b7MrhEBVexOuNlSjqKEKVxurUFBbhoLaMgCARqHEuKAIJAeZkBwUicTAcN52l4h6xZAn8jKS\nJMGsD4JZH4SFUUkAgDpbK642VKGosRpXG6pwqb5zqB8AJAAxhhAkBoVjXGAEEgMjEGUI4hA/ETHk\niXxBqNaA2aaxmG0aC6DznH5RYzWuNVbjRmMNvm6uQVlrPQ5brgEAdEo1EgO7Qj8oHImBEQjgY3SJ\nRh2GPJEPClBrMT08DtPD4wAATuFCeUsDrjdZcaPRiutNNe7b794SoQtAQkAYxgSEdb2GwsjgJ/Jr\nDHkiP6CUFIgPCEV8QCgWR48HALR02HCjqQY3mjpD/2ZTLU5ai3Gya0IfAIRrjZ2BHxjmPgBgj5/I\nfzDkifyUUa3tvK1uWAwAQAiBWlsrbjbXori5tvO1qdb9hL1bwrVGxAeEIs4Yglhj52uELoDn+Il8\nEEOeaJSQJAnhOiPCdUbMjIgH0Bn8dbbWv4V+cy1uNte5n7h3i1ahQowxGHHGUMQaQ7oOAEJgUGnk\n+jhENAAMeaJRTJIkhOmMCNMZMb1b8DfY21DWWo/SlnqUNtejrKUeN5trcaOppsfPh2kNiDWGINYQ\ngmhjMKL1wYgyBEHLe/MTeQX+n0hEPUiShBCtASFaA1JDY9zrHS4nLG2NKG3pDP1br93v1ndLuNaI\naEMQogzBiDYEd36vD4ZRzZ4/0UhiyBPRgKgUSsQZQxFnDO2xvsnejvLWBlS4vxpR0drQ7Sl8fxOk\n1v0t9A3BMOsDYdIHIkxrgELiXfyIPI0hT0RDEqjRYaJGh4kh5h7rWzrssLT9LfQtXQcAlxsqcbmh\nsse2KkmBSF0ATF2hb9IHwqwPgkkfiGCNnpP+iAaJIU9Ew8Ko1iBJHYmkoMge621OByytjbC0NaCq\nrcn9VdnWhIq2xtv2o1YoYdIFunv9kfoAhGsDEKkPQKjWACVHAIj6xJAnohGlVaqQEBiGhMCwHuuF\nEGjusKGq/W+h3/0goKy1/rZ9KSAhVGtAhC6g68vY4/tAtY6P7aVRjSFPRF5BkiQEanQI1Ohu6/0L\nIdDY0Y7K1kZUtzejpr0FVlszrO3NsLa39HoKAOh8mE+ELgDhXeEfpjUiTGtAmNaIUK0BwRod5wKQ\nX2PIE5HXkyQJwRo9gjV6TID5tvftTgdqbS2wtrd0HQR0hn/nQUAzylsbet2vQpIQqjEgVGtwh/+t\nA4AwnQGhGiMMKjVHA8hnMeSJyOdplCpEGYIRZQju9f2WDjtqbM2otbWitr0Fdfbur6241mhFEUSv\nP6tVqhDWdSAQrDUgRKN3fwVr9QjRGBCk1kGp4IgAeR+GPBH5PaNaA6O68978vXEKFxpsbai1tXQe\nCNhaUWtrQV23194mBd4iAQhU6xCs0SNE2zniEKLpOiBwL+sRoNbxSgEaUQx5Ihr1lJLCfee/vtid\nDtTb21Bvb0ODrbXz9dZy12tlWyNKWur63IcECYFqLYI0OgSqdQjS6BCk7pyHEORe1iNIo0OAWssr\nB2jIGPJERAOgUarc1/D3RQiBdmdH58GArftBQGvnckc7muxtsLY3o7Tl9qsFupMAGFW3HxDcWg5Q\nazu/VFoEqHXQq9QcJaDbMOSJiDxEkiToVRroVRpE9zE/4Ba704HGjnY02dvR2NGOxm6vTd2W6+2t\nfU4c7E4BCcYewf+Nr2+uU2mhVao4qdDPMeSJiGSgUaoQoey8pr8/HS6nO/hvvbY47GjusHV+OWzu\n7xvt7bC0NvQxjbAnlaRAgFoLg0oDg0oDo0oDg1oLg0rd+b1K2/Xa7X2VBga1hqcSfARDnojIy6kV\nSvflfQPhEi60dj8I+MaBQPflpg4b6u2tqBjggcEtOqXKHf6dBwDdDhbUGhiUGuhVauhVauiUna/6\nrnU6pYr3JxghDHkiIj+jkBQIUOsQoNYN+GdcwoU2hwOtDhtaHHa0dn11/77VYUdLR/f3bLC2N6Pd\n6bjrGrVKFfRKdefpDWXvBwN693LXdl3f65Rq6FRqqCQFTzf0gyFPRERQSIquSw01iOx/8x6cwoW2\nbgcAtw4M2p0daHN0oM3ZgbbbljvQ5rSj0d6OSmcjXOJuxhG6aoYEnUoFraJzdECrVEGrvPX9N19V\n0CnVfbx2bqdVqvxu8iJDnoiIhkQ5iJGD7oQQ6HA5e4R/m+NvBwTtXQcJ7mVHB9pdDticHWh3OGBz\ndaCpwwarrQUdLueQPotGoXSHv1apgkZx61UJjXtZCY1CBY37VQVtH8vd16sVyhEfeWDIExGRrCRJ\n6gxQpQrBGv2Q9uV0uWBzOdDu7IDN2f2166DA6fjG+t6269y2ucMGu8sJp3B55nMCvRwcKOGsa/LI\n/nvDkCciIr+hVChgUHROAPSUWwcOdqej69UJe9frrfXfXLa5HOhwL/e+XaO9DXaXE21Nfd9AaagY\n8kRERHcwHAcO3ZWUlCAD24dl37yGgYiISEbDeZ6eIU9EROSnBhTyhw4dwv3334/ly5dj9+7dt71/\n7NgxpKenY926dVi3bh3efPNNjxdKREREd6ffc/Iulwu/+MUvsGfPHphMJjz00ENYtmwZkpKSemyX\nnp6OXbt2DVuhREREdHf67ckXFBQgISEBsbGxUKvVWLlyJfLy8kaiNiIiIhqCfkO+srIS0dHR7mWz\n2Yyqqqrbtjt9+jSys7Pxwx/+EEVFRZ6tkoiIiO6aRy6hS01NxcGDB6HX65Gfn48nn3wS+/fvv+v9\nOJ2ddyqyWCyeKIuIiMjr3cq8WxnoSf2GvNlsRnl5uXu5srISJpOpxzZG49+ejLR48WL8/Oc/R319\nPUJCQvrc744dO7Bz585e39u0aVO/hRMREfmTrKys29Zt3rwZOTk5g95nvyE/depUFBcXo6ysDJGR\nkdi3bx/eeOONHttYrVZEREQA6DyHD+COAQ8AOTk5txXe3t6OtLQ0fPbZZ1AqlXf1QWjgli1bxnkV\nI4DtPPzYxsOPbTz8nE4nsrKycPbsWeh0g7v/f1/6DXmlUonnn38ejz32GIQQeOihh5CUlIT33nsP\nkiRh48aN2L9/P959912oVCrodDps3z64O/fc+nAJCQmD+nkauLi4OLlLGBXYzsOPbTz82MYjw9MB\nDwzwnPyiRYuwaNGiHuu+9a1vub/ftGkTh9iJiIi8DO94R0RE5KcY8kRERH5K+dJLL70kdxHfNGfO\nHLlL8Hts45HBdh5+bOPhxzYeGcPRzpIQQnh8r0RERCQ7DtcTERH5KYY8ERGRn2LIExER+SmGPBER\nkZ9iyBMREfkprwr5Q4cO4f7778fy5cuxe/duucvxGRaLBY888ghWrlyJ1atX4/e//z0AoKGhAY89\n9hiWL1+O73//+2hqanL/zFtvvYWsrCw88MADOHz4sHv9hQsXsHr1aixfvhz/9E//NOKfxdu5XC6s\nW7cOTzzxBAC28XBoampCbm4uHnjgAaxcuRJnz55lO3vYW2+95f57sWXLFtjtdraxB2zbtg3z58/H\n6tWr3es82a52ux1PP/00srKysHHjxh4Pj+uT8BJOp1NkZGSI0tJSYbfbxZo1a0RRUZHcZfmEqqoq\nUVhYKIQQorm5WWRlZYmioiLxq1/9SuzevVsIIcRbb70lfv3rXwshhLh69arIzs4WHR0doqSkRGRk\nZAiXyyWEEOKhhx4SZ8+eFUII8YMf/EAcOnRIhk/kvX73u9+JLVu2iMcff1wIIdjGw+CnP/2peP/9\n94UQQnR0dIjGxka2sweVlpaKpUuXCpvNJoQQ4ic/+YnYu3cv29gDjh8/LgoLC8WqVavc6zzZru+8\n84548cUXhRBC7Nu3Tzz11FP91uQ1PfmCggIkJCQgNjYWarUaK1eu5JOPBigyMhIpKSkAOh/7m5SU\nhMrKSuTl5WHdunUAgHXr1uHzzz8HAHzxxRdYsWIFVCoV4uLikJCQgIKCAlRXV6OlpQXTpk0DAKxd\nu9b9M9Q5YpKfn48NGza417GNPau5uRknTpzAgw8+CABQqVQIDAxkO3tQQEAA1Go12tra4HA40N7e\nDrPZzDb2gPT0dAQFBfVY58l27b6v5cuX46uvvuq3Jq8J+crKSkRHR7uXzWYzqqqqZKzIN5WWluLS\npUtIS0tDTU2N+xHAkZGRqK2tBdB7W1dWVqKyshJRUVG3radOv/zlL7F161ZIkuRexzb2rNLSUoSG\nhuK5557DunXr8Pzzz6OtrY3t7EHBwcF47LHHsGTJEixatAiBgYGYP38+23iY1NbWeqxdq6qq3O8p\nlUoEBQWhvr7+jr/fa0Kehq6lpQW5ubnYtm0bjEZjjzACcNsyDdzBgwcRERGBlJQUiDvcJJJtPDQO\nhwOFhYX4zne+gw8++AB6vR67d+/mv2UPKikpwZ49e3DgwAF8+eWXaGtrw0cffcQ2HiGebNc7/S26\nxWtC3mw295hEUFlZCZPJJGNFvsXhcCA3NxfZ2dnIyMgAAISHh8NqtQIAqqurERYWBqCzrSsqKtw/\na7FYYDabb1tfWVkJs9k8gp/Ce506dQpffPEFli1bhi1btuDo0aN49tlnERERwTb2oKioKERFRWHq\n1KkAgKysLBQWFvLfsgedO3cOM2fOREhICJRKJTIyMnD69Gm28TDxZLuaTCZYLBYAgNPpRHNzM0JC\nQu74+70m5KdOnYri4mKUlZXBbrdj3759WLZsmdxl+Yxt27YhOTkZjz76qHvd0qVLsXfvXgDABx98\n4G7PpUuX4tNPP4XdbkdJSQmKi4sxbdo0REZGIjAwEAUFBRBC4MMPP+R/gy7PPPMMDh48iLy8PLzx\nxhuYM2cOfv3rX+O+++5jG3tQREQEoqOjcePGDQDAkSNHkJyczH/LHjRu3DicPXsWNpsNQgi2sYd9\ns3ftyXZdunQpPvjgAwDAX/7yF8ydO3dABXmN/Px8kZWVJTIzM8Vbb70ldzk+48SJE2LSpElizZo1\nIjs7W6xdu1bk5+eLuro68eijj4qsrCzxve99TzQ0NLh/ZteuXSIjI0Pcf//94ssvv3SvP3funFi1\napXIzMwUv/jFL+T4OF7v6NGj7tn1bGPPu3jxoli/fr1Ys2aNePLJJ0VjYyPb2cN++9vfihUrVohV\nq1aJrVu3Crvdzjb2gGeeeUYsWLBApKamisWLF4v3339f1NfXe6xdbTabyM3NFZmZmWLDhg2ipKSk\n35r4FDoiIiI/5TXD9URERORZDHkiIiI/xZAnIiLyUwx5IiIiP8WQJyIi8lMMeSIiIj/FkCciIvJT\nDHkiIiI/9f8BG+LzmJ9xPg4AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f6fa32890>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"final w: [-1.50847517 -7.76710345 3.45568685 3.45568763]\n",
"final classification rate: 1.0\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7f6fa98210>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# No line will cut this perfectly..so we need to add another dimension to our\n",
"# input that will allow us to separate the datasets by a plane.\n",
"xy = np.matrix(X[:,0] * X[:,1]).T\n",
"Xi = np.array(np.concatenate((ones, xy, X), axis=1))\n",
"\n",
"# Randomly init the weights and calculate the model's output.\n",
"w = np.random.randn(D + 2)\n",
"z = Xi.dot(w)\n",
"Y = sigmoid(z)\n",
"\n",
"# Gradient descent..\n",
"learning_rate = 0.01\n",
"regularization = 0.01\n",
"error = []\n",
"for i in xrange(10000):\n",
" e = cross_entropy(T, Y)\n",
" error.append(e)\n",
" w += learning_rate * (np.dot((T - Y).T, Xi) - regularization*w)\n",
" Y = sigmoid(Xi.dot(w))\n",
"\n",
"plt.plot(error)\n",
"plt.title('cross entropy')\n",
"plt.show()\n",
"sns.despine()\n",
"\n",
"print 'final w:', w\n",
"print 'final classification rate: %s' % (1 - np.abs(T - np.round(Y)).sum() / N)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment