Anda di halaman 1dari 82

Jaringan Syaraf Tiruan

Jaringan Syaraf Tiruan


(Artificial Neural Networks)

BAB I PENDAHULUAN
1.1 Sejarah JST
JST : merupakan cabang dari Kecerdasan Buatan (Artificial Intelligence )
JST : meniru cara kerja syaraf otak mahluk hidup yaitu sel syaraf (neuron)
Otak manusia terdiri dari 10 milyar neuron yang saling berhubungan satu sama
lain. Hubungan ini disebut dengan synapses
Neuron secara garis besar dibagi 3 : dendrites, cell body, dan axon

Gambar 1.1. Struktur dari sebuah sel syaraf (neuron)


Denrites : merupakan unit input yaitu sebagai tempat masuknya sinyal
Cell body : berfungsi untuk memproses sinyal yang masuk
Axon : merupakan unit output dari sinyal hasil proses cell body
Hubungan antara 1 neuron dengan neuron yg lain lewat hubungan synapse
Proses perjalanan sinyal yaitu :
mula-mula sinyal masuk lewat denrites menuju cell body
Kemudian sinyal diproses dalam cell body berdasarkan fungsi tertentu
(Summation process). Jika sinyal hasil proses melebihi nilai ambang
(treshold) tertentu maka sinyal tersebut akan membangkitkan neuron(excited)
untuk meneruskan sinyal tsb., sedangkan jika di bawah treshold maka sinyal
tersebut akan dihalangi (inhibited). Sinyal yg diteruskan akan menuju ke axon

guwi-06

17

Jaringan Syaraf Tiruan

dan akhirnya menuju ke neuron lainnya lewat synapse (yaitu celah sempit
antara axon dari suatu neuron dan denrites dari neuron lainnya)

Gambar 1.2. Hubungan antara 2 buah neuron


Model neuron digambarkan sbb:

Gambar 1.3. Model neuron


Model neuron inilah yang selanjutnya menjadi dasar dari Jaringan Syaraf
Tiruan (Artificial Neural Networks).
1.2 Model JST
Elemen dasar dari JST terdiri dari 3 bagian utama : bobot (weight), nilai
ambang (threshold), dan fungsi aktivasi

Gambar 1.4. Elemen dari JST


guwi-06

18

Jaringan Syaraf Tiruan

input : x1,x2,x3,xn adalah sinyal yg masuk ke sel syaraf


Bobot(weight) : w1,w2,w3,wn adalah faktor bobot yang berhubungan dengan
masing-masing node. Setiap input akan dikalikan dengan bobot dari node-nya
masing-masing, xT.w. Tergantung dari fungsi aktivasi yang dipakai, nilai x T.w
dapat membangkitkan (excite) node atau menghalangi (inhibit) node
Threshold : nilai ambang internal dari node adalah besarnya offset yang
mempengaruhi aktivasi dari output node y :
n

y X iWi .(1)
i 1

Fungsi aktivasi : merupakan operasi matematik yang dikenakan pada sinyal


output y. Ada beberapa fungsi aktivasi yang biasa dipakai dalam JST
tergantung dari masalah yang akan diselesaikan.
1.3 Model Matematis JST
Menyatakan topologi dari interkoneksi neuron-neuron dlm JST serta aturanaturan yg dikenakan dalam jaringan tsb.
Model matematis dari sebuah sel syaraf (neuron) diperlihatkan dlm gamb. 1.5 :
input

bobot
w1

x1

w2

x2

fungsi non linier

y=f(x.w)

wm

xm

Gambar 1.5. Model matematis JST


Jika dinyatakan dalam notasi matematika :
y = f(x1w1+x2w2++xmwm) atau y = f(x.w)
f = fungsi non linear atau fungsi aktivasi
Ada beberapa model JST a.l. :
- model JST satu lapisan
- model JST banyak lapisan
- model JST dua lapisan dgn umpan balik
a) Model JST satu lapisan
w11
w21

x1
x2

y1

y2

yn

wm1

xm

Gambar 1.6. Model JST satu lapisan


y1 = f(x1w11+x2w21++xmwm1)
guwi-06

19

Jaringan Syaraf Tiruan

y2 = f(x1w12+x2w22++xmwm2)
yn = f(x1w1n+x2w2n++xmwmn)
b) Model JST banyak lapisan
Dibentuk dari beberapa model JST satu lapisan
Prinsip kerja hampir sama dgn model JST satu lapisan
Output tiap lapisan sebelumnya merupakan input bagi lapisan sesudahnya

lapisan 1

lapisan 2

lapisan n

Gambar 1.7. Model JST banyak lapisan


c) Model JST dua lapisan dengan umpan balik
Diperkenalkan oleh John Hopfield (1982)
Model ini bersifat umpan balik yaitu output yg dihasilkan akan
mempengaruhi input yg akan masuk lagi ke jaringan.

Gambar 1.8. Model JST 2 lapisan dengan umpan balik


1.4 Fungsi Aktivasi
Beberapa fungsi aktivasi yang biasa dipakai dalam JST a.l. :
1.Fungsi linear
Fungsi linear dinyatakan dengan persamaan : y =f(x)= x

Gambar 1.9. Fungsi aktivasi linear


Dimana adalah kemiringan dari fungsi. Jika = 1 maka fungsi aktivasi tsb
adalah fungsi identitas
guwi-06

20

Jaringan Syaraf Tiruan

2.Fungsi threshold (hard- limiter)


Fungsi threshold type : biner dan bipolar
Fungsi threshold biner mempunyai output y yaitu :
0 jika x 0
y f ( x)
1 jika x 0

Gambar 1.10. Fungsi threshold biner


Fungsi threshold bipolar mempunyai output y yaitu :

1 jika x 0
y f ( x)
1 jika x 0

Gambar 1.11. Fungsi threshold bipolar


3.Fungsi linear piecewise
Persamaan matematik dari fungsi ini adalah :

1 jika x 1

y f ( x) x jika 1 x 1
1 jika
x 1

Gambar 1.12. Fungsi linear piecewise


guwi-06

21

Jaringan Syaraf Tiruan

4.Fungsi Biner Sigmoid


Merupakan fungsi non linear yang paling banyak digunakan dalam JST
Fungsi aktivasi sigmoid dapat ditulis seperti berikut :

y f ( x)

1
untuk 0 f ( x) 1
1 e x

0.5

Gambar 1.13. Fungsi Biner Sigmoid untuk beberapa nilai


adalah parameter bentuk dari fungsi sigmoid. Dengan mengubah harga
maka bentuk dari fungsi sigmoid akan berbeda-beda spt ditunjukkan gamb. 1.13
5.Fungsi Bipolar Sigmoid atau Tangen hiperbolik (tanh)
fungsi ini dinyatakan dengan persamaan berikut ini :
y f ( x)

ex e x
untuk 1 f ( x) 1
ex e x

-1

Gambar 1.14. Fungsi tanh untuk beberapa nilai


adalah parameter bentuk dari fungsi tanh. Dengan mengubah harga maka
bentuk fungsi tanh akan berbeda-beda seperti ditunjukkan dalam gamb. 1.14
Contoh :
guwi-06

22

Jaringan Syaraf Tiruan

Andaikan kita mempunyai sebuah neural network dengan 4 input dan bobot
seperti gambar 1.15.
Input(x)

Bobot(W)

Gambar 1.15. JST dengan 4 input dan bobot


maka output R dari neuron sebelum dikenai fungsi aktivasi adalah :
1
2
T
R W . X 1 1 1 2 14
5

8

jika kita memakai fungsi aktivasi hard-limiter biner maka hasilnya :


y f ( R) f (14) 1

dan jika dipakai fungsi aktivasi sigmoid maka :


y f ( R) f (14)

1
1.5 * 2 8
1 e 1.14

1.5 Bias dan Threshold


Arsitektur paling dasar dari JST adalah JST satu lapisan : terdiri dari beberapa
unit input dan satu unit output
Biasanya dlm unit input ditambah suatu variabel yaitu bias(b) atau threshold ()
x1

xi

xn

Gambar 1.16 JST satu lapisan dengan bias


Jika kita memakai bias b maka nilai fungsi aktivasi akan menjadi :
1 jika net 0
y f (net )
1 jika net 0
dimana net b xi wi
i

Kadang kala JST tidak memakai bias tetapi menggunakan threshold ()


sehingga nilai fungsi aktivasi menjadi :
guwi-06

23

Jaringan Syaraf Tiruan

1 jika net
y f (net )
1 jika net
dimana net xi wi
i

1.6 Prinsip Dasar Pelatihan JST


Contoh yg baik untuk pelatihan pengenalan sebuah pola adalah pada manusia
Misal : kita ingin mengenalkan buah jeruk pada seorang bayi dengan cara
mendekatkan buah jeruk tsb pada bayi dan mengucapkan kata jeruk secara
terus menerus maka secara perlahan bayi tsb akan tahu (kenal) bahwa itu adalah
buah jeruk.
Jadi saat kita mengucapkan kata jeruk maka kekuatan koneksi sinaptik dalam
sel syaraf bayi juga akan meningkat dan teraktivasi
Gambaran diatas menunjukkan bahwa sel syaraf manusia memiliki kemampuan
untuk belajar
Jaringan syaraf tiruan juga memiliki kemampuan untuk belajar hampir sama
dgn syaraf pada manusia
Kemampuan belajar dari JST bersifat terbatas shg jaringan ini juga punya
kemampuan terbatas
Kosko (1990) mengklasifikasikan JST menjadi 2 :
-bagaimana JST menyimpan pengetahuan /encode (proses belajar)
-bagaimana JST memproses dan merespon data yg masuk /decode
Proses encode : 2
-supervised (dibimbing)
-unsupervised (tidak dibimbing)
Proses decode : 2
-feedforward (tanpa umpan balik)
-feedback (umpan balik)
decoding
suvervised

feedback

IV

unsuvervised

encoding

feedforward

II

III

Gambar 1.16. Klasifikasi JST


guwi-06

24

Jaringan Syaraf Tiruan

Kwadran I : supervised feedforward

Dalam proses belajar (penyimpanan pengetahuan) dibimbing dan dalam


proses merespon data input maka tidak memberikan umpan balik
Kwadran II : Unsupervised feedforward
Dalam proses belajar (penyimpanan pengetahuan) tidak dibimbing dan
dalam proses merespon data input maka tidak memberikan umpan balik
Kwadran III : Unsupervised feedback
Dalam proses belajar (penyimpanan pengetahuan) tidak dibimbing dan
dalam proses merespon data input maka memberikan umpan balik
Kwadran IV : supervised feedback
Dalam proses belajar (penyimpanan pengetahuan) dibimbing dan dalam
proses merespon data input maka memberikan umpan balik
Dalam JST-supervised, jaringan diberi masukan tertentu dan keluarannya
ditentukan oleh pengajarnya. Saat proses belajar ini jaringan akan
menyesuaikan bobot sinaptiknya
Dalam JST-unsupervised, jaringan diberi masukan dan keluarannya akan diatur
secara mandiri sesuai aturan yg dimiliki
Kumpulan dari pasangan vektor input dan vektor output yg diinginkan (target)
disebut pola pelatihan.
Pasangan vektor input dan target dimasukkan bersama dgn nilai bobot koneksi
(sinaptik) ke dalam jaringan. Proses ini dilakukan dalam proses belajar/latihan
Proses belajar :
-jaringan diberikan masukan / input serta pasangan output yg diinginkan
(target)
-jaringan melakukan perhitungan thd data input dan menghasilkan output
sementara
-membandingkan antara output sementara dgn output yg diinginkan (target)
dan selisihnya dipakai untuk memperbaiki nilai bobot sinaptik
-proses tsb akan diulang sampai kesalahan atau selisih dari output sementara
dan target sekecil mungkin atau istilahnya adalan konvergen
Proses belajar akan selesai apabila nilai matrik bobot koneksi (misal : W) yg
dihasilkan dapat membuat sistem yg dpt memberikan pola yg sempurna
walaupun pola masukan yg diberikan pada jaringan tidak lengkap atau terkena
noise
Ada banyak model JST sesuai dgn konfigurasi neuron dan algoritmanya
masing-masing, seperti :
-JST Hebb
-JST Hopfield
-JST Hamming
-JST Kohonen dll
Aplikasi JST
-kedokteran : menyimpan data gejala, diagnosis, serta perawatan /obat

guwi-06

25

Jaringan Syaraf Tiruan

-pengenalan pola : pengenalan karakter tulisan, wajah, suara,sidik jari


-komunikasi : mengurangi suara noise pada komunikasi telepon
-ekonomi : peramalan saham

guwi-06

26

Jaringan Syaraf Tiruan

BAB II Jaringan Syaraf Hebb

Hebb memperkenalkan aturan pembelajaran/pelatihan pada JST


Pembelajaran dilakukan dgn memodifikasi kekuatan sinaptik (bobot) dgn cara
sedemikan hingga : jika 2 neuron saling berhubungan dalam waktu dan kondisi
yg sama (on) maka bobot dari kedua neuron tsb akan dinaikkan
JST satu lapisan yg dilatih dengan aturan Hebb disebut dgn jaringan Hebb
2.1 Algoritma
langkah 0 : Bobot dan bias diberi nilai awal :
wi = 0 (i = 1,2,,n) ; b = 0
langkah 1 : untuk tiap pasangan input dan target, s : t, lakukan langkah 2 sampai 4 :
langkah 2 : set aktivasi untuk unit input :
xi = si
(i = 1,2,,n)
langkah 3 : set aktivasi untuk unit output :
y=t
langkah 4 : perbaiki nilai bobot :
wi(baru) = wi(lama) +xiy
(i = 1,2,,n)
perbaiki nilai bias :
b(baru) = b(lama) + y
Biasanya perubahan bobot disimbolkan dgn w
w = xiy sehingga wi(baru) = wi(lama) + w
Catatan :
nilai bias dari unit input biasanya secara eksplisit tidak dipakai pada aturan Hebb.
Biasanya nilai bias selalu 1. Sebab tanpa nilai bias masalah tidak akan ada solusi.
2.2 Aplikasi
Contoh aplikasi JST Hebb untuk solusi fungsi logika AND
Contoh 2.1: jaringan Hebb untuk fungsi logika AND : input biner dan target biner
Input
target Perubahan bobot : w1 = x1y ; w2 = x2y
x1
x2
b
t
Perubahan bias : b = y
1
1
1
1
1
0
1
0
Hasil selengkapnya dapat dilihat dalam
0
1
1
0
tabel 2.1
0
0
1
0
b

x1
W1

y
x2

W2

Gambar 2.1 Arsitektur JST Hebb untuk solusi fungsi logika AND
guwi-06

27

Jaringan Syaraf Tiruan

Input
x2

Bobot dan bias


b
y
w1
w2
b
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
Tabel 2.1 Hasil perhitungan JST Hebb untuk solusi fungsi
logika AND dengan input biner dan target biner

x1
1
1
0
0

target
t

Perubahan bobot-bias
w1 w2
b

Catatan :
Hasil akhir dari w1 dan w2 dapat juga ditentukan dari penjumlahan seluruh
perubahan bobot (w) dari input pertama sampai terakhir :
w1 = 1 + 0 + 0 + 0 =1
w2 = 1 + 0 + 0 + 0 =1
Dari tabel 2.1, batas keputusan (decision boundary) dari fungsi logika AND
dinyatakan dengan persamaan garis pemisah (separating line) :
w1 x1 + w2 x2 + b = 0
1.x1 + 1.x2 + 1 = 0
x1 + x2 + 1 = 0 atau x2 = -x1 - 1
x2

x2 x1 1

x1

-1

x1 x2 1 0
(daerah tanpa diarsir)

-1

x1 x2 1 0
(Daerah diarsir)

Gambar 2.2 Batas keputusan fungsi AND : input dan target biner

Dapat dilihat dari tabel 2.1, garis batas keputusan dari input pertama sampai
input terakhir tidak mengalami perubahan yaitu : x2 = -x1 - 1 (gamb 2.2)
Setelah mendapat nilai bobot dan bias maka kita melakukan Testing thd pola
input dengan memakai bobot dan bias yg didapat dalam proses pelatihan
w1 = 1 , w2 = 1, dan b = 1
input
Bobot
bias net b x w
output
target
x1
x2
w1
w2
b
y=f(net)
1
1
1
1
1
3
1
1
1
0
1
1
1
2
1
0
0
1
1
1
1
2
1
0
0
0
1
1
1
1
1
0
i i

Tabel 2.2 Hasil Testing logika AND : input dan target biner
guwi-06

28

Jaringan Syaraf Tiruan

Tabel 2.2 menunjukkan bahwa hanya input yg pertama menghasilkan output(y)


yg sesuai dengan target
Hasil ini menunjukkan JST Hebb yg dilatih dg pasangan pola input biner dan
target biner tidak menghasilkan JST yg sempurna.
Contoh 2.2: Jaringan Hebb untuk fungsi AND : input biner dan target bipolar
Input
target Perubahan bobot : w1 = x1y ; w2 = x2y
x1
x2
b
t
Perubahan bias : b = y
1
1
1
1
1
0
1
-1
Hasil selengkapnya dapat dilihat dalam
0
1
1
-1
tabel 2.3
0
0
1
-1
Input
x2

Target
t

Perubahan bobot-bias
w1 w2
b

Bobot dan bias


x1
b
y
w1
w2
b
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
-1
-1
-1
0
-1
0
1
0
0
1
1
-1
-1
0
-1
-1
0
0
-1
0
0
1
-1
-1
0
0
-1
0
0
-2
Tabel 2.3 Hasil perhitungan JST Hebb untuk solusi fungsi
logika AND dengan input biner dan target bipolar
Setelah mendapat nilai bobot dan bias maka kita melakukan Testing thd pola
input dengan memakai bobot dan bias yg didapat dalam proses pelatihan
w1 = 0 , w2 = 0, dan b = -2
input
Bobot
bias net b x w
output
target
x1
x2
w1
w2
b
y=f(net)
1
1
0
0
-2
-2
-1
1
1
0
0
0
-2
-2
-1
-1
0
1
0
0
-2
-2
-1
-1
0
0
0
0
-2
-2
-1
-1
i i

Tabel 2.4 Hasil Testing logika AND : input biner dan target bipolar

Tabel 2.4 menunjukkan bahwa input yg pertama menghasilkan output(y) tidak


sesuai dengan target, sedang input kedua, ketiga, dan keempat sesuai dg target
Hasil ini menunjukkan JST Hebb yg dilatih dg pasangan pola input biner dan
target bipolar tidak menghasilkan JST yg sempurna
Contoh 2.3: Jaringan Hebb untuk fungsi AND : input bipolar dan target bipolar
Input
target
Perubahan bobot : w1 = x1y ; w2 = x2y
x1
x2
b
t
Perubahan bias : b = y
1
1
1
1
1
-1
1
-1
Hasil selengkapnya dapat dilihat dalam
-1
1
1
-1
tabel 2.4
-1
-1
1
-1
guwi-06

29

Jaringan Syaraf Tiruan

Input
x2

Bobot dan bias


b
y
w1
w2
b
0
0
0
1
1
1
1
1
1
1
1
1
1
-1
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
Tabel 2.4 Hasil perhitungan JST Hebb untuk solusi fungsi logika
AND dengan input bipolar dan target bipolar

x1
1
1
-1
-1

Target
t

Perubahan bobot-bias
w1
w2
b

Hasil Testing thd pola input dengan memakai bobot dan bias yg didapat dalam
proses pelatihan
w1 = 2 , w2 = 2, dan b = -2
Input
Bobot
bias
x1
x2
w1
w2
b
1
1
2
2
-2
1
-1
2
2
-2
-1
1
2
2
-2
-1
-1
2
2
-2

net b xi wi
i

2
-2
-2
-6

output
y=f(net)
1
-1
-1
-1

Target
1
-1
-1
-1

Tabel 2.5 Hasil Testing logika AND : input bipolar dan target bipolar

Tabel 2.5 menunjukkan bahwa semua input menghasilkan output(y) sesuai


dengan target
Hasil ini menunjukkan JST Hebb yg dilatih dg pasangan pola input bipolar dan
target bipolar menghasilkan JST yg sempurna
Dari proses pelatihan (tabel 2.4) maka batas keputusan (decision boundary) dari
fungsi logika AND yg dilatih dgn pola input bipolar dan target bipolar
dinyatakan dengan persamaan garis pemisah (separating line) :
w1 x1 + w2 x2 + b = 0
2.x1 + 2.x2 + (-2) = 0
2x1 + 2x2 - 2 = 0 atau x2 = -x1 + 1
x2 x1 1
-

x2
+

x1 x2 1 0
(daerah tanpa diarsir)

x1 x2 1 0
(Daerah diarsir)
x1

Gambar 2.2 Batas keputusan fungsi AND : input dan target bipolar
guwi-06

30

Jaringan Syaraf Tiruan

Dari contoh 2.1 dimana digunakan data biner (input biner dan target biner) maka
tidak terjadi perbaikan bobot untuk pasangan pola pelatihan untuk unit input
on (xi = 1) dan target off (t = 0) maupun untuk unit input dan target
keduanya dalam keadaan off (xi = 0 dan t = 0) :
w = xiy = 0
sehingga
wi(baru) = wi(lama) + w
wi(baru) = wi(lama)
Sedangkan dalam contoh 2.3 digunakan data bipolar (input dan target bipolar)
maka terjadi perbaikan bobot untuk semua pasangan pola pelatihan baik unit
input on (xi = 1) dan target off (t = -1)
Contoh 2.4: Jaringan Hebb untuk mengklasifikasi pola input 2 dimensi dari 2
buah huruf yaitu : X dan O. Pola dari huruf tsb dinyatakan dgn :
#. . . #
. #. #.
. . #. .
. #. #.
#. . . #

. ###.
#. . . #
#. . . #
#. . . #
. ###.

Pola 1

Pola 2

jawab :
Dalam hal ini kita menganggap jaringan hanya mempunyai 1 output yaitu
kelas X(untuk huruf X) dan kelas bukan X (untuk huruf O). Misal kelas X
kita beri nilai target 1 sedangkan kelas bukan X kita beri target 1. Sedangkan
setiap lambang # kita beri nilai 1 dan lambang . kita beri nilai 1. Vektor
input untuk pola 1 dan pola 2 menjadi :
Pola x1
X 1
O -1

x2
-1
1

x3
-1
1

x4
-1
1

x5
1
-1

x6
-1
1

x7
1
-1

x8
-1
-1

x9
1
-1

x10 x11 x12 x13 x14 x15


-1 -1 -1 1 -1 -1
1
1 -1 -1 -1 1

Pola x16 x17 x18 x19 x20 x21 X22 x23 x24 X25 Target
X -1 1 -1 1 -1 1 -1 -1 -1 1
1
O 1 -1 -1 -1 1 -1 1
1
1 -1
-1
Tabel 2.6 Vektor input dari kedua pola (X dan O)
Bobot mula-mula :
Wi = 0 dimana i = 1,2,,25
Sedangkan perubahan bobot (wi) dan bias setelah diberikan input pola 1 dan 2 :

guwi-06

31

Jaringan Syaraf Tiruan


w1

w2

w3

w4

w5

w6

w7

w8

w9

w10

w11

w12

w13

w14

w15

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

X
O
X
O

w16

w17

w18

w19

w20

w21

w22

w23

w24

w25

-1
-1

1
1

-1
1

1
1

-1
-1

1
1

-1
-1

-1
-1

-1
-1

1
1

1
-1

Tabel 2.7 Perubahan bobot wi dan bias b


Dan bobot akhir (wi) dan bias b dapat ditentukan dari penjumlahan kedua
perubahan bobot diatas sehingga :
w1 w2 w3 w4 w5 w6 w7 W8 w9 w10 w11 w12 w13 w14 w15
2 -2 -2 -2 2 -2 2
0
2 -2 -2 0
2
0 -2
w16 w17 w18 w19 w20 w21 w22 w23 w24 w25
-2
2
0
2
-2
2
-2 -2 -2
2

b
0

Tabel 2.8 Nilai bobot wi dan bias b akhir


Setelah mendapatkan bobot akhir (wi) dan bias b, selanjutnya dapat dilakukan
proses testing terhadap pola input. Pertama kita melakukan testing thd pola 1
(huruf X) :

x w b 42 0 42
i

Selanjutnya kita melakukan testing thd pola 2 (huruf O) :

x w b 42 0 42
i

Hasil testing selengkapnya dapat dilihat dalam tabel 2.9 :


Input
x1
1
-1

Bobot
x25
-1
-1

w1
2
2

Bias
w25
2
2

b
0
0

net b xi wi
i

42
-42

Output

Target

y=f(net)
1
-1

1
-1

Tabel 2.9 Hasil testing


Dari tabel 2.9 dapat dilihat hasil testing terhadap pola 1 (X) dan pola 2(O)
menghasilkan output(y) yang sesuai dengan target.

guwi-06

32

Jaringan Syaraf Tiruan

BAB III PERCEPTRON


Perceptron merupakan jaringan syaraf yg memiliki pengaruh yang paling luas
dibandingkan model jaringan syaraf sebelumnya.
Metode pembelajaran Perceptron lebih kuat dari pembelajaran JST Hebb.
Prosedur pelatihan dari Perceptron terutama dalam proses iterasinya dapat
menghasilkan bobot yang konvergen.Dan bobot ini bila ditest terhadap pola input
dapat menghasilkan output yang sesuai target.
Ada beberapa tipe Perceptron yang dikemukan oleh beberapa ahli seperti :
Rosenblatt (1962), Minsky dan Papert (1969 dan 1988).
Mulanya Perceptron punya 3 lapisan neuron : unit sensor, unit asosiasi, dan unit
renspon(output). Mendekati model jaringan syaraf pada retina
Unit sensor dan asosiasi memakai aktivasi biner sedangkan unit output memakai
aktivasi 1, 0, atau 1.
Fungsi aktivasi untuk unit asosiasi adalah fungsi step biner dgn nilai threshold
tertentu.
Sinyal yg dikirim dari unit asosiasi ke unit output adalah sinyal biner (1 atau 0).
Output perceptron y = f(y_in), dimana fungsi aktivasinya adalah :
1 jika y _ in

f ( y _ in ) 0 jika y _ in ........................................................(3.1)
1 jika y _ in

Bobot dari unit asosiasi ke unit respon (output) diatur dengan aturan
pembelajaran perceptron. Untuk tiap data input pelatihan jaringan akan
menghitung respon dari unit output. Jaringan akan menentukan apakah terjadi
error pada data input ini (dengan membandingkan antara nilai output yg dihitung
dengan nilai target).
Jaringan tidak akan menganggap ada kesalahan (error) jika outputnya bernilai 0
dan target bernilai 1. Sedangkan jika output bernilai 1 dan target bernilai 1
maka ini dianggap sebagai kesalahan (error).
Jika terjadi kesalahan maka bobot akan diubah menurut persamaan :

wi (baru) wi (lama) txi ........................................................(3.2)

dimana nilai target t adalah 1 atau 1, adalah learning rate.


Pelatihan akan diteruskan sampai tidak terjadi kesalahan.
3.1 Arsitektur perceptron
Arsitektur sederhana perceptron adalah seperti gambar 3.1.
Jaringan ini dipakai untuk mengklasifikasi satu kelas tunggal. Yaitu menentukan
apakah suatu pola input termasuk dalam satu kelas atau tidak. Jika masuk dalam
satu kelas maka respon dari unit output adalah 1 sedangkan jika tidak maka
responnya 1.

guwi-06

33

Jaringan Syaraf Tiruan


b

x1

w1
xi

wi

xn

wn

Gambar 3.1 Arsitektur perceptron untuk klasifikasi tunggal

3.1 Algoritma perceptron


Algoritma ini berlaku untuk input biner atau bipolar dan target bipolar, serta nilai
threshold , dan bias b.
Langkah-langkah algoritma perceptron :
Langkah 0 : bobot dan bias diberi nilai awal
(biasanya bobot dan bias diberi nilai 0)
beri nilai learning rate (0 1)
(biasanya diberi nilai 1)
langkah 1 : selama kondisi berhenti bernilai salah lakukan langkah 2 6
langkah 2 : untuk tiap-tiap pasangan pola pelatihan s : t, lakukan langkah 3-5
langkah 3 : set aktivasi unit input :
xi = si
langkah 4 : hitung respon dari unit output :

y _ in b xi wi
i

1 jika y _ in

y f ( y _ in) 0 jika y _ in
1 jika y _ in

langkah 5 : perbaiki bobot dan bias jika terjadi kesalahan pada pola ini :
jika y t

wi (baru) wi (lama) txi


b(baru) b(lama) t

jika y = t

wi (baru) wi (lama)
b(baru) b(lama)
langkah 6 : test kondisi berhenti :
jika tidak ada bobot yang berubah dalam langkah 2 maka stop
jika ada maka lanjutkan kembali ke langkah 1
guwi-06

34

Jaringan Syaraf Tiruan

Dari algoritma maka hanya bobot yang berkoneksi dgn unit input yang aktif yg
akan berubah (xi 0)
Algoritma ini biasanya dipakai untuk melakukan klasifikasi pola dengan cara
pemisahan linear.
Fungsi aktivasi yg dipakai akan mengatur batas antara daerah positif, negatif dan
nol.
Daerah nol adalah daerah yg terletak antara daerah positif dan negatif. Lebar
daerah ini adalah
Garis pemisah antara daerah positif dgn daerah nol dinyatakan dgn persamaan :
w1x1 + w2x2 + b =
Garis pemisah antara daerah negatif dgn daerah nol dinyatakan dgn persamaan :
w1x1 + w2x2 + b = -
w1 x1 w2 x2 b

w1 x1 w2 x2 b

x2

+
0
-

x1

Gambar 3.2 Batas keputusan perceptron


Shg daerah positif dinyatakan dgn pertidaksamaan :
w1x1 + w2x2 + b >
Dan daerah negatif dinyatakan dgn pertidaksamaan :
w1x1 + w2x2 + b < -
3.2 Aplikasi perceptron
Contoh 3.1 :
Aplikasi perceptron untuk menyelesaikan fungsi logika AND dengan input
biner dan target bipolar
Input
target Nilai = 0.7
x1
x2
b
t
Bobot (w) dan bias (b) diberi nilai 0
1
1
0
1
Nilai = 0.3
1
0
0
-1
0
1
0
-1
0
0
0
-1

guwi-06

35

Jaringan Syaraf Tiruan

Pelatihan dgn algoritma perceptron :


Iterasi pertama :

Data pertama : ( 1 1)

y _ in b xi wi b x1w1 x2 w2
i

= 0 + (1).(0) + (1).(0) = 0
hasil aktivasi = y = 0 (-0.3 <y_in<0.3)
target t = 1
yt
bobot baru :
wi(baru) = wi(lama) + txi
w1 = 0+(0.7)(1)(1) = 0.7
w2 = 0+(0.7)(1)(1) = 0.7
bias baru :
b(baru) = b(lama) + t
b = 0 + (0.7)(1) = 0.7
Data kedua : ( 1 0)
y_in = 0.7 + 0.7 + 0 = 1.4
hasil aktivasi = y = 1 (y_in > 0.3)
target t = -1
yt
bobot baru :
w1 = 0.7+(0.7)(-1)(1) = 0
w2 = 0.7+(0.7)(-1)(0) = 0.7
bias baru :
b = 0.7 + (0.7)(-1) = 0
Data ketiga : ( 0 1)
y_in = 0 + 0 + 0.7 = 0.7
hasil aktivasi = y = 1 (y_in > 0.3)
target t = -1
yt
bobot baru :
w1 = 0+(0.7)(-1)(0) = 0
w2 = 0.7+(0.7)(-1)(1) = 0
bias baru :
b = 0 + (0.7)(-1) = -0.7
Data keempat : ( 0 0)
y_in = -0.7 + 0 + 0 = -0.7
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
guwi-06

y=t
Iterasi kedua :

Data pertama : ( 1 1)
y_in = -0.7 + 0 + 0 = -0.7
hasil aktivasi = y = -1 (y_in <- 0.3)
target t = 1
yt
bobot baru :
w1 = 0+(0.7)(1)(1) = 0.7
w2 = 0+(0.7)(1)(1) = 0.7
bias baru :
b = -0.7 + (0.7)(1) = 0
Data kedua : ( 1 0)
y_in = 0 + 0.7 + 0 = 0.7
hasil aktivasi = y = 1 (y_in > 0.3)
target t = -1
yt
bobot baru :
w1 = 0.7+(0.7)(-1)(1) = 0
w2 = 0.7+(0.7)(-1)(0) = 0.7
bias baru :
b = 0 + (0.7)(-1) = -0.7
Data ketiga : ( 0 1)
y_in = -0.7 + 0 + 0.7 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
yt
bobot baru :
w1 = 0+(0.7)(-1)(0) = 0
w2 = 0.7+(0.7)(-1)(1) = 0
bias baru :
b = -0.7 + (0.7)(-1) = -1.4
Data keempat : ( 0 0)
y_in = -1.4 + 0 + 0 = -1.4
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t

36

Jaringan Syaraf Tiruan

Iterasi ketiga :

Data pertama : ( 1 1)
y_in = -1.4 + 0 + 0 = -1.4
hasil aktivasi = y = -1 (y_in <- 0.3)
target t = 1
yt
bobot baru :
w1 = 0+(0.7)(1)(1) = 0.7
w2 = 0+(0.7)(1)(1) = 0.7
bias baru :
b = -1.4 + (0.7)(1) = -0.7
Data kedua : ( 1 0)
y_in = -0.7 + 0.7 + 0 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
yt
bobot baru :
w1 = 0.7+(0.7)(-1)(1) = 0
w2 = 0.7+(0.7)(-1)(0) = 0.7
bias baru :
b = -0.7 + (0.7)(-1) = -1.4
Data ketiga : ( 0 1)
y_in = -1.4 + 0 + 0.7 = -0.7
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t
Data keempat : ( 0 0)
y_in = -1.4 + 0 + 0 = -1.4
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t

Iterasi keempat :

Data pertama : ( 1 1)
y_in = -1.4 + 0 + 0.7 = -0.7
hasil aktivasi = y = -1 (y_in <- 0.3)
target t = 1
yt
bobot baru :
w1 = 0+(0.7)(1)(1) = 0.7
w2 = 0.7+(0.7)(1)(1) = 1.4
bias baru :
b = -1.4 + (0.7)(1) = -0.7
Data kedua : ( 1 0)
y_in = -0.7 + 0.7 + 0 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
yt
bobot baru :
w1 = 0.7+(0.7)(-1)(1) = 0
w2 = 1.4+(0.7)(-1)(0) = 1.4
bias baru :
b = -0.7 + (0.7)(-1) = -1.4
Data ketiga : ( 0 1)
y_in = -1.4 + 0 + 1.4 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
yt
bobot baru :
w1 = 0+(0.7)(-1)(0) = 0
w2 = 1.4+(0.7)(-1)(1) = 0.7
bias baru :
b = -1.4 + (0.7)(-1) = -2.1
Data keempat : ( 0 0)
y_in = -2.1 + 0 + 0 = -2.1
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t

guwi-06

37

Jaringan Syaraf Tiruan

Iterasi kelima :

Data pertama : ( 1 1)
y_in = -2.1 + 0 + 0.7 = -1.4
hasil aktivasi = y = -1 (y_in <- 0.3)
target t = 1
yt
bobot baru :
w1 = 0+(0.7)(1)(1) = 0.7
w2 = 0.7+(0.7)(1)(1) = 1.4
bias baru :
b = -2.1 + (0.7)(1) = -1.4
Data kedua : ( 1 0)
y_in = -1.4 + 0.7 + 0 = -0.7
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t
Data ketiga : ( 0 1)
y_in = -1.4 + 0 + 1.4 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
yt
bobot baru :
w1 = 0.7+(0.7)(-1)(0) = 0.7
w2 = 1.4+(0.7)(-1)(1) = 0.7
bias baru :
b = -1.4 + (0.7)(-1) = -2.1
Data keempat : ( 0 0)
y_in = -2.1 + 0 + 0 = -2.1
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t

guwi-06

Iterasi keenam :

Data pertama : ( 1 1)
y_in = -2.1 + 0.7 + 0.7 = -0.7
hasil aktivasi = y = -1 (y_in <- 0.3)
target t = 1
yt
bobot baru :
w1 = 0.7+(0.7)(1)(1) = 1.4
w2 = 0.7+(0.7)(1)(1) = 1.4
bias baru :
b = -2.1 + (0.7)(1) = -1.4
Data kedua : ( 1 0)
y_in = -1.4 + 1.4 + 0 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
yt
bobot baru :
w1 = 0.7+(0.7)(-1)(0) = 0.7
w2 = 1.4+(0.7)(-1)(0) = 1.4
bias baru :
b = -1.4 + (0.7)(-1) = -2.1
Data ketiga : ( 0 1)
y_in = -2.1 + 0 + 1.4 = -0.7
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t
Data keempat : ( 0 0)
y_in = -2.1 + 0 + 0 = -2.1
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t

38

Jaringan Syaraf Tiruan

y=t

Iterasi ketujuh :

Data pertama : ( 1 1)
y_in = -2.1 + 0.7 + 1.4 = 0
hasil aktivasi = y = 0 (-0.3<y_in< 0.3)
target t = 1
yt
bobot baru :
w1 = 0.7+(0.7)(1)(1) = 1.4
w2 = 1.4+(0.7)(1)(1) = 2.1
bias baru :
b = -2.1 + (0.7)(1) = -1.4
Data kedua : ( 1 0)
y_in = -1.4 + 1.4 + 0 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
yt
bobot baru :
w1 = 1.4+(0.7)(-1)(0) = 0.7
w2 = 2.1+(0.7)(-1)(0) = 2.1
bias baru :
b = -1.4 + (0.7)(-1) = -2.1
Data ketiga : ( 0 1)
y_in = -2.1 + 0 + 2.1 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
yt
bobot baru :
w1 = 0.7+(0.7)(-1)(0) = 0.7
w2 = 2.1+(0.7)(-1)(1) = -1.4
bias baru :
b = -2.1 + (0.7)(-1) = -2.8
Data keempat : ( 0 0)
y_in = -2.8 + 0 + 0 = -2.8
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
guwi-06

Iterasi kedelapan :

Data pertama : ( 1 1)
y_in = -2.8 + 0.7 + 1.4 = -0.7
hasil aktivasi = y = -1 (y_in <- 0.3)
target t = 1
yt
bobot baru :
w1 = 0.7+(0.7)(1)(1) = 1.4
w2 = 1.4+(0.7)(1)(1) = 2.1
bias baru :
b = -2.8 + (0.7)(1) = -2.1
Data kedua : ( 1 0)
y_in = -2.1 + 1.4 + 0 = -0.7
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t
Data ketiga : ( 0 1)
y_in = -2.1 + 0 + 2.1 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
yt
bobot baru :
w1 = 1.4+(0.7)(-1)(0) = 1.4
w2 = 2.1+(0.7)(-1)(1) = 1.4
bias baru :
b = -2.1 + (0.7)(-1) = -2.8
Data keempat : ( 0 0)
y_in = -2.8 + 0 + 0 = -2.8
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t

39

Jaringan Syaraf Tiruan

y_in = -2.8 + 1.4 + 2.1 = 0.7


hasil aktivasi = y = 1 (y_in > 0.3)
target t = 1
y=t

Iterasi kesembilan :

Data pertama : ( 1 1)
y_in = -2.8 + 1.4 + 1.4 = 0
hasil aktivasi = y = 0 (-0.3<y_in< 0.3)
target t = 1
yt
bobot baru :
w1 = 1.4+(0.7)(1)(1) = 2.1
w2 = 1.4+(0.7)(1)(1) = 2.1
bias baru :
b = -2.8 + (0.7)(1) = -2.1

Data kedua : ( 1 0)
y_in = -2.8 + 1.4 + 0 = -1.4
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t
Data ketiga : ( 0 1)
y_in = -2.8 + 0 + 2.1 = -0.7
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t
Data keempat : ( 0 0)
y_in = -2.8 + 0 + 0 = -2.8
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t

Data kedua : ( 1 0)
y_in = -2.1 + 2.1 + 0 = 0
hasil aktivasi = y = 0 (-0.3<y_in < 0.3)
target t = -1
Pada iterasi kesepuluh tidak terjadi
yt
perubahan bobot shg proses pelatihan
bobot baru :
dapat dihentikan. Hasil akhir dari
w1 = 2.1+(0.7)(-1)(1) = 1.4
proses pembelajaran ini adalah :
w2 = 2.1+(0.7)(-1)(0) = 2.1
w1 = 1.4 ; w2 = 2.1 ; b = -2.8
bias baru :
b = -2.1 + (0.7)(-1) = -2.8
Data ketiga : ( 0 1)
y_in = -2.8 + 0 + 2.1 = -0.7
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t
Data keempat : ( 0 0)
y_in = -2.8 + 0 + 0 = -2.8
hasil aktivasi = y = -1 (y_in < -0.3)
target t = -1
y=t
Iterasi kesepuluh :

Data pertama : ( 1 1)
guwi-06

40

Jaringan Syaraf Tiruan

Shg persamaan garis pemisah antara daerah positif dan nol adalah :
1.4x1 + 2.1x2 2.8 = 0.3
Shg persamaan garis pemisah antara daerah negatif dan nol adalah :
1.4x1 + 2.1x2 2.8 = -0.3

x2

1.4 x1 2.1x2 2.8 0.3

1.4 x1 2.1x2 2.8 0.3


1.5

1.4 x1 2.1x2 2.8 0.3

1.2

1.4 x1 2.1x2 2.8 0.3

(Daerah positif)

(Daerah negatif)

2.2

x1

1.8

Gambar 3.3 Garis batas keputusan Perceptron : logika AND dgn input biner
targer bipolar

Hasil Testing thd pola input dengan memakai bobot dan bias yg didapat dalam
proses pelatihan :
w1 = 1.4 , w2 = 2.1, dan b = -2.8
Input
Bobot
Bias
x1
x2
w1
w2
b
1
1
1.4
2.1
-2.8
1
0
1.4
2.1
-2.8
0
1
1.4
2.1
-2.8
0
0
1.4
2.1
-2.8

net b xi wi
i

0.7
-1.4
-0.7
-2.8

output
y=f(net)
1
-1
-1
-1

target
1
-1
-1
-1

Tabel 3.1 Hasil Testing logika AND : input biner dan target bipolar
Soal latihan :
1. Tentukan solusi fungsi logika AND dengan input biner dan target bipolar
yang dilatih dengan algoritma perceptron.

x1
1
guwi-06

Input
x2
1

b
1

target
t
1
41

Jaringan Syaraf Tiruan

1
0
0

0
1
0

1
1
1

-1
-1
-1

Untuk nilai learning rate = 0.1 , 0.2 , 0.3, 0.5 dan nilai = 0.3. Jelaskan
hubungan antara learning rate dengan jumlah iterasi yang diperlukan.
2. Tentukan solusi fungsi logika AND dengan input bipolar dan target bipolar
yang dilatih dengan algoritma perceptron.

x1
1
1
-1
-1

Input
x2
1
-1
1
-1

b
1
1
1
1

target
t
1
-1
-1
-1

Untuk nilai learning rate = 0.7 dan nilai = 0.3. Berapakah jumlah iterasi
yang diperlukan bagi jst tersebut? Bandingkan dengan jst yang dilatih dengan
input biner dan target bipolar!
3.Gunakan JST Perceptron untuk mengklasifikasi pola input 2 dimensi dari 2
buah huruf yaitu : X dan O. Pola dari huruf tsb dinyatakan dgn :
#. . . #
. #. #.
. . #. .
. #. #.
#. . . #

. ###.
#. . . #
#. . . #
#. . . #
. ###.

Pola 1

Pola 2

Dalam hal ini kita menganggap jaringan hanya mempunyai 1 output yaitu
kelas X(untuk huruf X) dan kelas bukan X (untuk huruf O). Misal kelas
X kita beri nilai target 1 sedangkan kelas bukan X kita beri target 1.
Sedangkan setiap lambang # kita beri nilai 1 dan lambang . kita beri nilai
1. Gunakanlah = 0.7 dan nilai = 0.3

guwi-06

42

Jaringan Syaraf Tiruan

BAB IV Delta rule, Adaline, dan Madaline


4.1 Delta rule (Aturan Delta)
Metode pembelajaran Delta rule biasanya dipakai dalam pelatihan pada model
jaringan Adaline (adaptive linear Neuron) dan Madaline (Many Adaline)
input
x1

w1

output
y

wn

y_in

xn
Gambar 4.1 Arsitektur Adaline dgn satu unit output

Tujuan utama dari delta rule adalah untuk memperbaiki bobot-bobot (w) yg
menghubungkan antara unit input dan output sehingga selisih antara input
jaringan untuk unit output (y_in) dan nilai target (t) menjadi minimum.
Delta rule untuk adaline dengan satu unit output dirumuskan :

wi (t y _ in) xi ...................................................(4.1)

dimana,

selisih
n

y _ in xi wi
i 1

Sedangkan Delta rule untuk adaline dgn beberapa unit output dirumuskan :

wij (t j y _ in j ) xi ..................................................(4.2)

dimana,
n

y _ in j xi wij
i 1

b
guwi-06

43

Jaringan Syaraf Tiruan


x1

w11
w1m

y1

wn1

ym

xn

wnm

y_inj

i = 1,2,n
j = 1,2,m

tj

Gambar 4.2 Arsitektur Adaline dgn beberapa unit output

4.2 ADALINE (adaptive linear neuron)


Diperkenalkan oleh Widrow dan Hoff (1960)
Jaringan adaline biasanya dilatih dengan metode Delta rule atau sering disebut
metode Least Mean Square (LMS)
Adaline adalah unit tunggal (neuron) yg menerima input dari beberapa unit.
Arsitektur dari adaline
x1

xn

w1
y

wn

Gambar 4.3 Arsitektur sebuah Adaline

Beberapa adaline yg menerima sinyal dari unit input yg sama dapat dipadukan
dalam jaringan satu lapisan seperti dalam jaringan Perceptron.
Jika adaline dikombinasikan sedemikian hingga output dari beberapa adaline
menjadi input bagi adaline yg lain. Jaringan ini membentuk jaringan banyak
lapisan yg sering disebut dgn Madaline (many adaline).
Algoritma Adaline :
Langkah 0 : inisialisasi bobot (biasanya nilai acak yg kecil)
Set nilai learning rate
Langkah 1

selama kondisi berhenti bernilai salah, lakukan langkah 2 6

Langkah 2 : untuk setiap pasangan pola pelatihan bipolar s : t kerjakan


langkah 3 5
Langkah 3

set aktivasi unit input , i = 1,2,,n

x i = si
Langkah 4

guwi-06

tentukan input jaringan pada unit output :

44

Jaringan Syaraf Tiruan

y _ in b xi wi
i

Langkah 5

perbaiki nilai bias dan bobot :


w(baru) = w(lama) + (t y_in)xi
b(baru) = b(lama) + (t y_in)

Langkah 6 : tes kondisi berhenti. Jika perubahan bobot tertinggi yg terjadi


pada langkah 2 nilainya lebih kecil dari toleransi tertentu maka
hentikan, jika tidak lanjutkan.
4.3 MADALINE
Madaline adalah kumpulan dari banyak adaline yg membentuk jaringan banyak
lapisan atau jaringan satu lapisan dgn beberapa output.
Contoh yg diberikan pada Perceptron dan delta rule untuk beberapa output
menunjukkan tidak ada perubahan mendasar pada proses pelatihan jika beberapa
unit adaline dikombinasikan dalam jaringan satu lapisan.
Salah satu contoh madaline : jaringan 2 lapisan yg terdiri dari 1 lapisan
tersembunyi (terdiri dari 2 unit adaline) dan 1 lapisan output ( terdiri dari 1 unit
adaline).Lihat gambar 4.4

x1

w11
w12

b1

w22

Output
layer
b3

z1
v1

w21
x2

Hidden
layer

z2

v2

b2

Gambar 4.4 Arsitektur madaline : hidden layer ( 2 unit


output layer (1 unit adaline)

adaline) dan

ada 2 buah algoritma pelatihan Madaline yaitu : MR I dan MR II


4.3.1 Algoritma MR I (Madaline Released I)
Dalam algoritma MR I : bobot v1 dan v2 dan bias b3 ditentukan sedemikian
sehingga output y akan bernilai 1 jika salah satu (atau keduanya) z1 atau z2
bernilai 1. Sedangkan y akan bernilai 1 jika z1 dan z2 keduanya bernilai 1.Jadi
unit y melakukan fungsi logika OR pada sinyal z1 dan z2.
Bobot dan bias pada unit y ditentukan yaitu :
v1 =
guwi-06

45

Jaringan Syaraf Tiruan

v2 =
b3 =
Fungsi aktivasi untuk z1,z2, dan y adalah :
1 jika x 0
f ( x)
1 jika x 0

Algoritma MR I terdiri dari langkah-langkah yaitu :


Langkah 0 : inisialisasi bobot
bobot v1 , v2 dan bias b3 ditentukan dgn nilai spt yg telah ditentukan
diatas,sedangkan bobot dan bias yg lain di set dgn nilai acak kecil.
set learning rate dgn nilai kecil
langkah 1 : selama kondisi berhenti bernilai salah, kerjakan langkah 2 8 :
langkah 2 : untuk setiap pola pelatihan bipolar s : t, kerjakan langkah 3 7 :
langkah 3 : set aktivasi dari unit input :
xi = si
langkah 4 : hitung input jaringan untuk tiap-tiap hidden unit :
z_in1 = b1 + x1w11 + x2w21
z_in2 = b2 + x1w12 + x2w22
langkah 5 : tentukan output untuk tiap-tiap hidden unit :
z1 = f(z_in1)
z2 = f(z_in2)
langkah 6 : tentukan output jaringan :
y_in = b3 + z1v1 + z2v2
y = f(y_in)
langkah 7 : tentukan kesalahan dan perbaiki bobot :
jika t = y, maka tidak ada bobot yang diperbaiki
jika t y :
jika t =1, maka perbaiki bobot pada zj, unit input yg paling dekat
dgn 0
bj(baru) = bj(lama) + (1-z_inj)
wij(baru) = wij(lama) + (1-z_inj)xi
jika t =-1, maka perbaiki bobot pada semua unit zk, input jaringan
yg bernilai positif (z_ink > 0)
bk(baru) = bk(lama) + (-1-z_ink)
wik(baru) = wik(lama) + (-1-z_ink)xi
langkah 8 : tes kondisi berhenti
jika sudah tidak terjadi perubahan bobot atau jika nomer
maksimum dari iterasi perubahan bobot sudah dikerjakan
semuanya(langkah 2) maka hentikan. Jika tidak lanjutkan.
4.3.2 Algoritma MR II (Madaline Released II)
Algoritma MR II hampir sama dgn MR I, bedanya terletak pada langkah ke-7.
guwi-06

46

Jaringan Syaraf Tiruan

Algoritma MR II : bobot v1 dan v2 dan bias b3 ditentukan sedemikian sehingga


output y akan bernilai 1 jika salah satu (atau keduanya) z 1 atau z2 bernilai 1.
Sedangkan y akan bernilai 1 jika z1 dan z2 keduanya bernilai 1.Jadi unit y
melakukan fungsi logika OR pada sinyal z1 dan z2.
Bobot dan bias pada unit y ditentukan yaitu :
v1 =
v2 =
b3 =
Fungsi aktivasi untuk z1,z2, dan y adalah :
1 jika x 0
f ( x)
1 jika x 0

Algoritma MR II terdiri dari langkah-langkah yaitu :


Langkah 0 : inisialisasi bobot
bobot v1 , v2 dan bias b3 ditentukan dgn nilai spt yg telah ditentukan
diatas,sedangkan bobot dan bias yg lain di set dgn nilai acak kecil.
set learning rate dgn nilai kecil
langkah 1 : selama kondisi berhenti bernilai salah, kerjakan langkah 2 8 :
langkah 2 : untuk setiap pola pelatihan bipolar s : t, kerjakan langkah 3 7 :
langkah 3 : set aktivasi dari unit input :
xi = si
langkah 4 : hitung input jaringan untuk tiap-tiap hidden unit :
z_in1 = b1 + x1w11 + x2w21
z_in2 = b2 + x1w12 + x2w22
langkah 5 : tentukan output untuk tiap-tiap hidden unit :
z1 = f(z_in1)
z2 = f(z_in2)
langkah 6 : tentukan output jaringan :
y_in = b3 + z1v1 + z2v2
y = f(y_in)
langkah 7 : tentukan kesalahan dan perbaiki bobot :
jika t = y, maka tidak ada bobot yang diperbaiki
jika t y, kerjakan langkah 7a b untuk tiap unit hidden dgn
input jaringan cukup dekat dgn 0 (antara 0.25 sampai 0.25).
Mulai dengan yg paling dekat dgn 0 kemudian dilanjutkan dgn
terdekat berikutnya, dst.
Langkah 7a : perbaiki output unit (dari 1 menjadi 1, atau
sebaliknya)
Langkah 7b : hitung ulang output jaringan.
Jika kesalahan berkurang :

guwi-06

47

Jaringan Syaraf Tiruan

Perbaiki bobot pada unit ini (gunakan nilai output


yg terakhir sebagai target dan pakai Delta Rule)
langkah 8 : tes kondisi berhenti
jika sudah tidak terjadi perubahan bobot atau jika nomer
maksimum dari iterasi perubahan bobot sudah dikerjakan
semuanya(langkah 2) maka hentikan. Jika tidak lanjutkan
4.4 Aplikasi
Contoh 4.1 : pelatihan madaline untuk fungsi logika XOR
Contoh ini menggambarkan pemakaian Algoritma MR I untuk melatih Madaline
untuk menyelesaikan masalah fungsi logika XOR. Disini hanya akan
diperlihatkan perhitungan untuk perubahan bobot untuk iterasi yg pertama dari
input pertama sampai keempat. Iterasi selanjutnya dicoba sendiri.
Pola pelatihan adalah :
x1
x2
t
1
1
-1
1
-1
1
-1
1
1
-1
-1
-1

x1

w11
w12

b1

w22

Output
layer
b3

z1
v1

w21
x2

Hidden
layer

z2

v2

b2

Gambar 4.5 Arsitektur madaline untuk kasus XOR

Iterasi pertama :
langkah 0 : inisialisasi bobot :
bobot pada z1
w11
w21
0.05 0.2
bobot pada z2
w12
w22
0.1
0.2
bobot pada y
v1
v2
guwi-06

b1
0.3
b2
0.15
b3
48

Jaringan Syaraf Tiruan

0.5

0.5

0.5

Learning Rate = 0.5


langkah 1 : mulai pelatihan
langkah 2 : untuk pasangan pelatihan pertama (1,1) : -1
langkah 3 : x1 = 1 , x2 = 1
langkah 4 : z_in1 = b1+ w11x1+w21x2 = 0.3+0.05(1)+0.2(1) = 0.55
z_in2 = b1+ w12x1+w22x2 =0.15+0.1(1)+0.2(1) = 0.45
langkah 5 : z1 = 1 , z2 = 1
langkah 6 : y_in = 0.5+0.5+0.5 = 1.5
y =1
langkah 7 : t - y = -1 - 1 = -2 0, jadi kesalahan terjadi.
Karena t =-1, dan kedua unit z memiliki nilai input jaringan positif
(z_in1=0.55, z_in2 = 0.45), maka
ubah bobot pada z1 yaitu :
b1(baru) = b1(lama) + (-1-z_in1)
= 0.3 + (0.5)(-1.55)
= -0.475
w11(baru) = w11(lama) + (-1-z_in1)x1
= 0.05+ (0.5)(-1.55)
= -0.725
w21(baru) = w21(lama) + (-1-z_in1)x2
= 0.2+ (0.5)(-1.55)
= -0.575
ubah bobot pada z2 yaitu :
b2(baru) = b2(lama) + (-1-z_in2)
= 0.15 + (0.5)(-1.45)
= -0.575
w12(baru) = w12(lama) + (-1-z_in2)x1
= 0.1+ (0.5)(-1.45)
= -0.625
w22(baru) = w22(lama) + (-1-z_in2)x2
= 0.2+ (0.5)(-1.45)
= -0.525
input kedua :
langkah 0 : inisialisasi bobot :
bobot pada z1
w11
w21
guwi-06

b1
49

Jaringan Syaraf Tiruan

-0.725 -0.575 -0.475


bobot pada z2
w12
w22
b2
-0.625 -0.525 -0.575
bobot pada y
v1
v2
b3
0.5
0.5
0.5
langkah 1 : mulai pelatihan
langkah 2 : untuk pasangan pelatihan kedua (1,-1) : 1
langkah 3 : x1 = 1 , x2 = -1
langkah 4 : z_in1 = -0.475+-0.725+0.575 = -0.625
z_in2 = -0.575+-0.625+0.525 = -0.675
langkah 5 : z1 = -1 , z2 = -1
langkah 6 : y_in = 0.5+-0.5+-0.5 = -0.5
y = -1
langkah 7 : t - y = 1 + 1 = 2 0, jadi kesalahan terjadi.
Karena t =1, dan kedua unit z memiliki nilai input jaringan negatif maka
perbaiki bobot pada z1 yaitu :
b1(baru) = b1(lama) + (1-z_in1)
= -0.475 + (0.5)(1.625)
= 0.3375
w11(baru) = w11(lama) + (1-z_in1)x1
= -0.725+ (0.5)(1.625)
= 0.0875
w21(baru) = w21(lama) + (1-z_in1)x2
= -0.575+ (0.5)(1.625)(-1)
= -1.3875
ubah bobot pada z2 yaitu :
b2(baru) = b2(lama) + (1-z_in2)
= -0.575 + (0.5)(1.675)
= 0.2625
w12(baru) = w12(lama) + (1-z_in2)x1
= -0.625+ (0.5)(1.675)
= 0.2125
w22(baru) = w22(lama) + (1-z_in2)x2
= -0.525+ (0.5)(1.675)(-1)
= -1.3625
input ketiga :
langkah 0 : inisialisasi bobot :
guwi-06

50

Jaringan Syaraf Tiruan

bobot pada z1
w11
w21
b1
0.0875 -1.3875
0.3375
bobot pada z2
w12
w22
b2
0.2125 -1.3625
0.2625
bobot pada y
v1
v2
b3
0.5
0.5
0.5
langkah 1 : mulai pelatihan
langkah 2 : untuk pasangan pelatihan ketiga (-1,1) : 1
langkah 3 : x1 = -1 , x2 = 1
langkah 4 : z_in1 = 0.3375+-0.0875+-1.3875 = -1.1375
z_in2 = 0.2625+-0.2125+-1.3625 = -1.3125
langkah 5 : z1 = -1 , z2 = -1
langkah 6 : y_in = 0.5+-0.5+-0.5 = -0.5
y = -1
langkah 7 : t - y = 1 + 1 = 2 0, jadi kesalahan terjadi.
Karena t =-1, dan kedua unit z memiliki nilai input jaringan negatif maka
ubah bobot pada z1 yaitu :
b1(baru) = b1(lama) + (1-z_in1)
= 0.3375 + (0.5)(2.1375)
= 1.40625
w11(baru) = w11(lama) + (1-z_in1)x1
= 0.0875+ (0.5)(2.1375)(-1)
= -0.98125
w21(baru) = w21(lama) + (1-z_in1)x2
= -1.3875+ (0.5)(2.1375)
= -0.31875
ubah bobot pada z2 yaitu :
b2(baru) = b2(lama) + (1-z_in2)
= 0.2625 + (0.5)(2.3125)
= 1.41875
w12(baru) = w12(lama) + (1-z_in2)x1
= 0.2125+ (0.5)(2.3125)(-1)
= -0.94375
w22(baru) = w22(lama) + (1-z_in2)x2
= -1.3625+ (0.5)(2.3125)
= -0.20625

guwi-06

51

Jaringan Syaraf Tiruan

input keempat :
langkah 0 : inisialisasi bobot :
bobot pada z1
w11
w21
b1
-0.98125 -0.31875 1.40625
bobot pada z2
w12
w22
b2
-0.94375 -0.20625 1.41875
bobot pada y
v1
v2
b3
0.5
0.5
0.5
langkah 1 : mulai pelatihan
langkah 2 : untuk pasangan pelatihan pertama (-1,-1) : -1
langkah 3 : x1 = -1 , x2 = -1
langkah 4 : z_in1 = 1.40625+0.98125+0.31875 = 2.70625
z_in2 = 1.41875+0.94375+0.20625 = 2.56875
langkah 5 : z1 = 1 , z2 = 1
langkah 6 : y_in = 0.5+0.5+0.5 = 1.5
y =1
langkah 7 : t - y = -1 - 1 = -2 0, jadi kesalahan terjadi.
Karena t =-1, dan kedua unit z memiliki nilai input jaringan positif maka
ubah bobot pada z1 yaitu :
b1(baru) = b1(lama) + (-1-z_in1)
= 1.40625 + (0.5)(-3.70625)
= -0.446875
w11(baru) = w11(lama) + (-1-z_in1)x1
= -0.98125+ 1.853125
= 0.871875
w21(baru) = w21(lama) + (-1-z_in1)x2
= -0.31875+ 1.853125
= 1.5534375
ubah bobot pada z2 yaitu :
b2(baru) = b2(lama) + (-1-z_in2)
= 1.41875 + -1.784375
= -0.365625
w12(baru) = w12(lama) + (-1-z_in2)x1
= -0.94375+ 1.784375
= 0.840625
w22(baru) = w22(lama) + (-1-z_in2)x2
= -0.20625+ 1.784375
guwi-06

52

Jaringan Syaraf Tiruan

= 1.578125
karena dalam iterasi yg pertama ini masih terjadi perbaikan bobot maka iterasi
dilanjutkan ke iterasi yg kedua, ketiga,,sampai kondisi berhenti tercapai.

input
x1 x2 b
Epoch1

Epoch2

Epoch3

1
1
-1
-1
1
1
-1
-1
1
1
-1

guwi-06

1
-1
1
-1
1
-1
1
-1
1
-1
1

1
1
1
1
1
1
1
1
1
1
1

zin1

zin2

w11

w21

b1

w12

w22

b2

z1 z2 yin

-1
1
1
-1
-1
1
1
-1
-1
1
1

0.55

0.45

-0,725
0,0875
1,4063

-0,575
-1,3875
-0,0688

-0,475
0,3375
-0,9813

-0,625
-1,3675
-0,2063

-0,525
0,2125
1,3688

-0,575
0,1625
-0,9938

53

1,5

y
1

Jaringan Syaraf Tiruan


-1

-1

-1

Silahkan hitung sendiri! Kalau tidak ada kekeliruan dalam perhitungan maka
kondisi berhenti akan tercapai setelah 4 kali iterasi (4 epoch). Dalam hal ini hasil
akhir bobot dan bias yaitu :
w11 = -0.73
w12 = 1.27
w21 = 1.53
w22 = -1.33
b1 = -0.99
b2 = -1.09
Hasil Testing thd pola input dengan memakai bobot dan bias yg didapat dalam
proses pelatihan :
Untuk pola input pertama (1,1) dengan target (1)
z_in1 = b1 + w11x1 + w21x2 = -0.99 + (-0.73)(1)+(1.53)(1) = -0.19
z_in2 = b2 + w12x1 + w22x2 = -1.99 + (1.27)(1)+(-1.33)(1) = -2.05
z1 = f(z_in1) = f(-0.19) = -1
z2 = f(z_in2) = f(-2.05) = -1
y_in = b3 + v1z1 + v2z2 = 0.5 + (0.5)(-1) + (0.5)(-1) = -0.5
y = f(y_in) = f(-0.5) = -1
jadi output y=-1 sesuai dengan target =-1
Untuk pola input kedua (1,-1) dengan target (1)
z_in1 = b1 + w11x1 + w21x2 = -0.99 + (-0.73)(1)+(1.53)(-1) = -3.25
z_in2 = b2 + w12x1 + w22x2 = -1.99 + (1.27)(1)+(-1.33)(-1) = 0.61
z1 = f(z_in1) = f(-3.25) = -1
z2 = f(z_in2) = f(0.61) = 1
y_in = b3 + v1z1 + v2z2 = 0.5 + (0.5)(-1) + (0.5)(1) = 0.5
y = f(y_in) = f(0.5) = 1
jadi output y=1 sesuai dengan target =1
Untuk pola input ketiga (-1,1) dengan target (1)
z_in1 = b1 + w11x1 + w21x2 = -0.99 + (-0.73)(-1)+(1.53)(1) = 1.27
z_in2 = b2 + w12x1 + w22x2 = -1.99 + (1.27)(-1)+(-1.33)(1) = -4.59
z1 = f(z_in1) = f(1.27) = 1
z2 = f(z_in2) = f(-4.59) = -1
y_in = b3 + v1z1 + v2z2 = 0.5 + (0.5)(1) + (0.5)(-1) = 0.5
y = f(y_in) = f(0.5) = 1
jadi output y=1 sesuai dengan target =1
Untuk pola input keempat (-1,-1) dengan target (-1)
z_in1 = b1 + w11x1 + w21x2 = -0.99 + (-0.73)(-1)+(1.53)(-1) = -1.79
z_in2 = b2 + w12x1 + w22x2 = -1.99 + (1.27)(-1)+(-1.33)(-1) = -1.93
guwi-06

54

Jaringan Syaraf Tiruan

z1 = f(z_in1) = f(-1.79) = -1
z2 = f(z_in2) = f(-1.93) = -1
y_in = b3 + v1z1 + v2z2 = 0.5 + (0.5)(-1) + (0.5)(-1) = -0.5
y = f(y_in) = f(-0.5) = -1
jadi output y =-1 sesuai dengan target = -1

BAB V Jaringan Heteroassociative Memory


o Jaringan syaraf HM adalah jaringan dimana bobot-bobotnya ditentukan
sedemikian shg jaringan dpt menyimpan sekumpulan pola P. Tiap-tiap kumpulan
pola adalah pasangan vektor (s(p), t(p)), dgn p = 1,2,,P.
o Tiap vektor s(p) terdiri dari n komponen, dan tiap target t(p) terdiri dari m
komponen
o Bobot dpt dicari dg memakai aturan Hebb(bab II) atau aturan Delta (bab IV)
5.1 Arsitektur
o Arsitektur dari Jaringan Heteroassociative memory :
x1

xi

xn

w11
wii
wnm

y1
yi

ym

Gambar 5.1 Arsitektur Heteroassociative Memory

5.2 Algoritma pelatihan


o Algoritma pelatihan HM biasanya memakai algoritma Hebb atau Delta rule.
Algoritma Hebb untuk pengelompokan pola adalah :
langkah 0 : Bobot diberi nilai awal :
wij = 0 (i = 1,2,,n ; j = 1,2,,m)
langkah 1 : untuk tiap pasangan input dan target, s : t, lakukan langkah 2 - 4 :
guwi-06

55

Jaringan Syaraf Tiruan

langkah 2 : set aktivasi untuk unit input :


xi = si
(i = 1,2,,n)
langkah 3 : set aktivasi untuk unit output :
yj = tj
langkah 4 : perbaiki nilai bobot :
wij(baru) = wij(lama) +xiyj
o Algoritma Hebb juga dapat ditentukan dgn perkalian matrik (outer product)
antara pasangan vektor input(s) dan output (t) untuk mendapatkan bobot w :
s = (s1, ,si,,sn_)
t = (t1, ,tj,,tm_)
T
jika S = s dan T = t maka :

s1


ST si t1


s n

tj

tm

s1t1
.

si t1

.
s n t1

s1 t j

si t j

snt j

s1t m

s i tm

s n t m

hasil kali ST adalah sama dengan matrik bobot w untuk menyimpan pasangan
pola pelatihan s : t. Bobot w bisa juga dinyatakan dgn
P

wij si ( p)t j ( p)
p 1

atau dalam bentuk yg lebih umum :


P

w s T ( p)t ( p)
p 1

5.3 Algoritma testing


o Algoritma testing jaringan HM yg dilatih dgn algoritma Hebb :

Langkah 0
Delta

inisialisasi bobot dgn aturan Hebb atau

Langkah 1 : untuk tiap vektor input, kerjakan langkah 2 4


Langkah 2 :
set aktivasi dari unit input sama dgn vektor input
sekarang
Langkah 3 : hitung input jaringan untuk unit output :
n

y _ in j xi wij
i 1

Langkah 4 : tentukan aktivasi dari unit output :

guwi-06

56

Jaringan Syaraf Tiruan

1 jika y _ in j 0

y j f ( y _ in j ) 0 jika y _ in j 0
1 jika y _ in 0
j

1 jika y _ in j 0
y j f ( y _ in j )
1 jika y _ in j 0

(untuk target bipolar)

(untuk target biner)

o Contoh 5.1:
Misalkan sebuah jaringan HM dilatih untuk menyimpan pola dari vektor
input s = (s1, s2, s3, s4) dan vektor output t = (t1, t2) yaitu :
s1
s2
s3
s4
t1
t2
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
x1
w11
w12
w21
y1
x2
w22
w31
x3
w32
y2
w41
w42
x4
Gambar 5.2 Jaringan HM : 4 input dan 2 output

Pelatihan :
Langkah 0 :
semua bobot diberi nilai 0
Langkah 1 : untuk pasangan pola yg pertama s : t ( 1,0,0,0) (1,0)
Langkah 2 : x1 = 1 ; x2 = 0; x3 = 0 ; x4 = 0
Langkah 3 : y1 = 1 ; y2 = 0
Langkah 4 : w11(baru) = w11(lama) + x1y1 = 0 + 1 = 1
Semua bobot yg lain tetap 0
Langkah 1 : untuk pasangan pola yg kedua s : t ( 1,1,0,0) (1,0)
Langkah 2 : x1 = 1 ; x2 = 1; x3 = 0 ; x4 = 0
Langkah 3 : y1 = 1 ; y2 = 0
Langkah 4 : w11(baru) = w11(lama) + x1y1 = 1 + 1 = 2
w21(baru) = w21(lama) + x2y1 = 0 + 1 = 1
guwi-06

57

Jaringan Syaraf Tiruan

Semua bobot yg lain tetap 0


Langkah 1 : untuk pasangan pola yg ketiga s : t ( 0,0,0,1) (0,1)
Langkah 2 : x1 = 0 ; x2 = 0; x3 = 0 ; x4 = 1
Langkah 3 : y1 = 0 ; y2 = 1
Langkah 4 : w42(baru) = w42(lama) + x4y2 = 0 + 1 = 1
Semua bobot yg lain tetap tidak berubah
Langkah 1 : untuk pasangan pola yg keempat s : t ( 0,0,1,1) (0,1)
Langkah 2 : x1 = 0 ; x2 = 0; x3 = 1 ; x4 = 1
Langkah 3 : y1 = 0 ; y2 = 1
Langkah 4 : w32(baru) = w32(lama) + x3y2 = 0 + 1 = 1
w42(baru) = w42(lama) + x4y2 = 1 + 1 = 2
Semua bobot yg lain tetap tidak berubah
Sehingga matrik bobotnya adalah :
2 0
1 0

W
0 1

0 2
cara lain untuk mendapatkan matrik bobot tersebut adalah dengan memakai
perkalian matrik (outer product). Adapun langkahnya adalah :
untuk pasangan pola yg pertama s = (1,0,0,0) ; t = (1,0)
1
1 0
0

1 0 0 0
0
0 0

0
0 0
untuk pasangan pola yg kedua s = (1,1,0,0) ; t = (1,0)
1
1 0
1

1 0 1 0
0
0 0

0
0 0
untuk pasangan pola yg ketiga s = (0,0,0,1) ; t = (0,1)
0
0 0
0
0 0
0 1

0
0 0

1
0 1
untuk pasangan pola yg keempat s = (0,0,1,1) ; t = (0,1)

guwi-06

58

Jaringan Syaraf Tiruan

0
0
0
0
0 1
1
0

1
0

0
0
1

matrik bobot untuk menyimpan semua pasangan pola adalah hasil penjumlahan dari setiap
matrik pasangan pola diatas :

1
0
w
0

0 1
0 1

0 0

0 0

0 0
0 0

0 0

0 0

0 0
0 0

0 0

1 0

0 2
0 1

1 0

1 0

0
0
1

o Selanjutnya kita lakukan Testing terhadap pola input dgn menggunakan bobot w
hasil pelatihan.Dgn memakai algoritma testing dan fungsi aktivasi pola biner:

Langkah 0 :

Langkah 1

2
1
w
0

0
0
1

pola input pertama, lakukan langkah 2

4
Langkah 2 : x = (1,0,0,0)
Langkah 3 : y_in1 = x1w11+ x2w21+ x3w31+ x4w41
= 1(2) + 0(1) + 0(0) + 0(0) = 2
y_in2 = x1w12+ x2w22+ x3w32+ x4w42
= 1(0) + 0(0) + 0(0) + 0(0) = 0
langkah 4 : y1
= f(y_in1) = f(2) = 1
y2
= f(y_in2) = f(0) = 0
(ini menunjukkan output yg benar untuk input pertama)

Langkah 1

pola input kedua, lakukan langkah 2 4

Langkah 2 : x = (1,1,0,0)
Langkah 3 : y_in1 = x1w11+ x2w21+ x3w31+ x4w41
= 1(2) + 1(1) + 0(0) + 0(0) = 3
y_in2 = x1w12+ x2w22+ x3w32+ x4w42
= 1(0) + 1(0) + 0(0) + 0(0) = 0
langkah 4 : y1
= f(y_in1) = f(3) = 1
y2
= f(y_in2) = f(0) = 0
(ini menunjukkan output yg benar untuk input kedua)
guwi-06

59

Jaringan Syaraf Tiruan

Langkah 1

pola input ketiga, lakukan langkah 2 4

Langkah 2 : x = (0,0,0,1)
Langkah 3 : y_in1 = x1w11+ x2w21+ x3w31+ x4w41
= 0(2) + 0(1) + 0(0) + 1(0) = 0
y_in2 = x1w12+ x2w22+ x3w32+ x4w42
= 0(0) + 0(0) + 0(1) + 1(2) = 2
langkah 4 : y1
= f(y_in1) = f(0) = 0
y2
= f(y_in2) = f(2) = 1
(ini menunjukkan output yg benar untuk input ketiga)

Langkah 1

pola input keempat, lakukan langkah 2

4
Langkah 2 : x = (0,0,1,1)
Langkah 3 : y_in1 = x1w11+ x2w21+ x3w31+ x4w41
= 0(2) + 0(1) + 1(0) + 1(0) = 0
y_in2 = x1w12+ x2w22+ x3w32+ x4w42
= 0(0) + 0(0) + 1(1) + 1(2) = 3
langkah 4 : y1
= f(y_in1) = f(0) = 0
y2
= f(y_in2) = f(3) = 1
(ini menunjukkan output yg benar untuk input keempat
o Proses Testing thd pola input juga dpt dilakukan dgn menggunakan matrik yaitu :

2
1
w
Langkah 0 :
0

0
0
1

Langkah 1 : untuk vektor input pertama :


Langkah 2 : x = (1,0,0,0)
Langkah 3 : x W = (y_in1,y_in2)
2
1
1 0 0 0
0

0
0
(2,0)
1

Langkah 4 : f(2) = 1 ; f(0) = 0


y = (1,0)
atau semua proses dari langkah 2 4 dinyatakan dgn :
x W = (y_in1, y_in2)
y

guwi-06

60

Jaringan Syaraf Tiruan

2
1
1 0 0 0
0

0
0
(2,0)
1

(1,0)

atau singkatnya :
(1,0,0,0) W = (2,0)
(1,0)
sehingga hasil testing untuk 3 vektor input lainnya adalah :
(1,1,0,0) W = (3,0)
(1,0)
(0,0,0,1) W = (0,2)
(0,1)
(0,0,1,1) W = (0,3)
(0,1)
o Contoh 5.2 : Coba lakukan testing thd matrik bobot w yg didapat pada contoh 5.1
dgn data input yg mirip dgn data input pelatihan yaitu x = (0,1,0,0).
Jawab :
Pola input x (0,1,0,0) berbeda dgn vektor pelatihan s=(1,1,0,0) pada
komponen yg pertama. Hasil testing dari pola input ini :
(0,1,0,0) w = (1,0)
(1,0)
Hasil testing ini menunjukkan bahwa jaringan masih dpt mengelompokkan data
testing ini ke dalam salah satu pola dalam pelatihan
o Contoh 5.3 : Coba lakukan testing thd matrik bobot w yg didapat pada contoh 5.1
dgn data input yg tidak mirip dgn data input pelatihan yaitu x = (0,1,1,0).
Jawab :
Pola input x (0,1,1,0) berbeda dgn vektor pelatihan s=(1,1,0,0) pada 2
komponen yaitu komponen pertama dan ketiga. Hasil testing dari pola input ini :
(0,1,1,0) w = (1,1)
(1,1)
Hasil testing ini menunjukkan bahwa jaringan tidak dpt mengelompokkan data
testing ini ke dalam salah satu target pola dalam pelatihan. Jadi jika ada 2 buah
komponen yg berbeda pada vektor input maka jaringan tidak akan mampu
mengelompokkan data input tsb ke dalam salah satu target pelatihan.
o Contoh 5.4:
Misalkan jaringan HM dlm contoh 5.1 dilatih untuk menyimpan pola vektor
input dan output bipolar yaitu :
s1
s2
s3
s4
t1
t2
1
-1
-1
-1
1
-1
1
1
-1
-1
1
-1
-1
-1
-1
1
-1
1
-1
-1
1
1
-1
1
Jika kita pakai cara perkalian matrik (outer product). Adapun langkahnya
adalah :
guwi-06

61

Jaringan Syaraf Tiruan

untuk pasangan pola yg pertama s = (1,-1,-1,-1) ; t = (1,-1)


1
1 1
1
1 1
1 1

1
1 1

1
1 1
untuk pasangan pola yg kedua s = (1,1,-1,-1) ; t = (1,-1)
1
1 1
1
1 1
1 1

1
1 1

1
1 1
untuk pasangan pola yg ketiga s = (-1,-1,-1,1) ; t = (-1,1)
1
1 1
1

1 1 1 1
1
1 1

1
1 1
untuk pasangan pola yg keempat s = (-1,-1,1,1) ; t = (-1,1)
1
1 1
1

1 1 1 1
1
1 1

1
1 1
matrik bobot untuk menyimpan semua pasangan pola adalah hasil penjumlahan dari setiap
matrik pasangan pola diatas :

1 1 1 1 1 1 1 1 4 4
1 1 1 1 1 1 1 1 2 2

w
1 1 1 1 1 1 1 1 2 2

1 1 1 1 1 1 1 1 4 4
o Salah satu kelebihan memakai pola bipolar adalah dalam menyatakan bentuk
gangguan (noise) dalam data input. Jika kita anggap ada dua bentuk noise yaitu :
data salah (mistake) dan data hilang (missing) dan jika noise dinyatakan
dalam pola bipolar yaitu :
guwi-06

62

Jaringan Syaraf Tiruan

1 ya
1 tidak
0 ragu-ragu (unsure)
jadi untuk kasus data hilang (missing) :
ya = ragu ; tidak = ragu atau 1 dinyatakan dgn 0 ; -1 dinyatakan
dgn 0
sedang untuk kasus data salah (mistake) :
ya = tidak ; tidak = ya atau 1 dinyatakan dgn 1 ; 1 dinyatakan
dgn 1

o Salah satu kelebihan memakai pola bipolar adalah dalam menyatakan bentuk
gangguan (noise) dalam data input. Jika kita anggap ada dua bentuk noise yaitu :
data salah (mistake) dan data hilang (missing) dan jika noise dinyatakan
dalam pola bipolar yaitu :
o Misal jika kita testing matrik bobot W yg didapatkan dalam contoh 5.4.(bipolar)
dengan input data salah pada 2 komponen (data pertama dan ketiga) yaitu (1,1,1-1)
(-1,1,1,-1) W = (0,0) (0,0)
hal ini menunjukkan respon yg masih salah dari jaringan thd pola input tsb.

o Dan misal jika kita testing matrik bobot W yg didapatkan dalam contoh
5.4.(bipolar) dengan input data hilang pada 2 komponen (data pertama dan
ketiga) yaitu (0,1,0-1) maka :
(0,1,0,-1) W = (6,-6) (1,-1)
hal ini menunjukkan respon yg benar dari jaringan thd pola input tsb.

o Contoh 5.5. : Misal jika kita melatih jaringan syaraf HM dgn 3 pasangan pola
pelatihan spt di bawah ini. Input (s) terdiri dari 63 komponen dan output (t)
terdiri dari 15 komponen.
..
..
..
..
..
.#
.#
#.
#.

Pola 1
. #. .
.
. #. .
.
#. #.
..
#. #.
.#
###.
.#
...#
.#
...#
.#
....
#
....
#
s(1)
t(1)

Pola 2
#####
#. . . .
#. #. . . .
. ##. . . .
#######
. ##. . . .
. ##. . . .
#. . . .
#####
s(2)

..
#.
. ##
#. #
..#
#. #
. ##
#.
..
t(2)

Pola 3
. . ###
. #. . .
#. #. . . .
.
. ##. . . .
.
#. #. . . .
.
. ##. . . .
.
#. #. . . .
.
. #. . .
. . ###
s(3)

.
#
##
.#
.#
.#
##
#
.
t(3)

.
.
#
.
.
.
#
.
.

#
.
.
.
#

dimana : # = 1 dan . = -1

guwi-06

63

Jaringan Syaraf Tiruan

a)Gambarkan arsitektur jaringan HM dan tentukan matrik bobot W dgn pelatihan.


Kemudian lakukan testing thd pola input dgn bobot W tersebut. Bagaimana
hasilnya?
b)Buktikan hasil testing dari pola-pola berikut ini :
$.
..
..
..
..
.#
.#
#.
#.

. #. .
. #. .
#. #.
#. #.
###.
...#
. $. #
. $. .
. $. .

input
$.
..
$.
..
$.
.#
.#
#.
#.

. #. .
. #. $
#. #.
#. #.
###.
$. . #
. $. #
$$. .
. $. $

input

.
.
..
.#
.#
.#
.#
#
#
output
$
.
$.
$#
$#
.#
$#
#
#
output

$. . #.
. . . #.
#. $. #. #
. #. . #. #
##$. ###
. #. #. . .
. #. #. $.
#. . $.
#. . $.

.$
..
...
..#
. $#
#. #
#$#
.#
.#

input

output

. . . #.
. . . o.
#. . . #. #
. #. . o. #
##. . #o#
. #. #. . .
. #. #. . .
#. . . .
#. . . .

..
..
...
..#
..#
o. #
o. #
.#
.#

input

output

$. . #.
. . . #.
#. $. #. #
. #. . #. #
##$. ###
. #. #$. .
. #. #. $.
# . $.
#. . $.
input
. . . #.
. . . o.
#. . . o. #
. #. . o. #
##. . #oo
. #. #. . .
. #. #. . .
o ...
o. . . .
input

.
$
...
..#
. $#
#. #
#$#
.

$
.
#
.
#
.
.
#
#

.
#
#
#
#

.
.
#
.
#
.
.
#
#

.
#
#
#
#

$
.
#
.
.
.
#
.
.

#
.
.
.
#

output
.
.
..
..
..
o.
o.

.
#
#
#
#

.
output

dimana noise $ dan o dilambangkan dengan :

$ = 1 ; o = -1
c)Buktikan hasil testing dari pola-pola berikut ini :
. . $#. $
.
o##o# . .
$. #o#
. $ . #$.
.
#. $. .
#.
. #$. .
$. #$#.
$.
#. #$. . $ . ## #. #$. . $
. . o. #$
. # . #o. . $.
o. # . #o. . $.
. $ ##o.
. # ####o## $. # #. #. $. .
. # . $. #
. # . ##$. . $ o. # . ##$. . $
. # $. . o
. # . #o. . $.
. o# #. o. . $.
#$ . . $.
#
#. $. .
o.
. #$. .
o. . $. .
o
#o##o . .
. . $##
input

output

input

output

input

.
o
. ##
. $#
$. #
..#
. o#
o
o
output

dimana noise $ dan o dilambangkan dengan :

$=1 ;

guwi-06

o = -1

64

Jaringan Syaraf Tiruan

BAB VI Jaringan Auto-associative Memory


o Jaringan syaraf AM merupakan bentuk khusus dari Jaringan HM
o Jaringan AM, vektor input dan target dari pola pelatihan adalah identik
o Proses pelatihan disebut dgn proses penyimpanan vektor
o Vektor yg sudah tersimpan ini dapat dikenali dari vektor input yg tidak sempurna
(noise)
o Unjuk kerja jaringan dpt dinilai dari kemampuannya untuk menghasilkan polapola yg sudah tersimpan walaupun diberikan input yang tidak sempurna (bernoise
atau hilang sebagian)
o Umumnya kemampuan jaringan yg dilatih dengan pola vektor bipolar akan lebih
baik dari pelatihan dengan vektor biner
o Seringkali diagonal dari matrik bobot hasil pelatihan nilainya dibuat 0. Hal ini
untuk meningkatkan kemampuan jaringan khususnya jika jaringan dipakai untuk
menyimpan lebih dari satu vektor
6.1 Arsitektur
x1

xi

xn

w11
wii
wnm

y1
yj

yn

Gambar 6.1 Arsitektur Auto-associative Memory

guwi-06

65

Jaringan Syaraf Tiruan

6.2 Algoritma pelatihan


o Algoritma pelatihan AM biasanya memakai algoritma Hebb
o Vektor input dan output adalah sama (jml unit output = jml unit input)
langkah 0 : Bobot diberi nilai awal :
wij = 0 (i = 1,2,,n ; j = 1,2,,m)
langkah 1 : untuk tiap vektor yg akan disimpan, lakukan langkah 2 - 4 :
langkah 2 : set aktivasi untuk unit input :
xi = si
(i = 1,2,,n)
langkah 3 : set aktivasi untuk unit output :
yj = tj
langkah 4 : perbaiki nilai bobot :
wij(baru) = wij(lama) +xiyj
o biasanya dalam praktek bobot W dapat dihitung dgn rumus :
P

w s T ( p) s( p)
p 1

6.3. Aplikasi / testing


o sesudah pelatihan jaringan AM dpt dipakai untuk mengetes apakah sebuah
vektor input dpt dikenali atau tidak oleh jaringan
o Jaringan akan dpt mengenali sebuah vektor jika dia bisa menghasilkan pola
aktivasi pada unit output yg sama dengan vektor yang tersimpan dalam jaringan
tsb.
o Langkah-langkah testing adalah :
langkah 0 : set bobot (dgn aturan Hebb atau Outer Product)
langkah 1 : untuk tiap vektor input yg akan ditesting, lakukan langkah 2 - 4 :
langkah 2 : set aktivasi untuk unit input sama dengan vektor input
langkah 3 : hitung input jaringan utuk masing-masing unit output
y _ in j xi wij ; j 1,2,...n
i

langkah 4 : gunakan fungsi aktivasi (j = 1,2,,m)

1 jika y _ in j 0
y j f ( y _ in j )
1 jika y _ in j 0
contoh 6.1 :

guwi-06

66

Jaringan Syaraf Tiruan

Andaikan kita ingin menyimpan sebuah vektor input (1,1,1,-1) ke dalam


jaringan A.M. Setelah pelatihan kita ingin mengetes apakah jaringan dapat
mengenali vektor input tsb.
Langkah 0 : vektor s = (1,1,1,-1) disimpan dengan matrik bobot :
1 1 1
1

P
1
1
1

1
T

w s ( p) s( p) w

1
1
1

1
p 1

1 1 1 1
Hasil testing dari vektor input thd matrik bobot w hasil pelatihan :
Langkah 1 : untuk tiap-tiap vektor input :
Langkah 2 : x = (1,1,1,-1)
Langkah 3 : y_in = (4,4,4,-4)
Langkah 4 : y = f(4,4,4,-4) = (1,1,1,-1)
Ternyata hasil output y sama dgn vektor input. Berarti jaringan dpt mengenali
vektor input tsb.
Proses testing juga bisa dilakukan dengan cara :
(1,1,1,-1) W = (4,4,4,-4) (1,1,1,-1)
Contoh 6.2 :
Menguji jaringan AM dgn beberapa vektor input dgn satu komponen
salah(mistake). Adapun vektor tsb adalah : (-1,1,1,-1), (1,-1,1,-1), (1,1,-1,-1), dan
(1,1,1,1)
Hasil testing :
(-1,1,1,-1)W = (2,2,2,-2) (1,1,1,-1)
(1,-1,1,-1)W = (2,2,2,-2) (1,1,1,-1)
(1,1,-1,-1)W = (2,2,2,-2) (1,1,1,-1)
(1,1,1,1) W = (2,2,2,-2) (1,1,1,-1)
Contoh 6.3 :
Ujilah jaringan AM tsb dgn vektor input dimana sebuah komponennya
hilang. Adapun vektor-vektor tsb adalah : (0,1,1,-1), (1,0,1,-1), (1,1,0,-1) dan
(1,1,1,0)
Hasil testing :
(0,1,1,-1)W = (3,3,3,-3) (1,1,1,-1)
(1,0,1,-1)W = (3,3,3,-3) (1,1,1,-1)
(1,1,0,-1)W = (3,3,3,-3) (1,1,1,-1)
(1,1,1,0) W = (3,3,3,-3) (1,1,1,-1)
6.4. Kapasitas Penyimpanan
o Adalah banyaknya pola yg dpt disimpan dlm jaringan AM
guwi-06

67

Jaringan Syaraf Tiruan

Contoh 6.4 :
Penyimpanan 2 vektor ortogonal dalam jaringan AM
Vektor 1 : (1,1,-1,-1)
Vektor 2 : (-1,1,1,-1)
Jika w1 dan w2 adalah matrik bobot dari vektor 1 dan vektor 2 :
P

w s T ( p) s( p)
p 1

0 1 1 1
0 1 1 1
1 0 1 1
1 0 1 1

w1
w
1 1 0 1 2 1 1 0 1

1 1 1 0
1 1 1 0
2 vektor x dan y dikatakan ortogonal jika memenuhi :

xy T xi yi 0
i

Hasil testing :
Vektor 1 : (1,1,-1,-1)
(1,1,-1,-1) W = (2,2,-2,-2) (1,1,-1,-1)
Vektor 2 : (-1,1,1,-1)
(-1,1,1,-1) W = (-2,2,2,-2) (-1,1,1,-1)
Jadi kedua vektor tsb dpt dikenali oleh jaringan
Contoh 6.5 :
Penyimpanan 3 vektor yg ortogonal satu sama lain dlm jaringan AM
Vektor 1 : (1,1,-1,-1)
Vektor 2 : (-1,1,1,-1)
Jika w1 ,w2 , dan w3 adalah matrik bobot dari vektor 1,vektor 2, dan vektor :
P

w s T ( p) s( p)
p 1

0 1 1 1
0
1 0 1 1
1

w1
w2
1 1 0 1
1

1 1 1 0
1
0
1
w w1 w2 w3
1

1
guwi-06

1 1 1
0 1 1 1

1 0 1 1
0 1 1

w3
1 1 0 1
1 0 1

1 1 0
1 1 1 0
1 1 1
0 1 1
1 0 1

1 1 0
68

Jaringan Syaraf Tiruan

Hasil testing :
Vektor 1 : (1,1,-1,-1)
(1,1,-1,-1) W = (1,1,-1,-1)(1,1,-1,-1)
Vektor 2 : (-1,1,1,-1)
(-1,1,1,-1) W = (-1,1,1,-1)(-1,1,1,-1)
Vektor 3 : (-1,1,-1,1)
(-1,1,-1,1) W = (-1,1,-1,1)(-1,1,-1,1)
Jadi ketiga vektor tsb dapat dikenali oleh jaringan
Contoh 6.6 :
Menyimpan 2 vektor input pelatihan yang non orthogonal. Adapun vektorvektor tsb : (1,-1,-1,1) dan (1,1,-1,1)
0 1 1 1
0 1 1 1
1 0 1 1
1 0 1 1

w1
w2
1 1 0 1
1 1 0 1

1 1 1 0
1 1 1 0
0 0 2 2
0 0 0
0

w w1 w2
2 0
0 2

0
0
2 0
Hasil testing :
Vektor 1 : (1,-1,-1,1)
(1,-1,-1,1) W = (0,0,-2,4) (-1,-1,-1,1)
Vektor 2 : (1,1,-1,1)
(1,1,-1,1) W = (4,0,-2,4) (1,-1,-1,1)
Hasil ini menunjukkan vektor input pelatihan tidak dapat dikenali.
Latihan :
Seandainya kita punya 4 vektor input pelatihan : (1,1,-1,-1), (-1,1,1,-1),(1,1,-1,1), dan (1,1,1,1). Hitunglah hasil pelatihan dari vektor tsb. Selanjutnya
tentukan hasil testing dari matrik bobot hasil pelatihan thd vektor input pelatihan.
Teorema :
Kapasitas penyimpanan jaringan AM bergantung pada jumlah komponen
dari vektor tersimpan dan hubungan antara vektor tersimpan tsb. Lebih banyak
vektor yang dapat disimpan jika vektor-vektor tsb saling ortogonal satu sama
lain. Menurut Szu (1989) dibuktikan bahwa :

guwi-06

69

Jaringan Syaraf Tiruan

Jika kita mempunyai (n-1) vektor bipolar yang saling ortogonal,


dimana masing-masing vektor memiliki n komponen maka semua (n-1) vektor
tsb dapat disimpan dalam jaringan AM (diagonal matrik bobot dibuat 0)
6.5 Jaringan Autoassociative dengan iterasi (iterative Autoassociative Net)
o Dalam beberapa hal jaringan AM tidak dapat memberikan respon/output dengan
cepat thd vektor input, akan tetapi memberi respon yang cukup mirip dgn pola
yang tersimpan dan selanjutnya memakai respon yang pertama ini sbg input
untuk jaringan lagi (iterasi)
Contoh 6.7 :
Jika kita menyimpan vektor input (1,1,1,-1) maka akan didapatkan W :
0 1 1 1
1 0 1 1

w
1 1 0 1

1 1 1 0
a)Jika kita lakukan testing dgn memakai vektor input tsb dimana 3 komponennya
hilang yaitu : (1,0,0,0) maka hasil testing :
(1,0,0,0) W = (0,1,1,-1)iterasi
(0,1,1,-1)W = (3,2,2,-2)(1,1,1,-1)
Jadi vektor (1,0,0,0) dapat dikenali setelah melewati 2 kali iterasi
b)Jika kita beri vektor input : (0,1,0,0) maka hasil testing :
(0,1,0,0) W = (1,0,1,-1)iterasi
(karena belum sama dgn vektor yg tersimpan)
(1,0,1,-1)W = (2,3,2,-2)(1,1,1,-1) stop
(karena sudah sama dgn vektor yg tersimpan)
Jadi vektor (0,1,0,0) juga dpt dikenali setelah 2 kali iterasi
c)Jika kita beri vektor input : (0,0,0,1) maka hasil testing :
(0,0,0,1) W = (-1,-1,-1,0)iterasi
(-1,-1,-1,0)W = (-2,-2,-2,3)(-1,-1,-1,1) iterasi
(-1,-1,-1,1)W = (-3,-3,-3,3)(-1,-1,-1,1) stop
(vektor aktivasi sudah sama dgn vektor aktivasi pada
iterasi sebelumnya)
Jadi vektor (0,0,0,1), hasil testing menunjukkan respon 1 dikali vektor tersimpan
(1,1,1,-1). Vektor tersimpan dan nilai negatif dari vektor tsb adalah titik stabil
dari jaringan.
d)Jika kita beri vektor input dgn 2 komponen salah (-1,-1,1,-1), hasil testing :
(-1,-1,1,-1) W = (1,1,-1,1)iterasi
(1,1,-1,1) W = (-1,-1,1,-1) stop

guwi-06

70

Jaringan Syaraf Tiruan

(karena kembali menghasilkan vektor input semula)


Jika iterasi dilanjutkan maka pasti akan menghasilkan 2 vektor aktivasi yg
dihasilkan sebelumnya secara berulang-ulang.
Catatan :
untuk vektor bipolar dgn 2 k komponen, dimana k buah komponennya
salah akan menghasilkan vektor yg ortogonal dgn vektor tersimpan. Dalam
contoh diatas vektor (-1,-1,1,-1) ortogonal dgn (-1,-1,-1,1)

guwi-06

71

Jaringan Syaraf Tiruan

BAB VII Jaringan Hopfield diskret


o
o Dikembangkan oleh John Hopfield (ahli fisika, pemenang hadiah nobel 1982)
o Pengembangan dari JST AM, jumlah unit input dan target identik
o Struktur jaringannya terkoneksi secara penuh yaitu setiap unit terhubung dgn
setiap unit yang lain
o Jaringan memiliki bobot simetris tanpa ada koneksi pada diri sendiri shg
Wij = Wji dan wii = 0
7.1 Arsitektur
wn1
wi1
w21

wn2
wi2

wni
win
w2i

w12
Y1

w2n
w1n

w1i
Y2

Yi

Yn

Gambar 7.1 Arsitektur Jaringan Hopfield diskret

o Hanya satu unit mengubah aktivasinya pada satu waktu (berdasarkan sinyal yg
diterima oleh unit tsb dari unit yang lain)
o Tiap-tiap unit melanjutkan menerima sinyal eksternal yg berasal dari unit yang
lain dalam jaringan .
7.2 Algoritma Pelatihan
o Ada beberapa versi jaringan Hopfield diskret
o Versi pertama memakai vektor input biner (1982) :
Untuk menyimpan pola biner s(p), p = 1,,P dimana
s(p) = (s1(p), ,si(p), ,sn(p))
matrik bobot w = {wij}

wij 2si ( p) 1 2s j ( p) 1 untuk i j


p

wij 0 untuk i j
o Versi kedua memakai vektor input bipolar (1984) :

guwi-06

72

Jaringan Syaraf Tiruan

wij si ( p) s j ( p) untuk i j
p

0 untuk i j
7.3 Algoritma Aplikasi (testing)
langkah 0 : inisialisasi bobot untuk menyimpan pola (gunakan aturan Hebb)
selama aktivasi tidak konvergen, kerjakan langkah 1- 7 :
langkah 1 : untuk tiap-tiap vektor input x , kerjakan langkah 2 6 :
langkah 2 : set aktivasi awal jaringan sama dgn vektor input eksternal x :
yi = xi (i = 1,2, ,n)
langkah 3 : lakukan langkah 4-6 untuk tiap-tiap unit Yi
(unit-unit diubah secara acak)
langkah 4 : hitung input jaringan :

y _ ini xi y j wij
j

langkah 5 : tentukan aktivasi (sinyal output) :

1 jika y _ ini i

yi yi jika y _ ini i
0 jika y _ in
i
i

langkah 6 : kirimkan nilai yi ke semua unit yang lain


langkah 7 : testing apakah sudah konvergen
catatan :
-nilai i biasanya diambil sama dengan 0
-urutan perubahan dari unit-unit dilakukan secara acak
contoh 7.1 :

Seperti contoh sebelumnya, kita ingin menyimpan vektor


biner (1,1,1,0) atau
dalam bentuk bipolar (1,1,1,-1) ke dalam jaringan Hopfield. Selanjutnya jika kita
testing dengan vektor input dimana 2 komponennya salah yaitu (0,0,1,0). Unit
akan mengubah aktivasinya dalam urutan acak. Misalkan dlm hal ini urutan
perubahan aktivasi unit adalah Y1, Y4, Y3, Y2.
-Pelatihan :

guwi-06

73

Jaringan Syaraf Tiruan

1
1
w
1

0 1 1 1

1 1 1 1 1 0 1 1

1 1 0 1

1 1 1 0

-Testing :
Langkah 0 : inisialisasi bobot untuk menyimpan pola :
0 1 1 1
1
0 1 1
w
1 1
0 1

1 1 1 0

Iterasi ke-1 :
langkah 1 : vektor input x = (0,0,1,0)
langkah 2 : y = (0,0,1,0)
langkah 3 : Pilih unit Y1 untuk mengubah aktivasinya :
langkah 4 : y _ in1 x1 y j w j1 0 1
j

langkah 5 : y _ in1 0 y1 1
langkah 6 : y (1,0,1,0)
langkah 3 : Pilih unit Y4 untuk mengubah aktivasinya :
langkah 4 : y _ in 4 x4 y j w j 4 0 2
j

langkah 5 : y _ in 4 0 y4 0
langkah 6 : y (1,0,1,0)
langkah 3 : Pilih unit Y3 untuk mengubah aktivasinya :
langkah 4 : y _ in3 x3 y j w j 3 1 1
j

langkah 5 : y _ in3 0 y3 1
langkah 6 : y (1,0,1,0)
langkah 3 : Pilih unit Y2 untuk mengubah aktivasinya :
langkah 4 : y _ in 2 x2 y j w j 2 0 2
j

langkah 5 : y _ in 2 0 y2 1
langkah 6 : y (1,1,1,0)

guwi-06

74

Jaringan Syaraf Tiruan

langkah 7 : Testing apakah sudah konvergen


Karena beberapa aktivasi sudah berubah selama satu siklus iterasi, maka
sekurang-kurangnya perlu dilakukan satu kali iterasi lagi.
Iterasi ke-2 :
langkah 1 : vektor input x = (1,1,1,0)
langkah 2 : y = (1,1,1,0)
langkah 3 : Pilih unit Y1 untuk mengubah aktivasinya :
langkah 4 : y _ in1 x1 y j w j1 1 2 3
j

langkah 5 : y _ in1 0 y1 1
langkah 6 : y (1,1,1,0)
langkah 3 : Pilih unit Y4 untuk mengubah aktivasinya :
langkah 4 : y _ in4 x4 y j w j 4 0 3 3
j

langkah 5 : y _ in 4 0 y4 0
langkah 6 : y (1,1,1,0)
langkah 3 : Pilih unit Y3 untuk mengubah aktivasinya :
langkah 4 : y _ in3 x3 y j w j 3 1 2 3
j

langkah 5 : y _ in3 0 y3 1
langkah 6 : y (1,1,1,0)
langkah 3 : Pilih unit Y2 untuk mengubah aktivasinya :
langkah 4 : y _ in2 x2 y j w j 2 1 2 3
j

langkah 5 : y _ in 2 0 y2 1
langkah 6 : y (1,1,1,0)
langkah 7 : Testing apakah sudah konvergen
Dapat dilihat pada iterasi yang ke-2 tidak ada perubahan aktivasi dari setiap
unit. Jaringan sudah konvergen thd vektor yang tersimpan. Jaringan dapat
mengenali vektor input x = (0,0,1,0) setelah melalui dua kali iterasi.
7.4 Fungsi Energi

guwi-06

75

Jaringan Syaraf Tiruan

o Hopfield (1984) membuktikan bahwa jaringan akan konvergen menuju sebuah


titik stabil dengan memperhitungkan sebuah fungsi energi yang disebut fungsi
Lyapunov.
o Fungsi energi adalah suatu fungsi yg punya batas bawah dan fungsi yg nilainya
tidak bertambah (non-increasing) dari keadaan sistem
o Keadaan sistem adalah vektor aktivasi dari unit-unit dalam sistem
o Jadi jika fungsi energi dpt ditemukan maka jaringan akan konvergen pada
sekumpulan aktivasi yg stabil
o Fungsi energi untuk jaringan Hopfield diskret dinyatakan :
E 0.5 yi y j wij xi yi i yi
i j

o Jika aktivasi dari jaringan berubah sebesar yi, maka energi akan berubah sebesar
E,

E y j wij xi i yi
j

persamaan ini berdasarkan pada kenyataan bahwa hanya satu unit dapat
mengubah aktivasinya pada satu waktu
o Ada 2 kasus dimana perubahan yi akan terjadi dalam aktivasi neuron Yi
-Jika yi positif, maka yi akan berubah menjadi nol jika

xi y j wij i
j

dlm hal ini terjadi perubahan negatif pada yi, shg untuk kasus ini E < 0 (negatif)
-Jika yi nol, maka yi akan berubah jadi positif jika

xi y j wij i
j

dlm hal ini terjadi perubahan positif pada yi, shg untuk kasus ini E < 0 (negatif)
Jadi E < 0 (negatif)

o yi bernilai positif hanya jika xi y j wij i bernilai positif dan

yi bernilai negatif hanya jika xi y j wij i bernilai negatif dan


j

o Shg nilai energi tidak dapat bertambah besar (non-increasing)


o Karena energi terbatas, maka jaringan akan mencapai titik stabil sedemikian
hingga energi tidak akan bertambah thd iterasi selanjutnya
o Aspek penting dari algoritma Hopfield adalah perubahan energi hanya
bergantung pada perubahan aktivasi dari satu unit dan matrik bobot simetris dgn
komponen diagonal bernilai nol
guwi-06

76

Jaringan Syaraf Tiruan

7.5 Kapasitas Penyimpanan


o Hopfield menemukan bahwa banyaknya pola biner yg dapat disimpan dalam
jaringan adalah :
P 0.15n

dimana n = jumlah neuron dlm jaringan


o McEliece, Posner, Rodemich, dan Venkatesh (1987) menemukan bahwa
banyaknya pola biner yg dapat disimpan dalam jaringan adalah :
P

n
2log 2 n

BAB VIII Bidirectional Associative Memory (B A M)


o BAM merupakan salah bentuk dari jaringan Heteroassociative memory, yg
dikembangkan oleh Bart Kosko (1988)
o BAM menyimpan pola pelatihan dalan matrik n x m yang merupakan perkalian
dari vektor input dan target pelatihan (outer product)
o Arsitektur BAM terdiri dari 2 lapisan yg dihubungkan oleh lintasan koneksi
bobot
o Jaringan akan beriterasi, mengirimkan sinyal pulang pergi antara 2 lapisan
sampai semua neuron menjadi stabil (semua aktivasi neuron konstan)

guwi-06

77

Jaringan Syaraf Tiruan

o BAM dpt memberikan respon thd input dari kedua lapisan


o Bobot bersifat 2 arah (bidirectional) dan kita akan menyebut kedua lapisan sbg
lapisan X dan lapisan Y
o Ada 3 jenis BAM : biner, bipolar , dan kontinu
8.1 Arsitektur BAM

x1

xi

xn

w11
wii
wnm

y1
yj

ym

Gambar 8.1 Arsitektur Bidirectional Associative Memory

o Lapisan x terdiri dari n unit dan lapisan y terdiri dari m unit


o Koneksi antara kedua lapisan bersifat 2 arah, yaitu jika matrik bobot untuk sinyal
yg dikirim dari lapisan x ke lapisan y adalah w, maka matrik bobot untuk sinyal
yg dikirim dari lapisan y ke lapisan x adalah wT
8.2 Algoritma
8.2.1 BAM Diskret
o 2 bentuk pola pelatihan BAM yaitu : biner dan bipolar sangat berhubungan,
dimana bobot dihitung dgn penjumlahan dari perkalian vektor pola pelatihan
o Fungsi aktivasi adalah fungsi tangga dgn threshold tidak nol
o Telah dibuktikan oleh Kosko(1988) dan Haines-Nielsen(1988) bahwa vektor
bipolar dpt meningkatkan kinerja dari jaringan

Penentuan Nilai Bobot


o Matrik bobot ditentukan dgn aturan Hebb.
o Untuk pasangan vektor pelatihan biner maka bobot ditentukan dgn :

wij (2si ( p) 1)(2t j ( p) 1)


p

o Dan jika vektor pelatihan bipolar maka bobot ditentukan dgn :

wij si ( p)t j ( p)
p

Fungsi Aktivasi
o Fungsi aktivasi untuk BAM adalah fungsi tangga (step)

guwi-06

78

Jaringan Syaraf Tiruan

o Untuk vektor input biner maka fungsi aktivasi pada lapisan y :


1 jika y _ in j 0

y j y j jika y _ in j 0
0 jika y _ in 0
j

o Dan fungsi aktivasi pada lapisan x :


1 jika x _ ini 0

xi xi jika x _ ini 0
0 jika x _ in 0
i

o Sementar untuk vektor input bipolar maka fungsi aktivasi pada lapisan y :
1 jika y _ in j j

y j y j jika y _ in j j
1 jika y _ in
j
j

o Dan fungsi aktivasi pada lapisan x :


1 jika x _ ini 0

xi xi jika x _ ini 0
0 jika x _ in 0
i

Algoritma
Langkah 0 : inisialisasi bobot untuk menyimpan pola pelatihan
Inisialisasi semua aktivasi menjadi 0
Langkah 1 : untuk tiap input testing lakukan langkah 2-6
Langkah 2a :
berikan pola input x ke lapisan X
(set aktivasi lap. X dgn pola input sekarang)
Langkah 2b :
berikan pola input y ke lapisan Y
(salah satu pola input dpt bernilai nol)
Langkah 3 : selama aktivasi belum konvergen, lakukan langkah 4-6
Langkah 4 : ubah aktivasi dari unit-unit dlm lapisan Y.
Hitung input jaringan :

y _ in j wij xi
i

Hitung aktivasi :
y j f ( y _ in j )

guwi-06

79

Jaringan Syaraf Tiruan

kirim sinyal ke lapisan X


Langkah 5 : ubah aktivasi dari unit-unit dlm lapisan X.
Hitung input jaringan :

x _ ini wij x j
j

Hitung aktivasi :
xi f ( x _ ini )

kirim sinyal ke lapisan Y


Langkah 6 : Tes apakah sudah konvergen: jika vektor aktivasi x dan y
sudah mencapai kestabilan maka stop pelatihan, jika tidak lanjutkan dan
kembali ke langkah 1
8.2.2 BAM Kontinu
o Dalam BAM kontinu (Kosko,1988), sinyal input ditransformasikan menuju
output secara kontinu dan halus(smooth) dalam range [0,1], dengan memakai
fungsi aktivasi sigmoid logistik
o Untuk vektor input biner (s(p),t(p)), p =1,2,P, bobot ditentukan dgn :
wij (2si ( p) 1)(2t j ( p) 1)
p

o Fungsi aktivasi adalah sigmoid logistik yaitu :

f ( y _ in j )

1
1 exp( y _ in j )

o Dimana input jaringan untuk setiap unit :

y _ in j b j xi wij
i

Rumusan yg sama juga dapat diterapkan pada lapisan X

Aplikasi
Contoh 7.1 : Jaringan BAM untuk mengelompokkan huruf-huruf dgn kode
biner sederhana. Misal 2 huruf yg dinyatakan dgn pola bipolar :
. #.
#. #
###
#.#
# #
(-1,1)

guwi-06

.##
#..
#..
#..
.##
(1,1)

80

Jaringan Syaraf Tiruan

matrik bobot untuk menyimpan kedua pola tsb dinyatakan dgn perkalian dari
vektor pola pelatihan yaitu :
vektor A (-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
1
1

1
1

1
1

1
1

1
1

1
1

vektor C (1,1)
(-1 1 1,1 -1 -1, 1 -1 -1, 1 -1 -1,-1 1 1) (1,1)

guwi-06

81

Jaringan Syaraf Tiruan

1
1
1
1

1
1

1
1
1
1

1
1
1
1

11 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

Jadi Bobot W untuk menyimpan kedua pola adalah :


1
1

1
1

1
1

w 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 0 2
1 0
2
1 2
0

1 0
2
1 0 2

1 2
0
1 0
2

1 2
0
1 2
0

1 0
2

1 0 2
1 2
0

1 2
0
1 2
0

1 0
2

Jika kita lakukan testing dgn vektor input A


(-1 1 -1,1 -1 1, 1 1 1, 1 -1 1,1 -1 1) w = (-14,16)(-1,1)
Jika kita lakukan testing dgn vektor input C

guwi-06

82

Jaringan Syaraf Tiruan

(-1 1 1,1 -1 -1, 1 -1 -1, 1 -1 -1,-1 1 1) w = (14,18)(1,1)


Untuk melihat bahwa jaringan bersifat 2 arah (bidirectional) maka vektor y kita
perlakukan sbg input . Dalam hal ini sinyal akan dikirim dari lapisan Y ke X, shg
vektor bobot adalah transpose dari W :
0
wT
2

0
2

untuk vektor input yg berkaitan dgn A, yaitu (-1,1) :


0 0 2 0 0 2 0 2 2 0 0 2 2 2 0
0 2 2 0
0 0 2
2 2 0 2 2 0 2 0

1 1W T 1 1

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

ini adalah pola A


Jika kita menginputkan vektor C, yaitu (1,1) :
0 0 2 0 0 2 0 2 2 0 0 2 2 2 0
0 2 2 0
0 0 2
2 2 0 2 2 0 2 0

1 1W T 1 1

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

ini adalah pola C


IX JST Propagasi Balik (Backpropagation)
Propagasi balik atau backpropagation merupakan

suatu

teknik

pembelajaran

pelatihan supervised learning yang paling banyak digunakan. Metode ini merupakan salah
satu metode yang sangat baik dalam menangani masalah pengenalan pola-pola kompleks. Di
dalam jaringan propagasi balik, setiap unit yang berada di lapisan input terhubung dengan
setiap unit yang ada di lapisan tersembunyi. Setiap unit yang ada di lapisan tersembunyi
terhubung dengan setiap unit yang ada di lapisan output. Jaringan ini terdiri dari banyak
lapisan (multilayer network). Ketika jaringan diberikan pola masukan sebagai pola pelatihan,
maka pola tersebut menuju unit-unit lapisan tersembunyi untuk selanjutnya diteruskan pada
unit-unit di lapisan keluaran. Kemudian unit-unit lapisan keluaran akan memberikan respon
sebagai keluaran JST. Saat hasil keluaran tidak sesuai dengan yang diharapkan, maka

guwi-06

83

Jaringan Syaraf Tiruan


keluaran akan disebarkan mundur (backward) pada lapisan tersembunyi kemudian dari
lapisan tersembunyi menuju lapisan masukan.
Tahap pelatihan ini merupakan langkah untuk melatih suatu JST, yaitu dengan cara
melakukan perubahan bobot. Sedangkan penyelesaian masalah akan dilakukan jika proses
pelatihan tersebut telah selesai, fase ini disebut fase pengujian

9.1 Arsitektur Propagasi Balik

Setiap unit di dalam layer input pada jaringan propagasi balik selalu terhubung dengan
setiap unit yang berada pada layer tersembunyi, demikian juga setiap unit pada layer
tersembunyi selalu terhubung dengan unit pada layer output. Jaringan propagasi balik terdiri
dari banyak lapisan (multilayer network) , yaitu :
1. Lapisan input (1 buah), yang terdiri dari 1 hingga n unit input.
2. Lapisan tersembunyi (minimal 1 buah), yang terdiri dari 1 hingga p unit tersembunyi.
3. Lapisan output (1 buah), yang terdiri dari 1 hingga m unit output.
Arsitektur dari jaringan propagasi balik diperlihatkan dalam gambar 9.1 berikut ini.
lapisan
output

lapisan
tersembunyi

input

Gambar 9.1 Jaringan Backpropagation dengan 1 lapisan tersembunyi

9.2 Fungsi Aktivasi Jaringan Propagasi Balik

Fungsi Sigmoid Biner

guwi-06

84

Jaringan Syaraf Tiruan


Fungsi ini merupakan fungsi yang umum digunakan dan akan diterapkan pada aplikasi,
rangenya adalah (0,1) dan didefinisikan sebagai :
f ( x)

1
1 exp( x)

dengan turunan pertamanya adalah :


f ' ( x) f ( x)(1 f ( x))

Fungsi Sigmoid Bipolar


Fungsi ini merupakan fungsi yang juga sering diterapkan, rangenya adalah (-1,1) dan
didefinisikan sebagai :
f ( x)

2
1
1 exp( x)

dengan turunan pertamanya adalah

f ' ( x)

1
(1 f ( x))(1 f ( x))
2

9.3 Pelatihan Jaringan Propagasi Balik


Aturan pelatihan jaringan propagasi balik terdiri dari 2 tahapan, feedforward dan
backward propagation. Pada jaringan diberikan sekumpulan contoh pelatihan yang disebut
set pelatihan. Set pelatihan ini digambarkan dengan sebuah vector feature yang disebut
dengan vektor input yang diasosiasikan dengan sebuah output yang menjadi target
pelatihannya. Dengan kata lain set pelatihan terdiri dari vektor input dan juga vektor output
target. Keluaran dari jaringan berupa sebuah vektor output aktual. Selanjutnya dilakukan
perbandingan antara output aktual yang dihasilkan dengan output target dengan cara
melakukan pengurangan diantara kedua output tersebut. Hasil dari pengurangan merupakan
error. Error dijadikan sebagai dasar dalam melakukan perubahan dari setiap bobot yang ada
dengan mempropagasikannya kembali.
Setiap perubahan bobot yang terjadi dapat mengurangi error. Siklus setiap perubahan
bobot (epoch) dilakukan pada setiap set pelatihan hingga kondisi berhenti dicapai, yaitu bila
mencapai jumlah epoch yang diinginkan atau hingga sebuah nilai ambang yang ditetapkan
terlampaui. Algoritma pelatihan jaringan propagasi balik terdiri dari 3 tahapan yaitu :
1. Tahap umpan maju (feedforward)
2. Tahap umpan mundur (backpropagation)

guwi-06

85

Jaringan Syaraf Tiruan


3. Tahap pengupdatean bobot dan bias.
Secara rinci algoritma pelatihan jaringan propagasi balik dapat diuraikan sebagai berikut :
Langkah 0 : Inisialisasi bobot-bobot, konstanta laju pelatihan (), toleransi error atau
nilai

bobot (bila menggunakan nilai bobot sebagai kondisi berhenti) atau

set maksimal epoch (jika menggunakan banyaknya epoch sebagai kondisi


berhenti).
Langkah 1 : Selama kondisi berhenti belum dicapai, maka lakukan langkah ke-2 hingga
langkah ke-9.
Langkah 2 : Untuk setiap pasangan pola pelatihan, lakukan langkah ke-3 sampai langkah
ke-8.

Tahap I : Umpan Maju (feedforward)


Langkah 3 : Setiap unit input xi (dari unit ke-1 hingga unit ke-n pada lapisan input)
mengirimkan sinyal input ke setiap input yang berada pada lapisan
tersembunyi.
Langkah 4 : Masing-masing unit di lapisan tersembunyi (dari unit ke-1 hingga unit ke-p)
dikalikan dengan bobotnya dan dijumlahkan serta ditambahkan dengan
biasnya :
n

z _ net j v j 0 xi v ji
i 1

z j f ( z _ net j )

1
(sigmoid biner)
1 exp( z _ net j )

Langkah 5 : Masing-masing unit output (yk, k=1,2,3,m) dikalikan dengan bobot dan
dijumlahkan serta ditambahkan dengan biasnya.
p

y _ net k wk 0 zi wkj
j 1

yk f ( y _ net k )

1
(sigmoid biner)
1 exp( y _ net k )

Tahap II : Umpan Mundur (backward propagation)


Langkah 6 : Masing-masing unit output (yk, k=1,2,3,,m) menerima pola target tk
sesuai dengan pola masukan/input saat pelatihan dan kemudian informasi

guwi-06

86

Jaringan Syaraf Tiruan


kesalahan/error lapisan output (k) dihitung. k dikirim ke lapisan
dibawahnya dan digunakan untuk menghitung besarnya koreksi bobot dan
bias (Wjk dan Wok ) antara lapisan tersembunyi dengan lapisan output :

k (t k yk ) f ' ( y _ net k ) (t k yk ) yk (1 y k )
Hitung suku perubahan bobot Wjk (yang akan digunakan untuk merubah
bobot Wjk) dengan laju pelatihan
wkj k z j

j 1,2,..., p ; k 1,2,3,...

Hitung perubahan bias :


wk 0 k

; k 1,2,3,...

Langkah 7 : Pada setiap unit di lapisan tersembunyi (dari unit ke-1 hingga ke-p;
i=1n;k=1m) dilakukan perhitungan informasi kesalahan lapisan
tersembunyi (j).

kemudian digunakan untuk menghitung

besar koreksi bobot dan bias (Vji dan Vjo) antara lapisan input dan
lapisan tersembunyi.
m

_ net j k wkj
k 1

j _ net j f ' ( _ net j ) _ net j z j (1 z j )


Hitung suku perubahan bobot Vji (yang digunakan untuk perbaikan bobot
Vji).

guwi-06

87

Jaringan Syaraf Tiruan


v ji j xi

Hitung perubahan bias (untuk memperbaiki Vjo).


v j 0 j

Tahap III : Perbaikan / pengupdatean Bobot dan Bias


Langkah 8 : Masing-masing unit output/keluaran (yk, k=1,2,3,,m) dilakukan pengupdate-an bias dan bobotnya (j = 0,1,2,,p) sehingga menghasilkan bobot
dan bias baru :
wkj (baru) wkj (lama) wkj

Demikian juga untuk setiap unit tersembunyi mulai dari unit ke-1 sampai
dengan unit ke-p dilakukan pengupdatean bobot dan bias :
v ji (baru) v ji (lama) v ji

Langkah 9 : uji kondisi berhenti (akhir iterasi)


9.4 Inisialisasi Nguyen-Widrow
Inisialisasi Nguyen-Widrow merupakan sebuah metode penginisialisasian nilai bobot dan
bias jaringan backpropagation yang lebih cepat bila dibandingkan dengan penginisialisasian
secara random/acak. Tahap ini digunakan untuk mengoptimisasi jaringan backpropagation
sehingga lebih mudah mencapai konvergensi.
Pada inisialisasi Nguyen-Widrow, inisialisasi acak tetap dipakai tetapi digunakan untuk
menginisialisasi bias dan bobot dari unit tersembunyi ke unit output. Untuk bias dan bobot
dari unit input ke unit tersembunyi digunakan bias dan bobot yang diskalakan agar jatuh
pada range tertentu.
Faktor skala Nguyen-Widrow () didefinisikan sebagai :

0.7( p)

1
n

dimana :
n = jumlah unit input
p = jumlah unit tersembunyi
= faktor skala
Prosedur Inisialisasi Nguyen-Widrow
Untuk setiap unit tersembunyi dari unit ke-1 sampai unit ke-p :
1. Inisialisasi vektor bobot dari unit input ke unit tersembunyi (j = 1,,p) dengan cara :

menentukan bobot-bobot antara unit input ke unit tersembunyi (vij) :


Vij(lama) = bilangan acak antara dan dengan i = 1,,n

menghitung v j v j21v 2j 2 ... v 2jn


guwi-06

88

Jaringan Syaraf Tiruan


menginisialisasikan kembali vij dengan : vij

vij lama
vj

Menentukan bias antara input ke unit tersembunyi (j = 1,p) dengan v0j

2.

di set bilangan acak yang terletak pada skala antara dan .


Contoh 1 :
Menggunakan algoritma backpropagation dengan 1 buah layer tersembunyi untuk
mengenali fungsi logika XOR dengan 2 masukan x1 dan x2. Buatlah iterasi untuk
menghitung bobot jaringan untuk pola pertama (x1 = 1, x2 = 1 dan t = 0) dengan laju
pelatihan = 0.2
Jawaban :

Langkah 0 : Mula-mula bobot diberi nilai acak yang kecil (range [-1,1]). Misalkan di
dapat bobot seperti tabel 9.1 (bobot dari layer input ke layer tersembunyi =
vij) dan 9.2 (bobot dari layer tersembunyi ke layer output = wkj).
Tabel 9.1 Tabel bobot dari layer input ke layer tersembunyi
Z1

Z2

Z3

X1

0.2

0.3

-0.1

X2

0.3

0.1

-0.1

-0.3

0.3

0.3

Tabel 9.2 Tabel bobot dari layer tersembunyi ke layer output


Y
Z1

0.5

Z2

-0.3

Z3

-0.4

-0.1

Langkah 1 : Jika kondisi penghentian belum terpenuhi, lakukan langkah 2-8


Langkah 2 : Untuk setiap pasang data pelatihan, lakukan langkah 3-8
guwi-06

89

Jaringan Syaraf Tiruan


Tahap I : Umpan Maju (feedforward)
Langkah 3 : Setiap unit input mengirim sinyal ke unit tersembunyi
Langkah 4 : hitung keluaran di unit tersembunyi (zj)
n

z _ net j v j 0 xi v ji
i 1

z _ net1 -0.3 + 1(0.2) + 1(0.3) = 0.2

z _ net 2 0.3 + 1(0.3) + 1(0.1) = 0.7


z _ net3 0.3 + 1(-0.1) + 1(-0.1) = 0.1

z j f ( z _ net j )

1
1 exp( z _ net j )
1
0.55
1 exp( 0.2)

z1 f ( z _ net1 )

z2 f ( z _ net 2 )

1
0.67
1 exp( 0.7)

z3 f ( z _ net 3 )

1
0.52
1 exp( 0.1)

Langkah 5 : Hitung keluaran unit output(yk)


p

y _ net k wk 0 zi wkj
j 1

Karena jaringan hanya memiliki satu unit output y, maka :

y_netk = - 0.1 + 0.55(0.5) + 0.67(-0.3) + 0.52(-0.4) = - 0.24


yk f ( y _ net k )

1
1 exp( y _ net k )

yk f ( y _ net k )

1
0.44
1 exp(0.24)

Tahap II : Umpan Mundur (backward propagation)


Langkah 6 : Hitung faktor di unit output yk

k (tk yk ) f ' ( y _ net k ) (tk yk ) yk (1 y k )


Karena jaringan hanya memiliki satu buah unit output, maka :

k (t y) y(1 y) (0 - 0.44)(0.44)(1 - 0.44) = - 0.11


Suku perubahan bobot wkj = wjk (dengan = 0.2) :
wkj k z j

dengan j 1,2,..., p ; k 1,2,3,...

w11 0.2(-0.11)(0.55) = - 0.01

guwi-06

90

Jaringan Syaraf Tiruan

w12 0.2(-0.11)(0.67) = - 0.01


w13 0.2(-0.11)(0.52) = - 0.01

Perubahan bias :
wk 0 k
w10 0.2(-0.11) = - 0.02

Langkah 7 : Hitung penjumlahan kesalahan dari unit tersembunyi ()


m

_ net j k wkj
k 1

Karena jaringan hanya memiliki 1 buah unit output maka :

_ net1 (-0.11)(0.5) = - 0.05

_ net 2 (-0.11)(-0.3) = 0.03


_ net3 (-0.11)(-0.4) = 0.04
Faktor kesalahan di unit tersembunyi :

j _ net j f ' ( _ net j ) _ net j z j (1 z j )

1 -0.05(0.55)(1 - 0.55) = - 0.01


2 0.03(0.67)(1 - 0.67) = 0.01
3 0.04(0.52)(1 - 0.52) = 0.01
Suku perubahan bobot ke unit tersembunyi :
v ji j xi

Ditunjukkan pada tabel 9.3 berikut ini :


Tabel 9.3 Tabel suku perubahan bobot ke layer tersembunyi
Z1

Z2

Z3

X1

V11 = (0.2)(-0.01)(1) = 0

V21 = (0.2)(0.01)(1) = 0

V31 = (0.2)(0.01)(1) = 0

X2

V12 = (0.2)(-0.01)(1) = 0

V22 = (0.2)(0.01)(1) = 0

V32 = (0.2)(0.01)(1) = 0

V10 = (0.2)(-0.01)(1) = 0

V20 = (0.2)(0.01)(1) = 0

V30 = (0.2)(0.01)(1) = 0

Tahap III : Peng-update-an bobot dan bias


Langkah 8 : Hitung semua perubahan bobot
Perubahan bobot unit output dengan wjk = wkj :

wkj (baru) wkj (lama) wkj


w10 (baru) -0.1 - 0.02 = - 0.12

w11(baru) 0.5 - 0.01 = 0.49


guwi-06

91

Jaringan Syaraf Tiruan

w12 (baru) -0.3 - 0.01 = - 0.31


w13 (baru) -0.4 - 0.01 = - 0.41

Perubahan bobot unit tersembunyi :

v ji (baru) v ji (lama) v ji
Tabel 9.3 Tabel perubahan bobot unit input ke unit tersembunyi
Z1

Z2

Z3

X1

11(baru) = 0.2 + 0 = 0.2

V21(baru) = 0.3 + 0 = 0.3

V31(baru) = -0.1 + 0 = - 0.1

X2

12(baru) = 0.3 + 0 = 0.3

V22(baru) = 0.1 + 0 = 0.1

V32(baru) = -0.1 + 0 = - 0.1

V10(baru) = -0.3 + 0 = -0.3

V20(baru) = 0.3 + 0 = 0.3

V30(baru) = 0.3 + 0 = 0.3

Contoh 2 :
Diberikan pola huruf A yang direpresentasikan menggunakan kode 0 dan 1 pada matriks
berukuran 5x7 seperti pada gambar berikut :

Jawaban :
Langkah 0 : Mula-mula bobot diberi nilai acak yang kecil (range [-1,1]). Misalkan di
dapat bobot seperti tabel 9.4 (bobot dari layer input ke layer tersembunyi =
vij) dan 9.5 (bobot dari layer tersembunyi ke layer output = wkj).
Tabel 9.4 Tabel bobot wij dari layer input ke layer tersembunyi

guwi-06

Z1

Z2

X1

X2

X3

0.1

-0.1

X4

X5

X6

X7

-0.2

0.2

92

Jaringan Syaraf Tiruan


X8

X9

0.3

0.2

X10

X11

X12

0.3

-0.3

X13

X14

0.1

0.2

X15

X16

X17

0.3

0.2

X18

-0.2

-0.1

X19

0.1

0.1

X20

X21

X22

-0.1

-0.1

X23

X24

-0.2

-0.2

X25

X26

X27

0.2

0.2

X28

X29

-0.2

-0.1

X30

X31

0.2

0.3

X32

0.2

-0.1

X33

X34

-0.1

-0.2

X35

0.2

0.1

Tabel 9.5 Tabel bobot dari layer tersembunyi ke layer output


Y
Z1

0.3

Z2

-0.2

0.1

Langkah 1 : Jika kondisi penghentian belum terpenuhi, lakukan langkah 2-8


Langkah 2 : Untuk setiap pasang data pelatihan, lakukan langkah 3-8
Tahap I : Umpan Maju (feedforward)
guwi-06

93

Jaringan Syaraf Tiruan


Langkah 3 : Setiap unit input mengirim sinyal ke unit tersembunyi
Langkah 4 : hitung keluaran di unit tersembunyi (zj)
n

z _ net j v j 0 xi v ji
i 1

z _ net1 0 + 0(0) + 0(0) + 1(0.1) + 0(0) + 0(0) + 0(0) + 1(-0.2) + 0(0) + 1(0.3) +
0(0) + 0(0) + 1(0.3) + 0(0) + 1(0.1) + 0(0) + 0(0) + 1(0.3) + 1(-0.2) + 1(0.1) + 0(0)
+ 0(0) + 1(-0.1) + 0(0) + 1(-0.2) + 0(0) + 0(0) + 1(0.2) + 0(0) + 1(-0.2) + 0(0) +
1(0.2) + 1(0.2) + 0(0) + 1(-0.1) + 1(0.2) = 1

z _ net 2 0 + 0(0) + 0(0) + 1(-0.1) + 0(0) + 0(0) + 0(0) + 1(0.2) + 0(0) + 1(0.2) +
0(0) + 0(0) + 1(-0.3) + 0(0) + 1(0.2) + 0(0) + 0(0) + 1(0.2) + 1(-0.1) + 1(0.1) +
0(0) + 0(0) + 1(-0.1) + 0(0) + 1(-0.2) + 0(0) + 0(0) + 1(0.2) + 0(0) + 1(-0.1) + 0(0)
+ 1(0.3) + 1(-0.1) + 0(0) + 1(-0.2) + 1(0.1) = 0.3
z j f ( z _ net j )

1
1 exp( z _ net j )

z1 f ( z _ net1 )

1
0.73559
1 exp( 1)

z2 f ( z _ net 2 )

1
0.576141
1 exp( 0.3)

Langkah 5 : Hitung keluaran unit output(yk)


p

y _ net k wk 0 zi wkj
j 1

Karena jaringan hanya memiliki satu unit output y, maka :

y_netk = 0.1 + 0.73559 (0.3) + 0.576141 (-0.2) = 0.205449


yk f ( y _ net k )

1
1 exp( y _ net k )

yk f ( y _ net k )

1
0.55236
1 exp( 0.205449)

Tahap II : Umpan Mundur (backward propagation)


Langkah 6 : Hitung faktor di unit output yk

k (tk yk f ' ( y _ netk ) (tk yk ) yk (1 y k )


Karena jaringan hanya memiliki satu buah unit output, maka :
guwi-06

94

Jaringan Syaraf Tiruan

k (t y) y(1 y) (1 - 0.55236)( 0.55236)(1 - 0.55236) = 0.110683


Suku perubahan bobot wkj = wjk (dengan = 0.2) :
wkj k z j

dengan j 1,2,..., p ; k 1,2,3,...

w11 1(0.110683)(0.73559) = 0.081417


w12 1(0.110683)(0.576141) = 0.063769
Perubahan bias :
wk 0 k
w10 1(0.110683)(0.1) = 0.011068

Langkah 7 : Hitung penjumlahan kesalahan dari unit tersembunyi ()


m

_ net j k wkj
k 1

Karena jaringan hanya memiliki 1 buah unit output maka :

_ net1 (0.110683)(0.3) = 0.033205

_ net 2 (0.110683)(-0.2) = - 0.02214


Faktor kesalahan di unit tersembunyi :

j _ net j f ' ( _ net j ) _ net j z j (1 z j )

1 0.033205 (0.73559)(1 - 0.73559) = 0.006973

2 -0.02214 (0.576141)(1 - 0.576141) = 0.005313


Suku perubahan bobot ke unit tersembunyi :
v ji j xi

Ditunjukkan pada tabel 9.6 berikut ini :


Tabel 9.6 Tabel suku perubahan bobot ke layer tersembunyi

guwi-06

Z1

Z2

X1

X2

X3

0.006973

0.005313

X4

X5

X6

X7

0.006973

0.005313

X8

X9

0.006973

0.005313

X10

X11

95

Jaringan Syaraf Tiruan


X12

0.006973

0.005313

X13

X14

0.006973

0.005313

X15

X16

X17

0.006973

0.005313

X18

0.006973

0.005313

X19

0.006973

0.005313

X20

X21

X22

0.006973

0.005313

X23

X24

0.006973

0.005313

X25

X26

X27

0.006973

0.005313

X28

X29

0.006973

0.005313

X30

X31

0.006973

0.005313

X32

0.006973

0.005313

X33

X34

0.006973

0.005313

X35

0.006973

0.005313

Tahap III : Peng-update-an bobot dan bias


Langkah 8 : Hitung semua perubahan bobot
Perubahan bobot unit output dengan wjk = wkj :
wkj (baru) wkj (lama) wkj
w10 (baru) -0.1 - 0.02 = - 0.12

w11(baru) 0.3 + 0.081417 = 0.0381417

w12 (baru) -0.2 + 0.063769 = - 0.13623


Perubahan bobot unit tersembunyi :
v ji (baru) v ji (lama) v ji

Tabel 9.7 Tabel perubahan bobot unit input ke unit tersembunyi


Z1

guwi-06

Z2

96

Jaringan Syaraf Tiruan


X1

X2

X3

0.106973

X4

X5

X6

X7

-0.19303

X8

X9
X10
X11
X12
X13
X14
X15
X16
X17
X18
X19
X20
X21
X22
X23
X24
X25
X26
X27
X28
X29
X30
X31
X32
X33
X34
X35
1

guwi-06

97

Jaringan Syaraf Tiruan

guwi-06

98

Anda mungkin juga menyukai