Anda di halaman 1dari 33

KELOMPOK 8 :

EDWARDO (1210952065)
MUHAMMAD HADI PUTRA (1210952023)
RAHMI OKTAVIANA (1210952031)
Jaringan kompetitif dalam matlab digunakan untuk mengelompokkan data
sedemikian hingga data yang berdekatan satu sama lain akan berada pada kelompok
yang sama. Arsitektur jaringan kompetitif mirip dengan jaringan ADALINE dimana
terdapat bias yang terhubung ke setiap neuron keluaran.
Gambar 1. Jaringan ADALINE

Dalam iterasinya, matlab menggunakan aturan kohenen dalam mengubah
bobot-bobotnya. Neutron yang bobotnya paling mendekati vector masukan akan
diperbaiki dan dibuat lebih dekat lagi. Dengan bertambahnya vector masukan yang
diberikan, maka setiap neuron yang terdekat ke suatu kelompok neuron akan
mengubah bobotnya ke arah vector masukan tersebut.
Ini berarti bahwa lama kelamaan vector masukan akan terbagi menjadi
beberapa kelompok. Vektor-vector masukan yang saling berdekatan akan membentuk
sebuah kelompok.

Dalam matlab, jaringan kompetitif dibentuk dengan perintah newc dengan format :
net = newc (PR,S,KLR,CLR)

Dimana :
PR : matrik Rx2 yang berisi nilai minimum dan maksimum masing-masing nilai
vector masukan
S : Jumlah neuron target
KLR : laju pemahaman Kohonen (default = 0.01)
CLR : laju pemahaman Conscience (default = 0.001)
Bobot awal yang dibentuk adalah titik tengah matriks PR
Diketahui 14 buah vector masukan (masing-masing terdiri dari 2 komponen x1,x2) sebagai
berikut :





Gunakan jaringan kompetitif dengan matlab untuk membagi 14 vector tersebut menjadi
maksimum 5 kelompok !

Penyelesaian :
Mula-Mula dimasukkan data vector (x1,x2) dalam range [0,1].
p = [0.1987 0.2722 0.0153 0.4451 0.466 0.8462 0.2026 0.8381 0.6813
0.8318 0.7095 0.3046 0.1934 0.3028 ; 0.6038 0.1988 0.7468
0.9318 0.4186 0.5252 0.6721 0.0196 0.3795 0.5028 0.4289 0.1897
0.6822 0.5417]
net = newc ([0 1; 0 1],5);
Untuk melihat bobot dan bias awalnya dapat digunakan perintah net.Iw dan net.b
net.IW {1,1} net.b {1}








Tampak bahwa semua bobot awalnya terletak pada titik tengah nilai minimum
dam maksimum vector masukan, yaitu interval [0,1].
Berikutnya untuk melatih jaringan digunakan perintah train .
Net = train(net,p);

Perintah sim dipakai untuk mencari pengelompokan vector
b = sim (net,p)
Perhatikan cara pembacaan keluaran perintah sim. b(I,j) berarti
vector masukan ke-j masuk dalam kelompok ke-i. Contoh, keluaran
pada baris pertama adalah b(5,1) yang berarti bahwa vector
masukan pertama = ( 0.1987, 0.6038) masuk dalam kelompok ke-5.
Keluaran baris kedua adalah b(3,2) yang berarti bahwa vector
masukan ke-2 = (0.2722, 0.2988) masuk ke dalam kelompok ke-3.
Demikian seterusnya hingga vector masukan ke-14 yang masuk
dalam kelompok ke-5.
Untuk mempermudah pembacaan dapat pula dgunakan perintah vec2ind. Keluaran
berupa kelompok vektornya.


Pelatihan dapat diperpanjang hingga jumlah epoch yang kita inginkan dengan
mensetting nilai net.trainParam.epocs. Jika dilakukan hingga 500 epochs, diperoleh
hasil pengelompokan sebagai berikut
Jika ingin memulai lagi dari bobot awal, kita harus menggunakan perintah init
(net) terlebih dahulu. Tanpa perintah init, berarti bobot yang kita pakai adalah bobot
terakhir yang kita dapatkan )
Pengaturan mandiri merupakan perluasan dari jaringan kompetitif. Jaringan ini
disebut kohenen. Jumlah neuron target sama dengan maksimum jumlah kelompok
yang hendak kita buat. Dalam iterasinya, bobot neuron yang diubah tidak hanya bobot
garis yang terhubung ke neuron pemenang saja tapi juga bobot ke neuron-neuron
disekitarnya.
Ada 3 macam topologi yang dapat dibentuk yaitu gridtop, hextop, randtop.
Pada jaringan kompetitif : neuron disusun dalam array 1 dimensi.
Pada gridtop : neuron disusun dalam array 2 dimensi.
Pada hextop : neuron disusun dalam heksagonal.
Pada randtop : neuron disusun dalam 2 dimensi acak.
Perintah untuk menentukan topologi jaringan adalah
Pos = gridtop (m,n)
Dimana
Pos = matriks ordo 2 x (mxn) yang menyatakan koordinat neuron. Perintah
gridtop dapat diganti dengan hextop atau randtop.
Contoh
Gambarkan 30 neuron topologi jaringan kohonen (2 dimensi) dalam 5 baris dan 6
kolom !
Penyelesaian

keluaran diatas menunjukkan koordinat 30 neuron yang dibentuk. Neuron-1 berada
pada posisi (o,o), neuron-2 pada (1,0) dan setrusnya Hingga neuron 30 berada pada (4,5).
Untuk menggambarkan :
Plotsom (pos)


Untuk membuat topologi hexagonal, perintah gridtop diganti sehingga seperti berikut :

Untuk membuat topologi hexagonal, perintah gridtop diganti sehingga seperti berikut :

Ada 4 definisi jarak antara 2 neuron, yaitu
1. Jarak Euclidis (dist)
2. Bocxdist
3. Linkdist
4. Mandist

Adalah neuron-neuron disekitarnya secara langsung. Apabila topologi neuron adalah


gridtop, maka paling banyak terdapat 8 buah neuron dengan boxdist = 1, 16 buah
neuron dengan boxdist = 2 seperti gambar :
Jika neuron pemenang berada dipinggir maka hanya
ada 5 neuron disekitarnya.

Yaitu jumlah langkah yang dibutuhkan untuk menuju neuron tersebut. Jika dalam
jaringan Kohonen menggunakan topologi gridtop dengan linkdist = 1, berarti hanya
neuron-neuron yang berhubungan langsung dengan neuron pemeng saja yang diubah
bobotnya.

Misalkan terdapat 6 buah neuron dalam topologi gridtop (2,3). Hitung jarak antar
neuron menggunakan
Jarak euclidis
Boxdist
Linkdist
Mandist

Penyelesaian




Enam neuron yang terbentuk masing-masing memiliki koordinat Neuron-1 = (0,0),
neuron-2 = (1,0), . Dst hingga neuron 6 = (1,2)
>> plotsom (pos)

Jarak persegi (boxdist)


>> boxdist (pos)



Jarak persegi setiap neuron dengan sendirinya = 0. Hal ini tampak pada jarak
sepanjang diagonal utamanya. Jarak persegi neuron-1 (koordinat (0,0)) dengan neuron
disekitarnya yaitu neuron-2 , neuron-3 dan neuron-4 =1. Neuron-neuron sekitar neuron-
3 adalah semua neuron lainnya . Ini berarti jarak persegi antar neuron-3 dan semua titik
lainnya = 1.
Jarak link (linkdist)
>>linkdist (pos)





Hasilnya sedikit berbeda dengan boxdist. Dengan linkdist, jarak neuron-1
dengan neuron-4 = 2 karena dibutuhkan 2 langkah dari neuron-1 untuk berpindah ke
neuron-4. Jarak link dari neuron-1 ke neuron-6 = 3karena dibutuhkan 3 langkah dari
neuron-1 untuk menuju neuron-6. Sebaliknya dengan boxdist, jarak neuron-1 dengan
neuron-4 = 1 karena neuron-4 merupakan salah satu neuron yang berada di sekitar
neuron-1.
Jarak manhattan (mandist)
>>mandist (pos)





Jarak manhattan antara neuron-1 (0,0) dengan neuron-2 (1,0) deperoleh dari rumus |0-
1|+|0-0|=1. Jarak neuron-2 (1,0) dengn neuron-6 (1,2) = |1-1|+|0-2|=2 dst







Langkah 1 implementasi jaringan kohenen dengan Matlab :
net = newsom (PR,[D1,D2,],TFCN,DFCN,OLR,OSTEPS,TLR,TND)
Dimana :
PR : matrik Rx2
Di : ukuran topologi layar (default = [5 8])
TFCN : fungsi topologi (default = hextop)
DFCN : fungsi jarak (default = linkdist)
OLR : laju pemahaman fase pengaturan (ordering).Default =0.9
OSTEPS : jumlah iterasi langkah pengaturan.Default = 1000
TLR : laju pemahaman fase penyempurnaan (tuning0.Default = 0.02
TND : jarak sekitar neuron pemenang pada fase penyempurnaan. Default = 1
Contoh
Gunakan jaringan kohonen untuk mengelompokkan 20 vector masukan dalam dimensi
2 yang diberikan secara acak pada range [0,1] dengan masukan topologi hextop[2,3].
Penyelesaian
Mula-mula dibentuk 20 vector 2 dimensi secara acak dalam matriks 2 x 20
>> p = rand (2,20)
Untuk melihat grafik gunakan perintah plot. Warna titik diatur lewat parameter .bluedan
besarnya titik diatur dengan markersize.
>>plot (p(1,: ), p(2,: ), .blue, markersize, 15
Berikutnya didefinisikan jaringan kohenen
>> net = newsom ([0 1; 0 1], [2 3]);
>> hold on
>> plotsom(net.iw{1,1}, net.layers{1}.distances)
>>hold off






Berikutnya, jaringan dilatih dengan perintah train
>> net = train (net,p)

Hasil pengelompokan neuron dapat dilihat dengan perintah
>> b = sim (net,p);
>> ac = vec2ind(b)







>>plot(p(1,: ), p(2,: ), .blue, markersize, 15)
>>hold on
>>plotsom(net.iw{1,1}, net.layers{1}.distances)
>>hold off

Gambar berikut merupakan posisi neuron setelah pelatihan, pembaca dapat mencoba-
coba hasil pelatihan dengan mengubah parameter-parameternya.

Anda mungkin juga menyukai