Selasa, 02 April 2013

Paralel Computing Neural Network

Cabang ilmu kecerdasan buatan cukup luas, dan erat kaitannya dengan disiplin ilmu yang lainnya. Hal ini bisa dilihat dari berbagai aplikasi yang merupakan hasil kombinasi dari berbagai ilmu. Seperti halnya yang ada pada peralatan medis yang berbentuk aplikasi. Sudah berkembang bahwa aplikasi yang dibuat merupakan hasil perpaduan dari ilmu kecerdasan buatan dan juga ilmu kedokteran atau lebih khusus lagi yaitu ilmu biologi.
Neural Network merupakan kategori ilmu Soft Computing. Neural Network sebenarnya mengadopsi dari kemampuan otak manusia yang mampu memberikan stimulasi/rangsangan, melakukan proses, dan memberikan output. Output diperoleh dari variasi stimulasi dan proses yang terjadi di dalam otak manusia. Kemampuan manusia dalam memproses informasi merupakan hasil kompleksitas proses di dalam otak. Misalnya, yang terjadi pada anak-anak, mereka mampu belajar untuk melakukan pengenalan meskipun mereka tidak mengetahui algoritma apa yang digunakan. Kekuatan komputasi yang luar biasa dari otak manusia ini merupakan sebuah keunggulan di dalam kajian ilmu pengetahuan.
Fungsi dari Neural Network diantaranya adalah:
  1. Pengklasifikasian pola
  2. Memetakan pola yang didapat dari input ke dalam pola baru pada output
  3. Penyimpan pola yang akan dipanggil kembali
  4. Memetakan pola-pola yang sejenis
  5. Pengoptimasi permasalahan
  6. Prediksi
Sejarah Neural Network
Perkembangan ilmu Neural Network sudah ada sejak tahun 1943 ketika Warren McCulloch dan Walter Pitts memperkenalkan perhitungan model neural network yang pertama kalinya. Mereka melakukan kombinasi beberapa processing unit sederhana bersama-sama yang mampu memberikan peningkatan secara keseluruhan pada kekuatan komputasi.
Gambar 2.1 McCulloch & Pitts, penemu pertama Neural Network
Hal ini dilanjutkan pada penelitian yang dikerjakan oleh Rosenblatt pada tahun 1950, dimana dia berhasil menemukan sebuah two-layer network, yang disebut sebagai perceptron. Perceptron memungkinkan untuk pekerjaan klasifikasi pembelajaran tertentu dengan penambahan bobot pada setiap koneksi antar-network.
Gambar 2.2 Perceptron
Keberhasilan perceptron dalam pengklasifikasian pola tertentu ini tidak sepenuhnya sempurna, masih ditemukan juga beberapa keterbatasan didalamnya. Perceptron tidak mampu untuk menyelesaikan permasalahan XOR (exclusive-OR). Penilaian terhadap keterbatasan neural network ini membuat penelitian di bidang ini sempat mati selama kurang lebih 15 tahun. Namun demikian, perceptron berhasil menjadi sebuah dasar untuk penelitian-penelitian selanjutnya di bidang neural network. Pengkajian terhadap neural network mulai berkembang lagi selanjutnya di awal tahun 1980-an. Para peneliti banyak menemukan bidang interest baru pada domain ilmu neural network. Penelitian terakhir diantaranya adalah mesin Boltzmann, jaringan Hopfield, model pembelajaran kompetitif, multilayer network,  dan teori model resonansi adaptif.
Untuk saat ini, Neural Network sudah dapat diterapkan pada beberapa task, diantaranya classification, recognition, approximation, prediction, clusterization, memory simulation dan banyak task-task berbeda yang lainnya, dimana jumlahnya semakin bertambah seiring berjalannya waktu.
Konsep Neural Network
1.  Proses Kerja Jaringan Syaraf Pada Otak Manusia
Ide dasar Neural Network dimulai dari otak manusia, dimana otak memuat  sekitar 1011 neuron. Neuron ini berfungsi memproses setiap informasi yang masuk. Satu neuron memiliki 1 akson, dan minimal 1 dendrit. Setiap sel syaraf terhubung dengan syaraf lain, jumlahnya mencapai sekitar 104 sinapsis. Masing-masing sel itu saling berinteraksi satu sama lain yang menghasilkan kemampuan tertentu pada kerja otak manusia.
Gambar 2.3 Struktur Neuron pada otak manusia
Dari gambar di atas, bisa dilihat ada beberapa bagian dari otak manusia, yaitu:
  1. Dendrit (Dendrites) berfungsi untuk mengirimkan impuls yang diterima ke badan sel syaraf.
  2. Akson (Axon) berfungsi untuk mengirimkan impuls dari badan sel ke jaringan lain
  3. Sinapsis berfungsi sebagai unit fungsional di antara dua sel syaraf.
Proses yang terjadi pada otak manusia adalah:
Sebuah neuron menerima impuls dari neuron lain melalui dendrit dan mengirimkan sinyal yang dihasilkan oleh badan sel melalui akson. Akson dari sel syaraf ini bercabang-cabang dan berhubungan dengan dendrit dari sel syaraf lain dengan cara mengirimkan impuls melalui sinapsis. Sinapsis adalah unit fungsional antara 2 buah sel syaraf, misal A dan B, dimana yang satu adalah serabut akson dari neuron A dan satunya lagi adalah dendrit dari neuron B. Kekuatan sinapsis bisa menurun/meningkat tergantung seberapa besar tingkat propagasi (penyiaran) sinyal yang diterimanya. Impuls-impuls sinyal (informasi) akan diterima oleh neuron lain jika memenuhi batasan tertentu, yang sering disebut dengan nilai ambang (threshold).
2.  Struktur Neural Network
Dari struktur neuron pada otak manusia, dan proses kerja yang dijelaskan di atas, maka konsep dasar pembangunan neural network buatan (Artificial Neural Network) terbentuk. Ide mendasar dari Artificial Neural Network (ANN) adalah mengadopsi mekanisme berpikir sebuah sistem atau aplikasi yang menyerupai otak manusia, baik untuk pemrosesan berbagai sinyal elemen yang diterima, toleransi terhadap kesalahan/error, dan juga parallel processing.
Gambar 2.4 Struktur ANN
Karakteristik dari ANN dilihat dari pola hubungan antar neuron, metode penentuan bobot dari tiap koneksi, dan fungsi aktivasinya. Gambar di atas menjelaskan struktur ANN secara mendasar, yang dalam kenyataannya tidak hanya sederhana seperti itu.
  1. Input, berfungsi seperti dendrite
  2. Output, berfungsi seperti akson
  3. Fungsi aktivasi, berfungsi seperti sinapsis

Perkembangan Komputasi Modern

Hampir sebagian besar orang mengetahui apa itu komputer, lain hal nya dengan komputasi. Komputasi sendiri merupakan suatu cara yang dapat digunakan untuk menemukan sebuah solusi dari data yang telah kita input dengan menggunakan algoritma. Dan ilmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (atau dalam hal ini sains). Dalam penggunaan praktisnya, biasanya berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu.
Sebelum kita masuk pada alat komputasi yang ada pada saat ini, ada lebih baiknya kita melihat contoh komputasi zaman dahulu. Hal ini dapat membantu kita untuk melihat perkembangan komputasi dari generasi ke generasi. Sebagai contoh, dahulu alat komputasi paling kuno adalah kertas, potlot dan karet penghapus. dari ketiga benda tersebut, orang melakukan proses-proses komputasi yang mudah hingga yang rumit dengan tiga benda sederhana ini. Akan tetapi, dengan munculnya alat-alat komputasi yang tersusun dari komponen-komponen elektro; seperti kalkulator dan mesin hitung lainnya, hal-hal komputasi yang rumit akan menjadi lebih sederhana dan memudahkan kita dalam mengerjakan suatu proses perhitungan.
Pada kesempatan ini saya ingin berbagi sedikit informasi tentang satu mesin komputasi yang sangat populer pada era ini, yaitu komputer.
Komputasi Modern
Komputasi modern mungkin merupakan kalimat yang jarang terdengar di telinga masyarakat Indonesia pada umumnya. Komputasi modern pengertian nya adalah cara untuk menemukan pemecahan masalah/solusi dari data input dengan menggunakan suatu algoritma tertentu. Komputasi merupakan suatu sub-bidang dari ilmu komputer dan matematika.
Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Sebenarnya sudah lama komputasi modern ini di cetuskan dan tokoh di balik semua ini yaitu John Von Neumann, Beliau merupakan ilmuan besar saat ini. Beliaulah yang pertama kali menggagaskan konsep sebuah sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory dan dikenal sebagai arsitektur komputer modern.
http://itinkz.files.wordpress.com/2010/04/john-von1.jpg
John Von Neumann
Komputasi modern digunakan untuk memecahkan suatu masalah yang ada, perhitungan komputasi modern yaitu seperti :
  • Akurasi (bit, floating point)
  • Kecepatan (dalam satuan Hertz - Hz.)
  • Problem volume besar (paralel)
  • Modeling (NN dan GA), dan
  • Kompleksitas (menggunakan Teori Bog O)
Seiring dengan terus berkembangnya komputasi, tentunya akan berpengaruh terhadap penggunaan hardware dan software yang digunakan untuk komputasi tersebut. Sehingga hal ini membuat adanya sebuah evolusi mesin yang digunakan untuk pemrosesan tersebut. Hal - hal yang berdampak akibat berkembangnya komputasi ini akan dijelaskan pada artikel selanjutnya.
Sedikit kesimpulan yang bisa saya tarik dari sekelumit artikel ini adalah bahwa jauh sebelum dikenalnya mesin untuk melakukan proses komputasi (dalam hal ini seperti kalkulator, komputer, dan gadget lainnya), orang dahulu telah memanfaatkan benda - benda sekitar bahkan benda - benda langit untuk melakukan sebuah perhitungan. Sebagai contoh, bangsa suku Maya yang hidup sekitar 1000 tahun yang lalu telah memanfaatkan benda langit untuk digunakan sebagai navigasi dan sistem penanggalan dan ketelitiannya pun sangat akurat.

Karakteristik Komputasi Modern
Karakteristik komputasi modern ada 3 macam, yaitu :
  1. Komputer-komputer penyedia sumber daya bersifat heterogenous karena terdiri dari berbagai jenis perangkat keras, sistem operasi, serta aplikasi yang terpasang.
  2. Komputer-komputer terhubung ke jaringan yang luas dengan kapasitas bandwidth yang beragam.
  3. Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas.
Manfaat Komputasi Modern
Banyak manfaat yang terjadi dengan adanya komputasi modern, diantaranya adalah:
Perhitungan-perhitungan kompleks yang bisa mencapai ribuan data dapat dengan mudah dikerjakan manuisa dengan bantuan komputer. Hal ini tentunya dapat mengurangi waktu, biaya dan lain sebagainya.
Lahirnya komputer dapat membantu pekerjaan manusia, dalam berbagai bidang. Misalnya pada bidang kedokteran, pertanian, astronomi, teknologi, ekonomi dan lainnya. Bahkan komputer sekarang telah ada dalam hampir semua bidang di dunia ini.
Contoh alat yang dapat membantu manusia dalam konsep komputasi modern adalah:
Mobile computing merupakan kemajuan teknologi komputer yang dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel serta mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Berdasarkan penjelasan tersebut, untuk kemajuan teknologi ke arah yang lebih dinamis membutuhkan  perubahan dari sisi manusia maupun alat. Contoh dari mobile computing adalah GPS, smart phone, dan sebagainya.
Grid Computing memanfaatkan kekuatan pengolahan idle berbagai unit komputer, dan menggunakan kekuatan proses untuk menghitung satu pekerjaan. Pekerjaan itu sendiri dikontrol oleh satu komputer utama, dan dipecah menjadi beberapa tugas yang dapat dilaksanakan secara bersamaan pada komputer yang berbeda. Tugas-tugas ini tidak perlu saling eksklusif, meskipun itu adalah skenario yang ideal. Sebagai tugas lengkap pada berbagai unit komputasi, hasil dikirim kembali ke unit pengendali, yang kemudian collates itu membentuk keluaran kohesif.
Keuntungan dari komputasi grid adalah dua kali lipat: pertama, kekuatan pemrosesan yang tidak digunakan secara efektif digunakan, memaksimalkan sumber daya yang tersedia dan, kedua, waktu yang dibutuhkan untuk menyelesaikan pekerjaan besar berkurang secara signifikan.
Cloud computing adalah perluasan dari konsep pemrograman berorientasi objek abstraksi. Abstraksi, sebagaimana dijelaskan sebelumnya, menghapus rincian kerja yang kompleks dari visibilitas. Semua yang terlihat adalah sebuah antarmuka, yang menerima masukan dan memberikan output. Bagaimana output ini dihitung benar-benar tersembunyi.