UAS






APLIKASI JARINGAN SYARAF TIRUAN UNTUK PENGENALAN POLA GAMBAR




Memahami contoh penerapan jaringan syaraf tiruan dalam kehidupan sehari hari.


Jaringan syaraf tiruan merupakan suatu algoritma klasifikasi yang prinsip kerjanya meniru jaringan syaraf manusia. Algoritma ini memetakan data input menuju targer pada layer output melalui neuron neuron pada layer yang tersembunyi.

Jaringan saraf tiruan dibentuk sebagai generalisasi model matematika dari jaringan saraf biologis manusia, dengan asumsi bahwa:
·                     Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron).
·                     Sinyal dikirimkan di antara neuron-neuron melalui penghubung-penghubung.
·                     Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal.
Salah satu contoh dari aplikasi jaringan syaraf tiruan adalah untuk identifikasi wajah berdasarkan ciri mata, hidung, mulut, dan telinga.


1. Langkah pertama yaitu mempersiapkan data untuk proses pelatihan dan pengujian
Berikut ini merupakan contoh data untuk proses pelatihan

data untuk pengujian :


2. Mengekstrak ciri masing-masing bentuk berdasarkan parameter eccentricity dan metric.

clc;clear;close all;

image_folder = 'Pattern Recognition\data latih';
filenames = dir(fullfile(image_folder, '*.gif'));
total_images = numel(filenames);

for n = 1:total_images
    full_name= fullfile(image_folder, filenames(n).name);
    our_images = logical(imread(full_name));
    our_images = bwconvhull(our_images,'objects');
    stats = regionprops(our_images,'Area','Perimeter','Eccentricity');
    area(n) = stats.Area;
    perimeter(n) = stats.Perimeter;
    metric(n) = 4*pi*area(n)/(perimeter(n)^2);
    eccentricity(n) = stats.Eccentricity;
    input = [metric;eccentricity];
    target = zeros(1,45);
    target(:,1:15) = 3;
    target(:,16:30) = 4;
    target(:,31:45) = 5;

3. Nilai metric dan eccentricity yang telah diekstrak kemudian dijadikan sebagai data masukan pada jaringan syaraf tiruan backpropagation. Sedangkan pada data target digunakan nilai 3 untuk kelas segi-3, nilai 4 untuk kelas segi-4, dan nilai 5 untuk kelas segi-5. Langkah selanjutnya yaitu membangun jaringan dengan arsitektur 2-10-5-1 yang artinya memiliki 2 data masukan yaitu metric dan eccentricity, memiliki 2 layer tersembunyi (hidden layer) di mana pada hidden layer pertama berisi 10 neuron dan pada hidden layer kedua berisi 5 neuron. Dan memiliki 1 data keluaran yaitu jenis bentuk (segi-3, segi-4, atau segi-5).

net = newff(input,target,[10 5],{'logsig','logsig'},'trainlm');
net.trainParam.epochs = 100;
net.trainParam.goal = 1e-5;
net = train(net,input,target);
output = round(sim(net,input))
save net.mat net         

4. Dihasilkan tampilan pelatihan jaringan seperti gambar berikut




Nilai Keluaran pada proses pelatihan :




Perbandingan antara nilai keluaran JST pada proses pelatihan dengan data target latih ditunjukkan pada tabel di berikut:



Pada tabel di atas, terdapat dua data yang diklasifikasikan secara salah (tidak sesuai dengan target) yaitu data ke-21 dan data ke-28. Sehingga akurasi yang dihasilkan JST pada proses pelatihan adalah (43/45) x 100% = 95,56%. Nilai akurasi tersebut menunjukkan bahwa JST cukup baik dalam mengklasifikasikan pola bentuk objek dari citra yang diberikan.


5. Pemograman untuk proses pengujian

clc;clear;close all;

image_folder = 'Pattern Recognition\data uji';
filenames = dir(fullfile(image_folder, '*.gif'));
total_images = numel(filenames);
for n = 1:total_images
full_name= fullfile(image_folder, filenames(n).name);
our_images = logical(imread(full_name));
our_images = bwconvhull(our_images,'objects');
stats = regionprops(our_images,'Area','Perimeter','Eccentricity');
area(n) = stats.Area;
perimeter(n) = stats.Perimeter;
metric(n) = (4*pi*area(n))./(perimeter(n).^2);
eccentricity(n) = stats.Eccentricity;
input = [metric;eccentricity];
end

load net
output = round(sim(net,input))


6. Nilai Keluaran pada proses pengujian :



Perbandingan antara nilai kelaran JST pada proses pengujian dengan data target ditunjukkan pada tabel di bawah ini



Berdasarkan data pada tabel tersebut terdapat satu data yang diklasifikasikan ke dalam kelas yang salah (tidak sesuai dengan target) yaitu data ke-11. Sehingga akurasi yang dihasilkan JST dalam proses pengujian adalah (14/15) x 100% = 93,33%. Dengan demikian, dapat dikatakan bahwa JST dapat mengklasifikasikan pola bentuk objek dalam citra dengan baik.

4.LINK DOWNLOAD [KEMBALI]

Listing Program [DISINI]


Data Latih [DISINI]


Data Uji [DISINI]



Tidak ada komentar:

Posting Komentar