From 10947b8d8225ad6a7aaf96abc730c45a3d50a31e Mon Sep 17 00:00:00 2001 From: Dmitri Soshnikov Date: Mon, 10 Jan 2022 16:12:03 +0300 Subject: [PATCH] Add overfitting, dropout, training tricks --- 3-NeuralNetworks/05-Frameworks/Overfitting.md | 44 ++++ 3-NeuralNetworks/images/Overtitting.png | Bin 0 -> 131105 bytes 3-NeuralNetworks/images/overfit1.jpg | Bin 0 -> 16081 bytes 3-NeuralNetworks/images/overfit2.jpg | Bin 0 -> 24185 bytes .../08-TransferLearning/Dropout.ipynb | 195 ++++++++++++++++++ .../08-TransferLearning/TrainingTricks.md | 108 ++++++++++ README.md | 8 +- 7 files changed, 351 insertions(+), 4 deletions(-) create mode 100644 3-NeuralNetworks/05-Frameworks/Overfitting.md create mode 100644 3-NeuralNetworks/images/Overtitting.png create mode 100644 3-NeuralNetworks/images/overfit1.jpg create mode 100644 3-NeuralNetworks/images/overfit2.jpg create mode 100644 4-ComputerVision/08-TransferLearning/Dropout.ipynb create mode 100644 4-ComputerVision/08-TransferLearning/TrainingTricks.md diff --git a/3-NeuralNetworks/05-Frameworks/Overfitting.md b/3-NeuralNetworks/05-Frameworks/Overfitting.md new file mode 100644 index 00000000..9ca971de --- /dev/null +++ b/3-NeuralNetworks/05-Frameworks/Overfitting.md @@ -0,0 +1,44 @@ +# Overfitting + +Overfitting is an extremely important concept in machine learning, and it is very important to get it right! + +Consider the following simple problem of approximating 5 dots (represented by `x` on the graphs below): + +![](images/overfit1.jpg) | ![](images/overfit2.jpg) +-------------------------|-------------------------- +**Linear model, 2 parameters** | **Non-linear model, 7 parameters** +Training error = 5.3 | Training error = 0 +Validation error = 5.1 | Validation error = 20 + +* On the left, we see a good straight line approximation. Because the number of parameters is adequate, the model gets the idea behind point distribution right. +* On the right, the model is too powerful. Because we only have 5 points and model has 7 parameters, it can adjust in such a way as to pass through all points, making training error to be 0. However, it prevents the model from understanding the correct pattern behind data, thus validation error is very high. + +Thus it is very important to strike a correct balance between richness of the model (number of parameters) and the number of training samples. + +## Why overfitting occurs + + * Not enough training data + * Too powerful model + * Too much noise in input data + +## How to detect overfitting + +As you can see from the graph above, overfitting can be detected by very low training error, and high validation error. Normally during training we will see both training and validation errors starting to decrease, and then at some point validaton error might stop decreasing and start rising. This will be a sign of overfitting, and the indicator that we should probably stop training at this point (or at least make a snapshot of the model). + + + +## How to prevent overfitting + +If you can see that overfitting occurs, you can do one of the following: + + * Increase the amount of training data + * Decrease the complexity of the model + * Use some [regularization technique](../4-ComputerVision/08-TransferLearning/TrainingTricks.md), such as [Dropout](../4-ComputerVision/08-TransferLearning/TrainingTricks.md#Dropout), which we will consider later. + +## Overfitting and Bias-Variance Tradeoff + +Overfitting is actually a case of more generic problem in statistics, called [Bias-Variance Tradeoff](https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff). If we consider possible sources of error in our model, we can see two types of errors: +* **Bias errors** are caused by our algorithm not being able to capture the relationship between training data correctly. It can result from the fact that our model is not powerful enough (**underfitting**). +* **Variance errors**, which are caused by the model approximating noise in the input data instead of meaningful relationship (**overfitting**). + +During training, bias error decreases (as our model learns to approximate the data), and variance error increases. It is important to stop training - either manually (when we detect overfitting) or automatically (by introducing regularization) to prevent overfitting. diff --git a/3-NeuralNetworks/images/Overtitting.png b/3-NeuralNetworks/images/Overtitting.png new file mode 100644 index 0000000000000000000000000000000000000000..fedba18c1bc5b8a7a6fb42b273f8524918893cf8 GIT binary patch literal 131105 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 U-DUTyzzcj%_J{2%ZSV>I0StN>MF0Q* literal 0 HcmV?d00001 diff --git a/3-NeuralNetworks/images/overfit1.jpg b/3-NeuralNetworks/images/overfit1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d1362521d6531eb39f65cb72b2cf1baaedc74567 GIT binary patch literal 16081 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 literal 0 HcmV?d00001 diff --git a/3-NeuralNetworks/images/overfit2.jpg b/3-NeuralNetworks/images/overfit2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ab9a379b877a2f5d5663119db66041ce612fbd52 GIT binary patch literal 24185 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 SX(D2V2V=6I&U*O&-vj`9#z>X` literal 0 HcmV?d00001 diff --git a/4-ComputerVision/08-TransferLearning/Dropout.ipynb b/4-ComputerVision/08-TransferLearning/Dropout.ipynb new file mode 100644 index 00000000..a0b7cdef --- /dev/null +++ b/4-ComputerVision/08-TransferLearning/Dropout.ipynb @@ -0,0 +1,195 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The Effect of Dropout\n", + "\n", + "Let's see for ourselves how dropout actually affects training. We will use MNIST dataset and a simple convolutional network to do that:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from tensorflow import keras\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()\n", + "\n", + "x_train = x_train.astype(\"float32\") / 255\n", + "x_test = x_test.astype(\"float32\") / 255\n", + "\n", + "x_train = np.expand_dims(x_train, -1)\n", + "x_test = np.expand_dims(x_test, -1)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will define `train` function that will take care of all training process, including:\n", + "* Defining the neural network architecture with a given dropout rate `d`\n", + "* Specifying suitable training parameters (optimizer and loss function)\n", + "* Doing the training and collecting the history\n", + "\n", + "We will then run this function for a bunch of different dropout values:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training with dropout = 0\n", + "Epoch 1/5\n", + "938/938 [==============================] - 26s 27ms/step - loss: 0.1949 - acc: 0.9435 - val_loss: 0.0596 - val_acc: 0.9802\n", + "Epoch 2/5\n", + "938/938 [==============================] - 27s 29ms/step - loss: 0.0592 - acc: 0.9816 - val_loss: 0.0433 - val_acc: 0.9857\n", + "Epoch 3/5\n", + "938/938 [==============================] - 26s 28ms/step - loss: 0.0438 - acc: 0.9867 - val_loss: 0.0472 - val_acc: 0.9849\n", + "Epoch 4/5\n", + "938/938 [==============================] - 27s 28ms/step - loss: 0.0355 - acc: 0.9890 - val_loss: 0.0353 - val_acc: 0.9882\n", + "Epoch 5/5\n", + "938/938 [==============================] - 26s 28ms/step - loss: 0.0294 - acc: 0.9910 - val_loss: 0.0305 - val_acc: 0.9894\n", + "Training with dropout = 0.2\n", + "Epoch 1/5\n", + "938/938 [==============================] - 29s 31ms/step - loss: 0.2097 - acc: 0.9377 - val_loss: 0.0655 - val_acc: 0.9781\n", + "Epoch 2/5\n", + "938/938 [==============================] - 31s 33ms/step - loss: 0.0676 - acc: 0.9792 - val_loss: 0.0409 - val_acc: 0.9852\n", + "Epoch 3/5\n", + "938/938 [==============================] - 28s 30ms/step - loss: 0.0514 - acc: 0.9837 - val_loss: 0.0384 - val_acc: 0.9871\n", + "Epoch 4/5\n", + "938/938 [==============================] - 28s 29ms/step - loss: 0.0424 - acc: 0.9871 - val_loss: 0.0343 - val_acc: 0.9889\n", + "Epoch 5/5\n", + "938/938 [==============================] - 30s 32ms/step - loss: 0.0356 - acc: 0.9893 - val_loss: 0.0343 - val_acc: 0.9885\n", + "Training with dropout = 0.5\n", + "Epoch 1/5\n", + "938/938 [==============================] - 30s 31ms/step - loss: 0.2586 - acc: 0.9212 - val_loss: 0.0666 - val_acc: 0.9797\n", + "Epoch 2/5\n", + "938/938 [==============================] - 28s 30ms/step - loss: 0.0860 - acc: 0.9734 - val_loss: 0.0441 - val_acc: 0.9860\n", + "Epoch 3/5\n", + "938/938 [==============================] - 29s 31ms/step - loss: 0.0674 - acc: 0.9792 - val_loss: 0.0414 - val_acc: 0.9868\n", + "Epoch 4/5\n", + "938/938 [==============================] - 30s 32ms/step - loss: 0.0564 - acc: 0.9822 - val_loss: 0.0326 - val_acc: 0.9886\n", + "Epoch 5/5\n", + "938/938 [==============================] - 29s 31ms/step - loss: 0.0511 - acc: 0.9843 - val_loss: 0.0298 - val_acc: 0.9899\n", + "Training with dropout = 0.8\n", + "Epoch 1/5\n", + "938/938 [==============================] - 31s 32ms/step - loss: 0.3832 - acc: 0.8766 - val_loss: 0.0849 - val_acc: 0.9732\n", + "Epoch 2/5\n", + "938/938 [==============================] - 29s 31ms/step - loss: 0.1563 - acc: 0.9521 - val_loss: 0.0686 - val_acc: 0.9797\n", + "Epoch 3/5\n", + "938/938 [==============================] - 32s 34ms/step - loss: 0.1253 - acc: 0.9616 - val_loss: 0.0490 - val_acc: 0.9854\n", + "Epoch 4/5\n", + "938/938 [==============================] - 33s 35ms/step - loss: 0.1105 - acc: 0.9658 - val_loss: 0.0395 - val_acc: 0.9872\n", + "Epoch 5/5\n", + "938/938 [==============================] - 34s 36ms/step - loss: 0.1022 - acc: 0.9680 - val_loss: 0.0363 - val_acc: 0.9878\n" + ] + } + ], + "source": [ + "def train(d):\n", + " print(f\"Training with dropout = {d}\")\n", + " model = keras.Sequential([\n", + " keras.layers.Conv2D(32, kernel_size=(3, 3), activation=\"relu\", input_shape=(28,28,1)),\n", + " keras.layers.MaxPooling2D(pool_size=(2, 2)),\n", + " keras.layers.Conv2D(64, kernel_size=(3, 3), activation=\"relu\"),\n", + " keras.layers.MaxPooling2D(pool_size=(2, 2)),\n", + " keras.layers.Flatten(),\n", + " keras.layers.Dropout(d),\n", + " keras.layers.Dense(10, activation=\"softmax\")\n", + " ])\n", + " model.compile(loss='sparse_categorical_crossentropy',optimizer='adam',metrics=['acc'])\n", + " hist = model.fit(x_train,y_train,validation_data=(x_test,y_test),epochs=5,batch_size=64)\n", + " return hist\n", + "\n", + "res = { d : train(d) for d in [0,0.2,0.5,0.8] }" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's plot validation accuracy graphs for different dropout values to see how fast the training goes:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAD4CAYAAAAHHSreAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABMqUlEQVR4nO3dd3gU1frA8e+b3gtJgDQIXQIIYkCk2BDFckWxoaBIEVBQ7GK/tqteu1cUUURQKerVn+WqgNio0kVDr6mQRnrd3fP7Y4awCYFsIMlukvN5nn2yOzNn5p1JMu+eM2fOiFIKTdM0TbPn5uwANE3TNNejk4OmaZp2HJ0cNE3TtOPo5KBpmqYdRycHTdM07Tgezg6gPoSHh6u4uDhnh6FpmtakbNy4MUspFVHTvGaRHOLi4tiwYYOzw9A0TWtSROTgiebpZiVN0zTtODo5aJqmacfRyUHTNE07TrO45lCTiooKUlJSKC0tdXYop83Hx4eYmBg8PT2dHYqmaS2EQ8lBRIYDbwLuwAdKqRerzQ8FPgQ6AaXAeKXU3+a86cDtgADvK6XeMKe3AhYDccAB4Aal1BFz3iPABMAK3K2UWlLXHUtJSSEwMJC4uDhEpK7FXYZSiuzsbFJSUujQoYOzw9E0rYWotVlJRNyBmcBlQDxwk4jEV1vsUWCLUupM4FaMRIKI9MRIDP2B3sCVItLFLDMDWK6U6gIsNz9jrnsU0AMYDrxjxlAnpaWlhIWFNenEACAihIWFNYsakKZpTYcj1xz6A3uUUvuUUuXAImBEtWXiMU7wKKV2AHEi0gboDqxVShUrpSzAb8A1ZpkRwDzz/Tzgarvpi5RSZUqp/cAeM4Y6a+qJ4ajmsh+apjUdjiSHaCDZ7nOKOc3en8BIABHpD7QHYoC/gfNEJExE/IDLgVizTBulVDqA+bN1HbaHiEwSkQ0isiEzM9OB3dA0TWseiiuK2Xh4I/MT5/PjgR8bZBuOXHOo6Wtr9YdAvAi8KSJbgL+AzYBFKbVdRF4ClgGFGEnEUg/bQyk1G5gNkJCQ4LIPpfjxxx+ZPn06VquViRMnMmPGDGeHpGlaE1JcUczOIzvZlr2NxKxEErMT2Z+3H2WeFi/rcBnD44bX+3YdSQ4pHPu2D0aNIM1+AaVUPjAOQIw2kP3mC6XUHGCOOe9f5voADotIpFIqXUQigQxHt9dUWK1Wpk6dyrJly4iJiaFfv35cddVVxMdXv2SjaZoGpZZSdh7ZSWJWopEMshPZl7cPm7IBEO4bTo+wHgyPG06P8B7Eh8UT7hveILE4khzWA11EpAOQinGx+Gb7BUQkBCg2r0lMBH43EwYi0loplSEi7TCans41i30DjMWodYwFvrabvkBEXgOigC7AulPeQydat24dnTt3pmPHjgCMGjWKr7/+WicHTdMot5az68iuytrAtuxt7Mndg1VZAWjl04oeYT0Y2m4oPcJ60CO8B639Wtey1vpTa3JQSllEZBqwBKMr64dKqUQRmWLOn4Vx4Xm+iFiBbRjdUI/6r4iEARXA1KPdVTGSwmciMgFIAq4315coIp+Z67GYZayns5NPf5vItrT801nFceKjgnjqHz1OukxqaiqxsccqQTExMfzxxx/1Goemaa6vwlrB7tzdJGYnVtYKdufuxmIzWtlDvEPoEdaD82LOq0wEbfzaOLUzikP3OSilvge+rzZtlt37NRjf8GsqO+QE07OBoSeY9zzwvCOxubKans+tex5pWvNWYatgX+6+ykSQmJ3IriO7qLBVABDoFUiPsB6MjR9b2TQU5R/lcueGZnuHtL3avuE3lJiYGJKTj3W8SklJISoqyimxaJpW/yw2C/vz9lepEew8spMyaxkAAZ4BxIfFM6b7GOLD4+kR1oOYgJjTSgRWm2J/VhHb0vPZnp5PXJgfN/ZrV1+7VKlFJAdn6devH7t372b//v1ER0ezaNEiFixY4OywNE07BVablYP5B41EYCaDHTk7KLUaN6j6efjRPaw7N3a7sbJpKDYwFjc59SHsisos7DhUwLb0fLalGclgx6F8SiuMC9QebsL1CbHc2K9edrEKnRwakIeHB2+//TaXXnopVquV8ePH06OHc2oxmqY5zqZsHMw/WNljKDErke052ymxlADg6+FL91bdua7rdcSHxdMjvAdxQXGnnAiUUmQUlLEtLb9KItifXcTR1ukgHw/io4K4uX974qOC6B4ZSOfWAXh71HkACYfo5NDALr/8ci6//HJnh6Fp2gkopUguSD6WCMyeQ0UVRQB4u3tzRqszuKbzNUYiCOtBh+AOuLud2knZYrWxL6vouESQXVReuUxsK1/iI4MY0Sea+Kgg4qOCiAr2adTrEjo5aJrWYiilSC1MrUwAR38WlBcA4OXmRbdW3biy45X0CDMuFncK6YSH26mdKgtKK4xmobT8ymSw83AB5RajWcjL3Y1ubQMZ2r018ZFBxEcFc0ZkIEE+zh+BWScHTdOaJaUUh4oOVUkEidmJ5JXlAeDh5kHX0K7GDWXmNYJOIZ3wdKv7iVkpRVpeKdvtagPb0vNJyimuXCbUz5MeUcGMPddoFoqPDKZjhD+e7q75WB2dHDRNc76SI7DvV+NlKQOfYPAOMn6e7GU27SilyCjOqNIstC17GzmlOQB4iAddQrtwcbuLK68RdAnpgpe7V51DLbfY2JNRyPb0qokgr6SicpkO4f70ig7mhoSYykTQJsjb5bqrnoxODpqmNT6bFdK2wJ6fjFfqBlA28A4G32AozYPSfGoYVg2ALHc3Er28SPQLJNHHh20ebmS5Gcu6A53cAznPJ5weEd3pEdSBriGd8PYLt0ssITgy7mhecUVll9GjiWB3RgEVVmNb3h5unBEZxOW9Is0kEEi3tkEEeDf9U2vT3wNN05qGgkOw92cjGez92agtIBDdF857EDoNheizwd08LdlsUF5Adt5BtmX8SWLOdhJz97CtKIWMCuMagRvQ0c2PgXgTb4Ue5RV0Ky7EtzQVyrYbCedkvALAJxjlE0y5RwB5Nj+yrT6kl3mTVORJaqkX+fiTr/wQn2D6RbTmqoS2xEVH0Tk2krjWIXi4aLPQ6dLJQdO0hmEph+S1sGe58Tr8lzE9oA10vQw6D4WOF4J/WGWRvLI8Eg8lVmkeSi9KB0AQ4oLj6B97fuXF4jNanYGfp1/N27fZoLzQrIUce1UU55KZmUFOdib5uVmUFuRgzc/Fz1pEkGQQJMUkSAkXUISbp11ysQGHzdef5jRPf7Mm4kATmH2t5WizmUfdm7Uai04ODay2Ibs//fRTXnrpJQACAgJ499136d27tzNC1bTTl7P/WM1g/+/GydnNE9oNgIv/CZ0vhjY9wWx7t9qs/JWxhdVpq1mVuoq/sv6qHIq6fVB7+rTuw+iw0cSHxdO9VXcCvAIcj8XNjRyrD9uzytmWVsH2dAvb0q3syQCLLRjogp+XO2e0DSS+m3FdID4qiNZtAvH1cgelakgu+dU+51b9XJgBWbuPfa5tWDgP3zokFbvEcjQZeXifym/JITo5NCBHhuzu0KEDv/32G6Ghofzwww9MmjRJD86nNR3lRXBgpXntYDnk7DWmh7SHM280kkGHIeAdWFnkcNFhIxmkrWJN2hryy/NxEzd6hvdkSu8pJLRJ4IywMwjyCnI4DJtNkZRTXOW+gW3p+aTnHXu8btsgH7pHHu02aiSC9q38cHM7wUViESNu70AIjqn7sVHKOD6leVBWPanUkFhK86A4yziGRz/bann8jYcP9LwOrp5Z9/hqoZNDA3JkyO6BAwdWvh8wYAApKSnHrUfTXIZSkLHdrB0sh4OrwVoOnn4QNwTOmWwkhFYdK2sH5dZyNqWvZVXqKlalrWL3kd0AtPZtzUXtLmJQ9CDOjTyXYO9gh0IorbCys9qQEtvT8ykqN76lu7sJnSMCGNAxjO6RgcRHBtM9MpCwgIb7ll0jEfAOMF7HP8yydkpBRUkNSaVaYmndvb4jB1pKcvhhBhz6q37X2bYXXPbiSRep65Ddc+bM4bLLLqu3EDWtXhztZrrnJ9jzMxSYz95qHW8kg05Dod254OlTWSQpP4mVqStZlbaK9YfWU2IpwdPNk75t+nLf2fcxKHoQXUK61Nq1M6vw+CEl9mYWYjM7MQV4exAfGcT1CbGViaBLmwB8PBtmSIlGJQJefsYrKLLRN98ykoOT1GXI7l9++YU5c+awcuXKhg5L007uRN1MfYKNC8idhxoJIfjYt+HiimLWJf9qJITUVaQUGjXgdoHtuLrz1QyKGkS/tv1OfPEY4//l112ZrNufU5kIMgrKKudHh/jSPTKIy3pFEm8mgphQ3xM3C2mnpWUkh1q+4TcUR4fs3rp1KxMnTuSHH34gLCzsuPma1uDq2M1UKcWunJ2sSlvFqtRVbMrYhMVmwdfDl3PansPYHmMZFDWI2KDYk2/XXNcvOzN4bdku/k7Nx9Nd6Nw6kCFdIsx7B4xB5kL8XLdnT3PUMpKDkzgyZHdSUhIjR47k448/pmvXrk6KVGtxTqGbaW5pLmuT1rIydSWr01aTWZIJQNfQrtwSfwuDowbTp3Ufh+86Vkqxak82ry7byeakXGJb+fLK9b35R+/IBhtpVHOcTg4N6ERDds+aZTxEb8qUKTzzzDNkZ2dz5513VpbZsGGDM8PWmqt66mYa5BXEwKiBDIoexMCogaf0XON1+3N4delO/tifQ1SwDy+M7MV1Z8e47DhDLZHU1C7e1CQkJKjqJ9Tt27fTvXvDXMV3hua2P1ojOFk3084X17mb6eCowQyKHkSPsB6nPFz15qQjvLZsFyt2ZxER6M20Czszqn+srik4iYhsVEol1DRP1xw0rbmw72a65ydIWtPo3UxP5O/UPF5ftovlOzJo5e/FY5d3Z8yA9sbNZtpJKaWwFRVhyczEmpWFJSsLS6b5MysLn+7daXXLmHrfrkPJQUSGA29ijGn1gVLqxWrzQ4EPgU5AKTBeKfW3Oe9eYCLGCFp/AeOUUqUishjoZq4iBMhVSvURkThgO7DTnLdWKTXllPdQ05ozJ3YzdcSuwwW8vmwXP/x9iCAfDx68tBtjB8Y1i4HpTpetrOzYyb7KCT8TS1YW1qOfs7NRpaXHr8DDA4+wMNwD63DXeB3U+hsSEXdgJjAMSAHWi8g3Sqltdos9CmxRSl0jImeYyw8VkWjgbiBeKVUiIp8Bo4CPlFI32m3jVSDPbn17lVJ9TnPfNK35sVkhbbN5Ifn0u5mO6DSCwdGDa+1mWlf7Mgt5c/luvvkzDX8vD+4e2oUJgzsQ7Ov8h9g0JGWxYMnJwZqdfdwJ31rtG7+toKDGdbi3aoVHWBgeEeH4tu+LR3gEHuHheESEGz/Dw3EPD8c9OBhxa7hrNI6k7/7AHqXUPgARWQSMAOyTQzzwAoBSaoeIxIlIG7tt+IpIBeAHpNmvXIyvJzcAF53Ojmhas1VwyEgGe5fXSzfTW3vcyqCoQbQLalfvoSbnFPPW8t18uTkVL3c3ppzfiUlDOhLq33S7oSqlsOXlHfuGn5Vd48nekpWFNScHariO6xYQUHli9+7WDf9Bg6qc8N3Dw40k0CoU8XSNBOpIcogGku0+pwDnVFvmT2AksFJE+gPtgRil1EYReQVIAkqApUqppdXKDgEOK6V2203rICKbgXzgcaXUCof3SNOaugboZjooahBntT7rlB5u44j0vBLe/nkPi9cn4+Ym3DYwjinndyIisJGHrKgDW3Fx1Sad7KyaT/hZWaiKiuPKi5eXcWKPCMczJgbf3r0rT/juZiLwiIjAIywMN19fJ+zh6XEkOdTU8Fg9Nb4IvCkiWzCuK2wGLOa1iBFAByAX+FxExiilPrErexOw0O5zOtBOKZUtImcD/yciPZRS+VWCEpkETAJo167+vwFpWqM62s10z3I4sMKp3UzrIqOglHd/3cunfyShlOKm/u2YemFn2gb71F64Aajyciw5OeYJPrPy5G5827dr4snMwlZcfPwK3NxwD2tV2ZTj3bmz+Y0/7Ni3e/PbvltgYJN6sltdOZIcUgD72xxjqNY0ZJ64x0FlM9F+83UpsF8plWnO+xIYCHxifvbAqHGcbbeuMqDMfL9RRPYCXYEqfVWVUrOB2WB0ZXVob52gtiG7f/31V0aMGEGHDh0AGDlyJE8++aQzQtUaU5Vupj9Bzj5j+imOZnpH7ztOu5tpXeQUlfPeb3uZt+YAFVbFdX1juGtoZ2JC6++6xVHKZsOam1t5wq/SYye7ahOPNTe3xnW4BQdXNuv49uxV9Rt+mF3zTmgo4q57UIFjyWE90EVEOgCpGBeUb7ZfQERCgGKlVDlGz6TflVL5IpIEDBARP4xmpaFUPclfDOxQSqXYrSsCyFFKWUWkI9AF2HeqO+hMjgzZDTBkyBC+++47J0WpNYpau5lOcbibaYRvRL12M62LvJIKPlixjw9X7qe4wsrVfaKZPrQLceH+p7VeZbVSmphI0erVlCclG008dr11sB7/XATx9a084XvFdcCvX79jzTlHv+GHGd/43bya7jUPZ6k1OSilLCIyDViC0ZX1Q6VUoohMMefPAroD80XEinGheoI57w8R+QLYBFgwmptm261+FFWblADOA54REQtgBaYopXJOYx+dxpEhu7VmrDTv2HhFp9HN1MPNg7Nbn13v3UzrorDMwtyV+3l/xT7ySy1c0SuSey7uQpc2gbUXPoGKjAyKVq2maMUKilavNr71i+DRpo3ZWycC7/jux0721XrsuPmfXkLSTs6hzsZKqe+B76tNm2X3fg3GN/yayj4FPHWCebfVMO2/wH8dictRL617iR05O+pzlZzR6gwe7v/wSZdxdMjuNWvW0Lt3b6KionjllVfo0aNHvcaqNRKlIHsP7FoCu340agc2yyl1M40NjG2wbqZ1UVJuZf6aA8z6bS9HiisYFt+Gey/uSnyU4w/iOUqVl1O8eQtFK1dQuGIlZTuM/0n38HACLrgA/8GD8R80EI/Q0PreDe0U6DtRGpAjQ3b37duXgwcPEhAQwPfff8/VV1/N7t27jyunuShLORxcBbuXGgnh6LWD1vEw8C7ocinE9HOJbqZ1UVphZeG6JGb+speswjLO7xrBfcO60js2pE7rKU9OpmjlSgpXrKR47VrjIrCHB359+xJx/30EDB6Md7duDdpfXzs1LSI51PYNv6E4MmR3UNCxb2CXX345d955J1lZWYSHhzdanFodFWaYyWAJ7P0FygvA3Rs6nAcD7oSul0LIsZO7s7uZ1kW5xcbnG5N5++c9pOeVcm7HMGaN6UtCXCuHytuKiylat46ilasoWrGC8oMHAfCMiSFoxFUEDBmCX/9zcA/QTUKurkUkB2dxZMjuQ4cO0aZNG0SEdevWYbPZ9DMdXI1SkP6nkQx2L4HUjcb0wCjodS10HU5xTAKp5bmkFaaRdmgVaXs+J7UwleSCZHbm7KzSzfRoV9OG7mZaFxarjS83p/LW8t2kHCnh7PahvHp9bwZ2PvmXFKUUZbt3G8lg5QqK129AVVQgPj74ndOf0DFjCBgyGM/27Zt1t8/mSCeHBuTIkN1ffPEF7777Lh4eHvj6+rJo0SL9T+QKyouMMYt2/Qi7l1FUeIhUD0/S2p5B6tnXkh4YQZoqJ7UojbTN/yJ3bW6V4t7u3kT6RxIdEM0dve9gYPRAeob1bJRupnVhtSm+25rGGz/tZn9WEb2ig3nu6p6c3zXihH+H1rw8itasoXDlSopWrMRy+DAA3l06VyYD37PPxs3bdW+A02qnh+xuIprb/riawvJCUtPWk7ZnCWlp60jNO0C6u5Dq6UWalzd5VO1K6ePuQ1RAFJEBkUT7RxMVEEV0gPEzKiCKMJ8wl07yNptiSeIhXv9pF7sOF3JG20DuG9aVYfFtjov7aDfTwhUrKFq5ipI//wSbDbegIPzPPZeAIYPxHzwYz7ZtnbQ32qnSQ3ZrLV5BeQFphWmkFqZW/kwvTCPtyG5Siw6Rr6oOj+AbHESUbwRRIZ04MzCm8qR/NBG08mnl0if/E1FK8fOODF5duott6fl0ivDn7ZvP4vKekVWexXyibqY+vXoRPmUy/oOH4HtmL8RDn0KaK/2b1ZqF/PL8Kif/ygRQlE5qYSoF5VVHwPTFjeiKCqIqyjnTaiM6MIaoyH5EdxpGVHR/Qr1Dm+TJ/0SUUqzck8WrS3exJTmX9mF+vHZDb0b0icbdTVDl5RTpbqaaHZ0cNJenlKo8+VcmgKKj3/7TSStMo6Ci2snfw5fogGiiA6LoE9Ce6KIcojL2En14O1EVFYT4tEK6Xmr0LOp4IfjUvd9+U/HHvmxeXbqLdQdyiA7x5aVrezGybwwqLZX8xYtq7mZ6330EDNHdTFsynRw0pzt68rdv8qlMBEVGAiisKKxSxs/Dj+jAaKL9ozm7zdmVzT5RAVFEe4cRnLYV2b0Uti6BvCSjUNsz4Zzp0HU4RJ0FzfyktynpCK8t3cXKPVm0DvTmueGduMKaRtmSj0l63K6baXS00c108GD8zhmgu5lqgE4OWiNQSpFXlkdqUdUmH/umn6KKoipl/D39zW/+0fRv27+y58/RC79BXkFVm33y04yupqs/NHoZVRQb4xZ1vADOux+6XAJBVe8xaa7+Ts3jtWW7+Hn7YXpbsnnHL5PuuxMpW7SRQ9W6mfoPHoRXXFyzakLT6odODtppU0qRW5Z73Ek/rehYIiixlFQpE+AZQHRANLGBsQyIHFDl5B8VEHX8yb86m82432DXj0ZSOLTVmB7SDvqMNmoHcYOrjFvU3O08VMA732wme8VKzs3ezV05u/HJzQZAmd1M/QcPwi8hQXcz1Wqlk0MDq23I7ry8PMaMGUNSUhIWi4UHHniAcePGOSnak1NKsTptNbuO7KrS9JNWlHbcyT/QK5DogGjaBbZjQOSAY00+ZgII8jqFNv7SfGMgu11LYM8yKMoEcYPYAXDx08b1g4gzKkc1bQmU1crelRtYtfA7ArZuYNKRg7gphQQGEjBwoO5mqp0ynRwakCNDds+cOZP4+Hi+/fZbMjMz6datG6NHj8bLxYYYVkrx+qbXmfv3XACCvIKIDogmLjiOgdEDifI/dvKPDIg8tZN/TbL3mrWDH+HganMguxDoMswYt6jzUPBzbGiH5uJoN9PM5b9SuHo1PsUFJCDktetE0LW3E3bhBbqbqXba9F9PA3JkyG4RoaCgAKUUhYWFtGrVCg8X+6dWSvHyhpf5eNvH3NjtRqb3nU6g16kP1XxSlnJjNNOjI5vm7DWmR3SHc6cZtYOY/pUD2bUEJxrN9Ih3IJvbdsN/8GAuHzeCHjG6dqDVnxbxH3boX/+ibHv9Dtnt3f0M2j766EmXcWTI7mnTpnHVVVcRFRVFQUEBixcvxs2FetEopXhh3Qss3LGQ0d1H83C/h+v/4mVhptFMtOtH47kHlQPZDYEBdxgXk0Pb1+82XVyNo5m6e3C4fTeW9LyCjW26MeDic5g6tCttglrOdRWt8bSI5OAsjgzZvWTJEvr06cPPP//M3r17GTZsGEOGDKkyWquz2JSN59Y+x+e7Pmds/FiujZvCxHkbEBFiQn3Nl1/l+2BfT8cSh1LGBeRd5jDXqRsBBYGR0HOkcTG54/ng1XK6VJ5wNNPoaLwvv4JfgjrxZk4QBW7e3JAQw9yLuhAd0vQeWq81HS0iOdT2Db+hODJk99y5c5kxYwYiQufOnenQoQM7duygf//+jR1uFTZl4+k1T/Pl7i+Z2Gsi54aOYeS7q7EpiAz2Ye2+bArLLFXKBHh71Jg0okP8iPG3EXJ4tXHvwa6l5lPRBKL7woWPGs1Fbc9sMReTHRnNVCWcw9yDVuauPkDJEStX9zUeydk+rOUkTc15WkRycBZHhuxu164dy5cvZ8iQIRw+fJidO3dWXqNwFqvNypOrn+Sbvd8wpfcUomwjGPPBOmJCffnwtn7EhfsbN66VWEg+UkzKkRJSKn8a7//Yl0NweToXum3mIrfNdHXbhkgFRfiy3S+B5Ha3UdTuIlq1iTGSSJAfoUBzTg2Vo5maA9hVH830aDfTIuXG3FUHeH/xPgpKLVx5ZiT3XNyVzq0DnLwHWkuik0MDcmTI7ieeeILbbruNXr16oZTipZdecuqDfiw2C4+tfIzv93/P1D5TKc28iHt/+pMBHVsxa8zZhPgZvahEhGA/T4L9gukZbT7g3mqBlPWwa7nxMJyMbQAUBbRnd+gNbPI5h9WWrhzMtZCaVEz+rgwgo3Lbfl7uVWod0SFVayCt/L2a3M1apTt3UvDTT1VHMw0MxP9oN9NBg/CMjASguNzC7DUHmfXbXnKLK7gkvg33DutK90jnNzFqLY8esruJaIz9qbBVMOP3GSw9uJRpfe5mx45+fLU5lWv7xvDCyF54edRwobw4x7z34EfY8xOUHAE3D2g/0Lh20OVSCO9c4/bySipIraHWkZprvM8rqTZSqqf7saaqKk1Xxs8wF0seRxYu5NCzz4FS+PTsad5zcPxopqUVVj79I4l3f91DVmE5F3aL4L5h3egVE+zE6LWWQA/ZrdWqwlrBg78/yPKk5dx55j0sXxPPugOpPHBJV6Ze2PnYSVcpyNx57M7k5D9AWcEvHLpeBl0vgU4XgU/tJ7ZgX0+CfT1P+LD6/NKjyeNYAkk9UkJKbjGbk3PJLa6aPHw83YgJ9TNrHFVrHTGhfoQHNE7yUEqR+drrZL//PgEXXEDkv57Ho9Xx92KUW2ws3pDMzJ/3cCi/lEGdw3hvWDfObq9HPtWcz6HkICLDgTcBd+ADpdSL1eaHAh8CnYBSYLxS6m9z3r3AREABfwHjlFKlIvJP4HYg01zNo0qp780yjwATACtwt1JqyenspHZy5dZy7v/1fn5N+ZWJ8fey+KcOpOXl8tZNZ3FVb7sL6Dn7YMEoyNppfG7bC4bcZ9QOovtCPT/lLMjHk6BIzxM2qxSUVhi1jJyqNY6UIyVsTcnlSLXk4e3hVq3GUfV9RID3aScPVV5O+hNPkPf1N4TceCNtn3j8uJvRLFYbX25K5a2fjUdy9osL5fUb+3BuJ/14WM111JocRMQdmAkMA1KA9SLyjVJqm91ijwJblFLXiMgZ5vJDRSQauBuIV0qViMhnwCjgI7Pc60qpV6ptL95cpgcQBfwkIl2VUlUfxeUApZRLNTOcqoZs+iuzlnHvL/eyInUFozvdy9wfYnATCwtvP4ez29t92y3MgI9HQmkuXPm6kRCCoxssLkcE+nhyRltPzmhbc/IoLLNUNlsdSxxGDeTv1DxyisqrLO/t4UZ0SPUmK+N9bKgv4QHeVR6IU521sJDUu++maPUaIu6ZTtjkyVX+/qw2xbd/pvHmcuORnL1jgnn+ml6c1yW8Wfydas2LIzWH/sAepdQ+ABFZBIwA7JNDPPACgFJqh4jEiUgbu234ikgF4Aek1bK9EcAipVQZsF9E9pgxrHFwnwDw8fEhOzubsDDXflxjbZRSZGdn4+NT/zc6lVhKmP7zdNamr+UfUXcz54e2tGvlxdzb+tMuzO/YgqX58Mm1UHgYxn4LMTU2UbqcAG8PurUNpFvbmu/mLiqzmEmj2K75yvi8NO0Q2dWSh5f70ZrH8bWOyIpCSu+/m7K9e4n8178IGXlNZTmbTfFj4iFeX7aL3RmFdI8M4oNbExjavXWT/tvUmjdHkkM0kGz3OQU4p9oyfwIjgZUi0h9oD8QopTaKyCtAElACLFVKLbUrN01EbgU2APcrpY6Y21tbbXvHfUUVkUnAJDC6g1YXExNDSkoKmZmZx81ranx8fIiJianXdRZXFHPXz3ex/tB6BgXfyYLlUQzs1Ip3R59NsJ/nsQUtZbB4DBxOhJsXN5nE4Ah/bw+6tgmka5uak0dxuVnzqFbrSDlSwrJth8kqNJJHbMFhnl39PkEVJbw/dAoFOVHE/HercWOgnxcL/0hiW3o+nVsH8M7ovgzv0fakNRBNcwWOJIea/oqrt3O8CLwpIlswritsBizmtYgRQAcgF/hcRMYopT4B3gWeNdf1LPAqMN7B7aGUmg3MBqO3UvX5np6edOjQwYHda3mKKoqYunwqmzM2c4b7JH5YG8sNCTE8d3W1Hkk2G3w1Gfb/BlfPMga7a0H8vDzo0iaQLidIHiXlVpJ/X03FjKexenmw6o7ncQ+IpPBICT9tzyCrsAyAuDA/3rixD//oHYW7TgpaE+FIckgBYu0+x1CtaUgplQ+MAxCjnrzffF0K7FdKZZrzvgQGAp8opQ4fLS8i7wPfObo97dQVlhdyx093sDXrL9qUjmfdvg48NLwbd5zfqWoTh1Lw4wxI/AqGPQN9bnJe0C6q4pfl2B58EJ/oaGLff58zY6pWcEsrrBzOLyU6xBcPd9cZL0vTHOHIX+x6oIuIdBARL4yLxd/YLyAiIeY8MHom/W4mjCRggIj4mUljKLDdLBNpt4prgL/N998Ao0TEW0Q6AF2Adae2e5q9/PJ8Ji+bzF9Zf+F7ZCwHk7oy8+a+3HlB5+Pbvle+BuveM0ZCHXi3cwJ2YTnz55N6zz349OhB+wWf4hVz/MV5H0932of568SgNUm11hyUUhYRmQYswejK+qFSKlFEppjzZwHdgfkiYsW4UD3BnPeHiHwBbAIsGM1Ns81V/1tE+mA0GR0AJptlEs1eTdvMMlNPpaeSVlVeWR6Tl01mR85OrIduwVLek4WTEujbroY+9Zvmw/JnoNcNMOzZFjPekSOUzUbGK6+S8+GHBA67mKiXX8atAToLaJqzNds7pLVjjpQeYdKySew+sofi5DG0801g7m39iG3ld/zCO76HxaOh44Vw0yLwcK2HDjmTrbyc9BmPkP/994SOHk2bRx9B3Ov33g5Na0z6DukWLLskm9uX3s6+3AMUJN3KuZEDmTm6L8G+nscvnLQWvhgHkX3ghvk6Mdix5ueTMu0uiteto/UD99NqwgTdDVVr1nRyaMaySrIYv2QCB/NSKDw4lht6XsgzI3riWVMbeMZ2WHAjBEXD6M/BW48AelRFejrJkyZTduAAUS//m+B//MPZIWlag9PJoZnKKM7gth/Gk1JwiKKksTx0/hVMOq9jzd9281KMm9w8fOCWr8DfeaPCuprSnbtInjQJW1ER7Wa/h/+55zo7JE1rFDo5NEOHig5x6/fjSC/MpCJ1PG9fcw2X9YqseeHiHGNYjLICGPdDi3sc58kUrf2DlLvuws3Xl/affoJPt27ODknTGo1ODs1MWmEao7+7jaySI3hmTuHjsdfRJzak5oXLi2HBDXDkANzyJbTt2ZihurS8//2P9BmP4Nm+He1mz8az2hP8NK2508mhGUkuSOamb28jt7SA8MK7+OT264gJraFHEoC1Aj6/DVI2GBef4wY3aqyuSilFztyPyPj3v/FLSCBm5tu4B+vnKmgtj04OzcSB3IPc+O1YispL6MYDzJ10DUE+NfRIAuPu52+nw+4lcMVrEH9V4wbropTVyuGXXuLI/I8JvGw4US++iJu3t7PD0jSn0MmhGdiRvZfR391GqaWCC4Kf4M1rLj/5XbnLn4Ytn8IFj0C/CY0XqAuzlZWR9uBDFCxdSquxY2n98EOIm76zWWu5dHJo4tanbuf2pROpsNm4pf0LPDz0gpP3v1/zDqx8HRLGw/kPN16gLsyam0vy1GmUbNxI6xkPE3bbbc4OSdOcTieHJmzZni3c//sd2JTwcO83uDWh+kjq1fz1BSx5BLr/Ay5/RQ+LAVSkppI0aTIVSUlEv/4aQZdd5uyQNM0l6OTQRC3YsoYXNt0DypPXhrzLJV17nbzA3p/hqynQfhCM/KDeH+nZFJVu307ypMnYysqInfMB/v37OzskTXMZOjk0Qa/+tpy5ex/BQ3x4/9I59IvucvICqZtg8S0Q0Q1GLQBPPVBc4apVpN49HbfAQOI+/QTvLrUcQ01rYXRyaEJsNsUD337L0uxn8XYLYMGVc+kWHnfyQtl74dPrwa8VjP4CfEMaI1SXlvf116Q99jjeHTsS+/5sPNu0qb2QprUwOjk0ESXlVsYv+oy/LK/i7xnMFyPmExt0/DMEqig4DB9fAygY8xUEneAu6RZCKUX2+x+Q+dpr+A0YQMx/3sI9sOanvGlaS6eTQxOQUVDKmE8Wkub9NqE+4Xw+Yh5t/duevFBpnjFeUlEWjP0Wwjs3TrAuSlmtHHruOXIXLiLoyiuJ+tfziJcedVbTTkQnBxe341A+YxcspCj0Pdr4RbLoHx8R4Rdx8kIVpbBoNGRuh5sXQ8zZjROsi7KVlJD6wIMULl9O2MQJRNx3n76HQdNqoZODC/t1ZwbTvlqMtJlLbGAMH1/xIeG+tYyYarPCV5PgwAoY+T50vrhxgnVRliNHSJlyByVbt9Lm8cdpNWa0s0PStCZBJwcX9fHagzzz05f4xMynY3Accy+bQyufVicvpBT88BBs+xoueR7OvKFxgnVR5cnJJN8+iYr0dKLffIOgSy5xdkia1mTo5OBirDbFC99vZ+6W/+Efs4AurToz55L3CfEJqb3w7y/D+g9g4N0wcFqDx+rKSv5OJHnyZJTFQru5H+LXt6+zQ9K0JkUnBxdSXG5h+qIt/JK8HP/YhcSHncF7w94j2NuBUUE3fgS/PA+9b4KLn27wWF1Z4YoVpEy/B4+QEGI/no93x47ODknTmhx9Vc5FHM4v5Yb31vBryk/4xyykV0QP3r/kfccSw/bv4Lt7ofMwuOo/0IIvtub+90uSp9yBV1x72i9aqBODpp0ih84iIjJcRHaKyB4RmVHD/FAR+UpEtorIOhHpaTfvXhFJFJG/RWShiPiY018WkR1mma9EJMScHiciJSKyxXzNqqd9dVnb0vK5euYq9peswi96Ib1bn8l7F79HoJcDffAPrIIvxkNUX7hhHrifYJjuZk4pRebMmaQ/9hj+AwbQfv7HeLZu7eywNK3JqjU5iIg7MBO4DIgHbhKR+GqLPQpsUUqdCdwKvGmWjQbuBhKUUj0Bd2CUWWYZ0NMsswt4xG59e5VSfczXlFPeuybglx0ZXD9rNeU+63Fvs5C+bfoy6+JZBHgF1F74cCIsvAlC2sHNn4GXf8MH7IKUxcKhJ58i6z9vEzxiBLGz3sU9oGUeC02rL47UHPoDe5RS+5RS5cAiYES1ZeKB5QBKqR1AnIgcHZPAA/AVEQ/AD0gzl1uqlLKYy6wFYk5rT5qg+WsOMGHeesIj/6Si1QL6R/bjnYvfwc/zBE9vs5ebZNzk5uVnPOLTP6zhA3ZBtuJiUqZOI/fzzwmbMpnIF19APFtm7UnT6pMjySEaSLb7nGJOs/cnMBJARPoD7YEYpVQq8AqQBKQDeUqppTVsYzzwg93nDiKyWUR+E5EhNQUlIpNEZIOIbMjMzHRgN1yH1aZ4+ttEnvw6kZ5nbCPH7xMGRg3k7YvextfDt/YVFGXDxyOhohjGfGnUHFogS3Y2B8feRuGKFbT95z9pfc89J3+WhaZpDnMkOdT036aqfX4RCBWRLcBdwGbAIiKhGLWMDkAU4C8iY6qsXOQxwAJ8ak5KB9oppc4C7gMWiEjQcQEoNVsplaCUSoiIqOWOYRdSVGZh0vwNzF11gPPO3sV+5nNezHm8edGb+Hg4MFpqeREsuB7ykuGmRdCmegtfy1B+8CAHbrqZst27iXn7P4SOutHZIWlas+JIV9YUINbucwxm09BRSql8YByAGF/d9puvS4H9SqlMc96XwEDgE/PzWOBKYKhSSpnrKgPKzPcbRWQv0BXYcGq76DoO5ZUyYd56tqfnM+K8vfyc+SEXxl7IK+e/gpe7A+P8WCvgs1shbTPc+Am0H9jwQbugkq1bSZ5sXIpq/9FcfPv0cW5AmtYMOVJzWA90EZEOIuKFcUH5G/sFRCTEnAcwEfjdTBhJwAAR8TOTxlBgu1lmOPAwcJVSqthuXRHmRXBEpCPQBdh3OjvpChLT8rh65ioOZBVx8yX7+TnzfYa1H8arF7zqWGKw2eDrabDnJ7jydTjjioYP2gUV/PILB28di1tAAHELF+jEoGkNpNbkYF40ngYswTixf6aUShSRKSJytCdRdyBRRHZg9Gqabpb9A/gC2AT8ZW5vtlnmbSAQWFaty+p5wFYR+dMsO0UplXP6u+o8y7cf5vpZa3ATuPnS3Xyd9B7D44bz0nkv4enm4MXTn56CrYvgwsfh7NsaNF5XdWTxZ6RMnYZ3587ELVyAV1ycs0PStGZLzNacJi0hIUFt2OCarU5zV+3n2e+20SMqmPPP2cy87bO5ouMVPDfoOTzcHLxBffV/YOnj0O92uPzlFvfsZ6UUmW+9Rfa7s/A//zxiXnsNN3/dVVXTTpeIbFRKJdQ0Tw+f0UAsVhvPfreNeWsOMqx7a7r3WM3cxA8Y0WkETw98GndHn+H852IjMcRfDZe91PISQ0UF6U8+Rd5XXxF83bVE/vOfiIf+s9W0hqb/yxpAYZmFuxZs4pedmUwcHIdf26XMTfyQa7tcy5PnPombODi8xe6f4Os7IW4IjJwNjiaUZsJaWETqPfdQtHIl4dOmET71Tt1VVdMaiU4O9Sw9r4TxH21g1+ECnh3Rg0MenzM3cT43druRR8951PHEkLLR6JnUujuM+hQ8vBs2cBdjycwkefIUSnfuJPK5Zwm57jpnh6RpLYpODvXor5Q8JsxbT3G5lTljE1iTO4cF2xYwuvtoHu73sOPferN2G/cy+IfD6P+CjwOD7zUjZfv2k3z77Vhycoh9ZyYB55/v7JA0rcVpucN31rOliYe44b01eLq78fmUAazIeY8FOxYwNn5s3RJDfrpx9zMCt3wFgW1qLdKcFG/azMGbbsJWWkr7+fN1YtA0J9HJ4TQppfhgxT4mf7KRrm0C+O+dA1i8/3U+2/UZE3pO4P6E+x1PDCW5xnhJJTkw5gsI69Sgsbua/GXLSBo3DveQEOIWLcS3V8/aC2ma1iB0s9JpsFht/PPbRD5Zm8TwHm155fpevLDhab7Z+w2Tz5zM1D5THU8MFaWw6GbI2gWjP4Oosxo2eBeT8+mnHH7ueXzO7EXsu+/i0aqWR6JqmtagdHI4RQWlFUxbsJnfdmUy+byO3H9JZ55Y/Tjf7/+eqX2mMqV3HUYat1nhvxPg4Cq4dg50uqjhAncxymYj8/XXyX7/AwIuuojoV1/BzdeBwQc1TWtQOjmcgtTcEiZ8tJ7dGYW8MLIX1yVE8siKR1hyYAnT+05nYq+Jjq9MKfjffbDjOxj+EvRqOb1yVHk5aY89Tv633xIy6kbaPv64vodB01yE/k+so60puUyYt4HScivzxvXnnI7BPPTbQ/yU9BMPJDzA2B5j67bCX180nv88+F4Y0Kyfa1SFtaCAlLvvpnjNWiLuuYewyZP0PQya5kJ0cqiDH/8+xD2LNxPm782nd55DXLg39/12H78m/8qM/jMY3X103Va4fg789iL0GQNDn2qQmF1RxeHDJE+aTNnevUS++AIhV1/t7JA0TatGJwcHKKV4f8U+XvhhB71jQnj/1gSC/OCeX+5hReoKHj/ncW48o47PE9j2Nfzvfug6HP7xZosZFqNszx6Sbp+ELS+P2FmzCBg8yNkhaZpWA50calFhtfHk14ksXJfEFb0iefWG3iAV3P3zdNakreGpc5/iuq51vE6wfwX8dyLE9IPr5oJ7y/g1FK9fT/LUaYi3F+0/+Rif+Jb5oCJNawpaxlnpFOWXVjD1002s2J3FnRd04oFLulFqLeHu5Xez7tA6nhn0DFd3vrpuKz30l9FlNbQD3LzYeAZ0C5D/44+kPfgQnrGxxM6ejVdM9SfNaprmSnRyOIHknGImzFvPvswi/n3tmdzQL5biimLuXH4nmzM28/zg5/lHp3/UbaVHDhg3uXkHwi1fgl/L6MufM28eh198Cd+zziL2nZm4h4Q4OyRN02qhk0MNtiTnMnHeesosNuaN78+gzuEUlhdy5/I72Zq5lReHvMhlHS6r20qLsoxhMSxlMP5rCI5pmOBdiLLZyPj3y+R89BGBw4YR9fK/cfNx4DnZmqY5nU4O1Xz/Vzr3Lt5C6yBvFk0aQOfWgeSX53PHT3ewLWsbL5//MsPaD6vbSssK4dPrID8Nbv3aGGm1mbOVl5M+Ywb53/9A6JgxtHlkBuLesoYc17SmTCcHk1KKWb/t46Ufd9C3XQizb00gPMCbvLI8Ji+bzM4jO3n1gle5qF0d7162lMNnt0D6VmPo7XbnNMwOuBBrXh4p0+6ieP16Wj/4AK3Gj9f3MGhaE6OTA0aPpMe/+pvFG5K58sxIXrm+Nz6e7uSW5nL7stvZm7uXNy54g/Nj6zhCqM1mPKxn788wYiZ0q2NTVBNUkZ5O8qRJlB04SNTLLxP8jyudHZKmaaegxSeHvJIK7vx0I6v2ZDPtws7cN6wrbm5CTmkOE5dOJCk/if9c9B8GRdexP75SxuM9//ochj4JZ41pmB1wIaU7d5E8aRK2oiLavT8b/wEDnB2SpmmnyKEhu0VkuIjsFJE9IjKjhvmhIvKViGwVkXUi0tNu3r0ikigif4vIQhHxMae3EpFlIrLb/BlqV+YRc1s7ReTS+tjRmiTnFHPtu6tZtz+Hl687kwcu7Yabm5BVksWEJRNIzk/m7aFv1z0xAKx+C9bOhHOmwOD76j94F1O0di0HRxt3iLf/9BOdGDStias1OYiIOzATuAyIB24Skep3Lz0KbFFKnQncCrxplo0G7gYSlFI9AXdglFlmBrBcKdUFWG5+xlz3KKAHMBx4x4yh3llsCovVxvzx53B9QiwAGcUZjF8yntTCVN65+B0GRJ7CSW7LAlj2JPQYCZe+0Ozvfs777n8k3T4Jz8i2xC1aiE+3bs4OSdO00+RIzaE/sEcptU8pVQ4sAkZUWyYe4wSPUmoHECciRx9h5gH4iogH4AekmdNHAPPM9/OAq+2mL1JKlSml9gN7zBjqXYdwf36673zO7RQGwKGiQ4xfMp7DRYeZdfEs+rXtV/eV7loCX0+DDufDNbPArfk+T0kpRfacOaQ98AB+ffrQ/tNP8YyMdHZYmqbVA0fOXNFAst3nFHOavT+BkQAi0h9oD8QopVKBV4AkIB3IU0otNcu0UUqlA5g/W9dhe4jIJBHZICIbMjMzHdiNmnm4G4cgrTCNcT+OI7skm/eGvUffNn3rvrLk9fDZWGjbE278BDy8TzkuV6esVg4//y8yXn6FwMuGEzvnA9yDgpwdlqZp9cSR5FBTm4iq9vlFIFREtgB3AZsBi3kdYQTQAYgC/EWktiuzjmwPpdRspVSCUiohIiKillWeXEpBCuN+HEdeeR6zh82mT+s+dV9J5k5YcD0EtoXRX4BP8z1R2kpLSb3nXo588gmtbruN6Fdfxc3Ly9lhaZpWjxzprZQCxNp9juFY0xAASql8YByAGB3a95uvS4H9SqlMc96XwEDgE+CwiEQqpdJFJBLIcHR79SkpP4kJSydQYinhg0s+ID7sFAaDy0s17n528zSGxQhoXXuZJsqam0vynVMp2byZNo/MoNXYOj6/QtO0JsGRmsN6oIuIdBARL4yLxd/YLyAiIeY8gInA72bCSAIGiIifmTSGAtvN5b4Bjp5ZxgJf200fJSLeItIB6AKsO7XdO7kDeQcY9+M4yixlzLlkzqklhpIjxnhJpXkw5gto1bH+A3URFYczOHDzaEr/+ovo11/TiUHTmrFaaw5KKYuITAOWYPQ2+lAplSgiU8z5s4DuwHwRsQLbgAnmvD9E5AtgE2DBaG6aba76ReAzEZmAkUSuN8skishn5noswFSllLW+dtiep7snrf1a88ygZ+gS2qXuK6gogQWjIGev0ZQU2bv+g3QRFRkZJI0diyUjg9g5H+Dfv0H6CGia5iJEqeOa85uchIQEtWHDhlMqq5Q6taEdrBZjWIydP8B1H0LPkae0/abAkpnJwbG3UXHoEO3en43f2Wc7OyRN0+qBiGxUSiXUNK/F3yF9SolBKfjfvbDze7js5eadGLKzOThuHBXp6bSb/Z5ODJrWQjTfTvgN6ZfnYdN8OO9BOGeSs6NpMJacHJJuu42K1DRi35uFX79TuO9D07QmqcXXHOrsj9nw+8vQ91a48DFnR9NgLEeOkHTbOMqTU4idNUtfY9C0FkYnh7r4+0v44SHodjlc8XqzHRajMjEcPEjsrHfxH9D8hxnXNK0qnRwcte83+GoytBtgXIB2b56HzpqbS9L4CZTv30/MO+/gf+65zg5J0zQnaJ5nuPqW/icsGg2tOsFNC8HT19kRNQhrXp6RGPbsIeadmQQMPoXRaDVNaxb0Bena5OyDT64Dn2AY81/wDa29TBNkzc8nacJEynbvJubt/xAwZIizQ9I0zYl0zeFkCjOMYTFsFXDbdxB83Ph/zYK1oICkibdTunMnMW+9ScD5dXzinaZpzY5ODidSmm8Mi1FwCMZ+CxHN8xkF1sJCkifeTun27cS8+QaBF17o7JA0TXMBOjnUxFIGi8fA4US4aRHENs/+/dbCIpJvn0RJYiIxb7xO4EUXOTskTdNchE4O1dls8NUU2P8bXD0Lul7i7IgahK2oiOTJkynZupXo114j8OKLnR2SpmkuRF+QtqcU/DgDEr+Ei5+GPjc5O6IGYSsuJnnyFEq2bCH61VcIurR5JkBN006drjnYW/karHsPBkyFQdOdHU2DsBUXkzzlDoo3bSL6lZcJGj7c2SFpmuaCdM3hqE0fw/JnoNf1cMlzzfLuZ1tJCcl33Enxhg1E/fvfBF1+ubND0jTNRemaAxjDbn87HTpdBCPeAbfmlzNtpaWkTJ1K8bp1RL30IsFXXuHskDRNc2HN7yxYV0l/wOe3QeSZcMPH4NH8noVsKysjZeo0itasJfKFfxF81VXODknTNBfXspNDxg5YcAMERcPNn4N3gLMjqne2sjJSpt1F0erVRD73HCFXX+3skDRNawJadnLwCYKos+CWLyEgwtnR1DtbeTkpd99N0YoVRD77DCHXNt+HEmmaVr9a9jWHoCi49f+cHUWDsJWXk3r3dIp++522Tz9NyHXXOTskTdOakJZdc2imVHk5qffcS+Gvv9L2n08ReuMNzg5J07QmRieHZkZVVJB6//0U/vwzbZ54nNBRo5wdkqZpTZBDyUFEhovIThHZIyIzapgfKiJfichWEVknIj3N6d1EZIvdK19E7jHnLbabfkBEtpjT40SkxG7erPrb3ebNSAwPULDsJ9o89hitRo92dkiapjVRtV5zEBF3YCYwDEgB1ovIN0qpbXaLPQpsUUpdIyJnmMsPVUrtBPrYrScV+ApAKXWj3TZeBfLs1rdXKdXnNParxVEWC6kPPkTB0qW0eWQGrW4Z4+yQNE1rwhypOfQH9iil9imlyoFFwIhqy8QDywGUUjuAOBFpU22ZoRgn/YP2E0VEgBuAhacQv4aRGNIeepiCH3+k9UMP0WrsWGeHpGlaE+dIcogGku0+p5jT7P0JjAQQkf5AeyCm2jKjqDkBDAEOK6V2203rICKbReQ3EanxkWQiMklENojIhszMTAd2o3lSVitpMx4h//vvaf3gA4SNH+fskDRNawYcSQ41DTKkqn1+EQg1rxvcBWwGLJUrEPECrgI+r2FdN1E1aaQD7ZRSZwH3AQtEJOi4AJSarZRKUEolREQ0v3sUHKGsVtIeeYT8774j4r77CJswwdkhaZrWTDhyn0MKEGv3OQZIs19AKZUPjIPKZqL95uuoy4BNSqnD9uVExAOjxnG23brKgDLz/UYR2Qt0BTY4tkstg7JaSX/scfK/+ZaIe6YTPul2Z4ekaVoz4kjNYT3QRUQ6mDWAUcA39guISIg5D2Ai8LuZMI6qXjs46mJgh1IqxW5dEebFa0SkI9AF2OfoDrUEymYj/Yknyfu//yP8rmmET5ni7JA0TWtmaq05KKUsIjINWAK4Ax8qpRJFZIo5fxbQHZgvIlZgG1DZviEifhg9nSbXsPqarkOcBzwjIhbACkxRSuXUec+aKWWzceipp8j78kvC77yTiKlTnR2SpmnNkChV/fJB05OQkKA2bGj+rU7KZuPQ08+Qu3gxYVMmEzF9OtIMnzuhaVrjEJGNSqmEmubpO6SbCKUUh5591kgMkybpxKBpWoPSyaEJUEpx+NnnyF24iLCJE4i49x6dGDRNa1A6Obg4pRSH//UCRxYsoNW4cUTcf79ODJqmNTidHFyYUoqMF1/iyMcf02rsrbR+6EGdGDRNaxQ6ObgopRQZL79Czrx5hN5yC61nzNCJQdO0RqOTgwtSSpH56qvkfPghoTffTJtHH9GJQdO0RqWTg4tRSpH5+htkfzCHkJtG0eaJx3Vi0DSt0enk4EKUUmS+9RbZs2cTcsMNtH3iCZ0YNE1zCp0cXEjW2zPJfncWIddfR9t/PoW46V+PpmnOoc8+LiLznXfImjmT4JEjafv00zoxaJrmVPoM5AKyZr1H1lv/IXjECCKffUYnBk3TnE6fhZwsa/b7ZL7xBkFX/YPIfz2PuLs7OyRN0zSdHJwpe84cMl97jaArryTqhRd0YtA0zWXo5OAk2XM/IuPlVwi6/HKiXtSJQdM016KTgxPkzJtHxksvETh8OFH/fgnxcOSBfJqmaY1HJ4dGlvPxJxx+4UUCL7mE6Jf/rRODpmkuSSeHRpSzYAGHn3+egIuHEv3qK4inp7ND0jRNq5FODo3kyKJFHH7mWQIuuoiY117TiUHTNJemk0MjOLL4Mw7982kCLriAmDdeR7y8nB2SpmnaSenk0MByv/iCQ089hf/55xH91ps6MWia1iQ4lBxEZLiI7BSRPSIyo4b5oSLylYhsFZF1ItLTnN5NRLbYvfJF5B5z3j9FJNVu3uV263vE3NZOEbm0nva10eV++RXpTzyJ/5AhxLz1Fm46MWia1kTU2lVGRNyBmcAwIAVYLyLfKKW22S32KLBFKXWNiJxhLj9UKbUT6GO3nlTgK7tyryulXqm2vXhgFNADiAJ+EpGuSinrKe6jU+T+3/+R/thj+J97LjFv/wc3b29nh6RpmuYwR2oO/YE9Sql9SqlyYBEwotoy8cByAKXUDiBORNpUW2YosFcpdbCW7Y0AFimlypRS+4E9ZgxNRt6335L+yKP4DTiHmHdm6sSgaVqT40hyiAaS7T6nmNPs/QmMBBCR/kB7IKbaMqOAhdWmTTOboj4UkdA6bM9l5X33P9IenoFf//7EvvMObj4+zg5J0zStzhxJDjU9bUZV+/wiECoiW4C7gM2ApXIFIl7AVcDndmXeBTphNDulA6/WYXuIyCQR2SAiGzIzMx3YjYaX//33pD30EH4JCcS++w5uvr7ODknTNO2UOHJ7bgoQa/c5BkizX0AplQ+MAxDj0WX7zddRlwGblFKH7cpUvheR94HvHN2eWX42MBsgISHhuOTR2PJ//JHUBx/Ct+9ZxM56Fzc/P2eHpGmadsocqTmsB7qISAezBjAK+MZ+AREJMecBTAR+NxPGUTdRrUlJRCLtPl4D/G2+/wYYJSLeItIB6AKsc3SHnCF/6VJS738A3969affeezoxaJrW5NVac1BKWURkGrAEcAc+VEolisgUc/4soDswX0SswDZgwtHyIuKH0dNpcrVV/1tE+mA0GR04Ot9c92fmeizAVFfuqVTw00+k3nc/vr16ETt7Nm7+/s4OSdM07bSJUk5vkTltCQkJasOGDY2+3YKffyFl+nR84+OJnfMB7gEBjR6DpmnaqRKRjUqphJrm6TukT1HBL0Zi8OnendgP3teJQdO0ZkUnh1NQ+NtvpN49HZ9u3Wj3wfu4BwY6OyRN07R6pZNDHRWuWEnKXXfj3aUL7eZ8gHtQkLND0jRNq3c6OdRB4apVpEydilenTrT7cA7uwcHODknTNK1B6OTgoKI1a0i5cypeHToYiSEkxNkhaZqmNRidHBxQtPYPku+4E6/27Wn30Vw8QkNrL6RpmtaE6eRQi6J160ieMgWv2BidGDRNazF0cjiJ4g0bSJ48Bc/oaNrNnYtHq1bODknTNK1R6ORwAsWbNpE0aTKekZG0/2guHuHhzg5J0zSt0ejkUIPizZtJnng7nq1bG01JERHODknTNK1R6eRQTcmff5I88XbcI8JpN+8jPFu3dnZImqZpjU4nBzslW7eSNGEi7mFhtJ83D8821R9mp2ma1jLo5GAq+etvIzGEhtJ+3kd4tm3r7JA0TdOcRicHoCQxkaQJE3APCjISQ2Rk7YU0TdOasRafHEq3bydp/ATcAvxpN28enlFRzg5J0zTN6Vp0cijduYukceNx8/Oj/fz5eMVEOzskTdM0l9Cik4N7aAg+8fG0n/cRXjExzg5H0zTNZdT6mNDmzLN1a9p9OMfZYWiaprmcFl1z0DRN02qmk4OmaZp2HJ0cNE3TtOM4lBxEZLiI7BSRPSIyo4b5oSLylYhsFZF1ItLTnN5NRLbYvfJF5B5z3ssissMs85WIhJjT40SkxK7MrPrbXU3TNM0RtSYHEXEHZgKXAfHATSISX22xR4EtSqkzgVuBNwGUUjuVUn2UUn2As4Fi4CuzzDKgp1lmF/CI3fr2Hi2nlJpyynunaZqmnRJHag79gT1KqX1KqXJgETCi2jLxwHIApdQOIE5Eqg9MNBTjpH/QXG6pUspizlsL6L6kmqZpLsKR5BANJNt9TjGn2fsTGAkgIv2B9hx/sh8FLDzBNsYDP9h97iAim0XkNxEZUlMBEZkkIhtEZENmZqYDu6FpmqY5ypHkIDVMU9U+vwiEisgW4C5gM3C0VoCIeAFXAZ8ft3KRx8xlPzUnpQPtlFJnAfcBC0Qk6LgAlJqtlEpQSiVE6OctaJqm1StHboJLAWLtPscAafYLKKXygXEAIiLAfvN11GXAJqXUYftyIjIWuBIYqpRS5rrKgDLz/UYR2Qt0BTacKMCNGzdmichBB/blRMKBrNMo31B0XHWj46obHVfdNMe42p9ohiPJYT3QRUQ6AKkYzUM32y9g9jQqNq9JTAR+NxPGUTdRrUlJRIYDDwPnK6WK7aZHADlKKauIdAS6APtOFqBS6rSqDiKyQSmVcDrraAg6rrrRcdWNjqtuWlpctSYHpZRFRKYBSwB34EOlVKKITDHnzwK6A/NFxApsAybYBe4HDAMmV1v124A3sMyobLDW7Jl0HvCMiFgAKzBFKZVzerupaZqm1YVDYysppb4Hvq82bZbd+zUY3/BrKlsMhNUwvfMJlv8v8F9H4tI0TdMahr5D2jDb2QGcgI6rbnRcdaPjqpsWFZeY14E1TdM0rZKuOWiapmnH0clB0zRNO06LSQ4ODB4oIvKWOX+riPR1kbguEJE8u4EIn2ykuD4UkQwR+fsE8511vGqLq9GPl4jEisgvIrJdRBJFZHoNyzjreDkSmzOOmY85SOefZlxP17BMox8zB+Ny1v+kuxgjR3xXw7z6P1ZKqWb/wuiCuxfoCHhhDPcRX22ZyzGG8BBgAPCHi8R1AfCdE47ZeUBf4O8TzG/04+VgXI1+vIBIoK/5PhBjIEmn/33VITZnHDMBAsz3nsAfwABnHzMH43LW/+R9wIKatt0Qx6ql1BwcGTxwBDBfGdYCISIS6QJxOYVS6nfgZPeXOON4ORJXo1NKpSulNpnvC4DtHD/+mLOOlyOxNTrzOBSaHz3NV/XeMY1+zByMq9GJSAxwBfDBCRap92PVUpKDI4MHOrKMM+ICONes5v4gIj0aOCZHOeN4Ocppx0tE4oCzML5x2nP68TpJbOCEY2Y2k2wBMoBlSimXOGYOxAWNf7zeAB4CbCeYX+/HqqUkB0cGD3RkmfrmyDY3Ae2VUr2B/wD/18AxOcoZx8sRTjteIhKAcQPnParq8DHg5ONVS2xOOWZKKasynvUSA/QX8yFhdpxyzByIq1GPl4hcCWQopTaebLEapp3WsWopyaHWwQMdXKbR41JK5R+t5irjTnVPEQlv4Lgc4YzjVStnHS8R8cQ4+X6qlPqyhkWcdrxqi83Zf2NKqVzgV2B4tVlO/Rs7UVxOOF6DgKtE5ABG0/NFIvJJtWXq/Vi1lORQOXigGMOHjwK+qbbMN8Ct5lX/AUCeUird2XGJSFsRY/ApMZ6V4QZkN3BcjnDG8aqVM46Xub05wHal1GsnWMwpx8uR2Jx0zCLk2KOBfYGLgR3VFmv0Y+ZIXI19vJRSjyilYpRScRjniJ+VUmOqLVbvx8qhsZWaOuXY4IHfY1zx34PxONNxLhLXdcAdYgxEWAKMUmb3hIYkIgsxemWEi0gK8BTGxTmnHS8H43LG8RoE3AL8ZbZVg/Ho3HZ2cTnleDkYmzOOWSQwT4zHELsBnymlvnP2/6SDcTnlf7K6hj5WevgMTdM07TgtpVlJ0zRNqwOdHDRN07Tj6OSgaZqmHUcnB03TNO04OjlomqZpx9HJQdM0TTuOTg6apmnacf4fg/rFEqgwEDoAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for d,h in res.items():\n", + " plt.plot(h.history['val_acc'],label=str(d))\n", + "plt.legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From this graph, you would probably be able to see the following:\n", + "* Dropout values in the 0.2-0.5 range, you will see the fastest training the best overall results\n", + "* Without dropout ($d=0$), you are likely to see less stable and slower training process\n", + "* High dropout (0.8) makes things worse" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "86193a1ab0ba47eac1c69c1756090baa3b420b3eea7d4aafab8b85f8b312f0c5" + }, + "kernelspec": { + "display_name": "Python 3.9.5 64-bit ('base': conda)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/4-ComputerVision/08-TransferLearning/TrainingTricks.md b/4-ComputerVision/08-TransferLearning/TrainingTricks.md new file mode 100644 index 00000000..1afe030d --- /dev/null +++ b/4-ComputerVision/08-TransferLearning/TrainingTricks.md @@ -0,0 +1,108 @@ +# Deep Learning Training Tricks + +As neural networks become deeper, the process of their training becomes more and more challenging. One major problem is so-called [vanishing gradients](https://en.wikipedia.org/wiki/Vanishing_gradient_problem) or [exploding gradients](https://deepai.org/machine-learning-glossary-and-terms/exploding-gradient-problem#:~:text=Exploding%20gradients%20are%20a%20problem,updates%20are%20small%20and%20controlled.). [This post](https://towardsdatascience.com/the-vanishing-exploding-gradient-problem-in-deep-neural-networks-191358470c11) gives a good introduction into those problems. + +To make training deep networks more efficient, there are a few techniques that can be used. + +## Keeping values in reasonable interval + +To make numerical computations more stable, we want to make sure that all values within our neural network are within reasonable scale, typically [-1..1] or [0..1]. It is not a very strict requirement, but the nature of floating point computations is such that values of different magnitudes cannot be accurately manipulated together. For example, if we add 10-10 and 1010, we are likely to get 1010, because smaller value would be "converted" to the same order as the larger one, and thus mantissa would be lost. + +Most activation functions have non-linearities around [-1..1], and thus it makes sense to scale all input data to [-1..1] or [0..1] interval. + +## Initial Weight Initialization + +Ideally, we want the values to be in the same range after passing through network layers. Thus it is important to initialize weights in such a way as to preserve the distribution of values. + +Normal distribution **N(0,1)** is not a good idea, because if we have *n* inputs, the standard deviation of output would be *n*, and values are likely to jump out of [0..1] interval. + +The following initializations are often used: + + * Uniform distribution -- `uniform` + * **N(0,1/n)** -- `gaussian`) + * **N(0,1/√n_in)** guarantees that for inputs with zero mean and standard deviation of 1 the same mean/standard deviation would remain + * **N(0,√2/(n_in+n_out)** -- so-called **Xavier initialization** (`glorot`), it helps to keep the signals in range during both forward and backward propagation + +## Batch Normalization + +Even with proper weight initialization, weights can get arbitrary big or small during the training, and they will bring signals out of proper range. We can bring signals back by using one of **normalization** techniques. While there are several of them (Weight normalization, Layer Normalization), the most often used is Batch Normalization. + +The idea of **batch normalization** is to take into account all values across the minibatch, and perform normalization (i.e. subtract mean and divide by standard deviation) based on those values. It is implemented as a network layer that does this normalization after applying the weights, but before activation function. As a result, we are likely to see higher final accuracy and faster training. + +Here is the [original paper](https://arxiv.org/pdf/1502.03167.pdf) on batch normalization, the [explanation on Wikipedia](https://en.wikipedia.org/wiki/Batch_normalization), and [a good introductory blog post](https://towardsdatascience.com/batch-normalization-in-3-levels-of-understanding-14c2da90a338) (and the one [in Russian](https://habrahabr.ru/post/309302/)). + +## Dropout + +**Dropout** is an interesting technique that removes a certain percentage of random neurons during training. It is also implemented as a layer with one parameter (percentage of neurons to remove, typically 10%-50%), and during training it zeroes random elements of the input vector, before passing it to the next layer. + +While this may sound like a strange idea, you can see the effect of dropout on training MNIST digit classifier in [`Dropout.ipynb`](Dropout.ipynb) notebook. It speeds up training and allows us to achieve higher accuracy in less training epochs. + +This effect can be explained in several ways: + * It can be considered to be a random shocking factor to the model, which takes optimiation out of local minimum + * It can be considered as *implicit model averaging*, because we can say that during dropout we are training slightly different model + +> *Some people say that when a drunk person tries to learn something, he will remember this better next morning, comparing to a sober person, because a brain with some malfunctioning neurons tries to adapt better to gasp the meaning. We never tested ourselves if this is true of not* + +## Preventing overfitting + +One of the very important aspect of deep learning is too be able to prevent [overfitting](../3-NeuralNetworks/05-Frameworks/Overfitting.md). While it might be tempting to use very powerful neural network model, we should always balance the number of model parameters with the number of training samples. + +> Make sure you understand the concept of [overfitting](../3-NeuralNetworks/05-Frameworks/Overfitting.md) we have introduced earlier! + +There are several ways to prevent overfitting: + + * Early stopping -- continuously monitor error on validation set and stopping training when validation error starts to increase. + * Explicit Weight Decay / Regularization -- adding an extra penalty to the loss function for high absolute values of weights, which prevents the model of getting very unstable results + * Model Averaging -- training several models and then averaging the result. This helps to minimize the variance. + * Dropout (Implicit Model Averaging) + +## Optimizers / Training Algorithms + +Another important aspect of training is to chose good training algorithm. While classical **gradient descent** is a reasonable choice, it can sometimes be too slow, or result in other problems. + +In deep learning, we use **Stochastic Gradient Descent** (SGD), which is a gradient descent applied to minibatches, randomly selected from the training set. Weights are adjusted using this formula: + +wt+1 = wt - η∇ℒ + +### Momentum + +In **momentum SGD**, we are keeping a portion of a gradient from previous steps. It is similar to when we are moving somewhere with inertia, and we receive a punch in a different direction, our trajectory does not change immediately, but keeps some part of the original movement. Here we introduce another vector v to + +vt+1 = γ vt - η∇ℒ + +wt+1 = wt+vt+1 + +Here parameter γ indicated the extent to which we take inertia into account: γ=0 corresponds to classical SGD; γ=1 is a pure motion equation. + +### Adam, Adagrad, etc. + +Since in each layer we multiply signals by some matrix Wi, depending on ||Wi||, the gradient can either diminish and be close to 0, or rise indefinitely. It is the essence of Exploding/Vanishing Gradients problem. + +One of the solutions to this problem is to use only direction of the gradient in the equation, and ignore the absolute value, i.e. + +wt+1 = wt - η(∇ℒ/||∇ℒ||) + +where ||∇ℒ|| = √∑(∇ℒ)2 + +This algorithm is called **Adagrad**. Another algorithms that use the same idea: **RMSProp**, **Adam** + +> **Adam** is considered to be a very efficient algorithm for many applications, so if you are not sure which one to use - use Adam. + +### Gradient clipping + +Gradient clipping is an extension the idea above. When the ||∇ℒ|| ≤ θ, we consider the original gradient in the weight optimization, and when ||∇ℒ|| > &theta - we divide the gradient by it's norm. Here θ is a parameter, in most cases we can take θ=1 or θ=10. + +### Learning rate decay + +Training success often depends on the learning rate parameter η. It is logical to assume that larger values of η result in faster training, which is something we typically want in the beginning of the training, and then smaller value of η allow us to fine-tune the network. Thus, in most of the cases we want to decrease η in the process of the training. + +This can be done by multiplying η by some number (eg. 0.98) after each epoch of the training, or by using more complicated **learning rate schedule**. + + +## Different Network Architectures + +Selecting right network architecture for your problem can be tricky. Normally, we would take an architecture that has proven to work for our specific task (or similar one). Here is a [good overview](https://www.topbots.com/a-brief-history-of-neural-network-architectures/) or neural network architectures for computer vision. + +> It is important to select an architecture that will be powerful enough for the number of training samples that we have. Selecting too powerful model can result in [overfitting](../3-NeuralNetworks/05-Frameworks/Overfitting.md) + +Another good way would be to use and architecture that will automatically adjust to the required complexity. To some extent, **ResNet** architecture and **Inception** are self-adjusting. [More on computer vision architectures](../07-ConvNets/CNN_Architectures.md) diff --git a/README.md b/README.md index 3cf76a24..4706c59f 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,8 @@ For a gentle introduction to *AI in the Cloud* topic you may consider taking [Ge Notebook 4 Multi-Layered Perceptron and Creating our own FrameworkTextNotebook 5 - Intro to Frameworks (PyTorch/Tensorflow) - Text + Intro to Frameworks (PyTorch/Tensorflow)
Overfitting + Text
Text PyTorch Keras/Tensorflow IVComputer Vision @@ -51,8 +51,8 @@ For a gentle introduction to *AI in the Cloud* topic you may consider taking [Ge MS Learn PAT 6Intro to Computer Vision. OpenCVTextNotebook -7Convolutional Neural Networks
CNN Architectures
Training TricksText
Text
TextPyTorchTensorflow -8Pre-trained Networks and Transfer LearningTextPyTorchTensorflow +7Convolutional Neural Networks
CNN Architectures
Training TricksText
TextPyTorchTensorflow +8Pre-trained Networks and Transfer LearningText
TextPyTorchTensorflow
Dropout sample 9Autoencoders and VAEsTextPyTorchTensorflow 10 Generative Adversarial NetworksTextPyTorchTensorflow 11Object DetectionTextPyTorchTensorflow