340 likes | 802 Views
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)
E N D
Clustering (Season 2)Self-Organizing Map PengenalanPola Materi 4 Eko Prasetyo TeknikInformatika UPN “Veteran” JawaTimur 2012
Self-Organizing Map • Self-Organizing Map (SOM) pertama kali diperkenalkanolehKohonen (Kohonen, 1989) • Memperkenalkanteknikpelatihan ANN yang berbasiswinner take all, dimanahanya neuron yang menjadipemenang yang akandilakukanpembaruanpadabobotnya. • Meskipunberbasis ANN, SOMtidakmenggunakannilai target kelas, tidakadakelas yang ditetapkanuntuksetiap data • Karakteristikinilah yang membuatSOMdapatdigunakanuntukkeperluan clustering (berbasis ANN) • ArsitektirSOMdapatdigambarkansecaratopografiuntukdapatmemberikanvisualisasi clustering
TopografiSOM Linear neighborhood Rectangular neighborhood Hexagonal neighborhood
Self-Organizing Map • Ada K neuron yang disusundalamlariksatuatauduadimensi • Sinyalmasukanuntuksetiap neuron dilewatkanpadabobotdenganjumlahelemenbobot yang samadengan N fitur (Kohonen, 1989) • SehinggauntukarsitekturSOMakanmemerlukanNKbobot • Neuron dengannilaiterkecildianggapsebaganeuron pemenang • Kemudianakanmemperbaruibobotnyabersamadengantetangga-tetangga yang didefinisikandalamarsitekturnya • Komputasisinyalkeluarantidakmenggunakan inner-product sepertipadaperceptron • Tetapimenggunakan Euclidean kuadrat (square Euclidean) antara data masukandenganbobotpadasetiap neuron pemroses.
Self-Organizing Map • Akumulasisinyal yang didapattidakperludiaktivasi (fungsiaktivasi linear) • Karenafungsiaktivasitidakmemberikanpengaruhpadapemilihan neuron pemenang yang akanmemperbaruibobotnyadanbobottetangganya. • Cluster yang diikutiolehsebuah data sebagaihasilproses clustering ditunjukkanolehindeks neurondalamlayernya • Untuk K neuron makaada cluster 1 sampai K yang diberikansebagaihasil clustering • Tidakadalah error yang dihitungpadasetiapiterasipelatihan • KriteriaberhentinyaprosespelatihandalamSOM (sebagaiproses clustering) menggunakanjumlahiterasitertentu
Self-Organizing Map • Padasetiapiterasiuntuksetiap data yang diproses, neuron dengannilaikeluaranterkecilakanmengalamiperbaruanbobotbersamadengantetangga yang didefinisikan. • Misalnya, untukketetanggaan linear, tetanggapada radius R disekitar neuron J yang terdiridarisemua unit j yaitu max(1,J-R) j min(J+R,K), dimana K adalahjumlah neuron (cluster). Arsitektur ANN SOM
AlgoritmaPelatihanSOM • Yang perluditekankanadalahbobot yang terhubungtidakdikalikandengansinyal (data masukan) untuk neuron pemrosestetapimenggunakankuantisasiperbedaan (atauketidakmiripan) antara data masukandengan K neuron pemroses (kecualijikamenggunakanmetrik inner-product untukmengukurperbedaan/ketidakmiripan). • Algoritma Clustering dengan Self-Organizing Map: • Inisialisasibobotwij. Tentukan parameter topologiketetanggaan. Tentukan parameter lajupembelajaran. Tentukanjumlahmaksimaliterasipelatihan • Selamajumlahmaksimaliterasibelumtercapai, lakukanlangkah 3 – 7. • Untuksetiap data masukan X, lakukanlangkah 4 – 6. • Untuksetiap neuron j, hitung , i = 1, …, N, N adalahdimensi data (N). • Cariindeksdarisejumlah neuron yaituDj, yang mempunyainilaiterkecil. • Untuk neuron j dansemua neuron yang menjaditetangga J (yang sudahdidefinisikan) dalam radius R, dilakukanperbaruanbobot: . • Perbaruinilailajupembelajaran.
AlgoritmaPelatihanSOM • Nilailajupembelajaran () yang digunakandisinisamadengan ANN perceptron, menggunakanjangkauannilai 0 sampai 1 • Tetapinilaiiniakanterusditurunkansetiap kali kenaikaniterasidengansebuahfungsipembelajaran (learning function); penurunangeometrikakanmemberikanhasil yang sama. • Misal, penurunan (fungsipembelajaran) sebesar 0.6, makajikapadaiterasipertamamenggunakan=0.5 makapadaiterasikeduaakanmenjadi=0.6, padaiterasiketigaakanmenjadi=0.60.6. • Inisialisasibobotawal, bisamenggunakannilaiacakdenganjangkauan -0.5 sampai +0.5 ataumenggunakannilaiacakdenganjangkauannilaisepertipada data masukan
Contoh Data asli • Akandilakukan clustering pada 5 buah data denganjumlahdimensinya 2: X dan Y. • Parameter yang digunakan: • Jumlah cluster 3 • Jumlahiterasipelatihanmaksimal 5 • Lajupembelajaran 0.5 danakanmenjadi 0.6 (fungsipembelajaran) darinyapadaiterasiberikutnya. • Inisialisasibobot, karenajumlahfiturada 2 danjumlah cluster ada 3 makamatrikbobotwberukuran 23, secaraacakdigunakanbobotawalsebagaiberikut:
Iterasi 1 (data 1) Bobot lama: Untuk data 1 [1 1], hitungjarakkesetiap neuron: terkecil Jarakterkecil (terdekat) adalah neuron ke-1, maka neuron 1 diperbaruibobotnya: Bobotbarumenjadi: Data berikutnya…
Iterasi 1 (data 2) Bobot lama: Untuk data 2 [4 1], hitungjarakkesetiap neuron: terkecil Jarakterkecil (terdekat) adalah neuron ke-1, maka neuron 1 diperbaruibobotnya: Bobotbarumenjadi: Data berikutnya…
Iterasi 1 (data 3) Bobot lama: Untuk data 3 [1 2], hitungjarakkesetiap neuron: Jarakterkecil (terdekat) adalah neuron ke-2, maka neuron 2 diperbaruibobotnya: terkecil Bobotbarumenjadi: Data berikutnya…
Iterasi 1 (data 3) Bobot lama: Untuk data 4 [3 4], hitungjarakkesetiap neuron: Jarakterkecil (terdekat) adalah neuron ke-3, maka neuron 3 diperbaruibobotnya: terkecil Bobotbarumenjadi: Data berikutnya…
Iterasi 1 (data 3) Bobot lama: Untuk data 5 [5 4], hitungjarakkesetiap neuron: Jarakterkecil (terdekat) adalah neuron ke-3, maka neuron 3 diperbaruibobotnya: terkecil Bobotbarumenjadi: Iterasiberikutnya…
HasilIterasi 1 Bobotbarusetelahiterasi 1: Lajupembelajaran yang barumenjadi: Indeks cluster yang diikuti data: LanjutkeIterasiberikutnya…
Iterasi 3 - 5 Indeks (nomor) cluster yang diikuti data Bobotakhirsetelah 5 iterasipelatihan
FungsiSOMdimatlab • sintakspenggunaansebagaiberikut: • [Idx, w, C, D] = somtrain(X,C,Iterasi,lr,lf) • Fungsitersebutdigunakanuntukmelakukan clustering pada data set X padasejumlah cluster C. • Penjelasan parameter yang digunakansebagaiberikut:
Contoh Program data = [ 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'); w display(' X | Y | C | D1 | D2 | D3 '); [data idx D]
Contoh Program >> contoh_som bobot: 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 Hasil clustering data set denganSOM
To Be Continued … Clustering (Season 3) ANY QUESTION ?