Diperkenalkan pada 1949 oleh D.O. Hebb,
menghitung bobot dan bias secara iteratif.
Dasar algoritma Hebb apabila 2 neuron yang dihubungkan dengan sinapsis secara serentak menjadi aktif (sama +/-), maka kekuatan sinapsisnya meningkat.
Jika kedua neuron aktif secara tidak sinkron (satu + dan satu -), kekuatan sinapsisnya akan melemah.
Dalam setiap iterasi, bobot sinapsis dan bias diubah berdasarkan perkalian neuron-neuron di kedua sisinya.
Untuk jaringan layar tunggal dengan 1 unit keluaran dimana semua unit masukan xi terhubung langsung dengan unit keluaran y, maka perubahan nilai bobot dilakukan berdasarkan persamaan:
wi (baru) = wi (lama) + xi y
Algoritma pelatihan Hebb dengan vektor input s dan unit target t:
Inisialisasi semua bobot = wi = 0 (i = 1, ..., n) Untuk semua vektor input s dan unit target t,
lakukan: set aktivasi unit masukan: xi = si (i = 1, ..., n) set aktivasi unit keluaran: y = t perbaiki bobot menurut persamaan
wi (baru) = wi (lama) + w (i = 1, ..., n) dengan w = xi y
perbaiki bias menurut persamaan b (baru) = b (lama) + y
Masalah yang timbul dalam jaringan Hebb adalah menentukan representasi data masukan/keluaran untuk fungsi aktivasi threshold.
Representasi yang sering dipakai adalah bipolar.
Kadangkala jaringan dapat menentukan pola secara benar jika dipakai representasi bipolar saja, dan akan salah jika dipakai representasi biner
Buatlah jaringan Hebb untuk menyatakan fungsi logika And jika representasi masukan dan keluaran yang dipakai adalah:
biner
masukan biner dan keluaran bipolar
bipolar!
Gambar 1 adalah arsitektur jaringan Hebb untuk menyatakan fungsi And.
Tabel 1 adalah tabel masukan dan keluaran yang direpresentasikan secara biner.
S1
S2
1
Y 0
w1
w2
b
Masukan Target
x1 x2 1 t
1 1 1 1
1 0 1 0
0 1 1 0
0 0 1 0
Arsitektur jaringan Hebb
Fungsi logika And
Mula-mula semua bobot dan bias diberi nilai 0.
Untuk setiap data masukan dan target, perubahan bobot dihitung dari perkalian data masukan dan targetnya
Bobot wi baru = bobot wi lama + wi(i=1,2)
1 = 1 2 = 2 = 1.
Masukan Targetx1 x2 1 t1 1 1 11 0 1 00 1 1 00 0 1 0
Masukan Target Perubahan bobot Bobot baru(x1 x2 1) t (w1 w2 b) w1 w2 bias
inisialisasi 0 0 01 1 1 1 1 1 1 1 1 11 0 1 0 0 0 0 1 1 10 1 1 0 0 0 0 1 1 10 0 1 0 0 0 0 1 1 1
x1 x2
1 1 1.1 + 1.1 + 1 = 3 1
1 0 1.1 + 0.1 + 1 = 2 1
0 1 0.1 + 1.1 + 1 = 2 1
0 0 0.1 + 0.1 + 1 = 1 1
bwxnet ii
i
2
1 0,0
0,1{)(
jikanet
jikanetnetfy
Masukan Targetx1 x2 1 t1 1 1 11 0 1 -10 1 1 -10 0 1 -1
Masukan Target Perubahan bobot Bobot baru(x1 x2 1) t (w1 w2 b) (w1 w2 bias)
inisialisasi 0 0 01 1 1 1 1 1 1 1 1 11 0 1 -1 -1 0 -1 0 1 00 1 1 -1 0 -1 -1 0 0 -10 0 1 -1 0 0 -1 0 0 -2
x1 x2
1 1 1.0 + 1.0 + (-2) = -2 -11 0 1.0 + 0.0 + (-2) = -2 -10 1 0.0 + 1.0 + (-2) = -2 -10 0 0.0 + 0.0 + (-2) = -2 -1
bwxnet ii
i
2
1 0,1
0,1{)(
jikanet
jikanetnetfy
Masukan Targetx1 x2 1 t1 1 1 11 -1 1 -1-1 1 1 -1-1 -1 1 -1
Masukan Target Perubahan bobot Bobot baru(x1 x2 1) t (w1 w2 b) (w1 w2 bias)
inisialisasi 0 0 01 1 1 1 1 1 1 1 1 11 -1 1 -1 -1 1 -1 0 2 0-1 1 1 -1 1 -1 -1 1 1 -1-1 -1 1 -1 1 1 -1 2 2 -2
x1 x2
1 1 1.2 + 1.2 + (-2) = 2 11 -1 1.2+ -1.2 + (-2) = -2 -1-1 1 -1.2 + 1.2 + (-2) = -2 -1-1 -1 -1.2+ -1.2 + (-2) = -6 -1
bwxnet ii
i
2
1 0,1
0,1{)(
jikanet
jikanetnetfy
Buatlah jaringan Hebb dengan 3 masukan dan sebuah target untuk mengenali pola berikut:
Masukan Targetx1 x2 x3 t
1 1 1 11 1 0 01 0 1 00 1 1 0
Pada contoh 1, jaringan Hebb tidak akan mampu mengenali pola jika target keluaran=0
Minimal keluaran dijadikan bentuk bipolar
Masukan Targetx1 x2 x3 t
1 1 1 11 1 0 01 0 1 00 1 1 0
Masukan Target Perubahan Bobot Bobot Barux1 x2 x3 1 t w1 w2 w3 b w1 w2 w3 bias
inisialisasi 0 0 0 01 1 1 1 1 1 1 1 1 1 1 1 11 1 0 1 0 0 0 0 0 1 1 1 11 0 1 1 0 0 0 0 0 1 1 1 10 1 1 1 0 0 0 0 0 1 1 1 1
x1 x2 x3
1 1 1 4 11 1 0 3 11 0 1 3 10 1 1 3 1
bwxnet ii
i
2
1 0,0
0,1{)(
jikanet
jikanetnetfy
Masukan Targetx1 x2 x3 t
1 1 1 11 1 0 -11 0 1 -10 1 1 -1
Masukan Target Perubahan Bobot Bobot Barux1 x2 x3 1 t w1 w2 w3 b w1 w2 w3 bias
inisialisasi 0 0 0 01 1 1 1 1 1 1 1 1 1 1 1 11 1 0 1 -1 -1 -1 0 -1 0 0 1 01 0 1 1 -1 -1 0 -1 -1 -1 0 0 -10 1 1 1 -1 0 -1 -1 -1 -1 -1 -1 -2
x1 x2 x3
1 1 1 -5 -11 1 0 -4 -11 0 1 -4 -10 1 1 -4 -1
bwxnet ii
i
2
1 0,1
0,1{)(
jikanet
jikanetnetfy
Masukan Targetx1 x2 x3 t
1 1 1 11 1 -1 -11 -1 1 -1-1 1 1 -1
Masukan Target Perubahan Bobot Bobot Barux1 x2 x3 1 t w1 w2 w3 b w1 w2 w3 bias
inisialisasi 0 0 0 01 1 1 1 1 1 1 1 1 1 1 1 11 1 -1 1 -1 -1 -1 1 -1 0 0 2 01 -1 1 1 -1 -1 1 -1 -1 -1 1 1 -1-1 1 1 1 -1 1 -1 -1 -1 0 0 0 -2
x1 x2 x3
1 1 1 -2 -11 1 -1 -2 -11 -1 1 -2 -1-1 1 1 -2 -1
bwxnet ii
i
2
1 0,1
0,1{)(
jikanet
jikanetnetfy
Contoh:
Diketahui 2 buah pola huruf X dan O.
Gunakan jaringan Hebb untuk mengenali pola tersebut!
x . . . x
. x . x .
. . x . .
. x . x .
x . . . x
. x x x .
x . . . x
x . . . x
x . . . x
. x x x .
Untuk merepresentasikan masalah dengan jaringan Hebb, tiap karakter pola dianggap sebagai sebuah unit masukan. Misalnya karakter X dalam pola diberi nilai = 1, dan karakter O dalam pola diberi nilai = -1
Setiap pola terdiri dari 5 baris dan 5 kolom, maka jaringan Hebb terdiri dari 25 unit masukan, dan sebuah bias=1
Sebuah target diambil sebuah unit yang akan bernilai = 1 jika masukan berupa pola 1 dan bernilai = -1 jika masukan berupa pola 2
masukanx1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 1 Target
x16 x17 x18 x19 x20 x21 x22 x23 x24 x25
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 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -11 -1 -1 -1 1 -1 1 1 1 -1
Representasi unit masukan dan target
x . . . x
. x . x .
. . x . .
. x . x .
x . . . x
. x x x .
x . . . x
x . . . x
x . . . x
. x x x .
Perubahan bobot
perubahan bobotdw1 dw2 dw3 dw4 dw5 dw6 dw7 dw8 dw9 dw10 dw11 dw12 Dw13 dw14 dw15 db
dw16 dw17 dw18 dw19 dw20 dw21 dw22 dw23 dw24 dw25
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 1 1 1 -1 -1 1 1 1 -1 -1-1 1 1 1 -1 1 -1 -1 -1 1
bobot barux1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 b
x16 x17 x18 x19 x20 x21 x22 x23 x24 x25
inisialisasi0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 01 -1 -1 -1 1 -1 1 -1 1 -1 -1 -1 1 -1 -1 1
-1 1 -1 1 -1 1 -1 -1 -1 12 -2 -2 -2 2 -2 2 0 2 -2 -2 0 2 0 -2 0
-2 2 0 2 -2 2 -2 -2 -2 2
Bobot baru
Untuk kedua pola, keluaran jaringan sama dengan target yang diinginkan
Jaringan bisa mengenali pola dengan baik
net net f(net)2 2 2 2 2 2 2 0 2 2 2 0 2 0 2 0 24 1
2 2 0 2 2 2 2 2 2 2-2 -2 -2 -2 -2 -2 -2 0 -2 -2 -2 0 -2 0 -2 0 -24 -1
-2 -2 0 -2 -2 -2 -2 -2 -2 -2
Uji pola