CATATULANG

Materi Kuliah Teknik Informatika

Cara Mengerjakan Soal UAS Neural Network

Soal :

Buatlah implementasi algoritma pembelajaran (supervised/unsupervised) dilanjutkan
pengenalan dengan mencari objek untuk diselesaikan dengan NN som / lvq, serta ujilah
unjukkerjannya, dengan ketentuan sebagai berikut :
1. Objek dapat diambil dari salah satu data multimedia (teks/image/audio/video).
2. Pilihlah salah satu jenis learning (supervised/unsupervised) yang sesuai dengan objek
yang saudara ambil dan berikan alasannya !
3. Buatlah pengujian unjukkerja NN dalam bentuk tabel !
4. Nyatakanlah kesimpulan dari pengujian unjukkerja NN yang saudara lakukan !
Catatan : Judul dan objek tidak boleh sama, bila ada yang sama maka mahasiswa yang
demo ke dua dan seterunya harus mengganti judul dan objek diberi waktu 1 x 24 jam.

Jawaban :

Step 1 : Cari Data Multimedia
Step 1 adalah step yang mungkin membingungkan bagi mahasiswa yang belum mengambil mata kuliah multimedia, karna di sini kita akan menggunakan script dan citra dari tugas yang di kerjakan di mata kuliah multimedia. Namun di sini sekilas saya jelaskan cara mendapatkan data multimedia tersebut. Saya mencontohkan data multimedia image, untuk contoh kali ini sample yang saya gunakan adalah citra cat kayu dan cat tembok (setiap orang berbeda-beda objeknya)

kayu1.PNG


tembok1.PNG

Buatlah masing-masing 10 gambar untuk citra kayu dan citra tembok (foto masing2 10 kali, ukuran pixel harus sama semua)

*penamaan file
kayu1.PNG, kayu2.PNG, kayu3.PNG, kayu4.PNG, kayu5.PNG, kayu6.PNG, kayu7.PNG, kayu8.PNG, kayu9.PNG, kayu10.PNG,tembok1.PNG, tembok2.PNG, tembok3.PNG, tembok4.PNG, tembok5.PNG, tembok6.PNG, tembok7.PNG, tembok8.PNG, tembok9.PNG, tembok10.PNG.


buat data latih dengan script berikut :
clear all;
clc;

%load data
data= imread ('namafile.PNG');

%Preprosesing
R=data(:,:,1);
G=data(:,:,2);
B=data(:,:,3);

Y=0.3333*R+0.3333*B+0.3333*G;
[m,n]=size(Y);

%ekstraksi ciri

for i=1:256
    H(i)=0;
end,

%Histogram

for i=1:m,
    for j=1:n,
        X=Y(i,j);
        H(X+1)=H(X+1)+1;
    end,
end,
H
jumlah=0;
jum=0;
for i=1:256
    jumlah=jumlah+(i*H(i))
    jum=jum+H(i)
end,
jumlah
jum

rata2=jumlah/jum
jums=0;
for i=1:256
    jums=jums+(H(i)-rata2)^2;
end,

 sd=sqrt(jums/jum)

 %featur vektor
 fv=[rata2 sd]
 
 save data_latih.txt fv -ascii -append;


Ganti namafile.PNG satu persatu sesuai nama file citra yang tadi sudah di buat. Script di atas akan memasukan data latih ke file data_latih.txt

Setelah kita memiliki data latih, buat juga data uji dengan script berikut yang akan men save di notepad dengan nama data_uji.txt
clear all;
clc;

%load data
data = imread(namafile.PG);

%preprocessing

R=data(:,:,1);
G=data(:,:,2);
B=data(:,:,3);

%greyscale
Y=0.3333*R+0.3333*G+0.3333*B;
[m,n]=size(Y);
%histogram (extraciri)

for i=1:256
    H(i)=0;
end,

for i=1:m,
    for j=1:n,
        X=Y(i,j);
        H(X+1)=H(X+1)+1; %histogram
    end,
end,

jumlah=0;
jum=0;
for i=1:256
    jumlah=jumlah+(i*H(i));
    jum=jum+H(i);
end,
   
%plot(H);

rata2=0;
rata2=jumlah/jum;
rata2;

jums=0;
for i=1:256,
    jums=jums+(H(i)-rata2)^2; %varian
end,

sd=0;
sd=sqrt(jums/jum) %standart deviasi = akar dari varian

fv=[rata2 sd]


save data_uji.txt fv -ascii -append;

Step 2 : Menerapkan Pada LVQ

Disini kita mahasiswa yang baru ambil matkul NN bisa beraksi! data multimedia yang kita dapat kita olah dengan salah 1 algoritma, boleh LVQ atau SOM. Tapi di sini saya memberikan contoh LVQ. Masukan data multimedia tadi ke script LVQ, untuk running yang pertama, setting alfanya 0.1 dan decalfanya 0.1 sehingga menjadi seperti di bawah ini :
clear all;
clc;

%input
A=[1.0268340e+002  6.2430867e+001;
  1.0605637e+002  4.4035468e+001;
  1.0420857e+002  4.7530232e+001;
  1.0477787e+002  4.2006328e+001;
  9.8396967e+001  4.9574582e+001;
  9.9320000e+001  5.8655016e+001;
  1.0448180e+002  4.3705126e+001;
  1.0086790e+002  5.5151028e+001;
  9.9524167e+001  5.4051330e+001;
  1.0956017e+002  5.4150250e+001;
  9.7954500e+001  4.2211307e+001;
  9.0529500e+001  4.3503046e+001;
  1.0171353e+002  3.9645043e+001;
  8.3644967e+001  5.1684857e+001;
  9.1365967e+001  4.4345647e+001;
  8.6834533e+001  4.3218842e+001;
  8.4182567e+001  4.8344563e+001;
  9.4531500e+001  4.6269587e+001;
  1.1036353e+002  5.0253160e+001;
  9.5603800e+001  4.9139521e+001]
[m n]=size(A)
%target
     B=[1;
        1;
        1;
        1;
        1;
        1;
        1;
        1;
        1;
        1;
        2;
        2;
        2;
        2;
        2;
        2;
        2;
        2;
        2;
        2]
  %bobot
  W=[    9.9320000e+001  5.8655016e+001;
         8.3644967e+001  5.1684857e+001;]
 [o p]=size(W);
%Parameter Pelatihan
alfa=0.1;
decalfa=0.1;
minalfa=0.0000001;
maxiterasi=1000;
iterasi=0;

%Jarak vektor input dengan masing - masing referensi
while (iterasi<=maxiterasi) && (alfa>=minalfa)
    iterasi=iterasi+1;
for i=1:m
    for c=1:o
        jarak(c)=0;
        for j=1:n
            jarak(c)=jarak(c)+(A(i,j)-W(c,j))^2;
        end,
        jarak(c)=sqrt(jarak(c));
        [jarakmin idx]=min(jarak);
    end,
    if(idx==B(i))
        W(idx,:)=W(idx,:)+alfa*(A(i,j)-W(idx,:));
    else
        W(idx,:)=W(idx,:)-alfa*(A(i,j)-W(idx,:));
    end,
end,
alfa=alfa-alfa*decalfa;
disp(strcat('iterasi= ',int2str(iterasi),'  alfa = ',num2str(alfa)));
end,
W
A=[1.0268340e+002  6.2430867e+001;
  1.0605637e+002  4.4035468e+001;
  1.0420857e+002  4.7530232e+001;
  1.0477787e+002  4.2006328e+001;
  9.8396967e+001  4.9574582e+001;
  9.9320000e+001  5.8655016e+001;
  1.0448180e+002  4.3705126e+001;
  1.0086790e+002  5.5151028e+001;
  9.9524167e+001  5.4051330e+001;
  1.0956017e+002  5.4150250e+001;
  8.1367900e+001  5.3458141e+001;
  9.2078700e+001  5.3664248e+001;
  7.5791833e+001  5.2643298e+001;
  7.8532633e+001  5.4369858e+001;
  6.8795400e+001  5.7681692e+001;
  9.2674333e+001  5.0284997e+001;
  8.8861667e+001  4.6362796e+001;
  7.7132033e+001  5.2787523e+001;
  7.9763233e+001  5.5667793e+001;
  8.2584033e+001  5.4447192e+001]


 [a b]=size(A);
  H=[];
  Djarak=[];
  for i=1:a,
      for z=1:o,
          d(z)=0;
          for j=1:b,
              d(z)=d(z)+ (A(i,j)-W(z,j))^2;
          end,
          d(z)=sqrt(d(z));
          [jarak idx]=min(d);
      end,
      H=[H idx];
      Djarak=[Djarak jarak];
  end,
  H

Setelah di run akan muncul seperti berikut (hasil masing-masing run berbeda untuk H nya, yang saya seperti di bawah ini) :


Perhatikan, yang di beri kotak hijau adalah kelas 1, dan yang di beri kotak ungu adalah kelas 2. Di kelas 1 hitung ada berapa 1, begitupula di kelas 2 hitung ada berapa 2. Dari screen shoot yang saya berikan di kelas satu ada 10 angka 1, sedangkan di kelas 2 ada 3 angka 2. Sehingga untuk alfa 0.1 dan decalfa 0.1 kelas 1 nya ada 100% dan kelas 2 nya ada 30%. Jangan lupa catat juga iterasinya berapa (seperti yang saya berikan kotak merah pada screen shoot).

Ubah alfa dan decalfanya sehingga tabelnya terpenuhi semua

Untuk Kumulatif di isi dengan rumus :
Sehingga untuk alfa 0.1 dan decalfa 0.1 kumulatifnya : (100+30)/2 = 65.

Step 3 : Membuat Kesimpulan
Untuk kesimpulan pak dosen sudah memberikan format pokoknya, namun yang paling penting untnuk di perhatikan adalah kita mencari iterasi terkecil. Setelah semua tabel terisi, carilah iterasi terkecil, jika sudah kamu bisa membuat kesimpulan dengan mengisi format kesimpulan yang di telah di berikan seperti berikut ini :

Dari tabel uji di dapat hasil terbaik di decalfa .... dan alfa .... dengan iterasi terkecil yakni .... dengan hasil komulatif .....% Didapat hasil pada kelas 1 (nama objek 1....%,  kelas 2 (nama objek 2....%
Bagikan :
+
Previous
Next Post »
1 Komentar untuk "Cara Mengerjakan Soal UAS Neural Network"

 
Copyright © 2015 CATATULANG - All Rights Reserved
Template By Kunci Dunia
Back To Top