Anda di halaman 1dari 5

Modul Praktikum Kecerdasan Komputasional (Matrikulasi 1920)

PERTEMUAN 5
Jaringan Kohonen SOM menggunakan Bahasa R

TUJUAN PRAKTIKUM
1. Mahasiswa mampu memahami dan menjelaskan mengenai konsep Jaringan kohonen
Self Organizing Mapping(SOM) menggunakan bahasa R
2. url sharing:
a. https://newlms.ipb.ac.id (KOM521, enrol:matrikulasi_ci_1920)
b. https://goo.gl/Udv7aY
TEORI PENUNJANG DAN MATERI PRAKTIKUM
Konsep Jaringan Kohonen SOM
Algoritme Kohonen (Self Organizing Maps, SOM), merupakan model pemetaan dari jaringan
syaraf tiruan dimana suatu lapisan yang berisi neuron-neuron yang akan menyusun dirinya
sendiri berdasarkan input nilai tertentu dalam suatu kelompok yang dikenal dengan istilah
cluster.
Selama proses penyusunan diri, cluster yang memiliki vector bobot paling cocok dengan pola
input (memiliki jarak yang paling dekat) akan terpilih sebagai pemenang (competitive
learning). Selanjutnya, neuron yang menjadi pemenang beserta dengan neuron-neuron
tetangganya akan memperbaiki bobot-bobotnya masing-masing.

Bobot 𝑊𝑖𝑗 mengandung pengertian bobot yang menghubungkan neuron ke-j pada lapisan
input menuju neuron ke-i pada lapisan output. Berbeda dengan Backpropagation yang
menggunakan 2 alur dalam perhitungan bobot, yaitu propagasi maju (forward) dan propagasi
mundur (backward). Jaringan Kohonen SOM hanya menggunakan 1 alur dalam
perhitungannya, yaitu alur maju.

1
Praktikum ke-5
Modul Praktikum Kecerdasan Komputasional (Matrikulasi 1920)

Algoritme Jaringan Kohonen SOM

Langkah 0:
- Inisialisasi bobot Wij
- Tetapkan parameter cluster (m) dan parameter laju pelatihan/learning rate ()
Langkah 1:
- Selama nilai epoch belum terpenuhi (syarat berhenti), lakukan langkah-langkah
dibawah:
- Langkah( i ) : Untuk setiap vector masukan X , lakukan beberapa langkah dibawah ini:
o Langkah (a). Untuk setiap j hitunglah:

o Langkah (b). Cari indeks j sedemikian sehingga D(j) minimum


o Untuk semua unit j didalam ketetanggaan j, dan untuk semua i, hitunglah:

- Langkah ( ii ) : Perbarui laju belajar (learning rate)


- Langkah(iii) : Kurangi jarak tetangga (R)
- Langkah (iv) : Periksa syarat berhenti

Contoh Jaringan Kohonen SOM Sederhana


Diberikan data dengan 4 obyek yang memiliki ciri representative sebanyak 4 sebagai berikut:
Obyek 𝑋1 𝑋2 𝑋3 𝑋4
1 1 1 0 0
2 0 0 0 1
3 1 0 0 0
4 0 0 1 1

Lakukan pengelompokan (cluster) dengan menggunakan algoritme kohonen SOM yang


dikelompokkan ke dalam 2 klaster.

Maka dengan mengikuti prosedur algoritme, pertama yang ditentukan adalah inisialisasi
bobot awal sebagai berikut:
2
Praktikum ke-5
Modul Praktikum Kecerdasan Komputasional (Matrikulasi 1920)

Inisialisasi Bobot:
𝑋1 𝑋2 𝑋3 𝑋4
Cluster1 0.2 0.6 0.5 0.9
Cluster2 0.8 0.4 0.7 0.3

Carilah matriks bobot setelah 8 iterasi (Syarat berhenti) dan tentukan termasuk kelompok
cluster yang mana keempat vector masukan diatas.
Ditetapkan Laju pelatihan awal:
(0) = 0.6 ; 𝟏 ≤ 𝒕 ≤ 𝟒, dan
(t+1) = 0.5  (t) ; 𝟓 ≤ 𝒕 ≤ 𝟖.
Berdasarkan algoritme di atas maka untuk satu obyek (obyek 1).
Obyek 1 :
Obyek1:
- O1 = [1 1 0 0]
dihitung jaraknya terhadap bobot cluster1, dan bobot cluster2
- d1 = ([1 1 0 0] − [0.2 0.6 0.5 0.9])2 = 1.86
d2 = ([1 1 0 0] − [0.8 0.4 0.7 0.3])2 = 0.98
bandingkan hasil nilai jarak di antarak kedua bobot, dan pilih nilai yang
terkecil sebagai pemenang
- d2 < d1
- Update bobot pemenang:
𝑊2 = [0.8 0.4 0.7 0.3] + *([1 1 0 0] − [0.8 0.4 0.7 0.3])
= [0.92 0.76 0.28 0.12]
- Bobot baru :
𝑋1 𝑋2 𝑋3 𝑋4
Cluster1 0.2 0.6 0.5 0.9
Cluster2 0.92 0.76 0.28 0.12

Implementasi menggunakan R
Menyiapkan dataset ke dalam bentuk vector:
#kohonen SOM

# Mencoba untuk penghitungan hanya pada Objek 1 di atas.


# Langkah 0: Menyiapkan dataset dan inisialisasi Bobot

dataset_som<-data.frame(fitur1=c(1,0,1,0),
fitur2=c(1,0,0,0),
fitur3=c(0,0,0,1),
fitur4=c(0,1,0,1))
rownames(dataset_som)<- c("obyek1", "obyek2", "obyek3", "obyek4")

bobot_som<-data.frame(fitur1=c(0.2,0.8),
fitur2=c(0.6,0.4),
fitur3=c(0.5,0.7),
fitur4=c(0.9,0.3))

3
Praktikum ke-5
Modul Praktikum Kecerdasan Komputasional (Matrikulasi 1920)

rownames(bobot_som)<- c("cluster1", "cluster2")

# Langkah 1

# Obyek 1
O1 <- dataset_som["obyek1",]
b1 <- bobot_som["cluster1",]
b2 <- bobot_som["cluster2",]
d1=sum((O1-b1)^2)
d2=sum((O1-b2)^2)

if(d1<d2){
bobot_som["cluster1",] <- b1+0.6*(O1-b1)
} else {
bobot_som["cluster2",] <- b2+0.6*(O1-b2)
}

Bobot som

LATIHAN PRAKTIKUM
1. Menggunakan, ilustrasi scratch dari kode R di atas, susunlah menjadi baris kode yang
dapat menghitung bobot akhir dengan nepoch adalah sebanyak 8, dan learning rate
yang ditentukan berdasarkan nilai epoch.
# Dilanjutkan untuk n=4, dan nepoch=8
n<-nrow(dataset_som)
nepoch <- 8
alpha <- as.vector(rep(0, nepoch))
final_cluster <-as.vector(rep(0, n))

for(t in 1:nepoch){
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
…………………………………………
}
print(final_cluster)
print(bobot_som)

2. Mencoba mengimplementasi dengan package "kohonen"


# install.packages("kohonen")
library(kohonen)
# search() # untuk melihat apakah library sudah active
# ls(2) # untuk melihat perintah apa saja di library kohonen
data(wines) # data yang tersedia untuk contoh pada library

4
Praktikum ke-5
Modul Praktikum Kecerdasan Komputasional (Matrikulasi 1920)

dim(wines) # untuk dimensi dari data wines


str(wines) # untuk melihat struktur data wines
wines <- scale(wines) # melakukan standardisasai dari data wines
template<-somgrid(xdim = 2, ydim = 1, topo = "hexagonal")
som_wines<-som(wines, grid=template, alpha = 0.6)
plot(som_wines, type = "mapping")
som_wines$unit.classif
plot(som_wines)
bobot<-as.data.frame(som_wines$codes[1])

DAFTAR PUSTAKA
1. Victor A. Bloomfield. 2014. Using R for Numerical Analysis in Science and
Engineering. 1 edition. Chapman and Hall/CRC

5
Praktikum ke-5

Anda mungkin juga menyukai