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)
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:
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
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)
# 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)
4
Praktikum ke-5
Modul Praktikum Kecerdasan Komputasional (Matrikulasi 1920)
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