METODE HEBBIAN
FAKULTAS TEKNIK
JURUSAN TEKNIK INFORMATIKA
UNIVESITAS ISLAM KALIMANTAN
MUHAMMAD ARSYAD AL BANJARY
2014
A. Jaringan Syaraf Tiruan
Jaringan syaraf adalah merupakan salah sat representasi buatan dari
otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran
pada otak manusia tersebut. Istilah buatan disini digunakan karena jaringan
syaraf ini di implementasikan dengan menggunakan program komputer yang
mampu menyelesaikan sejumlah proses perhitungan selama proses
pembelajaran.
B. Metode Hebbian
Asosiator linear merupakan contoh dari jaringan neural yang dinamakan memori
asosiatif (associative memory)
Memori asosiatif didesain untuk mempelajari Q pasang vektor contoh masukan /
keluaran
Keterangan :
X1 =input data ke i
Y = output data
Contoh soal :
1 1 1
1 0 0
0 1 0
0 0 0
Solusi
x1 x2 b t w1 w2 wb w1 w2 wb
1 1 1 1 1 1 1 1 1 1
1 0 1 0 0 0 0 1 1 1
0 1 1 0 0 0 0 1 1 1
0 0 1 0 0 0 0 1 1 1
w1 = 1
w2 = 1
wb = 1
Kita bisa melakukan pengetesan terhadap salah satu data yang ada, misal kita
ambil x=[-1 1].
Y = 2 + (-1*2) + (-1*2) = -2
2.4 Aplikasi
Berikut ini ditunjukkan penggunaan aturan Hebb secara praktis, yaitu oada
masalah pengenalan pola yang sangat disederhanakan. Untuk masalah ini
digunakan jenis khusus dari memori asosiatif autoassociative memory. Pada
autoassociative memory vektor keluaran yang diinginkan sama dengan vektor
input (yaitu tq = pq). Disini autoassociative memory digunakan untuk menyimpan
satu set pola dan pola tersebut akan dipanggil kembali, termasuk dengan
mengunakan masukan yang rusak. Pola yang disimpan adalah sebagai berikut :
Karena hanya ada elemen elemen vektor yang memiliki dua kemungkinan nilai
-1 dan 1 maka fungsi transfer linier digantikan dengan fungsi transfer
symetrical hard limit.
Contoh soal :
0001000001010001000100100010011111001111100
10001011000111100011
Misalkan ada 15 data yang akan dilatih, yaitu 5 data A, 5 data B, dan 5 data H,
sebagai berikut (Gambar 2.4.2, 2.4.3 dan 2.4.4):
T=[1 1 1 1 1 2 2 2 2 2 3 3 3 3 3];
Sebagai nilai awal dipilih learning rate (=0,05), dengan pengurangan sebesar
0,1*; dan maksimum epoh (MaxEpoh=30).
Epoh ke-1:
Data ke-1:
P1 = (1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0
0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1);
Jarak pada:
* Bobot ke-1 = 5,9161
* Bobot ke-2 = 4,7958
* Bobot ke-3 = 4,4721
Jarak terkecil pada bobot ke-3
Target data ke-1= 1
Bobot ke- 3 baru (w3):
1,0000 1,0000 -0,0500 -0,0500 -0,0500 1,0000 1,0000 1,0000 ...
1,0500 0,0000 0,0000 0,0000 1,0500 1,0000 1,0000 1,0500 ...
0,0000 0,0000 0,0000 1,0500 1,0000 1,0000 1,0500 0,0000 ...
0,0000 0,0000 1,0500 1,0000 1,0000 1,0500 1,0500 1,0500 ...
1,0500 1,0500 1,0000 1,0000 1,0000 1,0000 1,0000 1,0000 ...
1,0000 1,0000 1,0000 1,0500 0,0000 0,0000 0,0000 1,0500 ...
1,0000 1,0000 1,0500 0,0000 0,0000 0,0000 1,0500 1,0000 ...
1,0000 1,0500 0,0000 0,0000 0,0000 1,0500 1,0000
= 0,0450
Data ke-2:
P2 = (0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 0 0 0
1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1);
Jarak pada
* Bobot ke-1 = 3,3166
* Bobot ke-2 = 5,5678
* Bobot ke-3 = 5,7228
Jarak terkecil pada bobot ke-1
Target data ke-2= 1
Bobot ke-1 baru (w1):
0,0000 0,0000 0,0000 1,0000 0,0000 0,0000 0,0000 0,0000 ...
0,0000 1,0000 0,0000 1,0000 0,0000 0,0000 0,0000 0,9550 ...
0,0450 0,0000 0,0450 0,9550 0,0000 0,0000 0,9550 0,0450 ...
0,0000 0,0450 0,9550 0,0000 0,0000 1,0000 1,0000 1,0000 ...
1,0000 1,0000 0,0000 0,0000 1,0000 0,9550 0,9550 0,9550 ...
1,0000 0,0000 0,0000 1,0000 0,0000 0,0000 0,0000 1,0000 ...
0,0000 1,0000 1,0000 0,0000 0,0000 0,0000 1,0000 1,0000 ...
1,0000 1,0000 0,0000 0,0000 0,0000 1,0000 1,0000
= 0,0405
Proses tersebut diteruskan untuk data ke-3 sampai data ke-15, kemudian
dilanjutkan epoh ke-2 sampai ke-30, untuk setiap data dengan menggunakan
cara yang sama. Setelah mencapai epoh yang ke-30 diperoleh bobot akhir: 197
w1 =
-0,0297 -0,0297 -0,0140 1,0297 -0,0140 -0,0297 -0,0297 0,0000 ...
0,0113 1,0297 0,0000 1,0297 0,0113 0,0000 0,0000 0,9010 ...
0,0990 0,0000 0,0990 0,9010 0,0000 0,0443 0,9044 0,0513 ...
0,0000 0,0513 0,9044 0,0443 0,0443 0,9557 0,9080 0,9080 ...
0,9080 0,9557 0,0443 0,1330 0,9590 0,9375 0,9375 0,9375 ...
0,9590 0,1330 0,1330 0,8670 0,0000 0,0000 0,0000 0,8670 ...
0,1330 1,0297 0,8670 0,0000 0,0000 0,0000 0,8670 1,0297 ...
1,0000 0,8670 -0,0140 0,0000 -0,0140 0,8670 1,0000
w2 =
1,0000 0,1358 1,0217 1,0217 1,0217 0,1014 -0,0005 1,0000 ...
0,8858 0,0000 0,0000 0,0000 0,9203 0,0797 1,0000 0,0000 ...
0,0000 0,0000 0,0000 0,0244 0,9756 1,0000 0,0244 0,0244 ...
0,0244 0,0244 0,9203 0,0553 0,9733 0,0712 0,9570 0,9570 ...
0,9570 0,0903 -0,0322 1,0000 0,0185 0,0185 0,0185 0,0185 ...
0,9097 0,0506 1,0000 0,0000 0,0000 0,0000 0,0000 0,0291 ...
0,9709 1,0000 0,8858 0,0000 0,0000 0,0000 0,0345 0,9655 ...
0,9733 0,1464 1,0322 1,0322 1,0322 0,9978 -0,0005
w3=
1,0000 0,9823 -0,0504 -0,0504 -0,0504 0,9823 1,0000 1,0000 ...
1,0327 0,0000 0,0000 0,0000 1,0327 1,0000 1,0000 1,0327 ...
0,0194 0,0194 0,0194 1,0327 1,0000 1,0000 1,0327 0,0194 ...
0,0194 0,0194 1,0327 1,0000 1,0000 1,0327 1,0132 1,0132 ...
1,0132 1,0327 1,0000 1,0000 1,0000 0,9806 0,9806 0,9806 ...
1,0000 1,0000 1,0000 1,0504 0,0177 0,0177 0,0177 1,0504 ...
1,0000 1,0000 1,0327 0,0000 0,0000 0,0000 1,0327 1,0000 ...
1,0000 1,0327 0,0000 0,0000 0,0000 1,0327 1,0000
Apabila kita ingin melakukan testing input:
X = (0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1
0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1);
maka kita cari terlebih dahulu jarak input tersebut dengan kedua bobot. Nomor
dari bobot dengan jarak yang terpendek akan menjadi kelasnya.
Jarak pada:
* bobot ke-1 = 0,0693
* bobot ke-2 = 1,7655
* bobot ke-3 = 2,2446
Jarak terkecil pada bobot ke-1. Sehingga input tersebut termasuk dalam kelas A.
DAFTAR PUSTAKA