Jaringan Syaraf Tiruan – BackPropagation

Kali ini saya akan membahas apa saja yang perlu diperhatikan dalam membuat arsitektur Jaringan Syaraf Tiruan (JST) – BackPropagation (BP). Untuk mempersingkat tulisan ini, maka detil algoritma BackPropagation (BP) tidak dibahas, dan dapat dibaca pada buku “Fundamental of Neural Network”, yang ditulis oleh Lawrence Faussett.


P E N D A H U L U A N

Jaringan Syaraf Tiruan (JST) merupakan terjemahan dari Artificial Neural Network (ANN) adalah suatu algoritma yang memungkinkan suatu sistem dapat belajar dari data dan menggunakannya untuk memecahkan permasalahan tertentu, misal estimasi, prediksi, klasifikasi, segmentasi (clustering), pengenalan pola, dll.

JST meniru cara manusia belajar terhadap suatu permasalahan beserta solusinya, dan menggunakan hasil pembelajaran untuk menemukan solusi terhadap permasalahan hampir sama dengan yang pernah ia pelajari.

Model pembelajaran JST hadir dalam 2 bentuk:

  1. supervised learning, model belajar yang membutuhkan target sebagai acuan arah pembelajaran – supervisi. Dapat diilustrasikan seperti pembelajaran di kelas dimana terdapat seorang Guru yang mengarahkan proses pembelajaran.
  1. Unsupervised learning, model belajar yang tidak membutuhkan target sebagai acuan arah pembelajaran. Dapat diilustrasikan seperti pembelajaran yang dilakukan sendiri (otodidak).

BackPropagation (BP) atau Multilayer Perceptron (MP) adalah salah satu metode JST yang paling banyak digunakan, karena modelnya yang hampir sama dengan sistem pengendalian secara umum (input – proses – output – feedback). Beberapa hal yang perlu diperhatikan dalam pembentukan arsitektur JST-BP, agar proses pembelajaran dari BP dapat berhasil, adalah sebagai berikut:

C a r a P e m b e l a j a r a n

Hal penting yang perlu saya garis bawahi, adalah algoritma BP yang ada pada buku perlu sedikit penyesuaian dalam pembelajarannya, untuk dapat digunakan di area manajemen. Karena dasar penulisan algoritma BP yang ada di buku adalah untuk pengendalian (control) di industri, dimana BP disupervisi oleh nilai target yang tetap (lebih dikenal dengan Set Point). Sedangkan pada area manajemen, BP disupervisi oleh nilai target yang umumnya bersifat fluktuatif (berubah-ubah).

Perubahan dilakukan pada proses updating bobot dari BP. Bila di buku dilakukan tiap pelatihan 1 pola data selesai dilakukan, maka perlu diubah menjadi batch updating, dimana selama iterasi tiap pola data, perubahan bobot yang dihasilkan hanya diakumulasi (tidak perlu diupdate), dan setelah semua pola data selesai dilakukan baru updating bobot dilakukan terhadap akumulasi perubahan bobot yang ada. Hal ini akan lebih memudahkan BP dalam proses pembelajarannya.

P o l a I n p u t – O u t p u t

Sebaran input dan output dari data yang akan dijadikan bahan latihan BP perlu diperhatikan terlebih dahulu, agar jangan sampai ada lebih dari 1 pola data yang memiliki input sama tapi output berbeda. Seperti halnya manusia, kita akan bingung bila menjumpai permasalahan seperti ini.

Misalkan bila terdapat input X=2 dan output Y=5 atau 6, saat ditanya berapa nilai Y bila X=2, dan kita harus menjawab hanya 1 nilai, terjadilah kebingungan untuk memilih yang mana jawaban yang diharapkan.

Pengembangan dari permasalahan ini adalah nilai input tidak harus sama persis seperti contoh pertama, namun bisa pula terjadi pada nilai-nilai input yang berdekatan, namun hasilnya memiliki selisih yang terpaut cukup jauh, misal X=50 dan Y=1000, serta X=52 dan Y=5.

Sebaran dari pola data latih (input dan targetnya) juga perlu kita perhatikan dalam menentukan besarnya nilai toleransi kesalahan yang diharapkan dari pelatihan suatu BP. Apabila memang terdapat pola data sebagaimana dijelaskan di atas, dan tidak dapat kita hilangkan, maka harus disadari bahwa tidak akan mungkin melatih BP hingga kesalahan (error) mencapai 0 (nol).

B i a s

Bias adalah salah satu node input dari BP yang sifatnya khusus, karena selalu bernilai 1. Penggunaan Bias dapat mempercepat pelatihan, hal ini dapat terjadi karena keberadaan Bias berguna sebagai faktor koreksi terhadap kecukupan variabel-variabel input yang telah kita tetapkan.

Misalkan saja kita telah menetapkan bahwa output Y dipengaruhi oleh variabel input X1 dan X2, apakah tidak ada variabel input yang lain selain X1 dan X2? Mungkin saja masih ada, namun belum kita ketahui, inilah fungsi dari Bias.

Perhatikan rumusan matematis berikut Y = a.X1 + b.X2, bila terdapat variabel selain X1 dan X2, maka akan terjadi selisih antara Y dan hasil dari a.X1 + b.X2, yang biasanya disebut sebagai error (e).
Bila kita ingin agar kedua sisi memiliki nilai yang sama, maka rumusan akan menjadi Y = a.X1 + b.X2 + e.
Dengan mengasosiasikan bahwa X1 dan X2 adalah variabel input dari BP, nilai a dan b adalah nilai bobot dari X1 dan X2, maka diketahui bahwa e adalah nilai bobot dari sesuatu yang bernilai 1 Bias.

Jadi pada saat pelatihan bilamana, nilai bobot dari bias menjadi sangat besar sekali bila dibandingkan dengan nilai bobot variabel input, maka dapat disimpulkan bahwa masih terdapat variabel input lainnya yang cukup menentukan output yang belum kita ketahui dan ditetapkan sebagai variabel input.

B o b o t

Nilai bobot adalah suatu nilai yang merepresentasikan ingatan manusia terhadap pembelajaran yang dilakukan. Nilai bobot inilah yang akan diupdate terhadap kesalahan atau error yang terjadi karena selisih dari target dan output BP.

F u n g s i A k t i v a s i

Fungsi aktivasi merupakan suatu fungsi berupa suatu persamaan matematis yang memungkinkan JST dapat mengenali pola data atau memberikan hasil perhitungan dari data input yang belum pernah dipelajarinya.

Misal BP memiliki pola belajar (X,Y) = {(1,2);(2,4);(5,10)} dan fungsi aktivasi yang digunakan f(X) = X, atau dikenal dengan fungsi identity, setelah pembelajaran selesai, BP diberi masukan X=3, dan BP dapat memberikan hasil 6 benar. Padahal nilai X=3 tidak masuk dalam pola data yang ia pelajari, namun karena adanya fungsi aktivasi identity yang digunakan, membuat sistem mampu memutuskan dimana posisi nilai 3 dari data-data yang pernah dipelajari sebelumnya, dan bagaimana memprosesnya (diwakili oleh nilai-nilai bobot yang telah disimpan sebagai hasil dari pembelajaran yang dilakukan).

Pemilihan fungsi aktivasi harus disesuaikan dengan pola data yang berkaitan padanya, misal fungsi aktivasi input X, atau fungsi aktivasi output Y. Bila suatu variabel input/output merupakan (atau dapat didekati dengan) persamaan linier, misal f(X)=aX+b maka pembelajaran tidak akan dapat berhasil bila kita menggunakan fungsi aktivasi yang non linier (seperti sigmoid, bipolar sigmoid, dan sejenisnya), demikian pula sebaliknya.

N o r m a l i s a s i

Pada umumnya dibuku-buku yang membahas JST, normalisasi tidak dicantumkan dalam algoritma, namun keberadaannya sangat dibutuhkan dalam berlangsungnya pembelajaran BP. Hal ini sangat berkaitan dengan fungsi aktivasi yang digunakan dan rentang nilai yang mungkin terdapat pada variabel tertentu.

Sebagai contoh, misal digunakan suatu fungsi aktivasi binary sigmoid dengan rumusan:
f(X) = 1 / (1 + Exp(-(1 * X))),
dimana X adalah konversi mata uang Rupiah terhadap USD, yang memiliki kemungkinan rentang nilai antara 1.000 (untuk tahun sebelum 1998 – Krisis Moneter) sampai dengan 15.000 (setelah Krisis Moneter). Bila nilai ini dihitung aktivasinya maka nilai minimal 1.000 akan menghasilkan nilai 1, dan untuk nilai 15.000 juga akan menghasilkan nilai 1, sehingga dapat dikatakan BP tidak melakukan pembelajaran terhadap nilai-nilai varibel yang dikenakan padanya.

Oleh sebab itu kita harus membawa rentang nilai variabel tesebut ke daerah kerja dari fungsi aktivasi yang digunakan, dengan melakukan normalisasi terhadap input sebelum diaktivasi. Misal sebagai lanjutan contoh di atas, bila digunakan fungsi aktivasi bipolar sigmoid, maka daerah kerjanya berkisar pada nilai -16 sampai dengan 16. Untuk membawa suatu rentang nilai variabel ke daerah kerja fungsi aktivasi ini akan digunakan rumus:
normaliasi(X) = ((X – BatasMin X) / (BatasMax X – BatasMin X) x 32) – 16,
sehinga BP dapat melakukan pembelajaran terhadap rentang nilai dari variabel bersangkutan.

K o n s t a n t a B e l a j a r

Konstanta Belajar (KB) merupakan suatu konstanta yang dibutuhkan untuk menetapkan ketelitian pembelajaran yang akan dilakukan oleh JST. Secara teori, semakin besar KB akan semakin cepat proses pembelajaran, tapi memiliki kemungkinan suatu JST tidak menemukan hasil yang diharapkan semakin tinggi.

KB dapat diilustrasikan sebagai ketelitian seseorang dalam mencari sesuatu pada sebuah buku, misalkan ditetapkan bahwa pencarian dilakukan dengan membaca per 3 lembar halaman buku (baca dari halaman 1, lalu 3, kemudian 6, dst), bila dibandingkan dengan per lembar, tentunya akan lebih lama yang perlembar, namun tidak sampai ada yang hilang, karena siapa tahu jawaban yang diharapkan berada pada lembar yang tidak dibuka, misal halaman ke 4.

J u m l a h L a y e r

BP sebagaimana namanya yang lain yaitu MP, terdiri dari banyak layer, yaitu layer input, hidden (bisa lebih dari satu), dan output. Penetapan layer, terutama hidden layer, tergantung pada keputusan dari permasalahan yang dihadapi.

Bila permasalah hanya membutuhkan keputusan antara Ya atau Tidak, Benar atau Salah, dan sejenisnya (biasanya masalah yang berkaitan dengan klasifikasi), maka permasalahan ini cukup menggunakan Perceptron, dimana hidden layer tidak ada, atau hanya terdiri dari layer input dan output. Namun untuk masalah yang membutuhkan keputusan lebih dari sekedar Ya atau Tidak, seperti permasalahan yang berkaitan dengan prediksi, baru dibutuhkan adanya hidden layer (MP).

Secara teori, semakin banyak hidden layer yang digunakan, maka akan dapat digunakan untuk memecahkan masalah yang membutuhkan keputusan yang semakin komplek pula. Namun hal ini tentunya akan memperlama proses pembelajaran dan menurunkan kinerja dari BP. Yang paling baik adalah yang sesuai dengan kebutuhan dari permasalahan yang ada. Berdasarkan praktik yang dilakukan, untuk permasalahan prediksi cukup dengan menggunakan 1 hidden layer.

[ROM]

 

4 Responses to Jaringan Syaraf Tiruan – BackPropagation

  1. izzatika90 says:

    pak boleh saya minta contoh studi kasus nya,, karena saya sangat butuh untuk menyelesaikan tugas akhir saya, terutama tentang citra, bisa dikirim di izzatika@gmail.com terima kasih sebelumnya

  2. maya says:

    k, boleh minta referensinya??

  3. halo pak.
    apakah ada contoh kasusnya?
    mungkin lebih menarik jika setelah penjelasan dilengkapi juga dengan contoh kasusnya.
    kebetulan saya lagi belajar backprop untuk thesis saya

  4. handiyas says:

    misi…boleh minta softcopynya buat refrensi pak?

Leave a Reply

Your email address will not be published. Required fields are marked *

Powered by WordPress | Designed by: diet | Thanks to lasik, online colleges and seo
Skip to toolbar