BAB II Landasan Teori
2.1. Jaringan Syaraf Tiruan
2.1.5. Mempercepat Pelatihan Backpropagation
Menurut Siang (2009) Metode standar backpropagation seringkali terlalu lambat untuk keperluan praktis. Beberapa modifikasi dilakukan terhadap standar
backpropagation dengan cara mengganti fungsi pelatihannya.
Secara umum, modifikasi dapat dikelompokkan dalam dua kategori. Kategori pertama adalah metode yang menggunakan teknik heuristik yang dikembangkan dari metode penurunan tercepat yang dipakai dalam standar
backpropagation. Kategori kedua adalah menggunakan metode optimisasi numerik
selain penurunan tercepat. Beberapa metode yang dipakai sebagai modifikasi adalah metode conjugate gradien, quasi Newton, dan lain-lain. Dalam sub bab berikut ini dibicarakan dahulu tentang beberapa modifikasi yang masuk dalam kategori pertama (backpropagation dengan momentum, variabel laju pemahaman,
dan backpropagation resilient). Berikutnya barulah dibahas tentang beberapa metode yang masuk dalam kategori kedua.
Beberapa metode yang dipakai untuk mempercepat pelatihan
backpropagation sebagai berikut :
a. Metode Penurunan Gradien dengan Momentum (traingdm)
Modifikasi metode penurunan tercepat dilakukan dengan menambahkan momentum. Dengan momentum, perubahan bobot tidak hanya didasarkan atas error yang terjadi pada epoch pada waktu itu. Perubahan bobot saat ini dilakukan dengan memperhitungkan juga perubahan bobot pada epoch sebelumnya. Dengan demikian kemungkinan terperangkap ke titik minimum lokal dapat dihindari.
Menurut Hagan dan Demuth (1996) Sebelum mengimplementasikan ke dalam sebuah aplikasi jaringan syaraf, akan dibuktikan dalam sebuah ilustrasi efek penghalusan dengan mempertimbangkan :
= − + − (2.15)
Dimana adalah input ke filter, adalah output dari filter dan adalah koefisien momentum yang harus memenuhi
< (2.16)
Efek dari filter ditunjukan dengan gambar 2.5. Contoh ini input diambil dari gelombang sinus :
= + sin �6 (2.17)
Dan koefisien momentum ditetapkan untuk = . (a) dan = . (b). Dari gambar tersebut dapat dilihat osilasi dari output filter kurang dari osilasi dalam filter input. Selain itu, sebagai meningkat osilasi dalam output filter berkurang. Sangat penting juga memperhatikan bahwa output filter rata-rata sama dengan rata-rata menyaring masukan, meskipun sebagai meningkat filter output lebih lambat untuk merespon
Gambar 2.5. Pengaruh Perubahan Momentum (Hagan & Demuth, 1996) Untuk meringkas, filter cenderung mengurangi jumlah perubahan,
sementara masih mengikuti nilai rata-rata. Untuk cara implementasi dalam jaringan sayaraf tiruan, pertama menggunakan parameter sebagai berikut :
∆ = − − �, (2.18)
∆ = − . (2.19)
Ketika filter momentum ditambahkan untuk mengganti parameter, sehingga mendapatkan persamaan perubahan backpropagation :
∆ = ∆ − − − − �, (2.20)
∆ = ∆ − − − . (2.21)
Apabila menggunakan persamaan modifikasi ini maka akan memperoleh hasilnya seperti gambar 2.6.
Gambar 2.6. Lintasan dengan momentum (Hagan & Demuth, 1996) Dari gambar 2.6. cenderung untuk membuat lintasan terus ke arah yang sama. Semakin besar , semakin cepat t lintasannya.
b. Variabel Laju Pemahaman (traingda, traingdx)
Dalam standar backpropagation, laju pemahaman berupa suatu konstanta yang nilainya tetap selama iterasi. Akibatnya, unjuk kerja algoritma sangat dipengaruhi oleh besarnya laju pemahaman yang dipakai. Secara praktis, sulit untuk menentukan besarnya laju pemahaman yang paling optimal sebelum pelatihan dilakukan. Laju pemahaman yang terlalu besar maupun terlalu kecil akan menyebabkan pelatihan menjadi lambat.
Pelatihan akan lebih cepat apabila laju pemahaman dapat diubah ubah besarnya selama proses pelatihan. Jika error sekarang lebih besar dibandingkan error sebelumnya, maka laju pemahaman diturunkan. Jika sebaliknya, maka laju pemahaman diperbesar. Dengan demikian laju pemahaman dapat dibuat sebesar besarnya dengan tetap mempertahankan kestabilan proses.
Menurut Hagan dan Demuth (1996) Menggunakan iterasi dibawah ini merupakan proses dari metode steepest descent :
+ = − (2.22)
Dimana adalah gradien evaluasi lama :
= ∇� | = (2.23)
Ada dua metode umum untuk menentukan determinan dari learning rate, ∝ . Satu pendekatan untuk meminimalkan kinerja indeks � dengan sehubungan untuk ∝ pada setiap iterasi. Dalam pilihan meminimalkan setiap baris.
−∝
Metode lainnya dalam menyeleksi ∝ adalah guna untuk menetapkan nilai (∝ = . , atau menggunakan variabel, tetapi nilai yang telah ditentukan
∝ = .
Dalam perhitungan algoritma steepest descent untuk fungsi berikut :
� = + ,
Memulai dengan menginisialisasi
= [ .. ] Langkah pertama mencari gradient
∇� = [
�
� �
�
� � ] = [ ] (2.24)
Apabila mengevaluasi gradient yang telah ditemukan maka akan menemukan
Menganggap learning rate bernilai ∝= . . iterasi pertama dari algoritma steepest descent akan menjadi :
= −∝ = [ .. ] − . [ ] = [ .. ] Iterasi kedua dari steepest descent :
= − ∝ = [ .. ] − . [ . . ] = [ .. ] Jika iterasi dilanjutkan maka akan menjadi ilustrasi dibawah ini :
Gambar 2.7. Perubahan bobot learning rate=0.01 (Hagan & Demuth, 1996) c. Resilient Backpropagation (trainrp)
Jaringan backpropagation umumnya menggunakan fungsi aktivasi sigmoid. Fungsi sigmoid akan menerima masukan dari range tak berhingga menjadi keluaran pada range [0,1]. Semakin jauh titik dari x = 0, semakin kecil gradiennya. Pada titik yang cukup jauh dari x = 0, gradiennya mendekati 0. hal ini menimbulkan masalah pada waktu menggunakan metode penurunan tercepat (yang iterasinya didasarkan atas gradien). Gradien yang kecil menyebabkan perubahan bobot juga kecil, meskipun masih jauh dari titik optimal .
Masalah ini diatasi dalam resilient backpropagation dengan cara membagi arah dan perubahan bobot menjadi dua bagian yang berbeda. Ketika menggunakan penurunan tercepat, yang diambil hanya arahnya saja. Besarnya perubahan bobot dilakukan dengan cara lain (Siang, 2009).
Menurut Riedmiller dan Braun (1996) Untuk mencapai hal ini, setiap bobot akan selalu diperbarui nilainya ∆ yang akan menentukan nilai bobot terbaru. Pembaharuan nilai bobot ini selama proses pembelajaran dalam fungsi error E. berikut learning-rule yang digunakan :
∆ = { �+∗ ∆ − , ��� − ∗ ��� > �−∗ ∆ − , ��� − ∗ ��� < ∆ − , < �− < < �+ } (2.25)
Setiap waktu bobot selalu berubah, yang menunjukan bahwa perubahan terakhir terlalu besar , perubahan nilai ∆ dari faktor nilai �−.
Selama perubahan nilai setiap bobot mengikuti aturan : jika turunan adalah positif, nilai bobot akan turun, jika turunan adalah negative maka
perubahan nilai akan ditambahkan :
= { −∆ , ��� > +∆ , ��� < , } (2.26) + = + ∆ (2.27)
Namun, ada satu pengecualian: Jika turunan parsial perubahan tanda, yaitu langkah sebelumnya terlalu besar dan minimum, pembaharuan bobot sebelumnya adalah dikembalikan:
∆ = −∆ − , ��� − ∗ ��� (2.28) Nilai dan bobot berubah setiap waktu seluruh pola yang ditetapkan telah dimasukan ke dalam jaringan.
d. Algoritma Gradien Conjugate (traincgf, traincgp, traincgb)
Dalam standar backpropagation, bobot dimodifikasi pada arah penurunan tercepat. Meskipun penurunan fungsi berjalan cepat, tapi tidak menjamin akan konvergen dengan cepat. Dalam algoritma gradien konjugate, pencarian dilakukan sepanjang arah conjugate. Dalam banyak kasus, pencarian ini lebih cepat. Ada berbagai metode pencarian yang dilakukan berdasarkan prinsip gradien conjugate, antara lain Fletcher-Reeves (‘traincgf’),
Polak-Ribiere (‘traincgp’), Powel Beale (‘traincgb’).
Menurut Hagan dan Demuth (1996) Satu set vector saling conjugate sehubungan dengan pasti positif matriks Hessian jika dan hanya jika
���� = , ≠ (2.29)
Apabila tanpa matriks Hessian maka perlu fungsi kuadrat :
∇� = � + (2.30)
∇ � = � (2.31)
Dengan menggabungkan persamaan ini dapat menemukan bahwa perubahan gradien terdapat perulangan + adalah
∆ = + − = � + + − � + = �∆ (2.32) Dimana dari rumus
∆ = + − = � (2.33)
Dan adalah dipilih untuk meminimalkan � dalam arah � . Lalu didaptkan sebuah kondisi konjugasi :
���� = ∆ ��� = ∆ �� = , ≠ (2.34)
Dengan memperhatikan bahwa tidak lagi perlu mengetahui matriks Hessian. Kami telah disajikan kembali kondisi conjugacy dalam hal perubahan gradien di berturut-turut iterasi dari algoritma. Petunjuk pencarian akan konjugat jika vektor ortogonal dengan perubahan gradien.
Semua algoritma conjugate gradient memulai dengan mencari di arah keturunan curam (negatif dari gradien) pada iterasi pertama.
� = − (2.35)
Perihal lain dari algoritma conjugate gradient dari beberapa usulan arah pencarian pada setiap iterasi ditentukan oleh :
� = − + � − (2.36)
Berbagai versi dari algoritma conjugate gradient dibedakan oleh cara di mana βk konstan dihitung. Untuk Fletcher-Reeves memperbarui prosedur ini :
= ����
−
� � − (2.37)
Ini adalah rasio norma kuadrat dari gradien saat ini untuk norma kuadrat dari gradien sebelumnya.
Untuk rumus Polak-Ribiere yang konstan dihitung dengan : = ∆��− �
��− � − (2.38)
Untuk semua algoritma conjugate gradient, arah pencarian secara berkala ulang ke negatif dari gradien. Titik ulang standar terjadi ketika jumlah iterasi adalah sama dengan jumlah parameter jaringan (bobot dan bias), tetapi ada metode ulang lain yang dapat meningkatkan efisiensi pelatihan. Teknik ini restart jika ada sangat sedikit orthogonality meninggalkan antara gradien saat ini dan gradien sebelumnya. Ini diuji dengan ketidaksetaraan berikut:
Jika kondisi ini dipenuhi, arah pencarian ulang ke negatif dari gradien. Dengan contoh perhitungan sebagai ilustrasi dengan meminimalkan linear dengan rumus
� � = �� [ ] � Dengan inisialisasi input :
= [ . �− . �] dengan fungsi gradient
∇� = [ � + �� + � ]
Dengan steepest descent, perintah pencarian pertama adalah nilai negative dari gradient :
� = − = −∇ � �| = = [− .− . ]
Learning rate untuk iterasi pertama akan menjadi :
∝ = [ . . ] [− .− . ]
[− . − . ] [ ] [− .− . ]= . Langkah pertama dari conjugate gradient antara lain :
= + ∝ � = [ .− . ] + . [− .− . ] = [− . ].
Langkah diatas sama dengan untuk langkah pertama steepest descent dengan meminimalkan sebuah baris.
Sekarang unutk mencari pencarian kedua dibutuhkan gradient pada : = ∇ � | = = [ ] [ .− . ] = [− . ].
Jadi dapat mencari nilai :
= �� = [ . − . ][ .− . ] [ . . ][ .. ] =
.
. = .
Penggunaan metode dari Fletcher and Reeves. Perintah pencarian kedua ketika dari :
� = − + � = [− .. ] + . [− .− . ] = [− .. ] Learning rate untuk iterasi kedua akan menjadi :
∝ = − [ . − . ] [− .. ]
[− . . ] [ ] [− .. ]= .
. = . Langkah kedua dari conjugate gradient antara lain :
= +∝ � = [ .− . ] + . [− .. ] = [ ]
Sehingga iterasi sudah dihentikan karena nilai minimum sudah didapatkan dalam dua iterasi.