Monday, May 24, 2010

Jaringan Syaraf Tiruan

Jaringan syaraf tiruan (JST) atau Artificial Neural Network (ANN) adalah suatu model matematik atau komputasi untuk mensimulasikan struktur dan fungsi dari jaringan syaraf dalam otak.
Terdiri dari:
- Node atau unit pemroses (penjumlah dan fungsi aktivasi)
- weight/ bobot yang dapat diatur
- Masukan dan Keluaran
- Sifat : Adatif
- Mampu belajar
- Nonlinear


Biological Neural Network

Jaringan Syaraf Tiruan (JST)










Model Neuron Tanpa bias
















Model Neuron dengan bias














Neuron Sederhana













Model Matematis

X=input/masukan i= banyaknya input
W=bobot/weight

Keluaran Penjumlah
n = sigma pi.wi
(Jumlah semua Input(pi) dikali bobot (wi)

Output/Keluaran Neuron:
a = f(n);
f=fungsi aktivasi

Fungsi Aktivasi

Beberapa fungsi aktivasi [a=f(n)]

- Hardlimit function





- Linear Function

a = n

- Sigmoid Function

a = 1 /( 1 + e^-n )















Kegunaan Aktivasi

- Untuk pengambilan keputusan biasanya digunakan Hardlimit
- Untuk pengenalan pola/jaringan back propagation biasanya digunakan sigmoid
- Untuk prediksi/aproksimasi linear
biasanya digunakan linear

Model McCulloch and Pitts
Neuron menghitung jumlah bobot dari setiap sinyal input dan membandingkan hasilnya dengan nilai bias/threshold, b. Jika input bersih kurang dari threshold, output neuron adalah -1. Tetapi, jika input bersih lebih besar dari atau sama dengan threshold, neuron diaktifkan dan outputnya ditetapkan +1 (McCulloch and Pitts, 1943).






Fungsi aktivasi ini disebut Fungsi tanda (Sign Function). Sehingga output aktual dari neuron dapat ditunjukkan dengan:





Perceptron

- Perceptron (Rosenblatt, 1958): JST training yang sederhana dipakaikan prosedur algoritma training yang pertama kali. Terdiri dari neuron tunggal dengan bobot synaptic yang diatur dan hard limiter.
- Operasinya didasarkan pada model neuron McCulloch dan Pitts.
- Jumlah input yang telah diboboti dipakaikan kepada hard limiter: menghasilkan output +1 jika input positif dan -1 jika negatif à mengklasifikasikan output ke dalam dua area A1 dan A2.






Proses Belajar








Target = Nilai yang diinginkan, Output = Nilai keluar dari neuron
Proses compare (membandingkan) antara output dengan target,jika terjadi perbedaan maka weight/bobot diatur sampai nilai output = (mendekati) nilai target.


Proses Belajar












Analog


- Target = apa yang anda inginkan
- Input/masukan = Kekurangan dan kelebihan/potensi anda
- Bobot = seberapa besar usaha anda
- Output = hasil dari potensi and kelemahan dikalikan dengan usaha terhadap potensi or kelemahan
- Error = Kesalahan/Introspeksi diri = perkuat potensi or/and lemahkan kekurangan


Proses Belajar










Proses Belajar jika masukan positif

Untuk masukan positif penambahan bobot menyebabkan peningkatan keluaran.













Proses Belajar jika masukan negatif

Untuk masukan negatif penambahan bobot menyebabkan penurunan keluaran.












Proses Perceptron Belajar
Belajar

- Pada awalnya bobot dibuat kecil untuk menjaga jangan sampai terjadi perbedaan yang sangat besar dengan target.
- Bobot awal adalah dibuat random, umumnya dalam interval [-0.5 – 0.5]
- Keluaran adalah proses jumlah perkalian antara masukan dengan bobot.
- Jika terjadi perbedaan antara keluaran dengan target, e(k) = a(k) – t(k), k = iterasi ke- 1, 2, 3, maka:
Bobot diupdate/diatur sedikit demi sedikit untuk mendapatkan keluaran yang sesuai dengan target:
w(k+1) = w(k) + delta w(k)

Perceptron Learning Rule (Rosenblatt, 1960)

- e(k)= a(k)-t(k);
k = iterasi ke-1,2,...
a(k) = keluaran neuron
t(k) = target yanng diinginkan
e(k) = error kesalahan

- w(k+1) = w(k) + delta W(k)

- Delta w(k) = kec. belajar x masukan x error = alpha x p(k) x e(k)
dengan:
Alpha = learning rate = kecepatan belajar
Alpha besar belajar cepat -> tidak stabil
Alpha kecil belajar lambat -> stabil

Langkah Pembelajaran

1.Langkah pertama : Inisialisasi Awal

- Mengatur bobot w1, w2, ..., wn interval [-0.5 – 0.5], mengatur bias/threshold b, mengatur kec pembelajaran, fungsi aktivasi

2.Langkah kedua : Menghitung keluaran
- Mengaktifkan perceptron dengan memakai masukan p1(k), p2(k), ..., pi(k) dan target yang dikehendaki t(k). Hitunglah output aktual pada iterasi ke-k = 1




- i adalah jumlah input perceptron dan step adalah fungsi aktivasi

3.Langkah ke tiga : Menghitung error

- e(k) = t(k) – a(k); t(k) = target,a(t)=keluaran perceptron

4.Langkah ke empat : Mengatur Bobot

- Mengupdate bobot perceptron
wi(k+1) = wi(k) + Delta wi(k)
w(k+1) = bobot baru; w(k) = bobot yg lalu
Delta wi(p) adalah pengkoreksian bobot pada iterasi k, yang dihitung dengan:

- Delta wi(p) = Alpha x pi(k) x e(k)

5.Langkah ke lima : pengulangan
- Naikkan iterasi k dengan 1 (k=k+1), kembalilah ke langkah ke dua dan ulangi proses sampai keluaran=target or mendekati target.

Melatih Perceptron: Operasi OR






















Contoh Pembelajaran

1.Langkah pertama : Inisialisasi Awal

- Mengatur bobot w1, w2 interval [-0.5 – 0.5], w1(1)=0.3 w2(1)=0.1, mengatur bias/threshold b=0.2, mengatur kec pembelajaran (alpha) =0.2, fungsi aktivasi-> step

2.Langkah kedua : Menghitung keluaran

- Mengaktifkan perceptron dengan memakai masukan p1(k), p2(k) dan target yang dikehendaki t(k).
Hitunglah output aktual pada iterasi ke-k = 1








3.Langkah ke tiga : Menghitung error
e(k) = t(k) – a(k)
e(1) = 0 – 0 = 0

4.Langkah ke empat : Mengatur Bobot

- Mengupdate bobot perceptron

wi(k+1) = wi(k) + delta wi(k)
w1(2) = 0.3(1) + delta w1(1)
Delta w1(1) = alpha x pi(1) x e(1) = 0.2 x 0 x 0 = 0

maka w1(2) = 0.3(1) + 0 = 0.3 (tidak berubah)
wi(k+1) = wi(k) + delta wi(k)
w2(2) = 0.3(1) + delta w2(1)
delta w2(1) = alpha x pi(1) x e(1) = 0.2 x 0 x 0 = 0

maka w2(2) = 0.1(1) + 0 = 0.1 (tidak berubah)

5.Langkah ke lima : pengulangan

- Naikkan iterasi k dengan 1 (k=k+1), kembalilah ke langkah ke dua dan ulangi proses sampai keluaran=target or mendekati target.

- K=2
w1(2)= 0.3 w2(2)=0.1, p1(2)=0, p2(2)=1 target(2)=Fd(2)=1

- Hitung keluaran:








- Hitung error:

e(2)= target(2) – a(2) = 1 – 0 =1 (ada error)

- Mengatur Bobot

Mengupdate bobot perceptron:

wi(k+1) = wi(k) + delta wi(k)
w1(3) = 0.3(2) + delta w1(2)
delta w1(2) = alpha x p1(1) x e(1) = 0.2 x 0 x 1 = 0

maka w1(3) = 0.3(1) + 0 = 0.3 (tidak berubah)

wi(k+1) = wi(k) + delta wi(k)
w2(3) = 0.3(2) + delta w2(2)
delta w2(1) = alpha x p2(1) x e(1) = 0.2 x 1 x 1 = 0.2

maka w2(3) = 0.1(1) + 0.2 = 0.3 (berubah sebelumnya w2(2)=0.1)

1 comment:

helmi said...

wow.....
thanks ilmu nya