Professional Documents
Culture Documents
Sistem Syaraf Manusia Sistem syaraf, bersama-sama dengan sistem endokrin, mengurus atau memelihara sebagian besar pengaturan fungsi tubuh yang cepat, misalnya kontraksi otot, perubahan viseral yang berlangsung dengan cepat, dan bahkan juga kecepatan sekresi beberapa kelenjar endokrin. Sejak pembentukannya, sistem syaraf ini mempunyai sifat-sifat mengatur yang sangat kompleks dan khusus. Sistem syaraf juga menerima berjuta rangsangan informasi yang berasal dari bermacam-macam organ sensorik dan kesemuanya ini bersatu untuk dapat menentukan respon yang akan diberikan oleh tubuh. Otak manusia berisi berjuta-juta sel syaraf yang bertugas untuk memproses informasi. Tiap-tiap sel bekerja seperti suatu prosesor sederhana. Masing-masing sel tersebut saling berinteraksi sehingga mendukung kemampuan kerja otak manusia.
Sel-1 (Neuron-1) Inti Sel (Nucleus) Dendrit Dendrit Axon Synapsis
Sel-2 (Neuron-2)
Gambar 2.1 menunjukkan susunan syaraf pada manusia. Setiap sel syaraf (neuron) akan memiliki satu inti sel, inti sel ini nanti yang akan bertugas untuk melakukan pemrosesan informasi. Informasi yang datang akan diterima oleh dendrit. Selain menerima informasi, dendrit juga menyertai axon sebagai keluaran dari suatu pemrosesan informasi. Informasi hasil olahan ini akan menjadi masukan bagi neuron lain yang mana antar dendrit kedua sel tersebut dipertemukan dengan synapsis. Informasi yang dikirimkan antar neuron ini berupa 1
rangsangan yang dilewatkan melalui dendrit. Informasi yang datang dan diterima oleh dendrit akan dijumlahkan dan dikirim melalui axon ke dendrit akhir yang bersentuhan dengan dendrit dari neuron lain. Informasi ini akan diterima oleh neuron lain jika memenuhi batasan tertentu, yang sering dikenal dengan nama nilai ambang (threshold). Pada kasus ini, neuron tersebut dikatakan teraktivasi. Hubungan antar neuron terjadi secara adaptif, artinya struktur hubungan tersebut terjadi secara dinamis. Otak manusia selalu memiliki kemampuan untuk belajar dengan melakukan adaptasi.
Sistem Jaringan Syaraf Tiruan Jaringan syaraf adalah merupakan salah satu representasi buatan dari otak manusia tersebut istilah buatan disini digunakan karena jaringan syaraf ini diimplementasikan dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses penghitungan selama proses pembelajaran (Kusumadewi, 2003). Jaringan syaraf tiruan diimplementasikan untuk pemecahan masalah komputasi seperti yang dilakukan oleh otak manusia seperti pengenalan pola, pengambilan keputusan, kendali penggerak dan banyak lagi seperti prediksi kebangkrutan perusahaan, sebagai suatu mekanisme untuk mengakusisi pengetahuan untuk sistem pakar seperti pada peramalan stock market dengan hasil yang akurat. Jaringan syaraf tiruan adalah suatu sistem pengolah informasi yang memiliki sifat mirip dengan jaringan syaraf biologis. Jaringan syaraf tiruan dikembangkan sebagai model matematis dari syaraf biologis. Ada 4 asumsi dari model tersebut yaitu (Fausett, 1994): 1. Pengolahan informasi terjadi pada sejumlah elemen sederhana yang disebut neuron. 2. Sinyal mengalir antar neuron melalui koneksi link. 3. Setiap koneksi link memiliki bobot (abstrak) yang mempengaruhi sinyal yang melewatinya.
4. Setiap neuron menggunakan/menerangkan fungsi aktivasi untuk menentukan sinyal outputnya. Dengan asumsi-asumsi tersebut maka jaringan syaraf tiruan mempunyai sifat-sifat yang ditentukan oleh: 1. Arsitektur jaringannya (pola koneksinya). 2. Training-nya (cara menentukan bobot link-nya). 3. Fungsi aktivasinya. Pada dasarnya, kebanyakan aplikasi jaringan syaraf tiruan termasuk kedalam 5 kategori berikut (Haykin, 1994): 1. Prediksi, menggunakan nilai input untuk memprediksi beberapa output. Contohnya memilih barang terbaik dalam market, peramalan cuaca, identifikasi seorang penderita penyakit kanker. 2. Klasifikasi, menggunakan nilai input untuk menentukan klasifikasi, contohnya, adalah input dari huruf A. 3. Asosiasi data, seperti klasifikasi tetapi dapat juga mengenali data yang erisikan kesalahan. Contohnya, tidak hanya identifikasi karakter yang di-scan tetapi identifikasi kapan scanner tidak bekerja sebagaimana mestinya. 4. Data Conceptualization, menganalisa input-input sehingga pengelompokan hubungan dapat disimpulkan. 5. Data Filtering, menghaluskan sebuah sinyal input. Contohnya, menghilangkan bunyi pada sinyal telepon. Jaringan syaraf tiruan memiliki sejumlah besar kelebihan dibandingkan dengan metode perhitungan lainnya (sistem pakar, statistik, dll), yaitu (Haykin, 1994): 1. Kemampuan mengakusisi pengetahuan walaupun dalam kondisi adanya gangguan dan ketidakpastian. Hal ini dikarenakan jaringan syaraf tiruan mampu melakukan generalisasi, abstraksi, dan ekstraksi terhadap properti statistik dari data. 3
2. Kemampuan merepresentasikan pengetahuan secara fleksibel. Jaringan syaraf tiruan dapat menciptakan sendiri representasi melalui pengaturan diri sendiri atau kemampuan belajar (self organizing). 3. Kemampuan mentolelir suatu distorsi (error/fault). Dimana gangguan kecil pada data dapat dianggap hanya noise (guncangan) belaka. 4. Kemampuan memproses pengetahuan secara efisien karena memakai sistem paralel, maka waktu yang diperlukan untuk mengoperasikannya menjadi lebih singkat. 5. Kemampuan untuk memperoleh pengetahuan melalui pembelajaran dari pengalaman. Walaupun dengan banyak kelebihan yang dimiliki, jaringan syaraf tiruan tetap mempunyai sejumlah keterbatasan, misal: kekurangmampuannya dalam melakukan operasioperasi numerik dengan presisi tinggi, operasi algoritma aritmatik, operasi logika, dan operasi simbolis dan lamanya proses pelatihan yang kadang-kadang membutuhkan waktu berhari-hari untuk jumlah data yang besar. Hal ini terjadi karena sulitnya mengukur performansi sebenarnya dari jaringan syaraf tiruan itu sendiri.
Komponen Jaringan Syaraf Tiruan 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 mentransformasikan informasi yang diterima melalui sambungan keluarnya menuju ke neuron-neuron yang lain. Pada jaringan syaraf, hubungan ini dikenal dengan nama bobot. Informasi tersebut disimpan pada suatu nilai tertentu pada bobot tersebut. Adapun struktur neuron pada jaringan syaraf adalah seperti yang ditunjukkan pada gambar 2.2.
Fungsi Aktivasi
Bobot
Output
Informasi (disebut dengan input) akan dikirim ke neuron dengan bobot kedatangan tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang akan menjumlahkan nilainilai semua bobot yang datang. Hasil penjumlahan ini kemudian akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktivasi setiap neuron. Apabila input tersebut melewati suatu nilai ambang tertentu, maka neuron tersebut akan diaktifkan. Apabila neuron tersebut diaktifkan, maka neuron tersebut akan mengirimkan output melalui bobotbobot 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 layers). Tergantung pada algoritma pembelajarannya, bias jadi informasi tersebut akan dirambatkan secara mundur pada jaringan.
Arsitektur Jaringan Syaraf Tiruan Ada beberapa arsitektur jaringan syaraf tiruan, antara lain (Kusumadewi, 2003): 1. Jaringan dengan lapisan tunggal (single layer net) Adapun arsitektur jaringan syaraf dengan lapisan tunggal adalah seperti yang ditunjukkan pada Gambar 2.3. 5
Nilai Input
X1
W11 W21 W12
X2
W22
X3
Lapisan Input
W31
W32
Matriks bobot
Y1
Y2
Lapisan Output
Nilai Output
Jaringan dengan lapisan tunggalnya memiliki satu lapisan dengan bobot-bobot terhubung. Jaringan ini hanya menerima input kemudian secara langsung akan mengolahnya menjadi output tanpa harus melalui lapisan tersembunyi. 2. Jaringan dengan banyak lapisan (multilayer net) Arsitektur jaringan syaraf dengan banyak lapisan adalah seperti yang ditunjukkan pada Gambar 2.4.
Nilai Input
X1
V11 V21 V12
X2
V22
X3
Lapisan Input
V31
V32
Z1
Z2
Lapisan Tersembunyi
W1 W2 Gambar 2.4 Jaringan syaraf dengan banyak Matriks bobot kedua lapisan
Lapisan Output
Nilai Output
Jaringan dengan banyak lapisan memiliki satu atau lebih lapisan yang terletak diantara lapisan input dan lapisan output (memiliki satu atau lebih lapisan tersembunyi), seperti terlihat pada Gambar 2.4. Umumnya, ada lapisan bobot-bobot yang terletak antara dua lapisan yang bersebelahan. Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang lebih sulit daripada lapisan dengan lapisan tunggal, tentu saja dengan pembelajaran yang lebih rumit. 3. Jaringan dengan lapisan kompetitif (competitive layer net) Umumnya, hubungan antar neuron pada lapisan kompetitif ini tidak diperlihatkan pada diagram arsitektur. Gambar 2.5 menunjukkan arsitektur jaringan dengan lapisan kompetitif. 1 1
A
1
- - -
A
m
- 1 A
i
- A -
j
Proses Pembelajaran Pada otak manusia, informasi yang dilewatkan dari satu neuron ke neuron yang lainnya berbentuk rangsangan listrik melalui dendrit. Jika rangsangan tersebut diterima oleh suatu neuron, maka neuron tersebut akan membangkitkan output ke semua neuron yang berhubungan dengannya sampai informasi tersebut sampai ke tujuannya yaitu terjadinya suatu reaksi. Jika rangsangan yang diterima terlalu halus, maka output yang dibangkitkan oleh neuron tersebut tidak akan direspon. Selama proses pembelajaran, terjadi perubahan yang cukup berarti pada bobot-bobot yang menghubungkan antar neuron. Apabila ada rangsangan yang sama dengan rangsangan yang telah diterima oleh neuron, maka neuron 7
akan memberikan reaksi dengan cepat. Namun apabila kelak ada rangsangan yang berbeda dengan apa yang telah diterima oleh neuron, maka neuron akan segera beradaptasi untuk memberikan reaksi yang sesuai. Jaringan syaraf tiruan akan mencoba untuk mensimulasikan kemampuan otak manusia untuk belajar. Jaringan syaraf tiruan juga tersusun atas neuron-neuron dan dendrit. Tidak seperti model biologis, jaringan syaraf tiruan memiliki struktur yang tidak dapat diubah, dibangun oleh sejumlah neuron, maka neuron akan segera beradaptasi untuk memberikan reaksi yang sesuai. Ada 3 jenis pembelajaran yang dikenal dalam jaringan syaraf tiruan yang disebabkan karena proses penentuan bobot koneksi disetarakan dengan proses pada syaraf biologis yaitu (Fausett, 1994): 1. Supervised Learning (Pembelajaran Terawasi)
Metode pembelajaran pada jaringan syaraf disebut terawasi jika output yang diharapkan telah diketahui sebelumnya. Contoh: Hebb Rule, Perceptron, Delta Rule,
Backpropagation, Heteroassociative Memory, Learning Vector Quantization (LVQ). 2. Unsupervised Learning (Pembelajaran tak terawasi)
Pada metode pembelajaran yang tak terawasi ini tidak memerlukan target output. Pada metode ini, tidak dapat ditentukan hasil yang seperti apakah yang diharapkan selama proses pembelajaran. Contoh: Kohonen. 3. Fixed-Weight Net
Pada metode ini, bobot ditentukan untuk menentukan batasan maksimum atau minimumnya. Dengan demikian bobot koneksi tidak akan pernah berubah.
Fungsi Aktivasi Contoh fungsi aktivasi yang paling sering digunakan adalah sigmoid bipolar dan sigmoid biner. Fungsi sigmoid bipolar memiliki interval nilai (-1,1), persamaannya:
f1 ( x ) =
2 1 1 + exp( x )
. (2.1)
f(x)
. (2.3)
. (2.4)
f(x)
x
Gambar 2.7 Fungsi aktivasi sigmoid biner
Pembelajaran Backpropagation 9
Backpropagation merupakan algoritma pembelajaran yang terawasi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur atau biasa disebut backward (Fausett, 1994). Untuk mendapatkan error ini, tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu. Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid yaitu:
f1 ( x ) =
1 1 +exp( x)
. (2.5)
Arsitektur jaringan backpropagation seperti terlihat pada gambar 2.8 berikut ini:
X1
W11 W12
Y1
X2
W13 W21
V22 V Z2
Y2
3 1 Keterangan: V32 Xx = input (gejala) 3 v = bobot input ke hidden y = output (jenis penyakit) w = bobot hidden ke output z = hidden layer
W22 W23 Y3
= alur Feedforward = alur Backpropagation Gambar 2.8. Arsitektur jaringan Backpropagation = neuron (unit pengolah)
10
1.
Langkah 0: inisialisasi bobot (ambil bobot awal dengan nilai random yang bernilai
antara 0 sampai 1). 2. Langkah 1: Kerjakan langkah 2 s/d 9 berikut selama kondisi berhenti bernilai
FALSE. 3. Langkah 2: Kerjakan langkah 3 s/d 8 berikut untuk tiap-tiap pasangan elemen yang
akan dilakukan pembelajaran. Feedforward (perambatan maju): 4. Langkah 3: Tiap-tiap unit input (xi, i = 1,2,3,.,n) menerima sinyal xi dan
meneruskan sinyal tersebut ke semua unit pada lapisan yang ada diatasnya (lapisan tersembunyi). 5. Langkah 4: Tiap-tiap unit tersembunyi (zj, j = 1,2,3,,p) menjumlahkan sinyal-
z _ inj = v0 j +
z j = f ( z _ inj )
j=1
xivij
v0 = bias ; v = bobot
...(2.6)
Kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output). 6. Langkah 5: tiap-tiap unit output (yk, k = 1,2,3,,m) menjumlahkan sinyal-sinyal
input berbobot:
y _ ink = w0k + z j w jk
j=1
w0 = bias ; w = bobot
.(2.8)
y k = f ( y _ ink )
. (2.9)
Kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output). Backpropagation (perambatan mundur): 11
7.
Langkah 6: Tiap-tiap unit output (yk, k = 1,2,3,,m) menerima target pola yang
k = ( tk yk )
f '
( y _ i nk )
t = target output
.............(2.10)
Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperoleh nilai wjk):
w jk = k z j
Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai w0k):
w0 k = k
. (2.12)
Kirimkan ini ke unit-unit yang ada di lapisan di bawahnya. 8. Langkah 7: Tiap-tiap unit tersembunyi (zj, j = 1,2,3,,p) menjumlahkan delta
_ in j = k w jk
k =1
. (2.13)
Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error:
j = _ inj f ' z _ in j
. (2.14)
Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij):
vij = j xi
. (2.15)
Hitung koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai v0j):
v 0 j = j
. (2.16)
Perbaharui bobot dan prasikapnya: 9. Langkah 8: Tiap-tiap unit output (yk, k = 1,2,3,m) memperbaiki bias dan bobotnya
(j = 0,1,2,,p):
w jk ( baru ) = vij ( lama ) + vij
(bobot)
. (2.17) 12
w0 k ( baru ) = w0 k ( lama ) + w0 k
(bias)
. (2.18)
Tiap-tiap unit tersembunyi (zj, j = 1,2,3,,p) memperbaiki bias dan bobotnya (I = 0,1,2, ,n):
vij ( baru ) = vij ( lama ) + vij v0 j ( baru ) = v 0 j ( lama ) + v0 j
(bobot) (bias)
. (2.19) . (2.20)
10. Langkah 9: Tes kondisi berhenti. Kecepatan konvergensi dapat ditingkatkan dengan memodifikasi laju belajar adaptif, yang berubah selama proses pelatihan atau pembelajaran, maka nilai bobot-bobot, prasikap, keluaran dan galat yang baru diabaikan, dan nilai bobot-bobot, prasikap, keluaran dan galat yang baru disimpan, laju belajar ditingkatkan.
Pengujian Data Setelah proses pembelajaran dilakukan berdasarkan langkah-langkah algoritma backpropagation, maka diperoleh nilai bobot akhir dan nilai bias akhir yaitu dari iterasi terakhir dengan nilai error atau galat 0.01. Nilai bobot dan bias inilah yang akan digunakan dalam melakukan pengujian terhadap data dengan perambatan maju (forward propagation). Adapun langkah-langkah pengujian data adalah sebagai berikut: Feedforward (perambatan maju): 1. Langkah 1: Tiap-tiap unit input (xi, I = 1,2,3,,n) menerima sinyal xi dan
meneruskan sinyal tersebut ke semua unit pada lapisan yang ada di atasnya (lapisan tersembunyi). 2. Langkah 2: Tiap-tiap unit tersembunyi (zj, j = 1,2,3,,p) menjumlahkan sinyal-
. (2.21)
zj =
f ( z _ inj )
. (2.22)
Kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output). 3. Langkah 3: Tiap-tiap unit output (yk, k = 1,2,3,,m) menjumlahkan sinyal-sinyal input berbobot:
y _ ink = w0 k + z j w jk
j =1 p
. (2.23)
y k = f ( y _ ink )
. (2.24)
Kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output). Misalkan ditetapkan nilai threshold = 0.5, artinya jika nilai y 0.5 maka output yang diberikan adalah 1, namun jika nilai y < 0.5 maka output yang diberikan adalah 0.
Tujuan dari perubahan bobot untuk setiap lapisan, bukan merupakan hal yang sangat penting. Perhitungan kesalahan merupakan pengukuran bagaimana jaringan dapat belajar dengan baik. Rumus untuk menghitung kesalahan tiap iterasi adalah sebagai berikut: Sum Square Error (SSE), digunakan untuk menghitung nilai kuadrat error tiap data, SSE dihitung sebagai berikut: 1. 2. Hitung lapisan prediksi atau luaran model untuk masukan pertama. Hitung selisih antara nilai luar prediksi dan nilai target atau sinyal latihan
untuk setiap luaran. 3. Kuadratkan setiap luaran kemudian hitung seluruhnya. Ini merupakan kuadrat
. (2.25)
T = target output;
14
Y = aktivasi Y_in.
Root mean Square Error (RMSE), digunakan untuk menghitung rata-rata nilai error tiap iterasi, dan sebagai pembanding terhadap target error, jika target error maka iterasi akan berhenti. RMSE dihitung sebagai berikut: 1. Hitung SSE. 2. Hasilnya dibagi dengan perkalian antara banyaknya data pada latihan dan banyaknya keluaran, kemudian diakarkan. RMSE
= SE S N .K
. (2.26)
RMSE = Root Mean Square Error SSE = Sum Square Error N = Banyaknya data pada latihan
= Banyaknya luaran
15