{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "FhGuhbZ6M5tl" }, "source": [ "##### Copyright 2022 The TensorFlow Authors." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "execution": { "iopub.execute_input": "2024-01-11T19:05:21.066497Z", "iopub.status.busy": "2024-01-11T19:05:21.066279Z", "iopub.status.idle": "2024-01-11T19:05:21.070311Z", "shell.execute_reply": "2024-01-11T19:05:21.069671Z" }, "id": "AwOEIRJC6Une" }, "outputs": [], "source": [ "#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "EIdT9iu_Z4Rb" }, "source": [ "# Core API を使用した数字認識のための多層パーセプトロン" ] }, { "cell_type": "markdown", "metadata": { "id": "bBIlTPscrIT9" }, "source": [ "\n", " \n", " \n", " \n", " \n", "
TensorFlow.org で表示Google Colabで実行GitHubでソースを表示ノートブックをダウンロード
" ] }, { "cell_type": "markdown", "metadata": { "id": "SjAxxRpBzVYg" }, "source": [ "このノートブックでは、[TensorFlow Core 低レベル API](https://www.tensorflow.org/guide/core) を使用して、[多層パーセプトロン](https://developers.google.com/machine-learning/crash-course/introduction-to-neural-networks/anatomy)と [MNIST データセット](http://yann.lecun.com/exdb/mnist)を使用し、手書きの数字を分類するためのエンドツーエンドの機械学習ワークフローを構築します。TensorFlow Core とその意図するユースケースの詳細については、[Core API の概要](https://www.tensorflow.org/guide/core)を参照してください。" ] }, { "cell_type": "markdown", "metadata": { "id": "GHVMVIFHSzl1" }, "source": [ "## 多層パーセプトロン(MLP)の概要\n", "\n", "多層パーセプトロン(MLP)は、[マルチクラス分類](https://developers.google.com/machine-learning/crash-course/multi-class-neural-networks/video-lecture)の問題に使用される一種のフィードフォワードニューラルネットワークです。MLP を構築する前に、パーセプトロン、レイヤー、活性化関数の概念を理解することが重要です。\n", "\n", "多層パーセプトロンは、パーセプトロンと呼ばれる単位で構成されています。パーセプトロンの方程式は次のとおりです。\n", "\n", "ここでは、\n", "\n", "これらのパーセプトロンが積み重ねられると、高密度レイヤーと呼ばれる構造が形成され、それらを接続してニューラルネットワークを構築できます。高密度レイヤーの方程式はパーセプトロンの方程式に似ていますが、代わりに重み行列とバイアスベクトルを使用します。\n", "\n", "- $Z$: パーセプトロン出力\n", "- $\\mathrm{X}$: 特徴行列\n", "- $\\vec{w}$: 重みベクトル\n", "- $b$: バイアス\n", "\n", "これらのパーセプトロンが積み重ねられると、高密度レイヤーと呼ばれる構造が形成され、それらを接続してニューラルネットワークを構築できます。高密度レイヤーの方程式はパーセプトロンの方程式に似ていますが、代わりに重み行列とバイアスベクトルを使用します。\n", "\n", "$$Y = \\mathrm{W}⋅\\mathrm{X} + \\vec{b}$$\n", "\n", "ここでは、それそれ以下を意味します。\n", "\n", "- $Z$: 高密度レイヤー出力\n", "- $\\mathrm{X}$: 特徴行列\n", "- $\\mathrm{W}$: 重み行列\n", "- $\\vec{b}$: バイアスベクトル\n", "\n", "MLP では、複数の高密度レイヤーが接続され、1 つのレイヤーの出力は次のレイヤーの入力に完全に接続されます。高密度レイヤーの出力に非線形活性化関数を追加すると、MLP 分類器が複雑な決定境界を学習し、トレーニングに使用されていないデータに対して適切に一般化するのに役立ちます。" ] }, { "cell_type": "markdown", "metadata": { "id": "nchsZfwEVtVs" }, "source": [ "## セットアップ\n", "\n", "まず、TensorFlow、[pandas](https://pandas.pydata.org)、[Matplotlib](https://matplotlib.org) および [seaborn](https://seaborn.pydata.org) をインポートします。" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:21.074274Z", "iopub.status.busy": "2024-01-11T19:05:21.073775Z", "iopub.status.idle": "2024-01-11T19:05:22.949272Z", "shell.execute_reply": "2024-01-11T19:05:22.948194Z" }, "id": "mSfgqmwBagw_" }, "outputs": [], "source": [ "# Use seaborn for countplot.\n", "!pip install -q seaborn" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:22.953792Z", "iopub.status.busy": "2024-01-11T19:05:22.953538Z", "iopub.status.idle": "2024-01-11T19:05:24.048835Z", "shell.execute_reply": "2024-01-11T19:05:24.047869Z" }, "id": "1rRo8oNqZ-Rj" }, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib\n", "from matplotlib import pyplot as plt\n", "import seaborn as sns\n", "import tempfile\n", "import os\n", "# Preset Matplotlib figure sizes.\n", "matplotlib.rcParams['figure.figsize'] = [9, 6]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:24.053348Z", "iopub.status.busy": "2024-01-11T19:05:24.052929Z", "iopub.status.idle": "2024-01-11T19:05:26.304270Z", "shell.execute_reply": "2024-01-11T19:05:26.303536Z" }, "id": "9xQKvCJ85kCQ" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2024-01-11 19:05:24.353219: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "2024-01-11 19:05:24.353268: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", "2024-01-11 19:05:24.354822: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2.15.0\n" ] } ], "source": [ "import tensorflow as tf\n", "import tensorflow_datasets as tfds\n", "print(tf.__version__)\n", "# Set random seed for reproducible results \n", "tf.random.set_seed(22)" ] }, { "cell_type": "markdown", "metadata": { "id": "F_72b0LCNbjx" }, "source": [ "## データを読み込む\n", "\n", "このチュートリアルでは [MNIST データセット](http://yann.lecun.com/exdb/mnist)を使用し、手書きの数字を分類できる MLP モデルを構築する方法を示します。データセットは [TensorFlow データセット](https://www.tensorflow.org/datasets/catalog/mnist)から入手できます。\n", "\n", "MNIST データセットをトレーニングセット、検証セット、およびテストセットに分割します。検証セットを使用して、トレーニング中にモデルの一般化可能性を評価し、テストセットを使用してモデルの最終的なバイアスのないパフォーマンスを推定します。\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:26.308577Z", "iopub.status.busy": "2024-01-11T19:05:26.307817Z", "iopub.status.idle": "2024-01-11T19:05:29.367664Z", "shell.execute_reply": "2024-01-11T19:05:29.366946Z" }, "id": "Uiuh0B098_3p" }, "outputs": [], "source": [ "train_data, val_data, test_data = tfds.load(\"mnist\", \n", " split=['train[10000:]', 'train[0:10000]', 'test'],\n", " batch_size=128, as_supervised=True)" ] }, { "cell_type": "markdown", "metadata": { "id": "X9uN3Lf6ANtn" }, "source": [ "MNIST データセットは、手書きの数字とそれに対応する真のラベルで構成されています。以下のいくつかの例を視覚化します。" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:29.371877Z", "iopub.status.busy": "2024-01-11T19:05:29.371639Z", "iopub.status.idle": "2024-01-11T19:05:30.612682Z", "shell.execute_reply": "2024-01-11T19:05:30.612017Z" }, "id": "6V8hSqJ7AMjQ" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x_viz, y_viz = tfds.load(\"mnist\", split=['train[:1500]'], batch_size=-1, as_supervised=True)[0]\n", "x_viz = tf.squeeze(x_viz, axis=3)\n", "\n", "for i in range(9):\n", " plt.subplot(3,3,1+i)\n", " plt.axis('off')\n", " plt.imshow(x_viz[i], cmap='gray')\n", " plt.title(f\"True Label: {y_viz[i]}\")\n", " plt.subplots_adjust(hspace=.5)\n" ] }, { "cell_type": "markdown", "metadata": { "id": "bRald9dSE4qS" }, "source": [ "また、トレーニングデータの数字の分布を調べて、各クラスがデータセットで適切に表現されていることを確認します。\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:30.616786Z", "iopub.status.busy": "2024-01-11T19:05:30.616164Z", "iopub.status.idle": "2024-01-11T19:05:39.687266Z", "shell.execute_reply": "2024-01-11T19:05:39.686594Z" }, "id": "Rj3K4XgQE7qR" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxIAAAIjCAYAAACXlS13AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAwEklEQVR4nO3de5yWdZ3/8fcMyAyGii0wIJGo5YFMUFwITFEWRV0tW01WWw+YtJmsJfszxQOHraSDEutmUbhkupBubpmmokXimlKuGnbwlBromjNACRgo6Mz8/ujBbBMD8h0HZnSez8fjejyc731d1/250UfNi/u67ruisbGxMQAAAAUq23sAAADgzUdIAAAAxYQEAABQTEgAAADFhAQAAFBMSAAAAMWEBAAAUExIAAAAxYQEAABQTEgAdDKHH354Dj/88FYde+aZZ2bgwIFtOs/rufbaa1NRUZGlS5du8+f6y9e3dOnSVFRU5Iorrtjmz50k06ZNS0VFxXZ5LoA3SkgAb0kbf/msqKjIT37yk00eb2xszIABA1JRUZHjjjuu2WMbj7vyyis3e94HH3ywaW3jL38rV65stu+tt96aUaNGpU+fPtlxxx2z55575uSTT86CBQuS/OkX+o3PtaVt2rRpm32dZ555ZrN9e/TokT333DMnnXRS/uu//isNDQ0lf2zF1q1bl2nTpmXRokVbtf+iRYuazVtVVZWampocfvjhufzyy7NixYp2mWt76sizAZTo2t4DAGxL1dXVmT9/ft7//vc3W7/nnnvyv//7v6mqqtrssV/60pdyzjnnZMcddyx+3iuuuCIXXHBBRo0alcmTJ2fHHXfMU089lR/96Ee54YYbcvTRR+eSSy7J2Wef3XTM//zP/+Sqq67KxRdfnP32269p/YADDtjic1VVVeWaa65Jkrz88stZtmxZbr311px00kk5/PDD8/3vfz8777xz0/533XVX8evZaM6cOc3iZN26dZk+fXqSFL3Lcd555+Wv//qvU19fnxUrVuT+++/P1KlTM3PmzPznf/5nRo8e3bTvaaedlr//+7/f4r+rv9Tauf7y9W0LW5rt0ksvzUUXXbRNnx+grQgJ4C3t2GOPzXe+851cddVV6dr1//4nb/78+Rk6dOgm7yJsNGTIkCxZsiSzZ8/OpEmTip7ztddey2c+85kceeSRLf7Svnz58iTJkUce2Wy9uro6V111VY488siiX367du2af/iHf2i29tnPfjaf//znM3ny5EyYMCE33nhj02PdunUreDXN7bDDDq0+9s8deuihOemkk5qtPfLIIznqqKNy4okn5tFHH02/fv2SJF26dEmXLl3a5Hk3Z+3atXnb297WZq+vtbp27drsv1OAjsylTcBb2imnnJLf//73+eEPf9i0tmHDhtx000059dRTN3vcIYccktGjR+eLX/xiXn755aLnXLlyZdasWZNDDjmkxcf79OlTdL7Wuuiii3LUUUflO9/5Tp588smm9ZbukVi2bFk+8IEP5G1ve1v69OmT888/P3feeWcqKiqaXYLz5/cQLF26NL17906STJ8+fasuxdqSwYMHZ9asWVm1alW+8pWvNK23dI/Egw8+mLFjx6ZXr17p3r179thjj5x11llbNdeZZ56ZHj165Omnn86xxx6bnXbaKR/5yEc2eX1/6ctf/nJ23333dO/ePaNGjcqvfvWrZo9v7t6Tkj+zlu6R2Bime+21V6qqqjJw4MBcfPHFWb9+fbP9Bg4cmOOOOy4/+clPMmzYsFRXV2fPPffMdddd1/IfOMAbJCSAt7SBAwdmxIgR+fa3v920dscdd2T16tX5+7//+y0eO23atNTV1eVrX/ta0XP26dMn3bt3z6233po//OEPrZq7rZx22mlpbGxsFlJ/ae3atRk9enR+9KMf5bzzzssll1yS+++/PxdeeOEWz927d++mP5sPfehDuf7663P99dfn7/7u71o970knnZTu3btv8fKr5cuX56ijjsrSpUtz0UUX5d/+7d/ykY98JD/96U+3eq7XXnstY8eOTZ8+fXLFFVfkxBNP3OJc1113Xa666qqce+65mTx5cn71q19l9OjRqaurK3p9rfkzO/vsszNlypQcdNBB+fKXv5xRo0ZlxowZLf73+9RTT+Wkk07KkUcemSuvvDK77rprzjzzzPz6178umhNga3j/FHjLO/XUUzN58uS8/PLL6d69e+bNm5dRo0Zlt9122+Jxhx56aI444oimeyW6d+++Vc9XWVmZCy64IP/yL/+Sd77znTnssMPy/ve/P0cffXQOOuigtnhJW23//fdPkjz99NOb3efrX/96nnnmmdx888354Ac/mCT5x3/8xxx44IFbPPfb3va2nHTSSTnnnHNywAEHbHJ5VWvssMMO2Xvvvbc47/33358XX3wxd911Vw4++OCm9c9+9rNbPdf69evz4Q9/ODNmzNiquZ566qn85je/Sf/+/ZMkRx99dIYPH54vfOELmTlz5la/vtI/s0ceeSTf+ta3cvbZZ2fOnDlJkk984hNNAXT33XfniCOOaNr/iSeeyH//93/n0EMPTZKcfPLJGTBgQL75zW9ut0+eAjoP70gAb3knn3xyXn755fzgBz/ISy+9lB/84AdbvKzpz02bNi21tbWZPXt20XNOnz498+fPz4EHHpg777wzl1xySYYOHZqDDjoojz32WGteRqv06NEjSfLSSy9tdp8FCxakf//++cAHPtC0Vl1dnQkTJmzz+VrSo0ePLc7bs2fPJMkPfvCDvPrqq61+nnPOOWer9z3hhBOaIiJJhg0bluHDh+f2229v9fNvjY3n/8v7dP75n/85SXLbbbc1Wx80aFBTRCR/egdkn332yTPPPLNN5wQ6JyEBvOX17t07Y8aMyfz58/Pd73439fX1m9zouzmHHXZYjjjiiFbdK3HKKafk3nvvbfrb81NPPTU///nPc/zxx+eVV15pzUsp9sc//jFJstNOO212n2XLlmWvvfba5Nr8d73rXdt0ts354x//uMV5R40alRNPPDHTp09Pr1698sEPfjDf/OY3N7lnYEu6du2ad7zjHVu9/7vf/e5N1vbee+9t/t0Wy5YtS2Vl5Sb/Lvr27ZuePXtm2bJlzdbf+c53bnKOXXfdNS+++OI2nRPonIQE0CmceuqpueOOOzJ79uwcc8wxTX+rvTWmTp2a2trafP3rX2/Vc++888458sgjM2/evJxxxhl5+umn87Of/axV5yq18Ybg9oqCUq+++mqefPLJLc5bUVGRm266KYsXL87EiRPz/PPP56yzzsrQoUObwun1VFVVpbKybf8vcHNfJFdfX7/Nzv2XNvfpVo2NjW94BoC/JCSATuFDH/pQKisr89Of/nSrL2vaaNSoUTn88MPzhS98ofhdib+08Zr+F1544Q2dZ2tdf/31qaio2OSjZv/c7rvvnqeffnqTXzafeuqp1z1/W38L80033ZSXX345Y8eOfd193/e+9+Vzn/tcHnzwwcybNy+//vWvc8MNN2yTuX7zm99ssvbkk082+4SnXXfdNatWrdpkv79816Bktt133z0NDQ2bPH9dXV1WrVqV3XfffavPBdDWhATQKfTo0SNf+9rXMm3atBx//PHFx2+8V+Ib3/jG6+67bt26LF68uMXH7rjjjiTJPvvsUzxDqc9//vO56667Mm7cuBYvzdlo7Nixef7553PLLbc0rb3yyitNN/duycYv62vpF+hSjzzySD71qU9l1113zbnnnrvZ/V588cVNomfIkCFJ0nR5U1vOlSQ333xznn/++aafH3jggfzsZz/LMccc07S211575fHHH2/27dyPPPJI7rvvvmbnKpnt2GOPTZLMmjWr2frGG7z/9m//tuh1ALQln9oEdBpnnHFGq48dNWpURo0alXvuued19123bl1GjhyZ973vfTn66KMzYMCArFq1KjfffHPuvffenHDCCa/7iUglXnvttfzHf/xHkj8FwLJly3LLLbfkF7/4RY444ojXjZ9//Md/zFe+8pWccsop+eQnP5l+/fpl3rx5qa6uTrLlv0Hv3r17Bg0alBtvvDF777133v72t2f//fdv+rSozbn33nvzyiuvpL6+Pr///e9z33335ZZbbskuu+yS733ve+nbt+9mj/3Wt76Vr371q/nQhz6UvfbaKy+99FLmzJmTnXfeuekX79bOtTnvete78v73vz/nnHNO1q9fn1mzZuWv/uqv8ulPf7ppn7POOiszZ87M2LFj89GPfjTLly/P7Nmz8573vCdr1qxp1Z/Z4MGDc8YZZ+Qb3/hGVq1alVGjRuWBBx7It771rZxwwgnNPrEJYHsTEgBbadq0aVv1i1vPnj0zZ86c3HbbbfnmN7+Z2tradOnSJfvss0++9KUv5bzzzmvTudavX5/TTjstyZ/+trtPnz4ZOnRopkyZ0nRJ15b06NEjP/7xj/NP//RP+dd//df06NEjp59+ekaOHJkTTzyxKSg255prrsk//dM/5fzzz8+GDRsyderU1/2F/aqrrkryp4977dmzZ/bbb79Mnz49EyZMaPrCts3Z+Mv0DTfckLq6uuyyyy4ZNmxY5s2blz322OMNzbU5p59+eiorKzNr1qwsX748w4YNy1e+8pWmb99Okv322y/XXXddpkyZkkmTJmXQoEG5/vrrM3/+/GZf6lc62zXXXJM999wz1157bVNkTZ48OVOnTm3VawFoKxWN7sACoAWzZs3K+eefn//93/9t9tGnAJAICQCSpi/r2+iVV17JgQcemPr6+jz55JPtOBkAHZVLmwDI3/3d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VUi8+OKLzX5+9dVX86tf/SqrVq3K6NGj22QwAACg42pVSHzve9/bZK2hoSHnnHNO9tprrzc8FAAA0LG12T0SlZWVmTRpUr785S+31SkBAIAOqk1vtn766afz2muvteUpAQCADqhVlzZNmjSp2c+NjY154YUXctttt+WMM85ok8EAAICOq1Uh8fOf/7zZz5WVlendu3euvPLK1/1EJwAA4M2vVSFx9913t/UcAADAm0irQmKjFStW5IknnkiS7LPPPundu3ebDAUAAHRsrbrZeu3atTnrrLPSr1+/HHbYYTnssMOy22675aMf/WjWrVvX1jMCAAAdTKtCYtKkSbnnnnty6623ZtWqVVm1alW+//3v55577sk///M/t/WMAABAB9OqS5v+67/+KzfddFMOP/zwprVjjz023bt3z8knn5yvfe1rbTUfAADQAbXqHYl169alpqZmk/U+ffq4tAkAADqBVoXEiBEjMnXq1LzyyitNay+//HKmT5+eESNGtNlwAABAx9SqS5tmzZqVo48+Ou94xzsyePDgJMkjjzySqqqq3HXXXW06IAAA0PG0KiTe+9735je/+U3mzZuXxx9/PElyyimn5CMf+Ui6d+/epgMCAAAdT6tCYsaMGampqcmECROarc+dOzcrVqzIhRde2CbDAQAAHVOr7pH4+te/nn333XeT9fe85z2ZPXv2Gx4KAADo2FoVErW1tenXr98m6717984LL7zwhocCAAA6tlaFxIABA3Lfffdtsn7fffdlt912e8NDAQAAHVur7pGYMGFCPvWpT+XVV1/N6NGjkyQLFy7Mpz/9ad9sDQAAnUCrQuKCCy7I73//+3ziE5/Ihg0bkiTV1dW58MILM3ny5DYdEAAA6HhaFRIVFRX5whe+kMsuuyyPPfZYunfvnne/+92pqqpq6/kAAIAOqFUhsVGPHj3y13/91201CwAA8CbRqputAQCAzk1IAAAAxYQEAABQTEgAAADFhAQAAFBMSAAAAMWEBAAAUExIAAAAxYQEAABQTEgAAADFhAQAAFBMSAAAAMWEBAAAUExIAAAAxYQEAABQTEgAAADFhAQAAFBMSAAAAMWEBAAAUExIAAAAxYQEAABQTEgAAADFhAQAAFBMSAAAAMWEBAAAUExIAAAAxYQEAABQTEgAAADFhAQAAFCsQ4TE1VdfnYEDB6a6ujrDhw/P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JAAAgGJCAgAAKCYkAACAYkICAAAoJiQAAIBiQgIAACgmJAAAgGJCAgAAKCYkAACAYkICAAAoJiQAAIBiQgIAACgmJAAAgGJCAgAAKCYkAACAYkICAAAoJiQAAIBiQgIAACgmJAAAgGJCAgAAKCYkAACAYkICAAAoJiQAAIBiQgIAACgmJAAAgGJCAgAAKCYkAACAYkICAAAoJiQAAIBiQgIAACgmJAAAgGJCAgAAKCYkAACAYkICAAAoJiQAAIBiQgIAACgmJAAAgGJCAgAAKCYkAACAYkICAAAoJiQAAIBiQgIAACgmJAAAgGJCAgAAKNYhQuLqq6/OwIEDU11dneHDh+eBBx7Y4v7f+c53su+++6a6ujrvfe97c/vtt2+nSQEAgKQDhMSNN96YSZMmZerUqXn44YczePDgjB07NsuXL29x//vvvz+nnHJKPvrRj+bnP/95TjjhhJxwwgn51a9+tZ0nBwCAzqvdQ2LmzJmZMGFCxo8fn0GDBmX27NnZcccdM3fu3Bb3/9d//dccffTRueCCC7LffvvlM5/5TA466KB85Stf2c6TAwBA59W1PZ98w4YNeeihhzJ58uSmtcrKyowZMyaLFy9u8ZjFixdn0qRJzdbGjh2bm2++ucX9169fn/Xr1zf9vHr16iRJ/YaXkyRr1qz508/rX97k2DVr1rS4vqXHtsX5OsIMne18HWGGzna+jjBDZztfR5ihs52vI8zQ2c7XEWbobOfrCDN0tvNtXN/4+21jY2OL52hzje3o+eefb0zSeP/99zdbv+CCCxqHDRvW4jE77LBD4/z585utXX311Y19+vRpcf+pU6c2JrHZbDabzWaz2TrF9vTTT7fNL+uvo90vbdrWJk+enNWrVzdtL774Yu688872HgsAALaJt7/97dvledr10qZevXqlS5cuqaura7ZeV1eXvn37tnhM3759i/avqqpKVVVVs7UBAwa8gakBAKDjqqzcPu8VtOs7Et26dcvQoUOzcOHCprWGhoYsXLgwI0aMaPGYESNGNNs/SX74wx9udn8AAGAb2C4XUG3BDTfc0FhVVdV47bXXNj766KONH/vYxxp79uzZWFtb29jY2Nh42mmnNV500UVN+993332NXbt2bbziiisaH3vsscapU6c27rDDDo2//OUvt/o5H3300Xa/ds1ms9lsNpvNZtsW2+rVq9v8d/aWtOulTUkybty4rFixIlOmTEltbW2GDBmSBQsWpKamJkny7LPPNnt7ZuTIkZk/f34uvfTSXHzxxXn3u9+dm2++Ofvvv/9WP2evXr0yYMCA9O3bt9m5Gxoa8rvf/S677bbbJm8JteaxjnC+jjBDZztfR5ihs52vI8zQ2c7XEWbobOfrCDN0tvN1hBk62/k6wgxv5vNVVlZm1KhRm1zWv61UNDZur8+HAgAA3ire8p/aBAAAtD0hAQAAFBMSAABAMSEBAAAUa/dPbdqeRo4cmcWLF7f3GAAA0OHU1dWlT58+W71/p3pH4rHHHmvvEQAAoMPYY489UllZmcrKyuy6665Fx3aqkNh7771z7rnn5pBDDmnvUQAAoN2tW7cuyZ++m+LXv/510bGdJiQ2bNiQhx56KGPGjMkTTzzR3uMAAEC7W716ddOX2v3+978vOrbT3COxcuXK1NfXp6amJi+++GJ7jwMAAO3ulVdeafrn5cuXFx3bad6R2Kiuri719fXtPQYAAHQor732WtH+nSYkevXqlS5duuRnP/tZe48CAAAdzrPPPlu0f6cJiW7duuWggw7KLbfckqqqqvYeBwAAOpTdd9+9aP9OExLJn2Li0UcfTUVFRXuPAgAA7aZLly7Nft5xxx3zN3/zN0XnqGhsbGxsy6E6MgEBAADN7bfffpk7d27e9773FR3XaT61KUk6UTMBAMA21akubQIAANqGkAAAAIoJCQAAoJiQAAAAigkJAACgmJAAAACKCQkAAKCYkAAAAIoJCQBaraKiIjfffPNW779o0aJUVFRk1apV22wmALYPIQHAJs4888xUVFSkoqIiO+ywQ2pqanLkkUdm7ty5aWhoaNrvhRdeyDHHHLPV5x05cmReeOGF7LLLLkmSa6+9Nj179mzr8QHYDoQEAC06+uij88ILL2Tp0qW54447csQRR+STn/xkjjvuuLz22mtJkr59+6aqqmqrz9mtW7f07ds3FRUV22psALYTIQFAi6qqqtK3b9/0798/Bx10UC6++OJ8//vfzx133JFrr702yaaXNt1///0ZMmRIqqurc/DBB+fmm29ORUVFlixZkqT5pU2LFi3K+PHjs3r16qZ3P6ZNm5Yk+epXv5p3v/vdqa6uTk1NTU466aTt++IBeF1d23sAAN48Ro8encGDB+e73/1uzj777GaPrVmzJscff3yOPfbYzJ8/P8uWLcunPvWpzZ5r5MiRmTVrVqZMmZInnngiSdKjR488+OCDOe+883L99ddn5MiR+cMf/pB77713W74sAFpBSABQZN99980vfvGLTdbnz5+fioqKzJkzJ9XV1Rk0aFCef/75TJgwocXzdOvWLbvssksqKirSt2/fpvVnn302b3vb23Lcccdlp512yu67754DDzxwm70eAFrHpU0AFGlsbGzxHocnnngiBxxwQKqrq5vWhg0bVnz+I488Mrvvvnv23HPPnHbaaZk3b17WrVv3hmYGoO0JCQCKPPbYY9ljjz222fl32mmnPPzww/n2t7+dfv36ZcqUKRk8eLCPjAXoYIQEAFvtxz/+cX75y1/mxBNP3OSxffbZJ7/85S+zfv36prX/+Z//2eL5unXrlvr6+k3Wu3btmjFjxuSLX/xifvGLX2Tp0qX58Y9//MZfAABtRkgA0KL169entrY2zz//fB5++OFcfvnl+eAHP5jjjjsup59++ib7n3rqqWloaMjHPvaxPPbYY7nzzjtzxRVXJMlmP+514MCB+eMf/5iFCxdm5cqVWbduXX7wgx/kqquuypIlS7Js2bJcd911aWhoyD777LNNXy8AZYQEAC1asGBB+vXrl4EDB+boo4/O3Xffnauuuirf//7306VLl03233nnnXPrrbdmyZIlGTJkSC655JJMmTIlSZrdN/HnRo4cmY9//OMZN25cevfunS9+8Yvp2bNnvvvd72b06NHZb7/9Mnv27Hz729/Oe97znm36egEoU9HY2NjY3kMA8NY0b968pu+K6N69e3uPA0Ab8vGvALSZ6667LnvuuWf69++fRx55JBdeeGFOPvlkEQHwFiQkAGgztbW1mTJlSmpra9OvX798+MMfzuc+97n2HguAbcClTQAAQDE3WwMAAMWEBAAAUExIAAAAxYQEAABQTEgAAADFhAQAAFBMSAAAAMWEBAAAUOz/A2Y7dzxcE31pAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.countplot(y_viz.numpy());\n", "plt.xlabel('Digits')\n", "plt.title(\"MNIST Digit Distribution\");" ] }, { "cell_type": "markdown", "metadata": { "id": "x_Wt4bDx_BRV" }, "source": [ "## データを処理する\n", "\n", "まず、画像を平坦化し、特徴行列を 2 次元に再形成します。次に、[0,255] のピクセル値が [0,1] の範囲に収まるようにデータを再スケーリングします。この手順により、入力ピクセルが同様の分布を持つようになり、トレーニングの収束に役立ちます。" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:39.691303Z", "iopub.status.busy": "2024-01-11T19:05:39.690661Z", "iopub.status.idle": "2024-01-11T19:05:39.742789Z", "shell.execute_reply": "2024-01-11T19:05:39.742125Z" }, "id": "JSyCm2V2_AvI" }, "outputs": [], "source": [ "def preprocess(x, y):\n", " # Reshaping the data\n", " x = tf.reshape(x, shape=[-1, 784])\n", " # Rescaling the data\n", " x = x/255\n", " return x, y\n", "\n", "train_data, val_data = train_data.map(preprocess), val_data.map(preprocess)" ] }, { "cell_type": "markdown", "metadata": { "id": "6o3CrycBXA2s" }, "source": [ "## MLP を構築する\n", "\n", "まず、[ReLU](https://developers.google.com/machine-learning/glossary#ReLU) と [ソフトマックス](https://developers.google.com/machine-learning/glossary#softmax)活性化関数を視覚化します。両方の関数は、それぞれ `tf.nn.relu` と `tf.nn.softmax` で利用できます。 ReLU は、正の場合は入力を出力し、それ以外の場合は 0 を出力する非線形活性化関数です。\n", "\n", "$$\\text{ReLU}(X) = max(0, X)$$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:39.746917Z", "iopub.status.busy": "2024-01-11T19:05:39.746206Z", "iopub.status.idle": "2024-01-11T19:05:40.713998Z", "shell.execute_reply": "2024-01-11T19:05:40.713343Z" }, "id": "hYunzt3UyT9G" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwkAAAIjCAYAAABI21doAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABmk0lEQVR4nO3deVxU9eLG8WfYBkVBEWVRRNxwB9EkbVFvFJp1pcX93tSbdSutjKy0W9p2s9UspaxuZXXd0kwrzTLMzERNAbfU1HAXXFmVdc7vD6/za3IDBM4An/frNa/izPecec5xHOfhzPeMxTAMQwAAAADwPy5mBwAAAADgXCgJAAAAABxQEgAAAAA4oCQAAAAAcEBJAAAAAOCAkgAAAADAASUBAAAAgANKAgAAAAAHlAQAAAAADigJAIALGjFihJo1a2bKYz/zzDOyWCymPHZOTo5GjRqlgIAAWSwWjR071pQcl2PmMQJQ/VESANRIM2fOlMVisd/c3NzUuHFjjRgxQocOHSrTNleuXCmLxaIFCxZcdIzFYtGYMWMueN+CBQtksVi0cuXKMj1+WRw+fFjPPPOMUlJSKu0xzzl9+rSeeeaZSt3fknjxxRc1c+ZM3X///fr000/197//3bQsznqMAFR/bmYHAAAzPffccwoNDVVeXp7Wrl2rmTNnavXq1dq6das8PT3NjlfhDh8+rGeffVbNmjVTRESEw33vv/++bDZbhT326dOn9eyzz0qSevXq5XDfU089pfHjx1fYY1/KihUrdPXVV2vSpEmmPP4fOesxAlD9URIA1Gh9+/ZV165dJUmjRo2Sn5+fXn75ZX355ZcaOHCgyenM5e7ubtpju7m5yc3NnH+ijh49qnbt2pny2KVh5jECUP3xcSMA+IPrrrtOkrRnzx6H5Tt27NCdd94pX19feXp6qmvXrvryyy/NiKh9+/bpgQceUFhYmGrVqqUGDRpowIAB2rt373ljMzIy9Mgjj6hZs2ayWq1q0qSJ7rrrLh0/flwrV67UVVddJUkaOXKk/aNXM2fOlOQ4J6GwsFC+vr4aOXLkeY+RlZUlT09PjRs3TpJUUFCgiRMnqkuXLvLx8ZGXl5euu+46/fDDD/Z19u7dq4YNG0qSnn32WftjP/PMM5Iu/Hn7oqIiPf/882rRooWsVquaNWumJ598Uvn5+Q7jmjVrpltuuUWrV69Wt27d5OnpqebNm+uTTz655HE993Gx1NRULVmyxJ5p79699o+n/fkYn1vnjx8H6tWrlzp06KBff/1VvXv3Vu3atdW4cWO98sor5z1mXl6ennnmGbVu3Vqenp4KDAzU7bffrj179jjlMQJQc1ASAOAPzr0JrF+/vn3Ztm3bdPXVV2v79u0aP368Xn/9dXl5eSk2NlZffPFFpWf85ZdftGbNGg0ePFhvvfWW7rvvPiUkJKhXr146ffq0fVxOTo6uu+46TZs2TTfddJPefPNN3XfffdqxY4cOHjyotm3b6rnnnpMk3Xvvvfr000/16aef6vrrrz/vMd3d3XXbbbdp0aJFKigocLhv0aJFys/P1+DBgyWdLQ3/+c9/1KtXL7388st65plndOzYMcXExNjnPjRs2FDvvPOOJOm2226zP/btt99+0f0eNWqUJk6cqMjISL3xxhvq2bOnJk+ebH/cP9q9e7fuvPNO3XjjjXr99ddVv359jRgxQtu2bbvo9tu2batPP/1Ufn5+ioiIsGc690a9NE6dOqU+ffooPDxcr7/+utq0aaMnnnhC33zzjX1McXGxbrnlFj377LPq0qWLXn/9dT388MPKzMzU1q1bnfIYAahBDACogT766CNDkvH9998bx44dMw4cOGAsWLDAaNiwoWG1Wo0DBw7Yx95www1Gx44djby8PPsym81m9OjRw2jVqpV92Q8//GBIMubPn3/Rx5VkjB49+oL3zZ8/35Bk/PDDD5fMfvr06fOWJSYmGpKMTz75xL5s4sSJhiRj4cKF54232WyGYRjGL7/8YkgyPvroo/PGDB8+3AgJCbH//O233xqSjK+++sph3M0332w0b97c/nNRUZGRn5/vMObUqVOGv7+/8Y9//MO+7NixY4YkY9KkSec99qRJk4w//hOVkpJiSDJGjRrlMG7cuHGGJGPFihX2ZSEhIYYkY9WqVfZlR48eNaxWq/Hoo4+e91h/FhISYvTr189h2bnnS2pqqsPyc3/mf/wz69mz53l/Fvn5+UZAQIBxxx132Jd9+OGHhiRjypQp52U49+fjrMcIQPXHmQQANVp0dLQaNmyo4OBg3XnnnfLy8tKXX36pJk2aSJJOnjypFStWaODAgcrOztbx48d1/PhxnThxQjExMdq1a1eZr4ZUVrVq1bL/f2FhoU6cOKGWLVuqXr16SkpKst/3+eef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64knntDOnTu1cOHCio5smuPHj6u4uPiCz5kdO3ZccJ20tLQa/xyTynbswsLC9OGHH6pTp07KzMzUa6+9ph49emjbtm1q0qRJZcSusi72vMvKytKZM2dUq1Ytk5I5v8DAQM2YMUNdu3ZVfn6+/vOf/6hXr15at26dIiMjzY5nGpvNprFjx+qaa65Rhw4dLjrOWV/zOJNQQcaPH3/BSTx/vP35Rf7QoUPq06ePBgwYoHvuucek5M6hLMevNAYPHqy//vWv6tixo2JjY/X111/rl19+0cqVK8tvJ0xS0ceuOqvoY3fvvfcqJiZGHTt21LBhw/TJJ5/oiy++0J49e8pxL1CTde/eXXfddZciIiLUs2dPLVy4UA0bNtS7775rdjRUY2FhYfrnP/+pLl26qEePHvrwww/Vo0cPvfHGG2ZHM9Xo0aO1detWzZ071+woZcKZhAry6KOPasSIEZcc07x5c/v/Hz58WL1791aPHj303nvvXXK9gIAAFRQUKCMjw+FsQnp6ugICAq4kttMo7fG7Us2bN5efn592796tG264ody2a4aKPHbnnl/p6ekKDAy0L09PT1dERESZtulMSnrsAgICzps4WlRUpJMnT5bq72BUVJSks2cQW7RoUeq8VYGfn59cXV3Pu/rapV6vAgICSjW+uirLsfszd3d3de7cWbt3766IiNXKxZ533t7enEUog27dumn16tVmxzDNmDFj7Be1uNxZPGd9zaMkVJCGDRuqYcOGJRp76NAh9e7dW126dNFHH30kF5dLn+Dp0qWL3N3dlZCQoDvuuEPS2SsK7N+/X927d7/i7M6gNMevPBw8eFAnTpxweONbVVXksQsNDVVAQIASEhLspSArK0vr1q0r9dWlnFFJj1337t2VkZGhjRs3qkuXLpKkFStWyGaz2d/4l0RKSookVYvn3cV4eHioS5cuSkhIUGxsrKSzp+ATEhI0ZsyYC67TvXt3JSQkaOzYsfZly5cvrzavbyVVlmP3Z8XFxdqyZYtuvvnmCkxaPXTv3v28y07WxOddeUlJSanWr20XYxiGHnzwQX3xxRdauXKlQkNDL7uO077mmTptGsbBgweNli1bGjfccINx8OBB48iRI/bbH8eEhYUZ69atsy+77777jKZNmxorVqwwNmzYYHTv3t3o3r27Gbtgun379hnJycnGs88+a9SpU8dITk42kpOTjezsbPuYsLAwY+HChYZhGEZ2drYxbtw4IzEx0UhNTTW+//57IzIy0mjVqpWRl5dn1m6YorTHzjAM46WXXjLq1atnLF682Ni8ebPRv39/IzQ01Dhz5owZu2CaPn36GJ07dzbWrVtnrF692mjVqpUxZMgQ+/1//nu7e/du47nnnjM2bNhgpKamGosXLzaaN29uXH/99WbtQqWZO3euYbVajZkzZxq//vqrce+99xr16tUz0tLSDMMwjL///e/G+PHj7eN//vlnw83NzXjttdeM7du3G5MmTTLc3d2NLVu2mLULpintsXv22WeNb7/91tizZ4+xceNGY/DgwYanp6exbds2s3bBNNnZ2fbXNEnGlClTjOTkZGPfvn2GYRjG+PHjjb///e/28b///rtRu3Zt47HHHjO2b99uxMfHG66ursayZcvM2gXTlPbYvfHGG8aiRYuMXbt2GVu2bDEefvhhw8XFxfj+++/N2gXT3H///YaPj4+xcuVKh/d0p0+fto+pKq95lASTffTRR4akC97OSU1NNSQZP/zwg33ZmTNnjAceeMCoX7++Ubt2beO2225zKBY1yfDhwy94/P54vCQZH330kWEYhnH69GnjpptuMho2bGi4u7sbISEhxj333GP/R7cmKe2xM4yzl0F9+umnDX9/f8NqtRo33HCDsXPnzsoPb7ITJ04YQ4YMMerUqWN4e3sbI0eOdChXf/57u3//fuP66683fH19DavVarRs2dJ47LHHjMzMTJP2oHJNmzbNaNq0qeHh4WF069bNWLt2rf2+nj17GsOHD3cY/9lnnxmtW7c2PDw8jPbt2xtLliyp5MTOozTHbuzYsfax/v7+xs0332wkJSWZkNp85y7L+efbueM1fPhwo2fPnuetExERYXh4eBjNmzd3eO2rSUp77F5++WWjRYsWhqenp+Hr62v06tXLWLFihTnhTXax93R/fC5Vldc8i2EYRkWeqQAAAABQtXB1IwAAAAAOKAkAAAAAHFASAAAAADigJAAAAABwQEkAAAAA4ICSAAAAAMABJQEAAACAA0oCAAAAAAeUBAAAAAAOKAkAAAAAHFASAAAAADigJAAAKt2xY8cUEBCgF1980b5szZo18vDwUEJCgonJAACSZDEMwzA7BACg5lm6dKliY2O1Zs0ahYWFKSIiQv3799eUKVPMjgYANR4lAQBgmtGjR+v7779X165dtWXLFv3yyy+yWq1mxwKAGo+SAAAwzZkzZ9ShQwcdOHBAGzduVMeOHc2OBAAQcxIAACbas2ePDh8+LJvNpr1795odBwDwP5xJAACYoqCgQN26dVNERITCwsI0depUbdmyRY0aNTI7GgDUeJQEAIApHnvsMS1YsECbNm1SnTp11LNnT/n4+Ojrr782OxoA1Hh83AgAUOlWrlypqVOn6tNPP5W3t7dcXFz06aef6qefftI777xjdjwAqPE4kwAAAADAAWcSAAAAADigJAAAAABwQEkAAAAA4ICSAAAAAMABJQEAAACAA0oCAAAAAAeUBAAAAAAOKAkAAAAAHFASAAAAADigJAAAAABwQEkAAAAA4OD/AN7+ALik2+4/AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = tf.linspace(-2, 2, 201)\n", "x = tf.cast(x, tf.float32)\n", "plt.plot(x, tf.nn.relu(x));\n", "plt.xlabel('x')\n", "plt.ylabel('ReLU(x)')\n", "plt.title('ReLU activation function');" ] }, { "cell_type": "markdown", "metadata": { "id": "fuGrM9jMwsRM" }, "source": [ "ソフトマックス活性化関数は、$m$ 実数を $m$ 結果/クラスの確率分布に変換する正規化された指数関数です。これは、ニューラルネットワークの出力からクラスの確率を予測するのに役立ちます。\n", "\n", "$$\\text{Softmax}(X) = \\frac{e^{X}}{\\sum_{i=1}^{m}e^{X_i}}$$" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.718013Z", "iopub.status.busy": "2024-01-11T19:05:40.717382Z", "iopub.status.idle": "2024-01-11T19:05:40.926421Z", "shell.execute_reply": "2024-01-11T19:05:40.925729Z" }, "id": "fVM8pvhWwuwI" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxIAAAIjCAYAAACXlS13AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABuxElEQVR4nO3deVyVZf7/8fc5LAfZBRREUXDJXTFRxBY1KUqbxlZ1mjS/tn2nTKOm1K9pNVO0jI1TOjo2pU2TP82prMyx1GwbyQW1XNJRc1c2EVCQ7Zz79wdy8gQqIHhz4PV8PM7Aue7rvu/PfYPNeXNf131bDMMwBAAAAAA1YDW7AAAAAADuhyABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABALX0yiuvqH379vLw8FBsbKzZ5biNhQsXymKx6MCBA5d9319++aUsFou+/PLLy75vyT1+Z8w+RwDcB0ECQJOwbds23XHHHWrXrp18fHzUunVrXX/99Xr99ddrtb3PP/9cTz75pK666iotWLBAL7zwgo4dO6ZnnnlGW7durdvi3dQLL7ygZcuWmbLvv/71r1q4cKEp+z6fqn5nzNQQzxEA92IxDMMwuwgAqE/r1q3TkCFD1LZtW40dO1YRERE6fPiwvvvuO+3bt0979+6t8TYnT56sV155RWfOnJG3t7ckadOmTerXr58WLFige++9t46Pwv34+/vrjjvuqPRh1W63q7S0VDabTRaLpV723aNHD4WFhVX6q7rD4VBJSYm8vb1ltV7ev6VV9TtjpoZ4jgC4F0+zCwCA+vb8888rKChIGzduVHBwsMuyzMzMWm0zMzNTzZo1axAfCN2Nh4eHPDw8TNm31WqVj4+PKft2l98ZM88RAPfCnxoANHr79u1T9+7dK4UISWrZsqXL+7KyMv3hD39Qhw4dZLPZFB0dralTp6q4uNjZx2KxaMGCBSooKJDFYpHFYtHChQvVr18/SdK4ceNc2iVp8ODB6tGjh3744QcNGjRIvr6+6tixo/71r39Jkr766ivFx8erWbNm6ty5s1avXu1S18GDB/W73/1OnTt3VrNmzRQaGqo777zTZZ6BYRgaMmSIWrRo4RKQSkpK1LNnT3Xo0EEFBQXnPU8lJSWaPn26+vbtq6CgIPn5+emaa67R2rVrK/V1OBz6y1/+op49e8rHx0ctWrTQjTfeqE2bNjnPUUFBgd5++23nuai4SvPLORI333yz2rdvX2VNCQkJiouLc75fsGCBrrvuOrVs2VI2m03dunXT3LlzXdaJjo7Wjh079NVXXzn3PXjwYEnnH/+/dOlS9e3bV82aNVNYWJh++9vf6ujRoy597r33Xvn7++vo0aMaMWKE/P391aJFCz3xxBOy2+3nPa8V56Oq35kDBw64/J78cp1nnnnG+f6ZZ56RxWLR3r17de+99yo4OFhBQUEaN26cCgsLK63/z3/+U/3795evr6+aN2+ua6+9Vp9//nmDPUcA3A9BAkCj165dO6WlpWn79u0X7Xvfffdp+vTpuvLKK/XnP/9ZgwYNUkpKikaNGuXs88477+iaa66RzWbTO++8o3feeUddu3bVc889J0l64IEHnO3XXnutc72TJ0/q5ptvVnx8vF5++WXZbDaNGjVKS5Ys0ahRozRs2DC9+OKLKigo0B133KFTp0451924caPWrVunUaNG6bXXXtNDDz2kNWvWaPDgwc4PkRaLRW+99ZaKior00EMPOdedMWOGduzYoQULFsjPz++8x56fn6+///3vGjx4sF566SU988wzysrKUlJSUqV5H+PHj9ekSZMUFRWll156SZMnT5aPj4++++475zmy2Wy65pprnOfiwQcfrHK/I0eO1P79+7Vx40aX9oMHD+q7775zOfdz585Vu3btNHXqVM2cOVNRUVH63e9+pzlz5jj7zJo1S23atFGXLl2c+/6///u/8x73woULddddd8nDw0MpKSm6//779cEHH+jqq69Wbm6uS1+73a6kpCSFhobqT3/6kwYNGqSZM2dq/vz5591+xfn45e/Mub8bNXHXXXfp1KlTSklJ0V133aWFCxfq2Wefdenz7LPP6p577pGXl5eee+45Pfvss4qKitIXX3zRYM8RADdkAEAj9/nnnxseHh6Gh4eHkZCQYDz55JPGZ599ZpSUlLj027p1qyHJuO+++1zan3jiCUOS8cUXXzjbxo4da/j5+bn027hxoyHJWLBgQaUaBg0aZEgyFi1a5GzbtWuXIcmwWq3Gd99952z/7LPPKm2nsLCw0jZTU1MNScY//vEPl/a//e1vhiTjn//8p/Hdd98ZHh4exqRJk85/gs4qKysziouLXdpOnjxphIeH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F198Uffdd5/i4uL09ddf67///W+tt9exY0f93//9n/7whz/ommuu0W233SabzaaNGzcqMjJSKSkpktzrHAFooEy6WxQAXDb//ve/jf/5n/8xunTpYvj7+xve3t5Gx44djQkTJhgZGRkufUtLS41nn33WiImJMby8vIyoqChjypQpRlFRkUu/qm7laRiG8dFHHxndunUzPD09XW7rOWjQIKN79+6V+rdr184YPnx4pXZJxsMPP+x8f/LkSWPcuHFGWFiY4e/vbyQlJRm7du0y2rVr57zF6uHDh42goCDjV7/6VaXt3XrrrYafn5/x008/nfc8ORwO44UXXjDatWtn2Gw2o0+fPsby5cuNsWPHGu3atXPpW1ZWZrzyyitGly5dDG9vb6NFixbGTTfdZKSlpTn77Nq1y7j22muNZs2aGZKcdf7y9q/nuvvuuw1JRmJiYpU1fvzxx0avXr0MHx8fIzo62njppZeMt956q9L20tPTjeHDhxsBAQGGJOdtTn95a9MKS5YsMfr06WPYbDYjJCTEuPvuu40jR4649Dnfz7zitqwXc771CwsLjfHjxxtBQUFGQECAcddddxmZmZnnvf1rVlaWy/rnO59vvfWW85iaN29uDBo0yFi1alWDPkcA3IvFMBrI7CwAAAAAboM5EgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMYIEgAAAABqjCABAAAAoMZ4IF0tORwOHTt2TAEBAbJYLGaXAwAAAFwywzB06tQpRUZGymq98DUHgkQtHTt2TFFRUWaXAQAAANS5w4cPq02bNhfsQ5CopYCAAEnlJzkwMNDkagAAAIBLl5+fr6ioKOdn3QshSNRSxXCmwMBAggQAAAAaleoM3WeyNQAAAIAaI0gAAAAAqDGCBAAAAIAaI0gAAAAAqDGCBAAAAIAaI0gAAAAAqLEGESTmzJmj6Oho+fj4KD4+Xhs2bLhg/6VLl6pLly7y8fFRz549tWLFivP2feihh2SxWDRr1iyX9pycHN19990KDAxUcHCwxo8fr9OnT9fF4QAAAACNnulBYsmSJUpOTtaMGTO0efNm9e7dW0lJScrMzKyy/7p16zR69GiNHz9eW7Zs0YgRIzRixAht3769Ut8PP/xQ3333nSIjIystu/vuu7Vjxw6tWrVKy5cv19dff60HHnigzo8PAAAAaIwshmEYZhYQHx+vfv36afbs2ZIkh8OhqKgoTZgwQZMnT67Uf+TIkSooKNDy5cudbQMGDFBsbKzmzZvnbDt69Kji4+P12Wefafjw4Zo0aZImTZokSfrxxx/VrVs3bdy4UXFxcZKklStXatiwYTpy5EiVwaO4uFjFxcXO9xVP/cvLy+OBdAAAAGgU8vPzFRQUVK3PuKZekSgpKVFaWpoSExOdbVarVYmJiUpNTa1yndTUVJf+kpSUlOTS3+Fw6J577tHvf/97de/evcptBAcHO0OEJCUmJspqtWr9+vVV7jclJUVBQUHOV1RUVI2OFQAAAGhMTA0S2dnZstvtCg8Pd2kPDw9Xenp6leukp6dftP9LL70kT09PPfroo+fdRsuWLV3aPD09FRISct79TpkyRXl5ec7X4cOHL3p8AAAAQGPlaXYBdS0tLU1/+ctftHnzZlksljrbrs1mk81mq7PtAQAAAO7M1CsSYWFh8vDwUEZGhkt7RkaGIiIiqlwnIiLigv2/+eYbZWZmqm3btvL09JSnp6cOHjyoxx9/XNHR0c5t/HIyd1lZmXJycs67XwAAAAA/MzVIeHt7q2/fvlqzZo2zzeFwaM2aNUpISKhynYSEBJf+krRq1Spn/3vuuUc//PCDtm7d6nxFRkbq97//vT777DPnNnJzc5WWlubcxhdffCGHw6H4+Pi6PkwAAACg0TF9aFNycrLGjh2ruLg49e/fX7NmzVJBQYHGjRsnSRozZoxat26tlJQUSdLEiRM1aNAgzZw5U8OHD9fixYu1adMmzZ8/X5IUGhqq0NBQl314eXkpIiJCnTt3liR17dpVN954o+6//37NmzdPpaWleuSRRzRq1Kgq79gEAAAAwJXpQWLkyJHKysrS9OnTlZ6ertjYWK1cudI5ofrQoUOyWn++cDJw4EAtWrRI06ZN09SpU9WpUyctW7ZMPXr0qNF+3333XT3yyCMaOnSorFarbr/9dr322mt1emwAAABAY2X6cyTcVU3usQsAAABUx/7sAn1/OFe9o4IVE+Z32ffvNs+RAAAAAPCz1TszNGnJVr30711ml3JRBAkAAACggdhxLE+S1D2y4Y94IUgAAAAADcT2Y/mSpO6tCRIAAAAAquFMiV0/ZZ2WJPWIDDK5mosjSAAAAAANwI/p+XIYUpi/TS0Dfcwu56IIEgAAAEADsKNiWJMbzI+QCBIAAABAg7DjqPtMtJYIEgAAAECDUHFFokfrhj8/QiJIAAAAAKYrtTu0O/2UJK5IAAAAAKimvZmnVWJ3KMDmqajmvmaXUy0ECQAAAMBk28/Oj+gaGSir1WJyNdVDkAAAAABM5pwf4QbPj6hAkAAAAABMttPNbv0qESQAAAAAUzkchnYcO3vr19YECQAAAADVcDCnUAUldnl7WtWhhb/Z5VQbQQIAAAAwUcXViK4RAfLycJ+P5+5TKQAAANAIVUy07uZGE60lggQAAABgqopbv7rTRGuJIAEAAACYxjAMbTsbJHq14YoEAAAAgGo4cvKMcgtL5eVhUeeIALPLqRGCBAAAAGCSimFNV4QHyObpYXI1NUOQAAAAAEzyw9kg0bO1ew1rkggSAAAAgGkqrkj0dLP5ERJBAgAAADDFuROtuSIBAAAAoFrceaK1RJAAAAAATFFxNaJzhPtNtJYIEgAAAIAp3HlYk0SQAAAAAExRMdG6B0ECAAAAQHUYhqEfjnBFAgAAAEANHDl5Rnln3HeitUSQAAAAAC47d59oLREkAAAAgMvO3SdaSwQJAAAA4LLbdsS9J1pLBAkAAADgsiqfaJ0rSerVOtjUWi4FQQIAAAC4jA6cKFR+UZm8Pa1uO9FaIkgAAAAAl1XF1YhurQLl7em+H8fdt3IAAADADX1/uHx+RO827js/QiJIAAAAAJfV92evSPSOCja1jktFkAAAAAAukzK7QzuOlV+R6NUm2NxiLhFBAgAAALhM/ptxWkWlDgXYPNU+zM/sci4JQQIAAAC4TCqGNfVsEySr1WJuMZeIIAEAAABcJs7nR7j5sCapgQSJOXPmKDo6Wj4+PoqPj9eGDRsu2H/p0qXq0qWLfHx81LNnT61YscJl+TPPPKMuXbrIz89PzZs3V2JiotavX+/SJzo6WhaLxeX14osv1vmxAQAAABW2nr1jU2yUe9+xSWoAQWLJkiVKTk7WjBkztHnzZvXu3VtJSUnKzMyssv+6des0evRojR8/Xlu2bNGIESM0YsQIbd++3dnniiuu0OzZs7Vt2zZ9++23io6O1g033KCsrCyXbT333HM6fvy48zVhwoR6PVYAAAA0XWdK7PpvxilJjeOKhMUwDMPMAuLj49WvXz/Nnj1bkuRwOBQVFaUJEyZo8uTJlfqPHDlSBQUFWr58ubNtwIABio2N1bx586rcR35+voKCgrR69WoNHTpUUvkViUmTJmnSpEm1qrtim3l5eQoMDKzVNgAAANB0pB3M0e1zUxXmb9PG/xsqi6XhzZGoyWdcU69IlJSUKC0tTYmJic42q9WqxMREpaamVrlOamqqS39JSkpKOm//kpISzZ8/X0FBQerdu7fLshdffFGhoaHq06ePXnnlFZWVlZ231uLiYuXn57u8AAAAgOo6d1hTQwwRNeVp5s6zs7Nlt9sVHh7u0h4eHq5du3ZVuU56enqV/dPT013ali9frlGjRqmwsFCtWrXSqlWrFBYW5lz+6KOP6sorr1RISIjWrVunKVOm6Pjx43r11Ver3G9KSoqeffbZ2hwmAAAA0KgmWksmB4n6NGTIEG3dulXZ2dl64403dNddd2n9+vVq2bKlJCk5OdnZt1evXvL29taDDz6olJQU2Wy2StubMmWKyzr5+fmKioqq/wMBAABAo/DDkfIrEu7+ROsKpg5tCgsLk4eHhzIyMlzaMzIyFBERUeU6ERER1erv5+enjh07asCAAXrzzTfl6empN99887y1xMfHq6ysTAcOHKhyuc1mU2BgoMsLAAAAqI7cwhLtzy6QJPVq7f53bJJMDhLe3t7q27ev1qxZ42xzOBxas2aNEhISqlwnISHBpb8krVq16rz9z91ucXHxeZdv3bpVVqvVecUCAAAAqCtbD+dKkmLC/NTcz9vcYuqI6UObkpOTNXbsWMXFxal///6aNWuWCgoKNG7cOEnSmDFj1Lp1a6WkpEiSJk6cqEGDBmnmzJkaPny4Fi9erE2bNmn+/PmSpIKCAj3//PO65ZZb1KpVK2VnZ2vOnDk6evSo7rzzTknlE7bXr1+vIUOGKCAgQKmpqXrsscf029/+Vs2bNzfnRAAAAKDR2nIoV5IU20iGNUkNIEiMHDlSWVlZmj59utLT0xUbG6uVK1c6J1QfOnRIVuvPF04GDhyoRYsWadq0aZo6dao6deqkZcuWqUePHpIkDw8P7dq1S2+//bays7MVGhqqfv366ZtvvlH37t0llQ9TWrx4sZ555hkVFxcrJiZGjz32mMscCAAAAKCuVFyR6NM22NQ66pLpz5FwVzxHAgAAANVhGIZin1ulvDOl+viRqxr0XZvc5jkSAAAAQGO3P7tAeWdKZfO0qktE4/kDNEECAAAAqEcV8yN6tA6St2fj+fjdeI4EAAAAaICc8yMa0URriSABAAAA1Ksth09Kkvq0bVx3ByVIAAAAAPXkTIldPx4/JUmKbUR3bJIIEgAAAEC92X4sT3aHoZYBNkUG+ZhdTp0iSAAAAAD1ZMuh8mFNsVHBslgsJldTtwgSAAAAQD35+UF0jWt+hESQAAAAAOpNxa1fYxvZHZskggQAAABQLzLyi3Q8r0hWi9SrTZDZ5dQ5ggQAAABQD9IOls+P6BwRKD+bp8nV1D2CBAAAAFAPNp8NEn3bBZtbSD0hSAAAAAD1IO1QRZBofBOtJYIEAAAAUOeKSu3afjRPktS3bYjJ1dQPggQAAABQx7YfzVOp3VCYv01RIc3MLqdeECQAAACAOpZ2zvyIxvYgugoECQAAAKCObW7k8yMkggQAAABQpwzDUNrBXEkECQAAAADVdDjnjLJPF8vbw6rukY3vQXQVCBIAAABAHUo7lCNJ6t46UD5eHiZXU38IEgAAAEAdck60btt4hzVJBAkAAACgTm1uAvMjJIIEAAAAUGdOF5dpV3q+JOlKggQAAACA6vj+cK4chtSmeTOFB/qYXU69IkgAAAAAdWTjgfKJ1o19WJNEkAAAAADqzKYD5ROt+0WHmFxJ/SNIAAAAAHWgzO5wPtGaIAEAAACgWn48fkqFJXYF+niqU0t/s8updwQJAAAAoA5sODs/Ii46RFarxeRq6h9BAgAAAKgDm5xBovFPtJYIEgAAAMAlMwxDG89OtO7fBOZHSAQJAAAA4JIdPFGo7NPF8va0qmebILPLuSwIEgAAAMAlqnh+RO82QbJ5ephczeVBkAAAAAAuUcXzI+KayLAmiSABAAAAXLKKKxL9mshEa4kgAQAAAFyS7NPF+im7QJLUty1XJAAAAABUQ8Wwps7hAQry9TK5msuHIAEAAABcgo1N7PkRFQgSAAAAwCVYv/+EJCm+fajJlVxeBAkAAACglvKLSrXzWL4kKT6m6cyPkAgSAAAAQK2lHTgphyFFh/oqPNDH7HIuK4IEAAAAUEvfVQxrimlaw5okggQAAABQaxv2l0+07t/EhjVJDSRIzJkzR9HR0fLx8VF8fLw2bNhwwf5Lly5Vly5d5OPjo549e2rFihUuy5955hl16dJFfn5+at68uRITE7V+/XqXPjk5Obr77rsVGBio4OBgjR8/XqdPn67zYwMAAEDjVFhSpm1H8iRJ8e0JEpfdkiVLlJycrBkzZmjz5s3q3bu3kpKSlJmZWWX/devWafTo0Ro/fry2bNmiESNGaMSIEdq+fbuzzxVXXKHZs2dr27Zt+vbbbxUdHa0bbrhBWVlZzj533323duzYoVWrVmn58uX6+uuv9cADD9T78QIAAKBxSDt4UmUOQ62Dm6lNc1+zy7nsLIZhGGYWEB8fr379+mn27NmSJIfDoaioKE2YMEGTJ0+u1H/kyJEqKCjQ8uXLnW0DBgxQbGys5s2bV+U+8vPzFRQUpNWrV2vo0KH68ccf1a1bN23cuFFxcXGSpJUrV2rYsGE6cuSIIiMjL1p3xTbz8vIUGBhYm0MHAACAG5v5+W69/sVe3dantV4dGWt2OXWiJp9xTb0iUVJSorS0NCUmJjrbrFarEhMTlZqaWuU6qampLv0lKSkp6bz9S0pKNH/+fAUFBal3797ObQQHBztDhCQlJibKarVWGgJVobi4WPn5+S4vAAAANF3rfyqfH9EUhzVJJgeJ7Oxs2e12hYeHu7SHh4crPT29ynXS09Or1X/58uXy9/eXj4+P/vznP2vVqlUKCwtzbqNly5Yu/T09PRUSEnLe/aakpCgoKMj5ioqKqtGxAgAAoPEoKrVr6+FcSVL/JnjHJqkBzJGoL0OGDNHWrVu1bt063XjjjbrrrrvOO++iOqZMmaK8vDzn6/Dhw3VYLQAAANzJ1sO5KrE71DLApujQpjc/QjI5SISFhcnDw0MZGRku7RkZGYqIiKhynYiIiGr19/PzU8eOHTVgwAC9+eab8vT01Jtvvuncxi9DRVlZmXJycs67X5vNpsDAQJcXAAAAmqafhzWFymKxmFyNOUwNEt7e3urbt6/WrFnjbHM4HFqzZo0SEhKqXCchIcGlvyStWrXqvP3P3W5xcbFzG7m5uUpLS3Mu/+KLL+RwOBQfH1/bwwEAAEAT8d1P5Q+ia4rPj6jgaXYBycnJGjt2rOLi4tS/f3/NmjVLBQUFGjdunCRpzJgxat26tVJSUiRJEydO1KBBgzRz5kwNHz5cixcv1qZNmzR//nxJUkFBgZ5//nndcsstatWqlbKzszVnzhwdPXpUd955pySpa9euuvHGG3X//fdr3rx5Ki0t1SOPPKJRo0ZV645NAAAAaLqKSu1KO3RSkpTQvmnOj5AaQJAYOXKksrKyNH36dKWnpys2NlYrV650Tqg+dOiQrNafL5wMHDhQixYt0rRp0zR16lR16tRJy5YtU48ePSRJHh4e2rVrl95++21lZ2crNDRU/fr10zfffKPu3bs7t/Puu+/qkUce0dChQ2W1WnX77bfrtddeu7wHDwAAALez5VCuSsocahFgU4cWfmaXYxrTnyPhrniOBAAAQNP06qr/6rU1e3RL70i9NrqP2eXUKbd5jgQAAADgbr7bVz4/YmCHpjusSSJIAAAAANV2psSuLYfPzo8gSAAAAACojk0Hc1RqNxQZ5KO2IU3z+REVCBIAAABANaWeHdY0oEPTfX5EBYIEAAAAUE2pZ58f0ZRv+1qBIAEAAABUw+niMv1wJE8S8yMkggQAAABQLRv358juMNQ2xFdtmjft+RESQQIAAACoFoY1uSJIAAAAANVQMdGaYU3lCBIAAADAReQWlmj7sfL5EU39QXQVCBIAAADARaTuOyHDkK4I91fLQB+zy2kQCBIAAADARXy7N1uSdFXHMJMraTgIEgAAAMBF/KciSHQgSFQgSAAAAAAXcDinUAdOFMrDalF8+xCzy2kwCBIAAADABazbV341IjYqWAE+XiZX03AQJAAAAIAL+M/e8tu+Mj/CFUECAAAAOA+Hw3DOj7iaIOGCIAEAAACcx+6MUzpRUCJfbw/FRgWbXU6DQpAAAAAAzqPiakR8TIi8PfnofC7OBgAAAHAePD/i/AgSAAAAQBVKyhzasD9HknR1J4LELxEkAAAAgCpsOpijwhK7wvxt6hweYHY5DQ5BAgAAAKjCN3vKhzVd2ylMFovF5GoaHoIEAAAAUIWv/5slSbr2ihYmV9IwESQAAACAX8g+Xawdx/IlMT/ifAgSAAAAwC98e3ZYU/fIQIX520yupmEiSAAAAAC/wLCmiyNIAAAAAOcwDENfn70icQ3Dms6LIAEAAACc48fjp5R9uli+3h7q26652eU0WAQJAAAA4Bxf7ykf1jSgfahsnh4mV9NwESQAAACAc3xzNkhcy7CmCyJIAAAAAGedKbFr4/6TkphofTEECQAAAOCs1J+yVWJ3qHVwM8WE+ZldToNGkAAAAADO+nJ3+bCmIV1ayGKxmFxNw0aQAAAAAFR+29cvdmVKkgZf0dLkaho+ggQAAAAgaV9WgY6cPCNvD6sGdgw1u5wGjyABAAAASPpyd/nViPj2IfL19jS5moaPIAEAAADo5/kRg7hbU7UQJAAAANDkFRSXacP+HEnSkC7Mj6gOggQAAACavHX7TqjE7lBUSDO157av1UKQAAAAQJNXMT9iSOeW3Pa1mggSAAAAaNIMw3DOjxjcmfkR1dUggsScOXMUHR0tHx8fxcfHa8OGDRfsv3TpUnXp0kU+Pj7q2bOnVqxY4VxWWlqqp556Sj179pSfn58iIyM1ZswYHTt2zGUb0dHRslgsLq8XX3yxXo4PAAAADdfezNM6mntG3p5WJbQPM7sct2F6kFiyZImSk5M1Y8YMbd68Wb1791ZSUpIyMzOr7L9u3TqNHj1a48eP15YtWzRixAiNGDFC27dvlyQVFhZq8+bNevrpp7V582Z98MEH2r17t2655ZZK23ruued0/Phx52vChAn1eqwAAABoeCoeQjegfaiaeXuYXI37sBiGYZhZQHx8vPr166fZs2dLkhwOh6KiojRhwgRNnjy5Uv+RI0eqoKBAy5cvd7YNGDBAsbGxmjdvXpX72Lhxo/r376+DBw+qbdu2ksqvSEyaNEmTJk2qVd35+fkKCgpSXl6eAgMDa7UNAAAAmO+ueanacCBHz97SXWMHRptdjqlq8hnX1CsSJSUlSktLU2JiorPNarUqMTFRqampVa6Tmprq0l+SkpKSzttfkvLy8mSxWBQcHOzS/uKLLyo0NFR9+vTRK6+8orKysvNuo7i4WPn5+S4vAAAAuLfcwhJtOlh+29fruO1rjZj6yL7s7GzZ7XaFh4e7tIeHh2vXrl1VrpOenl5l//T09Cr7FxUV6amnntLo0aNdUtWjjz6qK6+8UiEhIVq3bp2mTJmi48eP69VXX61yOykpKXr22WdrcngAAABo4L7cnSWHIXUOD1BUiK/Z5biVRv3s79LSUt11110yDENz5851WZacnOz8vlevXvL29taDDz6olJQU2Wy2StuaMmWKyzr5+fmKioqqv+IBAABQ79acnR8xtCtXI2rK1CARFhYmDw8PZWRkuLRnZGQoIiKiynUiIiKq1b8iRBw8eFBffPHFRcd4xcfHq6ysTAcOHFDnzp0rLbfZbFUGDAAAALinUrvD+fyIoV3DL9Ibv2TqHAlvb2/17dtXa9ascbY5HA6tWbNGCQkJVa6TkJDg0l+SVq1a5dK/IkTs2bNHq1evVmho6EVr2bp1q6xWq1q2JI0CAAA0BZsOnNSpojKF+HkrNirY7HLcjulDm5KTkzV27FjFxcWpf//+mjVrlgoKCjRu3DhJ0pgxY9S6dWulpKRIkiZOnKhBgwZp5syZGj58uBYvXqxNmzZp/vz5kspDxB133KHNmzdr+fLlstvtzvkTISEh8vb2VmpqqtavX68hQ4YoICBAqampeuyxx/Tb3/5WzZs3N+dEAAAA4LJa82P5KJchnVvKw8rTrGvK9CAxcuRIZWVlafr06UpPT1dsbKxWrlzpnFB96NAhWa0/XzgZOHCgFi1apGnTpmnq1Knq1KmTli1bph49ekiSjh49qo8//liSFBsb67KvtWvXavDgwbLZbFq8eLGeeeYZFRcXKyYmRo899pjLHAgAAAA0bl8wP+KSmP4cCXfFcyQAAADc109Zp3XdzK/k5WHR5qevV4CPl9klNQhu8xwJAAAAwAxrfiy/GhEfE0qIqCWCBAAAAJqcVTvL50cwrKn2CBIAAABoUk6cLnY+zfr6btz2tbYIEgAAAGhS1uzKlMOQukcGqk1znmZdWwQJAAAANCmf7ygf1nRDt6ofgIzqIUgAAACgyThTYte3e7MkMazpUhEkAAAA0GR8vSdLRaUOtWneTF1bBZhdjlsjSAAAAKDJqBjWdH23cFksPM36UhAkAAAA0CSU2R36YhfzI+oKQQIAAABNwqaDJ3WysFTBvl7qF93c7HLcHkECAAAATULFsKbrurSUpwcfgy8VZxAAAACNnmEY+mxHuiSGNdUVggQAAAAavW1H83Q094yaeXlo0BUtzC6nUSBIAAAAoNFbub38asSQLi3UzNvD5GoaB4IEAAAAGjXDMJxBIqk7w5rqCkECAAAAjdp/M07rp+wCeXtYdV2XlmaX02h41nSF3Nxcffjhh/rmm2908OBBFRYWqkWLFurTp4+SkpI0cODA+qgTAAAAqJV/bz8uSbqmU5gCfLxMrqbxqPYViWPHjum+++5Tq1at9Mc//lFnzpxRbGyshg4dqjZt2mjt2rW6/vrr1a1bNy1ZsqQ+awYAAACqrWJY0409GNZUl6p9RaJPnz4aO3as0tLS1K1btyr7nDlzRsuWLdOsWbN0+PBhPfHEE3VWKAAAAFBT+7MLtCv9lDytFl3fLdzschqVageJnTt3KjQ09IJ9mjVrptGjR2v06NE6ceLEJRcHAAAAXIqKqxEJHUIV7OttcjWNS7WHNl0sRFQwDKNG/QEAAID6svLs/AiGNdW9Wt216d5771VBQUGl9gMHDujaa6+95KIAAACAS3U4p1DfH8mT1cLTrOtDrYLE999/r169eik1NdXZ9vbbb6t3794KCwurs+IAAACA2vp0W/nViAHtQ9UiwGZyNY1PjW//KkkbNmzQ1KlTNXjwYD3++OPau3ev/v3vf+vVV1/V/fffX9c1AgAAADX26Q/lQeLmXpEmV9I41SpIeHl56ZVXXpGvr6/+8Ic/yNPTU1999ZUSEhLquj4AAACgxg5kF2jb0Tx5WC1K6s7dmupDrYY2lZaW6vHHH9dLL72kKVOmKCEhQbfddptWrFhR1/UBAAAANVYxrGlgh1CF+jOsqT7U6opEXFycCgsL9eWXX2rAgAEyDEMvv/yybrvtNv3P//yP/vrXv9Z1nQAAAEC1VQxrGt6zlcmVNF61uiIRFxenrVu3asCAAZIki8Wip556Sqmpqfr666/rtEAAAACgJn7KOq2dx/PlabUoqTt3a6ovtboi8eabb1bZ3qdPH6WlpV1SQQAAAMClqLgacVXHMDX34yF09aXaVySqem5EVWw2W436AwAAAHWpYn7E8F4Ma6pP1Q4SHTt21Isvvqjjx4+ft49hGFq1apVuuukmvfbaa3VSIAAAAFBd/804pV3pp+TlYVESD6GrV9Ue2vTll19q6tSpeuaZZ9S7d2/FxcUpMjJSPj4+OnnypHbu3KnU1FR5enpqypQpevDBB+uzbgAAAKCSj7cekyQNuqKlgny9TK6mcat2kOjcubPef/99HTp0SEuXLtU333yjdevW6cyZMwoLC1OfPn30xhtv6KabbpKHh0d91gwAAABUYhiGPvr+qCTp17E8hK6+WQzDMMwuwh3l5+crKChIeXl5CgwMNLscAACAJm/zoZO67a/r5OvtobRp16uZN3/crqmafMat1e1fi4qKzrvsQnMoAAAAgPpSMazphm7hhIjLoFZB4sorr9TWrVsrtb///vvq1avXpdYEAAAA1EiZ3aHlZ2/7+uvY1iZX0zTUKkgMHjxYAwYM0EsvvSSp/Fav9957r+655x5NnTq1TgsEAAAALib1pxPKPl2s5r5eurpTmNnlNAm1eiDdX//6Vw0fPlz33Xefli9fruPHj8vf318bNmxQjx496rpGAAAA4II+OjusaVjPVvLyqNXfylFDtQoSknTTTTfptttu09y5c+Xp6alPPvmEEAEAAIDLrqjUrs+2p0tiWNPlVKu4tm/fPiUkJGj58uX67LPP9OSTT+qWW27Rk08+qdLS0rquEQAAADivNT9m6lRxmSKDfBTXrrnZ5TQZtQoSsbGxiomJ0ffff6/rr79ef/zjH7V27Vp98MEH6t+/f13XCAAAAJzXh1uOSJJ+3ae1rFaLydU0HbUKEn/961+1ePFiBQcHO9sGDhyoLVu26Morr6yr2gAAAIALOnG6WF/uzpIk3daHYU2XU62CxD333FNle0BAgN58881LKggAAACork++P6Yyh6GerYPUKTzA7HKalEua0r5z506tXLlSH3/8sfP1ySef1Hg7c+bMUXR0tHx8fBQfH68NGzZcsP/SpUvVpUsX+fj4qGfPnlqxYoVzWWlpqZ566in17NlTfn5+ioyM1JgxY3Ts2DGXbeTk5Ojuu+9WYGCggoODNX78eJ0+fbrGtQMAAMA8H245Kkm67UquRlxutbpr008//aRbb71V27Ztk8VikWEYkiSLpXxMmt1ur/a2lixZouTkZM2bN0/x8fGaNWuWkpKStHv3brVs2bJS/3Xr1mn06NFKSUnRzTffrEWLFmnEiBHavHmzevToocLCQm3evFlPP/20evfurZMnT2rixIm65ZZbtGnTJud27r77bh0/flyrVq1SaWmpxo0bpwceeECLFi2qzSkBAADAZbY387S+P5InD6tFv+odaXY5TY7FqEgBNfCrX/1KHh4e+vvf/66YmBht2LBBJ06c0OOPP64//elPuuaaa6q9rfj4ePXr10+zZ8+WJDkcDkVFRWnChAmaPHlypf4jR45UQUGBli9f7mwbMGCAYmNjNW/evCr3sXHjRvXv318HDx5U27Zt9eOPP6pbt27auHGj4uLiJEkrV67UsGHDdOTIEUVGXvwXMT8/X0FBQcrLy1NgYGC1jxcAAAB145XPdmnO2n0a2qWl3ry3n9nlNAo1+Yxbq6FNqampeu655xQWFiar1Sqr1aqrr75aKSkpevTRR6u9nZKSEqWlpSkxMfHngqxWJSYmKjU19bz7Pre/JCUlJZ23vyTl5eXJYrE4J4enpqYqODjYGSIkKTExUVarVevXr69yG8XFxcrPz3d5AQAAwBwOh6FlW8qHrt/KsCZT1CpI2O12BQSUT2YJCwtzzj9o166ddu/eXe3tZGdny263Kzw83KU9PDxc6enpVa6Tnp5eo/5FRUV66qmnNHr0aGeqSk9PrzRsytPTUyEhIefdTkpKioKCgpyvqKioah0jAAAA6t76/Tk6mntGATZPJXYNv/gKqHO1ChI9evTQ999/L6l8aNLLL7+s//znP3ruuefUvn37Oi3wUpSWluquu+6SYRiaO3fuJW1rypQpysvLc74OHz5cR1UCAACgppamlX8WG96rlXy8PEyupmmq1WTradOmqaCgQJL03HPP6eabb9Y111yj0NBQLVmypNrbCQsLk4eHhzIyMlzaMzIyFBERUeU6ERER1epfESIOHjyoL774wmWMV0REhDIzM136l5WVKScn57z7tdlsstls1T42AAAA1I/TxWX697byUSR3xjFKxCy1uiKRlJSk2267TZLUsWNH7dq1S9nZ2crMzNR1111X7e14e3urb9++WrNmjbPN4XBozZo1SkhIqHKdhIQEl/6StGrVKpf+FSFiz549Wr16tUJDQyttIzc3V2lpac62L774Qg6HQ/Hx8dWuHwAAAJffpz8c05lSu9q38NOVbYPNLqfJqtUViaqEhITUar3k5GSNHTtWcXFx6t+/v2bNmqWCggKNGzdOkjRmzBi1bt1aKSkpkqSJEydq0KBBmjlzpoYPH67Fixdr06ZNmj9/vqTyEHHHHXdo8+bNWr58uex2u3PeQ0hIiLy9vdW1a1fdeOONuv/++zVv3jyVlpbqkUce0ahRo6p1xyYAAACYZ+mmI5KkO/tGOR8/gMuvVkGiqKhIr7/+utauXavMzEw5HA6X5Zs3b672tkaOHKmsrCxNnz5d6enpio2N1cqVK50Tqg8dOiSr9ecLJwMHDtSiRYs0bdo0TZ06VZ06ddKyZcvUo0cPSdLRo0f18ccfS5JiY2Nd9rV27VoNHjxYkvTuu+/qkUce0dChQ2W1WnX77bfrtddeq+mpAAAAwGW0L+u0Nh08KauFh9CZrVbPkbj77rv1+eef64477lB4eHilJDhjxow6K7Ch4jkSAAAAl99LK3dp7pf7dF2XlnqLZ0fUuZp8xq3VFYnly5drxYoVuuqqq2pVIAAAAFBTdoehDzZXDGtqY3I1qNVk69atWzufIwEAAABcDl/vyVJGfrGa+3ppKM+OMF2tgsTMmTP11FNP6eDBg3VdDwAAAFCl9zaWPzvi17Gt5e1Zq4+xqEO1GtoUFxenoqIitW/fXr6+vvLy8nJZnpOTUyfFAQAAAJKUdapYq3aWP0tsVH+eHdEQ1CpIjB49WkePHtULL7xQ5WRrAAAAoC79K+2IyhyG+rQNVpcIbnTTENQqSKxbt06pqanq3bt3XdcDAAAAuHA4DC3ZeEiSNLpfW5OrQYVaDS7r0qWLzpw5U9e1AAAAAJV899MJHThRKH+bp27u3crscnBWrYLEiy++qMcff1xffvmlTpw4ofz8fJcXAAAAUFf+n3OSdaR8vWs1oAb1oFY/iRtvvFGSNHToUJd2wzBksVhkt9svvTIAAAA0eTkFJfpse7okaXR/hjU1JLUKEmvXrq3rOgAAAIBKPth8RCV2h3q0DlSP1kFml4Nz1CpIxMTEKCoqqtLdmgzD0OHDh+ukMAAAADRthmFo0YbySdajmGTd4NRqjkRMTIyysrIqtefk5CgmJuaSiwIAAABS953QT1kF8vP20Ig+rc0uB79QqyBRMRfil06fPi0fH59LLgoAAAD45/qDkqRbr2wtfxuTrBuaGv1EkpOTJUkWi0VPP/20fH19ncvsdrvWr1+v2NjYOi0QAAAATU9GfpE+21H+JOvfDmhncjWoSo2CxJYtWySVX5HYtm2bvL29ncu8vb3Vu3dvPfHEE3VbIQAAAJqcxRsOy+4wFNeuOU+ybqCqHSRee+01rVixQs2aNdO4ceP0l7/8RYGB/FABAABQt8rsDv2/s5Os70ngakRDVe05EsnJyTp16pQk6R//+IeKiorqrSgAAAA0Xat/zFR6fpFC/bx1Y48Is8vBeVT7ikRkZKTef/99DRs2TIZh6MiRI+cNE23bcnsuAAAA1M67ZydZ3xkXJZunh8nV4HyqHSSmTZumCRMm6JFHHpHFYlG/fv0q9eHJ1gAAALgUezNP65s92bJYpLvj+eN0Q1btIPHAAw9o9OjROnjwoHr16qXVq1crNDS0PmsDAABAE/OP1AOSpMSu4YoK8b1wZ5iqRndtCggIUI8ePbRgwQJdddVVstls9VUXAAAAmpj8olL9K+2IJOnegdHmFoOLqtWTPcaOHStJSktL048//ihJ6tatm6688sq6qwwAAABNytJNR1RYYlenlv4a2IGRLw1drYJEZmamRo0apS+//FLBwcGSpNzcXA0ZMkSLFy9WixYt6rJGAAAANHIOh+Ec1jR2YLQsFou5BeGiqn3713NNmDBBp06d0o4dO5STk6OcnBxt375d+fn5evTRR+u6RgAAADRyX/43UwdPFCrAx1O3Xdna7HJQDbW6IrFy5UqtXr1aXbt2dbZ169ZNc+bM0Q033FBnxQEAAKBpWPCfA5KkUf2i5Otdq4+ouMxqdUXC4XDIy8urUruXl5ccDsclFwUAAICmY0/GKectX+8ZEG12OaimWgWJ6667ThMnTtSxY8ecbUePHtVjjz2moUOH1llxAAAAaPze+s9+SdIN3cLVNpRbvrqLWgWJ2bNnKz8/X9HR0erQoYM6dOig6Oho5efn6/XXX6/rGgEAANBInThdrPc3H5Uk3XdNe5OrQU3UagBaVFSUNm/erNWrV2vXrl2SyudIcDUCAAAANfHP7w6ppMyh3m2CFNeuudnloAZqdEUiNTVVy5cvlyRZLBZdf/31CgwM1MyZMzV69Gg98MADKi4urpdCAQAA0LgUldr1zncHJEnjr2nPLV/dTI2CxHPPPacdO3Y432/btk3333+/rr/+ek2ePFmffPKJUlJS6rxIAAAAND4fbT2q7NMlah3cTMN6RJhdDmqoRkFi69atLsOXFi9erP79++uNN95QcnKyXnvtNb333nt1XiQAAAAaF8Mw9PdvyidZ3zswWp4etZq6CxPV6Cd28uRJhYeHO99/9dVXuummm5zv+/Xrp8OHD9dddQAAAGiUvvxvlvZknpaft4dG9o8yuxzUQo2CRHh4uPbvL0+OJSUl2rx5swYMGOBcfurUqSqfLwEAAACca96X+yRJo/u3VaAPnx/dUY2CxLBhwzR58mR98803mjJlinx9fXXNNdc4l//www/q0KFDnRcJAACAxmPLoZNavz9HXh4Wjb8mxuxyUEs1uv3rH/7wB912220aNGiQ/P399fbbb8vb29u5/K233tINN9xQ50UCAACg8fjbVz9Jkn4d21qtgpqZXA1qq0ZBIiwsTF9//bXy8vLk7+8vDw8Pl+VLly6Vv79/nRYIAACAxmNf1ml9tjNdkvTgtTyAzp3V6oF0QUFBVbaHhIRcUjEAAABo3N74+icZhpTYtaU6hQeYXQ4uAffZAgAAwGWRmV+kDzYflSQ9NIh5te6OIAEAAIDL4s1v96vE7lDfds0VF81IFndHkAAAAEC9O1lQone+OyhJemRIR5OrQV0gSAAAAKDeLfjPfhWW2NU9MlCDO7cwuxzUAdODxJw5cxQdHS0fHx/Fx8drw4YNF+y/dOlSdenSRT4+PurZs6dWrFjhsvyDDz7QDTfcoNDQUFksFm3durXSNgYPHiyLxeLyeuihh+rysAAAAHBWflGpFq47IKn8aoTFYjG3INQJU4PEkiVLlJycrBkzZmjz5s3q3bu3kpKSlJmZWWX/devWafTo0Ro/fry2bNmiESNGaMSIEdq+fbuzT0FBga6++mq99NJLF9z3/fffr+PHjztfL7/8cp0eGwAAAMq9k3pQ+UVl6tjSX0ndI8wuB3XEYhiGYdbO4+Pj1a9fP82ePVuS5HA4FBUVpQkTJmjy5MmV+o8cOVIFBQVavny5s23AgAGKjY3VvHnzXPoeOHBAMTEx2rJli2JjY12WDR48WLGxsZo1a1ata8/Pz1dQUJDy8vIUGBhY6+0AAAA0ZoUlZbr6pbXKKSjRn0f21q192phdEi6gJp9xTbsiUVJSorS0NCUmJv5cjNWqxMREpaamVrlOamqqS39JSkpKOm//C3n33XcVFhamHj16aMqUKSosLLxg/+LiYuXn57u8AAAAcGGL1h9STkGJ2ob46le9Is0uB3WoVg+kqwvZ2dmy2+0KDw93aQ8PD9euXbuqXCc9Pb3K/unp6TXa929+8xu1a9dOkZGR+uGHH/TUU09p9+7d+uCDD867TkpKip599tka7QcAAKApO1Ni17yvfpIk/e/gDvL0MH16LuqQaUHCTA888IDz+549e6pVq1YaOnSo9u3bpw4dqn44ypQpU5ScnOx8n5+fr6ioqHqvFQAAwF29u/6gsk8Xq03zZrqjL0OaGhvTgkRYWJg8PDyUkZHh0p6RkaGIiKon4URERNSof3XFx8dLkvbu3XveIGGz2WSz2S5pPwAAAE3FuVcjJlzXUV5cjWh0TPuJent7q2/fvlqzZo2zzeFwaM2aNUpISKhynYSEBJf+krRq1arz9q+uilvEtmrV6pK2AwAAgHIVVyOiQprptiu5GtEYmTq0KTk5WWPHjlVcXJz69++vWbNmqaCgQOPGjZMkjRkzRq1bt1ZKSookaeLEiRo0aJBmzpyp4cOHa/Hixdq0aZPmz5/v3GZOTo4OHTqkY8eOSZJ2794tqfxqRkREhPbt26dFixZp2LBhCg0N1Q8//KDHHntM1157rXr16nWZzwAAAEDjU1hSpnlf7ZMkTRjSiasRjZSpQWLkyJHKysrS9OnTlZ6ertjYWK1cudI5ofrQoUOyWn/+xRs4cKAWLVqkadOmaerUqerUqZOWLVumHj16OPt8/PHHziAiSaNGjZIkzZgxQ88884y8vb21evVqZ2iJiorS7bffrmnTpl2mowYAAGjc/vndQWWfLr9T061Xtja7HNQTU58j4c54jgQAAEBlp4pKde3La3WysFQv39FLd8Vxcxp34hbPkQAAAEDj89a3B3SysFTtw/x0Wx+uRjRmBAkAAADUiZMFJXrjm/I7NSXfcAXPjWjk+OkCAACgTsz7ap9OF5epW6tADevB3TAbO4IEAAAALllGfpEWrjsgSfp9UmdZrRZzC0K9I0gAAADgkr3+xR4VlzkU1665BnduYXY5uAwIEgAAALgk+7MLtHjDYUnSE0mdZbFwNaIpIEgAAADgkrzy2S6VOQwN6dxCA9qHml0OLhOCBAAAAGpty6GTWrEtXVaLNPmmrmaXg8uIIAEAAIBaMQxDKSt2SZJuv7KNOkcEmFwRLieCBAAAAGplzY+Z2nAgRzZPq5JvuMLscnCZESQAAABQY2V2h15cWX41YtxVMWoV1MzkinC5ESQAAABQY/9v42HtzTytYF8v/e/gDmaXAxMQJAAAAFAjeWdK9edV/5UkTRraSUHNvEyuCGYgSAAAAKBG5qzdq5yCEnVo4ae7B7QzuxyYhCABAACAajt4okAL/rNfkjRteDd5efBxsqniJw8AAIBqS1mxS6V2Q9d0CtPgzi3MLgcmIkgAAACgWlL3ndDKHeUPn5s2vJssFovZJcFEBAkAAABcVKndoekfbZck3R3fjofPgSABAACAi1v4nwPak3laoX7eeuKGzmaXgwaAIAEAAIALSs8r0qzV5bd7nXxTFwX5crtXECQAAABwEc+v+FEFJXZd2TZYt1/Zxuxy0EAQJAAAAHBe/9mbrU++PyarRXru1z1ktTLBGuUIEgAAAKhSSdnPE6zvGdBOPVoHmVwRGhKCBAAAAKr01n/2a19WgUL9vJXMBGv8AkECAAAAlRzLPaPX1uyRJE0Z1lVBzZhgDVcECQAAAFTy/Kc/qrDErrh2zXVbn9Zml4MGiCABAAAAF9/sydKn244zwRoXRJAAAACAU2FJmf7vw/IJ1mMSotUtMtDkitBQESQAAADgNPPz/+pQTqEig3z0+A1XmF0OGjCCBAAAACRJmw+d1Fv/2S9JeuG2ngrwYYI1zo8gAQAAABWX2fXkv36QYUi3Xdlagzu3NLskNHAECQAAAGj2F3u1N/O0wvxtmn5zN7PLgRsgSAAAADRxO4/la+6X+yRJf/h1dwX7eptcEdwBQQIAAKAJK7M79OT736vMYejG7hG6qWcrs0uCmyBIAAAANGFvfLNf24/mK6iZl54b0d3scuBGCBIAAABN1L6s0/rz6v9Kkp6+uZtaBviYXBHcCUECAACgCbI7DD31rx9UUubQoCta6PYrW5tdEtwMQQIAAKAJmvfVPm06eFL+Nk89f2sPWSwWs0uCmyFIAAAANDE/HMnVn1eVD2l69pbuatPc1+SK4I4IEgAAAE1IYUmZJi3eqjKHoeG9Wuk2hjShlggSAAAATcgfP/1RP2UXKCLQR8+PYEgTao8gAQAA0ESs2pmhResPyWKRXr2rNw+ewyUhSAAAADQBmaeK9NT7P0iS7r+mvQZ2DDO5Irg704PEnDlzFB0dLR8fH8XHx2vDhg0X7L906VJ16dJFPj4+6tmzp1asWOGy/IMPPtANN9yg0NBQWSwWbd26tdI2ioqK9PDDDys0NFT+/v66/fbblZGRUZeHBQAA0GAYhqHfL/1BOQUl6toqUI/fcIXZJaERMDVILFmyRMnJyZoxY4Y2b96s3r17KykpSZmZmVX2X7dunUaPHq3x48dry5YtGjFihEaMGKHt27c7+xQUFOjqq6/WSy+9dN79PvbYY/rkk0+0dOlSffXVVzp27Jhuu+22Oj8+AACAhuAfqQf11X+zZPO06i+jYmXz9DC7JDQCFsMwDLN2Hh8fr379+mn27NmSJIfDoaioKE2YMEGTJ0+u1H/kyJEqKCjQ8uXLnW0DBgxQbGys5s2b59L3wIEDiomJ0ZYtWxQbG+tsz8vLU4sWLbRo0SLdcccdkqRdu3apa9euSk1N1YABA6pVe35+voKCgpSXl6fAwMCaHjoAAMBlsTv9lG6Z/a2Kyxx65lfddO9VMWaXhAasJp9xTbsiUVJSorS0NCUmJv5cjNWqxMREpaamVrlOamqqS39JSkpKOm//qqSlpam0tNRlO126dFHbtm0vuJ3i4mLl5+e7vAAAABqy08Vl+t9/pqn47NOrxw6MNrskNCKmBYns7GzZ7XaFh4e7tIeHhys9Pb3KddLT02vU/3zb8Pb2VnBwcI22k5KSoqCgIOcrKiqq2vsEAAC43AzD0FPv/6CfsgvUKshHr97Vm1u9ok6ZPtnaXUyZMkV5eXnO1+HDh80uCQAA4LzeXndAn/5wXJ5Wi2b/5kqF+tvMLgmNjKdZOw4LC5OHh0eluyVlZGQoIiKiynUiIiJq1P982ygpKVFubq7LVYmLbcdms8lm4x8gAABo+LYcOqnnV/woSZo6rKv6tmtuckVojEy7IuHt7a2+fftqzZo1zjaHw6E1a9YoISGhynUSEhJc+kvSqlWrztu/Kn379pWXl5fLdnbv3q1Dhw7VaDsAAAAN0cmCEj387maV2g0N6xmhcVdFm10SGinTrkhIUnJyssaOHau4uDj1799fs2bNUkFBgcaNGydJGjNmjFq3bq2UlBRJ0sSJEzVo0CDNnDlTw4cP1+LFi7Vp0ybNnz/fuc2cnBwdOnRIx44dk1QeEqTyKxEREREKCgrS+PHjlZycrJCQEAUGBmrChAlKSEio9h2bAAAAGiKHw9CkJVt1LK9IMWF+eun2XsyLQL0xNUiMHDlSWVlZmj59utLT0xUbG6uVK1c6J1QfOnRIVuvPF00GDhyoRYsWadq0aZo6dao6deqkZcuWqUePHs4+H3/8sTOISNKoUaMkSTNmzNAzzzwjSfrzn/8sq9Wq22+/XcXFxUpKStJf//rXy3DEAAAA9WfO2r366r9Z8vGyau5vr1SAj5fZJaERM/U5Eu6M50gAAICG5Ns92brnrfUyDOlPd/bWHX3bmF0S3JBbPEcCAAAAdeNAdoEeXrRZhiGNjIsiROCyIEgAAAC4sfyiUo1/e6PyzpQqNipYz/66u9kloYkgSAAAALgpu8PQhEVbtC+r/KFz88f0lY+Xh9lloYkgSAAAALiplBU/OidXvzEmTi0DfMwuCU0IQQIAAMANvbfxsP7+7X5J0sw7Y9WjdZDJFaGpIUgAAAC4mY0HcvR/y7ZJkiYldtLwXq1MrghNEUECAADAjRzOKdRD76Sp1G5oeM9WevS6TmaXhCaKIAEAAOAm8s6U6r63N+lEQYl6tA7Un+7sLauVJ1fDHAQJAAAAN1BUatcD/9ik3Rmn1DLApjfGxKmZN3dognkIEgAAAA2c3WEo+b2tWr8/RwE2Ty0c11+tgpqZXRaaOIIEAABAA2YYhp79ZIdWbEuXt4dVfxvTV90iA80uCyBIAAAANGR//XKf/pF6UBaL9OrI3hrYIczskgBJBAkAAIAGa+mmw3rls92SpOk3d9PNvSJNrgj4GUECAACgAVq7O1OTPyh/VsSDg9pr3FUxJlcEuCJIAAAANDBpB3P0u39ult1h6LY+rfVUUhezSwIqIUgAAAA0IFsP52rsWxt1ptSua69ooZfu6MWzItAgESQAAAAaiO1H8zTmzfU6XVymAe1D9Lff9pWXBx/X0DDxmwkAANAA7ErP1z1vrld+UZni2jXXm2P78cA5NGgECQAAAJPtzTyt3/59vU4Wlqp3VLAWjOsnP5un2WUBF0SQAAAAMNGB7AL95o3vlH26RN0jA/WPcf0V4ONldlnARREkAAAATHI4p1C/eeM7ZZ4qVpeIAP1zfLyCfAkRcA8ECQAAABPsyzqtu/6WqmN5RerY0l//vC9ezf28zS4LqDYG3wEAAFxmO4/la8xb65V9ukQdW/pr0X3xCvO3mV0WUCMECQAAgMto86GTuvetDcovKlP3yEC9Mz5eIVyJgBsiSAAAAFwmqftOaPzbG1VYYlffds311r39FNSMORFwTwQJAACAy2Dtrkw99M80FZc5dFXHUL0xJk6+3nwUg/vitxcAAKCeffrDcU1askWldkOJXVtq9m+ulI8XD5uDeyNIAAAA1KMF/9mv55bvlGFIN/dqpT+PjJWXBzfOhPsjSAAAANQDh8PQ8yt+1Jvf7pck/Sa+rf7w6x7ysFpMrgyoGwQJAACAOlZUatdjS7bq39vTJUlP3thZ/zuogywWQgQaD4IEAABAHcopKNH9/9iktIMn5e1h1St39tKvY1ubXRZQ5wgSAAAAdeTgiQLdu2Cj9mcXKNDHU/PHxGlA+1CzywLqBUECAACgDmw8kKOH3knTiYIStQ5upoXj+qlTeIDZZQH1hiABAABwid5df1DPfLxDpXZDPVoH6q2x/dQy0MfssoB6RZAAAACopZIyh575ZIcWrT8kSRreq5VeuaMXD5pDk8BvOQAAQC1knSrW795N08YDJ2WxSE/c0Fm/G8ydmdB0ECQAAABq6IcjuXrwnTQdzytSgM1Tfxkdq+u6hJtdFnBZESQAAABqYOmmw5q2bLuKyxxq38JPb4yJU4cW/maXBVx2BAkAAIBqKCwp09PLduj9zUckSdd1aalZo2IV6ONlcmWAOQgSAAAAF7E7/ZQeXrRZezNPy2qRHku8Qr8b0lEeVuZDoOkiSAAAAJyHYRh6b9Nhzfh4h4pKHWoZYNNro/vwkDlABAkAAIAqFRSX6f8+3KZlW49Jkq7pFKY/j4xVmL/N5MqAhsFqdgGSNGfOHEVHR8vHx0fx8fHasGHDBfsvXbpUXbp0kY+Pj3r27KkVK1a4LDcMQ9OnT1erVq3UrFkzJSYmas+ePS59oqOjZbFYXF4vvvhinR8bAABwP1sOndTNr3+rZVuPycNq0e+TOuvtcf0JEcA5TA8SS5YsUXJysmbMmKHNmzerd+/eSkpKUmZmZpX9161bp9GjR2v8+PHasmWLRowYoREjRmj79u3OPi+//LJee+01zZs3T+vXr5efn5+SkpJUVFTksq3nnntOx48fd74mTJhQr8cKAAAatlK7QzM/363b567T/uwCRQT66P/dP0APD+koK/MhABcWwzAMMwuIj49Xv379NHv2bEmSw+FQVFSUJkyYoMmTJ1fqP3LkSBUUFGj58uXOtgEDBig2Nlbz5s2TYRiKjIzU448/rieeeEKSlJeXp/DwcC1cuFCjRo2SVH5FYtKkSZo0aVKt6s7Pz1dQUJDy8vIUGBhYq20AAICGY0/GKT323lZtP5ovSfp1bKSeu6WHgny5KxOajpp8xjX1ikRJSYnS0tKUmJjobLNarUpMTFRqamqV66Smprr0l6SkpCRn//379ys9Pd2lT1BQkOLj4ytt88UXX1RoaKj69OmjV155RWVlZeettbi4WPn5+S4vAADg/hwOQ3//5icNf/1bbT+ar2BfL83+TR/9ZVQfQgRwAaZOts7Ozpbdbld4uOuTIMPDw7Vr164q10lPT6+yf3p6unN5Rdv5+kjSo48+qiuvvFIhISFat26dpkyZouPHj+vVV1+tcr8pKSl69tlna3aAAACgQTt0olBPvf+DUn86IUka3LmFXrq9l8IDfUyuDGj4muxdm5KTk53f9+rVS97e3nrwwQeVkpIim63yRKopU6a4rJOfn6+oqKjLUisAAKhbZXaH3vx2v/68+r8qKnWomZeHpt3cVb/p31YWC3MhgOowNUiEhYXJw8NDGRkZLu0ZGRmKiIiocp2IiIgL9q/4mpGRoVatWrn0iY2NPW8t8fHxKisr04EDB9S5c+dKy202W5UBAwAAuJdtR/I0+YMftONY+TDlgR1C9cKtPRUd5mdyZYB7MXWOhLe3t/r27as1a9Y42xwOh9asWaOEhIQq10lISHDpL0mrVq1y9o+JiVFERIRLn/z8fK1fv/6825SkrVu3ymq1qmXLlpdySAAAoIEqLCnT85/u1K/nfKsdx/IV1MxLL9/RS+/eF0+IAGrB9KFNycnJGjt2rOLi4tS/f3/NmjVLBQUFGjdunCRpzJgxat26tVJSUiRJEydO1KBBgzRz5kwNHz5cixcv1qZNmzR//nxJksVi0aRJk/THP/5RnTp1UkxMjJ5++mlFRkZqxIgRksonbK9fv15DhgxRQECAUlNT9dhjj+m3v/2tmjdvbsp5AAAA9Wftrkw9/dF2HTl5RpL0q96Rmn5zN7UIYLQBUFumB4mRI0cqKytL06dPV3p6umJjY7Vy5UrnZOlDhw7Jav35wsnAgQO1aNEiTZs2TVOnTlWnTp20bNky9ejRw9nnySefVEFBgR544AHl5ubq6quv1sqVK+XjUz5xymazafHixXrmmWdUXFysmJgYPfbYYy5zIAAAgPs7kF2g55bv1Be7yp9P1Tq4mf44ooeGdGEEAnCpTH+OhLviORIAADRcBcVlmr12r978Zr9K7A55Wi36n6tjNHFoJ/nZTP87KtBg1eQzLv+SAABAo2EYhj7aekwp//5RGfnFkqRrr2ih6Td3U8eW/iZXBzQuBAkAANAopB3M0Qsrdint4ElJUtsQX02/uZuGdm3JLV2BekCQAAAAbm1v5mm9vHKXPt9Zfnv4Zl4eeuS6jhp/dYx8vDxMrg5ovAgSAADALWXmF+nPq/fovU2HZXcYslqku+KiNCnxCkUE8WRqoL4RJAAAgFvJO1Oqv3/zk/7+zX6dKbVLkhK7huupGzurU3iAydUBTQdBAgAAuIW8M6Va8J/9evPb/TpVVCZJurJtsKYM66p+0SEmVwc0PQQJAADQoFUVIK4I91fy9VcoqXsEE6kBkxAkAABAg5RXWKoF6yoHiIlDr9BNPSJktRIgADMRJAAAQINyLPeM3vp2v/7fhkMqKCmfA0GAABoeggQAAGgQ/ptxSn/76id9tPWoyhyGJKlLRIAmXNeJAAE0QAQJAABgGsMwtH5/jt74+iet2ZXpbB/QPkQPDuqgwVe0YA4E0EARJAAAwGVXVGrXR1uPauG6g/rxeL4kyWKRbuweoQeuba8+bZubXCGAiyFIAACAy+bIyUK9891BLdl4WLmFpZIkHy+rbu3TRvdfE6P2LfxNrhBAdREkAABAvbI7DH27N1uL1h/Uqp0ZOjv9QW2aN9OYhHa6Ky5Kwb7e5hYJoMYIEgAAoF4cyz2jpZuO6L1Nh3U094yz/eqOYRo7MFrXdWkpDyZQA26LIAEAAOpMqd2hL3ZlavGGQ/rqv1nOqw9Bzbx0a5/Wuju+rTqFB5hbJIA6QZAAAACXxDAM/XAkTx9uOapPvj+mEwUlzmXxMSEa3b+tbuwRIR8vDxOrBFDXCBIAAKBWjpws1Edbj+mDzUe0L6vA2R7m763b+7bRyLgoJk8DjRhBAgAAVFvmqSKt3J6u5T8c14b9Oc52m6dVN3SP0G19WuuaTmHy9LCaWCWAy4EgAQAALijrVLFWbj+uT7cd1/r9OTLOznuwWKQBMaG69crWuqlHhAJ8vMwtFMBlRZAAAACVHM4p1KqdGVq1M0Pr959wTpqWpD5tgzW8ZysN69lKkcHNzCsSgKkIEgAAQA6Hoe+P5Gr1jxlavTNTuzNOuSzvHRWsm3u20k09I9Smua9JVQJoSAgSAAA0UWdK7Pp2b7bW/Jih1T9mKvt0sXOZh9WiuHbNldg1XDf2iFBUCOEBgCuCBAAATYRhGNqTeVrf7MnWt3uytG7fCRWXOZzL/W2eGtS5ha7vGq7BnVvwtGkAF0SQAACgEcvML9K3e7P17Z5sfbs3W5mnil2Wtw5upuu7hSuxa7j6x4TI25O7LQGoHoIEAACNyKmiUm06eFL/2ZOtb/ZkV5rr4ONlVf+YUF3TMUzXXBGmzuEBslgsJlULwJ0RJAAAcGPZp4u1cX+ONhzI0cYDOdp5LN/lDksWi9QjMkhXdwrTNR3DdGW75jxhGkCdIEgAAOAmDMPQkZNntGF/eWjYsD9HP2UXVOoXFdJMA9uH6epOYbqqY5hC/JjrAKDuESQAAGig8otK9cPhPH1/JFdbD+fq+8O5leY4WCxS5/AA9YsOUb+YEPWPDlFEkI9JFQNoSggSAAA0AMVldu06fsolNOzLqny1wdNqUc82Qep/NjTEtQtRkC9PlAZw+REkAAC4zPKLSrXr+CntPJanHcfytfN4vvZknFaJ3VGpb1RIM8VGNVfvNkGKjQpW98ggNfNmjgMA8xEkAACoJ4Zh6GjuGe1OP1UeGM6GhkM5hVX2b+7rpd5RwerdJlixUcHq1SZIof62y1w1AFQPQQIAgEtUERj2ZJ7WnoxT+m/Gae3JPK29GadUUGKvcp3Wwc3UtVWgukUGqlur8ldUSDNuxQrAbRAkAACopsKSMh3ILtSBEwXan13+ulhg8PKwqH2Yv7pH/hwaurYKVHPupATAzREkAAA4R1GpXYdyCrU/u0AHsgtcQkNGfvF51/PysCgmzE+dwgPUqaW/rggP0BXh/moX6icvD54WDaDxIUgAAJqUMrtD6flFOnryjI6cfR3NLdSRk2d08EShjuWdkWGcf/1gXy9Fh/opJsxP0aF+6hTuT2AA0CQRJAAAjcqZErvS84t0PPeMjuSeDQonz+jIyfKwkJ5fJLvjAklBUoCPpzMoRIf5KSbM1xkegn0ZkgQAEkECAOAmHA5DJwpKlJFfpPS8IqXnF1X5fX5R2UW35eVhUevgZmrT3Pfs12ZqE9JMUc19FRPmpxA/byY9A8BFECQAAKaxOwydLCxR9ulinThd/jX7dIlOnC6u1JZ5qkil9gtfSajg6+2hiCAfZ1ho07zZOS9ftfC3yWolKADApSBIAADqhGEYKip16GRhiXILS5VbWKLcM6XO9xWh4ERBsbJPlehEQbFyCkp0kVFGLiwWKczfpohAH4UH+igi6Nzvfcq/D/JRgM2TKwoAUM8IEgAAF8VlduWfKdOpolKdKio7+ypV3plSnSwsVe6ZEuUWlH89WViqvMKzYeFMqUrKKj+Z+WIsFqm5r7dC/bwV5m9TWIBNoX7eanH2a5i/TaH+3goP9FGLABsTmgGggSBIAEAj4HAYKiy1q7C4TAUldhUUl6mwxK6CkjIVFpe/P1V8bjgo/5r/i7CQX1RWqzBwLk+rRcG+3gr29VJzXy8FNSv/PtTfWy3OhoIwf5tC/WwKC/BWiK+3PAkHAOB2CBIAcBnYHYaKSu06U2pXkfPlOKfN4VxWfE5bYYldhSVlKig++7Xk57BQ3l6+7Exp1Q9DuxT+Nk8F+FS8vBTczEtBvl4Kbuat5r5eCvb1OicweCuomZea+3nLz9uDYUUA0AQ0iCAxZ84cvfLKK0pPT1fv3r31+uuvq3///uftv3TpUj399NM6cOCAOnXqpJdeeknDhg1zLjcMQzNmzNAbb7yh3NxcXXXVVZo7d646derk7JOTk6MJEybok08+kdVq1e23366//OUv8vf3r9djBXB5ORyGSuwOFZc5VFLmUIn97Ncyh0rP015itzu/L/7lskp9y78WlTnOCQg/B4GK99WdJHyprBbJz9tTvjYP+dk8y7/3Pvv9OcEg0MfL5WuA82v59/42T3kwGRkAcAGmB4klS5YoOTlZ8+bNU3x8vGbNmqWkpCTt3r1bLVu2rNR/3bp1Gj16tFJSUnTzzTdr0aJFGjFihDZv3qwePXpIkl5++WW99tprevvttxUTE6Onn35aSUlJ2rlzp3x8fCRJd999t44fP65Vq1aptLRU48aN0wMPPKBFixZd1uMH6pvDYajMYchhGLI7DNkNQw7H2e/Pvrc7DDkc+vl7w1CZvRrrGIbsDv28juOcfhXrnN1Wqd2hsrPLSu2O8jZH+deys8tc2pxff+5f5nCo1H7ONhzl65aeXVbefrbt7LKaTOS9XGyeVvl4eaiZl4d8vMq/9znn+2bnvPf19pSft4d8bWe/envKz1bxtfz7c8OCzdPK1QAAwGVhMYwLPb+z/sXHx6tfv36aPXu2JMnhcCgqKkoTJkzQ5MmTK/UfOXKkCgoKtHz5cmfbgAEDFBsbq3nz5skwDEVGRurxxx/XE088IUnKy8tTeHi4Fi5cqFGjRunHH39Ut27dtHHjRsXFxUmSVq5cqWHDhunIkSOKjIy8aN35+fkKCgpSXl6eAgMD6+JUVNuPx/N1ILtAFT84w5AMGWe/VrQZLsuc35/t41x+9n8q1q9oM6pok2E4l1Xs4+e+F9lvFW3ObZxnv85fTJf9nH+bOufYLnQslWsvX+YwytsdhnH2e9f3Duc65R+6K9qln5dXbMNwvq+q7ef9O87ZVkUtzn2d5+vP31euz+H8AP9zKIArbw+rvD3Pvs7zva2KZV5nv9qqWtfTKh/P8g//zbzLv7f9IihUhAObp5XbjgIAGqyafMY19YpESUmJ0tLSNGXKFGeb1WpVYmKiUlNTq1wnNTVVycnJLm1JSUlatmyZJGn//v1KT09XYmKic3lQUJDi4+OVmpqqUaNGKTU1VcHBwc4QIUmJiYmyWq1av369br311kr7LS4uVnFxsfN9fn5+rY65Lry36bAW/OeAaftH42GxSB4WizysZ18Wi6xnv7daLPKwnl3ucc4yy7nLy9s8nevKZVnFOl4eFnlarfL0sMjLapWHh0VeVos8PX5u8/SwyMvDKo+z2/P6xTKPirZzlnlarfI6d9k5bZ4eVuc+nGHAw8Jf6wEAqCOmBons7GzZ7XaFh4e7tIeHh2vXrl1VrpOenl5l//T0dOfyirYL9fnlsClPT0+FhIQ4+/xSSkqKnn322WoeWf1qF+KrftHNZZFFOvuZyKLyD4WWsw0Wy8/vz/3cZLFYnH1/Xs+1TWfXsTjX+Xk7P69X3qFifdcaXNv0izrOV6vO0+eXtVasU1FHpVrPHo+q6FPlehaLrBbJevarxVL+QdhikbPdUrFMktX683vr2X393L/8w7T17I6sZ7dVsV3LOfupWMfyi/fWX+zfcu42VHk/1rMHa7X84kP8Lz7Q/xwGfg4PfKgGAAC1ZfocCXcxZcoUlysh+fn5ioqKMqWWe6+K0b1XxZiybwAAAECSTL1xd1hYmDw8PJSRkeHSnpGRoYiIiCrXiYiIuGD/iq8X65OZmemyvKysTDk5Oefdr81mU2BgoMsLAAAAaKpMDRLe3t7q27ev1qxZ42xzOBxas2aNEhISqlwnISHBpb8krVq1ytk/JiZGERERLn3y8/O1fv16Z5+EhATl5uYqLS3N2eeLL76Qw+FQfHx8nR0fAAAA0FiZPrQpOTlZY8eOVVxcnPr3769Zs2apoKBA48aNkySNGTNGrVu3VkpKiiRp4sSJGjRokGbOnKnhw4dr8eLF2rRpk+bPny+pfDz5pEmT9Mc//lGdOnVy3v41MjJSI0aMkCR17dpVN954o+6//37NmzdPpaWleuSRRzRq1Khq3bEJAAAAaOpMDxIjR45UVlaWpk+frvT0dMXGxmrlypXOydKHDh2S1frzhZOBAwdq0aJFmjZtmqZOnapOnTpp2bJlzmdISNKTTz6pgoICPfDAA8rNzdXVV1+tlStXOp8hIUnvvvuuHnnkEQ0dOtT5QLrXXnvt8h04AAAA4MZMf46EuzLzORIAAABAfajJZ1xT50gAAAAAcE8ECQAAAAA1RpAAAAAAUGMECQAAAAA1RpAAAAAAUGMECQAAAAA1RpAAAAAAUGMECQAAAAA1RpAAAAAAUGMECQAAAAA1RpAAAAAAUGMECQAAAAA1RpAAAAAAUGOeZhfgrgzDkCTl5+ebXAkAAABQNyo+21Z81r0QgkQtnTp1SpIUFRVlciUAAABA3Tp16pSCgoIu2MdiVCduoBKHw6Fjx44pICBAFovlsu47Pz9fUVFROnz4sAIDAy/rvhsDzl/tce5qj3N3aTh/tce5qz3OXe1x7i6NmefPMAydOnVKkZGRslovPAuCKxK1ZLVa1aZNG1NrCAwM5B/nJeD81R7nrvY4d5eG81d7nLva49zVHufu0ph1/i52JaICk60BAAAA1BhBAgAAAECNESTckM1m04wZM2Sz2cwuxS1x/mqPc1d7nLtLw/mrPc5d7XHuao9zd2nc5fwx2RoAAABAjXFFAgAAAECNESQAAAAA1BhBAgAAAECNESQAAAAA1BhBohEpLi5WbGysLBaLtm7danY5buGWW25R27Zt5ePjo1atWumee+7RsWPHzC6rwTtw4IDGjx+vmJgYNWvWTB06dNCMGTNUUlJidmlu4fnnn9fAgQPl6+ur4OBgs8tp8ObMmaPo6Gj5+PgoPj5eGzZsMLskt/D111/rV7/6lSIjI2WxWLRs2TKzS3IbKSkp6tevnwICAtSyZUuNGDFCu3fvNrsstzB37lz16tXL+SC1hIQE/fvf/za7LLf04osvymKxaNKkSWaXcl4EiUbkySefVGRkpNlluJUhQ4bovffe0+7du/X+++9r3759uuOOO8wuq8HbtWuXHA6H/va3v2nHjh3685//rHnz5mnq1Klml+YWSkpKdOedd+p///d/zS6lwVuyZImSk5M1Y8YMbd68Wb1791ZSUpIyMzPNLq3BKygoUO/evTVnzhyzS3E7X331lR5++GF99913WrVqlUpLS3XDDTeooKDA7NIavDZt2ujFF19UWlqaNm3apOuuu06//vWvtWPHDrNLcysbN27U3/72N/Xq1cvsUi7MQKOwYsUKo0uXLsaOHTsMScaWLVvMLsktffTRR4bFYjFKSkrMLsXtvPzyy0ZMTIzZZbiVBQsWGEFBQWaX0aD179/fePjhh53v7Xa7ERkZaaSkpJhYlfuRZHz44Ydml+G2MjMzDUnGV199ZXYpbql58+bG3//+d7PLcBunTp0yOnXqZKxatcoYNGiQMXHiRLNLOi+uSDQCGRkZuv/++/XOO+/I19fX7HLcVk5Ojt59910NHDhQXl5eZpfjdvLy8hQSEmJ2GWhESkpKlJaWpsTERGeb1WpVYmKiUlNTTawMTU1eXp4k8d+4GrLb7Vq8eLEKCgqUkJBgdjlu4+GHH9bw4cNd/tvXUBEk3JxhGLr33nv10EMPKS4uzuxy3NJTTz0lPz8/hYaG6tChQ/roo4/MLsnt7N27V6+//roefPBBs0tBI5KdnS273a7w8HCX9vDwcKWnp5tUFZoah8OhSZMm6aqrrlKPHj3MLsctbNu2Tf7+/rLZbHrooYf04Ycfqlu3bmaX5RYWL16szZs3KyUlxexSqoUg0UBNnjxZFovlgq9du3bp9ddf16lTpzRlyhSzS24wqnvuKvz+97/Xli1b9Pnnn8vDw0NjxoyR0UQf+F7TcydJR48e1Y033qg777xT999/v0mVm6825w5Aw/fwww9r+/btWrx4sdmluI3OnTtr69atWr9+vf73f/9XY8eO1c6dO80uq8E7fPiwJk6cqHfffVc+Pj5ml1MtFqOpfmJq4LKysnTixIkL9mnfvr3uuusuffLJJ7JYLM52u90uDw8P3X333Xr77bfru9QGp7rnztvbu1L7kSNHFBUVpXXr1jXJy7A1PXfHjh3T4MGDNWDAAC1cuFBWa9P920Rtfu8WLlyoSZMmKTc3t56rc08lJSXy9fXVv/71L40YMcLZPnbsWOXm5nL1sAYsFos+/PBDl/OIi3vkkUf00Ucf6euvv1ZMTIzZ5bitxMREdejQQX/729/MLqVBW7ZsmW699VZ5eHg42+x2uywWi6xWq4qLi12WNQSeZheAqrVo0UItWrS4aL/XXntNf/zjH53vjx07pqSkJC1ZskTx8fH1WWKDVd1zVxWHwyGp/Fa6TVFNzt3Ro0c1ZMgQ9e3bVwsWLGjSIUK6tN87VM3b21t9+/bVmjVrnB+AHQ6H1qxZo0ceecTc4tCoGYahCRMm6MMPP9SXX35JiLhEDoejyf7/ak0MHTpU27Ztc2kbN26cunTpoqeeeqrBhQiJIOH22rZt6/Le399fktShQwe1adPGjJLcxvr167Vx40ZdffXVat68ufbt26enn35aHTp0aJJXI2ri6NGjGjx4sNq1a6c//elPysrKci6LiIgwsTL3cOjQIeXk5OjQoUOy2+3O57507NjR+W8Y5ZKTkzV27FjFxcWpf//+mjVrlgoKCjRu3DizS2vwTp8+rb179zrf79+/X1u3blVISEil/++Aq4cffliLFi3SRx99pICAAOecnKCgIDVr1szk6hq2KVOm6KabblLbtm116tQpLVq0SF9++aU+++wzs0tr8AICAirNw6mYw9lQ5+cQJNBk+fr66oMPPtCMGTNUUFCgVq1a6cYbb9S0adNks9nMLq9BW7Vqlfbu3au9e/dWCqyMlry46dOnuww77NOnjyRp7dq1Gjx4sElVNUwjR45UVlaWpk+frvT0dMXGxmrlypWVJmCjsk2bNmnIkCHO98nJyZLKh4YtXLjQpKrcw9y5cyWp0r/HBQsW6N577738BbmRzMxMjRkzRsePH1dQUJB69eqlzz77TNdff73ZpaEeMEcCAAAAQI017UHNAAAAAGqFIAEAAACgxggSAAAAAGqMIAEAAACgxggSAAAAAGqMIAEAAACgxggSAAAAAGqMIAEAAACgxggSAAAAAGqMIAEAAACgxggSAAAAAGqMIAEAaJCysrIUERGhF154wdm2bt06eXt7a82aNSZWBgCQJIthGIbZRQAAUJUVK1ZoxIgRWrdunTp37qzY2Fj9+te/1quvvmp2aQDQ5BEkAAAN2sMPP6zVq1crLi5O27Zt08aNG2Wz2cwuCwCaPIIEAKBBO3PmjHr06KHDhw8rLS1NPXv2NLskAICYIwEAaOD27dunY8eOyeFw6MCBA2aXAwA4iysSAIAGq6SkRP3791dsbKw6d+6sWbNmadu2bWrZsqXZpQFAk0eQAAA0WL///e/1r3/9S99//738/f01aNAgBQUFafny5WaXBgBNHkObAAAN0pdffqlZs2bpnXfeUWBgoKxWq9555x198803mjt3rtnlAUCTxxUJAAAAADXGFQkAAAAANUaQAAAAAFBjBAkAAAAANUaQAAAAAFBjBAkAAAAANUaQAAAAAFBjBAkAAAAANUaQAAAAAFBjBAkAAAAANUaQAAAAAFBjBAkAAAAANfb/AUmzeCeEpopcAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = tf.linspace(-4, 4, 201)\n", "x = tf.cast(x, tf.float32)\n", "plt.plot(x, tf.nn.softmax(x, axis=0));\n", "plt.xlabel('x')\n", "plt.ylabel('Softmax(x)')\n", "plt.title('Softmax activation function');" ] }, { "cell_type": "markdown", "metadata": { "id": "OHW6Yvg2yS6H" }, "source": [ "### 高密度レイヤー\n", "\n", "高密度レイヤーのクラスを作成します。定義により、1 つのレイヤーの出力は、MLP の次のレイヤーの入力に完全に接続されます。したがって、高密度レイヤーの入力次元は、前のレイヤーの出力次元に基づいて推測でき、初期化時に事前に指定する必要はありません。活性化出力が大きくなりすぎたり小さくなりすぎたりしないように、重みも適切に初期化する必要があります。最も一般的な重みの初期化方法の 1 つは、重み行列の各要素が次の方法でサンプリングされる Xavier スキームです。\n", "\n", "$$W_{ij} \\sim \\text{Uniform}(-\\frac{\\sqrt{6}}{\\sqrt{n + m}},\\frac{\\sqrt{6}}{\\sqrt{n + m}})$$\n", "\n", "バイアスベクトルはゼロに初期化できます。" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.930387Z", "iopub.status.busy": "2024-01-11T19:05:40.929776Z", "iopub.status.idle": "2024-01-11T19:05:40.934166Z", "shell.execute_reply": "2024-01-11T19:05:40.933495Z" }, "id": "re1SSFyBdMrS" }, "outputs": [], "source": [ "def xavier_init(shape):\n", " # Computes the xavier initialization values for a weight matrix\n", " in_dim, out_dim = shape\n", " xavier_lim = tf.sqrt(6.)/tf.sqrt(tf.cast(in_dim + out_dim, tf.float32))\n", " weight_vals = tf.random.uniform(shape=(in_dim, out_dim), \n", " minval=-xavier_lim, maxval=xavier_lim, seed=22)\n", " return weight_vals" ] }, { "cell_type": "markdown", "metadata": { "id": "otDFX4u6e6ml" }, "source": [ "また、Xavier の初期化メソッドは `tf.keras.initializers.GlorotUniform` で実装することもできます。" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.937567Z", "iopub.status.busy": "2024-01-11T19:05:40.936916Z", "iopub.status.idle": "2024-01-11T19:05:40.942181Z", "shell.execute_reply": "2024-01-11T19:05:40.941550Z" }, "id": "IM0yJos25FG5" }, "outputs": [], "source": [ "class DenseLayer(tf.Module):\n", "\n", " def __init__(self, out_dim, weight_init=xavier_init, activation=tf.identity):\n", " # Initialize the dimensions and activation functions\n", " self.out_dim = out_dim\n", " self.weight_init = weight_init\n", " self.activation = activation\n", " self.built = False\n", "\n", " def __call__(self, x):\n", " if not self.built:\n", " # Infer the input dimension based on first call\n", " self.in_dim = x.shape[1]\n", " # Initialize the weights and biases using Xavier scheme\n", " self.w = tf.Variable(xavier_init(shape=(self.in_dim, self.out_dim)))\n", " self.b = tf.Variable(tf.zeros(shape=(self.out_dim,)))\n", " self.built = True\n", " # Compute the forward pass\n", " z = tf.add(tf.matmul(x, self.w), self.b)\n", " return self.activation(z)" ] }, { "cell_type": "markdown", "metadata": { "id": "X-7MzpjgyHg6" }, "source": [ "次に、レイヤーを順次実行する MLP モデルのクラスを作成します。モデル変数は、次元の推定により、高密度レイヤー呼び出しの最初のシーケンスの後にのみ使用できることに注意してください。" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.945502Z", "iopub.status.busy": "2024-01-11T19:05:40.944951Z", "iopub.status.idle": "2024-01-11T19:05:40.949073Z", "shell.execute_reply": "2024-01-11T19:05:40.948485Z" }, "id": "6XisRWiCyHAb" }, "outputs": [], "source": [ "class MLP(tf.Module):\n", "\n", " def __init__(self, layers):\n", " self.layers = layers\n", " \n", " @tf.function\n", " def __call__(self, x, preds=False): \n", " # Execute the model's layers sequentially\n", " for layer in self.layers:\n", " x = layer(x)\n", " return x" ] }, { "cell_type": "markdown", "metadata": { "id": "luXKup-43nd7" }, "source": [ "次のアーキテクチャで MLP モデルを初期化します。\n", "\n", "- フォワードパス: ReLU(784×700)×ReLU(700×500)×Softmax(500×10)\n", "\n", "ソフトマックス活性化関数は、MLP によって適用される必要はありません。これは、損失関数と予測関数で別々に計算されます。" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.952298Z", "iopub.status.busy": "2024-01-11T19:05:40.951815Z", "iopub.status.idle": "2024-01-11T19:05:40.955714Z", "shell.execute_reply": "2024-01-11T19:05:40.955147Z" }, "id": "VmlACuki3oPi" }, "outputs": [], "source": [ "hidden_layer_1_size = 700\n", "hidden_layer_2_size = 500\n", "output_size = 10\n", "\n", "mlp_model = MLP([\n", " DenseLayer(out_dim=hidden_layer_1_size, activation=tf.nn.relu),\n", " DenseLayer(out_dim=hidden_layer_2_size, activation=tf.nn.relu),\n", " DenseLayer(out_dim=output_size)])" ] }, { "cell_type": "markdown", "metadata": { "id": "tyBATDoRmDkg" }, "source": [ "### 損失関数を定義する\n", "\n", "交差エントロピー損失関数は、モデルの確率予測に従ってデータの負の対数尤度を測定するため、マルチクラス分類問題に最適です。真のクラスに割り当てられる確率が高いほど、損失は低くなります。交差エントロピー損失の式は次のとおりです。\n", "\n", "$$L = -\\frac{1}{n}\\sum_{i=1}^{n}\\sum_{i=j}^{n} {y_j}^{[i]}⋅\\log(\\hat{{y_j}}^{[i]})$$\n", "\n", "ここでは、それぞれ以下を意味します。\n", "\n", "- $\\underset{n\\times m}{\\hat{y}}$: 予測されたクラス分布の行列\n", "- $\\underset{n\\times m}{y}$: 真のクラスのワンホットエンコードされた行列\n", "\n", "`tf.nn.sparse_softmax_cross_entropy_with_logits` 関数を使用して交差エントロピー損失を計算できます。この関数は、モデルの最後のレイヤーにソフトマックス活性化関数を適用する必要はなく、クラスラベルをホットエンコードする必要もありません。" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.959088Z", "iopub.status.busy": "2024-01-11T19:05:40.958581Z", "iopub.status.idle": "2024-01-11T19:05:40.962467Z", "shell.execute_reply": "2024-01-11T19:05:40.961828Z" }, "id": "rskOYA7FVCwg" }, "outputs": [], "source": [ "def cross_entropy_loss(y_pred, y):\n", " # Compute cross entropy loss with a sparse operation\n", " sparse_ce = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=y_pred)\n", " return tf.reduce_mean(sparse_ce)" ] }, { "cell_type": "markdown", "metadata": { "id": "BvWxED1km8jh" }, "source": [ "トレーニング中に正しい分類の割合を計算する基本的な精度関数を記述します。ソフトマックス出力からクラス予測を生成するために、最大のクラス確率に対応するインデックスを返します。 " ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.965794Z", "iopub.status.busy": "2024-01-11T19:05:40.965256Z", "iopub.status.idle": "2024-01-11T19:05:40.968892Z", "shell.execute_reply": "2024-01-11T19:05:40.968302Z" }, "id": "jPJMWx2UgiBm" }, "outputs": [], "source": [ "def accuracy(y_pred, y):\n", " # Compute accuracy after extracting class predictions\n", " class_preds = tf.argmax(tf.nn.softmax(y_pred), axis=1)\n", " is_equal = tf.equal(y, class_preds)\n", " return tf.reduce_mean(tf.cast(is_equal, tf.float32))" ] }, { "cell_type": "markdown", "metadata": { "id": "JSiNRhTOnKZr" }, "source": [ "### モデルをトレーニングする\n", "\n", "オプティマイザを使用すると、標準の勾配降下法に比べて収束が大幅に速くなる可能性があります。Adam オプティマイザは以下に実装されています。TensorFlow Core を使用したカスタムオプティマイザの設計について詳しくは、[オプティマイザ](https://www.tensorflow.org/guide/core/optimizers_core)ガイドを参照してください。" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.972162Z", "iopub.status.busy": "2024-01-11T19:05:40.971573Z", "iopub.status.idle": "2024-01-11T19:05:40.978999Z", "shell.execute_reply": "2024-01-11T19:05:40.978411Z" }, "id": "iGIBDk3cAv6a" }, "outputs": [], "source": [ "class Adam:\n", "\n", " def __init__(self, learning_rate=1e-3, beta_1=0.9, beta_2=0.999, ep=1e-7):\n", " # Initialize optimizer parameters and variable slots\n", " self.beta_1 = beta_1\n", " self.beta_2 = beta_2\n", " self.learning_rate = learning_rate\n", " self.ep = ep\n", " self.t = 1.\n", " self.v_dvar, self.s_dvar = [], []\n", " self.built = False\n", " \n", " def apply_gradients(self, grads, vars):\n", " # Initialize variables on the first call\n", " if not self.built:\n", " for var in vars:\n", " v = tf.Variable(tf.zeros(shape=var.shape))\n", " s = tf.Variable(tf.zeros(shape=var.shape))\n", " self.v_dvar.append(v)\n", " self.s_dvar.append(s)\n", " self.built = True\n", " # Update the model variables given their gradients\n", " for i, (d_var, var) in enumerate(zip(grads, vars)):\n", " self.v_dvar[i].assign(self.beta_1*self.v_dvar[i] + (1-self.beta_1)*d_var)\n", " self.s_dvar[i].assign(self.beta_2*self.s_dvar[i] + (1-self.beta_2)*tf.square(d_var))\n", " v_dvar_bc = self.v_dvar[i]/(1-(self.beta_1**self.t))\n", " s_dvar_bc = self.s_dvar[i]/(1-(self.beta_2**self.t))\n", " var.assign_sub(self.learning_rate*(v_dvar_bc/(tf.sqrt(s_dvar_bc) + self.ep)))\n", " self.t += 1.\n", " return " ] }, { "cell_type": "markdown", "metadata": { "id": "osEK3rqpYfKd" }, "source": [ "次に、ミニバッチ勾配降下で MLP パラメータを更新するカスタムトレーニングループを作成します。トレーニングにミニバッチを使用すると、メモリ効率と収束のスピードが向上します。" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.982332Z", "iopub.status.busy": "2024-01-11T19:05:40.981772Z", "iopub.status.idle": "2024-01-11T19:05:40.988091Z", "shell.execute_reply": "2024-01-11T19:05:40.987335Z" }, "id": "CJLeY2ao1aw6" }, "outputs": [], "source": [ "def train_step(x_batch, y_batch, loss, acc, model, optimizer):\n", " # Update the model state given a batch of data\n", " with tf.GradientTape() as tape:\n", " y_pred = model(x_batch)\n", " batch_loss = loss(y_pred, y_batch)\n", " batch_acc = acc(y_pred, y_batch)\n", " grads = tape.gradient(batch_loss, model.variables)\n", " optimizer.apply_gradients(grads, model.variables)\n", " return batch_loss, batch_acc\n", "\n", "def val_step(x_batch, y_batch, loss, acc, model):\n", " # Evaluate the model on given a batch of validation data\n", " y_pred = model(x_batch)\n", " batch_loss = loss(y_pred, y_batch)\n", " batch_acc = acc(y_pred, y_batch)\n", " return batch_loss, batch_acc" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:40.991469Z", "iopub.status.busy": "2024-01-11T19:05:40.990838Z", "iopub.status.idle": "2024-01-11T19:05:40.997237Z", "shell.execute_reply": "2024-01-11T19:05:40.996668Z" }, "id": "oC85kuZgmh3q" }, "outputs": [], "source": [ "def train_model(mlp, train_data, val_data, loss, acc, optimizer, epochs):\n", " # Initialize data structures\n", " train_losses, train_accs = [], []\n", " val_losses, val_accs = [], []\n", "\n", " # Format training loop and begin training\n", " for epoch in range(epochs):\n", " batch_losses_train, batch_accs_train = [], []\n", " batch_losses_val, batch_accs_val = [], []\n", "\n", " # Iterate over the training data\n", " for x_batch, y_batch in train_data:\n", " # Compute gradients and update the model's parameters\n", " batch_loss, batch_acc = train_step(x_batch, y_batch, loss, acc, mlp, optimizer)\n", " # Keep track of batch-level training performance\n", " batch_losses_train.append(batch_loss)\n", " batch_accs_train.append(batch_acc)\n", "\n", " # Iterate over the validation data\n", " for x_batch, y_batch in val_data:\n", " batch_loss, batch_acc = val_step(x_batch, y_batch, loss, acc, mlp)\n", " batch_losses_val.append(batch_loss)\n", " batch_accs_val.append(batch_acc)\n", "\n", " # Keep track of epoch-level model performance\n", " train_loss, train_acc = tf.reduce_mean(batch_losses_train), tf.reduce_mean(batch_accs_train)\n", " val_loss, val_acc = tf.reduce_mean(batch_losses_val), tf.reduce_mean(batch_accs_val)\n", " train_losses.append(train_loss)\n", " train_accs.append(train_acc)\n", " val_losses.append(val_loss)\n", " val_accs.append(val_acc)\n", " print(f\"Epoch: {epoch}\")\n", " print(f\"Training loss: {train_loss:.3f}, Training accuracy: {train_acc:.3f}\")\n", " print(f\"Validation loss: {val_loss:.3f}, Validation accuracy: {val_acc:.3f}\")\n", " return train_losses, train_accs, val_losses, val_accs" ] }, { "cell_type": "markdown", "metadata": { "id": "FvbfXlN5lwwB" }, "source": [ "バッチ サイズ 128 で MLP モデルを 10 エポックトレーニングします。GPU や TPU などのハードウェアアクセラレータもトレーニング時間をスピードアップするのに役立ちます。 " ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:05:41.000418Z", "iopub.status.busy": "2024-01-11T19:05:40.999838Z", "iopub.status.idle": "2024-01-11T19:06:43.899516Z", "shell.execute_reply": "2024-01-11T19:06:43.898765Z" }, "id": "zPlT8QfxptYl" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 0\n", "Training loss: 0.222, Training accuracy: 0.934\n", "Validation loss: 0.121, Validation accuracy: 0.963\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 1\n", "Training loss: 0.079, Training accuracy: 0.975\n", "Validation loss: 0.099, Validation accuracy: 0.971\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 2\n", "Training loss: 0.047, Training accuracy: 0.986\n", "Validation loss: 0.088, Validation accuracy: 0.976\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 3\n", "Training loss: 0.034, Training accuracy: 0.989\n", "Validation loss: 0.095, Validation accuracy: 0.975\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 4\n", "Training loss: 0.026, Training accuracy: 0.992\n", "Validation loss: 0.110, Validation accuracy: 0.971\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 5\n", "Training loss: 0.023, Training accuracy: 0.992\n", "Validation loss: 0.103, Validation accuracy: 0.976\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 6\n", "Training loss: 0.018, Training accuracy: 0.994\n", "Validation loss: 0.096, Validation accuracy: 0.979\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 7\n", "Training loss: 0.017, Training accuracy: 0.994\n", "Validation loss: 0.110, Validation accuracy: 0.977\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 8\n", "Training loss: 0.017, Training accuracy: 0.994\n", "Validation loss: 0.117, Validation accuracy: 0.976\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch: 9\n", "Training loss: 0.013, Training accuracy: 0.996\n", "Validation loss: 0.107, Validation accuracy: 0.979\n" ] } ], "source": [ "train_losses, train_accs, val_losses, val_accs = train_model(mlp_model, train_data, val_data, \n", " loss=cross_entropy_loss, acc=accuracy,\n", " optimizer=Adam(), epochs=10)" ] }, { "cell_type": "markdown", "metadata": { "id": "j_RVmt43G12R" }, "source": [ "### パフォーマンス評価\n", "\n", "まず、トレーニング中のモデルの損失と精度を視覚化するプロット関数を作成します。 " ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:43.903681Z", "iopub.status.busy": "2024-01-11T19:06:43.903216Z", "iopub.status.idle": "2024-01-11T19:06:43.907845Z", "shell.execute_reply": "2024-01-11T19:06:43.907243Z" }, "id": "VXTCYVtNDjAM" }, "outputs": [], "source": [ "def plot_metrics(train_metric, val_metric, metric_type):\n", " # Visualize metrics vs training Epochs\n", " plt.figure()\n", " plt.plot(range(len(train_metric)), train_metric, label = f\"Training {metric_type}\")\n", " plt.plot(range(len(val_metric)), val_metric, label = f\"Validation {metric_type}\")\n", " plt.xlabel(\"Epochs\")\n", " plt.ylabel(metric_type)\n", " plt.legend()\n", " plt.title(f\"{metric_type} vs Training epochs\");" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:43.911204Z", "iopub.status.busy": "2024-01-11T19:06:43.910745Z", "iopub.status.idle": "2024-01-11T19:06:44.090557Z", "shell.execute_reply": "2024-01-11T19:06:44.089951Z" }, "id": "DC-qIvZbHo0G" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_metrics(train_losses, val_losses, \"cross entropy loss\")" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:44.094123Z", "iopub.status.busy": "2024-01-11T19:06:44.093563Z", "iopub.status.idle": "2024-01-11T19:06:44.275649Z", "shell.execute_reply": "2024-01-11T19:06:44.275079Z" }, "id": "P-w2xk2PIDve" }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwkAAAIjCAYAAABI21doAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACDXElEQVR4nO3dd3gU1f7H8c+m9xBICCSEFjpC6AgooKIBFAVRQFGa5SpFkasCCoh6lZ+Ni4K9oIAFVOBiQwErSJMmCEhvEVIoqaTu/P4YssmSBEII7G7yfj3PPGZnZ2bPLgHns+d8z7EYhmEIAAAAAM5wc3QDAAAAADgXQgIAAAAAO4QEAAAAAHYICQAAAADsEBIAAAAA2CEkAAAAALBDSAAAAABgh5AAAAAAwA4hAQAAAIAdQgIAwCUNGzZMdevWLdO5U6dOlcViKd8GVRDdu3fXFVdc4ehmAHAwQgIAoFxZLJZSbT///LOjmwoAKIHFMAzD0Y0AAFQc8+bNs3s8Z84cLVu2THPnzrXbf/311ys8PLzMr5OTkyOr1Spvb+8LPjc3N1e5ubny8fEp8+tXVN27d1dSUpK2bdvm6KYAcCAPRzcAACqD9PR0+fv7O7oZl8Vdd91l93jNmjVatmxZkf1ny8jIkJ+fX6lfx9PTs0ztkyQPDw95ePC/QAAoCcONALikgwcPauTIkWrcuLF8fX1VrVo13X777Tpw4ECRY0+dOqVHHnlEdevWlbe3t2rVqqUhQ4YoKSnJdkxmZqamTp2qRo0aycfHRzVr1tStt96qvXv3SpJ+/vnnYofIHDhwQBaLRR9++KFt37BhwxQQEKC9e/eqd+/eCgwM1ODBgyVJv/32m26//XbVrl1b3t7eioqK0iOPPKLTp08XaffOnTs1YMAAhYWFydfXV40bN9aTTz4pSfrpp59ksVi0aNGiIud98sknslgsWr16dbGf3R9//CGLxaKPPvqoyHPff/+9LBaLvv76a0lSamqqxo4da/vsqlevruuvv14bN24s9tqllT/ufcOGDeratav8/Pz0xBNPSJL+97//6cYbb1RERIS8vb0VHR2tZ599Vnl5eXbXOLsmIf/P4uWXX9Y777yj6OhoeXt7q3379lq/fr3ducXVJFgsFo0ePVqLFy/WFVdcIW9vbzVv3lxLly4t0v6ff/5Z7dq1k4+Pj6Kjo/X2229fUJ3D2rVr1bNnTwUHB8vPz0/dunXTqlWrim1j/u9BUFCQqlWrpocffliZmZl2x+bm5urZZ5+1vee6devqiSeeUFZWVpHX/u6779StWzcFBgYqKChI7du31yeffFLkuO3bt+uaa66Rn5+fIiMj9eKLLxY5ZubMmWrevLn8/PwUEhKidu3aFXstAK6Hr1EAuKT169fr999/16BBg1SrVi0dOHBAb775prp3767t27fbvpFOS0vT1VdfrR07dmjEiBFq06aNkpKStGTJEh05ckShoaHKy8vTTTfdpBUrVmjQoEF6+OGHlZqaqmXLlmnbtm2Kjo6+4Pbl5uYqNjZWV111lV5++WVbez7//HNlZGTowQcfVLVq1bRu3TrNnDlTR44c0eeff247/88//9TVV18tT09P3X///apbt6727t2rr776Ss8995y6d++uqKgoffzxx+rXr5/da3/88ceKjo5Wp06dim1bu3btVL9+fS1YsEBDhw61e27+/PkKCQlRbGysJOmBBx7QF198odGjR6tZs2Y6fvy4Vq5cqR07dqhNmzYX/LkUdvz4cfXq1UuDBg3SXXfdZRt69OGHHyogIEDjxo1TQECAfvzxR02ZMkUpKSl66aWXznvdTz75RKmpqfrXv/4li8WiF198Ubfeeqv27dt33t6HlStXauHChRo5cqQCAwP12muvqX///jp06JCqVasmSdq0aZN69uypmjVr6umnn1ZeXp6eeeYZhYWFlep9//jjj+rVq5fatm2rp556Sm5ubpo9e7auvfZa/fbbb+rQoYPd8QMGDFDdunU1bdo0rVmzRq+99ppOnjypOXPm2I6599579dFHH+m2227Tv//9b61du1bTpk3Tjh077ILkhx9+qBEjRqh58+aaOHGiqlSpok2bNmnp0qW68847bcedPHlSPXv21K233qoBAwboiy++0Pjx49WiRQv16tVLkvTuu+/qoYce0m233WYLLn/++afWrl1rdy0ALsoAABeUkZFRZN/q1asNScacOXNs+6ZMmWJIMhYuXFjkeKvVahiGYXzwwQeGJGP69OklHvPTTz8ZkoyffvrJ7vn9+/cbkozZs2fb9g0dOtSQZEyYMKFU7Z42bZphsViMgwcP2vZ17drVCAwMtNtXuD2GYRgTJ040vL29jVOnTtn2JSQkGB4eHsZTTz1V5HUKmzhxouHp6WmcOHHC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kqQbbrhBgYGBmjZtWpEpVMvSU3L8+HG7x15eXmrWrJkMw1BOTs4FXw+Ac6EnAYBLuummmzR37lwFBwerWbNmWr16tZYvX26bpjLfY489pi+++EK33367RowYobZt2+rEiRNasmSJ3nrrLcXExGjIkCGaM2eOxo0bp3Xr1unqq69Wenq6li9frpEjR+qWW25RcHCwbr/9ds2cOVMWi0XR0dH6+uuvlZCQUOo2N2nSRNHR0Xr00UcVFxenoKAgffnll8WOlX/ttdd01VVXqU2bNrr//vtVr149HThwQN988402b95sd+yQIUN02223SZKeffbZC/ocBw4cqClTpsjHx0f33HOP3RCp1NRU1apVS7fddptiYmIUEBCg5cuXa/369XY9OOWpc+fOCgkJ0dChQ/XQQw/JYrFo7ty55TbcpzxMnTpVP/zwg7p06aIHH3xQeXl5mjVrlq644ooifzZnc3Nz03vvvadevXqpefPmGj58uCIjIxUXF6effvpJQUFB+uqrr+zO2b9/v26++Wb17NlTq1ev1rx583TnnXcqJiZGkllfMnToUL3zzju24Vrr1q3TRx99pL59++qaa66RZPZe/Pe//9W9996r9u3b684771RISIi2bNmijIyMYtfNOJcbbrhBNWrUUJcuXRQeHq4dO3Zo1qxZuvHGGxUYGHhB1wLghBwxpRIAXKyTJ08aw4cPN0JDQ42AgAAjNjbW2Llzp1GnTh1j6NChdsceP37cGD16tBEZGWl4eXkZtWrVMoYOHWokJSXZjsnIyDCefPJJo169eoanp6dRo0YN47bbbjP27t1rOyYxMdHo37+/4efnZ4SEhBj/+te/jG3bthU7Baq/v3+x7d6+fbvRo0cPIyAgwAgNDTXuu+8+2zSbha9hGIaxbds2o1+/fkaVKlUMHx8fo3HjxsbkyZOLXDMrK8sICQkxgoODi0xteT67d+82JBmSjJUrVxa57mOPPWbExMQYgYGBhr+/vxETE2O88cYbF/QaJU2BWtL0matWrTKuvPJKw9fX14iIiDAef/xx4/vvvy8yBW1JU6C+9NJLRa4pyW5a2JKmQC1uutfifqdWrFhhtG7d2vDy8jKio6ON9957z/j3v/9t+Pj4lPAp2Nu0aZNx6623GtWqVTO8vb2NOnXqGAMGDDBWrFhRpI3bt283brvtNiMwMNAICQkxRo8eXeTPOScnx3j66adtv79RUVHGxIkT7aaMzbdkyRKjc+fOhq+vrxEUFGR06NDB+PTTT23Pl/Rnc/bn/fbbbxtdu3a1vYfo6GjjscceM5KTk0v1GQBwbhbDcKKvZwAAFyw3N1cRERHq06eP3n//fUc3p9Lq27ev/vrrL9sMRhdr6tSpevrpp5WYmFjqIWQAUF6oSQAAF7d48WIlJibaFUPj0jp9+rTd4927d+vbb79V9+7dHdMgAChn1CQAgItau3at/vzzTz377LNq3bq1bb0FXHr169fXsGHDVL9+fR08eFBvvvmmvLy89Pjjjzu6aQBQLggJAOCi3nzzTc2bN0+tWrXShx9+6OjmVCo9e/bUp59+qmPHjsnb21udOnXS888/X2ThMwBwVdQkAAAAALBDTQIAAAAAO4QEAAAAAHaoSSiG1WrVP//8o8DAQFksFkc3BwAAACgXhmEoNTVVERERdgtono2QUIx//vlHUVFRjm4GAAAAcEkcPnxYtWrVKvF5QkIx8peTP3z4sIKCghzcGgAAAKB8pKSkKCoqyna/WxJCQjHyhxgFBQUREgAAAFDhnG9IPYXLAAAAAOwQEgAAAADYISQAAAAAsENNQhkZhqHc3Fzl5eU5uilAuXJ3d5eHhwfT/wIAUIkREsogOztbR48eVUZGhqObAlwSfn5+qlmzpry8vBzdFAAA4ACEhAtktVq1f/9+ubu7KyIiQl5eXnzjigrDMAxlZ2crMTFR+/fvV8OGDc+50AoAAKiYCAkXKDs7W1arVVFRUfLz83N0c4By5+vrK09PTx08eFDZ2dny8fFxdJMAAMBlxleEZcS3q6jI+P0GAKBy404AAAAAgB1CAgAAAAA7hARclLp162rGjBmlPv7nn3+WxWLRqVOnLlmbAAAAcHEICZWExWI55zZ16tQyXXf9+vW6//77S318586ddfToUQUHB5fp9QAAAHDpMbtRJXH06FHbz/Pnz9eUKVP0999/2/YFBATYfjYMQ3l5efLwOP+vR1hY2AW1w8vLSzVq1LigcyqK7Oxs1h0AAAAugZ6EcmAYhjKycy/7ZhhGqdtYo0YN2xYcHCyLxWJ7vHPnTgUGBuq7775T27Zt5e3trZUrV2rv3r265ZZbFB4eroCAALVv317Lly+3u+7Zw40sFovee+899evXT35+fmrYsKGWLFlie/7s4UYffvihqlSpou+//15NmzZVQECAevbsaRdqcnNz9dBDD6lKlSqqVq2axo8fr6FDh6pv374lvt/jx4/rjjvuUGRkpPz8/NSiRQt9+umndsdYrVa9+OKLatCggby9vVW7dm0999xztuePHDmiO+64Q1WrVpW/v7/atWuntWvXSpKGDRtW5PXHjh2r7t272x53795do0eP1tixYxUaGqrY2FhJ0vTp09WiRQv5+/srKipKI0eOVFpamt21Vq1ape7du8vPz08hISGKjY3VyZMnNWfOHFWrVk1ZWVl2x/ft21d33313iZ8HAADAhaAnoRyczslTsynfX/bX3f5MrPy8yu+PcMKECXr55ZdVv359hYSE6PDhw+rdu7eee+45eXt7a86cOerTp4/+/vtv1a5du8TrPP3003rxxRf10ksvaebMmRo8eLAOHjyoqlWrFnt8RkaGXn75Zc2dO1dubm6666679Oijj+rjjz+WJL3wwgv6+OOPNXv2bDVt2lSvvvqqFi9erGuuuabENmRmZqpt27YaP368goKC9M033+juu+9WdHS0OnToIEmaOHGi3n33Xf33v//VVVddpaNHj2rnzp2SpLS0NHXr1k2RkZFasmSJatSooY0bN8pqtV7QZ/rRRx/pwQcf1KpVq2z73Nzc9Nprr6levXrat2+fRo4cqccff1xvvPGGJGnz5s267rrrNGLECL366qvy8PDQTz/9pLy8PN1+++166KGHtGTJEt1+++2SpISEBH3zzTf64YcfLqhtAAAAJSEkwOaZZ57R9ddfb3tctWpVxcTE2B4/++yzWrRokZYsWaLRo0eXeJ1hw4bpjjvukCQ9//zzeu2117Ru3Tr17Nmz2ONzcnL01ltvKTo6WpI0evRoPfPMM7bnZ86cqYkTJ6pfv36SpFmzZunbb78953uJjIzUo48+ans8ZswYff/991qwYIE6dOig1NRUvfrqq5o1a5aGDh0qSYqOjtZVV10lSfrkk0+UmJio9evX28JNgwYNzvmaxWnYsKFefPFFu31jx461/Vy3bl395z//0QMPPGALCS+++KLatWtneyxJzZs3t/185513avbs2baQMG/ePNWuXduuFwMAAOBiEBLKga+nu7Y/E+uQ1y1P7dq1s3uclpamqVOn6ptvvtHRo0eVm5ur06dP69ChQ+e8TsuWLW0/+/v7KygoSAkJCSUe7+fn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9Wr9+OOPCg0NlZubm9zd3XXVVVdp2rRpeuihh7Rp06bybiecGPUIAAAAFUuZehLy8vIUGBgoSQoNDdU///wjSapTp47+/vvvC7rW66+/rrp168rHx0cdO3bUunXrSjw2JydHzzzzjKKjo+Xj46OYmBgtXbq0yHFxcXG66667VK1aNfn6+qpFixb6448/LqhdKD3qEQAAACqWMoWEK664Qlu2bJEkdezYUS+++KJWrVqlZ555RvXr1y/1debPn69x48bpqaee0saNGxUTE6PY2FglJCQUe/ykSZP09ttva+bMmdq+fbseeOAB9evXz67n4uTJk+rSpYs8PT313Xffafv27XrllVcUEsLN66VCPQIAAEDFYjEMw7jQk77//nulp6fr1ltv1Z49e3TTTTdp165dqlatmubPn69rr722VNfp2LGj2rdvr1mzZkmSrFaroqKiNGbMGE2YMKHI8REREXryySc1atQo277+/fvL19dX8+bNkyRNmDBBq1at0m+//Xahb8smJSVFwcHBSk5OVlBQUJmvU1mMW7BZCzfGadQ10XostomjmwMAAIASlPY+t0w9CbGxsbr11lslSQ0aNNDOnTuVlJSkhISEUgeE7OxsbdiwQT169ChojJubevToodWrVxd7TlZWlnx8fOz2+fr6auXKlbbHS5YsUbt27XT77berevXqat26td59991ztiUrK0spKSl2G0qHegQAAICKp0whoThVq1a1mwb1fJKSkpSXl6fw8HC7/eHh4Tp27Fix58TGxmr69OnavXu3rFarli1bpoULF+ro0aO2Y/bt26c333xTDRs21Pfff68HH3xQDz30kD766KMS2zJt2jQFBwfbtqioqFK/j8ouvx7B0516BAAAgIqi3ELC5fDqq6+qYcOGatKkiby8vDR69GgNHz5cbm4Fb8NqtapNmzZ6/vnn1bp1a91///2677779NZbb5V43YkTJyo5Odm2HT58+HK8nQph9d4z9Qi1qEcAAACoKBwWEkJDQ+Xu7q74+Hi7/fHx8apRo0ax54SFhWnx4sVKT0/XwYMHtXPnTgUEBNgVS9esWVPNmjWzO69p06Y6dOhQiW3x9vZWUFCQ3YbSKVgfgaFGAAAAFYXDQoKXl5fatm2rFStW2PZZrVatWLFCnTp1Oue5Pj4+ioyMVG5urr788kvdcssttue6dOlSZBrW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9PLLL5d7ewGgoqMmAQBQLtasWVPkcdOmTSVJTZs21ZYtW5Senm57ftWqVXJzc1Pjxo0VGBiounXrasWKFRfVhrCwMA0dOlTz5s3TjBkz9M4771zU9QCgsqInAQBQKllZWTp27JjdPg8PD1tx8Oeff6527drpqquu0scff6x169bp/ffflyQNHjxYTz31lIYOHaqpU6cqMTFRY8aM0d13363w8HBJ0tSpU/XAAw+oevXq6tWrl1JTU7Vq1SqNGTOmVO2bMmWK2rZtq+bNmysrK0tff/21LaQAAC4MIQEAUCpLly5VzZo17fY1btxYO3fulGTOPPTZZ59p5MiRqlmzpj799FM1a9ZMkuTn56fvv/9eDz/8sNq3by8/Pz/1799f06dPt11r6NChyszM1H//+189+uijCg0N1W233Vbq9nl5eWnixIk6cOCAfH19dfXVV+uzzz4rh3cOAJUPsxsBAC6axWLRokWL1LdvX0c3BQBQDqhJAAAAAGCHkAAAAADADjUJAICLxshVAKhY6EkAAAAAYIeQAAAAAMAOIQEAAACAHUICAAAAADuEBAAAAAB2CAkAAAAA7BASAAAAANghJAAAAACw8//RLkgj38kTCAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_metrics(train_accs, val_accs, \"accuracy\")" ] }, { "cell_type": "markdown", "metadata": { "id": "tbrJJaFrD_XR" }, "source": [ "## モデルを保存して読み込む\n", "\n", "まず、生データを取り込み、次の演算を実行するエクスポートモジュールを作成します。\n", "\n", "- データの前処理\n", "- 確率予測\n", "- クラス予測" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:44.279028Z", "iopub.status.busy": "2024-01-11T19:06:44.278802Z", "iopub.status.idle": "2024-01-11T19:06:44.283663Z", "shell.execute_reply": "2024-01-11T19:06:44.283092Z" }, "id": "1sszfWuJJZoo" }, "outputs": [], "source": [ "class ExportModule(tf.Module):\n", " def __init__(self, model, preprocess, class_pred):\n", " # Initialize pre and postprocessing functions\n", " self.model = model\n", " self.preprocess = preprocess\n", " self.class_pred = class_pred\n", "\n", " @tf.function(input_signature=[tf.TensorSpec(shape=[None, None, None, None], dtype=tf.uint8)]) \n", " def __call__(self, x):\n", " # Run the ExportModule for new data points\n", " x = self.preprocess(x)\n", " y = self.model(x)\n", " y = self.class_pred(y)\n", " return y " ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:44.286642Z", "iopub.status.busy": "2024-01-11T19:06:44.286399Z", "iopub.status.idle": "2024-01-11T19:06:44.290175Z", "shell.execute_reply": "2024-01-11T19:06:44.289616Z" }, "id": "p8x6gjTDVi5d" }, "outputs": [], "source": [ "def preprocess_test(x):\n", " # The export module takes in unprocessed and unlabeled data\n", " x = tf.reshape(x, shape=[-1, 784])\n", " x = x/255\n", " return x\n", "\n", "def class_pred_test(y):\n", " # Generate class predictions from MLP output\n", " return tf.argmax(tf.nn.softmax(y), axis=1)" ] }, { "cell_type": "markdown", "metadata": { "id": "vu9H5STrJzdo" }, "source": [ "次に、このエクスポートモジュールを `tf.saved_model.save` 関数で保存します。 " ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:44.293582Z", "iopub.status.busy": "2024-01-11T19:06:44.292970Z", "iopub.status.idle": "2024-01-11T19:06:44.296171Z", "shell.execute_reply": "2024-01-11T19:06:44.295607Z" }, "id": "fN9pPBQTKTe3" }, "outputs": [], "source": [ "mlp_model_export = ExportModule(model=mlp_model,\n", " preprocess=preprocess_test,\n", " class_pred=class_pred_test)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:44.299410Z", "iopub.status.busy": "2024-01-11T19:06:44.298889Z", "iopub.status.idle": "2024-01-11T19:06:44.611319Z", "shell.execute_reply": "2024-01-11T19:06:44.610696Z" }, "id": "idS7rQKbKwRS" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO:tensorflow:Assets written to: /tmpfs/tmp/tmpqlzp0tgq/mlp_model_export/assets\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:tensorflow:Assets written to: /tmpfs/tmp/tmpqlzp0tgq/mlp_model_export/assets\n" ] } ], "source": [ "models = tempfile.mkdtemp()\n", "save_path = os.path.join(models, 'mlp_model_export')\n", "tf.saved_model.save(mlp_model_export, save_path)" ] }, { "cell_type": "markdown", "metadata": { "id": "_zZxO8iqBGZ-" }, "source": [ "保存されたモデルを `tf.saved_model.load` で読み込み、トレーニングに使用されていないテストデータでそのパフォーマンスを調べます。" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:44.615389Z", "iopub.status.busy": "2024-01-11T19:06:44.614892Z", "iopub.status.idle": "2024-01-11T19:06:44.691503Z", "shell.execute_reply": "2024-01-11T19:06:44.690861Z" }, "id": "W5cwBTUqxldW" }, "outputs": [], "source": [ "mlp_loaded = tf.saved_model.load(save_path)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:44.695095Z", "iopub.status.busy": "2024-01-11T19:06:44.694502Z", "iopub.status.idle": "2024-01-11T19:06:45.715842Z", "shell.execute_reply": "2024-01-11T19:06:45.715170Z" }, "id": "bmv0u6j_b5OC" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Test Accuracy: 0.979\n" ] } ], "source": [ "def accuracy_score(y_pred, y):\n", " # Generic accuracy function\n", " is_equal = tf.equal(y_pred, y)\n", " return tf.reduce_mean(tf.cast(is_equal, tf.float32))\n", "\n", "x_test, y_test = tfds.load(\"mnist\", split=['test'], batch_size=-1, as_supervised=True)[0]\n", "test_classes = mlp_loaded(x_test)\n", "test_acc = accuracy_score(test_classes, y_test)\n", "print(f\"Test Accuracy: {test_acc:.3f}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "j5t9vgv_ciQ_" }, "source": [ "このモデルは、トレーニングデータセット内の手書きの数字をうまく分類し、トレーニングに使用されていないテストデータにも一般化しています。次に、モデルのクラスごとの精度を調べて、各数字のパフォーマンスが良好であることを確認します。 " ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:45.719510Z", "iopub.status.busy": "2024-01-11T19:06:45.719103Z", "iopub.status.idle": "2024-01-11T19:06:45.776269Z", "shell.execute_reply": "2024-01-11T19:06:45.775655Z" }, "id": "UD8YiC1Vfeyp" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy breakdown by digit:\n", "---------------------------\n", "Digit 6: 0.969\n", "Digit 9: 0.972\n", "Digit 7: 0.973\n", "Digit 5: 0.974\n", "Digit 3: 0.977\n", "Digit 4: 0.979\n", "Digit 0: 0.981\n", "Digit 8: 0.982\n", "Digit 2: 0.987\n", "Digit 1: 0.992\n" ] } ], "source": [ "print(\"Accuracy breakdown by digit:\")\n", "print(\"---------------------------\")\n", "label_accs = {}\n", "for label in range(10):\n", " label_ind = (y_test == label)\n", " # extract predictions for specific true label\n", " pred_label = test_classes[label_ind]\n", " label_filled = tf.cast(tf.fill(pred_label.shape[0], label), tf.int64)\n", " # compute class-wise accuracy\n", " label_accs[accuracy_score(pred_label, label_filled).numpy()] = label\n", "for key in sorted(label_accs):\n", " print(f\"Digit {label_accs[key]}: {key:.3f}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "rcykuJFhdGb0" }, "source": [ "いくつかの数字では、他の数字よりもモデルのパフォーマンスが低くなっています。これは、多くのマルチクラス分類問題で非常に一般的です。最後の演習として、モデルの予測とそれに対応する真のラベルの混同行列をプロットして、より多くのクラス レベルの洞察を収集します。 Sklearn と seaborn には、混同行列を生成して視覚化する関数があります。 " ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "execution": { "iopub.execute_input": "2024-01-11T19:06:45.779733Z", "iopub.status.busy": "2024-01-11T19:06:45.779316Z", "iopub.status.idle": "2024-01-11T19:06:46.285322Z", "shell.execute_reply": "2024-01-11T19:06:46.284604Z" }, "id": "JqCaqPwwh1tN" }, "outputs": [ { "data": { "image/png": "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YfRRdVfhq16vVv2PlaqaWjsYV65cQWxsLNq2batwf2xsLG7duoUmTXL2n63sdjB+NtntYPxsstvBICIioryDHYzvkx86GGpt2kaNGmW5v1ChQjnuXBARERERkfrk4b4jEREREZEacBEppXChfSIiIiIiUhl2MIiIiIiISGU4RYqIiIiIKAP+0J5yOIJBREREREQqww4GERERERGpDKdIERERERFlwClSyuEIBhERERERqQw7GEREREREpDKcIkVERERElAGnSCmHIxhERERERKQy7GAQEREREZHKcIoUEREREVEGnCKlHI5gEBERERGRyrCDQUREREREKsMpUkREREREGXGGlFI4gkFERERERCrDDgYREREREakMp0gREREREWXAVaSUwxEMIiIiIiJSGXYwiIiIiIhIZThFioiIiIgoA06RUg5HMIiIiIiISGXYwSAiIiIiIpXhFCkiIiIiogw4Q0o57GD8RCL/W6XuKqiFQYNx6q6CWkR4u6u7CmrBmz4REVHexilSRERERESkMhzBICIiIiLKgKtIKYcjGEREREREpDLsYBARERERkcpwihQRERERUQacIaUcjmAQEREREZHKsINBREREREQqwylSREREREQZcBUp5XAEg4iIiIiIVIYdDCIiIiIiUhlOkSIiIiIiyoAzpJTDEQwiIiIiIlIZdjCIiIiIiEhlOEWKiIiIiCgDsZhzpJTBEQwiIiIiIlIZdjCIiIiIiEhlOEWKiIiIiCgDriKlHI5gEBERERGRyrCDQUREREREKsMpUkREREREGYg4R0opHMEgIiIiIiKVYQeDiIiIiIhUhlOkiIiIiIgy4Awp5XAEg4iIiIiIVKZAdzD27PJEu1bNUd/cGP1698A9P78s8587exqdf2+L+ubG6N6lI678e1luvyAIWL1yBVo0sUUDCxMMtx+Mly9fyOWJev8ejlMnwbqBBWwb1oOz0wx8jI2Vy/P4UQAGD+iL+ubGaN2iCbZs2qCSeD/Lq3GfPXMKPbt1hmVdU7Rt2QxbN29USbyfOfRshIATzoi8sQT/bpuIer9V/GpeTU0xHIe1xYOjsxF5Ywm890xDK+tacnnEYhFmj2wP/+POiLi+GA+Ozsb0oW3k8sTdcVe4TRjYPNM5tbU04bV7KuLuuMOkRjnVBA1gz25PtGvdHA0sjNG/Tw/cu/ft9u7SsS0a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ERIWjU0Hr2H++jNy5+7RxgIiiLDv7G2VxJITbdq1R2RkBNZkbO+16e0dEhIiNyfazNwC8xcsxuqVy7FyRWp7L3NfjeoZ2nvw/1Lb+8+M7b12Y46eeypSpAjWrN8Et3mu6Nszw3XeI39f5x6r3HHs6GHZ373sugAANm7ZjvoNLKGhoYGVHmsxz9UFA/v1gp6eHjp27opRY8bl67gL4n3N6/o1vHr1Eq9evUTr5o3l6uP7IH3FujEjh8utnPT5msiY52eMOzfv53x/F6y4KX8SCYIgfDtb7nBzc8OVK1dw6tQphftHjRqFtWvXIiUlJUflfuKPRxYoBg0K5k0swjt//4jR98ovw8NERJQ1XbV+zZ018zmX1F2Fr7rr3FzdVfgmtXYwcgs7GAULOxgFCzsYREQ/B3Ywvk9+6GBwvTgiIiIiIlKZPNx3JCIiIiL68TharhyOYBARERERkcqwg0FERERERCrDKVJERERERBmIOEdKKRzBICIiIiIilWEHg4iIiIiIVIZTpIiIiIiIMuAMKeVwBIOIiIiIiFSGHQwiIiIiIlIZTpEiIiIiIsqAq0gphyMYRERERESkMuxgEBERERGRynCKFBERERFRBpwhpRyOYBARERERkcqwg0FERERERCrDKVJERERERBlwFSnlcASDiIiIiIhUhh0MIiIiIiJSGU6RIiIiIiLKgDOklMMRDCIiIiIiUhl2MIiIiIiISGU4RYqIiIiIKAOuIqUcjmAQEREREZHKsINBREREREQqwylSlO9FeLuruwpqUdxqgrqroBaRXsvUXQW1EAR110A9CuoshYLa3kR5RUG996gKRzCIiIiIiEhl2MEgIiIiIiKV4RQpIiIiIqIMuIqUcjiCQUREREREKsMOBhERERERqQynSBERERERZcAZUsrhCAYREREREakMOxhERERERKQynCJFRERERJQBV5FSDkcwiIiIiIhIZdjBICIiIiIileEUKSIiIiKiDDhFSjkcwSAiIiIiIpVhB4OIiIiIiFSGU6SIiIiIiDLgDCnlcASDiIiIiIhUhh0MIiIiIiJSGU6RIiIiIiLKgKtIKYcjGEREREREpDLsYBARERERkcpwihQRERERUQacIaUcjmAQEREREZHKsINBREREREQqwylSREREREQZcBUp5RToEYw9uzzRrlVz1Dc3Rr/ePXDPzy/L/OfO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jToSEREREVE+keMRjM6dO+P48eO4cOECChUqhNmzZ8Pf3x/Hjx9Hq1atcqOOREREREQ/jFgkyrNbfpDjEQwAaNSoEc6fP6/quhARERERUT73XR0MALh16xb8/VPXdq9duzbq1q2rskoREREREVH+lOMOxps3b9CnTx9cu3YNxYoVAwC8f/8e1tbW2LNnD8qXL6/qOhIRERER/TD5ZCZSnpXjZzCGDh2KxMRE+Pv7IyIiAhEREfD390dKSgqGDh2aG3UkIiIiIqJ8IscjGJcvX8b169dhZGQkSzMyMsLKlSvRqFEjlVaOiIiIiIjylxx3MCpUqKDwB/WSk5NRtmxZlVSKiIiIiEhdRJwjpZQcT5FatGgRxo4di1u3bsnSbt26hfHjx2Px4sUqrRwREREREeUv2RrBMDAwkOvJxcbGwtLSEpqaqYcnJSVBU1MT//vf/9ClS5dcqSgREREREeV92epgLF++PJerQURERESUN3CGlHKy1cEYNGhQbteDiIiIiIh+At/9Q3sA8OnTJyQkJMilFS1aVKkKERERERFR/pXjDkZsbCymTZuGffv2ITw8PNP+5ORklVSMiIiIiEgdxJwjpZQcryI1depUXLp0CWvWrIGOjg42btyIOXPmoGzZsti+fXtu1JGIiIiIiPKJHI9gHD9+HNu3b0fTpk0xZMgQNGrUCNWrV0elSpXg6emJfv365UY9iYiIiIgoH8jxCEZERASqVq0KIPV5i4iICACAra0t/v33X9XWjoiIiIjoBxOJ8u6WH+S4g1G1alU8f/4cAFCzZk3s27cPQOrIRrFixVRaOSIiIiIiyl9y3MEYMmQIfH19AQDTp0/H6tWroauriwkTJmDKlCkqryAREREREeUfOX4GY8KECbJ/t2zZEgEBAbh9+zaqV68OExMTlVaOiIiIiOhHE+WXuUh5lFK/gwEAlSpVQqVKlVRRFyIiIiIiyuey1cFwd3fPdoHjxo377soQEREREVH+lq0OxrJly7JVmEgkYgeDiIiIiPK1HD+kTHKy1cH4vGoUUV5UUKdJJqcI6q6CWkR6Ze8Lj5+NgdVEdVdBLSJvLFV3FYhyHX81mn427KAREREREZHKsINBREREREQqo/QqUkREREREPxMuU6scjmAQEREREZHKsINBREREREQq810djCtXrqB///6wsrJCUFAQAGDHjh24evWq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F3mbVMn5Rd5WVlawtLSEh4cHgNQ7uFauXBljxozB9OnTv7t/cnIydHR04OHhgb59++b4uEr9HQwiIiIiorwmL//OXnx8POLj42XWZfbD0wkJCbh9+zacnNJ/xFYsFqNFixa4du0aciI2NhaJiYkoVarUD7WRKVJERERERPmEq6srSpQoIbO4urpmKBceHo7k5GSULVtWZn3ZsmXx7t27HB1r2rRpqFChAlq0aPFDbeQMBhERERFRPuHk5ISJEyfKrPt29kIRFi9ejL179+LChQvQ1NT8oX05wCAiIiIikpaHc6QyS4fKjJ6eHlRUVBAaGiqzPjQ0FOXKlct23+XLl2Px4sU4e/YsjIyMfriNTJEiIiIiIipg1NXVYW5ujnPnzknWpaSk4Ny5c7C2ts5yv6VLl2L+/Pk4deoULCwsfurYnMEgIiIiIiqAJk6ciH79+sHCwgINGjTA6tWrERMTgwEDBgAA+vbti4oVK0qu4ViyZAlmz56N3bt3o1q1apJrNYoVK4ZixYrl+LgcYBARERERSRHl5RypH9CjRw+8f/8es2fPxrt372BiYoJTp05JLvx+9eoVxOL0hCZPT08kJCSga9euMvW4uLhgzpw5OT4ufweDiIiI8gT+Dkbhkpd/B+Pe62hlNyFLRpVzPpOgLLwGg4iIiIiIFIYpUkREREREUkQFI0NKaTiDQURERERECsMBBhERERERKQxTpIiIiIiIpDBDSj6cwSAiIiIiIoXhAIOIiIiIiBSGKVJERERERNKYIyUXzmAQEREREZHCcIBBREREREQKwxQpIiIiIiIpIuZIyYUzGEREREREpDAiQRAEZTdC0b4kKbsFRJRbUgreS1aOFNZv00SFM2wU0tO80Pa3js1kZTdBKeJuLFd2E7Lk/zZG2U3IUr2KRZXdhO9iihQRERERkZTCOthVFKZIERERERGRwnCAQURERERECsMUKSIiIiIiKcyQkg9nMIiIiIiISGE4wCAiIiIiIoVhihQRERERkTTmSMmFMxhERERERKQwHGAQEREREZHCMEWKiIiIiEiKiDlScuEMBhERERERKQwHGEREREREpDBMkSIiIiIikiJihpRcOINBREREREQKwwEGEREREREpDFOkiIiIiIikMENKPpzBICIiIiIiheEAg4iIiIiIFIYpUkRERERE0pgjJRfOYBARERERkcJw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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import sklearn.metrics as sk_metrics\n", "\n", "def show_confusion_matrix(test_labels, test_classes):\n", " # Compute confusion matrix and normalize\n", " plt.figure(figsize=(10,10))\n", " confusion = sk_metrics.confusion_matrix(test_labels.numpy(), \n", " test_classes.numpy())\n", " confusion_normalized = confusion / confusion.sum(axis=1)\n", " axis_labels = range(10)\n", " ax = sns.heatmap(\n", " confusion_normalized, xticklabels=axis_labels, yticklabels=axis_labels,\n", " cmap='Blues', annot=True, fmt='.4f', square=True)\n", " plt.title(\"Confusion matrix\")\n", " plt.ylabel(\"True label\")\n", " plt.xlabel(\"Predicted label\")\n", "\n", "show_confusion_matrix(y_test, test_classes)" ] }, { "cell_type": "markdown", "metadata": { "id": "JT-WA7GVda6d" }, "source": [ "クラスレベルの洞察は、誤分類の理由を特定し、将来のトレーニングサイクルでモデルのパフォーマンスを向上させるのに役立ちます。" ] }, { "cell_type": "markdown", "metadata": { "id": "VFLfEH4ManbW" }, "source": [ "## まとめ\n", "\n", "このノートブックでは、[MLP](https://developers.google.com/machine-learning/crash-course/multi-class-neural-networks/softmax) を使用してマルチクラス分類の問題を処理するためのいくつかの手法を紹介しました。以下に役立つヒントをいくつか紹介します。\n", "\n", "- [TensorFlow Core API](https://www.tensorflow.org/guide/core) を使用して、高度な設定が可能な機械学習ワークフローを構築できます。\n", "- 初期化スキームは、トレーニング時にモデルパラメータが大きくなりすぎたり小さくなりすぎたりするのを防ぐのに役立ちます。\n", "- 過学習は、ニューラルネットワークのもう 1 つの一般的な問題ですが、このチュートリアルでは問題になりませんでした。詳しくは、[過学習と過少学習](overfit_and_underfit.ipynb)のチュートリアルを参照してください。\n", "\n", "TensorFlow Core API のその他の使用例については、[チュートリアル](https://www.tensorflow.org/guide/core)を参照してください。データの読み込みと準備についてさらに学習するには、[画像データの読み込み](https://www.tensorflow.org/tutorials/load_data/images)または [CSV データの読み込み](https://www.tensorflow.org/tutorials/load_data/csv)に関するチュートリアルを参照してください。" ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [ "FhGuhbZ6M5tl" ], "name": "mlp_core.ipynb", "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.18" } }, "nbformat": 4, "nbformat_minor": 0 }