• Tidak ada hasil yang ditemukan

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

)

dD koutputs

(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 r

adalah 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 adalah

bilangan 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. σ = 1

5. 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)

slayer m+1

δ

r =or

(

1 −or

)

wsr

δ

s

sd 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 w32

1

z3 z 4 w30

1

w40 z1 w 21 w22 w23 w24 z2 w10

1

w20 w 11 w12 x1 w13 w14 x2

Gambar 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

δ

k

koutputs

Pertama cari penjumlahan delta rule dari unit tersembunyi, dimana dari hasil delta rule pada unit keluaran

δ

k = -0,125

δ

k = wkh

δ

k koutput

δ

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 koutputs

δ

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,0004

Langkah 8.

Hitung perubahan setiap bobot jaringan( ∆wji )

w ji =

ηδ

j x ji

Suku 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,00318

Suku 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.

Dokumen terkait