6/18/2013

JARINGAN SYARAF TIRUAN & IMPLEMENTASINYA

DEFINISI JARINGAN SYARAF TIRUAN

Jaringan syaraf tiruan (artifical neural network) adalah sistem komputasi yang arsitektur dan operasinya diilhami dari pengetahuan tentang sel syaraf biologis di dalam otak. Jaringan syaraf tiruan merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba menstimulasi proses pembelajaran pada otak manusia tersebut. Jaringan syaraf tiruan dapat digambarkan sebagai model matematis dan komputasi untuk fungsi aproksimasi non-linear, klasifikasi data cluster dan regresi non-parametrik atau sebuah simulasi dari koleksi model jaringan syaraf biologi.

Model jaringan syaraf ditunjukkan dengan kemampuannya dalam emulasi, analisis, prediksi dan asosiasi. Kemampuan yang dimiliki jaringan syaraf tiruan dapat digunakan untuk belajar dan menghasilkan aturan atau operasi dari beberapa contoh atau input yang dimasukkan dan membuat prediksi tentang kemungkinan output yang akan muncul atau menyimpan karakteristik input yang diberikan kepada jaringan syaraf tiruan.
Salah satu organisasi yang sering digunakan dalam paradigma jaringan syaraf tiruan adalah perambatan galat mundur  atau backpropagation. (Hermawan, 2006)

KONSEP DASAR JARINGAN SYARAF TIRUAN

Jaringan syaraf tiruan terdiri dari beberapa neuron dan ada hubungan antar neuron- neuron seperti pada otak manusia. Neuron/selsaraf adalah sebuah unit pemroses informasi yang merupakan dasar operasi jaringan syaraf tiruan.

Jaringan syaraf tiruan terdiri atas beberapa elemen penghitung tak linier yang masing-masing dihubungkan melalui suatu pembobot dan tersusun secara paralel. Pembobot inilah yang nantinya akan berubah (beradaptasi) selama proses pelatihan.

Pelatihan perlu dilakukan pada suatu jaringan syaraf tiruan sebelum digunakan untuk menyelesaikan masalah. Hasil pelatihan jaringan syaraf tiruan dapat diperoleh tanggapa yang benar (yang diinginkan) terhadap masukan yang diberikan. Jaringan syaraf tiruan dapat memberikan tanggapan yang benar walaupun masukan yang diberikan terkena derau atau berubah oleh suatu keadaan. (Hermawan, 2006)

KARAKTERISTIK JARINGAN SYARAF TIRUAN

Penyelesaian masalah dengan jaringan syaraf tiruan tidak memerlukan pemrograman. Jaringan syaraf tiruan menyelesaikan masalah melalui proses belajar dari contoh-contoh pelatihan yang diberikan. Biasanya pada jaringan syaraf tiruan diberikan sebuah himpunan pola pelatihan yang terdiri dari sekumpulan contoh pola. Proses belajar jaringan syaraf tiruan berasal dari serangkaian contoh-contoh pola yang diberikan.metode pelatihan yang sering dipakai adalah metode belajar terbimbing. Selama proses belajar itu pola masukan disajikan bersama-sama dengan pola keluaran yang diinginkan. Jaringan akan menyesuaikan nilai bobotnya sebagai tanggapan atas pola masukan dan sasaran yang disajikan tersebut. (Hermawan, 2006)

1. Faktor Bobot

Bobot merupakan suatu nilai yang mendefinisikan tingkat atau kepentingan hubungan antara suatu node dengan node yang lain. Semakin besar bobot  suatu hubungan menandakan semakin pentingnya hubungan kedua node tersebut.

Bobot merupakan suatu hubungan berupa bilangan real maupun integer, tergantung dari jenis permasalahan dan model yang digunakan. Bobot-bobot tersebut bisa ditentukan untuk berada didalam interval tertentu. selama proses pelatihan, bobot tersebut dapat menyesuaikan dengan pola-pola input.

Jaringan dengan sendirinya akan memperbaiki diri terus-menerus karena adanya kemampuan untuk belajar. Setiap ada suatu masalah baru, jaringan dapat belajar dari masalah baru tersebut, yaitu dengan mengatur kembali nilai bobot untuk menyesuaikan karakter nilai. (Puspaningrum, 2006)

2. Fungsi Aktivasi

Setiap neuron mempunyai keadaan internal yang disebut level aktivasi atau level aktivitas yang merupakan fungsi input yang diterima. Secara tipikal suatu neuron mengirimkan aktivitasnya kebeberapa neuron lain sebagai sinyal. Yang perlu diperhatikan adalah bahwa neuron hanya dapat mengirimkan satu sinyal sesaat, walaupun sinyal tersebut dapat dipancarkan ke beberapa neuron yang lain.

Ada beberapa pilihan fungsi aktivasi yang digunakan dalam metode backpropagation, seperti fungsi sigmoid biner, dan sigmoid bipolar. Karakteristik yang harus dimiliki fungsi fungsi aktivasi tersebut adalah kontinue, diferensiabel, dan tidak menurun secara monoton. Fungsi aktivasi diharapkan dapat mendekati nilai-nilai maksimum dan minimum secara baik. Berikut ini adalah fungsi aktivasi yang sering digunakan yaitu: (Puspaningrum, 2006)

- Fungsi Sigmoid Biner

Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metodebackpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Definisi fungsi sigmoid biner adalah segabai berikut:

f1(x) = 1/(1+ e–x)
dengan turunan 
f1’(x) = f1(x) (1- f1(x))
berikut ini ilustrasi fungsi sigmoid biner:
Gambar 1. Ilustrasi fungsi sigmoid biner dengan range (0,1)

- Fungsi Sigmoid Bipolar

Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output dari fungsi ini memiliki range antara 1 sampai -1. Definisi fungsi sigmoid bipolar adalah sebagai berikut:
f2(x) = 2 f2(x) -1
dengan turunan
f2’(x) = ½ (1+ f2(x)) (1- f2(x))
Berikut ini adalah ilustrasi fungsi sigmoid bipolar:
Gambar 2. Ilustrasi fungsi sigmoid bipolar dengan range (-1,1)

MODEL JARINGAN SYARAF BACKPROPAGATION

Pelatihan pada jaringan syaraf backpropagation, feedfoward (umpan maju) dilakukan dalam rangka perhitungan bobot sehingga pada akhir pelatihan akan diperoleh bobot-bobot yang baik. Selama proses pelatihan, bobot-bobot diatur secara iteratif untuk meminimumkan error(kesalahan) yang terjadi. Error (kesalahan) dihitung berdasarkan rata-rata kuadrat kesalahan (MSE). Rata-rata kuadrat kesalahan juga dijadikan dasar perhitungan unjuk kerja fungsi aktivasi. Sebagian besar pelatihan untuk jaringan feedfoward (umpan maju) menggunakan gradien dari fungsi aktivasi untuk menentukan bagaimana mengatur bobot-bobot dalam rangka meminimumkan kinerja. Gradien ini ditentukan dengan menggunakan suatu teknik yang disebut backpropagation.

Algoritma pelatihan standar backpropagation akan menggerakkan bobot dengan arah gradien negatif. Prinsip dasar dari algoritma backpropagation adalah memperbaiki bobot-bobot jaringan dengan arah yang membuat fungsi aktivasi menjadi turun dengan cepat.
Pelatihan backpropagation meliputi 3 tahapan sebagai berikut.

1. Propagasi maju.
Pola masukan dihitung maju mulai dari input layer hingga output layer menggunakan fungsi aktivasi yang ditentukan.

2. Propagasi mundur.
Selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi. Kesalahan yang terjadi itu dipropagasi mundur. Dimulai dari garis yang berhubungan langsung dengan unit-unit di output layer.

3. Perubahan bobot.
Modifikasi bobot untuk menurunkan kesalahan yang terjadi. Ketiga fase tersebut diulang-ulang terus hingga kondisi penghentian dipenuhi. (Puspaningrum, 2006)

ALGORITMA JARINGAN SYARAF BACKPROPAGATION

Backpropagation merupakan algoritma pembelajaran yang terwarisi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagationmenggunakan error output untuk mengubah nilai-nilai bobotnya dalam arah mundur (backward). Tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu untuk mendapatkan nilai error tersebut. Saat perambatan maju neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid biner yaitu:

Arsitektur jaringan syaraf backpropagation seperti terlihat pada gambar dibawah ini:

Gambar 3. Arsitektur backpropagation
Keterangan       :
x1 s/d xn : input layer
z1 s/d zp : hidden layer
y1 s/d ym : output layer

Algoritma backpropagation (Kusumadewi, 2003):

-Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil).
-Kerjakan langkah-langkah berikut selama kondisi berhenti belum terpenuhi.
-Tiap-tiap pasangan elemen yang akan dilakukan pembelajaran, kerjakan:

Feedforward

[1]. Tiap unit input (xi, i=1,2,3,…n) menerima sinyal xi dan meneruskan sinyal tersebut pasa lapisan yang ada diatasnya (lapisan tersembunyi).

[2]. Tiap unit tersembunyi (zj, j=1,2,3,…,p) menjumlahkan sinyal-sinyal input terbobot:


gunakan fungí aktivasi untuk menghitung sinyal outputnya:
zj = f (z_inj)
dan kirimkan sinyal tersebut ke semua unit dilapisan atasnya (unit-unit output).

[3]. Tiap unit output (yk, k=1,2,3,…,m) menjumlahkan sinyal-sinyal input terbobot


gunakan fungsi aktivasi untuk menghitung sinyal outputnya.
yk= f (y_ink)
dan kirimkan sinyal tersebut kesemua unit dilapisan atasnya (unit-unit output).

Backpropagation

[4]. 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_ink)
kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki wjk)
Δwjk = α σk zij
Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai w0k) :
Δwjk = α σk
Kirimkan σini ke unit-unit yang ada dilapisan bawahnya.

[5]. Tiap-tiap unit tersembunyi (zj, j=1,2,3,…,p) menjumhlahkan delta inputnya (dari unit-unit yang berada pada lapisan diatasnya) :


kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error:
σj = σ_inf’(z_inj)
kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij):
Δvjk = α σxi
Hitung juga koreksi bisa (yang nantinya akan digunakan untuk memperbaiki  nilai v0j):
Δv0j = α σj
Tiap unit output (yk, k=1,2,3,…,m) memperbaiki bias dan bobotnya (j=0,1,2,3,…,p).
wjk (baru) = wjk(lama) + Δwjk
Tiap-tiap unit tersembunyi (zj, j=1,2,3,…,p) memperbaiki bias dan bobotnya (i=0,1,2,3,…,n)
vij(baru) = vij(lama) + Δvij

IMPLEMENTASI JARINGAN SYARAF TIRUAN

Prediksi ketinggian air selama ini dilakukan dengan menggunakan metode konvensional dengan menggunakan metode-metode statistika. Akan tetapi, akan muncul suatu masalah apabila pengamatan dilakukan pada sistem dinamis, seperti halnya pada sistem prediksi ketinggian air. Dengan menggunakan teknologi di bidang kecerdasan buatan, yaitu teknologi jaringan syaraf tiruan, maka identifikasi pola data dari sistem prediksi ketinggian air dapat dilakukan melalui metode pendekatan pembelajaran atau pelatihan. Berdasarkan kemampuan belajar yang dimilikinya, jaringan syaraf tiruan dapat dilatih untuk mempelajari dan menganalisa pola data masa lalu dan berusaha mencari suatu fungsi yang akan menghubungkan pola data masa lalu dengan keluaran yang diinginkan. Penelitian ini bertujuan untuk mengimplementasikan jaringan syaraf tiruan propagasi balik dalam memprediksi besarnya ketinggian air di suatu daerah aliran sungai dan untuk mengetahui besarnya tingkat keakuratan prediksi yang dihasilkan. Perancangan model prediksi ketinggian air menggunakan jaringan syaraf tiruan dalam karya ilmiah ini dilakukan dengan software MATLAB R2010b. Pada karya ilmiah ini dilakukan optimisasi pada parameter-parameter jaringan syaraf tiruan seperti pembagian data antara data pelatihan dan pengujian, laju pembelajaran, momentum, banyaknya neuron tersembunyi, toleransi galat dan juga maksimum iterasi. Hal ini dilakukan agar mendapatkan sistem jaringan syaraf tiruan yang optimal dan memiliki tingkat keakuratan prediksi yang baik. Dari hasil percobaan yang dilakukan dalam penelitian ini dapat disimpulkan bahwa jaringan syaraf tiruan dengan algoritma pembelajaran propagasi balik dan arsitektur jaringan dengan 1 lapisan masukan dengan 2 neuron, 1 lapisan tersembunyi, dan 1 lapisan keluaran dengan 1 neuron, dengan parameter-parameter yang sesuai berhasil diimplementasikan untuk memprediksi besarnya ketinggian air di daerah aliran sungai Ciliwung - Bogor. Hasil model memiliki tingkat keakuratan yang baik dalam prediksi. 

Daftar pustaka
Hermawan, A. (2006). Jaringan Syaraf Tiruan Teori dan Aplikasi. Yogyakarta: Penerbit Andi
Kusumadewi, S. (2003). Artifical Intellegence (Teknik dan Aplikasinya). Yogyakarta: Graha Ilmu
Puspaningrum, D. (2006). Pengantar Jaringan Syaraf Tiruan. Yogyakarta : Andi Offset

1 komentar: