• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI

2.2 Tinjauan Pustaka

2.2.3 Backpropagation

Keunggulan utama jaringan syaraf tiruan adalah kemampuan untuk ”belajar” dari contoh yang ada.

Backpropagation adalah algoritma pembelajaran yang terawasi dan digunakan perceptron dengan banyak lapisan untuk mengubah bobot yang terdapat pada lapisan tersembunyinya [5].

Arsitektur jaringan syaraf tiruan backpropagation dapat dilihat pada Gambar 2.2. Bahwa terlihat jaringan syaraf tiruan terdiri 3 layer yaitu 3 neuron pada input layer (x1, x2, dan x3), 2 neuron pada hidden layer (z1, z2), dan 1 neuron pada ouput layer(y). Bobot yang menghubungkan x1, x2, dan x3 dengan neuron pertama pada hidden layer adalah v11, v21, dan v31 (dinotasikan dengan vij, yaitu bobot yang menghubungkan neuron input ke-i ke neuron ke-j pada hidden layer). Variabel b11, dan b12 adalah bobot

bias yang menuju ke neuron pertama dan neuron kedua pada hidden layer. Bobot yang menghubungkan z1 dan z2 dengan neuron pada output layer adalah w1 dan w2. Variabel b2 adalah bobot bias yang menghubungkan hidden layer dengan output layer [5].

Gambar 2.4. Jaringan Syaraf Backpropagation dengan satu lapisan tersembunyi Algoritma Backpropagation pertama kali dirumuskan oleh Werbos dan dipopulerkan oleh Rumelhart dan Mccelland untuk dipakai pada jaringan syaraf tiruan, dan selanjutnya algoritma ini diangkat dengan nama backpropagation. Algoritma ini merupakan metode supervised dan di desain untuk operasi pada jaringan feed forward multi layer.

Algoritma ini dipakai pada aplikasi pengaturan sebab proses pelatihannya didasarkan pada hubungan yang sederhana.

Apabila hasil keluaran salah, maka bobot penimbang (w) diperiksa agar galatnya dapat diperkecil dan respon jaringan selanjutnya diharapkan dapat mendekati hasil yang sesuai target serta

w01

memperbaiki bobot penimbang pada lapisan tersembunyi (hidden layer) [4].

Pelatihan Backpropagation meliputi 3 fase, yaitu fase maju, fase mundur, dan fase perubahan bobot. Fase maju merupakan fase pertama yaitu pola masukan digitung maju mulai dari layar masukan hingga ke layar keluaran dengan menggunakan fungsi aktivasi yang ditentukan. Fase kedua adalah fase mundur. Dimana fase ini selisih antara keluaran jaringan dengan target yang diinginkan adalah kesalahan yang terjadi. Kesalahan tersebut kemudian dipropagasikan mundur, dan dimulai dari garis yang berhubungan langsung dengan unit-unit di layar keluaran. Fase terakhir atau fase ketiga adalah perubahan bobot. Pada fase ini modifikasi bobot untuk menurunkan kesalahan yang terjadi.

Berikut penjelasan selengkapnya [9] : Fase I Propagasi Maju

Selama fase ini, sinyal masukan (=xi) dipropagasikan ke layar tersembunyi menggunakan fungsi aktivasi yang telah ditentukan. Keluaran dari setiap unit layar tersembunyi (=zj) selanjutnya akan dipropagasikan maju lagi ke layar tersembunyi di atasnya dengan menggunakan fungsi aktivasi yang telah ditentukan. Hal ini dilakukan seterusnya hingga dapat menghasilkan keluaran jaringan (=yk).

Selanjutnya keluaran jaringan (=yk) dibandingkan dengan target yang harus dicapai (=tk). Selisih tk-yk adalah kesalahan yang terjadi. Jika kesalahan lebih kecil dari batas toleransi yang telah ditentukan, maka iterasi akan dihentikan. Namun, apabila kesalahan masih lebih besar dari batas toleransinya, maka bobot di setiap garis dalam jaringan akan dimodifikasi untuk mengurangi kesalahan yang terjadi.

Fase II Propagasi Mundur

Berdasarkan kesalahan tk-yk dihitung faktor δk

(k=1,2, …, m) yang digunakan untuk mendistribusikan kesalahan di unit yk ke semua unit tersembunyi yang terhubung langsung dengan yk. δk juga digunakan untuk mengubah bobot garis yang berhubungan langsung dengan unit keluaran.

Selanjutnya dilakukan dengan menggunakan cara yang sama, dihitung faktor δj di setiap unit di layar tersembunyi sebagai dasar perubahan bobot semua garis yang berasal dari unit tersembunyi di layar di bawahnya.

Cara tersebut dilakukan hingga semua faktor δ di unit tersembunyi yang berhubungan langsung dengan unit masukan dapat dihitung.

Fase III Perubahan Bobot

Setelah semua faktor δtelah dihitung, bobot semua garis dimodifikasi bersamaan. Perubahan bobot suatu garis didasarkan atas faktor δneuron di layar atasnya. Contoh : perubahan bobot garis yang menuju ke layar keluaran didasarkan atas δk yang ada di unit keluaran.

Semua fase tersebut dilakukan berulang-ulang hingga kondisi penghentian terpenuhi.Kondisi penghentian adalah jumlah iterasi atau kesalahan. Iterasi akan berhenti apabila jumlah iterasi sudah terpenuhi atau melebihi batas maksimum yang telah ditetapkan, atau apabila kesalahan yang terjadi lebih kecil dari batas toleransi yang telah ditetapkan [9].

Algoritma pelatihan untuk jaringan satu layar tersembunyi dengan menggunakan fungsi aktivasi sigmoid biner adalah sebagai berikut [9]:

Langkah 0 : Inisialisasi semua bobot dengan bilangan acak kecil Langkah 1 : Jika kondisi penghentian belum terpenuhi, lakukan

langkah 2-9

Langkah 2 : Untuk setiap pasang data pelatihan, lakukan langkah 3-8

Fase I Propagasi Maju

Langkah 3 : Tiap Unit masukan menerima sinyal dan meneruskannya

ke unit tersembunyi diatasnya.

Langkah 4 : Hitung semua keluaran unit tersembunyi zj (j=1,2, ... , n)

z_inj = v0j + ∑ xivij (1)

Dan menerapkan fungsi aktivasi untuk menghitung sinyal outputnya :

zj = f(z_inj) (2)

Langkah 5 : Hitung semua keluaran jaringan di unit yk (k=1,2, ... , m)

y_ink = w0k + ∑ zi wjk (3)

Dan menerapkan fungsi aktivasi untuk menghitung sinyal ouput-nya :

yk = f(y_ink) (4)

n i=1

p i=1

Fase II Propagasi Mundur

Langkah 6 : Hitung faktor  unit keluaran berdasarkan kesalahan di setiap

unit keluaran yk (k=1,2, .. , m)

k merupakan unit kesalahan yang akan dipakai dalam perubahan bobot layar di bawahnya (langkah 7) Menghitung suku perubahan bobot wjk dengan laju pemahaman 

Langkah 7 : Hitung faktor  unit tersembunyi berdasarkan kesalahan

di setiap unit tersembunyi zj (j=1,2, ... , p)

δ_inj = w0k + ∑ δk wjk (7) Faktor  unit tersembunyi:

Hitung suku perubahan bobot Vjk (yang akan dipakai nanti untul merubah bobot Vjk)

k = (tk - yk) f ‟(y_ink)

k = (tk - yk) yk (1-yk) (5)

wjk =  k zj

(6)

j = _netj f „(z_inj)

j = _netj zj (1-zj) (8)

vjk =  j xi ; (9)

m k=1

Fase III Perubahan Bobot

Langkah 8 : Hitung semua perubahan bobot

Perubahan bobot garis yang menuju unit keluaran :

Perubahan bobot garis yang menuju ke unit tersembunyi:

Tes kondisi berhenti

Setelah selesai dilakukan, jaringan dapat digunakan untuk pengenalan pola. Namun, hanya propagasi maju pada langkah 4 dan 5 yang dapat digunakan untuk menentukan keluaran jaringan.

Keterangan :

x = Data training input x = (x1,…,xi,…,xn)

t = Data training untuk target output t = (t1,…,tk,…,tm)

α = Learning rate yaitu parameter untuk mengontrol perubahan bobot selama pelatihan.

Xi = Unit input ke-i Zj = Unit hidden ke-j Yk = Unit output ke-k

v0j = Bobot garis yang menghubungkan bias di unit masukan ke unit tersembunyi

vij = Bobot garis yang menghubungkan unit masukan ke unit tersembunyi

w0k = Bobot garis yang menghubungkan bias di unit tersembunyi ke unit keluaran

wjk = Bobot garis yang menghubungkan unit tersembunyi ke unit keluaran

wjk (baru) = wjk(lama) + wjk (10)

vij(baru) = vij(lama) + vij (11)

δk = Faktor koreksi error untuk bobot wjk

δj = Faktor koreksi error untuk bobot vij

m = Momentum

Masalah utama yang sering terjadi dalam backpropagation adalah lamanya iterasi yang harus dilakukan. Di dalam backpropagation tidak dapat memberikan kepastian berapa jumlah epoch atau iterasi yang harus dilalui untuk mencapai kondisi yang diinginkan. Berikut optimalitas arsitektur backpropagation [9] :

1. Pemilihan bobot dan bias awal

Bobot awal mempengaruhi apakah jaringan mencapai titik minimum local atau global, dan seberapa cepat konvergensinya. Bobot yang menghasilkan nilai turunan aktivasi kecil sebisa mungkin harus dihindari. Hal itu akan menyebabkan perubahan bobotnya menjadi sangat kecil.

Nilai bobot awal juga tidak diperbolehkan terlalu besar karena nilai turunan fungsi aktivasinya menjadi terlalu kecil. Oleh sebab itu, di dalam standar backpropagation nilai bobot dan bias diberi nilai bilangan acak kecil. Pada umumnya range [-5,5] atau [-1,1].

2. Jumlah unit tersembunyi

Bagi propagasi maju jaringan dengan layar tersembunyi sudah cukup untuk mengenali jaringan yang lainnya antara masukan dan target dengan tingkat ketelitian yang ditentukan. Namun, penambahan jumlah layar tersembunyi kadangkala membuat pelatihan lebih mudah.

Dalam backpropagation keluaran harus dihitung untuk tiap layar, dimulai dari layar tersembunyi yang paling bawah (terdekat dengan masukan). Sebaliknya dalam propagasi mundur, faktor δ perlu dihitung untuk tiap layar tersembunyi, dimulai dari layar keluaran.

3. Jumlah pola pelatihan

Jumlah pola yang dibutuhkan dipengaruhi oleh banyaknya bobot dalam jaringan serta tingkat akurasi yang diharapkan.

4. Lama iterasi

Tujuan penggunaan backpropagation adalah mendapatkan keseimbangan antara pengenalan pola pelatihan secara benar dan respon yang baik untuk pola lain yang sejenis.

Jaringan dapat dilatih terus menerus hingga semua pola pelatihan dikenali dengan benar. Namun, hal itu tidak menjamin jaringan akan mampu mengenali pola pengujian yang tepat.

Kini telah ada berbagai variasi backpropagation. Variasi dapat berupa model backpropagation yang digunakan untuk keperluam khusus, atau teknik modifikasi bobot untuk mempercepat pelatihan dalam kasus tertentu. Berikut beberapa variasi backpropagation [9]:

1. Momentum

Perubahan bobot berdasarkan atas gradient yang terjadi untuk pola yang dimasukkan pada saat itu. Penambahan momentum untuk menghindari perubahan bobot yang mencolok akibat adanya data yang sangat berbeda dengan yang lainnya.

2. Delta – Bar – Delta

Laju pemahaman (α) merupakan konstanta yang dipakai dalam seluruh iterasinya. Perubahan dapat dilakukan dengan memberikan laju pemahaman yang berbeda-beda untuk setiap bobotnya.

Dokumen terkait