Skip to content

Instantly share code, notes, and snippets.

@smakosh
Last active February 18, 2018 05:56
Show Gist options
  • Save smakosh/cf3d9459c4f39f29def556471472aab4 to your computer and use it in GitHub Desktop.
Save smakosh/cf3d9459c4f39f29def556471472aab4 to your computer and use it in GitHub Desktop.
A simple perceptron built from scratch
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from matplotlib import pyplot as plt\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# each point is Sepal length on Cm, Sepal width on Cm & type (0.1)\n",
"# 0 for Iris-setosa & 1 for Iris-versicolor\n",
"data = [[ 5.1, 3.5, 0 ],\n",
" [ 4.9, 3. , 0 ],\n",
" [ 4.7, 3.2, 0 ],\n",
" [ 4.6, 3.1, 0 ],\n",
" [ 5. , 3.6, 0 ],\n",
" [ 5.4, 3.9, 0 ],\n",
" [ 4.6, 3.4, 0 ],\n",
" [ 5. , 3.4, 0 ],\n",
" [ 4.4, 2.9, 0 ],\n",
" [ 4.9, 3.1, 0 ],\n",
" [ 5.4, 3.7, 0 ],\n",
" [ 4.8, 3.4, 0 ],\n",
" [ 4.8, 3. , 0 ],\n",
" [ 4.3, 3. , 0 ],\n",
" [ 5.8, 4. , 0 ],\n",
" [ 5.7, 4.4, 0 ],\n",
" [ 5.4, 3.9, 0 ],\n",
" [ 5.1, 3.5, 0 ],\n",
" [ 5.7, 3.8, 0 ],\n",
" [ 5.1, 3.8, 0 ],\n",
" [ 7. , 3.2, 1 ],\n",
" [ 6.4, 3.2, 1 ],\n",
" [ 6.9, 3.1, 1 ],\n",
" [ 5.5, 2.3, 1 ],\n",
" [ 6.5, 2.8, 1 ],\n",
" [ 5.7, 2.8, 1 ],\n",
" [ 6.3, 3.3, 1 ],\n",
" [ 4.9, 2.4, 1 ],\n",
" [ 6.6, 2.9, 1 ],\n",
" [ 5.2, 2.7, 1 ],\n",
" [ 5. , 2. , 1 ],\n",
" [ 5.9, 3. , 1 ],\n",
" [ 6. , 2.2, 1 ],\n",
" [ 6.1, 2.9, 1 ],\n",
" [ 5.6, 2.9, 1 ],\n",
" [ 6.7, 3.1, 1 ],\n",
" [ 5.6, 3. , 1 ],\n",
" [ 5.8, 2.7, 1 ],\n",
" [ 6.2, 2.2, 1 ],\n",
" [ 5.6, 2.5, 1 ],\n",
" [ 5.9, 3.2, 1 ],\n",
" [ 6.1, 2.8, 1 ],\n",
" [ 6.3, 2.5, 1 ],\n",
" [ 6.1, 2.8, 1 ],\n",
" [ 6.4, 2.9, 1 ]]\n",
"\n",
"mystery_flower = [ 6.6, 3]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def sigmoid(x) :\n",
" return 1/(1 + np.exp(-x))\n",
"\n",
"def sigmoid_p(x) :\n",
" return sigmoid(x) * (1-sigmoid(x))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1ff7b33be10>]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nvgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1ff009deba8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"T = np.linspace(-6, 6, 100)\n",
"plt.plot(T, sigmoid(T), c='r')\n",
"plt.plot(T, sigmoid_p(T), c='b')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nAgDk2ZW3Q0R8rB+FAADKoYUCAIkiwAEgUQQ4ACSKAAeARBHgAJAoAhwAEkWAA0CiCHAASBQBDgCJ\nIsABIFEEOAAkigAHgEQR4ACQKAIcABJFgANAoghwAEgUAQ4AiSLAASBRBDgAJIoAB4BEEeAAkCgC\nHAASRYADQKIIcABIFAEOAIkiwAEgUQQ4ACSKAAeARBUKcNu32F6z/SPbn6u6KABAvtwAtz0u6auS\nflPSNZI+ZvuaqgsDAHRW5Ar8lyX9KCKej4h3JX1T0u3VlgUAyLOrwD57JL246fPTkn5l60625yXN\nNz/9qe2nd17eUHifpNfrLmIAMA5tjEUbY9E2XfaAIgFeSEQckXREkmw/HhEHe3XulDEWDYxDG2PR\nxli02X687DFFWigvSbpq0+d7m9sAADUqEuD/JumDtq+2fbGkOyR9u9qyAAB5clsoEXHG9u9J+ntJ\n45Lui4hncg470ovihgRj0cA4tDEWbYxFW+mxcERUUQgAoGKsxASARBHgAJCongY4S+4bbF9l+4Tt\nZ20/Y/uuumuqm+1x20/afqjuWupk+3Lbx2z/0PZJ2x+uu6a62P7D5u/H07YfsH1J3TX1i+37bL+6\neb2M7StsP2L7P5vvfzbvPD0LcJbcn+eMpM9GxDWSbpD0uyM8Fi13STpZdxED4G5JD0fEL0q6TiM6\nJrb3SPp9SQcj4lo1JkjcUW9VffUNSbds2fY5Sd+NiA9K+m7z8456eQXOkvumiHg5Ip5ofvyWGr+k\ne+qtqj6290r6iKR7666lTrbfK+nXJH1NkiLi3Yj4cb1V1WqXpPfY3iVpt6T/rrmevomIRyW9sWXz\n7ZLub358v6TfyjtPLwN8uyX3IxtaLbb3S7pe0mP1VlKrv5b0x5LO1V1Iza6W9JqkrzfbSffavrTu\nouoQES9J+pKkdUkvS/rfiPhOvVXV7sqIeLn58SuSrsw7gBcxK2R7QtK3JP1BRLxZdz11sH2bpFcj\nYrXuWgbALkkfknRPRFwv6W0V+G/yMGr2d29X44/az0u61PbH661qcERjfnfuHO9eBjhL7jexfZEa\n4b0UEQ/WXU+NbpT0UdsvqNFWu8n20XpLqs1pSacjovW/sWNqBPoo+nVJ/xURr0XE/0l6UNKv1lxT\n3f7H9vslqfn+1bwDehngLLlvsm01+pwnI+LLdddTp4j4fETsjYj9avyb+F5EjOSVVkS8IulF2627\nzt0s6dkaS6rTuqQbbO9u/r7crBF9QXeTb0v6ZPPjT0r6u7wDenk3wm6W3A+rGyV9QtIPbD/V3PaF\niDheY00YDHdKWmpe5Dwv6VM111OLiHjM9jFJT6gxa+tJjdCyetsPSJqV9D7bpyX9maS/krRs+9OS\nTkn6ndzzsJQeANLEi5gAkCgCHAASRYADQKIIcABIFAEOAIkiwAEgUQQ4ACTq/wFNqsC9aD21cAAA\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1ff012766d8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# scatter data\n",
"plt.axis([0, 10, 0, 6])\n",
"plt.grid()\n",
"for i in range(len(data)) :\n",
" point = data[i]\n",
" color = \"r\"\n",
" if point[2] == 0 :\n",
" color = \"b\"\n",
" plt.scatter(point[0], point[1], c=color)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1ff00ebadd8>]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1ff011d1b38>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# training loop\n",
"learning_rate = 0.2\n",
"costs = []\n",
"\n",
"# generating the weights & the bias\n",
"w1 = np.random.randn()\n",
"w2 = np.random.randn()\n",
"b = np.random.randn()\n",
"\n",
"for i in range(100000000) :\n",
" ri = np.random.randint(len(data))\n",
" point = data[ri]\n",
" \n",
" z = point[0] * w1 + point[1] * w2 + b\n",
" prediction = sigmoid(z)\n",
" \n",
" target = point[2]\n",
" \n",
" # cost function\n",
" cost = np.square(prediction - target)\n",
" \n",
" #derivative of the cost function\n",
" dcost_prediction = 2 * (prediction -target)\n",
" dprediction_dz = sigmoid_p(z)\n",
" \n",
" # For the derivatives of the weights \n",
" # it’s the inputs values because they are constants \n",
" # & for the derivative of the Bias it’s 1\n",
" dz_dw1 = point[0]\n",
" dz_dw2 = point[1]\n",
" dz_db = 1\n",
" \n",
" # the slope of the cost function\n",
" dcost_dz = dcost_prediction * dprediction_dz\n",
" \n",
" # the slope of the weights & bias\n",
" dcost_dw1 = dcost_dz * dz_dw1\n",
" dcost_dw2 = dcost_dz * dz_dw2\n",
" dcost_db = dcost_dz * dz_db\n",
" \n",
" # Getting new weights & bias\n",
" w1 = w1 - learning_rate * dcost_dw1\n",
" w2 = w2 - learning_rate * dcost_dw2\n",
" b = b - learning_rate * dcost_db\n",
" \n",
" # this is only for the graph shown below\n",
" if i % 100 == 0 :\n",
" cost_sum = 0\n",
" for j in range(len(data)) :\n",
" point = data[ri]\n",
" \n",
" z = point[0] * w1 + point[1] * w2 + b\n",
" prediction = sigmoid(z)\n",
" \n",
" target = point[2]\n",
" cost_sum += np.square(prediction - target)\n",
" \n",
" costs.append(cost_sum/len(data))\n",
"\n",
"plt.plot(costs)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[5.4, 3.4, 0.0]\n",
"prediction : 0.0003732119461262876\n",
"[4.6, 3.6, 0.0]\n",
"prediction : 1.6165529365220325e-12\n",
"[5.1, 3.3, 0.0]\n",
"prediction : 3.021129787190027e-05\n",
"[4.8, 3.4, 0.0]\n",
"prediction : 1.12668940728321e-08\n",
"[5.0, 3.0, 0.0]\n",
"prediction : 0.016754201762655997\n",
"[5.0, 3.4, 0.0]\n",
"prediction : 3.618888511649216e-07\n",
"[5.2, 3.5, 0.0]\n",
"prediction : 7.890864629233378e-07\n",
"[5.2, 3.4, 0.0]\n",
"prediction : 1.1623621451677782e-05\n",
"[4.7, 3.2, 0.0]\n",
"prediction : 4.3138158005368305e-07\n",
"[4.8, 3.1, 0.0]\n",
"prediction : 3.601250126422596e-05\n",
"[5.4, 3.4, 0.0]\n",
"prediction : 0.0003732119461262876\n",
"[5.2, 4.1, 0.0]\n",
"prediction : 7.72316857328119e-14\n",
"[5.5, 4.2, 0.0]\n",
"prediction : 9.54400506930689e-13\n",
"[4.9, 3.1, 0.0]\n",
"prediction : 0.00020406375151535422\n",
"[5.0, 3.2, 0.0]\n",
"prediction : 7.85207427420422e-05\n",
"[5.5, 3.5, 0.0]\n",
"prediction : 0.00014362143923047358\n",
"[4.9, 3.1, 0.0]\n",
"prediction : 0.00020406375151535422\n",
"[4.4, 3.0, 0.0]\n",
"prediction : 5.142188396445505e-07\n",
"[5.1, 3.4, 0.0]\n",
"prediction : 2.050973470283607e-06\n",
"[5.0, 3.5, 0.0]\n",
"prediction : 2.456709357921419e-08\n",
"[4.5, 2.3, 0.0]\n",
"prediction : 0.9977252890987481\n",
"[4.4, 3.2, 0.0]\n",
"prediction : 2.36976382646786e-09\n",
"[5.0, 3.5, 0.0]\n",
"prediction : 2.456709357921419e-08\n",
"[5.1, 3.8, 0.0]\n",
"prediction : 4.3558674189257405e-11\n",
"[4.8, 3.0, 0.0]\n",
"prediction : 0.0005302249529480519\n",
"[5.1, 3.8, 0.0]\n",
"prediction : 4.3558674189257405e-11\n",
"[4.6, 3.2, 0.0]\n",
"prediction : 7.611603877653836e-08\n",
"[5.3, 3.7, 0.0]\n",
"prediction : 2.0609495398696686e-08\n",
"[5.0, 3.3, 0.0]\n",
"prediction : 5.33082733624256e-06\n",
"[6.8, 2.8, 1.0]\n",
"prediction : 0.9999999999999927\n",
"[6.7, 3.0, 1.0]\n",
"prediction : 0.9999999999908593\n",
"[6.0, 2.9, 1.0]\n",
"prediction : 0.9999998834637569\n",
"[5.7, 2.6, 1.0]\n",
"prediction : 0.9999999933632866\n",
"[5.5, 2.4, 1.0]\n",
"prediction : 0.9999999990176165\n",
"[5.5, 2.4, 1.0]\n",
"prediction : 0.9999999990176165\n",
"[5.8, 2.7, 1.0]\n",
"prediction : 0.9999999827500016\n",
"[6.0, 2.7, 1.0]\n",
"prediction : 0.999999999462946\n",
"[5.4, 3.0, 1.0]\n",
"prediction : 0.946176935006161\n",
"[6.0, 3.4, 1.0]\n",
"prediction : 0.925215464931152\n",
"[6.7, 3.1, 1.0]\n",
"prediction : 0.9999999998653504\n",
"[6.3, 2.3, 1.0]\n",
"prediction : 1.0\n",
"[5.6, 3.0, 1.0]\n",
"prediction : 0.9982321050431041\n",
"[5.5, 2.5, 1.0]\n",
"prediction : 0.9999999855288635\n",
"[5.5, 2.6, 1.0]\n",
"prediction : 0.9999997868309635\n",
"[6.1, 3.0, 1.0]\n",
"prediction : 0.9999996971016345\n",
"[5.8, 2.6, 1.0]\n",
"prediction : 0.9999999988289714\n",
"[5.0, 2.3, 1.0]\n",
"prediction : 0.9999996100695085\n",
"[5.6, 2.7, 1.0]\n",
"prediction : 0.9999994459359501\n",
"[5.7, 3.0, 1.0]\n",
"prediction : 0.999687605299007\n",
"[5.7, 2.9, 1.0]\n",
"prediction : 0.9999787866836839\n",
"[6.2, 2.9, 1.0]\n",
"prediction : 0.9999999963718109\n",
"[5.1, 2.5, 1.0]\n",
"prediction : 0.9999850707341843\n",
"[5.7, 2.8, 1.0]\n",
"prediction : 0.9999985598902685\n"
]
}
],
"source": [
"# prediction\n",
"#test data\n",
"test_data = [[ 5.4, 3.4, 0. ],\n",
" [ 4.6, 3.6, 0. ],\n",
" [ 5.1, 3.3, 0. ],\n",
" [ 4.8, 3.4, 0. ],\n",
" [ 5. , 3. , 0. ],\n",
" [ 5. , 3.4, 0. ],\n",
" [ 5.2, 3.5, 0. ],\n",
" [ 5.2, 3.4, 0. ],\n",
" [ 4.7, 3.2, 0. ],\n",
" [ 4.8, 3.1, 0. ],\n",
" [ 5.4, 3.4, 0. ],\n",
" [ 5.2, 4.1, 0. ],\n",
" [ 5.5, 4.2, 0. ],\n",
" [ 4.9, 3.1, 0. ],\n",
" [ 5. , 3.2, 0. ],\n",
" [ 5.5, 3.5, 0. ],\n",
" [ 4.9, 3.1, 0. ],\n",
" [ 4.4, 3. , 0. ],\n",
" [ 5.1, 3.4, 0. ],\n",
" [ 5. , 3.5, 0. ],\n",
" [ 4.5, 2.3, 0. ],\n",
" [ 4.4, 3.2, 0. ],\n",
" [ 5. , 3.5, 0. ],\n",
" [ 5.1, 3.8, 0. ],\n",
" [ 4.8, 3. , 0. ],\n",
" [ 5.1, 3.8, 0. ],\n",
" [ 4.6, 3.2, 0. ],\n",
" [ 5.3, 3.7, 0. ],\n",
" [ 5. , 3.3, 0. ],\n",
" [ 6.8, 2.8, 1. ],\n",
" [ 6.7, 3. , 1. ],\n",
" [ 6. , 2.9, 1. ],\n",
" [ 5.7, 2.6, 1. ],\n",
" [ 5.5, 2.4, 1. ],\n",
" [ 5.5, 2.4, 1. ],\n",
" [ 5.8, 2.7, 1. ],\n",
" [ 6. , 2.7, 1. ],\n",
" [ 5.4, 3. , 1. ],\n",
" [ 6. , 3.4, 1. ],\n",
" [ 6.7, 3.1, 1. ],\n",
" [ 6.3, 2.3, 1. ],\n",
" [ 5.6, 3. , 1. ],\n",
" [ 5.5, 2.5, 1. ],\n",
" [ 5.5, 2.6, 1. ],\n",
" [ 6.1, 3. , 1. ],\n",
" [ 5.8, 2.6, 1. ],\n",
" [ 5. , 2.3, 1. ],\n",
" [ 5.6, 2.7, 1. ],\n",
" [ 5.7, 3. , 1. ],\n",
" [ 5.7, 2.9, 1. ],\n",
" [ 6.2, 2.9, 1. ],\n",
" [ 5.1, 2.5, 1. ],\n",
" [ 5.7, 2.8, 1. ]]\n",
"\n",
"for i in range(len(test_data)) :\n",
" point = test_data[i]\n",
" print(point)\n",
" \n",
" z = point[0] * w1 + point[1] * w2 + b\n",
" prediction = sigmoid(z)\n",
" print(\"prediction : {}\" .format(prediction))"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.99999999994819522"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"z = mystery_flower[0] * w1 + mystery_flower[1] * w2 + b\n",
"prediction = sigmoid(z)\n",
"prediction"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# 0 for Iris-setosa and 1 for Iris-versicolor\n",
"def guess_flower(SepalLength, SepalWidth) :\n",
" z = SepalLength * w1 + SepalWidth * w2 + b\n",
" prediction = sigmoid(z)\n",
" if prediction < .5:\n",
" print('Iris-setosa')\n",
" else:\n",
" print('Iris-versicolor')"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Iris-setosa\n"
]
}
],
"source": [
"guess_flower(4.8, 3.0)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Iris-versicolor\n"
]
}
],
"source": [
"guess_flower(6.7, 3.0)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Iris-setosa\n"
]
}
],
"source": [
"guess_flower(5.1, 3.7)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment