Achmad Zaki Rahman 1206180286
1. PENDAHULUAN ANFIS (Adaptive Neural Fuzzy Inferece System) adalah salah satu metoda artificial intelegent (AI) yang menggabungkan antara logika Fuzzy dan Neural Network. Karenanya untuk memahaminya maka perlu mengetahui sekilas mengenai Fuzzy dan Neural Network.
Gambar 1.1. Sejarah pemrograman artificial intelegent (AI).[1]
1.1.
Fuzzy Logic (FL)
Konsep Fuzzy Logic (FL) ini disusun oleh Lotfi Zadeh, seorang profesor di University of California di Berkley, tahun 1965 dalam sebuah paper. Secara bahasa, Fuzzy didefinisikan
sebagai ‘blured’ (kabur atau remang-remang), ‘indistinct ‘(tidak jelas), ‘confused’ (membingungkan), ‘vague’ (tidak jelas). Sistem fuzzy adalah sebuah sistem yang dibangun dengan definisi, cara kerja, dan deskripsi yang jelas berdasarkan pada teori fuzzy logic. Fuzzy logic adalah sebuah metodologi ‘ berhitung’ dengan variabel kata-kata (linguistic variable), sebagai pengganti berhitung dengan bilangan. Kata-kata yang digunakan dalam fuzzy logic memang tidak sepresisi bilangan, namun kata-kata jauh lebih dekat dengan intuisi manusia.[2]
Gambar 1.2. Sebuah logika sistem fuzzy yang menggunakan data yang tidak presisi dan ungkapan yang samar sebagai input, seperti perlahan, sedang, dan tinggi.[2] Contoh: 1. Seseorang mengatakan pada operator seberapa sejuk ruangan yang diinginkan, operator akan mengatur putaran kipas yang ada pada ruangan ini. 2. Penumpang taksi berkata pada sopir taksi seberapa cepat laju kendaraan yang diinginkan, sopir taksi akan mengatur pijakan gas taksinya.
Gambar 1.3. Ketelitian (precision) dan makna penting (signifacance).[3] Tetapi, FL juga mempunyai kelemahan dalam menyelesaikan persoalan proses pengaturan. Kelemahan tersebut antara lain : 1. Model peraturan if –then dalam FL sukar untuk dianalisa secara kuantitatif(Chan et al. 1997). Kaedah parameter bentuk tabel seperti model Takagi-Sugeno yang menyediakan peraturan kualitatif serta menyediakan alat berkemampuan tinggi untuk analisa FL
dan desain, tetapi tidak menyediakan rangka secara langsung dan alami untuk menggabungkan peraturan Fuzzy yang dihasilkan oleh pakar(Chan et al. 1997). 2. Kestabilan juga diantara persoalan penting dalam FL terutama jika menyangkut parameter yang tidak pasti (Lam, Leung & Tam 1997). Perbedaan hasil dari sifat tidak linier dan atau perubahan waktu proses pengambilankeputusan adalah sulit untuk diduga dan dikendalikan dan karenanya kinerja FL menjadi buruk(Dumitrache& Buiu1997). 3. Jumlah peraturan kabur tergantung pada jumlah masukan pengaturan dan hal demikian akan menyebabkan proses pengambilan keputusan memerlukan waktu yang panjang dan berlebihan (Ghazali& Virk1997).[4]
3.1.
Artificial Neral Networks (ANN)
Definisi termudah dari neural network, atau yang lebih tepat disebut 'artificial' neural network (ANN), adalah seperti yang pernah disampaikan oleh penemu neurocomputers, Dr. Robert Hecht-Nielsen: "...a computing system made up of a number of simple, highly interconnected processing elements, which process information by their dynamic state response to external inputs. (sebuah sistematika komputasi terdiri dari proses sejumlah elemen-elemen sederhana yang saling berhubungan, untuk memproses informasi dari eksternal input secara dinamis).."Neural Network Primer: Part I" oleh Maureen Caudill, AI Expert, Feb. 1989.[5] Studi mengenai Neural Network diawali dan dipublikasikan pada tahun 1943 Mc Culloch dan Pitts. ANN merupakan suatu jaringan saraf tiruan yang dibangun untuk meniru cara kerja otak manusia. Dengan jaringan saraf tiruan maka kita dapat memberikan semacam kecerdasan pada sistem, dimana sistem tersebut akan diberikan waktu untuk ‘belajar’ dan kemudian diharapkan dari proses belajarnya, sistem bisa memberikan solusi dari suatu kasus.
Gambar 1.4. ilustrasi sederhana syaraf manusia dan artifisial neuron.[3]
Analoginya seperti mengajarkan seorang anak kecil untuk mengetahui bentuk kursi, kita akan menunjukan pada anak tersebut berbagai macam bentuk kursi dan bukan kursi. Kita akan memperlihatkan mana saja yang termasuk kursi dan mana yang bukan, proses ini disebut proses training. Setelah proses training selesai, maka tiba waktunya untuk melakukan test terhadap anak tersebut dengan menunjukan suatu bentuk kursi dan menanyakan apakah itu termasuk kursi atau bukan. Hal yang menarik adalah pada saat kita menunjukan suatu bentuk kursi yang belum pernah diajarkan pada anak tersebut dan apabila itu memang variasi dari kursi (dengan ciri misalnya: kakinya ada 4, ada pegangan tangannya, bentuknya seperti angka 4, dan seterusnya) maka dia dapat mengambil kesimpulan bahwa benda tersebut adalah kursi, apabila jawaban si anak salah maka kita kembali melatihnya (proses training) dengan memasukan bentuk kursi yang baru tadi kedalam data latih, sehingga si anak dapat mengambil kesimpulan bahwa benda tersebut (dan yang mirip benda tersebut dimasa yang akan datang) adalah kursi. NN biasanya diselenggarakan dalam lapisan atau layer yang terdiri dari sejumlah 'node' yang saling berhubungan dan mengandung 'fungsi aktivasi'. Pola dimasukan ke dalam network (jaringan) melalui input layer (layer masukan), yang berkomunikasi dengan satu atau lebih hidden layer (lapisan tersembunyi) di mana proses yang sebenarnya dilakukan melalui sistem weighted connection (koneksi berbobot). Kemudian hidden layers (lapisan tersembunyi) akan bersambung output layer 'lapisan keluaran' seperti pada gambar 1.4.
Gambar 1.5. ilustrasi sederhana cara kerja sistem NN.[5] Kebanyakan ANN mengandung beberapa bentuk learning rule 'aturan pembelajaran' yang memodifikasi bobotnya sesuai dengan pola masukan. Meskipun ada banyak jenis aturan pembelajaran yang digunakan oleh jaringan saraf, rule yang paling umum adalah aturan delta atau yang biasa disebut backpropagation (propagasi balik). Backpropagation adalah aturan yang mempelajari error kesalahan secara berulang pada setiap proses pembelajaran, sehingga didapat sebuah pembobotan dalam proses logikanya. Sebagaimana Logika Fuzzy, ANN juga memiliki kekurangan, yaitu perhitungan yang ada di dalamnya merupakan blackbox yang tidak diketahui prosesnya. Penggunanya hanya memberikan input dan menunggu hasilnya. Sehingga dapat dikatakan "you almost don't know what you're doing". [5]
2. ADAPTIVE NEWRAL FUZZY INFERENCE SISTEMS (ANFIS) 2.1.
Konsep
Adaptive Neuro-Fuzzy Inference System (ANFIS) adalah penggabungan mekanisme fuzzy inference system yang digambarkan dalam arsitektur jaringan syaraf. Sistem inferensi fuzzy yang digunakan adalah sistem inferensi fuzzy model Tagaki-Sugeno-Kang (TSK) orde satu dengan pertimbangan kesederhanaan dan kemudahan komputasi. salah satu contoh ilustrasi mekanisme inferensi fuzzy TSK orde satu dengan dua masukan x dan y (Gambar 1). Basis aturan dengan dua aturan fuzzy if-then seperti dibawah ini : Rule 1 : if x is A1 and y is B1 then f1 = p1x + q1y + r1 Rule 2 : if x is A2 and y is B2 then f2 = p2x + q2y + r2 Input : x dan y
Gambar 2.1. Model Fuzzy-Sugeno dua input first-order dengan dua aturan. [1] Struktur ANFIS yang menggambarkan sistem fuzzy TSK seperti yang digambarkan di Gambar 2.1 diatas bisa digambarin dalam diagram blok atau disebut arsitektur jaringan syaraf feedforward seperti ini:
Gambar 2.2. Struktur ANFIS dengan 2 input. [1] Pada gambar 2.2 terlihat struktur ANFIS seperti jaringan syaraf (neural-network). Jaringan sistem neuro-fuzzy tersebut terdiri atas lima lapisan dengan fungsi yang berbeda untuk tiap lapisannya. Tiap lapisan terdiri atas beberapa simpul yang dilambangkan dengan kotak atau lingkaran. Lambang kotak menyatakan simpul adaptif artinya nilai parameternya bisa berubah dengan pembelajaran dan lambang lingkaran menyatakan simpul nonadaptif yang nilainya tetap. Lapisan 1. Semua simpul pada lapisan ini adalah simpul adaptif (parameter dapat berubah) dengan fungsi simpul : ,
=
,
=
( )
untuk i = 1,2, atau
( ) untuk i = 3,4 ................................................................................................(1)
dengan x dan y adalah masukan pada simpul i, Ai (atau Bi-2) adalah fungsi keanggotaan masing-masing simpul. Simpul O1,i berfungsi untuk menyatakan derajat keanggotaan tiap masukan terhadap himpunan fuzzy A dan B. Fungsi keanggotaan yang dipakai adalah jenis generalized bell (gbell). Parameter a, b, c, pada fungsi keanggotaan gbell dinamakan parameter premis yang adaptif. Lapisan 2. Semua simpul pada lapisan ini adalah nonadaptif (parameter tetap). Fungsi simpul ini adalah mengalikan setiap sinyal masukan yang datang. Fungsi simpul : ,
=
=
( )∙
( ), = 1,2 ...............................................................................(2)
Tiap keluaran simpul menyatakan derajat pengaktifan (firing strength) tiap aturan fuzzy. Fungsi ini dapat diperluas apabila bagian premis memiliki lebih dari dua himpunan fuzzy. Banyaknya simpul pada lapisan ini menunjukkan banyaknya aturan yang dibentuk. Fungsi
perkalian yang digunakan adalah interpretasi kata hubung and dengan menggunakan operator t-norm. Lapisan 3 Setiap simpul pada lapisan ini adalah simpul nonadaptif yang menampilkan fungsi derajat pengaktifan ternomalisasi (normalized firing strength) yaitu rasio keluaran simpul ke-i pada lapisan sebelumnya terhadap seluruh keluaran lapisan sebelumnya, dengan bentuk fungsi simpul: ,
=
=
, = 1,2 .............................................................................................(3)
Apabila dibentuk lebih dari dua aturan, fungsi dapat diperluas dengan membagi wi dengan jumlah total w untuk semua aturan. Lapisan 4. Setiap simpul pada lapisan ini adalah simpul adaptif dengan fungsi simpul : ,
=
=
(
+
+ ) ..........................................................................................(4)
dengan adalah derajat perngaktifan ternormalisasi dari lapisan 3 dan parameter p, q, r menyatakan parameter konsekuen yang adaptif. Lapisan 5. Pada lapisan ini hanya ada satu simpul tetap yang fungsinya untuk menjumlahkan semua masukan. Fungsi simpul : Overall output =
,
=∑
=
∑ ∑
..............................................................................(5)
Jaringan adaptif dengan lima lapisan tersebut ekivalen dengan sistem inferensi fuzzy TSK.
2.2.
Proses Pembelajaran pada ANFIS
Pada struktur ANFIS (gambar 2.2), simpul adaptif terdapat pada lapisan pertama dan keempat. Simpul pada lapisan pertama mengandung parameter premis yang nonlinier sedangkan pada lapisan keempat mengandung parameter konsekuen yang linier. Untuk memperbaharui parameter-parameter terebut atau dalam kata lain agar jaringan saraf itu belajar, maka perlu metoda atau algoritma untuk itu. Metoda pembelajaran jaringan syaraf tiruan banyak macamnya, dan masing-masing punya kelebihan dan kekurangan. Selanjutnya dijelaskan pembelajaran hibrid untuk ANFIS (gambar 2.3). Artinya penggunaan/ penyatuan dua metoda pembelajaran pada ANFIS. Pembelajaran hibrid terdiri atas dua bagian yaitu arah maju (forward pass) dan arah mundur (backward pass).
Pada arah maju, parameter premis dibuat tetap. Dengan menggunakan metode Recursive Least Square Estimator (RLSE), parameter konsekuen diperbaiki berdasarkan pasangan data masukan-keluaran. Metode RLSE dapat diterapkan karena parameter konsekuen yang diperbaiki adalah parameter linier. Metode RLSE akan mempercepat proses belajar hibrid. Kemudian setelah parameter konsekuen didapatkan, data masukan dilewatkan jaringan adaptif kembali dan hasil keluaran jaringan adaptif ini dibandingkan dengan keluaran yang sebenarnya.
Gambar 2.3. Diagram Alir Tahap Pembelajaran Metode ANFIS.[8]
Pada arah mundur, parameter konsekuen dibuat tetap. Kesalahan yang terjadi antara keluaran jaringan adaptif dan keluaran sebenarnya dipropagasikan balik dengan menggunakan gradient descent untuk memperbaiki parameter premis. Pembelajaran ini dikenal sebagai Algoritma Error Back Propagation (EBP).
Satu tahap arah pembelajaran maju-mundur dinamakan satu epoch. Tabel 1. menerangkan proses pembelajaran hibrid ANFIS. Tabel 1. Proses pembelajaran hibrid ANFIS Arah maju Parameter premis Tetap Paeameter konsekuen RSLE Sinyal Keluaran simpul
Arah mundur Gradient descent Tetap Laju kesalahan
3. APLIKASI Perkiraan respon pengereman (detik) pada kendaraan dengan input jarak (meter) dan kecepatan (m/det) dengan metode ANFIS pada MATLAB.[9] RAW DATA
TRAINING DATA Data di simpan pada notepad dengan nama file ‘data.txt’ yang kemudian di import dari tab Workspace sehingga akan di dapat matiks data sebagai berikut:
Kemudian mengetik perintah berikut pada command window MATLAB: >> trainData=data Untuk me-load ANFIS editor, ketik anfisedit pada command window MATLAB. Kemudian pada kolom Load Data pilih type Training, dan ambil dari 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 Untuk menentukan parameter-parameter fungsi keanggotaan dalam ANFIS, pada kolom generate ANFIS pilih GridPartition. Kemudian pada kolom input MF ubah angka menjadi 5 5 dengan INPUT MF type, sedangkan type MF ouput kita pilih constant.
Untuk melihat struktur model ANFIS yang telah dibuat, 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. Garisgaris 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 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.
Dari hasil training, error grafiknya semakin menurun dan mencapai titik erorr tetap pada angka 0,0075814 pada saat epoch mencapai 25. Artinya bahwa proses training menghasilkan error minimum pada nilai 0,0075814 yaitu selisih 0,0024186 dari toleransi error yang telah didefinisikan (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), dapat 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 diperhatikan pada gambar di bawah tampak bahwa hasil ploting trainData (o) dan ANFIS output (*) pada beberapa nilai berhimpitan. Artinya ANFIS yang sudah ditraining 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.
FUZZY Untuk melihat model dalam bentuk fuzzy, export hasil training dari Anfis Editor ke Workspace, lalu beri nama tes01. Kemudian pada Workspace ketik >> fuzzy Maka akan tampil default fis editor seperti ini:
Kemudian import file tes01 dari Workspace, maka tampilannya akan seperti ini:
Tampilan Rule Editor: tes01
Tampilan Rule Viewer: tes01
Tampilan Surface ANFIS:
4. REFERENSI [1] Jang,J., Sun,C., Mizutani,Eiji. Neuro-fuzzy and Soft Computing. Prentice Hall, 1997. [2] Sivanandam, S.N., Sumathi,S., Deepa, S.N. Introduction to Fuzzy Logic using MATLAB, Springer 2007. [3] Alavala, Chennakesava R. Fuzzy Logic and Neural Network – Basic Concept & Applications, New Age International Publisher, India. [4] Priyono, Agus. Optimasi Fuzzy Logic Menggunakan Algoritma Genetik dan Sistem Clonal untuk Radioaktif Waste Treatment- Materi presentasi: tidak diterbitkan. www.batan.go.id. Diakses pada tanggal 29 Maret 2014, pukul 8.40. [5]
, A Basic Introduction To Neural Networks. http://pages.cs.wisc.edu/, diakses pada tanggal 29 Maret 2014, pukul 07:47.
[6]
, Chapter 10 Neural Networks. http://www.cs.ru.nl/ . Diakses pada tanggal 29 Maret 2014, pukul 10.00.
[7] Kuncahyo,B.T., Ginardi, R.V., Arieshanti,I. 2012. Penerapan Metode Adaptive NeoroFuzzy Inference System untuk Memprediksi Nilai Post Test Mahasiswa pada Jurusan Teknik Informatika FTIF ITS. Makalah Seminar Tugas Akhir,FTIF-ITS: tidak diterbitkan. [8] Arimbawa, I.B.K.P., Jayanegara, K., Kencana, I.P.E.N. 2013. Komparasi Metoda ANFIS dan Fuzzy Time Series – Kasus Peramalan Jumlah Wisatawan Australia ke Bali. E-Jurnal MatematikaVol. 2, No.2, Mei 2013, 18-26. ISSN: 2303-1751. [9]
, Membuat Adaptive Neuro Fuzzy Inference System (ANFIS) di MATLAB. http://networkedblogs.com, Diakses pada tanggal 29 Maret 2014, pukul 16.50.