Skip to content

Instantly share code, notes, and snippets.

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 rpicard92/0324d1bddb9f4325a53e13e42a1d5c2f to your computer and use it in GitHub Desktop.
Save rpicard92/0324d1bddb9f4325a53e13e42a1d5c2f to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Assignment5\n",
"## CS-5891-01 Special Topics Deep Learning\n",
"## Ronald Picard\n",
"\n",
"In this notebook we will walk through the design, training, and testing of neural networks with multiple hidden layers. We will train networks utilizing L2 reguarlization and dropout. These nueral networks will be used for logistic regression, which is an archaic name for binary classification.\n",
"\n",
"The binary classification will be performed on a simple 2-D dataset. This data will be randomly generated based on two interleaving half circles. The data points for one half circle are labeled 0 and the others are labeled 1. \n",
"\n",
"The goal of this this binary clasification will be first to classify each data point according to which half circle it belongs to. We will illustrated how well out networks do this by drawing the decision boundary. This decision boundary will also reveal overfitting. We will then investigate the imapact of reguarlization techniques on this overfitting.\n",
"\n",
"To start we need to import some needed classes."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import numpy as np\n",
"import struct\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"import matplotlib.pyplot as pyplot\n",
"import csv\n",
"import time\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import sklearn\n",
"import sklearn.datasets\n",
"import sklearn.linear_model\n",
"\n",
"from data_utils import plot_decision_boundary, load_moons\n",
"\n",
"%matplotlib inline\n",
"\n",
"# set global random seed\n",
"np.random.seed(10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First we must generate and load our data set (both half moons)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(2, 200)\n",
"(1, 200)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"## path\n",
"train_X, train_Y = load_moons()\n",
"# Print accuracy on a test set generated using the same distribution\n",
"test_X, test_Y = load_moons()\n",
"\n",
"print(train_X.shape)\n",
"print(train_Y.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next we predict labels using logistic regression classifier with scikit learn. "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LogisticRegressionCV(Cs=10, class_weight=None, cv=3, dual=False,\n",
" fit_intercept=True, intercept_scaling=1.0, max_iter=100,\n",
" multi_class='warn', n_jobs=None, penalty='l2',\n",
" random_state=None, refit=True, scoring=None, solver='lbfgs',\n",
" tol=0.0001, verbose=0)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Class LogisticRegressionCV implements a logistic regression classifier\n",
"clf = sklearn.linear_model.LogisticRegressionCV(cv=3);\n",
"\n",
"# Returns 1-d array of shape (m,) \n",
"_C = np.ravel(train_Y)\n",
"\n",
"# Fit the model given the training data\n",
"clf.fit(train_X.T, _C.T)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we predict the labels using the scikit learning logistic regression classifier."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy of logistic regression: 84 % (percentage of correctly labelled datapoints)\n"
]
}
],
"source": [
"# Print accuracy\n",
"# clf.predict returns labels for examples (of shape (m,n)) in x of shape (m,)\n",
"LR_predictions = clf.predict(train_X.T)\n",
"print ('Accuracy of logistic regression: %d ' % float((np.dot(train_Y,LR_predictions) + np.dot(1-train_Y,1-LR_predictions))/float(train_Y.size)*100) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, we plot the decision boundary."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Plot the decision boundary for logistic regression\n",
"plt.title(\"Logistic Regression\")\n",
"plot_decision_boundary(lambda x: clf.predict(x), train_X, _C)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see result is a linear seperation. However, for these two intersecting half circles we can see that this underfiting the data. This is because a good portion of the purple data is in the red section and vice version. It is clear that we need a non-linear model in order to not underfit the data. \n",
"\n",
"Now we generate two news half circles as a test data set."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test accuracy of logistic regression: 84 % (percentage of correctly labelled datapoints)\n"
]
}
],
"source": [
"# Print accuracy on a test set generated using the same distribution\n",
"#test_X, test_Y = load_moons()\n",
"\n",
"# clf.predict returns labels for examples (of shape (m,n)) in x of shape (m,)\n",
"LR_predictions = clf.predict(test_X.T)\n",
"print ('Test accuracy of logistic regression: %d ' % float((np.dot(test_Y,LR_predictions) + np.dot(1-test_Y,1-LR_predictions))/float(test_Y.size)*100) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see the accuracy of the test data is only 84%. This is similar to our test accuracy meaning it generalizes it's results well; even if it's results are bad. \n",
"\n",
"We will attempt to significantly increase the accuracy by training this data on a neural network with 2 hidden layers; the first with 20 units and the second with 10 units. No reguarlization techniques will be utilized at this point."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we will train our neural network with multiple hidden layers. \n",
"\n",
"Part 1 - Feed Forword:\n",
"\n",
"For these neural networks we will use 2 hidden layers; the first will have 20 units (neurons), and the second will have 10 units. The first layer will have an input of a matrix (2 X number_of_samples) of vectorized data points of 2 X 1, and will output a matrix (# of units X # of samples). This matrix will be input into the next hidden layer, which output another matrix (# of units X # of images.) The output layer will take and input matrix that is the output matrix of the last hidden layer and will output a row vector of probabilities which we will convert into binary classifications of 0 or 1. (If P(x) >= 0.5 then we will convert it to a 1, otherwise we will convert to 0.) \n",
"\n",
"The model for the units of the hidden layers will be a vecorized linear model Z^[l] = W^[l]^T * A^[l-1] + B^[l], where W is a matrix of 2-20 units (# of units) X # of units or parameter weights, A is the input matrix of data points (2 X # of samples) or the output of one of the layers (1 X # of units), and B is a row vector of bias's. (Note: in this case, b will be scalar that applied in a broadcasing manner to save on memory.) The output of this model Z^[l] will be a matrix (2-20 units X # of images). Z^[1] will be subject to an activation function; which for this assignment will be relu (note: we will test tanh once for comparison). \n",
"\n",
"Hidden Layer Activation Function: relu activation function is A^[1] = relu(Z) = max(Z, 0).\n",
"\n",
"The model of the output layer will be a vectorized linear model Z^[1] = W^[l] * A^[1] + b^[l] with a single unit. This linear model will be subjected to a sigmoid activation function.\n",
"\n",
"The resultant row vector will then be used to calculate the cost function values in an elementwise manner. The cost function for this binary classification will be L(Y_Predicted, Y_Label) = -Y_Label^[l] * Log(A^[l]) - (1-Y_Predicted^[l]) * Log(1-A^[l]), where Y_Label is the True Label, Y_Predicted is the probability value predicted by the neural network, and A is the activation function value. The resultant cost row vector will be added up and divided by the number of elements in order to calculate the average cost.\n",
"\n",
"Part 2 - Back Propogation:\n",
"\n",
"The back propogation technique that we will use for training the neural network, will be gradient descent. This involves utilizing the gradient of the cost function to updated the model parameters in our layers. In order to calculate the gradient we will utilize the chain rule. The goal of back propogation is the adjust the parameter weights and bias's of our model to accurately perform binary classification. In general the chain rule can be used to find the gradient of the cost function (vecorzied rates of change) with respect to the model parameters. The following is the chain that we will utilize. \n",
"\n",
"\n",
"Generalized Chain Rule for N layers: \n",
"\n",
"dL(A^[n], Y)/dW^[l] = ∏(i = n to l) (dl(A^[i], Y)/dz^[i]) * dZ^[i]/dA^[i-1] * dA^[i-1]/dZ^[i-2] *....* dz^[l]/dW^[l];\n",
"\n",
"dL(A^[n], Y)/dB^[l] = ∏(i = n to l) (dl(A^[i], Y)/dz^[i]) * dZ^[i]/dA^[i-1] * dA^[i-1]/dZ^[i-2] *....* dz^[l]/dB^[l];\n",
"\n",
"\n",
"\n",
"Output Layer - Back Propogation:\n",
"\n",
"The partial derivative of the cost function with respect to the output layer sigmoid activation function is found by the following:\n",
"\n",
"dL(A^[n], Y)/dA^[n] = -Y/A^[n] + (1-A^[n])/(1-A^[n]).\n",
"\n",
"\n",
"Due to the chain rule, the derivative of the cost function with respect to the linear model Z^[n] is found by the following:\n",
"\n",
"dL(A^[n], y)/dz = dL(A^[n], y)/dA^[n] * dA^[n]/dZ^[n].\n",
"\n",
"The derivative of the sigmoid activation function is da/dz is found by the following:\n",
"\n",
"dA^[n]/dZ^[n] = sigma(Z^[n]) * (1-sigma(Z^[n]))\n",
"\n",
"Therefore, the derivative of the cost function with respect to the output of the linear model is found by the following:\n",
"\n",
"dL(A^[n], Y)/dA^[n] * dA^[n]/dZ^[n]. = (-Y/A^[n] + (1-Y)/(1-A^[n])) * (sigma(Z^[n]) * (1-sigma(Z^[n]))) = A^[n]-Y. (For convienence we will say dZ^[n] = A^[n]-Y.)\n",
"\n",
"Now we can extrapolate the chain rule to all the paramters of the linear model our output layer.\n",
"\n",
"dL(A^[n], Y)/dW^[n] = dZ^[n] * dZ^[n]/dW^[n] = dZ^[n] * A^[n-1] = A^[n-1] * dZ^[n] (we will change our notation to dW^[n] = A^[n-1] * dZ^[n] for convienence)\n",
"\n",
"dL(A^[n], Y)/dB^[n] = dZ^[n] * dZ^[n]/dB^[n] = dZ^[n] (we will change our notation to dW^[n] = dZ^[n] for convienence)\n",
"\n",
"\n",
"\n",
"Hidden Layers - Back Propagation:\n",
"\n",
"dL(A^[n], Y)/dZ^[l] = ∏(i = n to l) (dl(A^[i], Y)/dz^[i]) * dZ^[i]/dA^[i-1] * dA^[i-1]/dZ^[i-2] *....* dA^[l]/dZ^[l]\n",
"\n",
"dL(A^[n], Y)/dZ^[l] = dZ^[l+1] * dZ^[l+1]/dA^[l] = W^[l+1] * dz^[l+1] * (element-wise) dA^[1]/dZ^[1]. The reason this is element-wise is because we are propgating from a single neuron to a layer with multiple neurons (we shall rename this dz^[l] = W^[l+1] * dz^[l+1] * (element-wise) dA^[1]/dZ^[1] for conveinience) \n",
"\n",
"dA^[1]/dZ^[1] depends on the activation function we are using in the hidden layer (in this case relu): The derivative of relu activation function is dA^[l]/dZ^[l] = if Z^[l] > 0 then 1 else 0.\n",
"\n",
"\n",
"dL(A^[n], Y)/dW^[l] = dZ^[l] * dZ^[l]/dW^[l] = dZ^[l] * X^T (we will change our notation to dW^[l] = dZ^[l] * A[l-1]^T for convienence)\n",
"\n",
"dL(A^[n], Y)/dB^[l] = dZ^[l] * dZ^[l]/dB^[l] = dZ^[l] (we will change our notation to dB^[l] = dZ^[l] for convienence)\n",
"\n",
"\n",
"Find vector averages:\n",
"\n",
"m = # number of images\n",
"\n",
"dW^[l] = 1/m * (A^[l-1] * dZ^[l])\n",
"\n",
"dB^[l] = 1/m * (dZ^[l])\n",
"\n",
"\n",
"Finally, we will update our the weights and bias's of the layers.\n",
"\n",
"\n",
"W^[l]:= W^[l] - alpha * dW^[l]\n",
"\n",
"B^[l]:= B^[l] - alpha * dB^[l]\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The first thing we have have to do is initialize our weights and bias's. There are multiple ways to initialize weights and bias's. Typically we will set our values based on either a uniform distribution between, or a normal distribution with a mean and some reasonable standard deviation. There is some flexibility in the initalization of the weights but in general they need to be small (not to small) and varied. The weights need to be different so that the gradients with respect to each other are different. In other words we don't aways want the relative rates of change to be 0. Additionally, we do not want to reach saturation on our output activation function where the gradients are 0 (vanishing gradiants). \n",
"\n",
"For this assignment many weight initializations were tested, but the best results were attained when using a uniform distribution between -.99 and .99. One potential reason that the weights for this assignment are higher than for previous assignments is because with this assignment we only have 200 samples. With such little data we likely need to larger initial gradients between the weights. We will set a random seed each time so that we form our rand values to be the same."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Feature Size: 2\n",
"Weights Shape: (20, 2)\n",
"Bias Shape: (20, 1)\n"
]
}
],
"source": [
"# initialize weights & bias\n",
"np.random.seed(10)\n",
"size = len(train_X[:,0])\n",
"print('Feature Size: ' + str(size))\n",
"\n",
"lower_bound = -.99\n",
"upper_bound = .99\n",
"\n",
"#mean = 0.015\n",
"#std = 0.005\n",
"\n",
"\n",
"# hyper-parameters: hidden layers\n",
"hidden_layers = 2\n",
"units_array = [20, 10]\n",
"Weights = []\n",
"Bias = []\n",
"for i in range(0, hidden_layers):\n",
" if(i == 0):\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], size]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" else:\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], units_array[i-1]]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" \n",
"# output layer\n",
"_W = np.float64(np.random.uniform(lower_bound, upper_bound, [1, units_array[i]]))\n",
"_b = np.float64(np.random.uniform(lower_bound, upper_bound)) # b will be added in a broadcasting manner\n",
"\n",
"Weights.append(_W)\n",
"Bias.append(_b)\n",
"\n",
"Weights = np.array(Weights)\n",
"Bias = np.array(Bias)\n",
"\n",
"for index in range(0, len(Weights) - 1):\n",
" Weights[index] = np.where(Weights[index] != 0, Weights[index], np.random.uniform(lower_bound, upper_bound))\n",
"\n",
"#print(train_X.shape)\n",
"#print(np.ravel(train_Y).shape)\n",
"\n",
"print('Weights Shape: ' + str(Weights[0].shape)) # matrix with a size of # of units X 784\n",
"print('Bias Shape: ' + str(Bias[0].shape)) # vector with a size of the # of unit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we implement our gradient descent algorithm. \n",
"\n",
"We will also collect data on the accuracy of our network as a function of training iterations. To do this we will need to find the number of inaccuracate binary classifications (false positives & false negatives). This will be acommplished using our test data set. We will send our test data set through the network and compare the results with the true labels of the test data set. "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Main Loop Iteration: 10000\n",
"Cost: 0.2166964405080079\n",
"Main Loop Iteration: 20000\n",
"Cost: 0.2051823753580052\n",
"Main Loop Iteration: 30000\n",
"Cost: 0.19900076490220708\n",
"Main Loop Iteration: 40000\n",
"Cost: 0.19360354048700912\n",
"Main Loop Iteration: 50000\n",
"Cost: 0.1894969694709237\n",
"Main Loop Iteration: 60000\n",
"Cost: 0.1861512772273354\n",
"Main Loop Iteration: 70000\n",
"Cost: 0.183212623696625\n",
"Main Loop Iteration: 80000\n",
"Cost: 0.17901372551102426\n",
"Main Loop Iteration: 90000\n",
"Cost: 0.17656921539909504\n",
"Main Loop Iteration: 100000\n",
"Cost: 0.1742266721624227\n",
"Main Loop Iteration: 110000\n",
"Cost: 0.17211544369486212\n",
"Main Loop Iteration: 120000\n",
"Cost: 0.16950429561372563\n",
"Main Loop Iteration: 130000\n",
"Cost: 0.16694299030664206\n",
"Main Loop Iteration: 140000\n",
"Cost: 0.16443834991037265\n",
"Main Loop Iteration: 150000\n",
"Cost: 0.16250663618161007\n",
"Main Loop Iteration: 160000\n",
"Cost: 0.16085363775573056\n",
"Main Loop Iteration: 170000\n",
"Cost: 0.15928607275459247\n",
"Main Loop Iteration: 180000\n",
"Cost: 0.15802093544544613\n",
"Main Loop Iteration: 190000\n",
"Cost: 0.15690970305629762\n",
"Main Loop Iteration: 200000\n",
"Cost: 0.15608196350580192\n",
"Main Loop Iteration: 210000\n",
"Cost: 0.1550200943371668\n",
"Main Loop Iteration: 220000\n",
"Cost: 0.15443206080295288\n",
"Main Loop Iteration: 230000\n",
"Cost: 0.15356877936030539\n",
"Main Loop Iteration: 240000\n",
"Cost: 0.15315157277600855\n",
"Main Loop Iteration: 250000\n",
"Cost: 0.15244164279528616\n",
"Main Loop Iteration: 260000\n",
"Cost: 0.15230991533539387\n",
"Main Loop Iteration: 270000\n",
"Cost: 0.1515539986696272\n",
"Main Loop Iteration: 280000\n",
"Cost: 0.15102581035614307\n",
"Main Loop Iteration: 290000\n",
"Cost: 0.1505959474855051\n",
"Main Loop Iteration: 300000\n",
"Cost: 0.15058476564911635\n",
"Main Loop Iteration: 310000\n",
"Cost: 0.1502409053625232\n",
"Main Loop Iteration: 320000\n",
"Cost: 0.14954715404808175\n",
"Main Loop Iteration: 330000\n",
"Cost: 0.14956352663376393\n",
"Main Loop Iteration: 340000\n",
"Cost: 0.1489649518756028\n",
"Main Loop Iteration: 350000\n",
"Cost: 0.14905062060118002\n",
"Main Loop Iteration: 360000\n",
"Cost: 0.1486638980575553\n",
"Main Loop Iteration: 370000\n",
"Cost: 0.14830139812373633\n",
"Main Loop Iteration: 380000\n",
"Cost: 0.14790015516565938\n",
"Main Loop Iteration: 390000\n",
"Cost: 0.14765687556895718\n",
"Main Loop Iteration: 400000\n",
"Cost: 0.14762312776558262\n",
"Main Loop Iteration: 410000\n",
"Cost: 0.14699689909295435\n",
"Main Loop Iteration: 420000\n",
"Cost: 0.14685794416040468\n",
"Main Loop Iteration: 430000\n",
"Cost: 0.14668739010801624\n",
"Main Loop Iteration: 440000\n",
"Cost: 0.1466481168899514\n",
"Main Loop Iteration: 450000\n",
"Cost: 0.146487692238118\n",
"Main Loop Iteration: 460000\n",
"Cost: 0.14602781986132665\n",
"Main Loop Iteration: 470000\n",
"Cost: 0.14587587267713878\n",
"Main Loop Iteration: 480000\n",
"Cost: 0.14534903835014182\n",
"Main Loop Iteration: 490000\n",
"Cost: 0.14547911455753304\n",
"Main Loop Iteration: 500000\n",
"Cost: 0.14499552398362858\n",
"Main Loop Iteration: 510000\n",
"Cost: 0.14471948010752222\n",
"Main Loop Iteration: 520000\n",
"Cost: 0.1449264967442724\n",
"Main Loop Iteration: 530000\n",
"Cost: 0.14424634343704232\n",
"Main Loop Iteration: 540000\n",
"Cost: 0.14401297655592352\n",
"Main Loop Iteration: 550000\n",
"Cost: 0.14238382002495897\n",
"Main Loop Iteration: 560000\n",
"Cost: 0.14176187476146457\n",
"Main Loop Iteration: 570000\n",
"Cost: 0.14167840731491832\n",
"Main Loop Iteration: 580000\n",
"Cost: 0.14032151197227846\n",
"Main Loop Iteration: 590000\n",
"Cost: 0.13982264394035557\n",
"Main Loop Iteration: 600000\n",
"Cost: 0.1395251154269986\n",
"Main Loop Iteration: 610000\n",
"Cost: 0.13944925571633005\n",
"Main Loop Iteration: 620000\n",
"Cost: 0.13962472794459901\n",
"Main Loop Iteration: 630000\n",
"Cost: 0.13837588883051363\n",
"Main Loop Iteration: 640000\n",
"Cost: 0.13829726063554434\n",
"Main Loop Iteration: 650000\n",
"Cost: 0.13777964586030442\n",
"Main Loop Iteration: 660000\n",
"Cost: 0.1379404733071588\n",
"Main Loop Iteration: 670000\n",
"Cost: 0.13671115127238795\n",
"Main Loop Iteration: 680000\n",
"Cost: 0.1359375943046544\n",
"Main Loop Iteration: 690000\n",
"Cost: 0.13190963335365694\n",
"Main Loop Iteration: 700000\n",
"Cost: 0.12700278504805326\n",
"Main Loop Iteration: 710000\n",
"Cost: 0.1226209180295676\n",
"Main Loop Iteration: 720000\n",
"Cost: 0.11752126914707205\n",
"Main Loop Iteration: 730000\n",
"Cost: 0.11400620546113477\n",
"Main Loop Iteration: 740000\n",
"Cost: 0.11292882687518283\n",
"Main Loop Iteration: 750000\n",
"Cost: 0.11203526551672409\n",
"Main Loop Iteration: 760000\n",
"Cost: 0.1106514431031089\n",
"Main Loop Iteration: 770000\n",
"Cost: 0.11081176001858356\n",
"Main Loop Iteration: 780000\n",
"Cost: 0.11249117054970455\n",
"Main Loop Iteration: 790000\n",
"Cost: 0.11199851208568565\n",
"Main Loop Iteration: 800000\n",
"Cost: 0.11209523552555906\n",
"Main Loop Iteration: 810000\n",
"Cost: 0.11175314182171056\n",
"Main Loop Iteration: 820000\n",
"Cost: 0.11176024957349256\n",
"Main Loop Iteration: 830000\n",
"Cost: 0.11060022723476079\n",
"Main Loop Iteration: 840000\n",
"Cost: 0.1066331214742937\n",
"Main Loop Iteration: 850000\n",
"Cost: 0.10669059678954812\n",
"\n",
"Results:\n",
"\n",
"\n",
"Cost: 0.10669059678954812\n",
"Accuracy: 88.5\n",
"\n",
"\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEWCAYAAABxMXBSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xm8HFWd9/HPl4RA2BIgly0JXHjEUXBYNCKIMIyghEW2h0EQWQRkdGTGEQceEB/cZxz1cXBBlkEHQRYRVCIDorIMIosEBYRAMAQkV5Zc9kBkCfyeP85pUul0972d7krfm/q+X69+3a6q01Wnq+rWt06d6m5FBGZmZsO1Uq8rYGZmo4uDw8zM2uLgMDOztjg4zMysLQ4OMzNri4PDzMza4uDIJF0l6Yhe18O6Q9Iuku7pdllbmqT1Jd0naZUuzOsNkkr7jMBQ21rSDyR9tsm0sZJCUn9J1espSRtKmiVp3FBlex4ckh6StFuv6xERe0TE98uYt6S1JJ0m6WFJz0uak4cnlbG8bpJ0gqS7JS2Q9KCkE+qm90u6TtLCfPDYrW76JyQ9JulZSd9rdHCRtFNeL89LeiH/cz5feGzcbr0j4vqI2LLbZdsl6UZJL+b195ykmZJOHM4/Z359xwcrSTtLujlvg6dynd7axWV/CjgnIl7Kr6u95+clDUq6VNL6y1r/4ZK0m6SHGoy/UdKRUO627kSxjr0SEY8CNwJHD1W258GxPEga28NljwOuAbYEpgNrAe8EngS2W4b5Le/3IuBwYG1S/Y+TdHBh+kXA74F1gVOASyX15bruDpwE7Ar0A5sBn6tfQET8OiLWiIg1SOsJYGJtXEQ8vESFpJUkjaZ99yMRsSawEXAi8EHgCkkqe8GS1gZmAF8nbcMpwBeBl7s0//HAYcAFdZM+krfnG/Nyv9KN5Vk5CseVC4C/H/IFEdHTB/AQsFuTaXsDdwDPADcBWxWmnQQ8ACwAZgH7F6YdCfwG+A/gKdI/ypGkNP0a8DTwILBH4TXXA8cUXt+q7KbADXnZvwJOB37Q5D0cAzwOrNFiHQTwhsLwucAX8/NdgAHg/wCPAecD9wJ7F8qPBZ4A3pqHt8/r6xngTmCXLm6vbwLfys/fCLwErFmY/mvSQQPgQuBfC9N2BR4bYv79eX2MrRt/I/AF4GbgL7ncMXldLMj7wjGF8rsBDxWGB4DjgT8Az5ICb5V2y+bpJ+dt8Wfgw7m+/U3ez43AkXXjNs3vYXoe3gG4JW+vR/M6XjlPuynP/wXgeeB/k0L6SmAw758/AyY3Wf72wBNDrPNjgPvyvK4CpjZbdoPXvhu4r9V7Bv4JuLMwvBKplfJA3m8vBtbO094ARN222KUw/EXg3CbvY4nt2Kg+Dbb120jHmAV5O/8I+Gzdcaa2rY8ubmtgVVIgzyP9j38HWLW4HNKJwiDwCHB4i22w1H5SWFeX5jo8QzpOvbmw3zwCrFQo/35g5nDXM/Ah4GHg2jx+HPBis/2p9hixZ225Kf09UvqtC5wFzChc6ngA2AmYQDqL/YGkDQuzeAcwF1gP+FJh3GxgEukM6Lstzvpalb0Q+G2u12dJZ1zN7Ab8PCKeH/pdN7UBsA6wCXAsaQc/pDB9d9LB4XeSJgP/TfoHWwf4F+CyWiugE/n97wTUrhFvCcyNiAWFYneyuNWwZR4uTltf0rrLWIXDgKNIrbYB0j/rXnn4w8C3JG3V4vUHAe8htXzeRuvt1rCspL2BfwT+lhSc7273TUTEg6RW2k551CLg46R9bUdSy6521rdz/rtlpNbXZaQDwn8CG5P2iVeAbzRZ3GxgjKT/kjRd0sTiREkHAicA+wJ9wK2k/bvZsuv9dV5GQ/ly7P7AnMLo40nbbWdSC+gFUlguV/lYcjnpOLNOfr5fYfrepO3ybtK23r1uFl8jnQRsBWxOOpk5pTB9CjCe1NL8CHCGpLWWoapX5PlvANxNOnkkIm4mBd6uhbIfrE1neOt5Z+BNuRwR8TLpuLl1yxot65lntx40aXEAZwBfqBs3G/ibJvO5A9g3Pz8SeLhu+pHAnMLwaqTE3SAPX8+SLY6GZUn/rIuA1QrTf0DzFscvgS8PsQ6GanG8TD6TKZwtLKjVgdS8PDU//z/A+XXzvxo4ogvb6nOkg3/tTP0w4Ja6Ml8inxGSwn16YdrKtDg7z2X6ad7iOHWI+l0BfCw/b9SKOLgw/HXg28tQ9rzifkn6p2urxZHHXwqc0eQ1/wL8KD8fO4x1Ng0YbDF9S+D7pLPmV4CfAn2F/fOIQtmxpFbk5GEu+zP1+35+zwtJrbUAbgemFKb/kcL/MTA1L3MlOm9xvEY6My8+FtGgxUEKhHmACvP4LbnFkbf1FwvTtqitj1zXF4FNCtN3Av5YWM7zwJjC9KeAae3sJw3KTcp1WD0PnwJ8vzBtIbDecNczsHGDZdwKfKBVPUZsi4N0JvVJSc/UHqQ3vhGApMMl3VGY9hbSiquZ12Cej9WeRMTC/HSNJstvVnYj4KnCuGbLqnkS2LDF9OEYjIgXC/WZQ7pE8z5JqwH7sPgscRPg7+rW27sa1UHSoYUO6KtaVUDScaS+jr0id4KS/jHqz6DWIoVao+m15wtYNkusZ0l7S7o1d/g+A7yXJfeBeo8Vni+k+bZvVXajunq02vatTCYdSJD0Jkn/nW8ieA74PC3eh6TVJZ2Tb7Z4Dri2VfmIuCcijoiIyaSz441JYQhpfzm9sK88QTr4Thnm+3gaWLPB+H+IiAnANqSWzOTCtI2BnxWW+QfSQWy9YS6zlYcjYmLxQboM2MhGwEDko2X2p7rp85pM2wBYBbiz8D6uYMn38EREvFoYHmqfW4qkMZK+Imlu3ta1lltte58P7JePAwcD10XE/DxtOOu50f67JilwmxrJwTEP+FLdTrBaRFwkaRNSU/04YN28c9xN6sitiQbz7IZHgXXyhqqZ2qL8r4DdJa3eosxCUqumZoO66Y3eS+1y1b7ArBwmkNbb+XXrbfWI+HL9DCLigljcAb1Hs8pJOorcyR0RA4VJ9wCbSSoeOLZm8aWse1iyybs18HhEPNlsWUN4fT3kTtlLgX8D1s/7wC9Ych8ow6MseVBtte0byncpbUPqD4J0GfZuUqtzLeBUFr+PRtv+RNIlku1y+WFfLouIe0ln0m/Jo+YBR9ftL+Mj4tYmy653F+kyTrPl3UnaRt8ujB4A3lO3zFUj4rEGs3iB1v8bnajflpAOtsXpU5tMe5x0JeCvCu9hQg7Lbjoc2JO0jSeQWgqQ949IN47MJB0HDmPxZSoYxnquC83azTybseQl5qWMlOBYWdKqhcdYUjB8RNI7lKwuaa98kFqdtFMPAkj6EIv/EUoVEX8ibajPShonaQfgfS1ecj7pn/OyfGa5kqR1JX1K0p65zB3AB/LZxXTgb4ZRlYtJZ9gfZXFrA9Jls/dJ2j3Pb1Wle9eHewa5BEmHAv9K2gHnFqdFxP257p/Jy9mfdEZbuxZ+HnC0pC3y3T2fJl2G64ZVSB15g8Cr+Xr0rq1f0hWXkN7TX+WTh/873BfmfXgX0qWi35AuIUI6w3sWeEHSmync1ZLPWJ8k/TNTKL8QeDr3F53aYplbSDo+932hdGvzwSw+Cz8TOCUvF0kTc79Hs2XXuxnok9TqgP49YKqkvQrL/NdcFyStJ2mfJq+9AzhY6dbg7YADWiynXTcCK0k6Ls//74DibcqXAEfl/9vVSZflgNfXzTnAaZL68jFqiqT3dlCf+uPgyqRt/RJpO6zG4v7aovNIN2y8idRPU9POeq7ZHrg/Iv7cqtBICY4rSXeZ1B6fjYiZpA7Pb5Oaw3NIfQ9ExCzg/5F22sdJHXS/WY71PZR0R8OTpGuuPyRt3KXkyzq7ke5a+SXwHOk66iTStURIHXDvIzUPDyUdWFqKdM/1zaRbe39YGD+PdPbxKdJBdR6p83NZt/UXSTcB3Fa4rHVmYfrBpGvsTwNfBg6MiMFcl5+Tbiy4jtTM/xOFf75ORMQzwCeAn5Au+RxIulRQqoj4Gan/7QbSNeTaftdw+2dnSlpAuvz1ddL22qtwtvdJ4AjSJbyzKGzP7DPAhfmSwwF5HhNI+99NpDuhmllA2ldvk/RCLn8HqdVCRPwoz+9H+VLIXSzZCVy/7Pr18RLp5OjQZhXIZb7F4pD9OvBz4Jq8Xm4C3t7k5aeQDojP5Ndf2KRc23K99icdZ54mhdJPC9N/Rrpj8n+A+0n/v0WfJO3TvyUF/y9IndjL6myWPA7+J/BfpDunHiG14G9q8LrLSOF+aUT8pTC+nfVccygpcFpSXUvFloGkH5JuSezKQdFGD0l/DfyOdMPAa72uTy8ofbjvemCbQv+XLSeSRPrIwJERcX0H89mQ9JmzbSLdXdXUSGlxjCqS3i7pf+XLTtNJZ/hDthJsxSBp/3yZcl1SK+vyqoYGQEQ8HhFvdmj0zEGkFu//dDKTiHg0IrYYKjQg3W5n7dsA+DHpEs4A8NGI+H1vq2TL0cdIt7cuIl2G+1hvq2NVJelG0uWxQ+s7uktdri9VmZlZO3ypyszM2jLqLlVNmjQp+vv7e10NM7NR5fbbb38iIjr+6iEYhcHR39/PzJkze10NM7NRRdKfhi41PL5UZWZmbXFwmJlZWxwcZmbWFgeHmZm1xcFhZmZtcXCYmVlbHBxmZtaW6gTHPffAqafC/PlDlzUzs6aqExyzZsEXvgCDg72uiZnZqFad4DAzs65wcJiZWVscHGZm1pbqBYd/f8TMrCPVCQ6p1zUwM1shVCc4zMysKxwcZmbWFgeHmZm1pbTgkPQ9SfMl3d1k+qGS7sqPmyRtXVZdluDOcTOzjpTZ4jgXmN5i+oPA30TEVsAXgLNLrIs7x83MuqS03xyPiBsk9beYflNh8BZgSll1MTOz7hkpfRxHA1f1uhJmZja00locwyXpb0nB8a4WZY4FjgXYeOONl1PNzMyskZ62OCRtBZwD7BsRTzYrFxFnR8S0iJjW19fX2ULdOW5m1pGeBYekjYEfA4dFxP3LYYGlL8LMrApKu1Ql6SJgF2CSpAHgM8DKABFxJnAqsC7wHaWD+qKImFZWfczMrDvKvKvqkCGmHwMcU9byzcysHCPlriozMxslqhcc7hw3M+tIdYLDneNmZl1RneAwM7OucHCYmVlbHBxmZtaW6gWHO8fNzDpSneBw57iZWVdUJzjMzKwrHBxmZtYWB4eZmbWlesHhznEzs45UJzjcOW5m1hXVCQ4zM+sKB4eZmbXFwWFmZm2pXnC4c9zMrCPVCQ53jpuZdUV1gsPMzLrCwWFmZm1xcJiZWVuqFxzuHDcz60h1gsOd42ZmXVGd4DAzs65wcJiZWVtKCw5J35M0X9LdTaZL0jclzZF0l6S3llUXMzPrnjJbHOcC01tM3wPYPD+OBc4osS6LuXPczKwjpQVHRNwAPNWiyL7AeZHcAkyUtGFZ9XHnuJlZd/Syj2MyMK8wPJDHLUXSsZJmSpo5ODi4XCpnZmaN9TI4GjUBGl5HioizI2JaREzr6+sruVpmZtZKL4NjAJhaGJ4CPNKjupiZ2TD1MjhmAIfnu6u2B56NiEdLX6o7x83MOjK2rBlLugjYBZgkaQD4DLAyQEScCVwJ7AnMARYCHyqrLrlCpc7ezKwqSguOiDhkiOkBfKys5ZuZWTn8yXEzM2uLg8PMzNpSveBw57iZWUeqExzuHDcz64rqBIeZmXWFg8PMzNri4DAzs7ZULzjcOW5m1pHqBIc7x83MuqI6wWFmZl3h4DAzs7Y4OMzMrC3VCw53jpuZdaQ6weHOcTOzrqhOcJiZWVc4OMzMrC0ODjMza0v1gsOd42ZmHalOcLhz3MysK6oTHGZm1hUODjMza4uDw8zM2lK94HDnuJlZR6oTHO4cNzPriuoEh5mZdUWpwSFpuqTZkuZIOqnB9I0lXSfp95LukrRnmfUxM7POlRYcksYApwN7AFsAh0jaoq7Yp4FLImJb4GDgO2XVx8zMuqPMFsd2wJyImBsRLwMXA/vWlQlgrfx8AvBIifXJS3TnuJlZJ8oMjsnAvMLwQB5X9Fngg5IGgCuBf2w0I0nHSpopaebg4OCy1cad42ZmXVFmcDQ6Utef7h8CnBsRU4A9gfMlLVWniDg7IqZFxLS+vr4SqmpmZsNVZnAMAFMLw1NY+lLU0cAlABFxM7AqMKnEOpmZWYfKDI7bgM0lbSppHKnze0ZdmYeBXQEkvZkUHMt4LcrMzJaH0oIjIhYBxwFXA/eS7p66R9LnJe2Ti30S+LCkO4GLgCMjSu69due4mVlHxpY584i4ktTpXRx3auH5LGDHMuvwOneOm5l1hT85bmZmbXFwmJlZWxwcZmbWluoFhzvHzcw6Up3gcOe4mVlXDCs4JJ0/nHFmZrbiG26LY8viQP7m27d1vzpmZjbStQwOSSdLWgBsJem5/FgAzAcuXy41NDOzEaVlcETEv0XEmsBXI2Kt/FgzItaNiJOXUx27y53jZmYdGe6lqiskrQ4g6YOSvi5pkxLrZWZmI9Rwg+MMYKGkrYETgT8B55VWqzL4riozs64YbnAsyl8+uC/wjYj4BrBmedUyM7ORarhfcrhA0snAYcBO+a6qlcurlpmZjVTDbXG8H3gJOCoiHiP9BOxXS6uVmZmNWMMKjhwWFwATJO0NvBgRo6uPo8Z3VZmZdWS4nxw/CPgt8HfAQcCtkg4ss2Jd585xM7OuGG4fxynA2yNiPoCkPuBXwKVlVczMzEam4fZxrFQLjezJNl5rZmYrkOG2OH4u6WrS74JD6iy/skV5MzNbQbUMDklvANaPiBMkHQC8CxBwM6mzfPRx57iZWUeGutx0GrAAICJ+HBHHR8QnSK2N08quXFe5c9zMrCuGCo7+iLirfmREzAT6S6mRmZmNaEMFx6otpo3vZkXMzGx0GCo4bpP04fqRko4Gbi+nSmZmNpINdVfVPwM/kXQoi4NiGjAO2L/MipXGneNmZh0Z6oecHo+IdwKfAx7Kj89FxA75a0hakjRd0mxJcySd1KTMQZJmSbpH0oXtv4Vhcue4mVlXDOtzHBFxHXBdOzPO36B7OvAeYIB02WtGRMwqlNkcOBnYMSKelrReO8swM7Plr8xPf28HzImIuRHxMnAx6fc8ij4MnB4RTwPUfTrdzMxGoDKDYzIwrzA8kMcVvRF4o6TfSLpF0vRGM5J0rKSZkmYODg6WVF0zMxuOMoOjUadCfc/0WGBzYBfgEOAcSROXelHE2RExLSKm9fX1dVYrd46bmXWkzOAYAKYWhqcAjzQoc3lEvBIRDwKzSUHSfe4cNzPrijKD4zZgc0mbShoHHAzMqCvzU+BvASRNIl26mltinczMrEOlBUdELAKOA64G7gUuiYh7JH1e0j652NXAk5Jmke7aOiEiniyrTmZm1rnhfq36MomIK6n7+vWIOLXwPIDj88PMzEaB6v0YkzvHzcw6Up3gcOe4mVlXVCc4zMysKxwcZmbWFgeHmZm1pXrB4c5xM7OOVCc43DluZtYV1QkOMzPrCgeHmZm1xcFhZmZtqV5wuHPczKwj1QkOd46bmXVFdYLDzMy6wsFhZmZtcXCYmVlbqhcc7hw3M+tIdYLDneNmZl1RneAwM7OucHCYmVlbHBxmZtaW6gWHO8fNzDpSneBw57iZWVdUJzjMzKwrHBxmZtaWUoND0nRJsyXNkXRSi3IHSgpJ08qsj5mZda604JA0Bjgd2APYAjhE0hYNyq0J/BNwa1l1WYI7x83MOlJmi2M7YE5EzI2Il4GLgX0blPsC8BXgxRLr4s5xM7MuKTM4JgPzCsMDedzrJG0LTI2IK0qsh5mZdVGZwdHoFP/160SSVgL+A/jkkDOSjpU0U9LMwcHBLlbRzMzaVWZwDABTC8NTgEcKw2sCbwGul/QQsD0wo1EHeUScHRHTImJaX19fiVU2M7OhlBkctwGbS9pU0jjgYGBGbWJEPBsRkyKiPyL6gVuAfSJiZim1qfVxvPZaKbM3M6uK0oIjIhYBxwFXA/cCl0TEPZI+L2mfspbb1Morp7+vvLLcF21mtiIZW+bMI+JK4Mq6cac2KbtLmXVxcJiZdUd1Pjnu4DAz6woHh5mZtaV6wfHyy72th5nZKFe94HCLw8ysI9UJjnHj0l8Hh5lZR6oTHG5xmJl1hYPDzMza4uAwM7O2VCc4xoxJ4bFwYa9rYmY2qlUnOCRYay147rle18TMbFSrTnCAg8PMrAscHGZm1hYHh5mZtaVawTFhgoPDzKxD1QoOtzjMzDpWveB49tle18LMbFSrVnBMnAhPP+2fjzUz60C1gmPyZFi0CObP73VNzMxGrWoFx9Sp6e/AQG/rYWY2ilUzOB56qKfVMDMbzaoVHG9+M4wdC7/7Xa9rYmY2alUrOMaPh622gltv7XVNzMxGrWoFB8COO8LNN8Pzz/e6JmZmo1L1guOgg+Avf4HvfrfXNTEzG5WqFxw77gi77w6f+hT8+te9ro2Z2ahTanBImi5ptqQ5kk5qMP14SbMk3SXpGkmblFmfvFD4/vdh441h553hJz8pfZFmZiuS0oJD0hjgdGAPYAvgEElb1BX7PTAtIrYCLgW+UlZ9lrD++nDNNbDOOnDAASlELrkEXnxxuSzezGw0K7PFsR0wJyLmRsTLwMXAvsUCEXFdRNR+y/UWYEqJ9VnSRhvBn/8Mxx4L8+bB+9+f7rqS0uNnP4OI5VYdM7PRoszgmAzMKwwP5HHNHA1c1WiCpGMlzZQ0c3BwsHs1XHVVOOus9DUkV1655LR99oGVVlocJOeeC6+80r1lm5mNUmUGhxqMa3gKL+mDwDTgq42mR8TZETEtIqb19fV1sYrZmDGwxx6phfHaa/Dv/750mQ99CMaNWxwkEqy9Nlx7Lbz6avfrZGY2QpUZHAPA1MLwFOCR+kKSdgNOAfaJiJdKrM/wSHDiiSlEakFy4YWNyz7zDOy6a/o0ejFQpNSHYma2AiozOG4DNpe0qaRxwMHAjGIBSdsCZ5FCY2R+Za0EhxyyOEhqYXLppXDYYc1ft9tuSwbJfvstfj5pEnznO/BS73PSzKxdihI7gCXtCZwGjAG+FxFfkvR5YGZEzJD0K+CvgUfzSx6OiH1azXPatGkxc+bM0urcseefh3e8A2bN6nxeZ5wBRx2VLpGZmXVA0u0RMa0r8yozOMow4oOjmQi47Tb49Kfhl7/s3nw/8IHUwb/GGt2bp5mtcLoZHNX75HivSLDddvCLXyx52av+MTAAH//48Od74YWw5ppL97EM9dh2WzjvPLj//nRX2Sg7gTCz3nGLY7R58UX41rdSB/6KYOutU6BOmZKer78+bLABTJgAq62WbokeM2Zx4JnZMvGlqioHR7teeSX9/shpp8HFF/e6NtZt73439PencJ0wAfr6UghPnJjG9fXB6qunGzLGj0+vkdJnmBzEleLgcHCMDK+9BgsXpsc998ADD6TfOrn2Wpg7t9e1s5Girw822wzWWw822ST9Emd/f/oc1GabpWAbPz79LX7o1rrKweHgsOWl9v9Ruw375ZfT5cKXX4Ynn0xf0T9/PjzxRHr+7LNw332pr+rBB9Nr58zpXf2r4qGH0nfOOXCa6mZwjO3GTMxWWLUDkZTOhseOTX0vkPpiVkQRqRX5hz/Ar34FN9zQ3TsBy9Dfv+TwnXemX/u0Ujg4zGxJUrpstP326TESLVwIV1yRvpy0ka23Xnrc3Lmw6abl1qsifDuumY0+q62Wfs2zeCv7woWtX7PZZkvfln755el29GZG2aX85cXBYWYrhvHjl/5c1BNPtH7NfvvByis3/7xTsbN+eT/+8pfUr/bAA/DCC8tnHQ6Tg8PMVlzrrrv098zttVevazU8q62Wbql+wxvSN0OMoLvNHBxmVh1S6hupb5m8+iqccALMmAF33AGPPZbG33svnHNOmgYpdN72ttQSqTDfjmtmNtIUWxbTpkHtmPfQQ+mzMMs0S9+Oa2a24hrhJ/TVbm+ZmVnbHBxmZtYWB4eZmbXFwWFmZm1xcJiZWVscHGZm1hYHh5mZtcXBYWZmbRl1nxyXNAj8aRlfPgkY4lvPKs3rpzWvn+a8blobCetnk4jo68aMRl1wdELSzG595H5F5PXTmtdPc143ra1o68eXqszMrC0ODjMza0vVguPsXldghPP6ac3rpzmvm9ZWqPVTqT4OMzPrXNVaHGZm1iEHh5mZtaUywSFpuqTZkuZIOqnX9ekmSVMlXSfpXkn3SPp4Hr+OpF9K+mP+u3YeL0nfzOviLklvLczriFz+j5KOKIx/m6Q/5Nd8U0o/UdZsGSONpDGSfi/pijy8qaRbc71/KGlcHr9KHp6Tp/cX5nFyHj9b0u6F8Q33rWbLGGkkTZR0qaT78j60g/edxSR9Iv9f3S3pIkmrVn7/iYgV/gGMAR4ANgPGAXcCW/S6Xl18fxsCb83P1wTuB7YAvgKclMefBPx7fr4ncBUgYHvg1jx+HWBu/rt2fr52nvZbYIf8mquAPfL4hssYaQ/geOBC4Io8fAlwcH5+JvDR/PwfgDPz84OBH+bnW+T9ZhVg07w/jWm1bzVbxkh7AN8HjsnPxwETve+8vm4mAw8C4wvb9Miq7z89r8By2vg7AFcXhk8GTu51vUp8v5cD7wFmAxvmcRsCs/Pzs4BDCuVn5+mHAGcVxp+Vx20I3FcY/3q5ZssYSQ9gCnAN8G7ginwAewIYW79/AFcDO+TnY3M51e8ztXLN9q1WyxhJD2CtfGBU3XjvO/F6cMwjBeLYvP/sXvX9pyqXqmobv2Ygj1vh5KbxtsCtwPoR8ShA/rteLtZsfbQaP9BgPC2WMZKcBpwIvJaH1wWeiYhFebj4fl5fB3n6s7l8u+us1TJGks2AQeC/8qW8cyStjvcdACLiz8DXgIeBR0n7w+1UfP+pSnCowbgV7j5kSWsAlwH/HBHPtSraYFwsw/gRT9LewPyIuL04ukHRGGLairrOxgJvBc6IiG2BF0iXjZpZUddDQ7nfZV/S5aWNgNWBPRoUrdT+U5XgGACmFoanAI/0qC6lkLQyKTQuiIgf59GPS9owT98QmJ/HN1sfrcZPaTC+1TJGih2BfSQ9BFxMulx1GjBR0thcpvh+Xl8HefrCd0bjAAADvUlEQVQE4CnaX2dPtFjGSDIADETErXn4UlKQeN9JdgMejIjBiHgF+DHwTiq+/1QlOG4DNs93KYwjdVrN6HGduibfpfJd4N6I+Hph0gygdnfLEaS+j9r4w/MdMtsDz+ZLBVcD75W0dj7Tei/puuqjwAJJ2+dlHV43r0bLGBEi4uSImBIR/aTtfm1EHApcBxyYi9Wvm9r7OTCXjzz+4HzXzKbA5qRO34b7Vn5Ns2WMGBHxGDBP0l/lUbsCs/C+U/MwsL2k1XL9a+un2vtPrztZlteDdDfI/aQ7GE7pdX26/N7eRWrG3gXckR97kq6TXgP8Mf9dJ5cXcHpeF38AphXmdRQwJz8+VBg/Dbg7v+bbLP7WgYbLGIkPYBcW31W1Gekfdw7wI2CVPH7VPDwnT9+s8PpT8vufTb4zqNW+1WwZI+0BbAPMzPvPT0l3RXnfWVz/zwH35fdwPunOqErvP/7KETMza0tVLlWZmVmXODjMzKwtDg4zM2uLg8PMzNri4DAzs7Y4OKxyJD2f//ZL+kCX5/2puuGbujl/s5HAwWFV1g+0FRySxgxRZIngiIh3tlknsxHPwWFV9mVgJ0l35N9cGCPpq5Juy7818fcAknZR+r2TC0kfekPSTyXdnn+n4dg87svA+Dy/C/K4WutGed53K/02xfsL875ei38P44L8CWUkfVnSrFyXry33tWPWxNihi5itsE4C/iUi9gbIAfBsRLxd0irAbyT9IpfdDnhLRDyYh4+KiKckjQduk3RZRJwk6biI2KbBsg4gfUJ7a2BSfs0Nedq2wJak7yL6DbCjpFnA/sCbIiIkTez6uzdbRm5xmC32XtL3MN1B+lr6dUnfKQTw20JoAPyTpDuBW0hfUrc5rb0LuCgiXo2Ix4H/Ad5emPdARLxG+rqYfuA54EXgHEkHAAs7fndmXeLgMFtMwD9GxDb5sWlE1FocL7xeSNqF9K2pO0TE1sDvSd9RNNS8m3mp8PxV0o/3LCK1ci4D9gN+3tY7MSuRg8OqbAHpp3ZrrgY+mr+iHklvzD9qVG8C8HRELJT0JtJPqNa8Unt9nRuA9+d+lD5gZ9IX2DWUf1tlQkRcCfwz6TKX2YjgPg6rsruARfmS07nAN0iXiX6XO6gHSWf79X4OfETSXaRvOr2lMO1s4C5Jv4v09e01PyH9/OedpG8yPjEiHsvB08iawOWSViW1Vj6xbG/RrPv87bhmZtYWX6oyM7O2ODjMzKwtDg4zM2uLg8PMzNri4DAzs7Y4OMzMrC0ODjMza8v/B+B6RWRaYpp2AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# gradient descent\n",
"\n",
"detailed_logger = False\n",
"main_logger = True\n",
"main_logger_output_iterations = 10000\n",
"L2 = False\n",
"Dropout = False\n",
"hidden_layer_relu = True\n",
"hidden_layer_tanh = False\n",
"hidden_layer_sigmoid = False\n",
"\n",
"# hyber-parameters\n",
"alpha = .01;\n",
"epsilon = .85\n",
"keep_prob = .5\n",
"number_of_iterations = 850000\n",
"\n",
"# copy initalization\n",
"W = Weights.copy()\n",
"B = Bias.copy()\n",
"\n",
"# data arrays\n",
"cost_array = []\n",
"accuracy_array = []\n",
"interation_array = []\n",
"\n",
"# rename\n",
"X = np.float64(train_X).copy()\n",
"Y = np.float64(np.ravel(train_Y)).copy()\n",
"\n",
"X_test = np.float64(test_X).copy()\n",
"Y_test = np.float64(np.ravel(test_Y)).copy()\n",
"\n",
"#m = size\n",
"m = 200\n",
"\n",
"def model(W, B, A):\n",
" return np.dot(W, A) + B\n",
"\n",
"def activation_relu(Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" return np.where(Z > 0, Z, 0)\n",
"\n",
"def activation_tanh(Z):\n",
" return np.tanh(Z)\n",
"\n",
"def activation_sigmoid(Z):\n",
" return 1/(1 + np.exp(-Z))\n",
"\n",
"def loss(A, Y):\n",
" epsilon = 1e-6\n",
" return np.where((Y == 1), np.multiply(-Y, np.log(A + epsilon)), -np.multiply((1 - Y), np.log(1 - A + epsilon)))\n",
" #return np.multiply(-Y, np.log(A)) - np.multiply((1 - Y), np.log(1 - A)) \n",
" \n",
"def cost(L):\n",
" return np.multiply(1/len(L[0]), np.sum(L))\n",
"\n",
"def cost_L2(L, W, epsilon):\n",
" L2 = np.multiply(epsilon/(2*m), np.multiply(W[len(W)-3], W[len(W)-3]).sum() + np.multiply(W[len(W)-2], W[len(W)-2]).sum() + np.multiply(W[len(W)-1], W[len(W)-1]).sum())\n",
" J = cost(L)\n",
" return L2 + J\n",
"\n",
"def prediction(A):\n",
" return np.where(A >= 0.5, 1, 0)\n",
" \n",
"def accuracy(prediction, Y):\n",
" return 100 - np.multiply(100/len(Y), np.sum(np.absolute(Y - prediction))) \n",
" \n",
"def forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" print('Forward Propagation Training Data Complete')\n",
" return A_layers, Z_layers, D\n",
"\n",
"def forward_propagation(W, B, A, layer):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" A = forward_propagation(W, B, A, layer)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" A = activation_sigmoid(Z) \n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" print('Forward Propagation Testing Data Complete')\n",
" return A\n",
"\n",
"def dZ(dZ, W, Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" W = np.where(~np.isnan(W), W, 0)\n",
" dZ = np.where(~np.isnan(dZ), dZ, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" W = np.where(~np.isinf(W), W, 0)\n",
" dZ = np.where(~np.isinf(dZ), dZ, 0)\n",
" if(hidden_layer_relu == True):\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.where(Z > 0, 1, 0))\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), 1- np.multiply(A, A))\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.multiply(A, (1-A)))\n",
"\n",
"def dW(dZ, A):\n",
" return np.multiply(1/m, np.dot(dZ, np.transpose(A)))\n",
"\n",
"def dW_L2(dZ, A, W, epsilon):\n",
" return np.multiply(epsilon/m, W) + dW(dZ, A)\n",
"\n",
"def dB(dZ):\n",
" return np.multiply(1/m, np.sum(dZ))\n",
"\n",
"def backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D):\n",
" if(layer >= 0):\n",
" if(layer == len(W) - 1):\n",
" _dZ = A_layers[layer+1] - Y\n",
" elif(layer >= 0):\n",
" _dZ = dZ(_dZ, W[layer+1], Z_layers[layer])\n",
" if(Dropout == True):\n",
" _dZ = np.multiply(_dZ, D[layer])\n",
" if(L2 == True):\n",
" _dW = dW_L2(_dZ, A_layers[layer], W[layer], epsilon)\n",
" else:\n",
" _dW = dW(_dZ, A_layers[layer])\n",
" _dB = dB(_dZ)\n",
" W[layer] = W[layer] - np.multiply(alpha, _dW)\n",
" B[layer] = B[layer] - np.multiply(alpha, _dB)\n",
" if(detailed_logger == True):\n",
" print('Backward Layer: ' + str(layer))\n",
" layer = layer - 1\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D)\n",
" if(detailed_logger == True):\n",
" print('Backward Propagation Complete')\n",
" return W, B\n",
" \n",
" \n",
"# main loop\n",
"for iteration in range(1, number_of_iterations + 1):\n",
" if(main_logger == True and iteration % main_logger_output_iterations == 0):\n",
" print('Main Loop Iteration: ' + str(iteration))\n",
" \n",
" if(hidden_layer_relu + hidden_layer_tanh + hidden_layer_sigmoid != 1):\n",
" print(\"ERROR! Please Select Only 1 Hidden Layer Activation Function\")\n",
" break\n",
" \n",
" # forward propogation training data set\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, X, [X], [], 0, [], keep_prob)\n",
" L = loss(A_layers[len(A_layers) - 1], Y)\n",
" if(L2 == True):\n",
" C = cost_L2(L, W, epsilon) \n",
" else:\n",
" C = cost(L) \n",
" \n",
" if(iteration % main_logger_output_iterations == 0):\n",
" print('Cost: ' + str(C))\n",
" \n",
" # forward propogation test data set\n",
" A_test = forward_propagation(W, B, X_test, 0)\n",
" \n",
" # accuracy\n",
" _prediction = prediction(A_test) \n",
" _accuracy = accuracy(_prediction, Y_test) \n",
" \n",
" # storage for plotting\n",
" cost_array.append(C)\n",
" accuracy_array.append(_accuracy)\n",
" interation_array.append(iteration)\n",
" \n",
" # backpropogation\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, 0, alpha, epsilon, len(W) - 1, D)\n",
"\n",
"\n",
" \n",
"print('')\n",
"print('Results:')\n",
"print('')\n",
" \n",
"print('')\n",
"print('Cost: ' + str(C)) \n",
"print('Accuracy: ' + str(_accuracy)) \n",
"print('')\n",
"print('')\n",
"\n",
"\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, cost_array, 'red')\n",
"pyplot.title('Learning Curve - ' + str(len(X[0])) + ' Training Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Cost')\n",
"pyplot.show()\n",
"\n",
"# plot percent accuracy curve\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, accuracy_array, 'red')\n",
"pyplot.title('Percent Accuracy Curve - ' + str(len(X_test[0])) + ' Test Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Percent Accuracy')\n",
"pyplot.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As Illustrated after 850,000 iterations we have converged to a cost of approimately 0.1, but our testing accuracy is only 88.5 percent. This indicates that our network has overfit our training data so that it does not generalize well to our test data.\n",
"\n",
"Now we will look at the decision boundary."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training accuracy of logistic regression: 95 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test accuracy of logistic regression: 89 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def predict_plot(P, X):\n",
" pred = prediction(forward_propagation(P[0], P[1], np.transpose(X), 0))\n",
" return pred\n",
"\n",
"# forward propogation test data set\n",
"A_train = forward_propagation(W, B, X, 0)\n",
"\n",
"# accuracy\n",
"_prediction_train = prediction(A_train) \n",
"_accuracy_train = accuracy(_prediction_train, Y) \n",
"\n",
"print ('Training accuracy of logistic regression: %d ' % float(_accuracy_train) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Training\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X, Y)\n",
"\n",
"# forward propogation test data set\n",
"A_test = forward_propagation(W, B, X_test, 0)\n",
"\n",
"# accuracy\n",
"_prediction = prediction(A_test) \n",
"_accuracy = accuracy(_prediction, Y_test) \n",
"\n",
"print ('Test accuracy of logistic regression: %d ' % float(_accuracy) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Testing\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X_test, Y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As Illustrated, we our network has overfit the data. Though it performs well on the training set, it performs significantly less well on the testing set."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see from our plots that we have definatley overfit our training data. The boundary is not smooth, but rather jaged. This boundary may help increase the accuracy on the training data, but not on the test data. \n",
"\n",
"In order to help prevent this we will run the same network, however, we will add L2 penalization. This will be used in an attempt to prevent overfiting our training data. \n",
"\n",
"The only differences in our network will a new cost function and dW function.\n",
"\n",
"The cost becomes:\n",
"\n",
"C = epsilon/(2 * m), W^[i]^T * W^[i] + 1/m * sum(L), where epsilon is the hyper-parameter determining the weight of the L2 cost penalty. \n",
"\n",
"The dW function becomes:\n",
"\n",
"dW = epsilon/m * W + 1/m * dZ * A^T\n",
"\n",
"First, we reinitialize our weights."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Feature Size: 2\n",
"Weights Shape: (20, 2)\n",
"Bias Shape: (20, 1)\n"
]
}
],
"source": [
"# initialize weights & bias\n",
"np.random.seed(10)\n",
"size = len(train_X[:,0])\n",
"print('Feature Size: ' + str(size))\n",
"\n",
"lower_bound = -.99\n",
"upper_bound = .99\n",
"\n",
"#mean = 0.015\n",
"#std = 0.005\n",
"\n",
"\n",
"# hyper-parameters: hidden layers\n",
"hidden_layers = 2\n",
"units_array = [20, 10]\n",
"Weights = []\n",
"Bias = []\n",
"for i in range(0, hidden_layers):\n",
" if(i == 0):\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], size]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" else:\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], units_array[i-1]]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" \n",
"# output layer\n",
"_W = np.float64(np.random.uniform(lower_bound, upper_bound, [1, units_array[i]]))\n",
"_b = np.float64(np.random.uniform(lower_bound, upper_bound)) # b will be added in a broadcasting manner\n",
"\n",
"Weights.append(_W)\n",
"Bias.append(_b)\n",
"\n",
"Weights = np.array(Weights)\n",
"Bias = np.array(Bias)\n",
"\n",
"for index in range(0, len(Weights) - 1):\n",
" Weights[index] = np.where(Weights[index] != 0, Weights[index], np.random.uniform(lower_bound, upper_bound))\n",
"\n",
"#print(train_X.shape)\n",
"#print(np.ravel(train_Y).shape)\n",
"\n",
"print('Weights Shape: ' + str(Weights[0].shape)) # matrix with a size of # of units X 784\n",
"print('Bias Shape: ' + str(Bias[0].shape)) # vector with a size of the # of unit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we re-run our gradient descent algorithm with L2 Penalization. We will choose a reasonable epsilon penalty weight of .85."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Main Loop Iteration: 10000\n",
"Cost: 0.34498623686264956\n",
"Main Loop Iteration: 20000\n",
"Cost: 0.31067705506755644\n",
"Main Loop Iteration: 30000\n",
"Cost: 0.2970519488259844\n",
"Main Loop Iteration: 40000\n",
"Cost: 0.2906012555913514\n",
"Main Loop Iteration: 50000\n",
"Cost: 0.28730002199254273\n",
"Main Loop Iteration: 60000\n",
"Cost: 0.28588524567233486\n",
"Main Loop Iteration: 70000\n",
"Cost: 0.2851716280779994\n",
"Main Loop Iteration: 80000\n",
"Cost: 0.2847694297192991\n",
"Main Loop Iteration: 90000\n",
"Cost: 0.28451206231629234\n",
"Main Loop Iteration: 100000\n",
"Cost: 0.2843380508476758\n",
"Main Loop Iteration: 110000\n",
"Cost: 0.2842034356472791\n",
"Main Loop Iteration: 120000\n",
"Cost: 0.2840933921880398\n",
"Main Loop Iteration: 130000\n",
"Cost: 0.284000635541277\n",
"Main Loop Iteration: 140000\n",
"Cost: 0.28391551184970043\n",
"Main Loop Iteration: 150000\n",
"Cost: 0.2838256008984101\n",
"Main Loop Iteration: 160000\n",
"Cost: 0.28372793254407885\n",
"Main Loop Iteration: 170000\n",
"Cost: 0.28363125182045035\n",
"Main Loop Iteration: 180000\n",
"Cost: 0.28323394175205674\n",
"Main Loop Iteration: 190000\n",
"Cost: 0.2828618346142178\n",
"Main Loop Iteration: 200000\n",
"Cost: 0.2820494694173775\n",
"Main Loop Iteration: 210000\n",
"Cost: 0.2813091704968076\n",
"Main Loop Iteration: 220000\n",
"Cost: 0.28067619475629385\n",
"Main Loop Iteration: 230000\n",
"Cost: 0.28030962026903666\n",
"Main Loop Iteration: 240000\n",
"Cost: 0.2800653409713528\n",
"Main Loop Iteration: 250000\n",
"Cost: 0.27990231060980525\n",
"Main Loop Iteration: 260000\n",
"Cost: 0.2798030188127548\n",
"Main Loop Iteration: 270000\n",
"Cost: 0.27974654745215455\n",
"Main Loop Iteration: 280000\n",
"Cost: 0.2796954372876537\n",
"Main Loop Iteration: 290000\n",
"Cost: 0.2796497419878253\n",
"Main Loop Iteration: 300000\n",
"Cost: 0.27960241372814953\n",
"Main Loop Iteration: 310000\n",
"Cost: 0.27954758214133585\n",
"Main Loop Iteration: 320000\n",
"Cost: 0.2794675404317455\n",
"Main Loop Iteration: 330000\n",
"Cost: 0.2792070831268148\n",
"Main Loop Iteration: 340000\n",
"Cost: 0.27911304093181083\n",
"Main Loop Iteration: 350000\n",
"Cost: 0.27903225839208917\n",
"Main Loop Iteration: 360000\n",
"Cost: 0.2789930690420829\n",
"Main Loop Iteration: 370000\n",
"Cost: 0.27897357639168985\n",
"Main Loop Iteration: 380000\n",
"Cost: 0.27896720597711405\n",
"Main Loop Iteration: 390000\n",
"Cost: 0.2789545436489941\n",
"Main Loop Iteration: 400000\n",
"Cost: 0.2789469997397701\n",
"Main Loop Iteration: 410000\n",
"Cost: 0.2789422346358973\n",
"Main Loop Iteration: 420000\n",
"Cost: 0.27893364087323164\n",
"Main Loop Iteration: 430000\n",
"Cost: 0.2789287498357121\n",
"Main Loop Iteration: 440000\n",
"Cost: 0.2789273060912972\n",
"Main Loop Iteration: 450000\n",
"Cost: 0.2789217433438857\n",
"Main Loop Iteration: 460000\n",
"Cost: 0.27891647508016476\n",
"Main Loop Iteration: 470000\n",
"Cost: 0.27891247081850157\n",
"Main Loop Iteration: 480000\n",
"Cost: 0.2789071770428252\n",
"Main Loop Iteration: 490000\n",
"Cost: 0.27890412207833454\n",
"Main Loop Iteration: 500000\n",
"Cost: 0.2789044842921582\n",
"Main Loop Iteration: 510000\n",
"Cost: 0.2788986165120121\n",
"Main Loop Iteration: 520000\n",
"Cost: 0.2788957472711363\n",
"Main Loop Iteration: 530000\n",
"Cost: 0.2788933485274988\n",
"Main Loop Iteration: 540000\n",
"Cost: 0.278890601928634\n",
"Main Loop Iteration: 550000\n",
"Cost: 0.2788887322619078\n",
"Main Loop Iteration: 560000\n",
"Cost: 0.27888651181192636\n",
"Main Loop Iteration: 570000\n",
"Cost: 0.27888286664818024\n",
"Main Loop Iteration: 580000\n",
"Cost: 0.2788802578899275\n",
"Main Loop Iteration: 590000\n",
"Cost: 0.27887672599550645\n",
"Main Loop Iteration: 600000\n",
"Cost: 0.27887519947218764\n",
"Main Loop Iteration: 610000\n",
"Cost: 0.2788701239286309\n",
"Main Loop Iteration: 620000\n",
"Cost: 0.27887005840570145\n",
"Main Loop Iteration: 630000\n",
"Cost: 0.2788636012614827\n",
"Main Loop Iteration: 640000\n",
"Cost: 0.27886314007196333\n",
"Main Loop Iteration: 650000\n",
"Cost: 0.278859687604611\n",
"Main Loop Iteration: 660000\n",
"Cost: 0.27885981513266433\n",
"Main Loop Iteration: 670000\n",
"Cost: 0.27885695908147884\n",
"Main Loop Iteration: 680000\n",
"Cost: 0.2788538119117274\n",
"Main Loop Iteration: 690000\n",
"Cost: 0.2788511903459682\n",
"Main Loop Iteration: 700000\n",
"Cost: 0.2788464520933259\n",
"Main Loop Iteration: 710000\n",
"Cost: 0.2788435642926377\n",
"Main Loop Iteration: 720000\n",
"Cost: 0.2788405525752101\n",
"Main Loop Iteration: 730000\n",
"Cost: 0.27884205968087966\n",
"Main Loop Iteration: 740000\n",
"Cost: 0.2788358182739702\n",
"Main Loop Iteration: 750000\n",
"Cost: 0.27883820760832295\n",
"Main Loop Iteration: 760000\n",
"Cost: 0.2788320822068892\n",
"Main Loop Iteration: 770000\n",
"Cost: 0.2788330010765028\n",
"Main Loop Iteration: 780000\n",
"Cost: 0.2788295762541182\n",
"Main Loop Iteration: 790000\n",
"Cost: 0.2788234081738089\n",
"Main Loop Iteration: 800000\n",
"Cost: 0.27882336178638856\n",
"Main Loop Iteration: 810000\n",
"Cost: 0.27882019181593765\n",
"Main Loop Iteration: 820000\n",
"Cost: 0.27881903427882526\n",
"Main Loop Iteration: 830000\n",
"Cost: 0.27881593773998425\n",
"Main Loop Iteration: 840000\n",
"Cost: 0.27881370559104174\n",
"Main Loop Iteration: 850000\n",
"Cost: 0.27881150087621887\n",
"\n",
"Results:\n",
"\n",
"\n",
"Cost: 0.27881150087621887\n",
"Accuracy: 89.0\n",
"\n",
"\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# gradient descent\n",
"\n",
"detailed_logger = False\n",
"main_logger = True\n",
"main_logger_output_iterations = 10000\n",
"L2 = True\n",
"Dropout = False\n",
"hidden_layer_relu = True\n",
"hidden_layer_tanh = False\n",
"hidden_layer_sigmoid = False\n",
"\n",
"# hyber-parameters\n",
"alpha = .01;\n",
"epsilon = .85\n",
"keep_prob = .5\n",
"number_of_iterations = 850000\n",
"\n",
"# copy initalization\n",
"W = Weights.copy()\n",
"B = Bias.copy()\n",
"\n",
"# data arrays\n",
"cost_array = []\n",
"accuracy_array = []\n",
"interation_array = []\n",
"\n",
"# rename\n",
"X = np.float64(train_X).copy()\n",
"Y = np.float64(np.ravel(train_Y)).copy()\n",
"\n",
"X_test = np.float64(test_X).copy()\n",
"Y_test = np.float64(np.ravel(test_Y)).copy()\n",
"\n",
"#m = size\n",
"m = 200\n",
"\n",
"def model(W, B, A):\n",
" return np.dot(W, A) + B\n",
"\n",
"def activation_relu(Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" return np.where(Z > 0, Z, 0)\n",
"\n",
"def activation_tanh(Z):\n",
" return np.tanh(Z)\n",
"\n",
"def activation_sigmoid(Z):\n",
" return 1/(1 + np.exp(-Z))\n",
"\n",
"def loss(A, Y):\n",
" epsilon = 1e-6\n",
" return np.where((Y == 1), np.multiply(-Y, np.log(A + epsilon)), -np.multiply((1 - Y), np.log(1 - A + epsilon)))\n",
" #return np.multiply(-Y, np.log(A)) - np.multiply((1 - Y), np.log(1 - A)) \n",
" \n",
"def cost(L):\n",
" return np.multiply(1/len(L[0]), np.sum(L))\n",
"\n",
"def cost_L2(L, W, epsilon):\n",
" L2 = np.multiply(epsilon/(2*m), np.multiply(W[len(W)-3], W[len(W)-3]).sum() + np.multiply(W[len(W)-2], W[len(W)-2]).sum() + np.multiply(W[len(W)-1], W[len(W)-1]).sum())\n",
" J = cost(L)\n",
" return L2 + J\n",
"\n",
"def prediction(A):\n",
" return np.where(A >= 0.5, 1, 0)\n",
" \n",
"def accuracy(prediction, Y):\n",
" return 100 - np.multiply(100/len(Y), np.sum(np.absolute(Y - prediction))) \n",
" \n",
"def forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" print('Forward Propagation Training Data Complete')\n",
" return A_layers, Z_layers, D\n",
"\n",
"def forward_propagation(W, B, A, layer):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" A = forward_propagation(W, B, A, layer)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" A = activation_sigmoid(Z) \n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" print('Forward Propagation Testing Data Complete')\n",
" return A\n",
"\n",
"def dZ(dZ, W, Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" W = np.where(~np.isnan(W), W, 0)\n",
" dZ = np.where(~np.isnan(dZ), dZ, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" W = np.where(~np.isinf(W), W, 0)\n",
" dZ = np.where(~np.isinf(dZ), dZ, 0)\n",
" if(hidden_layer_relu == True):\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.where(Z > 0, 1, 0))\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), 1- np.multiply(A, A))\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.multiply(A, (1-A)))\n",
"\n",
"def dW(dZ, A):\n",
" return np.multiply(1/m, np.dot(dZ, np.transpose(A)))\n",
"\n",
"def dW_L2(dZ, A, W, epsilon):\n",
" return np.multiply(epsilon/m, W) + dW(dZ, A)\n",
"\n",
"def dB(dZ):\n",
" return np.multiply(1/m, np.sum(dZ))\n",
"\n",
"def backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D):\n",
" if(layer >= 0):\n",
" if(layer == len(W) - 1):\n",
" _dZ = A_layers[layer+1] - Y\n",
" elif(layer >= 0):\n",
" _dZ = dZ(_dZ, W[layer+1], Z_layers[layer])\n",
" if(Dropout == True):\n",
" _dZ = np.multiply(_dZ, D[layer])\n",
" if(L2 == True):\n",
" _dW = dW_L2(_dZ, A_layers[layer], W[layer], epsilon)\n",
" else:\n",
" _dW = dW(_dZ, A_layers[layer])\n",
" _dB = dB(_dZ)\n",
" W[layer] = W[layer] - np.multiply(alpha, _dW)\n",
" B[layer] = B[layer] - np.multiply(alpha, _dB)\n",
" if(detailed_logger == True):\n",
" print('Backward Layer: ' + str(layer))\n",
" layer = layer - 1\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D)\n",
" if(detailed_logger == True):\n",
" print('Backward Propagation Complete')\n",
" return W, B\n",
" \n",
" \n",
"# main loop\n",
"for iteration in range(1, number_of_iterations + 1):\n",
" if(main_logger == True and iteration % main_logger_output_iterations == 0):\n",
" print('Main Loop Iteration: ' + str(iteration))\n",
" \n",
" if(hidden_layer_relu + hidden_layer_tanh + hidden_layer_sigmoid != 1):\n",
" print(\"ERROR! Please Select Only 1 Hidden Layer Activation Function\")\n",
" break\n",
" \n",
" # forward propogation training data set\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, X, [X], [], 0, [], keep_prob)\n",
" L = loss(A_layers[len(A_layers) - 1], Y)\n",
" if(L2 == True):\n",
" C = cost_L2(L, W, epsilon) \n",
" else:\n",
" C = cost(L) \n",
" \n",
" if(iteration % main_logger_output_iterations == 0):\n",
" print('Cost: ' + str(C))\n",
" \n",
" # forward propogation test data set\n",
" A_test = forward_propagation(W, B, X_test, 0)\n",
" \n",
" # accuracy\n",
" _prediction = prediction(A_test) \n",
" _accuracy = accuracy(_prediction, Y_test) \n",
" \n",
" # storage for plotting\n",
" cost_array.append(C)\n",
" accuracy_array.append(_accuracy)\n",
" interation_array.append(iteration)\n",
" \n",
" # backpropogation\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, 0, alpha, epsilon, len(W) - 1, D)\n",
"\n",
"\n",
" \n",
"print('')\n",
"print('Results:')\n",
"print('')\n",
" \n",
"print('')\n",
"print('Cost: ' + str(C)) \n",
"print('Accuracy: ' + str(_accuracy)) \n",
"print('')\n",
"print('')\n",
"\n",
"\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, cost_array, 'red')\n",
"pyplot.title('Learning Curve - ' + str(len(X[0])) + ' Training Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Cost')\n",
"pyplot.show()\n",
"\n",
"# plot percent accuracy curve\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, accuracy_array, 'red')\n",
"pyplot.title('Percent Accuracy Curve - ' + str(len(X_test[0])) + ' Test Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Percent Accuracy')\n",
"pyplot.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see, after 850,000 iterations, the cost function converges to aproximately 0.27. This is slightly higher than without L2 penalization. This is expected because we have an additionally L2 penalty added to the cost. We also see a small increase in the accuracy to 89% of the test data over the previous network that did not include L2 penalization. This indicates that we have not overfit out training data.\n",
"\n",
"We will not examine the decision boundary."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training accuracy of logistic regression: 91 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test accuracy of logistic regression: 89 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def predict_plot(P, X):\n",
" pred = prediction(forward_propagation(P[0], P[1], np.transpose(X), 0))\n",
" return pred\n",
"\n",
"# forward propogation test data set\n",
"A_train = forward_propagation(W, B, X, 0)\n",
"\n",
"# accuracy\n",
"_prediction_train = prediction(A_train) \n",
"_accuracy_train = accuracy(_prediction_train, Y) \n",
"\n",
"print ('Training accuracy of logistic regression: %d ' % float(_accuracy_train) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Training\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X, Y)\n",
"\n",
"# forward propogation test data set\n",
"A_test = forward_propagation(W, B, X_test, 0)\n",
"\n",
"# accuracy\n",
"_prediction = prediction(A_test) \n",
"_accuracy = accuracy(_prediction, Y_test) \n",
"\n",
"print ('Test accuracy of logistic regression: %d ' % float(_accuracy) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Testing\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X_test, Y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see our decision curve has smoothed out. This is primarliy because of the L2 penalization we put on the variance of the weights. This prevents any specific weights from becoming too important, and keeps all them relatively stable in orders of magnitude. We can see the accuracy of our training data decreased, but the accuracy of our test data has slightly improved. This indicates that our L2 penalization has help generalize our network.\n",
"\n",
"Now we wish to explore the impact of adjusting L2 reguarlization hyper parameter. We will update it to 0.1 and look at the results."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# initialize weights & bias\n",
"np.random.seed(10)\n",
"size = len(train_X[:,0])\n",
"print('Feature Size: ' + str(size))\n",
"\n",
"lower_bound = -.99\n",
"upper_bound = .99\n",
"\n",
"#mean = 0.015\n",
"#std = 0.005\n",
"\n",
"\n",
"# hyper-parameters: hidden layers\n",
"hidden_layers = 2\n",
"units_array = [20, 10]\n",
"Weights = []\n",
"Bias = []\n",
"for i in range(0, hidden_layers):\n",
" if(i == 0):\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], size]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" else:\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], units_array[i-1]]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" \n",
"# output layer\n",
"_W = np.float64(np.random.uniform(lower_bound, upper_bound, [1, units_array[i]]))\n",
"_b = np.float64(np.random.uniform(lower_bound, upper_bound)) # b will be added in a broadcasting manner\n",
"\n",
"Weights.append(_W)\n",
"Bias.append(_b)\n",
"\n",
"Weights = np.array(Weights)\n",
"Bias = np.array(Bias)\n",
"\n",
"for index in range(0, len(Weights) - 1):\n",
" Weights[index] = np.where(Weights[index] != 0, Weights[index], np.random.uniform(lower_bound, upper_bound))\n",
"\n",
"#print(train_X.shape)\n",
"#print(np.ravel(train_Y).shape)\n",
"\n",
"print('Weights Shape: ' + str(Weights[0].shape)) # matrix with a size of # of units X 784\n",
"print('Bias Shape: ' + str(Bias[0].shape)) # vector with a size of the # of unit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we re-run our gradient descent algorithm with a 0.1 L2 reguarlization hyper-parameter."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Main Loop Iteration: 10000\n",
"Cost: 0.2407950315174986\n",
"Main Loop Iteration: 20000\n",
"Cost: 0.23072662594920001\n",
"Main Loop Iteration: 30000\n",
"Cost: 0.2256844816431174\n",
"Main Loop Iteration: 40000\n",
"Cost: 0.22208008996732334\n",
"Main Loop Iteration: 50000\n",
"Cost: 0.2189736515340905\n",
"Main Loop Iteration: 60000\n",
"Cost: 0.21634808136846495\n",
"Main Loop Iteration: 70000\n",
"Cost: 0.21436287017103725\n",
"Main Loop Iteration: 80000\n",
"Cost: 0.21266944020812625\n",
"Main Loop Iteration: 90000\n",
"Cost: 0.2111872360718793\n",
"Main Loop Iteration: 100000\n",
"Cost: 0.20973440885564926\n",
"Main Loop Iteration: 110000\n",
"Cost: 0.2083522202168148\n",
"Main Loop Iteration: 120000\n",
"Cost: 0.20710447212662847\n",
"Main Loop Iteration: 130000\n",
"Cost: 0.20595871413451652\n",
"Main Loop Iteration: 140000\n",
"Cost: 0.2045914480926378\n",
"Main Loop Iteration: 150000\n",
"Cost: 0.2035995123294636\n",
"Main Loop Iteration: 160000\n",
"Cost: 0.20279295037560865\n",
"Main Loop Iteration: 170000\n",
"Cost: 0.20204626660974595\n",
"Main Loop Iteration: 180000\n",
"Cost: 0.20138886404043466\n",
"Main Loop Iteration: 190000\n",
"Cost: 0.2008464577689848\n",
"Main Loop Iteration: 200000\n",
"Cost: 0.20023233196268134\n",
"Main Loop Iteration: 210000\n",
"Cost: 0.19980649769341852\n",
"Main Loop Iteration: 220000\n",
"Cost: 0.19936334711044917\n",
"Main Loop Iteration: 230000\n",
"Cost: 0.19893076775637647\n",
"Main Loop Iteration: 240000\n",
"Cost: 0.1985475794355169\n",
"Main Loop Iteration: 250000\n",
"Cost: 0.19825309332586236\n",
"Main Loop Iteration: 260000\n",
"Cost: 0.19795281998556793\n",
"Main Loop Iteration: 270000\n",
"Cost: 0.19770382710153847\n",
"Main Loop Iteration: 280000\n",
"Cost: 0.19730135132704285\n",
"Main Loop Iteration: 290000\n",
"Cost: 0.1969909184131927\n",
"Main Loop Iteration: 300000\n",
"Cost: 0.19676981771910904\n",
"Main Loop Iteration: 310000\n",
"Cost: 0.19651207731427245\n",
"Main Loop Iteration: 320000\n",
"Cost: 0.1953876206200686\n",
"Main Loop Iteration: 330000\n",
"Cost: 0.19452490152407848\n",
"Main Loop Iteration: 340000\n",
"Cost: 0.1936135316617139\n",
"Main Loop Iteration: 350000\n",
"Cost: 0.19300882646467782\n",
"Main Loop Iteration: 360000\n",
"Cost: 0.1924030428296208\n",
"Main Loop Iteration: 370000\n",
"Cost: 0.1915149473988841\n",
"Main Loop Iteration: 380000\n",
"Cost: 0.19101602452510644\n",
"Main Loop Iteration: 390000\n",
"Cost: 0.19060626176605372\n",
"Main Loop Iteration: 400000\n",
"Cost: 0.1902767313480525\n",
"Main Loop Iteration: 410000\n",
"Cost: 0.19000842896365616\n",
"Main Loop Iteration: 420000\n",
"Cost: 0.18972544824843943\n",
"Main Loop Iteration: 430000\n",
"Cost: 0.1895216386629961\n",
"Main Loop Iteration: 440000\n",
"Cost: 0.18926768154098433\n",
"Main Loop Iteration: 450000\n",
"Cost: 0.18876936896012764\n",
"Main Loop Iteration: 460000\n",
"Cost: 0.18860110204493388\n",
"Main Loop Iteration: 470000\n",
"Cost: 0.1884465993733804\n",
"Main Loop Iteration: 480000\n",
"Cost: 0.18835616275650044\n",
"Main Loop Iteration: 490000\n",
"Cost: 0.18830722136900974\n",
"Main Loop Iteration: 500000\n",
"Cost: 0.18814644589603294\n",
"Main Loop Iteration: 510000\n",
"Cost: 0.1880863116280141\n",
"Main Loop Iteration: 520000\n",
"Cost: 0.1881283700855614\n",
"Main Loop Iteration: 530000\n",
"Cost: 0.18800221343692047\n",
"Main Loop Iteration: 540000\n",
"Cost: 0.18790611742091956\n",
"Main Loop Iteration: 550000\n",
"Cost: 0.18791102031306997\n",
"Main Loop Iteration: 560000\n",
"Cost: 0.18789986101532022\n",
"Main Loop Iteration: 570000\n",
"Cost: 0.18784174990813246\n",
"Main Loop Iteration: 580000\n",
"Cost: 0.1878071443349677\n",
"Main Loop Iteration: 590000\n",
"Cost: 0.1879335383219819\n",
"Main Loop Iteration: 600000\n",
"Cost: 0.18781617994957012\n",
"Main Loop Iteration: 610000\n",
"Cost: 0.18777427764315177\n",
"Main Loop Iteration: 620000\n",
"Cost: 0.1877702514455023\n",
"Main Loop Iteration: 630000\n",
"Cost: 0.18772719699241325\n",
"Main Loop Iteration: 640000\n",
"Cost: 0.18784974189640508\n",
"Main Loop Iteration: 650000\n",
"Cost: 0.18778164226478314\n",
"Main Loop Iteration: 660000\n",
"Cost: 0.18772454231418884\n",
"Main Loop Iteration: 670000\n",
"Cost: 0.18773257225831846\n",
"Main Loop Iteration: 680000\n",
"Cost: 0.1876919664290419\n",
"Main Loop Iteration: 690000\n",
"Cost: 0.18770653396391646\n",
"Main Loop Iteration: 700000\n",
"Cost: 0.1876525960598832\n",
"Main Loop Iteration: 710000\n",
"Cost: 0.18766035942045034\n",
"Main Loop Iteration: 720000\n",
"Cost: 0.18766284958236193\n",
"Main Loop Iteration: 730000\n",
"Cost: 0.1877076418970067\n",
"Main Loop Iteration: 740000\n",
"Cost: 0.18798656039321487\n",
"Main Loop Iteration: 750000\n",
"Cost: 0.1877033050136458\n",
"Main Loop Iteration: 760000\n",
"Cost: 0.18765479727780812\n",
"Main Loop Iteration: 770000\n",
"Cost: 0.1876277667822291\n",
"Main Loop Iteration: 780000\n",
"Cost: 0.18760546482807383\n",
"Main Loop Iteration: 790000\n",
"Cost: 0.1875773161571248\n",
"Main Loop Iteration: 800000\n",
"Cost: 0.1876266718310422\n",
"Main Loop Iteration: 810000\n",
"Cost: 0.18788793113262073\n",
"Main Loop Iteration: 820000\n",
"Cost: 0.18758266170000232\n",
"Main Loop Iteration: 830000\n",
"Cost: 0.1876053027542771\n",
"Main Loop Iteration: 840000\n",
"Cost: 0.18760601168832827\n",
"Main Loop Iteration: 850000\n",
"Cost: 0.18757466274218312\n",
"\n",
"Results:\n",
"\n",
"\n",
"Cost: 0.18757466274218312\n",
"Accuracy: 89.5\n",
"\n",
"\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# gradient descent\n",
"\n",
"detailed_logger = False\n",
"main_logger = True\n",
"main_logger_output_iterations = 10000\n",
"L2 = True\n",
"Dropout = False\n",
"hidden_layer_relu = True\n",
"hidden_layer_tanh = False\n",
"hidden_layer_sigmoid = False\n",
"\n",
"# hyber-parameters\n",
"alpha = .01;\n",
"epsilon = .10\n",
"keep_prob = .5\n",
"number_of_iterations = 850000\n",
"\n",
"# copy initalization\n",
"W = Weights.copy()\n",
"B = Bias.copy()\n",
"\n",
"# data arrays\n",
"cost_array = []\n",
"accuracy_array = []\n",
"interation_array = []\n",
"\n",
"# rename\n",
"X = np.float64(train_X).copy()\n",
"Y = np.float64(np.ravel(train_Y)).copy()\n",
"\n",
"X_test = np.float64(test_X).copy()\n",
"Y_test = np.float64(np.ravel(test_Y)).copy()\n",
"\n",
"#m = size\n",
"m = 200\n",
"\n",
"def model(W, B, A):\n",
" return np.dot(W, A) + B\n",
"\n",
"def activation_relu(Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" return np.where(Z > 0, Z, 0)\n",
"\n",
"def activation_tanh(Z):\n",
" return np.tanh(Z)\n",
"\n",
"def activation_sigmoid(Z):\n",
" return 1/(1 + np.exp(-Z))\n",
"\n",
"def loss(A, Y):\n",
" epsilon = 1e-6\n",
" return np.where((Y == 1), np.multiply(-Y, np.log(A + epsilon)), -np.multiply((1 - Y), np.log(1 - A + epsilon)))\n",
" #return np.multiply(-Y, np.log(A)) - np.multiply((1 - Y), np.log(1 - A)) \n",
" \n",
"def cost(L):\n",
" return np.multiply(1/len(L[0]), np.sum(L))\n",
"\n",
"def cost_L2(L, W, epsilon):\n",
" L2 = np.multiply(epsilon/(2*m), np.multiply(W[len(W)-3], W[len(W)-3]).sum() + np.multiply(W[len(W)-2], W[len(W)-2]).sum() + np.multiply(W[len(W)-1], W[len(W)-1]).sum())\n",
" J = cost(L)\n",
" return L2 + J\n",
"\n",
"def prediction(A):\n",
" return np.where(A >= 0.5, 1, 0)\n",
" \n",
"def accuracy(prediction, Y):\n",
" return 100 - np.multiply(100/len(Y), np.sum(np.absolute(Y - prediction))) \n",
" \n",
"def forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" print('Forward Propagation Training Data Complete')\n",
" return A_layers, Z_layers, D\n",
"\n",
"def forward_propagation(W, B, A, layer):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" A = forward_propagation(W, B, A, layer)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" A = activation_sigmoid(Z) \n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" print('Forward Propagation Testing Data Complete')\n",
" return A\n",
"\n",
"def dZ(dZ, W, Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" W = np.where(~np.isnan(W), W, 0)\n",
" dZ = np.where(~np.isnan(dZ), dZ, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" W = np.where(~np.isinf(W), W, 0)\n",
" dZ = np.where(~np.isinf(dZ), dZ, 0)\n",
" if(hidden_layer_relu == True):\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.where(Z > 0, 1, 0))\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), 1- np.multiply(A, A))\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.multiply(A, (1-A)))\n",
"\n",
"def dW(dZ, A):\n",
" return np.multiply(1/m, np.dot(dZ, np.transpose(A)))\n",
"\n",
"def dW_L2(dZ, A, W, epsilon):\n",
" return np.multiply(epsilon/m, W) + dW(dZ, A)\n",
"\n",
"def dB(dZ):\n",
" return np.multiply(1/m, np.sum(dZ))\n",
"\n",
"def backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D):\n",
" if(layer >= 0):\n",
" if(layer == len(W) - 1):\n",
" _dZ = A_layers[layer+1] - Y\n",
" elif(layer >= 0):\n",
" _dZ = dZ(_dZ, W[layer+1], Z_layers[layer])\n",
" if(Dropout == True):\n",
" _dZ = np.multiply(_dZ, D[layer])\n",
" if(L2 == True):\n",
" _dW = dW_L2(_dZ, A_layers[layer], W[layer], epsilon)\n",
" else:\n",
" _dW = dW(_dZ, A_layers[layer])\n",
" _dB = dB(_dZ)\n",
" W[layer] = W[layer] - np.multiply(alpha, _dW)\n",
" B[layer] = B[layer] - np.multiply(alpha, _dB)\n",
" if(detailed_logger == True):\n",
" print('Backward Layer: ' + str(layer))\n",
" layer = layer - 1\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D)\n",
" if(detailed_logger == True):\n",
" print('Backward Propagation Complete')\n",
" return W, B\n",
" \n",
" \n",
"# main loop\n",
"for iteration in range(1, number_of_iterations + 1):\n",
" if(main_logger == True and iteration % main_logger_output_iterations == 0):\n",
" print('Main Loop Iteration: ' + str(iteration))\n",
" \n",
" if(hidden_layer_relu + hidden_layer_tanh + hidden_layer_sigmoid != 1):\n",
" print(\"ERROR! Please Select Only 1 Hidden Layer Activation Function\")\n",
" break\n",
" \n",
" # forward propogation training data set\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, X, [X], [], 0, [], keep_prob)\n",
" L = loss(A_layers[len(A_layers) - 1], Y)\n",
" if(L2 == True):\n",
" C = cost_L2(L, W, epsilon) \n",
" else:\n",
" C = cost(L) \n",
" \n",
" if(iteration % main_logger_output_iterations == 0):\n",
" print('Cost: ' + str(C))\n",
" \n",
" # forward propogation test data set\n",
" A_test = forward_propagation(W, B, X_test, 0)\n",
" \n",
" # accuracy\n",
" _prediction = prediction(A_test) \n",
" _accuracy = accuracy(_prediction, Y_test) \n",
" \n",
" # storage for plotting\n",
" cost_array.append(C)\n",
" accuracy_array.append(_accuracy)\n",
" interation_array.append(iteration)\n",
" \n",
" # backpropogation\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, 0, alpha, epsilon, len(W) - 1, D)\n",
"\n",
"\n",
" \n",
"print('')\n",
"print('Results:')\n",
"print('')\n",
" \n",
"print('')\n",
"print('Cost: ' + str(C)) \n",
"print('Accuracy: ' + str(_accuracy)) \n",
"print('')\n",
"print('')\n",
"\n",
"\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, cost_array, 'red')\n",
"pyplot.title('Learning Curve - ' + str(len(X[0])) + ' Training Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Cost')\n",
"pyplot.show()\n",
"\n",
"# plot percent accuracy curve\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, accuracy_array, 'red')\n",
"pyplot.title('Percent Accuracy Curve - ' + str(len(X_test[0])) + ' Test Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Percent Accuracy')\n",
"pyplot.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see the cost is much lower with a lower reguarlization hyper-parameter. This could also indicate that we have slighly ovefit the data more than when we penalzied the weight variances more using a higher hyper-paramter."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training accuracy of logistic regression: 92 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test accuracy of logistic regression: 89 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEWCAYAAABmE+CbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsvXmUbFd93/v5naHmqq6e+/btvrMGhCYGARISg22wkbDBOEwCx0Mwz1FiXgJ+DlZs5yUvsf28MHlmOV6B2MRgHIODMJZBzIhBDAIxSEKz7th9b89TzVVn2O+PU1Xd1XWqu/re7tt32J+1et2+darO2aeqa//2/g3fnyil0Gg0Go3G2O0BaDQajebCQBsEjUaj0QDaIGg0Go2mjjYIGo1GowG0QdBoNBpNHW0QNBqNRgNog6DZIUTkbSLyxbN87WMi8optHtIFj4h8TkR+ZbfHcbaIyFdF5M27PQ7N2SO6DkEjIieAdyilvrwL1/5rYFIp9XvneJ4DwHGgWH9oHvjvSqk/PpfzXuyIyOeA2+r/jQIKqNX//zGl1G+e5Xn/GBhQSr3j3EepuVCwdnsAGs02k1VKuSLyQuDrIvIDpdSXtvMCImIppdztPOdOoZR6TeP37TK+mksX7TLSbIiI/IaIPCsiiyJyr4iMrjn2ahF5SkRWROQvROTrIvKO+rFfFZEH6r+LiPxXEZmtP/cREblWRN4JvA34HREpiMg/1Z9/QkR+pv67KSJ3i8hREcmLyA9EZHyzcSulHgIeA25cM95REblHROZE5LiIvGvNsbiIfERElkTkCRH5HRGZXHP8hIj8OxF5BCiKiLXJ+V4kIg+JSE5EZkTk/fXHYyLyMRFZEJFlEfm+iAzXj31tzftniMjvicjJ+vv2URHpqR87ICJKRH5FRE6JyLyI/Pstf7irY/3F+meyLCLfFJFr1hz7fRGZqt/HEyJym4i8Hng38Cv1z+179ed+V0TeXv/9N0XkKyLygfp5jzY+0/rxIyLyrfpn+nkR+aCI/OXZ3oNme9AGQdMREfkp4I+ANwF7gJPAx+vHBoBPAr8L9ANPAbd0ONWrgZcBVwJZ4M3AglLqQ8DfAn+ilEoppX4+5LXvBt4K3A5kgF8HSl2M/SXAtcCz9f8bwD8BDwN7gZ8G/o2I/Gz9Jf8BOAAcAl4FvD3ktG8F7qjfg7/J+f4M+DOlVAY4DPx9/fFfAXqAcYL37TeBcsi1frX+88r6mFLAn697zq3AVfVr/4GIPGej9ySM+vv0F8Cv1cfzN8Cn6wbvhvrjN9bHfAfBDuPTwPuBj9Q/txd1OP3LgIfq5/1zYO2E//fA1+rH/pjw91tzntEGQbMRbwM+rJT6oVKqSjD531z3198OPKaU+lTdffIBYLrDeRwgDVxNELd6Qik11eUY3gH8nlLqKRXwsFJqYYPnz4tIGfgOwUT36frjNwGDSqn/pJSqKaWOAf8DeEv9+JuAP1RKLSmlJuv3s54PKKUmlFLlLs7nAEdEZEApVVBKfXfN4/3AEaWUp5T6gVIqF3KttwHvV0odU0oVCN77t4jIWjfvf1RKlZVSDxMYphs2eF868X8Af14fh1c30lHgBYALxIFrALM+luNbOPdTSqmPKqU84CPAfhHJisiVwHOAxnv3NeBzZzF2zTajDYJmI0YJdgUA1CemBYIV8SgwseaYAibXn6B+7KsEK8T/BsyIyIdEJNPlGMaBo1sY8wDBavq3gVcAdv3x/cBo3X2xLCLLwN3AcP14y/2s+z3ssc3O9y8IdkRP1t1Cr60//jfAF4CPi8gZEfkTEbFpp+W9r/9urTk/tBrgUv2+t8p+4O519zEI7FVKPQa8F/gvwKyI/G3DvdUl68dHfYyjwFx9kdEg7P3WnGe0QdBsxBmCCQMAEUkSrG5PA1PA2Jpjsvb/61FKfUAp9QLguQQT5f/VOLTJGCYIXC5dU1/p/ilQAe5ac57jSqnsmp+0Uur2+vGW+yEwRG2nXjeujudTSj2jlHorMAT8v8AnRSSplHKUUv9RKXUNgYvttcA/D7lWy3sP7CNYsc9s4a3ohgngD9bdR0Ip9an6fXxEKXULgdsqBvzn+uvOJT1xChgUkeiaxzaNC2l2Hm0QNA3sesCz8WMB/wv4NRG5sf7l/UPgQaXUCeCzwHUi8vr6c/8VMBJ2YhG5SUReXF8JFwkmaq9+eIZgsunEXwL/j4hcIQHXi0h/l/f0xwQB6xjwPSBXDwzHJQhWXysiN9Wf+/fA74pIr4jsBf71Jufe8Hwi8nYRGVRK+cBy/TWeiLxSRK4TERPIEbiQvJDz/x3wb0XkoIikCN77T+xAdtOHgN8SkRfW39+UiPyCiCRE5BoReXn9sy/Xf9Z+bgfrC4Gt8jTwJPB7ImKLyMuAn9uOm9GcG9ogaBrcx+qXvgz830qprwC/D9xDsKo7TN1HrpSaB94I/AmBG+kaggBite3MQTD4fwBLBK6PBeB99WN/BVxTd1d8OuS17yeYrL9IMIH+FYFfuxs+W7/mb9T92D9PECA9TlCn8JcEwVKA/0Tg8joOfJkgYB52L0CwC9nkfD8HPCYiBYIA81uUUhUCo/nJ+r08AXwd+FjIJT5M4F76Rv38FeC3urzvrlFKfQt4F/BBAsP1NHAnwQ4gDvxp/d6mCNw9f1B/6ceBBLAoIt/e4jUVwd/RzxB8PncD/5sN3m/N+UEXpmm2hXoWzyTwNqXU/bs9nnNFRP4lwST+8t0ey+WAiPwj8F2l1B/t9lguZ/QOQXPWiMjP1rNGogSrPAG+u8nLLkhEZI+IvFSC/P+rgPcA/7Db47pUqbsQD9Tf758n2FHdu9vjutzRlcqac+FmgjhDBHgceH09JfNiJELgNjlI4Dr5OEHaqmZnGCNwRfYBp4Bfr2c1aXYR7TLSaDQaDaBdRhqNRqOpc1G5jLJWRI3Yid0ehkaj0VxUPFVZmVdKDW72vIvKIIzYCT585NbdHoZGo9FcVLz0J589ufmztMtIo9FoNHW0QdBoNBoNoA2CRqPRaOpog6DRaDQaQBsEjUaj0dTRBkGj0Wg0gDYIGo1Go6mjDYJGo9FoAG0QNBqNRlNHGwSNRqPRANogaDQajaaONggajUajAbRB0Gg0Gk0dbRA0Go1GA2iDoNFoNJo62iBoNBqNBtAGQaPRaDR1tEHQaDQaDaANgkaj0WjqaIOg0Wg0GkAbBI1Go9HU0QZBo9FoLmHuvuOurp9r7eA4NBqNRrNLbMUQNNAGQaPRaC4hYve/gXe/b+SsXqsNgkaj0Vwi3H3HXfC+s3+9NggajUZzkXM27qEwtEHQaDSai5RbHn0Pr3hvedvOpw2CRqPRXGTc/OHreeU9t8I2GgPQaacajUZzUfGJD94ZGIMdQO8QNBqN5iLh7jvugnt37vzaIGg0Gs0FTNM9dB7QBkGj0WguUO6+4y645/xdb9cMgoiMAx8FRgAf+JBS6s92azwajUZzoXA+dwVr2c0dggu8Ryn1QxFJAz8QkS8ppR7fxTFpNBrNrnK+dwVr2TWDoJSaAqbqv+dF5AlgL6ANgkajuezYruKyc+GCiCGIyAHgecCDIcfeCbwTYNiOn9dxaTQazU5zLtpD282uGwQRSRFskP6NUiq3/rhS6kPAhwCujmfVeR6eRqPR7Bjnqj203eyqQRARm8AY/K1S6lO7ORaNRqM5X1wI7qEwdjPLSIC/Ap5QSr1/t8ah0Wg054tPfPBOHr43u9vD6Mhu7hBeCvwy8KiI/Lj+2N1Kqft2cUwaDY7j4zqKSNTANGW3h6O5BGimke5glfF2sJtZRg8A+tumuWDwPcXpyRrloo8IKAW9/RYDQxbBhlaj2Tq7mUa6VXY9qKzRXChMnQmMgVKBMQBYWnCJRoVMVn9VNFvjQsoe6hb9V67RAJ6nKOb9piFooBQszLvaIGi6pmkILqDsoW7Rf+UaDYG7qBPeBsc0mrVcaGmkW0UbBI0GsGzBMMDz2o8lkub5H5DmomK3tIe2G20QNBpARBjaYzN92mlxGxkGDAzpr4kmnGYLy4skaLwZ+i9do6mT6bGwbYPFeQfHUSQSBr0DNratM4w07dx9x13b3sJyt9EGQaNZQzxhsHdfdLeHobmAuRizh7pFGwSNRqPpghtf43K78a6LOmi8GdogaDQazSZcqNpD2402CBqNRtOBy8UQNNAGQaPRaNZxqaSRbhVtEDQajWYNF5P20HajDYJGo9Fw+bmHwtAGQaPRXNZcymmkW0UbBI1Gc9lysWsPbTfaIGg0mssO7R4KRxsEjUZz2dAsLtOEog2C5rJHKcX8rMPyoofvQywuDO2JEI8buz00zTZxuaaRbhX9F6+57Jk+7bC0EBgDgEpZMXG8Sq3q7+7ANNtC7P43aGPQJXqHoLmscR1FPueFdkpbnHcZ2RvZnYFptgUdNN4a2iBoLmtqNR8R2gwCQKWidwgXKzpofHZog6C5rIlEjFBjABCLaY/qxYY2BOeGNgiayxrLFtIZs81tJAJ9A/rrcbGgg8bbg/6L11z2jOy1sWzasowi0Qt7h6B8RSHvU6l4RKIG6YyJYVx+3d0uZ+2h7UYbBM1lj4gwOBxhcHi3R9I9rqs4dbyK6yiUAjE85qYd9h+KYkcubEO2XWj30PZzefzlaDQXGLWqT6no4XkdAhibMDft4NRU082lfPA8mD7jbOMoL0xi979BG4MdQu8QNJcF1YpPqeRjWUIyZeyaa8V1FadPValWVDO7qX/Qon/Q3tJ5Cnkv9PFS0Ucphcil6TrSaaQ7izYImksapRRTpx0KuWACFQl+xg9EiZ6nLKJqxWdh3qVW8XFdhec1xhb8uzDnEo0apDLmeRnPxcgtj76HV7y3vNvDuOTRLiPNptRqPstLLvmch++fnYtjt8gte+RXggwipcCvu1YmT1ZRnfJNt5FyyePksSr5FY9qddUYrEUpWFxwt3TedI8JIZuAZMq45HYHd99xlzYG5wm9Q9B0RCnF7LTDytLq6hqC1XXsItH5WV4Kn2hdF4oFj1R6Z78CM1NOxzqHtXju1ozT4LBNueTjOArlgxhgmjAyeulUVus4wflHGwRNR4oFn5Wl1fz8xr+Tp6ocvjK2qytRp+azMOdSLPpYFvQN2KRDXC4b7WiWF3fGICilKBZ88jmXaqW7iT6Z3pqBNU3hwOEoxYJPteITiRqk0pfG7kArku4e2iBoOrK86Iaubn0fKmWfeGJ3fN6OozhxtNoUo3MdmJqsUQsJziZTJrVqeAB2J8TrfE9x6kS1a0MgAoYZGLStIiKk0iap9KUTe9C7gt1FGwRNRzq5OmSDY9tz3WCFXcx7GCb0ZK2WIrHFOadpDNaOdWHOpbffaskg6u2zWFoINwg7ka8/P+dQq2785oiAZQer/ETSpK/fwrQu/pX9uaCDxhcG2iBoOpLpMSmX/HYlUNixGIJSitOnapRKPqo+6S8teAyP2vRkgz/XUil8ZS8CtaoiFl+dXO2IQTpjkM/5bc/tH9z+P/9GAHsjMj0mw6P2JeHe2Q4+8cE7uVsbgwsCbRA0HclkTVaWPSrlVaMgAiOj9o7l8edzXj2XfvUxpWDmjNOUZrBtCV2FK0XoSntkbwQxHPIrwU7BMGBoj00iuf2uls02Tj29xiUV+D0XmvpD9+72SDQNtEHQdEREGD8QoVjwKeQ9LFPI9JpEdlAaIddhhS0SFF2l0iZ9AxalYq1NjC6eNLDtdoNgGMKevRGG9yh8D0yLHVudZ3pMlhc730Nv39ZjBZciWn/owmRXDYKIfBh4LTCrlLp2N8eiCWcrgUulArG1asXHjshZia0ZG0zUjUOJZOBymV2T0plMGZs2szEMwejCltWqPrWaIhqVLccZBgZtSkWfWlW1GYXBEavrYjjXrTfu8RWptHnBC+1tBR04vnDZ7R3CXwN/Dnx0l8ehOUc8LxBba+jriAR6O/sORrc0mfX0mhTyIStsgURy9Tw9WYtMj4lTU5imbEtQ1vcUpydqlEurTXNSaZM9Y937+w1T2H8oSActl3x8XxGLCcm0hdXlGHMrLtOnA00iBczPBsHyweGLe3ehDcGFz64aBKXUN0TkwG6OQROOUwtkFqJRA8MMJrLGDqCQ8zCtYFJurHgXZteJramgInjqdI39h2JdXzeZMuntM1larGcGSZDVNLYv0jYpiwiR6Pa5fmamnWYQvXEfhbzH4pzQP9T9ZHwu6aCep5g+3VrMpoClBZdU2iSe2Ni4FvIei/MunqtIpg36BuyuDdFO8YkP3snD92Z3dQya7tjtHcKmiMg7gXcCDNvxXR7NpY/nBVk+lbLfIr7WN2AxebJGubya/bO86DG0xyLba3f0/VfKCs8LVvHdMjgSoafPp1T0MQ0hmd5ZMTqlFNWKT265PT1VKZifd1lZ8YjHDfoHrR113xQ7iNYpFewc4onObrGFeYeF2dXakdqCR27Z48CR2K4ZhbvvuEsHjS8iLniDoJT6EPAhgKvj2YtLSOci5Mxk4DKBVvE111VtKahKweyUSzpjherqnAuRiLGtwevG7ia/4mEYgWsqnjDJLbuBvMSGLwanpnBqHvm8x95xm0TCRM7RSDW0lNbufDYbRyd8T7UYgwaeD0sLDoPD5zezKXb/G3j3+0bO6zU1584FbxA05w/XVZSL7Tn+SgUicZ0yZ8olv2N2TTwuW9odbMbZSDs3axvWpLOuLHtke4O02q0U2SkfJk86iOHQPxDsnHw/0Ewq5n0sW+jrtzas01BKMT/rsrToonywI8LwHptkyiSVMpmhvaeBCKSznV1Q1erqjq71YoEEyfls/qMlqi9etEHQNPE8VS9Dbj/WadJUCgS1ml1TWxVbMwwYGduelWluxWV+xsVxFKYVuLGyvVZXxqFYCHohrL+H5aVw90w3KD8I9ooolhZ9PHc1flLItRbSrachGNh4vlMLDNb4gSjxhMHwHrtFFE8k2NEkNpAKMS3p+BmdT3eRDhxf3Ox22unfAa8ABkRkEvgPSqm/2s0xXc5EItLJHoSvPgkeKxZ9kmmL/YeilIo+lXKQdppKb0+P30Leawm0ei7MTbugoLd/82BvIec14x5dIWDb4NQ2f+rcTHjcYXbKCU279T3VYgzWvmZhzmFsf5SeXotE0qjLjQeZTptVhkciBrG4UC61nlgE+gbOz9dcG4OLn93OMnrrbl5f04qIMLTHZuZMu2Tzeu2gtSwvegwMKQxDSKZMkqn2lWyt5rMw69a7lnVWJw1jbqZ9PErB/JxLtm/zXYKxxWQfAfYfjDE743QlRdGJ9TIaAI7beRdWXVN9bUcM+ga6i6H4vqJS9hkYtJmbdZrd2CDYSUUixo53UdPG4NJAu4w0LfRkLeyIsDQfuGfiCWFlqd3dsh7XVUQi4ROOU/M5GaJO6gxZXal8OrXwi/te4LqRTSb8nmxngbsweutic8N7bFxHUQqJq2yGUuGGyLalY3A4Ftv6hL1SD4o3bIxlCnv3R1B+sOOYm3WZn3Wx7KBae7O01bNBG4NLh0un/FGzbSQSJnv3RTlwOMbQSKSrFfJGfuqFOTdUnXR+zu2qA1snQ2OYQaxiM6Ixg3iiu8nWtKC3L5jJK2W/mXG1VSJRCc2SMgyht98idLGuApdSt1QqfrCb84MdnPIDafDpyRozZ2pUygrqNRVOTTFxsorrbG+i3o2v2VqnN82FjTYImg0RkZYK4fbjtElOr6eTOil0Xv2vZWDYbptARWBgsLugMsCevZGujIfnBu01nZrfIo2xEQ05DMMIxhWJCmP7oh2fPzBkhfr1i0WfiZPVzS9Yp1O/Cs8DN2xDpIIdhUbTCe0y0mzK8B6bk8erKL81sGwYgY+6t3/jPyPbltCJX/nh6qQQZDw1XDWJpMHoWITZmaAa2qpnGdkRg1PHq9RqPrGYwcCwTayDVpAdMdh/KMpcvRrZMKXjarlahWPPdDcxi8DoeIRYzKBS8TEtIRqVDQ2ViCDSHqhXCqqVIB6wWRC5kPea6q2hdEgAqHVhgLeC7mx2aaENgmZTIlGDQ0dirCwHLSGjMaGn1+q6vqChThqG66o2d9PKksP0GbdlVzCy1+bQFasSGLlll9OnVhVPiwWfUrHKvoOd+z1HowZj+4OVu1KKpx+vdDX+9TR2AZGoQd+A1TRCYcH0TlQr7eJ3wcmDmoKNDMLSgsPcTPjuADrXr4lAYgdiCJpLB/3XoekK0xL6Bmz2jEXoG7C3VGwW32Bym59tLcJaWXKZPhO4NRqaQkrB9GmnuaJXSjHbIfNobqa9qCuMQu7sYgMi0DdoceBwjNGxSMcdyWZEY9IxjhCtS2OsWElmo324a6Lmvh8UtXXsZifQP2CF9mhWCqwQefCz5eYPX79t59JcGOgdgmbHcRyFYYSnrhbzPrWaTyRiBAHRM+ETulJB85zefgvfC/zkYVTK3U30iwvdGQ6gxb2TyZr0b0Nef7bXYnHBRa25DxGIxQU/leBTI7eyGOnBUD5KhJvnf8w1+WO4jtpwBzA6HiGVNqmUPYr59l3ZmYkah6+KbUt9yCvvufWcz6G5sNAGQbPjWHbnKlqA6cka+w7FyK9sHPBsZCQZRsdU/q6rcjeqq1iLbQvjByO4TpDttF29j01L2H8wysyUQ6kYyE5ksiZDIzb/MHIbC9EsSgwa9uI7A8+j18kx5M51TluNG02F1TChvgalgk+qyxoQzeWFNgiaLeO5Cl8Fvv9usnxMU4J2nB2kIsp1RVRvg5RLMSBZn+zEEHp6zbaK34Y7p3neUiAF7TiKRNKgr99uukxSaYOlWueiM88wefq6l+ANZFmoznLtyjOYfpVSsX7OmiKeNOgfsLbcRKdBJGowfqA1G2nJTrMcyaDWpUS5YvBoz5W8ujJPKt3eM6LhKmqOv4M9UIDnq0DsL+dTqXhEIgbpnq1Vld/84evPS8czw/WxHB83YuCb2sO902iDoOka11VMrVFDNS1hz96NexMrFaiket7mS/Jk2mRpIUTWATh61VX89c+/lj/87F8AMDQSFLQ1jIxIkHnU0A/KLbtMr6m4rlYCKej9h2PYdhAPya20ahApoNaT4czoYU4duhZlCIjBYryXn6QO8ZIH7sUorLpharUg02f/4ei2KbOWzRgSprMhBkUrkH8f2WszfTrINGrc++CI1TSYAKmMST7fLtmh/MBQrq1GF/GYm3HYd2j77uOcUYq+6SLJXLW5HSz2RFkcThIefNmea5qODwKefXnuoLRB0HSFUoqJE9WW5vauo5g8WePAkfCJRKmgA1mpsHGls2EGu4h43eWxdvWrTGHiwEEeeO0dwGpV7H3+B/jx5yIMDitcV2Fb0pSjVkoxM90edPa8oHp3ZDSCaQoHD0cDldKCj2kbPPT8n2Y2MYBntFZP+4aFYwnPHrieK3/yYOsxHxZmXfZsQcRvIdLDw9mrWLYzDFcWuH7lKdJuCYCB6hJ+SMGE6bvsK04F75chjI5Hmrsq227fqaXSBvG40SZZLgIrS61WotHMaPp00OGuG3Y6fpCdK5HMVTEUTRdZcqWKaxnkBhLbfr1I2WXgTB7TDd4bN2IyN5rGjV5ehkEbBE1XVMoqvJZAwfKCy9Ce9gkxv+JtagwA+up1DCLC8KhFqmAEOfYCD//+z/DA7LVtq8LbjXfBHfD+356m8spPtRxz6oqrYZQKqwcMU/jSPb8CQO0xn9o/1dqMQfM+DZPF4TFYZxAASsXuZTEm40N8YeQ2PDFQYrAQzfJ0+gC/ePpLZJ0CEeVy0+KjPNR3Ha4RvC+m7xLzqlybe6blXKbZWVpcRBjbHyGf8+o9IATX3ViGo9HycyebEXVLerkSGIM1GAoyS5VtNwiG5zM8sYKx5q2xqx4jp1aYPNwLF8D7cb7QBkHThusqVpZcKiUfKyJke60g5bNDJLdWC3zSrqMw1kxS3fQasO1AyqFa8ZluyC0QrHCH90TI3zwO93b+Qr77fSNwx131HYOF56rwnsx1TCuQW7jdeFfgIrjHxbMsBifzJNbPQOvHWguvW+g20KyAbw7e1JzoAXwxqRnCg3038LMz3wLghpWn6avleCR7JWUzxv7iGa5beZqIV6NcVvieIpYwNk39FREyPRaZnuB6zz5Z7mqcm3HLo++B927PuUJRCulgt4wtSHt0S3Kl2vZ3LYD4ikShRinT3a7pUkAbBE0LtarPyWPVliyc5UWPWEI6rrqrVb+lyCuZNgKpiA3mK8OETI/JwKCN8uHU8dZrFvI+1eOVzo0Y1nG78S5GrznBqz/zaaiEr9hFoK/f5nbjt9j35FPcdP/XSRQKuLbN8SuvZergdR3904brMH70sdBz9nch0AdQM2wKVsjqVgzOxIdaHhovTzNensb3FdVK4Bo6PuXgeiqwyyqQwOjttyjkfZyaTzRmkEgaHQP9hiEbBu4Tye5alf5w/jiwg93QRKhFTaLV9s+xGmufsgzPx6p5uLaJb209BmI6fttuBABF04V0uaANgqaJ7ysmT1VDUzIrpUAywvPa52h3XUp/Me9zZqJGtjeoUF7/fNOEw1fFmhPX4ny4ZpBTg+wXngVu2nTspuPw8n+8F1Vrn0Qa82PfgMWr73keH3nfCW677/NYbpDmGqnVOPzkI0SrDiee84KW1xquAyKMH32cwTMn2s7ZP2iR7unOz2z5XqOjUBsRv71mYHnJZXY6UDJd+5k03qr5WZfFeRdf0WxKFIkI+w5EMUJ2D9l+k/kOFc6WFQSru+F8tMZcGk4yNJFD1mxMlcDS8BqDqhTZ2SLp5SpKBFGKcirC/J7Ultw81YSNH+KiQqAav7ymyAskpUCzE1QrPhMnqjz9RJmjT1dYXHCafXzX4/uKk8eqGzaFcV3oHzSxI4K5yRxYLvlEYpDOmM3JU4KkHUbHIy2r2I4yDsDYn34b6aJoYOTUBJ0aO8cTwuGrYgwM2bzynlu54YFvN41BA8t1GTv2BMr38IXmz9JAjCse/gbjRx/FiURwTZOnrr+Oe3/5bXzs/3wXe3/y5k3H1sDE50jhFKa/7tq+y/XLT7c8Vi55gbie37lmohEMbuzclB/0YFhf/d2gty8wXo1CO1g1BIeujGHbm08H50vdtJqwmT7QQzEToRYxKWYiTB3ooRZfNVrppQrp5SDwbPoKQ0FrLXu6AAAgAElEQVS8UKN3trila5VTNk7ExF/z5+MLVOM2tZAdyaXM5XW3lxG1mt8UpANwfRW0oKwphkMCwMuL7ubKowKpjEX/oEEh7zE1Wes4WYkEyqF7xiL0VnxKBQ/TFFIZs833HYsLuZXw85hllz0nTnLm0MGNh7aBa8kwW/3t6eXljve3NBJFGVHEV3imgRM1+eKdbyQ7P08iX2BxaIhKcnWV2ohhNGjEMjpx6/wPqJgRTseHMZWPJyZX5Y+1BYzD0m+7QSnIrXgM7Qm5PQl6IgwM+VQrQXZSdIvSG0/+zpvOW79kJ2qxMJrueDyzGB54Tq1UWdpKeqoIM/t7SC+WSa0Eu41CT5R8X2znUlwvULRBuERZnHPbc9BVkLc/MKTaJuVCbvNsIEMgUi/sMozOImqNazUmm1jM2FDzpydrMTvdeeW59/iJTQ3C9L59oUZBBHrqzekbwdDlwQHipybanusbBr4oEvkasVKwyhYFvgFLg0nOHOjfdIJoZD8B3PALy/zRpz/aYiBs5fGa6QfIWwnyVpJ0cZnKfImpWtCMqCdrBUqs7tkHTzcP5BvY3XmH2jgf7qJuMTrUtogKftQW5nJlCLmBxI6ktF5MbLg8EJGMiBwOeVyrWl3glDto+ojQUkvQoJs2kwPDVjPXP54wmn0Awujta98JdMIwpWMDGwEq8XjoMavmEam4oBRuxOabd7wG17JwTTOoyI1ZpDImyVQw0FfUM2N++LJbca3WtZBnGJiOw/O++QMSuWDladT916YP/TMlhk/lug5yAzx8b5bbjXdx9x13cfcdd7WIwaXdEr2L00w9nWNx3iWf85ibcTn+bAXXVSRTxoa2Z63bZz3dxjS2wvHEKH83fjv7nlxg77OLpJa6D/jvFNW4HboocW0DJUGWUGOM4vlESw5WSIxJs0rHHYKIvAn4/4BZEbGBX1VKfb9++K+B5+/88DRnSzRqUAvJ0lCq3sZxHb394QFggGhcGBi0mzo5ELgfxvdHmThZxV8TaDbMoIo4s8VJqbffolwK930nczmSuRzFTAYIskIGT+ewq149bCAsDCeYuPIK/uE3fp0DTz6FXa1y+tBB/u0P/6Et62Z+dJQvvemXeOH9X6d3bh6/bgx8y2biyPWEWToBIhWXRP7s0xBfec+tcEdQ0HX/H8X4ZP9/adnFKRXEaeZnHQaHbZaXvGCnsOYzMU2IRgPXWzxhMHkycNspFcRnLEsYHDrL5X8HTib28JXhm/EMCwEsV9X99IpCb7ixPh8sDSUYObkC6wLPhZ4Yo8eWsRwfJVCLmkQqXrDFVQonajI7ljmrjKRLnY3ekbuBFyilbgR+DfgbEXlD/djl5Vi7COkbaG/TKAKptBkqgZxMmc3XGEZ9crHh4JEoBw7FWoxBg2jM4PCVMYZGbCIxQQywLcGQcI0j5StKJa9ePdtqeVJps+Mu4fBjj/O6v/qfDJ+aAKUYmswRqXjBKt4Hw1f0TxeJlF1K6TSP3/RCHr71pcyPjvLvX/uvAIjd/4aWc86OjXHf2+/k737rLgzfx1SKo9e8cEOXUCNouR3c/lvzrOTDjWYhH8Rb9u6L4Fo2nmE0bYLvgxUx6O23icVNDl4Rw79qnPnrr8N5zkH2H45tmwBfg+/1XY9ntK4dDQXZ+fKu7hKcmMXUwSyFnii1iEkpHWFhJEnPQgnb8ZH6OKMVD4Pg78RQEKl4DJ7O79q4L2Q2iiGYSqkpAKXU90TklcBnRGSMjd3HmguAWNxg774IM2ccHEe1qGl2YmDIJttnUS75mGbgFtpMvK5aVcyukYmoVhVTp2u4rkVv/+q1inmPM5O15h+OITCyN9I0NCLC+IEoK8seC7MOa5OALM8DD277zH3846/9OlbNa1uRiIL0UpmFeHgQcq3vW/wgXTG1UkUUPPySV3PVI99hbvTAhgZBwbYJrHmW1XEyXUpmWLJjfG7kFopXp0Ap7FqVa37wdXqW5siveAwOKfyIzb37f4qcncITA1P5/Nir8brTXyHlbV/hWM5OhT5ueKrdV68Udq2Ga9uojXyKW0Q8n0jVw7WNFp0hN2KyuGd1fIOTQapqy2vXn4tgt2c63mWrWdSJjQxCXkQOK6WOAiilpkTkFcCngeeej8Fpzo1kyuTQlSa+pxCDrpRJLUtIb0Eaeb5Do5r5WZdsX9Dz2HECTaO1z/OA06dq2BEYHQu6nIkEVdGL8y5ha45ItUJqOY9a33uSuq/fCY+brE+VHJzMEy07zQyVfO8gP3rpazZd5QTuiO2pWq3FYsyMjTE8OYHpr15ZAYlCkW8Mv4x8JEOjEXTVsnnk5lfz4i9/kphbpVr1+fHIdSzZGfx6AMgXE1dMvj50E3dMfWNbxgmQcQosRrNtj/umtBiDfU89zYu+cj+xUgnfNHjqxhv54ctvOzfDoBQ982Uyi+VmU4pKwmZ+bzoQH1yHXW1fLIQigUHztte7dtGz0Sf1LwFDRK5pPKCUygM/B7xjpwem2T4MszuZ6rOhU0MapWh2OMstux0nW6cGEyeqLVk1nWqKxFfUElZoNpEvUEmFf7vX9v21ql6LMQhOLPiGieXUQlftDX21QjqCs4156d987e2UUumW90YIdkRHvvrFtvtUIsyMHQ7iQBHhmfT+pjFYfY7B6fgwbohA3tnyosVHWnL0IXi/l/vjzR3VyMlT3PbZz5EsFDB9H9txufpHP+amr9x/VtcUX5FeKDF6dJmehXLdPRi4fGJFh/6pQujrqnGra/eFE9G7g/V0/KtRSj2slHoG+HsR+XcSEAfeD9zV6XWay4tOUgdKrXpfPE9t6GQM0mFXV/E9fWZ7/MMQlgcHKPZkyPXF24qIfNMgn42xGXbNC01HVKZJLRYPdRlJ/SeVDzcYZ0sllWRq/77wt0YpeuemWh7yTYtqPEkiaRCJGKgN18LbtwDYX5pifk8Kxw5iGa5lsDSUpNC7+n7f8O3vhBb7XfHoT7BqW4y7KMXwyRWyc2Vs12+7EwNI5GtBFtE6VvoTKGn9c1sjmBq4/QQWh5KXlWhdt3SzjHgxMA58G/g+cAZ46U4OSnPxsFG6aqUSfA2TSZONFqxK0VIUl+0N0kUbqZWGAaap+NrrfgGAlcEE86NpKgmLWsQk1xdn6mAPqgv/vhM123zMAD6BoulGiAK70n2lbrToMDiRY+TEMj3zpdC8edtxOn4JTa/1WobrsKcyx+h4UFh4qDCB4bdmkonyGanMY6ntTa8sZ6LMjieJlSc59MS3OfT4j4gXViuC00vhxX5KhHixtKVrJfI17Kq36eRkuO336EZNpvf3UElY+BIYr+XBOCt9Maoxk1LKZnY8Q7GLxcPlSDf7XwcoA3EgBhxXqpPMmeZSolgIGqfUqkFV68CQ3ZbjbkcMqiFico2JHCCRCtfmX/vceMJY839hdCxCrepTLvtYlpBIGhR7Ms3nlNMRyunuexA0cCMmlaRNrLjqNlIAhuBYBpFN8tRNT7FRN+Z4oUbPXKnFly2AXS2TWq4ydbCnJTB94uqrGDt6DNtpPauJT65vcPX/vkuvm+fG2CxG/cwvXnyEM/EhylYMx7CxfAfL93j57Pe6ezO65O477iJWLHHHRz9GtFzGdl1c0+Ta732fL77ljczv2cPCyDDxZwuhk3gxHR6U7kQ8X+tqpWq6Ci/kT8CJWczu62l7vEMxvGYN3bzv3ycwCDcBtwJvFZFP7uioNLtCreZzZrLG0afKHHu6zOTJWlNnqFYLsofWunYAsr3t7h0IjEEsLuSWXU4erVKp+ERjElrMZlkSWkwViRr0ZC2SKRMR4f5femBb7nNuNE2+N4ZvCAqoJGym9mdYGk60+crXs5G2TWKlwsDpPNH66rbhaoIg/dHwfNJLrRLaE0cOMzM+hlMvHfZFcC2Lvf/5+bww/yR91WWytRWev/Q4v3DmqxhrnCExv8abJj7PzfM/Zl/xNFfkT/LPJj5Pj7u6cldKsbzkcvJYhRNHAz0rf52rpSFd7m+ghHrjA98iXixi191CludhOw4v/eznAfjxS28JMqfW4FgWD9/yEnxra3EXw1ebxwFk+zK+NKt080n9C6XUQ/Xfp4HXicgv7+CYNLuAU/M5eTRc6bSBUjA365DJms0gdTJl0ttnsrS42s4RYO++KIvzQf/hxq6gUlYYBvT2m+RzQS1COhNIYJ/XpiyGsDyUZHko2fKwG4XZ8Qy9M0Ui67JVFFBM252LmZSid7YULqPcuKwKVr8ra+QRlGHw1Te8nrGjxxh/5hmcaJRnr7uWpcUh/jD3F1ybe3bDW3k8c5gH+29ACHztz6QP8KqZb7OvFMQfzkzUKORXP9S5aZdCzmP8QBQRoZj3mD5Ta/ZgTqYMRvZGmlXmjQytfc88ixnyx5FeWSFaKrE0PMQX3vpmXvD1b9A/PUMlmeCRl7yYo9duPSGxkrSJFzvvwxRBQPhy62Z2PtjUIKwxBmsf+5udGY5mt1iYdzc0Bg08tzVgDDA4EiHb51Mq+himkEwZKAUTJ9qllhtVtYev3LoP9zu//kiz0nenqCZspg9miZYceqcLRGo+CshnoywPJzu+TlTgTtoIBXghBkUZBhNXHGHiiiNbGutipIcH+6/HM0xgdXL80vAtvP3kvahitcUYNCiXFMWCj21LWzpwoeBz+lSt2Urzd1//z+Fe2qQ+Vgev8OvStwt7RvjiW960pXsIo9ATJTtXaov1NILDvikU0xHsitue9aUU8UKNSNXDqRerXW4CdeeC3nNpgECuuhsMI/z7ZUcMenot0hkTwxBqVdXxe1jeoI3jThIpOwxO5thzbJne6QKm0zleUI1blDLRICNJIL1SJbOwWpkbKxTZ/+RTjJw8ifiBREJYXvxalEC+b/ukHp5J7QvtvwyKU4nRNvfeWop5t2X3tualVMo+tWrwGT18bxaU4uQVV9cNzyqeIUzvG8eJbm9HMWUazO1Nt8iQ+wLFdATfCFxKPQtlRk6uMDC5qi9luD6jx5YZOFOgZ75M/3SBvUeXL7smN+eCVjvVAIG+UZjo3VpEgoYwXRW42dIxQ9OObPz6oPdv0Ac4mTSagnoA9//SA2fV4D2Rq9I/VWg2XLFrHslcjekDPbgh+eippUoz/71Bz0IZZQiHHv8R1z74vebK2LVtvvjmN7LSF297TUNfB2ClP0a8sIThxymlO8s6d4srnXLuBU8MarXOE6HngeN0eLUEx170+sCgDJwpMDd6NSOnp+idOxOkuwoUM2keuP0153wfYVRSESav6GtKhVSSNsOncph+a0JtvOiQWq5Q6I3TO1vEclbTVMUH8X36pgvMjWXarqFpRxsEDRBoH4WK29VVwwwjMAa9/Ra+H7gcfF+RTIZrI9l2kBlUKrZmFolA3wYtJxfmHBbm3Oa3XgTG9weVzHCWbiOl6JsptkzUQn2lOV8K1dzPrpvYIYgB9M4WeO73H6rLaQQ7DKtW42c+eQ/3vPMdiILMUjmQzRYh1xulmoyw78nHuO2+b6BEMDyP2bExvva61+LEzj798WBxkiczB9uK0BTCeGmKvG0Q1IS3E0+a2I5PpUJbjciqdLmHWfOIF2qIGPzkRT9NIrdEemWBciLFqSP7qaQ6u9HOFWVIU0jQdLxQyRJDQXq5SqE3TiJXC5WpiBecdj+nJhRtEDQAJJImI6M2s9NOM5aQTBuMjNqISL0mQCiXPCZPBqs2BaAc+gYtBgbbJ/nRsQhTZ2oU635sw4ChPXZLiulaSkWPhbm6G2NNSujkyWpLy82tYrp+aBGTEFS9htGpmbsowVqXImoA0XKF/plZFvaMsDIQx/AUvhkUUoweP8FNX/t6M0MHYHhigpff+xm+/KZ/dlb3BLCnMkfGKbIY6Vmd7JTCVC6275LpNcmthDTakaCftVImK0teM6AM9f4RvSaWJdxuvIt4rRbscOrnKGV6KWV6AUJ7HneNUkQqLtGyi2sblFMb+/qNDYobRSlSi+UNS/EM1w8SArRR2BBtEDRNMtmgxaLrKAxT2voZKF815ZbXsjjnkkgaJBKtrhfDFPaOR/G8IKXRsjeW0FhZCu8SphSUij7JVHD+rbqNfEM6ThadsoaciBlakxCplkLPpUSwGxW5IvgmxEou4iuu/sGPWowBgOn7DE9MEs8XKHfI04/d/wYqr/xUp9uiYkZZttOtk5wInpg8mTnI9eoZsn0my4ur76sIjIzazc92/6Eo87MuxbqLrrffJNu7Oi04dnghnyLoaHZWKMXgRJ5Y2QlOZATv3/T+cPed6XgMT+RC33dfAkmR7Hy4QWgMfezYMr4hLA0mdFHaBmiDsEtUyj7LSy6eB+mMUe89vPurFxHp6OMvdQg8NzqxrTcIDcwQ4xLG+vz41mOrv5f/9w/B6N4gKNOglIoQL9Ra3EC+wEqHIO/SUILB0/m25/tSwrGstglelGJuNOhbaVfcYAJTQY7/0WtuJd+zlysefRDbXZVx8E2TeKnY0SBsxmy0D1N5+KwP9lpMJEa5fuUZhkYi9GR9Cvlgwk9nWl18dsRgz1h7ddfNH74e7gkqf6txi2jZbY2NCOR6tzaxpheXePGXv8Kek6dQhsn0+GGOXvNCfMtGoRg8nWfq4KqInng+yVyV9EI5UFZddz5FUGhYyMbILlTohNSfbHqB63CtK0rTyq5mGYnIz4nIUyLyrIi8dzfHcj5ZXnQ4dbzKypJHIecxfdph4kS1rUfAhYbvd5YkqpS9DSf0bmg0gF+PUpBIrv6pbtSzuBMLe1JUknYwqRvB5J7rj1PKhFc7V1IRZscyVOIWnilU4hazYxmOP/cIKwP9bYVk333VT+PZdqDDM5HD8BSGrzAVYBjMjh3i2z/7JhaG9javIUqx3N/fcczvft8Id9/RKhvmuoqpyRrPPFGm+sPjHHr0+5hOq1aQKJ/kmuK0aMygf9Cmt98KjfeEITe9qvn73FiGUjra1AiqRk1m9mXwtiAOFy2VuONj/4s9J05iKIXpuYyceobrv/vl4HoEHfAairV2xWXsmSX6ZkrYbmfVpqn9QaObThleYTGHnvntkwa/1Ni1HYKImMB/A14FTALfF5F7lVKP79aYzgeep5idbk33Uyoo2sqtePRkL9xNWyLZuZFyrQanjlfZdzB61kVm6YzJ8pJHZY3EhQgMjVhtO4z3//b0lvr7KkOYG8tgOj6m6+NETNQmu5Zq0mYm2S6B8Lm3vZUDTz7F+DPPUkkmePqGG1gaCmQmoiW3mcnUggjKtHjsha/gli98AiXw0Mtv66qKt2EUvvzz3+DjP/XQmuwgxfDEs6SX5njoFa9ruo5M5XPdysYFbeuplH3mZhz8ZJwJM8Ofv/kJOHgguIohLIymWFDJuotn65/vFY/8BNN1W1agpu+TXlkgtbxAIdswjCpogjSx0lLp3QnT9fEiFst9sbZEANXh9ZZOQ+3Ibs4+LwKeVUodAxCRjwOvAy5pg1Au+Q1Z9xaUgvwFbhBMUxgasZiZCslvV0Gv5nzu7O8haMsZoZD3ya94mCb09FnEYu0b2corPwVrVs9W1SM7XwqClJbBykCcSqp99e/ZBp59bhtj3zQ59txrOPbca9qOGf5abc1wjj73Bk5ddYAzBw9s6brv+JMhbrVMTGf1/TeUIl7K0z8zQW5oD4byuW3uIfpr4WJzYZRLPqenHNyKjxSLDFLklf/wjzzwmp/l5HOuXn2iyFmLqPbNzLSpoUKj/8MyhWw/CkgtVygnI5hed5dKrdRYGbTI98fBkCDt11N4pmAohYTM/TVd4dyR3XQZ7QUm1vx/sv5YCyLyThF5SEQeWva2p33hbmJ0XmRjdNmUfjfJ9tkMDodP+EpBIXduKpsigZ97dDzC8Ggk1Bisx6q67DmxTCJfw3J9YhWXwdN5ksud/co7RTVhbWgPXNvm0Ztv3rIxAOidncMst0+qpudxYP4YohSeGBxLjVMwW2MjPsKJxCgP9l3HY5kjVI3VrLDvOQN4lVaZact1edFXv7Ztct+Lw0Oh1c6CopjKogBTQWahwvCpXFfnbNSTBP8R8n1xJq/o49RVfZy+oo/FoWR4H4fBRNu5NAG7uRzdKClg9QGlPgR8CODqePbCdrJ3QTxhYEh7drhIIBR3MRCNGRgGoVIX293PtxsaMgdrrxzUDJQo9kTPa6qhbxosDSbonS2FujwEKCfPrk1Xvq8Xx7bblFE90+RU335qZrAjOp4cYyo2xJsn7iPqOzhi8k+jP8VSJI1r2Fi+y4N913Hq8CC1mMWd//UDodeLlsvY1eo51Uo0eOb667j2we9jrHEbeYZJLttPIdu/KgJY/7ebL7ovUImHTGH1z7uYjeGbBtn5Eqbj40RNloYS1OK6TVondnOHMEnQZ6HBGEGvhUsaEWFsfxTTDLojirFaAZxIXhwGIZE0QlVLRSDbd/7XGNGyG7q6EKV2Rbag0BdnZl8at95QpqnBI7A4lOgskLcJJ666Cte28dcYOF+EWiTO/Mj+5mNKDBzD4un0AQAe6bmKxUgGt74rcA0Lx4wwcDoPSlFKhWc5+aaJG9m6xHgY1USC+375Tqb372sG4k9dcRWPvvhVHVeGIaoaLb/7plDs2dhYldMRpg5mmbyyj5n9PdoYbMJu7hC+D1whIgeB08BbgDt3cTznjVjc4PBVMUpFH9+DeNLA2oWV9dkiIowdiDJ5sobnqmZMZHjU7srFsx3c8uh74L1BtohnG0HlcAi7JZFcS0Q4c8gmWnZJ5Gv4BhQzsc0VOpUiXnRI5KooEYo9UaqJ+kQesbnv7Xdy8xe+yMipCRBhemycY895cVvfYtewmIn2cx3P8HT6AJ7R/lU33SDA/vAtL+HmL3ypJZXWtSyeeP7zzq0f8jpyfX186c1vbLqhxp9ZqsdcQhBYGEqQWapiOR6uZVCNW8TKQW1HOR1heSCxaWKAZmvsmkFQSrki8q+BLxBINX5YKfXYbo3nfCMizUKri5Fo1ODQFVGqFYXvK2Jx47xKWL/ivaupgyv9CQbOtNcMFDPRTQXntoVOsggiVBN2c0Lv5jz9Zwok6vUSCkjmquT64qzU/d6FbA9fevMbMTwPBdg1n+FTuTaZDV/g9O0H4K+/i7kvFQjXd+D4c68hVi5z47e+3ezq9tSNN/Dj23aoMaIIhueH9saGxurfoJiNUezdPjFAzebsakqLUuo+4L7dHIPm7BERYvHzv0Jbn5tfTkdYGkrQOxeokQpQSkdY3ECu+pxRitRyhZ75MqancG2D5f44vm3gGxI00tli7CJacpvGAOoNdhRkFssUeqItef8NYb1azAiqqtf0b1AAIjwzleXuO+4ivVAiK+0pmW7ExLOD8zzxwhfw5PNuJF4qUY3FgpqKHcQ3BF8Es4NRmB1Ln9fYjybgws1x1GhCaDRsWU+hN04hG8NyfDxTuuqvfC6klypk51Yb4tiOz8B0sals6pkGs/syoVIMnUgUam0yEZnFWQ48+UNu+cIKub5enn3u8ymmh/BNCQrr0hFm92Xomy6SyAdZeLWYxcKeZDNWke+LEy86QaxF0ZTqnlsn6qdMc1tUWLtChOWBOL1zpbYK6Jm96fY+B5rzgn7XNRcVtxvv6nxQZEsT8FmjFD3z7WqojRU9gLiBK+f04WzbSje1vMKRR39CrFTkzMGDTBw5jDIM/HU2LDs/xbUPfpmlob088fyX40SiDE9OUMhUWBoeo3+qgF2No4wKmaUpSqkU0+PjsN4YijA7niFadomUXTw7kPI4mwKz5ik9n0S+huErKkl767pGSuFGgqb38ZKL4SucSJAFVE1uTyBbs3W0QdDsKEopCnm/2aylp9cilTbOSrdpvavoXDEdj97ZEvFCDWUIhZ4oywOJTSdK8VXnYGjjOQQ9lCMVtyWzZezZo7z83s8gvo/p+xx6/EkWhwb54pvfSLEnRmax0jQqhx/7PhNHrmfi8DX4VnCOcjLdFNEzfJ+XfPHzDMxMoERQAtV4nC+89c0UMxmsqkeiEKiVltKRrcUzNiBachiaqNcK1MuBiz3RwEXXxedqeD7DJ3NYjtfcsbiWwcx45qwzsDTbgzYImh1DKcXUaYdCblVts1SskcqYjIYIqm1EJ1fR2SKez54TK6uiaZ4ivVQhUvGY3bdxMxVlCL4hmJsZBQV21WsaBMPzuO0z97VU7NqOQ9/MLEcefYynn3cDi8NJ+maKIBCplJk48lx8c/VrqkwLJwL4PqMnn2Jg+lRLhpXluLz8H/+Jb/3cL5JZLDcn3OxciYWRJKV6mub+p57m2ge/R7xYZGrfPh5+6S0Usu0yHe03rxicbA3goyC5XCVSdrFcv14pnqCcDv+Me2dK2Gt6G4gCcXz6Zoqs9MebBrqUjjRjHJrzgzbHmh2jUlYtxgBWq5nL5a3VB2zoKjoLUitVxFdtxWzRsoNd2dj4iK+oRc2uiqfWnqt/KjzVx3ZdDj3xBBAUU50+0svCSIqF4VEkpPpPmUHAevTEU23ptoZS9M3MMXhmAaNerGeo4Kd/uojh+jz3we/x0vs+x8D0DMl8gUOPP8FrP/I3JHObVwjHSi4ScucGEKl6mJ4iWvUYONO5UjyRr4YW7CXyNUZOrpCdL5OdKzF6bJnEyvmvNr+c0QZBs2OUihv0Nyh0L3HxiQ9uf3nKejnntUQ2avyiFCMncy3FcJ3UiwSw1xTG+abZMdVyrayDbxqUMlGOP+dK/E51ACJEKuGqnYLCcMPvIbVU5MZvfQd7nR6SXavxwq88sKkx3KiGOKxSHKUwHY/MfInsTJFYsbZhGXKoEfO0GN35QhsEzY5hmNIpPX9Luk0P35vd/ElbpBY123RuGjiRzl+LRL6G5XgtX5xOd6KASMmhd7qI6XgsjAxTi0Wb86FnmMzsPcixq27k6Rte2KYb9Ox1V9e7lYVb1UqiQx8FBdUOx9LLS6FGxlCKwakzjJxcIZ6rdrgjqGyh0leUIrlSZfTYMj3zZTJLFQYn8/hm+x5jo0g1vVIAABVdSURBVN1WvBDe1U6z/egYgmbHSGdM5qbDv8yZTHe+4U988E64dztHFVDIxuhZrKCUalnpOxEzqCHowEY7izC5ZcuH9HKFZK7K1IEMX3/tGxg8vYgTjeHYUQTwTQuFMHJ8mZX+BF7ECMZgGKz0J8kstbtYfEMoZHrJrCy0jcM3wltFioJ4UTBDdg8KqCRSzVX5ZLpDS0tDmB9NB7IXrMmq6vCGtPWyVoCvgi52SmGooIiOMMlwzXlH7xA0O4ZlCXv3RTAMWn727ot0LYK3E7sDCFpnTu/LUIuZTZdPI6d/o0wZ1zZCdxZhbiNZ86/hKwZPF4iVDIrZAWrxFMq0guwhEQwFkZrPwFSB4VM5Ro8tY9U8itlYs7ZhPZml2dDHi/Wex41x+WvG5sQSLA2O4q3bJfimyakrrquPV2Fv4DYrpyKcOZRlpT+Gb3RWqSwn7dCDhoJqzGJxJMVKX4zF4SSz45mO91lObbIrUYpoySFSdrZNnfVyRe8QNDtKMmVy5KpYM4gcjxtIl/nvO7U7aODELKYPZMGvL0+7SJks9kTJzpfbdhaw8QpXoKWaOHhQ2p7TaPcojs/QRI4zh7Is98fJLrTGCxZGkjz+oufzvG8+0BIP8AyT4895fnNctaiJZwqxNTubJ17wMq760QP1dFUD3zB45toXs9I/0rwhfxOXnmebFHvi9HRoXakE8n0x4qddwhxCygjeS1htZZnvjZFeCtJuG69YGEluqEcVK9QYOFNoBrqVCLNjaS1id5Zog6D5/9u71xDJ8rOO49/nXOreXd09Pbe9ZHbXlVyMm6jZkGhAE1fcRFGyENCACgaCqEQxL4wGwYhvJOIbFcyCwRdGjRCXLAaNG4nkRaJmkU1M3ESW4G5m59Iz3dNd99s5f1+c6tvUqb7MVPWp6vl9YGD7VvWc6u3z1P/2PFNnnt1RJddpjQ5GHOOAVuwnI4vVK3WCftJDoJf36ZRCFjY6E5v2MJLic2E3or5aor2YT7ZjWrIdMw48XvyhH6Sfy/GmL3+FYqNJq1Llpe97nK3Vi0mrUN9j7cHFkWmbKAj5n8ffidfvEvR79AvlnSJ2DujngyNt93RjRgfJc3h0S2Hq2kBspDa63zxXJvaguj48i2FQrvdoV3KpJ8/9fjzS9zrpIlfn8qPLJ1PH6pRRQjiF6rWIW+sDoshRrnisrIZzVU111vULAVcfXiLsRMS+EeV8/H7Ewq3O2NXRmOPPkTsDL0oecJDzqa/cVujNjJce+35eemw41RM5yrUuYS+iVwhoLiSnkbuFgOKeGknbBmGerTMLVOpJosE5BqHPjQeOVr4i9j06hWEF0r2fN6gvFcCMGw8scO5yLXkBYOcQW1pPiHyzT3W9sxung0Kzz+qVBjceHD0bUq6N2ZLqHKV6bzgCkeNQQjhlbq712bi527O514uob0U89GhhpC/xLJv0qeRJKjR7nLnaxB9uh2yXQ25erHDzYoXVqw0wdlo3bs+Lb50pUmr0yHX2TxvtvUeP7M130EtrADOG843G8ug77+ZSnupGGxftn+aKAqO2WmLzXJlcZ0AceEl7yWOcIl+/b4Hzr2wlr8XwYtrlkPpKEkfkG/3Q39nK28v7bJ0ppj5HdWO0HIjnoNDq4/fjkdan3sCN1H7a+Zq2qt4RJYRTJIrcvmQAgIMogs2NAWfOzse86qRPJU9S0B2MnNQtNPqcu1zn+qUqlys58q1kZ9UgMHLtAcVmj3K9Ry/0oJCsJTiS+e7mYo7YNypbPbwo3il77Qw2zpcnMu0R+x7XLlVZvt6k2ExiMyAYOC5+Z5NuMUhOBi/mj91vOAo9rjyyRL6VnFLuFfydukYWxVx4uYa35wBgrhNx4eX0Gk9+f8xCtiU3+NsTQqcSsrDZSU0KnQmU6LgXKSGcIp12vNOsZi/noFmPOXM2m7iOa9Knkidpb62hbR6Q6wwIugMG+YBuMeTMtcZO9VEYHlLrRjiDtfsrDMKAQW53e2jtTInyVodio0/sG/Xl4rFGB4cZ5Hw65ZBCq7+/vDbsTPkUWn0qmwHXD9lphXOUaz1K9S6x51FfztMth9x+eqFc62Fu/2nwZMdVTLHRHylt0SmFhL3RLbY4UosWdkoh3WJIvr17TfGwbpOqpd4ZvWqnSBDY2F13QTg/00WzLOhF6dsszQj6MYM8nH21ltrWc7sa6tLNdrK7ae/Pe5aU8J5iQ5hSbXQdYTsuSKZncp2kw1trccz8u3Ocf3mLXDfaGc2U6l1unS3RGK5x+P0IL3IEvTFnNmIIUkYDtTNFyrXevhFFbCSd0dJGSmasPbhAeatLZSvpMNdYytMaU0NJDqeEcIrkCx65vNHt7P8rNIPlVf2qJ6FbCsl3Rm90nnP0CwFBLzrw8Bok0yZju6xNkTvCqSPPJTf4cQmhvNXdSQawm+SWb7TolAJWrzX3nWGIjdHXwkg9/BeFPlcfrlK92abQ6hMFHrWV4tgiecljWdJZLWXXkhyf7hKnzAOX8rz6SjdJCpb8wZ67GFIs6gziJNSXCyxsdvYt0MbDnTNR4FFo9pMX/YCEEHs29WSQa/cp1Xo4D1qLefr5gMZSgXy7cWCychzch7pUTx9lYHD+ch1/4EYWzfee4I4NevmA7pjpsCj02bg4piSHTJ0SwikTBMalRwr0ezFRDPmcHfkgmBwuDjyuPlRl6UaLYrNP7Bm15cLO7p5e3h+78wWGWzJTdgJN0vK1RlLNdRjH4kaHzbMl6kt5CpUc5Xpv9xBcisYB77ZjL71EB2646yflZ3o5jyByOJLEubVaUnvMGaWEcEqFOQ/ts5iOKPRZvy99r34ceNSreSpb3Z130nvzQ3Mxz9bq9NYJcu3+vueG4brFWoulm7s9p8cZhF7qdE7YGbB6tZFa0mJ7xxS4kZGRkbxe1x45uMeEzAYlBJEJu3W+TD/ns3irk7SYLAY0F/N0S+FddwTz+xG5djK/3iuGI++0S7XRvswwnOvf09Bn3AnitNGLN4i58EptX/+InbNjlkyB3bxvgfOXR/spxJDsStrs0FrI4+boLMy9SAlBZNLMaKwUd3bdTIRznLnSoLxnK6szuPaaKv098/HjFo7TdjztrcEUW1LpNW26qLLVGRlZGMnNfnO1lBxCM6O2lKyv7B0ZGVBsDSi0Byyvtbj+mkVtCZ1h+s2IHMCimMpml2KjRxR6RzsfMNynv7jexo9iOqWQzbOl1L30R1Xe6uzM/e8+D1x8eYtXXruyM1JoLeZTz0qkXhvDqqSlgGY1T3Mhn1rXKejFYxeSnW9Y7Fi4lewMGoQ+4PCi4b/tb3VJS9Wzr9a58sjooTSZDUoIImNs9132B8MTxO1kl83G+fKB2xyr620W13fLMJTqPYrNPlceqhIdMylYlBTQq95sj32XX97q7sTTzwdsni2xdKO1+30H9CxwJOWsm9Xx19MrBsS1bmpS6Of8fa8RJKON2LOR2vrbBfuCfnxXyVGmRwlBZIyFW519N7rtPfcra02ai+nvpi1y+5LB9s8RO6obbTYuHG1Lpd+POHOlQaF9eBmP2xd66ytFWgs5is3+TgnsC6/U0pvQeEll0oM0F/NJQhrE+7aPdoshuc5g32sEwzaYkfoSzCNtThcZY+yeeyDXTb9Rh70o9a24wU6No0M5x/lXajslJW5fyL1dJ6VyaBQm6wHNpQL9Ysj1lGqh27uDWpWDT/Y6z7j6UJVGNU/kG4PAqK0UWXtgIbWK6t7HH4kr8BiEuu3MKo0QRMZIDmilFFxz4w9vRaGXOn/vYDi/frhCs4+/59047E4P7T0DkDyml5oQbtcrhVx/zSKrVxo7lUCj0GPt/oUj9YOIA4+NixU2bvv8IPRxpJfp2NtFzhlgxs37F7R+MMOUEETGqK8U9hVOg92+y+PmwKPAo10OKTRv+zlLavUcRdBPL91swMAHf5ijmgs5Ni6Uj3yD7ZZCXv2eJYJeDJZeMG4f5/aVrU57nvpygXKtO3arqwO2VgpEOZ/mQnqjG5kdSggiY7QrObbOFKmut3GWNIUfhN6hDWRu3rfAyrVki6gjmXJZP1+me8SSzL1C+o06Ntg8V7m7xi9mDI5Q4jrX7ifdyIZrAc4zbty/MHIN/ULA+oUyq1ebY4r+JSefj7uYLtlQQhA5QG21RGO5QK49IAo8+kdoIOM8Y/2+BTZil9TxD7xjTZP0Ckmtn71F8pKGNl7SBW3KLIo5/90a3t6BSuQ4990arz66PDJd1qoWaG11KLVGK8E6s5E+BjK79JsSOUTse3Qqwxr7x7ixO8+S3sTHnTM3Y+2BRbZWigwCj8g36kt5rj1UPVb/5ztVqvfGrmCXar3Uz0fh6HtLBzQXc1ozmCMaIYjMIHOO2DdalZB+3qdZLZxY03g/Sm9NaQ78Qdoiu6NSG21skzTdmd3udzJKCUEkQ7n2gMpmBy+OaS0kzV2CfsyF/9vCnMNzydpBdb3NtUtLJzL90ikFOGMkKTiDTml0ysqLx/c2DgbqbTxPlBBEMlLZaLN8o4UND4wVG30WNgOcY1/XMM+BDRzLa81k2+Yhws6ApZstcp0Bg9Bna7VIp3z0tYdeIUjabTb3t6bslEK6pdFbRuwZsW/4KYfRjtujWbKlhCCSAS+KWb7RGjnhm2vtP4y2LUkY6fP3e4WdARde3tpJMsFgQO5ynfULZVoHlKfY/2TJjqLt1pSQ9DFoVPPp6wFm3DpbYuV6c9/1xAabZ0tHe06ZCUoIIhkY11nNG/3UriMszi6v7Y44dh7TwcpaK2mLedQF3mO2pmwuFYh9j+rNFkE/pp/3uXWulJTolrmRSUIws/cBvw+8Hnirc+75LOIQyUo8pi+AAyID/7abemzQWDx82ifXGT01DMkUlBc54mB6C9PthdzB/Y9l5mW17fQbwFPAlzJ6fpFMdUrhsMvYKI/95SmS09Eem+fKhz7uuEJ1Sa9kbf+Ug2WSEJxzLzrnvp3Fc4vMBDPWHlwk8o3YS3oVb+/Hub1SqjOorRSPtO10a7VIfNu3xQaNpWNMF8k9a+bXEMzsg8AHAc6H0+tFK7Phze++d/at9woBlx9dTnbzxA5/ELM03HW0l+eS/fyt6uGP2VrM4/djltZbO4sRzWqeW0cYXYhMLSGY2ReACylf+qhz7rNHfRzn3NPA0wCvKy6pyLqcLmZ0huWni/Ve6kJzbByrZHT9TJH6SoGgn5TNOKkDbTL/ppYQnHNPTOux5fR6j/ehrEPITLsSEpthuJGF4YM6mqUyU1cyOTbVMpKZ8fZPPpZ1CNky4/qlKv28n7ShNBgEw7UGFYiTE5DVttP3An8KnAU+Z2YvOOd+MotYRGbJIOdz9eEl/F6EORjkjlcpVeRuZJIQnHPPAM9k8dwyu975mXdkHcLMUP8AyYLGoTIT7vnpIpEZoIQgM8Ee/4msQxC55ykhyEz4sY+0sw5B5J6nhCAiIoASgsyAwhefyjoEEUEJQWbAb/1x2oF2ETlpSggiIgIoIUjGPv2J92cdgogMKSFIpr727FLWIYjIkBKCiIgASgiSIU0XicwWJQTJjKaLRGaLEoKIiABKCJIRHUYTmT1KCJIJHUYTmT1KCCIiAighSAZ+96d+NesQRCSFEoKIiABKCHLCNDoQmV1KCCIiAighyAn64f/+cNYhiMgBlBDkxKhNpshsU0KQE6HRgcjsU0KQE6HRgcjsU0KQqVOZCpH5oIQgU6cyFSLzQQlBpkqjA5H5oYQgU6XRgcj8UEKQqdHoQGS+KCHI1Gh0IDJflBBkKt7+yceyDkFEjkkJQabinZ95R9YhiMgxKSHIxH36E+/POgQRuQNKCDJxX3t2KesQROQOKCHIRGntQGR+KSHIRGntQGR+ZZIQzOzjZvYtM/u6mT1jZppjOAU0OhCZb1mNEJ4D3uicewz4X+B3MopDJkijA5H5lklCcM79i3NuMPzw34EHsohDJkf9DkTm3yysIfwy8E/jvmhmHzSz583s+c2od4JhyXGo34HI/DPn3HQe2OwLQFrtgo865z47/J6PAm8BnnJHCMTMbgAvTzTQ6VsFbmYdxBScxuvSNc2H03hNMN3ruuScO3vYN00tIRz6xGa/BPwK8OPOuVYmQZwAM3veOfeWrOOYtNN4Xbqm+XAarwlm47qCLJ7UzJ4Efhv40dOcDERE5klWawh/BiwAz5nZC2b2FxnFISIiQ5mMEJxzj2bxvBl5OusApuQ0XpeuaT6cxmuCGbiuzNYQRERktszCtlMREZkBSggiIgIoIZyI01i7yczeZ2bfNLPYzOZ6C6CZPWlm3zazl8zsI1nHMwlm9kkzWzOzb2Qdy6SY2YNm9kUze3H4/95vZB3T3TKzgpn9p5l9bXhNH8syHiWEk3Eaazd9A3gK+FLWgdwNM/OBPwfeDbwB+Hkze0O2UU3EXwFPZh3EhA2ADzvnXg+8Dfi1U/C76gLvcs69CXgz8KSZvS2rYJQQTsBprN3knHvROfftrOOYgLcCLznnvuOc6wF/B/xsxjHdNefcl4CNrOOYJOfcVefcfw3/uw68CNyfbVR3xyUaww/D4b/MdvooIZy8A2s3yYm7H/juno8vM+c3mXuBmT0E/ADwH9lGcvfMzDezF4A14DnnXGbXlMk5hNPoGLWbBsCnTjK2O3WUazoFLOVz2os9w8ysAnwG+E3nXC3reO6Wcy4C3jxcW3zGzN7onMtk7UcJYUKcc08c9PVh7aafJqndNBc3nMOu6ZS4DDy45+MHgCsZxSKHMLOQJBl8yjn3D1nHM0nOuU0z+zeStZ9MEoKmjE7AntpNP6PaTTPnq8D3mtnDZpYDfg54NuOYJIWZGfCXwIvOuT/JOp5JMLOz27sOzawIPAF8K6t4lBBOxqmr3WRm7zWzy8Dbgc+Z2eezjulODBf7fx34PMki5d87576ZbVR3z8z+FvgK8Fozu2xmH8g6pgn4EeAXgHcN/45eMLP3ZB3UXboIfNHMvk7y5uQ559w/ZhWMSleIiAigEYKIiAwpIYiICKCEICIiQ0oIIiICKCGIiMiQEoLIhJjZP5vZpplltm1Q5G4oIYhMzsdJ9smLzCUlBJFjMrPHh70tCmZWHtaxf6Nz7l+Betbxidwp1TISOSbn3FfN7FngD4Ei8NdZFSMTmSQlBJE78wckpQY6wIcyjkVkIjRlJHJnVoAKSY2qQsaxiEyEEoLInXka+D2S3hZ/lHEsIhOhKSORYzKzXwQGzrm/GfZk/rKZvQv4GPA6oDKsBPsB59xcVoGVe5OqnYqICKApIxERGVJCEBERQAlBRESGlBBERARQQhARkSElBBERAZQQRERk6P8B7J/oPpD4X/wAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def predict_plot(P, X):\n",
" pred = prediction(forward_propagation(P[0], P[1], np.transpose(X), 0))\n",
" return pred\n",
"\n",
"# forward propogation test data set\n",
"A_train = forward_propagation(W, B, X, 0)\n",
"\n",
"# accuracy\n",
"_prediction_train = prediction(A_train) \n",
"_accuracy_train = accuracy(_prediction_train, Y) \n",
"\n",
"print ('Training accuracy of logistic regression: %d ' % float(_accuracy_train) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Training\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X, Y)\n",
"\n",
"# forward propogation test data set\n",
"A_test = forward_propagation(W, B, X_test, 0)\n",
"\n",
"# accuracy\n",
"_prediction = prediction(A_test) \n",
"_accuracy = accuracy(_prediction, Y_test) \n",
"\n",
"print ('Test accuracy of logistic regression: %d ' % float(_accuracy) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Testing\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X_test, Y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As we can see we did slighly overfit the training data more than when we had a higher reguarlization L2 hyper parameter. This lines up with what we would intuitively expect. Since we did not penalize the variance of the weights as much as previously, some of them recieve more critical changes than others resulting in some overfiting of the training data.\n",
"\n",
"Now now we will look at drop out as a technique for reguarlization. Dropout is where we turn off, and only keep on certain neurons in each layer, each iteration, based on a keep-probability hyper-parameter. We will start with a keep-probabiliy of .85 and see what results we achieve. \n",
"\n",
"First we reinitialize our weights and bias's."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Feature Size: 2\n",
"Weights Shape: (20, 2)\n",
"Bias Shape: (20, 1)\n"
]
}
],
"source": [
"# initialize weights & bias\n",
"np.random.seed(10)\n",
"size = len(train_X[:,0])\n",
"print('Feature Size: ' + str(size))\n",
"\n",
"lower_bound = -.99\n",
"upper_bound = .99\n",
"\n",
"#mean = 0.015\n",
"#std = 0.005\n",
"\n",
"\n",
"# hyper-parameters: hidden layers\n",
"hidden_layers = 2\n",
"units_array = [20, 10]\n",
"Weights = []\n",
"Bias = []\n",
"for i in range(0, hidden_layers):\n",
" if(i == 0):\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], size]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" else:\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], units_array[i-1]]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" \n",
"# output layer\n",
"_W = np.float64(np.random.uniform(lower_bound, upper_bound, [1, units_array[i]]))\n",
"_b = np.float64(np.random.uniform(lower_bound, upper_bound)) # b will be added in a broadcasting manner\n",
"\n",
"Weights.append(_W)\n",
"Bias.append(_b)\n",
"\n",
"Weights = np.array(Weights)\n",
"Bias = np.array(Bias)\n",
"\n",
"for index in range(0, len(Weights) - 1):\n",
" Weights[index] = np.where(Weights[index] != 0, Weights[index], np.random.uniform(lower_bound, upper_bound))\n",
"\n",
"#print(train_X.shape)\n",
"#print(np.ravel(train_Y).shape)\n",
"\n",
"print('Weights Shape: ' + str(Weights[0].shape)) # matrix with a size of # of units X 784\n",
"print('Bias Shape: ' + str(Bias[0].shape)) # vector with a size of the # of unit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we run gradient descent with dropout."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Main Loop Iteration: 10000\n",
"Cost: 1.3782215993025186\n",
"Main Loop Iteration: 20000\n",
"Cost: 1.4960904491843472\n",
"Main Loop Iteration: 30000\n",
"Cost: 1.407189595249288\n",
"Main Loop Iteration: 40000\n",
"Cost: 1.6669136124280886\n",
"Main Loop Iteration: 50000\n",
"Cost: 0.975890596161313\n",
"Main Loop Iteration: 60000\n",
"Cost: 1.2924007541561704\n",
"Main Loop Iteration: 70000\n",
"Cost: 1.424587154324683\n",
"Main Loop Iteration: 80000\n",
"Cost: 1.2569386513678142\n",
"Main Loop Iteration: 90000\n",
"Cost: 1.0945716769486817\n",
"Main Loop Iteration: 100000\n",
"Cost: 1.4958703256817794\n",
"Main Loop Iteration: 110000\n",
"Cost: 1.0025054288411999\n",
"Main Loop Iteration: 120000\n",
"Cost: 1.2498264813152238\n",
"Main Loop Iteration: 130000\n",
"Cost: 1.5512016137794342\n",
"Main Loop Iteration: 140000\n",
"Cost: 1.4851820361744437\n",
"Main Loop Iteration: 150000\n",
"Cost: 1.0826413354122641\n",
"Main Loop Iteration: 160000\n",
"Cost: 1.1104802810609196\n",
"Main Loop Iteration: 170000\n",
"Cost: 1.265841341186896\n",
"Main Loop Iteration: 180000\n",
"Cost: 1.3992414223761995\n",
"Main Loop Iteration: 190000\n",
"Cost: 1.098810208061231\n",
"Main Loop Iteration: 200000\n",
"Cost: 1.3683432065851837\n",
"Main Loop Iteration: 210000\n",
"Cost: 1.25360682669363\n",
"Main Loop Iteration: 220000\n",
"Cost: 1.3746645748184123\n",
"Main Loop Iteration: 230000\n",
"Cost: 1.1488688000068588\n",
"Main Loop Iteration: 240000\n",
"Cost: 0.9168176963303543\n",
"Main Loop Iteration: 250000\n",
"Cost: 1.4228161994572361\n",
"Main Loop Iteration: 260000\n",
"Cost: 1.1286919723600375\n",
"Main Loop Iteration: 270000\n",
"Cost: 1.420816738048625\n",
"Main Loop Iteration: 280000\n",
"Cost: 1.1131620221274214\n",
"Main Loop Iteration: 290000\n",
"Cost: 1.406167261299415\n",
"Main Loop Iteration: 300000\n",
"Cost: 1.2144028409786276\n",
"Main Loop Iteration: 310000\n",
"Cost: 1.3955816139051018\n",
"Main Loop Iteration: 320000\n",
"Cost: 0.7806740576876086\n",
"Main Loop Iteration: 330000\n",
"Cost: 1.1862465717704929\n",
"Main Loop Iteration: 340000\n",
"Cost: 1.4736722110005933\n",
"Main Loop Iteration: 350000\n",
"Cost: 1.183389248399037\n",
"Main Loop Iteration: 360000\n",
"Cost: 1.0687744738018754\n",
"Main Loop Iteration: 370000\n",
"Cost: 1.0997088085266946\n",
"Main Loop Iteration: 380000\n",
"Cost: 1.3322025202752519\n",
"Main Loop Iteration: 390000\n",
"Cost: 0.43966913461493945\n",
"Main Loop Iteration: 400000\n",
"Cost: 1.2674283538786244\n",
"Main Loop Iteration: 410000\n",
"Cost: 0.9973978656959059\n",
"Main Loop Iteration: 420000\n",
"Cost: 0.9834550402129792\n",
"Main Loop Iteration: 430000\n",
"Cost: 1.059964468976263\n",
"Main Loop Iteration: 440000\n",
"Cost: 0.9929487600027282\n",
"Main Loop Iteration: 450000\n",
"Cost: 1.119538177102335\n",
"Main Loop Iteration: 460000\n",
"Cost: 1.4991019410676516\n",
"Main Loop Iteration: 470000\n",
"Cost: 1.500270878267172\n",
"Main Loop Iteration: 480000\n",
"Cost: 1.3255732126674642\n",
"Main Loop Iteration: 490000\n",
"Cost: 1.495760573494124\n",
"Main Loop Iteration: 500000\n",
"Cost: 1.3408312026413736\n",
"Main Loop Iteration: 510000\n",
"Cost: 1.1345550754156941\n",
"Main Loop Iteration: 520000\n",
"Cost: 1.4100186190977422\n",
"Main Loop Iteration: 530000\n",
"Cost: 0.8432902973353674\n",
"Main Loop Iteration: 540000\n",
"Cost: 1.239669104800375\n",
"Main Loop Iteration: 550000\n",
"Cost: 1.0905363297587831\n",
"Main Loop Iteration: 560000\n",
"Cost: 1.0325154481891268\n",
"Main Loop Iteration: 570000\n",
"Cost: 0.9790092597003068\n",
"Main Loop Iteration: 580000\n",
"Cost: 0.714288349353455\n",
"Main Loop Iteration: 590000\n",
"Cost: 1.0194438863456228\n",
"Main Loop Iteration: 600000\n",
"Cost: 1.2032818163934016\n",
"Main Loop Iteration: 610000\n",
"Cost: 1.3483581743846018\n",
"Main Loop Iteration: 620000\n",
"Cost: 1.126361694674699\n",
"Main Loop Iteration: 630000\n",
"Cost: 1.459434654282875\n",
"Main Loop Iteration: 640000\n",
"Cost: 1.170805646204366\n",
"Main Loop Iteration: 650000\n",
"Cost: 1.1772659227289244\n",
"Main Loop Iteration: 660000\n",
"Cost: 0.9996386561699637\n",
"Main Loop Iteration: 670000\n",
"Cost: 0.7746674975192529\n",
"Main Loop Iteration: 680000\n",
"Cost: 1.6796365969288303\n",
"Main Loop Iteration: 690000\n",
"Cost: 1.2130513530285219\n",
"Main Loop Iteration: 700000\n",
"Cost: 0.7693653685437414\n",
"Main Loop Iteration: 710000\n",
"Cost: 0.9964200392963392\n",
"Main Loop Iteration: 720000\n",
"Cost: 1.1163529900500384\n",
"Main Loop Iteration: 730000\n",
"Cost: 1.171671735740732\n",
"Main Loop Iteration: 740000\n",
"Cost: 1.3057228382218302\n",
"Main Loop Iteration: 750000\n",
"Cost: 0.8524209195134281\n",
"Main Loop Iteration: 760000\n",
"Cost: 0.9579596756148742\n",
"Main Loop Iteration: 770000\n",
"Cost: 0.9513103641493519\n",
"Main Loop Iteration: 780000\n",
"Cost: 1.2161379527877783\n",
"Main Loop Iteration: 790000\n",
"Cost: 1.3858458838911651\n",
"Main Loop Iteration: 800000\n",
"Cost: 1.3863382878077262\n",
"Main Loop Iteration: 810000\n",
"Cost: 0.785668137562652\n",
"Main Loop Iteration: 820000\n",
"Cost: 0.6332213840824832\n",
"Main Loop Iteration: 830000\n",
"Cost: 1.50419208291395\n",
"Main Loop Iteration: 840000\n",
"Cost: 1.1329333265358217\n",
"Main Loop Iteration: 850000\n",
"Cost: 1.2996507884623112\n",
"\n",
"Results:\n",
"\n",
"\n",
"Cost: 1.2996507884623112\n",
"Accuracy: 88.5\n",
"\n",
"\n"
]
},
{
"data": {
"image/png": "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dxyMHAn33tuwLEiNPvgAZs9udC5EJNItbRzRozLXpvDgoqQNzex5M7vHzFZNmf5AMxtnZuPa2tpqy8SUKeH9009rm14aY8YMWGIJOOywRudERCK5Bw4z60d4QtXh7l581H4GWNbd1yQ8IazkMy3c/SJ3H+ruQwcMqMutVqSnmD49vN92W2PzISJfyzVwRM/MvQW4xt1vLR7v7p+6+4zo892EZ+72zzNPIiLSNXn2qjLgUuBldz87Jc2SUTqiB9HPQXiOsoiINKk8SxzfAfYCNkt0t93GzA4ys4OiNMOBF83seeBcYPfcn2LVm3tVvfAC/Pznvfs39jaffALbbQfvvdfonIhULbfbqrv7o4BVSHMecF5eeejAymald9hii9AD6fjjQ4NyNY48Ev74RwWbRrnsMrjzTvj97+HskgVzkaajK8db3R//2OgciEgP03qBY9QoOProRudCRHqK55+Ht99udC6aSusFjpkz4cwzG50LEekp1loLll220bloKq0XOPIwYUK4pYlIHs46C3bYodG5EPla6wSOrjaO33knXHll5+FTp8Kaa8J++3Vt/iJpfvELGD26tmn/9z947rn65kdaXusEjq7abjvYZ5/Ow2fMCO+PP969+Wk1X30Ft97a+3p/5f179tsP1l4bar1Vj0gJChwx9+x/4hkzdO+rWsycCaee2vHGhdOmlb+RYVsb7LwzXHVVfvl6551QMq33Mq68svJZf17dxZ94IrzPnFn7PM47D773vfrkR3oFBY7YwIGw9NLZpllkEVhjjXzy0xXNflZ+0knwq191rPpbeGHYd9/OaYt/y/vv55evl14K7/UOHPvsE876e6qf/Qz+9a9G50KaiAJH7P33wxlnFs12q++ecpFjfPb72Wcdh199dffnpSd75JHCXZ+7w1dfdd+ypKm1TuBIO6i6wyGHdBz23HPwu99lm//bb+vW3/UQ95d/5x145ZXG5qXZbbIJrLNO9y3vyy+7b1nS1FoncKSZMQP+8peOw9ZeG449Nvu8/vzn+uSpEeLbl5ez1VbwjW/km49NNw3vgwfDyivnu6w8fPhh6IHXXep5j6szz4TTTgsli2HDQolGpAQFjkZ7881QGorr17tTMli0t3cef/zxMG5c4fv994f85qmn3+xvu+3Ca9q06tIXt+GcfDJcckn981WNo4+GE04I1bb33gu7796Y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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# gradient descent\n",
"\n",
"detailed_logger = False\n",
"main_logger = True\n",
"main_logger_output_iterations = 10000\n",
"L2 = False\n",
"Dropout = True\n",
"hidden_layer_relu = True\n",
"hidden_layer_tanh = False\n",
"hidden_layer_sigmoid = False\n",
"\n",
"# hyber-parameters\n",
"alpha = .01;\n",
"epsilon = .10\n",
"keep_prob = .85\n",
"number_of_iterations = 850000\n",
"\n",
"# copy initalization\n",
"W = Weights.copy()\n",
"B = Bias.copy()\n",
"\n",
"# data arrays\n",
"cost_array = []\n",
"accuracy_array = []\n",
"interation_array = []\n",
"\n",
"# rename\n",
"X = np.float64(train_X).copy()\n",
"Y = np.float64(np.ravel(train_Y)).copy()\n",
"\n",
"X_test = np.float64(test_X).copy()\n",
"Y_test = np.float64(np.ravel(test_Y)).copy()\n",
"\n",
"#m = size\n",
"m = 200\n",
"\n",
"def model(W, B, A):\n",
" return np.dot(W, A) + B\n",
"\n",
"def activation_relu(Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" return np.where(Z > 0, Z, 0)\n",
"\n",
"def activation_tanh(Z):\n",
" return np.tanh(Z)\n",
"\n",
"def activation_sigmoid(Z):\n",
" return 1/(1 + np.exp(-Z))\n",
"\n",
"def loss(A, Y):\n",
" epsilon = 1e-6\n",
" return np.where((Y == 1), np.multiply(-Y, np.log(A + epsilon)), -np.multiply((1 - Y), np.log(1 - A + epsilon)))\n",
" #return np.multiply(-Y, np.log(A)) - np.multiply((1 - Y), np.log(1 - A)) \n",
" \n",
"def cost(L):\n",
" return np.multiply(1/len(L[0]), np.sum(L))\n",
"\n",
"def cost_L2(L, W, epsilon):\n",
" L2 = np.multiply(epsilon/(2*m), np.multiply(W[len(W)-3], W[len(W)-3]).sum() + np.multiply(W[len(W)-2], W[len(W)-2]).sum() + np.multiply(W[len(W)-1], W[len(W)-1]).sum())\n",
" J = cost(L)\n",
" return L2 + J\n",
"\n",
"def prediction(A):\n",
" return np.where(A >= 0.5, 1, 0)\n",
" \n",
"def accuracy(prediction, Y):\n",
" return 100 - np.multiply(100/len(Y), np.sum(np.absolute(Y - prediction))) \n",
" \n",
"def forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" print('Forward Propagation Training Data Complete')\n",
" return A_layers, Z_layers, D\n",
"\n",
"def forward_propagation(W, B, A, layer):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" A = forward_propagation(W, B, A, layer)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" A = activation_sigmoid(Z) \n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" print('Forward Propagation Testing Data Complete')\n",
" return A\n",
"\n",
"def dZ(dZ, W, Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" W = np.where(~np.isnan(W), W, 0)\n",
" dZ = np.where(~np.isnan(dZ), dZ, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" W = np.where(~np.isinf(W), W, 0)\n",
" dZ = np.where(~np.isinf(dZ), dZ, 0)\n",
" if(hidden_layer_relu == True):\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.where(Z > 0, 1, 0))\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), 1- np.multiply(A, A))\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.multiply(A, (1-A)))\n",
"\n",
"def dW(dZ, A):\n",
" return np.multiply(1/m, np.dot(dZ, np.transpose(A)))\n",
"\n",
"def dW_L2(dZ, A, W, epsilon):\n",
" return np.multiply(epsilon/m, W) + dW(dZ, A)\n",
"\n",
"def dB(dZ):\n",
" return np.multiply(1/m, np.sum(dZ))\n",
"\n",
"def backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D):\n",
" if(layer >= 0):\n",
" if(layer == len(W) - 1):\n",
" _dZ = A_layers[layer+1] - Y\n",
" elif(layer >= 0):\n",
" _dZ = dZ(_dZ, W[layer+1], Z_layers[layer])\n",
" if(Dropout == True):\n",
" _dZ = np.multiply(_dZ, D[layer])\n",
" if(L2 == True):\n",
" _dW = dW_L2(_dZ, A_layers[layer], W[layer], epsilon)\n",
" else:\n",
" _dW = dW(_dZ, A_layers[layer])\n",
" _dB = dB(_dZ)\n",
" W[layer] = W[layer] - np.multiply(alpha, _dW)\n",
" B[layer] = B[layer] - np.multiply(alpha, _dB)\n",
" if(detailed_logger == True):\n",
" print('Backward Layer: ' + str(layer))\n",
" layer = layer - 1\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D)\n",
" if(detailed_logger == True):\n",
" print('Backward Propagation Complete')\n",
" return W, B\n",
" \n",
" \n",
"# main loop\n",
"for iteration in range(1, number_of_iterations + 1):\n",
" if(main_logger == True and iteration % main_logger_output_iterations == 0):\n",
" print('Main Loop Iteration: ' + str(iteration))\n",
" \n",
" if(hidden_layer_relu + hidden_layer_tanh + hidden_layer_sigmoid != 1):\n",
" print(\"ERROR! Please Select Only 1 Hidden Layer Activation Function\")\n",
" break\n",
" \n",
" # forward propogation training data set\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, X, [X], [], 0, [], keep_prob)\n",
" L = loss(A_layers[len(A_layers) - 1], Y)\n",
" if(L2 == True):\n",
" C = cost_L2(L, W, epsilon) \n",
" else:\n",
" C = cost(L) \n",
" \n",
" if(iteration % main_logger_output_iterations == 0):\n",
" print('Cost: ' + str(C))\n",
" \n",
" # forward propogation test data set\n",
" A_test = forward_propagation(W, B, X_test, 0)\n",
" \n",
" # accuracy\n",
" _prediction = prediction(A_test) \n",
" _accuracy = accuracy(_prediction, Y_test) \n",
" \n",
" # storage for plotting\n",
" cost_array.append(C)\n",
" accuracy_array.append(_accuracy)\n",
" interation_array.append(iteration)\n",
" \n",
" # backpropogation\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, 0, alpha, epsilon, len(W) - 1, D)\n",
"\n",
"\n",
" \n",
"print('')\n",
"print('Results:')\n",
"print('')\n",
" \n",
"print('')\n",
"print('Cost: ' + str(C)) \n",
"print('Accuracy: ' + str(_accuracy)) \n",
"print('')\n",
"print('')\n",
"\n",
"\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, cost_array, 'red')\n",
"pyplot.title('Learning Curve - ' + str(len(X[0])) + ' Training Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Cost')\n",
"pyplot.show()\n",
"\n",
"# plot percent accuracy curve\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, accuracy_array, 'red')\n",
"pyplot.title('Percent Accuracy Curve - ' + str(len(X_test[0])) + ' Test Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Percent Accuracy')\n",
"pyplot.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After 850,000 iterations our cost converges to around 1.29, and our testing accuracy is about 88.5%. We can note from the learning curve that because during every iteration only a subset of the neurons are being trainied, the learning curve jumps around rapidly. Usually, there is still a downward trend. In this case we convege rapidly so this trend can be hard to see on the learning curve. However, the test accuracy curve provides some good insight into how the network is improving. \n",
"\n",
"Now let's look at the decision boundary."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training accuracy of logistic regression: 93 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test accuracy of logistic regression: 88 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def predict_plot(P, X):\n",
" pred = prediction(forward_propagation(P[0], P[1], np.transpose(X), 0))\n",
" return pred\n",
"\n",
"# forward propogation test data set\n",
"A_train = forward_propagation(W, B, X, 0)\n",
"\n",
"# accuracy\n",
"_prediction_train = prediction(A_train) \n",
"_accuracy_train = accuracy(_prediction_train, Y) \n",
"\n",
"print ('Training accuracy of logistic regression: %d ' % float(_accuracy_train) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Training\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X, Y)\n",
"\n",
"# forward propogation test data set\n",
"A_test = forward_propagation(W, B, X_test, 0)\n",
"\n",
"# accuracy\n",
"_prediction = prediction(A_test) \n",
"_accuracy = accuracy(_prediction, Y_test) \n",
"\n",
"print ('Test accuracy of logistic regression: %d ' % float(_accuracy) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Testing\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X_test, Y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As shown, dropout reguarlization help to smooth the curve and prevent overfitting compared to the network that that did not include any regularization techniques. This helps the boundary generalize to the test data. \n",
"\n",
"Now we wish to invetigate the change in the keep-probability hyper-parameter for dropout. We will increas this to .95 and analyze the results.\n",
"\n",
"First we reinitialize our weights and bias's."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Feature Size: 2\n",
"Weights Shape: (20, 2)\n",
"Bias Shape: (20, 1)\n"
]
}
],
"source": [
"# initialize weights & bias\n",
"np.random.seed(10)\n",
"size = len(train_X[:,0])\n",
"print('Feature Size: ' + str(size))\n",
"\n",
"lower_bound = -.99\n",
"upper_bound = .99\n",
"\n",
"#mean = 0.015\n",
"#std = 0.005\n",
"\n",
"\n",
"# hyper-parameters: hidden layers\n",
"hidden_layers = 2\n",
"units_array = [20, 10]\n",
"Weights = []\n",
"Bias = []\n",
"for i in range(0, hidden_layers):\n",
" if(i == 0):\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], size]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" else:\n",
" _W = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], units_array[i-1]]))\n",
" _B = np.float64(np.random.uniform(lower_bound, upper_bound, [units_array[i], 1]))\n",
" Weights.append(_W)\n",
" Bias.append(_B)\n",
" \n",
"# output layer\n",
"_W = np.float64(np.random.uniform(lower_bound, upper_bound, [1, units_array[i]]))\n",
"_b = np.float64(np.random.uniform(lower_bound, upper_bound)) # b will be added in a broadcasting manner\n",
"\n",
"Weights.append(_W)\n",
"Bias.append(_b)\n",
"\n",
"Weights = np.array(Weights)\n",
"Bias = np.array(Bias)\n",
"\n",
"for index in range(0, len(Weights) - 1):\n",
" Weights[index] = np.where(Weights[index] != 0, Weights[index], np.random.uniform(lower_bound, upper_bound))\n",
"\n",
"#print(train_X.shape)\n",
"#print(np.ravel(train_Y).shape)\n",
"\n",
"print('Weights Shape: ' + str(Weights[0].shape)) # matrix with a size of # of units X 784\n",
"print('Bias Shape: ' + str(Bias[0].shape)) # vector with a size of the # of unit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we re-run gradient descent with our updated hyper-parameter."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Main Loop Iteration: 10000\n",
"Cost: 0.5359519845787896\n",
"Main Loop Iteration: 20000\n",
"Cost: 0.7733333701165739\n",
"Main Loop Iteration: 30000\n",
"Cost: 0.48369309336163846\n",
"Main Loop Iteration: 40000\n",
"Cost: 0.5357720696190724\n",
"Main Loop Iteration: 50000\n",
"Cost: 0.3728185101009353\n",
"Main Loop Iteration: 60000\n",
"Cost: 0.3905542551773027\n",
"Main Loop Iteration: 70000\n",
"Cost: 0.5907365656564663\n",
"Main Loop Iteration: 80000\n",
"Cost: 0.7206534547399903\n",
"Main Loop Iteration: 90000\n",
"Cost: 0.4056943138381125\n",
"Main Loop Iteration: 100000\n",
"Cost: 0.586695608450397\n",
"Main Loop Iteration: 110000\n",
"Cost: 0.600281492731963\n",
"Main Loop Iteration: 120000\n",
"Cost: 0.5420357619832692\n",
"Main Loop Iteration: 130000\n",
"Cost: 0.683625600370674\n",
"Main Loop Iteration: 140000\n",
"Cost: 0.5333309264745878\n",
"Main Loop Iteration: 150000\n",
"Cost: 0.38708464002314447\n",
"Main Loop Iteration: 160000\n",
"Cost: 0.3054834924868257\n",
"Main Loop Iteration: 170000\n",
"Cost: 0.3753207207124224\n",
"Main Loop Iteration: 180000\n",
"Cost: 0.5208020675461629\n",
"Main Loop Iteration: 190000\n",
"Cost: 0.5091682176735521\n",
"Main Loop Iteration: 200000\n",
"Cost: 0.6530640022977038\n",
"Main Loop Iteration: 210000\n",
"Cost: 0.6468381457604305\n",
"Main Loop Iteration: 220000\n",
"Cost: 0.39142813668031445\n",
"Main Loop Iteration: 230000\n",
"Cost: 0.6740383544687906\n",
"Main Loop Iteration: 240000\n",
"Cost: 0.48069336682457275\n",
"Main Loop Iteration: 250000\n",
"Cost: 0.590419911750823\n",
"Main Loop Iteration: 260000\n",
"Cost: 0.4424683687251241\n",
"Main Loop Iteration: 270000\n",
"Cost: 0.49112918701997305\n",
"Main Loop Iteration: 280000\n",
"Cost: 0.5122120025346916\n",
"Main Loop Iteration: 290000\n",
"Cost: 0.5055848641030353\n",
"Main Loop Iteration: 300000\n",
"Cost: 0.47434408757108976\n",
"Main Loop Iteration: 310000\n",
"Cost: 0.3851971171358548\n",
"Main Loop Iteration: 320000\n",
"Cost: 0.33439290909501823\n",
"Main Loop Iteration: 330000\n",
"Cost: 0.5111250321309374\n",
"Main Loop Iteration: 340000\n",
"Cost: 0.5071449834393922\n",
"Main Loop Iteration: 350000\n",
"Cost: 0.5693762714884636\n",
"Main Loop Iteration: 360000\n",
"Cost: 0.5899084089417571\n",
"Main Loop Iteration: 370000\n",
"Cost: 0.3751147300348566\n",
"Main Loop Iteration: 380000\n",
"Cost: 0.5688294444014198\n",
"Main Loop Iteration: 390000\n",
"Cost: 0.31204476651699387\n",
"Main Loop Iteration: 400000\n",
"Cost: 0.5031641387595327\n",
"Main Loop Iteration: 410000\n",
"Cost: 0.4386201759566845\n",
"Main Loop Iteration: 420000\n",
"Cost: 0.3543287018192189\n",
"Main Loop Iteration: 430000\n",
"Cost: 0.700128480758693\n",
"Main Loop Iteration: 440000\n",
"Cost: 0.5994077597857038\n",
"Main Loop Iteration: 450000\n",
"Cost: 0.44318567026324973\n",
"Main Loop Iteration: 460000\n",
"Cost: 0.49447145940309\n",
"Main Loop Iteration: 470000\n",
"Cost: 0.7750507376799459\n",
"Main Loop Iteration: 480000\n",
"Cost: 0.5109958186435761\n",
"Main Loop Iteration: 490000\n",
"Cost: 0.30279736100834703\n",
"Main Loop Iteration: 500000\n",
"Cost: 0.3581580931243712\n",
"Main Loop Iteration: 510000\n",
"Cost: 0.433295695379448\n",
"Main Loop Iteration: 520000\n",
"Cost: 0.4128190596570345\n",
"Main Loop Iteration: 530000\n",
"Cost: 0.34013510526726565\n",
"Main Loop Iteration: 540000\n",
"Cost: 0.7149860018732456\n",
"Main Loop Iteration: 550000\n",
"Cost: 0.5067940697287606\n",
"Main Loop Iteration: 560000\n",
"Cost: 0.5127368286964193\n",
"Main Loop Iteration: 570000\n",
"Cost: 0.3579989557880591\n",
"Main Loop Iteration: 580000\n",
"Cost: 0.22485890039793296\n",
"Main Loop Iteration: 590000\n",
"Cost: 0.2067046989647354\n",
"Main Loop Iteration: 600000\n",
"Cost: 0.5636531256280524\n",
"Main Loop Iteration: 610000\n",
"Cost: 0.6619791133874131\n",
"Main Loop Iteration: 620000\n",
"Cost: 0.5021517723585172\n",
"Main Loop Iteration: 630000\n",
"Cost: 0.6527526939063181\n",
"Main Loop Iteration: 640000\n",
"Cost: 0.42360309057074164\n",
"Main Loop Iteration: 650000\n",
"Cost: 0.45159715842475756\n",
"Main Loop Iteration: 660000\n",
"Cost: 0.22271425281534954\n",
"Main Loop Iteration: 670000\n",
"Cost: 0.38707920173347954\n",
"Main Loop Iteration: 680000\n",
"Cost: 0.7795593201675561\n",
"Main Loop Iteration: 690000\n",
"Cost: 0.49682613298487865\n",
"Main Loop Iteration: 700000\n",
"Cost: 0.34758183261792697\n",
"Main Loop Iteration: 710000\n",
"Cost: 0.4312181743771329\n",
"Main Loop Iteration: 720000\n",
"Cost: 0.27975830531795587\n",
"Main Loop Iteration: 730000\n",
"Cost: 0.5554067527282098\n",
"Main Loop Iteration: 740000\n",
"Cost: 0.43505881247288286\n",
"Main Loop Iteration: 750000\n",
"Cost: 0.267372161680509\n",
"Main Loop Iteration: 760000\n",
"Cost: 0.48269147929206974\n",
"Main Loop Iteration: 770000\n",
"Cost: 0.4264031271522757\n",
"Main Loop Iteration: 780000\n",
"Cost: 0.5566165690246574\n",
"Main Loop Iteration: 790000\n",
"Cost: 0.6463605800916986\n",
"Main Loop Iteration: 800000\n",
"Cost: 0.48399697144300846\n",
"Main Loop Iteration: 810000\n",
"Cost: 0.2936313285270336\n",
"Main Loop Iteration: 820000\n",
"Cost: 0.2807486401012179\n",
"Main Loop Iteration: 830000\n",
"Cost: 0.6313329559198004\n",
"Main Loop Iteration: 840000\n",
"Cost: 0.49807673050167256\n",
"Main Loop Iteration: 850000\n",
"Cost: 0.7017783264128826\n",
"\n",
"Results:\n",
"\n",
"\n",
"Cost: 0.7017783264128826\n",
"Accuracy: 89.0\n",
"\n",
"\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# gradient descent\n",
"\n",
"detailed_logger = False\n",
"main_logger = True\n",
"main_logger_output_iterations = 10000\n",
"L2 = False\n",
"Dropout = True\n",
"hidden_layer_relu = True\n",
"hidden_layer_tanh = False\n",
"hidden_layer_sigmoid = False\n",
"\n",
"# hyber-parameters\n",
"alpha = .01;\n",
"epsilon = .10\n",
"keep_prob = .95\n",
"number_of_iterations = 850000\n",
"\n",
"# copy initalization\n",
"W = Weights.copy()\n",
"B = Bias.copy()\n",
"\n",
"# data arrays\n",
"cost_array = []\n",
"accuracy_array = []\n",
"interation_array = []\n",
"\n",
"# rename\n",
"X = np.float64(train_X).copy()\n",
"Y = np.float64(np.ravel(train_Y)).copy()\n",
"\n",
"X_test = np.float64(test_X).copy()\n",
"Y_test = np.float64(np.ravel(test_Y)).copy()\n",
"\n",
"#m = size\n",
"m = 200\n",
"\n",
"def model(W, B, A):\n",
" return np.dot(W, A) + B\n",
"\n",
"def activation_relu(Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" return np.where(Z > 0, Z, 0)\n",
"\n",
"def activation_tanh(Z):\n",
" return np.tanh(Z)\n",
"\n",
"def activation_sigmoid(Z):\n",
" return 1/(1 + np.exp(-Z))\n",
"\n",
"def loss(A, Y):\n",
" epsilon = 1e-6\n",
" return np.where((Y == 1), np.multiply(-Y, np.log(A + epsilon)), -np.multiply((1 - Y), np.log(1 - A + epsilon)))\n",
" #return np.multiply(-Y, np.log(A)) - np.multiply((1 - Y), np.log(1 - A)) \n",
" \n",
"def cost(L):\n",
" return np.multiply(1/len(L[0]), np.sum(L))\n",
"\n",
"def cost_L2(L, W, epsilon):\n",
" L2 = np.multiply(epsilon/(2*m), np.multiply(W[len(W)-3], W[len(W)-3]).sum() + np.multiply(W[len(W)-2], W[len(W)-2]).sum() + np.multiply(W[len(W)-1], W[len(W)-1]).sum())\n",
" J = cost(L)\n",
" return L2 + J\n",
"\n",
"def prediction(A):\n",
" return np.where(A >= 0.5, 1, 0)\n",
" \n",
"def accuracy(prediction, Y):\n",
" return 100 - np.multiply(100/len(Y), np.sum(np.absolute(Y - prediction))) \n",
" \n",
"def forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, A, A_layers, Z_layers, layer, D, keep_prob)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" Z_layers.append(Z)\n",
" A = activation_sigmoid(Z)\n",
" if(Dropout == True):\n",
" _D = np.float64(np.where(np.random.uniform(0, 1, [len(W[layer][:]), m]) < keep_prob, 1, 0))\n",
" D.append(_D)\n",
" A = np.multiply(A, _D)\n",
" A_layers.append(A)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Training Data: ' + str(layer))\n",
" print('Forward Propagation Training Data Complete')\n",
" return A_layers, Z_layers, D\n",
"\n",
"def forward_propagation(W, B, A, layer):\n",
" if(layer < len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" if(hidden_layer_relu == True):\n",
" A = activation_relu(Z)\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" A = forward_propagation(W, B, A, layer)\n",
" elif(layer == len(W) - 1):\n",
" Z = model(W[layer], B[layer], A)\n",
" A = activation_sigmoid(Z) \n",
" layer = layer + 1\n",
" if(detailed_logger == True):\n",
" print('Forward Layer Testing Data: ' + str(layer))\n",
" print('Forward Propagation Testing Data Complete')\n",
" return A\n",
"\n",
"def dZ(dZ, W, Z):\n",
" Z = np.where(~np.isnan(Z), Z, 0)\n",
" W = np.where(~np.isnan(W), W, 0)\n",
" dZ = np.where(~np.isnan(dZ), dZ, 0)\n",
" Z = np.where(~np.isinf(Z), Z, 0)\n",
" W = np.where(~np.isinf(W), W, 0)\n",
" dZ = np.where(~np.isinf(dZ), dZ, 0)\n",
" if(hidden_layer_relu == True):\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.where(Z > 0, 1, 0))\n",
" elif(hidden_layer_tanh == True):\n",
" A = activation_tanh(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), 1- np.multiply(A, A))\n",
" elif(hidden_layer_sigmoid == True): \n",
" A = activation_sigmoid(Z)\n",
" return np.multiply(np.dot(np.transpose(W), dZ), np.multiply(A, (1-A)))\n",
"\n",
"def dW(dZ, A):\n",
" return np.multiply(1/m, np.dot(dZ, np.transpose(A)))\n",
"\n",
"def dW_L2(dZ, A, W, epsilon):\n",
" return np.multiply(epsilon/m, W) + dW(dZ, A)\n",
"\n",
"def dB(dZ):\n",
" return np.multiply(1/m, np.sum(dZ))\n",
"\n",
"def backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D):\n",
" if(layer >= 0):\n",
" if(layer == len(W) - 1):\n",
" _dZ = A_layers[layer+1] - Y\n",
" elif(layer >= 0):\n",
" _dZ = dZ(_dZ, W[layer+1], Z_layers[layer])\n",
" if(Dropout == True):\n",
" _dZ = np.multiply(_dZ, D[layer])\n",
" if(L2 == True):\n",
" _dW = dW_L2(_dZ, A_layers[layer], W[layer], epsilon)\n",
" else:\n",
" _dW = dW(_dZ, A_layers[layer])\n",
" _dB = dB(_dZ)\n",
" W[layer] = W[layer] - np.multiply(alpha, _dW)\n",
" B[layer] = B[layer] - np.multiply(alpha, _dB)\n",
" if(detailed_logger == True):\n",
" print('Backward Layer: ' + str(layer))\n",
" layer = layer - 1\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, _dZ, alpha, epsilon, layer, D)\n",
" if(detailed_logger == True):\n",
" print('Backward Propagation Complete')\n",
" return W, B\n",
" \n",
" \n",
"# main loop\n",
"for iteration in range(1, number_of_iterations + 1):\n",
" if(main_logger == True and iteration % main_logger_output_iterations == 0):\n",
" print('Main Loop Iteration: ' + str(iteration))\n",
" \n",
" if(hidden_layer_relu + hidden_layer_tanh + hidden_layer_sigmoid != 1):\n",
" print(\"ERROR! Please Select Only 1 Hidden Layer Activation Function\")\n",
" break\n",
" \n",
" # forward propogation training data set\n",
" A_layers, Z_layers, D = forward_propagation_return_layers(W, B, X, [X], [], 0, [], keep_prob)\n",
" L = loss(A_layers[len(A_layers) - 1], Y)\n",
" if(L2 == True):\n",
" C = cost_L2(L, W, epsilon) \n",
" else:\n",
" C = cost(L) \n",
" \n",
" if(iteration % main_logger_output_iterations == 0):\n",
" print('Cost: ' + str(C))\n",
" \n",
" # forward propogation test data set\n",
" A_test = forward_propagation(W, B, X_test, 0)\n",
" \n",
" # accuracy\n",
" _prediction = prediction(A_test) \n",
" _accuracy = accuracy(_prediction, Y_test) \n",
" \n",
" # storage for plotting\n",
" cost_array.append(C)\n",
" accuracy_array.append(_accuracy)\n",
" interation_array.append(iteration)\n",
" \n",
" # backpropogation\n",
" W, B = backward_propagation(W, B, A_layers, Z_layers, 0, alpha, epsilon, len(W) - 1, D)\n",
"\n",
"\n",
" \n",
"print('')\n",
"print('Results:')\n",
"print('')\n",
" \n",
"print('')\n",
"print('Cost: ' + str(C)) \n",
"print('Accuracy: ' + str(_accuracy)) \n",
"print('')\n",
"print('')\n",
"\n",
"\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, cost_array, 'red')\n",
"pyplot.title('Learning Curve - ' + str(len(X[0])) + ' Training Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Cost')\n",
"pyplot.show()\n",
"\n",
"# plot percent accuracy curve\n",
"pyplot.figure()\n",
"pyplot.plot(interation_array, accuracy_array, 'red')\n",
"pyplot.title('Percent Accuracy Curve - ' + str(len(X_test[0])) + ' Test Data Set (Relu Hidden Layer)')\n",
"pyplot.xlabel('Iterations')\n",
"pyplot.ylabel('Percent Accuracy')\n",
"pyplot.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have achieved a cost of approximately 0.7 after 850,000 iterations. \n",
"\n",
"Some interesting results can be see by analyzing the boundary curve."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Training accuracy of logistic regression: 93 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Test accuracy of logistic regression: 89 % (percentage of correctly labelled datapoints)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def predict_plot(P, X):\n",
" pred = prediction(forward_propagation(P[0], P[1], np.transpose(X), 0))\n",
" return pred\n",
"\n",
"# forward propogation test data set\n",
"A_train = forward_propagation(W, B, X, 0)\n",
"\n",
"# accuracy\n",
"_prediction_train = prediction(A_train) \n",
"_accuracy_train = accuracy(_prediction_train, Y) \n",
"\n",
"print ('Training accuracy of logistic regression: %d ' % float(_accuracy_train) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Training\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X, Y)\n",
"\n",
"# forward propogation test data set\n",
"A_test = forward_propagation(W, B, X_test, 0)\n",
"\n",
"# accuracy\n",
"_prediction = prediction(A_test) \n",
"_accuracy = accuracy(_prediction, Y_test) \n",
"\n",
"print ('Test accuracy of logistic regression: %d ' % float(_accuracy) +\n",
" '% ' + \"(percentage of correctly labelled datapoints)\")\n",
"\n",
"plt.title(\"Logistic Regression Testing\")\n",
"plot_decision_boundary(lambda x: predict_plot([W, B], x), X_test, Y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We note that this curve is slighly smoother than the case when the keep-probability hyper paramter was .85. This may be because by keeping 95% of the neurons in each layer during each iteration and only disabling 5% of the nuerons allows us to only disable the problem neurons, and train most of the neurons during every iteration. If there are only a few problem neurons that a high keep probability may be helping to smooth the curve and prevent overfiting. As noted, we still achieve 93% training accuracy on the training data, but we also recieve 89% percent testing accuracy. This indicates good generalization while still having a descent training accuracy. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have seen visual examples of how regularization techniques such as L2 penalization and dropout can help to generalize a network to work on unseen data and prevent overfitting the training data. We have also see the effects of adjusting the hyper-parameters of regularization techniques, and how they can help or harm the effectiveness of the regularization techniques."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"This concludes the assignment."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment