• Tidak ada hasil yang ditemukan

NASA/GISS AOM

2.3 Jaringan Saraf Tiruan ( Neural Network )

Jaringan saraf tiruan (JST) merupakan salah satu sistem pemrosesan informasi yang didesain dengan menirukan cara kerja otak manusia dalam menyelesaikan suatu masalah dengan melakukan proses belajar melalui perubahan bobot sinapsisnya. Jaringan saraf tiruan mampu mengenali kegiatan dengan berbasis data pada masa lalu. Data masa lalu akan dipelajari oelh jaringan saraf tiruan sehingga mempunyai kemampuan untuk memberi keputusan terhadap data yang belum pernah dipelajari (Hermawan 2006).

Jaringan saraf tiruan didefinisikan sebagai suatu system pemerosesan informasi yang mempunyai karakteristik menyerupai jaringan saraf manusia. JST tercipta sebagai suatu generalisasi model matematis dari pemahaman manusia (human cognition) yang didasarkan atas asumsi sebagai berikut:

1 Pemrosesan informasi terjadi pada elemen sederhana yang disebut neuron (Gambar 3).

2 Isyarat mengalir di antara sel saraf/neuron melalui suatu sambungan penghubung,

3 Setiap sambungan penghubung memiliki bobot yang bersesuaian. Bobot ini akan digunakan untuk menggandakan/mengalikan isyarat yang akan dikirim melaluinya.

4 Setiap sel saraf akan menerapkan fungsi aktivasi terhadap isyarat hasil penjumlahan berbobot yang masuk kepadanya untuk menentukan isyarat keluarannya.

Gambar 3 Sel neuron pada manusia

Berbeda dengan metode lain, algoritma untuk JST beroperasi secara langsung dengan angka sehingga data yang tidak numerik harus diubah menjadi data numerik. Dibandingkan dengan cara perhitungan konvensional, JST tidak memerlukan atau menggunakan suatu model matematis atas permasalahan yang dihadapi. Oleh karena itu, JST juga dikenal sebagai model free-estimator.

JST memiliki sejumlah besar kelebihan dibandingkan dengan metode perhitungan lainnya (Hermawan 2006), yaitu:

1 Kemampuan mengakuisisi pengetahuan walaupun dalam kondisi ada gangguan dan ketidakpastian. Hal ini karena JST mampu melakukan generalisasi, abstraksi, dan ekstraksi terhadap properti statistik dari data..

2 Kemampuan mereprentasikan pengetahuan secara fleksibel. JST dapat menciptakan sendiri representasi melalui pengaturan sendiri atau kemampuan belajar (self organizing).

3 Kemampuan untuk memberikan toleransi atas suatu distorsi (error/fault), di mana gangguan kecil pada data dapat dianggap hanya sebagai noise (guncangan) belaka.

4 Kemampuan memproses pengetahuan secara efisien karena memakai sistem paralel, sehingga waktu yang diperlukan untuk mengoperasikannya menjadi lebih singkat.

Walaupun memiliki beberapa kelebihan, JST juga mempunyai sejumlah keterbatasan, antara lain kekurangmampuannya dalam melakukan operasi-operasi numerik dengan presisi tinggi, operasi algoritma aritmatik, operasi logika, dan operasi simbolis serta lamanya proses pelatihan yang terkadang membutuhkan waktu berhari-hari untuk jumlah data yang besar.

JST memiliki kemampuan yang sangat baik untuk beberapa aplikasi, antara lain klasifikasi, asosiasi, self organizing, dan optimasi. Karakteristik JST ditentukan oleh:

1 Pola hubungan antar-neuron (disebut dengan arsitektur jaringan),

2 Metode penentuan bobot-bobot sambungan (disebut dengan pelatihan atau proses belajar jaringan),

Pembagian aristektur JST bisa dilihat dari kerangka kerja dan skema interkoneksi. Kerangka kerja JST bisa dilihat dari jumlah lapisan (layer) dan jumlah node pada setiap lapisan. Lapisan-lapisan penyusun JST dapay dibagi menjadi tiga (Gambar 4), yaitu:

1 Lapisan input (input layer)

Node-node di dalam lapisan input disebut unit-unit input. Unit-unit input menerima input dari dunia luar. Input yang dimasukkan merupakan penggambaran dari suatu masalah.

2 Lapisan tersembunyi (hidden layer)

Node-node di dalam lapisan tersembunyi disebut unit-unit tersembunyi. Output dari lapisan ini tidak secara langsung dapat diamati.

3 Lapisan output (output layer)

Node-node pada lapisan output disebut unit-unit output. Keluaran dari lapisan ini merupakan output JST terhadap suatu permasalahan.

Gambar 4 Arsitektur Jaringan Saraf Tiruan (Sumber: http://yeni.herdiyeni.staff.ipb.ad.id) 2.3.1 Backpropagation

Jaringan saraf dengan lapisan tunggal memiliki keterbatasan dalam pengenalan pola. Kelemahan ini bisa ditanggulangi dengan menambahkan satu/beberapa lapisan tersembunyi di antara lapisan masukan dan keluaran. Meskipun penggunaan lebih dari satu lapisan tersembunyi memiliki kelebihan

manfaat untuk beberapa kasus, akan tetapi pelatihannya membutuhkan waktu yang lebih lama. Maka pada umumnya orang mulai mencoba mengguanakan sebuah lapisan tersembunyi terlebih dahulu (Siang 2005).

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 dengan pola yang dipakai selama pelatihan.

2.3.2 Fungsi Aktivasi

Fungsi aktivasi merupakan fungsi yang menentukan level aktivasi, yakni keadaan internal sebuah neuron dalam jaringan syaraf tiruan. Dalam backpropagation, fungsi aktivasi yang dipakai harus memenuhi beberapa syarat, yaitu kontinu, terdiferensial dengan mudah dan meruapakan fungsi yang tidak turun.

Fungsi aktivasi yang sering digunakan antara lain:

 Fungsi Sigmoid Biner

Fungsi ini merupakan fungsi yang umum digunakan (Siang 2005). Range-nya adalah (0,1) dan didefinisikan sebagai:

(2)

dengan turunan pertama:

(3)

Fungsi sigmoid biner ini diilustrasikan pada Gambar 5.

Gambar 5 Fungsi sigmoid biner dengan range (0,1) 1

 Fungsi Sigmoid Bipolar

Fungsi sigmoid bipolar merupakan fungsi yang memiliki range (-1,1) dan didefinisikan sebagai:

(4)

dengan turunan:

(5) Fungsi sigmoid bipolar digambarkan pada Gambar 6.

Gambar 6 Fungsi sigmoid bipolar dengan range (-1,1)

 Fungsi Identitas

Fungsi aktivasi identitas akan menghitung nilai output dari neuron dan mengembalikan nilai tersebut menggunakan fungsi linier. Fungsi identitas didefinisikan sebagai: dimana . Fungsi identitas dapat dilihat pada Gambar 7.

Gambar 7 Fungsi Identitas f(x)

2.3.3 Algoritme Pelatihan Backpropagation

Pelatihan backpropagation meliputi 3 fase. Fase pertama adalah fase maju. Pola masukan dihitung maju mulai dari lapisan masukan hingga lapisan 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 lapisan keluaran. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi. Contoh struktur jaringan saraf tiruan yang akan digunakan pada algoritme ini dapat dilihat pada Lampiran 1.

Algoritme pelatihan backpropagation adalah sebagai berikut:

Langkah 0. Inisialisasi bobot (biasanya digunakan nilai acak yang kecil) Langkah 1. Selama syarat henti salah, lakukan langkah 2-9

Langkah 2. Untuk setiap pasangan pelatihan (masukan dan target), lakukan 3-8 Fase 1 : Propagasi maju.

Langkah 3. Setiap unit masukan (Xi,i=1,...,n) menerima sinyal masukan xi dan meneruskannya ke seluruh unit pada lapisan di atasnya (hidden units).

Langkah 4. Setiap unit tersembunyi (Zj,j=1,...,p) menghitung total sinyal masukan terboboti

  n i ij i j j v xv in z 1 0 _ (6)

lalu menghitung sinyal keluarannya dengan fungsi aktivasi ) _ ( j j f z in z  (7) dan mengirimkan sinyal ini ke seluruh unit pada lapisan di atasnya (lapisan output)

Langkah 5. Setiap unit output (Yk,k=1,...,m) menghitung total sinyal masukan terboboti

  p i jk j k k w x w in y 1 0 _ (8) Lalu menghitung sinyal keluaran dengan fungsi aktivasi

) _ ( k k f y in y  (9)

Fase 2: Propagasi mundur

Langkah 6. Setiap unit output (Yk,k=1,...,m) menerima sebuah pola target yang sesuai dengan pola masukan pelatihannya. Unit tersebut menghitung informasi kesalahan  (tkyk)f'(y_ink)

Kemudian menghitung koreksi bobot (digunakan untuk mengubah wjk nanti), wjk kzj

dan menghitung koreksi bias w0k k

serta mengirimkan nilai k ke unit lapisan di bawahnya

Langkah 7. Setiap unit tersembunyi (Zj,j=1,...,p) menghitung selisih input (dari unit-unit pada layer diatasnya)

m k jk k j w in 1 _   (10) lalu mengalikannya dengan turunan fungsi aktivasi untuk menghitung informasi error.

) __ ( ' _ j j jin f z in   (11) selanjutnya menghitung koreksi bobot untuk mengubah vij sebesar

i j ij x v   (12)

dan menghitung koreksi biasnya v0j j

Fase 3: Perubahan bobot.

Langkah 8. Setiap unit output (Yk,k=1,...,m) diubah bias dan bobot-bobotnya (j=0,...,p) : wjk(new)wjk(old)wjk

(13)

setiap unit tersembunyi (Zj,j=1,...,p) diubah bias dan bobot-bobotnya (i=1,...,n) : vij(new)vij(old)vij

(14) Langkah 9. Uji syarat henti :

Jika besar total squared-error

n k k k y t 1 2 )

( lebih kecil dari

mencapai epoh maksimum, maka selesai; jika tidak maka kembali ke langkah 1.

Nilai toleransi () yang digunakan adalah 0 1

2.3.4 Algoritme Pelatihan Lavenberg-Marquardt

Algoritme pelatihan Lavenberg-Marquardt (LM) merupakan algoritme pelatihan yang memiliki kemampuan memperoleh nilai konvergen yang cepat dibandingkan dengan algoritme pelatihan lain dalam kasus fungsi aproksimasi (Beale et al 2011). Langkah dasar dari algoritme Lavenberg-Marquardt (LM) adalah penentuan matriks Hessian untuk mencari bobot-bobot dan bias koneksi yang digunakan dalam pelatihan JST (Warsito 2007). Matriks Hessian adalah turunan kedua dari fungsi kinerja terhadap setiap komponen bobot dan bias. Untuk memudahkan komputasi, matriks Hessian diubah dengan pendekatan iterative pada setiap epoch selama algoritme pelatihan berjalan. Proses perubahannya dilakukan dengan menggunakan fungsi gradien. Apabila fungsi kinerja yang digunakan berbentuk jumlah kuadrat error (SSE), maka matriks Hessian dapat diestimasi dengan persamaan berikut:

(15)

Dimana:

: parameter Marquardt I : matriks identitas

J : matriks Jakobian yang terdiri dari turunan pertama error jaringan terhadap masing-masing komponen bobot dan bias.

Matriks Jakobian tersusun dari turunan pertama fungsi error terhadap masing-masing komponen bobot dan bias koneksi jaringan (Hagan 1994). Nilai parameter Marquardt ( ) dapat berubah pada setiap epoch. Jika setelah berjalan satu epoch nilai fungsi error menjadi lebih kecil, nilai akan dibagi oleh faktor . Bobot dan bias baru yang diperoleh akan dipertahankan dan pelatihan dapat dilanjutkan ke epoch berikutnya. Sebaliknya, jika setelah berjalan satu epoch nilai fungsi error menjadi lebih besar maka nilai akan dikalikan faktor . Nilai perubahan bobot dan bias dihitung kembali sehingga menghasilkan nilai yang baru.

Algoritme pelatihan dengan metode Levenberg-Marquardt dapat dijabarkan sebagai berikut:

Langkah 0 :

 Inisialisasi bobot awal dengan bilangan acak kecil

 Inisialisasi epoch 0, MSE 0

 Tetapkan maksimum epoch parameter LM ( ), faktor dan target error.

Langkah 1 :

Jika kondisi penghentian belum terpenuhi (epoch < epoch maksimum atau MSE > target error), lakukan langkah berikutnya.

Langkah 2 :

Epoch = epoch + 1

 Untuk setiap data pelatihan, lakukan langkah 3 – 4. Langkah 3 :

Unit/neuron output Y menerima target pola yang berhubungan dengan pola input pelatihan. Jika diberikan N pasangan input data pelatihan (Xr, tr), r = 1,2,…,N,

dengan Xr adalah input dan tr adalah target yang akan dicapai. Kesalahan pada suatu data pelatihan ke-r didefinisikan sebagai:

er = tr - yr (16)

dengan :

er : kesalahan pada unit output tr : keluaran yang diinginkan (target) yr : keluaran actual.

e adalah vektor kesalahan berukuran N x 1 yang tersusun dari er, r = 1,2,…,N. e dapat dituliskan sebagai: .

Misal bobot dan bias koneksi dinyatakan dalam vektor w, w merupakan vektor berukuran ((2+n)p+1)x1 dapat dituliskan sebagai: .

Kesalahan suatu pelatihan jaringan oleh vektor bobot dan bias koneksi w pada suatu data pelatihan ke-r menjadi:

er(w) = (tr– yr)

Vektor kesalahan oleh vektor bobot dan bias koneksi w menjadi e(w) berukuran Nx1 yang tersusun dari er(w), dengan r = 1,2,…,N.

Hitung fungsi jumlah kuadrat error dengan persamaan:

(18) Hitung matriks Jacobian untuk vektor bobot dan bias koneksi:

(19)

untuk r = 1,2,…N

a. Hitung matriks Hessian untuk vektor bobot dan bias koneksi.

Dokumen terkait