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.

D. Kesulitan-kesulitan

Kesulitan-kesulitan yang dialami selama proses penelitian ini adalah penentuan bobot dan prasikap awal dari jaringan yang seringkali menghasilkan pelatihan yang tidak konvergen dan terjebak pada minimum lokal. 50

IV. HASIL PE NE LITIAN DAN PE MBAHASAN

1. Masalah pengenalan gerbang AND Pasangan pola masukan adalah sebagai berikut : Masukan X1 X2 Targett1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 Tabel 4.1. Pola gerbang AND 2. Masalah pengenalan gerbang X OR Pasangan pola masukan adalah sebagai berikut: Masukan X1 X2 Targett1 -1 -1 -1 -1 1 1 1 -1 1 1 1 -1 Tabel 4.2. Pola gerbang XOR 3. Masalah pengenalan bilangan 1 sampai dengan 0. Pola bilangan dinyatakan dengan larik 7x5, dengan - dinyatakan dengan -1 dan dinyatakan dengan 1. Pasangan pola masukan adalah seperti pada tabel 4.3.