Minggu, 24 Desember 2017

Soft Computing

SOFT COMPUTING


 
Soft computing menjadi bagian formal dari ilmu komputer sejak awal tahun 1990an.

1.             Apakah Soft Computing itu?
Menurut Lotfi A. Zadeh (1992), soft computing adalah koleksi dari beberapa metodologi yang bertujuan untuk mengeksploitasi adanya toleransi terhadap ketidaktepatan (imprecision), ketidakpastian (uncertainity), kebenaran parsial (partial truth), dan pendekatan untuk mencapai tractability, ketahanan (robustness) dan biaya penyelesaian murah.

Soft computing merupakan inovasi baru dalam membangun sistem cerdas. Sistem cerdas ini merupakan sistem yang memiliki keahlian seperti manusia pada domain tertentu, mampu beradaptasi dan belajar agar dapat bekerja lebih baik jika terjadi perubahan lingkungan.


2.             Komponen Soft Computing (SC)
SC dapat dipandang sebagai suatu komponen dasar untuk medan kemunculan konsepsi kecerdasan:
a.      Sistem Fuzzy (Fuzzy System / FS)
b.      Jaringan Syaraf (Neural Networks / NN)
c.       Penalaran Probabilistik (Probabilistic Reasoning / PR)
d.     Evolutionary Computing (EC)
e.      Machine Learning (ML)

FS mengakomodasi ketidaktepatan (imprecision), PR mengakomodasi ketidakpastian (uncertainity), NN menggunakan pembelajaran untuk meminimalisir kebenaran parsial (partial truth) dan perkiraan untuk mencapai tractability, EC untuk mencapai optimasi dalam rangka ketahanan (robustness) dan biaya penyelesaian murah.

Dengan demikian ke-4 unsur dalam SC bukan merupakan kompetisi melainkan saling melengkapi. Bahkan dalam kenyataanya, keempatnya digunakan secara sinergis ketimbang digunakan dikerjakan secara sendiri.

Pekerjaan dari teknik-teknik SC mendorong ke arah sistem-sistem yang memiliki MIQ (Machine Intelligence Quotient) tinggi. Dalam ukuran besar, ini adalah MIQ tinggi dari sistem yang mendasarkan pada SC (SC-based system) yang meliputi pertumbuhan cepat dalam jumlah dan macam aplikasi-aplikasi soft computing.

3.             Hubungan dan Perbandingan Antar Komponen SC

Komponen
Pembelajaran
Ekstraksi Pengetahuan
Operasi Real-time
Representasi Pengetahuan
Optimasi
FS / PR
tidak
ya
ya
simbolik / numerik
tidak
NN
ya
tidak
ya
numerik
tidak
EC
ya
tidak
tidak
numerik
ya
AI Conventional
tidak
ya
tidak
simbolik / numerik
tidak


4.             Karakteristik SC
Soft Computing memiliki karakteristik berikut:
a.      Soft Computing memerlukan keahlian manusia, apabila direpresentasikan dalam bentuk aturan (if_then).
b.      Model komputasinya diilhami oleh proses biologis.
c.       Soft Computing merupakan teknik optimasi baru.
d.     Soft Computing menggunakan komputasi numeris.
e.      Soft Computing memiliki toleransi kegagalan (meskipun kualitasnya berangsur-angsur memburuk).


5.             SC Saat Ini
BISC Group (Berkeley Initiative on Soft Computing)

Soft Computing

SOFT COMPUTING


 
Soft computing menjadi bagian formal dari ilmu komputer sejak awal tahun 1990an.

1.             Apakah Soft Computing itu?
Menurut Lotfi A. Zadeh (1992), soft computing adalah koleksi dari beberapa metodologi yang bertujuan untuk mengeksploitasi adanya toleransi terhadap ketidaktepatan (imprecision), ketidakpastian (uncertainity), kebenaran parsial (partial truth), dan pendekatan untuk mencapai tractability, ketahanan (robustness) dan biaya penyelesaian murah.

Soft computing merupakan inovasi baru dalam membangun sistem cerdas. Sistem cerdas ini merupakan sistem yang memiliki keahlian seperti manusia pada domain tertentu, mampu beradaptasi dan belajar agar dapat bekerja lebih baik jika terjadi perubahan lingkungan.


2.             Komponen Soft Computing (SC)
SC dapat dipandang sebagai suatu komponen dasar untuk medan kemunculan konsepsi kecerdasan:
a.      Sistem Fuzzy (Fuzzy System / FS)
b.      Jaringan Syaraf (Neural Networks / NN)
c.       Penalaran Probabilistik (Probabilistic Reasoning / PR)
d.     Evolutionary Computing (EC)
e.      Machine Learning (ML)

FS mengakomodasi ketidaktepatan (imprecision), PR mengakomodasi ketidakpastian (uncertainity), NN menggunakan pembelajaran untuk meminimalisir kebenaran parsial (partial truth) dan perkiraan untuk mencapai tractability, EC untuk mencapai optimasi dalam rangka ketahanan (robustness) dan biaya penyelesaian murah.

Dengan demikian ke-4 unsur dalam SC bukan merupakan kompetisi melainkan saling melengkapi. Bahkan dalam kenyataanya, keempatnya digunakan secara sinergis ketimbang digunakan dikerjakan secara sendiri.

Pekerjaan dari teknik-teknik SC mendorong ke arah sistem-sistem yang memiliki MIQ (Machine Intelligence Quotient) tinggi. Dalam ukuran besar, ini adalah MIQ tinggi dari sistem yang mendasarkan pada SC (SC-based system) yang meliputi pertumbuhan cepat dalam jumlah dan macam aplikasi-aplikasi soft computing.

3.             Hubungan dan Perbandingan Antar Komponen SC

Komponen
Pembelajaran
Ekstraksi Pengetahuan
Operasi Real-time
Representasi Pengetahuan
Optimasi
FS / PR
tidak
ya
ya
simbolik / numerik
tidak
NN
ya
tidak
ya
numerik
tidak
EC
ya
tidak
tidak
numerik
ya
AI Conventional
tidak
ya
tidak
simbolik / numerik
tidak


4.             Karakteristik SC
Soft Computing memiliki karakteristik berikut:
a.      Soft Computing memerlukan keahlian manusia, apabila direpresentasikan dalam bentuk aturan (if_then).
b.      Model komputasinya diilhami oleh proses biologis.
c.       Soft Computing merupakan teknik optimasi baru.
d.     Soft Computing menggunakan komputasi numeris.
e.      Soft Computing memiliki toleransi kegagalan (meskipun kualitasnya berangsur-angsur memburuk).


5.             SC Saat Ini
BISC Group (Berkeley Initiative on Soft Computing)

Neural Network

DASAR PEMAHAMAN NEURAL NETWORK

Pendahuluan
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 1011neuron. 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
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 nilai threshold, 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.

Teori Fuzzy

Logika Fuzzy

Logika fuzzy adalah salah satu komponen pembentuk soft computing. Logika fuzzy pertama kali diperkenalkan oleh Prof. Lotfi A. Zadeh pada tahun 1965. Dasar logika fuzzy adalah teori himpunan fuzzy. Pada teori himpunan fuzzy, peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting. Nilai keanggotaan atau derajat keanggotaan atau membership functionmenjadi ciri utama dalam penalaran dengan logika fuzzy tersebut (Kusuma Dewi, 2003).
Logika fuzzy dapat dianggap sebagai kotak hitam yang berhubungan antara ruang input menuju ruang output (Kusuma Dewi, 2003). Kotak hitam tersebut berisi cara atau metode yang dapat digunakan untuk mengolah data input menjadi output dalam bentuk informasi yang baik.

Alasan Digunakannya Logika Fuzzy

Adapun beberapa alasan digunakannya logika fuzzy (Kusuma Dewi, 2003), adalah:
  1. Konsep logika fuzzy mudah dimengerti. Karena logika fuzzy menggunakan dasar teori himpunan, maka konsep matematis yang mendasari penalaran fuzzy tersebut cukup mudah untuk dimengerti.
  2. Logika fuzzy sangat fleksisbel, artinya mampu beradaptasi dengan perubahan-perubahan, dan ketidakpastian yang menyertai permasalahan.
  3. Logika fuzzy memiliki toleransi terhadap data yang cukup homogeny, dan kemudian ada beberapa data “eksklusif”, maka logika fuzzy memiliki kemampuan untuk menangani data eksklusif tersebut.
  4. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan. Dalam hal ini, sering dikenal dengan istilah fuzzyexpert sistem menjadi bagian terpenting.
  5. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional. Hal ini umumnya terjadi pada aplikasi di bidang teknik mesin maupu teknik elektro.
  6. Logika fuzzy didasari pada bahasa alami. Logika fuzzy menggunakan bahasa sehari-hari sehingga mudah dimengerti.

Himpunan Fuzzy

Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu himpunan A, yang sering ditulis dengan (X), memiliki dua kemungkinan, yaitu:
  1. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau
  2. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.
Contoh:
Misalkan variabel umur dibagi menjadi tiga kategori, yaitu:
MUDA                        umur < 35 tahun
PAROBAYA             35 ≤ umur ≤ 55 tahun
TUA                            umur > 55 tahun
Dari kategori diatas dapat dijelaskan bahwa:
  1. Apabila seseorang berusia 34 tahun, maka ia dikatakan MUDA ( (34)=1)
  2. Apabila seseorang berusia 35 tahun, maka ia dikatakan TIDAK MUDA ( (35)=0)
  3. Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan TIDAK MUDA ( (35-1 hari)=1)
  4. Apabila seseorang berusia 35 tahun, maka ia dikatakan PAROBAYA ( (34)=1)
  5. Apabila seseorang berusia 34 tahun, maka ia dikatakan TIDAK PAROBAYA ( (34)=0)
  6. Apabila seseorang berusia 55 tahun, maka ia dikatakan PAROBAYA ( (55)=1)
  7. Apabila seseorang berusia 35 tahun kurang 1 hari, maka ia dikatakan TIDAK PAROBAYA ( (35-1 hari)=0)
Dari sini dapat dikatakan bahwa pemakaian himpunan crisp untuk menyatakan umur sangat tidak adil. Adanya perubahan kecil saja pada suatu nilai mengakibatkan perbedaan kategori yang cukup signifikan.
Himpunan fuzzy digunakan untuk mengantisipasi hal tersebut. Seseorang dapat masuk dalam dua himpunan yang berbeda, MUDA dan PAROBAYA, PAROBAYA dan TUA, dan sebagainya. Seberapa besar eksistensinya dalam himpunan tersebut dapat dilihat pada nilai keanggotaanya. Gambar berikut menunjukkan himpunan fuzzy untuk variabel umur.
Pada gambar diatas, dapat dilihat bahwa:
  1. Seseorang yang berumur 40 tahun, termasuk dalam himpunan MUDA dengan ( (40) = 0,25); namun dia juga termasuk dalam himpunan PAROBAYA ( (40) = 0,5).
  2. Seseorang yang berumur 50 tahun, termasuk dalam himpunan TUA dengan ( (50) = 0,25); namun dia juga termasuk dalam himpunan PAROBAYA ( (50)=0,5).
Terkadang kemiripan antara keanggotaan fuzzy dengan probabilitas menimbulkan kerancuan. Keduanya memiliki nilai interval [0,1], namun interpretasi nilainya sangat berbeda antara kedua kasus tersebut. Keanggotaan fuzzy memberikan suatu ukuran terhadap pendapat atau keputusan, sedangkan probabilitas mengindikasikan proporsi terhadap keseringan suatu hasil bernilai benar dalam jangka panjang. Misalnya, jika nilai keanggotaan bernilai suatu himpunan fuzzy USIA adalah 0,9; maka tidak perlu dipermasalahkan berapa  seringnya nilai itu diulang secara individual untuk mengharapkan suatu hasil yang hampir pasti muda. Dilain pihak, nilai probilitas 0,9 usia berarti 10% dari himpunan tersebut diharapkan tidak muda (Kusuma Dewi, 2003).
Himpunan Fuzzy memiliki 2 atribut (Kusuma Dewi, 2003), yaitu:
  1. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami, speerti: MUDA, PAROBAYA, TUA.
  2. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu variabel seperti: 40, 25, 50, dsb.
Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy (Kusuma Dewi, 2003), yaitu:
  1. Variabel fuzzy yaitu variabel yang hendak dibahas dalam suatu sistem fuzzy. Contohnya: umur, temperature, permintaan, dsb.
  2. Himpunan fuzzy yaitu suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy. Contohnya: variabel temperatur, terbagi menjadi 5 himpuan fuzzy, yaitu: DINGIN, SEJUK, NORMAL, HANGAT, dan PANAS.
  3. Semesta Pembicaraan yaitu keseluruhan nilai yang diperoleh untuk dioperasikan dalam suatu variabel fuzzy, semesta pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri kekanan. Nilai semesta pembicaraan dapat berupa bilangan positif maupun negatif. Adakalanya nilai semesta pembicaraan ini tidak dibatasi batas atasnya. Contohnya semesta pembicaraan untuk variabel umur: [0 +∞].
Domain Himpunan Fuzzy yaitu keseluruhan nilai yang diijinkan dan boleh dioperasikan dalam suatu himpunan fuzzy. Seperti halnya semesta pembicaraan, domain merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai domain dapat berupa bilangan positif maupun negatif. Contoh domain himpuanan fuzzy: DINGIN = [0,20], SEJUK = [15,20], NORMAL = [20,30], HANGAT = [25,35] dan PANAS = [30,40].