{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# A simple neural network with one hidden layer in pure Python\n", "\n", "## Introduction\n", "We consider a simple feed-forward neural network with one hidden layer:" ] }, { "attachments": { "48b1ed6e-8e2b-4883-82ac-a2bbed6e2885.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![nn.png](attachment:48b1ed6e-8e2b-4883-82ac-a2bbed6e2885.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this example the input vector of the neural network has two features, i.e., the input is a two-dimensional vector:\n", "\n", "$$\n", "\\mathbf x = (x_0, x_1).\n", "$$\n", "\n", "We consider a set of $n$ vectors as training data. The training data can therefore be written as a $n \\times 2$ matrix where each row represents a feature vector:\n", "\n", "$$ \n", "X = \n", "\\begin{pmatrix}\n", "x_{00} & x_{01} \\\\\n", "x_{10} & x_{11} \\\\\n", "\\vdots & \\vdots \\\\\n", "x_{m-1\\,0} & x_{m-1\\,1} \n", "\\end{pmatrix} $$\n", "\n", "The known labels (1 = 'signal', 0 = 'background') are stored in a $n$-dimensional column vector $\\mathbf y$.\n", "\n", "In the following, $n_1$ denotes the number of neurons in the hidden layer. The weights for the connections from the input layer (layer 0) to the hidden layer (layer 0) are given by the following matrix:\n", "\n", "$$\n", "W^{(1)} = \n", "\\begin{pmatrix}\n", "w_{00}^{(1)} \\dots w_{0 \\, n_1-1}^{(1)} \\\\\n", "w_{10}^{(1)} \\dots w_{1 \\, n_1-1}^{(1)} \n", "\\end{pmatrix}\n", "$$\n", "\n", "Each neuron in the hidden layer is assigned a bias $\\mathbf b^{(1)} = (b^{(1)}_0, \\ldots, b^{(1)}_{n_1-1})$. The neuron in the output layer has the bias $\\mathbf b^{(2)}$. With that, the output values of the network for the matrix $X$ of input feature vectors is given by\n", "\n", "$$\n", "\\begin{align}\n", "Z^{(1)} &= X W^{(1)} + \\mathbf b^{(1)} \\\\\n", "A^{(1)} &= \\sigma(Z^{(1)}) \\\\\n", "Z^{(2)} &= A^{(1)} W^{(2)} + \\mathbf b^{(2)} \\\\\n", "A^{(2)} &= \\sigma(Z^{(2)})\n", "\\end{align}\n", "$$\n", "\n", "The loss function for a given set of weights is given by\n", "\n", "$$ L = \\sum_{i=0}^{n-1} (y_\\mathrm{pred} - y_\\mathrm{true})^2 $$\n", "\n", "We can know calculate the gradient of the loss function w.r.t. the wights. With the definition $\\hat L = (y_\\mathrm{pred} - y_\\mathrm{true})^2$, the gradients for the weights from the output layer to the hidden layer are given by: \n", "\n", "$$ \\frac{\\partial \\tilde L}{\\partial w_i^{(2)}} = \\frac{\\partial \\tilde L}{a_k^{(2)}} \\frac{a_k^{(2)}}{\\partial w_i^{(2)}} = \\frac{\\partial \\tilde L}{a_k^{(2)}} \\frac{a_k^{(2)}}{z_k^{(2)}} \\frac{z_k^{(2)}}{\\partial w_i^{(2)}} = 2 (a_k^{(2)} - y_k) a_k^{(2)} (1 - a_k^{(2)}) a_{k,i}^{(1)}$$\n", "\n", "Applying the chain rule further, we also obtain the gradient for the weights from the input layer to the hidden layer read: \n", "\n", "$$ \\frac{\\partial \\tilde L}{\\partial w_{ij}^{(1)}} = \\frac{\\partial \\tilde L}{\\partial a_k^{(2)}} \\frac{\\partial a_k^{(2)}}{\\partial z_k^{(2)}} \\frac{\\partial z_k^{(2)}}{\\partial a_{k,j}^{(1)}} \\frac{\\partial a_{k,j}^{(1)}}{\\partial z_{k,j}^{(1)}} \\frac{\\partial z_{k,j}^{(1)}}{\\partial w_{ij}^{(1)}} $$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A simple neural network class" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# A simple feed-forward neutral network with on hidden layer\n", "# see also https://towardsdatascience.com/how-to-build-your-own-neural-network-from-scratch-in-python-68998a08e4f6\n", "\n", "import numpy as np\n", "\n", "class NeuralNetwork:\n", " def __init__(self, x, y):\n", " n1 = 3 # number of neurons in the hidden layer\n", " self.input = x\n", " self.weights1 = np.random.rand(self.input.shape[1],n1)\n", " self.bias1 = np.random.rand(n1)\n", " self.weights2 = np.random.rand(n1,1)\n", " self.bias2 = np.random.rand(1) \n", " self.y = y\n", " self.output = np.zeros(y.shape)\n", " self.learning_rate = 0.01\n", " self.n_train = 0\n", " self.loss_history = []\n", "\n", " def sigmoid(self, x):\n", " return 1/(1+np.exp(-x))\n", "\n", " def sigmoid_derivative(self, x):\n", " return x * (1 - x)\n", "\n", " def feedforward(self):\n", " self.layer1 = self.sigmoid(self.input @ self.weights1 + self.bias1)\n", " self.output = self.sigmoid(self.layer1 @ self.weights2 + self.bias2)\n", "\n", " def backprop(self):\n", "\n", " # delta1: [m, 1], m = number of training data\n", " delta1 = 2 * (self.y - self.output) * self.sigmoid_derivative(self.output)\n", "\n", " # Gradient w.r.t. weights from hidden to output layer: [n1, 1] matrix, n1 = # neurons in hidden layer\n", " d_weights2 = self.layer1.T @ delta1\n", " d_bias2 = np.sum(delta1) \n", " \n", " # shape of delta2: [m, n1], m = number of training data, n1 = # neurons in hidden layer\n", " delta2 = (delta1 @ self.weights2.T) * self.sigmoid_derivative(self.layer1)\n", " d_weights1 = self.input.T @ delta2\n", " d_bias1 = np.ones(delta2.shape[0]) @ delta2 \n", " \n", " # update weights and biases\n", " self.weights1 += self.learning_rate * d_weights1\n", " self.weights2 += self.learning_rate * d_weights2\n", "\n", " self.bias1 += self.learning_rate * d_bias1\n", " self.bias2 += self.learning_rate * d_bias2\n", "\n", " def train(self, X, y):\n", " self.output = np.zeros(y.shape)\n", " self.input = X\n", " self.y = y\n", " self.feedforward()\n", " self.backprop()\n", " self.n_train += 1\n", " if (self.n_train %1000 == 0):\n", " loss = np.sum((self.y - self.output)**2)\n", " print(\"loss: \", loss)\n", " self.loss_history.append(loss)\n", " \n", " def predict(self, X):\n", " self.output = np.zeros(y.shape)\n", " self.input = X\n", " self.feedforward()\n", " return self.output\n", " \n", " def loss_history(self):\n", " return self.loss_history\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create toy data\n", "We create three toy data sets\n", "1. two moon-like distributions\n", "2. circles\n", "3. linearly separable data sets" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html#sphx-glr-auto-examples-classification-plot-classifier-comparison-py\n", "import numpy as np\n", "from sklearn.datasets import make_moons, make_circles, make_classification\n", "from sklearn.model_selection import train_test_split\n", "\n", "X, y = make_classification(\n", " n_features=2, n_redundant=0, n_informative=2, random_state=1, n_clusters_per_class=1\n", ")\n", "rng = np.random.RandomState(2)\n", "X += 2 * rng.uniform(size=X.shape)\n", "linearly_separable = (X, y)\n", "\n", "datasets = [\n", " make_moons(n_samples=200, noise=0.1, random_state=0),\n", " make_circles(n_samples=200, noise=0.1, factor=0.5, random_state=1),\n", " linearly_separable,\n", "]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create training and test data set" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# datasets: 0 = moons, 1 = circles, 2 = linearly separable\n", "X, y = datasets[2]\n", "X_train, X_test, y_train, y_test = train_test_split(\n", " X, y, test_size=0.4, random_state=42\n", ")\n", "\n", "x_min, x_max = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5\n", "y_min, y_max = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Train the model" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "loss: 1.5092056183794516\n", "loss: 1.4052784494597108\n", "loss: 1.3761345024941465\n", "loss: 1.3630869405843156\n", "loss: 1.3552464258406522\n", "loss: 1.349123229154225\n", "loss: 1.3431256808094927\n", "loss: 1.3362112078682549\n", "loss: 1.3274290190660858\n", "loss: 1.3157172798860284\n", "loss: 1.2997766928634182\n", "loss: 1.2779742323824104\n", "loss: 1.248342224204477\n", "loss: 1.2087304881550036\n", "loss: 1.1568998315568928\n", "loss: 1.0918494643262784\n", "loss: 1.0195590120436018\n", "loss: 0.9457951095568214\n", "loss: 0.8639430268192831\n", "loss: 0.7647525848536025\n", "loss: 0.6601823271635829\n", "loss: 0.5661102798883235\n", "loss: 0.4876160842592251\n", "loss: 0.42308931814025225\n", "loss: 0.3689552054429172\n", "loss: 0.322923845307499\n", "loss: 0.2836730132074807\n", "loss: 0.25021217779446325\n", "loss: 0.2216908592235331\n", "loss: 0.19736061670901392\n", "loss: 0.17656800134779702\n", "loss: 0.15875047386321026\n", "loss: 0.14343006843804879\n", "loss: 0.13020485209452098\n", "loss: 0.11873929885637868\n", "loss: 0.1087546158367117\n", "loss: 0.10001970854126296\n", "loss: 0.09234314187572212\n", "loss: 0.08556621671860219\n", "loss: 0.07955713786272206\n", "loss: 0.07420617412092073\n", "loss: 0.06942168113049421\n", "loss: 0.06512685317691934\n", "loss: 0.061257079645640714\n", "loss: 0.057757796816077525\n", "loss: 0.0545827422872365\n", "loss: 0.05169253512728908\n", "loss: 0.049053518872192836\n", "loss: 0.0466368164533751\n", "loss: 0.044417556058805666\n", "loss: 0.042374235033703585\n", "loss: 0.0404881954696185\n", "loss: 0.03874319037731412\n", "loss: 0.037125023528634525\n", "loss: 0.03562124939086246\n", "loss: 0.03422092223474082\n", "loss: 0.0329143856137121\n", "loss: 0.03169309509897928\n", "loss: 0.03054946850197824\n", "loss: 0.029476758893627206\n", "loss: 0.028468946594046432\n", "loss: 0.027520647001531773\n", "loss: 0.026627031690069865\n", "loss: 0.02578376065800892\n", "loss: 0.02498692397825075\n", "loss: 0.024232991399588854\n", "loss: 0.023518768693064036\n", "loss: 0.022841359737221362\n", "loss: 0.02219813350040272\n", "loss: 0.021586695213538353\n", "loss: 0.021004861138723636\n", "loss: 0.020450636431551754\n", "loss: 0.019922195672210468\n", "loss: 0.019417865704588127\n", "loss: 0.018936110476324985\n", "loss: 0.018475517617776015\n", "loss: 0.01803478653568396\n", "loss: 0.017612717829281064\n", "loss: 0.017208203863488286\n", "loss: 0.016820220356725514\n", "loss: 0.016447818860260015\n", "loss: 0.0160901200225292\n", "loss: 0.015746307545989182\n", "loss: 0.01541562275609709\n", "loss: 0.015097359712380383\n", "loss: 0.014790860800440717\n", "loss: 0.014495512751390105\n", "loss: 0.014210743041828075\n", "loss: 0.013936016633182046\n", "loss: 0.013670833014182088\n", "loss: 0.013414723514545273\n", "loss: 0.013167248861679233\n", "loss: 0.012927996955477793\n", "loss: 0.012696580839129182\n", "loss: 0.012472636846338482\n", "loss: 0.012255822907560525\n", "loss: 0.012045816999741691\n", "loss: 0.011842315725759325\n", "loss: 0.011645033011228996\n", "loss: 0.011453698907655463\n" ] } ], "source": [ "y_train = y_train.reshape(-1, 1)\n", "\n", "nn = NeuralNetwork(X_train, y_train)\n", "\n", "for i in range(100000):\n", " nn.train(X_train, y_train)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot the loss vs. the number of epochs" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'loss')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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Wg1/f/9mfTr7+8lw4yQymczhuRCiWRt13Lx587B//35s37692Ws89p1XUFCABQsWYOPGjdBqta3247HuPJvNhtGjR+PVV18FACQkJODQoUNYvnw55syZY+/HY915a9aswaefforPPvsMw4YNQ05ODhYuXIjw8HDcfffd9n481l2nI8fWGcefl6U6KSgoCAqFolnKLCsra5ZYqWMeeeQRfP311/jhhx8QGRlpbw8LCwMAHnsnyMrKQllZGRITE6FUKqFUKrFlyxa8+eabUCqV9uPJY915ffr0wdChQx3a4uLikJ+fD4D/XjvTE088gaeffhq///3vMXz4cMyePRuPPvoo0tPTAfBYd6X2HNuwsDCYTCZUVla22qejGG46Sa1WIzExEZmZmQ7tmZmZSE5Olqgq1yCEwLx587Bu3Tps3rwZsbGxDq/HxsYiLCzM4dibTCZs2bKFx/4KTZw4EQcOHEBOTo59Gz16NO666y7k5OSgX79+PNZOMm7cuGZLGhw7dgwxMTEA+O+1M9XW1kIud/yZUygU9qngPNZdpz3HNjExESqVyqFPcXExDh482Pnj36nhyCSEuDgV/MMPPxSHDx8WCxcuFF5eXuL06dNSl9arPfTQQ0Kn04kff/xRFBcX27fa2lp7nyVLlgidTifWrVsnDhw4IO68805O43SSS2dLCcFj7Sw///yzUCqV4i9/+Ys4fvy4WLlypfD09BSffvqpvQ+PtXPcfffdIiIiwj4VfN26dSIoKEg8+eST9j481h1XVVUlsrOzRXZ2tgAg3njjDZGdnW1fBqU9xzY1NVVERkaK77//Xuzdu1fceOONnArek7z99tsiJiZGqNVqcdVVV9mnK1PHAWhx++ijj+x9bDabePHFF0VYWJjQaDTi2muvFQcOHJCuaBfy63DDY+08//3vf0V8fLzQaDRiyJAh4r333nN4ncfaOQwGg1iwYIGIjo4WWq1W9OvXTzz77LPCaDTa+/BYd9wPP/zQ4v9H33333UKI9h3buro6MW/ePBEQECA8PDzE9OnTRX5+fqdrkwkhROfO/RARERH1HBxzQ0RERC6F4YaIiIhcCsMNERERuRSGGyIiInIpDDdERETkUhhuiIiIyKUw3BAREZFLYbghIiIil8JwQ0S9zunTpyGTyZCTkyN1KUTUAzHcELmxc+fOQaVSoba2FhaLBV5eXva7U7ur66+/Hu+8806Lr61btw6TJ09GUFBQq+HKaDTikUceQVBQELy8vHDzzTejsLDQoU9lZSVmz54NnU4HnU6H2bNn48KFCw598vPzMWPGDHh5eSEoKAjz58+HyWRy1tckcmkMN0RubOfOnRg1ahQ8PT2RlZWFgIAAREdHS12WZM6fP48dO3ZgxowZLb5eU1ODcePGYcmSJa2+x8KFC/Hll19i9erV2L59O6qrqzF9+nRYrVZ7n1mzZiEnJwcbNmzAhg0bkJOTg9mzZ9tft1qtmDZtGmpqarB9+3asXr0aa9euxWOPPea8L0vkyjp9dyoi6rWeeuop+80x//73v4uZM2e2a78VK1aIIUOGCI1GIwYPHizefvtt+2t5eXkCgFi1apVISkoSGo1GDB06VPzwww8O7/Hjjz+KMWPGCLVaLcLCwsRTTz0lzGaz/XWr1SqWLFki+vfvL9RqtYiKihKvvPKKw2esXbtWXH/99cLDw0OMGDFC7Nixw77/6dOnxfTp04Wfn5/w9PQUQ4cOFd9++22b3+uTTz4Ro0ePvuz3b/r87Oxsh/YLFy4IlUolVq9ebW8rKioScrlcbNiwQQghxOHDhwUAsWvXLnufnTt3CgDiyJEjQgghMjIyhFwuF0VFRfY+q1atEhqNRuj1+svWR+TuGG6I3MyZM2eETqcTOp1OqFQqodVqhU6nE2q1Wmg0GqHT6cRDDz3U6v7vvfee6NOnj1i7dq04deqUWLt2rQgICBAff/yxEOLiD39kZKT44osvxOHDh8XcuXOFj4+PKC8vF0IIUVhYKDw9PcWf/vQnkZubK7788ksRFBQkXnzxRfvnPPnkk8Lf3198/PHH4sSJE2Lbtm3i/fffd/iMIUOGiG+++UYcPXpU3H777SImJsYekKZNmyYmTZok9u/fL06ePCn++9//ii1btrR5bG6//Xbx5z//+bLHsLVws2nTJgFAnD9/3qF9xIgR4oUXXhBCCPHhhx8KnU7X7D11Op1YsWKFEEKI559/XowYMcLh9fPnzwsAYvPmzZetj8jdMdwQuRmz2Szy8vLEvn37hEqlEjk5OeLEiRPC29tbbNmyReTl5Ylz5861un9UVJT47LPPHNr+/Oc/i6SkJCHExR/+JUuWOHxmZGSk+Otf/yqEEOKZZ54RgwcPFjabzd7n7bffFt7e3sJqtQqDwSA0Go09zPxa02d88MEH9rZDhw4JACI3N1cIIcTw4cPFSy+91O7jUl9fL3x8fMT+/fsv27e1cLNy5UqhVqub9Z80aZJ44IEHhBBC/OUvfxEDBw5s1mfgwIHi1VdfFUIIcf/994tJkyY166NWq5sdeyJqTinFpTAiko5SqUTfvn3x+eefY8yYMRg5ciR++uknhIaG4tprr21z33PnzqGgoAD33Xcf7r//fnu7xWKBTqdz6JuUlOTwmaNHj0Zubi4AIDc3F0lJSZDJZPY+48aNQ3V1NQoLC1FSUgKj0YiJEye2Wc+IESPsf/fp0wcAUFZWhiFDhmD+/Pl46KGHsHHjRtx000247bbbHPr/2ubNmxEYGIjhw4e3+ZkdIYRw+K6X/t2ZPkTUMoYbIjczbNgwnDlzBmazGTabDd7e3rBYLLBYLPD29kZMTAwOHTrU4r42mw0A8P7772Ps2LEOrykUist+dtMPc0s/0kIIex8PD492fReVStXsvZtqnDt3LiZPnoxvv/0WGzduRHp6Ol5//XU88sgjLb7X119/jVtuuaVdn9uasLAwmEwmVFZWwt/f395eVlaG5ORke5/S0tJm+547dw6hoaH2Prt373Z4vbKyEmaz2d6HiFrH2VJEbiYjIwM5OTkICwvDp59+ipycHMTHx2Pp0qXIyclBRkZGq/uGhoYiIiICp06dwoABAxy22NhYh767du2y/22xWJCVlYUhQ4YAAIYOHYodO3bYAw0A7NixAz4+PoiIiMDAgQPh4eGBTZs2deq7RkVFITU1FevWrcNjjz2G999/v8V+Qgj897//xc0339ypz0tMTIRKpUJmZqa9rbi4GAcPHrSHm6SkJOj1evz888/2Prt374Zer3foc/DgQRQXF9v7bNy4ERqNBomJiZ2qkcgtSHhJjIgkUlxcLDQajairqxNGo1F4eHg4zMxpy/vvvy88PDzE0qVLxdGjR8X+/fvFihUrxOuvvy6EuDgeJTo6Wqxbt07k5uaKBx54QHh7e9vH8jQNKH744YdFbm6uWL9+fbMBxS+99JLw9/cX//rXv8SJEyfEzp077WNsWhrzUllZKQDYZ2UtWLBAbNiwQZw6dUpkZWWJq6++Wtxxxx0tfqdffvlF+Pn5OczWaklFRYXIzs4W3377rQAgVq9eLbKzs0VxcbG9T2pqqoiMjBTff/+92Lt3r7jxxhvFyJEjhcVisff5zW9+I0aMGCF27twpdu7cKYYPHy6mT59uf91isYj4+HgxceJEsXfvXvH999+LyMhIMW/evMv/AyIiDigmckerVq0S48ePF0IIsXXrVjFgwIAr2n/lypVi1KhRQq1WC39/f3HttdeKdevWCSEuBo/PPvtMjB07VqjVahEXFyc2bdrk8B7tmQr+yiuviJiYGKFSqUR0dLR9wG17ws28efNE//79hUajEcHBwWL27Nn22Vq/9txzz4m77rrrst/7o48+EgCabZeGsrq6OjFv3jwREBAgPDw8xPTp00V+fr7D+1RUVIi77rpL+Pj4CB8fH3HXXXeJyspKhz5nzpwR06ZNEx4eHiIgIEDMmzdP1NfXX7ZGIhJCJsQl54WJiDrp9OnTiI2NRXZ2NkaNGiV1Oe0yYsQIPPfcc7jjjjukLoWInIBjbojIrZlMJtx2222YMmWK1KUQkZNwthQRuTW1Wo0XX3xR6jKIyIl4WYqIiIhcCi9LERERkUthuCEiIiKXwnBDRERELoXhhoiIiFwKww0RERG5FIYbIiIicikMN0RERORSGG6IiIjIpfx/JENVral6sHIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "plt.plot(nn.loss_history)\n", "plt.xlabel(\"# epochs / 1000\")\n", "plt.ylabel(\"loss\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAI9CAYAAAAn9I7cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAC5e0lEQVR4nOzdd3hUZfrG8e/MpPdKCkkg9N47CigKgqIiKpbFXrAra1ksq+j6Q137irgoiCwqFsSKCKJ0UFrovSVAQgqk9znn90cgJpCEhJRJwv25rlyaU59RmNx55znvazFN00RERERERACwOroAEREREZH6RAFZRERERKQEBWQRERERkRIUkEVERERESlBAFhEREREpQQFZRERERKQEBWQRERERkRIUkEVERERESlBAFhEREREpQQFZRERERKQEBWQRERERqXPLli1j1KhRhIeHY7FY+Pbbb896ztKlS+nZsydubm60aNGCDz74oNT+mTNnYrFYzvjKzc2tUm0KyCIiIiJS57KysujatSvvvfdepY4/cOAAI0eO5MILL2Tjxo08/fTTPPzww8ydO7fUcT4+PsTHx5f6cnNzq1JtTlU6WkRERESkBowYMYIRI0ZU+vgPPviAqKgo3n77bQDat2/PunXreP311xkzZkzxcRaLhdDQ0GrVphFkEREREan3Vq9ezbBhw0ptGz58OOvWraOgoKB4W2ZmJs2aNSMiIoIrrriCjRs3VvleGkEWERERacRyc3PJz8+vk3uZponFYim1zdXVFVdX12pfOyEhgZCQkFLbQkJCKCwsJDk5mbCwMNq1a8fMmTPp3Lkz6enpvPPOOwwcOJBNmzbRunXrSt9LAVlERESkkcrNzaVp0+YcP36sTu7n5eVFZmZmqW3PP/88L7zwQo1c//TwbZpmqe39+vWjX79+xfsHDhxIjx49+M9//sO7775b6fsoIIuIiIg0Uvn5+Rw/fozZc7fh4eldq/fKzsrgb2M6EhcXh4+PT/H2mhg9BggNDSUhIaHUtsTERJycnAgMDCzzHKvVSu/evdmzZ0+V7qWALCIiItLIeXh64+npc/YDa4CPj0+pgFxT+vfvzw8//FBq28KFC+nVqxfOzs5lnmOaJjExMXTu3LlK99JDeiIiIiJS5zIzM4mJiSEmJgYomsYtJiaG2NhYACZOnMgtt9xSfPz48eM5dOgQEyZM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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from matplotlib.colors import ListedColormap\n", "\n", "cm = plt.cm.RdBu\n", "cm_bright = ListedColormap([\"#FF0000\", \"#0000FF\"])\n", "\n", "xv = np.linspace(x_min, x_max, 10)\n", "yv = np.linspace(y_min, y_max, 10)\n", "Xv, Yv = np.meshgrid(xv, yv)\n", "XYpairs = np.vstack([ Xv.reshape(-1), Yv.reshape(-1)])\n", "zv = nn.predict(XYpairs.T)\n", "Zv = zv.reshape(Xv.shape)\n", "\n", "fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(9, 7))\n", "ax.set_aspect(1)\n", "cn = ax.contourf(Xv, Yv, Zv, cmap=\"coolwarm_r\", alpha=0.4)\n", "\n", "ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cm_bright, edgecolors=\"k\")\n", "\n", "# Plot the testing points\n", "ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cm_bright, alpha=0.4, edgecolors=\"k\")\n", "\n", "ax.set_xlim(x_min, x_max)\n", "ax.set_ylim(y_min, y_max)\n", "# ax.set_xticks(())\n", "# ax.set_yticks(())\n", "\n", "fig.colorbar(cn)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.16" }, "vscode": { "interpreter": { "hash": "b0fa6594d8f4cbf19f97940f81e996739fb7646882a419484c72d19e05852a7e" } } }, "nbformat": 4, "nbformat_minor": 4 }