Perhitungan Backpropagation

Contoh:
Gunakan backpropagation dengan sebuah layer tersembunyi (dengan 3 unit), untuk mengenali fungsi logika XOR dengan 2 masukan X1 dan X2. Buatlah iterasi untuk menghitung bobot jaringan untuk pola pertama (X1=1, X2=1 dan t=0). Gunakan laju pemahaman α=0.2.
Penyelesaian




Bobot-bobot diberikan nilai acak dengan range -1 sampai dengan 1. Missal bobot dari layer input ke layer tersembunyi seperti pada table a dan bobot-bobot dari layer tersembunyi ke layer output seperti pada table b.


Langkah 0
Inisialisasi semua bobot dengan bilangan acak kecil.
Table a

z1 Z2 Z3
X1 0.2 0.3 -0.1
X2 0.3 0.1 -0.1
1 -0.3 0.3 0.3

Table b

Y
Z1 0.5
Z2 -0.3
Z3 -0.4
1 -0.1

Langkah 1
Jika kondisi penghentian belum terpenuhi, lakukan langkah 2 sampai dengan 8

Langkah 2
Untuk setiap pasang data pelatihan, lakukan langkah 3 sampai dengan 8
Fase I: Propagasi Maju

Langkah 3
Tiap unit masukkan menerima sinyal dan meneruskan ke unit tersembunyi

Langkah 4
Hitung semua keluaran di unit tersembunyi (Zj):














Langkah 5
Hitung semua jaringan di unit keluaran (yk)
 









Fase II : Propagasi Maju

Langkah 6
dk=(tk-yk) f’(y_netk)= (tk-yk) yk (1-yk)
d1=(t1-y1) f’(y_net1)= (t1-y1) y1 (1-y1)=(0-0,44) 0,44 (1-0,44)=-0,11
Δwkj= α dk zj
Δw10= α d1 (1)=0,2 . (-0,11) . (1)=-0,022
Δw11= α d1 (z1)=0,2 . (-0,11) . (0,55)=-0,01
Δw12= α d1 (z2)=0,2 . (-0,11) . (0,67)=-0,01
Δw13= α d1 (z3)=0,2 . (-0,11) . (0,52)=-0,01

Langkah 7
Hitung factor d unit tersembunyi berdasarkan kesalahan di setiap unit tersembunyi zj (j=1,2,3,…,p)









Faktor kesalahan unit tersembunyi
dj = d_netj f’(z_netj)= d_net zj (1-zj)
d1 = d_net1 z1 (1-z1)=(-0.055).0,55.(1-(0,55))=-0,01
d2 = d_net2 z2 (1-z2)=(0.033).0,67.(1-(0,67))=0,01
d3 = d_net3 z3 (1-z3)=(0.044).0,52.(1-(0,52))=0,01
Δvji=α djxi
Δv10=α d1=0,2*(-0,01)*1= -0,002
Δv20=α d2=0,2*(0,01)*1=0,002
Δv30=α d3=0,2*(0,01)*1=0,002
Δv11=α d1x1=0,2*(-0,01)*1=-0,002
Δv21=α d2x1=0,2*(0,01)*1=0,002
Δv31=α d3x1=0,2*(0,01)*1=0,002
Δv12=α d1x2=0,2*(-0,01)*1=-0,002
Δv22=α d2x2=0,2*(0,01)*1=0,002
Δv32=α d3x2=0,2*(0,01)*1=0,002
 
Fase III : Perubahan Bobot

Langkah 8 
Perubahan bobot garis yang menuju unit keluaran
wkj (baru)= wkj (lama) + Δwkj
w10 (baru)= w10 (lama) + Δw10= -0,1-0,022=-0,122
w11 (baru)= w11 (lama) + Δw11=0,5-0,01=0,49
w12 (baru)= w12 (lama) + Δw12=-0,3-0,01=0,31
w13 (baru)= w13 (lama) + Δw13=-0,4-0,01=0,41

Vji (baru)= vji (lama) + Δvji
V10 (baru)= v10 (lama) + Δv10 =-0,3-0,002=-0,302
V20 (baru)= v20 (lama) + Δv20 =0,3+0,002=0,302
V30 (baru)= v30 (lama) + Δv30 =0,3+0,0020,302
V11 (baru)= v11 (lama) + Δv11 =0,2-0,002=0,198
V21 (baru)= v21 (lama) + Δv21 =0,3+0,002=0,302
V31 (baru)= v31 (lama) + Δv31 =-0,1+0,002=-0,098
V12 (baru)= v12 (lama) + Δv12 =0,3-0,002=0,298
V22 (baru)= v22 (lama) + Δv22 =0,1+0,002=0,102
V32 (baru)= v32 (lama) + Δv32 =-0,1+0,002=-0,098
Untuk Pola yang kedua, X1=1, X2=0 dan t=1
 
Fase I: Propagasi Maju
Langkah 3
Tiap unit masukkan menerima sinyal dan meneruskan ke unit tersembunyi

Langkah 4
Hitung semua keluaran di unit tersembunyi (Zj):















Langkah 5
Hitung semua jaringan di unit keluaran (yk)
 









Fase II : Propagasi Maju

Langkah 6
dk=(tk-yk) f’(y_netk)= (tk-yk) yk (1-yk)
d1=(t1-y1) f’(y_net1)= (t1-y1) y1 (1-y1)=(0-0,44) 0,44 (1-0,44)=-0,11
Δwkj= α dk zj
Δw10= α d1 (1)=0,2 . (-0,11) . (1)=-0,022
Δw11= α d1 (z1)=0,2 . (-0,11) . (0,55)=-0,01
Δw12= α d1 (z2)=0,2 . (-0,11) . (0,67)=-0,01
Δw13= α d1 (z3)=0,2 . (-0,11) . (0,52)=-0,01

Langkah 7
Hitung factor d unit tersembunyi berdasarkan kesalahan di setiap unit tersembunyi zj (j=1,2,3,…,p)










Faktor kesalahan unit tersembunyi
dj = d_netj f’(z_netj)= d_net zj (1-zj)
d1 = d_net z1 (1-z1)=(-0.055).0,55.(1-(0,55))=-0,01
d2 = d_net z2 (1-z2)=(0.033).0,67.(1-(0,67))=0,01
d3 = d_net z3 (1-z3)=(0.044).0,52.(1-(0,52))=0,01

Δvji=α djxi
Δv10=α d1=0,2*(-0,01)*1= -0,002
Δv20=α d2=0,2*(0,01)*1=0,002
Δv30=α d3=0,2*(0,01)*1=0,002
Δv11=α d1x1=0,2*(-0,01)*1=-0,002
Δv21=α d2x1=0,2*(0,01)*1=0,002
Δv31=α d3x1=0,2*(0,01)*1=0,002
Δv12=α d1x2=0,2*(-0,01)*1=-0,002
Δv22=α d2x2=0,2*(0,01)*1=0,002
Δv32=α d3x2=0,2*(0,01)*1=0,002
 
Fase III : Perubahan Bobot

Langkah 8 
Perubahan bobot garis yang menuju unit keluaran
wkj (baru)= wkj (lama) + Δwkj
w10 (baru)= w10 (lama) + Δw10= -0,1-0,022=-0,122
w11 (baru)= w11 (lama) + Δw11=0,5-0,01=0,49
w12 (baru)= w12 (lama) + Δw12=-0,3-0,01=0,31
w13 (baru)= w13 (lama) + Δw13=-0,4-0,01=0,41

Vji (baru)= vji (lama) + Δvji
V10 (baru)= v10 (lama) + Δv10 =-0,3-0,002=-0,302
V20 (baru)= v20 (lama) + Δv20 =0,3+0,002=0,302
V30 (baru)= v30 (lama) + Δv30 =0,3+0,0020,302
V11 (baru)= v11 (lama) + Δv11 =0,2-0,002=0,198
V21 (baru)= v21 (lama) + Δv21 =0,3+0,002=0,302
V31 (baru)= v31 (lama) + Δv31 =-0,1+0,002=-0,098
V12 (baru)= v12 (lama) + Δv12 =0,3-0,002=0,298
V22 (baru)= v22 (lama) + Δv22 =0,1+0,002=0,102
V32 (baru)= v32 (lama) + Δv32 =-0,1+0,002=-0,098

Pola ke 2 X1=1, X2=0, t=1
Pola ke 3 X1=0, X2=1, t=1
Pola ke 4 X1=0, X2=0, t=0