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 mempunyai struktur yang menakjubkan karena kemampuannya membentuk sendiri 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.
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.
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.
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 kinerja jaringan memenuhi standar yang ditentukan sebelumnya (memenuhi syarat berhenti)
then 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.
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).
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.
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
masukan yang tersedia ke dalam kelompok yang berbeda-beda. Contoh JST dengan belajar tanpa pengawasan adalah jaringan Kohonen.
Paradigma Masalah Yang Diselesaikan
On-Line /Off-Line
Penyepadanan
Pola Tipe Belajar Pembatasan Implementasi
AG
Klasifikasi data tanpa
pengawasan
On-line Ya Hebbian
Keterbatasan tempat penyimpanan
Optik dan elektronik
SG
Pemrosesan informasi manusia
On-line Ya Hebbian
Keterbatasan tempat penyimpanan
Elektronik
ARTI Klasifikasi pola
kompleks On-line Ya Competitiv e decay
Dibatasi pada
biner Komputer Syaraf DH Pemrosesan
pemtaraan On-line Tidak Hebbian Dibatasi pada biner
Elektronika Optik CH Optimasi
kombinasional On-line Ya Hebbian/
kompetitif
Keterbatasan memori
Elektronika Optik BAM Pengenalan
citra Off-line Ya Hebbian
Belajar ekstensif off-line
Simulasi komputer
ABAM Proses pola
analog kontinu On-line Ya Hebbian
Keterbatasan tempat penyimpanan
Komputer Syaraf
CABAM Optimasi kombinatorial
On-line
dan off line Ya Hebbian
Keterbatasan tempat penyimpanan
Simulasi komputer
LM Proses Monitor Off-line Ya Hebbian Tak ada laporan
Mekanik Elektronik Magnetik LAM Kontrol sistem Off-line Ya Hebbian
Keterbatasan tempat penyimpanan
Simulasi komputer
OLAM Pemrosesan
sinyal Off-line Ya Hebbian
Belajar ekstensif off- line
Optik Tabel Pelatihan Tanpa Supervisi
Paradigma Masalah yang diselesaikan
On-line / Off-line
Penyepadanan
Pola Tipe Belajar Pembatasan Implementasi BSB Klasifikasi real
time Off-line Ya Koreksi eror Belajar off- line
Simulasi Komputer Perceptron Prediksi Off-line Ya Koreksi eror Tak ada
laporan
Mesin perceptron Adaline/
Madaline
Prediksi peng-
hapusan derau Off-line Ya Koreksi eror Belajar off-
line Magnetik optik BP Pengenalan
tingkah laku Off-line Ya Koreksi eror Belajar off- line
Elektronik optik VLSi
AVQ Self-organizing
data Off-line Ya Koreksi eror Belajar off-
line Neural-computer
CPN Self-
programming Off-line Ya Hebbian
Lack of control w/o star mapping
Neural-computer
BM Optimasi
kombinatorial Off-line Ya
Hebbian dan annealing
Belajar off- line
Elektronik optik VLSi
Tabel Pelatihan Dengan Supervisi
Daftar singkatan :
Akronim Definisi
CPN Counter propagation AG Additive Grossberg BM Boltzman Machine SG Shunting Grossberg
ART1 Adaptive Resonance Theory Biner DH Hopfield Diskrit
CH Hopfield Kontinu
BAM Bidirectional Associative Memory Diskrit ABAM Bidirectional Associative Memory Adaptive CABAM Competitive ABAM
LM Learning Matrix
LAM Linear Associative Memory
OLAM Optimal Linear Associative Memory BSB Brain State in a Box
PERCEP Perceptron Adaline Adaptive Linear Element
Madaline Multiple Adaptive Linear Element BP Back Propagation
AVQ Adaptive Vektor Quantizer
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.
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 ZJke unit keluaran yk (wko merupakan bobot dari bias di layar tersembunyi ke unit keluaran Zk)
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
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.
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-
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 ke- mudian 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 ber- hubungan 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 :
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
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/2Sedangkan 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
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 :
Paradigma Aturan
Pembelajaran Arsitektur Algoritma
Pembelajaran Bidang Kerja
Pengoreksian-error Perceptron lapisan tunggal atau mutilapis
Perceptron
Propagasi balik
Adaline dan Madaline
Klasifikasi pola
Aproksimasi fungsi
Prediksi, kontrol
Boltzmann Recurrent (berulang) Boltzman Klasifikasi pola
Hebbian
Umpan maju multi lapisan (multilayer feedforward)
Analisis diskriminan linear
Analisis data
Klasifikasi pola
Kompetitif
LVQ (Learning Vector
Quantization)
Kategori kelas
Kompresi data Terawasi
supervised
Kompetitif
Jaringan ART ARTMap Klasifikasi pola
Kategori kelas Pengkoreksian-error Multilayer feedforward Proyeksi Sammon Analisis data
Umpan maju atau kompetitif
Analisis Komponen Prinsipal
Analisis data
Kompresi data Hebbian
Hopfield Network Aturan memori
asosiatif Memori asosiatif Kompetitif Kuantisasi vektor Kategorisasi
Kompresi data Kohonen SOM Kohonen SOM Kategorisasi
Analisis data Tidak
terawasi unsupervised
Kompetitif
Jaringan ART ART1, ART2 Kategorisasi Hibrida
hybrid
Pengkoreksian error
dan kompetitif Jaringan RBF Algoritma RBF
Klasifikasi pola
Aproksimasi fungsi
Prediksi, kontrol
Tabel Paradigma, Aturan Pembelajaran, Arsitektur, Algoritma, dan Aplikasi Jaringan Saraf Tiruan
SIKLUS PEMBUATAN APLIKASI JARINGAN SARAF TIRUAN
Gambar Siklus Pembuatan Aplikasi Jaringan Saraf Tiruan
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 P S 1 1 10 29 29 9 27 57 11 24 85 11 21 113 12 S 2 2 8 30 30 10 28 58 10 25 86 12 22 114 13 R 3 3 12 1 31 12 29 59 15 26 87 12 23 115 14 K 4 4 10 2 32 11 30 60 12 27 88 15 24 116 15 J 5 5 12 3 33 12 31 61 8 28 89 14 25 117 13 S 6 6 30 4 34 31 1 62 28 29 90 37 26 118 35 M 7 7 35 5 35 36 2 63 32 30 91 37 27 119 38 S 8 8 9 6 36 11 3 64 10 31 92 12 28 120 11 S 9 9 10 7 37 13 4 65 13 1 93 13 29 121 12 R 10 10 11 8 38 12 5 66 14 2 94 10
K 11 11 10 9 39 10 6 67 10 3 95 9 J 12 12 12 10 40 9 7 68 13 4 96 7 S 13 13 23 11 41 24 8 69 25 5 97 25 M 14 14 26 12 42 26 9 70 26 6 98 29 S 15 15 10 13 43 10 10 71 10 7 99 11 S 16 16 11 14 44 12 11 72 15 8 100 12 R 17 17 12 15 45 12 12 73 11 9 101 13 K 18 18 11 16 46 11 13 74 11 10 102 13 J 19 19 12 17 47 12 14 75 16 11 103 12 S 20 20 24 18 48 23 15 76 26 12 104 24 M 21 21 26 19 49 25 16 77 25 13 105 25 S 22 22 9 20 50 10 17 78 10 14 106 11 S 23 23 9 21 51 7 18 79 7 15 107 8 R 24 24 12 22 52 15 19 80 12 16 108 16 K 25 25 13 23 53 13 20 81 13 17 109 13 J 26 26 12 24 54 14 21 82 12 18 110 15 S 27 27 21 25 55 23 22 83 26 19 111 28 M 28 28 26 26 56 27 23 84 27 20 112 30
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.
Input Target Input Target
No T-21 T-14 T-7 T T+7 No
T-21 T-14 T-7 T T+7
l 10 9 10 9 9 41 24 23 23 28 25
2 8 10 11 9 10 42 26 25 27 32 26
3 12 11 12 12 12 43 10 10 11 10 10 4 10 10 11 13 11 44 12 7 10 13 15 5 12 12 12 12 12 45 12 15 15 14 11 6 30 23 24 21 31 46 11 13 12 10 11 7 35 26 26 26 36 47 12 14 8 13 16
8 9 10 9 9 11 48 23 23 28 25 26
9 10 11 9 10 13 49 25 27 32 26 25 10 11 12 12 12 12 50 10 11 10 10 10 11 10 11 13 11 10 51 7 10 13 15 7 12 12 12 12 12 9 52 15 15 14 11 12 13 23 24 21 31 24 53 13 12 10 11 13 14 26 26 26 36 26 54 14 8 13 16 12
15 10 9 9 11 10 55 23 28 25 26 26
16 11 9 10 13 12 56 27 32 26 25 27
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 Target
No
T-21 T-14 T-7 T T=7
1 12 12 10 13 16
2 13 15 9 13 13
3 12 14 7 12 15
4 26 37 25 24 28
5 27 37 29 25 30
6 11 12 11 11 12
7 12 13 12 8 13
8 12 10 13 16 14
9 15 9 13 13 15
10 14 7 12 15 13
11 37 25 24 28 35 12 37 29 25 30 38 13 12 11 11 12 11
14 13 12 8 13 12
Tabel 14 Data Yang Akan Dicek
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 :
Kemudian dibangun jaringan syaraf dengan metode pembelajaran gradient descent dengan momentum (traingdm) :
Misalkan bobot awal ditetapkan sebagai berikut :
Bobot awal lapisan input ke lapisan tersembunyi pertama :
net.IW{1,1}=[...
0.4500 0.0894 -0.8542 0.8416 0.9579 -0.1978 -0.5595 -0.6146 -0.6119 -0.9953 0.1435 -0.4015 -0.6320 -0.7867 -0.4583 0.5986 -0.0152 1.1257 0.4672 -0.1576 0.4021 -0.7500 -0.3316 -0.8762 0.5958 0.6346 0.6376 0.6659 -0.3116 0.9297 -0.7423 0.1878 -0.0043 0.7410 -0.8049 -0.6237 -0.7518 0.4902 0.5800 -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];
[pn,meanp,stdp,tn,meant,stdt]=prestd(P,T)
net=newff(minmax(pn),[10 5 1],{'tansig','logsig','purelin'} ,'traingdm');
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 = 5000;
net.trainParam.goal = le-2;
net.trainParam.lr = 0.5;
net.trainParam.show = 200;
net.trainParam.mc = 0.8;
Kemudian dilakukan proses pelatihan :
net=train(net,pn,tn);pause
Proses Pelatihan :
TRAINGDM, Epoch 0/5000, MSE 1.15396/0.01, Gradient 0.785193/1e-010 TRAINGDM, Epoch 200/5000, MSE 0.0709291/0.01, Gradient 0.0113334/1e-010 TRAINGDM, Epoch 400/5000, MSE 0.0611334/0.01, Gradient 0.0076065/1e-010 TRAINGDM, Epoch 600/5000, MSE 0.0561193/0.01, Gradient 0.00705583/1e-010 TRAINGDM, Epoch 800/5000, MSE 0.050736/0.01, Gradient 0.00765904/1e-010 TRAINGDM, Epoch 1000/5000, MSE 0.0447094/0.01, Gradient 0.0073939/1e-010 TRAINGDM, Epoch 1200/5000, MSE 0.0408566/0.01, Gradient 0.00509012/1e-010 TRAINGDM, Epoch 1400/5000, MSE 0.0387012/0.01, Gradient 0.00427469/1e-010 TRAINGDM, Epoch 1600/5000, MSE 0.0370799/0.01, Gradient 0.00380796/1e-010
TRAINGDM, Epoch 1800/5000, MSE 0.035724/0.01, Gradient 0.00358099/1e-010 TRAINGDM, Epoch 2000/5000, MSE 0.0344841/0.01, Gradient 0.00346605/1e-010 TRAINGDM, Epoch 2200/5000, MSE 0.0333205/0.01, Gradient 0.00334411/1e-010 TRAINGDM, Epoch 2400/5000, MSE 0.0322628/0.01, Gradient 0.00313722/1e-010 TRAINGDM, Epoch 2600/5000, MSE 0.0313643/0.01, Gradient 0.00283738/1e-010 TRAINGDM, Epoch 2800/5000, MSE 0.0306464/0.01, Gradient 0.00251437/1e-010 TRAINGDM, Epoch 3000/5000, MSE 0.0300804/0.01, Gradient 0.00225066/1e-010 TRAINGDM, Epoch 3200/5000, MSE 0.0296119/0.01, Gradient 0.00209144/1e-010 TRAINGDM, Epoch 3400/5000, MSE 0.0291917/0.01, Gradient 0.00201661/1e-010 TRAINGDM, Epoch 3600/5000, MSE 0.0287926/0.01, Gradient 0.00198145/1e-010 TRAINGDM, Epoch 3800/5000, MSE 0.0284046/0.01, Gradient 0.00195814/1e-010 TRAINGDM, Epoch 4000/5000, MSE 0.0280249/0.01, Gradient 0.0019398/1e-010 TRAINGDM, Epoch 4200/5000, MSE 0.0276507/0.01, Gradient 0.00193121/1e-010 TRAINGDM, Epoch 4400/5000, MSE 0.027277/0.01, Gradient 0.00193774/1e-010 TRAINGDM, Epoch 4600/5000, MSE 0.0268978/0.01, Gradient 0.00196013/1e-010 TRAINGDM, Epoch 4800/5000, MSE 0.0265065/0.01, Gradient 0.00200075/1e-010 TRAINGDM, Epoch 5000/5000, MSE 0.0260923/0.01, Gradient 0.00208085/1e-010 TRAINGDM, Maximum epoch reached, performance goal was not met.
Gambar Hasil Pelatihan Sampai 5000 Epoch
Diperoleh bobot akhir :
BobotAkhir_Input =
1.1605 0.7208 -1.7414 0.6660 2.4893 0.2488 -0.7857 -0.2273 -0.2320 -0.7314 0.2584 -1.0628 -0.4607 -0.2146 0.1429 1.2892 -2.2951 2.2632 1.0401 0.2142 1.0997 -1.1705 -1.9181 -0.9992 -0.5987 0.1715 1.8544 0.3305 -0.7688 -0.4725 -1.7628 1.9775 -0.0131 0.2169 -1.8838 1.2326 -0.9041 0.1325 0.3392 -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 1.0772 1.0029 -0.0390 0.0126 -1.7508 0.8081 1.1688 1.0990 0.3959 0.8857 1.4784 -0.0239 0.0917 -0.5102 -1.0847 -1.9556 1.0259 -1.2774 -1.0410 1.3385 -2.6600 -0.5967 0.0841 2.7134 -0.0976 -1.1809 -0.9917 -1.8543 0.9382 1.1372 -1.4831 0.6483 -0.4661 -0.0826 3.0700 -0.7946 0.4980 -0.1740 -1.2393 1.0950 1.1320 -1.4433 1.2657 0.5956 -0.3650 1.7735 -2.2310 -1.3305 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
2 10.00 9.39 0.61 3 12.00 11.39 0.61 4 11.00 11.69 -0.69 5 12.00 11.35 0.65 6 31.00 31.01 -0.01 7 36.00 35.57 0.43 8 11.00 10.77 0.23 9 13.00 11.80 1.20 10 12.00 10.46 1.54 11 10.00 11.12 -1.12 12 9.00 11.35 -2.35 13 24.00 23.68 0.32 14 26.00 26.97 -0.97 15 10.00 12.58 -2.58 16 12.00 12.97 -0.97 17 12.00 11.35 0.65 18 11.00 10.51 0.49 19 12.00 11.84 0.16 20 23.00 24.12 -1.12 21 25.00 24.79 0.21 22 10.00 9.90 0.10 23 7.00 9.78 -2.78 24 15.00 11.35 3.65 25 13.00 12.29 0.71 26 14.00 13.56 0.44 27 23.00 24.00 -1.00 28 27.00 26.41 0.59 29 11.00 9.82 1.18 30 10.00 10.84 -0.84 31 15.00 12.38 2.62 32 12.00 11.92 0.08 33 8.00 11.60 -3.60 34 28.00 28.07 -0.07 35 32.00 32.09 -0.09 36 10.00 11.63 -1.63 37 13.00 14.13 -1.13 38 14.00 12.56 1.44 39 10.00 10.42 -0.42 40 13.00 12.07 0.93 41 25.00 25.48 -0.48 42 26.00 26.88 -0.88 43 10.00 10.54 -0.54 44 15.00 12.70 2.30 45 11.00 11.81 -0.81 46 11.00 10.82 0.18 47 16.00 14.29 1.71 48 26.00 24.05 1.95 49 25.00 25.12 -0.12 50 10.00 10.70 -0.70 51 7.00 6.73 0.27 52 12.00 12.62 -0.62 53 13.00 12.44 0.56 54 12.00 11.98 0.02 55 26.00 24.73 1.27 56 27.00 27.29 -0.29 57 11.00 11.21 -0.21 58 12.00 12.41 -0.41 59 12.00 13.11 -1.11 60 15.00 12.07 2.93
61 14.00 13.82 0.18 62 37.00 36.76 0.24 63 37.00 37.51 -0.51 64 12.00 11.34 0.66 65 13.00 14.32 -1.32 66 10.00 12.19 -2.19 67 9.00 10.25 -1.25 68 7.00 8.68 -1.68 69 25.00 25.88 -0.88 70 29.00 27.09 1.91 71 11.00 10.85 0.15 72 12.00 11.09 0.91 73 13.00 11.26 1.74 74 13.00 12.61 0.39 75 12.00 11.75 0.25 76 24.00 24.55 -0.55 77 25.00 25.03 -0.03 78 11.00 10.31 0.69 79 8.00 7.56 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
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 16.00 13.20 2.80 2 13.00 13.63 -0.63 3 15.00 14.44 0.56 4 28.00 25.83 2.17 5 30.00 27.60 2.40
6 12.00 10.78 1.22 7 13.00 11.48 1.52 8 14.00 12.31 1.69 9 15.00 12.01 2.99 10 13.00 12.00 1.00 11 35.00 27.51 7.49 12 38.00 36.75 1.25 13 11.00 11.64 -0.64 14 12.00 14.44 -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
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