18 Januari 2021

Jaringan Syaraf Tiruan untuk Identifikasi Wajah

 Tugas UAS JARINGAN SYARAF TIRUAN

NAMA : SEPTIAN DWI PRATAMA

NIM : 201080200086

S1 INFORMATIKA UMSIDA


Berikut ini merupakan tugas Ujian Akhir Semester Jaringan Syaraf Tiruan menggunakan algoritma Backpropagation sederhana untuk identifikasi wajah seseorang berdasarkan gambar grayscale ukuran 32 x 32 piksel terdapat 5 objek wajah dengan masing-masing 10 gambar. data diambil dari yale face database



Data Wajah


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




karena data piksel berupa angka dari 0 sampai dengan 255 maka angka tersebut dikonversi dan tertera pada gambar di atas dengan jumlah kolom sebanyak 50 kolom (5 orang x 10 gambar wajah) dan 1024 baris (32x32 piksel), data-data terkait aplikasi ini telah saya siapkan pada workspace matlab dan dapat di download disini.


Sedangkan contoh data untuk pengujian adalah sbb:



data piksel terdapat 1024 baris dan datata juga telah disiapkan pada workspace pada link di atas.

2. Langkah selanjutnya yaitu menuliskan coding pada script matlab seperti berikut ini
2.1 Coding untuk menuliskan data latih dan target latih pada matlab.
        karena data latih sudah disiapkan pada workspace, maka script adalah sebagai berikut:

>> % Mempersiapkan data latih dan target latih
data_latih = face;
target_latih = label;
[~,N] = size(data_latih);

2.2 Selanjutnya membuat coding Jaringan Syaraf Tiruan Backpropagation dengan arsitektur 1024-2-1 dan inisialisasi bobot awal secara acak. Pada pemrograman ini digunakan fungsi aktivasi sigmoid biner (logsig) pada hidden layer dan fungsi aktivasi linear (purelin) pada layer keluaran. Sedangkan fungsi pelatihan menggunakan metode gradien descent.

>>% Pembuatan JST
net = newff(minmax(data_latih),[2 1],{'logsig','purelin'},'traingdx');
net.IW{1,1} = [init0;init1];
net.LW{2,1} = [-2.40,-2.67];
net.b{1,1} = [9.38;-2.7];
net.b{2,1} = 5.93;

2.3 Membuat coding untuk memberikan parameter-parameter yang mempengaruhi proses pelatihan jst seperti parameter jumlah epoch, target error, learning rate, momentum.

>>% Memberikan nilai untuk mempengaruhi proses pelatihan
net.performFcn = 'mse';
net.trainParam.goal = 0,01;
net.trainParam.show = 5120;
net.trainParam.epochs = 10000;
net.trainParam.mc = 0.95;
net.trainParam.lr = 0.1;

2.4 Membuat coding untuk melakukan pelatihan jaringan

>>% Proses training
[net_keluaran,tr,Y,E] = train(net,data_latih,target_latih);

sehingga muncul tampilan seperti berikut:





Pada tampilan tersebut ditunjukkan bahwa target error (mse) tercapai pada epoch ke 348. Kita bisa melihat error (mse) yang dihasilkan pada setiap epoch dengan meng-klik tombol ‘performance’ sehingga muncul tampilan seperti berikut:




Sedangkan koefisien korelasi hasil pelatihan dapat dilihat dengan meng-klik tombol ‘regression’ sehingga diperoleh:




Nilai koefisien korelasi sebesar 0.99777 menunjukkan bahwa akurasi hasil proses pelatihan sangat baik.

2.5 Untuk melihat nilai-nilai hasil pelatihan, kita dapat menuliskan coding sbb:

>>% Hasil setelah pelatihan
bobot_hidden = net_keluaran.IW{1,1};
bobot_keluaran = net_keluaran.LW{2,1};
bias_hidden = net_keluaran.b{1,1};
bias_keluaran = net_keluaran.b{2,1};
jumlah_iterasi = tr.num_epochs;
nilai_keluaran = Y;
nilai_error = E;
error_MSE = (1/N)*sum(nilai_error.^2);

3. Langkah terakhir yaitu proses pengujian jaringan
3.1 Data uji telah disajikan pada workspace yang telah di download tadi. dan dapat ditulis coding sebagai berikut

>>% Performa jaringan
data_uji = tes
hasil_uji = round(sim(net_keluaran,data_uji))

sehingga diperoleh hasil pada command window seperti berikut ini:



Sumber : 
1. https://pemrogramanmatlab.com/2015/08/24/jaringan-syaraf-tiruan-untuk-identifikasi-wajah/
2. http://www.cad.zju.edu.cn/home/dengcai/Data/FaceData.html

Tidak ada komentar: