0% menganggap dokumen ini bermanfaat (0 suara)
53 tayangan4 halaman

Perceptron As Logical Operator - Ipynb

Diunggah oleh

Dheny Orlando
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai TXT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
53 tayangan4 halaman

Perceptron As Logical Operator - Ipynb

Diunggah oleh

Dheny Orlando
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai TXT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 4

{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"Perceptron-as-

Logical-Operator.ipynb","version":"0.3.2","provenance":[],"collapsed_sections":
[]},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":
[{"cell_type":"markdown","metadata":
{"id":"9u1gocIOdqYf","colab_type":"text"},"source":["<img src
= \"https://imgur.com/s4wTnl7.jpg\" align = \"center\">"]},
{"cell_type":"markdown","metadata":
{"id":"t4mT8InTdytv","colab_type":"text"},"source":["# Perceptron sebagai Logical
Operator"]},{"cell_type":"markdown","metadata":
{"id":"3Hqldbdvd8Ic","colab_type":"text"},"source":["Pada notebook kali ini, kita
akan melihat salah satu dari banyak aplikasi perceptron, yakni sebagai operator
logika! Kalian akan mendapatkan kesempatan utnuk membuat perceptrons dalam
menangani operator logika AND dan OR."]},{"cell_type":"markdown","metadata":
{"id":"PCKyhyO9fQLx","colab_type":"text"},"source":["## AND Operator"]},
{"cell_type":"markdown","metadata":
{"id":"K8WOnO9Kfdyw","colab_type":"text"},"source":["Kalian mungkin telah
mempelajar AND operator dalam pelajaran / mata kuliah tentang gerbang logika. AND
hanya akan menghasilkan nilai TRUE (1) jika dan hanya jika kedua inputnya merupakan
TRUE. Operator AND dapat kita lihat dari sudut pandang perceptron. Dengan
menenentukan parameter weight dan bias yang tepat, kita bisa menghasilkan
perceptron yang berperilaku seperti operator AND. Perhatikan gambar berikut."]},
{"cell_type":"markdown","metadata":
{"id":"pS0_KfhPe_Tb","colab_type":"text"},"source":["<img src
= \"https://i.imgur.com/AffZ42A.png\" align = \"center\">"]},
{"cell_type":"markdown","metadata":
{"id":"ONSmBah0gnFX","colab_type":"text"},"source":["### 1. Menentukan Weight dan
Bias\n","\n","Berdasarkan pemahaman kalian mengenai hubungan perceptron dengan
persamaan garis, lakukanlah sebuah *educated guess* nilai-nilai weight dan bias
yang tepat sebagai parameter dari perceptron."]},{"cell_type":"code","metadata":
{"id":"s4WRIvIQPlhf","colab_type":"code","colab":{}},"source":["# Yang harus
dilakukan: tentukan Weight dan Bias yang tepat\n","weight1 = 0\n","weight2 =
0\n","bias = 0"],"execution_count":0,"outputs":[]},
{"cell_type":"markdown","metadata":{"id":"O7GGq2X-
m6Ia","colab_type":"text"},"source":["***Double Click* disini** untuk melihat salah
satu jawaban kombinasi weight dan bias yang tepat.\n","\n","<!--\n","weight1 =
0.5\n","weight2 = 0.5\n","bias = -0.75\n","-->"]},
{"cell_type":"markdown","metadata":
{"id":"PPnVomFQg_rP","colab_type":"text"},"source":["### 2. Siapkan
Input\n","\n","Input dari AND perceptron kita merupakan logika-logika biner, yakni
(0, 0), (0, 1), (1, 0), dan (1, 1). Input-input ini yang akan kita masukkan kedalam
model perceptron kita, yang akan kita operasikan dengan weight dan bias yang kita
tentukan di atas."]},{"cell_type":"code","metadata":
{"id":"_i8MKyLzZ7_4","colab_type":"code","outputId":"0208ee9c-a32c-49b4-f6f3-
0b41affe4f44","executionInfo":{"status":"ok","timestamp":1567653243199,"user_tz":-
420,"elapsed":818,"user":{"displayName":"Dennis Aprilla
Christie","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mBir2EbXfMjBSv-
9DqP6ZlaTHSTgDvKoiJnqS5xWw=s64","userId":"09637515618974467169"}},"colab":
{"base_uri":"https://localhost:8080/","height":87}},"source":["import numpy as
np\n","input_binarylogics = np.array([[0, 0], [0, 1], [1, 0], [1,
1]])\n","\n","#tampilkan\n","input_binarylogics"],"execution_count":2,"outputs":
[{"output_type":"execute_result","data":{"text/plain":["array([[0, 0],\n","
[0, 1],\n"," [1, 0],\n"," [1, 1]])"]},"metadata":{"tags":
[]},"execution_count":2}]},{"cell_type":"markdown","metadata":
{"id":"64GhObnXhm7M","colab_type":"text"},"source":["### 3. Lakukan Perhitungan
Perceptron\n","\n","Sekarang, yang harus kita lakukan adalah melakukan perhitungan
perceptron menggunakan persamaan\n","\n","$$s=WX+b$$\n","\n","dimana $s$ merupakan
hasil operasi input dengan weight dan bias dari perceptron. Kita biasa menyebutnya
dengan terminologi $score$. Karena kita memiliki 4 buah input logika-logika biner,
kita harus menghitung score sebanyak 4 kali. Maka dari itu kita gunakan perulangan
sebanyak jumlah dari input yang kita punya."]},{"cell_type":"markdown","metadata":
{"id":"5VSftkoZkCZq","colab_type":"text"},"source":["Setiap kali score dihitung,
kita akan lakukan klasifikasi sederhanya dengan menggunakan step function yang
didefinisikan sebagai\n","\n","$$\n","\\hat{y}=\\left\\{\\begin{matrix}\n","1 &
WX+b\\geq 0\\\\ \n","0 & WX+b< 0\n","\\end{matrix}\\right.\n","$$\n","\n","scara
sederhana, jika score yang dihasilkan lebih dari sama dengan 0, maka akan
diklasifikasikan sebagai 1 (atau TRUE), jika sebaliknya maka akan diklasifikasikan
sebagai 0 (atau FALSE)."]},{"cell_type":"code","metadata":
{"id":"DLyoft1Ri173","colab_type":"code","outputId":"f7435cb4-649b-4f7f-c2d3-
51d53bb23de0","executionInfo":{"status":"ok","timestamp":1567653383702,"user_tz":-
420,"elapsed":999,"user":{"displayName":"Dennis Aprilla
Christie","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mBir2EbXfMjBSv-
9DqP6ZlaTHSTgDvKoiJnqS5xWw=s64","userId":"09637515618974467169"}},"colab":
{"base_uri":"https://localhost:8080/","height":35}},"source":[" # variable outputs
adalah list kosong yang gunanya untuk\n"," # menampung hasil klasifikasi
perceptron kita\n"," outputs = []\n"," \n"," # lakukan loop untuk seluruh data
yang ada dalam input_binarylogics\n"," for input in input_binarylogics:\n","
\n"," # lakukan operasi perceptron\n"," linear_combination = weight1 *
input[0] + weight2 * input[1] + bias\n"," \n"," # step function\n","
if (linear_combination >= 0):\n"," outputs.append(1)\n"," else:\n","
outputs.append(0)\n"," \n","# tampilkan output\n","output_binarylogics =
np.array(outputs)\n","output_binarylogics"],"execution_count":3,"outputs":
[{"output_type":"execute_result","data":{"text/plain":["array([1, 1, 1,
1])"]},"metadata":{"tags":[]},"execution_count":3}]},
{"cell_type":"markdown","metadata":
{"id":"cFdeL4JhkvKm","colab_type":"text"},"source":["### 4. Tampilkan
Hasil\n","\n","Untuk melihat apa yang dihasilkan oleh perceptron kita dengan lebih
*user-friendly*, kita bisa manfaatkan pandas DataFrame. Dari input-input dan output
yang kita punya, kita gabungkan seluruhnya menjadi satu kesatuan DataFrame.
Kemudian, kita tampilkan hasilnya."]},{"cell_type":"code","metadata":
{"id":"8Kj4VtIekrcP","colab_type":"code","outputId":"e1ac9683-507e-4159-c30d-
a2aa6208d619","executionInfo":{"status":"ok","timestamp":1567653402136,"user_tz":-
420,"elapsed":797,"user":{"displayName":"Dennis Aprilla
Christie","photoUrl":"https://lh3.googleusercontent.com/a-/AAuE7mBir2EbXfMjBSv-
9DqP6ZlaTHSTgDvKoiJnqS5xWw=s64","userId":"09637515618974467169"}},"colab":
{"base_uri":"https://localhost:8080/","height":171}},"source":["import pandas as
pd\n","and_logic = pd.DataFrame({'Input 1':input_binarylogics[:,0], \n","
'Input 2':input_binarylogics[:,1],\n","
'Output':output_binarylogics})\n","\n","and_logic"],"execution_count":4,"outputs":
[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style
scoped>\n"," .dataframe tbody tr th:only-of-type {\n"," vertical-align:
middle;\n"," }\n","\n"," .dataframe tbody tr th {\n"," vertical-align:
top;\n"," }\n","\n"," .dataframe thead th {\n"," text-align:
right;\n"," }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","
<thead>\n"," <tr style=\"text-align: right;\">\n"," <th></th>\n","
<th>Input 1</th>\n"," <th>Input 2</th>\n"," <th>Output</th>\n","
</tr>\n"," </thead>\n"," <tbody>\n"," <tr>\n"," <th>0</th>\n","
<td>0</td>\n"," <td>0</td>\n"," <td>1</td>\n"," </tr>\n","
<tr>\n"," <th>1</th>\n"," <td>0</td>\n"," <td>1</td>\n","
<td>1</td>\n"," </tr>\n"," <tr>\n"," <th>2</th>\n","
<td>1</td>\n"," <td>0</td>\n"," <td>1</td>\n"," </tr>\n","
<tr>\n"," <th>3</th>\n"," <td>1</td>\n"," <td>1</td>\n","
<td>1</td>\n"," </tr>\n"," </tbody>\n","</table>\n","</div>"],"text/plain":["
Input 1 Input 2 Output\n","0 0 0 1\n","1 0 1
1\n","2 1 0 1\n","3 1 1 1"]},"metadata":
{"tags":[]},"execution_count":4}]},{"cell_type":"markdown","metadata":
{"id":"1bvu0YZhlgyA","colab_type":"text"},"source":["Perhatikan tabel diatas, dan
gunakan pemahaman kalian mengenai AND operator untuk memeriksa hasil dari
perceptron kalian. Apakah sudah sesuai dengan perilaku AND atau belum? jika belum,
itu berarti kalian belum berhasil memilih **Weight dan Bias** yang
tepat.\n","\n","Coba ubah weight dan bias yang tepat agar perceptron kalian bisa
berperilaku seperti AND operator!"]},{"cell_type":"markdown","metadata":
{"id":"RrxkauwmmDhP","colab_type":"text"},"source":["## OR Operator"]},
{"cell_type":"markdown","metadata":
{"id":"uroYIfKWoSA9","colab_type":"text"},"source":["Berbeda dengan operator AND,
operator OR hanya akan menghasilkan nilai FALSE (0) jika dan hanya jika kedua
inputnya merupakan FALSE (0). Operator OR akan menghasilkan TRUE (1) satu saja dari
input bernilai TRUE (1)."]},{"cell_type":"markdown","metadata":
{"id":"kmD1dVvepb6z","colab_type":"text"},"source":["<img src
= \"https://i.imgur.com/E0nlv6L.png\" align = \"center\">"]},
{"cell_type":"markdown","metadata":
{"id":"s5B0zNT4os8g","colab_type":"text"},"source":["OR perceptron pada dasarnya
serupa dengan AND percepton. Pada **gambar dibawah**, OR perceptron memiliki garis
yang sama dengan AND perceptron. Yang membedakannya hanyalah garisnya yang sedikit
bergeser kebawah. Apa yang harus kita lakukan pada **weight dan bias** untuk
mencapai ini?"]},{"cell_type":"markdown","metadata":
{"id":"HvpgxZk3pfk5","colab_type":"text"},"source":["<img src
= \"https://i.imgur.com/klXppoQ.png\"
align = \"center\">"]},{"cell_type":"markdown","metadata":
{"id":"8g2oeH_Spluc","colab_type":"text"},"source":["Dengan program yang sama,
tentukanlah **weight dan bias** yang tepat agar kita bisa menciptakan OR
perceptron."]},{"cell_type":"code","metadata":
{"id":"8O_5ZULflEfx","colab_type":"code","outputId":"9be4074a-52fe-49c9-a031-
936e91052df9","executionInfo":{"status":"ok","timestamp":1564218870688,"user_tz":-
420,"elapsed":1210,"user":{"displayName":"Andreas
Hadiyono","photoUrl":"https://lh5.googleusercontent.com/-
4s7QoHYbZHs/AAAAAAAAAAI/AAAAAAAAAd4/M8vEMULW7HY/s64/photo.jpg","userId":"0110800757
6120983264"}},"colab":
{"base_uri":"https://localhost:8080/","height":167}},"source":["import numpy as
np\n","import pandas as pd\n","\n","def logical_perceptron(w1, w2, b):\n","
input_binarylogics = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])\n"," \n","
outputs = []\n"," for input in input_binarylogics:\n"," linear_combination =
w1 * input[0] + w2 * input[1] + b\n"," if (linear_combination >= 0):\n","
outputs.append(1)\n"," else:\n"," outputs.append(0)\n","\n","
output_binarylogics = np.array(outputs)\n"," \n"," and_logic =
pd.DataFrame({'Input 1':input_binarylogics[:,0], \n","
'Input 2':input_binarylogics[:,1],\n","
'Output':output_binarylogics})\n"," return and_logic\n","\n","# Ubah Weight dan
Bias disini\n","weight1 = 0\n","weight2 = 0\n","bias = 0\n","\n","result =
logical_perceptron(weight1, weight2,
bias)\n","result"],"execution_count":0,"outputs":
[{"output_type":"execute_result","data":{"text/html":["<div>\n","<style
scoped>\n"," .dataframe tbody tr th:only-of-type {\n"," vertical-align:
middle;\n"," }\n","\n"," .dataframe tbody tr th {\n"," vertical-align:
top;\n"," }\n","\n"," .dataframe thead th {\n"," text-align:
right;\n"," }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","
<thead>\n"," <tr style=\"text-align: right;\">\n"," <th></th>\n","
<th>Input 1</th>\n"," <th>Input 2</th>\n"," <th>Output</th>\n","
</tr>\n"," </thead>\n"," <tbody>\n"," <tr>\n"," <th>0</th>\n","
<td>0</td>\n"," <td>0</td>\n"," <td>1</td>\n"," </tr>\n","
<tr>\n"," <th>1</th>\n"," <td>0</td>\n"," <td>1</td>\n","
<td>1</td>\n"," </tr>\n"," <tr>\n"," <th>2</th>\n","
<td>1</td>\n"," <td>0</td>\n"," <td>1</td>\n"," </tr>\n","
<tr>\n"," <th>3</th>\n"," <td>1</td>\n"," <td>1</td>\n","
<td>1</td>\n"," </tr>\n"," </tbody>\n","</table>\n","</div>"],"text/plain":["
Input 1 Input 2 Output\n","0 0 0 1\n","1 0 1
1\n","2 1 0 1\n","3 1 1 1"]},"metadata":
{"tags":[]},"execution_count":6}]},{"cell_type":"markdown","metadata":
{"id":"vy0sDHwKp80M","colab_type":"text"},"source":["***Double Click* disini**
untuk melihat salah satu jawaban kombinasi weight dan bias yang
tepat.\n","\n","<!--\n","weight1 = 1.5\n","weight2 = 1.5\n","bias = -0.75\n","--
>"]},{"cell_type":"markdown","metadata":
{"id":"jHCPeNuIrpL0","colab_type":"text"},"source":["<hr>\n","\n","Copyright &copy;
2019 Kursus Machine Learning dan Deep Learning [Universitas Gunadarma]
(https://www.gunadarma.ac.id)"]}]}

Anda mungkin juga menyukai