Vous êtes sur la page 1sur 18

Clustering (Season 2)

Self-Organizing Map
Aplikasi Kecerdasan Komputasional
Materi 4

Eko Prasetyo
Teknik Informatika
2012

Self-Organizing Map

Self-Organizing Map (SOM) pertama kali


diperkenalkan oleh Kohonen (Kohonen, 1989)
Memperkenalkan teknik pelatihan ANN yang berbasis
winner take all, dimana hanya neuron yang menjadi
pemenang yang akan dilakukan pembaruan pada
bobotnya.

SOM tidak menggunakan nilai target kelas


Tidak ada kelas yang ditetapkan untuk setiap data
SOM dapat digunakan untuk keperluan clustering
(berbasis ANN)

Arsitektir SOM dapat digambarkan secara


topografi untuk dapat memberikan visualisasi
clustering

Topografi SOM

Linear neighborhood

Rectangular neighborhood

Hexagonal neighborhood

Self-Organizing Map
Ada K neuron yang disusun dalam larik satu atau dua
dimensi
Sinyal masukan untuk setiap neuron dilewatkan pada
bobot dengan jumlah elemen bobot yang sama dengan
N fitur (Kohonen, 1989)

Sehingga arsitektur SOM akan memerlukan NK bobot

Neuron dengan nilai terkecil dianggap sebagai neuron


pemenang
Kemudian akan memperbarui bobotnya bersama dengan
tetangga-tetangga yang didefinisikan dalam arsitekturnya

Komputasi sinyal keluaran tidak menggunakan innerproduct seperti pada perceptron


Tetapi menggunakan Euclidean kuadrat (square
Euclidean) antara data masukan dengan bobot pada
setiap neuron pemroses.

Self-Organizing Map

Akumulasi sinyal yang didapat tidak perlu


diaktivasi (fungsi aktivasi linear)
Karena fungsi aktivasi tidak memberikan pengaruh
pada pemilihan neuron pemenang yang akan
memperbarui bobotnya dan bobot tetangganya.

Cluster yang diikuti oleh sebuah data sebagai


hasil proses clustering ditunjukkan oleh indeks
neuron dalam layernya
Untuk K neuron maka ada cluster 1 sampai K yang
diberikan sebagai hasil clustering

Tidak adalah error yang dihitung pada setiap


iterasi pelatihan
Kriteria berhentinya proses pelatihan dalam SOM
(sebagai proses clustering) menggunakan jumlah
iterasi tertentu
5

Self-Organizing Map

Pada setiap iterasi untuk


setiap data yang diproses,
neuron dengan nilai
keluaran terkecil akan
mengalami perbaruan
bobot bersama dengan
tetangga yang
didefinisikan.
Misalnya, untuk
ketetanggaan linear,
tetangga pada radius R
disekitar neuron J yang
terdiri dari semua unit j yaitu
max(1,J-R) j min(J+R,K),
dimana K adalah jumlah
neuron (cluster).

Neuron
Keluaran
1
Data
Masukan

wij

x1

x2

...
xn

j
...
K

Arsitektur ANN SOM


6

Algoritma Pelatihan SOM


Bobot yang terhubung tidak dikalikan dengan sinyal (data
masukan) untuk neuron pemroses tetapi menggunakan kuantisasi
perbedaan (atau ketidakmiripan) antara data masukan dengan K
neuron pemroses (kecuali jika menggunakan metrik inner-product
untuk mengukur perbedaan/ketidakmiripan).
Algoritma Clustering dengan Self-Organizing Map:

1.
2.
3.
4.
5.
6.

Inisialisasi bobot wij. Tentukan parameter topologi ketetanggaan. Tentukan


parameter laju pembelajaran. Tentukan jumlah maksimal iterasi pelatihan
Selama jumlah maksimal iterasi belum tercapai, lakukan langkah 3 7.
Untuk setiap data masukan X, lakukan langkah 4 6.
Untuk setiap neuron j, hitung D j wij xi 2 , i = 1, , N, N adalah
i
dimensi data (N).
Cari indeks dari sejumlah neuron yaitu Dj, yang mempunyai nilai terkecil.
Untuk neuron j dan semua neuron yang menjadi tetangga J (yang sudah
didefinisikan) dalam radius R, dilakukan perbaruan bobot: .

wij (baru ) wij (lama ) xi wij (lama )


7.

Perbarui nilai laju pembelajaran.

Algoritma Pelatihan SOM

Nilai laju pembelajaran () sama dengan ANN


perceptron, jangkauan nilai 0 sampai 1
Tetapi nilai ini akan terus diturunkan setiap kali
kenaikan iterasi dengan sebuah fungsi pembelajaran
(learning function); penurunan geometrik akan
memberikan hasil yang sama.
Misal, penurunan (fungsi pembelajaran) sebesar
0.6, maka jika pada iterasi pertama menggunakan
=0.5 maka pada iterasi kedua akan menjadi
=0.6, pada iterasi ketiga akan menjadi
=0.60.6.

Inisialisasi bobot awal, bisa menggunakan nilai


acak dengan jangkauan -0.5 sampai +0.5 atau
menggunakan nilai acak dengan jangkauan nilai
seperti pada data masukan
8

Contoh

Data asli

Akan dilakukan clustering pada 5


buah data dengan jumlah
dimensinya 2: X dan Y.
Parameter yang digunakan:
Jumlah cluster 3
Jumlah iterasi pelatihan maksimal
5
Laju pembelajaran 0.5 dan akan
menjadi 0.6 (fungsi pembelajaran)
darinya pada iterasi berikutnya.

Data
1
2
3
4
5

Inisialisasi bobot, karena jumlah


fitur ada 2 dan jumlah cluster ada
3 maka matrik bobot w berukuran
23, secara acak digunakan bobot
awal sebagai berikut:
2 2 2
w

2 3 5

X
1
4
1
3
5

Y
1
1
2
4
4

Iterasi 1 (data 1)
Bobot lama:

Untuk data 1 [1 1], hitung jarak ke setiap neuron:

2 2 2
w

2
3
5

D1 wi1 xi ( w11 x1 ) ( w21 x 2 ) terkecil


2

(2 1) 2 (2 1) 2 12 12 1 1 2
D2 wi 2 xi ( w12 x1 ) ( w22 x 2 )
2

(2 1) 2 (3 1) 2 12 2 2 1 4 5

D3 wi 3 xi 2 ( w13 x1 ) 2 ( w23 x 2 ) 2

Jarak terkecil
(terdekat) adalah
neuron ke-1, maka
neuron 1 diperbarui
bobotnya:

(2 1) 2 (5 1) 2 12 4 2 1 16 17
wi1 (baru ) wi1 (lama ) xi wi1 (lama )

Bobot baru menjadi:


1.5 2 2
w

1
.
5
3
5

1
.
5

1 2 2 0.5
2
0.5
1.5
2
1
2
2

0
.
5


Data berikutnya
10

Iterasi 1 (data 2)
Bobot lama:

Untuk data 2 [4 1], hitung jarak ke setiap neuron:


D1 wi1 xi ( w11 x1 ) ( w21 x 2 )
2

terkecil

1.5 2 2
w

1
.
5
3
5

(1.5 4) 2 (1.5 1) 2 (2.5) 2 0.5 2 6.25 0.25 6.5

D2 wi 2 xi ( w12 x1 ) ( w22 x 2 )
2

(2 4) 2 (3 1) 2 (2) 2 2 2 4 4 8
D3 wi 3 xi 2 ( w13 x1 ) 2 ( w23 x 2 ) 2

Jarak terkecil
(terdekat) adalah
neuron ke-1, maka
neuron 1 diperbarui
bobotnya:

(2 4) 2 (5 1) 2 (2) 2 4 2 4 16 20

Bobot baru menjadi:


wi1 (baru ) wi1 (lama ) xi wi1 (lama )
4 1.5 1.5
1.5
2.5 1.5 1.25 2.75
0.5 0.5
1.5 0.25 1.25
1
.
5
1
1
.
5
1
.
5

0
.
5

2.75 2 2
w

1.25 3 5

Data berikutnya
11

Iterasi 1 (data 3)
Bobot lama:
2.75 2 2
w

1.25 3 5

Untuk data 3 [1 2], hitung jarak ke setiap neuron:


D1 wi1 xi 2 ( w11 x1 ) 2 ( w21 x2 ) 2
i

(2.75 1) 2 (1.25 2) 2 1.752 (0.75) 2


3.0625 0.5625 3.625
D2 wi 2 xi 2 ( w12 x1 ) 2 ( w22 x 2 ) 2terkecil
i

(2 1) 2 (3 2) 2 12 12 1 1 2

Jarak terkecil
(terdekat) adalah
neuron ke-2, maka
neuron 2 diperbarui
bobotnya:

D3 wi 3 xi 2 ( w13 x1 ) 2 ( w23 x 2 ) 2
i

(2 1) 2 (5 2) 2 12 3 2 1 9 10

Bobot baru menjadi:

wi 2 (baru ) wi 2 (lama ) xi wi 2 (lama )


1 2 2
2
1 2 0.5 1.5
0.5 0.5
2.5
3
2
3
3

1
3

0
.
5



2.75 1.5 2
w

1
.
25
2
.
5
5

Data berikutnya
12

Iterasi 1 (data 3)
Bobot lama:

Untuk data 4 [3 4], hitung jarak ke setiap neuron:

2.75 1.5 2
w

1
.
25
2
.
5
5

D1 wi1 xi 2 ( w11 x1 ) 2 ( w21 x2 ) 2


i

(2.75 3) 2 (1.25 4) 2 (0.25) 2 (2.75) 2


0.0625 7.5625 7.625

Jarak terkecil
(terdekat) adalah
neuron ke-3, maka
neuron 3 diperbarui
bobotnya:

D2 wi 2 xi 2 ( w12 x1 ) 2 ( w22 x2 ) 2
i

(1.5 3) 2 (2.5 4) 2 (1.5) 2 (1.5) 2


2.25 2.25 4.5
D3 wi 3 xi 2 ( w13 x1 ) 2 ( w23 x 2 ) 2

terkecil

(2 3) 2 (5 4) 2 (1) 2 12 1 1 2

Bobot baru menjadi:

wi 3 (baru ) wi 3 (lama ) xi wi 3 (lama )


3 2 2
2
1 2 0.5 2.5
0.5 0.5
4.5
5
4
5
5

1
5

0
.
5



2.75 1.5 2.5


w

1.25 2.5 4.5

Data berikutnya
13

Iterasi 1 (data 3)
Untuk data 5 [5 4], hitung jarak ke setiap neuron:
D1 wi1 xi ( w11 x1 ) ( w21 x2 )
2

(2.75 5) 2 (1.25 4) 2 (2.25) 2 (2.75) 2


5.0625 7.5625 12.625
D2 wi 2 xi 2 ( w12 x1 ) 2 ( w22 x2 ) 2
i

(1.5 5) 2 (2.5 4) 2 (3.5) 2 (1.5) 2


12.25 2.25 14.5

Bobot lama:
2.75 1.5 2.5
w

1.25 2.5 4.5

Jarak terkecil
(terdekat) adalah
neuron ke-3, maka
neuron 3 diperbarui
bobotnya:

D3 wi 3 xi 2 ( w13 x1 ) 2 ( w23 x2 ) 2
i

terkecil

(2.5 5) 2 (4.5 4) 2 (2.5) 2 0.52


6.25 0.25 6.5
wi 3 (baru ) wi 3 (lama ) xi wi 3 (lama )

Bobot baru menjadi:


2.75 1.5 3.75
w

1.25 2.5 4.25

5 2.5 2.5
2 .5
2.5 2.5 1.25 3.75
0.5 0.5
4.5 0.25 4.25
4
4
.
5
4
.
5

0
.
5
4 .5

Iterasi berikutnya
14

Hasil Iterasi 1
Bobot baru setelah iterasi 1:

2.75 1.5 3.75


w

1
.
25
2
.
5
4
.
25

Laju pembelajaran yang baru menjadi:

(baru) 0.6 (lama) 0.6 0.5 0.3


Indeks cluster yang diikuti data:

11 2 3 3

Lanjut ke Iterasi berikutnya

15

Iterasi 1 - 2
Iterasi

Data

Cluster
Terdekat

Pembaruan
Cluster
Terdekat

Inisialisasi bobot

Bobot

222
235

a
11

2 5 17

41

6.5 8 20

12

3.625 2 10

34

7.625 4.5 2

54

12.625 14.5 6.5

11

3.125 2.5 18.125

41

1.625 8.125 10.625

12

5.1962 0.125 12.625

34

7.9962 6.9412 0.625

54

11.4962 17.9612 2.2062

b c = b*(a-dprev)
0.5
-0.5
-0.5
0.5
1.25
-0.25
0.5
-0.5
-0.5
0.5
0.5
-0.5
0.5
1.25
-0.25
0.3
-0.15
-0.45
0.3
0.375
-0.075
0.3
-0.105
-0.015
0.3
-0.2250
-0.0750
0.3
0.4425
-0.0525

d = a+c
1.5 2 2
1.5 3 5
2.75 2 2
1.25 3 5
2.75 1.5 2
1.25 2.5 5
2.75 1.5 2.5
1.25 2.5 4.5
2.75 1.5 3.75
1.25 2.5 4.25
2.75 1.35 3.75
1.25 2.05 4.25
3.125 1.35 3.75
1.175 2.05 4.25
3.125 1.245 3.75
1.175 2.035 4.25
3.125 1.245 3.525
1.175 2.035 4.175
3.125 1.245 3.9675
1.175 2.035 4.1225

16

Iterasi 3 - 5
Iterasi

Data

D Cluster
Terdeka
t

Pembaruan
Cluster Terdekat

Bobot

b
0.18
0.18
0.18
0.18
0.18

c = b*(a-dprev)

d = a+c

a
11
41
12
34
54

2
1
2
3
3

11
41
12
34
54

2
0.108
1
0.108
2
0.108
3 Indeks
0.108(nomor)
cluster
3
0.108 yang

diikuti data

11
41
12
34
54

2
1
2
3
3

0.0648
0.0648
0.0648
0.0648
0.0648

3.2825 1.1647 4.0105


1.1435 1.8759 4.0824

3.3600 1.1311 4.0201


1.1280 1.8049 4.0655

Bobot akhir
setelah 5 iterasi
pelatihan

3.4015 1.1146 4.0217


1.1197 1.7688 4.0573

17

To Be Continued

ANY QUESTION ?

18

Vous aimerez peut-être aussi