Tuesday, August 12, 2014

Jaringan Syaraf Tiruan . . . (2)

3. 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)
3.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)
3.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)
  1. Fungsi Sigmoid Biner
Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode backpropagation. 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)
  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)

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

5. 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 backpropagation menggunakan 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):
  1. Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil).
  2. 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 σk 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 = σ_inj f’(z_inj)
kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij):
Δvjk = α σj xi
Hitung juga koreksi bias (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
  • Tes kondisi berhenti.

No comments:

Post a Comment