η α Sum of squares
JARINGAN SARAF BUATAN LAPISAN BANYAK
3.1 Unit Sigmoid
Unit perceptron merupakan salah satu tipe dari jaringan saraf buatan dengan unit tunggal dengan fungsi yang dihasilkan adalah fungsi yang
linear. Namun, unit perceptron tidak dapat menjelaskan fungsi yang non
linear, Oleh karena itu, Jaringan saraf buatan lapisan banyak mampu
menggambarkan fungsi yang non linear. Salah satu solusinya adalah dengan unit sigmoid, yaitu sebuah unit yang mirip dengan perceptron, dan proses dasar pekerjaan dilakukan sesuai tahapan.
Sama dengan perceptron, unit sigmoid pertama kali menghitung kombinasi linear dari input, kemudian menggunakan nilai batas untuk hasilnya. Pada kasus unit sigmoid, hasil output merupakan fungsi yang kontinu dari input-inputnya dan unit sigmoid menghitung output ok, secara
( )
x
Rumus fungsi sigmoid:
o( net )= n i =0 w ji. xi +θj 0 (3.1)
σ
= 1 −o ( net ) (3.2) Maka output ok 1 +e n ok = σ( i =0 w ji. xi + θj 0 ) (3.3)dimana x1, x2, ..., xn adalah input, o
(
x1 ,..., xn)
adalah output dan wi adalahbobot yang menentukan kontribusi dari input xi pada output
backpropagation. σ disebut fungsi sigmoid atau fungsi logistik. Range
output yang dihasilkan oleh unit sigmoid antara 0 sampai 1, dan bersifat
monoton naik. Karena unit sigmoid memetakan domain bilangan input yang sangat besar ke range output yang kecil, Sigmoid sering disebut dengan pengkompresan hasil dari unit. Fungsi sigmoid memiliki sifat bahwa turunannya secara mudah diperlihatkan dalam bentuk output
=
σ(
y)
⋅(
1 −σ(
y))
. Unit sigmoid diilustrasikan sebagai berikut:d
σ
y dy x0=1 w0 w1 1 x2 w2 w0 xn n net = wi x j + θj 0 j =0 Gambar 3.1. Sigmoid o =σ (net) = 1 1 +e −o ( net )= k k 3.2. Turunan dari Aturan Algoritma Backpropagation
Masalah yang paling pokok dalam bab ini adalah aturan penurunan
stokastik gradient descent yang diimplementasikan oleh algoritma
backpropagation. Berdasarkan persamaan (3.0) bahwa stokastik gradient
descent melibatkan iterasi pada sebuah waktu contoh percobaan, untuk
setiap contoh percobaan d menurunkan nilai gradient dari error Ed pada
contoh tunggal. Dengan kata lain, untuk setiap contoh percobaan d setiap bobot wij di update oleh penambahan ∆wij dengan rumus sebagai berikut:
∆wij =−
η
=∂Ed∂wij (3.4)
Dimana Ed adalah error pada contoh percobaan d ditambahkan dengan semua unit output pada jaringan (persamaan 3.0)
1
Ed
2
(
t −o)
2k∈output
outputnya disini adalah himpunan dari unit output pada jaringan, tk adalah nilai target dari unit k untuk contoh percobaan d dan ok adalah output dari
unit k pada contoh percobaan d. Notasi :
x ji = input ke i sampai input j
wji = bobot dengan input ke i sampai input j
netj = i w ji x ji (jumlahan bobot dari input untuk unit j)
oj = output dihitung berdasarkan unit j
j
σ
= fungsi sigmoidoutput = himpunan dari unit-unit pada lapisan terakhir dari
suatu jaringan
Downstream(j) =himpunan dari unit-unit yang berada satu lapisan
dibawahnya termasuk output dari unit j
Penurunan stokastik gradient descent =∂Ed
∂w ji merupakan implementasi
dari persamaan (3.4). Dengan catatan bahwa bobot wij dapat mempengaruhi sisa dari jaringan hanya sampai netj. Oleh karena itu,
=∂E d ∂E ∂net j = d ∂w ji ∂net j ∂w ji ==∂Ed ∂ i w ji x ji ∂net j = =∂Ed x ∂net ji ∂w ji (3.5) dalam penurunan =∂Ed
∂w ji terdapat dua pandangan kasus yaitu: kasus dimana
unit j adalah unit keluaran untuk jaringan dan kasus dimana j adalah unit tersembunyi untuk jaringan.
Kasus 1 : Aturan percobaan untuk bobot unit output.
wij dapat mempengaruhi sisa dari jaringan hanya sampai netj, netj dapat
∂
( )
j j( )
j ∂Ed j j =∂Ed ==∂E d ∂o j (3.6) ∂net j ∂o j ∂net jpandang bentuk pertama pada persamaan 3.0
∂Ed ∂ 1 2 = ∂o j ∂o j 2 k∈output
(
t k −ok)
Penurunan(
t k ∂o j −ok)
2akan nol untuk semua unit output k kecuali saat k = j.
= ∂Ed = ∂ 1
(
t −o)
2 ∂oj ∂oj 2 1 ∂(
t −o)
= 2 t −o 2 j j ∂oj =−(tj −oj ) (3.7)karena o j = σ net j , penurunan ∂o j
∂net j merupakan penurunan dari fungsi
sigmoid, yang sama dengan
σ
(
net j)(
1 −σ
(
net j))
. Oleh karena itu, ∂o j ∂σ
(
net j)
= ∂net j ∂net j =σ
' ( net ) =σ
(net j )(1 −σ
(net j )) =o j(
1 −o j)
(3.8) substitusikan persamaan (3.7) dan (3.8) kedalam persamaan (3.6). Didapatkan,=∂Ed ==∂E d ∂o j ∂net j ∂o j ∂net j =−
(
t j −o j)
o j(
1 −o j)
∂net (3.9) jj
dan kombinasikan persamaan (3.9) dengan persamaan (3.4). Maka didapatkan aturan stokastik gradient descent untuk unit output
∆wij =−
η
=∂Ed ∂wij=−
η
=∂E d ∂net j ∂net j ∂w ji=η
(
t j −o j)
o j(
1 −o j)
x ji (3.10)Kasus 2 : Aturan Percobaan untuk Bobot unit tersembunyi
Pada kasus ini j merupakan unit tersembunyi pada jaringan, turunan dari aturan percobaan untuk wji harus mengmbil perhitungan secara tidak langsung dimana wji
dapat mempengaruhi output jaringan dan Ed. Notasikan himpunan semua unit
yang input-inputnya termasuk dalam output unit j dengan Downstream (j). Catat bahwa netj dapat mempengaruhi jaringan keluaran dan Ed hanya sampai unit pada
Downstream (j). Oleh karena itu, dapat ditulis sebagai berikut:
=∂Ed = =∂Ed ∂netk ∂net j k∈Downstream( j ) ∂netk ∂net j
= −
δ
=∂netk k net k∈Downstream( j ) ∂ j ∂net ∂o j = −δ k k∈Downstream( j ) k ∂o ∂net j = −δ
w ∂o j k∈Downstream( j ) k kj ∂net j = −δ
k wkj o j(
1 −o j)
k∈Dow nstream( j ) (3.11)setelah mengatur kembali bentuk persamaan di atas dan menggunakan δj
untuk menotasikan −=∂Ed , didapatkan ∂net j
δ
j =o j(
1 −o j)
δ
k wkj k∈Dow nstream( j ) (3.12) dan ∆w ji = ηδj x ji (3.13)3.3. Penggunaan Faktor Momentum
Banyak variasi yang dapat dikembangkan dari penggunaan algoritma
backpropagation, salah satunya adalah mengubah aturan perubahan bobot
pada algoritma backpropagation persamaan 3.13, yaitu membuat perubahan bobot pada n iterasi yang secara parsial bergantung pada update yang terjadi selama (n-1) iterasi, dengan persamaan:
∆w ji
(
n)
= ηδj x ji +α∆w ji(
n − 1)
(3.14)∆w ji
(
n)
adalah weight-update yang dilakukan selama n iterasi dan 0 ≤α
< 1 merupakan konstanta yang disebut momentum. Dengan menambah variabelα
ke dalam rumus perubahan bobot mengakibatkan konvergensi akan lebih cepat untuk mendekati itersasi yang dilakukan sesuai tahapan sampai bobot mencapai solusinya.3.4. Pembelajaran Jaringan Sembang Acylic
Pada algoritma backpropagation yang telah dijelaskan dengan menggunakan dua lapisan unit tersembunyi pada jaringan. Namun, jika algoritma backpropagation menggunakan lebih dari dua lapisan unit tersembunyi pada jaringan maka aturan perubahan bobot (Persamaan 3.13). tetap digunakan, dan hanya mengubah cara perhitungan nilai δ . Secara umum, nilai δr untuk r unit pada m lapisanr dihitung dari nilai
δ
pada lapisanr m+1.δ
r =or(
1 −or)
wsrδ
s s∈layer m+1(3.15)
Pembelajaran tersebut sama-sama mengeneralisasi algoritma untuk
graph langsung acyclic, tanpa memperhatikan apakah unit jaringan yang
ditetapkan ada pada lapisan uniform. Aturan untuk menghitung
δ
untuk unit internal adalahδ
r =or(
1 −or)
wsrδ
ss∈d ownstream( r )
(3.16)
dimana Downstream(r) adalah himpunan dari unit-unit yang turun dari unit r
pada jaringan, yaitu semua unit yang input-inputnya termasuk dalam output dari unit r.
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δ
s s∈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 w11 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.
3.6. Analisis Multiklasifikasi
Algoritma backpropagation pada jaringan saraf buatan lapisan banyak dengan beberapa unit yang terhubung dapat dikembangkan untuk permasalahan multiklasifikasi. Untuk lebih jelasnya modifikasi dari algoritma backpropagation ini masalah multiklasifikasi dijelaskan dengan contoh berikut.
Tabel 3.2. Contoh Data Sederhana
Variabel Prediktor Variabel Target
x1 x2 y
1 1 a
1 0 b
0 1 c
0 0 d
Diberikan contoh permasalahan data seperti tabel 3.2. Multiklasifikasi dimulai dengan membuat jaringan feedforward dengan unit input nin yaitu
x1 , x2. dan terdapat satu lapisan unit tersembunyi nhiden yaitu z1
,
z2,
z3 dan unit output yaitu a, b, c , d.a b c d w40 1 w50 w60 w70 w22 w21 z1 w23 w24 w26 w 25 w27 z 2 w28 w31 w29 w32 w33 z3 w10 1 w20 w30 w11 X1 w12 w13 w14 w15 x2 w16
Gambar 3.3. Struktur jaringan dengan bilangan n-arry
Cara kerja dalam permasalahan multiklasifikasi memiliki kesamaan dengan binary klasifikasi yaitu membuat struktur jaringan kemudian merandom bobot jaringan dan menghitung unit output. Perbedaannya terletak pada proses perhitungan output dimana untuk kasus multiklasifikasi hasil output akan bekerja sesuai dengan proses klasifikasi, yaitu perhitungan output pada kelas A diproses melalui pembelajaran algoritma
backpropagation dengan bilangan binary, jika hasil output masuk kedalam
klasifikasi kelas A, maka kelas tersebut mengandung nilai 1, Sedangkan selain kelas A mengandung nilai 0. Keadaan ini dikerjakan sesuai dengan proses pembelajaran multiklasifikasi yang berarti proses binary n kali.
Cara kerja algoritma backpropagation pada jaringan saraf buatan lapisan banyak dapat diringkas dalam bentuk flowchart sebagai berikut:
Start 70% Training D ata 30% Test D ata 1. Membuat jaringan feedforword 2. Randomize bobot |wji|<0,05 Hitung n 3. o(net) = w ji xi i =0 + θj 0 4.
σ
= 1 1 +e −o ( net ) n 5. ok =σ
( i =0 w ji. xi +θ
j 0 ) 6.δ
k ←ok(
1 −ok)(
t k −ok)
7. δh ←ok (1 −ok ) wkhδk 8. ∆w ji = ηδj x ji j= k,h 9. w ji ←w ji +∆w ji Tidak td=od ∀d ∈DAkurasi error
generalisasi
End
Gambar 3.4. Flowchart Algoritma Backpropagation
BAB IV
STUDI NUMERIK DAN ANALISIS
Pada bab ini akan dijelaskan mengenai metode jaringan saraf buatan lapisan banyak menggunakan algoritma backpropagation dalam menghasilkan error minimum dalam mencari model yang tepat. Permasalahan yang akan dibahas yaitu mengenai permasalahan klasifikasi pengenalan huruf alphabet.
4.1. Deskripsi Studi Numerik
Metode jaringan saraf buatan lapisan banyak dapat diaplikasikan pada berbagai masalah tertentu di kehidupan sehari-hari. Untuk lebih memahami proses pengklasifikasian pada metode jaringan saraf buatan lapisan banyak dan nilai error, maka dilakukan studi numerik dengan mengambil permasalahan yang sederhana. Data-data tersebut diperoleh dari machine
learning database [8]. Dalam proses kerjanya, data ini dipisahkan menjadi
dua bagian yaitu training data dan test data. Pembagian data ini dilakukan secara random. Pada studi numerik disini penulis mengambil proporsi 70%
training data dan 30% test data.
Pengolahan data yang dilakukan dalam skripsi ini menggunakan algoritma backpropagation dengan bantuan software SPSS 16 dalam pencarian nilai errornya. Hal tersebut dilakukan karena asumsi dari data
4.2. Pengenalan Huruf Alphabet
Data pengenalan huruf alphabet merupakan salah satu data yang cocok untuk mengetahui pengenalan suatu pola. Permasalahan yang akan diangkat pada studi numerik adalah mencari nilai error minimum untuk mengidentifikasi setiap huruf dengan tulisan tangan berwarna hitam-putih yang terdapat dalam persegi panjang gambar digital dengan satuan pixel, huruf tersebut akan diklasifikasikan ke salah satu dari 26 huruf alphabet. Huruf-huruf tersebut berasal dari 20 bentuk huruf yang berbeda dan setiap huruf dari berbagai karakter tersebut diacak secara random. Simulasi yang dilakukan pada studi numerik ini menggunakan 20.000 baris data.
Cara penulisan diambil dari 20 bentuk yang berbeda menggunakan dua cara teknik penulisan, yaitu stroke style merupakan penulisan huruf yang dilakukan dengan cara mengambil dari titik atas sampai titik bawah yang terdapat dalam 6 jenis cara penulisan yaitu simplex, duplex, triplex, complex,
dan ghotic. Kemudian 6 jenis huruf tersebut dimasukan ke dalam bentuk
tulisan seperti Block, Script, Italic, English, Italian dan German.
Setiap karakter huruf di proses pertama kali dengan merubah kedalam koordinat vektor, dan pengidentifikasian dilakukan pada garis paling bawah pada huruf. Segmen garis tersebut dirubah ukurannya menjadi koordinat (x,y) yang berbentuk persegi panjang dengan satuan pixel. Ukuran pixel akan menggambarkan titik-titik yang berwarna hitam dan putih. Posisi ”on”
pada satuan pixel yang berwarna hitam dan ”off” satuan pixel yang berwarna putih. Setiap huruf akan diidentifikasikan pada pixel on berwarna
hitam yang akan berbentuk huruf dan pixel tersebut berukuran persegi panjang dengan ukuran 45 x 45 pixel.
Nilai error minimum diproses dalam pengidentifikasian huruf dari 20.000 baris data yang akan di karakteristik oleh 16 variabel prediktornya kemudian akan diproses ke dalam klasifikasi 26 huruf alphabet yang menjadi variabel target. Data pengenalan huruf tidak memuat data yang tidak lengkap (missing value). Setiap huruf diklasifikasikan berdasarkan 17 variabel yang terdiri dari satu variabel target dan 16 variabel prediktor. Variabel prediktor ini merupakan sebuah bilangan integer yang berkisar antara 0 sampai 15. Variabel ini terdiri dari:
a. Variabel target: 26 huruf alphabet dari A sampai Z b. Variabel prediktor:
1. V1 merupakan posisi horizontal dihitung dari sebelah kiri gambar dan
huruf berada di tengah box
2. V2 merupakan posisi vertikal dihitung dari bagian bawah pada box.
3. V3 merupakan panjang box.
4. V4 merupakan tinggi box.
5. V5 merupakan jumlah pixel on pada huruf dalam box. 6. V6 merupakan rataan nilai x pada pixel berwarna hitam “on” 7. V7 merupakan rataan nilai y pada pixel berwarna hitam “on”
8. V8 merupakan variansi rataan nilai x pada pixel berwarna hitam “on”
10. V10 merupakan jumlah rataan x dan y pada pixel berwarna hitam“on”
11. V11 merupakan variansi rataan nilai x dikalikan dengan rataan y
pada pixel berwarna hitam “on”
12. V12 merupakan variansi rataan nilai y dikalikan dengan rataan x pada
pixel berwarna hitam “on”
13. V13 merupakan rataan posisi pixel ”on” dari kiri ke kanan.
14. V14 merupakan jumlah posisi vertikal pada rataan posisi pixel ”on” dari kiri ke kanan.
15. V15 merupakan rataan posisi pixel ”on” dari bawah ke atas.
16. V16 merupakan jumlah posisi horizontal pada rataan posisi pixel
”on” dari bawah ke atas.
Untuk lebih jelasnya pengidentifikasian huruf alphabet menggunakan 16 variabel prediktor akan dijelaskan dengan contoh berikut.
Gambar 4.1. Contoh sampel yang merepresentasikan huruf ‘A dan Pembagian region pada sample berikut nilai pixel aktifnya
Huruf A diprediksi berada dalam posisi horizontal yang dihitung dari sebelah kiri gambar dan huruf berada di tengah box pada titik koordinat 13 pixel, posisi vertikal dihitung dari bagian bawah pada box di titik koordinat 22 pixel, Sedangkan tinggi box berada pada titik koordinat 22 pixel. Jika