{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### A simple perceptron demo" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import torch\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate two-dimensional binary data with a binary outcome determined according to the logical operators *or*, *and*, or *xor*. Add a bit of noise to the input data to generate multiple observations for each problem." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "def generate_perceptron_data(problem='or', add_noise=True, noise_level=0.1, nreplicates=4):\n", "\n", " if problem == 'or':\n", " data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])\n", " labels = np.array([0, 1, 1, 1])\n", " elif problem == 'and':\n", " data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])\n", " labels = np.array([0, 0, 0, 1])\n", " elif problem == 'xor':\n", " data = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])\n", " labels = np.array([0, 1, 1, 0])\n", " else:\n", " raise ValueError('Unknown problem type')\n", " \n", " if add_noise:\n", " labels = np.tile(labels, nreplicates)\n", " data = np.tile(data, (nreplicates, 1))\n", " noise = np.random.randn(data.shape[0], data.shape[1]) * noise_level\n", " data = data + noise\n", " return data, labels\n", "\n", "def plot_perceptron_data(data, labels):\n", " plt.scatter(data[:, 0], data[:, 1], c=labels)\n", " plt.xlabel('Feature 1')\n", " plt.ylabel('Feature 2')\n", " plt.title('Perceptron Data')\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCXklEQVR4nO3deXxU1f3/8fedSTJZIGEJCQlLCIgFBBFCRUAKuMSCotBa8efCUmxN1QKiokjLqlK18nUFqrIUBYordcElXxcWwdZgsHyFuoEEIYgBzApJJnN+f0RGhyxksswkN6/n4zEPnTPn3vnMEWfenHvuvZYxxggAAMAmHMEuAAAAoD4RbgAAgK0QbgAAgK0QbgAAgK0QbgAAgK0QbgAAgK0QbgAAgK0QbgAAgK0QbgAAgK0QbgCbWLlypSzL8j5CQkLUsWNHTZo0SQcOHAh2eXV28OBBzZ07Vzt27Ah2KRV8/fXXPmMfGhqqtm3b6uc//7luvfVWffrpp7Xed1FRkebOnav333+//goGbI5wA9jMihUrtG3bNqWnp+t3v/ud1q5dq6FDh6qwsDDYpdXJwYMHNW/evEYZbk764x//qG3btmnjxo165plnNGbMGL3yyivq27evHnzwwVrts6ioSPPmzSPcAH4ICXYBAOpX7969NWDAAEnSiBEjVFZWpgULFmj9+vW69tpr67TvoqIiRUZG1keZDS4YtXbu3FnnnXee9/moUaM0ffp0/epXv9KMGTPUu3dvjRw5MqA1Ac0RMzeAzZ38sd23b58kyRijxYsX65xzzlFERIRat26tK6+8Unv27PHZbvjw4erdu7c2bdqkwYMHKzIyUr/97W8lSd9//71uu+02de3aVS6XS3FxcRo1apT++9//ercvKSnRPffcox49esjlcqldu3aaNGmSvvvuO5/36dKliy677DK9/PLLOvvssxUeHq6uXbvq0Ucf9fZ5//339fOf/1ySNGnSJO/hn7lz50qSJk6cqBYtWmjnzp1KTU1Vy5YtdeGFF0qSjh49qptuukkdOnRQWFiYunbtqlmzZqm4uNinDsuydMstt+iZZ55Rz549FRkZqb59++q1116r0/hHRERo2bJlCg0N9Zm9+e6773TTTTepV69eatGiheLi4nTBBRdo8+bN3j5ff/212rVrJ0maN2+e93NPnDhRkvTll19q0qRJ6t69uyIjI9WhQweNHj1aO3furFPNQFPHzA1gc19++aUkeX8kb7zxRq1cuVJTpkzR/fffr6NHj2r+/PkaPHiwPvnkE8XHx3u3zc7O1nXXXacZM2bovvvuk8PhUH5+vs4//3x9/fXXuvPOOzVw4EAVFBRo06ZNys7OVo8ePeTxeHTFFVdo8+bNmjFjhgYPHqx9+/Zpzpw5Gj58uDIyMhQREeF9nx07dmjatGmaO3eu2rdvr9WrV2vq1KkqKSnR7bffrv79+2vFihWaNGmS/vSnP+nSSy+VJHXs2NG7j5KSEl1++eW68cYbddddd8ntduvEiRMaMWKEvvrqK82bN09nn322Nm/erIULF2rHjh16/fXXfcbq9ddf10cffaT58+erRYsWeuCBBzR27Fh99tln6tq1a63/GyQmJiolJUVbt26V2+1WSEiIjh49KkmaM2eO2rdvr4KCAr388ssaPny43nnnHQ0fPlwJCQl688039ctf/lKTJ0/WDTfc4PPf8uDBg2rbtq3+8pe/qF27djp69Kj+/ve/a+DAgcrMzNTPfvazWtcMNGkGgC2sWLHCSDIffvihKS0tNfn5+ea1114z7dq1My1btjSHDh0y27ZtM5LMQw895LPt/v37TUREhJkxY4a3bdiwYUaSeeedd3z6zp8/30gy6enpVdaydu1aI8m8+OKLPu0fffSRkWQWL17sbUtKSjKWZZkdO3b49L344otNdHS0KSws9Nl2xYoVFd5vwoQJRpJZvny5T/vSpUuNJPPcc8/5tN9///1Gknn77be9bZJMfHy8ycvL87YdOnTIOBwOs3Dhwio/qzHG7N2710gyDz74YJV9xo0bZySZb7/9ttLX3W63KS0tNRdeeKEZO3ast/27774zksycOXOqreHkPkpKSkz37t3Nrbfeetr+gF1xWAqwmfPOO0+hoaFq2bKlLrvsMrVv315vvPGG4uPj9dprr8myLF133XVyu93eR/v27dW3b98Ki1Zbt26tCy64wKftjTfe0JlnnqmLLrqoyhpee+01tWrVSqNHj/Z5n3POOUft27ev8D5nnXWW+vbt69N2zTXXKC8vTx9//HGNP/uvf/1rn+fvvvuuoqKidOWVV/q0nzys88477/i0jxgxQi1btvQ+j4+PV1xcnPeQXl0YYyq0LV26VP3791d4eLhCQkIUGhqqd955R7t3767RPt1ut+677z716tVLYWFhCgkJUVhYmL744osa7wOwIw5LATazatUq9ezZUyEhIYqPj1dCQoL3tW+//VbGGJ9DTz916qGXn2570nfffafOnTtXW8O3336r77//XmFhYZW+npOT4/O8ffv2FfqcbDty5Ei173VSZGSkoqOjfdqOHDmi9u3by7Isn/a4uDiFhIRU2Hfbtm0r7Nflcun48eM1qqE6+/btk8vlUps2bSRJixYt0m233aa0tDQtWLBAsbGxcjqd+vOf/1zjYDJ9+nQ98cQTuvPOOzVs2DC1bt1aDodDN9xwQ73UDDRVhBvAZnr27Ok9W+pUsbGxsixLmzdvlsvlqvD6qW2nhgKpfL3HN998U20NsbGxatu2rd58881KX//p7IgkHTp0qEKfk22VBY7KVFZr27Zt9a9//UvGGJ/XDx8+LLfbrdjY2Brtu64OHDig7du3a9iwYQoJKf/affbZZzV8+HAtWbLEp29+fn6N9/vss89q/Pjxuu+++3zac3Jy1KpVqzrXDTRVHJYCmpHLLrtMxhgdOHBAAwYMqPDo06fPafcxcuRIff7553r33XerfZ8jR46orKys0vc5daHrp59+qk8++cSnbc2aNWrZsqX69+8v6cfg5c+MxIUXXqiCggKtX7/ep33VqlXe1xva8ePHdcMNN8jtdmvGjBnedsuyKoTJ//znP9q2bZtPW3Wfu7J9vP7667a4aCNQF8zcAM3IkCFD9Pvf/16TJk1SRkaGfvGLXygqKkrZ2dnasmWL+vTpoz/84Q/V7mPatGlat26drrjiCt11110699xzdfz4cW3cuFGXXXaZRowYoauvvlqrV6/WqFGjNHXqVJ177rkKDQ3VN998o/fee09XXHGFxo4d691nYmKiLr/8cs2dO1cJCQl69tlnlZ6ervvvv997rZpu3bopIiJCq1evVs+ePdWiRQslJiYqMTGxylrHjx+vJ554QhMmTNDXX3+tPn36aMuWLbrvvvs0atSoatcN1UZWVpY+/PBDeTwe5ebmKjMzU8uXL9e+ffv00EMPKTU11dv3sssu04IFCzRnzhwNGzZMn332mebPn6/k5GS53W5vv5YtWyopKUn//Oc/deGFF6pNmzaKjY31nkK/cuVK9ejRQ2effba2b9+uBx980OcsMqBZCu56ZgD15eTZUh999NFp+y5fvtwMHDjQREVFmYiI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SLJUcbwsWdHzZIX2Ck5xAADb4Do3deRoeZtMaD+ZopVSyceSHJJriKyoSbLCzg12eY2OFfkbKfQsmcJVP7mI32BZUdfLCu0d7PIAADZAuKkHVvgFssIvCHYZTYYV2ktWq78EuwwAgE1xWAoAANgK4QYAANgK4QYAANgK4QYAANgK4QYAANhK0MPN4sWLlZycrPDwcKWkpGjz5urvLbR69Wr17dtXkZGRSkhI0KRJk3TkyJEAVQsAABq7oIabdevWadq0aZo1a5YyMzM1dOhQjRw5UllZWZX237Jli8aPH6/Jkyfr008/1fPPP6+PPvpIN9xwQ4ArBwAAjVVQw82iRYs0efJk3XDDDerZs6cefvhhderUSUuWLKm0/4cffqguXbpoypQpSk5O1vnnn68bb7xRGRkZAa4cAAA0VkELNyUlJdq+fbtSU1N92lNTU7V169ZKtxk8eLC++eYbbdiwQcYYffvtt3rhhRd06aWXVvk+xcXFysvL83kAAAD7Clq4ycnJUVlZmeLj433a4+PjdejQoUq3GTx4sFavXq1x48YpLCxM7du3V6tWrfTYY49V+T4LFy5UTEyM99GpU6d6/RwAAKBxCfqCYsuyfJ4bYyq0nbRr1y5NmTJFs2fP1vbt2/Xmm29q7969SktLq3L/M2fOVG5urvexf//+eq0fAAA0LkG7t1RsbKycTmeFWZrDhw9XmM05aeHChRoyZIjuuOMOSdLZZ5+tqKgoDR06VPfcc48SEhIqbONyueRyuer/AwAAgEYpaDM3YWFhSklJUXp6uk97enq6Bg8eXOk2RUVFcjh8S3Y6nZLKZ3wAAACCelhq+vTpevrpp7V8+XLt3r1bt956q7KysryHmWbOnKnx48d7+48ePVovvfSSlixZoj179uiDDz7QlClTdO655yoxMTFYHwMAADQiQTssJUnjxo3TkSNHNH/+fGVnZ6t3797asGGDkpKSJEnZ2dk+17yZOHGi8vPz9fjjj+u2225Tq1atdMEFF+j+++8P1kcAAACNjGWa2fGcvLw8xcTEKDc3V9HR0cEuBwAA1IA/v99BP1sKAACgPhFuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBu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Gj58uH77299q6NChOuOMM5SUlKTVq1fr2muvbYg6AQAAasTvmZujR48qOTlZUvn6mqNHj0qSzj//fG3atKl+qwMAAPCT3+Gma9eu+vrrryVJvXr10nPPPSepfEanVatW9VkbAACA3/wON5MmTdInn3wiSZo5c6Z37c2tt96qO+64o94LBAAA8Iff95Y6VVZWljIyMtStWzf17du3vupqMNxbCgCApsef32+/FxT/1IkTJ9S5c2d17ty5LrsBAACoN34fliorK9OCBQvUoUMHtWjRQnv27JEk/fnPf9ayZcvqvUAAAAB/+B1u7r33Xq1cuVIPPPCAwsLCvO19+vTR008/Xa/FAQAA+MvvcLNq1So9+eSTuvbaa+V0Or3tZ599tv773//Wa3EAAAD+8jvcHDhwQGeccUaFdo/HU+E+UwAAAIHmd7g566yztHnz5grtzz//vPr161cvRQEAANSW32dLzZkzR9dff70OHDggj8ejl156SZ999plWrVql1157rSFqBAAAqDG/Z25Gjx6tdevWacOGDbIsS7Nnz9bu3bv16quv6uKLL26IGgEAAGqsxhfx27Nnj5KTk2VZVkPX1KC4iB8AAE2PP7/fNZ656d69u7777jvv83Hjxunbb7+tfZUAAAANoMbh5tQJng0bNqiwsLDeCwIAAKgLv9fcAAAANGY1DjeWZVVYb9PU198AAAD7qfGp4MYYTZw4US6XS1L5TTPT0tIUFRXl0++ll16q3woBAAD8UONwM2HCBJ/n1113Xb0XAwAAUFc1DjcrVqxoyDoAAADqBQuKAQCArRBuAACArQQ93CxevFjJyckKDw9XSkpKpTflrMwHH3ygkJAQnXPOOQ1bIAAAaFKCGm7WrVunadOmadasWcrMzNTQoUM1cuRIZWVlVbtdbm6uxo8frwsvvDBAlQIAgKaixveWaggDBw5U//79tWTJEm9bz549NWbMGC1cuLDK7a6++mp1795dTqdT69ev144dO2r8ntxbCgCApqdB7i1V30pKSrR9+3alpqb6tKempmrr1q1VbrdixQp99dVXmjNnTkOXCAAAmqAanwpe33JyclRWVqb4+Hif9vj4eB06dKjSbb744gvddddd2rx5s0JCalZ6cXGxiouLvc/z8vJqXzQAAGj0gr6g+NRbOBhjKr2tQ1lZma655hrNmzdPZ555Zo33v3DhQsXExHgfnTp1qnPNAACg8QpauImNjZXT6awwS3P48OEKszmSlJ+fr4yMDN1yyy0KCQlRSEiI5s+fr08++UQhISF69913K32fmTNnKjc31/vYv39/g3weAADQOATtsFRYWJhSUlKUnp6usWPHetvT09N1xRVXVOgfHR2tnTt3+rQtXrxY7777rl544QUlJydX+j4ul8t7PywAAGB/QQs3kjR9+nRdf/31GjBggAYNGqQnn3xSWVlZSktLk1Q+63LgwAGtWrVKDodDvXv39tk+Li5O4eHhFdoBAEDzFdRwM27cOB05ckTz589Xdna2evfurQ0bNigpKUmSlJ2dfdpr3gAAAPxUUK9zEwxc5wYAgKanSVznBgAAoCEQbgAAgK0Edc0NAu944Ql99Eam8o8WKKFbe50z4iw5HGRcAIB9EG6aCWOMnnvwFT274HmdKPzxis1xnWN165NpGpDaN4jVAQBQf/grezOx5r6X9PRdz/oEG0n6bv8Rzbr0Pn2y8dMgVQYAQP0i3DQD+ccK9OyCFyp9zRgjY4yW3b0mwFUBANAwCDfNwOYX/yV3qbvK143HaPe2z5W959sAVgUAQMMg3DQD3x/OldPpPG2/Y4dzA1ANAAANi3DTDLTr2FZl7rLT9ovt0CYA1QAA0LAIN83A+b86V67Iqm8e6nA61O/CPorrFBvAqgAAaBiEm2YgokWEbvzr+EpfczgdCgkL0e8fuD7AVQEA0DAIN83E6LRUzVh5i2I7+h566t6/qxZtnK8z+iUHqTIAAOoXN85sZsrKyrT7wy+Uf7RAid3ildSrU7BLAgDgtPz5/eYKxc2M0+lU7yE9gl0GAAANhsNSAADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVgg3AADAVoIebhYvXqzk5GSFh4crJSVFmzdvrrLvSy+9pIsvvljt2rVTdHS0Bg0apLfeeiuA1QIAgMYuqOFm3bp1mjZtmmbNmqXMzEwNHTpUI0eOVFZWVqX9N23apIsvvlgbNmzQ9u3bNWLECI0ePVqZmZkBrhwAADRWljHGBOvNBw4cqP79+2vJkiXetp49e2rMmDFauHBhjfZx1llnady4cZo9e3aN+ufl5SkmJka5ubmKjo6uVd0AACCw/Pn9DtrMTUlJibZv367U1FSf9tTUVG3durVG+/B4PMrPz1ebNm2q7FNcXKy8vDyfBwAAsK+ghZucnByVlZUpPj7epz0+Pl6HDh2q0T4eeughFRYW6qqrrqqyz8KFCxUTE+N9dOrUqU51AwCAxi3oC4oty/J5boyp0FaZtWvXau7cuVq3bp3i4uKq7Ddz5kzl5uZ6H/v3769zzQAAoPEKCdYbx8bGyul0VpilOXz4cIXZnFOtW7dOkydP1vPPP6+LLrqo2r4ul0sul6vO9QIAgKYhaDM3YWFhSklJUXp6uk97enq6Bg8eXOV2a9eu1cSJE7VmzRpdeumlDV0mAABoYoI2cyNJ06dP1/XXX68BAwZo0KBBevLJJ5WVlaW0tDRJ5YeUDhw4oFWrVkkqDzbjx4/XI488ovPOO8876xMREaGYmJigfQ4AANB4BDXcjBs3TkeOHNH8+fOVnZ2t3r17a8OGDUpKSpIkZWdn+1zz5m9/+5vcbrduvvlm3Xzzzd72CRMmaOXKlYEuHwAANEJBvc5NMHCdGwAAmh5/fr+DOnMDAEBjZEp3yhz/p+T5TnLEy4oYKyu0Z7DLQg0RbgAA+IExpTK5M6QTr0tySvJIcsgUrZQJv1JWzAJZljPIVeJ0gn6dGwAAGguT/4B0YsMPz8okmR/+KenEizIFjwWpMviDcAMAgCTjyZWK1qg80FTaQypaIeMpCmRZqAXCDQAAklSyVVJp9X3Mcan0o4CUg9oj3AAAIEmmuH77IWhYUAwAgCSF9Kjffs2QKf2vVPqpZIVKYYNlOWODUgfhBgAASVZoD5nQvlLp/8m7iNiHUwobKCukc6BLa/SMO0sm93apdMdPWp0yEWNlRc+WZYUHtB4OSwEA8AMr5gHJilb5aeA/5ZQcbWTF3BuMsho1U3ZY5ujVUunOU14pk46/JHPsjwr09YIJNwAA/MAKSZYVu16KvEayIn9obCFFXi+r7cuynB2CWl9jZIr+LnmOqfLZLo9UsjHgi7A5LAUAwE9YzgRZ0X+WafknScWSXLIsK9hlNV5FL6jyYHOSU+b4ellh5waqIsINAACVKQ80gV0r0tQYYyTz/Wl6lUll3wWiHC8OSwEAgFqxLEtynO6MKKfkTAhIPScRbgAAQO1FXKXq40SZrIhfB6oaSYQbAABQB1bUBMmZqIpnmEmSJYWPlkLPDmhNhBsAAFBrlqOVrDb/kFzDJP1k4bUVIUX9XlbM/QFfkM2CYgAAUCeWM05W66UyZdlS6e7yKxSH9pfliApKPYQbAABQLyxnQsAXD1eGw1IAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWuHEmAKDZM8ZInu8kGcnRTpbF3/2bMsINAKDZMsZIx/8hU7hMKssqb3QkSlG/lSKvI+Q0UYQbAECzZIyRyZsjHf+HJOvHFzwHZfLvkUp3SjEPyLKsKveBxolICgBonkq2/RBsJMlUfP3EP6Xi9wJaEuoH4QYA0CyZorWSnNX0cMoUrQlUOahHhBsAQPPk/lxSWTUdyqSS7TLu/YGqCPWEcAMAaJ6sqBp0KpTJuUimYGmDl4P6Q7gBADRLVsSl8llIXCUjU7BI5vgrDV0S6knQw83ixYuVnJys8PBwpaSkaPPmzdX237hxo1JSUhQeHq6uXbtq6VLSNACgFiKulBxtVP26m5MsmYLF5aeOo9ELarhZt26dpk2bplmzZikzM1NDhw7VyJEjlZWVVWn/vXv3atSoURo6dKgyMzN19913a8qUKXrxxRcDXDkAoKmzHDGy2jwjOdvXoLeRyvZIZQcavC7UnWWCGEMHDhyo/v37a8mSJd62nj17asyYMVq4cGGF/nfeeadeeeUV7d6929uWlpamTz75RNu2bavRe+bl5SkmJka5ubmKjo6u+4cAADRpxpTJfD9NKn5blZ4S/hNW7BuyQroFpC748uf3O2gzNyUlJdq+fbtSU1N92lNTU7V169ZKt9m2bVuF/pdccokyMjJUWlpa6TbFxcXKy8vzeQAAcJJlOWWF/1KnCzayIiVnh4DUhLoJWrjJyclRWVmZ4uPjfdrj4+N16NChSrc5dOhQpf3dbrdycnIq3WbhwoWKiYnxPjp16lQ/HwAAYB/hF0tWa1X9s+iQIq6SZYUHsirUUtAXFJ96WWtjTLWXuq6sf2XtJ82cOVO5ubnex/79XK8AAODLssJktXpE5XclOnWBsUMK+ZmsFlOCUBlqI2j3loqNjZXT6awwS3P48OEKszMntW/fvtL+ISEhatu2baXbuFwuuVyu+im6iTHGaMd7/6e3Vrynw1k5at2+lS6+fph+PvIcOZ01OTsAAJoPy3We1PZFmcKnpRMbJJWW3yE88hopcqIsR02ui4PGIGjhJiwsTCkpKUpPT9fYsWO97enp6briiisq3WbQoEF69dVXfdrefvttDRgwQKGhoQ1ab1NTWlKqe69+WB+s/7ecIQ6VuT1yOB3a9Pw2nT2sl+559S5FtIgIdpkA0KhYoT+T1epBGXO/JLcsKyzYJaEWgnpYavr06Xr66ae1fPly7d69W7feequysrKUlpYmqfyQ0vjx473909LStG/fPk2fPl27d+/W8uXLtWzZMt1+++3B+giN1rKZa7T1lY8kSWVujyTJU1b+z//b8l898oenglYbADR2luUg2DRhQZu5kaRx48bpyJEjmj9/vrKzs9W7d29t2LBBSUlJkqTs7Gyfa94kJydrw4YNuvXWW/XEE08oMTFRjz76qH79618H6yM0SoV5RXp1yVsynspX/nvKPHp37RbdcP91ik1sE+DqAABoWEG9zk0wNIfr3Hz01g7dPfLe0/ab8fdbdPH1wwJQEQAAddMkrnODhuNxV3eX2x+dPFwFAICdEG5sqFu/ZFmO098Mrse5ZwSgGgAAAotwY0OxiW009FcD5XBW/p/XGeJQn6E91eUsLmgIALAfwo1NTVn8O3U4o32FGRyHw1Lr9q111zN/DFJlAAA0LMKNTcXERuuxfy3U7/5ynRLPaC9XRJjiOsfqutm/0dKPH1Bc53bBLhEAgAbB2VIAAKDR42wpAADQbBFuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArRBuAACArYQEuwDgVF/u2Kt/vfaxSotL1e2cLhp0+QCFhPJHFQBQM/xioM5OFBXrzWXv6vUn03V4f45iYqN1ycQRGv2HVEW3bVnj/eQfK9A9V/+PPk7/jxxOhyyHpbLSMrWKi9Gfn5uus3/RqwE/BQDALrhxJuqkMLdQt42Yqz2f7JORkX7402Q5LLVNaK3/2bxA7bvEnXY/Ho9Htw79s/777y/lKfP4vOZwWAoJC9HijPuV1KtTQ3wMAEAjx40zETCLb12pvTuzZMyPwUaSjMfo6Lff675rHqnRfjLf2ald2z6vEGwkyeMxKnOXad0D/6yvsgEANka4Qa3lHcnXu6s3VxpIJMnj9mj3h5/ry8y9p93X++u2yhnirPL1MrdH7/3jAzWziUYAQC0QblBrX+74Wu7Ssuo7WdLuDz8/7b4K84qqDEknuUvccpe6/SkRANAMEW5Qa05nDf74GFU7I3NShzMSZDmsavu0TWyt0LDQmpYHAGimCDeotTN/3k3hLcKr72RJ/S7sc9p9jZx8gTyeqmduLIel0X+4xN8SAQDNEOEGtRYRFa4rbrpEllX5jIvD6dDgy3+uhK7xp91XYrf2mjjv6vInp+zO4XSoa5/O+tXUUXUtGQDQDBBuUCcTF1ytwWN+LklyhJT/cXL8cLiqe/+uumPFzTXe17V/+rXuWHGzOpyR4G0Lj3Lp8psu0UMb5yuiRUQ9Vg4AsCuuc4M6M8bo4//9j95Y/q4O7T2sNvGtdNH1v9DgK35eqysLG2OUvedblZwoVfvkOIVHuhqgagBAU+LP7zfhBgAANHpcxA8AADRbhBsAAGArhBsAAGArhBsAAGArhBsAAGArhBsAAGArhBsAAGArhBsAAGArhBsAAGArhBsAAGAr/t/4p4k7ebeJvLy8IFcCAABq6uTvdk3uGtXswk1+fr4kqVOnTkGuBAAA+Cs/P18xMTHV9ml2N870eDw6ePCgWrZsKcuygl1OneXl5alTp07av39/s78RKGPxI8aiHOPwI8biR4zFj5rSWBhjlJ+fr8TERDkc1a+qaXYzNw6HQx07dgx2GfUuOjq60f/BDBTG4keMRTnG4UeMxY8Yix81lbE43YzNSSwoBgAAtkK4AQAAtkK4aeJcLpfmzJkjl8sV7FKCjrH4EWNRjnH4EWPxI8biR3Ydi2a3oBgAANgbMzcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDdNwOLFi5WcnKzw8HClpKRo8+bN1fbfuHGjUlJSFB4erq5du2rp0qUBqrTh+TMWL730ki6++GK1a9dO0dHRGjRokN56660AVttw/P0zcdIHH3ygkJAQnXPOOQ1bYAD5OxbFxcWaNWuWkpKS5HK51K1bNy1fvjxA1TYsf8di9erV6tu3ryIjI5WQkKBJkybpyJEjAaq24WzatEmjR49WYmKiLMvS+vXrT7uNHb83/R0HW31nGjRq//jHP0xoaKh56qmnzK5du8zUqVNNVFSU2bdvX6X99+zZYyIjI83UqVPNrl27zFNPPWVCQ0PNCy+8EODK65+/YzF16lRz//33m3//+9/m888/NzNnzjShoaHm448/DnDl9cvfcTjp+++/N127djWpqammb9++gSm2gdVmLC6//HIzcOBAk56ebvbu3Wv+9a9/mQ8++CCAVTcMf8di8+bNxuFwmEceecTs2bPHbN682Zx11llmzJgxAa68/m3YsMHMmjXLvPjii0aSefnll6vtb9fvTX/HwU7fmYSbRu7cc881aWlpPm09evQwd911V6X9Z8yYYXr06OHTduONN5rzzjuvwWoMFH/HojK9evUy8+bNq+/SAqq24zBu3Djzpz/9ycyZM8c24cbfsXjjjTdMTEyMOXLkSCDKCyh/x+LBBx80Xbt29Wl79NFHTceOHRusxmCoyY+6nb83T6rJOFSmqX5ncliqESspKdH27duVmprq056amqqtW7dWus22bdsq9L/kkkuUkZGh0tLSBqu1odVmLE7l8XiUn5+vNm3aNESJAVHbcVixYoW++uorzZkzp6FLDJjajMUrr7yiAQMG6IEHHlCHDh105pln6vbbb9fx48cDUXKDqc1YDB48WN988402bNggY4y+/fZbvfDCC7r00ksDUXKjYtfvzbpqyt+Zze7GmU1JTk6OysrKFB8f79MeHx+vQ4cOVbrNoUOHKu3vdruVk5OjhISEBqu3IdVmLE710EMPqbCwUFdddVVDlBgQtRmHL774QnfddZc2b96skBD7/C9fm7HYs2ePtmzZovDwcL388svKycnRTTfdpKNHjzbpdTe1GYvBgwdr9erVGjdunE6cOCG3263LL79cjz32WCBKblTs+r1ZV035O5OZmybAsiyf58aYCm2n619Ze1Pk71ictHbtWs2dO1fr1q1TXFxcQ5UXMDUdh7KyMl1zzTWaN2+ezjzzzECVF1D+/JnweDyyLEurV6/Wueeeq1GjRmnRokVauXJlk5+9kfwbi127dmnKlCmaPXu2tm/frjfffFN79+5VWlpaIEptdOz8vVkbTf070z5/jbOh2NhYOZ3OCn/zOnz4cIW/ZZzUvn37SvuHhISobdu2DVZrQ6vNWJy0bt06TZ48Wc8//7wuuuiihiyzwfk7Dvn5+crIyFBmZqZuueUWSeU/8MYYhYSE6O2339YFF1wQkNrrW23+TCQkJKhDhw6KiYnxtvXs2VPGGH3zzTfq3r17g9bcUGozFgsXLtSQIUN0xx13SJLOPvtsRUVFaejQobrnnnua1WyFXb83a8sO35nM3DRiYWFhSklJUXp6uk97enq6Bg8eXOk2gwYNqtD/7bff1oABAxQaGtpgtTa02oyFVP63j4kTJ2rNmjW2WEvg7zhER0dr586d2rFjh/eRlpamn/3sZ9qxY4cGDhwYqNLrXW3+TAwZMkQHDx5UQUGBt+3zzz+Xw+FQx44dG7TehlSbsSgqKpLD4fsT4HQ6Jf04a9Fc2PV7szZs850ZpIXMqKGTp3cuW7bM7Nq1y0ybNs1ERUWZr7/+2hhjzF133WWuv/56b/+TpzTeeuutZteuXWbZsmW2OKXRGP/HYs2aNSYkJMQ88cQTJjs72/v4/vvvg/UR6oW/43AqO50t5e9Y5Ofnm44dO5orr7zSfPrpp2bjxo2me/fu5oYbbgjWR6g3/o7FihUrTEhIiFm8eLH56quvzJYtW8yAAQPMueeeG6yPUG/y8/NNZmamyczMNJLMokWLTGZmpve0+ObyvenvONjpO5Nw0wQ88cQTJikpyYSFhZn+/fubjRs3el+bMGGCGTZsmE//999/3/Tr18+EhYWZLl26mCVLlgS44objz1gMGzbMSKrwmDBhQuALr2f+/pn4KTuFG2P8H4vdu3ebiy66yERERJiOHTua6dOnm6KiogBX3TD8HYtHH33U9OrVy0RERJiEhARz7bXXmm+++SbAVde/9957r9r/95vL96a/42Cn70zLmGY2/wgAAGyNNTcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcAAMBWCDcA6tXEiRNlWVaFx5dfflkv+1+5cqVatWpVL/uqrU2bNmn06NFKTEyUZVlav359UOsB4ItwA6De/fKXv1R2drbPIzk5OdhlVVBaWlqr7QoLC9W3b189/vjj9VwRgPpAuAFQ71wul9q3b+/zOHnH6VdffVUpKSkKDw9X165dNW/ePLndbu+2ixYtUp8+fRQVFaVOnTrppptu8t7F+/3339ekSZOUm5vrnRGaO3euJFU6g9KqVSutXLlSkvT111/Lsiw999xzGj58uMLDw/Xss89KklasWKGePXsqPDxcPXr00OLFi6v9fCNHjtQ999yjX/3qV/UwWgDqW0iwCwDQfLz11lu67rrr9Oijj2ro0KH66quv9Pvf/16SNGfOHEmSw+HQo48+qi5dumjv3r266aabNGPGDC1evFiDBw/Www8/rNmzZ+uzzz6TJLVo0cKvGu6880499NBDWrFihVwul5566inNmTNHjz/+uPr166fMzEz97ne/U1RUlCZMmFC/AwAgMIJ9504A9jJhwgTjdDpNVFSU93HllVcaY4wZOnSoue+++3z6P/PMMyYhIaHK/T333HOmbdu23ucrVqwwMTExFfpJMi+//LJPW0xMjFmxYoUxxpi9e/caSebhhx/26dOpUyezZs0an7YFCxaYQYMGne6jVvm+AIKLmRsA9W7EiBFasmSJ93lUVJQkafv27froo4907733el8rKyvTiRMnVFRUpMjISL333nu67777tGvXLuXl5cntduvEiRMqLCz07qcuBgwY4P337777Tvv379fkyZP1u9/9ztvudrsVExNT5/cCEByEGwD1LioqSmeccUaFdo/Ho3nz5lW6ViU8PFz79u3TqFGjlJaWpgULFqhNmzbasmWLJk+efNrFv5ZlyRjj01bZNj8NSB6PR5L01FNPaeDAgT79Tq4RAtD0EG4ABEz//v312WefVRp8JCkjI0Nut1sPPfSQHI7y8x2ee+45nz5hYWEqKyursG27du2UnZ3tff7FF1+oqKio2nri4+PVoUMH7dmzR9dee62/HwdAI0W4ARAws2fP1mWXXaZOnTrpN7/5jRwOh/7zn/9o586duueee9StWze53W499thjGj16tD744AMtXbrUZx9dunRRQUGB3nnnHfXt21eRkZGKjIzUBRdcoMcff1znnXeePB6P7rzzToWGhp62prlz52rKlCmKjo7WyJEjVVxcrIyMDB07dkzTp0+vdJuCggKf6/bs3btXO3bsUJs2bdS5c+e6DRKAugv2oh8A9jJhwgRzxRVXVPn6m2++aQYPHmwiIiJMdHS0Offcc82TTz7pfX3RokUmISHBREREmEsuucSsWrXKSDLHjh3z9klLSzNt27Y1ksycOXOMMcYcOHDApKammqioKNO9e3ezYcOGShcUZ2ZmVqhp9erV5pxzzjFhYWGmdevW5he/+IV56aWXqvwM7733npFU4TFhwgQ/RgpAQ7GMOeUgNQAAQBPGRfwAAICtEG4AAICtEG4AAICtEG4AAICtEG4AAICtEG4AAICtEG4AAICtEG4AAICtEG4AAICtEG4AAICtEG4AAICtEG4AAICt/H+qiZ7K4AlVDwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data, labels = generate_perceptron_data(problem='or')\n", "plot_perceptron_data(data, labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fit a perceptron" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def fit_perceptron(data, labels, num_epochs=20, learning_rate=0.01):\n", "\n", " # add bias colunm to data\n", " data = np.concatenate([data, np.ones((data.shape[0], 1))], axis=1)\n", "\n", " # Initialize weights and bias\n", " weights = np.random.randn(data.shape[1]) * 0.05\n", " \n", " accuracy = []\n", "\n", " for epoch in range(num_epochs):\n", " for i in range(data.shape[0]):\n", " x = data[i]\n", " y = labels[i]\n", " y_pred = np.dot(x, weights)\n", " # Apply step function\n", " if y_pred > 0:\n", " y_pred = 1\n", " else:\n", " y_pred = 0\n", " weights += learning_rate * (y - y_pred) * x\n", " accuracy.append(np.mean((np.dot(data, weights) > 0) == labels))\n", "\n", " return accuracy\n", "\n", "def plot_accuracy(acc, data, labels):\n", " plt.figure(figsize=(10, 5))\n", " plt.subplot(1, 2, 1)\n", " plot_perceptron_data(data, labels)\n", " plt.subplot(1, 2, 2)\n", " plt.plot(acc)\n", " plt.xlabel('Epoch')\n", " plt.ylabel('Accuracy')\n", " plt.title('Perceptron Learning')\n", " plt.ylim([0, 1.1])\n", " \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate output using *or* operator." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1oAAAHUCAYAAAAjh1kfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABngUlEQVR4nO3dd3wUdf7H8fekbQokQIBAIISgICBFTQQDIoISDAjq6YGHAnJwJ2dBQCyIShHlzlN+2AALRRQ5BLEjRxQFFDwFE+EEFaVDQieFElK+vz8wey4pJDC7m01ez8djlP3ud2bfMwkzfHZmvmMZY4wAAAAAALbx83YAAAAAAKhqKLQAAAAAwGYUWgAAAABgMwotAAAAALAZhRYAAAAA2IxCCwAAAABsRqEFAAAAADaj0AIAAAAAm1FoAQAAAIDNKLRQZc2dO1eWZTmngIAANW7cWEOGDNGePXu8He+87d27VxMmTFBaWpq3oxSzfft2l20fGBioyMhIXX755Ro1apR++OGHc1728ePHNWHCBH3xxRf2BQaAcuC44j1Fx5VnnnnG21EqbMKECbIsy9sx4AUUWqjy5syZo7Vr1yolJUV/+ctftGDBAnXp0kXHjh3zdrTzsnfvXk2cOLFSHhCL3HvvvVq7dq1WrlypN954QzfeeKM++OADtW/fXv/85z/PaZnHjx/XxIkTKbQAeA3HFVTEsGHDtHbtWm/HgBcEeDsA4G5t2rRRQkKCJKlbt24qKCjQE088offee0+33XbbeS37+PHjCg0NtSOm23kja5MmTXTFFVc4X/fq1UujR4/WH/7wBz344INq06aNkpOTPZoJAM4Xx5XTfCmrnSq63o0bN1bjxo3dmAiVFWe0UO0U/cN/x44dkiRjjKZPn65LLrlEISEhql27tm655RZt3brVZb6rr75abdq00apVq9SpUyeFhobqz3/+syTp6NGjuv/++9WsWTM5HA7Vr19fvXr10o8//uic/9SpU5o8ebJatmwph8OhevXqaciQITpw4IDL5zRt2lTXX3+93n33XbVr107BwcFq1qyZnn/+eWefL774QpdffrkkaciQIc7LWCZMmCBJuuOOO1SjRg1t3LhRSUlJqlmzpq655hpJ0uHDh3XXXXepUaNGCgoKUrNmzTRu3Djl5ua65LAsS/fcc4/eeOMNtWrVSqGhoWrfvr0++uij89r+ISEhmjVrlgIDA13Oah04cEB33XWXWrdurRo1aqh+/frq3r27Vq9e7eyzfft21atXT5I0ceJE53rfcccdkqRffvlFQ4YMUfPmzRUaGqpGjRqpT58+2rhx43llBoCycFzx7nHl97KysjRmzBjFxcUpKChIjRo10siRI4udbXzppZd01VVXqX79+goLC1Pbtm319NNPKy8vz6VfaT+j31/KOHXqVMXFxalGjRpKTEzU119/7bKMki4dLPqZLFu2TJdddplCQkLUsmVLzZ49u9g6ffnll0pMTFRwcLAaNWqkxx57TK+99posy9L27dvt2XBwC85oodr55ZdfJMn5D/Y777xTc+fO1YgRI/SPf/xDhw8f1qRJk9SpUyd9//33ioqKcs6bnp6u22+/XQ8++KCeeuop+fn5KTs7W1deeaW2b9+uhx56SB07dlROTo5WrVql9PR0tWzZUoWFhbrhhhu0evVqPfjgg+rUqZN27Nih8ePH6+qrr9a6desUEhLi/Jy0tDSNHDlSEyZMUIMGDTR//nzdd999OnXqlMaMGaPLLrtMc+bM0ZAhQ/Too4+qd+/ekuTyjdmpU6fUt29f3XnnnXr44YeVn5+vkydPqlu3bvr11181ceJEtWvXTqtXr9aUKVOUlpamjz/+2GVbffzxx/r22281adIk1ahRQ08//bRuuukm/fTTT2rWrNk5/wyio6MVHx+vNWvWKD8/XwEBATp8+LAkafz48WrQoIFycnL07rvv6uqrr9Znn32mq6++Wg0bNtSyZct03XXXaejQoRo2bJjLz3Lv3r2KjIzU3//+d9WrV0+HDx/W66+/ro4dOyo1NVUXXXTROWcGgNJwXPH+cUU6faapa9eu2r17tx555BG1a9dOP/zwgx5//HFt3LhRn376qbPg+fXXXzVgwABnQfb999/rySef1I8//lis2CnpZ1TkpZdeUsuWLTVt2jRJ0mOPPaZevXpp27ZtioiIKDPv999/r/vvv18PP/ywoqKi9Nprr2no0KG68MILddVVV0mSNmzYoB49eqhFixZ6/fXXFRoaqpkzZ+rNN988r20FDzFAFTVnzhwjyXz99dcmLy/PZGdnm48++sjUq1fP1KxZ02RkZJi1a9caSebZZ591mXfXrl0mJCTEPPjgg862rl27Gknms88+c+k7adIkI8mkpKSUmmXBggVGknnn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AKBq85kzWnXr1pW/v3+xs1f79+8vdparSMOGDdWoUSNFREQ421q1aiVjjHbv3q3mzZsXm8fhcMjhcNgbHgAAAEC14jNntIKCghQfH6+UlBSX9pSUFHXq1KnEeTp37qy9e/cqJyfH2fbzzz/Lz89PjRs3dmteAAAAANWXzxRakjR69Gi99tprmj17tjZv3qxRo0Zp586dGj58uKTTl/0NGjTI2X/AgAGKjIzUkCFDtGnTJq1atUoPPPCA/vznPyskJMRbqwEAAACgivOZSwclqX///jp06JAmTZqk9PR0tWnTRkuXLlVsbKwkKT09XTt37nT2r1GjhlJSUnTvvfcqISFBkZGR6tevnyZPnuytVQAAAABQDfjUc7S8gWeVAIB3sP8tHdsGALyjSj5HCwAAAAB8BYUWAAAAANisQoXWiRMn9OWXX2rTpk3F3jt58qTmzZtnWzAAAAAA8FXlLrR+/vlntWrVSldddZXatm2rq6++Wunp6c73MzMzNWTIELeEBAAAAABfUu5C66GHHlLbtm21f/9+/fTTTwoPD1fnzp1dRvkDAKCya9q0qSZNmsTxCwDgVuUutNasWaOnnnpKdevW1YUXXqgPPvhAycnJ6tKli7Zu3erOjAAA2Ob+++/X+++/r2bNmqlHjx7617/+pdzcXG/HAgBUMeUutE6cOKGAANfHbr300kvq27evunbtqp9//tn2cAAA2O3ee+/V+vXrtX79erVu3VojRoxQw4YNdc899+i7777zdjwAQBVR7kKrZcuWWrduXbH2F154QTfccIP69u1razAAANypffv2eu6557Rnzx6NHz9er732mi6//HK1b99es2fPFo+ZBACcj3IXWjfddJMWLFhQ4nsvvvii/vSnP3FQAgD4jLy8PL399tvq27ev7r//fiUkJOi1115Tv379NG7cON12223ejggA8GGWoToqU0We/gwAsI+79r/fffed5syZowULFsjf318DBw7UsGHD1LJlS2efb7/9VldddZVOnDhh2+faiWMTAHhHRfa/AWW+CwBAFXP55ZerR48emjFjhm688UYFBgYW69O6dWvdeuutXkgHAKgqKvTAYgAAfN3WrVu1bNky/fGPfyyxyJKksLAwzZkzp9zLnD59uuLi4hQcHKz4+HitXr26zP65ubkaN26cYmNj5XA4dMEFF2j27NkVWg8AQOXGGS0AQLWyf/9+ZWRkqGPHji7t//nPf+Tv76+EhIQKLW/hwoUaOXKkpk+frs6dO+vll19WcnKyNm3apCZNmpQ4T79+/bRv3z7NmjVLF154ofbv36/8/PxzXicAQOXDGS0AQLVy9913a9euXcXa9+zZo7vvvrvCy5s6daqGDh2qYcOGqVWrVpo2bZpiYmI0Y8aMEvsvW7ZMK1eu1NKlS3XttdeqadOm6tChgzp16lThzwYAVF4UWgCAamXTpk267LLLirVfeuml2rRpU4WWderUKa1fv15JSUku7UlJSVqzZk2J83zwwQdKSEjQ008/rUaNGqlFixYaM2ZMmQNv5ObmKisry2UCAFRu51RovfHGG+rcubOio6O1Y8cOSdK0adP0/vvv2xoOAAC7ORwO7du3r1h7enq6AgIqdkX9wYMHVVBQoKioKJf2qKgoZWRklDjP1q1b9eWXX+q///2v3n33XU2bNk2LFy8u82zalClTFBER4ZxiYmIqlBMA4HkVLrRmzJih0aNHq1evXjp69KgKCgokSbVq1dK0adPszgcAgK169OihsWPHKjMz09l29OhRPfLII+rRo8c5LdOyLJfXxphibUUKCwtlWZbmz5+vDh06qFevXpo6darmzp1b6lmtorxFU0mXPgIAKpcKF1ovvPCCXn31VY0bN07+/v7O9oSEBG3cuNHWcAAA2O3ZZ5/Vrl27FBsbq27duqlbt26Ki4tTRkaGnn322Qotq27duvL39y929mr//v3FznIVadiwoRo1aqSIiAhnW6tWrWSM0e7du0ucx+FwKDw83GUCAFRuFS60tm3bpksvvbRYu8Ph0LFjx2wJBQCAuzRq1EgbNmzQ008/rdatWys+Pl7PPfecNm7cWOFL8oKCghQfH6+UlBSX9pSUlFIHt+jcubP27t2rnJwcZ9vPP/8sPz8/NW7cuOIrBAColCo8vHtcXJzS0tIUGxvr0v7JJ5+odevWtgUDAMBdwsLC9Ne//tWWZY0ePVoDBw5UQkKCEhMT9corr2jnzp0aPny4pNOX/e3Zs0fz5s2TJA0YMEBPPPGEhgwZookTJ+rgwYN64IEH9Oc//1khISG2ZAIAeF+FC60HHnhAd999t06ePCljjL755hstWLBAU6ZM0WuvveaOjAAA2G7Tpk3auXOnTp065dLet2/fCi2nf//+OnTokCZNmqT09HS1adNGS5cudX4hmZ6erp07dzr716hRQykpKbr33nuVkJCgyMhI9evXT5MnTz7/lQIAVBqWMcZUdKZXX31VkydPdt6M26hRI02YMEFDhw61PaC3ZWVlKSIiQpmZmVwTDwAe5K7979atW3XTTTdp48aNsixLRYfBosErigZ5qsw4NgGAd1Rk/1uhe7Ty8/P1+uuvq0+fPtqxY4f279+vjIwM7dq1q0oWWQCAque+++5TXFyc9u3bp9DQUP3www9atWqVEhIS9MUXX3g7HgCgiqhQoRUQEKC//e1vys3NlXR6tKX69eu7JRgAAO6wdu1aTZo0SfXq1ZOfn5/8/Px05ZVXasqUKRoxYoS34wEAqogKjzrYsWNHpaamuiMLAABuV1BQoBo1akg6/YXh3r17JUmxsbH66aefvBkNAFCFVHgwjLvuukv333+/du/erfj4eIWFhbm8365dO9vCAQBgtzZt2mjDhg1q1qyZOnbsqKefflpBQUF65ZVX1KxZM2/HAwBUERUutPr37y9JLpdXFN1MbFmWT9xEDACovh599FHncx8nT56s66+/Xl26dFFkZKQWLlzo5XQAgKqiwoXWtm3b3JEDAACP6Nmzp/PPzZo106ZNm3T48GHVrl3bOfIgAADnq8KF1pkPKgYAwFfk5+crODhYaWlpatOmjbO9Tp06XkwFAKiKKlxoFT3ZvjSDBg065zAAALhTQECAYmNjucwdAOB2FS607rvvPpfXeXl5On78uIKCghQaGkqhBQCo1B599FGNHTtWb775JmeyAABuU+FC68iRI8XatmzZor/97W964IEHbAkFAIC7PP/88/rll18UHR2t2NjYYqPnfvfdd15KBgCoSipcaJWkefPm+vvf/67bb79dP/74ox2LBADALW688UZvRwAAVAO2FFqS5O/v73zoIwAAldX48eO9HQEAUA1UuND64IMPXF4bY5Senq4XX3xRnTt3ti0YAAAAAPiqChdaZ15yYVmW6tWrp+7du+vZZ5+1KxcAAG7h5+dX5vOyGJEQAGCHChdahYWF7sgBAIBHvPvuuy6v8/LylJqaqtdff10TJ070UioAQFVT4UJr0qRJGjNmjEJDQ13aT5w4oX/+8596/PHHbQsHAIDdbrjhhmJtt9xyiy6++GItXLhQQ4cO9UIqAEBV41fRGSZOnKicnJxi7cePH+ebQACAz+rYsaM+/fRTb8cAAFQRFS60jDElXtv+/fff8+BHAIBPOnHihF544QU1btzY21EAAFVEuS8drF27tizLkmVZatGihUuxVVBQoJycHA0fPtwtIQEAsEvR8ayIMUbZ2dkKDQ3Vm2++6cVkAICqpNyF1rRp02SM0Z///GdNnDhRERERzveCgoLUtGlTJSYmuiUkAAB2+b//+z+XQsvPz0/16tVTx44dVbt2bS8mAwBUJeUutAYPHixJiouLU6dOnRQYGOi2UAAAuMsdd9zh7QgAgGqgwvdode3a1VlknThxQllZWS6Tu02fPl1xcXEKDg5WfHy8Vq9eXa75vvrqKwUEBOiSSy5xb0AAQKU2Z84cLVq0qFj7okWL9Prrr3shEQCgKqpwoXX8+HHdc889ql+/vmrUqKHatWu7TO60cOFCjRw5UuPGjVNqaqq6dOmi5ORk7dy5s8z5MjMzNWjQIF1zzTVuzQcAqPz+/ve/q27dusXa69evr6eeesoLiQAAVVGFC60HHnhAK1as0PTp0+VwOPTaa69p4sSJio6O1rx589yR0Wnq1KkaOnSohg0bplatWmnatGmKiYnRjBkzypzvzjvv1IABA7iHDACgHTt2KC4urlh7bGzsWb+4AwCgvCpcaH344YeaPn26brnlFgUEBKhLly569NFH9dRTT2n+/PnuyChJOnXqlNavX6+kpCSX9qSkJK1Zs6bU+ebMmaNff/1V48ePL9fn5ObmevxySACA59SvX18bNmwo1v79998rMjLSC4kAAFVRhQutw4cPO78JDA8P1+HDhyVJV155pVatWmVvut85ePCgCgoKFBUV5dIeFRWljIyMEufZsmWLHn74Yc2fP18BAeUb92PKlCmKiIhwTjExMeedHQBQedx6660aMWKEPv/8cxUUFKigoEArVqzQfffdp1tvvdXb8QAAVUSFC61mzZpp+/btkqTWrVvr7bfflnT6TFetWrXszFaiMx+WXNoDlAsKCjRgwABNnDhRLVq0KPfyx44dq8zMTOe0a9eu884MAKg8Jk+erI4dO+qaa65RSEiIQkJClJSUpO7du3OPFgDANuUe3r3IkCFD9P3336tr164aO3asevfurRdeeEH5+fmaOnWqOzJKkurWrSt/f/9iZ6/2799f7CyXJGVnZ2vdunVKTU3VPffcI0kqLCyUMUYBAQFavny5unfvXmw+h8Mhh8PhnpUAAHhdUFCQFi5cqMmTJystLU0hISFq27atYmNjvR0NAFCFVLjQGjVqlPPP3bp1048//qh169bpggsuUPv27W0N93tBQUGKj49XSkqKbrrpJmd7SkqKbrjhhmL9w8PDtXHjRpe26dOna8WKFVq8eHGJN0IDAKqP5s2bq3nz5t6OAQCooipcaP3eyZMn1aRJEzVp0sSuPGUaPXq0Bg4cqISEBCUmJuqVV17Rzp07NXz4cEmnL/vbs2eP5s2bJz8/P7Vp08Zl/vr16ys4OLhYOwCg+rjllluUkJCghx9+2KX9n//8p7755psSn7EFAEBFVfgerYKCAj3xxBNq1KiRatSooa1bt0qSHnvsMc2aNcv2gL/Xv39/TZs2TZMmTdIll1yiVatWaenSpc7LPdLT0xmaFwBQppUrV6p3797F2q+77jq3DuoEAKheKlxoPfnkk5o7d66efvppBQUFOdvbtm2r1157zdZwJbnrrru0fft25ebmav369brqqquc782dO1dffPFFqfNOmDBBaWlpbs8IAKi8cnJyXI5fRQIDA3mkBwDANhUutObNm6dXXnlFt912m/z9/Z3t7dq1048//mhrOAAA7NamTRstXLiwWPu//vUvtW7d2guJAABVUYXv0dqzZ48uvPDCYu2FhYXKy8uzJRQAAO7y2GOP6eabb9avv/7qHH32s88+01tvvaXFixd7OR0AoKqocKF18cUXa/Xq1cWGwV20aJEuvfRS24IBAOAOffv21XvvvaennnpKixcvVkhIiNq3b68VK1YoPDzc2/EAAFVEhQut8ePHa+DAgdqzZ48KCwu1ZMkS/fTTT5o3b54++ugjd2QEAMBWvXv3dg6IcfToUc2fP18jR47U999/r4KCAi+nAwBUBRW+R6tPnz5auHChli5dKsuy9Pjjj2vz5s368MMP1aNHD3dkBADAditWrNDtt9+u6Ohovfjii+rVq5fWrVvn7VgAgCqi3Ge0tm7dqri4OFmWpZ49e6pnz57uzAUAgO12796tuXPnavbs2Tp27Jj69eunvLw8vfPOOwyEAQCwVbnPaDVv3lwHDhxwvu7fv7/27dvnllAAANitV69eat26tTZt2qQXXnhBe/fu1QsvvODtWACAKqrchZYxxuX10qVLdezYMdsDAQDgDsuXL9ewYcM0ceJE9e7d2+URJQAA2K3C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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data, labels = generate_perceptron_data(problem='or')\n", "acc = fit_perceptron(data, labels)\n", "plot_accuracy(acc, data, labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate outputs using *and* operator." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA04AAAHUCAYAAAANwniNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABsoElEQVR4nO3dd3hUVf7H8c9k0gMJNSGhhKBUKUKiGBApSjAgqKsLrgqI4Jq1IMYGolJkwbLwQ6VZKLIiiyjWjUhsFMVVMCgCKgoShIRQNIWSMnN+f8SMDJk0SGZS3q/nmUfnzLkznzuEe/nmnnuOxRhjBAAAAAAokZenAwAAAABAdUfhBAAAAABloHACAAAAgDJQOAEAAABAGSicAAAAAKAMFE4AAAAAUAYKJwAAAAAoA4UTAAAAAJSBwgkAAAAAykDhhBpj2bJlslgsjoe3t7datGihMWPG6MCBA56Od84OHjyoqVOnatu2bZ6OUswvv/zi9N37+PiocePGuuiii3Tvvfdqx44dZ/3eJ06c0NSpU/Xpp59WXmAAKAfOK55TdF7517/+5ekoFTZ16lRZLBZPx4AHUDihxlm6dKk2b96s5ORk3XbbbVq5cqX69Omj48ePezraOTl48KCmTZtWLU9wRe6++25t3rxZ69ev17///W9dc801euedd9StWzc9/fTTZ/WeJ06c0LRp0yicAHgM5xVUxLhx47R582ZPx4AHeHs6AFBRnTt3VkxMjCSpf//+stlsevzxx/XWW2/ppptuOqf3PnHihAIDAysjZpXzRNZWrVrpkksucTwfPHiwEhMT9Ze//EUPPvigOnfurPj4eLdmAoBzxXmlUE3KWpkqut8tWrRQixYtqjARqiuuOKHGK/qH/L59+yRJxhgtWLBAF154oQICAtSwYUNdf/312rNnj9N2/fr1U+fOnbVhwwb16tVLgYGBuvXWWyVJv//+u+677z61adNGfn5+Cg0N1eDBg/X99987ts/Ly9OMGTPUoUMH+fn5qWnTphozZowOHz7s9DmtW7fWVVddpTfffFNdu3aVv7+/2rRpo2effdbR59NPP9VFF10kSRozZoxj2MjUqVMlSbfccovq1aun7du3Ky4uTvXr19fll18uSTp27JjuuOMONW/eXL6+vmrTpo0mT56s3NxcpxwWi0V33XWX/v3vf6tjx44KDAxUt27d9N57753T9x8QEKDFixfLx8fH6arT4cOHdccdd6hTp06qV6+eQkNDNWDAAG3cuNHR55dfflHTpk0lSdOmTXPs9y233CJJ+umnnzRmzBi1bdtWgYGBat68uYYOHart27efU2YAKA3nFc+eV06XlZWl+++/X1FRUfL19VXz5s01YcKEYlcD58+fr8suu0yhoaEKCgpSly5d9NRTTyk/P9+pX0l/RqcPHZwzZ46ioqJUr149xcbG6osvvnB6D1dD9Yr+TNauXasePXooICBAHTp00JIlS4rt06ZNmxQbGyt/f381b95cjz76qF566SVZLBb98ssvlfPFoUpwxQk13k8//SRJjn+A33777Vq2bJnGjx+vJ598UseOHdP06dPVq1cvffPNNwoLC3Nsm5aWpptvvlkPPvigZs6cKS8vL2VnZ+vSSy/VL7/8ooceekg9e/ZUTk6ONmzYoLS0NHXo0EF2u11XX321Nm7cqAcffFC9evXSvn37NGXKFPXr109btmxRQECA43O2bdumCRMmaOrUqWrWrJlWrFihe+65R3l5ebr//vvVo0cPLV26VGPGjNEjjzyiIUOGSJLTb7Ty8vI0bNgw3X777Zo4caIKCgp06tQp9e/fXz///LOmTZumrl27auPGjZo1a5a2bdum//73v07f1X//+1999dVXmj59uurVq6ennnpK1157rX744Qe1adPmrP8MIiIiFB0drc8//1wFBQXy9vbWsWPHJElTpkxRs2bNlJOTozfffFP9+vXTRx99pH79+ik8PFxr167VlVdeqbFjx2rcuHFOf5YHDx5U48aN9cQTT6hp06Y6duyYXn75ZfXs2VMpKSlq3779WWcGgJJwXvH8eUUqvBLUt29f/frrr3r44YfVtWtX7dixQ4899pi2b9+uDz/80FHA/Pzzz7rxxhsdBdY333yjf/7zn/r++++LFS+u/oyKzJ8/Xx06dNDcuXMlSY8++qgGDx6svXv3KiQkpNS833zzje677z5NnDhRYWFheumllzR27Fidf/75uuyyyyRJ3377rQYOHKh27drp5ZdfVmBgoBYtWqRXXnnlnL4ruIkBaoilS5caSeaLL74w+fn5Jjs727z33numadOmpn79+iY9Pd1s3rzZSDKzZ8922nb//v0mICDAPPjgg462vn37Gknmo48+cuo7ffp0I8kkJyeXmGXlypVGknnjjTec2r/66isjySxYsMDRFhkZaSwWi9m2bZtT34EDB5rg4GBz/Phxp22XLl1a7PNGjx5tJJklS5Y4tS9atMhIMq+99ppT+5NPPmkkmXXr1jnaJJmwsDCTlZXlaEtPTzdeXl5m1qxZJe6rMcbs3bvXSDJPP/10iX1GjBhhJJlDhw65fL2goMDk5+ebyy+/3Fx77bWO9sOHDxtJZsqUKaVmKHqPvLw807ZtW3PvvfeW2R8ASsN5pXqfV2bNmmW8vLzMV1995dT++uuvG0kmKSnJ5XY2m83k5+eb5cuXG6vVao4dO+Z4raQ/o6I8Xbp0MQUFBY72L7/80kgyK1eudLRNmTLFnPlP6MjISOPv72/27dvnaDt58qRp1KiRuf322x1tf/3rX01QUJA5fPiwU95OnToZSWbv3r0lfh/wPIbqoca55JJL5OPjo/r16+uqq65Ss2bN9P777yssLEzvvfeeLBaLbr75ZhUUFDgezZo1U7du3YpNQNCwYUMNGDDAqe39999Xu3btdMUVV5SY4b333lODBg00dOhQp8+58MIL1axZs2Kfc8EFF6hbt25ObTfeeKOysrL09ddfl3vfr7vuOqfnH3/8sYKCgnT99dc7tRcNdfvoo4+c2vv376/69es7noeFhSk0NNQxHOVcGGOKtS1atEg9evSQv7+/vL295ePjo48++ki7du0q13sWFBRo5syZ6tSpk3x9feXt7S1fX1/t3r273O8BAGXhvPKn6nReee+999S5c2ddeOGFTt/JoEGDZLFYnL6TlJQUDRs2TI0bN5bVapWPj49GjRolm82mH3/80el9Xf0ZFRkyZIisVqvjedeuXSWpXPtz4YUXqlWrVo7n/v7+ateundO269ev14ABA9SkSRNHm5eXl4YPH17m+8PzGKqHGmf58uXq2LGjvL29FRYWpvDwcMdrhw4dkjHGadjE6c4cNnD6tkUOHz7sdOBz5dChQ/r999/l6+vr8vUjR444PW/WrFmxPkVtR48eLfWzigQGBio4ONip7ejRo2rWrFmxsdahoaHy9vYu9t6NGzcu9r5+fn46efJkuTKUZt++ffLz81OjRo0kSXPmzNF9992nhIQEPf7442rSpImsVqseffTRchc9iYmJmj9/vh566CH17dtXDRs2lJeXl8aNG1cpmQFA4rxyuup0Xjl06JB++ukn+fj4uHy96DtJTU1Vnz591L59ez3zzDNq3bq1/P399eWXX+rOO+8slsXVn1GRM/fHz89Pksq1P+X5Lo4ePeryZ6mkny9ULxROqHE6duzomP3oTE2aNJHFYtHGjRsdB7vTndnmah2Gpk2b6tdffy01Q5MmTdS4cWOtXbvW5eun//ZNktLT04v1KWpzdaB1xVXWxo0b63//+5+MMU6vZ2RkqKCgwOk3WlXpwIED2rp1q/r27Stv78LDyiuvvKJ+/fpp4cKFTn2zs7PL/b6vvPKKRo0apZkzZzq1HzlyRA0aNDjn3AAgcV45XXU5r0iF30lAQIDLCRaKXpekt956S8ePH9eaNWsUGRnpeL2kadg9uQZT48aNdejQoWLtrv48Uf0wVA+1ylVXXSVjjA4cOKCYmJhijy5dupT5HvHx8frxxx/18ccfl/o5R48elc1mc/k5Z05asGPHDn3zzTdOba+++qrq16+vHj16SKrYb7WKXH755crJydFbb73l1L58+XLH61Xt5MmTGjdunAoKCvTggw862i0WS7F/UHz77bfF1r4obb9dvcd///vfWrEwJYCagfNKIXeeV4pcddVV+vnnn9W4cWOX30nr1q0l/VkInX6+MMboxRdfdFvW8urbt68+/vhjpyuIdrtdq1ev9mAqlBdXnFCr9O7dW3//+981ZswYbdmyRZdddpmCgoKUlpamTZs2qUuXLvrHP/5R6ntMmDBBq1at0tVXX62JEyfq4osv1smTJ7V+/XpdddVV6t+/v2644QatWLFCgwcP1j333KOLL75YPj4++vXXX/XJJ5/o6quv1rXXXut4z4iICA0bNkxTp05VeHi4XnnlFSUnJ+vJJ590rB1x3nnnKSAgQCtWrFDHjh1Vr149RUREKCIiosSso0aN0vz58zV69Gj98ssv6tKlizZt2qSZM2dq8ODBpY6nPxupqan64osvZLfblZmZqZSUFC1ZskT79u3T7NmzFRcX5+h71VVX6fHHH9eUKVPUt29f/fDDD5o+fbqioqJUUFDg6Fe/fn1FRkbq7bff1uWXX65GjRqpSZMmjqldly1bpg4dOqhr167aunWrnn76adbPAOA2nFeq9ryyfft2vf7668XaL7roIk2YMEFvvPGGLrvsMt17773q2rWr7Ha7UlNTtW7dOt13333q2bOnBg4cKF9fX/3tb3/Tgw8+qFOnTmnhwoX67bff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JapBgwaVmQ0AgHKZMWOGevbsqcsvv1wBAQEKCAhQXFycBgwYwD1O5eSYVS+YwgkAXKnwrHpjxozRN998o759+2rSpEkaMmSInnvuORUUFGjOnDlVkREAgFL5+vpq1apVmjFjhrZt26aAgAB16dJFkZGRno5WI5zMsynrVIEkqWk97nECAFcqXDjde++9jv/v37+/vv/+e23ZskXnnXeeunXrVqnhAACoiLZt26pt27aejlHjfJ+eJUlqUs9PIYGs0wgArlR4qN7pTp06pVatWukvf/kLRRMAwGOuv/56PfHEE8Xan3766WJrO6G47w4WFk4XRLAWIwCUpMKFk81m0+OPP67mzZurXr162rNnjyTp0Ucf1eLFiys9IAAAZVm/fr2GDBlSrP3KK69k4qJy2HkwUxKFEwCUpsKF0z//+U8tW7ZMTz31lHx9fR3tXbp00UsvvVSp4QAAKI+cnBync1IRHx8fZWVleSBRzbLjjytOnZuHeDgJAFRfFS6cli9frhdeeEE33XSTrFaro71r1676/vvvKzUcAADl0blzZ61atapY+3/+8x916tTJA4lqjnybXd+nZUviihMAlKbCk0McOHBA559/frF2u92u/Pz8SgkFAEBFPProo7ruuuv0888/a8CAAZKkjz76SK+++qpef/11D6er3n7KyFGeza76ft5q2TDQ03EAoNqqcOF0wQUXaOPGjcWmeF29erW6d+9eacEAACivYcOG6a233tLMmTP1+uuvKyAgQN26ddPHH3+s4GCuopSmaJhep4hgeXlZPJwGAKqvChdOU6ZM0ciRI3XgwAHZ7XatWbNGP/zwg5YvX6733nuvKjICAFCmIUOGOCaI+P3337VixQpNmDBB33zzjWw2m4fTVV/fHSiaGIL7mwCgNBW+x2no0KFatWqVkpKSZLFY9Nhjj2nXrl169913NXDgwKrICABAuXz88ce6+eabFRERoXnz5mnw4MHasmWLp2NVazuZihwAyqXcV5z27NmjqKgoWSwWDRo0SIMGDarKXAAAlMuvv/6qZcuWacmSJTp+/LiGDx+u/Px8vfHGG0wMUQa73WhnGjPqAUB5lPuKU9u2bXX48GHH8xEjRujQoUNVEgoAgPIYPHiwOnXqpJ07d+q5557TwYMH9dxzz3k6Vo2x79gJ5eQWyM/bS+c1DfJ0HACo1spdOBljnJ4n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ZR2vjDGaOnWqIiIiFBAQoH79+mnHjh2eCVtDlPWd3nLLLcV+Zi+55BLPhK0DKJxcuPHGG7Vt2zatXbtWa9eu1bZt2zRy5MgS+584cUJff/21Hn30UX399ddas2aNfvzxRw0bNsxtmVetWqUJEyZo8uTJSklJUZ8+fRQfH+80Ze7p9u7dq8GDB6tPnz5KSUnRww8/rPHjx+uNN95wW+YzVXQfNmzYoIEDByopKUlbt25V//79NXToUKWkpLg5ubOK7keRzMxMjRo1SpdffrmbkpbsbPZh+PDh+uijj7R48WL98MMPWrlypTp06ODG1MVVdD82bdqkUaNGaezYsdqxY4dWr16tr776SuPGjXNz8j8dP35c3bp107x588rVvzr+3UbVOttjDly74IILlJaW5nhs377d05FqjLKOV0899ZTmzJmjefPm6auvvlKzZs00cOBAZWdnuzlpzVGec8CVV17p9DOblJTkxoR1jIGTnTt3Gknmiy++cLRt3rzZSDLff/99ud/nyy+/NJLMvn37qiJmMRdffLFJSEhwauvQoYOZOHGiy/4PPvig6dChg1Pb7bffbi655JIqy1iWiu6DK506dTLTpk2r7GgVcrb7MWLECPPII4+YKVOmmG7dulVhwrJVdB/ef/99ExISYo4ePeqOeOVW0f14+umnTZs2bZzann32WdOiRYsqy1gRksybb75Zap/q+HcbVasyjp0oVB2Ov7XFmccru91umjVrZp544glH26lTp0xISIhZtGiRBxLWPK7OAaNHjzZXX321R/LURVxxOsPmzZsVEhKinj17OtouueQShYSE6PPPPy/3+2RmZspisahBgwZVkNJZXl6etm7dqri4OKf2uLi4EjNv3ry5WP9BgwZpy5Ytys/Pr7KsJTmbfTiT3W5Xdna2GjVqVBURy+Vs92Pp0qX6+eefNWXKlKqOWKaz2Yd33nlHMTExeuqpp9S8eXO1a9dO999/v06ePOmOyC6dzX706tVLv/76q5KSkmSM0aFDh/T6669ryJAh7ohcKarb321Urco4dsLZ7t27FRERoaioKN1www3as2ePpyPVCnv37lV6errTz6qfn5/69u3Lz+o5+vTTTxUaGqp27drptttuU0ZGhqcj1VoUTmdIT09XaGhosfbQ0FClp6eX6z1OnTqliRMn6sYbb1RwcHBlRyzmyJEjstls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tqZNm3ooTcny8/Pl4+NT4e2OHz+ubt26acyYMbruuuuqIBkAwJNcncf8/Pw8lAao/rjiBJwlPz8/NWvWzOlhtVolSe+++66io6Pl7++vNm3aaNq0aSooKHBsO2fOHHXp0kVBQUFq2bKl7rjjDuXk5EiSPv30U40ZM0aZmZmO3wBOnTpVkuthDQ0aNNCyZcskSb/88ossFotee+019evXT/7+/nrllVckSUuXLlXHjh3l7++vDh06aMGCBaXuX3x8vGbMmKG//OUvlfBtAQCqG1fnsYYNG0oqPN8sXLhQ8fHxCggIUFRUlFavXu20/fbt2zVgwAAFBASocePG+vvf/+44lxVZsmSJLrjgAvn5+Sk8PFx33XWX0+tHjhzRtddeq8DAQLVt21bvvPNO1e40cA4onIBK9sEHH+jmm2/W+PHjtXPnTj3//PNatmyZ/vnPfzr6eHl56dlnn9V3332nl19+WR9//LEefPBBSVKvXr00d+5cBQcHKy0tTWlpabr//vsrlOGhhx7S+PHjtWvXLg0aNEgvvviiJk+erH/+85/atWuXZs6cqUcffVQvv/xype47AKD2ePTRR3Xdddfpm2++0c0336y//e1v2rVrlyTpxIkTuvLKK9WwYUN99dVXWr16tT788EOnwmjhwoW688479fe//13bt2/XO++8o/PPP9/pM6ZNm6bhw4fr22+/1eDBg3XTTTfp2LFjbt1PoNwMgAobPXq0sVqtJigoyPG4/vrrjTHG9OnTx8ycOdOp/7///W8THh5e4vu99tprpnHjxo7nS5cuNSEhIcX6STJvvvmmU1tISIhZunSpMcaYvXv3Gklm7ty5Tn1atmxpXn31Vae2xx9/3MTGxpa1qyV+LgCg5nJ1HgsKCjLTp083xhQe9xMSEpy26dmzp/nHP/5hjDHmhRdeMA0bNjQ5OTmO1//73/8aLy8vk56ebowxJiIiwkyePLnEDJLMI4884niek5NjLBaLef/99yttP4HKxD1OwFnq37+/Fi5c6HgeFBQkSdq6dau++uorpytMNptNp06d0okTJxQYGKhPPvlEM2fO1M6dO5WVlaWCggKdOnVKx48fd7zPuYiJiXH8/+HDh7V//36NHTtWt912m6O9oKBAISEh5/xZAICa6czzmCQ1atTI8f+xsbFOr8XGxmrbtm2SpF27dqlbt25O56zevXvLbrfrhx9+kMVi0cGDB3X55ZeXmqFr166O/w8KClL9+vWVkZFxtrsEVCkKJ+AsBQUFFRtyIEl2u13Tpk1zeW+Qv7+/9u3bp8GDByshIUGPP/64GjVqpE2bNmns2LHKz88v9TMtFouMMU5trrY5/URmt9slSS+++KJ69uzp1K/oniwAQN1T0nmsNBaLRZJkjHH8v6s+AQEB5Xq/MycvslgsjvMWUN1QOAGVrEePHvrhhx9KPBlt2bJFBQUFmj17try8Cm8zfO2115z6+Pr6ymazFdu2adOmSktLczzfvXu3Tpw4UWqesLAwNW/eXHv27NFNN91U0d0BANRRX3zxhUaNGuX0vHv37pKkTp066eWXX3YaKfHZZ5/Jy8tL7dq1U/369dW6dWt99NFH6t+/v0fyA5WNwgmoZI899piuuuoqtWzZUn/961/l5eWlb7/9Vtu3b9eMGTN03nnnqaCgQM8995yGDh2qzz77TIsWLXJ6j9atWysnJ0cfffSRunXrpsDAQAUGBmrAgAGaN2+eLrnkEtntdj300EPlmmp86tSpGj9+vIKDgxUfH6/c3Fxt2bJFv/32mxITE11uk5OT47Qu1d69e7Vt2zY1atRIrVq1OrcvCQDgcbm5uUpPT3dq8/b2VpMmTSRJq1evVkxMjC699FKtWLFCX375pRYvXixJuummmzRlyhSNHj1aU6dO1eHDh3X33Xdr5MiRCgsLk1R47klISFBoaKji4+OVnZ2tzz77THfffbd7dxSoLJ6+yQqoiUaPHm2uvvrqEl9fu3at6dWrlwkICDDBwcHm4osvNi+88ILj9Tlz5pjw8HATEBBgBg0aZJYvX24kmd9++83RJyEhwTRu3NhIMlOmTDHGGHPgwAETFxdngoKCTNu2bU1SUpLLySFSUlKKZVqxYoW58MILja+vr2nYsKG57LLLzJo1a0rch08++cRIKvYYPXp0Bb4pAEB1NHr0aJfH+Pbt2xtjCidumD9/vhk4cKDx8/MzkZGRZuXKlU7v8e2335r+/fsbf39/06hRI3PbbbeZ7Oxspz6LFi0y7du3Nz4+PiY8PNzcfffdjtdUxoRHQHVjMeaMGyYAAABQp1ksFr355pu65pprPB0FqDZYxwkAAAAAykDhBAAAAABlYHIIAAAAOOFODqA4rjgBAAAAQBkonAAAAACgDBROAAAAAFAGCicAAAAAKAOFEwAAAACUgcIJAAAAAMpA4QQAAAAAZaBwAgAAAIAy/D9cfYMHVWLaPQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data, labels = generate_perceptron_data(problem='and')\n", "acc = fit_perceptron(data, labels)\n", "plot_accuracy(acc, data, labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generate outputs using *xor* (exclusive or) operator. This is a nonlinear function of the input, which is not solvable using a single-layer perceptron." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1oAAAHUCAYAAAAjh1kfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAACCI0lEQVR4nO3dd3yT1f4H8M+TpE13SveglCKbMlu2bCkC4ha8DsYFrxUVGS5EZcilXr3w4ypLZTmQyxC8qBWtIktAaWkBoTKkUCgtpYzuleT8/igJhA6a9slqP+/XKy/Ik/M8+SZN8uSbc873SEIIASIiIiIiIpKNwtYBEBERERERNTRMtIiIiIiIiGTGRIuIiIiIiEhmTLSIiIiIiIhkxkSLiIiIiIhIZky0iIiIiIiIZMZEi4iIiIiISGZMtIiIiIiIiGTGRIuIiIiIiEhmTLSowVq7di0kSTJeVCoVmjZtigkTJiAjI8PW4dXbxYsXMWfOHKSkpNg6lErOnj1r8tw7OTnB19cX3bt3x7Rp03Ds2LE6H7uoqAhz5szBzp075QuYiKgWeF6xHcN55d///retQzHbnDlzIEmSrcMgG2CiRQ3emjVrsH//fiQkJOCZZ57B+vXr0a9fPxQWFto6tHq5ePEi5s6da5cnRIMXX3wR+/fvx65du/D555/jwQcfxLZt29C5c2e8//77dTpmUVER5s6dy0SLiGyG5xUyx6RJk7B//35bh0E2oLJ1AESWFhkZiejoaADAoEGDoNPp8M477+Drr7/Gk08+Wa9jFxUVwc3NTY4wLc4WsTZr1gy9evUyXh8xYgSmT5+Ohx9+GK+++ioiIyMxfPhwq8ZERFRfPK9UcKRY5WTu427atCmaNm1qwYjIXrFHixodwxf/c+fOAQCEEFi2bBm6dOkCV1dXNGnSBI8++ijOnDljst/AgQMRGRmJ3bt3o0+fPnBzc8Pf//53AMD169cxY8YMtGjRAmq1GgEBARgxYgT+/PNP4/5lZWWYP38+2rZtC7VaDX9/f0yYMAGXL182uZ/mzZvjvvvuw9atW9GpUye4uLigRYsW+OCDD4xtdu7cie7duwMAJkyYYBzGMmfOHADA+PHj4eHhgaNHjyImJgaenp4YMmQIAODq1auYPHkyQkND4ezsjBYtWmDWrFkoLS01iUOSJLzwwgv4/PPP0a5dO7i5uaFz58749ttv6/X8u7q6YtWqVXBycjLp1bp8+TImT56M9u3bw8PDAwEBARg8eDD27NljbHP27Fn4+/sDAObOnWt83OPHjwcAnD59GhMmTECrVq3g5uaG0NBQjBo1CkePHq1XzERENeF5xbbnlVvl5eXh5ZdfRkREBJydnREaGoqpU6dW6m1cunQp+vfvj4CAALi7u6Njx4547733UF5ebtKuur/RrUMZFy1ahIiICHh4eKB37944cOCAyTGqGjpo+Jts374d3bp1g6urK9q2bYvVq1dXekx79+5F79694eLigtDQULz11ltYuXIlJEnC2bNn5XniyCLYo0WNzunTpwHA+IX92Wefxdq1azFlyhT861//wtWrVzFv3jz06dMHhw8fRmBgoHHfzMxMPPXUU3j11VexYMECKBQK5Ofn4+6778bZs2fx2muvoWfPnigoKMDu3buRmZmJtm3bQq/X44EHHsCePXvw6quvok+fPjh37hxmz56NgQMHIjExEa6ursb7SUlJwdSpUzFnzhwEBQVh3bp1eOmll1BWVoaXX34Z3bp1w5o1azBhwgS8+eabGDlyJACY/GJWVlaG+++/H88++yxef/11aLValJSUYNCgQfjrr78wd+5cdOrUCXv27EFcXBxSUlLw3XffmTxX3333HQ4ePIh58+bBw8MD7733Hh566CGcOHECLVq0qPPfICQkBFFRUdi3bx+0Wi1UKhWuXr0KAJg9ezaCgoJQUFCArVu3YuDAgfj5558xcOBABAcHY/v27bj33nsxceJETJo0yeRvefHiRfj6+uLdd9+Fv78/rl69ik8//RQ9e/ZEcnIy2rRpU+eYiYiqw/OK7c8rQEVP04ABA3DhwgW88cYb6NSpE44dO4a3334bR48exU8//WRMeP766y888cQTxoTs8OHD+Oc//4k///yzUrJT1d/IYOnSpWjbti0WL14MAHjrrbcwYsQIpKWlQaPR1Bjv4cOHMWPGDLz++usIDAzEypUrMXHiRLRs2RL9+/cHABw5cgRDhw5F69at8emnn8LNzQ0rVqzAF198Ua/niqxEEDVQa9asEQDEgQMHRHl5ucjPzxfffvut8Pf3F56eniIrK0vs379fABALFy402ff8+fPC1dVVvPrqq8ZtAwYMEADEzz//bNJ23rx5AoBISEioNpb169cLAOKrr74y2X7w4EEBQCxbtsy4LTw8XEiSJFJSUkzaDh06VHh5eYnCwkKTfdesWVPp/saNGycAiNWrV5tsX7FihQAgNm7caLL9X//6lwAgfvzxR+M2ACIwMFDk5eUZt2VlZQmFQiHi4uKqfaxCCJGWliYAiPfff7/aNmPGjBEAxKVLl6q8XavVivLycjFkyBDx0EMPGbdfvnxZABCzZ8+uMQbDMcrKykSrVq3EtGnT7tieiKgmPK/Y93klLi5OKBQKcfDgQZPtmzdvFgBEfHx8lfvpdDpRXl4uPvvsM6FUKsXVq1eNt1X3NzLE07FjR6HVao3bf//9dwFArF+/3rht9uzZ4vav3OHh4cLFxUWcO3fOuK24uFj4+PiIZ5991rjtscceE+7u7uLy5csm8bZv314AEGlpadU+H2R7HDpIDV6vXr3g5OQET09P3HfffQgKCsL333+PwMBAfPvtt5AkCU899RS0Wq3xEhQUhM6dO1cquNCkSRMMHjzYZNv333+P1q1b45577qk2hm+//Rbe3t4YNWqUyf106dIFQUFBle6nQ4cO6Ny5s8m2J554Anl5eTh06FCtH/sjjzxicn3Hjh1wd3fHo48+arLdMPTu559/Ntk+aNAgeHp6Gq8HBgYiICDAODymPoQQlbatWLEC3bp1g4uLC1QqFZycnPDzzz8jNTW1VsfUarVYsGAB2rdvD2dnZ6hUKjg7O+PUqVO1PgYR0Z3wvHKTPZ1Xvv32W0RGRqJLly4mz8mwYcMgSZLJc5KcnIz7778fvr6+UCqVcHJywtixY6HT6XDy5EmT41b1NzIYOXIklEql8XqnTp0AoFaPp0uXLmjWrJnxuouLC1q3bm2y765duzB48GD4+fkZtykUCowePfqOxyfb49BBavA+++wztGvXDiqVCoGBgQgODjbedunSJQghTIZx3Or2YQy37mtw+fJlkw/Kqly6dAnXr1+Hs7Nzlbfn5OSYXA8KCqrUxrDtypUrNd6XgZubG7y8vEy2XblyBUFBQZXGigcEBEClUlU6tq+vb6XjqtVqFBcX1yqGmpw7dw5qtRo+Pj4AgEWLFmHGjBmIjY3FO++8Az8/PyiVSrz11lu1TpKmT5+OpUuX4rXXXsOAAQPQpEkTKBQKTJo0SZaYiYgAnlduZU/nlUuXLuH06dNwcnKq8nbDc5Keno5+/fqhTZs2+M9//oPmzZvDxcUFv//+O55//vlKsVT1NzK4/fGo1WoAqNXjqc1zceXKlSpfS9W9vsi+MNGiBq9du3bG6lC38/PzgyRJ2LNnj/HD8Va3b6tqHQx/f39cuHChxhj8/Pzg6+uL7du3V3n7rb/uAUBWVlalNoZtVX0wV6WqWH19ffHbb79BCGFye3Z2NrRarckvZpaUkZGBpKQkDBgwACpVxcfQF198gYEDB2L58uUmbfPz82t93C+++AJjx47FggULTLbn5OTA29u73nETEQE8r9zKXs4rQMVz4urqWmVBCcPtAPD111+jsLAQW7ZsQXh4uPH26sra23INLF9fX1y6dKnS9qr+nmR/OHSQGrX77rsPQghkZGQgOjq60qVjx453PMbw4cNx8uRJ7Nixo8b7uXLlCnQ6XZX3c3uRhmPHjuHw4cMm27788kt4enqiW7duAMz71cxgyJAhKCgowNdff22y/bPPPjPebmnFxcWYNGkStFotXn31VeN2SZIqfQE5cuRIpbVHanrcVR3ju+++axALiRKRY+B5pYI1zysG9913H/766y/4+vpW+Zw0b94cwM3E6dbzhRACn3zyidVira0BAwZgx44dJj2Uer0emzZtsmFUVFvs0aJGrW/fvvjHP/6BCRMmIDExEf3794e7uzsyMzOxd+9edOzYEc8991yNx5g6dSo2bNiABx54AK+//jp69OiB4uJi7Nq1C/fddx8GDRqExx9/HOvWrcOIESPw0ksvoUePHnBycsKFCxfwyy+/4IEHHsBDDz1kPGZISAjuv/9+zJkzB8HBwfjiiy+QkJCAf/3rX8a1O+666y64urpi3bp1aNeuHTw8PBASEoKQkJBqYx07diyWLl2KcePG4ezZs+jYsSP27t2LBQsWYMSIETXOB6iL9PR0HDhwAHq9Hrm5uUhOTsbq1atx7tw5LFy4EDExMca29913H9555x3Mnj0bAwYMwIkTJzBv3jxERERAq9Ua23l6eiI8PBz/+9//MGTIEPj4+MDPz89YKnft2rVo27YtOnXqhKSkJLz//vtcv4SIrIbnFcueV44ePYrNmzdX2t69e3dMnToVX331Ffr3749p06ahU6dO0Ov1SE9Px48//ogZM2agZ8+eGDp0KJydnfG3v/0Nr776KkpKSrB8+XJcu3ZN1ljlMGvWLHzzzTcYMmQIZs2aBVdXV6xYscJYrv7WCohkh2xXh4PIsgzVoW6vPlSV1atXi549ewp3d3fh6uoq7rrrLjF27FiRmJhobDNgwADRoUOHKve/du2aeOmll0SzZs2Ek5OTCAgIECNHjhR//vmnsU15ebn497//LTp37ixcXFyEh4eHaNu2rXj22WfFqVOnjO3Cw8PFyJEjxebNm0WHDh2Es7OzaN68uVi0aFGl+12/fr1o27atcHJyMqnEN27cOOHu7l5lrFeuXBGxsbEiODhYqFQqER4eLmbOnClKSkpM2gEQzz//fKX9w8PDxbhx46p9LoW4WY3JcFEqlaJJkyYiKipKTJ06VRw7dqzSPqWlpeLll18WoaGhwsXFRXTr1k18/fXXYty4cSI8PNyk7U8//SS6du0q1Gq1AGCM59q1a2LixIkiICBAuLm5ibvvvlvs2bNHDBgwQAwYMKDGmImI7oTnFfs5r9x+MVRKLCgoEG+++aZo06aNcHZ2FhqNRnTs2FFMmzZNZGVlGY/3zTffGJ+30NBQ8corr4jvv/9eABC//PKLsV11f6OaqiDe+rwJUX3VwZEjR1bat6rz1Z49e0TPnj2FWq0WQUFB4pVXXjFWdbx+/XqNzxvZliREFaW/iMhmmjdvjsjISFkXcCQiosaL55WGJyYmBmfPnq1UIZHsC4cOEhERERHZqenTp6Nr164ICwvD1atXsW7dOiQkJGDVqlW2Do3ugIkWEREREZGd0ul0ePvtt5GVlQVJktC+fXt8/vnneOqpp2wdGt0Bhw4SERERERHJjKVKiIiIiIiIZMZEi4iIiIiISGZMtIiIiIiIiGTGYhh3oNfrcfHiRXh6ehpXEiciIssTQiA/Px8hISFclPM2PDcREdmGOecmJlp3cPHiRYSFhdk6DCKiRuv8+fNo2rSprcOwKzw3ERHZVm3OTUy07sDT0xNAxZPp5eVl42iIiBqPvLw8hIWFGT+H6Saem4iIbMOccxMTrTswDMnw8vLiyYyIyAY4NK4ynpuIiGyrNucmDnonIiIiIiKSGRMtIiIiIiIimTHRIiIiIiIikhkTLSIiIiIiIpkx0SIiIiIiIpIZEy0iIiIiIiKZMdEiIiIiIiKSGRMtIiIiIiIimTHRIiIiIiIikpnK1gEQEVHN8q8V4KfPd+OvlLNwUqvQa1Q0ood1hlKptHVoREREVA0mWkREdmzPVwfw7tgPUV5SDoVSAiDh248SEN4hDHHfz4J/U19bh0hERERV4NBBIiI7lfrbKcx//P9QXlIOIQR0Wj10Wh0A4MKJDLw+7B3jdSIiIrIvTLSIiOzUxve+BiRACFHpNp1Wj/TUDPz23SHrB0ZERER3xESLiMgO6fV67NuWCL1WX20bhUqBvV//ZsWoiIiIqLaYaBER2SGdVge9rvokCwCEXqCsuMxKEREREZE5mGgREdkhJ2cnBLcIAKTq20iShOYdmlkvKCIiIqo1JlpERHbqwRdGQKop0wJw78TBVoqGiIiIzMFEi4jITo2aHIMugyMhKUyTLYWy4qP7pWXPwC/ExxahERER0R0w0SIislNOzk7453czMSnuSfjdsl5Wp/7t8e4Pb2LEM/fYMDoiIiKqCRcsJiKyY07OThj9ygN47OX7UZhbBJWzCi5ualuHRURERHfARIuIyAFIkgQPb3dbh0FERES1xKGDREREREREMmOiRUREREREJDMmWkRERERERDJjokVERERERCQzJlpEREREREQyc6hEa/fu3Rg1ahRCQkIgSRK+/vrrGttv2bIFQ4cOhb+/P7y8vNC7d2/88MMP1gmWiIiIiIgaLYdKtAoLC9G5c2csWbKkVu13796NoUOHIj4+HklJSRg0aBBGjRqF5ORkC0dKRERERESNmUMlWsOHD8f8+fPx8MMP16r94sWL8eqrr6J79+5o1aoVFixYgFatWuGbb76xcKRERNQYmDvSAgB27dqFqKgouLi4oEWLFlixYoXlAyUiIqtzqESrvvR6PfLz8+Hj41Ntm9LSUuTl5ZlciIiIqmLuSIu0tDSMGDEC/fr1Q3JyMt544w1MmTIFX331lYUjJSIia1PZOgBrWrhwIQoLCzF69Ohq28TFxWHu3LlWjIqIiBzV8OHDMXz48Fq3X7FiBZo1a4bFixcDANq1a4fExET8+9//xiOPPGKhKImIyBYaTY/W+vXrMWfOHGzYsAEBAQHVtps5cyZyc3ONl/Pnz1sxSiIiasj279+PmJgYk23Dhg1DYmIiysvLq92Poy2IiBxPo0i0NmzYgIkTJ2Ljxo245557amyrVqvh5eVlciEiIpJDVlYWAgMDTbYFBgZCq9UiJyen2v3i4uKg0WiMl7CwMEuHSkRE9dTgE63169dj/Pjx+PLLLzFy5Ehbh0NERI2cJEkm14UQVW6/FUdbEBE5Hoeao1VQUIDTp08br6elpSElJQU+Pj5o1qwZZs6ciYyMDHz22WcAKpKssWPH4j//+Q969eqFrKwsAICrqys0Go1NHgMRETVeQUFBxnORQXZ2NlQqFXx9favdT61WQ61WWzo8IiKSkUP1aCUmJqJr167o2rUrAGD69Ono2rUr3n77bQBAZmYm0tPTje0/+ugjaLVaPP/88wgODjZeXnrpJZvET0REjVvv3r2RkJBgsu3HH39EdHQ0nJycbBQVERFZgkP1aA0cONA4xKIqa9euNbm+c+dOywZERESNmrkjLWJjY7FkyRJMnz4dzzzzDPbv349Vq1Zh/fr1tnoIRERkIQ6VaBEREdmTxMREDBo0yHh9+vTpAIBx48Zh7dq1lUZaREREID4+HtOmTcPSpUsREhKCDz74gKXdiYgaIEnU1EVEyMvLg0ajQW5uLisQEhFZET9/q8fnhojINsz5/HWoOVpERERERESOgIkWERERERGRzJhoERERERERyYyJFhERERERkcyYaBEREREREcmM5d0diBAlQNnvgCgCVC0hqVraOiQiIiIiIqoCEy0HIIQACj+CKPwYEAU3tzt1haT5JxMuIiIiIiI7w6GDDkAUvA9RsMgkyQIAlB+BuDIGQnvONoEREREREVGVmGjZOaG9ABSuquZWHSCKIAqWWDUmIiIiIiKqGRMte1eyDYBUQwMdUPIdhCi2VkRERERERHQHnKNl54QuGxX5sL6GVlpAnwsoXS0fjxBA+UGg/E9AcgHUAyApAy1+v0REREREjoSJlp2TlH4QEHdopQQkL4vHIsqPQlyfDujOoaKXTQBQQLg+DMlrNiRJbfEYiIiIiIgcAYcOWogo3Qf91Wegz4qEPqsD9FfHQpTsMP9ALvej5t4sJeAyHJLCra6h1orQpkFcfRrQnTdsufGvHijeAnF9hkXvn4iIiIjIkTDRsgBRuAbi2nigbC+AMgDlQNnvENdjoc//P7OOJamaAa5PVXOrEpDUkDxeqGfEdyYKPgJEKapO+vRA6Y8Q5UctHgcRERERkSNgoiUzUZ4KkR9345rulltuJCiFyyFK95t1TMlrFuD+PAAX0xtUrSH5rIekalHXcGtFCC1Q8g1MH8/tVBDF2ywaBxERERGRo+AcLZmJovUAlKg+KVFCFH0BSd271seUJAUkz5cg3CcCZfsBUQSoWkJy6iBHyHcmSgCU36kRoL9mjWiIiIiIiOweEy25lR9CzT0/OqA8pU6HlhQegMvQOu1bL5IbIHlUXjD5dsoQ68RDRERERGTnOHRQds61aONk8SjkJEkKwPUxVPTUVUcHyfURa4VERERERGTXmGjJTHIZjJqfViXgco+1wpGN5P4PQBGAapMt92cgqcKtGhMRERERkb1ioiU31zEVC/lW+dRKABSQ3J60clD1Jyl9IfluANRDYPLYFL6QPN+A5PGyzWIjIiIiIrI3nKMlM0npDzRZCXHtH4AovLG1YmFfwAlSkw8hqSJsGGHdScogSE2WQOiyAe1fFQmlUyQkybGGQhIRERERWRoTLQuQnKMB/51A8VaI0n0A9JCcuwNuj0JS+Ng6vHqTlAGAMsDWYRARERER2S0mWhYiKbwA93GQ3MfZOhQiIiIiIrIyztEiIiIiIiKSGRMtIiIiIiIimTHRIiIiIiIikhnnaBERkexOJv2FPZsPoCi/GGFtQzHkyX7wbOJh67CIiIishokWERHJpii/GPPHLMLB7SlQqhSQJAk6rR6fvPo5Xlr+D8SMG2jrEImIiKyCiZYVCSGA8kSI4q8A3QVA8oXk+gCgHgBJUto6PCKievvn3/4PSQlHAAA6rd64vaykHO//fSmaBGrQ/d6utgqPiIjIaphoWYkQWojc14CSbwAoAegAKCFKvwecugFNVkJScFgNETmu08lp+D0+udrbFZKEL+Z/xUSLiIgaBRbDsBJRsBQo+fbGNZ3pv+WHIXJn2iIsIiLZ7N36G5Sq6k8rer3A8X0ncC0714pRERER2QYTLSsQogQoWgtAVNNCB5T+CKG9YMWoiIjkVVJQAkmSatWOiIiooWOiZQ3lRwFReIdGAij71SrhEBFZQrN2TaHV6mps4+Kuhm9IEytFREREZDsOlWjt3r0bo0aNQkhICCRJwtdff33HfXbt2oWoqCi4uLigRYsWWLFiheUDvZ3Q1qKRBKA27YiosTmXegFb/vMdNi38Bkf3pFYU1rFDAx/vC7WruuLjrAoKpQL3/n0wnF2crRsYERGRDThUMYzCwkJ07twZEyZMwCOPPHLH9mlpaRgxYgSeeeYZfPHFF/j1118xefJk+Pv712p/2Ti1QcVTXVMiJQCnTlYKiIgcQd7VfLz71Ac4uD0FkkKCBAl6vR7hHcLw1sbpCG/X1NYhmnDzdMUrqyfjn39bDEkpQa+7WXVQoVQgpGUQnp79mA0jJCIish6HSrSGDx+O4cOH17r9ihUr0KxZMyxevBgA0K5dOyQmJuLf//63VRMtSeED4TLyRjGMqobVKAFVO0hOHa0WExHZN51Wh5nD5uN0ylkAgNALiBvzPM//mYHp/d/Gx0cWwjfYvobhDRjdBxp/L6yb/xVSfvkDAODq6YIRE4fgybce5aLFRETUaDhUomWu/fv3IyYmxmTbsGHDsGrVKpSXl8PJyanSPqWlpSgtLTVez8vLkyUWyetNCO1xQHsapkUxFICiCSTv/5PlfoioYdi3LREnk85UeZtep0fB9UJ8/eH3mLjgCStHdmddBkWiy6BIFFwvRHFBCbwDvODkXPnzloiIqCFzqDla5srKykJgYKDJtsDAQGi1WuTk5FS5T1xcHDQajfESFhYmSyySQgPJZwMkz1cBZTMAzoAiAHB/FpLvNkiqcFnuh4gahh1f7oFCWUOpdJ0eCZ/utF5AdeDh7Q7/pr5MsoiIqFFq0D1aACqVGjZMIq+uBPHMmTMxffp04/W8vDwZky0PwH0iJPeJshyPiBqu3Jw8kzlOVcm/VmClaIiIiMhcDTrRCgoKQlZWlsm27OxsqFQq+Pr6VrmPWq2GWq22RnhERNUKaRGE4/tOQKetJtmSgMDmAdYNioiIiGqtQQ8d7N27NxISEky2/fjjj4iOjq5yfhYRkb0YPmlI9UkWAAkS7nt2qBUjIiIiInM4VKJVUFCAlJQUpKSkAKgo356SkoL09HQAFcP+xo4da2wfGxuLc+fOYfr06UhNTcXq1auxatUqvPzyy7YIn4io1tr3bo1hEwZVuSaVQqlAy64RGPHMPdYPjIiIiGrFoRKtxMREdO3aFV27dgUATJ8+HV27dsXbb78NAMjMzDQmXQAQERGB+Ph47Ny5E126dME777yDDz74wLpraBER1YEkSZj28bOY8M7f4OXradzu5OKEEZOG4N+/zIGLG4c5ExER2StJGKpDUJXy8vKg0WiQm5sLLy8vW4dDRI1QeVk5zhw+B51Wh/D2TeGucbd1SFbBz9/q8bkhIrINcz5/G3QxDCKihsDJ2Qlture0dRhERERkBocaOkhEREREROQImGgRERERERHJjIkWERERERGRzJhoERERERERyYyJFhERERERkcyYaBEREREREcmMiRYREREREZHMmGgRERERERHJjIkWERERERGRzJhoERERERERyYyJFhERERERkcyYaBEREREREclMZesAiIio4SjMLcRfh89BkiS07BYBV3cXW4dERERkE0y0iIio3ooLS/DJq19g+5odKC8pBwC4eLjg/tgYjJ//OJycnWwcIRERkXVx6CAREdVLeVk5Zt47H999nGBMsgCgpKAEmxZ9g7mPLoRer7dhhJa3bNkyREREwMXFBVFRUdizZ0+N7detW4fOnTvDzc0NwcHBmDBhAq5cuWKlaImIyBqYaBERUb38vG4vjv16Anpd5WRK6AV++zYJv313yAaRWceGDRswdepUzJo1C8nJyejXrx+GDx+O9PT0Ktvv3bsXY8eOxcSJE3Hs2DFs2rQJBw8exKRJk6wcORERWRITLSIiqpfvPk6ApJCqvV2hVCB+5U9WjMi6Fi1ahIkTJ2LSpElo164dFi9ejLCwMCxfvrzK9gcOHEDz5s0xZcoURERE4O6778azzz6LxMREK0dORESWxESLiIjq5dLZbAi9qPZ2vU6PrLRsK0ZkPWVlZUhKSkJMTIzJ9piYGOzbt6/Kffr06YMLFy4gPj4eQghcunQJmzdvxsiRI6u9n9LSUuTl5ZlciIjIvjHRIiKietH4e9V4u6SQ4O2vsVI01pWTkwOdTofAwECT7YGBgcjKyqpynz59+mDdunUYM2YMnJ2dERQUBG9vb3z44YfV3k9cXBw0Go3xEhYWJuvjICIi+THRIiKieokZO7DGoYNCLzB07AArRmR9kmT6+IUQlbYZHD9+HFOmTMHbb7+NpKQkbN++HWlpaYiNja32+DNnzkRubq7xcv78eVnjJyIi+bG8OxER1cvwSUPwv6XbcTnjCvRa04IYCpUCzdqEYuCYPjaKzrL8/PygVCor9V5lZ2dX6uUyiIuLQ9++ffHKK68AADp16gR3d3f069cP8+fPR3BwcKV91Go11Gq1/A+AiIgshj1aRERULx7e7li0ex7a9WgFoKJ3x9CZ02VQJN7fMRvOLs42jNBynJ2dERUVhYSEBJPtCQkJ6NOn6uSyqKgICoXp6VepVAKo6AkjIqKGgT1aRERUbwFhfli8dz5Op6Thj71/QqFQoPOgDghv19TWoVnc9OnT8fTTTyM6Ohq9e/fGxx9/jPT0dONQwJkzZyIjIwOfffYZAGDUqFF45plnsHz5cgwbNgyZmZmYOnUqevTogZCQEFs+FCIikhETLSIikk3LLhFo2SXC1mFY1ZgxY3DlyhXMmzcPmZmZiIyMRHx8PMLDwwEAmZmZJmtqjR8/Hvn5+ViyZAlmzJgBb29vDB48GP/6179s9RCIiMgCJMFxCjXKy8uDRqNBbm4uvLxqrqxFRETy4edv9fjcEBHZhjmfv5yjRUREREREJDMmWkRERERERDJjokVERERERCQzJlpEREREREQyY6JFREREREQkMyZaREREREREMmOiRUREREREJDMmWkRERERERDJzuERr2bJliIiIgIuLC6KiorBnz54a269btw6dO3eGm5sbgoODMWHCBFy5csVK0RIRERERUWPkUInWhg0bMHXqVMyaNQvJycno168fhg8fjvT09Crb7927F2PHjsXEiRNx7NgxbNq0CQcPHsSkSZOsHDkRERERETUmDpVoLVq0CBMnTsSkSZPQrl07LF68GGFhYVi+fHmV7Q8cOIDmzZtjypQpiIiIwN13341nn30WiYmJVo6ciIiIiIgaE4dJtMrKypCUlISYmBiT7TExMdi3b1+V+/Tp0wcXLlxAfHw8hBC4dOkSNm/ejJEjR1Z7P6WlpcjLyzO5EBERERERmcNhEq2cnBzodDoEBgaabA8MDERWVlaV+/Tp0wfr1q3DmDFj4OzsjKCgIHh7e+PDDz+s9n7i4uKg0WiMl7CwMFkfBxERERERNXwOk2gZSJJkcl0IUWmbwfHjxzFlyhS8/fbbSEpKwvbt25GWlobY2Nhqjz9z5kzk5uYaL+fPn5c1fiIiIiIiavhUtg6gtvz8/KBUKiv1XmVnZ1fq5TKIi4tD37598corrwAAOnXqBHd3d/Tr1w/z589HcHBwpX3UajXUarX8D4CIiIiIiBoNh+nRcnZ2RlRUFBISEky2JyQkoE+fPlXuU1RUBIXC9CEqlUoAFT1hREREREREluAwiRYATJ8+HStXrsTq1auRmpqKadOmIT093TgUcObMmRg7dqyx/ahRo7BlyxYsX74cZ86cwa+//oopU6agR48eCAkJsdXDICIiIiKiBs5hhg4CwJgxY3DlyhXMmzcPmZmZiIyMRHx8PMLDwwEAmZmZJmtqjR8/Hvn5+ViyZAlmzJgBb29vDB48GP/6179s9RCIiIiIiKgRkATH0NUoLy8PGo0Gubm58PLysnU4RESNBj9/q8fnhojINsz5/HWooYNERERERESOgIkWERERERGRzJhoERERERERyYyJFhERERERkcyYaBEREREREcmMiRYREREREZHMmGgRERERERHJjIkWERERERGRzJhoERERERERyYyJFhERERERkcyYaBEREREREcmMiRYREREREZHMmGgRERERERHJjIkWERERERGRzJhoERERERERyYyJFhERERERkcyYaBEREREREcmMiRYREREREZHMmGgRERERERHJjIkWERERERGRzJhoERERERERyYyJFhERERERkcyYaBEREREREcmMiRYREREREZHMmGgRERERERHJjIkWERERERGRzJhoERERERERyYyJFhERERERkcyYaBEREREREcmMiRYREREREZHMmGgRERERERHJzKxEq7i4GHv37sXx48cr3VZSUoLPPvtMtsCIiIiIiIgcVa0TrZMnT6Jdu3bo378/OnbsiIEDByIzM9N4e25uLiZMmGCRIImIiIiIiBxJrROt1157DR07dkR2djZOnDgBLy8v9O3bF+np6ZaMj4iISFbNmzfHvHnzeP4iIiKLqnWitW/fPixYsAB+fn5o2bIltm3bhuHDh6Nfv344c+aMJWMkIiKSzYwZM/C///0PLVq0wNChQ/Hf//4XpaWltg6LiIgamFonWsXFxVCpVCbbli5divvvvx8DBgzAyZMnZQ+uKsuWLUNERARcXFwQFRWFPXv21Ni+tLQUs2bNQnh4ONRqNe666y6sXr3aKrESEZH9efHFF5GUlISkpCS0b98eU6ZMQXBwMF544QUcOnTI1uEREVEDUetEq23btkhMTKy0/cMPP8QDDzyA+++/X9bAqrJhwwZMnToVs2bNQnJyMvr164fhw4fXOPxj9OjR+Pnnn7Fq1SqcOHEC69evR9u2bS0eKxER2bfOnTvjP//5DzIyMjB79mysXLkS3bt3R+fOnbF69WoIIWwdIhEROTBJ1PJMEhcXhz179iA+Pr7K2ydPnowVK1ZAr9fLGuCtevbsiW7dumH58uXGbe3atcODDz6IuLi4Su23b9+Oxx9/HGfOnIGPj0+d7jMvLw8ajQa5ubnw8vKqc+xERGQeS3/+lpeXY+vWrVizZg0SEhLQq1cvTJw4ERcvXsSSJUswaNAgfPnll7Lfrxx4biIisg1zPn9rnWjZWllZGdzc3LBp0yY89NBDxu0vvfQSUlJSsGvX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RERElqRSqRAeHs5h7kREZHFmJ1ovvfSSyfXy8nIUFRXB2dkZbm5uTLSIiMiuvfnmm5g5cya++OIL9mQREZHFmJ1oXbt2rdK2U6dO4bnnnsMrr7wiS1BERESW8sEHH+D06dMICQlBeHh4peq5hw4dslFkRETUkJidaFWlVatWePfdd/HUU0/hzz//lOOQREREFvHggw/aOgQiImoEZEm0AECpVBoXfSQiIrJXs2fPtnUIRETUCJidaG3bts3kuhACmZmZWLJkCfr27StbYERERERERI7K7ETr9iEXkiTB398fgwcPxsKFC+WKi4iIyCIUCkWN62WxIiEREcnB7ERLr9dbIg4iIiKr2Lp1q8n18vJyJCcn49NPP8XcuXNtFBURETU0Zida8+bNw8svvww3NzeT7cXFxXj//ffx9ttvyxYcERGR3B544IFK2x599FF06NABGzZswMSJE20QFRERNTQKc3eYO3cuCgoKKm0vKiriL4FEROSwevbsiZ9++snWYRARUQNhdqIlhKhybPvhw4e58CMRETmk4uJifPjhh2jatKmtQyEiogai1kMHmzRpAkmSIEkSWrdubZJs6XQ6FBQUIDY21iJBEhERycVwPjMQQiA/Px9ubm744osvbBgZERE1JLVOtBYvXgwhBP7+979j7ty50Gg0xtucnZ3RvHlz9O7d2yJBEhERyeX//u//TBIthUIBf39/9OzZE02aNLFhZERE1JDUOtEaN24cACAiIgJ9+vSBk5OTxYIiIiKylPHjx9s6BCIiagTMrjo4YMAA4/+Li4tRXl5ucruXl1f9oyIiIrKQNWvWwMPDA4899pjJ9k2bNqGoqMj4wyIREVF9mF0Mo6ioCC+88AICAgLg4eGBJk2amFyIiIjs2bvvvgs/P79K2wMCArBgwQIbRERERA2R2YnWK6+8gh07dmDZsmVQq9VYuXIl5s6di5CQEHz22WeWiJGIiEg2586dQ0RERKXt4eHhSE9Pt0FERETUEJmdaH3zzTdYtmwZHn30UahUKvTr1w9vvvkmFixYgHXr1lkiRiIiItkEBATgyJEjlbYfPnwYvr6+NoiIiIgaIrMTratXrxp/CfTy8sLVq1cBAHfffTd2794tb3REREQye/zxxzFlyhT88ssv0Ol00Ol02LFjB1566SU8/vjjtg6PiIgaCLOLYbRo0QJnz55FeHg4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SGZMtIiIiIiIiGTGRIuIiIiIiEhmTLSIiIiIiIhk5jCJ1rVr1/D0009Do9FAo9Hg6aefxvXr16ttX15ejtdeew0dO3aEu7s7QkJCMHbsWFy8eNF6QRMRERERUaPkMInWE088gZSUFGzfvh3bt29HSkoKnn766WrbFxUV4dChQ3jrrbdw6NAhbNmyBSdPnsT9999vxaiJiIiIiKgxUtk6gNpITU3F9u3bceDAAfTs2RMA8Mknn6B37944ceIE2rRpU2kfjUaDhIQEk20ffvghevTogfT0dDRr1swqsRMRERERUePjED1a+/fvh0ajMSZZANCrVy9oNBrs27ev1sfJzc2FJEnw9vautk1paSny8vJMLkREREREROZwiEQrKysLAQEBlbYHBAQgKyurVscoKSnB66+/jieeeAJeXl7VtouLizPOA9NoNAgLC6tz3ERERERE1DjZNNGaM2cOJEmq8ZKYmAgAkCSp0v5CiCq33668vByPP/449Ho9li1bVmPbmTNnIjc313g5f/583R4cERERERE1Wjado/XCCy/g8ccfr7FN8+bNceTIEVy6dKnSbZcvX0ZgYGCN+5eXl2P06NFIS0vDjh07auzNAgC1Wg21Wn3n4ImIiIiIiKph00TLz88Pfn5+d2zXu3dv5Obm4vfff0ePHj0AAL/99htyc3PRp0+favczJFmnTp3CL7/8Al9fX9liJyIiIiIiqo5DzNFq164d7r33XjzzzDM4cOAADhw4gGeeeQb33XefScXBtm3bYuvWrQAArVaLRx99FImJiVi3bh10Oh2ysrKQlZWFsrIyWz0UIiIiIiJqBBwi0QKAdevWoWPHjoiJiUFMTAw6deqEzz//3KTNiRMnkJubCwC4cOECtm3bhgsXLqBLly4IDg42XsypVEhERERERGQuh1hHCwB8fHzwxRdf1NhGCGH8f/PmzU2uExERERERWYvD9GgRERERERE5CiZaREREREREMmOiRUREREREJDOHmaNFdXP22Hn89PkuXL10Hb7BPogZNwBhbUJtHRYRERERUYPGRKuB0ml1WPzcx9i+ageUKgWEACAB/313Kx54/l5M/s8EKBTs0CQiIiIisgR+026g1ry5Hj+s3gEA0Gn10Ov00Gv1AID/Ld2OdfO/smV4REREREQNGhOtBqgwtxBbPohHTdXtNy3chpKiUusFRURE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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data, labels = generate_perceptron_data(problem='xor')\n", "acc = fit_perceptron(data, labels)\n", "plot_accuracy(acc, data, labels)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.12.4" } }, "nbformat": 4, "nbformat_minor": 2 }