Senin, 14 Juli 2014

Artificial Neural Network (ANN)

19.58 Posted by Unknown No comments
Artificial Neural Network (ANN) atau jaringan syaraf tiruan adalah jaringan dari sekelompok unit pemroses kecil yang dimodelkan berdasarkan perilaku jaringan syaraf manusia (Wikipedia).

Algoritma ANN lahir dari gagasan seorang psikolog Warren McCulloch dan Walter Pitts pada 1943 yang menjelaskan cara kerja jaringan syaraf dengan perangkat jaringan elektronik.

Didalam dunia seismik eksplorasi, algoritma ANN sudah cukup populer diaplikasikan, diantaranya untuk identifikasi noise, estimasi wavelet, analisa kecepatan, analisis gelombang geser, autotracking reflector, prediksi hidrokarbon, karakterisasi reservoir, dll.

Konfigurasi sederhana algoritma ANN dapat dijelaskan pada gambar dibawah ini:






Dari gambar di atas terlihat bahwa, prinsip dasar ANN adalah sejumlah parameter sebagai masukan (input layer) diproses sedemikian rupa didalam hidden layer (perkalian, penjumlahan, pembagian, dll.), lalu diproses lagi didalam output layer untuk menghasilkan sebuah output.

Gambar diatas menunjukkan contoh penerapan ANN untuk data seismik, katakanlah kita memiliki beberapa input seperti impedance (x1), reflection strength (x2), instantaneous frequency (x3),… dll . yang akan digunakan untuk memprediksi porositas reservoir sebagai output. Maka secara sederhana porositas reservoir akan didapatkan dengan mengkalikan setiap sampel data input dengan suatu pembobotan (weight) lalu dijumlahkan, lalu hasil penjumlahan tersebut menjadi input untuk fungsi aktivasi untuk menghasilkan parameter porositas.



Fungsi aktivasi tersebut dapat berupa sigmoid function ataupun hyperbolic tangent function (perhatikan keterangan dibawah ini).

Tentu kita menginginkan agar nilai porositas yang diprediksi semirip mungkin dengan nilai porositas yang sesungguhnya, dengan kata lain kita harus memiliki nilai selisih (baca error) antara nilai prediksi dengan nilai sesungguhnya yang sekecil mungkin, untuk tujuan ini didalam algoritma ANN di atas, kita harus melakukan updating nilai weight untuk masing-masing input.

Reinforcement Learning

16.13 Posted by Unknown No comments
Reinforcement Learning adalah sub area machine learning yang menitikberatkan kepada cara sebuah agent mengambil aksi di lingkungannya. Di sini agent melakukan maksimalisasi pemikiran tentang reward untuk jangka panjang. Reinforcement Learning diinspirasi dari fenomena biologi dan mengelola pengetahuan melalui eksplorasi aktif terhadap lingkungannya. Pada setiap langkah, Reinforcement Learning memilih beberapa aksi yang mungkin dilakukan dan menerima reward dari lingkungan atas aksi spesifik yang dilakukannya. Aksi terbaik yang harus dilakukan di beberapa state tidak pernah diketahui sehingga agent harus mencoba beberapa aksi-aksi dan urutan-urutan aksi yang berbeda serta belajar dari pengalamannnya.

Reinforcement Learning biasanya dideskripsikan sebagai Markov Decission Process (MDP) yang terdiri dati sebuah agent, set state yang mungkin S, set aksi-aksi yang mungkin A(S) untuk semua state S, dan sebuah fungsi reward R(s,a) yang menentukan reward yang diberi lingkungan atas aksi yang dilakukan agent. Fungsi policy pi mendeskripsikan bagaimana agent belajar pada beberapa time-step t. Policy optimal didefinisikan sebahai pi*. Fungsi value V(s,a) mendefinisikan reward total yang diharapkan ketika melakukan aksi a pada state s jika untuk mencapai state berikutnya diikuti policy optimal pi*. Inilah fungsi di mana agent harus belajar untuk memperoleh policy ini. Ilustrasi Reinforcement Learning ditunjukkan pada Gambar 1 berikut ini.



















Reinforcement Learning sangat cocok untuk masalah-masalah terdistribusi. Reinforcement Learning membutuhkan memori dan komputasi yang medium pada setiap node-nya. Reinforcement Learning melakukan mekanisme pemeliharaan beberapa kemungkinan aksi-aksi yang berbeda beserta nilainya. Reinforcement Learning memerlukan waktu untuk mencapai konvergen. Reinforcement Learning mudah diimplementasikan, fleksibel terhadap perubahan topologi, dan mencapai aksi optimum. Contoh implementasi algoritma Reinforcement Learning adalah Q-Learning, Dual RL, TPOT Reinforcement Learning, dan Collaborative Reinforcement Learning.




Decision Tree Learning

16.04 Posted by Unknown No comments
Decision tree adalah salah satu metode klasifikasi yang paling populer karena mudah untuk diinterpretasi oleh manusia. Decision tree adalah model prediksi menggunakan struktur pohon atau struktur berhirarki. Konsep dari decision tree adalah mengubah data menjadi pohon keputusan dan aturan-aturan keputusan. Manfaat utama dari penggunaan decision tree adalah kemampuannya untuk mem-break down proses pengambilan keputusan yang kompleks menjadi lebih simpel sehingga pengambil keputusan akan lebih menginterpretasikan solusi dari permasalahan.




Kelebihan dari metode decision tree adalah:
  • Daerah pengambilan keputusan yang sbelumnya kompleks dan sangat global, dapat diubah menjadi lebih simpel dan spesifik.
  • Eliminasi perhitungan-perhitungan yang tidak diperlukan, karena ketika menggunakan metode decision tree maka sample diuji hanya berdasarkan criteria atau kelas tertentu.
  • Fleksibel untuk memilih features dari internal nodes yang berbeda, feature yang terpilih akan membedakan suatu criteria dibandingkan criteria yang lain dalam node yang sama. Kefleksibelan metode decision tree ini meningkatkan kualitas keputusan yang dihasilkan jika dibandingkan ketika menggunakan metode penghitungan satu tahap yang lebih konvensional.
  • Dalam analisis multivariat, dengan kriteria dan kelas yang jumlahnya sangat banyak, seorang penguji biasanya perlu untuk mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu dari distribusi kelas tersebut. Metode decision tree dapat menghindari munculnya permasalahan ini dengan menggunakan criteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan.


Kekurangan metode decision tree, yaitu:
  • Terjadi overlap terutama ketika kelas-kelas dan criteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memory yang diperlukan.
  • Pengakumulasian jumlah error dari setiap level dalam sebuah pohon keputusan yang besar.
  • Kesulitan dalam mendesain decision tree yang optimal. Hasil kualitas keputusan yang didapatkan dari metode decision tree sangat tergantung pada bagaimana pohon tersebut didesain.




Decision Making, Learning, Knowledge Management, and Information Technology

15.57 Posted by Unknown No comments
Decision Making, Learning, Knowledge Management, and Information Technology
Organizational decision making  merupakan proses menanggapi masalah dengan mencari dan memilih solusi atau tindakan yang akan menciptakan nilai bagi para pemangku kepentingan organisasi (stakeholders)

Keputusan yang diprogram (programmed decisions) yaitu keputusan yang berulang dan rutin.

Keputusan yang tidak diprogram (Non-programmed decisions) yaitu keputusan yang baru dan tidak terstruktur.

Models of Organizational Decision Making :

1. The Rational Model: pengambilan keputusan adalah lugas / terang-terangan.
    Berikut tiga tahap proses :
   
    Tahap 1: Mengidentifikasi masalah yang perlu dipecahkan
    Tahap 2: Merancang dan mengembangkan daftar solusi alternatif dan program tindakan untuk                                     memecahkan masalah
    Tahap 3: Bandingkan kemungkinan konsekuensi dari setiap alternatif dan memutuskan mana tindakan                         menawarkan solusi terbaik

2. The Carnegie Model : Mengenalkan satu set asumsi yang lebih realistis tentang proses pengambilan               keputusan :
    a. Satidficing : pencarian informasi yang terbatas untuk mengidentifikasi masalah dan solusi alternatif.
    b. Bounded Rationality : kapasitas yang terbatas untuk memproses informasi.
    c. Organizational coalitions : solusi yang dipilih adalah hasil dari kompromi, tawar-menawar, akomodasi             diantara koalisi.

3. The incrementalist model: manajer memilih tindakan program alternatif yang hanya sedikit, atau secara           bertahap, berbeda dengan yang digunakan di masa lalu :
    a. Dianggap mengurangi kemungkinan melakukan sebuah kesalahan
    b. Disebut ilmu "mengacaukan melalui (muddling through)"
    c. Mereka memperbaiki atau menghindari kesalahan melalui serangkaian perubahan bertahap

4. The unstructured model : menjelaskan bagaimana pengambilan keputusan terjadi dalam lingkungan                 ketidakpastian yang tinggi :
    a. Model tidak terstruktur mengakui ketidakpastian dalam lingkungan
    b. Manajer memikirkan kembali alternatif mereka ketika mereka mencapai hambatan
    c. Pengambilan keputusan bukanlah proses linier, proses sekuensial
    d. Mencoba menjelaskan bagaimana organisasi membuat keputusan tidak terprogram

5. The garbage can model : pandangan pengambilan keputusan yang membutuhkan proses terstruktur yang       ekstrim :
    a. Para pembuat keputusan cenderung memulai membuat keputusan dari sisi solusi sebagai sisi masalah.
    b. Membuat peluang pengambilan keputusan yang dapat dipecahkan dengan solusi siap pakai    
        berdasarkan pada kompetensi dan ketrampilan.
   c. Koalisi yang berbeda mungkin memperjuangkan altenatif yang berbeda.
   d. Pengambilan keputusan menjadi “ garbage can “ dimana masalah, solusi, dan perpaduan semua orang-
       orang dan berhadapan untuk tindakan organisasi.
   e. Pemilihan alternatif tergantung pada definisi situasi saat ini seseorang atau kelompok memegang  
       kekuasaan.


Algoritma A* ( A star )

15.45 Posted by Unknown No comments
Salah satu algoritma yang dipelajari untuk menyelesaikan permasalahan adalah algoritma A* (A Star). Algoritma A* menyelesaikan masalah yang menggunakan graf untuk perluasan ruang statusnya. Dengan kata lain digunakan untuk menyelesaikan permasalah yang bisa direpresentasikan dengan graf. Algoritma A* adalah sebuah algoritma yang telah diperkaya. Dengan menerapkan suatu heuristik, algoritma ini membuang langkah-langkah yang tidak perlu dengan pertimbangan bahwa langkah-langkah yang dibuang sudah pasti merupakan langkah yang tidak akan mencapai solusi yang diinginkan.

Algoritma A* membangkitkan simpul yang paling mendekati solusi. Simpul ini kemudian disimpan suksesornya ke dalam list sesuai dengan urutan yang paling mendekati solusi terbaik. Kemudian, simpul pertama pada list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi. List simpul ini disebut dengan simpul terbuka(open node).

Simpul pada list bisa berasal dari kedalaman berapapun dari graf. Algoritma ini akan mengunjungi secara mendalam (mirip DFS) selama simpul tersebut merupakan simpul yang terbaik. Jika simpul yang sedang dikunjungi ternyata tidak mengarah kepada solusi yang diinginkan, maka akan melakukan runut balik ke arah simpul akar untuk mencari simpul anak lainnya yang lebih menjanjikan dari pada simpul yang terakhir dikunjungi. Bila tidak ada juga, maka akan terus mengulang mencari ke arah simpul akar sampai ditemukan simpul yang lebih baik untuk dibangkitkan suksesornya. Strategi ini berkebalikan dengan algoritma DFS yang mencari sampai kedalaman yang terdalam sampai tidak ada lagi suksesor yang bisa dibangkitkan sebelum melakukan runut balik, dan BFS yang tidak akan melakukan pencarian secara mendalam sebelum pencarian secara melebar selesai. A* baru berhenti ketika mendapatkan solusi yang dianggap solusi terbaik.

Algoritma A* menerapkan teknik heuristik dalam membantu penyelesaian persoalan. Heuristik adalah penilai yang memberi harga pada tiap simpul yang memandu A* mendapatkan solusi yang diinginkan. Dengan heuristik yang benar, maka A* pasti akan mendapatkan solusi (jika memang ada solusinya) yang dicari. Dengan kata lain, heuristik adalah fungsi optimasi yang menjadikan algoritma A* lebih baik dari pada algoritma lainnya. Namun heuristik masih merupakan estimasi / perkiraan biasa saja Sama sekali tidak ada rumus khususnya. Artinya, setiap kasus memiliki fungsi heuristik yang berbedabeda. Algoritma A* ini bisa dikatakan mirip dengan algoritma Dijkstra, namun pada algoritma Dijkstra, nilai fungsi heuristiknya selalu 0 (nol) sehingga tidak ada fungsi yang mempermudah pencarian solusinya.

Algoritma  A* dapat dijelaskan dengan pseudocode dibawah ini 

1. Masukan node awal ke openlist
2. Loop Langkah – langkah di bawah ini :
    a. Cari node (n) dengan nilai f(n) yang paling rendah dalam open list. Node ini sekarang menjadi current  node.
    b. Keluarkan current node dari openlist dan masukan ke close list
    c. Untuk setiap tetangga dari current node lakukan berikut :
        •  Jika tidak dapat dilalui atau sudah ada dalam close list, abaikan.
        •  Jika belum ada di open list . Buat current node parent dari node tetangga ini. Simpan nilai f,g dan h dari node ini.
        •  Jika sudah ada di open list, cek bila node tetangga ini lebih baik, menggunakan nilai g sebagai ukuran. Jika lebih baik ganti parent dari node ini di openlist menjadi current node, lalu kalkulasi ulang nilai g dan f dari node ini.
    d. Hentikan loop jika :
        • Node tujuan telah ditambahkan ke openlist, yang berate rute telah ditemukan.
        • Belum menemukan node goal sementara open list kosong atau berarti tidak ada rute.
3. Simpan rute. Secara ‘backward’, urut mulai darinode goal ke parent-nya terus sampai mencapai node awal sambil menyimpan node ke dalam sebuah array.

Algorima Dijkstra

15.34 Posted by Unknown No comments
Pada tahun 1959 sebuah tulisan sebanyak tiga halaman yang berjudul A Note on Two Problem in Connexion with Graphs diterbitkan oleh jurnal Numerische Mathematic. Pada tulisan ini, Edsger W. Dijkstra, seorang ilmuwan komputer berusia 29 tahun mengusulkan algoritma-algoritma untuk solusi dari dua masalah teoritis graf dasar. The Minimum Weight adalah algoritma dijkstra untuk lintasan terpendek adalah salah satu algoritma yang paling ternama dalam ilmu komputer dan sebuah algoritma paling populer dalam operasi pencarian (OR).

Definisi Algoritma Dijkstra

Pada dasarnya, algoritma ini adalah salah satu bentuk algoritma greedy. Algoritma ini termasuk algoritma pencarian graf yang digunakan untuk menyelesaikan masalah lintasan terpendek dengan satu sumber pada sebuah graf yang tidak memiliki cost sisi negatif dan menghasilkan sebuah pohon lintasan terpendek. Algoritma ini sering digunakan pada routing. Algoritma dijkstra mencari lintasan terpendek dalam sejumlah langkah. Algoritma ini menggunakan strategi greedy sebagai berikut :

Untuk setiap simpul pada sumber (source) dalam graf, algoritma ini akan mencari jalur dengan cost minnimum antara simpul tersebut dengan simpul lainnya.

Skema Algoritma Dijkstra

Algoritma Dijkstra diterapkan untuk mencari lintasan terpendek pada graf berarah. Namun, algoritma ini juga benar untuk graf tak berarah. Algoritma Dijkstra mencari lintasan terpendek dalam sejumlah langkah. Algoritma ini menggunakan prinsip greedy. Prinsip greedy pada algoritma dijkstra menyatakan bahwa pada setiap langkah kita memilih sisi yang berbobot minimum dan memasukannya dalam himpunan solusi.

Contoh Algoritma Dijkstra






Penerapan  Algoritma Dijkstra pada Jaringan Komputer

Jaringan komputer dapat dimodelkan sebagai sebuah graf, dengan setiap simpul menyatakan sebuah komputer/router dan sisi di dalam graf menyatakan saluran komunikasi (sering disebut link). Setiap sisi mempunyai label nilai ( yang disebut bobot). Bobot tersebut dapat menyatakan jarak geografis(dalam km), kecepatan transfer data, waktu pengiriman).

Mencari lintasan terpendek  dari router asal ke router tujuan dapat diartikan sebagai menentukan lintasan terpendek dari simpul asal ke simpul tujuan di dalam graf yang merepresentasikan jaringan komputer tersebut. Algoritma Dijkstra adalah algoritma yang banyak digunakan untuk mencari lintasan terpendek.







Kamis, 03 Juli 2014

Pengertian Eigen

04.55 Posted by Unknown No comments
Eigen berasal dari kata Jerman yang berarti sendiri, khas, karakteristik atau
individu. Untuk memahami vektor eigen kita perlu memahami fungsi operasional
dasar dari sebuah matriks. Secara umum, matriks linier mengubah arah dan besaran
vektor. Eigenanalysis berguna dalam aplikasi seperti diagonalisasi dari korelasi
matriks, pemrosesan sinyal radar, ekstraksi fitur, pengenalan pola, coding sinyal,
estimasi kebisingan, dan pemisahan biomedis campuran atau sinyal komunikasi.

Eigenvector dan eigenvalues

Sebuah matriks bujur sangkar dengan orde n x n misalkan A, dan sebuah
vektor kolom X. Vektor X adalah vektor dalam ruang Euklidian R yang
dihubungkan dengan sebuah persamaan:








Dimana adalah suatu skalar dan X adalah vektor yang tidak nol Skalar
dinamakan nilai Eigen (eigenvalue) dari matriks A. Nilai eigen adalah nilai
karakteristik dari suatu matriks bujur sangkar. Vektor X dalam persamaan (1)
adalah suatu vektor yang tidak nol yang memenuhi persamaan (1) untuk nilai eigen
yang sesuai dan disebut dengan vektor eigen. Jadi vektor X mempunyai nilai
tertentu untuk nilai eigen tertentu.

Perhitungan eigenvector

Kita tinjau kembali persamaan dimana A adalah matriks bujur
sangkar dan X adalah vector bukan nol yang memenuhi persamaan tersebut.
Kita tinjau sebuah matriks bujur sangkar orde 2 x 2 berikut: