Kasus 2 : Aturan Percobaan untuk Bobot unit tersembunyi
3.3 Algoritma Backpropagation
Algoritma backpropagation mempelajari bobot untuk jaringan saraf buatan lapisan banyak dengan himpunan dari unit-unitnya dan saling berhubungan. Algoritma ini menggunakan gradient descent untuk mencoba
2
meminimalisasi kuadrat error antara nilai input dan nilai target pada jaringan.
Terdapat banyak cara untuk mendefinisikan nilai error dari model (vektor bobot). Berbeda dengan persamaan (3.0) definisikan kembali E
sebagai penjumlahan error dari semua unit keluaran jaringan. Proses ini merupakan salah satu ukuran yang dapat menurukan nilai error dengan tepat adalah
r 1 2
E
(
w)
≡(
t kd −okd)
d∈D k∈outputs
(3.17)
D adalah himpunan dari contoh data percobaan, outputnya adalah himpunan dari unit output pada jaringan, tkd dan ok d masing-masing adalah nilai target dan nilai output dengan unit output k dan contoh percobaan d.
Permasalahan yang digambarkan oleh algoritma backpropagation
adalah untuk mencari ruang hipotesis yang besar dan didefinisikan oleh semua nilai bobot yang mungkin untuk setiap unit pada jaringan. Salah satu perbedaan pokok pada kasus jaringan saraf buatan lapisan banyak yaitu permukaan error dapat memiliki perkalian minimum lokal. Hal ini berarti turunan gradient dapat menjamin kekonvergenan untuk beberapa minimum lokal, dan bukan error minimum global.
Walaupun tidak dijaminnya konvergen ke arah global minimum, Algoritma backpropagation merupakan fungsi yang efektif dalam metode pembelajaran [11]. Fungsi error pada gradient descent dapat diilustrasikan sebagai permukaan error dengan n-dimensi, ketika kemiringan gradient
descent menurun dalam lokal minimum sehingga akan berpengaruh dalam perubahan bobot.
Perbedaan performa ruang hipotesis antara algoritma
backpropagation jaringan saraf buatan lapisan banyak dengan performa
pembelajaran algoritma pada metode yang lain, yaitu algoritma
backpropagation memiliki ruang hipotesis pada n-dimensi dari n-bobot
jaringan. Dengan catatan ruang hipotesis memiliki fungsi yang kontinu. Sedangkan hipotesis pada pembelajaran algoritma yang lain seperti pembelajaran decision tree dan metode yang lain memiliki proses pencarian hipotesis yang berbeda-beda. Untuk jelasnya pembelajaran tentang decision
tree menggunakan algoritma ID3 dapat ditemukan di [6].
Seperti penjelasan sebelumnya, Algoritma backpropagation
diimplementasikan dengan mencari kemiringan gradient descent pada bobot jaringan, nilai error E yang diperoleh akan mengurangi iterasi yang berada diantara nilai target pada contoh percobaan dan hasil output. Karena permukaan jaringan saraf buatan lapisan banyak menggambarkan permukaan yang tidak linear pada lokal minima, Sehingga kemiringan gradient descent terdapat pada permukaan error. Hasil algoritma
backpropagation akan menunjukan ke arah konvergen terhadap lokal
minimum dalam mencari nilai error dan tidak membutuhkan nilai error ke arah global minimum.
Nilai error minimum dapat dicari pada saat jaringan saraf buatan lapisan banyak menginisialisasikan dan dibangkitkan secara random atau
acak untuk mentukan bobot koneksi antar unit dari suatu lapisan dengan lapisan sesudahnya, jadi antar unit-unit di lapisan tersembunyi saling terkoneksi satu sama lain dengan unit-unit di lapisan tersembunyi, dan antar unit-unit di tersembunyi lapisan akan saling terkoneksi satu sama lain dengan unit-unit pada lapisan output. Nilai bobot inilah yang akan menentukan proses pembelajaran kecerdasan buatan.
Pada saat proses training, nilai bobot tersebut akan terus berubah sehingga didapatkan kesesuaian antara input dengan output dengan error minimum. Dengan kata lain, Pada proses training akan menentukan nilai minimum error yang bisa di tolerir oleh jaringan saraf buatan lapisan banyak seperti yang disampaikan diatas bahwa algoritma backpropagation tidak akan memberikan kepastian jawaban untuk suatu kasus yang tidak pernah dilatihkan, pasti ada nilai error dari jawaban sistem pembelajaran dengan jawaban yang seharusnya, nilai error tersebut yang harus di definisikan sebelum melatih proses pembelajaran sehingga sistem tersebut bisa menjawab dengan tingkat kebenaran semaksimal mungkin (misal: tingkat kebenaran sistem 99,9999% dengan nilai Error 0.0001).
Algoritma backpropagation merupakan proses pembelajaran yang mampu menjelaskan beberapa fungsi yang terdapat dalam data. Fungsi- fungsi data tersebut dapat digambarkan secara keseluruhan dengan beberapa unit yang digunakan pada lapisannya dan beberapa lapisan yang digunakan dalam jaringan. Fungsi-fungsi ini dapat dibagi menjadi tiga yaitu fungsi boolean, fungsi bernilai kontinu dan fungsi sembarang. Fungsi boolean
adalah fungsi yang rangenya hanya memiliki Z elemen, fungsi ini dapat digambarkan dengan model struktur jaringan dengan baik menggunakan jaringan terdiri dari dua lapisan. Sedangkan fungsi kontinu merupakan fungsi yang rangenya berupa interval, fungsi ini juga dapat digambarkan dengan struktur jaringan saraf buatan dengan baik menggunakan jaringan terdiri dari dua lapisan. Terakhir fungsi sembarang adalah sebuah fungsi yang berbeda dari kedua fungsi sebelumnya. fungsi ini dapat menggambarkan model struktur jaringan cukup baik dengan menggunakan tiga lapisan pada unit.
Induktif bias merupakan suatu cara yang digunakan algoritma
backpropagation dalam menginferensi populasi dari data percobaan. Sample
data di proses dalam proses pembelajaran, kemudian performa model dari sample data tersebut diuji kembali ke populasi data percobaan. Hal ini secara praktis biasanya dapat dilakukan dengan membagi dua data menjadi data training dan data test. Tujuan pembelajaran induktif bias untuk mendapatkan performa dari sample data dengan nilai error yang relatif kecil dan dapat dibandingkan dengan performa yang dihasilkan pada data populasi.
Algoritma backpropagation menggunakan jaringan lapisanr
feedforward yang terdiri dari dua unit lapisan sigmoid dengan lapisan yang
dihubungkan ke semua unit dari lapisan yang terdahulu. Notasi yang digunakan pada algoritma ini adalah :
a) Sebuah index menententukan setiap titik dari jaringan, dimana sebuah ”titik” merupakan salah satu input atau output dari beberapa unit pada jaringan.
b) xij menotasikan input dari titik i ke unit j, dan wij menotasikan hubungan
bobot.
c) δn menotasikan error dengan unit n.
Algoritma Backpropagation
BACKPROPAGATION (Contoh percobaan, η, nin , nout , nhidden )
r r r
Setiap contoh percobaan merupakan pasangan dari bentuk
(
x, t)
, dimana x radalah vektor dari nilai unit input, dan t
jaringan target.
adalah vektor dari nilai output
η
adalah learning rate (0,05), nin adalah bilangan dari input jaringan, ntersembunyi adalah bilangan dari unit pada lapisanr tersembunyi, dan nout adalahbilangan dari unit output.
input dari unit i sampai j dinotasikan dengan xji, dan bobot dari i sampai j
dinotasikan dengan wji.
1. Buat jaringan feedforward dengan input nin, unit tersembunyi nhiiden, dan
unit output nout.
2. Inisialkan semua bobot awal jaringan ke bilangan acak yang kecil (antara -0,05 sampai 0,05).
3. Hitung output o(net ) dari setiap unit k pada jaringan.
n
o(net) = w ji xi
i =0
+ θj 0 (3.1)
4. Hitung fungsi sigmoid(
σ
) dari setiap unit k pada jaringan. σ = 15. Hitung output pada lapisan keluaran ( ok ).
n
ok = σ(
i =0
w ji. xi +θj 0 ) (3.3) 6. Hitung nilai error pada lapisan output ok, dengan bentuk error( δk ).
δ
k ←ok(
1 −ok)(
t k −ok)
(3.9) 7. Hitung nilai error pada lapisan tersembunyi h, dengan bentuk error(δ
h ).δh ←ok (1 −ok ) wkhδk (3.12)
δ
r =or(
1 −or)
wsrδ
s Untuk jaringan uniform m-lapisan (3.15)s∈layer m+1
δ
r =or(
1 −or)
wsrδ
ss∈d ownstream( r )
Untuk jaringan sembarang n-iterasi (3.16) 8. Hitung perubahan setiap bobot jaringan( ∆wji ).
∆w ji =
ηδ
j x ji j =k , h (3.13) ∆w ji(
n)
= ηδj x ji +α∆w ji(
n − 1)
9. Hitung perubahan bobot jaringan baru.
w ji ←w ji +∆w ji
Untuk n-iterasi (3.14)
(2.8)
Algoritma backpropagation akan lebih dipahami dengan melakukan proses perhitungan pada data sederhana dibawah ini.
Tabel 3.1. Fungsi XOR
Variabel Prediktor Variabel Target
x1 x2 t 1 1 0 1 0 1 0 1 1 0 0 0 Langkah 1.
Membuat Jaringan feedforward dengan unit input nin yaitu x1 dan x2 , terdapat 2
Y
w50 w31 w321
z3 z 4 w301
w40 z1 w 21 w22 w23 w24 z2 w101
w20 w 11 w12 x1 w13 w14 x2Gambar 3.2. Jaringan feedforward dengan dua lapisan unit tersembunyi
Langkah 2.
Setelah membuat jaringan feedforward kemudian inisialkan semua bobot jaringan ke bilangan acak yang kecil antara -0,05 sampai 0,05 dan bobot awal ditentukan secara random
- Misal bobot awal unit input ke unit tersembunyi
w11 = 0,05 w13 = 0,03
w12 = -0,05 w14 = -0,02
- dan bobot awal unit tersembunyi lapis 1 ke unit tersembunyi lapis 2
1
2
3
4
- Lebih lanjut lagi bobot awal unit tersembunyi ke unit output
w31 = -0,04 w32 = 0,05,
- Bobot awal bias ke unit tersembunyi lapis 1
w10 = -0,03 w20 = 0,04,
- Bobot awal bias ke unit tersembunyi lapis 2
w30 = 0,02 w40 =0,01
- Serta terakhir bobot awal bias ke unit output adalah
w50 =0,03
Langkah 3.
Hitung output o(net ) dari setiap unit k pada unit tersembunyi :
n rumus : o(net ) = w ji xi i =0 +
θ
j 0 o1 (net) = (0,05)(1) + (0,03)(1) + (-0,03) = 0,05 o2 (net) = (-0,05)(1) + (-0,02)(1) + (0,04) = -0,03 o3 (net) = (0,03)(1) + (0,04)(1) + (0,02) = 0,09 o4 (net) = (-0,01)(1) + (0,05)(1) + (0,01) = 0,05 Langkah 4.Hitung fungsi sigmoid( σ ) dari setiap unit k pada jaringan :
σ
= 1 1 +e − o ( net )σ (
net)
= 1 =0,51 1 +e − 0 , 05σ (
net)
= 1 =0,49 1 +e 0 , 03σ (
net)
= 1 =0,52 1 + e − 0 , 09σ (
net)
= 1 =0,51 1 +e − 0 , 05= Langkah 5.
Hitung output o(net ) dari setiap unit k pada lapisan keluaran output ok :
n ok = w ji xi i =0 + θj 0 = (0,52)(-0,04)+(0,51)(0,05)+0,03 = 0,0347 1 1 o k = =0,5 1 + e − o k 1 +e − 0 , 0347 Langkah 6.
Setelah mendapatkan nilai output pada langkah 5, kemudian hitung error
berdasarkan kesalahan untuk setiap unit output jaringan k, hitung bentuk error δk
δ
k ←ok(
1 −ok)(
t k −ok)
= (0,5) (1-0,5) (0-0,5) = -0,125δ
k merupakan error yang dipakai dalam perubahan bobot lapisan dibawahnya.ok merupakan nilai output pada jaringan keluaran dan tk adalah target keluaran.
Langkah 7.
Kemudian cari penjumlahan error berdasarkan error untuk setiap unit tersembunyi
h, hitung bentuk error
δ
hδ
h ←ok(
1 −ok)
wkhδ
kk∈outputs
Pertama cari penjumlahan delta rule dari unit tersembunyi, dimana dari hasil delta rule pada unit keluaran
δ
k = -0,125δ
k = wkhδ
k k∈outputδ
1 = (-0,125) (0,05) = -0,006δ
2 = (-0,125) (-0,04) = 0,005δ
3 = (-0,125) (0,04) + (-0,125)(0,05) = 0,011δ
4 = (-0,125) (0,03) + (-0,125)(-0,01) = -0,002δ
h ←ok(
1 −ok)
wkhδ
k k∈outputsδ
1 = (-0,006) ( 0,51) (1-0,51) = 0,001δ
2 = (0,005) (0,52) (1-0,52) = -0,001δ
3 = (0,011) (0,49) (1-0,49) = 0,002δ
4 = (-0,002) (0,51) (1-0,51) = -0,0004Langkah 8.
Hitung perubahan setiap bobot jaringan( ∆wji )
∆w ji =
ηδ
j x jiSuku perubahan bobot keluaran ∆w ji
= -0,125 hasil langkah 4.
dengan learning rate
η
= 0,05 , delta rule δk∆w ji =
ηδ
j x ji j=0,1,2,3,... ∆w50 = (0,05) (-0,125) (1) = -0,00625 ∆w31 =(0,05) (-0,125) (0,52) = -0,00325 ∆w32 =(0,05) (-0,125)(0,51) = -0,00318Suku perubahan bobot ke unit tersembunyi ∆w ji
delta rule hasil delta rule langkah 5.
dengan learning rate
η
= 0,05 ,∆w ji =
ηδ
j x ji j=0,1,2,3,.. Unit tersembunyi lapis 1∆w10 = (0,05) (0,001) (1) = 0,00005 ∆w20 = (0,05) (-0,001) (1) = -0,00005 ∆w11 = (0,05) (0,001) (1) = 0,00005 ∆w12 = (0,05) (-0,001) (1) = -0,00005 ∆w13 = (0,05) (0,001) (1) = 0,00005 ∆w14 = (0,05) (-0,001) (1) = -0,00005 Unit tersembunyi lapis 2
∆w30 =(0,05) (-0,0004) (1) = -0,00002 ∆w40 =(0,05) (0,002) (1) =0,0001 ∆w21 =(0,05) (-0,0004) (1) = -0,00002
∆w22 =(0,05) (0,002) (1) = 0,0001 ∆w23 =(0,05) (-0,0004) (1) = -0,00002 ∆w24 =(0,05) (0,002) (1) = 0,0001
Langkah 9.
Hitung perubahan bobot jaringan baru.
w ji ←w ji +∆w ji
Perubahan bobot unit keluaran : ∆w50 = (0,03) + (-0,006)= 0,024 ∆w31 = (-0,04) + (-0,003)= -0,043 ∆w32 = (0,05) + (-0,003)= 0,047
Perubahan bobot unit tersembunyi layar 1 ∆w10 = -0,03 + 0,00005 = -0,03 ∆w20 = 0,04 - 0,00005 = 0,04 ∆w11 = 0,05 + 0,00005 = 0,05 ∆w12 = -0,05 - 0,00005 = -0,05 ∆w13 = 0,03 + 0,00005 = 0,03 ∆w14 = -0,02 - 0,00005 = -0,02
Perubahan bobot unit tersembunyi layar 2 ∆w30 = 0,02 – 0,00002 = 0,02 ∆w40 = 0,01 + 0,0001 = 0,01 ∆w21 = 0,03 – 0,00002 =0,03 ∆w22 = -0,01 +0,0001 = -0,01 ∆w23 = 0,04 – 0,00002 = 0,04 ∆w24 = 0,05 + 0,0001 = 0,05
Algoritma backpropagation dimulai dari pembentukan sebuah jaringan dengan unit tersembunyi dan unit output serta menginisialisasi semua bobot jaringan ke nilai random yang kecil. Untuk setiap contoh percobaan menggunakan suatu jaringan untuk menghitung nilai error dari output
jaringan, menghitung gradient descent dan kemudian mengupdate semua bobot pada jaringan. Proses ini dilakukan sampai menghasilkan klasifikasi dengan model yang tepat.