TINJAUAN PUSTAKA 2.1. Beban dan Prakiraan Beban Listrik
2.4. Propagasi Balik (Backpropagation)
Jaringan propagasi balik (backpropagation) merupakan salah satu algoritma yang sering digunakan dalam menyelesaikan persoalan atau masalah yang rumit. Hal ini dimungkinkan karena jaringan dengan algoritma ini dilatih (learned) dengan menggunakan metode belajar terbimbing. Pada jaringan diberikan sepasang pola yang terdiri atas pola masukan dan pola yang diinginkan. Ketika suatu pola diberikan kepada jaringan, bobot-bobot diubah untuk memperkecil perbedaan pola keluaran dan pola yang diinginkan. Latihan ini dilakukan secara berulang-ulang sehingga semua pola yang dikeluarkan jaringan dapat memenuhi pola yang diinginkan.
Algoritma pelatihan jaringan syaraf tiruan propagasi balik terdiri atas 2 langkah, yaitu perambatan/propagasi maju dan perambatan/propagasi mundur. Langkah perambatan maju dan perambatan mundur ini dilakukan pada jaringan untuk setiap pola yang diberikan selama jaringan mengalami pelatihan. Jaringan propagasi balik terdiri atas 3 atau lebih lapisan/layer. Perbedaannya hanya pada jumlah lapisan tersembunyi yang dimilikinya, ada yang 1 lapisan ada yang lebih dari 1 lapisan. Gambar 4 menunjukkan jaringan propagasi balik dengan 3 lapisan, bagian bawah gambar sebagai masukan, bagian tengah disebut sebagai lapisan tersembunyi dan bagian atas disebut lapisan keluaran. Ketiga lapisan ini terhubung secara penuh.
Perambatan maju dimulai dengan memberikan pola masukan ke lapisan masukan. Pola masukan ini merupakan nilai aktivasi unit-unit masukan. Dengan melakukan perambatan maju dihitung nilai aktivasi pada unit-unit di lapisan berikutnya. Pada setiap lapisan, tiap unit pengolah melakukan penjumlahan berbobot dan menerapkan fungsi sigmoid untuk menghitung keluarannya.
Untuk menghitung nilai penjumlahan berbobot digunakan rumus :
w
x
S
ji n i i j∑
= = 0 ... (2.1) Dengan :x
i = masukan yang berasal dari unit iw
ji = bobot sambungan dari unit i ke unit j.Setelah nilai Sj dihitung, fungsi sigmoid diterapkan pada Sj untuk membentuk f(Sj). Fungsi sigmoid ini mempunyai persamaan :
Sj j
e
S
f
−+
=
1
1
)
(
……….……...………. (2.2)Gambar 5. Langkah Perambatan Maju
Hasil perhitungan f(Sj) ini merupakan nilai aktivasi pada unit pengolah j. Nilai ini dikirimkan ke seluruh keluaran unit j. Setelah perambatan maju selesai dikerjakan maka jaringan siap melakukan perambatan mundur.
Pada perambatan mundur yang dilakukan adalah menghitung galat dan mengubah bobot-bobot pada semua interkoneksinya. Di sini galat dihitung pada
semua unit pengolah dan bobotpun diubah pada semua sambungan. Perhitungan dimulai dari lapisan keluar dan mundur sampai lapisan masukan. Hasil keluaran dari perambatan maju dibandingkan hasil keluaran yang diinginkan. Berdasarkan perbedaan ini kemudian dihitung galat untuk tiap-tiap lapisan pada jaringan. Pertama-tama dihitung galat untuk lapisan keluaran (Gambar 6.a), kemudian bobot-bobot setiap sambungan yang menuju lapisan keluaran disesuaikan. Setelah itu dihitung harga galat pada lapisan tersembunyi (Gambar 6.b) dan dihitung perubahan bobot yang menuju ke lapisan tersembunyi. Demikian proses dilakukan mundur sampai ke lapisan masukan secara iteratif.
Jika j adalah salah satu unit pada lapisan keluaran maka galat lapisan keluaran dapat dihitung dengan rumus :
δj = (tj – yj) f’(Sj) ... (2.3) Dengan :
tj = keluaran yang diinginkan dari unit j yj = keluaran dari unit j
f’(Sj) = turunan pertama dari fungsi sigmoid Sj = hasil penjumlahan berbobot.
Gambar 6. Fungsi Sigmoid Beserta Turunannya.
Jika j adalah suatu lapisan tersembunyi, maka galat lapisan tersembunyi dapat dihitung dengan menggunakan rumus :
[
k kj. '
]
(
j)
kj
= ∑δ w f S
∆wji = α.δj.xi ... (2.5) Dengan :
∆wji = perubahan bobot dari unit i ke unit j α = laju belajar (learning rate)
δj = galat lapisan tersembunyi xi = masukan yang berasal dari unit i
Variabel α menyatakan suatu konstanta belajar yang berharga antara 0.25-0.75. Nilai ini menunjukkan kecepatan belajar dari jaringan. Nilai yang terlalu tinggi dapat menyebabkan jaringan menjadi tidak stabil sedangkan nilai yang terlalu kecil dapat menjadikan waktu belajar yang lama. Oleh karena itu pemilihan nilai α harus seoptimal mungkin agar didapatkan proses belajar yang cepat.
Dalam hal cara memodifikasi bobot (weight), pada propagasi balik standar, 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 (Jong 2005). Jadi tidak hanya pola masukkan 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 serupa (berarti arah gradien sudah benar), maka perubahan bobot dilakukan secara cepat. Namun apabila data terakhir yang dimasukkan memiliki pola yang berbeda dengan sebelumnya, maka perubahan dilakukan secara lambat.
Algoritma selengkapnya pelatihan jaringan backpropagation adalah sebagai berikut (Fausett 1994):
Langkah 0 : Inisialisasi bobot-bobot (tetapkan dalam nilai acak kecil) Langkah 1 : Bila syarat berhenti adalah salah, kerjakan langkah 2 sampai 9. Langkah 2 : Untuk setiap pasangan pelatihan, kerjakan langkah 3 sampai 8.
Umpan maju :
Langkah 3 : Tiap unit masukan (xi, i = 1,....,n) menerima isyarat masukan xi dan diteruskan ke unit-unit tersembunyi.
Langkah 4 : Tiap unit tersembunyi (zj, j = 1,...,p) menjumlahkan isyarat masukan berbobot, ij n i i oj j v xv in z
∑
= + = 1 _ ... (2.6) dengan menerapkan fungsi aktivasi hitung :zj = f(z-inj) ... (2.7) dan kirim isyarat ini ke unit-unit keluaran.
Gambar 7. Backpropagation Dengan Satu Lapisan Tersembunyi
Langkah 5 : Tiap unit keluaran (yk, k = 1,....,m) menjumlahkan isyarat masukan berbobot, jk p j j ok k w z w in y
∑
= + = 1 _ ... (2.8) dengan menerapkan fungsi aktivasi hitung,yk = f(y_ink) ... (2.9)
Perambatan Balik Galat :
Langkah 6 : Tiap unit keluaran (yk, k = 1,...,m) menerima pola sasaran berkaitan dengan pola pelatihan masukannya.
Hitung galat informasi :
δk = (tk – yk) f’(y_ink) ... (2.10) Hitung koreksi bobot dan prasikapnya:
∆ wjk = α δk zj ... (2.11) ∆ w0k = α δk ... (2.12) Langkah 7 : Tiap unit tersembunyi (zj, j = 1,....,p) menjumlahkan delta
masukan-nya (dari unit-unit di lapisan atasmasukan-nya).
w
jk m k k j in∑
= = 1 _ δ δ ... (2.13) Hitung galat informasinya :δj = δ_inj f’(z_inj) ... (2.14) Hitung koreksi bobot dan prasikapnya :
∆vij = α δj xi ... (2.15)
Perbaharui bobot dan prasikapnya :
Langkah 8 : Tiap unit keluaran (yk, k=1,...,m) memperbaharui bobot-bobot dan prasikapnya (j=0,1, ....,p)
wjk(baru) = wjk(lama) + ∆wjk ... (2.16) Tiap unit tersembunyi (zj, j=1,...,p) memperbaharui bobot dan prasikapnya (i=0,1,…,n);
vij(baru) = vij(lama) + ∆vij ... (2.17) Langkah 9 : Uji syarat berhenti.
Prosedur pembaharuan bobot-bobot dapat dimodifikasi dengan menggunakan momentum. Dengan menambahkan momentum ke dalam rumus pembaharuan bobot, biasanya konvergensi akan lebih cepat dicapai. Dalam pembaharuan bobot menggunakan momentum, nilai bobot pada iterasi ke (t+1) ditentukan oleh nilai bobot pada iterasi ke t dan ke (t-1).
Rumus pembaharuan bobotnya adalah sebagai berikut :
⎣
( ) ( 1)⎦
) ( ) 1 (t+ =w t + z + w t −w t− wij jk αδk j µ jk jk atau, ) ( ) 1 (t z w t wij + = k j + ∆ ij ∆ αδ µ ... (2.18)dan,
⎣
( ) ( 1)⎦
) ( ) 1 (t+ =v t + x + v t −v t− vij jk αδj i µ jk jk atau, ) ( ) 1 (t x v t vij + = j i + ∆ ij ∆ αδ µ ... (2.19) Dengan : x1..xn : masukan y1..yn : keluaranz1..zn : nilai lapisan tersembunyi
vij : bobot antara lapisan masukan dan lapisan tersembunyi wjk : bobot antara lapisan tersembunyi dan lapisan keluaran δ : galat informasi
α : kecepatan atau laju belajar µ : momentum
Kecepatan konvergensi juga dapat ditingkatkan dengan memodifikasi laju belajar menjadi adaptive yang berubah selama proses pelatihan. Jika galat yang muncul lebih besar daripada galat sebelumnya maka nilai bobot-bobot, prasikap, keluaran, dan galat yang baru diabaikan, dan nilai laju belajar diturunkan. Jika galat yang muncul lebih kecil daripada galat sebelumnya, maka nilai bobot-bobot, prasikap, keluaran, dan galat yang baru disimpan, dan laju belajar ditingkatkan.