PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY OTOMATIS MENGGUNAKAN NEURAL NETWORK
TESIS
Oleh
ZARA YUNIZAR 107038018/TINF
PROGRAM STUDI MAGISTER (S2) TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
UNIVERSITAS SUMATERA UTARA MEDAN
2012
PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY OTOMATIS MENGGUNAKAN NEURAL NETWORK
TESIS
Diajukan sebagai salah satu syarat untuk memperoleh gelar Magister Komputer dalam Program Studi Magister Teknik
Informatika
pada Program Pascasarjana Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
Oleh
ZARA YUNIZAR 107038018/TINF
PROGRAM STUDI MAGISTER (S2) TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
UNIVERSITAS SUMATERA UTARA MEDAN
2012
PENGESAHAN
Judul Tesis : PEMBANGKIT FUNGSI
KEANGGOTAAN FUZZY OTOMATIS MENGGUNAKAN NEURAL NETWORK
Nama Mahasiswa : ZARA YUNIZAR
Nomor Induk Mahasiswa : 107038018
Program Studi : MAGISTER TEKNIK INFORMATIKA
Fakultas : FAKULTAS ILMU KOMPUTER DAN
TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
Menyetujui Komisi Pembimbing
Prof. Dr. Opim Salim Sitompul
Anggota Ketua
Prof. Dr. Herman Mawengkang
Ketua Program Studi, Dekan,
Prof. Dr. Muhammad Zarlis
NIP : 19570701 198601 1 003 NIP : 19570701 198601 1 003
Prof. Dr. Muhammad Zarlis
PERNYATAAN ORISINALITAS
PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY OTOMATIS MENGGUNAKAN NEURAL NETWORK
TESIS
Dengan ini saya nyatakan bahwa saya mengakui semua karya tesis ini adalah hasil kerja saya sendiri kecuali kutipan dan ringkasan yang tiap satunya telah dijelaskan sumbernya dengan benar.
Medan, 18 Juli 2012
NIM. 107038018
Zara Yunizar
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN
AKADEMIS
Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di bawah ini :
Nama : Zara Yunizar
NIM : 107038018
Program Studi : Teknik Informatika Jenis Karya Ilmiah : Tesis
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non-Exclusive Royalty Free Right) atas Tesis saya yang berjudul :
PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY OTOMATIS MENGGUNAKAN NEURAL NETWORK Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non- Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk data-base, merawat dan mempublikasikan Tesis saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan atau sebagai pemilik hak cipta.
Demikan pernyataan ini dibuat dengan sebenarnya.
Medan, 18 Juli 2012
NIM. 107038018
Zara Yunizar
Telah diuji pada
Tanggal : 30 Juli 2012
PANITIA PENGUJI TESIS
Ketua : Prof. Dr. Herman Mawengkang Anggota : 1. Prof. Dr. Opim Salim Sitompul
2. Prof. Dr. Muhammad Zarlis 3. Prof. Dr. Tulus
4. Dr. Erna Budhiarti Nababan, MIT
RIWAYAT HIDUP
DATA PRIBADI
Nama lengkap berikut gelar : Zara Yunizar, S.Kom, M.Kom Tempat dan Tanggal Lahir : Medan, 18 Oktober 1983
Alamat Rumah : Jalan Rel Kereta Api, Dusun Barat Geulanggang teungoh – Bireuen Telepon/Faks/HP : +6285289850044
E-mail : [email protected]
Instansi Tempat Bekerja : Universitas Almuslim
Alamat Kantor : Jalan Universitas Almuslim – Bireuen
DATA PENDIDIKAN
SD : Inpress Kutablang – Lhokseumawe Tamat : 1996
SLTP : Negeri 2 Lhokseumawe Tamat : 1999
SLTA : Negeri 1 Lhokseumawe Tamat : 2002
D3 : STMIK AMIKOM Yogyakarta Tamat : 2005
S1 : STMIK AMIKOM Yogyakarta Tamat : 2008
S2 : Teknik Informatika USU Tamat : 2012
KATA PENGANTAR
Bismillahirrahmanirahim,
Pertama-tama penulis panjatkan puji syukur kehadirat Allah SWT, atas segala limpahan rahmat dan karunia-Nya karena atas izin-Nya, penulis dapat menyelesaikan tesis ini dengan baik. Tesis penulis yang berjudul “Pembangkit Fungsi Keanggotaan Fuzzy Otomatis Menggunakan Neural Network” merupakan salah satu syarat akademik penulis sebagai mahasiswa S2, program studi Teknik Informatika, Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom-TI), Universitas Sumatra Utara (USU), Medan dalam menyelesaikan jenjang pendidikan S2.
Dengan selesainya tesis ini, perkenanlah saya mengucapkan terima kasih yang sebesar-besarnya kepada :
Rektor Universitas Sumatera Utara, Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc (CTM), Sp. A(K) atas kesempatan yang diberikan kepada saya untuk mengikuti dan menyelesaikan pendidikan Program Magister.
Dekan Fakultas Ilmu Komputer Universitas Sumatera Utara sekaligus Ketua Program Studi Magister (S2) Teknik Informatika, Prof. Dr. Muhammad Zarlis dan sekretaris Program Studi Magister (S2) Teknik Informatika M. Andri Budiman, S.T, M.Comp, M.E.M beserta seluruh staf pengajar pada program Studi Teknik Informatika, Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom-TI) Universitas Sumatera Utara.
Terimakasih yang tak terhingga dan penghargaan setinggi-tingginya saya ucapkan kepada Prof. Dr. Herman Mawengkang, selaku pembimbing utama dan kepada Prof. Dr. Opim Salim Sitompul selaku pembimbing lapangan yang dengan penuh kesabaran membimbing saya hingga selesainya tesis ini dengan baik.
Terimakasih yang tak terhingga dan penghargaan setinggi-tingginya saya
ucapkan kepada Prof. Dr. Tulus dan Dr. Erna Budhiarti Nababan, sebagai
pembanding yang telah memberikan saran dan masukan serta arahan yang baik demi penyelesaian tesis ini.
Staf pegawai dan administrasi pada Program Studi Teknik Informatika, Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom-TI) Universitas Sumatera Utara yang telah memberikan bantuan dan pelayanan terbaik kapada penulis selama mengikuti perkuliahan hingga saat ini.
Kepada Ayahanda Zainal Arifin, Ibunda Zuraidah selaku orang tua, kepada suamiku tersayang Zulfikar, A.Md dan adik-adikku Zola Fitriana, S.Pd, Zalfie Ardian, S.Kom, Zuriana Yulizar, Zulfikar M. Rizki serta kepada seluruh keluarga besar yang tidak dapat saya sebutkan satu persatu, terimakasih atas segala pengorbanannya, baik moril maupun materil budi baik ini tidak dapat dibalas hanya diserahkan kepada Allah SWT.
Rekan mahasiswa/i angkatan kedua tahun 2010 pada Program Pascasarjana Fakultas Ilmu Komputer Universitas Sumatera Utara yang telah banyak membantu penulis baik berupa dorongan semangat dan doa selama mengikuti perkuliahan.
Seluruh pihak yang tidak dapat penulis sebutkan satu persatu dalam tesis ini, terimakasih atas segala bantuan dan doa yang diberikan. Dengan segala kekurangan dan kerendahan hati, sekali lagi penulis mengucapkan terimakasih.
Semoga kiranya Allah SWT membalas segala bantuan dan kebaikan yang telah kalian berikan.
Medan, Agustus 2012
Zara Yunizar
NIM 107038018
PEMBANGKIT FUNGSI KEANGGOTAAN FUZZY OTOMATIS MENGGUNAKAN NEURAL NETWORK
ABSTRAK
Dalam penelitian ini penulis menggunakan algoritma Backpropagation Neural Network (BPNN) untuk membangkitkan fungsi keanggotaan fuzzy secara otomatis, agar didapatkan fungsi keanggotaan yang lebih tepat sesuai dengan data yang diberikan. Algoritma backpropagation neural network merupakan salah satu algoritma pembelajaran supervised learning, yaitu pembelajaran yang membutuhkan pengawasan dalam proses pembelajarannya. Salah satu faktor penting dalam pembelajaran BPNN adalah jumlah variabel input. Semakin banyak variabel input yang digunakan, maka akan semakin bagus target yang didapatkan.
Dalam penelitian ini, variabel input awal yang digunakan hanya satu variabel, sesuai dengan dataset yang digunakan, sehingga untuk mendapatkan hasil target yang lebih baik ditambahkan dua variabel input awal yang baru, yaitu x
2dan x
3. Variabel x
2didapatkan dengan menggunakan algoritma tambahan yaitu algoritma kohonen (SOM), sedangkan variabel x
3didapatkan dengan menggunakan rumus x
2– indeks (i). Selain itu algoritma kohonen juga digunakan untuk mendapatkan nilai output yang akan dijadikan sebagai input proses pelatihan pada algoritma BPNN. Dari hasil penelitian yang penulis lakukan, algoritma BPNN dapat membangkitkan fungsi keanggotaan secara otomatis pada satu variabel awal, dengan menggunakan algoritma kohonen untuk mendapatkan variabel input awal tambahan.
Kata Kunci : Fuzzy, Fungsi Keanggotaan, BPNN, Kohonen (SOM).
AUTOMATICALLY GENERATING FUZZY MEMBERSHIP FUNCTIONS USING NEURAL NETWORK
In this study the author used an algorithm Backpropagation Neural Network (BPNN) to generate automatically fuzzy membership functions, in order to obtain a more precise membership functions according to the data provided.
Backpropagation neural network algorithm is one of the algorithm supervised learning, this learning need supervision in the learning process. One of the important factor in BPNN learning is the number of input variables. To get the better result we have to used more input variables. In this study, only one initial input variables have to be used, according to the dataset used, so as to get the better result added two new initial input variables, namely x
ABSTRACT
2
and x
3. Variable x
2be obtained by using the algorithm additional. It’s called Kohonen algorithm (SOM). The variable x
3be obtained by using the formula (x
2- index (i)).
Moreover than, the Kohonen algorithm is also used to get the output value will be used as input process to the algorithm BPNN training. From the results of research by the author, the BPNN algorithm have to automatically generate membership functions at the beginning of one variable, using the Kohonen algorithm to obtain additional initial input variables.
Keywords : Fuzzy, Membership Function, BPNN, Kohonen (SOM).
DAFTAR ISI
KATA PENGANTAR vii
ABSTRAK ix
ABSTRACT x
DAFTAR ISI xi
DAFTAR TABEL xiii
DAFTAR GAMBAR xv
BAB I PENDAHULUAN 1
1.1
Latar Belakang 1
1.2
Perumusan Masalah 3
1.3
Batasan Masalah 3
1.4
Tujuan Penelitian 4
1.5
Manfaat Penelitian 4
BAB II TINJAUAN PUSTAKA 5
2.1. Logika Fuzzy 5
2.2 Fuzzyfikasi (Fuzzyfication) 7
2.2.1 Linguistic Variable 8
2.2.2 Membership Function 9
2.2.3 Aturan Dasar 15
2.2.4 Defuzzyfication 16
2.3 Neural Networks 17
2.3.1 Backpropagation Neural Network (BPNN) 19
2.3.2 Algoritma Kohonen Map 27
2.4 Normalisasi Data 28
2.5 Smoothing Grafik 29
2.6 Riset Terkait 29
2.7 Perbedaan Dengan Riset Yang Lain 30
2.8 Kontribusi Riset. 31
BAB III METODOLOGI PENELITIAN 32
3.1
Pendahuluan 32
3.2
Data Yang Digunakan 32
3.3
Proses Penyelesaian Masalah 33 3.3.1
Perancangan Jaringan Backpropagation
Neural Network 33
3.3.2
Prosedur Kerja Jaringan BPNN 35
3.3.2.1
Pra Prosesing 35
3.3.2.2
Proses Penentuan Target Awal dan
Bobot Pada Algoritma Kohonen 36 3.3.2.3
Proses Pelatihan Data Pada BPNN 42 3.3.2.4
Proses Smoothing Grafik 44 3.3.2.5
Proses Pengujian Data Pada BPNN 44
BAB IV HASIL DAN PEMBAHASAN 46
4.1
Pendahuluan 46
4.2
Hasil Uji Coba 46
4.2.1
Proses Pelatihan 46
4.2.1.1
Set Target Dan Bobot 47 4.2.1.2
Grafik Hasil Proses Pelatihan 65 4.2.1.3
Bobot Hasil Pelatihan 77
4.2.2
Proses Pengujian 77
BAB V KESIMPULAN DAN SARAN 92
5.1
Kesimpulan 92
5.2
Saran 93
DAFTAR PUSTAKA 94
LAMPIRAN A 96
LAMPIRAN B 124
LAMPIRAN C 142
DAFTAR TABEL
No Tabel Halaman
2.1 Contoh matriks aturan dasar perancangan kontrol
logika fuzzy. 15
2.2 Riset terkait. 29
4.1 Input 1 proses clusterisasi data target awal potongan
grafik mf 1. 48
4.2 Input hasil normalisasi data target awal potongan
grafik mf 1. 49
4.3 Hasil target data target awal potongan grafik mf 1. 50 4.4 Input 2 proses clusterisasi data target awal potongan
grafik mf 2. 51
4.5 Input hasil normalisasi data target awal potongan
grafik mf 2. 52
4.6 Hasil target data target awal potongan grafik mf 2. 54 4.7 Input 3 proses clusterisasi data target awal potongan
grafik mf 3. 54
4.8 Input hasil normalisasi data target awal potongan
grafik mf 3. 56
4.9 Hasil target data target awal potongan grafik mf 3. 57 4.10 Input 4 proses clusterisasi data target awal potongan
grafik mf 4. 58
4.11 Input hasil normalisasi data target awal potongan
grafik mf 4. 59
4.12 Hasil target data target awal potongan grafik mf 4. 60 4.13 Input 5 proses clusterisasi data target awal potongan
grafik mf 5. 61
4.14 Input hasil normalisasi data target awal potongan
grafik mf 5. 62
4.15 Hasil target data target awal potongan grafik mf 5. 63 4.16 Nilai y
1– y
100hasil pelatihan untuk output 1 dataset
nilai. 65
4.17 Nilai y
1– y
100hasil pelatihan untuk output 2 dataset
nilai. 67
4.18 Nilai y
1– y
100hasil pelatihan untuk output 3 dataset
nilai. 69
4.19 Nilai y
1– y
100hasil pelatihan untuk output 4 dataset
nilai. 71
4.20 Nilai y
1– y
100hasil pelatihan untuk output 5 dataset
nilai. 73
4.21 Bobot hasil pelatihan. 75
4.22 Input 1 proses clusterisasi data pengujian potongan
grafik mf 1. 77
4.23 Input hasil normalisasi data pengujian potongan grafik
mf 1. 78
4.24 Input 2 proses clusterisasi data pengujian potongan
grafik mf 2. 79
4.25 Input hasil normalisasi data pengujian potongan grafik
mf 2. 79
4.26 Input 3 proses clusterisasi data pengujian potongan
grafik mf 3. 81
4.27 Input hasil normalisasi data pengujian potongan grafik
mf 3. 81
4.28 Input 4 proses clusterisasi data pengujian potongan
grafik mf 4. 83
4.29 Input hasil normalisasi data pengujian potongan grafik
mf 4. 83
4.30 Input 5 proses clusterisasi data pengujian potongan
grafik mf 5. 85
4.31 Input hasil normalisasi data pengujian potongan grafik
mf 5. 85
4.32 Hasil y
1– y
100.87
4.33 Hasil sigma w, y in dan y. 88
DAFTAR GAMBAR
No Gambar Halaman
2.1 Diagram blok pengendali logika fuzzy 6
2.2 Ilustrasi fuzzy dan crisp set 7
2.3 Fungsi keanggotaan suhu 7
2.4 Fungsi keanggotaan kelompok umur 9
2.5 Fungsi keanggotaan linear naik 10
2.6 Fungsi keanggotaan linear turun 11
2.7 Fungsi keanggotaan segitiga (triangle) 12 2.8 Fungsi keanggotaan trapesium (trapezoidal) 12 2.9 Fungsi keanggotaan gaussian σ = standar deviasi,
c = pusat 13
2.10 Fungsi keanggotaan bell 13
2.11 Letak parameter a,b dan c pada fungsi
keanggotaan Bell 14
2.12 Fungsi keanggotaan sigmoid membuka ke kanan 14 2.13 Fungsi keanggotaan sigmoid membuka ke kiri 15
2.14 Proses komunikasi antar neuron 18
2.15 Lapis dan aliran sinyal dalam algoritma BPNN 19
3.1 Arsitektur jaringan BPNN 33
3.2 Diagram alir prosedur kerja jaringan BPNN 34 3.3 Algoritma penentuan nilai batas grafik 35
3.4 Grafik linear turun 36
3.5 Algoritma pembentukan grafik linear turun 36
3.6 Grafik segitiga 36
3.7 Algoritma pembentukan grafik segitiga 37
3.8 Grafik linear naik 37
3.9 Algoritma pembentukan grafik linear naik 38 3.10 Algoritma pembentukan variabel x
239 3.11 Algoritma penentuan nilai target grafik 1 40 3.12 Algoritma penentuan nilai target grafik 2, grafik 3
dan grafik 4 40
3.13 Algoritma penentuan nilai target grafik 5 41 3.14 Diagram alir proses pelatihan data pada BPNN 42
3.15 Diagram proses smoothing grafik 43
3.16 Diagram proses pengujian data pada BPNN 44
4.1 Tampilan program set target dan bobot 47
4.2 Tampilan program pelatihan ke 3 pada maxepoch
100 64
4.3 Tampilan program smoothing pelatihan ke 3 pada
maxepoch 100 64
4.4 Tampilan program pengujian saat data input 76 4.5 Tampilan program pengujian saat input data bobot 77 4.6 Tampilan program pengujian saat proses pengujian
data 86
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam kehidupan sehari-hari, manusia cenderung mengelompokkan sesuatu berdasarkan kategori secara kasat mata, misalnya kelompok orang tinggi, kelompok orang pandai, dan sebagainya, namun tidak semua himpunan/kelompok yang dijumpai dalam kehidupan sehari-hari dapat terdefinisi secara jelas. Misalnya, pada himpunan/kelompok orang tinggi, tidak dapat ditentukan secara tegas apakah seseorang adalah tinggi atau tidak tinggi. Anggap bahwa definisi “orang tinggi” adalah orang yang tingginya lebih besar atau sama dengan 1.70 meter, maka orang yang tingginya 1.69 meter menurut definisi tersebut termasuk orang yang tidak tinggi. Sulit diterima bahwa orang yang tingginya 1.69 meter itu tidak termasuk orang tinggi. Hal ini menunjukkan bahwa batas antara kelompok orang tinggi dan kelompok orang yang tidak tinggi tidak dapat ditentukan secara tegas.
Untuk mengatasi permasalahan himpunan dengan batas yang tidak tegas itu, L.A. Zadeh mengaitkan himpunan tersebut dengan suatu fungsi yang menyatakan nilai keanggotaan pada suatu himpunan tak kosong sebarang dengan mengaitkan pada interval [0,1] (Zadeh, 1965). Himpunan tersebut disebut himpunan fuzzy dan fungsi ini disebut fungsi keanggotaan (membership function) dan nilai fungsi itu disebut derajat keanggotaan.
Pada awalnya, untuk membangkitkan nilai fungsi keanggotaan pada fuzzy
masih menggunakan klasifikasi ataupun clustering. Cara tersebut masih
mengandalkan expert untuk menentukan klasifikasi dataset, beberapa masalah yang
muncul kemudian adalah jika para ahli tidak tersedia, maka fungsi keanggotaan tidak
dapat secara akurat ditentukan, atau sistem fuzzy yang dikembangkan mungkin tidak
berfungsi dengan baik (Hong dan Lee, 1996).
Untuk itu, dilakukan penelitian, bagaimana membangkitkan membership function secara otomatis. Beberapa penelitian telah dilakukan untuk mengatasi hal tersebut, diantaranya, penelitian yang dilakukan oleh beberapa peneliti berikut ini;
Yang dan Bose (2006), melakukan penelitian tentang penggunaan algoritma SOFM untuk membangkitkan membership function secara otomatis; Tamaki et al. (1998), melakukan penelitian bagaimana mengidentifikasi fungsi keanggotaan berbasis data observasi fuzzy; Hong dan Lee (1996), dalam penelitiannya menyimpulkan bahwa metode trainning examples dapat digunakan untuk menghasilkan fuzzy rules dan fungsi keanggotaan secara otomatis; Bagis (2003), menggunakan metode tabu-search dalam penelitiannya untuk penentuan optimal dari fungsi keanggotaan dalam aturan fuzzy.
Berdasarkan dari penelitian yang ada tersebut, penulis mencoba untuk melakukan penelitian bagaimana membangkitkan nilai fungsi keanggotaan secara otomatis menggunakan Neural Network (NN), yaitu suatu sistem yang dimodelkan berdasarkan jaringan saraf manusia. Dengan jaringan saraf tiruan maka kita dapat memberikan kecerdasan pada sistem, dimana sistem tersebut akan diberikan waktu untuk ‘belajar’ dan kemudian diharapkan dari proses belajarnya, sistem bisa memberikan solusi dari suatu kasus.
Menurut Hagan (1996), pada prinsipnya ada dua cara untuk melatih neural network yaitu dengan supervised dan unsupervised learning. Pada unsupervised learning, neural network hanya diberi data masukan saja tapi bagaimana outputnya tidak ditentukan. Ketika data yang dimasukkan bertambah, neural network akan mengkategorikan atau mengelompokkan data masukan tersebut. Pada supervised learning, neural network diberi sepasang data latih yang terdiri dari data masukan dan target, jadi ketika data yang dimasukan bertambah neural network akan mengubah karakteristik internalnya agar sebisa mungkin menghasilkan keluaran seperti targetnya. Pada penelitian ini, pelatihan yang digunakan adalah supervised learning, dimana data yang dilatihkan berupa pasangan data input dan target (output yang diharapkan).
Ada banyak variasi metode neural network yang dilatih dengan supervised
learning, antara lain: perceptron learning, hamming network, hopfield network,
adaptive linear neuron (ADALINE) dan backpropagation (Hagan, 1996). Dalam
penelitian ini metode yang dipakai adalah backpropagation dengan alasan karena backpropagation merupakan generalisasi dari berbagai metode tersebut di atas, oleh karena itu metode backpropagation lebih fleksibel dan secara umum relatif lebih baik dari jenis-jenis yang tadi disebut (Hagan, 1996).
Penggunaan neural network pada fuzzy diharapkan dapat menghasilkan membership function yang akurat dari hasil pembelajaran yang di berikan. Dari uraian diatas, penulis tertarik untuk mengambil judul “Pembangkit fungsi keanggotaan fuzzy otomatis menggunakan Neural Network”.
1.2 Perumusan Masalah
Didalam fuzzy sistem fungsi keanggotaan memainkan peranan penting untuk merepresentasikan masalah dan menghasilkan keputusan yang akurat. Dalam membentuk fungsi keanggotaan sebuah sistem fuzzy yang baik, diperlukan pengetahuan tentang data yang digunakan, dan akan sangat sulit untuk membuat fungsi keanggotaan dari sistem fuzzy tanpa pengetahuan tentang data yang akan digunakan tersebut. untuk itu, agar sebuah sistem tidak harus selalu bergantung pada expert, maka dibutuhkan sistem yang dapat membangkitkan fungsi keanggotaan secara otomatis. Berdasarkan uraian latar belakang di atas, maka penulis mencoba untuk meneliti bagaimana cara membangkitkan fungsi keanggotaan secara otomatis menggunakan neural network.
1.3 Batasan Masalah
Rumusan masalah diatas, dibatasi dengan beberapa hal sebagai berikut : 1. Banyaknya data yang digunakan adalah 400 sampel data;
2. Data yang digunakan pada proses pelatihan dibangkitkan secara random dengan aturan :
- Terdiri dari 2 dataset (umur dan Suhu);
- Setiap dataset terdiri dari 100 data;
- Pembangkitan data secara random dilakukan dengan menggunakan batas
awal dan batas akhir sesuai dengan dataset yang digunakan, yaitu; untuk
untuk umur adalah 6-80 dan untuk suhu batasannya adalah 0-100;
3. Untuk pengujian dilakukan dengan menggunakan dataset nilai siswa dan berat badan, dengan batasan untuk nilai siswa adalah 10-100 dan untuk berat badan batasannya adalah 20-90;
4. Algoritma yang digunakan dalam pembentukan membership function adalah algoritma backpropagation neural networks;
5. Aplikasi yang digunakan adalah Visual Basic 6.0.
1.4 Tujuan Penelitian
Adapun tujuan yang ingin dicapai dari penelitian ini adalah membangkitkan kurva fuzzy membership function secara otomatis dengan menggunakan backpropagation neural network.
1.5 Manfaat Penelitian
Manfaat yang diharapkan dari hasil penelitian ini adalah sebagai berikut:
1. Dapat mengaplikasikan algoritma neural networks dalam pembangkitan fungsi keanggotaan himpunan fuzzy yang lebih akurat secara otomatis;
2. Mengetahui lebih dalam penggunaan algoritma backpropagation neural
network.
BAB II
TINJAUAN PUSTAKA
2.1. Logika Fuzzy
Sebelum munculnya teori logika fuzzy (Fuzzy Logic), dikenal sebuah logika tegas (Crisp Logic) yang memiliki nilai benar atau salah secara tegas. Prinsip ini
dikemukakan oleh Aristoteles sekitar 2000 tahun yang lalu sebagai hukum Excluded Middle dan hukum ini telah mendominasi pemikiran logika sampai saat ini. Namun, pemikiran mengenai logika konvensional dengan nilai kebenaran yang pasti yaitu benar atau salah dalam kehidupan nyata sangatlah tidak cocok. Fuzzy logic (logika samar) merupakan suatu logika yang dapat merepresentasikan keadaan yang ada di dunia nyata. Logika fuzzy merupakan sebuah logika yang memiliki nilai kekaburan atau kesamaran (fuzzy) antara benar dan salah.
Teori tentang himpunan logika fuzzy pertama kali dikemukakan oleh Prof.
Lofti Zadeh sekitar tahun 1965 pada sebuah makalah yang berjudul ‘Fuzzy Sets’. Ia berpendapat bahwa logika benar dan salah dari logika boolean/konvensional tidak dapat mengatasi masalah yang ada pada dunia nyata. Tidak seperti logika boolean, logika samar mempunyai nilai yang kontinu. Samar dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat dikatakan sebagian benar dan sebagian salah pada waktu yang bersamaan. Teori himpunan individu dapat memiliki derajat keanggotaan dengan nilai yang kontinu, bukan hanya 0 dan 1 (Zadeh, 1965).
Dengan teori himpunan logika samar, kita dapat merepresentasikan dan
menangani masalah ketidakpastian yang dalam hal ini bisa berarti keraguan,
ketidaktepatan, kurang lengkapnya suatu informasi, dan kebenaran yang bersifat
sebagian (Altrock, 1997). Di dunia nyata, seringkali kita menghadapi suatu masalah
yang informasinya sangat sulit untuk diterjemahkan ke dalam suatu rumus atau
angka yang tepat karena informasi tersebut bersifat kualitatif (tidak bisa diukur secara kuantitatif). Pada Gambar 2.1 diperlihatkan diagram blok pengendali logika fuzzy.
Crisp Inputs
Fuzzyfikasi Fuzzy Inputs
Rule Evaluation Fuzzy Outputs Defuzzyfication
Crisp Outputs Inputs
Membership Function
Output Membership
Function
Rules Based
Gambar 2.1 Diagram blok pengendali logika fuzzy.
Sumber : Jang et al. (1997)
Himpunan samar (fuzzy sets) adalah sekumpulan objek X di mana masing- masing objek memiliki nilai keanggotaan (membership function), M atau yang disebut juga dengan nilai kebenaran dan nilai ini dipetakan ke dalam daerah hasil range (0,1). Jika X merupakan sekumpulan objek dengan anggotanya dinyatakan dengan X maka himpunan samar dari A di dalam X adalah himpunan dengan sepasang anggota (Zadeh, 1968).
Teori himpunan samar merupakan suatu teori tentang konsep penilaian dan
segala sesuatu merupakan persoalan derajat atau diibaratkan bahwa segala sesuatu
memiliki elastisitas. Pada Gambar 2.2 diperlihatkan ilustrasi fuzzy dan crisp set
himpunan umur.
Nilai keanggotaan
Crisp Set Fuzzy Set
Umur
1
0 10
0.5
20
Gambar 2.2: Ilustrasi fuzzy dan crisp set.
Sumber : Hagan (1996)
Pada Gambar 2.2 diilustrasikan representasi dengan crisp set yang
menyatakan bahwa jika seseorang berumur dibawah 10 tahun maka ia merupakan himpunan orang muda, jika tidak maka ia tergolong tua. Sebaliknya dengan menggunakan fuzzy set, himpunan orang muda ditentukan oleh derajat keanggotaannya. Secara khusus kurva semacam ini disebut sebagai fungsi keanggotaan (membership function).
2.2 Fuzzyfikasi (Fuzzyfication)
Fuzzyfikasi adalah suatu proses pengubahan nilai tegas/real yang ada kedalam fungsi keanggotaan (Hagan, 1996). Pada gambar 2.3 diperlihatkan contoh fungsi keanggotaan suhu. Dari Gambar 2.3 akan dihitung fuzzyfikasi dari suhu 35
oC.
Gambar 2.3 : Fungsi keanggotaan suhu Sumber : Hagan (1996)
Dengan menggunakan fungsi keanggotaan segitiga, maka crisp input suhu 35
o15 30 45 60 Panas Dingin A2
A1
µ µ
Suhu (oC)
C
dikonversi ke nilai fuzzy dengan cara :
Suhu 35
oC berada pada nilai linguistik dingin dan panas. Semantik atau derajat keanggotaan untuk dingin dihitung dengan menggunakan rumus:
(2.1) Dimana b=30 dan c=45, sehingga derajat keanggotaan dingin adalah :
Sedangkan semantik atau derajat keanggotaan untuk panas dihitung dengan menggunakan rumus:
(2.2) Dimana a=30 dan b=45, sehingga derajat keanggotaan panas adalah :
Dari hasil perhitungan diatas, maka, proses fuzzyfikasi menghasilkan 2 fuzzy input, yaitu suhu dingin (2/3) dan suhu panas (1/3)
2.2.1 Linguistic Variable
Dalam teori logika fuzzy dikenal himpunan fuzzy (fuzzy set) yang merupakan pengelompokan sesuatu berdasarkan variabel bahasa (variabel linguistic) yang dinyatakan dalam fungsi keanggotaan. Variabel linguistik adalah variabel yang berupa kata/kalimat, bukan berupa angka. Sebagai alasan menggunakan kata/kalimat dari pada angka karena peranan linguistik kurang spesifik
dibandingkan angka, namun informasi yang disampaikan lebih informatif. Variabel linguistik ini merupakan konsep penting dalam logika samar dan memegang peranan penting dalam beberapa aplikasi (Zadeh, 1968).
Konsep tentang variabel linguistik ini diperkenalkan oleh Lofti Zadeh.
Menurut Zadeh variabel linguistik ini dikarakteristikkan dengan (X, T(x), U, G, M), dimana: (Zadeh, 1968)
X = nama variabel (variabel linguistik)
T(x) = semesta pembicaraan untuk x atau disebut juga nilai linguistik dari x
U = jangkauan dari setiap nilai samar untuk x yang dihubungkan dengan variabel dasar U
G = aturan sintaksis untuk memberikan nama (x) pada setiap nilai X M = aturan semantik yang menghubungkan setiap X dengan artinya.
Sebagai contoh, jika :
X = ”umur” dengan U [10,80] dan T (umur) = {remaja, muda, tua}
Maka M untuk setiap X, M (x) adalah M (remaja), M (muda), M (tua), dimana : M (remaja) = himpunan samarnya ”umur dibawah 20 tahun” dengan
fungsi keanggotaan m remaja.
M (muda) = himpunan samarnya ”umur mendekati 40 tahun” dengan fungsi keanggotaan m muda
M (tua) = himpunan samarnya ”umur diatas 50 tahun” dengan fungsi keanggotaan m tua.
Maka nilai dari M dapat dilihat dari Gambar 2.4 berikut ini :
Degree of
Membeship Remaja Muda Tua
1
0 20 40 50
Gambar 2.4 : Fungsi keanggotaan kelompok umur Sumber : Russel (2002)
2.2.2 Membership Function
Di dalam fuzzy systems, fungsi keanggotaan memainkan peranan yang sangat
penting untuk merepresentasikan masalah dan menghasilkan keputusan yang
akurat. Menurut Jang et al. (1997), Membership Function (MF) adalah kurva
yang memetakan setiap titik pada input-an (universe of discourse) ke sebuah
nilai keanggotaan (derajat keanggotaan) yang memiliki nilai antara 0 dan 1 yang
didefinisikan secara matematis oleh persamaan:
μA(x) : X → [0, 1] (2.3)
Setiap elemen x dipetakan pada sebuah nilai keanggotaan oleh MF. Nilai ini merupakan derajat keanggotaan dari x pada himpunan fuzzy A.
μA(x) = Degree (x ∈ A) (2.4)
Dimana nilai keangotaan dari x dibatasi oleh:
0 ≤ μA(x) ≤ 1 (2.5)
Fungsi keanggotaan yang umum digunakan adalah: fungsi segitiga, fungsi trapesium, fungsi gaussian, fungsi bell dan fungsi sigmoid. Bentuk dari masing- masing fungsi keanggotaan adalah sebagai berikut (Jang et al. 1997) :
1. Fungsi linear
Pada representasi linear, pemetaan input ke dejarat keanggotaannya digambarkan sebagai suatu garis lurus. Ada dua keadaan himpunan fuzzy linear, yaitu :
a. Kenaikan himpunan dimulai pada nilai domain yang memiliki derajat keanggotaan nol (0) bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan lebih tinggi, seperti pada Gambar 2.5 :
1 0.8 0.6 0.4 0.2 0
1 0.8 0.6
0.4 0.2 0
Derajat Keanggotaan
Gambar 2.5 : Fungsi keanggotaan linear naik
Sumber : Jang et al. (1997)
Fungsi keanggotaan :
(2.6)
b. Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri, kemudian bergerak turun ke nilai domain yang memiliki derajat keanggotaan lebih rendah, seperti pada Gambar 2.6 :
1 0.8 0.6 0.4 0.2 0
1 0.8 0.6
0.4 0.2 0
Derajat Keanggotaan
Gambar 2.6 : Fungsi keanggotaan linear turun Sumber : Jang et al. (1997)
Fungsi keanggotaan :
(2.7)
2. Fungsi segitiga.
Fungsi keanggotaan berbentuk segitiga didefinisikan oleh 3 parameter a, b, c dengan persamaan:
(2.8)
Fungsi segitiga dengan parameter: segitiga (x;0.2,0.6,0.8) ditunjukkan
dalam Gambar 2.7 :
1 0.8 0.6 0.4 0.2 0
1 0.8 0.6 0.4 0.2 0
mf1
Derajat Keanggotaan
Gambar 2.7 : Fungsi keanggotaan segitiga (triangle).
Sumber : Yan et al. (1994)
3. Fungsi Trapesium.
Fungsi keanggotaan berbentuk trapesium didefinisikan oleh 4 parameter a, b, c, d dengan persamaan :
(2.9) Fungsi Trapesium dengan parameter: trapesium (x;0.1,0.2,0.6,0.95) ditunjukkan dalam Gambar 2.8:
1 0.8 0.6 0.4 0.2 0
1 0.8 0.6 0.4 0.2 0
mf1
Derajat Keanggotaan
X
Gambar 2.8 : Fungsi keanggotaan trapesium (trapezoidal).
Sumber : Yan et al. (1994)
4. Fungsi Gaussian.
Fungsi keanggotaan berbentuk Gaussian didefinisikan oleh 2 parameter σ, dan c dengan persamaan:
(2.10)
Fungsi Gaussian dengan parameter: Gaussian (x;0.15,0.5) ditunjukkan dalam Gambar 2.9 berikut ini:
1 0.8 0.6 0.4 0.2 0
1 0.8 0.6 0.4 0.2 0
mf1
Derajat Keanggotaan
X
Gambar 2.9 : Fungsi keanggotaan gaussian. σ = standar deviasi, c = pusat.
Sumber : Jang et al. (1997)
5. Fungsi Bell.
Fungsi keanggotaan berbentuk bell didefinisikan oleh 3 parameter a, b dan c dengan persamaan:
(2.11)
Fungsi Bell dengan parameter: bell (x;0.25,2.5,0.5) ditunjukkan dalam Gambar 2.10:
1 0.8 0.6 0.4 0.2 0
1 0.8 0.6 0.4 0.2 0
mf1
Derajat Keanggotaan
X
Gambar 2.10 : Fungsi keanggotaan Bell.
Sumber : Yan et al. (1994)
Parameter a, b dan c yang menspesifikasikan fungsi Bell ditunjukkan dalam Gambar 2.11 berikut ini:
1 0.8 0.6 0.4 0.2 0
1 0.8 0.6
0.4 0.2
0
mf1
Derajat Keanggotaan
X
c-a c c+a
slope=
-b/2a
Gambar 2.11 : Letak parameter a,b dan c pada fungsi keanggotaan bell.
Sumber : Yan et al. (1994)
6. Fungsi Sigmoid.
Fungsi keanggotaan Sigmoid didefinisikan oleh 2 parameter a dan c dengan persamaan:
(2.12) Jika nilai a > 0, maka fungsi sigmoid akan membuka ke kanan, sedang jika a < 0 maka fungsi sigmoid akan membuka ke kiri. Fungsi Sigmoid membuka ke kanan dengan parameter: sigmoid (x;12,0.25) ditunjukkan dalam Gambar 2.12:
Gambar 2.12 : Fungsi keanggotaan sigmoid membuka ke kanan.
Sumber : Yan et al. (1994)
Sedangkan fungsi Sigmoid membuka ke kiri dengan parameter: sigmoid (x;-12,0.75) ditunjukkan dalam Gambar 2.13 berikut ini:
Gambar 2.13 : Fungsi keanggotaan sigmoid membuka ke kiri.
Sumber : Jang et al. (1997)
2.2.3 Aturan Dasar
Aturan dasar pada kontrol logika fuzzy merupakan suatu bentuk aturan relasi/implikasi “Jika-maka” atau “If-Then” seperti pada pernyataan berikut (Haykin, 1999):
“Jika” X=A dan “jika” Y=B “Maka” Z=C
Jadi aturan dasar pada control logika fuzzy (fuzzy logic control)
ditentukan dengan bantuan seorang pakar yang mengetahui karakteristik objek yang akan dikendalikan. Aturan dasar tersebut dapat dinyatakan dalam bentuk matriks aturan dasar kontrol logika fuzzy. Contoh aturan dasar dari rancangan pengaturan suhu ruangan dapat dilihat pada tabel 2.1.
Tabel 2.1 Contoh matriks aturan dasar perancangan kontrol logika fuzzy Y
X B S K
B K K B
Z
S K S K
K B K B
Dimana :
X : Suhu, Y : Kecepatan Kipas, Z : Sumber Frekuensi
B : Besar, S : Sedang, K : kecil 2.2.4 Defuzzyfication
Defuzzyfication merupakan proses pemetaan himpunan fuzzy kehimpunan tegas (crisp) (Haykin, 1999). Proses ini merupakan kebalikan dari proses fuzzyfikasi.
Proses defuzzyfikasi diekspresikan sebagai berikut :
Z* = defuzzifier (Z) (2.13)
Dimana :
Z = Hasil penalaran fuzzy
Z* = Keluaran kontrol fuzzy logic Defuzzifier = Operasi defuzzier
Metode dalam melakukan defuzzifikasi antara lain : 1. Metode Max (Maximum)
Metode ini juga dikenal dengan metode puncak dimana nilai keluaran dibatasi oleh fungsi :
(2.14)
2. Metode Titik Tengah (Center of Area)
Metode ini juga disebut pusat area. Metode ini lazim dipakai dalam proses defuzzyfikasi. Metode ini diekspresikan dengan persamaan :
(2.15)
3. Metode Rata-Rata (Average)
Metode ini digunakan untuk fungsi keanggotaan keluaran yang simetris.
Persamaan dari metode ini adalah :
(2.16)
4. Metode penjumlahan Titik Tengah (Summing of center area)
Metode ini dinyatakan dengan persamaan :
(2.17)
5. Metode Titik Tengah Area Terbesar.
Dalam metode ini keluaran dipilih berdasarkan titik pusat area terbesar yang ada. Metode ini dinyatakan dalam bentuk :
(2.18)
Selanjutnya keluaran dari defuzzyfikasi tersebut akan digunakan sebagai keluaran kontrol logika fuzzy.
2.3 Neural Networks
Neural Networks (NN) atau Jaringan Syaraf Tiruan (JST) adalah prosesor yang terdistribusi paralel, terbuat dari unit-unit yang sederhana, dan memiliki kemampuan untuk menyimpan pengetahuan yang diperoleh secara eksperimental dan siap pakai untuk berbagai tujuan (Rajasekaran, 2005). JST merupakan sistem adaptif yang dapat mengubah strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun internal yang mengalir melalui jaringan tersebut. Secara sederhana, JST adalah sebuah alat pemodelan data statistik non- linier. JST dapat digunakan untuk memodelkan hubungan yang kompleks antara input dan output untuk menemukan pola-pola pada data.
Jaringan syaraf tiruan merupakan algoritma pembelajaran yang meniru
cara kerja sel syaraf. Selama proses pembelajaran, bobot-bobot dan bias selalu
diperbaharui menggunakan algoritma belajar, jika ada error pada keluaran. Untuk
proses identifikasi, bobot-bobot yang secara langsung memboboti masukan inilah
yang dinamakan sebagai parameter yang dicari, seperti terlihat pada Gambar 2.14,
parameter yang dicari adalah harga W
1, W
2, W
3dan Wn. Dalam identifikasi secara
on-line, neuron ataupun jaringan neuron akan selalu ‘belajar’ setiap ada data
masukan dan keluaran.
X1
Xn
X3
X2
∑
YW1
W2
W3
Wn
Gambar 2.14: Proses komunikasi antar neuron Sumber : Rajasekaran (2005)
Gambar 2.14 memperlihatkan bahwa NN terdiri atas satuan-satuan pemroses berupa neuron. Y sebagai output menerima input dari neuron X
1, X
2, X
3,
…, X
ndengan bobot W
1, W
2, W
3, …, W
nKonsep jaringan saraf tiruan bermula pada makalah
. Hasil penjumlahan seluruh impuls neuron dibandingkan dengan nilai ambang tertentu melalui fungsi aktivasi f setiap neuron. Fungsi aktivasi digunakan sebagai penentu keluaran suatu neuron.
Waffen McCulloch dan Walter Pitts pada tahun 1943. Dalam makalah tersebut mereka mencoba untuk memformulasikan model matematis sel-sel otak. Metode yang dikembangkan berdasarkan sistem saraf biologi ini, merupakan suatu langkah maju dalam industri komputer.
Suatu jaringan saraf tiruan memproses sejumlah besar informasi secara paralel dan terdistribusi, hal ini terinspirasi oleh model kerja otak biologis.
Zurada (1992) mendefinisikan jaringan syaraf tiruan sebagai berikut: “Sistem saraf tiruan atau jaringan saraf tiruan adalah sistem selular fisik yang dapat memperoleh, menyimpan dan menggunakan pengetahuan yang didapatkan dari pengalaman”. Haykin (1994) mendefinisikan jaringan saraf sebagai berikut:
“Sebuah jaringan saraf adalah sebuah prosesor yang terdistribusi paralel dan mempunyai kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk digunakan”. Hal ini menyerupai kerja otak dalam dua hal yaitu:
1. Pengetahuan diperoleh oleh jaringan melalui suatu proses belajar;
2. Kekuatan hubungan antar sel saraf yang dikenal dengan bobot sinapsis
digunakan untuk menyimpan pengetahuan.
2.3.1 Backpropagation Neural Network (BPNN)
Salah satu metode pelatihan dalam NN adalah pelatihan terbimbing (supervised learning). BPNN merupakan salah satu metode yang menggunakan supervised learning. Pada pelatihan terbimbing diperlukan sejumlah masukan dan target yang berfungsi untuk melatih jaringan hingga diperoleh bobot yang diinginkan. Pada setiap kali pelatihan, suatu input diberikan ke jaringan, kemudian jaringan akan memproses dan mengeluarkan keluaran. Selisih antara keluaran jaringan dengan target merupakan kesalahan yang terjadi, dimana jaringan akan memodifikasi bobot sesuai dengan kesalahan tersebut.
Algoritma pelatihan Backpropagation Neural Network (BPNN) pertama kali dirumuskan oleh Werbos dan dipopulerkan oleh Rumelhart dan Mc.Clelland (Hagan, 1996). Pada supervised learning terdapat pasangan data input dan output yang dipakai untuk melatih JST hingga diperoleh bobot penimbang (weight) yang diinginkan. Penimbang itu sendiri adalah sambungan antar lapis dalam JST.
Algoritma ini memiliki proses pelatihan yang didasarkan pada interkoneksi yang sederhana, yaitu apabila keluaran memberikan hasil yang salah, maka penimbang dikoreksi agar galat dapat diperkecil dan tanggapan JST selanjutnya diharapkan dapat mendekati nilai yang benar. BPNN juga berkemampuan untuk memperbaiki penimbang pada lapis tersembunyi (hidden layer).
Wij W’jk U’k
Uj
Input Layer Hidden Layer
Output Layer
Xi Yj Zk Ok Target
Gambar 2.15 : Lapis dan aliran sinyal dalam algoritma BPNN
Sumber : Fausset (1994)
Secara garis besar BPNN terdiri atas tiga lapis (layer) yaitu lapis masukan (input layer) x
i, lapis tersembunyi (hidden layer) y
j, dan lapis keluaran (output layer) z
k. Lapis masukan dan lapis tersembunyi dihubungkan dengan penimbang w
ijdan antara lapis tersembunyi dan lapis keluaran dihubungkan oleh penimbang w’
jkPada dasarnya, metode pelatihan backpropagation terdiri dari tiga langkah, yaitu : .
1) Data dimasukkan kedalam input node atau jaringan (feedforward);
2) Perhitungan dan propagasi balik dari error yang bersangkutan;
3) Pembaharuan (adjustment) bobot dan bias.
Pada pelatihan BPNN, ketika JST diberi pola masukan sebagai pola pelatihan maka pola tersebut akan menuju ke unit pada lapis tersembunyi untuk diteruskan pada unit yang berada pada lapis keluaran. Keluaran sementara pada lapis tersembunyi u
jakan diteruskan pada lapis keluaran dan lapis keluaran akan memberikan tanggapan yang disebut sebagai keluaran sementara u’
k. Ketika u’
k≠ o
kdimana o
kadalah target yang diharapkan, maka selisih (error) keluaran sementara u’
kUntuk mempercepat proses pelatihan digunakan parameter laju pelatihan (learning rate) yang nilainya berada pada kisaran 0-1. Selain parameter laju pelatihan, untuk mempercepat proses pelatihan dapat digunakan parameter tambahan berupa momentum yang nilainya dijaga antara 0.5 - 0.9. Ketika proses pelatihan selesai dan JST dapat digunakan untuk menyelesaikan masalah, tahap tersebut disebut sebagai tahap penggunaan yang disebut mapping atau pemetaan.
akan disebarkan mundur (backward) pada lapis tersembunyi dan diteruskan ke unit pada lapis masukan. Oleh karena itu proses tersebut disebut propagasi balik (backpropagation) dimana tahap pelatihan dilakukan dengan merubah penimbang yang menghubungkan unit dalam lapis JST ketika diberi umpan maju dan umpan balik.
Algoritma pelatihan BPNN terdiri dari dua tahap, yaitu feedforward
propagation dan feed backward propagation. Untuk selengkapnya, notasi-notasi
yang akan digunakan pada algoritma BPNN adalah :
x Data trainning untuk input x = ( x
1,…,x
i,…,x
nt
)
Data trainning untuk output (target/desired output) t = ( t
1,…,t
k,…,t
m )α
Learning rate, yaitu parameter yang mengontrol perubahan bobot selama pelatihan. Jika learning rate besar, jaringan semakin cepat belajar, tetapi hasilnya kurang akurat. Learning rate biasanya dipilih antara 0 dan 1 Unit input ke-i. untuk unit input, sinyal yang masuk dan keluar pada suatu unit dilambangkan dengan variabel yang sama, yaitu
Hidden unit ke-j. sinyal input pada dilambangkan dengan . Sinyal output (aktivasi) untuk dilambangkan dengan
Bias untuk hidden unit ke-j
Bobot antara unit input ke-i dan hidden unit ke-j
Unit output ke-k. sinyal input ke dilambangkan . Sinyal output (aktivasi) untuk dilambangkan dengan
Bias untuk unit output ke-k
Bobot antara hidden unit ke-j dan unit output ke-k Faktor koreksi error untuk bobot
Faktor koreksi error untuk bobot
Langkah-langkah Algoritma Backpropagation Neural Network (BPNN).
a. Algoritma Pelatihan
Pelatihan suatu jaringan dengan algoritma backpropagation meliputi dua tahap : 1. Feedforward propagation.
2. Feed backward propagation.
Selama proses feedforward propagation, tiap unit masukan (x
i) menerima
sebuah masukan sinyal ini ke tiap-tiap lapisan tersembunyi z
1,…..,z
p. Tiap unit
tersembunyi ini kemudian menghitung aktivasinya dan mengirimkan sinyalnya ( )
ke tiap unit keluaran. Tiap unit keluaran menghitung aktivasinya untuk membentuk respon pada jaringan untuk memberikan pola masukan. Selama pelatihan, tiap unit keluaran membandingkan perhitungan aktivasinya dengan nilai targetnya untuk menentukan kesalahan pola tersebut dengan unit itu.
Berdasarkan kesalahan ini, faktor (k = 1,..,m) dihitung. digunakan untuk menyebarkan kesalahan pada unit keluaran y
kkembali ke semua unit pada lapisan sebelumnya (unit-unit tersembunyi yang dihubungkan ke ), selain itu juga digunakan (nantinya) untuk meng-update bobot-bobot antara keluaran dan lapisan tersembunyi. Dengan cara yang sama, faktor (j = 1,…,p) dihitung untuk tiap unit tersembunyi , tanpa perlu untuk menyebarkan kesalahan kembali ke lapisan masukan, tetapi δ
jSetelah seluruh faktor δ ditentukan, bobot untuk semua lapisan diatur secara serentak. Pengaturan bobot w
digunakan untuk meng-update bobot-bobot antara lapisan tersembunyi dan lapisan masukan.
jk
(dari unit tersembunyi ke unit keluaran ) didasarkan pada faktor dan aktivasi dari unit tersembunyi didasarkan pada faktor dan aktivasi unit masukan. Untuk langkah selengkapnya adalah (Laurence, 1994) :
b. Prosedur Pelatihan
Berikut adalah langkah-langkah pelatihan backpropagation secara lebih detail.
Langkah 0 : Inisialisasi bobot dan bias. (sebaiknya diatur pada nilai acak yang kecil, disekitar 0 dan 1 atau -1 (bias positif atau negatif));
Langkah 1 : Jika kondisi berhenti belum tercapai, lakukan langkah 2-9;
Langkah 2 : Untuk setiap data trainning, lakukan langkah 3-8.
Umpan Maju (Feedforward Propagation):
Langkah 3 : Tiap unit input (x
i, i = 1,…, n) menerima sinyal x
idan
menyebarkan sinyal ini ke seluruh unit lapisan di atasnya
(hidden unit). Input x
iyang dipakai adalah input trainning
data yang sudah diskalakan. Pertama, input yang mungkin dipakai dalam sistem dicari nilai terendah dan tertingginya, kemudian, skala yang digunakan tergantung dari fungsi aktivasinya;
Langkah 4 : Setiap hidden unit ( , j = 1,…, p) akan menjumlahkan bobot sinyal masukannya, termasuk biasnya;
(2.19)
Dimana v
oj= bias pada unit tersembunyi j, kemudian aplikasikan fungsi aktivasi yang telah ditentukan untuk menghitung sinyal output dari hidden unit yang bersangkutan;
= f ( ) (2.20)
lalu kirimkan sinyal output ini keseluruh unit pada lapisan diatasnya (output unit).
Langkah 5 : Tiap unit ouput ( , k = 1,…, m) akan menjumlahkan bobot sinyal masukannya, termasuk biasnya;
(2.21)
Dimana w
ok= bias pada unit keluaran k, kemudian aplikasikan fungsi aktivasi yang telah ditentukan untuk menghitung sinyal output dari unit output yang bersangkutan;
= f ( ) (2.22)
lalu kirimkan sinyal output ini keseluruh unit pada lapisan
diatasnya (output unit).
Propagasi error (Feed backward propagation).
Langkah 6 : Tiap unit ouput ( , k = 1,…, m) menerima pola target (desired output) yang sesuai dengan pola input (input trainning pattern) untuk menghitung kesalahan (error) antara target dengan output yang dihasilkan jaringan;
(2.23) Dimana : δ
k= error pada node ke-k
= target ke-k f’(x) = f(x) [1-f(x)]
Output trainning data t
kGunakan faktor
telah diskalakan menurut fungsi aktivasi yang dipakai.
untuk menghitung koreksi bobotnya (digunakan untuk memperbaharui w
jknantinya);
(2.24)
Hitung koreksi biasnya (digunakan untuk memperbaharui w
oknantinya)
(2.25)
Kirimkan faktor δ
kini ke unit-unit pada lapisan dibawahnya (layer pada langkah 7);
Langkah 7 : Setiap hidden unit ( , j = 1,…, p) menjumlahkan input delta dari unit-unit lapisan diatasnya (yang dikirim dari layer pada langkah 6) yang sudah berbobot;
(2.26)
Kalikan hasilnya dengan turunan dari fungsi aktivasi yang
digunakan untuk menghasilkan faktor koreksi error dimana :
(2.27)
Faktor ini digunakan untuk menghitung koreksi error ( ) (digunakan untuk memperbaharui v
ijnanti), dimana;
(2.28)
Selain itu juga dihitung koreksi bias (digunakan untuk memperbaharui v
ojnanti), dimana;
(2.29)
Pembaharuan bobot (adjustment) dan bias.
Langkah 8 : Tiap unit output ( , k = 1,…, m) akan mengupdate bias dan bobotnya dari setiap hidden unit (j = 0,…, p) ;
(baru) = (lama) + Δ
(2.30)
Tiap unit hidden unit ( , j = 1,…, p) akan mengupdate bias dan bobotnya dari setiap unit input (i = 0,…,n) :
(baru) = (lama) + Δ (2.31)
Langkah 9 : Test kondisi berhenti.
Jika stop condition (kondisi berhenti) telah terpenuhi, maka proses pelatihan dapat dihentikan. Ada dua cara yang dapat dilakukan untuk menentukan stopping condition (test kondisi berhenti), yaitu :
Cara 1 : Membatasi jumlah iterasi yang ingin dilakukan
(satu iterasi merupakan perulangan langkah 3
sampai dengan langkah 8 untuk semua trainning data yang ada). Jika jumlah iterasi telah terpenuhi, maka proses pelatihan akan berhenti.
Cara 2 : Membatasi error. Untuk metode BPNN, metode yang digunakan adalah Mean Square Error, untuk menghitung rata-rata error antara output yang dikehendaki pada trainning data dengan output yang dihasilkan oleh jaringan. Besarnya persen error ini tergantung kepresisian yang dibutuhkan oleh sistem yang bersangkutan.
c. Prosedur Pengujian :
Setelah pelatihan, jaringan saraf backpropagation diaplikasikan dengan hanya menggunakan tahap perambatan maju dari algoritma pelatihan. Prosedur aplikasinya adalah sebagai berikut :
Langkah 0 : Inisialisasi bobot (dari algoritma pelatihan).
Langkah 1 : Untuk tiap vektor masukan, lakukan langkah 2 - langkah 4.
Langkah 2 : for i = 1,…, n : atur aktivasi unit masukan x
iLangkah 3
. : for j = 1,…, p :
(2.32)
z
j= f ( ) (2.33)
for k = 1,…, m : Langkah 4 :
(2.34)
y
k= f ( ) (2.35)
Langkah 5 : Jika y
k≥ 0,5 maka y
k= 1, else y
k= 0.
2.3.2 Algoritma Kohonen Map
Kohonen Map atau bisa disebut Self Organizing Map diperkenalkan pertama kali oleh Prof. Teuvo Kohonen dari Finlandia pada tahun 1982 (Kohonen, 1982). Kohonen map merupakan salah satu algoritma jaringan syaraf tiruan yang cukup unik karena membangun sebuah topology preserving map dari ruang berdimensi tinggi ke dalam neuron-neuron sebagai representasi dari datapoint yang ada.
Kohonen map merupakan salah satu metode jaringan syaraf tiruan unsupervised learning (tidak terawasi). Jaringan ini tidak mendapatkan target, sehingga JST mengatur bobot interkoneksi sendiri. Belajar tanpa pengawasan (Self Organizing Learning) adalah belajar mengklasifikasikan tanpa dilatih. Pada proses belajar tanpa pengawasan, JST akan mengklasifikasikan contoh pola- pola masukan yang tersedia ke dalam kelompok yang berbeda-beda. Ketika data diberikan ke dalam jaringan syaraf, data akan mengatur struktur dirinya sendiri untuk merefleksikan dari pola yang diberikan. Pada kebanyakan model ini, batasan mengacu pada determinasi kekuatan antar neuron.
Pada jaringan kohonen, suatu lapisan yang berisi neuron-neuron akan menyusun dirinya sendiri berdasarkan input nilai tertentu dalam suatu kelompok yang dikenal dengan istilah cluster. Selama proses penyusunan diri, cluster yang memiliki vektor bobot paling cocok dengan pola input (memiliki jarak yang paling dekat) akan terpilih sebagai pemenang. Neuron yang menjadi pemenang beserta neuron-neuron tetangganya akan memperbaiki bobot-bobotnya.
Langkah-langkah Algoritma Kohonen
Berikut merupakan langkah-langkah algoritma kohonen : Langkah 0 : Inisialisasi bobot :
Set parameter-parameter tetangga
Set parameter learning rate
Langkah 1 : Kerjakan jika kondisi berhenti bernilai FALSE a. Untuk setiap vektor input x, kerjakan :
• Untuk setiap j, hitung :
bobot
i=
• Bandingkan bobot
i• Untuk bobot
untuk mencari bobot terkecil
i