Jaringan Saraf Tiruan
-
Upload
mizuma-ciel-en -
Category
Documents
-
view
36 -
download
5
description
Transcript of Jaringan Saraf Tiruan
Pengertian Jaringan Saraf Tiruan ( JST )
Jaringan saraf tiruan (JST) (Bahasa Inggris: artificial neural network (ANN), atau juga
disebut simulated neural network (SNN), atau umumnya hanya disebut neural network
(NN)), adalah jaringan dari sekelompok unit pemroses kecil yang dimodelkan
berdasarkanjaringan saraf manusia. JST merupakan sistem adaptif yang dapat mengubah
strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun internal
yang mengalir melalui jaringan tersebut.
Secara sederhana, JST adalah sebuah alat pemodelan data statistik non-linier. JST
dapat digunakan untuk memodelkan hubungan yang kompleks antara input dan output
untuk menemukan pola-pola pada data.
Definisi Jaringan Saraf Tiruan
Suatu jaringan saraf tiruan memproses sejumlah besar informasi secara paralel dan
terdistribusi, hal ini terinspirasi oleh model kerja otak biologis. Beberapa definisi tentang
jaringan saraf tiruan adalah sebagai berikut di bawah ini.
Hecht-Nielsend (1988) mendefinisikan sistem saraf buatan sebagai berikut:
"Suatu neural network (NN), adalah suatu struktur pemroses informasi yang terdistribusi
dan bekerja secara paralel, yang terdiri atas elemen pemroses (yang memiliki memori lokal
dan beroperasi dengan informasi lokal) yang diinterkoneksi bersama dengan alur sinyal
searah yang disebut koneksi. Setiap elemen pemroses memiliki koneksi keluaran tunggal
yang bercabang (fan out) ke sejumlah koneksi kolateral yang diinginkan (setiap koneksi
membawa sinyal yang sama dari keluaran elemen pemroses tersebut). Keluaran dari elemen
pemroses tersebut dapat merupakan sebarang jenis persamaan matematis yang diinginkan.
Seluruh proses yang berlangsung pada setiap elemen pemroses harus benar-benar
dilakukan secara lokal, yaitu keluaran hanya bergantung pada nilai masukan pada saat itu
yang diperoleh melalui koneksi dan nilai yang tersimpan dalam memori lokal".
Menurut Haykin, S. (1994), Neural Networks: A Comprehensive Foundation, NY, Macmillan,
mendefinisikan jaringan saraf sebagai berikut:
“Sebuah jaringan saraf adalah sebuah prosesor yang terdistribusi paralel dan mempuyai
kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman dan
membuatnya tetap tersedia untuk digunakan. Hal ini menyerupai kerja otak dalam dua hal
yaitu: 1. Pengetahuan diperoleh oleh jaringan melalui suatu proses belajar. 2. Kekuatan
hubungan antar sel saraf yang dikenal dengan bobot sinapsis digunakan untuk menyimpan
pengetahuan.
Dan menurut Zurada, J.M. (1992), Introduction To Artificial Neural Systems, Boston: PWS
Publishing Company, mendefinisikan sebagai berikut:
“Sistem saraf tiruan atau jaringan saraf tiruan adalah sistem selular fisik yang dapat
memperoleh, menyimpan dan menggunakan pengetahuan yang didapatkan dari
pengalaman”.
DARPA Neural Network Study (1988, AFCEA International Press, p. 60) mendefinisikan
jaringan syaraf buatan sebagai berikut :
Sebuah jaringan syaraf adalah sebuah sistem yang dibentuk dari sejumlah elemen pemroses
sederhana yang bekerja secara paralel dimana fungsinya ditentukan oleh stuktur jaringan,
kekuatan hubungan, dan pegolahan dilakukan pada komputasi elemen atau nodes. [1]
Jaringan syaraf tiruan memiliki beberapa kelebihan yaitu :
1. Mampu memecahkan masalah yang sukar disimulasikan dengan menggunakan teknik
analitikal logika seperti pada sistem pakar dan teknologi software standar.
2. Mampu memahami data yang dimasukkan meskipun data tersebut tidak lengkap
(incomplete data) atau data yang terkena gangguan (noisy data).
3. Jaringan syaraf tiruan yang sulit diciptakan dengan pendekatan simbolik/logikal dari
teknik tradisional artificial intelligence, yaitu bahwa jaringan syaraf tiruan mampu belajar
dari pengalaman.
4. Hemat biaya dan lebih nyaman bila dibandingkan dengan harus menulis program seperti
software standar. Pada jaringan syaraf tiruan, yang perlu dilakukan adalah melatih jaringan
untuk ‘belajar’ dengan cara memasukkan set data berisi sekumpulan kasus ke dalam
jaringan.
5. Jaringan syaraf tiruan terbuka untuk digabungkan dengan tekonologi lain, misalnya
dengan expert system, logika fuzzy, algoritma genetika, atau diintregasikan dengan
database. [2]
Jaringan syaraf tiruan memiliki beberapa kekurangan yaitu :
• Kurang mampu untuk melakukan operasi operasi numerik dengan presisi tinggi
• Kurang mampu melakukan operasi algoritma aritmatik, operasi logika dan simbolis
• Lamanya proses training yang mungkin terjadi dalam waktu yang sangat lama untuk
jumlah data yang besar
Pengaplikasian Jaringan Saraf Tiruan
Pengenalan pola (pattern recognition)
– Huruf, tanda tangan, suara, gambar yang sudah sedikit berubah (mengandung
noise)
– Identifikasi pola saham
– Pendeteksian uang palsu, kanker
Signal Processing
– Menekan noise pada saluran telepon
Peramalan
Peramalan saham
Autopilot dan simulasi
Kendali otomatis otomotif
[5]
Cara Kerja Komponen Jaringan Syaraf Tiruan
Ada beberapa tipe jaringan syaraf tiruan, tetapi hampir semuanya memiliki komponen yang
sama. Sama halnya seperti otak manusia, jaringan syaraf juga terdiri dari beberapa neuron,
dan ada hubungan antara neuron tersebut. Neuron-neuron tersebut akan
mentransformasikan informasi yang diterima melalui sambungan keluarnya menuju ke
neuron-neuron yang lain. Pada JST hubungan ini dikenal dengan nama bobot. Informasi
tersebut disimpan pada suatu nilai tertentu pada bobot tersebut.
Informasi (disebut dengan input) akan dikirim ke neuron dengan bobot kedatangan
tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang akan menjumlahkan
nilai-nilai semua bobot yang datang. Hasil penjumlahan ini kemudian akan dibandingkan
dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktivasi setiap neuron.
Apabila input tersebut melewati suatu nilai ambang tertentu , maka neuron tersebut akan
diaktifkan, tetapi jika tidak maka neuron tersebut tidak akan diaktifkan. Apabila neuron
tersebut diaktifkan, maka neuron tersebut akan mengirimkan output melalui bobot-bobot
output-nya ke semua neuron yang berhubungan dengannya. Hal ini dilakukan secara terus
menerus.
Pada jaringan syaraf, neuron-neuron akan dikumpulkan dalam lapisan-lapisan (layer) yang
disebut dengan lapisan neuron (neuron layers). Biasanya neuron-neuron pada satu lapisan
akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya (kecuali
lapisan input dan lapisan output). Informasi yang diberikan pada jaringan syaraf akan
dirambatkan dari lapisan ke lapisan, mulai dari lapisan input sampai ke
lapisan outputmelalui lapisan yang lainnya, yang sering dikenal dengan nama lapisan
tersembunyi (hidden layer), tergantung pada algoritma pembelajarannya, bisa jadi informasi
tersebut akan dirambatkan secara mundur pada jaringan
Beberapa jaringan syaraf ada juga yang tidak memiliki lapisan tersembunyi, dan ada juga
yang neuron-neuronnya disusun dalam bentuk matriks. [2]
Karakteristik Jaringan Saraf Tiruan
Penyelesaian masalah dengan jaringan syaraf tiruan tidak memerlukan pemrograman.
Jaringan syaraf tiruan menyelesaikan masalah melalui proses belajar dari contoh-contoh
pelatihan yang diberikan. Biasanya pada jaringan syaraf tiruan diberikan sebuah himpunan
pola pelatihan yang terdiri dari sekumpulan contoh pola. Proses belajar jaringan syaraf
tiruan berasal dari serangkaian contoh-contoh pola yang diberikan.metode pelatihan yang
sering dipakai adalah metode belajar terbimbing. Selama proses belajar itu pola masukan
disajikan bersama-sama dengan pola keluaran yang diinginkan. Jaringan akan menyesuaikan
nilai bobotnya sebagai tanggapan atas pola masukan dan sasaran yang disajikan tersebut.
(Hermawan, 2006)
Faktor Bobot
Bobot merupakan suatu nilai yang mendefinisikan tingkat atau kepentingan hubungan
antara suatu node dengan node yang lain. Semakin besar bobot suatu hubungan
menandakan semakin pentingnya hubungan kedua node tersebut.
Bobot merupakan suatu hubungan berupa bilangan real maupun integer, tergantung dari
jenis permasalahan dan model yang digunakan. Bobot-bobot tersebut bisa ditentukan untuk
berada didalam interval tertentu. selama proses pelatihan, bobot tersebut dapat
menyesuaikan dengan pola-pola input.
Jaringan dengan sendirinya akan memperbaiki diri terus-menerus karena adanya
kemampuan untuk belajar. Setiap ada suatu masalah baru, jaringan dapat belajar dari
masalah baru tersebut, yaitu dengan mengatur kembali nilai bobot untuk menyesuaikan
karakter nilai.
Fungsi Aktivasi
Setiap neuron mempunyai keadaan internal yang disebut level aktivasi atau level aktivitas
yang merupakan fungsi input yang diterima. Secara tipikal suatu neuron mengirimkan
aktivitasnya kebeberapa neuron lain sebagai sinyal. Yang perlu diperhatikan adalah bahwa
neuron hanya dapat mengirimkan satu sinyal sesaat, walaupun sinyal tersebut dapat
dipancarkan ke beberapa neuron yang lain.
Ada beberapa pilihan fungsi aktivasi yang digunakan dalam metode backpropagation,
seperti fungsi sigmoid biner, dan sigmoid bipolar. Karakteristik yang harus dimiliki fungsi
fungsi aktivasi tersebut adalah kontinue, diferensiabel, dan tidak menurun secara monoton.
Fungsi aktivasi diharapkan dapat mendekati nilai-nilai maksimum dan minimum secara baik.
Berikut ini adalah fungsi aktivasi yang sering digunakan yaitu:
Berikut beberapa fungsi aktivasi dalam Jaringan Syaraf Tiruan.
a. Fungsi Undak Biner (Hard Limit)
Jaringan dengan lapisan tunggal sering menggunakan fungsi undak untuk
menkonversi input dari suatu variable yang bernilai kontinu ke suatu output biner.
Fungsi hard limit dirumuskan:
b. Fungsi Undak Biner (Threshold)
Fungsi undak biner dengan menggunakan nilai ambang sering disebut fungsi nilai
ambang atau fungsi Heaviside. Dirumuskan:
c. Fungsi Bipolar
Hampir sama dengan fungsi undak biner, hanya saja output yang dihasilkan berupa
1, 0 atau-1. Fungsi Symetric Hard Limit dirumuskan sebagai:
d. Fungsi Bipolar (dengan Threshold)
Fungsi yang menghasilkan output berupa 1, 0 atau-1
e. Fungsi Linear (identitas)
Fungsi linear memiliki nilai output yang sama dengan nilai input. Dirumuskan: y = x
f. Fungsi Sturating Linear
Fungsi ini akan bernilai 0 jika inputnya kurang dari -½, dan akan bernilai 1 jika
inputnya lebih dari ½. Sedangkan jika nilai input terletak antara -½ dan ½, maka
outputnya akan bernilai sama dengan nilai input ditambah ½. Fungsi saturating
linear dirumuskan:
g. Fungsi Symetric Saturating Linear
Fungsi ini akan bernilai -1 jika inputnya kurang dari -1. Sedangkan jika nilai input
terletak antara -1 dan 1, maka outputnya akan bernilai sama dengan nilai inputnya.
Fungsi Symetric Saturating Linear dirumuskan:
h. Fungsi Sigmoid Biner
Digunakan untuk jaringan syaraf yang dilatih dengan menggunakan
metode backpropagation. Memiliki nilai pada range 0 sampai 1. Fungsi sigmoid biner
dirumuskan:
i. Fungsi Sigmoid Bipolar
Output dari fungsi ini memiliki range antara 1 sampai -1. Fungsinya dirumuskan:
[3] [4]
Pengertian Perceptron
Perceptron adalah salah satu Neural Network yang digunakan untuk pengklasifikasian
secara linear. Perceptron dapa kita gunakan untuk memisahkan data yang dapat kita bagi
menjadi 2 kelas, misalnya kelas C1 dan kelas C2.
Agar tidak bingung, dibawah ini adalah gambaran dari pengklasifikasian kelas C1 dan C2 :
Algoritma Perceptron
Untuk algoritma pembelajaran perceptron adalah seperti berikut :
1. Inisialisasi semua inputan, matriks vector, target, dan learning rate.
2. Kita lakukan pengecekan untuk semua vector yang misclassification dengan menggunakan
rumus berikut :
3. Misclassification dapat juga dicari dengan rumus aktivasi, seperti berikut :
Jaringan terdiri dari beberapa unit masukan ( ditambah sebuah bias ), dan memiliki sebuah
unit keluaran. Hanya saja fungsi aktivasi merupakan fungsi biner ( atau bipolar ), tetapi
memiliki kemungkinan nilai -1, 0 atau 1.
Dengan ketentuan untuk suatu harga threshold θ yang ditentukan sebagai berikut :
4.Jika hasilnya bernilai negatif, maka terjadi miss classification dan kalikan hasilnya dengan
negatif learning rate. Kemudiah hasilnya disimpan dalam bentuk matriks untuk seluruh
inputan yang miss clasification.
5.Kemudian lakukan perubahan bobot yang baru dengan menggunakan rumus :
6.Kemudian ulangi langkah 2 hingga tidak terdapat lagi vector misclassification.
Berikut adalah source code untuk programnya (dengan matlab).
‘
%buat dataset [x,y,bias] untuk fungsi OR
% x = dataset, k = target, w = vektor random, ro = learning rate, t = iterasi
x = [ 0 0 1 ; 0 1 1 ; 1 0 1 ; 1 1 1 ]; %dataset dan bias
k = [-1; 1; 1; 1]; %fungsi OR
w = [rand() rand() rand()];
ro = 0.7;
t = 0;
%perhitungan vektor missclassification
y=4;
while(y>0)
y=0;
t=t+1; %iterasi
disp(t);
temp = zeros(3,1);
for i=1:4
if (((x(i,:)*w')*k(i))<=0)
y = y+1;
temp = temp + ro*(-k(i))*x(i,:)';
end
[6]
Referensi
[1] http://id.wikipedia.org/wiki/Jaringan_saraf_tiruan
[2] http://zazha.wordpress.com/2009/10/20/jaringan-syaraf-tiruan/#more-82
[3] http://jalanwaktu.wordpress.com/jaringan-syaraf-tiruan/
[4] http://www.yulyantari.com/tutorial/media.php?mod=detailmateri&mat=50&bab=6
[5] http://lecturer.ukdw.ac.id/anton/download/
[6 ]http://agus-wirayasa.blogspot.com/2013/03/algoritma-perceptron-program-perceptron.html
%buat dataset [x,y,bias] untuk fungsi OR
% x = dataset, k = target, w = vektor random, ro = learning rate, t = iterasi
x = [ 0 0 1 ; 0 1 1 ; 1 0 1 ; 1 1 1 ]; %dataset dan bias
k = [-1; 1; 1; 1]; %fungsi OR
w = [rand() rand() rand()];
ro = 0.7;
t = 0;
%perhitungan vektor missclassification
y=4;
while(y>0)
y=0;
t=t+1; %iterasi
disp(t);
temp = zeros(3,1);
for i=1:4
if (((x(i,:)*w')*k(i))<=0)
y = y+1;
temp = temp + ro*(-k(i))*x(i,:)';
end