Sugeng Rawuh ^_^

" Mugi saking serat kedik menika saged maringi faedah kagem sederek sedaya"

Kamis, 17 Januari 2013

JARINGAN KOMPETITIF


COMPETITIVE NETWORK

A.                ArsitekturJaringan
Arsitektur jaringan merupakan salah satu hal terpenting dalam JST selain dari neuron
dan algoritma pembelajaran. Arsitektur jaringan terbagi menjadi tiga jenis, yaitu:

1.      Jaringan Lapis Tunggal (Single Layer Network)
Jaringan lapis tunggal merupakan jaringan yang hanya memiliki satu
buah lapisan dengan bobot-bobot yang terhubung. Jaringan ini hanya
menerima nilai input dan secara langsung mengolahnya untuk menjadi
nilai output tanpa melalui lapisan tersembunyi.

http://justdita.files.wordpress.com/2011/03/layertunggal.jpg?w=150&h=110


2.      Jaringan Multi Lapis (Multi Layer Network)
Jaringan multi lapis merupakan jaringan yang memiliki satu buah atau lebih
lapisan di antara lapisan input dan lapisan output. Jaringan multi lapis ini dapat
menyelesaikan permasalahan yang lebih kompleks dibandingkan dengan
jaringan lapis tunggal walaupun memiliki tingkat kerumitan yang tinggi serta
membutuhkan waktu yang lama dalam proses pelatihannya.
http://justdita.files.wordpress.com/2011/03/multilayer.jpg?w=150&h=86

3.      Jaringan Kompetitif (Competitive Layer Network)
Jaringan kompetitif sering disebut feedback loop karena unit output ada yang
memberikan informasi terhadap unit masukan.
http://justdita.files.wordpress.com/2011/03/kompetitif.jpg?w=150&h=110

Beberapa arsitektur jaringan  yang  sering dipakai dalam jaringan syaraf tiruan antara lain :
1.      Jaringan Lapisan Tunggal  (Single Layer Network)
Dalam jaringan ini  sekumpulan  input  neuron  dihubungkan langsung dengan sekumpulan outputnya.  Dalam beberapa  model  (misal  perceptron),  hanya ada sebuah unit neuron output.
2.      Jaringan Lapisan Jamak  (Multi Layer Network)
Jaringan lapisan jamak merupakan perluasan dari layar tunggal.  Dalam jaringan ini, selain unit input dan output, ada unit-unit lain (sering disebut layar tersembunyi/hidden  layer).  Dimungkinkan  pula ada beberapa layar tersembunyi.  Sama seperti pada unit input dan output, unit-unit dalam satu layar tidak saling berhubungan.
3.      Jaringan Recurrent
Model   jaringan recurrent mirip dengan jaringan layar tunggal ataupun ganda. Hanya saja,  ada  neuron  output  yang  memberikan sinyal pada  unit  input  (sering disebut feedback loop). Jaringan dengan lapisan kompetitif (competitif layer net). Hubungan antar-neuron pada lapisan kompetitif ini tidak diperlihatkan pada diagram arsitektur.
           
Gambar 6.Jaringandenganlapisankompetitif
B.                 Metode Learning Vector Quantization
Learning Vector Quantization (LVQ) adalah suatu metode untuk melakukan pembelajaran pada lapisan kompetitif yang terawasi. Suatu lapisan kompetitif akan secara otomatis belajar untuk mengklasifikasikan vektor vektor input. Kelas kelas yang didapatkan sebagai hasil dari lapisan kompetitif ini hanya tergantung pada jarak antara vektor vektor input. Jika 2 vektor input mendekati sama, maka lapisan kompetitif akan meletakkan kedua vektor input tersebut ke dalam kelas yang sama.



                                       


C.                PENERAPAN PEMBELJARAN JARINGAN KOMPETITIF DI MATLAP
            Pada pembelajaaran kompetitif,  setiap neoron akan berkompetitif untuk merespon suatu vektor input. Jika nilai semua bobot bias sama dengan 0, maka neuron yang memiliki vektor bobot sangat dekat dengan vektor input akan menenangkan kompetisi dan menghasilkan nilai output sama dengan 1, sedangkan nilai output neoron yang lainnya akan bernilai 0.

%Misalkan vektor input data terletak pada matriks P sebagai berikut :
>> P=[0 -1 -2 5 1 6 10 11 12; 0 1 -1 3 7 1 3 4 -1];
%Membangunjaringansyaraf
>>JumlahKlas = 3;
>>net = newc([-2 12; -1 7], JumlahKlas);
%Melihatbobot-bobot input, lapisan, dan bias
>>Bobot_Input = net.IW {1,1}
Bobot_Input =
     5     3
     5     3
     5     3
>>Bobot_Bias_Input = net.b {1,1}
Bobot_Bias_Input =
    8.1548
    8.1548
    8.1548
JaringanakandilatihdenganmenggunakanalgoritmapembelajaranKohonen, denganmaksimum epoch = 500, dantoleransi error= 103
>>net.trainParam.epochs = 500;

>>net.trainParam.goal = 0.001;
>>net =train(net,P);

%Akan menghasilkan :
TRAINR, Epoch 0/500
TRAINR, Epoch 25/500
TRAINR, Epoch 50/500
TRAINR, Epoch 75/500
TRAINR, Epoch 100/500
TRAINR, Epoch 125/500
TRAINR, Epoch 150/500
TRAINR, Epoch 175/500
TRAINR, Epoch 200/500
TRAINR, Epoch 225/500
TRAINR, Epoch 250/500
TRAINR, Epoch 275/500
TRAINR, Epoch 300/500
TRAINR, Epoch 325/500
TRAINR, Epoch 350/500
TRAINR, Epoch 375/500
TRAINR, Epoch 400/500
TRAINR, Epoch 425/500
TRAINR, Epoch 450/500
TRAINR, Epoch 475/500
TRAINR, Epoch 500/500
TRAINR, Maximum epoch reached.



%Melihatbobot-bobotawal input, lapisan, dan bias
>>BobotAkhir_Input = net.IW{1,1}
BobotAkhir_Input =
   -0.9992    0.0007
    3.9994    3.6672
   11.0000    2.0006
>>BobotAkhir_Bias_Input = net.b{1,1}
BobotAkhir_Bias_Input =
    8.1480
    8.1630
    8.1535
%Melakukansimulasi
>>Ht=sim(net,P);
>> H=vec2ind(Ht)
H =
     1     1     1     2     2     2     3     3     3
%Melakukansimulasi
>> A=[-5 3 9 -2 4; 4 2 0 2 -2];
>>Yt=sim(net,A);
>> Y=vec2ind(Yt)
Y =
     1     2     3     1     1
%Menggambargrafik
>> r=rand(1,JumlahKlas);
>> g=rand(1,JumlahKlas);
>> b=rand(1,JumlahKlas);
>>for i=1:size(P,2),
for j=1:JumlahKlas,
if H(i)== j,
plot (P(1,i),P(2,i),'marker','*','color',[r(j) g(j) b(j)]);
hold on;
plot(net.IW{1,1} (j,1),net.IW{1,1}(j,2),'marker','o','color',[r(j) g(j) b(j)]);
text (net.IW {1,1}(j,1)+.1,net.IW{1,1}(j,2)+.1,int2str(j));
end;
end;
end;
>>for i=1:size(A,2),
for j=1:JumlahKlas,
if Y(i)==j,
plot (A(1,i),A(2,i),'marker','+','color',[r(j) g(j) b(j)]);
end;
end;
end;
>>title('HasilPelatihandenganAlgoritma KOHONEN (*:data training)(o:bobot)(+:data testing)');
>>xlabel('Var-1');ylabel('Var-2');
>> r=rand(1,JumlahKlas);
>> g=rand(1,JumlahKlas);
>> b=rand(1,JumlahKlas);
>>for i=1:size(P,2),
for j=1:JumlahKlas,
if H(i)== j,
plot (P(1,i),P(2,i),'marker','*','color',[r(j) g(j) b(j)]);
hold on;
plot(net.IW{1,1} (j,1),net.IW{1,1}(j,2),'marker','o','color',[r(j) g(j) b(j)]);
text (net.IW {1,1}(j,1)+.1,net.IW{1,1}(j,2)+.1,int2str(j));
end;
end;
end;
>>for i=1:size(A,2),
for j=1:JumlahKlas,
if Y(i)==j,
plot (A(1,i),A(2,i),'marker','+','color',[r(j) g(j) b(j)]);
end;
end;
end;
>>title('HasilPelatihandenganAlgoritma KOHONEN (*:data training)(o:bobot)(+:data testing)');
>>xlabel('Var-1');ylabel('Var-2');
Hasil: