Pages

Rabu, 28 September 2016

Artificial Neural Network (ANN)

Artificial Neural Network (ANN) merupakan cabang ilmu multi yang disiplin yang meniru cara kerja otak makhluk hidup. Salah satu struktur yang ditiru adalah bentuk neuralnya. Jaringan syaraf tiruan dapat menyelesaikan rumit / tidak mungkin jika diselesaikan dengan menggunakan komputasi secara konvensional. 


Otak manusia / hewan terdiri atas sel – sel yang disebut neuron dibandingkan dengan sel – sel lain selalu mereproduksi dirinya kemudian mati, neuron memiliki keistimewaan tidak mati. Hal ini menyebabkan informasi di dalamnya dapat bertahan. Diperkirakan otak manusia terdiri dari 109 neuron dan terdapat 100 jenis neuron yang diketahui. Neuron – neuron ini terbagi atas grup – grup apa yang disebut jaringan, yang dibedakan atas fungsinya dan setiap grup mengandung ribuan neuron yang saling berhubungan.

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 WalterPitts 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.


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.


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.


Dari gambar di atas, bisa dilihat ada beberapa bagian dari otak manusia, yaitu:
1.   Neuron : Pusat pemrosesan informasi dari masukan ribuan dendrites dan keluaran sebuah axon
2.      Nukleus : Unit proses untuk melakukan segala proses
3.      Axon : Mengirimkan keluaran untuk ke jaringan lain
4.      Dendrit : Mengirimkan masukkan ke unit proses
5.      Sinapsis : Untuk menyimpan pengetahuan

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.


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

Neural network  dibangun dari banyak node/unit yang dihubungkan oleh link secara langsung. Link dari unit yang satu ke unit yang lainnya digunakan untuk melakukan propagasi aktivasi dari unit pertama ke unit selanjutnya. Setiap link memiliki bobot numerik. Bobot ini menentukan kekuatan serta penanda dari sebuah konektivitas.

Proses pada ANN dimulai dari input yang diterima oleh neuron beserta dengan nilai bobot dari tiap-tiap input yang ada. Setelah masuk ke dalam neuron, nilai input yang ada akan dijumlahkan oleh suatu fungsi perambatan (summing function), yang bisa dilihat seperti pada di gambar dengan lambang sigma (∑). Hasil penjumlahan akan diproses oleh fungsi aktivasi setiap neuron, disini akan dibandingkan hasil penjumlahan dengan threshold (nilai ambang) tertentu. Jika nilai melebihi threshold, maka aktivasi neuron akan dibatalkan, sebaliknya, jika masih dibawah nilaithreshold, neuron akan diaktifkan. Setelah aktif, neuron akan mengirimkan nilai output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. Proses ini akan terus berulang pada input-input selanjutnya.

ANN terdiri dari banyak neuron di dalamnya. Neuron-neuron ini akan dikelompokkan ke dalam beberapa layer. Neuron yang terdapat pada tiap layer dihubungkan dengan neuron pada layer lainnya. Hal ini tentunya tidak berlaku pada layer input dan output, tapi hanya layer yang berada di antaranya. Informasi yang diterima di layer input dilanjutkan ke layer - layer dalam ANN secara satu persatu hingga mencapai layer terakhir/layer output. Layer yang terletak di antara input dan output disebut sebagai hidden layer. Namun, tidak semua ANN memiliki hidden layer, ada juga yang hanya terdapat layer input dan output saja.
 
CONTOH PENERAPAN ARTIFICIAL NEURAL NETWORK
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:


Courtesy Hampson Russell
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.
Courtesy Hampson Russell
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).
Courtesy Hampson Russell
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.




Sumber :

  • http://elektronika-dasar.web.id/jaringan-syaraf-tiruan-neural-network/
  • http://www.metode-algoritma.com/2013/06/artificial-neural-network-ann-jaringan.html
  • Yani, Eli. (2005). Pengantar Jaringan Saraf Tiruan. Artikel kuliah.


Sistem Pakar

APA ITU SISTEM PAKAR ?

Sistem pakar adalah salah satu cabang dari AI yang membuat penggunaan secara luas knowledge yang khusus untuk penyelesaian masalah tingkat manusia yang pakar. Seorang pakar adalah orang yang mempunyai keahlian dalam bidang tertentu, yaitu pakar yang mempunyai knowledge atau kemampuan khusus yang orang lain tidak mengetahui atau mampu dalam bidang yang dimilikinya. Ketika sistem pakar dikembangkan pertama kali sekitar tahun 70-an system pakar hanya berisi knowledge yang eksklusif. Namun demikian sekarang ini istilah sistem pakar sudah digunakan untuk berbagai macam system yang menggunakan teknologi sistem pakar itu. Teknologi sistem pakar ini meliputi Bahasa sistem pakar, program dan perangkat keras yang dirancang untuk membantu pengembangan dan pembuatan sistem pakar.


Sistem Pakar biasa disebut Expert System merupakan suatu pengembangan dari Decision Support Systems (DSS), yang memiliki fungsi sebagai konsultan. Sistem pakar merupakan salah satu aplikasi dari Artificial Inteligence (AI) yang banyak dimanfaatkan dalam dunia bisnis.

Knowledge dalam system pakar mungkin saja seorang ahli, atau knowledge yang umumnya terdapat dalam buku, majalah dan orang yang mempunyai pengetahuan tentang suatu bidang. Istilah sistem pakar, sistem knowledge-base, atau sistem pakar knowledge-base, sering digunakan dengan arti yang sama. Kebanyakan orang menggunakan istilah sistem pakar karena lebih singkat, bahkan walau belum benar-benar pakar, hanya menggunakan knowledge secara umum.


PERBANDINGAN KEMAMPUAN SEORANG PAKAR DENGAN SISTEM PAKAR

Factor
Human expert
Expert system
Time Availbility
Hari kerja
Setiap saat
Geografis
Lokal/tertentu
Di mana saja
Keamanan
Tidak tergantikan
Dapat diganti
Perishable/dapat habis
Ya
Tidak
Performansi
Variable
Konsisten
Kecepatan
Variable
Konsisten
Biaya
Tinggi
Terjangkau

Ada beberapa alasan mendasar mengapa sistem pakar dikembangkan untuk menggantikan seseorang pakar, di antaranya:
  1. Dapat menyediakan kepakaran setiap waktu dan di berbagai lokasi
  2. Secara otomatis mengerjakan tugas - tugas rutin yang membutuhkan seorang pakar
  3. Seorang pakar akan pensiun atau pergi
  4. Seorang pakar adalah mahal
  5. Kepakaran dibutuhkan juga pada lingkungan yang tidak bersahabat


PERBANDINGAN ANTARA SISTEM KONVENSIONAL DAN SISTEM PAKAR

Sistem Konvensional
Sistem Pakar
Informasi dan pemrosesan umumnya digabung dalam satu peogram sekuensial.
Basis pengetahuam dari mekanisme pemrosesan (inferensi).
Program tidak pernah salah (kecuali pemrogramnya yang salah).
Program bisa saja melakukan kesalahan.
Tidak menjelaskan mengapa input dibutukan atau bagaimana hasil yang diperoleh.
Penjelasan (explanation) merupakan bagian dari sestem pakar.
Membutuhkan semua input data.
Tidak harus membutuhkan semua input data atau fakta.
Perubahan pada program merepotkan.
Perubahan pada kaidah dapat dilakukan dengan mudah.
Sistem bekerja jika sudah lengkap.
Sistem dapat bekerja hanya dengan kaidah yang sedikit.
Eksekusi secara algoritmik (step – by – step).
Eksekusi dilakukan secara heuristik dan logis.
Manipulasi efektif pada database yang besar.
Manipulasi efektif pada basis pengetahuan yang besar.
Efisiensi adalah tujuan utama.
Efektivitas adalah tujuan utama.
Data kuantitatif.
Data kuantitatif.
Representasi dalam numerik
Representasi pengetahuan dalam simbolik.
Menangkap, menambah dan mendistribusi data numerik atau informasi
Menangkap, menambah dan mendistribus pertimbangan (judgemant) dan pengetahuan.

Tujuan dari sebuah sistem pakar adalah untuk mentransfer kepakaran yang dimiliki seorang pakar ke dalam komputer, dan kemudian kepada orang lain (nonexpert). Aktivitas yang dilakukan untuk memindahkan kepakaran adalah:
1.      Knowledge Acquisition (dari pakar atau sumber lainnya)
2.      Knowledge Representation (ke dalam computer)
3.      Knowledge Inferencing


4.      Knowledge Transfering


Ada beberapa keunggulan sistem pakar, di antaranya: 
1.      Menghimpun data dalam jumlah yang snagat besar.
2.      Menyimpan data tersebut untuk jangka waktu yang panjang dalam suatu bentuk tertentu.
3.      Mengerjakan perhitungan secara cepat dan tepat dan tanpa jemu mencari kembali data yang tersimpan dengan kecepatan tinggi.

Sementara kemampuan sistem pakar, di antaranya:
1.      Menjawab berbagai pertanyaan yang menyangkut bidang keahliannya.
2.      Bila diperlukan dapat menyajikan asumsi dan alur penalaran yang digunakan untuk sampai ke jawaban yang dikehendaki.
3.      Menambah fakta kaidah dan alur penalaran sahih yang baru ke dalam otaknya. 

Menurut Turban (1995), terdapat tiga orang yang terlibat dalam lingkungan sistem pakar, yaitu:
1.   Pakar, adalah orang yang memiliki pengetahuan khusus, pendapat, pengalaman dan metode, serta kemampuan untuk mengaplikasikan keahliannya tersebut guna menyelesaikan masalah.
2. Knowledge engineer (Perekayasa Sistem), adalah orang yang membantu pakar dalam menyusun area permasalahan dengan menginterplementasikan dan mengintegrasikan jawaban-jawaban pakar atas pertanyaan yang diajukan, menggambarkan analogi, mengajukan counter example dan menerangkan kesulitan-kesulitan konseptual.
3.  Pemakai, sistem pakar memiliki beberapa pemakai, yaitu: pemakai bukan pakar, pelajar, pembangun system pakar yang ingin meningkatkan dan menambah basis pengetahuan, dan pakar.

TIPE PENGETAHUAN DALAM PENJELASAN SISTEM PAKAR

1.      Reasoning Domain Knowledge (RDK), merupakan domain pengetahuan yang dikodekan oleh domain pakar dalam system pakar yang sesuai.
2.      Communication Domain Knowledge (CDK), merupakan pengetahuan tentang domain yang diperlukan untuk komunikasi tentang domain itu.
3.      Domain Communication Knowledge (DCK), merupakan pengetahuan tentang bagaimana cara mengkomunikasikan domain itu.  

STRUKTUR SISTEM PAKAR

            Sistem pakar disusun oleh dua bagian utama, yaitu lingkungan pengembangan (development environment) dan lingkungan konsultasi (consultation environment) (Turban, 1995). Lingkungan pengembangan system pakar digunakan untuk memasukkan pengetahuan pakar ke dalam lingkungan sistem pakar, sedangkan lingkungan konsultasi digunakan oleh pengguna yang bukan pakar guna memperoleh pengetahuan pakar.
 Ciri-ciri dan Kategori Masalah Sistem Pakar
            Sistem pakar merupakan program-program praktis yang menggunakan strategi heuristik yang dikembangkan oleh manusia untuk menyelesaikan permasalahan-permasalahan yang spesifik. Disebabkan oleh keheuristikannya dan sifatnya yang berdasarkan pada pengetahuan, maka umumnya sistem pakar bersifat:
1.   Memiliki informasi yang handal, baik dalam menampilkan langkah-langkah antara maupun dalam menjawab pertanyaan-pertanyaan tentang proses penyelesaian.
2.   Mudah dimodifikasi, yaitu dengan menambah atau menghapus suatu kemampuan dari basis pengetahuannya.
3.      Heuristic dalam menggunakan pengetahuan untuk mendapatkan penyelesaiannya.
4.      Dapat digunakan dalam berbagai jenis komputer.
5.      Memiliki kemampuan untuk beradaptasi, 
Secara umum ada beberapa kategori dan area permasalahan sistem pakar, yaitu:
1.  Interpretasi, yaitu pengambilan keputusan tingkat tinggi dari sekumpulan data mentah (pengawasan, pengenalan ucapan, analisis citra, analisis kecerdasan).
2.   Proyeksi, yaitu memprediksi akibat-akibat yang dimungkinkan dari situasi-situasi tertentu (peramalan, prediksi demografis, peramalan ekonomi, prediksi lalulintas, estimasi hasil, militer, pemasaran, peramalan keuangan).
3.     Diagnosis, yaitu menentukan sebab malfungsi dalam situasi kompleks yang didasarkan pada gejala-gejala yang teramati (medis, elektronis, mekanis dan diagnosis perangkat lunak).  
4.     Perencanaan, yaitu merencanakan serangkaian tindakan yang akan dapat mencapai sejumlah tujuan dengan kondisi awal tertentu (perencanaan keuangan, komunikasi, militer, pengembangan produk, routing, manajemen proyek).
5.    Desain, yaitu menentukan konfigurasi komponen-komponen sistem yang cocok dengan tujuan-tujuan kinerja tertentu yang memenuhi kendala-kendala tertentu (layout sirkuit dan perancangan pembangunan).
6.    Monitoring, yaitu membandingkan tingkah laku suatu sistem yang teramati dengan tingkah laku yang diharapkan darinya (Computer Aided Monitoring System).
7.   Debugging dan Repair, yaitu menentukan dan mengimplementasikan cara-cara untuk mengatasi malfungsi (memberikan resep obat terhadap suatu kegagalan).
8.   Instruksi, yaitu mendeteksi dan mengoreksi defisiensi dalam pemahaman domain subjek (melakukan instruksi untuk diagnosis, debugging dan perbaikan kinerja).
9.  Pengedalian, yaitu mengatur tingkah laku suatu environment yang kompleks (prediksi, perbaikan dan monitoring kelakuan sistem).
10.    Seleksi, mengidentifikasikan pilihan terbaik dari sekumpulan (list) kemungkinan.
11.    Simulasi, pemodelan interaksi antara komponen-komponen sistem.  


Penerapan Sistem pakar dalam Industri / Manufaktur
Manufaktur di definisikan sebagai urutan-urutan kegiatan yang saling berhubungan meliputi perancangan, perencanaan, pemilihan material, produksi, pengontrolan kualitas, menajemen serta pemasaran produk. Proses manufaktur yang penyelesaiannya dapat dibantu oleh system pakar antara lain :
– Sistem Pakar Dalam Perancangan PRIDE(Pinch Roll Interactive Design Expert / Environment). Sistem pakar ini digunakan untuk merancang system pengaturan kertas untuk mesin fotocopy. Sistem ini membuat rancangan dengan representasi pengetahuan tentang rancangan berdasarkan kumpulan goal, metoda perancangan, generator dan aturan-aturan yang terstruktur.
– System Pakar Dalam Perencanaan Wood Trus fabrication Application merupakan contoh system pakar dalam proses perencanaan. System ini dibuat dengan menggunakan shell sitem pakar SPS (Semi Intelligent Process Selector).
– Sistem Pakar Dalam Penjadwalan Sistem pakar juga digunakan dalam penjadwalan, dibawah ini adalah beberapan contoh kegunaan system pakar dalam penjadwalan :
– Contionuous Caster Steel Mill Scheduling Application
System pakar ini berbasis fuzzy logic yang dibuat untuk monitoring on line dan penjadwalan continuous caster steel mill.
Continuous caster stell mill mengolah material seperti scrap, pig iron dan refined ore melalui proses tertentu untuk menghasilkan lempeng baja yang memiliki kulitas dan komposisi sesuai kebutuhan.
-Master Production Scheduling Aplication (MPS)
Sistem pakar ini dikembangkan untuk melakukan penjadwalan produksi master untuk manufaktur Integrated Circuit (IC). Master Production Scheduling (MPS) merupakan aktivitas perencanaan yang sangat luas, yang mengatur dan mengkoordinasi fase-fase berurutan proses penjadwalan manufaktur tertentu.
– Sistem Pakar Dalam Proses Kontrol Beberapa contoh penggunaan system pakar dalam proses control adalah sebagai berikut :
–  Aluminium Foil Rolling Flatness control Appilcation
System pakar ini merupakan system pakar yang dibuat mengontrol kekaratan aluminium foil secara otomatis. System ini menyesuaikan bentuk pola target menurut karakteristik material dan kondisi pengoperasiannya.
– Blast Furnace Heat Control Application
System pakar ini dibuat untuk mengontrol tingkat panas blast furnace (tanur).
– Sistem Pakar Dalam Production Planning Dan Production Control Perencanaan produksi dilakukan dalam hal kuantitas, waktu, kapasitas dan biaya pengendalian produksi meliputi penyelesaian pesanan, pengawasan pesanan dan pengamanan kualitas.
Manfaat system pakar dalam proses manufaktur / industry adalaah sebagai berikut :
1)      Meningkatkan produktivitas
2)      Mengambil alih keahlian yang langka
3)      Memudahkan pengoperasian peralatan
4)     Kemampuan bekerja dengan informasi yang tidak pasti dan tidak lengkap

Sumber : 
Muhammad Arhami, Konsep Dasar Sistem Pakar, Penerbit Andi
- http://slideplayer.info/slide/2540523/
- Syamsuddin,Aries , PENGANTAR SISTEM PAKAR , 2004, www.IlmuKomputer.Com