{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Perceptron algorithm in plain Python\n", "\n", "The perceptron is a simple supervised machine learning algorithm and one of the earliest **neural network** architectures. It was introduced by Rosenblatt in the late 1950s. A perceptron represents a **binary linear classifier** that maps a set of training examples (of $d$ dimensional input vectors) onto binary output values using a $d-1$ dimensional hyperplane.\n", "\n", "The perceptron as follows.\n", "\n", "**Given:** \n", "- dataset $\\{(\\boldsymbol{x}^{(1)}, y^{(1)}), ..., (\\boldsymbol{x}^{(m)}, y^{(m)})\\}$\n", "- with $\\boldsymbol{x}^{(i)}$ being a $d-$dimensional vector $\\boldsymbol{x}^i = (x^{(i)}_1, ..., x^{(i)}_d)$\n", "- $y^{(i)}$ being a binary target variable, $y^{(i)} \\in \\{0,1\\}$\n", "\n", "The perceptron is a very simple neural network:\n", "- it has a real-valued weight vector $\\boldsymbol{w}= (w^{(1)}, ..., w^{(d)})$\n", "- it has a real-valued bias $b$\n", "- it uses the Heaviside step function as its activation function\n", "\n", "* * *\n", "A perceptron is trained using **gradient descent**. The training algorithm has different steps. In the beginning (step 0) the model parameters are initialized. The other steps (see below) are repeated for a specified number of training iterations or until the parameters have converged.\n", "\n", "**Step 0: ** Initialize the weight vector and bias with zeros (or small random values).\n", "* * *\n", "\n", "**Step 1: ** Compute a linear combination of the input features and weights. This can be done in one step for all training examples, using vectorization and broadcasting:\n", "$\\boldsymbol{a} = \\boldsymbol{X} \\cdot \\boldsymbol{w} + b$\n", "\n", "where $\\boldsymbol{X}$ is a matrix of shape $(n_{samples}, n_{features})$ that holds all training examples, and $\\cdot$ denotes the dot product.\n", "* * *\n", "\n", "**Step 2: ** Apply the Heaviside function, which returns binary values:\n", "\n", "$\\hat{y}^{(i)} = 1 \\, if \\, a^{(i)} \\geq 0, \\, else \\, 0$\n", "* * *\n", "\n", "** Step 3: ** Compute the weight updates using the perceptron learning rule\n", "\n", "\\begin{equation}\n", "\\Delta \\boldsymbol{w} = \\eta \\, \\boldsymbol{X}^T \\cdot \\big(\\boldsymbol{\\hat{y}} - \\boldsymbol{y} \\big)\n", "\\end{equation}\n", "$$ \\Delta b = \\eta \\, \\big(\\boldsymbol{\\hat{y}} - \\boldsymbol{y} \\big) $$\n", "\n", "where $\\eta$ is the learning rate.\n", "* * *\n", "\n", "** Step 4: ** Update the weights and bias\n", "\n", "\\begin{equation}\n", "\\boldsymbol{w} = \\boldsymbol{w} + \\Delta \\boldsymbol{w}\n", "\\end{equation}\n", "\n", "$$\n", "b = b + \\Delta b\n", "$$" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2018-03-11T14:19:10.378213Z", "start_time": "2018-03-11T14:19:09.797615Z" } }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.datasets import make_blobs\n", "from sklearn.model_selection import train_test_split\n", "np.random.seed(123)\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dataset" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2018-03-11T14:19:11.134727Z", "start_time": "2018-03-11T14:19:10.768744Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X, y = make_blobs(n_samples=1000, centers=2)\n", "fig = plt.figure(figsize=(8,6))\n", "plt.scatter(X[:,0], X[:,1], c=y)\n", "plt.title(\"Dataset\")\n", "plt.xlabel(\"First feature\")\n", "plt.ylabel(\"Second feature\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2018-03-11T14:19:15.540354Z", "start_time": "2018-03-11T14:19:15.521985Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape X_train: (750, 2)\n", "Shape y_train: (750, 1))\n", "Shape X_test: (250, 2)\n", "Shape y_test: (250, 1)\n" ] } ], "source": [ "y_true = y[:, np.newaxis]\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X, y_true)\n", "print(f'Shape X_train: {X_train.shape}')\n", "print(f'Shape y_train: {y_train.shape})')\n", "print(f'Shape X_test: {X_test.shape}')\n", "print(f'Shape y_test: {y_test.shape}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Perceptron model class" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2018-03-11T14:20:42.352899Z", "start_time": "2018-03-11T14:20:42.297906Z" } }, "outputs": [], "source": [ "class Perceptron():\n", "\n", " def __init__(self):\n", " pass\n", "\n", " def train(self, X, y, learning_rate=0.05, n_iters=100):\n", " n_samples, n_features = X.shape\n", "\n", " # Step 0: Initialize the parameters\n", " self.weights = np.zeros((n_features,1))\n", " self.bias = 0\n", "\n", " for i in range(n_iters):\n", " # Step 1: Compute the activation\n", " a = np.dot(X, self.weights) + self.bias\n", "\n", " # Step 2: Compute the output\n", " y_predict = self.step_function(a)\n", "\n", " # Step 3: Compute weight updates\n", " delta_w = learning_rate * np.dot(X.T, (y - y_predict))\n", " delta_b = learning_rate * np.sum(y - y_predict)\n", "\n", " # Step 4: Update the parameters\n", " self.weights += delta_w\n", " self.bias += delta_b\n", "\n", " return self.weights, self.bias\n", "\n", " def step_function(self, x):\n", " return np.array([1 if elem >= 0 else 0 for elem in x])[:, np.newaxis]\n", "\n", " def predict(self, X):\n", " a = np.dot(X, self.weights) + self.bias\n", " return self.step_function(a)" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2018-03-09T14:34:26.829303Z", "start_time": "2018-03-09T14:34:26.824652Z" } }, "source": [ "## Initialization and training the model" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2018-03-11T14:20:44.931917Z", "start_time": "2018-03-11T14:20:44.435152Z" } }, "outputs": [], "source": [ "p = Perceptron()\n", "w_trained, b_trained = p.train(X_train, y_train,learning_rate=0.05, n_iters=500)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Testing" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2018-03-11T14:21:17.074704Z", "start_time": "2018-03-11T14:21:17.064633Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "training accuracy: 100.0%\n", "test accuracy: 100.0%\n" ] } ], "source": [ "y_p_train = p.predict(X_train)\n", "y_p_test = p.predict(X_test)\n", "\n", "print(f\"training accuracy: {100 - np.mean(np.abs(y_p_train - y_train)) * 100}%\")\n", "print(f\"test accuracy: {100 - np.mean(np.abs(y_p_test - y_test)) * 100}%\")" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2018-03-09T14:35:14.630757Z", "start_time": "2018-03-09T14:35:14.626460Z" } }, "source": [ "## Visualize decision boundary" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2018-03-11T14:21:45.003755Z", "start_time": "2018-03-11T14:21:44.975880Z" } }, "outputs": [], "source": [ "def plot_hyperplane(X, y, weights, bias):\n", " \"\"\"\n", " Plots the dataset and the estimated decision hyperplane\n", " \"\"\"\n", " slope = - weights[0]/weights[1]\n", " intercept = - bias/weights[1]\n", " x_hyperplane = np.linspace(-10,10,10)\n", " y_hyperplane = slope * x_hyperplane + intercept\n", " fig = plt.figure(figsize=(8,6))\n", " plt.scatter(X[:,0], X[:,1], c=y)\n", " plt.plot(x_hyperplane, y_hyperplane, '-')\n", " plt.title(\"Dataset and fitted decision hyperplane\")\n", " plt.xlabel(\"First feature\")\n", " plt.ylabel(\"Second feature\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2018-03-11T14:21:45.957357Z", "start_time": "2018-03-11T14:21:45.585392Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_hyperplane(X, y, w_trained, b_trained)" ] } ], "metadata": { "anaconda-cloud": {}, "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.6.9" }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }