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
Berikut ini merupakan contoh data untuk proses pelatihan
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