🌐Dasar Teori: Perceptron
Last updated
Last updated
Algoritma Perceptron adalah jenis Artificial Neural Network (ANN) yang paling sederhana. Nama lain percepton adalah Single-Layer Neural Network, FeedForward Network. Perceptron merupakan model neuron tunggal yang dapat digunakan untuk binary classification dan juga dasar untuk mengembangkan “network” yang jauh lebih besar. Perceptron biasanya digunakan untuk mengklasifikasikan suatu tipe pola tertentu yang sering dikenal dengan pemisahan secara linear. Pada dasarnya, perceptron pada jaringan syaraf dengan satu lapisan memiliki bobot yang bisa diatur dan suatu nilai ambang (threshold).
Perceptron pertama kali diciptakan oleh Frank Rosenblatt pada akhir tahun 1950-an. Hal yang mendasari penciptaan perceptron adalah mengadopsi kemampuan otak manusia. Misalkan dalam proses penglihatan, maka apa yang kita lihat adalah data. Data itu kemudian diproses oleh saraf dan dikirim ke otak. Otak kemudian mengenali data tersebut berdasarkan karakteristik hal-hal yang terlihat. Otak terdiri dari sel-sel yang disebut neuron yang berfungsi untuk memproses informasi, Koneksi antar neuron disebut sinapsis, dimana sinapsis berfungsi untuk melakukan transmisi informasi. Otak manusia diperkirakan terdiri dari 100 miliar neuron dan 100 triliun sinapsis. Komponen utama neuron adalah,
Dendrit --> menerima sinyal listrik dari neuron lain
Body --> memproses sinyal
Akson --> mengirimkan sinyal ke neuron lain
Pada algoritma perceptron komponen utaman neuron diadopsi seperti pada Gambar 1. Neuron individu dapat dianggap sebagai unit komputasi yang memproses satu atau lebih input untuk menghasilkan output. Fungsi perceptron analog dengan neuron. Perceptron menerima satu atau lebih data masukan, kemudian memprosesnya, dan mengembalikan output.
Perceptron bisa dibagi menjadi empat bagian dasar: input, bobot, dan bias, weighted sum, dan fungsi aktivasi. Input adalah data masukan dari perceptron tersebut. Bobot dan bias merepresentasikan tingkat signifikansi dari tiap input. Input yang telah dikalikan bobot dan ditambah bias dijumlah menjadi Weighted Sum. Hasilnya akan menjadi parameter dari fungsi aktivasi. Fungsi aktivasi ini yang mementukan hasil output dari perceptron tersebut.
Input dari sebuah perceptron adalah bahan baku yang akan diolah perceptron.
Pada sebuah Perceptron, tidak semua input memiliki signifikansi yang sama. Karena itu, input diberi bobot dan bias yang berbeda untuk menentukan seberapa penting input ini berpengaruh terhadap output yang diinginkan. Bobot akan diupdate secara otomatis melalui banyak algoritma pembelajaran pada saat proses pelatihan.
Masing-masing input akan dikalikan bobot masing-masing dan ditambah bias. Hasilnya akan dijumlah semua menjadi weighted sum. Angka ini nantinya akan menjadi parameter untuk fungsi aktivasi. Persamaannya adalah,
Dengan adalah input ke- yang memiliki bobot dan bias
Hasil dari weighted sum akan menjadi parameter dari sebuah fungsi aktifasi. Fungsi inilah yang menentukan hasil dari perceptron tersebut. Output dari fungsi ini bisa menjadi input dari perceptron lain atau menjadi output dari ANN secara keseluruhan. Perceptron mengklasifikasikan instance dengan memproses kombinasi linier fitur dan parameter model menggunakan fungsi aktivasi. Ada banyak jenis fungsi aktivasi, masing-masing memiliki kegunaan dan fungsi sendiri-sendiri. Gambar 2 merupakan contoh fungsi aktivasi dan persamaannya, yang biasa digunakan dalam arsitektur ANN.
Fungsi aktivasi dibuat sedemikian rupa sehingga terjadi pembatasan antara daerah positif dan negatif. Gambar 3 merupakan ilustrasi penggambaran daerah pelabelan pada ANN.
Garis pemisah antara daerah positif dan daerah nol memiliki nilai
Sedangkan garis pemisah antara daerah negatif dengan daerah nol
memiliki nilai
Algoritma perceptron dimulai dengan menetapkan bobot awal ke nol, atau ke nilai acak kecil. Kemudian memprediksi kelas untuk instance data training. Perceptron adalah algoritma pembelajaran yang digerakkan oleh error: Jika prediksinya benar, algoritma melanjutkan ke instance berikutnya. Jika prediksi salah, algoritma akan memperbarui bobot.
Input --> sekumpulan data dengan fitur / variable dan variable , misal
Output --> sebuah perceptron didefinisikan oleh nilai
Menentukan bobot, seringkali bobot diberikan nilai awal 0, atau . Tentukan juga
nilai awal bias biasanya diberi nilai awal 1 atau
Tentukan nilai learning rate . Nilai merupakan nilai yang ditentukan untuk memperharui bobot setiap iterasi atau epoch pada ANN secara umum. Nilai yang diberikan berisar antara .
Selama masih terdapat kondisi false dalam artian belum tercapainya convergen,
lakukan langkah-langkah sebagai berikut ini,
Untuk setiap sampel untuk semua --> .
Hitung respon untuk unit output dengan menggunakan weighted sum dan
fungsi aktivasi.
Bandingkan hasil output(y) dengan nilai actual kelas(d), jika output tidak
sesuai dengan nilai actual kelas maka dianggap error. Perbaiki bobot jika terjadi error dengan cara perbahuri bobot menggunakan persamaan, untuk semua fitur Dimana, --> Kelas aktual untuk data instance . --> Kelas hasil prediksi untuk data instance . --> Nilai fitur ke- untuk data instance . --> Hyperparameter learning rate. --> faktor kenaikan nilai paramter untuk setiap fitur. Kembali ke step sub 1.
Algoritma pembelajaran telah convergen ketika menyelesaikan 1 kali epoch tanpa
adanya kesalahan output prediksi.
Dataset yang digunakan adalah dataset untuk permasalahan klasifikasi. Misalkan ingin memisahkan kucing dewasa (adult) dari anak kucing(kitten). Diberikan dua variabel penjelas (x) yang tersedia dalam kumpulan data: proporsi hari saat hewan tertidur dan proporsi hari saat hewan itu menggerutu. Data pelatihan terdiri dari empat instances berikut,
Berdasarkan Tabel 1 maka kelas kitten akan menjadi kelas positif (1) dan kelas adult akan menjadi kelas negative (0). Algoritma perceptron pada kasus ini memiliki tiga buah input yaitu untuk bias, untuk fitur proportion of the day spent sleeping dan untuk fitur proportion of the day being grumpy. Fungsi aktivasi yang digunakan pada contoh ini adalah unit step yaitu dengan persamaan sebagai berikut,
Epoch 1
Diberikan bobot , , dan
Hasilnya,
Pada epoch 1 terjadi dua kali perbaikan bobot yaitu pada iterasi 1 dan pada iterasi 4. Perbaikan bobot terjadi karena adanya misclassification yaitu prediksi klasifikasi yang tidak sesuai dengan data aktual / variable target. Pada epoch 1 algoritma pembelajaran belum mencapai convergen sehingga dilanjutkan ke epoch 2.
Epoch 2
Hasil,
Pada epoch 2 terjadi dua kali perbaikan bobot yaitu pada iterasi 1 dan pada iterasi 4. Perbaikan bobot terjadi karena adanya misclassification yaitu prediksi klasifikasi yang tidak sesuai dengan aktual data / variable target. Pada epoch 2 algoritma pembelajaran belum mencapai convergen sehingga dilanjutkan ke epoch 3.
Lanjutkan pelatihan sampai mencapai convergen yaitu dimana pada keseluruhan data pelatihan / data training hasil prediksi memiliki nilai yang sama dengan data aktual / variable target. Pada contoh kasus diatas convergen akan dicapai pada epoch 6. Hasil yang didapatkan ditunjukkan pada tabel Tabel 2.
Visualisasi decision boundary mulai dari epoch dapat dilihat pada Gambar 4.