Sistem Syaraf Buatan
PENDAHULUAN MATLAB Matlab singkatan dari Matrix Laboratory. Matlab merupakan bahasa pemrogaman yang dikembangkan oleh The Mathwork. Inc. Pada awalnya, program ini merupakan
interface untuk koleksi rutin-rutin numerik dari proyek LINPACK dan EISPACK, namun sekarang merupakan produk komersial dari perusahaan Mathworks, Inc. MATLAB telah berkembang menjadi sebuah environment pemrograman yang canggih yang berisi fungsi-fungsi built-in untuk melakukan tugas pengolahan sinyal, aljabar linier, dan kalkulasi matematis lainnya. MATLAB juga berisi toolbox yang berisi fungsi-fungsi tambahan untuk aplikasi khusus . MATLAB bersifat extensible, dalam arti bahwa seorang pengguna dapat menulis fungsi baru untuk ditambahkan pada library ketika fungsi-fungsi built-in yang tersedia tidak dapat melakukan tugas tertentu. Kemampuan pemrograman yang dibutuhkan tidak terlalu sulit bila kita telah memiliki pengalaman dalam pemrograman bahasa lain seperti C, PASCAL, atau FORTRAN. Bahasa pemograman ini banyak digunakan untuk perhitungan numerik keteknikan, komputasi simbolik, visualisasi grafis, analisis data matematis, statistika, simulasi pemodelan, dan desain GUI (graphical user interface). JARINGAN SYARAF BIOLOGI Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan yang luar biasa. Otak terdiri dari neuron-neuron dan penghubung yang disebut sinapsis. Neuron bekerja berdasarkan impuls/sinyal yang diberikan pada neuron. Neuron meneruskannya pada neuron lain. Diperkirakan manusia memiliki 1012 neuron dan 6.1018 sinapsis. Dengan jumlah yang begitu banyak, otak mampu mengenali pola, melakukan perhitungan, dan mengontrol organ-organ tubuh dengan kecepatan yang lebih tinggi dibandingkan komputer digital. Sebagai perbandingan, pengenalan wajah seseorang yang sedikit berubah (misal memakai topi, memiliki jenggot tambahan, dll) akan lebih cepat dilakukan manusia dibandingkan komputer. Pada waktu lahir, otak kemampuannya
membentuk
mempunyai sendiri
struktur yang menakjubkan karena
aturan-aturan/pola berdasarkan pengalaman
yang diterima. Jumlah dan kemampuan neuron berkembang seiring dengan pertumbuhan fisik manusia, terutama pada umur 0-2 tahun. Pada 2 tahun pertama umur manusia, terbentuk 1 juta sinapsis per detiknya.
Halaman
1
Sistem Syaraf Buatan
Gambar Jaringan Syaraf Pada Manusia
Neuron memiliki 3 komponen penting yaitu dendrit, soma dan axon. Dendrit menerima sinyal dari neuron lain. Sinyal/tersebut berupa impuls elektrik yang dikirim melalui celah sinaptik melalui proses kimiawi. Sinyal tersebut dimodifikasi (diperkuat/diperlemah) di celah sinaptik. Berikutnya, soma menjumlahkan semua sinyal-sinyal yang masuk. Kalau jumlahan tersebut cukup kuat dan melebihi batas ambang (threshold), maka sinyal tersebut akan diteruskan ke sel lain melalui axon. Frekuensi penerusan sinyal berbeda-beda antara satu sel dengan yang lain. Neuron biologi merupakan sistem yang "fault tolerant" dalam 2 hal. Pertama, manusia dapat mengenali sinyal input yang agak berbeda dari yang pernah kita terima sebelumnya. Sebagai contoh, manusia sering dapat mengenali seseorang yang wajahnya pernah dilihat dari foto, atau dapat mengenali seseorang yang wajahnya agak berbeda karena sudah lama tidak dijumpainya. Kedua, otak manusia tetap mampu bekerja meskipun beberapa neuronnya tidak mampu bekerja dengan baik. Jika sebuah neuron rusak, neuron lain kadang-kadang dapat dilatih untuk menggantikan fungsi sel yang rusak tersebut. JARINGAN SYARAF TIRUAN Berikut adalah beberapa definisi JST :
JST adalah suatu teknik pemrosesan informasi berbasis komputer yang mensimulasikan dan memodelkan sistem syaraf biologis.
Suatu model matematik yang mengandung sejumlah besar elemen pemroses yang diorganisasikan dalam lapisan-lapisan.
Suatu sistem komputasi yang dibuat dari sejumlah elemen pemroses yang sederhana dan saling diinterkoneksikan untuk memproses informasi melalui masukan dari luar dan mampu inresponsi keadaan yang dinamis.
Halaman
2
Sistem Syaraf Buatan
JST adalah suatu teknologi komputasi yang berbasis hanya pada model syaraf biologis dan mencoba mensimulasikan tingkah laku dan kerja model syaraf. Jaringan syaraf tiruan (JST) adalah sistem pemroses informasi yang memiliki
karakteristik mirip dengan jaringan syaraf biologi. JST dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi, dengan asumsi bahwa :
Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron).
Sinyal dikirirnkan diantara neuron-neuron melalui penghubung-penghubung.
Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal.
Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi (biasanya bukan fungsi linier) yang dikenakan pada jumlahan input yang diterima. Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang.
Keuntungan Menggunakan Komputasi dengan JST : Kemampuan dan proses komputasi pada JST memberikan keuntungan-keuntungan sebagai berikut : 1. JST
bersifat
adaptif terhadap perubahan
parameter
yang
mempengaruhi
karakteristik sistem, sehingga pada proses belajar, JST mampu belajar secara adaptif dan melaksanakan tugas berbasis pada data yang diberikan saat pelatihan. 2. JST memiliki kekebalan atau toleran terhadap kesalahan. Artinya, JST tetap berfungsi walaupun ada ketidak-lengkapan data yang dimasukkan. JST mempunyai kemampuan mengisi bagian masukan yang kurang lengkap sedemikian rupa sehingga tetap diperoleh keluaran yang lengkap. 3. JST dapat dilatih memberikan keputusan dengan memberikan set pelatihan sebelumnya untuk mencapai target tertentu, sehingga JST mampu membangun dan memberikan jawaban sesuai dengan informasi yang diterima pada proses pelatihan. 4. JST mempunyai struktur paralel dan terdistribusi. Artinya, komputasi dapat dilakukan oleh lebih dari satu elemen pemroses yang bekerja secara simultan. 5. JST mampu mengklasiflkasi pola masukan dan pola keluaran. Melalui proses penyesuaian, pola keluaran dihubungkan dengan masukan yang diberikan oleh JST. 6. JST mengurangi derau, sehingga dihasilkan keluaran yang lebih bersih. 7. JST dapat dimanfaatkan pada proses optimisasi penyelesaian suatu masalah. 8. JST dapat digunakan pada proses pengendalian sistem agar masukan memperoleh tanggapan yang diinginkan.
Halaman
3
Sistem Syaraf Buatan
Algoritma Umum Jaringan Saraf Tiruan Algoritma pembelajaran/pelatihan jaringan saraf tiruan : Dimasukkan n contoh pelatihan ke dalam jaringan saraf tiruan. Lakukan : 1. Inisialisasi bobot-bobot jaringan. Set i = 1. 2. Masukkan contoh ke-i (dari sekumpulan contoh pembelajaran yang terdapat dalam set pelatihan) ke dalam jaringan pada lapisan input. 3. Cari tingkat aktivasi unit-unit output menggunakan algoritma aplikasi.
If then
kinerja jaringan memenuhi standar yang ditentukan sebelumnya (memenuhi syarat berhenti) exit.
4. Update bobot-bobot dengan menggunakan aturan pembelajaran jaringan.
5. If i=n, then reset i = 1. Else i = i - 1. Ke langkah 2. Algoritma aplikasi/inferensi jaringan saraf tiruan : Dimasukkan sebuah contoh pelatihan ke dalam jaringan saraf tiruan. Lakukan : 1. Masukkan kasus ke dalam jaringan pada lapisan input. 2. Hitung tingkat aktivasi node-node jaringan. 3. Untuk jaringan koneksi umpan maju, jika tingkat aktivasi dari semua unit outputnya telah dikalkulasi, maka exit. Untuk jaringan koneksi balik, jika tingkat aktivasi dari semua unit output menjadi konstan atau mendekati konstan, maka exit. J jika tidak, kembali ke langkah 2. Jika jaringannya tidak stabil, maka exit dan fail. SEJARAH JARINGAN SYARAF TIRUAN Jaringan syaraf tiruan sederhana pertama kali diperkenalkan oleh McCulloch dan Pitts di tahun 1943. McCulloch dan Pitts menyimpulkan bahwa kombinasi beberapa neuron sederhana menjadi sebuah sistem neural akan meningkatkan kemampuan komputasinya. Bobot dalam jaringan yang diusulkan oleh McCulloch dan Pitts diatur untuk melakukan fungsi logika sederhana. Fungsi aktivasi yang dipakai adalah fungsi threshold. Tahun 1958, Rosenblatt memperkenalkan dan mulai mengembangkan model jaringan yang disebut Perceptron. Metode pelatihan diperkenalkan untuk mengoptimalkan hasil iterasinya.
Halaman
4
Sistem Syaraf Buatan
Widrow dan Hoff (1960) mengembangkan perceptron dengan memperkenalkan aturan pelatihan jaringan, yang dikenal sebagai aturan delta (atau sering disebut kuadrat rata-rata terkecil). Aturan ini akan mengubah bobot perceptron apabila keluaran yang dihasilkan tidak sesuai dengan target yang diinginkan. Apa yang dilakukan peneliti terdahulu hanya menggunakan jaringan dengan layer tunggal (single layer). Rumelhart (1986) mengembangkan perceptron menjadi
Backpropagation, yang memimgkinkan jaringan diproses melalui beberapa layer. Selain itu, beberapa model jaringan syaraf tiruan lain juga dikembangkan oleh Kohonen (1972), Hopfield (1982), dll. Pengembangan yang ramai dibicarakan sejak tahun 1990an adalah aplikasi model-model jaringan syaraf tiruan untuk menyelesaikan berbagai masalah di dunia nyata.
Jaringan Syaraf Tiruan ditentukan oleh tiga hal :
Pola hubungan antar neuron (disebut arsitektur jaringan)
Metode untuk menentukan bobot penghubung (disebut metode learning/training)
Fungsi aktivasi
ARSITEKTUR JARINGAN Beberapa arsitektur jaringan yang sering dipakai dalam jaringan syaraf tiruan antara lain :
Jaringan Layar Tunggal (single layer network) Dalam jaringan ini, sekumpulan input neuron dihubungkan langsung dengan sekumpulan outputnya. Dalam beberapa model (misal perceptron), hanya ada sebuah unit neuron output.
Jaringan Layar Jamak (multi layer network) Jaringan layar jamak merupakan perluasan dari layar tunggal. Dalam jaringan ini, selain unit input dan output, ada unit-unit lain (sering disebut layar tersembunyi /
hidden layer). Dimungkinkan pula ada beberapa layar tersembunyi. Sama seperti pada unit input dan output, unit-unit dalam satu layar tidak saling berhubungan.
Jaringan Recurrent Model jaringan reccurent mirip dengan jaringan layar tunggal ataupun ganda. Hanya saja, ada neuron output yang memberikan sinyal pada unit input (sering disebut feedback loop).
Halaman
5
Sistem Syaraf Buatan
PARADIGMA PEMBELAJARAN Berdasarkan cara memodifikasi bobotnya, ada 2 macam pelatihan yang dikenal yaitu dengan supervisi (supervised) dan tanpa supervisi (unsupervised). Dalam pelatihan dengan supervisi, terdapat sejumlah pasangan data (masukan - target keluaran) yang dipakai untuk melatih jaringan hingga diperoleh bobot yang diinginkan. Pasangan data tersebut berfungsi sebagai "guru" untuk melatih jaringan hingga diperoleh bentuk yang terbaik. "Guru" akan memberikan informasi yang jelas tentang bagaimana sistem harus mengubah dirinya untuk meningkatkan unjuk kerjanya. Pada setiap kali pelatihan, suatu input diberikan ke jaringan. Jaringan akan memproses dan mengeluarkan keluaran. Selisih antara keluaran jaringan dengan target (keluaran yang diinginkan) merupakan kesalahan yang terjadi. Jaringan akan memodifikasi bobot sesuai dengan kesalahan tersebut. Jaringan perceptron, ADALINE dan backpropagation merupakan model-model yang menggunakan pelatihan dengan supervisi. Sebaliknya, dalam pelatihan tanpa supervisi (unsupervised learning) tidak ada "guru" yang akan mengarahkan proses pelatihan. Dalam pelatihannya, perubahan bobot jaringan dilakukan berdasarkan parameter tertentu dan jaringan dimodifikasi menurut ukuran parameter tersebut. Sebagai contoh, dalam model jaringan kompetitif, jaringan terdiri dari 2 layar, yaitu layar input dan layar kompetisi. Layar input menerima data eksternal. Layar kompetitif berisi neuron-neuron yang saling berkompetisi agar memperoleh kesempatan untuk merespon sifat-sifat yang ada dalam data masukan. Neuron yang memenangkan kompetisi akan memperoleh sinyal yang berikutnya ia teruskan. Bobot neuron pemenang akan dimodifikasi sehingga lebih menyerupai data masukan. Sebagai ilustrasi, pelatihan dengan supervisi dapat diandaikan sebagai skripsi yang dibimbing oleh seorang dosen. Pada setiap kali pengumpulan berkas skripsi, dosen akan mengkritik, mengarahkan dan meminta perbaikan agar kualitas skripsi meningkat. Sebaliknya, Dalam pelatihan tanpa supervisi dapat dibayangkan sebagai skripsi tanpa dosen pembimbing. Mahasiswa mengerjakan skripsi sebaik-baiknya berdasarkan ukuran tertentu (misal dibandingkan dengan skripsi yang sudah ada sebelumnya atau dibandingkan dengan hasil skripsi temannya). Berdasarkan hasil yang pernah dilaporkan, model pelatihan dengan supervisi lebih banyak digunakan dan terbukti cocok dipakai dalam berbagai aplikasi. Akan tetapi kelemahan utama pelatihan dengan supervisi adalah dalam hal pertumbuhan waktu komputasinya yang berorde eksponensial. Ini berarti untuk data pelatihan yang cukup banyak, prosesnya menjadi sangat lambat.
Halaman
6
Sistem Syaraf Buatan
Pelatihan Dengan Supervisi Jaringan memberikan tanggapan dengan mendapatkan target tertentu. Sebelum jaringan mengubah sendiri bobotnya untuk mencapai target, bobot interkoneksi diinisialisasi. Proses belajar JST dengan pengawasan adalah proses belajar dengan memberikan latihan untuk mencapai suatu target keluaran yang ditentukan. JST mendapatkan latihan untuk mengenal pola-pola tertentu. Dengan memberikan target keluaran, perubahan masukan akan diadaptasi oleh keluaran dengan mengubah bobot interkoneksinya mengikuti algoritma belajar yang ditentukan. Set pelatihan dipilih dari fungsi keluaran maksimum setiap keadaan parameter yang diubah. Dengan menginisialisasi bobot tiap sel, JST akan mencari eror terkecil, sehingga bentuk fungsi keluaran mendekati target yang diinginkan. Berdasarkan proses belajar yang dilakukan, kita perlu memperhatikan beberapa hal dalam menyusun set pelatihan, yaitu : a. Pemberian urutan pola yang akan diajarkan b. Kriteria perhitungan eror c. Kriteria proses belajar d. Jumlah iterasi yang harus dilalui e. Inisialisasi bobot dan parameter awal Pelatihan dilakukan dengan memberikan pasangan pola-pola masukan dan keluaran. Untuk keperluan pengendalian, pasangan pola tidak mengikuti rumusan tertentu. JST harus dapat mengadaptasi masukan yang acak supaya keluaran tetap mengikuti target. Lebih lanjut, proses pelatihan dilakukan dengan memberikan pola yang menggunakan masukan acak dan bobot interkoneksi yang besar. Dengan pemberian bobot yang besar, perbedaan target dan keluaran berkurang lebih cepat, sehingga proses adaptasi akan lebih cepat pula. Salah satu proses belajar dengan pengawasan adalah proses belajar menggunakan algoritma propagasi balik. Proses belajar jaringan umpan balik dituliskan dalam bentuk algoritma propagasi balik yang dikenal sebagai JPB. Jaringan Propagasi Balik (JPB) kadang-kadang dikenal sebagai
Multilayer Perceptron (MLP). Anda dapat menggunakan algoritma propagasi balik untuk melatih jaringan lapis banyak. Pelatihan Tanpa Supervisi Pada pelatihan tanpa supervisi jaringan tidak mendapatkan target, sehingga JST mengatur bobot interkoneksi sendiri. Belajar tanpa pengawasan kadang-kadang diacu sebagai self-organizing learning, yakni belajar mengklasifikasikan tanpa dilatih. Pada proses belajar tanpa pengawasan, JST akan mengklasifikasi-kan contoh pola-pola
Halaman
7
Sistem Syaraf Buatan
masukan yang tersedia ke dalam kelompok yang berbeda-beda. Contoh JST dengan belajar tanpa pengawasan adalah jaringan Kohonen.
Paradigma
AG
SG ARTI DH CH
Masalah Yang Diselesaikan Klasifikasi data tanpa pengawasan Pemrosesan informasi manusia Klasifikasi pola kompleks Pemrosesan pemtaraan Optimasi kombinasional
On-Line /Off-Line
Penyepadanan Tipe Belajar Pembatasan Pola
On-line
Ya
On-line
Ya
On-line
Ya
On-line
Tidak
On-line
Ya
Keterbatasan Hebbian tempat penyimpanan Keterbatasan Hebbian tempat penyimpanan Competitiv Dibatasi pada e decay biner Dibatasi pada Hebbian biner Hebbian/ Keterbatasan kompetitif memori Belajar Hebbian ekstensif off-line Keterbatasan Hebbian tempat penyimpanan Keterbatasan Hebbian tempat penyimpanan
BAM
Pengenalan citra
Off-line
Ya
ABAM
Proses pola On-line analog kontinu
Ya
CABAM
Optimasi On-line kombinatorial dan off line
Ya
LM
Proses Monitor Off-line
Ya
Hebbian
LAM
Kontrol sistem Off-line
Ya
Hebbian
OLAM
Pemrosesan sinyal
Ya
Hebbian
Off-line
Tak ada laporan
Implementasi Optik dan elektronik Elektronik Komputer Syaraf Elektronika Optik Elektronika Optik Simulasi komputer Komputer Syaraf Simulasi komputer Mekanik Elektronik Magnetik
Keterbatasan Simulasi tempat komputer penyimpanan Belajar ekstensif off- Optik line
Tabel Pelatihan Tanpa Supervisi
Paradigma BSB
Masalah yang diselesaikan Klasifikasi real
time
Perceptron Prediksi Adaline/ Madaline BP
Halaman
On-line / Off-line
Penyepadanan Tipe Belajar Pembatasan Pola
Off-line
Ya
Koreksi eror
Off-line
Ya
Koreksi eror
Ya
Koreksi eror
Ya
Koreksi eror
Prediksi pengOff-line hapusan derau Pengenalan Off-line tingkah laku
Belajar off-
line Tak ada laporan Belajar off-
line Belajar off-
line
Implementasi Simulasi Komputer Mesin perceptron Magnetik optik Elektronik optik VLSi
8
Sistem Syaraf Buatan
AVQ
Self-organizing Off-line data
Ya
Koreksi eror
CPN
Selfprogramming
Ya
Hebbian
BM
Optimasi Off-line kombinatorial
Off-line
Hebbian dan annealing Tabel Pelatihan Dengan Supervisi Ya
Belajar off-
line Lack of control w/o star mapping Belajar offline
Daftar singkatan : Akronim
Definisi
CPN AG BM SG ART1 DH CH BAM ABAM CABAM LM LAM OLAM BSB PERCEP Adaline Adaptive Madaline BP AVQ
Counter propagation Additive Grossberg Boltzman Machine Shunting Grossberg Adaptive Resonance Theory Biner Hopfield Diskrit Hopfield Kontinu Bidirectional Associative Memory Diskrit Bidirectional Associative Memory Adaptive Competitive ABAM Learning Matrix Linear Associative Memory Optimal Linear Associative Memory Brain State in a Box Perceptron Linear Element Multiple Adaptive Linear Element Back Propagation Adaptive Vektor Quantizer
Neural-computer
Neural-computer
Elektronik optik VLSi
BACKPROPAGATION Kelemahan JST yang terdiri dari layar tunggal membuat perkembangan JST menjadi terhenti pada sekitar tahun 1970 an. Penemuan backpropagation yang terdiri dari beberapa layar membuka kembali cakarawala. Terlebih setelah berhasil ditemukannya berbagai aplikasi yang dapat diselesaikan dengan Backpropagation, membuat JST semakin diminati orang.
Halaman
9
Sistem Syaraf Buatan
JST dengan layar tunggal memiliki keterbatasan dalam pengenalan pola. Kelemahan ini bisa ditanggulangi dengan menambahkan satu/beberapa layar tersembunyi diantara layar masukan dan keluaran. Meskipun penggunaan lebih dari satu layar tersembunyi memiliki kelebihan manfaat untuk beberapa kasus, tapi pelatihannya memerlukan waktu yang lama. Maka umumnya orang mulai mencoba dengan sebuah layar tersembunyi lebih dahulu. Seperti halnya model JST lain, Backpropagation melatih jaringan untuk mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa (tapi tidak sama) dengan pola yang dipakai selama pelatihan. Arsitektur Backpropagation Backpropagation memiliki beberapa unit yang ada dalam satu atau lebih layar tersembunyi. Gambar berikut adalah arsitektur backpropagation dengan n buah masukan (ditambah sebuah bias), sebuah layar tersembunyi yang terdiri dari p unit (ditambah sebuah bias), serta m buah unit keluaran.
Gambar Arsitektur Backpropagation
Vji merupakan bobot garis dari unit masukan xi ke unit layar tersembunyi VJ (VJO merupakan bobot garis yang menghubungkan bias di unit masukan ke unit layar tersembunyi Zj. Wkj merupakan bobot dari unit layar tersembunyi ZJ ke unit keluaran yk (wko merupakan bobot dari bias di layar tersembunyi ke unit keluaran Zk)
Halaman
10
Sistem Syaraf Buatan
Pelatihan Standar Backpropagation Pelatihan Backpropagation meliputi 3 fase. Fase pertama adalah fase maju. Pola masukan dihitung maju mulai dari layar masukan hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan. Fase kedua adalah fase mundur. Selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi. Kesalahan tersebut dipropagasikan mundur, dimulai dari garis yang berhubungan langsung dengan unit-unit di layar keluaran. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi.
Fase I: Propagasi Maju Selama propagasi maju, sinyal masukan (=Xi) dipropagasikan ke layar tersembunyi menggunakan fungsi aktivasi yang ditentukan. Keluaran dari setiap unit layar tersembunyi (= Zj) tersebut selanjutnya dipropagasikan maju lagi ke layar tersembunyi di atasnya menggunakan fungsi aktivasi yang ditentukan. Demikian seterusnya hingga menghasilkan keluaran jaringan (= yk). Berikutnya, keluaran jaringan (=yk) dibandingkan dengan target yang harus dicapai (= tk). Selisih tk - yk adalah kesalahan yang terjadi. Jika kesalahan ini lebih kecil dari batas toleransi yang ditentukan, maka iterasi dihentikan. Akan tetapi apabila kesalahan masih lebih besar dari batas toleransinya, maka bobot setiap garis dalam jaringan akan dimodifikasi untuk mengurangi kesalahan yang terjadi.
Fase II: Propagasi Mundur Berdasarkan kesalahan tk - yk, dihitung faktor δk (k = 1,2,..., m) yang dipakai untuk mendistribusikan kesalahan di unit yk ke semua unit tersembunyi yang terhubung langsung dengan yk. δk juga dipakai untuk mengubah bobot garis yang berhubungan langsung dengan unit keluaran. Dengan cara yang sama, dihitung faktor δ- di setiap unit di layar tersembunyi sebagai dasar perubahan bobot semua garis yang berasal dari unit tersembunyi di layar di bawahnya. Demikian seterusnya liingga semua faktor δ di unit tersembunyi yang berhubungan langsung dengan unit masukan dihitung.
Fase III: Perubahan Bobot Setelah semua faktor δ dihitung, bobot semua garis dimodifikasi bersamaan. Perubahan bobot suatu garis didasarkan atas faktor δ neuron di layar atasnya. Sebagai contoh, perubahan bobot garis yang menuju ke layar keluaran didasarkan atas δk yang ada di unit keluaran. Ketiga fase terebut diulang-ulang terus hingga kondisi penghentian dipenuhi. Umumnya kondisi penghentian yang sering dipakai adalah jumlah iterasi atau kesalahan. Iterasi akan dihentikan jika jumlah iterasi
Halaman
11
Sistem Syaraf Buatan
yang dilakukan sudah melebihi jumlah maksimum iterasi yang ditetapkan, atau jika kesalahan yang terjadi sudah lebih kecil dari batas toleransi yang diijinkan.
Gambar Alur Kerja Propagasi Balik (Backpropagation)
Aplikasi Backpropagation Dalam Peramalan Salah satu bidang dimana Backpropagation dapat diaplikasikan dengan baik adalah bidang peramalan (forecasting). Peramalan yang soring kita dengar adalah peramalan besarnya penjualan, nilai tukar valuta asing, prediksi besarnya aliran air sungai, dll. Sebagai contoh, dalam penjualan barang, diketahui record data penjualan suatu produk pada beberapa bulan/tahun terakhir. Masalahnya adalah memperkirakan berapa perkiraan produk yang terjual dalam bulan/tahun yang akan datang. Secara umum, masalah peramalan dapat dinyatakan sebagai berikut: I )iketahui sejumlah data runtun waktu (time series) xi,x2,...xn. Masalahnya adalah memperkirakan berapa harga xn+i berdasarkan xi,X2, .... ,Xn. Dengan Backpropagation, record data dipakai sebagai data pelatihan untuk mencari bobot yang optimal. Untuk itu kita perlu menetapkan besarnya periode dimana data berfluktuasi. Periode ini kita tentukan secara intuitif. Misalkan pada data besarnya debit air sungai dengan data bulanan, periode data dapat diambil selama satu tahun karena pergantian musim terjadi selama satu tahun.
Halaman
12
Sistem Syaraf Buatan
Jumlah data dalam satu periode ini dipakai sebagai jumlah masukan dalam backpropagation. Sebagai targetnya diambil data bulan pertama setelah periode berakhir.
Pada
data
bulanan
dengan
periode
satu
tahun,
maka
masukan
backpropagation yang dipakai terdiri dari 12 masukan. Keluaran adalah 1 unit. Bagian tersulit adalah menentukan jumlah layar (dan unitnya). Tidak ada teori yang dengan pasti dapat dipakai. Tapi secara praktis dicoba jaringan yang kecil terlebih dahulu (misal terdiri dari 1 layar tersembunyi dengan beberapa unit saja). Jika gagal (kesalahan tidak turun dalam epoch yang besar), maka jaringan diperbesar dengan menambahkan unit tersembunyi atau bahkan menambah layar tersembunyi.
FUNGSI AKTIVASI Jaringan syaraf adalah merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan disini digunakan karena jaringan syaraf ini diimplementasikandengan
menggunakan
program
komputer
yang
mampu
menyelesaikan sejumlah proses perhitungan selama proses pembelajaran. Ada beberapa tipe jaringan syaraf, namun demikian, hampir semuanya memiliki komponen-komponen yang sama. Seperti halnya otak manusia, jaringan syaraf juga terdiri-dari beberapa neuron, dan ada hubungan antara neuron-neuron tersebut. Neuron-neuron tersebut akan mentrans-formasikan informasi yang diterima melalui sambungan keluarnya me-nuju ke neuron-neuron yang lain. Pada jaringan syaraf, hubungan ini dikenal dengan nama bobot. Informasi tersebut disimpan pada suatu nilai tertentu pada bobot tersebut.
Gambar Struktur Neuron Jaringan Syaraf
Jika kita lihat, neuron buatan ini sebenarnya mirip dengan sel neuron biologis. Neuron-neuron buatan tersebut bekerja dengan cara yang sama pula dengan neuron-
Halaman
13
Sistem Syaraf Buatan
neuron biologis. Informasi (disebut dengan: input) akan dikirim ke neuron dengan bobot kedatangan tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang akan menjumlahkan nilai-nilai semua bobot yang datang. Hasil penjumlahan ini kemudian akan dibandingkan dengan suatu nilai ambang {threshold) tertentu melalui fungsi aktivasi setiap neuron. Apabila input tersebut mele-wati suatu nilai ambang tertentu, maka neuron tersebut akan diaktifkan, tapi kalau tidak, maka neuron tersebut tidak akan diaktifkan. Apabila neuron tersebut diaktifkan, maka neuron tersebut akan mengirimkan output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. Demikian seterusnya. Pada jaringan syaraf, neuron-neuron akan dikumpulkan dalam lapisan-lapisan (layer) yang disebut dengan lapisan neuron (neuron layers). Biasanya neuron-neuron pada satu lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya (kecuali lapisan input dan lapisan output). Informasi yang diberikan pada jaringan syaraf akan dirambatkan lapisan ke lapisan, mulai dari lapisan input sampai ke lapisan output melalui lapisan yang lainnya, yang sering dikenal dengan nama lapisan tersembunyi (hidden layer). Tergantung pada algoritma pembelajarannya, bisa jadi informasi tersebut akan dirambatkan secara mundur pada jaringan.
Gambar Fungsi Aktivasi Pada Jaringan Syaraf Sederhana
Ada beberapa fungsi aktivasi yang sering digunakan dalam jaringan syaraf tiruan. Fungsi Aktivasi yang disediakan pada toolbox Matlab, antara lain : 1. Fungsi Undak Biner (hardlim) Jaringan dengan lapisan tunggal sering menggunakan fungsi undak buner (step
function) untuk mengkonversikan input dari suatu variabel yang bernilai kontinu ke suatu output biner (0 atau 1). Fungsi undak biner (hardlimit) dirumuskan sebagai :
Halaman
14
Sistem Syaraf Buatan
2. Fungsi Bipolar (symentric hardlims) Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner, hanya saja output yang dihasilkan berupa 1 atau -1 . Fungsi Symetric Hard Limit dirumuskan sebagai :
3. Fungsi Linear (purelin) Fungsi linear memiliki nilai output yang sama dengan nilai inputnya. Fungsi linear dirumuskan sebagai: y=x
Halaman
15
Sistem Syaraf Buatan
4. Fungsi Saturating Linear (satlin) Fungsi ini akan bernilai 0 jika inputnya kurang dari -1/2 dan akan bernilai 1 jika inputnya lebih dari 1/2 Sedangkan jika nilai input terletak antara -1/2 dan 1/2 maka outputnya akan bernilai sama dengan nilai input ditambah 1/2. Fungsi saturating
linear dirumuskan sebagai :
5. Fungsi Symetric Saturating Linear (satlins) Fungsi ini akan bernilai -1 jika inputnya kurang dari -1, dan akan ber-nilai 1 jika inputnya lebih dari 1. Sedangkan jika nilai input terletak an-tara -1 dan 1, maka outpunya akan bernilai sama dengan nilai inputnya. Fungsi symetric saturating
linear dirumuskan sebagai :
6. Fungsi Sigmoid Biner (logsig) Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan meng-gunakan metode backpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai
Halaman
16
Sistem Syaraf Buatan
1. Oleh karena itu, fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Namun, fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai outputnya 0 atau 1. Fungsi sigmoid biner dirumuskan sebagai :
7. Fungsi Sigmoid Bipolar (tansig) Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output dari fungsi ini memiliki range antara 1 sampai -1. Fungsi sigmoid bipolar dirumuskan sebagai :
Halaman
17
Sistem Syaraf Buatan
Paradigma
Aturan Pembelajaran
Arsitektur
Algoritma Pembelajaran
Pengoreksian-error
Perceptron lapisan tunggal atau mutilapis
Perceptron Klasifikasi pola Propagasi balik Aproksimasi fungsi Adaline dan Prediksi, kontrol Madaline
Boltzmann
Recurrent (berulang)
Boltzman
Klasifikasi pola
Hebbian
Umpan maju multi lapisan (multilayer feedforward)
Analisis diskriminan linear LVQ (Learning Vector Quantization)
Analisis data Klasifikasi pola
Terawasi
supervised
Kompetitif Kompetitif Jaringan ART
ARTMap
Bidang Kerja
Kategori kelas Kompresi data Klasifikasi pola Kategori kelas
Pengkoreksian-error Multilayer feedforward Proyeksi Sammon Analisis data
Hebbian Tidak terawasi
Hopfield Network
unsupervised
Kompetitif
Hibrida
hybrid
Umpan maju atau kompetitif
Analisis Komponen Prinsipal Aturan memori asosiatif
Analisis data Kompresi data Memori asosiatif
Kategorisasi Kompresi data Kategorisasi Analisis data
Kompetitif
Kuantisasi vektor
Kohonen SOM
Kohonen SOM
Jaringan ART
ART1, ART2
Kategorisasi
Algoritma RBF
Klasifikasi pola Aproksimasi fungsi Prediksi, kontrol
Pengkoreksian error Jaringan RBF dan kompetitif
Tabel Paradigma, Aturan Pembelajaran, Arsitektur, Algoritma, dan Aplikasi Jaringan Saraf Tiruan
Halaman
18
Sistem Syaraf Buatan
SIKLUS PEMBUATAN APLIKASI JARINGAN SARAF TIRUAN
Gambar Siklus Pembuatan Aplikasi Jaringan Saraf Tiruan
Halaman
19
Sistem Syaraf Buatan
STUDI KASUS PERAMALAN PENJUALAN Suatu swalayan ingin melakukan peramalan penjualan suatu produk mie instan. Peramalan penjualan pada hari Xi ditentukan oleh penjualan pada hari yang sama, 1 minggu, 2 minggu, 3 minggu, dan 4 minggu sebelum nya. Secara matematis dapat diformulasikan : Xi+1 dipengaruhi oleh Xi-21, Xi-14, Xi-7, Xi Tabel menunjukkan data-data penjualan mie instan dalam 121 hari terakhir (pada bulan Nopember, Desember 2006, Januari, Pebruari 2007 Kolom hari menunjukkan hari (S=Senin, S=Selasa, R=Rabu, dst), No menunjukkan nomor urut (dari 1 sampai 121), dan P menunjukkan jumlah permintaan mie instan pada hari tersebut dalam satuan dus. Hari
Tgl
No
P
Tgl
No
P
Tgl
No
P
Tgl
No
P
Tgl
No
S S R K J S M S S R K J S M S S R K J S M S S R K J S M
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
10 8 12 10 12 30 35 9 10 11 10 12 23 26 10 11 12 11 12 24 26 9 9 12 13 12 21 26
29 30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
9 10 12 11 12 31 36 11 13 12 10 9 24 26 10 12 12 11 12 23 25 10 7 15 13 14 23 27
27 28 29 30 31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
11 10 15 12 8 28 32 10 13 14 10 13 25 26 10 15 11 11 16 26 25 10 7 12 13 12 26 27
24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
11 12 12 15 14 37 37 12 13 10 9 7 25 29 11 12 13 13 12 24 25 11 8 16 13 15 28 30
21 22 23 24 25 26 27 28 29
113 114 115 116 117 118 119 120 121
Halaman
P 12 13 14 15 13 35 38 11 12
20
Sistem Syaraf Buatan
Data-data tersebut diperlihatkan secara grafis pada Gambar berikut. Pada Gambar tesebut terlihat bahwa sistem memiliki pengaruh kecenderungan musiman. Jumlah permintaan akan tinggi pada hari-hari tertentu yaitu Sabtu dan Minggu. Demikian juga, pada awal atau akhir bulan, permintaan mie instan ini bahkan lebih tinggi.
No
Input
Target
T-21
T-14
T-7
T
T+7
l 2 3 4 5 6 7 8 9 10 11 12 13
10 8 12 10 12 30 35 9 10 11 10 12 23
9 10 11 10 12 23 26 10 11 12 11 12 24
10 11 12 11 12 24 26 9 9 12 13 12 21
9 9 12 13 12 21 26 9 10 12 11 12 31
9 10 12 11 12 31 36 11 13 12 10 9 24
14
26
26
26
36
15
10
9
9
16
11
9
10
Halaman
No
Input
Target
T-21
T-14
T-7
T
T+7
41 42 43 44 45 46 47 48 49 50 51 52 53
24 26 10 12 12 11 12 23 25 10 7 15 13
23 25 10 7 15 13 14 23 27 11 10 15 12
23 27 11 10 15 12 8 28 32 10 13 14 10
28 32 10 13 14 10 13 25 26 10 15 11 11
25 26 10 15 11 11 16 26 25 10 7 12 13
26
54
14
8
13
16
12
11
10
55
23
28
25
26
26
13
12
56
27
32
26
25
27
21
Sistem Syaraf Buatan
17
12
12
12
12
12
57
11
10
10
10
11
18
11
13
11
10
11
58
10
13
15
7
12
19
12
12
12
9
12
59
15
14
11
12
12
20
24
21
31
24
23
60
12
10
11
13
15
21
26
26
36
26
25
61
8
13
16
12
14
22
9
9
11
10
10
62
28
25
26
26
37
23
9
10
13
12
7
63
32
26
25
27
37
24
12
12
12
12
15
64
10
10
10
11
12
25
13
11
10
11
13
65
13
15
7
12
13
26
12
12
9
12
14
66
14
11
12
12
10
27
21
31
24
23
23
67
10
11
13
15
9
28
26
36
26
25
27
68
13
16
12
14
7
29
9
11
10
10
11
69
25
26
26
37
25
30
10
13
12
7
10
70
26
25
27
37
29
31
12
12
12
15
15
71
10
10
11
12
11
32
11
10
11
13
12
72
15
7
12
13
12
33
12
9
12
14
8
73
11
12
12
10
13
34
31
24
23
23
28
74
11
13
15
9
13
35
36
26
25
27
32
75
16
12
14
7
12
36
11
10
10
11
10
76
26
26
37
25
24
37
13
12
7
10
13
77
25
27
37
29
25
38
12
12
15
15
14
78
10
11
12
11
11
39
10
11
13
12
10
79
7
12
13
12
8
40
9
12
14
8
13
Tabel 79 Data Yang Akan Dilatih.
Input
No 1 2 3 4 5 6 7 8 9 10 11 12 13 14
T-21 12 13 12 26 27 11 12 12 15 14 37 37 12 13
T-14 12 15 14 37 37 12 13 10 9 7 25 29 11 12
T-7 10 9 7 25 29 11 12 13 13 12 24 25 11 8
Target T 13 13 12 24 25 11 8 16 13 15 28 30 12 13
T=7 16 13 15 28 30 12 13 14 15 13 35 38 11 12
Tabel 14 Data Yang Akan Dicek
Halaman
22
Sistem Syaraf Buatan
Untuk melakukan peramalan akan digunakan jaringan syaraf dengan metode backpropagation dengan momentum. Jaringan syaraf ini terdiri atas lapisan input, 2 lapisan tersembunyi, dan lapisan output. Lapisan input terdiri atas 4 neuron, yang masing-masing mewakili input penjualan ke-(t-21), (t-14), (t-7), dan t. Lapisan tersembunyi pertama terdiri-atas 10 neuron dengan fungsi aktivasi tansig, sedangkan lapisan tersembunyi kedua terdiri-atas 5 neuron dengan fungsi aktivasi logsig. Lapisan output terdiri atas 1 neuron dengan fungsi aktivasi purelin. Sebelum jaringan dibangun, terlebih dahulu dilakukan preprosesing untuk melakukan normalisasi menggunakan mean dan deviasi standar. Apabila data input disimpan pada matriks p, dan target disimpan pada matriks t, maka : [pn,meanp,stdp,tn,meant,stdt]=prestd(P,T) Kemudian dibangun jaringan syaraf dengan metode pembelajaran gradient descent dengan momentum (traingdm) : net=newff(minmax(pn),[10 5 1],{'tansig','logsig','purelin'} ,'traingdm');
Misalkan bobot awal ditetapkan sebagai berikut : Bobot awal lapisan input ke lapisan tersembunyi pertama : net.IW{1,1}=[... 0.4500 0.9579 -0.6119 -0.6320 -0.0152 0.4021 0.5958 -0.3116 -0.0043 -0.7518
0.0894 -0.1978 -0.9953 -0.7867 1.1257 -0.7500 0.6346 0.9297 0.7410 0.4902
-0.8542 -0.5595 0.1435 -0.4583 0.4672 -0.3316 0.6376 -0.7423 -0.8049 0.5800
0.8416 -0.6146 -0.4015 0.5986 -0.1576 -0.8762 0.6659 0.1878 -0.6237 -0.6967];
Bobot bias awal lapisan input ke lapisan tersembunyi pertama : net.b{1,1}=[... -2.9086 -1.6140 2.9221 1.9021 -0.9166 1.5395 -1.2132 -1.4846 -1.4403 -2.2184];
Halaman
23
Sistem Syaraf Buatan
Bobot awal lapisan tersembunyi pertama ke lapisan tersembunyi kedua : net.LW{2,1}=[... 1.4500 1.0501 0.9679 -0.0225 0.0705 -1.7650 0.8302 1.1891 1.1413 0.3847 0.7305 1.4203 -0.3329 0.1057 -0.1429 -1.5011 -1.5074 1.0495 1.1499 -1.0838 1.5362 -1.2236 -0.6011 0.0316 0.8532 0.4183 -1.4828 -0.9369 0.9060 1.3406 1.4153 -1.2922 -0.1157 -1.2216 1.0480 1.6869 0.0372 0.9609 -0.1592 -0.8628 0.9604 1.1946 -1.2088 1.4801 0.34184 -0.2468 1.2570 -0.9697 1.4478 -0.1297];
Bobot bias awal lapisan tersembunyi pertama ke lapisan tersembunyi kedua : net.b{2,1}=[... -3.2889 -1.6445 0 1.6445 3.2889];
Bobot awal tersembunyi kedua ke lapisan ouput : net.LW{3,2}=[0.6595 -0.3997 0.4192 -0.8508 0.5004];
Bobot bias awal tersembunyi kedua ke lapisan output : net.b{3,1}=-0.0622;
Sebelum dilakukan pelatihan, kita tetapkan terlebih dahulu parameter-parameter yang digunakan sebagai berikut : net.trainParam.epochs net.trainParam.goal net.trainParam.lr net.trainParam.show net.trainParam.mc
= = = = =
5000; le-2; 0.5; 200; 0.8;
Kemudian dilakukan proses pelatihan : net=train(net,pn,tn);pause
Proses Pelatihan : TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM,
Halaman
Epoch Epoch Epoch Epoch Epoch Epoch Epoch Epoch Epoch
0/5000, MSE 1.15396/0.01, Gradient 0.785193/1e-010 200/5000, MSE 0.0709291/0.01, Gradient 0.0113334/1e-010 400/5000, MSE 0.0611334/0.01, Gradient 0.0076065/1e-010 600/5000, MSE 0.0561193/0.01, Gradient 0.00705583/1e-010 800/5000, MSE 0.050736/0.01, Gradient 0.00765904/1e-010 1000/5000, MSE 0.0447094/0.01, Gradient 0.0073939/1e-010 1200/5000, MSE 0.0408566/0.01, Gradient 0.00509012/1e-010 1400/5000, MSE 0.0387012/0.01, Gradient 0.00427469/1e-010 1600/5000, MSE 0.0370799/0.01, Gradient 0.00380796/1e-010
24
Sistem Syaraf Buatan
TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM, TRAINGDM,
Epoch 1800/5000, MSE 0.035724/0.01, Gradient 0.00358099/1e-010 Epoch 2000/5000, MSE 0.0344841/0.01, Gradient 0.00346605/1e-010 Epoch 2200/5000, MSE 0.0333205/0.01, Gradient 0.00334411/1e-010 Epoch 2400/5000, MSE 0.0322628/0.01, Gradient 0.00313722/1e-010 Epoch 2600/5000, MSE 0.0313643/0.01, Gradient 0.00283738/1e-010 Epoch 2800/5000, MSE 0.0306464/0.01, Gradient 0.00251437/1e-010 Epoch 3000/5000, MSE 0.0300804/0.01, Gradient 0.00225066/1e-010 Epoch 3200/5000, MSE 0.0296119/0.01, Gradient 0.00209144/1e-010 Epoch 3400/5000, MSE 0.0291917/0.01, Gradient 0.00201661/1e-010 Epoch 3600/5000, MSE 0.0287926/0.01, Gradient 0.00198145/1e-010 Epoch 3800/5000, MSE 0.0284046/0.01, Gradient 0.00195814/1e-010 Epoch 4000/5000, MSE 0.0280249/0.01, Gradient 0.0019398/1e-010 Epoch 4200/5000, MSE 0.0276507/0.01, Gradient 0.00193121/1e-010 Epoch 4400/5000, MSE 0.027277/0.01, Gradient 0.00193774/1e-010 Epoch 4600/5000, MSE 0.0268978/0.01, Gradient 0.00196013/1e-010 Epoch 4800/5000, MSE 0.0265065/0.01, Gradient 0.00200075/1e-010 Epoch 5000/5000, MSE 0.0260923/0.01, Gradient 0.00208085/1e-010 Maximum epoch reached, performance goal was not met.
Gambar Hasil Pelatihan Sampai 5000 Epoch
Halaman
25
Sistem Syaraf Buatan
Diperoleh bobot akhir : BobotAkhir_Input = 1.1605 0.7208 2.4893 0.2488 -0.2320 -0.7314 -0.4607 -0.2146 -2.2951 2.2632 1.0997 -1.1705 -0.5987 0.1715 -0.7688 -0.4725 -0.0131 0.2169 -0.9041 0.1325
-1.7414 -0.7857 0.2584 0.1429 1.0401 -1.9181 1.8544 -1.7628 -1.8838 0.3392
0.6660 -0.2273 -1.0628 1.2892 0.2142 -0.9992 0.3305 1.9775 1.2326 -0.5816
BobotAkhir_Bias_Input = -2.2329 -2.8326 2.9022 2.1041 -0.8067 1.8065 -0.7975 -1.0957 -0.7028 -2.3400 BobotAkhir_Lapisan1 = 1.4245 0.8857 1.3385 1.1372 1.0950
1.0772 1.4784 -2.6600 -1.4831 1.1320
1.0029 -0.0239 -0.5967 0.6483 -1.4433
-0.0390 0.0917 0.0841 -0.4661 1.2657
0.0126 -0.5102 2.7134 -0.0826 0.5956
-1.7508 -1.0847 -0.0976 3.0700 -0.3650
0.8081 -1.9556 -1.1809 -0.7946 1.7735
1.1688 1.0259 -0.9917 0.4980 -2.2310
1.0990 -1.2774 -1.8543 -0.1740 -1.3305
0.3959 -1.0410 0.9382 -1.2393 0.3142
BobotAkhir_Bias_Lapisan1 = -3.3011 -1.6648 0.4462 2.1487 3.0177 BobotAkhir_Lapisan2 = 0.6345 -1.0312
-2.1722
-1.8339
1.9859
BobotAkhir_Bias_Lapisan2 = 1.8964
Pengujian dilakukan terhadap data-data yang ikut dilatih : an = sim(net,pn); a = poststd(an,meant,stdt);
Menghasilkan : Datake- Target(T) Output(a) E=T-a 1 9.00 10.58 -1.58
Halaman
26
Sistem Syaraf Buatan
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
10.00 12.00 11.00 12.00 31.00 36.00 11.00 13.00 12.00 10.00 9.00 24.00 26.00 10.00 12.00 12.00 11.00 12.00 23.00 25.00 10.00 7.00 15.00 13.00 14.00 23.00 27.00 11.00 10.00 15.00 12.00 8.00 28.00 32.00 10.00 13.00 14.00 10.00 13.00 25.00 26.00 10.00 15.00 11.00 11.00 16.00 26.00 25.00 10.00 7.00 12.00 13.00 12.00 26.00 27.00 11.00 12.00 12.00 15.00
Halaman
9.39 11.39 11.69 11.35 31.01 35.57 10.77 11.80 10.46 11.12 11.35 23.68 26.97 12.58 12.97 11.35 10.51 11.84 24.12 24.79 9.90 9.78 11.35 12.29 13.56 24.00 26.41 9.82 10.84 12.38 11.92 11.60 28.07 32.09 11.63 14.13 12.56 10.42 12.07 25.48 26.88 10.54 12.70 11.81 10.82 14.29 24.05 25.12 10.70 6.73 12.62 12.44 11.98 24.73 27.29 11.21 12.41 13.11 12.07
0.61 0.61 -0.69 0.65 -0.01 0.43 0.23 1.20 1.54 -1.12 -2.35 0.32 -0.97 -2.58 -0.97 0.65 0.49 0.16 -1.12 0.21 0.10 -2.78 3.65 0.71 0.44 -1.00 0.59 1.18 -0.84 2.62 0.08 -3.60 -0.07 -0.09 -1.63 -1.13 1.44 -0.42 0.93 -0.48 -0.88 -0.54 2.30 -0.81 0.18 1.71 1.95 -0.12 -0.70 0.27 -0.62 0.56 0.02 1.27 -0.29 -0.21 -0.41 -1.11 2.93
27
Sistem Syaraf Buatan
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
14.00 37.00 37.00 12.00 13.00 10.00 9.00 7.00 25.00 29.00 11.00 12.00 13.00 13.00 12.00 24.00 25.00 11.00 8.00
13.82 36.76 37.51 11.34 14.32 12.19 10.25 8.68 25.88 27.09 10.85 11.09 11.26 12.61 11.75 24.55 25.03 10.31 7.56
0.18 0.24 -0.51 0.66 -1.32 -2.19 -1.25 -1.68 -0.88 1.91 0.15 0.91 1.74 0.39 0.25 -0.55 -0.03 0.69 0.44
Error (E) terkecil terletak pada data ke-6 yaitu sebesar 0.01 ; sedangkan E terbesar terletak pada data ke-24 yaitu sebesar 3.6536. nilai MSE di akhir pelatihan sebesar 0.026. Output jaringan dan target dianalisis dengan regresi linear menggunakan postreg : [m1,a1,r1]=postreg(a,T)
Menghasilkan Gradien garis terbaik (m1): m1 = 0.9730
Konstanta : a1 = 0.4300
Persamaan garis untuk kecocokan terbaik : 0.973T + 0.4303 Koefisien korelasi : r1 = 0.9867
Halaman
28
Sistem Syaraf Buatan
Gambar Perbandingan Antara Target Dengan Output Jaringan, Untuk Data Pelatihan
Selanjutnya, pengujian akan dilakukan terhadap data-data yang tidak ikut dilatih (Data cheking sebanyak 14 data pada Tabel). Misalnya data cek disimpan pada matriks Q untuk input data (t-21), (t-14), (t-7), dan t; serta matriks TQ untuk target. Sebelumnya kita lakukan normalisasi terlebih dahulu dengan trastd, hasil simulasi didenormalisasi dengan poststd. Qn = trastd(Q,meanp,stdp); Bn = sim(net,Qn) B = poststd(bn,meant,stdt)
Menghasilkan: Data cek ke- Target (TQ) Output (b) E=TQ-b 1 2 3 4 5
Halaman
16.00 13.00 15.00 28.00 30.00
13.20 13.63 14.44 25.83 27.60
2.80 -0.63 0.56 2.17 2.40
29
Sistem Syaraf Buatan
6 7 8 9 10 11 12 13 14
12.00 13.00 14.00 15.00 13.00 35.00 38.00 11.00 12.00
10.78 11.48 12.31 12.01 12.00 27.51 36.75 11.64 14.44
1.22 1.52 1.69 2.99 1.00 7.49 1.25 -0.64 -2.44
Koefisien korelasi bernilai 0.9750 (mendekati 1), menunjukkan hasil yang baik untuk kecocokan output jaringan dengan target. Lihat perbandingan antara target dengan output jaringan pada gambar berikut. Pada gambar berikut, output jaringan (o) dan target (*) sebagian besar sudah berdekatan (hampir menempati posisi yang sama). Hasil terbaik terjadi apabila posisi (o) dan (*) betul-betul berada pada posisi yang sama.
Gambar Perbandingan Antara Target Dengan Output Jaringan, Untuk Data Pengujian
Halaman
30
Sistem Syaraf Buatan
Coding Selengkapnya >>Clear; % Data Input & Target >>Data=[… 10 9 10 9 9 8 10 11 9 10 12 11 12 12 12 10 10 11 13 11 12 12 12 12 12 30 23 24 21 31 35 26 26 26 36 9 10 9 9 11 10 11 9 10 13 11 12 12 12 12 10 11 13 11 10 12 12 12 12 9 23 24 21 31 24 26 26 26 36 26 10 9 9 11 10 11 9 10 13 12 12 12 12 12 12 11 13 11 10 11 12 12 12 9 12 24 21 31 24 23 26 26 36 26 25 9 9 11 10 10 9 10 13 12 7 12 12 12 12 15 13 11 10 11 13 12 12 9 12 14 21 31 24 23 23 26 36 26 25 27 9 11 10 10 11 10 13 12 7 10 12 12 12 15 15 11 10 11 13 12 12 9 12 14 8 31 24 23 23 28 36 26 25 27 32 11 10 10 11 10 13 12 7 10 13 12 12 15 15 14 10 11 13 12 10 9 12 14 8 13 24 23 23 28 25 26 25 27 32 26 10 10 11 10 10 12 7 10 13 15 12 15 15 14 11 11 13 12 10 11 12 14 8 13 16 23 23 28 25 26 25 27 32 26 25 10 11 10 10 10 7 10 13 15 7 15 15 14 11 12 13 12 10 11 13 14 8 13 16 12
Halaman
31
Sistem Syaraf Buatan
23 28 25 26 26 27 32 26 25 27 11 10 10 10 11 10 13 15 7 12 15 14 11 12 12 12 10 11 13 15 8 13 16 12 14 28 25 26 26 37 32 26 25 27 37 10 10 10 11 12 13 15 7 12 13 14 11 12 12 10 10 11 13 15 9 13 16 12 14 7 25 26 26 37 25 26 25 27 37 29 10 10 11 12 11 15 7 12 13 12 11 12 12 10 13 11 13 15 9 13 16 12 14 7 12 26 26 37 25 24 25 27 37 29 25 10 11 12 11 11 7 12 13 12 8]; >> P=Data(:,1:4)'; >> T=Data(:,5)'; %Preprocessing >> [pn,meanp,stdp,tn,meant,stdt]=prestd(P,T) %Membangun Jaringan Syaraf Feedforward >> net=newff(minmax(pn),[10 5 1],{'tansig','logsig','purelin'} ,'traingdm'); %Set Bobot >> net.IW{1,1}=[... 0.4500 0.9579 -0.6119 -0.6320 -0.0152 0.4021 0.5958 -0.3116 -0.0043 -0.7518
0.0894 -0.1978 -0.9953 -0.7867 1.1257 -0.7500 0.6346 0.9297 0.7410 0.4902
-0.8542 -0.5595 0.1435 -0.4583 0.4672 -0.3316 0.6376 -0.7423 -0.8049 0.5800
0.8416 -0.6146 -0.4015 0.5986 -0.1576 -0.8762 0.6659 0.1878 -0.6237 -0.6967];
>> net.b{1,1}=[... -2.9086 -1.6140 2.9221 1.9021 -0.9166 1.5395 -1.2132 -1.4846 -1.4403
Halaman
32
Sistem Syaraf Buatan
-2.2184]; >> net.LW{2,1}=[... 1.4500 1.0501 0.9679 -0.0225 0.0705 -1.7650 0.8302 1.1891 1.1413 0.3847 0.7305 1.4203 -0.3329 0.1057 -0.1429 -1.5011 -1.5074 1.0495 1.1499 -1.0838 1.5362 -1.2236 -0.6011 0.0316 0.8532 0.4183 -1.4828 -0.9369 0.9060 1.3406 1.4153 -1.2922 -0.1157 -1.2216 1.0480 1.6869 0.0372 0.9609 -0.1592 -0.8628 0.9604 1.1946 -1.2088 1.4801 0.34184 -0.2468 1.2570 -0.9697 1.4478 -0.1297]; >> net.b{2,1}=[... -3.2889 -1.6445 0 1.6445 3.2889]; >> net.LW{3,2}=[0.6595 -0.3997 0.4192 -0.8508 0.5004]; >> net.b{3,1}=-0.0622;
% Melihat Bobot-Bobot Awal Input, Lapisan Dan Bias >> BobotAwal_Input = net.IW{1,1} >> BobotAwal_Bias_Input = net.b{1,1} >> BobotAwal_Lapisan1 = net.LW{2,1} >> BobotAwal_Bias_Lapisan1 = net.b{2,1} >> BobotAkhir_Lapisan2 = net.LW{3,2} >> BobotAkhir_Bias_Lapisan2 = net.b{3,1} % Set Max Epoch, Goal, Learning Rate, Show Step >> net.trainParam.epochs = 5000; >> net.trainParam.goal = le-2; >> net.trainParam.lr = 0.5; >> net.trainParam.show = 200; >> net.trainParam.mc = 0.8; % Melakukan Pembelajaran >> net=train(net,pn,tn);pause % Melihat Bobot-Bobot Awal Input, Lapisan Dan Bias >> BobotAkhir_Input = net.IW{1,1} >> BobotAkhir_Bias_Input = net.b{1,1} >> BobotAkhir_Lapisan1 = net.LW{2,1} >> BobotAkhir_Bias_Lapisan1 = net.b{2,1} >> BobotAkhir_Lapisan2 = net.LW{3,2} >> BobotAkhir_Bias_Lapisan2 = net.b{3,1} % >> >> >> >>
Malakukan Simulasi an = sim(net,pn); a = poststd(an,meant,stdt); H = [(1:size(P,2))' T' a' (T'-a')]; sprintf('%2d %9.2f %7.2f %5.2f\n',H')
Halaman
33
Sistem Syaraf Buatan
% Evaluasi Output Jaringan (Data Pelatihan Dengan Target) >> [m1,a1,r1]=postreg(a,T) >> pause >> plot([1:size(P,2)]',T,'bo',[1:size(P,2)]',a','r*'); >> title('Hasil Pengujian Dengan Data Pelatiha: Target(o), Output(*)'); >> xlabel('Data Ke-');ylabel('Target/Output');pause % Input Baru Q akan di Tes, Dengan target PQ >> Cek=[... 12 12 10 13 16 13 15 9 13 13 12 14 7 12 15 26 37 25 24 28 27 37 29 25 30 11 12 11 11 12 12 13 12 8 13 12 10 13 16 14 15 9 13 13 15 14 7 12 15 13 37 25 24 28 35 37 29 25 30 38 12 11 11 12 11 13 12 8 13 12]; >> Q =Cek(:,1:4)'; >> TQ=Cek(:,5)'; % Normalisasi Input Baru >> Qn=trastd(Q,meanp,stdp); >> bn=sim(net,Qn); >> b=poststd(bn,meant,stdt) >> L=[(1:size(Q,2))' TQ' b' (TQ'-b')]; >> sprintf('%2d %11.2f %9.2f %7.2f\n',L') % Evaluasi Output Jaringan (Data Testing Dengan Target) >> [m2,b1,r2]=postreg(b,TQ) >> pause >> k=[1:size(Q,2)]'; >> plot(k,TQ,'bo',k,b','r*'); >> title('Hasil Pengujian Dengan Data Pelatihan: Target(o), Output(*)'); >> xlabel('Data Ke-');ylabel('Target/Output'); >> text(k+0.2*ones(length(k),1),TQ,int2str(k));
Halaman
34
Sistem Syaraf Buatan
PERAMALAN CUACA BERBASIS LOGIKA FUZZY Informasi cuaca merupakan hal penting yang mendukung kelancaran kegiatan manusia. Peramalan cuaca berbasis logika fuzzy dilakukan dengan memberikan masukan berupa suhu, tekanan dan kelembaban relatif. Kemudian, hasilnya adalah masukan peramalan cuaca yang berupa suhu rata-rata, kelembaban relatif rata-rata serta keadaan cuaca. Peramalan cuaca berbasis logika fuzzy di-lakukan dengan sistem fuzzifikasi dan defuzzifikasi seperti pada FLC (Fuzzy Logic Controller). Tujuannya adalah menghasilkan peramalan yang lebih baik dibandingkan peramalan yang masih dilakukan manual oleh peramal cuaca (forecaster). Dengan menggunakan proses fuzzifikasi dan defuzzifikasi, data masukan crisp diubah menjadi data fungsi keanggotaan fuzzy melalui proses fuzzifikasi. Sebaliknya. data keluaran melalui proses defuzzifkasi akan diubah menjadi data keluaran yang diinginkan yaitu suhu rata-rata, kelembaban rata-rata, dan keadaan cuaca. Fungsi keanggotaan (membership function) himpunan fuzzy untuk masing-masing masukan adalah : 1. Fungsi keanggotaan masukan suhu (temperatur) : very low, low medium, high, dan
very high. 2. Fungsi keanggotaan masukan tekanan (pressure) : very low, low medium, high, dan
very high. 3. Fungsi
keanggotaan
masukan
kelembaban relatif
(relative humidity) : very
low, low, medium, high, dan very high. Fungsi keanggotaan himpunan fuzzy untuk masing-masing keluaran adalah :
1. Fungsi keanggotaan keluaran suhu rata-rata : very low, low medium, high, dan very high. 2. Fungsi keanggotaan keluaran kelembaban relatif rata-rata : very low, low, medium, high, dan very high. 3. Fungsi keanggotaan keluaran keadaan cuaca : hujan, hujan berawan, berawan, cerah berawan, dan cerah. Peramalan cuaca memberikan masukan suhu, tekanan, dan kelembaban relatif suatu daerah dengan batasan-batasannya, yaitu : 1. Batasan suhu, yaitu berada di antara 24,3°C sampai dengan 31°C untuk mendefinisikan suhu udara saat ini.
Halaman
35
Sistem Syaraf Buatan
2. Batasan tekanan udara, yaitu berada di antara 1006 mBar sampai dengan 1014,6 mBar untuk mendefinisikan tekanan udara saat ini. 3. Batasan kelembaban relatif, yaitu berada di antara 62% sampai dengan 97% untuk mendefinisikan tingkat kelembaban udara relatif saat ini.
(a)
(b)
(c) Gambar (A) Fungsi Keanggotaan Masukan Temperatur (b) Fungsi keanggotaan masukan tekanan udara (c) Fungsi keanggotaan masukan kelembahan udara
Halaman
36
Sistem Syaraf Buatan
(a)
(b)
(c) Gambar (a) Fungsi keanggotaan keluaran temperatur rata-rata (b) Fungsi keanggotaan keluaran kelembaban udara (c) Fungsi keanggotaan keluaran keadaan cuaca
Halaman
37
Sistem Syaraf Buatan
(a)
(b) Gambar (a) Keluaran Suhu Rata-Rata (b) Keluaran Kelembaban Relatif Rata-Rata
Fuzzy Rule Base No. RH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
IF Tek Very Low
Medium High Very Low Low Very High Very Low Low Very High Very Low Low Very High Very Low Low
Halaman
Low Low Low Medium High High High Very High Very High Very High Very Low
Temp Very Low Very Low Very Low Very Low Very Low Very Low Very Low Very Low Very Low Very Low Very Low Very Low Very Low Low Low
Out_RH Very High Very High Very High Very High Very Low Very High Very High Very Low Very Low Very Low Low Very Low Very High Low Very Low
THEN Out_Temp Very Low Very Low Very Low Very Low Very High Very Low Very Low Very High Very High Very High Medium Very High Very Low Medium Very High
OutCast Hujan Hujan Hujan Hujan Cerah Hujan Hujan Cerah Cerah Cerah Cerah Berawan Cerah Hujan Cerah Berawan Cerah
38
Sistem Syaraf Buatan
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
Medium High Very High Low Medium High Very High Low Medium High Very High Low Medium High Very High Very Low Low Medium High Very High Very Low Medium High Very High Very Low Medium High Very High Very Low Medium High Very High Very Low Low Medium High Very High Very Low Medium High Very Low Medium High Very Tow
Halaman
Very Low Very Low Very Low Low Low Low Low Medium Medium Medium Medium High High High High Very High Very Low Very Low Very Low Very Low Low Low Low Low Medium Medium Medium Medium High Very High Very High Very High Very High Very Low Very Low Very Low Low Medium Medium Medium High Very High Very High Very High Very Low
Low Low Low Low Low Low Low Low Low Low Low Low Low Low Low Low Medium Medium Medium Medium Medium Medium Medium Medium Medium Medium Medium Medium Medium Medium Medium Medium Medium Medium High High High High High High High High High High High High High Very High
Low Very High Low Very Low Low Very High Very Low Very Low Very High Very High Very High Very Low Very Low Very Low Very Low Low Low Very Low Medium Very High High Very Low High Very High High Very High Very High Very High Very High Very Low Low Very High Very High Very Low Very Low Very Low Very Low Very High Very Low Very Low Very Low Very High Very High Very Low Low Very Low Very Low Medium
Medium Very Low Medium Very High Medium Very Low Very High Very High Very Low Very Low Very Low Very High Very High Very High Very High Medium Medium Very High High Very Low Low Very High Low Very Low Low Very Low Very Low Very Low Very Low Very High Medium ' Very Low Very Low Very High Very High Very High Very High Very Low Very High Very High Very High Very Tow Very Low Very High Medium Very High Very High High
Cerah Berawan Hujan Cerah Berawan Cerah Cerah Berawan Hujan Cerah Cerah Hujan Hujan Hujan Cerah Cerah Cerah Cerah Cerah Berawan Cerah Berawan Cerah Hujan Berawan Hujan Berawan Cerah Berawan Hujan Berawan Hujan Hujan Hujan Hujan Cerah Cerah Berawan Hujan Hujan Cerah Cerah Cerah Cerah Hujan Cerah Cerah Cerah Hujan Hujan Cerah Cerah Berawan Cerah Cerah Hujan Berawan
39
Sistem Syaraf Buatan
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
Tow Medium High Very High Very Tow Medium Very High Very Tow Medium Very High Very Tow Medium Very High Very Tow Medium Very High
Very Tow Very Low Tow Low Low Medium Medium Medium High High High Very High Very High Very High
Very High Very High Very High Very High Very High Very High Very High Very High Very High Very High Very High Very High Very High Very High Very High Very High
Very Tow Medium Very High Medium Very High Medium High Very High Very High Very High Very Low Very Low Very Tow Low Medium Very High
Very High High Very Low High Very Low High Low Very Low Very Tow Very Low Very High Very High Very High Medium High Very Tow
Cerah Hujan Berawan Hujan Hujan Berawan Hujan Hujan Berawan Berawan Hujan Hujan Hujan Cerah Cerah Cerah Cerah Berawan Hujan Berawan Hujan
DAFTAR PUSTAKA
[1]
Diyah Puspitaningrum. Pengantar Jaringan Syaraf Tiruan. Yogyakarta : Penerbit Andi. 2006.
[2]
Jong Jek Siang. Jaringan Syaraf Tiruan Pemrograman Menggunakan Matlab. Yogyakarta : Penerbit Andi. 2005.
[3]
Lanny W. Pandjaitan. Dasar-Dasar Komputasi Cerdas. Yogyakarta : Penerbit Andi. 2007.
[4]
Sri Kusumadewi. Membangun Jaringan Syaraf Tiruan Menggunakan Matlab. Yogyakarta : Penerbit Graha Ilmu. 2004.
Halaman
40