5.3.
BACK PROPAGATION(Perambatan Galat Mundur)
5.3.1. Pengantar Back Propagation
Jaringan perambatan galat mundur (backpropagation) adalah salah satu algoritma yang
sering digunakan dalam menyelesaikan masalah-masalah yang rumit. Hal ini dimungkinkan
karena pelatihan dengan menggunakan metode belajar terbimbing. Pada jaringan back
propagation diberikan sepasang pola yang terdiri atas pola masukan dan pola yang diinginkan.
Ketika suatu pola diberikan kepada jaringan, maka bobot-bobot diubah untuk memperkecil
perbedaan pola keluaran dan pola yang diinginkan. Latihan ini dilakukan berulang-ulang
sehingga semua pola yang dikeluarkan jaringan dapat memenuhi pola yang diinginkan.
Algoritma pelatihan jaringan saraf perambatan galat mundur terdiri atas dua langkah,yaitu
perambatan maju dan perambatan mundur. Langkah perambatan mundur ini dilakukan pada
jaringan untuk setiap pola yang diberikan selama jaringan mengalami pelatihan. Jaringan
perambatan galat mundur terdiri atas tiga lapisan atau lebih unit pengolah.
Input signals
1
x1 1 y1
1
2
x2 2 y2
2
i wij j wjk
xi k yk
m
n l yl
xn
Input Hidden Output
layer layer layer
Error signals
I J K
Gambar 3.10 menunjukkan jaringan perambatan galat mundur dengan tiga lapisan
pengolah,bagian kiri sebagai masukan,bagian tengah disebut sebagai lapisan tersembunyi dan
bagian kanan disebut lapisan keluaran. Ketiga lapisan ini terhubung secara penuh. Perambatan
maju dimulai dengan memberikan pola masukan ke lapisan masukan. Pola masukan ini
merupakan nilai aktivasi unit-unit masukan. Dengan melakukan perambatan maju dihitung nilai
aktivasi pada unit-unit di lapisan berikutnya. Pada setiap lapisan,tiap unit pengolah melakukan
penjumlahan berbobot dan menerapkan fungsi sigmoid untuk menghitung keluarannya.
Keluaran Hiden layer dengan menggunakan rumus
n
Yj ( p) Sigmoid xi( p) x wij ( p) j
i 1
Dimana
1
Yj=keluaran unit j
Sigmoid=fungsi aktivasi
Xi=input dari unit i
Wij=bobot dari unit i ke j
j =batas ambang unit j
P=iterasi
Keluaran Output layer dengan menggunakan rumus
m
Yk sigmoid Xjk ( p ) x Wjk ( p) k
j 1
Dimana
Yk=keluaran unit k
Sigmoid=fungsi aktivasi
Xjk=input dari unit j
Wjk=bobot dari unit j ke k
k =batas ambang unit k
P=iterasi
Menentukan Erorr dengan menggunakan rumus
ek ( p) Yd , k ( p) Yk ( p)
Dimana
ek=error unit k(output layer)
Ydk=output yang diharapkan pada unit k
Yk=output actual pada unit k
P=iterasi
Fungsi Aktivasi Ysigmoid
Sigmoid
1
Y
1 e X
Dimana
2
x=nilai Yj/Yk
Gradien error Hidden
k ( p) Yk ( p) x 1 Yk ( p) x ek ( p)
Gradien error Input
l
j ( p ) Yj ( p ) x 1 Yj ( p ) x k ( p ) x Wjk ( p )
k 1
Langkah-Langkah Penyelesaian Backpropagation
1. Inisialisasi
Tentukan input, output yang diharapkan, bobot input, bobot hidden, treshold hidden,
threshold output, training rate,
2. Hitung keluaran hidden
n
Yj ( p) Sigmoid xi( p) x wij ( p) j
i 1
Gunakan fungsi aktivasi Ysigoid untuk menentukan keluaran hidden dan output layer
dengan rumus
Sigmoid
1
Y
1 e X
3. Hitung keluaran output
m
Yk sigmoid Xjk ( p ) x Wjk ( p) k
j 1
4. Hitung error dengan rumus
ek ( p) Yd , k ( p) Yk ( p)
5. Update bobot hidden(Wjk)
a. Hitung gradien error
k ( p) Yk ( p) x 1 Yk ( p) x ek ( p)
b. Update bobot
Wjk ( p 1) Wjk ( p) Wjk ( p)
Wjk ( p) x Yj ( p) x k ( p)
6. Update bobot input(Wij)
a. Hitung gradient error
l
j ( p ) Yj ( p ) x 1 Yj ( p ) x k ( p ) x Wjk ( p )
k 1
b. Update bobot
Wij ( p 1) Wij ( p) Wij ( p)
Wij ( p) x Xi( p) x j ( p)
3
7. Lakukan iterasi
Contoh Penerapan Back Propagation
X1=0
0,2
Y1
0,2 0,4 0,4
X2=1 Y3
0,3
0,6 Yd=1
0,5 Y2
X3=1 -0,3
1 0.8, 2 0.1, 3 0.3 , = 0.3
Dengan arsitektur 3-2-1(3 input, 2 hidden dan 1 output)
Iterasi 1
1. Hitung output actual
a. Keluaran hidden layer
n
Yj ( p) Sigmoid xi( p) x wij ( p) j
i 1
n
Yj (1) Sigmoid (0 x0,2) (1x0,4) (1x0,5) 0,8
i 1
Yj (1) Sigmoid 0,1
Sigmoid
1
Y
1 e X
Sigmoid
1
Y
1 e 0,1
Yj (1) 0,52
n
Yj (2) Sigmoid (0 x0,2) (1x0,3) (1x 0,3) 0,1
i 1
Yj (2) Sigmoid 0,1
Sigmoid
1
Y
1 e 0,1
Yj (2) 0,47
b. Keluaran output layer
n
Yj (3) Sigmoid (0,52 x0,4) (0,47 x0,6) 0,3
i 1
Yj (3) Sigmoid 0,19
4
Sigmoid
1
Y
1 e X
Sigmoid
1
Y
1 e 0,19
Yj (3) 0,54
2. Hitung error
ek ( p) Yd , k ( p) Yk ( p)
ek (1) 0,54 1 0,46
Error tidak sama dengan nol, sehingga penelusura mundur(back) sambil memperbaharui
bobot hingga error =0
3. Update bobot hidden(Wjk)
a. Hitung gradien error output layer
k ( p) Yk ( p) x 1 Yk ( p) x ek ( p)
k (1) 0,54 x 1 0,54 x 0,46
k (1) 0,11
b. Update bobot hidden layer(Wjk1)
Wjk ( p) x Yj ( p) x k ( p)
Wjk (1) 0,3 x 0,52 x 0,11
Wjk (1) 0,01
Wjk ( p 1) Wjk ( p) Wjk ( p)
Wjk (1) 0,4 (0,01) 0,39
c. Update bobot hidden layer (Wjk2)
Wjk ( p) x Yj ( p) x k ( p)
Wjk (2) 0,3 x 0,47 x 0,11
Wjk (2) 0,01
Wjk ( p 1) Wjk ( p) Wjk ( p)
Wjk (2) 0,6 (0,01) 0,59
4. Update bobot input(Wij)
a. Hitung gradient error hidden(Y1)
l
j ( p ) Yj ( p ) x 1 Yj ( p ) x k ( p ) x Wjk ( p )
k 1
j (1) 0,52 x 1 0,52 x (0,11) x0,4
j (1) 0,0110
b. Hitung gradient error hidden(Y2)
l
j ( p ) Yj ( p ) x 1 Yj ( p ) x k ( p ) x Wjk ( p )
k 1
5
j (2) 0,47 x 1 0,47 x (0,11) x0,6
j (2) 0,0164
c. Update bobot input layer(Wij1)
Wij ( p) x Xi( p) x j ( p)
Wij (1) 0,3 x 0 x (0,0110) 0
Wij ( p 1) Wij ( p) Wij ( p)
Wij (1) 0,2 0 0,2
d. Update bobot input layer(Wij2)
Wij ( p) x Xi( p) x j ( p)
Wij (2) 0,3 x 1 x (0,0110) 0,0033
Wij ( p 1) Wij ( p) Wij ( p)
Wij (2) 0,4 0,0033 0,4033
e. Update bobot input layer(Wij3)
Wij ( p) x Xi( p) x j ( p)
Wij (3) 0,3 x 1 x (0,0110) 0,0033
Wij ( p 1) Wij ( p) Wij ( p)
Wij (2) 0,5 0,0033 0,5033
f. Update bobot input layer(Wij4)
Wij ( p) x Xi( p) x j ( p)
Wij (4) 0,3 x 0 x (0,0164) 0
Wij ( p 1) Wij ( p) Wij ( p)
Wij (4) 0,2 0 0,2
g. Update bobot input layer(Wij5)
Wij ( p) x Xi( p) x j ( p)
Wij (5) 0,3 x 1 x (0,0164) 0,0049
Wij ( p 1) Wij ( p) Wij ( p)
Wij (5) 0,3 (0,0049) 0,2051
h. Update bobot input layer(Wij6)
Wij ( p) x Xi( p) x j ( p)
Wij (6) 0,3 x 1 x (0,0164) 0,0049
Wij ( p 1) Wij ( p) Wij ( p)
Wij (6) 0,3 (0,0049) 0,3049
Untuk iterasi 1 sudah selesai dan hasil akhir setelah dilakukan update bobot adalah
6
X1=0
0,2(0,2)
0,2(0,2) Y1
0,4(0,4033) 0,4(0,39)
X2=1 Y3
0,3(0,2051)
0,5(0,5033) 0,6(0,59) Yd=1
Y2
X3=1 -0,3(-0,3049)
untuk mencapai error=0 harus dilanjutkan perhitungan untuk iterasi selanjutnya dan
melakukan update bobot