{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "uTxi8m8GEfHL" }, "source": [ "# Sieci neuronowe - pierwszy stopień wtajemniczenia\n", "Autor: Anna Dawid\n", "\n", "Korekta: Rafał Masełek\n", "\n", "Dzisiaj pod lupę weźmiemy jeden z najpopularniejszych i wszechstronnych modeli uczenia maszynowego - sieci neuronowe. Skupimy się na dwóch zagadnieniach: jak znaleźć optymalną architekturę sieci oraz o arcyważnym problemie regularyzacji. Będziemy pracować na zbiorze MNIST, czyli zbiorze czarno-białych obrazków z ręcznie napisanymi cyframi." ] }, { "cell_type": "markdown", "metadata": { "id": "D1bbElA8FMVw" }, "source": [ "## Import danych MNIST" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "executionInfo": { "elapsed": 570, "status": "ok", "timestamp": 1610535209888, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "PBUeRZ9PFFFn" }, "outputs": [], "source": [ "import numpy as np\n", "import tensorflow as tf\n", "from tensorflow import keras\n", "\n", "# Dzisiaj usuniemy przypadkowość z ćwiczenia, żeby mieć pewność, że zobaczymy to, co planuję ;)\n", "seed = 128\n", "rng = np.random.RandomState(seed)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 1340, "status": "ok", "timestamp": 1610535210666, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "6Q-8PezyGxfg", "outputId": "9dac9369-d8ab-471d-e24a-8a4dfb4a5e32" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 3 18 18 18 126 136\n", " 175 26 166 255 247 127 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 30 36 94 154 170 253 253 253 253 253\n", " 225 172 253 242 195 64 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 49 238 253 253 253 253 253 253 253 253 251\n", " 93 82 82 56 39 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 18 219 253 253 253 253 253 198 182 247 241\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 80 156 107 253 253 205 11 0 43 154\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 14 1 154 253 90 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 139 253 190 2 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 11 190 253 70 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 35 241 225 160 108 1\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 81 240 253 253 119\n", " 25 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 186 253 253\n", " 150 27 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 93 252\n", " 253 187 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249\n", " 253 249 64 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46 130 183 253\n", " 253 207 2 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 39 148 229 253 253 253\n", " 250 182 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 24 114 221 253 253 253 253 201\n", " 78 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 23 66 213 253 253 253 253 198 81 2\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 18 171 219 253 253 253 253 195 80 9 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 55 172 226 253 253 253 253 244 133 11 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 136 253 253 253 212 135 132 16 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", " [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]]\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from tensorflow.keras.datasets import mnist\n", " \n", "# MNIST współpracuje z keras, zbudowany jest z predefiniowanych 60 000 danych treningowych i 10 000 danych testowych\n", "(X_train, y_train), (X_test, y_test) = mnist.load_data()\n", "\n", "from matplotlib import pyplot as plt\n", "print(X_train[0])\n", "plt.imshow(X_train[0], cmap='gray')" ] }, { "cell_type": "markdown", "metadata": { "id": "nasRLyqfH2V0" }, "source": [ "Dzisiaj korzystamy z głębokich sieci neuronowych, ale one wciąż nie są przystosowane do analizy obrazków (w przeciwieństwie do sieci, których będziemy używać na kolejnych zajęciach). Na wejściu potrzebują więc jednowymiarowy ciąg danych. Musimy też nasze dane znormalizować." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 1912, "status": "ok", "timestamp": 1610535211245, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "paTR6HyiG-w4", "outputId": "da83dff4-e17c-42df-c9a0-5690c90356ca" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 3 18 18 18 126 136 175 26 166 255\n", " 247 127 0 0 0 0 0 0 0 0 0 0 0 0 30 36 94 154\n", " 170 253 253 253 253 253 225 172 253 242 195 64 0 0 0 0 0 0\n", " 0 0 0 0 0 49 238 253 253 253 253 253 253 253 253 251 93 82\n", " 82 56 39 0 0 0 0 0 0 0 0 0 0 0 0 18 219 253\n", " 253 253 253 253 198 182 247 241 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 80 156 107 253 253 205 11 0 43 154\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 14 1 154 253 90 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 139 253 190 2 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 11 190 253 70 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 241\n", " 225 160 108 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 81 240 253 253 119 25 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 45 186 253 253 150 27 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 16 93 252 253 187\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 249 253 249 64 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46 130 183 253\n", " 253 207 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 39 148 229 253 253 253 250 182 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 24 114 221 253 253 253\n", " 253 201 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 23 66 213 253 253 253 253 198 81 2 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 18 171 219 253 253 253 253 195\n", " 80 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 55 172 226 253 253 253 253 244 133 11 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 136 253 253 253 212 135 132 16\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0]\n", "(784,)\n" ] } ], "source": [ "# Reshape'ujemy\n", "X_train = X_train.reshape(X_train.shape[0], -1)\n", "X_test = X_test.reshape(X_test.shape[0], -1)\n", "\n", "print(X_train[0])\n", "print(X_train[0].shape)\n", "\n", "# Przygotowujemy inty do dzielenia\n", "X_train = X_train.astype('float32')\n", "X_test = X_test.astype('float32')\n", "\n", "# Wyjątkowy sposób normalizacji, bo wiemy, że piksele czarno-białe zawierają się w zakresie od 0 do 255\n", "X_train /= 255\n", "X_test /= 255" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 1907, "status": "ok", "timestamp": 1610535211246, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "o0R94Fp9JE2b", "outputId": "78a17e54-da65-4385-cff6-738a764d804b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Oryginalny sposób zapisu: 5\n", "(60000,)\n", "Po zmianie: [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n", "(60000, 10)\n" ] } ], "source": [ "from tensorflow.keras.utils import to_categorical\n", "\n", "# Musimy jeszcze popracować z etykietkami. Mamy wskazanie, który obrazek przedstawia którą liczbę,\n", "# ale sieć potrzebuje szczególnego sformatowania\n", "print(\"Oryginalny sposób zapisu: \", y_train[0])\n", "print(y_train.shape)\n", "\n", "# dokumentacja kodowania\n", "# https://www.tensorflow.org/api_docs/python/tf/keras/utils/to_categorical\n", "Y_train = to_categorical(y_train, 10)\n", "Y_test = to_categorical(y_test, 10)\n", "print(\"Po zmianie: \", Y_train[0])\n", "print(Y_train.shape)" ] }, { "cell_type": "markdown", "metadata": { "id": "0FVTS1C0KC7v" }, "source": [ "## Stworzenie pierwszej architektury sieci neuronowej\n", "\n", "Pierwsza najważniejsza informacja z dzisiejszych zajęć: **nie ma uniwersalnych i uznanych szczegółowych zasad jak budować optymalną sieć neuronową dla danego problemu**. Głównymi narzędziami programistów są \"metoda prób i błędów\" oraz stworzona przed doświadczenie intuicja. Wielu matematyków i informatyków głowi się nad bardziej ścisłym sformułowaniu tego zagadnienia, są już pewne poszlaki, dla zainteresowanych polecam [tę publikację](https://arxiv.org/abs/1712.04741).\n", "\n", "Także i my jesteśmy skazani na metodę prób i błędów. Naszym pierwszym wyznacznikiem będzie skuteczność samego treningu. Będziemy obserwować jak zmienia się funkcja błędu i dokładność (accuracy). Nie musimy szukać lepszej miary jakości, jako że mamy zbalansowany zestaw danych.\n", "\n", "Drugim wyznacznikiem będzie skuteczność modelu na zestawie testowym (lub walidacyjnym, jak zobaczymy na końcu ćwiczenia)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# tworzymy model, korzystami z API sekwencyjnego, w którym kolejne warstwy ułożone są w ciąg/łańcuszek\n", "# jest to bardzo prosta i wygodna metoda tworzenia sieci feed-forward\n", "def create_model():\n", " # tworzymy obiekt typu Sequential\n", " model = Sequential()\n", " # dodajemy warstwę wejściową\n", " model.add(Input(shape=(784,))) # X_train[0].shape. Poza pierwszą warstwą nie trzeba już definiować \"input units\"\n", " # dodajemy kolejne warstwy po 500 neuronów każda\n", " model.add(Dense(500, activation='relu'))\n", " model.add(Dense(500, activation='relu'))\n", " model.add(Dense(500, activation='relu'))\n", " model.add(Dense(500, activation='relu'))\n", " # dodajemy ostatnią warstwę z 10 neuronami (liczba klas) i funkcją aktyw. 'softmax'\n", " model.add(Dense(10, activation='softmax')) # softmax, bo robimy klasyfikację i mamy 10 klas\n", " # zwracamy model\n", " return model" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 1903, "status": "ok", "timestamp": 1610535211248, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "8fJ0bz3gIlw8", "outputId": "f6b14ba3-4cfd-46f3-ca86-1a7299921238" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense (Dense) (None, 500) 392500 \n", "_________________________________________________________________\n", "dense_1 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dense_3 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dense_4 (Dense) (None, 10) 5010 \n", "=================================================================\n", "Total params: 1,149,010\n", "Trainable params: 1,149,010\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "# Importujemy biblioteki do zbudowania sieci\n", "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import Dense\n", "from tensorflow.keras import Input\n", "\n", "# jedna epoka to jeden trening sieci\n", "epochs = 10\n", "# rozmiar partii danych, której używamy trenując sieć\n", "batch_size = 128\n", "model = create_model()\n", "\n", "# wypiszmy informacje o sieciach\n", "model.summary(line_length=None, positions=None, print_fn=None)" ] }, { "cell_type": "markdown", "metadata": { "id": "ze2WYX4bP_E5" }, "source": [ "## Pierwszy trening\n", "\n", "Zastosujemy algorytm optymalizacyjny Adam (ze względu na jego dużą szybkość, choć w ogólności ma swoje problemy i warto pamiętać o istnieniu SGD + momentum). Będziemy obserwować dokładność i funkcję błędu modelu zarówno na danych treningowych, jak i testowych." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 115488, "status": "ok", "timestamp": 1610535324841, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "4Me5x51yLqAA", "outputId": "0531cd3e-6db1-474d-b248-653c82ec7cc9" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "469/469 [==============================] - 7s 15ms/step - loss: 0.2183 - accuracy: 0.9334 - val_loss: 0.1041 - val_accuracy: 0.9659\n", "Epoch 2/10\n", "469/469 [==============================] - 6s 13ms/step - loss: 0.0877 - accuracy: 0.9731 - val_loss: 0.0977 - val_accuracy: 0.9704\n", "Epoch 3/10\n", "469/469 [==============================] - 7s 14ms/step - loss: 0.0646 - accuracy: 0.9801 - val_loss: 0.1090 - val_accuracy: 0.9680\n", "Epoch 4/10\n", "469/469 [==============================] - 6s 14ms/step - loss: 0.0490 - accuracy: 0.9846 - val_loss: 0.0833 - val_accuracy: 0.9760\n", "Epoch 5/10\n", "469/469 [==============================] - 9s 19ms/step - loss: 0.0372 - accuracy: 0.9883 - val_loss: 0.0778 - val_accuracy: 0.9772\n", "Epoch 6/10\n", "469/469 [==============================] - 11s 23ms/step - loss: 0.0323 - accuracy: 0.9895 - val_loss: 0.0859 - val_accuracy: 0.9775\n", "Epoch 7/10\n", "469/469 [==============================] - 7s 16ms/step - loss: 0.0299 - accuracy: 0.9913 - val_loss: 0.0767 - val_accuracy: 0.9798\n", "Epoch 8/10\n", "469/469 [==============================] - 8s 18ms/step - loss: 0.0233 - accuracy: 0.9929 - val_loss: 0.0807 - val_accuracy: 0.9804\n", "Epoch 9/10\n", "469/469 [==============================] - 12s 26ms/step - loss: 0.0207 - accuracy: 0.9935 - val_loss: 0.0747 - val_accuracy: 0.9829\n", "Epoch 10/10\n", "469/469 [==============================] - 11s 23ms/step - loss: 0.0210 - accuracy: 0.9940 - val_loss: 0.0944 - val_accuracy: 0.9800\n" ] } ], "source": [ "# kompilujemy model\n", "model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n", "# fitujemy model do danych, zapisujemy zwracany obiekt do zmiennej\n", "trained_model_noreg = model.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, validation_data=(X_test, Y_test))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 590 }, "executionInfo": { "elapsed": 116136, "status": "ok", "timestamp": 1610535325495, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "X8BlyjLXNZh0", "outputId": "c321cd7b-b4ab-424b-ff91-2e7e7d96a1e5" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "dict_keys(['loss', 'accuracy', 'val_loss', 'val_accuracy'])\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Sprawdźmy jakie dane o treningu są zapisane dla naszego treningu 'trained_model_5d'\n", "print(trained_model_noreg.history.keys())\n", "\n", "model_history = trained_model_noreg\n", "# Narysujmy wykresy dla dokładności na danych treningowych i testowych\n", "plt.plot(model_history.history['accuracy'])\n", "plt.plot(model_history.history['val_accuracy'])\n", "plt.title('Dokładność modelu')\n", "plt.ylabel('dokładność')\n", "plt.xlabel('epoki')\n", "plt.legend(['treningowe', 'testowe'], loc='upper left')\n", "plt.show()\n", "\n", "# Narysujmy wykresy dla funkcji błędu na danych treningowych i testowych\n", "plt.plot(model_history.history['loss'])\n", "plt.plot(model_history.history['val_loss'])\n", "plt.title('Funkcja błędu modelu')\n", "plt.ylabel('funkcja błędu')\n", "plt.xlabel('epoki')\n", "plt.legend(['treningowe', 'testowe'], loc='upper left')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "Cpkxm7mjPlIp" }, "source": [ "Co widzicie?\n", "\n", "**Odp: ??**" ] }, { "cell_type": "markdown", "metadata": { "id": "fW-ttJ-5Q3JG" }, "source": [ "## Metody regularyzacji\n", "\n", "Coś co powinno Wam dawać do myślenia to to, że jest dowód matematyczny na to, że sieć neuronowa z jedną warstwą jest w stanie dowolnie dokładnie aproksymować dowolną funkcję matematyczną. A my stosujemy nie jedną, a kilka warstw! W pierwszym przybliżeniu to dla Was sygnał, że sieci neuronowe są świetne do opisywania dowolnie skomplikowanych problemów, także tych nie istniejących :P mam na myśli, że jak dacie sieci wystarczająco dużo parametrów i czasu do treningu, to będzie w stanie wyciągnąć 100% dokładności na danych treningowych. Gwarantuję Wam jednak, że konsekwencją będzie też kiepska generalizacja, czyli dokładność na danych niewidzianych podczas treningu będzie znacząco mniejsza.\n", "\n", "Serce uczenia maszynowego nie leży w fitowaniu modelu do danych. Leży w dobrej generalizacji tego modelu na dane niewidoczne podczas treningu.\n", "\n", "Gdy widzimy, że model świetnie działa na danych treningowych, a źle generalizuje (tzw. overfitting), to możemy dokonać zmian:\n", "- w modelu\n", "- w danych\n", "\n", "Drugi sposób pokażę Wam za tydzień, dziś się skupimy na pierwszym podejściu. Zawsze można próbować uprościć architekturę, tak aby dokładność modelu na danych treningowych utrzymała się na podobnym poziomie, a wzrosła na testowych. Ponadto, na pomoc przychodzą nam metody regularyzacji, które zmieniają nam nieco model, upraszczają go i zwiększają zdolność generalizacji." ] }, { "cell_type": "markdown", "metadata": { "id": "3eh0BctQV544" }, "source": [ "### Wczesne zatrzymywanie (Early Stopping)\n", "\n", "To metoda ograniczająca czas treningu - zostaje on przerwany po wystąpieniu n epok z rzędu (n = patience), podczas których funkcja błędu walidacyjna się nie zmienia." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 231031, "status": "ok", "timestamp": 1610535440394, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "Vk8Xe3J6VQa8", "outputId": "9f86ccd5-ad57-4f07-996d-31ea220090fb" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_1\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense_5 (Dense) (None, 500) 392500 \n", "_________________________________________________________________\n", "dense_6 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dense_7 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dense_8 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dense_9 (Dense) (None, 10) 5010 \n", "=================================================================\n", "Total params: 1,149,010\n", "Trainable params: 1,149,010\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "Epoch 1/10\n", "469/469 [==============================] - 7s 15ms/step - loss: 0.2184 - accuracy: 0.9334 - val_loss: 0.1148 - val_accuracy: 0.9649\n", "Epoch 2/10\n", "469/469 [==============================] - 7s 14ms/step - loss: 0.0874 - accuracy: 0.9732 - val_loss: 0.0889 - val_accuracy: 0.9718\n", "Epoch 3/10\n", "469/469 [==============================] - 7s 15ms/step - loss: 0.0640 - accuracy: 0.9803 - val_loss: 0.0786 - val_accuracy: 0.9753\n", "Epoch 4/10\n", "469/469 [==============================] - 7s 14ms/step - loss: 0.0468 - accuracy: 0.9854 - val_loss: 0.0827 - val_accuracy: 0.9781\n", "Epoch 5/10\n", "469/469 [==============================] - 7s 14ms/step - loss: 0.0373 - accuracy: 0.9882 - val_loss: 0.0978 - val_accuracy: 0.9748\n", "Epoch 6/10\n", "469/469 [==============================] - 7s 14ms/step - loss: 0.0328 - accuracy: 0.9899 - val_loss: 0.0804 - val_accuracy: 0.9766\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from tensorflow.keras.callbacks import EarlyStopping\n", "\n", "model_stop = create_model()\n", "model_stop.summary(line_length=None, positions=None, print_fn=None)\n", "\n", "model_stop.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n", "\n", "# zwróc uwagę na parametr 'callbacks'\n", "trained_model_stop = model_stop.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, validation_data=(X_test, Y_test), \n", " callbacks = [EarlyStopping(monitor='val_accuracy', patience=2)])\n", "\n", "model_history = trained_model_stop\n", "\n", "# Narysujmy wykresy dla dokładności na danych treningowych i testowych\n", "plt.plot(model_history.history['accuracy'])\n", "plt.plot(model_history.history['val_accuracy'])\n", "plt.title('Dokładność modelu')\n", "plt.ylabel('dokładność')\n", "plt.xlabel('epoki')\n", "plt.legend(['treningowe', 'testowe'], loc='upper left')\n", "plt.show()\n", "\n", "# Narysujmy wykresy dla funkcji błędu na danych treningowych i testowych\n", "plt.plot(model_history.history['loss'])\n", "plt.plot(model_history.history['val_loss'])\n", "plt.title('Funkcja błędu modelu')\n", "plt.ylabel('funkcja błędu')\n", "plt.xlabel('epoki')\n", "plt.legend(['treningowe', 'testowe'], loc='upper left')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "lPEnrPTsSEwF" }, "source": [ "### Regularyzacja L2 i L1\n", "\n", "To dołożenie do funkcji błędu czynników, które rosną wraz z wielkością wag w modelu - karzą model za wagi o dużych wartościach. Bazuje na założeniu, że prostsze modele mają mniejsze wagi.\n", "\n", "L1 jest \"mocniejsza\", czasem aż zeruje wagi, więc jest przydatna w poszukiwaniach optymalnej architektury, gdy szukamy, które neurony wyrzucić, do mniejszej modyfikacji sieci używana jest L2.\n", "\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 358652, "status": "ok", "timestamp": 1610535568019, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "72Hipq4KPRkO", "outputId": "6232b152-4424-4a74-8396-0bf62f62a437" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_2\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense_10 (Dense) (None, 500) 392500 \n", "_________________________________________________________________\n", "dense_11 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dense_12 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dense_13 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dense_14 (Dense) (None, 10) 5010 \n", "=================================================================\n", "Total params: 1,149,010\n", "Trainable params: 1,149,010\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "Epoch 1/10\n", "469/469 [==============================] - 11s 24ms/step - loss: 1.0419 - accuracy: 0.9280 - val_loss: 0.5199 - val_accuracy: 0.9639\n", "Epoch 2/10\n", "469/469 [==============================] - 11s 24ms/step - loss: 0.3981 - accuracy: 0.9628 - val_loss: 0.3162 - val_accuracy: 0.9655\n", "Epoch 3/10\n", "469/469 [==============================] - 10s 21ms/step - loss: 0.2798 - accuracy: 0.9678 - val_loss: 0.2722 - val_accuracy: 0.9665\n", "Epoch 4/10\n", "469/469 [==============================] - 10s 21ms/step - loss: 0.2367 - accuracy: 0.9722 - val_loss: 0.2384 - val_accuracy: 0.9697\n", "Epoch 5/10\n", "469/469 [==============================] - 9s 19ms/step - loss: 0.2175 - accuracy: 0.9735 - val_loss: 0.2349 - val_accuracy: 0.9674\n", "Epoch 6/10\n", "469/469 [==============================] - 12s 25ms/step - loss: 0.2022 - accuracy: 0.9758 - val_loss: 0.2013 - val_accuracy: 0.9735\n", "Epoch 7/10\n", "469/469 [==============================] - 10s 21ms/step - loss: 0.1930 - accuracy: 0.9769 - val_loss: 0.2074 - val_accuracy: 0.9723\n", "Epoch 8/10\n", "469/469 [==============================] - 10s 22ms/step - loss: 0.1788 - accuracy: 0.9790 - val_loss: 0.2004 - val_accuracy: 0.9704\n", "Epoch 9/10\n", "469/469 [==============================] - 10s 21ms/step - loss: 0.1714 - accuracy: 0.9797 - val_loss: 0.1880 - val_accuracy: 0.9753\n", "Epoch 10/10\n", "469/469 [==============================] - 14s 30ms/step - loss: 0.1672 - accuracy: 0.9799 - val_loss: 0.1763 - val_accuracy: 0.9759\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from tensorflow.keras import regularizers\n", "\n", "l2_lambda = 0.001\n", "\n", "model_l2 = Sequential()\n", "model_l2.add(Input(shape=(784,))) # X_train[0].shape. Poza pierwszą warstwą nie trzeba już definiować \"input units\"\n", "# zwróc uwagę na regularyzację\n", "model_l2.add(Dense(500, activation='relu', kernel_regularizer=regularizers.l2(l2_lambda)))\n", "model_l2.add(Dense(500, activation='relu', kernel_regularizer=regularizers.l2(l2_lambda)))\n", "model_l2.add(Dense(500, activation='relu', kernel_regularizer=regularizers.l2(l2_lambda)))\n", "model_l2.add(Dense(500, activation='relu', kernel_regularizer=regularizers.l2(l2_lambda)))\n", "model_l2.add(Dense(10, activation='softmax')) # softmax, bo robimy klasyfikację i mamy 10 klas\n", "model_l2.summary(line_length=None, positions=None, print_fn=None)\n", "\n", "model_l2.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n", "\n", "trained_model_l2 = model_l2.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, validation_data=(X_test, Y_test))\n", "\n", "model_history = trained_model_l2\n", "# Narysujmy wykresy dla dokładności na danych treningowych i testowych\n", "plt.plot(model_history.history['accuracy'])\n", "plt.plot(model_history.history['val_accuracy'])\n", "plt.title('Dokładność modelu')\n", "plt.ylabel('dokładność')\n", "plt.xlabel('epoki')\n", "plt.legend(['treningowe', 'testowe'], loc='upper left')\n", "plt.show()\n", "\n", "# Narysujmy wykresy dla funkcji błędu na danych treningowych i testowych\n", "plt.plot(model_history.history['loss'])\n", "plt.plot(model_history.history['val_loss'])\n", "plt.title('Funkcja błędu modelu')\n", "plt.ylabel('funkcja błędu')\n", "plt.xlabel('epoki')\n", "plt.legend(['treningowe', 'testowe'], loc='upper left')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "IPaohk9pTvdP" }, "source": [ "### Dropout\n", "\n", "Bardzo ciekawe podejście, polegające na losowym zerowaniu % neuronów podczas treningu. To uczy sieć, by nie \"polegała\" za bardzo na żadnym pojedynczym neuronie." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "executionInfo": { "elapsed": 491440, "status": "ok", "timestamp": 1610535700811, "user": { "displayName": "Anna Dawid", "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgUQAwZ7wyayL4BbiM0n_EANCgBjSdZ9H14lgcCFEE=s64", "userId": "02862484648310443813" }, "user_tz": -60 }, "id": "DdnQ5x7GTZQu", "outputId": "6eab3a61-a341-482c-e49e-dc7428bca9cd" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_3\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense_15 (Dense) (None, 500) 392500 \n", "_________________________________________________________________\n", "dropout (Dropout) (None, 500) 0 \n", "_________________________________________________________________\n", "dense_16 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dropout_1 (Dropout) (None, 500) 0 \n", "_________________________________________________________________\n", "dense_17 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dropout_2 (Dropout) (None, 500) 0 \n", "_________________________________________________________________\n", "dense_18 (Dense) (None, 500) 250500 \n", "_________________________________________________________________\n", "dropout_3 (Dropout) (None, 500) 0 \n", "_________________________________________________________________\n", "dense_19 (Dense) (None, 10) 5010 \n", "=================================================================\n", "Total params: 1,149,010\n", "Trainable params: 1,149,010\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "Epoch 1/10\n", "469/469 [==============================] - 11s 22ms/step - loss: 0.2961 - accuracy: 0.9084 - val_loss: 0.1262 - val_accuracy: 0.9610\n", "Epoch 2/10\n", "469/469 [==============================] - 11s 23ms/step - loss: 0.1296 - accuracy: 0.9618 - val_loss: 0.0915 - val_accuracy: 0.9737\n", "Epoch 3/10\n", "469/469 [==============================] - 8s 18ms/step - loss: 0.1004 - accuracy: 0.9704 - val_loss: 0.1027 - val_accuracy: 0.9714\n", "Epoch 4/10\n", "469/469 [==============================] - 8s 18ms/step - loss: 0.0842 - accuracy: 0.9751 - val_loss: 0.0817 - val_accuracy: 0.9762\n", "Epoch 5/10\n", "469/469 [==============================] - 8s 18ms/step - loss: 0.0751 - accuracy: 0.9775 - val_loss: 0.0779 - val_accuracy: 0.9790\n", "Epoch 6/10\n", "469/469 [==============================] - 8s 18ms/step - loss: 0.0628 - accuracy: 0.9816 - val_loss: 0.0616 - val_accuracy: 0.9823\n", "Epoch 7/10\n", "469/469 [==============================] - 9s 18ms/step - loss: 0.0550 - accuracy: 0.9833 - val_loss: 0.0667 - val_accuracy: 0.9818\n", "Epoch 8/10\n", "469/469 [==============================] - 9s 19ms/step - loss: 0.0501 - accuracy: 0.9852 - val_loss: 0.0680 - val_accuracy: 0.9824\n", "Epoch 9/10\n", "469/469 [==============================] - 9s 19ms/step - loss: 0.0496 - accuracy: 0.9852 - val_loss: 0.0676 - val_accuracy: 0.9823\n", "Epoch 10/10\n", "469/469 [==============================] - 9s 19ms/step - loss: 0.0483 - accuracy: 0.9858 - val_loss: 0.0697 - val_accuracy: 0.9792\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from tensorflow.keras.layers import Dropout\n", "\n", "dropout_rate = 0.25\n", "\n", "model_drop = Sequential()\n", "model_drop.add(Input(shape=(784,))) # X_train[0].shape. Poza pierwszą warstwą nie trzeba już definiować \"input units\"\n", "model_drop.add(Dense(500, activation='relu'))\n", "# dropout można zaimplementować jako warstwę\n", "model_drop.add(Dropout(dropout_rate))\n", "model_drop.add(Dense(500, activation='relu'))\n", "model_drop.add(Dropout(dropout_rate))\n", "model_drop.add(Dense(500, activation='relu'))\n", "model_drop.add(Dropout(dropout_rate))\n", "model_drop.add(Dense(500, activation='relu'))\n", "model_drop.add(Dropout(dropout_rate))\n", "model_drop.add(Dense(10, activation='softmax')) # softmax, bo robimy klasyfikację i mamy 10 klas\n", "\n", "model_drop.summary(line_length=None, positions=None, print_fn=None)\n", "\n", "model_drop.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])\n", "\n", "trained_model_drop = model_drop.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, validation_data=(X_test, Y_test))\n", "\n", "model_history = trained_model_drop\n", "# Narysujmy wykresy dla dokładności na danych treningowych i testowych\n", "plt.plot(model_history.history['accuracy'])\n", "plt.plot(model_history.history['val_accuracy'])\n", "plt.title('Dokładność modelu')\n", "plt.ylabel('dokładność')\n", "plt.xlabel('epoki')\n", "plt.legend(['treningowe', 'testowe'], loc='upper left')\n", "plt.show()\n", "\n", "# Narysujmy wykresy dla funkcji błędu na danych treningowych i testowych\n", "plt.plot(model_history.history['loss'])\n", "plt.plot(model_history.history['val_loss'])\n", "plt.title('Funkcja błędu modelu')\n", "plt.ylabel('funkcja błędu')\n", "plt.xlabel('epoki')\n", "plt.legend(['treningowe', 'testowe'], loc='upper left')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "F1Ep13glWeZg" }, "source": [ "# Zadanie na dzisiaj\n", "\n", "Metody te można łączyć. W szczególności można myśleć o Early Stopping jako metodzie podpowiadającej jak długo trenować sieć (ile epok), L1 może pomóc przy tworzeniu architektury, L2 lub Dropout stosujemy przy finalnym treningu.\n", "\n", "Czujny uczestnik zauważy, że to co tutaj robimy to fitowanie hiperparametrów do danych, tym razem już nie treningowych, ale testowych. A zawsze podkreślaliśmy, że trening (dobieranie parametrów modelu) powinien być oddzielony od ostatecznych danych sprawdzających jakość modelu. Jako że doszedł nam dodatkowy rozbudowany etap - dobieranie hiperparametrów modelu (takich jak liczba epok, częstość Dropoutu, czy siła regularyzacji L1 czy L2), to potrzebujemy dodatkowego zestawu danych. Nazywa się on zestawem \"walidacyjnym\".\n", "\n", "Ostatecznie więc profesjonaliści dzielą cały dostępny zestaw danych na: \n", "\n", "- dane treningowe, do których fitują model, obserwując jednocześnie dokładność na zestawie walidacyjnym\n", "- dane walidacyjne, do których dobiera się hiperparametry\n", "- dane testowe, służące już wyłącznie do sprawdzenia jakości finalnego modelu\n", "\n", "Zadanie na dziś to:\n", "1) stwórz sieć z użyciem jednego lub kilku rodzajów regularyzacji\n", "\n", "2) skompiluj i dopasuj model do danych, użyj 30% zbioru treningowego do walidacji ( dokumentacja metody fit() )\n", "\n", "3) znajdź optymalne parametry sieci i regularyzacji\n", "\n", "4) sprawdź działanie sieci na danych testowych\n", "\n", "5) sporządź raport z klasyfikacji z wykresami\n", "\n", "Powodzenia! :)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "colab": { "authorship_tag": "ABX9TyNgN4Ns96O4PKYyYUFlC4En", "collapsed_sections": [], "name": "10M_Sieci_głębokie_regularyzacja.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.6" } }, "nbformat": 4, "nbformat_minor": 2 }