Metode Backpropagation LANDASAN TEORI

13 syaraf membutuhkan perambatan maju dan diikuti dengan perambatan mundur. Keduanya dilakukan untuk semua pola pelatihan. Gambar 2.5. Arsitektur algoritma backpropagation Keterangan X = lapisan masukan Z = lapisan tersembunyi Y = lapisan keluaran = bobot dari lapisan masukan ke lapisan tersembunyi = bobot dari lapisan tersembunyi ke lapisan keluaran

2.5.1 Fungsi Aktivasi pada Backpropagation

Dalam jaringan syaraf tiruan, fungsi aktivasi dipakai untuk menentukan keluaran suatu neuron. Pada Backpropagation, fungsi aktivasi yang dipakai harus memenuhi beberapa syarat sebagai berikut: 1. Kontinu 2. Terdiferensial dengan mudah 14 3. Merupakan fungsi yang tidak turun Salah satu fungsi yang memenuhi ketiga syarat tersebut adalah fungsi sigmoid biner yang memiliki range 0,1 [6]. Fungsi sigmoid biner didefinisikan sebagai berikut. x e x f y     1 1 2.1 Dengan turunan 2.2 Gambar 2.6 . Fungsi sigmoid biner Fungsi lain yang sering dipakai adalah fungsi sigmoid bipolar yang bentuk fungsinya mirip dengan fungsi sigmoid biner, tapi dengan range -1,1. 1 1 2    z e x f 2.3 15 Dengan turunan 2 1 1 x f x f x f     2.4 Gambar 2.7. Fungsi Sigmoid Bipolar Fungsi sigmoid memiliki nilai maksimum 1. Maka untuk pola yang targetnya 1, pola masukan dan keluaran harus terlebih dahulu ditransformasi sehingga semua polanya memiliki range yang sama seperti fungsi sigmoid yang dipakai. Alternatif lain adalah menggunakan fungsi aktivasi sigmoid hanya pada lapisan yang bukan lapisan keluaran. Pada lapisan keluaran, fungsi aktivasi yang dipakai adalah fungsi identitas : fx = x.

2.5.2 Pelatihan Standard Backpropagation

Adapun langkah-langkah pelatihan dalam jaringan syaraf tiruan backpropagation adalah sebagai berikut: 1. Definisikan pola masukan dan targetnya 2. Inisialisasi bobot awal dengan bilangan acak 16 3. Tentukan iterasi dan error yang diinginkan 4. Kerjakan langkah-langkah berikut selama Epoh Maksimum Epoh dan MSE Target Error Fase propagasi maju: a. Jumlahkan semua sinyal yang masuk ke lapisan unit Tiap-tiap unit masukan menerima sinyal dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada diatasnya lapisan tersembunyi. Tiap-tiap unit pada suatu lapisan tersembunyi menjumlahkan sinyal-sinyal masukan berbobot: ij n i i ij j v x b net z    _ 2.5 Dengan: = total sinyal masukan pada lapisan unit j = nilai masukan pada unit i = bobot antara masukan unit i dan lapisan unit j b_ij = bobot bias masukan unit i dan lapisan unit j Hitung keluaran semua lapisan unit j pada lapisan tersembunyi berdasarkan fungsi aktivasi: j net z j j e net z f z _ 1 1 _     2.6 Dengan: = keluaran pada lapisan unit j = total sinyal masukan pada lapisan unit j 17 b. Jumlahkan semua sinyal yang masuk ke keluaran unit k Tiap-tiap unit keluaran , k=1,2,3,..,m menjumlahkan sinyal-sinyal masukan berbobot. kj p j j k k w z w net y     1 _ 2.7 dengan: y_ = total sinyal masukan pada keluaran unit k = nilai masukan pada lapisan unit j = bobot antara lapisan unit j dan keluaran unit k Gunakan fungsi aktivasi untuk menghitung sinyal keluarannya dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya unit-unit keluaran. k net y k k e net y f y _ 1 _      2.8 Fase propagasi mundur: a. Hitung faktor kesalahan pada keluaran layer Tiap-tiap unit keluaran menerima target pola yang berhubungan dengan pola masukan. 1- 2.9 Dengan: = faktor kesalahan pada keluaran unit k = keluaran pada keluaran unit k Kemudian hitung koreksi bobot yang nantinya akan digunakan untuk memperbaiki nilai . 18 j k kj z w    2.10 b. Hitung penjumlahan kesalahannya Tiap-tiap unit tersembunyi menjumlahkan delta masukannya dari unit-unit yang berada pada lapisan diatasnya kj k m k net w j   1    2.11 Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error. 1 _ j j j j z Z z net     2.12 Kemudian hitung koreksi bobot yang nantinya akan digunakan untuk memperbaiki nilai . 2.13 Perubahan bobot a. Ubah bobot yang menuju keluaran lapisan kj kj kj w t w t w     1 2.14 b. Ubah bobot yang menuju lapisan tersembunyi ji kj ji v t v t v     1 2.15 5. Hitung MSE pada setiap epoh 2 1    poka n k k k n y t pola MSE 2.16 19 Dengan: = target pada keluaran unit k = keluaran pada keluaran unit k n = jumlah pola 20 Adapun flowchart untuk backpropagation adalah sebagai berikut: Inisialisasi jaringan Randomisasi bobot Hitung output pada masing-masing unit Hitung sigmoid ji w   x w       y e y    1 1  Hitung nilai error pada unit output 1 k k k k k o t o o     Hitung nilai error pada unit tersembunyi    k kh k k k w o o   1 Hitung ji j ij x w    Hitung ji ji ji w w w    Penentuan MSE Input Data End Gambar 2.8. Flowchart Backpropagation 21

2.6 Algoritma Pelatihan

Algoritma standard yang digunakan dalam pelatihan Jaringan Syaraf Tiruan Feed Forward Back Propagation, yaitu gradient conjugate dan gradient conjugate with momentum seringkali terlalu lambat untuk keperluan praktis. Oleh karena itu, pada penelitian ini akan digunakan Algoritma Gradient Conjugate With Adaptive Learning Rate and Momentum traingdx. Algoritma ini merupakan penggabungan dari Algoritma Gradient Conjugate with Adaptive Learningtraingda dan Gradient Conjugate With Momentumtraingdm. Pada standard backpropagation, perubahan bobot didasarkan atas gradien yang terjadi untuk pola yang dimasukkan saat itu. Modifikasi yang dapat dilakukan adalah melakukan perubahan bobot yang didasarkan atas arah gradien pola terakhir dan pola sebelumnya disebut momentum yang dimasukkan, jadi tidak hanya pola masukan terakhir saja yang diperhitungkan. Penambahan momentum dimaksudkan untuk menghindari perubahan bobot yang mencolok akibat adanya data yang sangat berbeda dengan yang lain outlier. Apabila beberapa data terakhir yang diberikan ke jaringan memiliki pola yang serupa berarti arah gradien sudah benar, maka perubahan bobot dilakukan secara cepat. Namun, apabila data terakhir yang dimasukkan memiliki pola yang berbeda dengan pola sebelumnya, maka perubahan dilakukan secara lambat [6]. Dengan Penambahan momentum, bobot baru pada waktu ke t+1 didasarkan atas bobot pada waktu t dan t-1. Disini harus ditambahkan dua variabel baru yang mencatat besarnya momentum untuk dua iterasi terakhir. Jika 22  adalah konstanta 0 ≤  ≤ 1 yang menyatakan parameter momentum maka bobot baru dihitung berdasarkan persamaan :   1 1       t w t w z t w t w kj kj j k kj kj   2.17 dan   1 1       t v t v x t v t v jij jij i j jij ji   2.18 Algoritma gradient descent dengan adaptive learning rate, dasarnya sama dengan algoritma gradient descent standard dengan beberapa perubahan. Pertama- tama dihitung terlebih dahulu nilai output jaringan dan error pelatihan. Pada setiap epoch, bobot-bobot baru dihitung dengan menggunakan learning rate yang ada. Kemudian dihitung kembali output jaringan dan error pelatihan. Jika perbandingan antara error pelatihan yang baru dengan error pelatihan lama melebihi maksimum kenaikan kinerja max_perf_inc, maka bobot-bobot baru tersebut akan diabaikan, sekaligus nilai learning rate akan dikurangi dengan cara mengalikannya dengan lr_dec. Sebaliknya, apabila perbandingan antara error pelatihan baru dengan error pelatihan lama kurang dari maksimum kenaikan kinerja, maka nilai bobot-bobot akan dipertahankan, sekaligus nilai learning rate akan dinaikkan dengan cara mengalikannya dengan lr_inc. Dengan cara ini, apabila learning rate terlalu tinggi dan mengarah ke ketidakstabilan, maka learning rate akan diturunkan. Sebaliknya jika learning rate terlalu kecil untuk menuju konvergensi, maka learning rate akan dinaikkan. Dengan demikian, maka algoritma pembelajaran akan tetap terjaga pada kondisi stabil.