Clustering ( Season 2 ) Self-Organizing Map

21
Clustering (Season 2) Self-Organizing Map Pengenalan Pola Materi 4 Eko Prasetyo Teknik Informatika UPN “Veteran” Jawa Timur 2012

description

Clustering ( Season 2 ) Self-Organizing Map. Pengenalan Pola Materi 4. Eko Prasetyo Teknik Informatika UPN “Veteran” Jawa Timur 2012. Self-Organizing Map. Self-Organizing Map ( SOM ) pertama kali diperkenalkan oleh Kohonen ( Kohonen , 1989) - PowerPoint PPT Presentation

Transcript of Clustering ( Season 2 ) Self-Organizing Map

Page 1: Clustering ( Season 2 ) Self-Organizing Map

Clustering (Season 2)Self-Organizing MapPengenalan PolaMateri 4

Eko PrasetyoTeknik Informatika

UPN “Veteran” Jawa Timur2012

Page 2: Clustering ( Season 2 ) Self-Organizing Map

2

Self-Organizing MapSelf-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.

Meskipun berbasis ANN, SOM tidak menggunakan nilai target kelas, tidak ada kelas yang ditetapkan untuk setiap data◦ Karakteristik inilah yang membuat SOM dapat digunakan

untuk keperluan clustering (berbasis ANN)Arsitektir SOM dapat digambarkan secara topografi

untuk dapat memberikan visualisasi clustering

Page 3: Clustering ( Season 2 ) Self-Organizing Map

3

Topografi SOM

Linear neighborhood

Rectangular neighborhood Hexagonal neighborhood

Page 4: Clustering ( Season 2 ) Self-Organizing Map

4

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 untuk arsitektur SOM akan memerlukan NK bobot

Neuron dengan nilai terkecil dianggap sebaga neuron pemenang◦ Kemudian akan memperbarui bobotnya bersama dengan

tetangga-tetangga yang didefinisikan dalam arsitekturnya Komputasi sinyal keluaran tidak menggunakan inner-

product seperti pada perceptron◦ Tetapi menggunakan Euclidean kuadrat (square Euclidean)

antara data masukan dengan bobot pada setiap neuron pemroses.

Page 5: Clustering ( Season 2 ) Self-Organizing Map

5

Self-Organizing MapAkumulasi 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 clusteringTidak adalah error yang dihitung pada setiap iterasi

pelatihan ◦ Kriteria berhentinya proses pelatihan dalam SOM (sebagai

proses clustering) menggunakan jumlah iterasi tertentu

Page 6: Clustering ( Season 2 ) Self-Organizing Map

6

Self-Organizing MapPada 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).

3

1

i

2

j

1

x1

K

N

x2

xn

wij

...

...

Data Masukan

Neuron Keluaran

Arsitektur ANN SOM

Page 7: Clustering ( Season 2 ) Self-Organizing Map

7

Algoritma Pelatihan SOM Yang perlu ditekankan adalah 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. Inisialisasi bobot wij. Tentukan parameter topologi ketetanggaan. Tentukan

parameter laju pembelajaran. Tentukan jumlah maksimal iterasi pelatihan2. Selama jumlah maksimal iterasi belum tercapai, lakukan langkah 3 – 7.3. Untuk setiap data masukan X, lakukan langkah 4 – 6.4. Untuk setiap neuron j, hitung , i = 1, …, N, N adalah

dimensi data (N).5. Cari indeks dari sejumlah neuron yaitu Dj, yang mempunyai nilai terkecil.6. Untuk neuron j dan semua neuron yang menjadi tetangga J (yang sudah

didefinisikan) dalam radius R, dilakukan perbaruan bobot: .7. Perbarui nilai laju pembelajaran.

i

iijj xwD 2

Page 8: Clustering ( Season 2 ) Self-Organizing Map

8

Algoritma Pelatihan SOM Nilai laju pembelajaran () yang digunakan disini sama

dengan ANN perceptron, menggunakan 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

Page 9: Clustering ( Season 2 ) Self-Organizing Map

9

Contoh 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.

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:

Data X Y1 1 12 4 13 1 24 3 45 5 4

0 2 4 60

2

4

6

Data asli

532222

w

Page 10: Clustering ( Season 2 ) Self-Organizing Map

10

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

21111)12()12(

)()(

2222

2221

2111

211

xwxwxwDi

ii

54121)13()12(

)()(

2222

2222

2112

222

xwxwxwDi

ii

1716141)15()12(

)()(

2222

2223

2113

233

xwxwxwDi

ii

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

5.15.1

5.05.0

22

22

11

5.022

)()()( 111 lamawxlamawbaruw iiii

Bobot baru menjadi:

535.1225.1

w

Data berikutnya…

532222

w

Bobot lama:

terkecil

Page 11: Clustering ( Season 2 ) Self-Organizing Map

11

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

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

Bobot baru menjadi:

Data berikutnya…

Bobot lama:

5.625.025.65.0)5.2()15.1()45.1(

)()(

2222

2221

2111

211

xwxwxwDi

ii

535.1225.1

w

8442)2()13()42(

)()(

2222

2222

2112

222

xwxwxwDi

ii

201644)2()15()42(

)()(

2222

2223

2113

233

xwxwxwDi

ii

25.175.2

25.025.1

5.15.1

5.05.2

5.05.15.1

5.15.1

14

5.05.15.1

)()()( 111 lamawxlamawbaruw iiii

5325.12275.2

w

terkecil

Page 12: Clustering ( Season 2 ) Self-Organizing Map

12

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

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

Bobot baru menjadi:

Data berikutnya…

Bobot lama:

5325.12275.2

w

625.35625.00625.3 )75.0(75.1)225.1()175.2(

)()(

2222

2221

2111

211

xwxwxwDi

ii

21111)23()12(

)()(

2222

2222

2112

222

xwxwxwDi

ii

109131)25()12(

)()(

2222

2223

2113

233

xwxwxwDi

ii

5.25.1

5.05.0

32

11

5.032

32

21

5.032

)()()( 222 lamawxlamawbaruw iiii

55.225.125.175.2

w

terkecil

Page 13: Clustering ( Season 2 ) Self-Organizing Map

13

Iterasi 1 (data 3) Untuk data 4 [3 4], hitung jarak ke setiap neuron:

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

Bobot baru menjadi:

Data berikutnya…

Bobot lama:

55.225.125.175.2

w

625.75625.70625.0 )75.2()25.0()425.1()375.2(

)()(

2222

2221

2111

211

xwxwxwDi

ii

5.425.225.2 )5.1()5.1()45.2()35.1(

)()(

2222

2222

2112

222

xwxwxwDi

ii

2111)1()45()32(

)()(

2222

2223

2113

233

xwxwxwDi

ii

5.45.2

5.05.0

52

11

5.052

52

43

5.052

)()()( 333 lamawxlamawbaruw iiii

5.45.225.15.25.175.2

w

terkecil

Page 14: Clustering ( Season 2 ) Self-Organizing Map

14

Iterasi 1 (data 3) Untuk data 5 [5 4], hitung jarak ke setiap neuron:

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

Bobot baru menjadi:

Iterasi berikutnya…

Bobot lama:

5.45.225.15.25.175.2

w

625.125625.70625.5 )75.2()25.2()425.1()575.2(

)()(

2222

2221

2111

211

xwxwxwDi

ii

5.1425.225.12 )5.1()5.3()45.2()55.1(

)()(

2222

2222

2112

222

xwxwxwDi

ii

5.625.025.6 5.0)5.2()45.4()55.2(

)()(

2222

2223

2113

233

xwxwxwDi

ii

25.475.3

25.025.1

5.45.2

5.05.2

5.05.45.2

5.45.2

45

5.05.45.2

)()()( 333 lamawxlamawbaruw iiii

25.45.225.175.35.175.2

w

terkecil

Page 15: Clustering ( Season 2 ) Self-Organizing Map

15

Hasil Iterasi 1Bobot baru setelah iterasi 1:

25.45.225.175.35.175.2

w

Laju pembelajaran yang baru menjadi:

3.05.06.0)(6.0)( lamabaru

Indeks cluster yang diikuti data:

3 3 2 1 1

Lanjut ke Iterasi berikutnya…

Page 16: Clustering ( Season 2 ) Self-Organizing Map

16

Iterasi Data D Cluster Terdekat

Pembaruan Cluster

Terdekat

Bobot

Inisialisasi bobot 2 2 22 3 5

a b c = b*(a-dprev) d = a+c

1

1 1 2 5 17 1 0.5 -0.5-0.5

1.5 2 21.5 3 5

4 1 6.5 8 20 1 0.5 1.25-0.25

2.75 2 21.25 3 5

1 2 3.625 2 10 2 0.5 -0.5-0.5

2.75 1.5 21.25 2.5 5

3 4 7.625 4.5 2 3 0.5 0.5-0.5

2.75 1.5 2.51.25 2.5 4.5

5 4 12.625 14.5 6.5 3 0.5 1.25-0.25

2.75 1.5 3.751.25 2.5 4.25

2

1 1 3.125 2.5 18.125 2 0.3 -0.15-0.45

2.75 1.35 3.751.25 2.05 4.25

4 1 1.625 8.125 10.625 1 0.3 0.375-0.075

3.125 1.35 3.751.175 2.05 4.25

1 2 5.1962 0.125 12.625 2 0.3 -0.105-0.015

3.125 1.245 3.751.175 2.035 4.25

3 4 7.9962 6.9412 0.625 3 0.3 -0.2250-0.0750

3.125 1.245 3.5251.175 2.035 4.175

5 4 11.4962 17.9612 2.2062 3 0.3 0.4425-0.0525

3.125 1.245 3.96751.175 2.035 4.1225

Iterasi 1 - 2

Page 17: Clustering ( Season 2 ) Self-Organizing Map

17

Iterasi Data D Cluster Terdeka

t

Pembaruan Cluster Terdekat

Bobot

a b c = b*(a-dprev) d = a+c

3

1 1 2 0.184 1 1 0.181 2 2 0.183 4 3 0.185 4 3 0.18 3.2825 1.1647 4.0105

1.1435 1.8759 4.0824

4

1 1 2 0.1084 1 1 0.1081 2 2 0.1083 4 3 0.1085 4 3 0.108 3.3600 1.1311 4.0201

1.1280 1.8049 4.0655

5

1 1 2 0.06484 1 1 0.06481 2 2 0.06483 4 3 0.06485 4 3 0.0648 3.4015 1.1146 4.0217

1.1197 1.7688 4.0573

Iterasi 3 - 5

Indeks (nomor) cluster yang diikuti data

Bobot akhir setelah 5 iterasi

pelatihan

Page 18: Clustering ( Season 2 ) Self-Organizing Map

18

Fungsi SOM di matlab sintaks penggunaan sebagai berikut:

◦ [Idx, w, C, D] = somtrain(X,C,Iterasi,lr,lf) Fungsi tersebut digunakan untuk melakukan clustering pada data set

X pada sejumlah cluster C. Penjelasan parameter yang digunakan sebagai berikut:

Parameter KeteranganX X adalah matrik MN, dimana M menyatakan jumlah data, N menyatakan

jumlah fitur.C C menyatakan jumlah cluster (neuron pemroses).Iterasi Jumlah maksimal iterasi, default=100.lr Laju pembelajaran (), default = 0.5.lf Fungi pembelajaran, default = 0.6.Idx Matrik M1 yang menyatakan indeks cluster, setiap barisnya menyatakan

cluster yang diikuti data pada baris tersebut di matrik X. Nilainya berturut-turut mulai 1, 2, .... sesuai indeks cluster.

w Matrik NC yang menyatakan bobot untuk setiap neuron (cluster), N menyatakan jumlah fitur, C menyatakan jumlah neuron (cluster).

D Matrik MC, baris menyatakan data, kolom menyatakan jarak data ke neuron (cluster).

Page 19: Clustering ( Season 2 ) Self-Organizing Map

19

Contoh Programdata = [1 4 1 3 5;1 1 2 4 4; ]';C = 3;Iterasi = 5;lr = 0.5;lf = 0.6;[idx, w, C, D] = somtrain(data,C,Iterasi,lr,lf);figure('Position',[300 300 250 200]);

plot(data(idx==1,1),data(idx==1,2),'ko',data(idx==2,1),data(idx==2,2),'k+',data(idx==3,1),data(idx==3,2),'k^','MarkerSize',6);

axis([0 6,0 6]);display('bobot: w1 | w2 | w3');wdisplay(' X | Y | C | D1 | D2 | D3 ');[data idx D]

Page 20: Clustering ( Season 2 ) Self-Organizing Map

20

Contoh Program

>> contoh_sombobot: w1 | w2 | w3

w =

3.4015 1.1146 4.0217 1.1197 1.7688 4.0573

X | Y | C | D1 | D2 | D3

ans =

1.0000 1.0000 2.0000 5.5859 0.6651 18.5183 4.0000 1.0000 1.0000 0.4260 8.8462 9.3979 1.0000 2.0000 2.0000 6.5419 0.0761 13.3872 3.0000 4.0000 3.0000 8.4573 8.5328 1.0448 5.0000 4.0000 3.0000 10.8514 20.0742 1.0980

0 2 4 60

2

4

6

Hasil clustering data set dengan SOM

Page 21: Clustering ( Season 2 ) Self-Organizing Map

21

ANY QUESTION ?To Be Continued … Clustering (Season 3)