Neural Networks (Sebuah pengantar #1)

Neural Networks banyak digunakan untuk memecahkan permasalahan sains, prediksi kemampuan obat, mengendalikan robot, permasalahan bisnis, prediksi hasil penjualan, validasi data, manajemen risiko, untuk mesin pencari dll. Sebagai contoh, untuk memutuskan pasien sakit apa, neural network bisa digunakan.

Kita akan membahas apakah neural networks itu di artikel pendek ini. Tantangan bagi para pemula ketika mulai mencoba-coba neural networks, jenis neural networks yang terkenal. Di artikel selanjutnya, pembahasan terfokus pada cara mengaplikasikannya, contoh applikasinya, dan contoh jika mau menggunakan toolbox di matlab.

Dari mana istilah ini berasal

Kenapa disebut sebagai 'artifical neuron' karena memang terinspirasi dari sistem saraf manusia (neuron). Saraf menerima sinyal melalui synapses yang terletak di dendrites (silahkan lihat gambar di bawah). kemudian saraf teraktivasi dan menghasilkan sinyal melalui axon. Sinyal ini bisa jadi akan disampaikan ke synapsis yang lain dan mungkin juga mengaktifkan jaringan saraf yang lain.
Dendrit that inspired artificial neural networks algorithm (taken from here)

Jaringan saraf pada tubuh makhluk hidup dimodelkan dengan artificial neurons. Model ini secara general mempunyai input (seperti synapses), yang dikalikan dengan weights (kekuatan masing-masing sinyal), kemudian dihitung dengan fungsi aktifasi dari setiap syaraf (neurons). Terkadang juga hasilnya ditambahkan threshold atau bias. Pada saat keluar dari hidden node pun, nilainya dikalikan dengan weights yang lain. Nah, di dalam tubuh kita, banyak sekali neuron atau jaringan syaraf untuk menyampaikan info sampai ke otak sehingga informasinya bisa utuh.

Ilustrasi perhitungannya dapat dilihat di bawah ini. 
Simple mathematical relation of neural networks (taken from here by Geetika saini)
Semakin tinggi nilain weight dari sebuah neuron berarti semakin kuat nilai perkalian kepada sinyal input. Nilai weight tidak harus selalu positif, tapi bisa negatif. Setelah melalui proses adjustment output akan sesuai dengan yang diinginkan oleh pengguna (user). Proses pembelajaran ini disebut proses 'belajar' (learning) atau 'pelatihan' (training).

Contoh struktur neuron yang paling sederhana adalah seperti ditunjukkan di dalam gambar. Layer atau 'lapisan' pertama adalah layer input. Lapisan kedua adalah layer untuk kalkulasi dengan hidden node. Lapisan ketiga adalah layer output.
Contoh Neural Networks yang banyak taken from here by Glosser.ca


Apa yang terjadi di dalam prosesnya

Proses iterasi pembelajaran yang berulang adalah kunci utama dari proses belajar neural networks dimana 'weights' input, output, dan semua parameter dari model diperbaiki untuk mendapatkan hasil yang paling sesuai.

Keuntungan neural networks adalah toleransi yang cukup tinggi untuk data yang mempunyai noise atau gangguan. Keuntungan yang lain adalah kemampuan untuk klasifikasi pattern atau pola yang mereka belum ditraining sama sekali. Salah algoritma neural network yang paling populer adalah backpropagation algorithm.

Jika suatu struktur network sudah disiapkan untuk suatu aplikasi, network itu sudah siap untuk ditrain. Untuk memulai proses ini, nilai 'weights' ditentukan secara random atau acak. Kemudian, proses training dimulai.

Semua input dimasukkan ke network setiap waktu menggunakan struktur network yang sudah disiapkan. Lalu output yang dihasilkan  dibandingkan dengan output yang diinginkan. Hasil perbandingannya adalah error/kesalahan. Error kemudian dikembalikan ke sistem, lalu sistem men-tune/adjust/mengatur kembali untuk proses iterasi selanjutnya.

Proses iterasi terjadi berulang kali, dan setiap iterasi weight akan berubah. Selama proses training, data training yang sama akan digunakan berulang kali sampai didapatkan error yang boleh diterima.

Apa yang susah dalam mempelajarinya?

Tantangan utama bagi para pemula adalah pemahaman apa yang terjadi di setiap proses iterasinya. Apa yang sebetulnya terjadi di setiap layernya. Kita tahu bahwa di dalam proses iterasi terjadi pengaturan ulang parameter-parameter yang di dalamnya sampai error yang didapatkan boleh diabaikan.

Sebetulnya, dari pada kita memikirkan apa yang terjadi di dalam network dan bagaimana proses di dalamnya terjadi, kita bisa memandang neural networks sebagai user/pengguna. 


Comments

Popular Posts