Clustering ( Season 2 ) Self-Organizing Map
description
Transcript of Clustering ( Season 2 ) Self-Organizing Map
Clustering (Season 2)Self-Organizing MapPengenalan PolaMateri 4
Eko PrasetyoTeknik Informatika
UPN “Veteran” Jawa Timur2012
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
3
Topografi SOM
Linear neighborhood
Rectangular neighborhood Hexagonal neighborhood
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.
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
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
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
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
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
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
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
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
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
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
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…
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
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
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).
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]
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
21
ANY QUESTION ?To Be Continued … Clustering (Season 3)