1922 lines
422 KiB
Plaintext
1922 lines
422 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Uczenie maszynowe UMZ 2017/2018\n",
|
||
"# 2. Regresja logistyczna\n",
|
||
"### Część 2"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 2.5. Regresja wielomianowa"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Wybór cech"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"Zadanie: przewidzieć cenę działki o kształcie prostokąta.\n",
|
||
"\n",
|
||
"Jakie cechy wybrać?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
" * $x_1$ – szerokość działki, $x_2$ – długość działki:\n",
|
||
"$$ h_{\\theta}(\\vec{x}) = \\theta_0 + \\theta_1 x_1 + \\theta_2 x_2 $$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
" * $x_1$ – powierzchnia działki:\n",
|
||
"$$ h_{\\theta}(\\vec{x}) = \\theta_0 + \\theta_1 x_1 $$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Regresja wielomianowa"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 50,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Przydtne importy\n",
|
||
"\n",
|
||
"import ipywidgets as widgets\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"import pandas\n",
|
||
"\n",
|
||
"%matplotlib inline"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 51,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Przydatne funkcje\n",
|
||
"\n",
|
||
"# Wersja macierzowa funkcji kosztu\n",
|
||
"def cost(theta, X, y):\n",
|
||
" m = len(y)\n",
|
||
" J = 1.0 / (2.0 * m) * ((X * theta - y).T * (X * theta - y))\n",
|
||
" return J.item()\n",
|
||
"\n",
|
||
"# Wersja macierzowa gradientu funkcji kosztu\n",
|
||
"def gradient(theta, X, y):\n",
|
||
" return 1.0 / len(y) * (X.T * (X * theta - y)) \n",
|
||
"\n",
|
||
"# Algorytm gradientu prostego (wersja macierzowa)\n",
|
||
"def gradient_descent(fJ, fdJ, theta, X, y, alpha=0.1, eps=10**-5):\n",
|
||
" current_cost = fJ(theta, X, y)\n",
|
||
" logs = [[current_cost, theta]]\n",
|
||
" while True:\n",
|
||
" theta = theta - alpha * fdJ(theta, X, y)\n",
|
||
" current_cost, prev_cost = fJ(theta, X, y), current_cost\n",
|
||
" if abs(prev_cost - current_cost) > 10**15:\n",
|
||
" print('Algorithm does not converge!')\n",
|
||
" break\n",
|
||
" if abs(prev_cost - current_cost) <= eps:\n",
|
||
" break\n",
|
||
" logs.append([current_cost, theta]) \n",
|
||
" return theta, logs\n",
|
||
"\n",
|
||
"# Wykres danych (wersja macierzowa)\n",
|
||
"def plot_data(X, y, xlabel, ylabel): \n",
|
||
" fig = plt.figure(figsize=(16*.6, 9*.6))\n",
|
||
" ax = fig.add_subplot(111)\n",
|
||
" fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)\n",
|
||
" ax.scatter([X[:, 1]], [y], c='r', s=50, label='Dane')\n",
|
||
" \n",
|
||
" ax.set_xlabel(xlabel)\n",
|
||
" ax.set_ylabel(ylabel)\n",
|
||
" ax.margins(.05, .05)\n",
|
||
" plt.ylim(y.min() - 1, y.max() + 1)\n",
|
||
" plt.xlim(np.min(X[:, 1]) - 1, np.max(X[:, 1]) + 1)\n",
|
||
" return fig\n",
|
||
"\n",
|
||
"# Wykres funkcji fun\n",
|
||
"def plot_fun(fig, fun, X):\n",
|
||
" ax = fig.axes[0]\n",
|
||
" x0 = np.min(X[:, 1]) - 1.0\n",
|
||
" x1 = np.max(X[:, 1]) + 1.0\n",
|
||
" Arg = np.arange(x0, x1, 0.1)\n",
|
||
" Val = fun(Arg)\n",
|
||
" return ax.plot(Arg, Val, linewidth='2')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 52,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Wczytanie danych (mieszkania) przy pomocy biblioteki pandas\n",
|
||
"\n",
|
||
"alldata = pandas.read_csv('data_flats.tsv', header=0, sep='\\t',\n",
|
||
" usecols=['price', 'rooms', 'sqrMetres'])\n",
|
||
"data = np.matrix(alldata[['sqrMetres', 'price']])\n",
|
||
"\n",
|
||
"m, n_plus_1 = data.shape\n",
|
||
"n = n_plus_1 - 1\n",
|
||
"Xn = data[:, 0:n]\n",
|
||
"Xn /= np.amax(Xn, axis=0)\n",
|
||
"Xn2 = np.power(Xn, 2) \n",
|
||
"Xn2 /= np.amax(Xn2, axis=0)\n",
|
||
"Xn3 = np.power(Xn, 3) \n",
|
||
"Xn3 /= np.amax(Xn3, axis=0)\n",
|
||
"\n",
|
||
"X = np.matrix(np.concatenate((np.ones((m, 1)), Xn), axis=1)).reshape(m, n + 1)\n",
|
||
"X2 = np.matrix(np.concatenate((np.ones((m, 1)), Xn, Xn2), axis=1)).reshape(m, 2 * n + 1)\n",
|
||
"X3 = np.matrix(np.concatenate((np.ones((m, 1)), Xn, Xn2, Xn3), axis=1)).reshape(m, 3 * n + 1)\n",
|
||
"y = np.matrix(data[:, -1]).reshape(m, 1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"Postać ogólna regresji wielomianowej:\n",
|
||
"\n",
|
||
"$$ h_{\\theta}(x) = \\sum_{i=1}^{n} \\theta_i x^i $$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 53,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Funkcja regresji wielomianowej\n",
|
||
"\n",
|
||
"def h_poly(Theta, x):\n",
|
||
" return sum(theta * np.power(x, i) for i, theta in enumerate(Theta.tolist()))\n",
|
||
"\n",
|
||
"def polynomial_regression(theta):\n",
|
||
" return lambda x: h_poly(theta, x)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"Funkcja kwadratowa:\n",
|
||
"\n",
|
||
"$$ h_{\\theta}(x) = \\theta_0 + \\theta_1 x + \\theta_2 x^2 $$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 54,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[<matplotlib.lines.Line2D at 0x7f39d752eb10>]"
|
||
]
|
||
},
|
||
"execution_count": 54,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\nIiIiKeb/AUAiGDKbrPJlAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5ac25410>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data(X2, y, xlabel='x', ylabel='y')\n",
|
||
"theta_start = np.matrix([0, 0, 0]).reshape(3, 1)\n",
|
||
"theta, logs = gradient_descent(cost, gradient, theta_start, X2, y)\n",
|
||
"plot_fun(fig, polynomial_regression(theta), X)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"Funkcja sześcienna:\n",
|
||
"\n",
|
||
"$$ h_{\\theta}(x) = \\theta_0 + \\theta_1 x + \\theta_2 x^2 + \\theta_3 x^3 $$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 55,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[ 397519.38046962]\n",
|
||
" [ -841341.14146733]\n",
|
||
" [ 2253713.97125102]\n",
|
||
" [ -244009.07081946]]\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\nREREksz/A7DOkj9lyGSTAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5ef4add0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data(X3, y, xlabel='x', ylabel='y')\n",
|
||
"theta_start = np.matrix([0, 0, 0, 0]).reshape(4, 1)\n",
|
||
"theta, _ = gradient_descent(cost, gradient, theta_start, X3, y)\n",
|
||
"plot_fun(fig, polynomial_regression(theta), X)\n",
|
||
"\n",
|
||
"print(theta)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"Regresję wielomianową można potraktować jako szczególny przypadek regresji liniowej wielu zmiennych:\n",
|
||
"\n",
|
||
"$$ h_{\\theta}(x) = \\theta_0 + \\theta_1 x + \\theta_2 x^2 + \\theta_3 x^3 $$\n",
|
||
"$$ x_1 = x, \\quad x_2 = x^2, \\quad x_3 = x^3, \\quad \\vec{x} = \\left[ \\begin{array}{ccc} x_0 \\\\ x_1 \\\\ x_2 \\end{array} \\right] $$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"Uwaga praktyczna: przyda się normalizacja cech, szczególnie skalowanie!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"W ten sposób możemy stosować również inne „pochodne” cechy, np.:\n",
|
||
"\n",
|
||
"$$ h_{\\theta}(x) = \\theta_0 + \\theta_1 x + \\theta_2 \\sqrt{x} $$\n",
|
||
"$$ x_1 = x, \\quad x_2 = \\sqrt{x}, \\quad \\vec{x} = \\left[ \\begin{array}{ccc} x_0 \\\\ x_1 \\end{array} \\right] $$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Wielomianowa regresja logistyczna\n",
|
||
"\n",
|
||
"Podobne modyfikacje cech możemy również stosować dla regresji logistycznej."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def powerme(x1,x2,n):\n",
|
||
" X = []\n",
|
||
" for m in range(n+1):\n",
|
||
" for i in range(m+1):\n",
|
||
" X.append(np.multiply(np.power(x1,i),np.power(x2,(m-i))))\n",
|
||
" return np.hstack(X)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"matrix([[ 1. , 0.36596696, -0.11214686],\n",
|
||
" [ 0. , 0.4945305 , 0.47110656],\n",
|
||
" [ 0. , 0.70290604, -0.92257983],\n",
|
||
" [ 0. , 0.46658862, -0.62269739],\n",
|
||
" [ 0. , 0.87939462, -0.11408015],\n",
|
||
" [ 0. , -0.331185 , 0.84447667],\n",
|
||
" [ 0. , -0.54351701, 0.8851383 ],\n",
|
||
" [ 0. , 0.91979241, 0.41607012],\n",
|
||
" [ 0. , 0.28011742, 0.61431157],\n",
|
||
" [ 0. , 0.94754363, -0.78307311]])"
|
||
]
|
||
},
|
||
"execution_count": 14,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Wczytanie danych\n",
|
||
"import pandas\n",
|
||
"import numpy as np\n",
|
||
"\n",
|
||
"alldata = pandas.read_csv('polynomial_logistic.tsv', sep='\\t')\n",
|
||
"data = np.matrix(alldata)\n",
|
||
"\n",
|
||
"m, n_plus_1 = data.shape\n",
|
||
"n = n_plus_1 - 1\n",
|
||
"Xn = data[:, 1:]\n",
|
||
"\n",
|
||
"Xpl = powerme(data[:, 1], data[:, 2], n)\n",
|
||
"Ypl = np.matrix(data[:, 0]).reshape(m, 1)\n",
|
||
"\n",
|
||
"data[:10]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Wykres danych (wersja macierzowa)\n",
|
||
"def plot_data_for_classification(X, Y, xlabel, ylabel): \n",
|
||
" fig = plt.figure(figsize=(16*.6, 9*.6))\n",
|
||
" ax = fig.add_subplot(111)\n",
|
||
" fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)\n",
|
||
" X = X.tolist()\n",
|
||
" Y = Y.tolist()\n",
|
||
" X1n = [x[1] for x, y in zip(X, Y) if y[0] == 0]\n",
|
||
" X1p = [x[1] for x, y in zip(X, Y) if y[0] == 1]\n",
|
||
" X2n = [x[2] for x, y in zip(X, Y) if y[0] == 0]\n",
|
||
" X2p = [x[2] for x, y in zip(X, Y) if y[0] == 1]\n",
|
||
" ax.scatter(X1n, X2n, c='r', marker='x', s=50, label='Dane')\n",
|
||
" ax.scatter(X1p, X2p, c='g', marker='o', s=50, label='Dane')\n",
|
||
" \n",
|
||
" ax.set_xlabel(xlabel)\n",
|
||
" ax.set_ylabel(ylabel)\n",
|
||
" ax.margins(.05, .05)\n",
|
||
" return fig"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\nRQcA9FTPAzgz+7ykNzaZ9SF3f6TXr59w94ckPSRFgxiyel2UUMgjaAEApdDzAM7d37nKf/GSpCtT\nj6+Ip52W9HozuzjuhUumA72VVD9vdzoAAF2W9yCGdnxF0lA84rRf0u2SDntU/+QJSbfFy+2UlFmP\nHgAAQF7yLiNyq5m9KOnHJH3OzI7G03/AzI5IUty79kuSjkr6uqTfd/cT8b+4T9IeM5tRlBP3P7Je\nBwAAgKxRyBcAAKAggijkCwAAgM4RwAEAAASGAA4AACAwBHAAAACBIYADAAAIDAEcAABAYAjgAAAA\nAlPJOnBmdkrS/+3xy1wq6a96/BpFVNX1lqq77lVdb6m6617V9Zaqu+5VXW8p+3V/k7tfttxClQzg\nsmBmU+0U4iubqq63VN11r+p6S9Vd96qut1Tdda/qekvFXXdOoQIAAASGAA4AACAwBHC981DeDchJ\nVddbqu66V3W9peque1XXW6ruuld1vaWCrjs5cAAAAIGhBw4AACAwBHAAAACBIYBbBTP7R2Z2wszq\nZtZyiLGZ3Wxmz5nZjJntTU2/2sy+HE+fMLP+bFq+Oma23sweNbPp+O8lTZb5CTN7JnX7f2Y2Gs/7\npJl9KzVvS/ZrsTLtrHu83PnU+h1OTS/zZ77FzL4UbxNfNbOx1LygPvNW22xq/tr485uJP8+rUvM+\nGE9/zsx+Mst2d0Mb677HzL4Wf8aPmdmbUvOafu9D0MZ6v8/MTqXW7xdT83bG28a0me3MtuWr18a6\n70ut9zfM7HupeSF/5p8ws++Y2fEW883MPhq/L181sxtS8/L/zN2d2wpvkn5I0g9K+oKk4RbLXCTp\nm5KukdQv6c8lXRvP+31Jt8f3f0vSv8h7ndpc79+QtDe+v1fSry+z/HpJr0j6W/HjT0q6Le/16OW6\nSzrTYnppP3NJf1fSUHz/ByS9LOn1oX3mS22zqWX+paTfiu/fLmkivn9tvPxaSVfH/+eivNepy+v+\nE6lt+V8k6x4/bvq9L/qtzfV+n6T/0uS56yU9H/+9JL5/Sd7r1M11b1j+X0v6ROifedz2H5d0g6Tj\nLeaPSPojSSbpRyV9uUifOT1wq+DuX3f355ZZ7CZJM+7+vLuflfQZSdvNzCS9XdLD8XKfkjTau9Z2\n1XZF7ZXaa/dtkv7I3V/taauy0em6X1D2z9zdv+Hu0/H9k5K+I2nZauIF1HSbbVgm/X48LOkd8ee7\nXdJn3H3O3b8laSb+f6FYdt3d/YnUtvykpCsybmMvtPOZt/KTkh5191fc/buSHpV0c4/a2Qudrvsd\nkj6dSct6zN3/RFHnQivbJf2OR56U9Hozu1wF+cwJ4Hpvo6Rvpx6/GE/bIOl77v5aw/QQvMHdX47v\n/4WkNyyz/O1avMH/Wtwlvc/M1na9hb3T7rq/zsymzOzJ5NSxKvSZm9lNio7mv5maHMpn3mqbbbpM\n/Hn+taLPt53nFlmn7d+lqIci0ex7H4J21/un4+/ww2Z2ZYfPLaq22x+fLr9a0uOpyaF+5u1o9d4U\n4jO/OOsXDI2ZfV7SG5vM+pC7P5J1e7Ky1HqnH7i7m1nLWjTx0coPSzqamvxBRUFAv6L6OvdJun+1\nbe6WLq37m9z9JTO7RtLjZvasoh/5wuryZ/67kna6ez2eXOjPHJ0zs5+VNCxpW2ryou+9u3+z+X8I\nzmclfdrd58zsnynqgX17zm3K2u2SHnb386lpZf7MC40Abhnu/s5V/ouXJF2ZenxFPO20ou7Yi+Mj\n+GR6ISy13mb2l2Z2ubu/HP9Yf2eJf/Uzkg66+7nU/056cubM7LclfaArje6Sbqy7u78U/33ezL4g\n6S2S/lAl/8zN7PskfU7RAc6Tqf9d6M+8QattttkyL5rZxZK+X9E23c5zi6yt9pvZOxUF9tvcfS6Z\n3uJ7H8KP+bLr7e6nUw/HFeWFJs99W8Nzv9D1FvZOJ9/Z2yX9q/SEgD/zdrR6bwrxmXMKtfe+ImnI\notGH/Yo2gMMeZUI+oSg/TJJ2SgqlR++wovZKy7d7Ub5EHAAkOWGjkpqOACqoZdfdzC5JThGa2aWS\n3irpa2X/zOPv90FFOSMPN8wL6TNvus02LJN+P26T9Hj8+R6WdLtFo1SvljQk6U8zanc3LLvuZvYW\nSR+XdIu7fyc1ven3PrOWr04763156uEtkr4e3z8q6d3x+l8i6d1aeMah6Nr5vsvM3qwoYf9LqWkh\nf+btOCzp5+LRqD8q6a/jg9FifOZZj5oo003SrYrOfc9J+ktJR+PpPyDpSGq5EUnfUHRU8qHU9GsU\n7dxnJP2BpLV5r1Ob671B0mOSpiV9XtL6ePqwpPHUclcpOlLpa3j+45KeVfQj/nuS1uW9Tt1cd0n/\nIF6/P4//7qrCZy7pZyWdk/RM6rYlxM+82Tar6JTvLfH918Wf30z8eV6Teu6H4uc9J+k9ea9LD9b9\n8/H+LvmMD8fTW37vQ7i1sd4fkXQiXr8nJL059dxfiL8LM5J+Pu916fa6x4//vaQHGp4X+mf+aUWj\n5c8p+i3fJemfS/rn8XyT9LH4fXlWqWoTRfjMuZQWAABAYDiFCgAAEBgCOAAAgMAQwAEAAASGAA4A\nACAwBHAAAACBIYADAAAIDAEcAABAYAjgAKADZvaEmb0rvv+rZvabebcJQPVwLVQA6MyHJd1vZn9b\n0XUfb8m5PQAqiCsxAECHzOyLktZJepu718zsGkWX0Pp+d79t6WcDwOpxChUAOmBmPyzpckln3b0m\nSe7+vLvvyrdlAKqEAA4A2mRml0s6IGm7pDNmdnPOTQJQUQRwANAGM/tbkiYl3evuX5f0HxTlwwFA\n5siBA4BVMrMNkn5N0rskjbv7R3JuEoCSI4ADAAAIDKdQAQAAAkMABwAAEBgCOAAAgMAQwAEAAASG\nAA4AACAwBHAAAACBIYADAAAIDAEcAABAYP4/4wZfiyogf2EAAAAASUVORK5CYII=\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a65818dd0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data_for_classification(Xpl, Ypl, xlabel=r'$x_1$', ylabel=r'$x_2$')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"Propozycja hipotezy:\n",
|
||
"\n",
|
||
"$$ h_\\theta(x) = g(\\theta^T x) = g(\\theta_0 + \\theta_1 x_1 + \\theta_2 x_2 + \\theta_3 x_3 + \\theta_4 x_4 + \\theta_5 x_5) \\; , $$\n",
|
||
"\n",
|
||
"gdzie $g$ – funkcja logistyczna, $x_3 = x_1^2$, $x_4 = x_2^2$, $x_5 = x_1 x_2$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def safeSigmoid(x, eps=0):\n",
|
||
" y = 1.0/(1.0 + np.exp(-x))\n",
|
||
" if eps > 0:\n",
|
||
" y[y < eps] = eps\n",
|
||
" y[y > 1 - eps] = 1 - eps\n",
|
||
" return y\n",
|
||
"\n",
|
||
"def h(theta, X, eps=0.0):\n",
|
||
" return safeSigmoid(X*theta, eps)\n",
|
||
"\n",
|
||
"def J(h,theta,X,y, lamb=0):\n",
|
||
" m = len(y)\n",
|
||
" f = h(theta, X, eps=10**-7)\n",
|
||
" j = -np.sum(np.multiply(y, np.log(f)) + \n",
|
||
" np.multiply(1 - y, np.log(1 - f)), axis=0)/m\n",
|
||
" if lamb > 0:\n",
|
||
" j += lamb/(2*m) * np.sum(np.power(theta[1:],2))\n",
|
||
" return j\n",
|
||
"\n",
|
||
"def dJ(h,theta,X,y,lamb=0):\n",
|
||
" g = 1.0/y.shape[0]*(X.T*(h(theta,X)-y))\n",
|
||
" if lamb > 0:\n",
|
||
" g[1:] += lamb/float(y.shape[0]) * theta[1:] \n",
|
||
" return g\n",
|
||
"\n",
|
||
"def classifyBi(theta, X):\n",
|
||
" prob = h(theta, X)\n",
|
||
" return prob"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Metoda gradientu prostego dla regresji logistycznej\n",
|
||
"def GD(h, fJ, fdJ, theta, X, y, alpha=0.01, eps=10**-3, maxSteps=10000):\n",
|
||
" errorCurr = fJ(h, theta, X, y)\n",
|
||
" errors = [[errorCurr, theta]]\n",
|
||
" while True:\n",
|
||
" # oblicz nowe theta\n",
|
||
" theta = theta - alpha * fdJ(h, theta, X, y)\n",
|
||
" # raportuj poziom błędu\n",
|
||
" errorCurr, errorPrev = fJ(h, theta, X, y), errorCurr\n",
|
||
" # kryteria stopu\n",
|
||
" if abs(errorPrev - errorCurr) <= eps:\n",
|
||
" break\n",
|
||
" if len(errors) > maxSteps:\n",
|
||
" break\n",
|
||
" errors.append([errorCurr, theta]) \n",
|
||
" return theta, errors"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"theta = [[ 1.59558981]\n",
|
||
" [ 0.12602307]\n",
|
||
" [ 0.65718518]\n",
|
||
" [-5.26367581]\n",
|
||
" [ 1.96832544]\n",
|
||
" [-6.97946065]]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Uruchomienie metody gradientu prostego dla regresji logistycznej\n",
|
||
"theta_start = np.matrix(np.zeros(Xpl.shape[1])).reshape(Xpl.shape[1],1)\n",
|
||
"theta, errors = GD(h, J, dJ, theta_start, Xpl, Ypl, \n",
|
||
" alpha=0.1, eps=10**-7, maxSteps=10000)\n",
|
||
"print(r'theta = {}'.format(theta))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Wykres granicy klas\n",
|
||
"def plot_decision_boundary(fig, theta, X):\n",
|
||
" ax = fig.axes[0]\n",
|
||
" xx, yy = np.meshgrid(np.arange(-1.0, 1.0, 0.02),\n",
|
||
" np.arange(-1.0, 1.0, 0.02))\n",
|
||
" l = len(xx.ravel())\n",
|
||
" C = powerme(xx.reshape(l, 1), yy.reshape(l, 1), n)\n",
|
||
" z = classifyBi(theta, C).reshape(int(np.sqrt(l)), int(np.sqrt(l)))\n",
|
||
"\n",
|
||
" plt.contour(xx, yy, z, levels=[0.5], lw=3);"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/home/pawel/.local/lib/python2.7/site-packages/matplotlib/contour.py:967: UserWarning: The following kwargs were not used by contour: 'lw'\n",
|
||
" s)\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5ad7fc90>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data_for_classification(Xpl, Ypl, xlabel=r'$x_1$', ylabel=r'$x_2$')\n",
|
||
"plot_decision_boundary(fig, theta, Xpl)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Wczytanie danych\n",
|
||
"\n",
|
||
"alldata = pandas.read_csv('polynomial_logistic.tsv', sep='\\t')\n",
|
||
"data = np.matrix(alldata)\n",
|
||
"\n",
|
||
"m, n_plus_1 = data.shape\n",
|
||
"Xn = data[:, 1:]\n",
|
||
"\n",
|
||
"n = 10\n",
|
||
"Xpl = powerme(data[:, 1], data[:, 2], n)\n",
|
||
"Ypl = np.matrix(data[:, 0]).reshape(m, 1)\n",
|
||
"\n",
|
||
"theta_start = np.matrix(np.zeros(Xpl.shape[1])).reshape(Xpl.shape[1],1)\n",
|
||
"theta, errors = GD(h, J, dJ, theta_start, Xpl, Ypl, \n",
|
||
" alpha=0.1, eps=10**-7, maxSteps=10000)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5a0f5710>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Przykład dla większej liczby cech\n",
|
||
"fig = plot_data_for_classification(Xpl, Ypl, xlabel=r'$x_1$', ylabel=r'$x_2$')\n",
|
||
"plot_decision_boundary(fig, theta, Xpl)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 2.6. Problem nadmiernego dopasowania"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Obciążenie a wariancja"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 24,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Dane do prostego przykładu\n",
|
||
"\n",
|
||
"data = np.matrix([\n",
|
||
" [0.0, 0.0],\n",
|
||
" [0.5, 1.8],\n",
|
||
" [1.0, 4.8],\n",
|
||
" [1.6, 7.2],\n",
|
||
" [2.6, 8.8],\n",
|
||
" [3.0, 9.0],\n",
|
||
" ])\n",
|
||
"\n",
|
||
"m, n_plus_1 = data.shape\n",
|
||
"n = n_plus_1 - 1\n",
|
||
"Xn1 = data[:, 0:n]\n",
|
||
"Xn1 /= np.amax(Xn1, axis=0)\n",
|
||
"Xn2 = np.power(Xn1, 2) \n",
|
||
"Xn2 /= np.amax(Xn2, axis=0)\n",
|
||
"Xn3 = np.power(Xn1, 3) \n",
|
||
"Xn3 /= np.amax(Xn3, axis=0)\n",
|
||
"Xn4 = np.power(Xn1, 4) \n",
|
||
"Xn4 /= np.amax(Xn4, axis=0)\n",
|
||
"Xn5 = np.power(Xn1, 5) \n",
|
||
"Xn5 /= np.amax(Xn5, axis=0)\n",
|
||
"\n",
|
||
"X1 = np.matrix(np.concatenate((np.ones((m, 1)), Xn1), axis=1)).reshape(m, n + 1)\n",
|
||
"X2 = np.matrix(np.concatenate((np.ones((m, 1)), Xn1, Xn2), axis=1)).reshape(m, 2 * n + 1)\n",
|
||
"X5 = np.matrix(np.concatenate((np.ones((m, 1)), Xn1, Xn2, Xn3, Xn4, Xn5), axis=1)).reshape(m, 5 * n + 1)\n",
|
||
"y = np.matrix(data[:, -1]).reshape(m, 1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 25,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\nP+LW5Zyqu4/aAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a4e4caed0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data(X1, y, xlabel='x', ylabel='y')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 26,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[<matplotlib.lines.Line2D at 0x7f3a5ac3d1d0>]"
|
||
]
|
||
},
|
||
"execution_count": 26,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5ac3d350>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data(X1, y, xlabel='x', ylabel='y')\n",
|
||
"theta_start = np.matrix([0, 0]).reshape(2, 1)\n",
|
||
"theta, _ = gradient_descent(cost, gradient, theta_start, X1, y, eps=0.00001)\n",
|
||
"plot_fun(fig, polynomial_regression(theta), X1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"Ten model ma duże **obciążenie** (**błąd systematyczny**, _bias_) – zachodzi **niedostateczne dopasowanie** (_underfitting_)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 27,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[<matplotlib.lines.Line2D at 0x7f3a5aac3350>]"
|
||
]
|
||
},
|
||
"execution_count": 27,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\nAADgsf8PQ5GyUdomDXUAAAAASUVORK5CYII=\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5aac3210>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data(X2, y, xlabel='x', ylabel='y')\n",
|
||
"theta_start = np.matrix([0, 0, 0]).reshape(3, 1)\n",
|
||
"theta, _ = gradient_descent(cost, gradient, theta_start, X2, y, eps=0.000001)\n",
|
||
"plot_fun(fig, polynomial_regression(theta), X1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"Ten model jest odpowiednio dopasowany."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 28,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[<matplotlib.lines.Line2D at 0x7f3a5aa200d0>]"
|
||
]
|
||
},
|
||
"execution_count": 28,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5aa20490>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data(X5, y, xlabel='x', ylabel='y')\n",
|
||
"theta_start = np.matrix([0, 0, 0, 0, 0, 0]).reshape(6, 1)\n",
|
||
"theta, _ = gradient_descent(cost, gradient, theta_start, X5, y, alpha=0.5, eps=10**-7)\n",
|
||
"plot_fun(fig, polynomial_regression(theta), X1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"Ten model ma dużą **wariancję** (_variance_) – zachodzi **nadmierne dopasowanie** (_overfitting_)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"<img style=\"margin:auto\" width=\"90%\" src=\"fit.png\"/>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Obciążenie (błąd systematyczny, _bias_)\n",
|
||
"\n",
|
||
"* Wynika z błędnych założeń co do algorytmu uczącego się.\n",
|
||
"* Duże obciążenie powoduje niedostateczne dopasowanie."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Wariancja (_variance_)\n",
|
||
"\n",
|
||
"* Wynika z nadwrażliwości na niewielkie fluktuacje w zbiorze uczącym.\n",
|
||
"* Wysoka wariancja może spowodować nadmierne dopasowanie (modelując szum zamiast sygnału)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"<img style=\"margin:auto\" width=\"60%\" src=\"bias2.png\"/>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"<img style=\"margin:auto\" width=\"60%\" src=\"curves.jpg\"/>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 2.7. Metodologia testowania"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Zbiór uczący a zbiór testowy"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Na zbiorze uczącym (treningowym) uczymy algorytmy, a na zbiorze testowym sprawdzamy ich poprawność.\n",
|
||
"* Zbiór uczący powinien być kilkukrotnie większy od testowego (np. 4:1, 9:1 itp.).\n",
|
||
"* Zbiór testowy często jest nieznany.\n",
|
||
"* Należy unikać mieszania danych testowych i treningowych – nie wolno „zanieczyszczać” danych treningowych danymi testowymi!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"Czasami potrzebujemy dobrać parametry modelu, np. $\\alpha$ – który zbiór wykorzystać do tego celu?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"collapsed": true,
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Zbiór walidacyjny"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"Do doboru parametrów najlepiej użyć jeszcze innego zbioru – jest to tzw. **zbiór walidacyjny**"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
" * Zbiór walidacyjny powinien mieć wielkość zbliżoną do wielkości zbioru testowego, czyli np. dane można podzielić na te trzy zbiory w proporcjach 3:1:1, 8:1:1 itp."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Walidacja krzyżowa"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"Którą część danych wydzielić jako zbiór walidacyjny tak, żeby było „najlepiej”?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
" * Niech każda partia danych pełni tę rolę naprzemiennie!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"<img width=\"100%\" src=\"https://chrisjmccormick.files.wordpress.com/2013/07/10_fold_cv.png\"/>\n",
|
||
"Żródło: https://chrisjmccormick.wordpress.com/2013/07/31/k-fold-cross-validation-with-matlab-code/"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Walidacja krzyżowa\n",
|
||
"\n",
|
||
"* Podziel dane $D = \\left\\{ (x^{(1)}, y^{(1)}), \\ldots, (x^{(m)}, y^{(m)})\\right\\} $ na $N$ rozłącznych zbiorów $T_1,\\ldots,T_N$\n",
|
||
"* Dla $i=1,\\ldots,N$, wykonaj:\n",
|
||
" * Użyj $T_i$ do walidacji i zbiór $S_i$ do trenowania, gdzie $S_i = D \\smallsetminus T_i$. \n",
|
||
" * Zapisz model $\\theta_i$.\n",
|
||
"* Akumuluj wyniki dla modeli $\\theta_i$ dla zbiorów $T_i$.\n",
|
||
"* Ustalaj parametry uczenia na akumulowanych wynikach."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Walidacja krzyżowa – wskazówki\n",
|
||
"\n",
|
||
"* Zazwyczaj ustala się $N$ w przedziale od $4$ do $10$, tzw. $N$-krotna walidacja krzyżowa (_$N$-fold cross validation_). \n",
|
||
"* Zbiór $D$ warto zrandomizować przed podziałem.\n",
|
||
"* W jaki sposób akumulować wyniki dla wszystkich zbiórow $T_i$?\n",
|
||
"* Po ustaleniu parametrów dla każdego $T_i$, trenujemy model na całych danych treningowych z ustalonymi parametrami.\n",
|
||
"* Testujemy na zbiorze testowym (jeśli nim dysponujemy)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### _Leave-one-out_\n",
|
||
"\n",
|
||
"Jest to szczególny przypadek walidacji krzyżowej, w której $N = m$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Jaki jest rozmiar pojedynczego zbioru $T_i$?\n",
|
||
"* Jakie są zalety i wady tej metody?\n",
|
||
"* Kiedy może być przydatna?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Zbiór walidujący a algorytmy optymalizacji\n",
|
||
"\n",
|
||
"* Gdy błąd rośnie na zbiorze uczącym, mamy źle dobrany parametr $\\alpha$. Należy go wtedy zmniejszyć.\n",
|
||
"* Gdy błąd zmniejsza się na zbiorze trenującym, ale rośnie na zbiorze walidującym, mamy do czynienia ze zjawiskiem **nadmiernego dopasowania** (_overfitting_).\n",
|
||
"* Należy wtedy przerwać optymalizację. Automatyzacja tego procesu to _early stopping_."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 2.8. Regularyzacja"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 29,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def SGD(h, fJ, fdJ, theta, X, Y, \n",
|
||
" alpha=0.001, maxEpochs=1.0, batchSize=100, \n",
|
||
" adaGrad=False, logError=False, validate=0.0, valStep=100, lamb=0, trainsetsize=1.0):\n",
|
||
" errorsX, errorsY = [], []\n",
|
||
" errorsVX, errorsVY = [], []\n",
|
||
" \n",
|
||
" XT, YT = X, Y\n",
|
||
" \n",
|
||
" m_end=int(trainsetsize*len(X))\n",
|
||
" \n",
|
||
" if validate > 0:\n",
|
||
" mv = int(X.shape[0] * validate)\n",
|
||
" XV, YV = X[:mv], Y[:mv] \n",
|
||
" XT, YT = X[mv:m_end], Y[mv:m_end] \n",
|
||
" m, n = XT.shape\n",
|
||
"\n",
|
||
" start, end = 0, batchSize\n",
|
||
" maxSteps = (m * float(maxEpochs)) / batchSize\n",
|
||
" \n",
|
||
" if adaGrad:\n",
|
||
" hgrad = np.matrix(np.zeros(n)).reshape(n,1)\n",
|
||
" \n",
|
||
" for i in range(int(maxSteps)):\n",
|
||
" XBatch, YBatch = XT[start:end,:], YT[start:end,:]\n",
|
||
"\n",
|
||
" grad = fdJ(h, theta, XBatch, YBatch, lamb=lamb)\n",
|
||
" if adaGrad:\n",
|
||
" hgrad += np.multiply(grad, grad)\n",
|
||
" Gt = 1.0 / (10**-7 + np.sqrt(hgrad))\n",
|
||
" theta = theta - np.multiply(alpha * Gt, grad)\n",
|
||
" else:\n",
|
||
" theta = theta - alpha * grad\n",
|
||
" \n",
|
||
" if logError:\n",
|
||
" errorsX.append(float(i*batchSize)/m)\n",
|
||
" errorsY.append(fJ(h, theta, XBatch, YBatch).item())\n",
|
||
" if validate > 0 and i % valStep == 0:\n",
|
||
" errorsVX.append(float(i*batchSize)/m)\n",
|
||
" errorsVY.append(fJ(h, theta, XV, YV).item())\n",
|
||
" \n",
|
||
" if start + batchSize < m:\n",
|
||
" start += batchSize\n",
|
||
" else:\n",
|
||
" start = 0\n",
|
||
" end = min(start + batchSize, m)\n",
|
||
" return theta, (errorsX, errorsY, errorsVX, errorsVY)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 33,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Przygotowanie danych do przykładu regularyzacji\n",
|
||
"\n",
|
||
"n = 6\n",
|
||
"\n",
|
||
"data = np.matrix(np.loadtxt(\"ex2data2.txt\", delimiter=\",\"))\n",
|
||
"np.random.shuffle(data)\n",
|
||
"\n",
|
||
"X = powerme(data[:,0], data[:,1], n)\n",
|
||
"Y = data[:,2]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 34,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def draw_regularization_example(X, Y, lamb=0, alpha=1, adaGrad=True, maxEpochs=2500, validate=0.25):\n",
|
||
" plt.figure(figsize=(16,8))\n",
|
||
" plt.subplot(121)\n",
|
||
" plt.scatter(X[:, 2].tolist(), X[:, 1].tolist(),\n",
|
||
" c=Y.tolist(),\n",
|
||
" s=100, cmap=plt.cm.get_cmap('prism'));\n",
|
||
"\n",
|
||
" theta = np.matrix(np.zeros(X.shape[1])).reshape(X.shape[1],1)\n",
|
||
" thetaBest, err = SGD(h, J, dJ, theta, X, Y, alpha=alpha, adaGrad=adaGrad, maxEpochs=maxEpochs, batchSize=100, \n",
|
||
" logError=True, validate=validate, valStep=1, lamb=lamb)\n",
|
||
"\n",
|
||
" xx, yy = np.meshgrid(np.arange(-1.5, 1.5, 0.02),\n",
|
||
" np.arange(-1.5, 1.5, 0.02))\n",
|
||
" l = len(xx.ravel())\n",
|
||
" C = powerme(xx.reshape(l, 1),yy.reshape(l, 1), n)\n",
|
||
" z = classifyBi(thetaBest, C).reshape(int(np.sqrt(l)), int(np.sqrt(l)))\n",
|
||
"\n",
|
||
" plt.contour(xx, yy, z, levels=[0.5], lw=3);\n",
|
||
" plt.ylim(-1,1.2);\n",
|
||
" plt.xlim(-1,1.2);\n",
|
||
" plt.legend();\n",
|
||
" plt.subplot(122)\n",
|
||
" plt.plot(err[0],err[1], lw=3, label=\"Training error\")\n",
|
||
" if validate > 0:\n",
|
||
" plt.plot(err[2],err[3], lw=3, label=\"Validation error\");\n",
|
||
" plt.legend()\n",
|
||
" plt.ylim(0.2,0.8);"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 35,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/home/pawel/.local/lib/python2.7/site-packages/ipykernel_launcher.py:2: RuntimeWarning: overflow encountered in exp\n",
|
||
" \n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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\nPv19XrtmLStOKhG7KTISfv4ZTlp7Vq+cv8b6bzfR6skm+OTxTnUID7yoSgtq04FSVMPAMefk5iuU\nlw/XvskDnerw2Yuz+GzoLOLi7Kuu7FC//gr//JN4f2tCYWHw7rvWzG1a5M1r/8xuwYJp61tERERE\nJBMpoZX/bNhg7W+dNw8iIqwENDra2jfZsycMHpy+Ja0//mjfDGBcHHz7LQDLp68hOiqG9gNap308\nB/Pw8uC1b4fSafBDLP50Ge93/5SoiKisDeLLL5Oe3b5daChs3562vuvVs44gSo2vL/Tokba+RURE\nREQykRJasVy9Cg8/bCVESc0ChobCjBlWUae0unTJ2kObmqgo+PdfoiKjWTp5JbVaVaNEhaJpHy8T\nuLi48Oy4J+n3QU9+/XYTw1qM4sp5By3HtsfZs/b9MsHFBS5eTFvfNpu1JNw7hZlww4ACBeDBB9PW\nt1irD3bvtn7RcOWKs6MRERERyVWU0Ipl5syUl7OCldS+807a+y5Y0KrGmxp3d7j7bjYv3cHlf6/y\n6AsPpX2sTGQYBl1eas/rC4by585jPH//CE4eOpU1g999t5VUpiYuLn3Lgl991aqW7OOT+J7NBvnz\nW5WU7ZnJFUtICAwbZi3bb9TI2gN9zz3QpQv89ZezoxMRERHJFfTTqVhmzkz52Jab/vrLqrabFu3a\nQUxM6u1cXOCxx1jz9XoK3ONPzZZV0zZOFmnUuR4f//o2keFRDK7/KjvX7sv8QZ9+Oulk83Y+PlC7\ndtr7d3WFJUtg0iSoUME6EsjDA/z84PnnYf9+KF8+7f3eqYKDoU4dmDjRqt59/bq1lzwiAhYvhpo1\nYe9eZ0cpIiIikuMpoRVLcLB97Ww2+9velCcP9OkDXl7Jt/H0hNatueqVl+0rdtO8eyNc7dl36yQV\n6pRj4pb3KVSsACPbjGbFjLWZO2DjxlCypJVoJsfbG954I/2zqC4u0Ls3HDpkLVv+5x9riexHH0GR\nIunr8041YAAcO5b0+cpxcda/oYceSnsBLxERERG5hRJasRQrZl+7qCgoXDjt/Y8bB02aJD3L6OMD\nVarAnDms/fo3YmNiUzyqJ7soXLIQ4ze+Q/VmlRnX9zOmDplJbEwqy7bTyzCsJb9Fiya919XHxzrj\n99lnHTNe3rzWUtls/EuFbOvKFVi4MOlkNqGrV63K3iIiIiKSbkpoxTJwoFXFNjWNGln7KdPKZoOf\nfoJZs6ylmDabNdtYuTJMnQobN2L6+LD8izVUvL8cpSoVT/sYTuCT14fRP43gkUFtWPzpMl5r9z4h\nV+2oRpwe99wD+/bBmDFQqpSVbHp4QKtWsHSptbzVnn22krnWrbP+fqcmJMRafiwiIiIi6aaEViwd\nO6Y+I+flBaNGpX8MFxd49FHYutWa6Y2OthK0nj3B3Z0Dmw7z96HTtO3TIv1jOIGrmysDPn2KIdOe\nZfcv+xl0/wj+OZzGfcb28vODQYPg+HFrX3JEBKxaBc2aZc54knbh4fYfb3X9eubGIiIiIpLLKaEV\ni80G69dbS49vn6n18LCWuc6aBfffn2khLP9iDV6+njTuWi/TxshMbfs054M1bxJyJZRB949k+8pd\nzg5JnKF0afvaeXhAxYqZG4uIiIhILqeEVv5TvDj88QdMngw1algztiVLwgsvWNe7dMm0oYMvXWf9\nt5to9kRDvHxTKB6VzVVpWJFJ28ZQuFQhXnv4feaPXYJp72yd5A716oG/f+rtDMPa9ywiIiIi6aaE\nVm7l6Qm9esHOnXD+PJw4Ye3ZLJ65e1qXf7GWqIhoOgxsnanjZAWrWNS7NOpSjxkj5jK62yeEh0Y4\nOyzJKoZhFUFLqnjXTd7e1lL7okWzLi4RERGRXEgJrThdXFwcP322mupNK1G6cglnh+MQXj6ejPzm\nBfqM6cFvC7cwuP6rnP7zrLPDkqzSubOV1Hp6Wh83ubpae9E7dYIpU5wXn4iIiEguoYRWnG7fhkOc\nO3mBNjmsGFRqDMPgsZc7MHr5q1w8fZkBtYezael2Z4clWeWZZ6ziXcOHQ2AgVK9unfO7dSvMmZPy\nmcIiIiIiYhcltOJ0q2auw9vPi/odajs7lEwR2KoaU3aM5Z4yhXnzkQ+YMWJu5p1XK9lLkSLw5puw\nfTvs2gVffGGduSwiIiIiDqGEVpwq9FooG77bTNPHG+Dp7eHscDJNkVJ3MX7juzzUtwXzxy7h5Zaj\nuHDqkrPDypmOHbMSxOPHnR2JiIiIiDiZElpxqnXzNxEZHkWbPs2dHUqmc/d054XPn+HlWQM5suMv\nnq0xjC0/BTk7rJxj0SKoVAkqV4YWLf77fPFiZ0cmkuMYhtHaMIzDhmH8aRjG8CTuf2IYxu4bH0cM\nw7jqjDhFRERSo4RWnGrll2spXaUE5QPLODuUTGNiso+1fMAjDKUKv/YczhNB1SlQ3J/X249hygtf\nERUZ7ewws7dRo6zq2wcPQng4BAdb/z1wwKoW/M47zo5QJMcwDMMVmAy0AQKAboZhBCRsY5rmENM0\nq5umWR2YCOg3RyIiki2pKok4zeEdf3F4+188N/5/GIbh7HAyRQhXeIeWnOEwEYTEXz9Zfh9scqPh\ny0P5fsJy9m44yIi5gylZsZiSY1MdAAAgAElEQVQTo82mNm2CsWMhLCzp+2Fh1tFSzZtD/fpZG5tI\nzlQH+NM0zWMAhmHMBzoAB5Np3w14M4tiExERSRPN0IrT/DB5BV6+nrTq3cTZoWSKOOIYRXP+Zt8t\nySxAJKFEel7jyISxDPzhMS6eusRztV5m6ZRVmKbppIizqTFjrNnYlISHwwcfZE08IjlfUeCfBF+f\nunEtEcMwSgKlgV+Sud/PMIwdhmHsuHDhgsMDFRERSY0SWnGKqxeu8ev8TbTo2RifPN7ODifeNc6z\nkHcZSBmeohAvEMBKJhPO9TT3tYdVnOUoMUQl2yaKcA63m8u0vR9TtXEAEwd+wevtx3D53ysZeRm5\ny+rVkFqSb5qwcmXWxCNyZ3kcWGiaZpKl2U3TnGaaZqBpmoGFChXK4tBERESU0IqTrJzxC9GR0XQY\n2NrZocTbxy8MpAyLGc05jnGdi5zmEF/zCgO4l384kKb+fmJ8opnZ25mY7GYFHkUMRi8byXPj/8eu\ntfvoU3ko67/bnJGXk3tE27m/2N52InIaKJ7g62I3riXlcWBepkckIiKSTkpoJcvFxcWx/Iu1VG0c\nkG32jJ7hCGNpTwQhRBNxy71IQrnORd6gMaHYX+jzHH/Z1c4Ndy5zBhcXFzo+35YpQR9wT5nCvPvY\nOEY/MZ7gy2mfHc5V7rrLvnaFC2duHCK5x3agnGEYpQ3DcMdKWpfe3sgwjAqAP6DfromISLalhFay\n3O51Bzh77Bxt+7RwdijxljA2USJ7u2jC+YUv7e7THS+72sUSgwf/LbsuWbEYn/4+mifffozfFm6h\nT6UhrF+w6c7dWztwIHh6ptzGywsGDcqaeERyONM0Y4CBwCrgELDANM0DhmGMMgyjfYKmjwPzzTv2\nfz4iIpITGDnxfSowMNDcsWOHs8OQdBr9xHiCVu1m/ulpuHu6p+nZWGLYwVKOshUwKM/91OJhXDNQ\nsDuOOHrgk2pCC3AX9zLZzpnXRYxmEe+m2m9BSjKF4xgkrvT8567jjOs7laM7j3P/w7UYNOlp7iph\nxz61Xbtg6VLreJsyZeDxxyF/frviTtG5czB/Ppw8Cf7+8OijEBCQ+nMZcfkyVKgAFy8mvZfWMKBg\nQfjjD8e8RrkjGYYRZJpmoLPjyMn03iwiIo5k73uzju2RLHXtYjC/L97KQ/1apjmZ3c5SJtObWGKI\nuFGkyRM/bLgzkNnUpG26YgrnOnEkWe8kkWDO291vC/qymPdSbOOBN4/wSpLJLEDZGqWZuOV9vp+w\nnFlvfEufykPp/c7jdBjYGldX18QPnDwJjzwCR45AZCTExoK3N7z4IgwYYFUCdknHwozoaHjuOfj6\nayuBDA8HNzd4/32oUQMWL868Jb/588PGjdC0qZWghyTYl+znZ338+quSWREREZE7kJYcS5ZaMeMX\noqNiaNsvbcuNd/Aj4+lGKFfik1mACK5znUt8TGd2kb4qtx54Y2LfSgUPfOzuNy938Txzkl167IE3\nVWlFS55JsR9XN1c6D23H9P3jqPxABaYOmcmg+0dyJOi2meJ//4U6dWDfPuts1tgbSXpYGEREwNSp\n0Lev3fHHM03o0gW++cbq5+YROjEx1ufbt0PdunDV/v3FaVa+PBw/DjNmQLNmULmyde7sjBlw4gSU\nK5d5Y4uIiIhItqWEVrJMbGwsP05dRfWmlShduYT9zxHLVJ4mirBk20QRzhSeIo64NMflho0qNLej\nnTsN6Z6mvuvSiTdYQwCNseGJN3nxwAd/7qEb7/ESi3Cx859hkVJ3MXrZSF6d9wIXT11iUN0RTHnh\nK0KvhVoN3noLrlz5L5G9XVgYzJsHe/em6TWwfj2sWWM9n5ToaCuZHjcubf2mlbs7dO0Ka9daSfua\nNVaibbNl7rgiIiIikm0poZUss+XHIM7/fZH2A9qk6bndrCTKjv2tEVxnH2vSFVsnRuJOyufhuuJG\nG9JeeOg+6vM2vzKZY7zOz7zPNj7jHx5isN3J7E2GYdDksQZ8eehT2vZtwZKJK+hd/nmWT15O7Ow5\nqR9dExUFn3ySthfw0UfJJ7M3RUbCpEnJJ9PZ2blzEBRk7cGNS/svRERERETEeZTQSpZZMmkFhYoX\noH77tNVdOcEuIglNtV00ERxnV7piC6ARj/F2kkmtgYE7XgxiDndRKl39A/hzN2WpTXEC0pzI3s43\nnw+Dp/Zj0rb3KVr+bj4Z9BUDox5gPwVSfjA2FrZsSdtgQUFJF2O6XUQEXLiQtr6dacsWa19uyZLW\nMubAQCheHD79VImtiIiISA6hhFayxJ+7j7P7l/10GNAGV7ckihmlwMAl2aJJSbVNr/a8xHB+pBJN\nccWGO1644U4dOvIuv1OXTunuO7OUr1WGTza8w6sfdeGaaWOI0ZRR3M+ZlPb6prUolL3t4+LSV3DK\nGZYutZLYX3+1ZpeDgyE0FM6cgZEjoVMnJbUiIiIiOYCqHEuW+Gnqajy83GnbN/W9qrcrTz3c8SKC\nkBTbueFBeeqlN0QAqtCMKjQjnBAiuI43+fCw8zxZZzEMgyYDH6Hum8+wKORuvuU+NnMP7fmL7hwi\nD1H/NbbZrEQuLR54ABYuTD3B8/e3js/J7i5ehG7d/itudbuwMPj5Z6uI1oABWRubiIiIiKSJQ6ZT\nDMNobRjGYcMw/jQMY3gS9z8xDGP3jY8jhmFcTXAvNsG9pY6IR7KX0OAw1n7zG00ea4Cfv2+an69E\nE3xJ/UiWfBSmAg3SE2IiXvjiz93ZPpmN5+6O17N96OFxjJmspCUnWEJZetKG2QQQevN3V25uMHhw\n2vp+6SXw9Ey5jZcXDBmSM2Zov/gi9SXUYWEwdqx9S61FRERExGky/NOnYRiuwGSgDRAAdDMMIyBh\nG9M0h5imWd00zerARGBxgtvhN++Zptk+o/FI9rP269+ICI2kXf9W6XrewGAw3+CRQtEmD7wZzDd2\nL03OlV57DYoWpYB7HEPZyef8TC3OMccIoCdtWGCrRMTgoVC2bNr6rV0bnnzSOs82KZ6e1rE6g9Je\nMMsp5s1LfnY2oUuXrKOCRERERCTbcsR0Sh3gT9M0j5mmGQXMBzqk0L4bMM8B40oOEBcXx5JJKyhX\n617KB5ZJdz8VaMDrrKEI5fDABxueuOOFBz7cw328yTrKUdeBkedAefNaZ8K2agWenpTyieUNj11M\n8dpEBbfrTI+pSM+v/mXhuB+JCItMW9+TJ8Pw4eDrC35+4OFhfe7pCR06wMaN1ixtTmBPMgvg6pp6\ndefbmaZ1zNGUKTBtGhw+nPb4RERERMRujthDWxT4J8HXpyDpzMIwjJJAaeCXBJc9DcPYAcQAY0zT\nXOKAmCSb2LlmH//8cZqXZw3EMDI2e3of9ZjAYf5kG3+xA4Cy1KEstR0Rau6QPz/8+COcPg0rVkBo\nKOVKleK9Nm3Yt/Uv5oz6js9fms23H/xA15fa07ZfC3zypHxcEQCGAa+/bi0/XrbM6j9PHnj4YShU\nKPNflyOVKQNHj6beLioKiha1v98VK6BfP7h6FWJirOXXpglVq8KcOVCuXPpjFhEREZEkGWYG94gZ\nhtEZaG2aZp8bX/cE6pqmOTCJtq8AxUzTHJTgWlHTNE8bhnEvVqLb3DTNv5J4th/QD6BEiRK1Tp48\nmaG4JWu8+vB7HA06xtcnpuLuYXN2OALs++0Qc0Z9x661+/DO48XDz7Si4+C2FLwn9X3KucLKldCl\nC4SkUGTMMKxkfamd2/qXLIHu3ZOe0XVxsZL/7dvTvtxbsoxhGEGmaabtTDG5RWBgoLljxw5nhyEi\nIrmEve/NjlhyfBoonuDrYjeuJeVxbltubJrm6Rv/PQb8CtRI6kHTNKeZphlommZgoZw2I3SHOnXk\nDNuW7+LhZ1opmc1GqjSsyAc/v8Gkre9Tu3V1Fn68lJ6ln+PDpyZz4sA/qXeQ07VqZe35dXdPvo2X\nF7zzjn39RURAr17JL0+Oi7OOBerbN+2xioiIiEiKHJHQbgfKGYZR2jAMd6ykNdG0hmEYFQB/YHOC\na/6GYXjc+Lwg0AA46ICYxB7BwXD+vLU8MhMs/PhHbB42Hu7TDC5cgGvXMmUcSZ/7apfltflDmXlk\nIm37tmD9t5voW2UoIx96j12/7COjqzeyLRcXWLMGqlSx9gEn5O1tXVu6FKpVs6+/775LvRpyXBxs\n2QInTqQrZBERERFJWoYTWtM0Y4CBwCrgELDANM0DhmGMMgwjYdXix4H55q0/JVcEdhiGsQdYh7WH\nVgltZjJNmD/f+mG9YEEoWRLy5bMq1J465bBhrl0MZvXsX2lVzp38AfdCiRLWXsuAAJg9O/UzTSXL\n3H1vYQZN6sM3f39G71GPczToGC+3GEWfykP4fsJyQq6GOjtEx/P3t5YAL1liFbWqVAnq1oUPPrD2\nBzdPw3nJa9emvHz5JpsNtm5Nf8wiIiIikkiG99A6g/bppFNcHPTsCT/8AKG3JSk2G/j4wIYN1sxV\nBs17cRpffvIz093WUSr60q03fXysZZ/ffWdVks0GYollNyvYxLeEEcw93EcL+nE32WvP43lOsIbp\n/MN+PPHlfjoTSDtcHVLfzRIVEcUv835n2eer+WPbn3h4udPksQa0froZlerfl+HiXrlOz57w9dep\nt/Pzg88/h27dMj8mSTPtoc04vTeLiIgj2fverIT2TjJhAowYkfJRJHfdZc3U2tK/5zU2Moqevp0p\nGnuND80NSTfy9oZXX4WRI9M9TnqEco3zHMMVG3dTHhvunGAP79GGcEKI4DoArthwwZVA2jOI2djw\nyNI4bxdDNJ/Rl018i0kcMUQB4Ikf7ngygmWZUu356M5j/PTZatbN/53wkAhKVCzKQ/1a0rJXY/z8\nfVPvIAVXOcdlTt84eql8zj1DeMoUePnlxL8kup2XF+zYYa1SkGxHCW3G6b1ZREQcSQmt3CouzjqC\n5N9/U27n5wczZlhVYNNp/fBJvPvBet42f6c+Z5NvmD8/nDsHbo6bXUzOOY7xDSPZzg+44Y6JiQsu\nNKAbG5lL+I1E9nbueFGF5rzCUqcmXOPpxnaWEkXSv4zwxJf32EpxMidZCg8JZ/2CzSybvoY/th7F\n5u5GvQ61adWrMYEPVsfVzf6Z9qNsZS4jOMIm3PAgjlh8yMcjjOBB+uPikK39WSg4GIoUSf1825o1\nISgoa2KSNFNCm3F6bxYREUfKyirHklFxcdZRIu3aQfXq0KQJzJqV+g/IabFnj337/K5fh6++ytBQ\ni75Yzz3mde5PKZkFqxjVtm0ZGsseJ9nHMGqwme+IJoJwgongOmFcYw3Tkk1mAaIIZz/r+JPk4wzm\nIt8zhpHczzBqMoknOcZOh8a/nR+STWYBIghlLq84bMzbefl60fqpZkzc/B5Tgz7goWdasmfdfl5r\nN4ZuxZ9h8vNfsv/3P4hLZW/0dpbyFk05wDqiiSScYCIJ5TKnmcvLfEwX4shh+6vz5LH23nqncJ6v\nt7e13FhEREREHCrzp8YkZefOQbNm8PfftyacQUEwdCisWgWBDpg0uHbN/v2qly+ne5iDW45w6DIM\n4M/Uf1tiGJle+TiOON6jLeEEJ3nftCN5iiKcHxnHUL5NdG8j85jK0/HtAP5mL5tZSDVaMYT5GV6u\nvIIJ8UuMk2eyl5+5xgXykrnHWpWtUZqyNUrT78OebFu+i5/nrGfZ9DUsmbSCQsUL0KhzPRp1qUeF\nOmVxcfnvb0EwFxlPt/jv0+0iCWMPK1nDNFrxbKa+BocbOND69zVsmPX3+ua/ZV9fa9XDwoWO+Xcs\nIiIiIrdQQutMkZHQsCEcP5746JybPxA3b27NrpYqlbGx7rkHoqNTb2cYVuXjdFo8/id8bPBg9N+Q\n2mr2mBi4++50j2WPPawmjKsZ6sMkjpPsTbLvqTydKEGLI5YowtjDKibRiyFJJMJpcZxdxBGbajsb\nnvzLn5me0MaP526jwSN1aPBIHUKDw9i8dAfrF2zih0krWPTJTxQqXoAmXevTuGt9ygeWYY0xndT+\nUkQSxveMoSXP5Lw9tf37w5NPWsXO9uyx9qE3awYtW1pHBYmIiIiIwymhdaZFi+Ds2ZTPgQ0LgzFj\n4LPPMjZW+fJWUnwwlVORfHysH8zT4dTRs/y2cAtdutfBa9EKCE0lgS5c2P6zPtNpC4uIwI6l1qlw\nI3GRrJkMSXa2EawZ2+0s5SxHuZtyGRjbvhlekzjccE/3OBnhk8ebFj0a0aJHI0KuhrL5xx1s+G4z\niz9dzncf/0ih4gWI6/AnEZ18cXsgAsMt+cQ2mPOc5wSFKZ2mGExMDrOJH/mYo2wBoBz3056XKE+9\nrEmQvb2tpFZEREREsoSmDZxp3LjU97XGxMCcOfbNrqZmzJiU9/nZbFC2LDRunK7uv/vwB9zc3Xh0\nbB+oWhXcU0iuvL3hvfesGeFMlNxS47Sw4UEt2t1y7W/2c4ETqT4bRyyrydgvI2rTHne8Um1nAiWo\nnKGxHME3nw8tezbmnaXDWfDvdIZ9NYByNe/l8hd5CW3WmOC72hHarS5Rc0oQdzHx3xFX3FLcL5yU\nWGKZQE/e5UG2s4QrnOUKZ9nOEt6hJRPpRawds9y52pEj8MUXMHWqdTxXDiwIKCIiInI7JbTOdPKk\nfe3i4jK0rzVeu3Ywdqx1fMjtlYV9fa1kdvXqdCWZVy9c4+c5G2jZszH+Rfxh2TKoWNHqNyE3N2v8\nN9+Exx7LwIuxT1EqOGDW0uBBnrvlyjmO4WLHAodYojlFKrPiqWjG06S2VNeGBy3o5/TjhW6XJ78f\nrZ5swtvfv0yD86F4f7cZ2yOnifm1EGFP1iG4cDuu121G+BsBxGwqgBljEEMU/tyTpnHm8grb+Z5I\nQjETfK9MTCIJYyuLmctwR7+8nOGvv6B+favg3ODB8OKL8NBD1taCFSucHZ2IiIhIhiihdSZPT/va\nxcRYSaAjDBwIu3ZB377W/tUCBaxiNdOnw+7dUCh9+y9/+uxnoiOj6fjCQ9YFf3/Yvt2qmFy3rjVO\nkSLWcszt261zO7NAM57GsOuvedJJvDte9OYTClD0lusepDDTfRtPMnZeax4K0o9pyc7SuuFBEcrS\nlbcyNE5ma+87mDyPXsP7yyDynP4J321r8XzzINjiiHyvIiEPNCW4cDtcurdl69z9BF9Kvvp0QqFc\nYxWTiUxhVjeKMFYxmTAHzNjnKMeOQe3asHWrVTU9LMz6b0gI/PMPdO4MS5Y4O0oRERGRdNMeWmfq\n1Mla/pfacuJKlayjQRzlvvtgyhTrwwGiIqL4YfJKarepQcmKxf67YbNZPzB37uyQcdKjECWoz2Ns\nZkGy+11teBFAIw6y/sbsngkY+FOEJ/mEunRM9Mx91LerUJMnftSnawZfBTSmJ3koyFcM5jJncMGq\nWB1LNA3pzpN8glcGE+fMVo0HKUJZ/uEgsS5RuAVewS3wCp5vHCLuio2YnwsTt7IYYcvvY8y8Cbi4\nGJSvXZZaLasS2KoaFeqWw82W+H9ZW1lk12y5Cy5sZRFN+V9mvLzsqW9fq5J4cscphYVBz55w4YL9\nv2ATERERyUaU0DrT889bM6MpJbQ+PjBiRNbFlA5r5/7G1fPX6Dy0XeqNneBZphNFGEEsI4bI+ETU\nWp5r8CivspXFgEEsUZjEYcODK/zLUbZQmw643DbL64E3Tfkfa/mCaCKSHdsNd2rziENeRw3aUJ3W\nnGA35ziGDU8CaIQXfg7pP7O54MIbrOUdWnKWI7cU6/Lyd8foepWXu86kUlxTjuz4i23LdxH08x7m\nvbeYue8uwtvPi6qNA6jRvAo1mlehVKXiGIbBZU4TSWiq40cSxmVOZ+ZLTLvISAgOto72cXRC+fff\nsGlT8slsQgsWQK9ejh1fREREJAsooXWmMmVg4kQYNMhaBng7b2/o0gW6ZnyGL7OYpsmiT37i3mol\nqdHM+QWJkuKGjaEs4Bg7WcZ4jrMTV2zU5GHq0Zl3acV1Lt0y4xpNJAArmUQoV3mGzxP124OxHOZ3\nTnEoiaTWwBMfRrIsyQrJ6WVgUJoalKaGw/rMSn7kZwzb2c8vLOdTznEMT3xpRE8a0wtv8oALVKhT\njgp1ytHrra5cvxLC7nUHCFq9h12/7GPLT0EA+BfOS43mVXBtFobRIi9miZSPZ3LDAy8cuNIhI7Zt\ng3ffhZUrrfNrY2PhwQfh9dehTh3HjLFli7VKIiL5X7gA1vLjtWuV0IqIiEiOpITW2Z5+GkqUgJEj\nYf9+8PCw9swWKGBd69cv0ysB2yOUa2xgDgdZD0BlmtKInuxdfoSTB0/x8qyBGNkgzpTcS00GMfuW\na9N4lhCuJLt8OJIwNjCHNgxKVEHYA2/e4XcW8Q6rmIJJHGAVNapKC7ozhuJUyqyXk2O54EJVWlCV\nFna19/P3pWGnujTsVBeAcycvsGvtPnb9so9da/dx5ZtrQAtcKgZja/Mvbm3P4vbARQz3xIW0HDVb\nniGzZ8Ozz1qJpmn+t0Jj2TL45RdrK4Ajjv6xZ2b2ptg7vAK0iIiI5FiGmQOPbggMDDR37Njh7DAc\n7+RJ61zavHmhQoVskcgCrOYzZjEUAyO+8I4HPsSZcbg/0J2YMzZmHpmQ5P7G7CySMJ6mUIrFhABc\ncKUxT/IcM5JtE00UpzhIDFHcRWnykr7iWpI2pmly4sA/jP15IH+vvEb0+gIQ5Qq+0bg1P4+t9b/Y\nWp/DvWQMVWjOSJY7N+D9+60iaWEp/J3z9rZmV6tUydhYhw5BrVpJr/5IyMfHOtJr4MCMjZfDGYYR\nZJpmoLPjyMly7XuziIg4hb3vzTkrA8ntSpa0PrKRX/iKWbyYqKBSJKFEry/Ehc1XaTu5Wo5LZuHm\n0TuuqbaLI5YjbE6xjQ13SlPdUaGJnQzDoHTlEnxUeRYjh9TlQkgQ4evyEL2sCNGrihDzQ1HCAfeK\nEeRp045dbfdR+YEK2Nwdtww8TT74wNo3m5LISPjwQ2smNyMqVrQ+du5MuV1cnFUYSkRERCQH0rE9\nkqxoopjFEKKSmcGM/Kg8xl0R7Pnfp8QSk8XRZZyBSyqnuyZsmz1my3OkqCiYNw9atIAaNeDhh63l\ntQ5c5uqLP2MJ4lHfV8jfLpq8nx2iwLF1FDm4jXof30Ol4rVYPmkdL7cYxaMFn+Ltzh+xetavXLuY\nxcf4LF6c+uuOjYVFixwz3rRp1oxvcry9rdnZvHkdM56IiIhIFst502qSZXawlDiS3ocXeyAPMcvv\nxvOtA8R6RrKLFQSSPascJ6cIZexq54qNyjTL5Ghyqf37oXlza9nr9Rvnyu7eDRs2WOcSr1sHRYum\n3IedvPCjM6/TiVcJ5gIYkKdCIVwquMAQCA8JZ/e6A2xdtpMtP+1g4+KtuLi6UKN5FZo81oCGnerg\nk9fHIbEkK7XlvwnbmWbGtx3UqgVr1sCjj1rf/5AblaV9fa3+x46FAQMyNoaIiIiIEymhlWSd4uAt\nR6skFPlxefCKwf25v4gijlMczHEJrQ0PWtCXlUwihqhk27niRlsGZ2FkucSZM9CoEVy5kvje9evW\nPtIGDeDgwZRnEdPIBRfyUTjRdS9fL+q1C6Reu0BMsy9Hgo6xcfFW1i/YxMdPT2FC/2nUaVuDpt0a\nUq9dLdw93R0WU7x8+eDyZfvaOWoPfb16cOoUrF5tFZ2KioLq1a3q6Q78vouIiIg4gxJaSZYbNlxw\nJe625cRxpz2JmlsC977HcCkYhQvuuDrwaJqs1JnX2cb3XOYUMSQ+D9gDbx5iCHdT1gnR5XCffAKh\nKZwPGxsLFy/CN99Anz5ZFxfW3tv7AstwX2AZnhrdjcPb/+SXbzayfsEmfl+yHZ+83jTqXI8WPRtR\n+YEKuLg4aHdGnz4wfryVVCbH3R369nXMeDe5uEDr1taHiIiISC6iKse5SDTW0t8rnMGbvFSnDX7k\nT3d/R9nK2zQnkluTkvBXqhD5cXn8jqzE9d7Q+ONrcmpRpGAuMpGeHGAdxo0E3g0PDAy68hYP8YL2\n0KaVaVr7Mm8uM05JhQpWRd5sIDY2lt2/7GfN1xvYuHgrEaGR3FOmMG2ebs6D/2uKf+F8yT1oneX6\n11/g5WXtFy5WLHG706chIACCU9i76+dnzVon9bxkGlU5zji9N4uIiCPZ+96shDYXMDH5nvdZwhgA\nYonBBTdiiaY+XenLVDxI+9JCE5MXqMgZDsdfi7tqI7hUW2wP/ovPt1sBgxJU5mP2OurlOM1F/mEX\nK4gklEKUpCYPYcPD2WHlTCEh4O9vnamcGl9f+xLfLBYeGsHGxVtZ+eUv7F1/EJu7G02feIAuL7an\nVKXi/zWcPRtefNGqThwTY82GxsZC06YwcybcddetHW/ZAg8+aJ0/m3BPrZcX2GywcqW1TFiylBLa\njNN7s4iIOJIS2jvIFwzgV2YmeZ6qDU9KUJl32Jiu5Owk+3idBoQTAphEvFuBiDcq4xu0BluNa3iR\nh9FsphgVHfBKJNeIjgZPT+tImNTkzw+XLmV+TBnw9x+n+WHSClbP/JWIsEjqtQ/k8VceIWDHahg+\nPOlzZW02q/DVrl1QoMCt9y5ehBkzrCrEV65Ye2b79bOWJBcsmDUvSm6hhDbj9N4sIiKOpIT2DnGU\nbbxN0yST2Zvc8aIb7/EwL6RrjFMcYjr9ORKyg0ulmuNe/xp5lm7lPurTj8+4m3LpDV9ys/r1YXPS\n5/eG5oVNj8H5ew28ytSgVueZlKRKFgeYdsGXrvPDpJV8P3E51y+HUMW4xJNx+6nGhaQfsNmgd28r\ncZVsTQltxum9WUREHEkJ7R1iHI+xhYWYyRyvc1N+ivIZ/2RoL+jsCV8z54Uf6Pd7S5rUa00hSqS7\nL3GeWGII4xrueKVrKbrd/s/efYdHVaVxHP+emWQmhSRA6B0FC00UUFFZVCyogCKo7FpX7GLvbVVU\n7Lp2xYa6dmyIICKCFRQUREBBqjQh1PSZyczdP26AJCSZSzIl5ffxmUfm3jP3vkBI5p1zzvtOnAgj\nRpQqDBUy8OYDMPkKcJ0PpqAAACAASURBVIXAlwouy02C8dCWbtzAh2RS8/eOFuQVMnn4Dbw7ZSVb\nSKKntZHzWEhXyplpTkmBDRvspdVSYymhrT79bBYRkUhy+rM5QqU7JV5+55uwySxANlnklPdm26Gi\nQBFfPP4DXQ/fl9P6XqRkthb6m2U8z0WcQzoX05pzSOc2+vIzE6Nzw5NOsmcnS7SGeeEFmHI5BJLt\nZBYgZIL4KWAFc7mZPmxnY3TiiaDk1CRO3f4zr1uTuNSax0rSudocxX0czGaSSg9OSICFC+MTqIiI\niEgdp4S2lgs5SGYBDC5HiW9Fvnl/JhtWZXHGjadU+RoSP4uZyQ30ZDqv4qeAAD5CBFnCLB5nBK9z\nfeRvagw89RQ8/TR06MDKQ5L47sxdiWxZIYrIYTPjuSfysURDMIiXEKeylNeZzDnWQr6nNedzPBPY\ni+COccY420ssIiIiIntMCW0t14EDHI3zkEwDMsMPLIdlWbz78Ce02781h5x0UJWuIfGTTzZjOIFC\ncnfrKQzgI48veJ4feC/yNzcG/v1vWL6ciZ8PpCjJXenwIIHipLsw8rFEWt++9h5ZIJkgZ/M7Y5nK\nvmzhKXMQV3M0K0iHwkLYd984BysiIiJSNymhreWGcANJVL43LxEvJ3AFbipPJiry89T5LP91Fadd\nfzIul75kaptveINgOYlsST7yojszagxLGi4i5AqGH4qLLFZGL5ZIueIKcJf+N9WGXB7kW26xfuRv\nUrjcDOC9fQYTzMiIU5AiIiIidZuyk1quOwPYjyPwkFzueTcJZNCcQVxT5Xu8++BHZLZqxNH/OqLK\n16jLctjCJzzMbRzGTfTmWUaykl/jHdZOX/EKPvLCjvubpWxmTdTiMI6/3Vh7MDaO9t7bbrWTUrqw\nlgGOZjUvmqkcnLCJFxfA7YPuZ/um7PjEKSIiIlKH1YJ3jVIZFy5u5GMOZTiJJO3sNevCjYcU9qIX\nY/iRVBpW6foLvv+DedMXcvr1J+PxJkYy9FplFb/xMxNZwPRSy2G/510uoQ3vcSdLmMlyfuZrXuM2\nDuMRhhPAH8eobflsczQugUTy2R61OLpyJG4Swo4zuGhKh6jFEVGPPw5XXWX33N2R2BoDqak03Lst\nd857nqufv4hfpy/k0l43snTeivjGKyIiIlLHqG1PHbKZtXzHm2xkFWlk0pfTqt3b89aTxvDnnGW8\nvvwZklOTwr+gjvmZibzO9WxmDW4SsIr/O45L6MqRPMpw/BSU+1oPyRzMUK7izRhHXdod/IM/+Dbs\nuES8PMdqMmgalTjW8gc3clCFf14ACcXL48/h4ajEEDVbt8Jbb8Hvv9vteQYPtvvwGrtN1pKfl3HX\n0IfJ2ZrLLf+7isNO7hPngKUste2pPv1sFhGRSFIf2prs779h7Fh44w3IyYE2beDKK+H00+2Znhpi\n+fxVXNzzes67ZwRn3jYs3uHE3Je8xKtchZ/83c7ZS7xNuedKSiSJR5lPSzpHKcrwfuA9nmMkheRW\nOi4BD+k0ZR/6MoTr6cwhEY/lDW5iCk/jK+fPLYFEGtOGh5hLKnVvz+nm9Vu5a+hDLJ69jJH3n8np\nNwzBmKr3hZbIUkJbfbX+Z7OIiNQo6kNbU02aZO+9u/9+WLoUNmyAn3+Gyy+HffaBVaviHeFO7z86\ngaRUL4MvPS7eocTcZtbwKldWmLD6KQibzAKECPIFL0Q6vD3Sh1NoQGbYfalF+NnCWn7kQ+5mAM/w\nb8dtoZw6iwc4jbtIIo0k0nDjwUsKiXjpzjE8wOw6mcwCZLZsxCPT76L/6X156eb/8eKNb1AbP1AU\nERERqUnCb2iTyJk3D047DfLLSYRyc+3j/frBkiVxn6nduHoT09/+niGXHU9647S4xhIPn/NMtfr2\n7hAkwBoWRiCiqkvEw2i+5naOII+tYQtEWYTwkcdM3qMhzTmTByIWi8FwMjdwIlfyMxPJYhVJpHIg\nJ9KEthG7T03lTfZyy5tXkdEknfcf/RRvipdz7z4j3mGJiIiI1FpKaGNp9GgoqHj/IKGQvRdv/Hg4\n66zYxVWOj56YhGVZDLtmUFzjiJc5TCCALyLX8pIaketUR1Pa8ySL+Y63+YzH2czasMWifOQziSc5\nldtIJo3tbGQKz/IFz5PLZjwkcyjDGcx1tKXrHsWTiJdDqX/L2AFcLheXPfFvfAV+/nfPeJJSkzjj\nxpPjHZaIiIhIraQlx7GSm2svNw63xDA3F554IjYxVRTCtjwmvfglR55xGM3bR6dAUE0XqWQ2iTQO\n4/SIXKu6vKQwgJE8xgLO5VFHibYLNz/yISuYy5Xsy8c8yHY2EKSIAnL4mje4mT5M57UY/A7qDpfL\nxdUvXMSRIw7npZv/x4Rnp8Q7JBEREZFaSQltrGRlQYLDCfF166IbSxifPvcF+TkFnHb9kLjGEU/2\njGP1C/YkkEgfTql+QBG2mTXlFmYqy0c+61nK3Qwgn20ESrQsAghRhJ8CXuIyFjMzWuHWSW63m5te\nG8Whg3vx9BUv8+OkX+IdkoiIiEito4Q2VtLTIRBwNrZBg+jGUonCfB8f/ncifU44kE49O8Ytjngb\nxDUkhZnBNLhIpSGJlLff2eAllZuZSCKe6ARZDSmk7+xZXJkEPKxlIUVhZqz9FPAB90QqvHojITGB\n296+hr0OaM+D5zzFxr+y4h2SiIiISK2ihDZWMjOhq4N9hsnJcPbZ0Y+nAp+//BXbsrL51y1Do3YP\nP4V8zRs8wZk8xhlM4BFy2By1+1VFF/qzN30qSFZtSTRgNN9yIleRTDrJpJFCBol4OZATGMMs9qVv\nDKN2rjfO92yu4jcHs7kW8/mSwjAFp2R3SSle7njvWoKBIPeOeJyA3+EHX2BXSL/iChg2zP6/WqaI\niIhIPaM+tLH00Ud2sppXyZv+1FRYvhyaNavevbZsgTVr7AR5773BFf6zi2BRkPP2uYLGrRrzxHf3\nVu/+FfiFSfyXf2IR2tkX1UMyFhancivDuB0TgaW+keAjn8c4nQV8RRF+QgQBe1+sl2Ru43M6ciBg\n77n9iwUU4acFe5NBNf/+YuAejmcRMyjCX+75BDx042iW8wvZbAx7PQ8pPMliMmkT6VDrha/fn8m9\nZzzGsGsGccmj51Y+OCsLBg2CBQugsNAuKOdy2dXRu3aFzz6DpvVz/3tVqQ9t9dXan80iIlIjqQ9t\nTTR0KFxyiZ20luVyQUoKfPBB9ZLZ+fPtN7qtWtktgHr2hLZt4b//hWCw0pd+9+GP/L0yi9OjtHd2\nAdN5lOEUkL0zmQV7uWqAQj7mQT5kTFTuXRVeUriFidzPTxzLJfTgWA5lOKMYxwus3ZnMgl21d296\nsS99a0UyC3A1b9GEduUuPU4kiaa05yreIpWGjq4XJECKw7Gyu/6n9WXIZcfzweMTmTd9QcUD8/Ph\n8MNh7lz716Hi9lKhkP183jz7fGUfnImIiIjUERFJaI0xA40xi40xS40xN5dz/jxjTJYxZl7x44IS\n5841xvxZ/AgzLVEHPPIIvPkm9O4NHo+d3Hq9cOqpMGsWHH981a89fTr07WtXU/b5IDvbfoO7bh3c\ndhsMHlxhUmtZFuMf+5RWnVpw6OBeVY+hAhYWY7kYPxW3LfKRxwfcS16YdjKx1o5uXMDT3MEXXMf7\nHMKpuOtAx6s0MnmQnzmFW2hAJh6S8ZBMAzIZyi08yM80oBHHcCEeksNerwv/IJn47f+OtO1k8SFj\nuI3DuZk+vMhlrOH3qN7zwofOplWnFjx24fMU5lewb/m112Dt2or35AcC9vnXVHlaRERE6r5qLzk2\nxriBJcCxwBpgNvBPy7IWlRhzHtDbsqxRZV7bGJgD9AYs4Gegl2VZWyu7Z51Z1rRli92mp0kTe3a2\nOnJz7VnZnJyKx6SkwF13wQ037HZq4Q+LufqI2xn11EhOvnxg9WIpxzJ+5k764wuzx9JLCv/kfk7i\nyojHIBULEmQ7GwDIoDlu3DvP5bCFy+lIAdkVvt5DCrcxmS78I+qxxsI0XuFlLsdgdn4I4yYBN4kc\nzggu5sVSf0aR9OvXC7n+qLs48/ZhnDd6xO4DOnWCZcvCX6hjR3v7gjiiJcfVV2d+NouISI0QyyXH\nBwNLLctablmWH3gHHFecOR6YalnWluIkdioQ+WyqpmrcGNq1q34yC/C//+1aeliR/Hx7hricceMf\n+5S0Rqkcd96R1Y+lHGtY5GhvrI98VqD2JbHmxk1jWtGYVrslamk05namkEQaCWUqNhtceEjhbB6u\nM8nsj3zEK1xBgMJSKwqCxS2KvuddXmFUJVeongP6d2XAmf147+EJrFv29+4DVq50dqFVq8L3vRap\ngXxFlW+PERERKSkSCW1rYHWJ52uKj5U1zBgz3xgz3hjTdg9fizHmImPMHGPMnKwstbbYzZtvOtsz\nl59vF5IpYe3S9Xz/0U+cdPFxJKdWXNW3Ouwlus6KPZVNmsqzmoU8xwVcSnsupjX3cQK/MQ0LvYGP\nhn04lMdZyECuIIUMwP57OoRTGc3XDOSyOEcYGRYW47gGfyVVnf3kM51X2UL0+kVf8OBZuBNcjPvP\nO7ufdFDgbec4UzMKrIk49cLXy+h25xRuGj8/3qGIiEgtEauiUJ8CHSzL6oE9C7vHm7ssyxprWVZv\ny7J6N1X1zt3l5oYfA+B220ltCeMf/ZQETwJDrzyBAH7m8ClTeYHveJtcKl397dj+9CNI+HYkSaRx\nYJhJ+nf4DzfThxmMYxN/sYV1zONzHuIU7mMgfgojErOU1oS2nMsjvMY23qGIt/FxHe+zN3VnleYS\nZpHrqIWU4SteiVocTVo15pRRJzDjnR9YuXB16ZOHHebsIk7HidQg90/+g0DQ4t05q1m3reKaCyIi\nIjtEIqFdC7Qt8bxN8bGdLMvabFnWjgonLwG9nL5WHOrc2dlsjM9nVz0utnXjdqaMm8Gx5/TnmxZj\nGUlTnuRMxnENY7mYi2jFs5yPr5JiTk5k0oYu9McVZt9hAh56U3GV5am8wEQexU/BzjY6OxSSy+98\ny9PU/dpi8Rat/aPxthFne04DFLI2ygWiTrt+CEmpXv53z/ulT9x0U/mV0ktKTbXHidRiub6ieIcg\nIiK1QCQS2tlAZ2NMR2OMBxgBTCg5wBjTssTTIbDzneAU4DhjTCNjTCPguOJjsqdGjXK2F7dPH2i9\na1X3xOe+IOALwLW/Mp7RFJBNATn4KaCAHAIU8h1vcxdHEqCCqqsOXcrLNKBxhUmthxSuZ3yFFYSD\nBHmb2/FVuhy0gDlMYCMrqxWr1E+JJDnug+wlTFJZTemZaQy98kS+fm8my+ev2nVi4EAYNqzif++p\nqXbV9BNOiGp8UruF605QPOZ0Y8wiY8xCY8xbsY5RRETEiWontJZlFQGjsBPR34H3LMtaaIwZbYzZ\nMdV2ZfEPxF+BK4Hzil+7BbgHOymeDYwuPiZ7ql8/6NHDbgFUkeRkeOCBnU8D/gCfPj+FbifuxZx9\nX6swUQxQyF8s4AteqFaImbTmIebSk4Ek4iWZdJJJx0MyHTiQO5lGV46s8PWLmEGRg6Q6RIjpvFqt\nWKV+6sqRFDlaGt+AQxga9XiGXTuI5AZJvPfIJ7sOGgOvvgq33w4NG0Ja2q5Hw4Zw660wbpz2z0qF\nirsTPAOcAHQB/mmM6VJmTGfgFuBwy7K6AlfHPFAREREHItJM07KsScCkMsf+U+LXt2D/YCzvta9A\nFDej1RfGwOTJdh/bhQtL76lNTrbPv/VWqX1137w/i60bttPpCnsmtjJ+8vmUhzmRKxzPYJUnk9bc\nwkS2sp4lzCREkDZ0pS1dwr52M2scFX0K4meDw6WjIiWlkcnBDOVHPqAIf4XjkknnAKrRM9qh9MZp\nHHfukUx66UvO++8wmjduZf/7c7ngllvg+uvh669h0ya7/Vf//pCYGPW4pNbb2Z0AwBizozvBohJj\nLgSe2dFGz7KsjbEOUh/JiIiIExFJaKWGyMiAmTPhq6/gv/+FP/+0k9kRI2DkSPsNbwkfPz2ZNvu0\nZOOx72MRpuUPsJ2N5LKFNDKrHWojWnIIp+7Ra5JJxzhYVGAwNKBRVUOTeu5CnmU5c8jir91WBBgM\nXhpwCxNxRbmmXgA/X/Ey8y54isAzXbn4zaNpesU2TuIaBnI5yaTZyesxx0Q1DqmTyuswcEiZMfsA\nGGO+B9zAXZZlfR6b8ERERJxTQlvXGAMDBtiPSiyevZQ/fvyTy584n09d7zq7NK7dCjHFUncGOKqU\n7CGFwxkRg4ikLkqlIQ8wh3e4g+m8gsGFwRDAxwEcx1k8RGv2jWoMPgoYzdGsYj6+A/Jx925J4cvt\n2DZqCePNaKbxEmOYRTpNwl9MpGoSgM7AkdgFG78xxnS3LGtbyUHGmIuAiwDatWsX6xhFRERi1rZH\napiPnppESloyx57bnw4c4Og1HpJpEIHZ2apKIZ1/cA4ekiscY3DRhHbsQ98YRiZ1TQrpnM8TvMRG\n/sOX3Mpknmc1N/FJ1JNZgJcZxQrm7dzX7jlvJaH5DQktSsdPAZv4i0f2cIWDSAlOOgysASZYlhWw\nLGsFsAQ7wS1FLfVERCTelNDWQ5vWbeHrd39g4PlHk5qewhCuJ4kGlb4mAS8DuTzu7VrO43Ha0aPc\npNZNImlkciuTqrXPV2QHL8l0og/70jdms6G5bOU73iq1rz1x6DowFoEP7QrlQQIsYw5rotw6SOqs\nsN0JgI+xZ2cxxjTBXoKs4gQiIlLjKKGthyY+9wXBohCnXGG39ejOMezLYRXOfLpJIJ2mDOLaWIZZ\nLi/JjOZrRnAvjWhFIkl4SSGJNAZyOY/yG83oEO8wRarsFz7brXWVq2Uh7r6bCXzcauexIgLM5P2y\nLxcJy2F3ginAZmPMImA6cINlWZtjGacKdYuIiBPaQ1vP+Av9THzhCw4d3IuWezUHwIWLm5jAs5zP\nj3yIhUURPly4ScBLW7pwExNqTKGlRLwM5lpO4mq2s4EgRWTQnEQ88Q5NpNry2EaQot2OJw5dS+EN\nBxBckYK7Yz4hisgmKw4RSl3goDuBBVxb/BAREamxlNDWM999+CPbN+Vw8uUDSx1PxMtVvMlm1vAN\n/yOLlTSgMX05nY70jFO0lXPhohEt4x2GSEQ1oiVuEndrpZV48joKbziAosktcF+2nAS8NCm1DVJE\nRESk/lFCW89MemkaLTo248AB3cs9n0kbhnJzjKMSkR0O5EQop9+ya+88XB3yKJrWHO9lyzEYjuDM\n2AcoIiIiUoNoD209smbJOn6dsZATRg7A5dJffU3yN8uYwWtM4yWWMAurnIRG6gcvyQzmOrykljpu\nDCQM2EDgq6YkBpM5hKFk0jpOUYqIiIjUDJqhrUcmvzQNl9vF8f8+Kt6hSLENLOdpzmUZc3Dhxp6Z\nMzSkORczlu5U3k9Y6qbh/IcsVjGT94tb99gfcCQcsxH/y3vRak4/Lj3klfgGKRJ1qgolIiLhaZqu\nngj4A3zx2gz6Du5FZsuaUdypvtvACm6iN4v5gQCF+MjDRz4+8tjAch5gML+Urtki9YQLF5fxCrcx\nmd4MogGNSaURXY7cG4A+316Gh6Q4RykiIiISf5qhrSd++GQO27KyOfHCY+MdihR7jpHksx2LULnn\n/RTwBP/iJTaqgnM9ZDDsTz/2p9+ug83hX20vYdncFfELTERERKQG0QxtPTHpxak0b9+UXsf1iHco\nAmSxiiXMrDCZ3SFEiB/5IEZRSW3Q6cCOLJ27Mt5hiESd+tCKiIgTSmjrgXXL/uaXL3/jhJEDcLvd\n8Q5HgCXMxE1i2HGF5DCfL2MQkdQWnXp2ZM3idRTkFYYfLCIiIlLHKaGtB74YNwOXy3D8v4+MdyhS\nLESQ8lqzlD+2KLrBSK3SsXs7LMtizeJ18Q5FREREJO6U0NZxlmUx7c1vOPCYHjRpnRnvcKRYO3oU\nJ7WV85JCJw6OQURSW7Tu3BKAtX+uj18QlgXLlsGCBbBtW/zikDqnp1nK44nPcIzr53iHIiIitYQS\n2jpu4Q+L+XtlFgPO7Bd+sMRMe7rTgk5hx1lY/IOzYxCR1BatOrUAYO2ff8f+5sEgPPUUtG0LPXrA\n4YdDixYwdCgsXBj7eKTO+dj7H4a6v+clz6MYf268wxERkVpAVY7ruGn/+4akFC9HDNUsH9h9Xyfz\nNEuYiQs3B3A8x3IRDWke81guZiyjGVDcZ3R3HlL4F2NIIT3GkUlNlpTipUnrxqxdGuMZ2mAQhgyB\nGTMgv8zX7CefwNSpMHky9NOHZxIZiTlrgRbxDkNERGo4zdDWYUWBIr4ZP4tDh/QmuUFyvMOJKwuL\ncVzDNXRlCk/zJ7NYzPd8xBguowOf80zMY9qHQ7mFSaTRhCTSdh73koqHFM7kfk7iqpjHJTVfi47N\n2PjXptje9NFHy09mwV6CnJcHgwbZ/xcRERGJEc3Q1mFzp/1G9uYcjhpxeLxDibu3uZ0vGUuA0pVh\ndzx/gxtJJoP+nBXTuLrSnxf5m1/4jN+YRhF+9qYXhzGCZBrENBapPTJbNYpt655gEB55pPxktqRQ\nCN55B0aOjE1cIiIiUu8poa3DZrz3A6kZKfQ+vme8Q4mrXLYykcd2S2ZL8pPP61zHEfwTN7FtbeTG\nTR+G0IchMb2v1F5NWjXmx4m/YFkWJhbNOhcsgIKC8ONyc+GNN5TQioiISMxoyXEtlstWvuddvuRF\n5jKZYIn2Ln5fgO8/+onDTumDxxu+32ld9h1vYRx8qQcoYAHTYhCRSPVkts6kMN9H3vYwM6aRkpcH\nTntY56qQj4iIiMSOZmhroULyeJlRfM87uEnEIoiLBFy4OZ27OIEr+PmLX8nbns+Rp2u58Rp+x19B\n4aWSghTxN8s4IAYxiVRHo+YZAGzflE2DhqnRv2HbtuDzhR9nDHQKX71bxImYrD4QEZFaTwltLeOn\nkP/wD9awiACFuy2jfYtb2co61oxvTVqjVA4c0C1OkdYc9l5UA1iVjjO48JAUk5hEqiOtsb2/Ontz\nLq1jkT+2bQs9e8KsWZWPS0mBUaNiEJCIiIiITUuOa5lJPMlafq9wP6iPPD7zPc33n/zI4accTKKn\nfi83BjiIk/CSEnZciCJ6cGwMIhKpnrRG9qxszpYYLu996CFIrqRaute7qzetiIiISIwood0ThYWQ\nk2O3qIiDECE+43H8VF6cpeDLDAqyffQb3jdGkVVPAB/5ZGOFmUGtqv04gka0xJ6lLZ+bRLpxNJm0\niUoMIpG0a4Y2J3Y37dcPXn/dnoUtm9g2aGDP4E6ebC87FhEREYkRJbThhELw1ltwwAH2m7bMTPtx\nxx2wKbZ9ILeynny2hx3n/6w5JjVIz6Nr7nJjC4sf+YibOZgzSeF8mnAuDXmdG9jK+ojey2C4iQmk\nkF5ucSg3iWTQnMsZF9H7ikRLSrq94qAgt+LK3VExfDisXAm33w7du0PnznDSSfDxxzBzJmRkxDYe\nERERqfeU0FYmGLTfwF10Ecyfbz8PBGDrVnj4YejWzX5zFyMWIUwls4xgTx4Xfd6C5AHba2x1YwuL\n57mQpzibZczGIkSQAAVkM5knuZZurGZRRO/Zhv15iF84mKEkkkQKGaSQgYdk+nMOjzCPDJpF9J4i\n0ZKU6gXAl++gUFOkNW0Kt95qf09csgQmToQBAzQzKxGnrygREXFCRaEqM2YMTJkC+eVUyPX5ICsL\njjsOFi+OyZu5hrTAFaZHamhxGqGVqbS90RP1eKrqC57ne97GV07l4SL85LKV0QzgOf4igcgl5c3Z\ni+sZTw6bWcsfGFy0o3tx0SiR2iMpxU5oC/PikNCKiIiI1CCaoa1IIACPPVZ+MrtDKATr18OMGTEJ\nKYFEBnARCVScrAYmtwDg9IEjYxLTnrKw+IB7y01mS44qJI85TIhKDGlksh+Hsy99lcxKreROcJPo\nSaAwL8ZLjkVERERqGCW0FfnuOzthDSc3F8aNK//cmjX20rwjjrAfd9wB69ZVK6xTuIkGNK5wpjY0\nrSXJnUP06zCoWveJllXMp4DssOMKyeErXolBRCK1U6I3kaJAMN5hiIiIiMSVEtqKbNvmfGzZ4lCW\nBXffbRdMeewx+P57+/Hww7D33vDAA1UOK4Om3M9PtKELXlJ3FjlKwEtCIJngN8046uhjw+61jZc8\ntoVdNr1DDpujHI1I7eVOcBEsUkIrdYcVpw4CIiJSu2kPbUVatHDWnsfthnbtSh977DG7Z2NhmeWA\nvuL9bvfcA2lpcPnlVQqtCW15lPksZTYzeZ88ttKMjrSY3Y87c5+k14ADqnTdWGhIC4IEHI1VCx2R\nirncLoJFDlaRiNQSlqVCUCIisuc0Q1uRQw6x2/SE4/XChRfuep6fD3feWfne2/x8eymy31+tEDvR\nh7N5iEt4kVO5lRVfbQTggCO7Vuu60dSafcmkXdhxSTTgOC6JQUQitZM7wU0wUORs8JIlcNllsNde\n9gdwgwfbe/81IyY1mL46RUTECSW0FXG5YPRoSEmpeIzHAwceCAcdtOvYhx86q3hsWTAhskWP5n+7\niI7d25HRJD2i1420fzEGDxX/ubpIoCnt6c6AGEYl4kwBucziA6bxEj8zkQDV+2Aq6saMgZ494aWX\nYMUKWL0aPvvMTmoHDtx9JYlInCiBFRGRqlBCW5kLLoCrrrKTWleZP6oGDWC//eDTT0sfX7rULhQV\nTkEBLFsWsVCDRUF+n7mEbkfsH7FrRsshDOUM7sZD8m77aZNIpSntuYMva+w+YKmfAvh5lau5gOY8\ny795lat5gn8xkqZ8wH1YMX47blkWJtyHZ6++CvfdZ3+/CZRY6m9Z9vepb7+Fs8+ObqAiDpXdQ6s9\ntSIi4oQS2nDGjLGX5g0fDo0bQ3q6PSs7dizMng2NGpUen5wMCQ62JrvdkJQUsTCXzltJQW4h3fvV\n/IQWYAjXM4ZZ/IOzSaMJyaTTlm6cz9M8ym80okW8QxTZKUgR93MSX/IifvIpIAcfeRSQQwHZfMT9\nPMcFMU1qLQuMHoy96AAAIABJREFUq5KENhSytzZUtv2hoAAmToTlyyMfoIiIiEgMqCiUE336wLvv\nOhs7cKC9VLkozN42l8seGyELv/sDgO799ovYNaOtPT24nFfjHYZIWN/yJkuYib+C/sk+8viBd+nP\nOXSlf0xiskKhymdov/sO8vLCXygUgpdftmdyReJI87EiIlIVmqGNtAMOgH333X2Jcklut72nbd99\nI3bb33/6k6ZtM2nSOjNi1xQR28c8iI/Kk0Mf+XzCQzGKCIJFIdyJlbTAWr3aWdEnvz+i2x9EIkUJ\nroiIOKGENhrGj7eXIrvLebOZkGAvXX7nnYjecsmcZezbp1NErykiEMDHOhY7GGmxmO+jHs8ORf4i\nEhIrWWSTluasQJ0x9vckkTjTllkREamKiCS0xpiBxpjFxpilxpibyzl/rTFmkTFmvjFmmjGmfYlz\nQWPMvOJHZMv+xstee8HcuXDaafY+2YwM+5GUBGecAfPm7d67thrytuexbunfdD5or4hdU0RsIUKO\nC5SFCEY5ml0C/iISPJUktEcdFX7rA0BqKpx+euQCE6miWBdWExGRuqHae2iNMW7gGeBYYA0w2xgz\nwbKsRSWGzQV6W5aVb4y5FHgIOKP4XIFlWT2rG0eN07YtvP02bN0Ki4r/KLp2hYYNI36rZb+uAqDT\ngR0jfm2R+s5DEuk0ZRt/hx3bmtgUZbMsi2BRkITKlhynpcG558Jrr9nFn8rjckHz5tA/Nvt+RURE\nRCItEjO0BwNLLctablmWH3gHOLnkAMuypluWtaOayiygTQTuWzs0agSHH24/opDMAqxatAaADt3a\nRuX6IvWZwXAS15BI5VXJk0jlZG6MSUz+Qrv3rTfZU/nAxx6DHj3s6utlJSTY358+/9zZ0mSRKNOS\nYxERqYpIJLStgdUlnq8pPlaRkcDkEs+TjDFzjDGzjDGnRCCeemf1H2tJSvXSpLX2wYlEw/FcSmNa\n4Sax3POJJNGW7hxMbL6F+QrshNYTLqFNToavv4a774YWLeznqan245JLYP586KS991JTKcMVEZHw\nYtq2xxhzFtAbSvW1aG9Z1lpjzF7AV8aY3yzL2q3kpjHmIuAigHYR3H9aF6xevJa2+7bCVVll5SgL\nEmQ5P5PHVhrRknZ0d7zvUKSmSyaN+5jJg5zMKuZThI8QQdwk4sJND47hat7BHaNvqf4ChzO0AF4v\n3HADXHcdrF1r76tt1co+LiIiIlLLReLd11qg5FrXNsXHSjHGHAPcBvS3LMu347hlWWuL/7/cGDMD\nOBDYLaG1LGssMBagd+/e+ti2hNV/rKPLYfvE5d4hQkziCT7iAfwU4MJFkCIyaMa/GMPhjIhLXCKR\nlkEzxjCTVcznO95iOxvJpC39OYcW7B3TWBzP0Jbkctl7+0VqqLJLji1LH4qKiEh4kUhoZwOdjTEd\nsRPZEcC/Sg4wxhwIvAAMtCxrY4njjYB8y7J8xpgmwOEQw0aOdUCwKEjWms207Ni8ytcoIIdveIOp\njCWXzaTRlOO4mH6cRRKpFb7OwuJpzuEnPsJHfqlzG1nBc4zkb5YyjNurHJtITdOeHrSnR1xjKMyz\nPxNMSq18X69I7abPrkVEJLxqr1G1LKsIGAVMAX4H3rMsa6ExZrQxZkjxsIeBBsD7Zdrz7A/MMcb8\nCkwHHihTHVnC2LR2C6FgiObtm1bp9SuYy6W05w1uZBW/spk1rGQur3Edl9GBVfxW4WtnMZ6f+Hi3\nZHYHH/l8yBhWMK9KsYlI+XYktMkNlNBK3aG2PSIiUhUR2fBlWdYkYFKZY/8p8etjKnjdD0D3SMRQ\nX238axMAzaqQ0G5lPXdxFPls3+2cjzx85HEn/XmCxWSw+/U/4gF85FV6jyL8TOQxruD1PY5PRMpX\nkFsIKKGVumW3JceqwyAiIg7Er4qQRMTOhLZdkz1+7SSeJEBhpWP8FPAFz5dzvJBV/Br2HiGCzC39\nWYeIVNOOhDYpVYWdpC7TjK2IiISnhLaW27phGwCNW+x5j9svGUsAX6VjAhQyhWd2O16EH+Pwy6eI\nwB7HJiIVK8gpACAlrZz+siK1VNn0VX1pRUTECSW0tdz2rGwSEt2kZqTs0essLHLZ6mhsDpt3O5ZM\nGl6c3bMZHfYkNBEJI784oU1O05JjERERqd+U0NZy27KySW+SjjF7ttfIYEjAWcuPRHZf1mgwHMsl\nYa+RRAMGc/0exSYilSvI0R5aqXssTcmKiEgVKKGt5bI355DRJK1Kr+3FSWGXDbtwczCnlHtuENeQ\nTDqmgsIdbhJpTGsO4/QqxRcN+WQzhWd5inN5hn/zLW+GXXYtUtPk5xTgcrvwJO1BH1qRGm63Jcfa\nQysiIg4ooa3l8nMKSK7iPrpTuJlEKp/hScBb4QxrQ5pzHz+QSVuS2JVUGwxJNKAd3RnNt+XO8MbD\nZJ7mQlrwBjfyDa8zg3GM5RJG0ow5fBrv8EQcy8/OJzUjZY9XZojUZBuz9eGiiIjsOSW0tVxhnq/K\nlU470Yd/ch+eCvbCekjhHB6hIz0rvEZLOvM0y7matziEU9mff3AEZ3Irk3mQOeW2+4mHKTzLm9yE\nn4JSrYYKyaWAbB7nDH7lizhGKOJcfk6BCkJJnbN0Y06p51qBLCIiTkSkD63ET2FeIZkt97zC8Q6D\nuJp2dOM97mIZs0nAQxF+9qEvp3En3Tgq7DXcuOnFIHoxqMpxRJOPfN7gRnzkVzjGTwEvcDHPsLzC\nJdQiTm1hHVN5noXMAKArR3Isl9CYVhG5fn52ASnpSmilbnG79Bm7iIjsOSW0tZy/wI83pXpLentw\nDD04hhw2k8sWGpBJGo0jFGH8/cC7jpLUHDaxmB/Yj8NjEJXUVR8yhvHcA1g792cvZTaf8DDDuJ1h\n3Fbte1Rnq4FITZXg0oeJIiKy5/RxaC0XClm43JH5a0wjk5Z0rlPJLMAK5lJIbthxIYKsZkEMIpK6\nahJP8iH3EaCwVLEx+3khHzGGSTxZ7fvkZxfscasukZrOXSahtbRaRkREHFBCK3VegsOiVAaDS4sW\npIr8FPI2t1W6tN1HPm9zO34Kq3Wv/Ox8UrXkWOqYsjO0RptoRUTEASW0Uud14yiSaBB2nIXF/vSL\nQURSF83mk6iMLU9+topCSd2z+wytEloREQlPCW0tZ4zBCumHfmV6MjBsQmtw0YEDaMU+MYpK6pq/\nWVrp7OwOPvL4m6XVupf20EpdlOAus8RYbalERMQBJbS1nDfZg6/AH+8wajQXLq7lfbwVtCcyuEgh\nnVG8EePIpC7xkIQLd9hxbhLwhOn/XJlgMEhhnk8ztFLn7FblWEuORUTEASW0tVxSqpeC3Ortx6sP\n9ucI7mQ6HeiJh2SSSCOJNBJJYn/68QBzaEmneIcptdgBHI/bwR5sF24O4Pgq36ew+N+7ZmilrvH6\nt5d6rnxWREScUAWcWi4p1UthnhJaJzpzMA8zl79YwCrm48JFZw6lGR3iHZrUAe3oRhu6soJfsAiV\nO8bgog1daEe3Kt8nP8f+956SVvVZXpGaKGXbH6UPaMmxiIg4oIS2lktOSyZ7ZVa8w6hV2tGtWgmF\nSEWu431upjd5bCNEsNQ5F25SaMi1vF+texRohlbqqBbpZT6k0RStiIg4oCXHtVxGk3S2ZWXHOwwR\nAZrRgYeZx6GcRiJJpJBBChkkksShDOcR5tGcjtW6x86EtoFmaKVu8SaG34MuIiJSlmZoa7mGzTLY\ntnE7oVAIV9mCGiISc5m04RreJoctrGEhAG3oShqNI3L9HVsM6k1Cm5cHa9eCxwPt2oG+z9UfWnIs\nIiIO6J1BLdeoeQahYIjcrXnxDkVESkijMfvTj/3pF7FkFnYVhUpK9UbsmjXSypVw3nnQtCn06gVd\nu0Lr1vDww+BXZfe6qUwfWq04FhERBzRDW8s1btEQgM3rtpCemRbnaEQk2grzfAAkpdbhGdrffoN+\n/SA3F4Il9iLn58Odd8KECfDll+Ct40m9iIiIhKUZ2lquRcdmAPytwlAi9cKOvtPeFE+cI6nAH3/Y\nyeZPP5VORp0KBuH442H79vJfX1AAP/8Mt91W/VjrMWPMQGPMYmPMUmPMzeWcP88Yk2WMmVf8uCAG\nQZV6aqEpWhERCU8JbS3Xcq/mAKxfviHOkYhILPjyi2doU2rY7OSnn0KXLvby4OHD4ZhjoEULuP/+\nPUtsJ02yZ2YrU1AAL7xg/1/2mDHGDTwDnAB0Af5pjOlSztB3LcvqWfx4KaZBioiIOKSEtpZLz0wj\nuUGSElqRemLHDK0nuQbN0D77LIwYAb//bi8L3r4dcnJg0ya4914YNgxC5ffm3c3bb9uvDcflgu+/\nr17c9dfBwFLLspZbluUH3gFOjnNMlN1DKyIi4oQS2lrOGEPLvZuz9s/18Q5FRGJgZ0KblBjnSIot\nWwbXX28nsuXJz7eXII8b5+x627c7v3e4mVypSGtgdYnna4qPlTXMGDPfGDPeGNO2vAsZYy4yxswx\nxszJyors1hcVhRIRESeU0NYBHbu3Y8Vvf8U7DBGJgYAvgDGGhMQaUtPvySehqKjyMXl59tJjJxlK\n586Q4OD3FgzabXwkWj4FOliW1QOYCrxW3iDLssZaltXbsqzeTZs2rd4d1aZHRESqQAltHbBX9/Zs\nWruF7C0OlumJSK0W8BWR4EnA1JQ3/598AoFA+HGrV9tLkMO56CJIdDD73Lw5HHhg+HFSnrVAyRnX\nNsXHdrIsa7NlWb7ipy8BvWIU264YYn1DERGplZTQ1gEdu9uzFJqlFan7ivxFJHpryOwsgM8XfgyA\n2w2FheHHdeliF5RKqqQtUUoKPPSQZvSqbjbQ2RjT0RjjAUYAE0oOMMa0LPF0CPB79MPS36eIiOw5\nJbR1wF4HdABg6S8r4huIiERdwF9Uc5Ybg71E2KlmzZyNe+cdOPxwSE0tnbR6PHai+9BDdqEpqRLL\nsoqAUcAU7ET1PcuyFhpjRhtjhhQPu9IYs9AY8ytwJXBefKIVERGpXA16VyRVldmyEc3bN2XhD38w\n7JpB8Q5HRKIoVBTEnVCDPou87jqYO7fyAk0JCXDWWeB12GooJQWmToWvv4bHHoMFC+xkdvBgGDUK\n2rePTOz1mGVZk4BJZY79p8SvbwFuiWlQZWfcVRVKREQcUEJbUyxfDq+9BitWQGYm/POf0KeP4yV1\n3f+xP3M+n4dlWTVnb52IRFwwGMLlrkEJ7Ukn2bO0CxeC31/+mNRUuPXWPbuuMXDkkfZDREREpAI1\n6F1RPVVQYC+d69rVrgL6xht21dCjj4aePWHNGkeX6fGPLmzLyuav352NjzUfBaznTzaykhAO+1GK\nyG5CoRDuBHe8w9glIQGmTYODDtp9iXBamr3M+OuvNasqDpT+MNbSnloREXFAM7TxFArZsxszZ5Yu\nlhIK2W0uFi6Egw+G336zZ20r0fOobgD88uVvtO9SbrvAuNjMGsZzD9/yPwwuLEIkkcYgruEkriYR\nh0sQRQQAK2ThctWwN/qNGsEPP8CsWfDcc/ZKk4YN4Zxz4JRTnFUtFhEREakCJbTxNGUKzJ5dceXP\nYBC2bLH3kN13X6WXarlXc9rs05LZn89l6JUnRiHYPbeOJdxGXwrIJsiuPpU+8nmfu/mRD7mLGXhJ\ndnS9LP5iCs+yhJm4cNOTgQxgJGlUnuyLSAwYA3372g+RqtB2GRERqQItOY6nRx6pvJAK2C0xnn3W\nTm7DOOTEg5g3fSGF+Q7baESRhcV9DCSPraWS2R38FLCK+bzOdY6u9QY3cRX78hmP8zvfsJDpvM9d\nXEwbpvJiNH4LIjWWauVIfaAvcxERcUIJbTz99puzcYWFsHlz2GEHn3gQAV+AeV8tqGZg1beAr8gm\nC6uStyQBCpnBOAqoPKl/n7uZwtMEKKSIXUVn/BQQoJBxXM13vB2x2EVqNE1iSZ2lL24REdlzSmjj\nye2wsEsoZBdeCaNbv/1JSUvmh09mVzOw6vuedykMk6gCuElkIdMrPJ/HNj7mQXzkVzjGTz7juEbF\npqSULP7iDW7kKvbjcvbifgbzG19V+iFLbeAyLkLBGvC1vnWrvR2iRw/o2BGOOALefbfiSscie8qq\nAV/nIiJS42kPbTwdfTS8846dsFamZUu76EoYHm8ihw7uxfcf/8Rxz+7P5sRVeEimG0fHfJ9pHtsc\njbOwKk18v+NtXA4+d/GRzwK+ogfHOI5R6q4pPMdrXItFaOes/kZWsIgZ7EUvbuEzkkiNc5RV405w\nESwKvwUhqmbMgCFD7K0Q+cUfNq1cCb/+CjffDN98A21rTnE6ERERqbs0QxtP110HSUmVj0lJgRtv\ndFwso9mwENmbcxj99bm8xOU8x0gupjWPM8JxkhkJLelEAs4qm2ZS8Rvf1SysdHZ2hxBF/M1Sx/FJ\n3TWbCbzO9bstUQcoJJc/+ZFHGR6n6KrPnZhAUSCOCe0ff8CgQZCTsyuZ3SE3F1avhn79Ki52JyIi\nIhJBSmjj6aCD4LLL7KS1PMnJ9pgLLnB0uS94nmkD/wMNAuS9n0khuRSQQwAfP/Ext3Aw+WRH8DdQ\nsaMZiSH8kupk0tiXwyo87yUVJ/uqDC61ABIsLF7nOvyVfAgSoJBFfM0qHO5hr2ESEt0UBXYvtBYz\n99xTebIaDNp7/t97L3YxSZ1kqfqZiIg4EJGE1hgz0Biz2Biz1BhzcznnvcaYd4vP/2iM6VDi3C3F\nxxcbY46PRDy1ykMPwf33Q+PGkJYGqamQnm4ns//+N3z5JXg8YS+zlb8ZxzUEknNJHLKewPg2WL5d\nf71F+MjiL97jzmj+bnZqwd70ZjCeSlryeEnhTB6odEnxQZzoaGloiCK6a7lxvbeK+WxlfdhxRfiZ\nyvMxiCjyEj0JBHxxSmgLC+GDD8JXXc/NhSeeiE1MIiIiUq9VO6E1xriBZ4ATgC7AP40xXcoMGwls\ntSyrE/A48GDxa7sAI4CuwEDg2eLr1R/GwJVXwoYNMH48PP00jBsHGzfCM8+A19ms45eM3flrzzmr\nsLZ6CHzSqtSYInxM4yX8xGYp4Chepwv9d5tlTSARD8mcxl305+xKr9GFf5BO00rHuElgf/rTpJKl\nyzsE8BEkzvsPJWo28RduB6UBQgRZz58xiCjyvCleAr4AoXB776Nh82ZwOfyxsWZNdGMRERERITJF\noQ4GllqWtRzAGPMOcDKwqMSYk4G7in89HnjaGGOKj79jWZYPWGGMWVp8vZkRiKt2SUiA446r8st/\n4TMCxYlqwoANuDrk4X9hLzynl35TaXCxmoXsTa9qheuEhyRuZRJ/8B2f8iir+BUXCRzIiZzIlbRg\n77DXMBhu5BPu4AgKydmtQq2bBNJpyiheq/AaOWxmMk/zOU+TyxbAYm/6cAo3czCnYNQqos5IJs1x\nFeMUMqIcTXR4ku0VG/7CAEkpMV5m36ABFDmcHa5oK4WIY1pyLCIi4UUioW0NrC7xfA1wSEVjLMsq\nMsZsBzKLj88q89rWEYip3gmy602mcYPnouUU3tqd4KI03F1ydp3DEIrhDKXBsD/92J9+Vb5Ge7rz\nALN5neuYz1QSsQtpBfDRl9M4h0fIoFm5r93ACm6jL/lsI4Bv5/Gl/MRTnM2hDONyximprSM6cyhO\n3gQnkUY/zox+QFGwI4n15ftin9BmZED37vDLL5WP83phxIjYxCQiIiL1Wq0pCmWMucgYM8cYMycr\nKyve4dQ4e9MbV4nPJzwjV4A3iO/JTqXGBfDRgk5lX17jtWIfbuZTnmUVN/ARN/IJL/I3V/B6hcls\niBD3cAzZZJVKZnfwkccsPuAz/hvt8CVGPCRxPJdVuncb7P3bvRgU/YDWroXPPrMf68Pv7XUiKdVO\nYgty41RF+Pbb7b3+lXG74fLLYxOP1B1lPldUTSgREXEiEgntWii1ebFN8bFyxxhjEoAMYLPD1wJg\nWdZYy7J6W5bVu2nTyvdU1kcncmWpNjmupn48Z63C/3oHQln2EkWDi4M4iTQaxyvMamtIc7pxFF3p\nT2qYJaO/8SXb2YhFxXsNfeTxEfdrX20dcjqj6cTB5Sa1Ltwkk87tTHG017bK/vwTjj8eOnWCM8+0\nHx07woknwvLl1bp0aoa9lDc/uyASke65oUNh5MiKk9rkZHj9dWjTJrZxiYiISL0UiYR2NtDZGNPR\nGOPBLvI0ocyYCcC5xb8eDnxl2fX4JwAjiqsgdwQ6Az9FIKZ6py1dOYwz8LBr35r3mj+h0I3/eXuv\nahINOJMH4hVizE3nVQrJDTsuQCFL9WVXZyTi4Q6mcgb30JCWeEghiQZ4SKYfZ/Iw8+jAAdEL4Pff\noU8fmDrVrgq8fbv98PlgyhTo1ctOeKsoJd1O1POzw/dnjpr//hdeeQW6dbN7aael2cuMjzsOpk+H\nYcPiF5vUHZqiFRERB6o9RVG8J3YUMAVwA69YlrXQGDMamGNZ1gTgZeCN4qJPW7CTXorHvYddQKoI\nuNyyLE2VVdElvISHZKbzin2gSw4JJ6zH/0wnWt6Qy21Jn9GyFi43rqrtbHQ0zuAij61RjkZiKYFE\nhnAdg7iGTfxFEX4a09pRC6hqGz4csrPLfzMeCtnnzjgj/D7UCqSk2x9a5cVrhhbs6uynn24/1q2z\nf0/Nm0OjRvGLSeocpwXeRESkfovImjvLsiYBk8oc+0+JXxcCp1Xw2vuA+yIRR33nxs2FPMtw7mA6\n41jL72Rf72HGgO2c9OpY2l/aPd4hxlQmbTCYsG+KQgTJoHmMopJYcuGiGR1id8M5c2DVqspnlkIh\nWLwY5s+HHj32+BZpjeykPHdrXlWjjKxWreyHiIiISBzUmqJQ4lwjWnIqt3AFr3PrkS/Spe8+vPfg\nJwT8gXiHFlMDuLDUEuyKpNKIvTgoBhFJnffll/bS4nCKiuyxVZCemQZA9uacMCNFajlN0IqIiANK\naOs4Ywxn33k6G//axGcvVO0NdI20fDm8/Ta8+SYsWlTukP04nJbsg7tEsayyvKRwBqPVtkciw++H\noINdE6GQPbYKUhum4HIZtm/KrtLrRWoufR8WEZE9p4S2Huh1bA96HtWVN+8dT148C8lEwp9/Qv/+\n0LUrXHwxXHop9O4NBx0EP/9caqjBcDuf04wOeMvsnTS48JDCiVzFUZwXw9+A1Gn77QcNGoQfl5xs\nj60Ct9tNWuMGZG/SDK3UcVbFFepFRER2UEJbF2Rlwb33Qrt29pvpVq3g5pthzRrAnqW94IGz2JaV\nzbsPfhznYKth8WK7euy339rVY3Ny7EdBAcydaye6s2aVekkGzXiYXzmfJ2nN/nhIIYV0DmYodzKN\nfzEmTr8ZqZNOPtkumBROQgKcdFKVb5PRNJ1tWdur/HqR2iBzeS3+eSUiIjGjhLa2++knu9flfffB\n6tWQlwfr19ttNfbbz24TAuzbpxMDzuzHB49PZONfWXEOuorOOqvi6rFg/96HD7eXc5bgJZmjOZ//\nsog3yeM1tnM949mHQ2MQtNQrXi88/DCkVLJ3OyUFHn8cEiteCh9O45aN2Lx+W5VfL1IbtP795XiH\nICIitYAS2ngJhZwVj6nMhg1w7LF2kldYWPqcz2cneKeeCkuWAHD+ff8E4JXb3q7efeNh0SJYuDB8\nX8Lt22HatNjEJFKeiy6C+++3+7OWTGxTUuxjjzwC555b8esdaNyiIVvWR7jVlGXZ30fU+1NERERq\nESW0sTZtGhxzDHg89hvcjAy48Ua7l+Oeev758IVl/H77DTTQrF1Thl87mGlvfsvvP/5ZheDj6Jtv\nnI3LzYUZM6IaikhYV14Ja9fC3XfDoEH249577dUTl15a7cs3btGILeu3YkUi+fzzTzsJT021H16v\nvdKhzJ50ERERkZpICW0s3XYbDBliJ7XBoD1Lm50NTzxhFzn69dc9u97YsbvPzJZVVARvvLFz1uWM\nm06hcctGPHnZiwSLHFRjrSkCAeczR4H61Z5IaqjGjeH66+HTT+3HNddAw4YRuXTTNpn4CwPkbMmt\n3oWmToWePeHVV+296KGQ/e/no4+gXz94WUs+JYac7D8XEREpQwltrIwfb+9rzS+nyrDfD9u22TO3\nBQXOr7lli7NxgcDO5c0pacmMevJ8ls5dwfuPfur8XvHWrZtdSCecBg2gR4/oxyMSR03bNQFg41+b\nqn6RNWtg6FD7e1JRUelzoZD9vejKK2H27GpEKiIiIhJdSmhj5a67yk9mSyoshPfec35NJ+1BwP7U\n2+vd+bTfsEM54tRDeP2u91i9eK3z+8XTkUfay7OdGD48qqGIxFuzSCS0zzyzeyJbVkGBvR9YRERE\npIZSQhsLq1bB8uXhx+Xm2suInTrzzPCVUl0uOOWU3ZZyXfH0SLzJHh678HlCoVrQ688YeOEFu39n\nRXZUj01Kil1cInHQvL2d0G5YVY2K5a+9Fr4wnWXZy6WDtWh7goiIiNQrSmhjYcsW5y06Nm92ft2r\nrgp/3aQkuydtGY1bNOL/7N13fBP1G8DxzyVNmy42lL03BWRvBESmAooCAqKiIAoqe4koslQQQUQB\n8ScgqKAgoICALBEQWbL3BtmrK03X/f64QlfSpM1sed6vV17N3X3vvk9KGu7Jd705/RUO/3WcX2as\nsb9OT2rfHhYvhuDglK3TgYFaovvpp/Daa56LTwg3yZkvB8ZAP66du5H5i4SH21dOUbQZ04VwORlD\nK4QQIuMkoXWHAgVsz0b8QKFC9l+3VClYskRrmdTrUx5TFG3/zJlQq5bF01u+2JT6T9fif+9+z8Xj\nWaTr8TPPwI0b8NVX8PLL0KuXNovzjRvQr5+noxPCLRRFoXCZgvx35lrmL5I7t72V2T+8QQghhBDC\nzSShdYciRbRJjWwJDoY338zYtZ96Cv75B154QRsn6+OjPTp10pav6d3b6qmKojBozusYA41M6j6d\nmGg7k25PMxqhZ09tZtYFC7REVm64xSOmcNmCXDntQELbt6/t7vl6PXTpog1dEEIIIYTwQnKX4i4T\nJmgtptZ/9FruAAAgAElEQVTodNqkR506ZfzaVapoS/NERWndm6OjYflyqFPH5ql5CuZm+Pz+nPn3\nPHOGLsx43UIIjyhcOoRrZ68Tn9nxra+/rq2HnR4/PxgxInPXF0IIIYRwA0lo3aV1a/j4Y22sZ+ru\nwQEBWrfkrVvtH2triU6ntfKmvr4N9drX4rnBT7Pqy3VsXboj8/ULIdymSPnCxMbEceNCJmc6zp9f\nW4c2R460LbUGg/a59MMP9vUuEUIIIYTwEElo3WnAAPj7b2124ly5tJvI0qW1ZTFOnNCee8irk7tT\nuUF5pvWZzeWT/1kv+Ndf0LGjNv4uZ06oV09bY9fW8h9CCKcqXqkIABePXc78RerWhZMnYdQoKFxY\n+0zKl08b+nDoEHTo4KRohRBCCCFcQxJad6tWTRv3efeutsbjmTPw9ttaK4kH+Rh8ePfHQegNesZ3\nmUZ0VKrlPFRVu8lt3VpbxuPePQgL08bvvvIKNG6sLTskhEjjAof4jc9Ywcf8wwriiHX4mg8S2gtH\nHUhoAUJCYOxYuHJF+0y6eROmT/foF2ziEaXILMdCCCEyThJa8VCBYvkY+d3bnDt0kSmvzEq5Pu3U\nqbBwoTZOV1VTnhgRAf/+C127ujdgIbzcVU4znFqMph6LGcUPjGEmvXiNAmziW4eunSNPMLlDcnLx\nWBaZoVwIIYQQwgUkoRUp1G1bg1cn9+DPn3by3biftJ2xsTBpUvprUZrNsGkTnDrlnkCF8HI3OM8o\n6nKef4nBRBxmEogjmnAiucf/GMBavnCojpKhxTl/5KKTIhZCCCGEyHokoRVpdBnWgdYvN2fR+J/Z\n9MNfsHEjJG+ttSYuDubPd3l8QmQF/+MtoriPiuW/HTNRfMcwwrmT6TpKVy3O+cOXMj/TsRBCCCFE\nFicJrUhDURTemd2Hqk0rMbX3lxzdfsz+hPaitBa5SyxmrnOO21wmwUrSJDzjHtc5yAaryewDCgqb\n+SbT9ZSqVgKzKYarZ65n+hpCCCGEEFmZJLTCIoOvgfd/Hkq+InkYO3MvlwiyfZJOp00wI1zqDv/x\nNW/yCnkYQlXepjyvU4RVTCUWs+0LCJc7x34MGG2Wi8HEITZnup6SocW1+g5fyvQ1hBBCCCGyMklo\nhVU58+Vg0prRKL6+jIyqxQ380z/BaITu3d0T3CPqKqcZSjU2Mg8zUZiJJAYT97jGEsbyPo8TQ7Sn\nwxQZotouYkXxSkVQFIXzh6VnhMgOZJZjIYQQGScJrUhX0fKFmfT7GCIMAYzUPc59fC0X9PGBSpWg\nZk33BvgIUVGZSBsiuEu8hWVfYjBxgYMsYLAHohPJlaS6Xa3lvvhThWaZrsc/0Eih0gU4f0RaaIUQ\nQgjxaJKEVthUrmZpPlw9hmtKIO/qmxKFT8oCRiMUKQK//eaZAB8RR9nKfa6nOy4zBhNbWIAJWRPY\nk3JTiFCao9j4iFVRacGrDtVVMrQ45w5JC60QQgghHk2S0Aq7VH+iGmN+HsYpcjMm4ElMOl8wGCB/\nfnjvPThwAAoW9HSYXsOMic18y2jqM4CyjKYBW1iAGVOmr7mdJUSTztJJifT4cJhNma4nuzIRwXpm\nM4LaDKAsY2jMX/xALDEuqa83M/EnGMVKN0o/AniBieQgn81r3eYy3/MugwjlLcrxCZ04wlZUVEqF\nFufKyf+IiXbN6xBCCCGE8GY+tosIoWnYqR6jFr/D5J6fM7rBUCb+NJCAgvlAcc+4p/Mc4DJH0eND\nRRqTm0JuqTejLnKYcbQgBhPRiS2l1znDJQ7zHcP5gM0Uo3KGrxvJHewZb6miPqxXaM6wh/E8SRyx\nmBO/FLjOGS5wgO8YzodsJYTSTq2zIGWYxN98ynPc4ByxxJBAHEaCUYAefExr3rB5nY18wzcMANSH\n3ZivcYaD/EE56tG42nskJKhcOHqZcjWd+xqEEEII8QhQVYiPhfiYxIeF5wmxVspY2JenNFRo67bw\nJaEVGdKsayMURWFSjxmM7jKDSWveJSDYxmRRDjrGNubyBjc5h4IeBYgjllBa0I+vyUNhl9afEfe5\nwViaEsndNMeiiSCaSMbSlBkct6tlLrmClEWPweL42dTyUjRD187ObnGJcTyBibA0x6KJwEwUY2jM\n55zAn2Cn1l2EikzjMGfYy0E2EIeZwlSgLs9gwM/m+XtZzf94i9g0E32pmInkBDuIq/4pYOTMgQuS\n0AohhBDeIiEhMQm0kvSleR5nR5lUz9O9fnrXSFUmwfa9ZYZU7iQJrfBuj3dpCIrCpO7TGdV2IpNW\njyIwZ6BL6jrAej6hEzEWuuoeYB3DqcEn7PeapPZ3ZhFDVDoltERkPbN5jjEZunZzevMr02wmtEYC\nqUjjDF07O1vFFIvvnwdUEjBxny0spC39XRJDGWpRhloZPm8hQ9KNPZZozpTZiG9AJ878ew5o7kCU\nQniYm3r7eL1YE0Rch4gb2iP6HpjDEx9hiT8jIN6c8sY0IS7pBhVA0SX+ThXtp6JL+VxvAL1v4iP5\nc0v7kj338QW9H/j4JW77JR5Pvc835fMHP+XfWWREQnyyxC028X2e/D3/4FhcylZEq+ViLV8vzbG4\nVMmivYlpsiQzIc7Tvz3PiU//XtXZJKEVmfL48w3Q6RQmvjCdIc0/YPLad8kdksupdcRiZhpdrN7Q\nJxBPOLeZQ19G4R0TUq3nK5uz28YSzTpmZTihLUgZatKe/ayx+jvxJYDuTEYnw+MBrfv1Jv5n80sA\nM1GsYbrLEtrMuMAhbmN79uJ4fQzB1VTOHrzg/CASEmDTJti/X1tnulEjqFdPbkiFcISqQtgVuHEc\n7pxNetw9B+HXtKQ1O9MnJsR6Q6pk1y8pWbZ6zNdy+YfHUl1D0YFOD4o+1c9M7H/4BcEDyZ47sl9V\nQU2w8LC2PyNlkh1PiNMearyWJD7YTohL3La070H5VPsePhLsPydN8hiTLGl8cCwmbTnV+kSYwsl0\nD7648rH9xdbD54k/dYaUx0MyPrTOEZLQZhXx8dpPvd6zcSTTpHN9xq8awbjOUxnY5D0+WjeGQqVC\nnHb9XSwngfh0yyQQzyH+4C5XrY6pjSUGHwxWJ+dxFhWVcG7ZVTaMm5mq420W8TEdOMEOzETxYEyt\nHgN6fHiW0TTn5UxdOzuKJpI4O5bPAbjLVRdHkzG3uIgeg81yCcRjrB7JmR/Po6oqirOSzXXroHdv\nCA+H6GjtBsxggMKF4fvvoXZt59QjRHYXeRsubIfL/8DVg3DtEJjueDoqz3nQoiXEo8BSMqizlDDa\nkzjaKmMt0bSzniz8ZbUktN7MbIaFC2HKFDh9WttXvjyMGAE9e2o3lx5Wp00NPvljLGOemszAxu/x\n0e/vUqpqCadcez9r7ZrcyAc/TrCD+nR+uO8mF/iVaWzmf5iJRIeeWjxNJ0ZSjrpOiS81BQU9vnYl\nUD7W1vO1wRcjY1jHUbayik+5yEF06KlOa9ozkCJUyNR1sytfjKh2TKT1oKw3MRJod+x5ahq4NieK\na+duUKi0E75UWrMGnnsOTKl6AsTEwKlT0KwZbNkiSa0QlsTFwPk/4eR6OL8NbhzN2Pk6HwgKgaAC\nEFgAAvKAX3CyRw7tZ4qbVp+kbd2DWzs18TtPNam1DjWx1S4+VTdKO8fsxZnTPo8za92f42JSHXuw\nL7FrdJzZ+eP0xKPhYWLmk6wl0JD0PMUx35TlUv9tJD8vxTV8Uv09GdK2OqZ5biNJ1Plk6SQxK5GE\n1ltFREDz5nD0KEQlG5N54gS89RZ8/TVs3Aj+rp2QyR6VG1Rg2p/jGdl6PIOajuX9ZUOp0aKqw9eN\ns3s5FZV4ksYpHGc7E2lDLOaHXU3jiWM3K/iXdfTkE5d1La1JO3azIt1EREFHLZ7OdB0KClVoRhWa\nZfoajwo9PlSiCUfYYrNcfZ5zT1B2Kkd9uxJaI8E8XqMNR1nP6f3nHE9o4+LgxRfTJrPJRUZCr17a\n55MQTpOFb/ziY+HkOjiyHE5tsN1t2C8HhFSBvGW12UDzlIY8pSBnMTDm0rr4Z0cJCYlJb/JkNybp\n+cOfyRPnVPviHowdTr0vVcIdH5vUvVZNSPwZn+xnQqrt9PYnpOz6qib/bFYd2/+wO7MuZddmi/sz\ne1zRkjNdYhdqnU+yx4Ou1cm20zxPtk+xcg2L+3ySrp0iyUydUCZPVFMllDq9JIXCJklovdXLL8Oh\nQ1orbWqRkdqYtj59YNEit4dmSckqxZixfSJjnprM6LYTGTjndVq/7NgENWWozR5WpTspDkA88RSj\nCgDh3GYSbS227KqoxBDFIoZTgqpUpqlD8VnSkeH8y7p0J4YyYKQDQ51etzcL4xYmwshBfqfPJGzL\nM4zmNP8kdtG2TI+B9gx0Y1S2+WKkFf34nS/S/RvwxZ+2oT2Y67ORU/vO0qRzfccq/u03iLWjFeXC\nBdi3D2rWdKw+IbKymydg30I48CNEWRlyovOBwjWhREMoUhMKVoVcJbNv0poenQ50RjB4V48YIUTW\n9gh+mmYBV67A6tWWk9kHoqNh2TK4ccN9cdkQUiI/n20bT9WmlZna+0vmv/cjqmpfl0lLmvOKXS1U\nBSlLcUIB2Mi8FK21lsQQxc+Mz3Rc6SlPfZ5nLH4EWDzuSwBd+ZCy1HFJ/d5mF78wjBq8ThGGUI3e\n5ONjOnKO/W6LoTpP0o530v036c1MilDRbTHZqxsTKE0tfC3ErqDDn2DeZS3+xgBKVC7K6X/PO17p\njh3auFlbVBV27XK8PiGyGlWFCzvg+64wqy7s/CJtMpurONTvDz2Xw8iL8NoGeHIcVO6otcY+isms\nEEK4iHyieqNly+wrp9PBihWujSWDgnIFMmnNaNq++gSLJy5jQrfPMEWmXkPTPsHk5RlGWU1EQEtG\n+vDlw+2NzLPZogtwlK2Y7BifmxmdGMFgfqI0tTHghz/BGPCjLHUYys90YIhL6vU2CxjCTF7kPP8S\nRwxmIokjhr38yhgas9eNM1N3ZxIDWEhxqmHA+PDfpCKNGMVvPMGrboslIwz4MpaNPM/75CQEPwIT\nYzfSkK58zD5Ko7WQlqtZmlN7zzr0JRKQqmucECKFCzvhf23g27Zw8veUx4ILQ5Mh0G87vHMQ2kyC\nsk+Ar2uWtRNCCKGRLsfe6PZtrQXWFrNZK+tlfAw+DJr7OsUqFGbeyEVcPvkf434ZTsGSBTJ8red4\nD4BfmIyC8jBZNRKMHj2D+YmKNHpYPpJ7dl1Xjw8mwvAnKMMx2aMm7ahJO+5ylXBuE0w+clPQJXV5\no39YwQZmW+zm+6Dr92d0ZSanrc5O7Wz16Ux9OnObK0RxjxzkJycZf09mlJkoLnKIOGIpTPkM12nA\nl04MpwNDuc5Z4oghH8XSdN0uW7MU6+Zv5taVO+QvmjfzAderB8HBtltpdTrpbiweHbdOwx/vw/HU\nX8QpUKEd1OkNpZtr4/2EEEK4lSS03qhAAW2yp/QmZQEwGrWyXkhRFJ4f2oGSocWY+MJ0+tcZyXtL\nB/NY89CMXQeF5xlLG/qzmfmcYx8++FKDttTlGXxSLWsSTD67ls5JIJ5AnLturiW5KeS2hM2bLGNC\numNWARJIYD2z6co4N0WlyUsR8lLE5fVEcp8feJctzEeHHgWFWMxU5Ql6MTXDXZx16ChEWavHy9Us\nDcCpvWcdS2g7drRvebAiRaCua2YMF8JrxMXA9hnw5ycpl5rRGeCxF6DBW5C/vOfiE0IIIV2OvdLz\nz9vX7S8+Hp591vXxOKBOmxp8sWsyuQrkYESr8fw0dVWmukQGk5cODOEdFtOfb2lIlzTJLEAr+qXb\nRVmjUJ1WdpQTmRHBXS5w0Ga5WKLZxmI3ROR+EdxlJLXZyNeYicREGFHcJ5Zo9rOGkdTlLPucWmfp\n6iVQFIXT+885diGDAb79Nv0Z1AMCtDIy86RwJm97P109AHMfh80TUiazVZ+Ht/ZAh5mSzAohhBeQ\nhNZdrlyBn3+GJUvgyJH0yxYoAF27pn9D6e+vzYScO7dTw3SFouUL8/nOSTRsUZG5w79jXP1BRB45\n6ZK6mvEyPvilW8YXfzondmUWzhdNBHoLXzZYK5sdfc0b3OKixaWnVFSiCecjniKeeKfV6R9opFjF\nwpzaf9bxi3XqBD/8AHnzat2PFUXrYhwUBEWLwrp10LCh4/UI4Y1UFXbNhXktU64hW7gG9NkMnedB\n7pIeC08IIURKDiW0iqLkURRlg6IopxJ/psmuFEV5TFGUnYqiHFEU5aCiKF2THZuvKMo5RVH+TXw8\n5kg8XunyZWjbFsqUgd69taV26tSBxx6DnTutnzdnjnbDGGRhjGdQEDz+OHz+uevidqa9ewls0ZSx\nf07hdd/j7Nx9iTervsOZeq3hnIOtSakEkpP32UQguTCQclkAHT74EkA/5lIO6SrpKsHkJcHORC2P\nG7r+uls4t9nNCpvrKJuI4ADrnFp3uZqlOb3PSX9THTvC9euweDF88AGMGwcrV8LFi9C4sXPqEMLb\nmCNgaS9YOyypVdYQAK0nwWsbtWV3hBBCeBVHW2hHAhtVVS0HbEzcTi0K6KWqahWgDTBdUZTkgxeH\nqar6WOLjXwfj8S6XLkGNGrBhgzaBU3i49jCZ4MABaNkStmyxfK6fn9YKsmCBNkmLv7/2aNhQW3t2\n9Wqta6C327EDmjaFvXtRok08Zz7Mp+pWzKqet3YHsiK0I+qZM06tshSPMYOTdGYMeSiMD34Ekosn\neJVP2EcTeji1PpGSHwHUoQOKjY8XI0G05x03ReU+R9iCD742y0UTzj84d5byUlVLcOvKHcLu2LHs\njj30enj6aRg7FsaMgRYtvK9bqBDOEvYffNsGjq1K2lewKvT7Cxr0lwmfhBDCSzk6KVRHoFni8wXA\nFmBE8gKqqp5M9vw/RVFuAPnBzulos7LeveHuXW2sqyVRUfDcc3DtGvhY+KfQ67Uxsl4+TjY1ExHs\nZgV3E67gv3IStXNGkSfZ/ECh3OYr/mCqWptZpgrsrTuQIccXkSt/TqfFkJP8dOZdOvOuw9cyY2IP\nK7nFRfwIpBZPkZ8STogy+3qOsexjtdWJoRR0BJKbBnRxc2SuF0u0XesnA5iJdGrdJasUBeDisSuE\nNvK+dXWF8FrXDsHiLhD+X9K+On2g1QQwGK2fJ4QQwuMcbaENUVX1auLza0BIeoUVRakL+ALJm+Qm\nJnZF/kxRlPQHP2Ylly7BX39ZT2YfiImBVavSL5NFJJDAYkbxGgX4mjf4gXdZMDaMAWdhyjKISrbK\nSG7MTGA7b6r/sveugddDB7F3wwHPBW+BispyJvMaBZhNX37gXb5jGO9QkfG0JsyO2ZQfVcUJZRgr\n8CMQX1KOBTcSRF6KMp5t+JL9bhRDKAN2JLQGjBShklPrLlGlGAAXj1526nVF9qMoShtFUU4oinJa\nURRLvaselOusKIqqKEptd8bnVlf2wfz2Scmszgc6fAHtp0oyK4QQWYDNhFZRlD8URTls4dExeTlV\nm7rW6l2coiiFgO+AV1RVTUjcPQqoCNQB8pCqdTfV+X0VRdmjKMqemzdv2n5lnrZtm31dgsPDta7F\nWZyKypf0Zi2fE4OJaCKI18UTEwixRtjXDsbsAHOy3EYBnuE0M407CfZRGdl6ArPe+R9mk9ljryO5\nhQxlOROIJoJowoknjhhMxBLNUTYzirp2r3v7KKrOk8ziHJ15j8JUIA+FKUsd+jKbzzmZbVu5y1GP\nIPLZUVKlBb2dWneB4vkwBvhxQRJakQ5FUfTALKAtUBl4QVGUyhbKBQPvALvcFFmaPXHxCRbKOdHl\nPbCwE0Tf17b9ckCPn6Hmi66tVwghhNPYTGhVVW2pqmqohcdK4HpiovogYb1h6RqKouQAVgPvqqr6\nd7JrX1U1ZuBbsD5Tj6qqc1VVra2qau38+fNn7FV6QmysfUvvgNZKm8WdZCd/85PVLqZxRrheGtYO\nSHusDPeZNbIOnd5qy4qZa3mj1ghO7HHuuNqMusRR1vOV9ddDLHf4j+VMcnNkWUtO8vMso5jBceZw\nhcn8QxN6YLAxE3VWpqDwCtPTtEwn50cALXiVPBR2at06nY5ilYpw4ZgktCJddYHTqqqeVVU1BvgR\nbQhRauOBj4FodwaXnDnOhQnt1QPw3TNgTkxm/XPDy79Bmeauq1MIIYTTOdrleBXwUuLzl4CVqQso\niuIL/AIsVFX151THHiTDCtAJOOxgPN4jNNS+hDYgAGrVcn08LraKqcRgSrdMTAD8NhgSUn8Jr9fj\nV6Ma/Wf05qN1YzCFm3i7wWjmj/2R2JhY1wWdjtV8Rhzp1x2HmQ3MJtbGbLbi0VOXTrzGlxgwpkhs\n9fhgwJ9GvMAruGaW8mIVCnP5xH+2C4pHWRHgUrLty4n7HlIUpSZQTFXV1e4MLDWXJbR3z8Pi58Ec\npm0H5IWXfoVC1V1TnxBCCJdxNKH9CHhSUZRTQMvEbRRFqa0oyrzEMl2ApsDLFpbnWawoyiHgEJAP\nmOBgPN6jZk0oYseSJAkJ8GLW79p0gh12TYQTlQvC86bamTcvNGoEQK0nqzP34Ke06N6YxROW0b/O\nSE7tc8K6mhl0lD9JIM5mORWVm5x3fUAiy2nOy8zhMs/zPhVpTDnq0ZLXmcJ+3mAeelwzY2rR8oW5\ncfGW13TdF1mPoig6YBowxI6yLh0OFGm2/TmcYVF3YNFzEHFd2zbm1JLZglWdX5cQQgiXc2iWY1VV\nbwNPWNi/B3gt8fkiYJGV81s4Ur9XUxSYPRueekqbzdiSgAB47z3I6bzZfZ3u4kX46ivYswd8fbUl\nPHr2tLw+rj1S57wBAdr1ky0FEpw7iBEL3qLpcw2Y/vocBtQbxQsjn6H7mM74+mWBpYqESBRMXjox\ngk7WpwdwuqLlC6OqKv+duU6p0OJuq1dkKVeAYsm2iybueyAYCAW2aB2oKAisUhSlQ+L/7w+pqjoX\nmAtQu3ZtO8fZ2O++KTZFoA6Lj9PWmb19StvW+0K3HyCkijNrEUII4UaOttCK9DRvDj//DDlypEwA\nAwLAaNTWdRzhvhvdDElIgHfegQoVYNo0+OMPWLMGhg6FkBD45ZcUxctSB0sTeqRmjIDg22i/j6Ag\nbU3dtm0tlm3wdG2+PjxNa62duIx+NYZxaNsxJ7w42yrQEJ2dLWj5kKRBeI+i5QsBcPnkVRslxSNs\nN1BOUZRSicOCuqENIQJAVdX7qqrmU1W1pKqqJYG/gTTJrDuEmZw87GTTh3B+W+KGAs/OhZKNnFuH\nEEIIt5KE1tXatoUbN7TW2l69oFs3GD8erlyBUaNStEx6laFDYd48iI5OOWlVZKTW4tyjh5bkJnqa\nofgRkO4lDbE+tNtcDV3PF2HWLLh5E555Jt1zcuQJZsSCt5i0ZjSx0TEMfnwsn/WdTfjdCIdeni3t\nGYiPjYmLfPClBa9my6VnRNZVsFQBAK6dszhHnxCoqhoHDADWAceApaqqHlEU5UNFUTp4LDAL/x/e\nd2ZCe3QlbJ+RtN1sJFRJ//8gIYQQ3s+hLsfCTn5+WgLYo4enI7HPtWtaN+DodCa2NJngrbfgmNZi\nWpmmPEYb9rOWGAszA/vgS15Dcdp3+Qu6BKc5bkudNjWYe2ga332wlGXTV7Pz1z30m/Yyzbs1QnHB\nlwIlqU5TerKNRRZnOtbjQzD56MwYp9cthCOCcwcRmDOAa+euezoU4cVUVV0DrEm1b6yVss3cEROG\ntDODh0U7KaG9dwlWJptmv1wraDrcOdcWQgjhUdJCK9L65hv7yl26BPv3A9pSJYP4kea8jAHjw9Za\nH3wxYKQiTZjE3/iT8WT2Af9AI32n9GLWPx9RoHg+JveYwai2E7ly2jVdK/vwFW15C1/88SMQAD0G\nfPGnDHX4iN3ksGu9USHcq2CpAly/kAXW6xYiudwl0+wKMzlhUqiEBFjxRtKMxrlKaF2NdXILJIQQ\n2YG00Iq0Dh5Mv3X2AZ0OTp6EGjUArdXyNWbRlQ/ZyU/c4QoB5KQuz1CQMk4Lr2yNUszYMZFfv1rP\nt+/+QJ+qQ+g6vCPdRnbCz99565vq0NGDj+jEKP7mJ25yASNB1KYDRanktHqEcLaCJfNz5dQ1T4ch\nhMOc0uV41+ykcbOKDjrP09acFUIIkS1IQivSMto5JlRRtJmPUwkmL63o5+SgUtLr9XQa0JbGz9Zj\nztCFLBr/M398t5V+016mYcc6Tu2GHEhOntAm7RYiS8hTKA8H/3TPBGpCuNI9k4PrfN86BX98kLTd\neBAUq+vYNYUQQngV6W8j0urQAYLt6BocEwNNmrg+nnTkK5yHd78fyNRNH2AMMvLBs1MY3W4il05c\nsX2yENlU3kK5Cb8TQUy0g8mAEB52O8KB97CqwurBEJ+4JnPBqvD4SOcEJoQQwmtIQivS6tjRYstr\nCgaDtiZtPu8YQ1q9WRVm75vCG5+9zLG/T9Gn6hDmDltIZJiVNYCFyMbyFMoFwJ1r9zwciRCOuRVh\nzvzJh5fBuT+154oOOn4JPjb+bxNCCJHlSEIr0vLxgRUrIDDQ8nGDAQoX1mZC9iJ6Hz3PvtOeb098\nzpO9Hufnab/xcvm3WTNvI/Hx8Z4OTwi3yVNQS2jvXr/v4UiEcMytzLbQRt+HdaOTtuv1g0LVnBOU\nEEIIryIJrbCscWPYtk3rUmw0Qs6c2sNohBdegH37IG9eT0dpUe4CORky7w1m7ppM4bIF+azvbN6s\nPYL9mw55OjQh3CIodxAAEfciPRyJEI65FZ7JFto/p0BE4tJVwYWg2SjnBSWEEMKryKRQwroaNeDP\nP+H8eTh+XGu5rVNHS2yzgAq1yzB923i2Lt3BvJGLGd7yQxp0qE3fT16kaPnCng5PCJcJyq31roi4\nKwmtyGoUQH24FW6OIzo2HqNBb/8l7l2EXXOStltNAGMO54UohBDCq0gLrbCtZElo0wZatswyyewD\niqLQrGsj/ndsOq9O6s6BzUd4LXQws975H2G3wz0dnhAuEZQrMaGVFlqRDdyOzGC3400TIT7xnCK1\nIWdIZkYAACAASURBVLSz84MSQgjhNSShFY8EX6Mv3UY+w/yTn9OmdwtWzfqdXmUHsOSTlZhNFrq0\nqSrs2AGvvAJPPgk9esCGDZCQ4P7ghciggGBt6S1TuMl6oYQEWL8eunfX3uO9e8POndp7XwgvcjMj\n3Y6vHoCDS5K2n/xQW2JOCCFEtiVdjsUjJXdILgbO7kunt9oyb+Qi5o1cxMpZa3lpXFdavtgUvV4P\nN29C27ZaN+uoqKQb/FWrICQE/vhDa7UWwkvpDdpHe1yslcnQzp3Tktjr1yEiQtunKLB0KVSsCGvX\nQv78bopWiGQUJc2XKtfum6BYLvvO3zyJh12Wy7eFko2cG58QQgivIy204pFUskoxJvw6iqmbPiBP\nwVxM7f0lb9Qczj8rd6E2bgIHD0JkZMobq4gILRFo0ABu3/Zc8ELY4JM43jA+zkJCe/u29h4+dy4p\nmQXtvR4Zqb33mzSB6Gg3RStE+i7fTaenQXJXD8DJ3xM3FGj5vstiEkII4T0koRWPtOrNqjDz78mM\n+XEQ5igz7z4zleFnCnMiNsjyCQkJcPcuzJrl3kCFyACdToeiKJYT2s8/h/v3rXefj42Fy5dhyRLL\nx4VwqbTdg6/cszOh/XNq0vPKHaFAJSfFJIQQwptJQiseeYqi8HiXhsw78hn9C17jfHwgA5QnGEd9\nLhCc9gSzWUsKhPBSqqpqPTcT1NQH4IsvbLe+RkbC1KnplxHCFSyMd7WrhfbGMTi2Kmm76TAnBiWE\nEMKbyRhaIRIZfA10ur+PVsSwTC3HT5RnB0VoyQV6cZQQopIK37unJQVGo+cCFsKKuNg4EhJUfP19\nUx4wmbTWWXucO+f8wITIhCv2JLTbpiU9r9AOCoa6LiAhhBBeRRJaIZIzGAggihc5xtOc4Ucqsooy\nbKYY7TlLd46TGzMJCfG85lMIFT2VaEIHhlKBhigWussJ4W4xJm3JEr/UCa3BYP9M3T7y34PwDja7\nHN+/AkeWJ203HeragIQQQngV6XIsRHItW4JO+7PIRQz9OMh8fudJLrCKMvSiLfOpzKEaBsJ97hHB\nbfawkgm0YjZ9SMA5y/rc5SobmMsqprKdHzEnbx0WwoboqHQS2lq1bF9Ap4PWrV0QmRC2pP1S8L4p\nlrDoWOun7J4HCXHa8xKNoYgd73EhhBDZhiS0wvUSErLO2pbDhqXpRlwAE4PYxzespy5XWaxUZuTJ\ntkRPqogaoUdFxUwU2/mBZUxwqPpI7jOFZ+lPKRYwiO8ZzWz68ioFWMo4VLzn95hAglfFI5I8WH/W\nP9g/7cGRIyEwMP0LGI0wZIgLIhMic87ejLR8ICYK9s5P2q7/hlviEUII4T0koRWucesWfPghFCgA\nej34+motPps3ezqy9NWrB2+/DQEBaQ4VJYJhAbt4rc0f8PhtoseEEla6HdGflkON0mMmilVMIYbM\nLXcSTSRjaMA+1hCLGTNRxBNLNOGYiWQVU5hLP0dfoUPuco3veZdXyEtX9LyAHx/xNMfZ7tG4REp3\nrt0DIE9BC2t3PvssdOxoPakNCICBA6FuXRdGKIQVFiaFAjh1Pdxy+UNLwXRHe56rBFRo66LAhBBC\neCtJaLOb69dh2jTo3x9GjYLdu90fw8mTUKkSTJ4MN29q++LiYP16eOoprYXIm02eDDNnQtGiEBQE\nOXMSG+xHWD5Y8iEs++0eQb9tJ2jHJvQ17hE9rDphZdtg/qIMmHXsZ02mql3NdG5wnjjMFo+bieRP\nFnEaD/ybAhc4yCAq8yufEoF2AxlPLHtZzXhasZxJHokrXaoK27bBiBHa38TMmXDnjqejcrm7iQlt\nbksJraLAd9/B++9DvnwQHAw5c2rv9aJFtVmQJ050c8RCpO/0jYi0O1UV/p6dtF3vddDp3ReUEEII\nryCzfmQXcXEwYAAsWKBtR0dr4+A+/xzKlIFff4USJVwfR2wstGgBt29b7mYcFaXdMFevDi+84Pp4\nMqt3b3jlFdizB65fZ22eb1lcbzkJye6VfOrfIWjdNuL+zIdpbBVMb9fAPDWKbWP3U+vFDvgY7P/z\nSiCB1UwnhvQnP4klml/5lEH8mNlXlilmohjHE0Ry18JRlRiiWM5EilOV2jzt1tisOnoUOnSAa9e0\n952qaq2Pw4drLZATJz4cL53dpNtCC9rrHjYMBg+GXbu0tZVDQrTxtVZayIRwD8vvP4sJ7YUdcPOY\n9tw3CGr0dGFcQgghvFX2vJt71Kgq9OyptbpERyetMZmQoN3IHz0KdepoN/autnIlhIWlP2Y2MhLG\njvX+cbWKov3ennoKU8NQreu0BT5NbxG0eSuBv29DHxLDuteO07vSQNbN30x8XLxdVd3nOtFYuGFL\nRSWB4/yVoZfhDNv50WZXajNRLOUD9wRky9mz0LCh9jMyMum9FhWl/X18/rmW1GZT1y/cxNdoIDhP\nUPoF9Xrt99S+PdSuLcms8Dwr78ETlroc7/8u6XnV58GY00VBCSGE8GaS0GYHu3drLbBRVmbCjY/X\n1k2d4NiERXb5+msItzLWKbn//tO6JmcRDemCD75WjysKGFpdJ+fffzF61QCCcgUwtfeX9K70DusX\nbLGZ2KqoGVjyx/1fBGxgLmY7Eu7LHOUuV90QkQ3Dh2vvQ2tfmkRFae/VM2fcG5ebXDx+haIVCqPL\npi3Q4tHhq9few5fvmrgbGZN0IPo+HFmRtF2zl5sjE0II4S3kbic7+OyzpFZZa2JjYf582+UcdeOG\nfeUMBq1bchZRjCqUogZ6DFbLGPCnifICzZ96nFm7P2bciuEE5AhgyiuzeLXKIDYu3kZ8vOXENich\nGPCzGYeCQhnqZPp1ZFY4t+wq54OBcDz873r7NqxebXu91fh4bUxtNnTp2GWKVyrq6TCEcFj9gkmf\nmf9evpd04PAyiEscohESCoVruDkyIYQQ3kIS2uxg927bN++gNSNevOjaWAoVsq9cbKw2A3IWMowV\n5KUoBoxpjvkSQCmq8yqzAFAUhYYd6vDlno/5YPkw/AJ8+ejFz3m9+lC2Lt2RJrHVo6cNAyxeO3U9\nHRjmvBdlp5zY928VRwzB5HNxNDacOAF+tr8cIDYW/v7b9fG4WXSUmesXblG8YhFPhyJEJqTsqVIv\n2UfPgUvJEtp9ybob13hRussLIcQjTBLa7MDK2M40VNX+spn1+uvarKm2lCgBZcu6NhZnUVXYvJmc\nnfows5KBWTVz0+WTAHLdNqDHh/yUpBdT+ICt+JFy3U9FUWjUqS5f7f2EMUsGo6oqE7p9Rt9qQ9j0\nw18pEtunGUIuClptBfYlgJq0pwINXfpyLWnFGxixMR4TKMlj5KagGyJKh15v//jsbNgl98y/51FV\nldLV3DAJnBAuVqFg0ufOw4T2+hH4b5/2XO8L1bp4IDIhhBDeIvvdzT2KWrTQuvDa4uvr+pmO27eH\nPHnSTxQCAmD8eNfG4SxhYdC4MTz9NKxcie74SXLvv8pzH6jMLebDghULmMVZWvMmhnTG2Op0Oh5/\nvgFzD37K6O8HotPpmNxjBn1CB/PHoj+Jj4snkFxMZhcVaIAB/4eJrS8BGDDSnFd4h8UZGGvrPA14\nHj8CsTYDKWhxduVD9wVlTZUq2qzfthiN0KaN6+NxsyPbjwNQuUF5D0ciRCakammtEJKU0O67eI/4\nBDVl62zFpyAgj7uiE0II4YUkoc0OBg4EHxtLxBiN2rI+tso5yscHtmzRlgDxT9laiaJoyeyoUdC5\ns2vjcAZV1RL0vXu1mXKTUUwmFJMJvx59UHbstPuSer2e5t0aMefAVN5bOhgfXx8+7jWTPlUHs+mH\nvwiKz8s4tjKVf+nGeDoxkl5MZQ6XeY0v0HtopS1fjIxjC8HkxTd1KzQ6fAmgO5OoTiuPxJdCUJA2\n67c9X/L07ev6eNzsyI4TFC5bkNwhVpbsESILKZrLSIFgbQjBfVMsRy7egIPJli2r+aKHIhNCCOEt\nJKHNDipUgKFDtWTREj8/KFUKRoxwTzwlS8KxY9o6n8WLa4lFYCA8+yxs2gRjxrgnDkft2AH794PZ\nbL1MVJQ2o24G6XQ6mj7XgNn7pzD256H4+PowuccM+lYbwuYftxMSX4ZOjKAHk2nNGwST14EX4hxF\nqMgMTvA875OHIugxYCSIRnRjAn/Rnnc8HWKSyZO18dzWktqAAJgyBQp6uHu0k6mqytEdJ6jSqIKn\nQxEik5Q0W43LJo3Lv7prGZgS18POWRxKNXNfaEIIIbySJLTZxYcfwiefQK5c2hhWf3+tpcrPDzp2\n1Ca/CQx0Xzw5c8KgQXDhAsTEQEQE/Pwz1KvnvhgcNXOm9aWQktu7Fy5fzlQVOp2OJs/WY/b+KYxZ\nMhhFUZjUfTqvVRnE+gVbiIu1o+usGwWTh06MYA6X+ZEYviOcd1hMKbxshtE8eWDPHnjySa13QlCQ\n9jcRHKxNRjZnjtZjIZs58+957t0Mo1rTKp4ORQgnUWlSPimhLXjmp6RDNXpky3HwQgghMsYz/ReF\na/Tvr3Wh3LBBm804MFAbI5g/v6cjy5pOnrRvciE/P+33XTTzy6Q8GGPbpHM9tv/yD4snLmPKK7P4\nbtxSuo18hlYvN8Pga0cXWpEkf35t+Z4rV+CPP8BkgjJltDHnrp4czUN2rtqDoijUa1/T06EI4Rxq\nAo0SW2iLcJOq5v2JjbgKPNbDo6EJIYTwDpLQZjcGA7Rr5+kosgd7ZmsGbckkJ7V+63Q6mnSuT+Nn\n67Fr9T4WT/iZ6f3m8sPkX+g++llavdwMH4P82WZIkSLw0kuejsLlVFVly9LthDapSO4COT0djhCZ\nk3r5HVWlQLCROiVz0/DSMnRK4peMZZpDrmLuj08IIYTXkb46QljTvbt9iaqfH4SGOrVqRVGo/1Qt\nPt85iYmrR5M7JCefvT6HVyq8zW9zNhBjjnVqfSLrO3vwAhePXaF5t8aeDkUIB6RKaMOuAPB01RC6\n+GxJ2l9DJoMSQgihkYRWCGt62DE+KyAAhgxxWRdWRVGo27bGw8Q2V4GczHhjLr3K9Ofnab9iiox2\nSb0i61k9ZwMGPwNNn6vv6VCEcJ41wwDoEHycIsptAG6rwVwo0MyDQQkhhPAmktAKYU1QEKxcqSWt\nqbvBgba/cWNthmkXS57Yfrz+PYqWL8ycoQvpWfJNvp+0nMgwOyavEtlWxL1INizcSosXGpMzXw5P\nhyOE8yS20OY69sPDXcvim7Lwn2ueikgIIYSXkYRWiPQ0b64t39Ounda1OEcOrRtyoUIwfrw26ZCr\n1/ZNRlEUarasxtRNHzD9rwlUqFuWb8f8wIul3mTR+J+JuBdp+yIi21n37Waio8x0equtp0MRwkEW\nJuK7fwVOrH24uSS+GUv3XCLC7F2zwAshhPAMSWiFsKV6dfjtN2223D//TFqmZ/BgtyazqVVpWIFJ\nq0fzxT8fEdqkEgveX0LPUm8yf+yP3L8V5rG4hHvFx8ezctbvhDauSNkapTwdjhCOsTSz/N9fQoKW\nvB7QVeGMWoTw6Djmbz/n5uCEEEJ4I4cSWkVR8iiKskFRlFOJP3NbKRevKMq/iY9VyfaXUhRll6Io\npxVFWaIoiq8j8QjhUnnzaslthQpetfZhhdpl+HDFCL7a+wmPtQhl8YRl9Cz5Jl8O/Jabl297Ojzh\nYpsW/8XVs9fpPOgpT4cihBNYSGj/mfvwaVjNNx4+n/PnWe5FxbgjKCGEEF7M0bvykcBGVVXLARsT\nty0xqar6WOKjQ7L9HwOfqapaFrgLvOpgPEI8ssrWKMUHy4Yx7/A0mjxXn5WzfqdXmf5M6zObS2eu\nsIdfmUAbBlKZ0dRnA3MwEeHpsIUD4mLjWDhuKWVrlKJRp7qeDkcIx1lqoY1PTFoLVKZBmxconU+b\nfT48Oo7pf5xyY3BCCCG8kaMJbUdgQeLzBUAne09UFEUBWgA/Z+Z8IYRlJSoXY/j8ASw4NZO2r7Xk\nj0Vb6V3hHcb1msy+Yzu4wjFOsYsFDKEfRTnBTk+H7FWucYZdLOcfVnCH/zwdTrp+m72Ba+du8PKH\nXVEsTVyW2p078OuvsGwZHDrk+gCFyDALCe0DrSfh4+PDkFYVHu5asPM8+y7edX1YQgghvJajCW2I\nqqpXE59fA0KslDMqirJHUZS/FUV5kLTmBe6pqvpgVofLQBEH4xFCJCpYsgBvzHqR4mf3Yxx4mujl\nIYSHtiKyS33i9ubCTCRR3GcCrbjKaU+H63HnOcC7NGIwocziFb7gJQZQhom05QbnPR1eGndv3GfB\n+0uo2bIqddvVTL/wnTvauspFikDPntC7N9Svr62fvHmzewIWwh5qguX9zd+FMs0BaFe1II+Xz68V\nV2HI0gOER8va3EII8aiymdAqivKHoiiHLTw6Ji+nqqqK9a9WS6iqWhvoDkxXFKVMRgNVFKVvYlK8\n5+bNmxk9XYhH0t8sI7LQFYxTD5Dj/Br8Rh4ndn0IEXVaEvFkE2L/KIBZNfELkzwdqkedZjfv0YiT\n7CCWaEyEYSKMWKI5yAZGUIvreM8ENKqq8vmbX2OOMvPm9FfSb529cwdq1dJaZaOjISxMe0RFwZEj\n0L49rFpl/Xwh3Cl1QtvjZ3hjJzw+/OEuRVGY+EwoAb7a+t/nbkUy7KeDqJa6KwshhMj2bCa0qqq2\nVFU11MJjJXBdUZRCAIk/b1i5xpXEn2eBLUAN4DaQS1GUB9PEFgWupBPHXFVVa6uqWjt//vwZeIlC\nPLpW8xnRieNkdfli8J94hJwXV2P8+CDxR3MQ2aopYXWasfGnLUTHmzwcrWtc5xzrmc1qprObVcSR\nsiVHRWUqzxKN5SWPEognknt8Tk+nxhXJfbbyHb/xGVtZSCT37D5384/b+Wv5LnqN60qJysXSLzxo\nEPz3H8RYmTzHZNJabyNlySfhBVInpeWehJDKaYoVzR3AR52rPdz+/cg1Jqw+JkmtEEI8ghztcrwK\neCnx+UvAytQFFEXJrSiKX+LzfEAj4Ghii+5m4Ln0zhdCZN5NLqbZp+SIwzjsJDnOrsV/7h7UcB/C\nutaib5Uh/P7tZmJjskfXvbtcZRwtGERlFjCYRYzgc3ryGgX4g68fljvMJpvJpEoC59jHVRyfgCaW\nGL7mTfpQkHm8ySJGMo/+9KEQX/MmsaQ/a+vtq3f5YsA8KtUvx/NDn06/svv3YelS68lsct9/n4FX\nIYSr2J+QdqhemJcblny4/c1f5/h0/UlJaoUQ4hHjaEL7EfCkoiingJaJ2yiKUltRlHmJZSoBexRF\nOYCWwH6kqurRxGMjgMGKopxGG1P7jYPxCCGS8cVo9Zjil4Dfa+cJPrqOoKX/4B9o5NNXv+Slcm/x\n87RfiQyLcmOkznWfm4ygFkfZRizRxGAijhiiCSeSe8xnIKuYCsBBNjxsxU6PDh1H2OJQXPHE8zEd\n2MJ8YokmmgjiiSGaCGKJZgvz+ZiniSfe8vnx8Uzr8xVmUwzDvu2PXq9Pv8Ldu8HXjtXQIiOl27Hw\nDhlMRse0r0Tb0IIPt7/YfJoRyw4SG29lLK4QQohsx6GEVlXV26qqPqGqarnErsl3EvfvUVX1tcTn\nO1RVraqqavXEn98kO/+sqqp1VVUtq6rq86qqmh17OUKI5BrQBR/ST2gUPZR5Ljez93zKpDWjKViq\nAHOGLqR78X7MGbqQG5duuSla51nMSMK4RQJxFo+bieJH3uMO/9lsEX1ARSXOzrLW/MMvnOAvYrDc\nvTsGE8fZzi6WWTz+9bDv+GfNfl6f+hLFKtgxh15sLNgz+zGAWT5+hTfIWELro9cxo1sNmldIGoq0\ndM9lus39m0t3su6XckIIIeznaAutEMKLtWUAOtJvxfMjkGcZjaIo1GlTg2lbPuSLXZOp264my2es\n5sXS/ZnUYzqn93vPpEjpMRHOdn4gHltdp1XWM5sSVMWPQJvX1aGnKGnH8mXECj62Olb3ATORrOST\ntOfOXMuy6avp9FZbOrzZOv2KYmO1cbMFCmgTQdni66tNHCWEx9n5BUwyvj465vaqzXO1ij7ct/fC\nXdrN2MYP/1wkIUG6IAshRHYmCa0Q2Vh+StCXOfjib/G4HwE05gUa8HyK/RXqlOXd7wey8PQXPPN2\nO/7+dS9v1BrOiNbj2bvhgFePUbvEEZut0gCxmDnEHzSgC/a0CvmTg8o87lBsF/jXrnLnOZBie8eq\n3Xw16FsadapDv2kvWTkLLYl96y3InRvKloWGDe0LTKeDfv3sKyuEK+Urn6nTDHodU56rxog2FdHr\ntKQ43BzHqOWHeObL7fxz7o4zoxRCCOFFJKEVIpt7nBcZzVoq0AgDfviTA18CKEApXuULXmcuipVW\nkZAS+en36Ut8f3E2r07uwflDFxnZegL9ag5j7TcbMZtc3001gQT2s5YZ9GAibZlH/zQJX3Iq9o+d\nU0nASCDdmYwvAVbL+RJAH75C5+BHpmp3d0r1YdnD248zufsMytUqzchF71gfN3v8OFStCnPmaGNi\nTSZtMihbXYkDAuDVV6FECftfiBCuYm8XeYunKrzRrAw/9WtA8TxJf88HLt+ny5yddJ2zk79O3fLq\nL+SEEEJknJIVP9hr166t7tmzx9NhCJHl3OUq97iGPzkIobTVRNaaGHMsGxf9yfIZqzl/+BLBeYJo\n++oTdHizNSElnL+c1hWOM4HWRHAnafkh9PjgSwUaMoxf8Cc4xTkR3KUvhYkl/a62PvjShrd4KXFy\nqFVM5UfeQ0F5OMb1QVfkN5hHI7o5/HoGEcpljtgsV5TKfMYRdq3ey/gu08hfLC/Ttn5I7pBclk+I\nj4dSpeDy5fQn1fH1TZrx2M9P+9m3L0yfrrXSPsIURdmbuF66yCSn/N88qx7cPJ60/cH9TF3GFBPP\nV1tOM/vPs8TEpfySq3S+QLrVLcazNYuSL8jPkWiFEEK4kL3/N0tCK4TIMFVVObj1KCu+WMuOFf8A\n0KBjHToNaEv1ZlVQHGhleeAO/zGEqkRy12LLpgE/SvIY49mOPtU44c/oxk5+Sre11oCR6RyjACUf\n7gvnDluYz0l2oKCnGi1pTHeMdoyxtcdWFvI1b2JOZxytH4H04UvMC4rz6WtfUeaxkkxcPZrcBXJa\nv/Dq1fDCCxAenn4AAQHQoYPWavvYY1rLbBE7Jpd6BEhC6zhvSmgfuHQnipmbTrF83xXiUo2l1SlQ\nt1Qe2lUtROsqBQnJYX1WeCGEEO4nCa0Q3iIhATZuhM8/h7NnISgIevaEl16CHDncH4+qwq5dWqvc\n4cNaS90zz2gtdQUKZPhyNy7e5Nev1rNm3kbCbodTMrQYnQa0pUWPJvgHZuAG8dQp7Xf0558AHGmq\n8vXbx7hSzvJMxQBGghjIj9SifYr9N7nIMB4jivsWk1o/AmnNm7xoYfIlV4olhvdozEUOWWxBNmCk\nmBpK9Skj+Xbkj9RsWZX3lw0jINjyGOiHunWDJUtsB5Ajh7Y8z+OOjQXOjiShdZw3JrQPXLoTxbxt\nZ1m+7wrhZsufKeVDgmhUNh+Ny+ajbqk8BBsNTqlbCCFE5khCK4Q3uHMHnnwSTp6EiGRrnQYGal08\nV6yAFi3cF4/JBJ07a0mjyaQl2wBGozZ2be5cLdnOBLPJzOYftrPii7Wc+fc8QbkCafliU9r1aUmp\n0OLWT1RVGDECvvgC4uK0GXqBWAMk+MDat2DxR1id/LQKzfiAzWn2X+UUn9CJm1wgBhMqCfgRiEoC\nnRjBc4zNcJdrZzARwRf0Yj9rUIE4zPjgi4JCaHhbdO80Y+P8v2jWrRHD5/fH4GvHTXWrVrBhg+1y\nOXPCd9/B0087/DqyG0loHeeU/5u/qAu3TiRtOymhfSAqJo7fDl7lpz2X2HPhrtUe+ooCZfMHUb1Y\nLqoXy0WNYrkoFxKEn4+NtZ+FEEI4jSS0QnhafLy2FMqxY0njFlMLCICdO6FaNffE1KkTrF+vJbOW\n+PvDL79AaxvLwqRDVVWObD/Oyi/XsX35LmJj4qhYtyxteregWbdGBOZINfnSpEnaI9JyN9zoAFg2\nBlaMslxfTkKYxzWr8ZxmN/tZg5koClGOhnRNM+7WE25ykb/5ibtcIxch5N9Vj9k9l3Dt3A26v9uZ\nF99/Hp2941r79YN587T3XHqCgmDrVqhZ0/EXkM1IQuu4rJDQJncjLJp1R66x9vA1dp+/Q2x8+vdD\nep1CybwBVCgYTLkCwYk/gyiWJwCjQRJdIYRwNklohfC0NWuga9eULbOpKYrWWrZypevjOXIE6tSx\nnsw+EBoKhw45pcr7t8LYuGgba7/ZyPkjlzAG+NHk+fq0eaUFVZtUQjGZIH9+iIpK9zrRgfDqDYix\nMBFxXooym0uZDzIuTvv9f/qp1pJuMEDbtjB4sPa7cLG42DiWfLySheOWkq9IHkZ+9zZVm1TK2EX2\n7YMmTWz+HilZUuv27oQxztmNJLSOy2oJbXJRMXHsPn+XHadvsf3MLY5dDSfezvVrFQUK5jBSPE8A\nxfMEUCJvAMXzBlIstz+Fc/mTL8jv4VJCQggh7Gfv/80+7ghGiEfSjBnpJ7Ogdbddtw7u3YNcVmaw\ndZbZsx92503X2bNw9ChUrsw9rrOP1ZgIIw9FqMlT+FlZ09aSnPly8OzA9jzzTjuO/3Oa37/ZyJYl\nO9iwYCuFyxak1WO5eJIACpB+IqYqUPcX+KtHyv16fP7f3p2HyVWV+x7/vl3V1WOmTmJISEiIJEAA\nhRhREQyEgJHjYVCUwEVQOXBUOKI8XAXhcLkc4CKXK8d7RBQEAQdAUR6iwkHGg1xIIChTEjKQIJnI\n3AmdnmpY94+1K727UtVVne6uofv3eZ56atfaa1e9vXpX7Xprrb02MzPOn+2V5mY/5Hvlyu7/q/vu\ngwcegH/9V7gyR9dwP1j64nL+/Wt3sOaNdznh7E/yzdsupHHkPkxANXMmHH207+3PdZme+nq46SYl\nsyJZ1MeizJ4+ltnT/WztrZ0JlmzYxavvNvPq2mZeX9/M2u3Zfwx0DjbubGfjznYWZbnebaTKSu9f\nwQAAHsRJREFUGDeshv1G1DJ+RF1wX8t+I2oZ21jDmGE1jGmoYXhdtF8m1BMRGWqU0IoMlLffLqxe\nLAYbNgx8QvvWW743Mp/qajrWLOG2GdeymD9QRYQkCaLEAMepfIczubpX55+aGYd+bBqHfmwaX7v1\nyzz/+0U8/vNnuOehJdzLbA5nK8ezluNYzyj2TshqWuEDa/Z+3gjV/APfKjiOvfzjP/qe68wh4cmk\n78m+/np/fdZzztn318hi28Yd3HP1/Tx+z7OM2b+J//nwdzjmtI/27UkfeQROPNH/n8PJeTTqe52v\nvdaPGBCRvOpjUT46pYmPTmnaU7a7I8GqzS2s2PQ+Kza9z/JNLaze0sKG5jZ66sxNphwbdrazYWc7\n0JyzXnXEGN1Qw5hhMX/fWMOYxhhjGmsY3RijqSHGyPoYI+uqGVUfY1htlCr1/IqIKKEVGTD1WcbH\nZpNIFF63L4YVdt6ocynuavgui9lAPJRcJoLlR7iJZjZyIT/epzDqGmo56UuzOelLs9l41Y08efP9\nPJuYwH/YTG5zR3EYWzmO9RzLesYG14NNVkNHRsdljHq+yLXszyH7FAeLF/uhurnObwY/hPd73/OX\nxOmHnpNNf9/Cgzc/wn/e/TQuleLz3/4sX/ofX8g/i3Ehhg+HhQv9UPdbboHly30i+9nPwqWXwiH7\n2E4iRVW+p0E11ET3TBIV1plIsaG5jb9vb+Xdbbv5+7ZW/r69lfU72ti0q51tu3v4jAmJJx3v7Wrn\nvV09X0M7zQxGBMntiLpqRtbvvTyyvprhddUMr40yrLaaYcF9Qyyi3mARGTSU0IoMlPnzYdWq/Oes\njhvnewEH2llnwZNP5r1WaSLVwaKPb+yWzIZ10Mqz3MscvsoH6dsph+PP+zxfuvV6zk28yTtuOH9h\nIn9hf35sR/JjjmS6284n2MgsNrDklAT1REiRopHRnMtNfJL5+/7id94J7QV8cdy2zSe+H/nIPr/U\n26+9w+/+/Y88/avnMYOTzz+e+Vecwfip4/b5ObOKRHyvs2YxFimaWLSKKWMamDKmARi71/r2eJLN\nuzrYuLON93b5ocnv7Wxn4842trzfwbbdnWx9v4PdnXkmdcvgHDS3xmluLeBUkgxVBo01XUnu8D3J\nbvfEN12WXt9QE6Wxxt/XxyLURKuUGItIySmhFRkoF14IN9zQc52GBrjiiuKc13jGGXDxxT1WcXV1\nPP3P0FrbcxIep50/8AO+xa/7FtPBB8NRR2EvvcSBiV0cyFLOYynrXCPPsz8vMoH7bAb3dh7GqE83\nMm3eeGZ+5gjmzTmNhmF97NVes6brskU9iURg48ZeP31HWwfP/XYhf/zpn1n64gpq6mKc+o1P84XL\nT2XsxNH7ELDIEPDBObB1hV/er0izvw+w2uoIB4yu54DRPX9mtXUm2drSleBu293B1pZOtrb4++bW\nTna0dtLcGmdnazzn9XQLkXKwqz3BrvZ9fw6AaJVRH4vQWBOlPkh0G2KR7vc1URpiURpqwo8je5XX\nxyLUVUeIRgqc3V1EJKCEVmSgjB0L99/ve2qz9dLW18O8eT7xLYZYDP70J5g7118iJ3OG87o6kh86\nlF9fvyTvUzlSLOO5/onrt7+FWbNg69Y9k1ZNpIX5LGd+9Wq2jxrPou/8gIXPv83ffv0GL92xkjuj\njzDtI1M54thDOOyThzDjE9MZNa6X5yA3NeWvA76dRowoqGrzlp28/NirLHr0FV7+z1dp3dXGpIMn\n8PUffJm5532K4U2lv1yQSFmbczVsWgLtO+EL95Q6mqKqi0WY1FTPpKbCfqyLJ1PsbPM9tDvbfKK7\nozVOc2snO9viXclvW5z32xO8356+T9AW711vcC6JlOuXxDgsFqmitrqK+liUuiDJrYtFqI9FqK2O\n7El80+u6yqPUxaqoq47uqZ+tnnqVRQYfXbZHZKAtXOjPw3zhBaip8RMOjRzpZ8/9+teh0GuN9pdl\ny+Cqq+Cxx3ySm0r5uC69lO3fOZd/qTmMTvIMkwZGMYE7WN8/MW3eDNdcA7/4hZ/ECPy5xeedB9dd\n538cAOKdcZa+sIJXnniN1/5rKSsXv02803+RGjd5LAfNPJBpR03loKOmMPmwSXzggDG5r+VayGWV\nwP+vNm/256OGOOfYsnYrS15YwdIXlrPkxeWs+usanHM07TeSoz9zFHP+23EcecLh+vJUAXTZnr7T\nsblyxJMpWoLkdld7ZsIbzyjvWm7tTLC7I8nuzgS7OxJ5r91bjqqMINH1CXBttCvRra2OUFtdRU11\nJCjvKquNRqhJPw4vV0eoDbatqe56vvS2SqBF9p2uQysCsHatn0F4xAg/vLWUB5VNm2DdOmhshOnT\nS3/5lO3b4Z13fDJ78MEQjZIkwQWMZXcPM3F6xiw+y3dZ0L8xtbb6S+gATJuWd7Kszo44K19ZzdIX\nlrPir6tZ9dfVrFvRNTy4pi7GxIMnMHH6eD4waQwfOGAsYyeNZtS4EQwbUc+wk49n2IZ3iLjuQ48d\nEKeK9rph7LrwEradcTbbNu5g2/rtvPvWen9buo6W5t0A1NbXcPDRB/Hh2Yfxsc/O5KCjDsydSEtZ\nUkLbdzo2Dz2diRS7OxJBgtuV6O7uSLK7wyfALR3J4D5Ba0eSls4ErR3d67d0JGnrTNAaT+41eGgw\nSCfL4aQ5W2JcE60KbhFiwXL6vqY6Qk2kiprqKmJ77iMZj4N6oe1iESXUUrmU0MrQ9tRTvlf09dd9\nwhaPw5gxvmfywgtLn0yWsfu5mgXcsmdW42xqaOB7PMoMPlXEyAqze1cra17/O+8uW78n+dyw6j22\nrN1KZ3v2yVOqcERcikgww2oHEVyOfWTk2OEcMGMiBxyyP1MOP4AZn5jO1A9NJhKNDNjfJANPCW3f\n6dgsfeWcoyORoj2epLUzSVs8SVtw39rpk96u5e7rcm3jyxN7yiqxV7mvYtGqjGQ4sicJ7kp+IxmJ\ncc8Jc/pWHfHbp+9jGY+rI9atLFplSrClYIUem3UOrQw+P/+5n/wofd5qeibbd9+Fb3/bDwG+6y4l\ntTmcyuU8xy/YwQaS7H1eVIx6PszJHMpxJYguv4bh9Rx+7KEcfuyh3cqdczRv2cXmd7eyc8su3t/e\n4m9r3yP5l+dJ/PVVEkkHzlHbNJya44+j5piPMWzMcEZPaGL0+JGMntBE48iGHK8sUjnMbB7wQyAC\n/Mw5d1PG+q8BFwNJoAW4yDm3tOiBypBiZnt6K0cO0NXs4skUbfEk7Z1BwptI0hH3SXR7kEy3x31Z\nRyJJ+551oeXQOn/fvV74+ToTBUw+OMA6gzjez/07ddGYQXXEJ9jV6YQ3nQCHkuLuibLtVZaZTFdH\nLGeC3S25zpp0d5VFdG3niqQeWhlc1qyBww7r+VI5DQ0+oT3rrOLFVWGa2cQtfI41/I0EnaRIUk0t\n4JjNl7mA/yBKdd7nqSiJBOzY4c8rLnASKBk8hlIPrZlFgBXAScA64GXg7HDCambDnXO7guVTgW84\n5+b19Lw6NovsLZXq6nVO33dPjrsS43QS3ZFI0REkoV33yT2Pw8uZdTLLOpOlT6grSZX5Hu3qKp9w\nR6tsT+KbXq6O+PtoJP3Yl0Uj6QS6azlaZT5xr0pv07V9dcZyNOjN7nreYJsqn9R32z4UXyxSRdUg\nTcTVQytD0w9/6Cdd6snu3XDjjUpoezCScVzP/2MtS3mJ37ObZsYymWOYz4gs11kcFKLRPZNPiQxy\nRwOrnHOrAczsAeA0YE9Cm05mAw1A5f36LVIGqqrMz7QcK81pKamUozPZc9KbL1nOLO+I+0S5I54k\nnvTL8YSjI5kiHiTR8aTfPn3vyxzJVHl/lKQc/scGUvRw5lXZqQp6vjOT5HRy3T1Btm5DwDMT7liw\nTTRInKOh7dIJdbSqewIerQq9VpUxZlgN08cV78oOSmhlcPn976GzM3+9ZcugudnPYCs5TWIGk5hR\n6jBEpH/tD6wNPV4HfCyzkpldDFwGxIA52Z7IzC4CLgI44IAD+j1QEembqiqjtsoP4y4HyZQjHiTY\n8YzE15e5LIlwZnLcVSdcL1wnnnRZyrpeN52Ed9s+marYSclSjj0/PpSDuYeO42fnF2/QkxJaGVzS\n58vmE436YclKaEVEsnLO3QbcZmbnAFcD52epcwdwB/ghx8WNUEQqTaTKiJRRgh3mnO9BTvcmx5Mp\nEsF9PFSWXk4ESfCeOilHPJEikfJJdyLLdokg0e563uB1Uik6E13L8YQjnup5m/C6clMdKe4QaCW0\nMrhMngxbthRWd/TogY1FRKQ8rQcmhR5PDMpyeQC4fUAjEhEpMTPzw2cjlXXZvXQiHk8GSXAiRSLl\ne7ETqa5e6PRyOCGPZyTvnaFEOZ7y94kgWU9kJvrp9amu50u/RjGHG4MSWhlsLrsMLroIWlpy14lE\n4Jxz/OQ/IiJDz8vANDM7EJ/IzgfOCVcws2nOueCi0PwDsBIRESk7XYk41FF+Pd/FUFk/QYjk8/nP\nw/jxfkhxLvX1/hq1IiJDkHMuAVwCPA4sA37jnFtiZtcFMxoDXGJmS8zsVfx5tHsNNxYRESkH6qGV\nwSUWg+eegxNP9NedDffUNjZCdTU8/jhMnVq6GEVESsw59yjwaEbZNaHlS4selIiIyD5QQiuDz377\nwRtvwJ//DD/6kU9sR46Er3wF5s+HurpSRygiIiIiIv1ACa0MTlVVMG+ev4mIiIiIyKCkc2hFRERE\nRESkIimhFRERERERkYqkhFZEREREREQqkhJaERERERERqUhKaEVERERERKQiKaEVERERERGRiqSE\nVkRERERERCqSEloRERERERGpSEpoRUT2xXvvwdVXw9ixEIlAQwOcey689lqpIxMREREZMpTQioj0\n1iuvwCGHwC23wNatkEpBays88AAccwzceWepIxQREREZEpTQigwWzsGOHbB5MySTpY5m8Gpuhrlz\nYedO6Ojovi6Z9Intt74Fzz9fmvhEREREhhAltCKVLh6H22+HqVNhv/1g8mQYPRquvBK2bSt1dIPP\nvfdCZ2fPdVpb4brrihOPiIiIyBDWp4TWzJrM7AkzWxncj8pS5wQzezV0azez04N195jZmtC6I/sS\nj8iQ09EBJ50El18O77zjE632dt97eOutcMQRsHZtqaMcXH7yE5+w5vPss9DSMuDhiIiIiAxlfe2h\nvQJ4yjk3DXgqeNyNc+4Z59yRzrkjgTlAK/DnUJX/nl7vnHu1j/GIDC2XXw4vvZQ9wero8MOPTznF\nD0cuhVQK3nrLn3O6aVNpYuhv27cXVq+62g8BFxEREZEB09eE9jTg3mD5XuD0PPXPBB5zzhXQvSEi\nPWppgbvvhra23HWSSVizBhYtKl5c4BPZH/4QJk6EWbNgzhyYMsXfFzuW/tbUVFi9eBxGjhzYWERE\nRESGuL4mtOOccxuD5feAcXnqzwfuzyi7wcxeN7Nbzawm14ZmdpGZLTazxVu2bOlDyCKDxFNPQTSa\nv15rK/z61wMfT1oqBZ/7HHzve7BxI+zeDbt2+aHQzzwDJ5wAf/hD8eLpbxddBPX1+evNng3Dhg18\nPCIiIiJDWN6E1syeNLM3s9xOC9dzzjkg57hGMxsPHAE8Hiq+EjgE+CjQBHw31/bOuTucc7Occ7PG\njh2bL2yRwW/nTp885uNccSeHuv12eOKJ3OeZtrXB/Pn+cjeV6Ctf8cOJe1JfD9dcU5x4RERERIaw\nvAmtc26uc+7wLLdHgE1BoppOWDf38FRfBB52zsVDz73ReR3Az4Gj+/bniAwhEyaAWf561dV+uG8x\nOAff/37+SZOcg7vuKk5M/W3kSHjySRgxAmoyBpVUVUFdnZ+Q67jjShOfiIiIyBDS1yHHC4Dzg+Xz\ngUd6qHs2GcONQ8mw4c+/fbOP8YgMHccfD7FY/nqRCHz1qwMeDgCrVxfWG9zWBvdnnn1QQWbNgmXL\n4LLL/CWSzHwiO38+vPCCH5YsIiIiIgOurwntTcBJZrYSmBs8xsxmmdnP0pXMbAowCfivjO1/ZWZv\nAG8AY4Dr+xiPyNARjcK11/Z8PmdtLZx8Mnzwg8WJqa3NJ9CFKOTSN+Vs/Hi48UY/dDqZ9H/Pr34F\nR+rqYyIiIiLFUsCMMrk557YBJ2YpXwz8U+jxO8D+WerN6cvriwx5F18M774LP/qRvwZtMtm1rrER\nZs4sbk/ohAk+jkIcdNDAxlJMhQz9FhEREZF+19ceWhEpJTO4+WZ4/nk46ywYNw7GjPEz7D74oJ9V\nuJAZeftLUxPMnZs/wWtshEsvLU5MIiIiIjJo9amHVkTKxMyZfrhrObjhBp9I5xpSHIvB9Olw0knF\njUtEREREBh310IpI//rwh2HBAt8Lm9k73NgIRxzhZwmu0sePiIiIiPSNemhFpP+deCKsXw/33Qe/\n/CW0tPhzZr/5TTjhBJ1zKiIiIiL9QgmtiAyM4cPhkkv8TURERERkAGjMn4iIiIiIiFQkJbQiIiIi\nIiJSkZTQioiIiIiISEVSQisiIiIiIiIVSQmtiIiIiIiIVCQltCIiIiIiIlKRlNCKiIiIiIhIRVJC\nKyIiIiIiIhVJCa2IiIiIiIhUJCW0IiIiIiIiUpGU0IqIiIiIiEhFUkIrIiIiIiIiFUkJrYiIiIiI\niFQkJbQiIiIiIiJSkZTQioiIiIiISEVSQisiIiIiIiIVSQmtiIiIiIiIVCQltCIiIiIiIlKRlNCK\niIiIiIhIRVJCKyIiIiIiIhVJCa2IiIiIiIhUJCW0IiIiIiIiUpGU0IqIiIiIiEhFUkIrIiIiIiIi\nFUkJrYiIiIiIiFQkJbQiIiIiIiJSkZTQioiIiIiISEVSQisiIiIiIiIVSQmtiIiIiIiIVCQltCIi\nIiIiIlKRlNCKiIiIiIhIRVJCKyIiIiIiIhVJCa2IiIiIiIhUJCW0IiIiIiIiUpGU0IqIiIiIiEhF\n6lNCa2ZfMLMlZpYys1k91JtnZsvNbJWZXREqP9DMFgXlD5pZrC/xiIiISH65jsuh9ZeZ2VIze93M\nnjKzyaWIU0REJJ++9tC+CXwOeC5XBTOLALcBnwFmAGeb2Yxg9feBW51zBwE7gAv6GI+IiIj0IM9x\nOe1vwCzn3IeAh4CbixuliIhIYfqU0DrnljnnluepdjSwyjm32jnXCTwAnGZmBszBHygB7gVO70s8\nIiIiklfW43K4gnPuGedca/BwITCxyDGKiIgUpBjn0O4PrA09XheUjQaanXOJjHIREREZOLmOy7lc\nADw2oBGJiIjso2i+Cmb2JLBfllVXOece6f+QcsZxEXBR8LDDzN4s1mv3ozHA1lIHsQ8Ud3Ep7uKr\n1NgVd//ROaJZmNm5wCxgdo714WNzi5nlG7VViHLcP8qR2qkwaqfCqJ0Ko3bKrz/bqKBjc96E1jk3\nt4+BrAcmhR5PDMq2ASPNLBr00qbLc8VxB3AHgJktds7lnISqXCnu4lLcxVWpcUPlxq64ZR/lOi53\nY2ZzgauA2c65jmxPFD429xftH4VROxVG7VQYtVNh1E75laKNijHk+GVgWjCjcQyYDyxwzjngGeDM\noN75QNF6fEVERIaorMflcAUzOwr4KXCqc25zCWIUEREpSF8v23OGma0DPgH8ycweD8onmNmjAEHv\n6yXA48Ay4DfOuSXBU3wXuMzMVuHPqb2rL/GIiIhIz3Idl83sOjM7Naj2v4FG4Ldm9qqZLcjxdCIi\nIiWVd8hxT5xzDwMPZynfAJwSevwo8GiWeqvxsy32Vr8ObyoixV1ciru4KjVuqNzYFbfsk2zHZefc\nNaHlvp5u1BfaPwqjdiqM2qkwaqfCqJ3yK3obmR/5KyIiIiIiIlJZinEOrYiIiIiIiEi/K9uE1sy+\nYGZLzCxlZjlnyjKzeWa23MxWmdkVofIDzWxRUP5gMPFFMeJuMrMnzGxlcD8qS50TgnOS0rd2Mzs9\nWHePma0JrTuyXOIO6iVDsS0IlZdzex9pZi8G+9PrZnZWaF1R2zvX/hpaXxO036qgPaeE1l0ZlC83\ns08PZJz7EPdlZrY0aN+nzGxyaF3WfaZM4v6ymW0JxfdPoXXnB/vVSjM7v8zivjUU8wozaw6tK2V7\n321mmy3HZdXM+7/B3/W6mc0MrStZe0v5yLfvDyVm9o6ZvRG8lxcHZVmPeT29twabbJ8z+9Iug/0z\nJ0c7XWtm60PHiFNC67J+xxjs70kzm2RmzwTfYZaY2aVBufapQA9tVD77k3OuLG/AocDBwLPArBx1\nIsDbwFQgBrwGzAjW/QaYHyz/BPh6keK+GbgiWL4C+H6e+k3AdqA+eHwPcGYJ2ruguIGWHOVl297A\ndGBasDwB2AiMLHZ797S/hup8A/hJsDwfeDBYnhHUrwEODJ4nUkZxnxDah7+ejrunfaZM4v4y8KMs\n2zYBq4P7UcHyqHKJO6P+vwB3l7q9g9f+FDATeDPH+lOAxwADPg4sKnV761Y+t97u+4P9BrwDjMko\ny3rMy/XeGoy3bJ8zvW2XofCZk6OdrgUuz1I363eMofCeBMYDM4PlYcCKoD20T+Vvo7LZn8q2h9Y5\nt8w5l+8C7UcDq5xzq51zncADwGlmZsAc4KGg3r3A6QMXbTenBa9X6OueCTzmnGsd0Kjy623ce5R7\nezvnVjjnVgbLG4DNwNgixReWdX/NqBP+ex4CTgza9zTgAedch3NuDbCKfZtQbUDids49E9qHF+Kv\na1lqhbR3Lp8GnnDObXfO7QCeAOYNUJyZehv32cD9RYksD+fcc/gf6HI5DbjPeQvx1yIfT2nbW8pH\nX96zQ0WuY16u99agk+NzprftMug/cwr4PA7L9R1j0L8nnXMbnXN/DZbfx8/8vj/ap/booY1yKfr+\nVLYJbYH2B9aGHq8LykYDzc5fmiBcXgzjnHMbg+X3gHF56s9n7y+jNwTDGG41s5p+jzC7QuOuNbPF\nZrbQgmHSVFB7m9nR+F+F3g4VF6u9c+2vWesE7bkT376FbDtQevvaF+B/vUzLts8UQ6Fxfz74/z9k\nZpN6ue1AKPi1zQ/tPhB4OlRcqvYuRK6/rZTtLeVD+0F3Dvizmb1iZhcFZbmOeUO97XrbLkO5vS4J\njnl3W9dpWmonwPxpXkcBi9A+lVVGG0GZ7E99umxPX5nZk8B+WVZd5Zx7pNjxFKqnuMMPnHPOzHJO\nIx38onME/lqAaVfi3zgx/LTX3wWu62vMwev1R9yTnXPrzWwq8LSZvYFPugZMP7f3L4DznXOpoHjA\n2nsoMrNzgVnA7FDxXvuMc+7t7M9QdH8A7nfOdZjZP+N/hZ1T4ph6Yz7wkHMuGSor5/YWkcIdG7yX\nPwA8YWZvhVfmO+YNVWqXHt0O/Bv+x5J/A/4P8NWSRlQmzKwR+B3wLefcLj84ztM+5WVpo7LZn0qa\n0Lq+X+duPTAp9HhiULYNPwQgGvRypcv7RU9xm9kmMxvvnNsYJFCbe3iqLwIPO+fioedO/xrUYWY/\nBy7vl6Dpn7idc+uD+9Vm9iz+V5rfUebtbWbDgT/hfyxZGHruAWvvLHLtr9nqrDOzKDACvz8Xsu1A\nKei1zWwu/keG2c65jnR5jn2mGAlW3ridc9tCD3+GP2cmve3xGds+2+8RZteb//V84OJwQQnbuxC5\n/rZStreUj1J+zpWd0Ht5s5k9jB+ul+uYN9TbrrftMiQ/c5xzm9LLZnYn8MfgYU/7z6Dfr8ysGv9d\n9lfOud8HxdqnQrK1UTntT5U+5PhlYJr5GXZj+C93C5xzDngGf34qwPlAsXp8FwSvV8jr7nXuW/qc\nl+C8ydOBrLOFDoC8cZvZqPSQXDMbA3wSWFru7R3sGw/jz3l4KGNdMds76/6aUSf895wJPB207wJg\nvvlZkA8EpgEvDWCsvYrbzI4Cfgqc6pzbHCrPus+UUdzhc8xOxZ8XAn7UxMlB/KOAk+k+kmIgFbKf\nYGaH4CeeeDFUVsr2LsQC4DzzPg7sDH5UKmV7S/koaN8fCsyswcyGpZfx74k3yX3My/XeGip62y5D\n8jMn45h3Bl3feXJ9xxj078ng+99dwDLn3A9Cq7RPBXK1UVntT64MZs/KdgsaZh3QAWwCHg/KJwCP\nhuqdgp9t621871u6fGrQeKuA3wI1RYp7NPAUsBJ4EmgKymcBPwvVm4L/VaIqY/ungTeCneKXQGO5\nxA0cE8T2WnB/QSW0N3AuEAdeDd2OLEV7Z9tf8UOcTw2Wa4P2WxW059TQtlcF2y0HPlOM9u1F3E8G\n79N0+y7It8+USdz/C1gSxPcMcEho268G/4dVwFfKKe7g8bXATRnblbq978fPIh7Hf35fAHwN+Fqw\n3oDbgr/rDUIz2JeyvXUrn1u2fX8o3oJj6mvBbUnocyDXMS/ne2uw3XJ8zvS6XQb7Z06OdvpF0A6v\n4xOJ8aH6Wb9jDPb3JHAsfsjs63R9hzlF+1RBbVQ2+5MFTy4iIiIiIiJSUSp9yLGIiIiIiIgMUUpo\nRUREREREpCIpoRUREREREZGKpIRWREREREREKpISWhEREREREalISmhFRERERESkIimhFRERERER\nkYqkhFZEREREREQq0v8HnzlY4J8U7jwAAAAASUVORK5CYII=\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5a60a890>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"draw_regularization_example(X, Y)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Regularyzacja\n",
|
||
"\n",
|
||
"* Metoda zapobiegania zjawisku nadmiernego dopasowania (*overfitting*)\n",
|
||
"* „Kara” za ekstremalne wartości parametrów $\\theta$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Regularyzacja dla regresji liniowej – funkcja kosztu\n",
|
||
"\n",
|
||
"$$\n",
|
||
"J(\\theta) \\, = \\, \\dfrac{1}{2m} \\left( \\displaystyle\\sum_{i=1}^{m} h_\\theta(x^{(i)}) - y^{(i)} \\color{red}{ + \\lambda \\displaystyle\\sum_{j=1}^{n} \\theta^2_j } \\right)\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* $\\lambda$ – parametr regularyzacji\n",
|
||
"* jeżeli $\\lambda$ jest zbyt mały, skutkuje to nadmiernym dopasowaniem\n",
|
||
"* jeżeli $\\lambda$ jest zbyt duży, skutkuje to niedostatecznym dopasowaniem"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Regularyzacja dla regresji liniowej – gradient\n",
|
||
"\n",
|
||
"$$\\small\n",
|
||
"\\begin{array}{llll}\n",
|
||
"\\dfrac{\\partial J(\\theta)}{\\partial \\theta_0} &=& \\dfrac{1}{m}\\displaystyle\\sum_{i=1}^m \\left( h_{\\theta}(x^{(i)})-y^{(i)} \\right) x^{(i)}_0 & \\textrm{dla $j = 0$ }\\\\\n",
|
||
"\\dfrac{\\partial J(\\theta)}{\\partial \\theta_j} &=& \\dfrac{1}{m}\\displaystyle\\sum_{i=1}^m \\left( h_{\\theta}(x^{(i)})-y^{(i)} \\right) x^{(i)}_j \\color{red}{+ \\dfrac{\\lambda}{m}\\theta_j} & \\textrm{dla $j = 1, 2, \\ldots, n $} \\\\\n",
|
||
"\\end{array} \n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Regularyzacja dla regresji logistycznej – funkcja kosztu\n",
|
||
"\n",
|
||
"$$\n",
|
||
"\\begin{array}{rtl}\n",
|
||
"J(\\theta) & = & -\\dfrac{1}{m} \\left( \\displaystyle\\sum_{i=1}^{m} y^{(i)} \\log h_\\theta(x^{(i)}) + \\left( 1-y^{(i)} \\right) \\log \\left( 1-h_\\theta(x^{(i)}) \\right) \\right) \\\\\n",
|
||
"& & \\color{red}{ + \\dfrac{\\lambda}{2m} \\displaystyle\\sum_{j=1}^{n} \\theta^2_j } \\\\\n",
|
||
"\\end{array}\n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Regularyzacja dla regresji logistycznej – gradient\n",
|
||
"\n",
|
||
"$$\\small\n",
|
||
"\\begin{array}{llll}\n",
|
||
"\\dfrac{\\partial J(\\theta)}{\\partial \\theta_0} &=& \\dfrac{1}{m}\\displaystyle\\sum_{i=1}^m \\left( h_{\\theta}(x^{(i)})-y^{(i)} \\right) x^{(i)}_0 & \\textrm{dla $j = 0$ }\\\\\n",
|
||
"\\dfrac{\\partial J(\\theta)}{\\partial \\theta_j} &=& \\dfrac{1}{m}\\displaystyle\\sum_{i=1}^m \\left( h_{\\theta}(x^{(i)})-y^{(i)} \\right) x^{(i)}_j \\color{red}{+ \\dfrac{\\lambda}{m}\\theta_j} & \\textrm{dla $j = 1, 2, \\ldots, n $} \\\\\n",
|
||
"\\end{array} \n",
|
||
"$$"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Implementacja metody regularyzacji"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 36,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def J_(h,theta,X,y,lamb=0):\n",
|
||
" m = float(len(y))\n",
|
||
" f = h(theta, X, eps=10**-7)\n",
|
||
" j = 1.0/m \\\n",
|
||
" * -np.sum(np.multiply(y, np.log(f)) + \n",
|
||
" np.multiply(1 - y, np.log(1 - f)), axis=0) \\\n",
|
||
" + lamb/(2*m) * np.sum(np.power(theta[1:] ,2))\n",
|
||
" return j\n",
|
||
"\n",
|
||
"def dJ_(h,theta,X,y,lamb=0):\n",
|
||
" m = float(y.shape[0])\n",
|
||
" g = 1.0/y.shape[0]*(X.T*(h(theta,X)-y))\n",
|
||
" g[1:] += lamb/m * theta[1:]\n",
|
||
" return g"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 37,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"slider_lambda = widgets.FloatSlider(min=0.0, max=0.5, step=0.005, value=0.01, description=r'$\\lambda$', width=300)\n",
|
||
"\n",
|
||
"def slide_regularization_example_2(lamb):\n",
|
||
" draw_regularization_example(X, Y, lamb=lamb)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 38,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"application/vnd.jupyter.widget-view+json": {
|
||
"model_id": "0738c69d0fff4e32ab23d4aa93ca9a71",
|
||
"version_major": 2,
|
||
"version_minor": 0
|
||
},
|
||
"text/html": [
|
||
"<p>Failed to display Jupyter Widget of type <code>interactive</code>.</p>\n",
|
||
"<p>\n",
|
||
" If you're reading this message in Jupyter Notebook or JupyterLab, it may mean\n",
|
||
" that the widgets JavaScript is still loading. If this message persists, it\n",
|
||
" likely means that the widgets JavaScript library is either not installed or\n",
|
||
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
|
||
" Widgets Documentation</a> for setup instructions.\n",
|
||
"</p>\n",
|
||
"<p>\n",
|
||
" If you're reading this message in another notebook frontend (for example, a static\n",
|
||
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
|
||
" it may mean that your frontend doesn't currently support widgets.\n",
|
||
"</p>\n"
|
||
],
|
||
"text/plain": [
|
||
"interactive(children=(FloatSlider(value=0.01, description=u'$\\\\lambda$', max=0.5, step=0.005), Button(description=u'Run Interact', style=ButtonStyle()), Output()), _dom_classes=('widget-interact',))"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"<function __main__.slide_regularization_example_2>"
|
||
]
|
||
},
|
||
"execution_count": 38,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"widgets.interact_manual(slide_regularization_example_2, lamb=slider_lambda)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 39,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def cost_lambda_fun(lamb):\n",
|
||
" theta = np.matrix(np.zeros(X.shape[1])).reshape(X.shape[1],1)\n",
|
||
" thetaBest, err = SGD(h, J, dJ, theta, X, Y, alpha=1, adaGrad=True, maxEpochs=2500, batchSize=100, \n",
|
||
" logError=True, validate=0.25, valStep=1, lamb=lamb)\n",
|
||
" return err[1][-1], err[3][-1]\n",
|
||
"\n",
|
||
"def plot_cost_lambda():\n",
|
||
" plt.figure(figsize=(16,8))\n",
|
||
" ax = plt.subplot(111)\n",
|
||
" Lambda = np.arange(0.0, 1.0, 0.01)\n",
|
||
" Costs = [cost_lambda_fun(lamb) for lamb in Lambda]\n",
|
||
" CostTrain = [cost[0] for cost in Costs]\n",
|
||
" CostCV = [cost[1] for cost in Costs]\n",
|
||
" plt.plot(Lambda, CostTrain, lw=3, label='training error')\n",
|
||
" plt.plot(Lambda, CostCV, lw=3, label='validation error')\n",
|
||
" ax.set_xlabel(r'$\\lambda$')\n",
|
||
" ax.set_ylabel(u'cost')\n",
|
||
" plt.legend()\n",
|
||
" plt.ylim(0.2,0.8)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 40,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7MAAAHmCAYAAAChwtkCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xl4XfVh5//PV+vVrqur1ZJsyxuW\nN8CYrWY326SNU5IAYRoeaBuYpMnQ5JnSkHYG0vzaTppmmIRMlpIFOvwSUpbSkJYESgMhECBewA5e\n8L5IsrXv29W99zt/nHMXybItyfdKOtL79Tx6zqJz7/2KVW9/z2KstQIAAAAAwEvSZnoAAAAAAABM\nFjELAAAAAPAcYhYAAAAA4DnELAAAAADAc4hZAAAAAIDnELMAAAAAAM9JacwaY242xrxvjDlgjHlg\nnO8vNMa8Yox5xxiz0xjzgVSOBwAAAAAwN5hUPWfWGJMuaZ+kGyQ1SNoi6Q5r7e6EYx6V9I619tvG\nmFWSXrDWLk7JgAAAAAAAc0YqZ2YvkXTAWnvIWhuU9GNJHxpzjJVU6K4XSWpK4XgAAAAAAHNERgrf\nu1rS8YTtBkmXjjnmi5JeMsb8V0l5kq5P4XgAAAAAAHNEKmN2Iu6Q9Li19n8ZYy6X9IQxZo21NpJ4\nkDHmXkn3SlJeXt5FK1eunIGhAgAAAABSbdu2bW3W2rKzHZfKmG2UVJuwXePuS/THkm6WJGvtm8YY\nn6RSSS2JB1lrH5X0qCRt2LDBbt26NVVjBgAAAADMIGPM0Ykcl8prZrdIWm6MqTPGZEn6mKTnxxxz\nTNImSTLG1EvySWpN4ZgAAAAAAHNAymLWWhuS9BlJL0raI+kpa+0uY8yXjDGb3cP+m6R7jDE7JD0p\n6W6bqtsrAwAAAADmjJReM2utfUHSC2P2PZiwvlvSxlSOAQAAAAAw98z0DaAAAAAAYEpGRkbU0NCg\noaGhmR4KpsDn86mmpkaZmZlTej0xCwAAAMCTGhoaVFBQoMWLF8sYM9PDwSRYa9Xe3q6GhgbV1dVN\n6T1SeQMoAAAAAEiZoaEhBQIBQtaDjDEKBALnNKtOzAIAAADwLELWu8717x0xCwAAAABT0NXVpW99\n61tTeu0HPvABdXV1nfGYBx98UC+//PKU3n8+IGYBAAAAYArOFLOhUOiMr33hhRdUXFx8xmO+9KUv\n6frrr5/y+CYrHA6P2j7bzzDZ45KNmAUAAACAKXjggQd08OBBXXDBBbr//vv16quv6sorr9TmzZu1\natUqSdLv//7v66KLLtLq1av16KOPxl67ePFitbW16ciRI6qvr9c999yj1atX68Ybb9Tg4KAk6e67\n79YzzzwTO/6hhx7S+vXrtXbtWu3du1eS1NraqhtuuEGrV6/WJz7xCS1atEhtbW2njPWll17S5Zdf\nrvXr1+vWW29VX19f7H0///nPa/369Xr66ad1zTXX6LOf/aw2bNigr3/96zpy5Iiuu+46rVu3Tps2\nbdKxY8diY/vkJz+pSy+9VH/+53+eur/IZ8DdjAEAAAB43uIH/i1l733ky7877v4vf/nLeu+99/Tu\nu+9Kkl599VVt375d7733XuwOvT/4wQ9UUlKiwcFBXXzxxfrIRz6iQCAw6n3279+vJ598Ut/97nd1\n22236dlnn9XHP/7xUz6vtLRU27dv17e+9S199atf1fe+9z391V/9la677jp94Qtf0M9//nN9//vf\nP+V1bW1t+uu//mu9/PLLysvL09/93d/p4Ycf1oMPPihJCgQC2r59uyTpO9/5joLBoLZu3SpJ+uAH\nP6i77rpLd911l37wgx/ovvvu07/8y79Icu4m/etf/1rp6elT+ct6zohZAAAAAEiSSy65ZNSjZh55\n5BE999xzkqTjx49r//79p8RsXV2dLrjgAknSRRddpCNHjoz73h/+8Idjx/zzP/+zJOn111+Pvf/N\nN98sv99/yuveeust7d69Wxs3bpQkBYNBXX755bHv33777aOOT9x+8803Y5915513jpqFvfXWW2cs\nZCViFgAAAACSJi8vL7b+6quv6uWXX9abb76p3NxcXXPNNeM+iiY7Ozu2np6eHjvN+HTHpaenT+o6\nVWutbrjhBj355JNnHfN426cz0eNShZgFAAAA4HmnOxU4lQoKCtTb23va73d3d8vv9ys3N1d79+7V\nW2+9lfQxbNy4UU899ZQ+//nP66WXXlJnZ+cpx1x22WX69Kc/rQMHDmjZsmXq7+9XY2OjVqxYcdb3\n/53f+R39+Mc/1p133qkf/vCHuvLKK5P+M0wVN4ACAAAAgCkIBALauHGj1qxZo/vvv/+U7998880K\nhUKqr6/XAw88oMsuuyzpY3jooYf00ksvac2aNXr66adVWVmpgoKCUceUlZXp8ccf1x133KF169bp\n8ssvj91A6my+8Y1v6LHHHtO6dev0xBNP6Otf/3rSf4apMtbamR7DpGzYsMFGL0YGAAAAMH/t2bNH\n9fX1Mz2MGTU8PKz09HRlZGTozTff1Kc+9anYDam8YLy/h8aYbdbaDWd7LacZAwAAAIBHHTt2TLfd\ndpsikYiysrL03e9+d6aHNG2IWQAAAADwqOXLl+udd96Z6WHMCK6ZBQAAAAB4DjELAAAAAPAcYhYA\nAAAA4DnELAAAAADAc4hZAAAAAJgm+fn5kqSmpiZ99KMfHfeYa665Rmd7HOnXvvY1DQwMxLY/8IEP\nqKurK3kD9QBiFgAAAACm2YIFC/TMM89M+fVjY/aFF15QcXFxMoZ2VqFQ6IzbE33duSJmAQAAAGAK\nHnjgAX3zm9+MbX/xi1/UV7/6VfX19WnTpk1av3691q5dq5/85CenvPbIkSNas2aNJGlwcFAf+9jH\nVF9fr1tuuUWDg4Ox4z71qU9pw4YNWr16tR566CFJ0iOPPKKmpiZde+21uvbaayVJixcvVltbmyTp\n4Ycf1po1a7RmzRp97Wtfi31efX297rnnHq1evVo33njjqM+Jam1t1Uc+8hFdfPHFuvjii/XGG2/E\nfrY777xTGzdu1J133qnHH39cmzdv1nXXXadNmzbJWqv7779fa9as0dq1a/VP//RPkqRXX31VV155\npTZv3qxVq1ad81/zRDxnFgAAAID3fbEohe/dPe7u22+/XZ/97Gf16U9/WpL01FNP6cUXX5TP59Nz\nzz2nwsJCtbW16bLLLtPmzZtljBn3fb797W8rNzdXe/bs0c6dO7V+/frY9/7mb/5GJSUlCofD2rRp\nk3bu3Kn77rtPDz/8sF555RWVlpaOeq9t27bpscce09tvvy1rrS699FJdffXV8vv92r9/v5588kl9\n97vf1W233aZnn31WH//4x0e9/k//9E/1uc99TldccYWOHTumm266SXv27JEk7d69W6+//rpycnL0\n+OOPa/v27dq5c6dKSkr07LPP6t1339WOHTvU1tamiy++WFdddZUkafv27XrvvfdUV1c3tb/+p0HM\nAgAAAMAUXHjhhWppaVFTU5NaW1vl9/tVW1urkZER/cVf/IVee+01paWlqbGxUc3NzaqsrBz3fV57\n7TXdd999kqR169Zp3bp1se899dRTevTRRxUKhXTixAnt3r171PfHev3113XLLbcoLy9PkvThD39Y\n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\nOItj1plMP/5+kstba+uSxKMC6dFk+rElWTxa3z/JT8ZYH7NMa+27SR57kUPOS/LF1rk+yQFVdeh4\nqpscYXb3HJ7k/gnbD4z27fSY0WOKnkhy8FiqY7aZTD9OdFGSb/RaEbPZS/bjaJjS8tbaVeMsjFlp\nMt+PRyc5uqq+V1XXV9WLXaWAX8Zk+vHjSS6sqgfSPRHkj8dTGuzUrv6OOXa9PpoHmF6q6sIkpyY5\nfaprYXaqqr2SfCbJu6a4FPiFuemG0P1mulEr362qE1trj09pVcxWFyT5Qmvt01X1uiT/WlUntNa2\nTnVhMB25Mrt7HkyyfML2stG+nR5TVXPTDRV5dCzVMdtMph9TVWck+UiSc1trz4ypNmafl+rH/ZKc\nkOQ7VfWjJK9NssokUPRkMt+PDyRZ1Vrb3Fq7N8ld6cIt7GmT6ceLknwlSVpr30+yIMmSsVQHzzep\n3zGnkjC7e36Q5KiqWllVe6e7QX/VDsesSvLO0fpbk3yreagv/XjJfqyqU5J8Nl2QdT8YfXrRfmyt\nPdFaW9JaO7K1dmS6e7jPba3dODXlMsNN5uf119NdlU1VLUk37PiecRbJrDGZfrwvyRuTpKqOSxdm\nHxlrlbDdqiTvGM1q/NokT7TWfjrVRU1kmPFuaK09W1WXJLkmyZwkn2+t3VZVn0hyY2ttVZJ/Tjc0\nZE26G6vPn7qKmckm2Y+fSrIoyVdH85Dd11o7d8qKZsaaZD/CWEyyH69J8uaquj3JliQfaq0ZScUe\nN8l+/ECSf6qq96WbDOpdLobQl6r693T/mbdkdJ/2nyeZlySttX9Md9/22UnWJNmQ5N1TU+kLK/8+\nAAAAGBrDjAEAABgcYRYAAIDBEWYBAAAYHGEWAACAwRFmAQAAGBxhFgAAgMERZgEAABgcYRYApqmq\nOrGqflxVfzDVtQDAdCPMAsA01Vq7Jcn5Sd4x1bUAwHQjzALA9PZwkldPdREAMN0IswAwvf1VkvlV\ndcRUFwIA04kwCwDTVFWdlWRhkqvi6iwAPIcwCwDTUFUtSPLJJH+Y5JYkJ0xtRQAwvQizADA9fTTJ\nF1trP4owCwDPI8wCwDRTVcckeVOSvxntEmYBYAfVWpvqGgAAAGCXuDILAADA4AizAAAADI4wCwAA\nwOAIswAAAAyOMAsAAMDgCLMAAAAMjjALAADA4AizAAAADM7/AxBrDK/5i9NhAAAAAElFTkSuQmCC\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a61e722d0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"plot_cost_lambda()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 2.9. Krzywa uczenia się"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Krzywa uczenia pozwala sprawdzić, czy uczenie przebiega poprawnie.\n",
|
||
"* Krzywa uczenia to wykres zależności między wielkością zbioru treningowego a wartością funkcji kosztu.\n",
|
||
"* Wraz ze wzrostem wielkości zbioru treningowego wartość funkcji kosztu na zbiorze treningowym rośnie.\n",
|
||
"* Wraz ze wzrostem wielkości zbioru treningowego wartość funkcji kosztu na zbiorze walidacyjnym maleje."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 41,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def cost_trainsetsize_fun(m):\n",
|
||
" theta = np.matrix(np.zeros(X.shape[1])).reshape(X.shape[1],1)\n",
|
||
" thetaBest, err = SGD(h, J, dJ, theta, X, Y, alpha=1, adaGrad=True, maxEpochs=2500, batchSize=100, \n",
|
||
" logError=True, validate=0.25, valStep=1, lamb=0.01, trainsetsize=m)\n",
|
||
" return err[1][-1], err[3][-1]\n",
|
||
"\n",
|
||
"def plot_learning_curve():\n",
|
||
" plt.figure(figsize=(16,8))\n",
|
||
" ax = plt.subplot(111)\n",
|
||
" M = np.arange(0.3, 1.0, 0.05)\n",
|
||
" Costs = [cost_trainsetsize_fun(m) for m in M]\n",
|
||
" CostTrain = [cost[0] for cost in Costs]\n",
|
||
" CostCV = [cost[1] for cost in Costs]\n",
|
||
" plt.plot(M, CostTrain, lw=3, label='training error')\n",
|
||
" plt.plot(M, CostCV, lw=3, label='validation error')\n",
|
||
" ax.set_xlabel(u'trainset size')\n",
|
||
" ax.set_ylabel(u'cost')\n",
|
||
" plt.legend()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Krzywa uczenia a obciążenie i wariancja\n",
|
||
"\n",
|
||
"<img width=\"100%\" src=\"learning-curves.png\"/>\n",
|
||
"\n",
|
||
"Źródło: http://www.ritchieng.com/machinelearning-learning-curve"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 42,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7MAAAHjCAYAAADxD0ixAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xl8VfWd//HXSQhhh7ArqKCAgIIo\nCCIoiCKordYNqq2tba2jY2vbabVaq9aF7nVaHVunTtXqjFbUWvVXK4uAqIASUFBAEwSEgKyyr1nO\n748TuAkECJCbk3vv6/l43Ee/n7vljQvl7Vm+QRiGSJIkSZKUSrLiDiBJkiRJ0qGyzEqSJEmSUo5l\nVpIkSZKUciyzkiRJkqSUY5mVJEmSJKUcy6wkSZIkKeVYZiVJkiRJKccyK0mSJElKOZZZSZIkSVLK\nqRd3gEPVunXrsFOnTnHHkCRJkiQlwaxZs9aGYdjmYO9LuTLbqVMn8vPz444hSZIkSUqCIAg+rc77\nPM1YkiRJkpRyLLOSJEmSpJRjmZUkSZIkpZyUu2ZWkiRJkgCKi4spKipix44dcUfRYWjQoAEdO3Yk\nJyfnsD5vmZUkSZKUkoqKimjatCmdOnUiCIK44+gQhGHIunXrKCoqonPnzof1HZ5mLEmSJCkl7dix\ng1atWllkU1AQBLRq1eqIjqpbZiVJkiSlLIts6jrSv3eWWUmSJElSyrHMSpIkSdJh2LBhA3/84x8P\n67MXXnghGzZsOOB77rrrLiZOnHhY358JLLOSJEmSdBgOVGZLSkoO+NlXX32VFi1aHPA99957L+ed\nd95h5ztUpaWlleaD/RoO9X01zbsZS5IkSUp5nW77Z9K+e8kvL6ry+dtuu41PPvmEPn36MHz4cC66\n6CLuvPNO8vLy+OijjygoKOBLX/oSy5YtY8eOHXzve9/j+uuvj/J26kR+fj5btmzhggsuYPDgwUyb\nNo0OHTrw0ksv0bBhQ6699lq+8IUvcMUVV9CpUye+/vWv88orr1BcXMxzzz1H9+7dWbNmDVdffTUr\nVqxg4MCBTJgwgVmzZtG6detKWcePH8/dd9/Nzp07OeGEE3j88cdp0qQJnTp1YvTo0UyYMIFbb72V\nRx55hD59+vDWW29x1VVXcfnll/PNb36TtWvX0qZNGx5//HGOPfZYrr32Who0aMB7773HoEGDeOCB\n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\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a61e27450>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"plot_learning_curve()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 2.10. Obserwacje odstające"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 43,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Funkcja regresji liniowej\n",
|
||
"\n",
|
||
"def h_linear(Theta, x):\n",
|
||
" return x * Theta\n",
|
||
"\n",
|
||
"def linear_regression(theta):\n",
|
||
" return lambda x: h_linear(theta, x)\n",
|
||
"\n",
|
||
"# Wykres krzywej regresji (wersja macierzowa)\n",
|
||
"def plot_regression(fig, fun, theta, X):\n",
|
||
" ax = fig.axes[0]\n",
|
||
" x0 = np.min(X[:, 1]) - 1.0\n",
|
||
" x1 = np.max(X[:, 1]) + 1.0\n",
|
||
" L = [x0, x1]\n",
|
||
" LX = np.matrix([1, x0, 1, x1]).reshape(2, 2)\n",
|
||
" ax.plot(L, fun(theta, LX), linewidth='2',\n",
|
||
" label=(r'$y={theta0:.2}{op}{theta1:.2}x$'.format(\n",
|
||
" theta0=float(theta[0][0]),\n",
|
||
" theta1=(float(theta[1][0]) if theta[1][0] >= 0 else float(-theta[1][0])),\n",
|
||
" op='+' if theta[1][0] >= 0 else '-')))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 44,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Wczytanie danych (mieszkania) przy pomocy biblioteki pandas\n",
|
||
"\n",
|
||
"alldata = pandas.read_csv('data_flats_with_outliers.tsv', sep='\\t',\n",
|
||
" names=['price', 'isNew', 'rooms', 'floor', 'location', 'sqrMetres'])\n",
|
||
"data = np.matrix(alldata[['price', 'sqrMetres']])\n",
|
||
"\n",
|
||
"m, n_plus_1 = data.shape\n",
|
||
"n = n_plus_1 - 1\n",
|
||
"Xn = data[:, 0:n]\n",
|
||
"\n",
|
||
"Xo = np.matrix(np.concatenate((np.ones((m, 1)), Xn), axis=1)).reshape(m, n + 1)\n",
|
||
"yo = np.matrix(data[:, -1]).reshape(m, 1)\n",
|
||
"\n",
|
||
"Xo /= np.amax(Xo, axis=0)\n",
|
||
"yo /= np.amax(yo, axis=0)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 45,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\n8iTnDp+fm+SvD2xQVQ+oqmOHz49P8oQk102tQgCATswqsF2Y5EeqakeSHx5Op6o2V9UlwzbfnWR7\nVX0iyfuTXNhaE9gAgCPOqp0SPZjW2leS/NCI+duTPGv4/ENJ/sOUSwMA6I6RDgAAOiewAQB0TmAD\nAOicwAYA0DmBDQCgcwIbAEDnBDYAgM4JbAAAnRPYAAA6J7ABAHROYAMA6JzABgDQOYENAKBzAhsA\nQOcENgCAzglsAACdE9gAADonsAEAdE5gAwDonMAGANA5gQ0AoHMCGwBA5wQ2AIDOCWwAAJ0T2AAA\nOiewAQB0TmADAOicwAYA0DmBDQCgcwIbAEDnBDYAgM4JbAAAnRPYAAA6J7ABAHROYAMA6JzABgDQ\nOYENAKBzAhsAQOcENgCAzglsAACdE9gAADonsAEAdG4mga2qfrKqrq2qvVW1+SDtnlxVN1TVzqq6\nYJo1AgD0YlZH2D6d5MeTfHCpBlV1VJKLkjwlySOT/FRVPXI65QEA9OPoWWy0tXZ9klTVwZo9NsnO\n1tqNw7Z/nuTsJNeteoEAAB3p+Rq2k5J8ftH0TcN5AABHlFU7wlZV/5DkxBEvvby19tcT3tb5Sc4f\nTt5VVZ+e5Po5pOOTfHnWRRxB7O/psr+ny/6eLvt7uh6x3AVXLbC11n54hau4OcnJi6YfNpw3alsX\nJ7k4Sapqe2ttyRsZmDz7fLrs7+myv6fL/p4u+3u6qmr7cpft+ZTox5JsqqrvrKpvSXJOkstnXBMA\nwNTNqluPH6uqm5I8PsnfVdW7h/MfWlVXJElrbU+S5yd5d5Lrk7yttXbtLOoFAJilWd0l+ldJ/mrE\n/FuSbFk0fUWSKw5z9RevrDqWwT6fLvt7uuzv6bK/p8v+nq5l7+9qrU2yEAAAJqzna9gAAMgcBDbD\nXE1fVT2wqt5TVTuGjw9Yot09VXXN8McNI4fpUO/Zqjq2qrYNX/9IVT18+lXOjzH29zOq6tZF7+ln\nzaLOeVBVb6qqLy3VBVMN/OHwb/HJqnrMtGucJ2Ps7ydW1W2L3tu/Pu0a50lVnVxV76+q64b55IUj\n2hz2e3zNB7YY5moWLkjy3tbapiTvHU6Pckdr7fThz1nTK2/tG/M9e16Sr7XWTk3ymiS/M90q58dh\nfEdsW/SevmSqRc6XS5M8+SCvPyXJpuHP+Un+aAo1zbNLc/D9nST/tOi9/aop1DTP9iR5cWvtkUke\nl+R5I75PDvs9vuYDW2vt+tbaDYdo9s1hrlprdyfZN8wVy3N2krcMn78lydNmWMu8Guc9u/jv8PYk\nP1SHGO+NJfmOmKLW2geTfPUgTc5OclkbuCrJ/avqIdOpbv6Msb+ZoNbartbax4fPFzLo6eLAkZoO\n+z2+5gPbmAxzNVkPbq3tGj7/QpIHL9HuuKraXlVXVZVQd3jGec9+s82wG5zbkjxoKtXNn3G/I35i\nePri7VV18ojXmQzf2dP3+Kr6RFW9s6q+Z9bFzIvhpSqPTvKRA1467Pf4TLr1OFzTHOaKgYPt88UT\nrbVWVUvdavwdrbWbq+q7kryvqj7VWvuXSdcKU/I3Sd7aWrurqp6dwdHNJ824JpiEj2fwfX17VW1J\n8o4MTtWxAlW1IclfJPml1tq/rXR9ayKwTXOYKwYOts+r6otV9ZDW2q7hIdwvLbGOm4ePN1bVBzL4\nX4bANp5x3rP72txUVUcnuV+Sr0ynvLlzyP3dWlu8by9J8rtTqOtI5Tt7ihaHidbaFVX1hqo6vrVm\njNFlqqpjMghrf9Za+8sRTQ77PX6knBI1zNVkXZ7k3OHzc5Pc5yhnVT2gqo4dPj8+yROSXDe1Cte+\ncd6zi/8OT0/yvqZjxeU65P4+4PqSszK4LoXVcXmSnx3eSfe4JLctugyDCauqE/dd/1pVj80gG/jP\n3zIN9+WfJLm+tfb7SzQ77Pf4mjjCdjBV9WNJXpfkhAyGubqmtfajVfXQJJe01ra01vZU1b5hro5K\n8ibDXK3IhUneVlXnJflskv+WJDXoVuU5rbVnJfnuJH9cVXsz+PBf2FoT2Ma01Hu2ql6VZHtr7fIM\nvhD+tKp2ZnBB8Tmzq3htG3N//2JVnZXBHWBfTfKMmRW8xlXVW5M8McnxNRim8BVJjkmS1tobMxjh\nZkuSnUm+nuSZs6l0Poyxv5+e5Beqak+SO5Kc4z9/K/KEJD+T5FNVdc1w3q8mOSVZ/nvcSAcAAJ07\nUk6JAgCsWQIbAEDnBDYAgM4JbAAAnRPYAAA6J7ABjFBVpw97fV/u8h+aZD3AkU1gAxjt9Az6SbqP\n4cgSB9Va+4GJVwQcsfTDBsyt4cDL70pyVZIfyGBEgzcn+Y0k357kp5Ncm0Hn29+bQWeir0zyzgw6\ntPzWDIaL+e0MOoP+d0m+K8nnkrwsyZ8mWT/c3PNbax8adrZ71nDeA5Nc3Vr7sdX7LYEjgcAGzK1h\nYNuZwTi212YQ2D6R5LwMQtUzMxgy7brW2v+uqvsn+eiw/U8m2dxae/5wXa9M8l+TnNlau6Oqvi3J\n3tbanVW1KYOB4Tcv2vb6JB9M8suttQ9O4dcF5tiaH5oK4BD+tbX2qSSpqmuTvLe11qrqU0kensGg\ny2dV1UuG7Y/LcAiZES5vrd0xfH5MktdX1elJ7kny7w9oe2mSS4U1YBIENmDe3bXo+d5F03sz+A68\nJ8lPtNZuWLxQVZ0xYl27Fz3/5SRfTPKoDK4HvnPRsi9Psru19roVVw8QNx0AvDvJC6qqkqSqHj2c\nv5Bk40GWu1+SXa21vRkM9HzUcPktGZxufc6qVQwccQQ24Ej3mxmc3vzk8JTpbw7nvz/JI6vqmqra\nOmK5NyQ5t6o+keS07D/69tIkJya5arjsa1a3fOBI4KYDAIDOOcIGANA5gQ0AoHMCGwBA5wQ2AIDO\nCWwAAJ0T2AAAOiewAQB0TmADAOjc/webGB3oYUOQxAAAAABJRU5ErkJggg==\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5ebfa610>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data(Xo, yo, xlabel=u'metraż', ylabel=u'cena')\n",
|
||
"theta_start = np.matrix([0.0, 0.0]).reshape(2, 1)\n",
|
||
"theta, logs = gradient_descent(cost, gradient, theta_start, Xo, yo, alpha=0.01)\n",
|
||
"plot_regression(fig, h_linear, theta, Xo)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 46,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Odrzućmy obserwacje odstające\n",
|
||
"alldata_no_outliers = [\n",
|
||
" (index, item) for index, item in alldata.iterrows() \n",
|
||
" if item.price > 100 and item.sqrMetres > 10]\n",
|
||
"\n",
|
||
"alldata_no_outliers = alldata.loc[(alldata['price'] > 100) & (alldata['sqrMetres'] > 100)]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 47,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"data = np.matrix(alldata_no_outliers[['price', 'sqrMetres']])\n",
|
||
"\n",
|
||
"m, n_plus_1 = data.shape\n",
|
||
"n = n_plus_1 - 1\n",
|
||
"Xn = data[:, 0:n]\n",
|
||
"\n",
|
||
"Xo = np.matrix(np.concatenate((np.ones((m, 1)), Xn), axis=1)).reshape(m, n + 1)\n",
|
||
"yo = np.matrix(data[:, -1]).reshape(m, 1)\n",
|
||
"\n",
|
||
"Xo /= np.amax(Xo, axis=0)\n",
|
||
"yo /= np.amax(yo, axis=0)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 48,
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<matplotlib.figure.Figure at 0x7f3a5ebae0d0>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig = plot_data(Xo, yo, xlabel=u'metraż', ylabel=u'cena')\n",
|
||
"theta_start = np.matrix([0.0, 0.0]).reshape(2, 1)\n",
|
||
"theta, logs = gradient_descent(cost, gradient, theta_start, Xo, yo, alpha=0.01)\n",
|
||
"plot_regression(fig, h_linear, theta, Xo)"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"celltoolbar": "Slideshow",
|
||
"kernelspec": {
|
||
"display_name": "Python 3",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 2
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython2",
|
||
"version": "2.7.14"
|
||
},
|
||
"livereveal": {
|
||
"start_slideshow_at": "selected",
|
||
"theme": "amu"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|