Membuat Adaptive Neuro Fuzzy Inference System (ANFIS) di MATLAB
Akan dibuat rancangan FIS (Fuzzy Inference System) dengan proses training Adaptive Neuro Fuzzy Inference System (ANFIS) di MATLAB.
TRAINING DATA
Untuk membuat training data mulailah dengan membuat matrik pada command window MATLAB sesuai tabel dibawah ini (atau dapat disesuaikan).
Ketik perintah berikut pada command window MATLAB
>> trainData=[1 20 0; 1.1 25.6 0.146;…dst]
Untuk me-load kita bisa lakukan di ANFIS editor. Ketik anfisedit pada command window MATLAB. Kemudian pada kolom Load Data pilih type Training, dan kita bisa ambil dari file atau workspace. Klik Load Data, kemudian pada window kecil yang muncul ketikkan nama file training data yang kita buat tadi (trainData). Hasil plot trainData akan tampak seperti gambar berikut.
GENERATE ANFIS
Selanjutnya menentukan parameter-parameter fungsi keanggotaan dalam ANFIS. Untuk melakukannya, pada kolom generate ANFIS kita pilih GridPartition. Kemudian kita tentukan banyaknya input MF sebanyak 5 dengan type trapesium masing-masing untuk input 1 dan 2, sedangkan type MF ouput kita pilih constant.
Untuk melihat struktur model ANFIS yang kita buat, pada bagian ANFIS info klik Structure. Hasil ANFIS yang kita buat akan tampak seperti berikut.
Pada gambar diatas tampak bahwa ANFIS terdiri dari dua input, dengan masing-masing terdiri dari 5 Membership Function. Terdapat rule sebanyak 25 buah, dengan operator and. ANFIS terdiri dari satu output dengan output MF yang terbentuk sebanyak 25 buah. Garis-garis yang menghubungkan antar node menunjukkan sebuah rule yang bersesuaian.
TRAINING ANFIS
Untuk pelatihan FIS, ANFIS menyediakan dua metode optimasi parameter fungsi keanggotaan yaitu Backpropagation dan Hybrid (gabungan backpropagation dan least square). Untuk kali ini akan dicoba menggunakan optimasi Hybrid.
Untuk menghentikan proses training, ANFIS menggunakan nilai error tolerance, sehingga jika setelah training data error memasuki daerah error tolerance ini maka training akan berhenti. Dipilih error tolerance sebesar 0 (default). Kemudian banyaknya epoch (iterasi) proses training ditentukan sebanyak 40.
Untuk memulai proses training, klik train now. Hasilnya akan seperti gambar berikut.
Jika diperhatikan, training error grafiknya semakin menurun dan mencapai titik erorr tetap pada angka 0.0083152 pada saat epoch mencapai 20. Artinya bahwa proses training menghasilkan error minimum pada nilai 0.0083152 yaitu selisih 0.0016848 dari toleransi error yang kita definisikan (tidak pernah mencapai nilai 0), untuk itu proses training dibatasi dengan banyaknya iterasi (epoch), yaitu 40 kali.
PENGUJIAN PASCA TRAINING ANFIS
Untuk mengetahui performance ANFIS yang telah ditraining dengan data awal (trainData), kita bisa lakukan test dengan melakukan ploting data trainData dan ANFIS dengan nilai input yang sama. Pada kolom Test FIS di ANFIS editor klik Test Now dengan sebelumnya memilih training data.
Jika kita perhatikan gambar diatas tampak bahwa hasil ploting trainData (o) dan ANFIS output (*) pada beberapa nilai berhimpitan. Artinya ANFIS yang kita training telah dapat memetakan masukan terhadap keluaran dengan baik. Pada saat tertentu hasil ploting FIS output tampak bergeser dari trainData, ini menunjukkan ada error yang relatif besar ketika ANFIS diberi masukan pada masukan sekitar nilai tersebut.
Pada perancangan FIS sebelumnya didasarkan pada IF-THEN rules yang sudah didefinisikan sebelumnya. Jadi pendekatan yang dipakai sebelumnya diasumsikan kita sudah memiliki IF-THEN rules, dengan kata lain kita sudah mengetahui lebih dulu bagaimana kelakukan dari sistem yang dimodelkan. Tujuannya adalah mentransfer pengetahuan kita tersebut kedalam sistem fuzzy dalam bentuk FIS.
Sedangkan pada ANFIS, pemodelan didasarkan pada pasangan input dan output. Jadi diasumsikan kita mempunyai data input dan output dari sistem sebelumnya, kemudian baru mencari IF-THEN rules yang bisa memetakan input menjadi output. ANFIS mengandaikan bahwa data input dan output dari suatu Blackbox system telah ada, kemudian kita menebak model apa yang cocok pada blackbox tersebut.
ANFIS dapat mengatasi kesulitan menentukan prameter-parameter fungsi keanggotaan untk mendapatkan FIS yang memetakan input ke output dengan benar pada pemodelan yang didasarkan pada data.
oya bang/mbak admin, apakah anfis bisa memproses lebih dari satu output?
misal dari contoh diatas, terdapat 2 output [brake1, brake2]
kalo bisa bagaimana caranya? terimakasih..
untuk men-generate IF-THEN rules dari ANFIS bagaimana ya?
IF-THEN rule sebenarnya di-generate pada saat kita me-generate ANFIS dengan menekan tombol Generate FIS….Untuk melihat atau mengedit rule, bisa dengan memilih Edit–>Rule (Ctrl+3) pada Anfis Editor, dengan demikian akan ditunjukkan rule editor dari ANFIS yang kita generate sebelumnya.
punya reff listing prediksi hujan pake ANFIS??
hhmm atau mohon penjelasnnya..hhe
Mungkin bisa merujuk ke artikel berikut
untuk konsultasi lebih lanjut terkait anfis, bisa minta alamat email admin? trimakasih… 🙂
Silahkan mbak fitri di sonoku.com@gmail.com, atau di info@sonoku.com