Minggu, 13 Januari 2019

Jaringan Sistem Tiruan Model Hebb


MODEL HEBB
Kelemahan model McCulloch-Pitts adalah penentuan bobot garis dan bias yang secara analitik. Untuk masalah yang kompleks, hal ini akan sangat sulit dilakukan.
Tahun 1949, Donald Hebb memperkenalkan cara menghitung bobot dan bias secara iteratif. Model Hebb adalah model tertua yang menggunakan aturan supervisi.
Dasar algoritma Hebb adalah: kenyataan bahwa apabila dua neuron yang dihubungkan dengan sinapsis secara serentak menjadi aktif (sama-sama benilai positif atau negatif), maka kekuatan sinapisnya meningkat. Sebaliknya, apabila kedua neuron aktif secara tidak sinkron (salah satu bernilai positif dan yang lain benilai negatif), maka kekuatan sinapsis akan melemah Karena itulah, dalam setiap iterasi, bobot sinapis dan bias diubah berdasarkan perkalian neuron-2 di kedua sisinya. Untuk jaringan layar tunggal dengan 1 unit keluaran dimana semua unit masukan xi terhubung langsung dengan unit keluaran y, maka perubahan bobot dilakukan berdasarkan persamaan:
wi (baru)= wi (lama) + xi*y
Algoritma Hebb:
Inisialisasi semua bobot = wi = 0 (i = 1,2,…,n)
Bobot awal diset wi = 0 (i = 1,2,…,n) dan b = 0
Untuk semua vektor input s dan unit target t, lakukan:
–Set aktivasi unit masukan: xi = si (i = 1,2,…,n)
–Set aktivasi unit keluaran: y = t
–Perbaiki bobot menurut persamaan:
   *wi baru = wi lama + ∆w (i = 1,2,…,n) dengan
   *∆w = xi * t
Perbaiki bias menurut persamaan bbaru = blama+ t


Contoh perhitungan manual dari model Hebb untuk menyelesaikan fungsi logika “AND 3 inputan” dengan input output bipolar :
Bipolar artinya biner 0 = -1 dan 1 = 1. 
Berikut ini adalah tabel kebenaran untuk logika AND dengan 3 inputan (dengan input output bipolar):
x1
x2
x3
Y
-1
-1
-1
-1
-1
-1
1
-1
-1
1
-1
-1
-1
1
1
-1
1
-1
-1
-1
1
-1
1
-1
1
1
-1
-1
1
1
1
1
Solusinya:
Y = t
Δwi=xi*t              atau           Δwb=b*t
∂wi=wi lama + Δwi                 dengan bobot awal w=0 dan b=0
keterangan:
t –> target atau output yang seharusnya
Δwi –> bobot inputan ke i
∂wi –> bobot baru inputan ke i
b –> bias
x1
x2
x3
b
t
Δw1
Δw2
Δw3
Δwb
∂w1
∂w2
∂w3
∂wb
-1
-1
-1
1
-1
1
1
1
-1
1
1
1
-1
-1
-1
1
1
-1
1
1
-1
-1
2
2
0
-2
-1
1
-1
1
-1
1
-1
1
-1
3
1
1
-3
-1
1
1
1
-1
1
-1
-1
-1
4
0
0
-4
1
-1
-1
1
-1
-1
1
1
-1
3
1
1
-5
1
-1
1
1
-1
-1
1
-1
-1
2
2
0
-6
1
1
-1
1
-1
-1
-1
1
-1
1
1
1
-7
1
1
1
1
1
1
1
1
1
2
2
2
-6
Bobot baru jaringan hasil training:
w1 = 2             w2 = 2             w3 = 2             wb = -6
Simulasi:
w1
w2
w3
net=∑(xi*wi)+wb
Y = f(net) = 1 if net>=0
Y = f(net) = -1 if net<0
-1
-1
-1
(-1*2)+(-1*2)+(-1*2)+(-6)
-1
-1
-1
1
(-1*2)+(-1*2)+(1*2)+(-6)
-1
-1
1
-1
(-1*2)+(1*2)+(-1*2)+(-6)
-1
-1
1
1
(-1*2)+(1*2)+(1*2)+(-6)
-1
1
-1
-1
(1*2)+(-1*2)+(-1*2)+(-6)
-1
1
-1
1
(1*2)+(-1*2)+(1*2)+(-6)
-1
1
1
-1
(1*2)+(1*2)+(-1*2)+(-6)
-1
1
1
1
(1*2)+(1*2)+(1*2)+(-6)
1
Lihat hasil Y pada tabel di atas, pola tersebut sama dengan t (target), artinya pola dikenali oleh jaringan.
Program dari model Hebb untuk menyelesaikan fungsi logika AND 3 inputan dengan fungsi input output bipolar

Jaringan Sistem Tiruan dengan Perceptron


Perceptron adalah salah satu metode Jaringan Syaraf Tiruan (JST) sederhana yang menggunakan algoritma training untuk melakukan klasifikasi secara linier. Perceptron digunakan untuk melakukan klasifikasi sederhana dan membagi data untuk menentukan data mana yang masuk dalam klasifikasi dan data mana yang missclasifikasi (diluar klasifikasi). Perceptron dapat kita gunakan untuk memisahkan data yang dapat kita bagi menjadi 2 kelas, misalnya kelas C1 dan kelas C2.


Perceptron dalam Jaringan Syaraf Tiruan memiliki bobot yang bisa diatur dalam suatu ambang batas (threshold). Melalui proses pembelajaran (learning), Algotirma Perceptron akan mengatur parameter-parameter bebasnya. 
Agar tidak bingung, dibawah ini adalah gambaran dari pengklasifikasian kelas C1 dan C2 :
klasifikasi perceptron
klasifikasi perceptron

Tanda x (biru) dan tanda o (merah) pada gambar diatas dicontohkan adalah dua buah data yang akan diklasifikasi. Dimana kedua data tersebut akan dipisahkan dengan suatu garis hyperplane yang membagi data menjadi dua klasifikasi. 

Dimana ( g(x) ) merupakan vektor hyperplane yang memisahkan kelas C1 (data x) dan C2 (data o). Apabila nilai g(x) < 0 (g(x) lebih kecil dari nol) maka data tersebut termasuk dalam kelas C2, sedangkan apabila g(x) > 0 (g(x) lebih besar dari nol) maka data tersebut termasuk kedalam kelas C1.

Nah, bagaimana dengan algoritmanya ?

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 :
rumus vektor missclasifikasi
rumus vektor missclasifikasi perceptron
  • 3. Misclassification dapat juga dicari dengan rumus aktivasi, seperti berikut :
rumus aktivasi perceptron
rumus aktivasi perceptron

  • 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 :
ketentuan treshold perceptron
ketentuan treshold perceptron

  • 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 :
rumus menemukan bobot baru
rumus menemukan bobot baru

  • 6. Kemudian ulangi langkah 2 hingga tidak terdapat lagi vector misclassification.


Beberapa hal yang perlu diperhatikan dalam algoritma Perceptron :
  1. Iterasi dilakukan terus menerus sehingga semua pola memiliki keluaran jaringan yang sama dengan targetnya (jaringan sudah memahami pola).
  2. Pola perubahan bobot hanya dilakukan pada pola yang mengandung kesalahan (output/keluaran jaringan != target). Perubahan yang dilakukan adalah hasil kali unit masukan dengan target. Perubahan bobot hanya terjadi jika masukan != 0).
  3. Kecepatan iterasi ditentukan oleh laju pemahaman (learning rate -alpha)( 0 <= alpha (a) <= 1 ) yang digunakan. Semakin besar nilai a (alpha) maka semakin sedikit iterasi yang diperlukan untuk pembelajaran. Namun sebaliknya jika nilai a (alpha) terlalu besar maka akan merusak pola yang sudah benar sehingga pembelajaran menjadi lambat.