Alat Penelitian Jalannya Penelitian
32
a. Perambatan Balik Standar Penelitian ini akan membandingkan unjuk kerja dari kedua algoritma tersebut.
Karena algoritma perambatan balik dengan conjugate gradient merupakan algoritma pelatihan dengan model batch, maka algoritma pelatihan perambatan balik standar
dibuat juga dengan model batch. Sehingga algoritma perambatan balik standar pada dasar teori yang dibuat dengan pelatihan per pola harus dimodifikasi terlebih dulu
sehingga sesuai dengan model batch. Pengetesan kondisi berhenti pada langkah 10 dilakukan dengan menghitung
rata-rata galat. Galat tiap pasangan pelatihan Fausset,1994 dihitung dengan rumus :
[ ]
∑
− =
k k
k
y t
E
2
5 .
3.1 Bila dinyatakan sebagai fungsi galat, menjadi :
[ ]
∑
− =
k k
k
w y
t w
F
2
5 .
3.2 Maka galat untuk keseluruhan pola dihitung dengan rata-rata galat sebagai berikut :
[ ]
∑∑
− =
n k
n k
k
y t
N E
2
5 .
3.4 dengan N adalah jumlah pola pelatihan. Fungsi galatnya :
[ ]
∑∑
− =
n k
n k
k
w y
t N
w F
2
5 .
3.5
b. Perambatan Balik dengan Conjugate Gradient Langkah berikutnya adalah pembuatan pseudo-code dari algoritma pelatihan
perambatan balik dengan conjugate gradient. Algoritma ini merupakan kombinasi dari 2 algoritma yaitu algoritma pelatihan perambatan balik standar dengan algoritma
33
conjugate gradient . Kedua algoritma tersebut digabung dan disusun kembali sehingga
menjadi algoritma pelatihan yang baru yang disebut dengan algoritma pelatihan perambatan balik dengan conjugate gradient.
Menurut Hagan, Demuth dan Beale 1999, karena permasalahan-permasalahan dalam jaringan syaraf biasanya mempunyai fungsi galat atau indeks unjuk kerja yang
tidak kuadratis maka algoritma conjugate gradient seperti pada dasar teori tidak dapat diaplikasikan secara langsung. Algoritma tersebut harus disesuaikan sehingga dapat
digunakan untuk memecahkan masalah yang tidak linear dengan permukaan yang tidak kuadratis.
Fungsi galat pada persamaan 3.5 tampak seperti persamaan kuadratis tetapi karena y
k
w pada penelitian menggunakan fungsi aktivasi sigmoid bipolar maka fungsi galat menjadi tidak kuadratis.
Selain itu algoritma conjugate gradient untuk pemecahan masalah tidak kuadratis membutuhkan metode pencarian linear linear search yang umum untuk mencari letak
minimum dari fungsi pada suatu arah tertentu. Pencarian ini terdiri dari 2 langkah yaitu lokasi selang interval location dan pengurangan selang interval reduction. Tujuan
dari langkah lokasi selang adalah menemukan selang awal yang mengandung minimum
lokal. Kemudian langkah
pengurangan selang
akan mengurangimemperkecil ukuran selang awal tersebut sampai dengan toleransi
ketelitian yang diinginkan. Prosedur dari langkah lokasi selang ditunjukkan pada gambar 3.1. Dimulai
dengan mengevaluasi fungsi galat pada titik awal, yang dilambangkan dengan a
1
pada gambar 3.1. Titik ini merupakan nilai bobot dan prasikap jaringan saat itu. Dengan
kata lain, yang dihitung adalah :
w F
34
Langkah selanjutnya adalah mengevaluasi galat pada titik kedua, dalam gambar 3.1. dilambangkan dengan b
1
, yang berjarak
ε
dari titik awal, sepanjang arah pencarian pertama p
. Dengan kata lain, dievaluasi nilai :
p x
F ε
+
Kemudian dilanjutkan dengan mengevalusai fungsi galat pada titik baru b
i
, yang secara berurutan mempunyai jarak titik dua kali lipat dari sebelumnya. Proses
ini berhenti saat fungsi galat meningkat antara dua evaluasi yang berturutan. Pada gambar 3.1. dilambangan dengan b
3
ke b
4
. Pada titik ini , diketahui bahwa titik minimum berada antara titik a
5
dan b
5
. Sehingga tidak diperlukan lagi untuk memperlebar selang , karena titik minimum kemungkinan berada pada selang [a
4
,b
4
] atau selang [a
3
,b
3
]. Kedua kemungkinan ini ditunjukkan pada gambar 3.2.a.
Gambar 3.1. Lokasi Selang
Setelah diperoleh selang yang mengandung titik minimum, langkah selanjutnya pada pencarian linear adalah pengurangan selang. Pada langkah ini, fungsi
pada titik-titik internal selang [a
5
,b
5
] yang merupakan hasil dari langkah lokasi selang akan dievaluasi.
a
1
b
1
a
2
b
2
a
3
b
3
a
4
b
4
b
5
a
5
ε 2
ε 4
ε 8
ε
x Fx
35
a. b.
Gambar 3.2.Selang tidak dikurangi
Gambar 3.2.b. memperlihatkan bahwa paling tidak fungsi harus dievaluasi pada dua titik dalam untuk mengurangimemperkecil ukuran ketidakpastian selang.
Gambar 3.2.a memperlihatkan bahwa evaluasi fungsi pada sebuah titik internal tidak dapat menentukan lokasi titik minimum. Walau demikian, jika fungsi dievaluasi pada
dua titik c dan d seperti dalam gambar 3.2.b., selang ketidakpastian dapat dikurangi. Jika F c Fd, seperti gambar 3.2.b. , maka titik minimum pasti berada pada
selang[c,b]. Sebaliknya, jika F c Fd, maka titik minimum pasti berada pada selang [a,d]. Di sini diasumsikan bahwa terdapat sebuah minimum saja yang terletak pada
selang awal. Selanjutnya adalah menentukan lokasi dari titik internal c dan d.
Penelitian ini akan menggunakan metode Golden Section Search, yang dirancang untuk mengurangi banyaknya fungsi yang dievaluasi. Pada tiap iterasi, dibutuhkan satu
evaluasi fungsi baru. Pada kasus pada gambar 3.2.b., titik a akan dibuang dan titik c akan menjadi titik luar. Kemudian titik c baru diletakkan antara titik c lama dan titik d.
Golden section search akan meletakkan titik baru sehingga selang dari ketidakpastian
akan berkurang secepat mungkin.
F
x
x a
b c
F
x
x a
c b
d
36
Algoritma Golden Section Search :
τ =0,618
Tentukan :
1 1
1 1
1 1
1 1
1 1
, 1
, 1
d F
F a
b b
d c
F F
a b
a c
d c
= −
− −
= =
− −
+ =
τ τ
Untuk k=1,2,….kerjakan : Jika F
c
F
d
, kerjakan : Tentukan :
1 1
1 1
1 1
1 1
; 1
; ;
+ +
+ +
+ +
+ +
= =
− −
+ =
= =
=
k c
c d
k k
k k
k k
k k
k k
c F
F F
F a
b a
c c
d d
b a
a τ
jika tidak, kerjakan : Tentukan :
1 1
1 1
1 1
1 1
; 1
; ;
+ +
+ +
+ +
+ +
= =
− −
+ =
= =
=
k d
d c
k k
k k
k k
k k
k k
d F
F F
F a
b b
d d
c b
b c
a τ
selesai selesai
sampai
tol a
b
k k
−
+ +
1 1
, dengan
tol adalah
toleransi ketelitian yang dikehendaki.
Satu hal lagi yang perlu dimodifikasi pada algoritma conjugate gradient agar dapat diaplikasikan ke pelatihan jaringan syaraf. Untuk fungsi kuadratis, algoritma
akan konvergen ke titik minimum pada jumlah iterasi tidak lebih dari n iterasi, dengan n
adalah jumlah parameter yang dioptimasi Hagan, Demuth, Beale, 1999. Tetapi pada kenyataannya fungsi galat untuk jaringan lapis jamak bukan merupakan fungsi
kuadratis, sehingga algoritma tidak konvergen secara normal dalam n iterasi.
37
Pengembangan algoritma conjugate gradient tidak menunjukkan arah pencarian mana yang digunakan setelah satu siklus n iterasi lengkap. Metode paling sederhana yang
digunakan pada penelitian ini adalah me-reset arah pencarian ke arah pencarian dari penurunan tercuram negatif dari gradien setelah n iterasi Scales, 1985.
Berdasarkan modifikasi-modifikasi di atas, disusun algoritma perambatan balik dengan conjugate gradient sebagai berikut :
Langkah 0 Berikan bobot awal dengan nilai acak yang kecil
Langkah 1 Selama kondisi berhenti belum memenuhi, kerjakan langkah
2-13. Langkah 2
Untuk tiap pasangan pola pelatihan, lakukan langkah 3-7. Lakukan untuk seluruh polapola ke-1,…., pola ke-N
dengan N adalah jumlah keseluruhan pola. Tahap Maju
Langkah 3 Tiap unit masukan X
i
, i=1,….,n menerima sinyal input x
i
dan mengirimkan sinyal tersebut ke semua unit pada lapisan berikutnya unit tersembunyi.
Langkah 4 Tiap unit tersembunyi Z
j
, j=1,..,p menjumlah sinyal input terbobot :
∑
=
+ =
n i
ij i
j j
v x
v in
z
1
_
Kemudian aplikasikan fungsi aktivasinya untuk menghitung sinyal keluaran :
j j
in z
f z
_ =
Dan mengirimkan sinyal ini ke semua unit pada lapisan di atasnya unit keluaran.
Langkah 5 Tiap unit keluaran Y
k
, k=1,…,m menjumlahkan sinyal
38
masukan terbobot :
∑
=
+ =
p j
jk j
k k
w z
w in
y
1
_
Dan aplikasikan fungsi aktivasinya untuk menghitung sinyal output :
k k
in y
f y
_ =
Tahap Perambatan balik dari galat Langkah 6
Tiap unit keluaran Y
k
, k=1,…,m menerima pola target yang sesuai dengan pola masukan pelatihan, hitung
informasi galat :
k k
k k
in y
f y
t _
− =
δ
Hitung gradien
pada lapisan output k=1,…,m
dan j=0,…,p:
j k
jk
z G
δ −
= 2
Kirimkan δ
k
ke unit pada lapisan sebelumnya. Langkah 7
Tiap unit tersembunyi Z
j
, j=1,….,p menjumlahkan delta masukannya dari unit pada lapisan berikutnya,
∑
=
=
m k
jk k
j
w in
1
_ δ
δ
Kalikan dengan turunan dari fungsi aktivasinya untuk menghitung informasi galat :
_ _
j j
j
in z
f in
δ δ =
Hitung gradien pada lapisan tersembunyi j=1,…,p dan i=0,…,n:
i j
ij
x G
δ −
= 1
Langkah 8 Tiap unit keluaran Y
k
, k=1,…,m menghitung rata-rata
39
gradien j=0,…,p:
N polaN
G pola
G rata
rata G
jk jk
jk
2 ....
1 2
2 +
+ =
−
Tiap unit tersembunyi Z
j
, j=1,…,p menghitung rata-rata gradien i=0,…,n:
N polaN
G pola
G rata
rata G
ij ij
ij
2 ....
1 1
1 +
+ =
−
dengan N adalah jumlah pola pelatihan. Penyesuaian Bobot dan Prasikap Conjugate Gradient
Langkah 9 Tentukan q=1
Langkah 10 Hitung arah pencarian lapis tersembunyi :
rata rata
G p
ij ij
− −
= 1
1
Hitung arah pencarian lapis keluaran :
rata rata
G p
jk jk
− −
= 2
2
Langkah 11 Hitung
α
1
pada lapis tersembunyi dan α
2
pada lapis keluaran dengan metode Golden Search dengan fungsi yang
diminimalkan adalah fungsi galat :
∑∑
− =
n k
k k
w y
t N
w f
2
2 1
Langkah 12 Tiap unit keluaran Y
k
, k=1,…,m menyesuaikan prasikap dan bobotnya j=0,…,p :
2 2
jk jk
jk
p lama
w baru
w α
+ =
Tiap unit tersembunyi Z
j
, j=1,…,p
menyesuaikan prasikap dan bobotnya i=0,…,n :
1 1
ij ij
ij
p lama
v baru
v α
+ =
Langkah 13 Pengetesan kondisi berhenti.
40
Jika galattoleransi, perhitungan berhenti. Jika galat =toleransi, ke langkah 14
Langkah 14 Tentukan :
baru v
v baru
w w
ij ij
jk jk
= =
Langkah 15 Pengetesan kondisi reset.
Jika q+1jumlah parameter bobot dan biasn+1p+p+1m , maka lanjutkan ke langkah 1.
Jika q+1=jumlah parameter
bobot dan bias,
maka lanjutkan ke langkah:
a. Tentukan q=q+1
b. Lakukan langkah 2 sampai dengan langkah 8 untuk
menghitung gradien. c.
Hitung arah pencarian baru :
jk jk
jk ij
ij ij
p G
baru p
p G
baru p
2 2
2 2
1 1
1 1
β β
+ −
= +
− =
Dengan β
1
dan β
2
menggunakan metode dari Polak dan Ribiere seperti persamaan 2.34 :
2 2
2 2
2 2
1 1
1 1
1 1
lama G
lama G
G lama
G G
lama G
lama G
G lama
G G
jk kj
jk kj
kj ij
ji ij
ji ji
− =
− =
β β
d. Lanjutkan ke langkah 11
Tahap selanjutnya adalah pembuatan program yang meliputi langkah-langkah sebagai berikut penulisan program coding. Program ditulis berdasarkan pseudo-
code algoritma yang telah dibuat. Program dilengkapi dengan dokumentasi yang
41
memudahkan untuk pengecekan kesalahan dan memudahkan untuk memodifikasi program di waktu yang lain. Flow chart diagram alir program adalah sebagi berikut :
Gambar 3.3. Diagram Alir Program Pelatihan Jaringan Perambatan Balik Standar
Begin I nput Data:
n unit masukan p unit tersembunyi
m unit output nPattern jumlah pola
I nPatternpola input Tt arPat t ernpola t arget
w1bobot dan prasikap lapisan tersembunyi
w2bobot dan prasikap lapisan keluaran
WeightUpdate
CheckError
End w1bobot dan bias
lapisan tersembunyi terlatih
w2bobot dan bias lapisan keluaran
terlatih CorrectionTermAvg
I nit: w1TermAvg[ n] [ p] = 0
w2TermAvg[ p] [ m] = 0
Yes No
42
s= 1
s=nPattern
BackPErrorDelt aWeight t j = 1
j=p
s= s+ 1 j = j + 1
i= 0
i=n
i= i+ 1 w 1TermAvg[ i] [ j ] =
w 1TermAvg[ i] [ j ] + w 1Ter m Avg[ i] [ j ]
k= 1
k=m
k= k+ 1 j = 0
j=p
j = j + 1 w 2Term Avg[ j ] [ k] =
w 2Term Avg[ j ] [ k] + w 2Ter m Avg[ j ] [ k]
iPat t ern= s BackPError
DeltaWeight
1 1
begin Correct ion
T e r m Av g
Net I nput Hidden Out put BipolarSigmoidHidden
Net I nput Out put Out put BipolarSigmoidOut put
ErrorTermOut put BipolarSigmoid ErrorTermHiddenBipolarSigmoid
FError
A Yes
No Yes
No
Yes
Yes No
No No
Yes
43
end Correct ion
T e r m Av g
A
j = 1
j=p
j = j + 1 i= 0
i=n
i= i+ 1 w 1TermAvg[ i] [ j ] =
w 1TermAvg[ i] [ j ] nPat t ern
k= 1
k=m
k= k+ 1 j = 0
j=p
j = j + 1 w 2Term Avg[ j ] [ k] =
w 2Term Avg[ j ] [ k] nPat t ern
Yes No
No Yes
Yes No
Yes No
44
Gambar 3.4. Diagram Alir Program Pengujian Jaringan Perambatan Balik Standar
begin Testing
I nPatternpola masukan TarPatternpola target
w1bobot dan bias lapisan tersembunyi
terlatih w2bobot dan bias
lapisan keluaran terlatih
i= 1
i = nPattern
i= i+ 1 iPattern= i
BackPError PrintPatterni
end Testing No
Yes
45
Gambar 3.5. Diagram Alir Program Pelatihan Jaringan Perambatan Balik dengan Conjugate Gradient
Begin I nput Dat a:
n unit masukan p unit tersembunyi
m unit output nPat t ern j umlah pola
I nPatternpola input TtarPatternpola target
w1bobot dan prasikap lapisan tersembunyi
w2bobot dan prasikap lapisan keluaran
Gradient Avg CheckError
End
I nit fError= 0
G1Avg[ ] [ ] = 0 G2Avg[ ] [ ] = 0
BackupOld G1AvgOld[ ] [ ] = G1Avg[ ] [ ]
G2AvgOld[ ] [ ] = G2Avg[ ] [ ]
q= 1 SearchDirectionSteepestDescent
GoldenSectionSearch WeightUpdate
1 1
Yes No
BackUpOld I nit
Gradient Avg
q+ 1 n+ 1 p+ p+ 1 m
q= 1 SearchDirectionSteepestDescent
q+ + SearchDirectionPolakRibiere
GoldenSectionSearch WeightUpdate
Yes No
46
s= 1
s=nPattern
BackPErrorGradient j = 1
j=p
s= s+ 1 j= j+ 1
i= 0
i=n
i= i+ 1 G1Avg[ i] [ j] =
G1Avg[ i] [ j] + G1Avg[ i] [ j]
k= 1
k=m
k= k+ 1 j = 0
j=p
j= j+ 1 G2Avg[ j] [ k] =
G2Avg[ j] [ k] + G2Avg[ j] [ k]
iPattern= s BackPError
Gradient
1 1
Gradient Avg
NetI nputHidden OutputBipolarSigmoidHidden
NetI nputOutput OutputBipolarSigmoidOutput
ErrorTermOutputBipolarSigmoid ErrorTermHiddenBipolarSigmoid
FError
A Yes
No Yes
No
Yes
Yes N o
N o
47
end Gradient
A v g
A
j = 1
j=p
j = j + 1 i= 0
i=n
i= i+ 1 G1Avg[ i] [ j ] =
G1Avg[ i] [ j ] nPat t ern
k= 1
k=m
k= k+ 1 j = 0
j=p
j = j + 1 G2Avg[ j ] [ k] =
G2Avg[ j ] [ k] nPat t ern
Yes No
No Yes
Yes No
Yes No
48
Gambar 3.6. Diagram Alir Program Pengujian Jaringan Perambatan Balik Conjugate Gradient
begin Testing I nPatternpola masukan
TarPatternpola target w1bobot dan bias
lapisan tersembunyi terlatih
w2bobot dan bias lapisan keluaran terlatih
i= 1
i = nPattern
i= i+ 1 iPattern= i
BackPError PrintPatterni
end Testing No
Yes
49
2. Pencarian Masalah Setelah kedua program selesai dibuat, tahap selanjutnya adalah pencarian
masalah. Masalah yang akan digunakan untuk menganalisa kedua algoritma adalah masalah pengenalan gerbang AND, masalah pengenalan gerbang XOR dan masalah
pengenalan pola bilangan 1 sampai dengan 0.
3. Aplikasi program Setelah diperoleh masalah-masalah yang akan diteliti, tahap selanjutnya adalah
mengaplikasikan kedua program pada masing-masing masalah.
4. Analisa Hasil dari aplikasi program digunakan untuk menganalisa unjuk kerja dari
masing-masing algoritma. Unjuk kerja yang dibahas adalah mengenai banyaknya iterasi dan waktu yang dibutuhkan.