Anda di halaman 1dari 7

Vol. 2 No.

1 April 2014 Jurnal TEKNOIF ISSN : 2338-2724

KOMPARASI METODE JARINGAN SYARAF TIRUAN


SOM DAN LVQ UNTUK MENGIDENTIFIKASI DATA BUNGA IRIS
Meri Azmi*
*Dosen Teknologi Informasi
Politeknik Negeri Padang
E-mail : pnp@polinpdg.ac.id

Abstract
In this journal we tried to compare the performance between SOM & LVQ Methods of Neural
Network. Iris data was used to perform the comparison. We found that SOM has better performance
(89.33%) than LVQ (86.67%). But LVQ has faster time process(0.11 s) than SOM (0.20 s).

Keyword : SOM, LVQ, Neural Network

1. Pendahuluan Data yang akan digunakan dalam


Dalam tulisan ini penulis ingin menguji ke dua metode di atas adalah data
membandingkan beberapa metode yang ada bunga iris. Gambar 1 adalah representasi
dalam jaringan syaraf tiruan. Metode yang grafik radar dari tiga jenis bunga iris. Tiga
dipilih untuk dibandingkan adalah metode jenis data iris yang digunakan memiliki 4
SOM dan LVQ. dimensi dan masing-masing jenis bunga
memiliki 50 data sehingga total keseluruhan
data yang ada adalah 150.

2. Tinjauan Pustaka
Perbandingan Arsitektur
Arsitektur SOM
SOM terdiri dari 2 lapis yakni input
dan output, di mana antar lapisannya
dihubungkan oleh bobot tertentu yang sering
disebut sebagai vektor pewakil vector code
book atau reference vector [Fausette, 1994]
Pada arsitektur satu dimensi, input
layer (X) akan berbentuk linear dan demikian
pula outputnya (Y). Pada arsitektur ini, unit
yang bersebelahan akan memiliki lebih
sedikit perbedaan daripada unit yang letaknya
lebih jauh. Lebih jelasnya dapat dilihat pada
gambar 2.3.

Gambar 1. Grafik radar data bunga Iris a)


jenis pertama b) jenis kedua dan c) jenis
ketiga Gambar 2. Arsitektur SOM

c)
64
Vol. 2 No. 1 April 2014 Jurnal TEKNOIF ISSN : 2338-2724

Bobot (W) digunakan sebagai agar lebih dekat dengan vektor masukan.
salahsatu komponen untuk menentukan jarak Sebaliknya ketika hasil klasifikasi tidak sama
terhadap output layer. Jarak terdekat akan dengan informasi kelas yang diberikan di
menjadi referensi pengklasteran data. Apabila awal, maka vektor pewakil akan disesuaikan
ada jarak ke output 2 adalah yang paling agar menjauhi vektor masukan.
dekat maka vektor yang dimasuk akan
ditempatkan di kelas output ke 2, dan Perbandingan Algoritma
kemudian bobot yang ada akan diupdate SOM
dengan mempertimbangkan masuknya vektor Algoritma metode Self-Organizing
masukan tersebut ke output layer kelas 2. Maps dapat ditulis sebagai berikut :
Bobot baru ini kemudian akan menjadi Langkah 0 : Inisialisai Bobot
referensi berikutnya untuk masukan Langkah 1 : Jika kondisi henti gagal, lakukan
selanjutnya. langkah 2-7
Langkah 2 : Untuk setiap vektor masukan Xi,
lakukan langkah 3 sampai 5
Arsitektur LVQ
Langkah 3 : Untuk setiap j, hitung:
Seperti halnya SOM, LVQ juga
terdiri dari 2 lapisan yakni input (X) dan
output (Y), di mana antar lapisannya
dihubungkan oleh bobot tertentu yang sering Langkah 4 : Temukan indeks j sehingga D(j)
disebut sebagai vektor pewakil (W). minimum
Informasi yang diberikan ke jaringan pada Langkah 5 : Untuk setiap neuron J update
saat pembelajaran bukan hanya vektor data bobotnya
saja melainkan informasi kelas dari data juga
ikut dimasukkan. Tujuan dari dimasukkannya
informasi ini adalah untuk menambah Dengan adalah laju pemahaman / learning
keakuratan jaringan dalam
mengklasifikasikan data. rate (digunakan 0.1)
Langkah 6 : Memodifikasi laju pemahaman
(digunakan 0.5 )
Langkah 7 : Periksa kondisi henti

LVQ
Algoritma Learning Vector
Quantization dapat ditulis sebagai berikut :
Langkah 0 : Inisialisai Bobot
Langkah 1 : Jika kondisi henti gagal, lakukan
langkah 2-8
Langkah 2 : Untuk setiap vektor masukan Xi,
Gambar 3. Arsitektur LVQ lakukan langkah 3 sampai 6
Langkah 3 : Untuk setiap j, hitung:

X = Vektor Masukan (x1…, xi…, xn)


F = Lapisan kompetitif
Langkah 4 : Temukan indeks j sehingga D(j)
Y_in = Masukan kelapisan kompetitif
minimum
Y = Keluaran (Output)
Langkah 5 : Periksa indeks j dan bandingkan
W = Vektor bobot untuk unit keluaran
dengan informasi kelas
||X-W|| = Selisih nilai jarak Euclidean antara
Langkah 6 : Untuk setiap j
vektor input dengan vektor bobot untuk unit
Output  Meng-update bobotnya jika indeks =
informasi kelas
Ketika hasil pemrosesan jaringan
memberikan hasil klasifikasi yang sama Meng-update bobotnya jika indeks ≠
dengan informasi kelas yang diberikan di informasi kelas
awal maka vektor pewakil akan disesuaikan

65
Vol. 2 No. 1 April 2014 Jurnal TEKNOIF ISSN : 2338-2724

for i=1:sizex
for j=1:batas_input
x(i,j)=data(i,j);
end
Dengan adalah laju pemahaman / learning t(i,1)=data(i,sizey);
end
rate (digunakan 0.1) x;
Langkah 7 : Memodifikasi laju pemahaman t;
(digunakan 0.5 )
Langkah 8 : Periksa kondisi henti %--------- Inisialisasi
variabel awal untuk SOM ------
4. Hasil dan Pembahasan ---%
Pengembangan Program SOM n= batas_input; % jml
Program dikembangkan dengan neuron masukan
menggunakan MATLAB. Data disimpan p= max(t); % jml
dalam format txt dengan nama data.txt. neuron keluaran / banyaknya
Program yang dikembangkan akan membaca kelas
data dan kemudian megidentifikasi Berikut ndc=sizex/p; %jml data
adalah hasil pengembangannya : tiap kelas
alpha=0.6; % laju
% PROGRAM SOM % pemahaman
batas_perubahan=0.00001; %
% Catatan : ubah nama file batas perubahan bobot
dimana data tersimpan misal
data.txt %----------------------
inisialisasi bobot vji--------
clc;clear; ----------------%
tic; % bobot diambil dengan
disp('mulai') kelipatan ndc / data pertama
% --------------------- tiap kelas
Membaca data ----------------- for j=1:p
----- % v(j,:)=x((((j-
fid = fopen('data.txt','r'); 1)*ndc)+1),:);
i=1; end
a=0; v;
data=0;
while 1 %-----------------
tline = fgetl(fid); Pembelajaran self organizing
if ~ischar(tline), maps ---------------------%
break, end epoh=100;
%disp(tline); nTraining=(0.5*sizex); %
a=str2num(tline); persentase data dr 150 data
[sizex sizey]=size(a); yang akan digunakan sebagai
for j=1:sizey data learning
data(i,j)=a(j); for it=1:epoh
end k=1;
i=i+1; v_lama=v;
end for loop=1:nTraining
fclose(fid); X=x(k,:);
min=inf;
%----------------------- for j=1:p
Membaca Target --------------- d(j)=0;
--------------% % menghitung jarak
[sizex sizey]=size(data); antara vji dengan xi
batas_input=sizey-1; for i=1 :n

66
Vol. 2 No. 1 April 2014 Jurnal TEKNOIF ISSN : 2338-2724

d(j)= d(j) + it;


((X(1,i)-v(j,i))^2); v;
end %----------------- Akhir
d(j)=sqrt(d(j)); Training Self Organizing Maps
% memeriksa vji ---------------------%
mana yang memiliki jarak yang
paling dekat dengan xi %----------------- Testing
if( d(j)<min) Self Organizing Maps ---------
min=d(j); ------------%
J=j;
end % Inisialisasi variabel
end testing
% hitung nilai k; %
pengubah vektor pewakil/bobot awal data testing
delta_v=alpha*(X- betul=0; %
v(J,:)); konter penghitung data yang
% update vektor bobot teridentifikasi dengan benar
yang paling dekat dengan X nTest=(sizex-nTraining); %
vn=v(J,:)+delta_v; persentase data dr 150 data
v(J,:)=vn; yang akan digunakan sebagai
data test
% urutan data yg in=1;
digunakan% yang_salah=[];
k=k+ndc; % Proses testing
if(k>sizex) for loop=1:nTest
k=k-sizex+1; X=x(k,:);
end T=t(k);
end min=inf;
% uji kondisi for j=1:p
penghentian(selisih vji saat % menghitung jarak
ini dengan vji iterasi/epoh antara vji dengan xi
sebelumnya) d(j)=0;
dv=abs(v-v_lama); for i=1 :n
% cek apakah ada data d(j)= d(j) +
selisih (komponen dv) yang ((v(j,i)- X(1,i))^2);
lebih dari batas perubahannya end
cek_dv=0; d(j)=sqrt(d(j));
for i=1:n % memeriksa vji mana
for j=1:p yang memiliki jarak yang
if paling dekat dengan xi
(dv(j,i)>batas_perubahan) if( d(j)<min)
min=d(j);
cek_dv=cek_dv+1; J=j;
end end
end end
end % ------- cek kesesuaian
% jika tidak ada perubahan klasifikasi ------------- %
maka hentikan looping iterasi if (J==T)
if (cek_dv==0) betul=betul+1;
break else
end yang_salah(in,:)=[k J
% modifikasi laju T];
pemahaman in=in+1;
alpha= alpha*0.5; end
end
% cek epoch dan bobot terakhir

67
Vol. 2 No. 1 April 2014 Jurnal TEKNOIF ISSN : 2338-2724

% urutan data yg batas_input=sizey-1;


digunakan% for i=1:sizex
k=k+ndc; for j=1:batas_input
if(k>sizex) x(i,j)=data(i,j);
k=k-sizex+1; end
end t(i,1)=data(i,sizey);
end end
x;
it t;
nTest %--------- Inisialisasi
betul variabel awal untuk LVQ ------
RR=(betul/nTest)*100 ---%
yang_salah; n= batas_input; % jml
neuron masukan
disp('selesai') p= max(t); % jml
toc; neuron keluaran / banyaknya
kelas
Pengembangan Program LVQ ndc=sizex/p; % jml
Program dikembangkan dengan data tiap kelas
menggunakan MATLAB. Data disimpan alpha=0.000001; %
dalam format txt dengan nama data.txt. laju pemahaman
Program yang dikembangkan akan membaca batas_perubahan=0.00001; %
data dan kemudian megidentifikasi Berikut batas perubahan bobot
adalah hasil pengembangannya : %----------------------
inisialisasi bobot vji--------
% PROGRAM LVQ % ----------------%
% Catatan : ubah nama file % bobot diambil dengan
dimana data tersimpan misal kelipatan ndc / data pertama
data.txt tiap kelas
clc;clear; for j=1:p
tic; v(j,:)=x((((j-
disp('mulai') 1)*ndc)+1),:);
% --------------------- end
Membaca data ----------------- v;
----- % %-----------------
fid = fopen('data.txt','r'); Pembelajaran LVQ -------------
i=1; --------%
a=0; epoh=100;
data=0; nTraining=(0.5*sizex); %
while 1 persentase data dr 150 data
tline = fgetl(fid); yang akan digunakan sebagai
if ~ischar(tline), data learning
break, end for it=1:epoh
%disp(tline); k=1;
a=str2num(tline); v_lama=v;
[sizex sizey]=size(a); for loop=1:nTraining
for j=1:sizey X=x(k,:);
data(i,j)=a(j); T=t(k);
end min=inf;
i=i+1; for j=1:p
end d(j)=0;
fclose(fid); for i=1 :n
%----------------------- d(j)= d(j) +
Membaca Target --------------- ((X(1,i)-v(j,i))^2);%
--------------% menghitung jarak antara vji
[sizex sizey]=size(data); dengan xi

68
Vol. 2 No. 1 April 2014 Jurnal TEKNOIF ISSN : 2338-2724

end % modifikasi laju


d(j)=d(j)^0.5; pemahaman
if( d(j)<min) alpha= alpha*0.5;
min=d(j); end
J=j; % cek epoch dan bobot terakhir
end it;
end v;
% hitung nilai %--------------akhir LVQ------
pengubah vektor pewakil/bobot ------------%
delta_v=alpha*(X- %----------------- Testing LVQ
v(J,:)); ---------------------%
% cek info kelas dan % Inisialisasi variabel
update bobot testing
if (J==T) k %
vn=v(J,:)+delta_v; awal data testing
else betul=0; %
vn=v(J,:)-delta_v; konter penghitung data yang
end teridentifikasi dengan benar
v(J,:)=vn; nTest=(sizex-nTraining); %
% urutan data yg persentase data dr 150 data
digunakan yang akan digunakan sebagai
k=k+ndc; data test
if(k>sizex) in=1;
k=k-sizex+1; yang_salah=[];
end % Proses testing
end for loop=1:nTest
% uji kondisi X=x(k,:);
penghentian(selisih vji saat T=t(k);
ini dengan vji iterasi/epoh min=inf;
sebelumnya) for j=1:p
for j=1:p % menghitung jarak
for i=1:n antara vji dengan xi
d(j)=0;
dv(j,i)=abs(v(j,i)- for i=1 :n
v_lama(j,i)); d(j)= d(j) +
end ((v(j,i)- X(1,i))^2);
end end
% cek apakah ada data d(j)=d(j)^0.5;
selisih (komponen dv) yang % memeriksa vji mana
lebih dari batas perubahannya yang memiliki jarak yang
cek_dv=0; paling dekat dengan xi
for i=1:n if( d(j)<min)
for j=1:p min=d(j);
if J=j;
(dv(j,i)>batas_perubahan) end
end
cek_dv=cek_dv+1; % ------- cek kesesuaian
end klasifikasi ------------- %
end if (J==T)
end betul=betul+1;
% jika tidak ada perubahan else
maka hentikan looping iterasi yang_salah(in,:)=[k J
if (cek_dv==0) T];
break in=in+1;
end end

69
Vol. 2 No. 1 April 2014 Jurnal TEKNOIF ISSN : 2338-2724

% urutan data yg (86.67%). Namun pencapaian recognition


digunakan% rate yang tinggi dari proses SOM (0.20 s) dan
k=k+ndc; LVQ (0.11 s).
if(k>sizex)
k=k-sizex+1; 5. Kesimpulan
end Dari kedua metode yang telah
end dilakukan, maka dapat diambil kesimpulan
epoch_terakhir=it bahwa :
Jumlah_datauji=nTest 1. Dari kedua metode yang diuji, untuk
Jumlah_betul=betul mendeteksi data bunga iris, metode SOM
Recognition_Rate=(betul/nTest) memiliki tingkat pengenalan yang lebih
*100 baik.
yang_salah; 2. Sedangkan jika dilihat dari segi waktu
end proses, metode LVQ memiliki waktu
disp('selesai') proses yang lebih cepat
toc;
Daftar Pustaka
HASIL PENGUJIAN
Kusumoputro , Benyamin, Jaringan Neural
Network. Depok: Universitas Indonesia
Putra, Dwi Sudarno. 2011. Pengembangan
Jaringan Syaraf Tiruan dengan Metode
SOM Fuzzy dan LVQ Fuzzy. Depok :
Universitas Indonesia
Siang , Jong Jek. 2005. Jaringan Syaraf
Tiruan & Pemrogramannya
Menggunakan Matlab. Yogyakarta :
Andi,

a) b)
Gambar 4. Hasil Perbandingan 2 Metode
a) SOM b) LVQ

Dari hasil pengujian di atas terlihat bahwa


SOM memiliki tingkat pengenalan yang
paling baik (96%) dibandingkan dengan LVQ

70

Anda mungkin juga menyukai