Wednesday, August 26, 2009

Artificial Neural Network


Kenapa sih namanya neural network?
      Artinya adalah jaringan(net) dari sel-sel neuron(syaraf). Sebenarnya awalnya bidang ini di bidangnya anak-anak biologi. Cara kerja sel-sel neuron ini sebenarnya sangat kompleks. -Subhanallah ya,, sel yang tidak terlihat oleh mata saja punya cara kerja yang sebenarnya sangat ribet namun teratur- Para ahli mencoba menyederhanakan cara kerja tersebut dan mematematikannya.

      Hasilnya? Wow~ Walaupun baru secara sederhana kita meniru-niru hasilnya bukan cuma dimanfaatkan dibidang biologi saja, tapi juga di bidang ilmu lainnya. Misalnya untuk klasifikasi, recovery data, memori buatan, dan lain-lain.

      Karena asalnya dari bidang biologi inilah makanya istilah-istilah yang dipakai banyak yang berhubungan dengan biologi, misalnya bidangnya disebut dengan neural network, node(titik/simpul)nya disebut neuron, proses perubahan nilai-nilai setiap nodenya disebut belajar(learning).


Neural Network Tiruan(artificial)
      Kalau lihat hasilnya pasti kepikir 'Wow~ Kok bisa begitu ya?' Hasilnya sebuah program seperti bisa 'belajar' dan 'berfikir'. Sebenarnya bidang ini intinya hanya menyesuaikan nilai-nilai(weight) node(neuron) terhadap suatu input untuk tujuan tertentu. -Weh, kalau dibahasakan seperti itu, kedengarannya ribet ya ;p -

      Karena ini tiruan dari cara kerja sel neuron, dibuat semirip mungkin seperti cara kerja sel neuron, misalnya penambahan bias, yang sebenarnya pada pembuatan program dengan ANN sendiri jarang ditambahkan.


Jenis-jenis pembelajaran(learning)
- Supervised learning(Belajar dengan bimbingan)
      'Belajar dengan bimbingan'? Ahaha,, kalau dibahasa Indonesiakan agak aneh ya. Mungkin masing-masing orang punya terjemahannya sendiri. Yang jelas intinya pada pembelajaran ini diberikan target output tertentu untuk inputnya. Contohnya : perseptron, back-propagation, associative memori, dan lain sebagainya.

- Unsupervised learning(Belajar tanpa bimbingan)
      Pada pembelajaran ini inputnya tidak diberikan target output tertentu. Contohnya : Self Organizing Map(SOM) dan Adaptive resonance theory (ART).


Faktor-faktor pembelajaran(learning)
- Struktur neural network
      Neural network dengan hanya 1 lapisan neuron tidak bisa menyelesaikan masalah tidak linear seperti XOR. Dengan lapisan neuron lebih dari 1 bisa menyelesaikan masalah yang lebih kompleks. Tapi bukan berarti untuk menyelesaikan masalah yang sama semakin banyak lapisan neuronnya semakin bagus lho ya. :)

      Jumlah neuron di tiap-tiap lapisannya juga mempengaruhi pembelajaran. Namun berapa jumlah yang tepat masih diteliti, salah satunya oleh G. Mirchandini dan W. Cao pada tahun 1989.

- Kadar pembelajaran(learning rate)
      Seperti kita belajar saja. Setiap orang berbeda-beda kadar pembelajarannya. Kalau dalam sekali belajar terlalu banyak bahannya bagaimana? Ya, mumet! Proses belajar menjadi tidak efektif dan mungkin saja target tidak tercapai. Kalau terlalu sedikit bahan belajarnya, memakan waktu lama untuk mencapai target.

- Nilai weight awal(initialized weight)
      Bisa kita bandingkan lagi seperti kita. Ketika belajar sesuatu yang sama kondisi awal setiap orang bisa berbeda. Ada yang sudah tahu, ada yang tahu sedikit, ada yang tidak tahu sama sekali.

      Begitu juga nilai-nilai awal weight, ada yang sudah mendekati nilai output ada yang belum. Kadang karena nilai weight awal yang kurang pas, proses belajar berhenti karena mengira nilai error(perbedaan hasil yang muncul dengan hasil yang diinginkan) sudah cukup rendah padahal nilai itu adalah local minima.

- Jumlah pengulangan dalam proses belajar
      Seperti kita saja, biasanya semakin banyak mengulang sebuah pelajaran, semakin bagus hasilnya. Tapi ada juga orang yang semakin banyak mengulang malah semakin bingung. -Hihi, siapa ya? :D -

      Untuk neural network sendiri tergantung masalahnya, ada yang konvergen ada yang tidak. Semakin banyak jumlah pengulangannya semakin bagus, tapi tentu semakin memakan banyak waktu.


      Jumlah pengulangan juga tergantung kita, ada yang sampai errornya tidak ada (hasil yang dikeluarkan sama dengan hasil yang diinginkan), sampai kira hm.. cukup memuaskan, atau dengan jumlah yang sudah ditentukan tidak peduli mencapai target atau tidak.

Masa depan neural network
      Walaupun sudah banyak diaplikasikan dalam berbagai bidang, kita baru sedikit sekali meniru kerja sel neuron yang kompleks itu. Masih luas sekali yang bisa diteliti dibidang ini. Bagaimana cara meningkatkan performa dari proses pembelajaran serta bagaimana agar semirip mungkin dengan cara kerja syaraf makhluk hidup.