Penentuan Beasiswa Menggunakan Jaringan Syaraf Tiruan Pada Matlab
Table of Contents
Kali ini, saya akan menjabarkan sebuah metode yang cukup familier bagi sobat blogger. Metode familier tersebut adalah jaringan syaraf tiruan (JST). Tentunya, menguasai metode JST menjadi syarat wajib untuk mata kuliah Artificial Intelligent atau kecerdasan buatan. Bagi saya, JST itu metode yang unik dan menarik, karena seolah-olah kita membuat sebuah mekanisme bagaimana sebuah computer mampu mengambil keputusan layaknya makhluk hidup, yaitu dengan memanfaaatkan pola berpikir jaringan syaraf. Mari, kita telusuri JST lebih jauh..
Jaringan syaraf tiruan adalah system pemroses informasi dengan karakteristik dan performa yang mendekati jaringan syaraf biologis. JST memiliki beberapa asumsi dasar antara lain :
- Pemrosesan informasi terletak pada sejumlah komponen yang dinamakan neuron
- Sinyal merambat antara satu neuron ke neuron-neuron lainnya melalui jalur penghubung
- Tiap jalur penghubung memiliki bobot dan mengalikan besar nilai sinyal yang masuk (jenis neuron tertentu, seperti pada JST Backpropagation)
- Tiap neuron menerapkan fungsi aktivasi yang menjumlahkan semua masukan untuk menentukan sinyal keluaran.
Sebagaimana yang saya ketahui, JST memiliki berbagai macam jenis yang berbeda, JST Perceptron, LVQ, Backpropagation dll. Namun, yang sangat popular dewasa ini adalah backpropagation karena memiliki kelebihan tersendiri. Bahkan, JST sempat vakum belasan tahun lamanya akibat belum ditemukannya metode backpropagation. Begitu pentingkah metode backpro? Saya harap teman-teman mencari tahu sendiri karena saya tidak akan membahas algoritma backpro yang panjang dan rumit itu. Pun dengan teori JST yang lain, silakan mencari referensi yang lebih detail untuk membahasnya.
Saya akan mencoba bereksperimen untuk mencoba implementasi jaringan syaraf tiruan pada studi kasus penentuan beasiswa. Saya akan mengajak teman-teman mencoba toolbox JST yang telah tersedia pada Matlab, agar proses berjalan mudah dan simple tanpa membuat source code JST satu persatu.
Metode JST pasti membutuhkan data training dan target dari training. Masih ingatkan, bahwa JST terbagi menjadi supervised yang membutuhkan target atau unsupervised yang tanpa target? Saya lebih tertarik untuk memakai metode supervised JST karena studi kasus kita membutuhkan pelatihan yang menargetkan JST memiliki mekanisme untuk memutuskan beasiswa berdasarkan target pengalaman sebelumnya. Jadi, JST jenis supervised yang kita gunakan adalah backpropagation.
Berikut ini akan saya sajikan data pelatihan yang akan digunakan untuk training backpro. Saran saya, untuk implementasi nyata, gunakan data training yang berjumlah banyak (big data) agar pengalaman JST juga akan semakin banyak. Contoh data berikut adalah mahasiswa yang memperoleh beasiswa berdasarkan tingkat kemiskinan dan IPK, akan dijadikan sebagai data training.
Rancangan Data pada Excel |
Data training diatas merupakan data kasar yang belum dipilah antara input dan target. Oleh karenanya, data tersebut akan saya pindahkan pada notepad menjadi dua file training, yaitu file data input dan file data target, yang keduanya harus saya simpan dalam ekstensi .dat, agar dapat dikenali oleh Matlab. Perhatikan, bahwa data yang saya pindah dalam notepad tersebut haruslah dilakukan transpose (baris menjadi kolom dan kolom menjadi baris). Seperti gambar berikut :
datatrain,dat |
target.dat |
Simpan kedua file .dat tersebut ke dalam sebuah folder yang menjadi directory projek Matlab kita.
Buka Command Window Matlab dan load kedua file diatas agar dikenali sebagai variabel aktif dan dapat difungsikan untuk mendukung proses selanjutnya.
Buka Command Window Matlab dan load kedua file diatas agar dikenali sebagai variabel aktif dan dapat difungsikan untuk mendukung proses selanjutnya.
Tahap persiapan selesai, kita lanjutkan untuk proses JST pada Matlab berdasarkan input datatrain.dat dan target target.dat, ketikkan nntool pada command window untuk menampilkan jendela tool JST Matlab. Maka muncul jendela berikut :
Klik import sesuai petunjuk arah panah. Import disini bertujuan untuk mengambil data input dan data target.
Klik datatrain lalu pada kolom Destination, pilih Import As : Input Data. Lanjutkan dengan klik import. Begitu pula dengan target, klik target lalu pilih Target Data kemudian Import. Pilih close untuk kembali pada jendela utama :
Pilih new untuk melakukan proses training baru pada JST. Lantas tampil jendela training berikut :
Nama default training JST adalah network1, tidak perlu diganti walaupun dapat diganti sesuai keinginan kita. Sesuai petunjuk anak panah, cocokkan Input data dan Target data sesuai yang di import tadi. Klik create, lalu klik close untuk kembali pada jendela utama.
Pada jendela utama, muncul nama network1, klik open untuk melanjutkan proses pelatihan. Muncul jendela berikut :
Buka tab Train, pilih sub tab Training Info, jangan lupa sesuaikan Input dan target. Lanjutkan untuk Train Network. JST secara otomastis melakukan proses training. Proses training JST dapat terlihat melalui tampilan berikut :
Proses training akan berhenti setelah pelatihan mencukupi. Keluarlah dari jendela Training, manuju jendela utama kembali :
Dengan berakhirnya proses training JST, kita dapat menyimpan hasil training untuk kemudian diuji oleh data testing. Klik Export :
Pilih nama training JST, (network1), klik Save. Simpan hasil training ditempat kedua file .dat berada.
Keseluruhan proses training JST telah selesai. Saya simpan dengan nama jst.mat, namun variabel training tetap seperti pada proses, yaitu network1. Yuk, kita coba JST baru ini, bagaimana kita melakukan testing. Ikuti langkah berikut :
Fungsi bawaan Matlab untuk testing JST adalah sim(nama_training,input). Hasil testing akan memberikan keputusan berupa output tertentu sesuai dengan target pelatihan. Pada gambar, input yang saya ujikan adalah datatrain, harusnya JST akan memberikan output sama persis dengan data target. Ternyata hasil JST memberikan keakurasian yang tinggi, yaitu nyaris 100 persen.
Saya harap agar teman-teman dapat mengembangkan lebih baik dari sekadar apa yang saya bahas disini. Agar tampilan program terlihat lebih menarik, silakan teman-teman buat JST berbasis GUInya.
Sampai disini dulu penjelasan saya, silakan ditanyakan apabila ada yang belum dimengerti. Semoga memberikan manfaat ya,...
Salam Hangat
bisakah saya belajar dari mas tentang jaringan syaraf tiruan ?
Mau tanya, bagian akhir sebelum output gak harus purelin ya fungsi aktivasinya?
misalnya beberapa variabel berikut ini beserta intervalnya (maksudnya nilai intervalnya tidak dibuat sembaranganu, interval dibawah ini saya asumsikan saja) :
1. variabel PA
rendah : 0 - 50
sedang: 20 - 80
tinggi : 50 - 100
2. variabel PB
rendah : 0 - 40
cukup : 20 - 60
sedang: 40 - 80
tinggi : 60 - 100
3. variabel PC
rendah : 0 - 40
cukup : 20 - 60
sedang: 40 - 80
tinggi : 60 - 100
4. variabel PD
rendah : 0 - 50
sedang: 20 - 80
tinggi : 50 - 100
mohon bantuannya, jika berkenan diskusi ini bisa saya sampaikan lewat Whatshapp saya
081360608573
terimakasih mas.