You are on page 1of 15

JARINGAN SYARAF TIRUAN

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 Susunan Syaraf Manusia

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.

Bobot Input dari neuronneuron yang lain

Fungsi Aktivasi

Bobot

Output

Output ke neuron-neuron yang lain

Gambar 2.2 Struktur neuron jaringan syaraf

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

Gambar 2.3 Jaringan syaraf dengan lapisan tunggal

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

Matriks bobot pertama

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

Gambar 2.5 Jaringan syaraf dengan lapisan kompetitif

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)

Dengan turunan dari fungsi f 1 ( x )


f 1 ' = 1 2 [1 f 1( x)] [1 f 1( x)] . (2.2)
x = input dari hasil perkalian bobot

f(x)

Gambar 2.6 Fungsi aktivasi sigmoid bipolar

Fungsi sigmoid biner mempunyai interval nilai (0,1), persamaannya:


f 2 ( x) =
1 1 + exp( x )

. (2.3)

Dengan turunan dari fungsi f 2 ( x )


f 2 ' = f 2 ( x ) [1 f 2 ( x)]
x = input dari hasil perkalian bobot

. (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)

x = input dari hasil perkalian bobot .

Arsitektur jaringan backpropagation seperti terlihat pada gambar 2.8 berikut ini:

X1

V11 V12 V21 Z1

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)

Algoritma pembelajaran jaringan backpropagation adalah sebagai berikut:

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-

sinyal input berbobot:

z _ inj = v0 j +
z j = f ( z _ inj )

j=1

xivij

v0 = bias ; v = bobot

...(2.6)

Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: . (2.7)

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)

Gunakan fungsi aktivasi untuk menghitung sinyal outputnya:

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

berhubungan dengan pola input pembelajaran, hitung informasi errornya

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

= learning rate . (2.11)

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

inputnya ( dari unit-unit yang berada pada lapisan diatasnya):

_ 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-

sinyal input berbobot:


z _ in j = v0 j + xi vij
j =1 n

. (2.21)

Gunakan fungsi aktivasi untuk menghitung sinyal outputnya: 13

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)

Gunakan fungsi aktivasi untuk menghitung sinyal outputnya:

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

kesalahan untuk contoh lain. SSE = ( Tk Yk )


k =1 2 2

. (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

You might also like