4. Faktor Eksternal
2.3 Jaringan syaraf tiruan
2.3.3 Metode propagasi balik
Kelemahan jaringan syaraf tiruan dengan lapisan tunggal memiliki keterbatasan dalam pengenalan pola. Kelemahan ini bisa ditanggulangi dengan menambahkan satu atau beberapa lapisan tersembunyi diantara lapisan masukan dan keluaran.
Salah satu metode jaringan syaraf tiruan adalah propagasi balik (backpropagation). Metode ini melatih jaringan untuk mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa (tapi tidak sama) dengan pola yang dipakai selama pelatihan (Siang 2005).
Metode propagasi balik merupakan metode yang sangat baik dalam menangani masalah pengenalan pola – pola kompleks. Metode ini merupakan metode jaringan syaraf tiruan yang populer. Beberapa contoh aplikasi yang melibatkan metode ini adalah kompresi data, pendeteksian virus komputer, pengidentifikasian objek, sintesis suara dari teks, peramalan, dan lain – lain.
Propagasi balik memiliki beberapa unit yang ada dalam satu atau lebih lapisan tersembunyi. Pada Gambar 8 ditunjukan arsitektur propagasi balik dengan n buah masukan (ditambah sebuah bias), sebuah lapisan tersembunyi yang terdiri dari p unit (ditambah sebuah bias), serta m buah unit keluaran. Di mana vij
merupakan bobot garis dari unit masukan xi ke unit lapisan tersembunyi zj (vj0
merupakan bobot garis yang menghubungkan bias di unit masukan ke unit lapisan tersembunyi zj), wkj merupakan bobot dari unit lapisan tersembunyi zj ke unit keluaran yk (wk0 merupakan bobot dari bias di lapisan tersembunyi ke unit keluaran zk).
Gambar 8 Arsitektur propagasi balik
Fungsi aktivasi yang digunakan dalam propagasi balik harus memenuhi beberapa syarat yaitu : kontinu, terdiferensial dengan mudah dan merupakan fungsi yang tidak turun. Fungsi - fungsi yang memenuhi ketiga syarat tersebut sehingga sering dipakai adalah fungsi sigmoid biner dan sigmoid bipolar (Siang.
2005). Alternatif lain adalah menggunakan fungsi aktivasi sigmoid hanya pada lapisan yang bukan lapisan keluaran, sedangkan pada lapisan keluaran yang dipakai adalah fungsi identitas.
Pelatihan propagasi balik meliputi tiga fase. Fase pertama adalah fase maju.
Pola masukan dihitung maju mulai dari lapisan masukan hingga lapisan keluaran menggunakan fungsi aktivasi yang ditentukan. Fase kedua adalah fase mundur.
Selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi. Kesalahan tersebut dipropagasikan mundur, dimulai dari garis yang berhubungan langsung dengan unit – unit di lapisan keluaran. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi. Ketiga fase tersebut diulang – ulang terus hingga kondisi penghentian terpenuhi.
Umumnya kondisi penghentian yang sering dipakai adalah jumlah iterasi (epoch) atau kesalahan. Iterasi akan dihentikan jika jumlah iterasi yang dilakukan sudah melebihi jumlah maksimum iterasi yang ditetapkan, atau jika kesalahan yang terjadi sudah lebih kecil dari batas toleransi yang diijinkan.
Algoritma pelatihan standar untuk jaringan dengan satu lapisan tersembunyi (dengan fungsi aktivasi sigmoid biner) dapat dilihat pada lampiran 1.
Pada penelitian ini digunakan fungsi pelatihan conjugate gradient dengan algoritma sebagai berikut (Ham & Kostanic 2001) :
Langkah 1 : Inisialisasi bobot jaringan dengan nilai acak yang kecil.
Langkah 2 : Propagasi pola pelatihan ke-q ke seluruh jaringan, hitung keluaran untuk tiap node.
Langkah 3 : Hitung galat lokal pada tiap node di jaringan. Untuk nodes keluaran, galat lokal dihitung sebagai berikut :
) dimana g(•) adalah derivatif dari fungsi aktivasi f(•). Untuk tiap nodes
di lapisan tersembunyi, galat lokal dihitung sebagai berikut :
)
Langkah 4 : Untuk tiap perkiraan kombinasi linear, nilai keluaran yang diinginkan diberikan sebagai berikut :
(s)
Langkah 5 : Sesuaikan estimasi matriks kovarian pada tiap lapisan :
T Sesuaikan perkiraan vektor cross-correlation untuk tiap node :
1) dimana k adalah indeks presentasi pola.
Langkah 6 : Sesuaikan vektor bobot untuk tiap node pada jaringan sebagai berikut :
gi = 0, vektor bobot node tersebut jangan disesuaikan dan lanjutkan ke langkah 7; atau lakukan langkah berikut : (b) Cari arah d(k). Jika angka iterasi adalah sebuah integer
kelipatan dari jumlah bobot pada node, maka (k),
1)
(d) modifikasi vektor bobot berdasarkan
(k) Langkah 7 : Jika jaringan belum konvergen, kembali ke langkah 2.
Masalah utama yang dihadapi dalam propagasi balik adalah lamanya iterasi yang harus dilakukan. Propagasi balik tidak dapat memberikan kepastian tentang berapa epoch yang harus dilalui untuk mencapai kondisi yang diinginkan.
Oleh karena itu harus diteliti bagaimana parameter – parameter jaringan dibuat sehingga menghasilkan jumlah iterasi yang relatif lebih sedikit.
Bobot awal akan mempengaruhi apakah jaringan mencapai titik minimum lokal atau global, dan seberapa cepat konvergensinya. Bobot yang menghasilkan nilai turunan aktivasi yang kecil sedapat mungkin dihindari karena akan menyebabkan perubahan bobotnya menjadi sangat kecil. Demikian pula nilai bobot awal tidak boleh terlalu besar karena nilai turunan fungsi aktivasinya menjadi sangat kecil juga. Oleh karena itu dalam standar propagasi balik, bobot dan bias diisi dengan bilangan acak kecil.
Salah satu keputusan yang harus dibuat dalam penggunaan jaringan syaraf tiruan propagasi balik adalah berapa lapisan tersembunyi yang dibutuhkan agar mendapatkan sebuah model yang baik. Tetapi menggunakan lebih dari dua layar tersembunyi tidak bermanfaat (Kecman 2001). Arsitektur dengan satu dan dua layar tersembunyi secara teoritis dapat mengenali sembarangan perkawanan antara masukan dan target dengan tingkat ketelitian yang ditentukan. Namun sebaiknya dicoba terlebih dahulu membuat model dengan satu layar tersembunyi.
Jika jaringan memiliki lebih dari satu lapisan tersembunyi, maka algoritma pelatihan yang dijabarkan sebelumnya perlu direvisi. Dalam propagasi maju, keluaran harus dihitung untuk tiap lapisan, dimulai dari lapisan tersembunyi
paling bawah (terdekat dengan masukan). Sebaliknya, dalam propagasi mundur, faktor d perlu dihitung untuk tiap layer tersembunyi, dimulai dari layer keluaran.
Tujuan utama penggunaan propagasi balik adalah mendapatkan keseimbangan antara pengenalan pola pelatihan secara benar dan respon yang baik untuk pola lain yang sejenis (disebut data pengujian). Jaringan dapat dilatih terus menerus hingga semua pola pelatihan dikenali dengan benar. Akan tetapi hal itu tidak menjamin jaringan akan mampu mengenali pola pengujian dengan tepat. Jadi tidak bermanfaat untuk meneruskan iterasi hingga semua kesalahan pola pelatihan = 0.
Umumnya data dibagi menjadi dua bagian saling terpisah, yaitu pola data yang dipakai sebagai pelatihan dan data yang dipakai untuk pengujian.
Perubahan bobot dilakukan berdasarkan pola pelatihan. Akan tetapi selama pelatihan (misal setiap 10 epoch), kesalahan yang terjadi dihitung berdasarkan semua data (pelatihan dan pengujian). Selama kesalahan ini menurun, pelatihan terus dijalankan. Akan tetapi jika kesalahannya sudah meningkat, pelatihan tidak ada gunanya untuk diteruskan lagi. Jaringan sudah mulai mengambil sifat yang hanya dimiliki secara spesifik oleh data pelatihan (tapi tidak dimiliki oleh data pengujian) dan sudah mulai kehilangan kemampuan melakukan generalisasi.
Salah satu bidang di mana propagasi balik dapat diaplikasikan dengan baik adalah bidang peramalan (forecasting). Peramalan yang sering dilakukan antara lain peramalan besarnya penjualan, nilai tukar valuta asing, harga saham, prediksi besarnya aliran air sungai, dll.
Secara umum masalah peramalan dapat dinyatakan sebagai berikut : Diketahui sejumlah data deret waktu (time series) x1, x2, ..., xn. Masalahnya adalah memperkirakan berapa harga xn+1 berdasarkan x1, x2, ..., xn.
Dengan propagasi balik, record data dipakai sebagai data pelatihan untuk mencari bobot yang optimal. Untuk itu perlu ditetapkan besarnya periode di mana data berfluktuasi. Periode ini ditentukan secara intuitif.
Bagian tersulit adalah menentukan jumlah lapisan (dan unitnya). Tidak ada teori yang dengan pasti dapat dipakai. Tetapi secara praktis dicoba jaringan yang kecil terlebih dahulu (misal terdiri dari 1 lapisan tersembunyi dengan beberapa unit saja), lalu jaringan diperbesar dengan menambah unit tersembunyi.