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.