Oleh :
Neuron biologi merupakan sistem yang “fault tolerant” dalam 2 hal. Pertama,
manusia dapat mengenali sinyal input yang agak berbeda dari yang pernah kita terima
sebelumnya. Sebagai contoh, manusia sering dapat mengenali seseorang yang
wajahnya pernah dilihat dari foto atau dapat mengenali seseorang yang wajahnya
agak berbeda karena sudah lama tidak menjumpainya. Kedua, tetap mampu bekerja
dengan baik. Jika sebuah neuron rusak, neuron lain dapat dilatih untuk menggantikan
fungsi neuron yang rusak tersebut (Siang, 2004). Hal yang ingin dicapai dengan
melatih JST adalah untuk mencapai keseimbangan antara kemampuan memorisasi
dan generalisasi. Yang dimaksud kemampuan memorisasi adalah kemampuan JST
untuk mengambil kembali secara sempurna sebuah pola yang telah dipelajari.
Kemampuan generalisasi adalah kemampuan JST untuk menghasilkan respon yang
bisa diterima terhadap polapola yang sebelumnya telah dipelajari. Hal ini sangat
bermanfaat bila pada suatu saat ke dalam JST itu di inputkan informasi baru yang
belum pernah dipelajari, maka JST itu masih akan tetap dapat memberikan tanggapan
yang baik, memberikan keluaran yang mendekati (Puspaningrum, 2006). Jaringan
syaraf tiruan menyerupai otak manusia dalam 2 hal, yaitu sebagai berikut.
1. Pengetahuan diperoleh jaringan melalui proses belajar.
2. Kekuatan hubungan antar sel syaraf (neuron) yang dikenal sebagai bobot-
bobot sinaptik digunakan untuk menyimpan pengetahuan.
Jaringan syaraf tiruan juga ditentukan oleh 3 hal (Siang, 2004), yaitu sebagai
berikut.
1. Pola hubungan antar neuron (disebut arsitektur jaringan).
2. Metode untuk menentukan bobot penghubung (disebut metode
training/learning).
3. Fungsi aktivasi, yaitu fungsi yang digunakan untuk menentukan keluaran
suatu neuron.
Fungsi lain yang sering dipakai adalah fungsi sigmoid bipolar yang bentuk
fungsinya mirip dengan fungsi sigmoid biner, tapi dengan range (-1, 1).
Fungsi sigmoid memiliki nilai maksimum = 1. Maka, pola yang targetnya > 1,
pola masukan dan keluaran harus terlebih dahulu ditransformasi sehingga semua
polanya memiliki range yang sama seperti fungsi sigmoid yang dipakai. Alternatif
lain adalah menggunakan fungsi aktivasi sigmoid hanya pada layar yang bukan layar
keluaran. Pada layar keluaran, fungsi aktivasi yang dipakai adalah fungsi identitas :
f(x) = x.
Langkah 2
Untuk setiap pasang data pelatihan, lakukan langkah 3 sampai dengan 8.
Langkah 4
Hitung semua keluaran di unit tersembunyi (Zj):
Langkah 5
Hitung semua jaringan di unit keluaran (yk)
k merupakan unit kesalahan yang akan dipakai dalam perubahan bobot layer
dibawahnya (langkah 7)
Hitung suku perubahan bobot Wkj dengan laju perubahan α
k = 1,2,3,...,m ; j = 0,1,2,...p
Langkah 7
Hitung factor unit tersembunyi berdasarkan kesalahan di setiap unit tersembunyi z j
(j=1,2,3,…,p)
Gambar 1.7 merupakan tampilan data untuk pelatihan dan juga pengujian,
dimana pada proses pelatihan jaringan digunakan 60 data latih yang terdiri dari 15
data pola mata, 15 data pola hidung, 15 data pola mulut dan 15 data pola telinga.
Sedangkan pada proses pengujian digunakan 20 data uji yang terdiri dari 5 data pola
mata, 5 data pola hidung, 5 data pola mulut dan 5 data pola telinga. Target dari data
tersebut, yaitu berupa nama orang, diantaranya Adi dengan kode 1, Budi kode 2,
Candra kode 3, Dedi kode 4 dan Erik kode 5.
Langkah berikutnya, yaitu menyusun data latih beserta target latih sesuai
dengan format pemrograman JST pada pemrograman Matlab. Agar memudahkan
pemrograman, data latih disusun sehingga menjadi matriks berukuran 4 x 15 dan
target latih disusun menjadi matriks berukuran 1 x 15 seperti pada Gambar 1.8.
Gambar 1.8 Matriks Data Latih dan Target Latih
Target latih yang disusun menjadi matriks 1 x 15, merupakan kode dari setiap
target (nama orang) yang telah ditentukan. Dimana, kode 1 adalah Adi, kode 2 adalah
Budi, kode 3 adalah Candra, kode 4 adalah Dedi dan kode 5 adalah Erik.
Langkah selanjutnya adalah menuliskan kode program ke dalam bentuk
bahasa pemrograman pada Matlab. Kode Program penulisan data latih dan target latih
adalah sebagai berikut.
% Mempersiapkan data latih dan target latih
data_latih =
[0.35,0.59,0.19,0.36,0.58,0.40,0.61,0.20,0.38,0.57,0.33,0.55,0.18,0.
38,0.56;...
0.47,0.11,0.89,0.90,0.45,0.45,0.11,0.87,0.88,0.46,0.45,0.14,0.87,0.8
9,0.47;...
0.88,0.90,0.54,0.39,0.80,0.80,0.90,0.56,0.35,0.82,0.85,0.90,0.55,0.3
7,0.83;...
0.34,0.56,0.38,0.82,0.91,0.35,0.55,0.41,0.85,0.92,0.37,0.57,0.40,0.8
5,0.91];
target_latih = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5];
[~,N] = size(data_latih);
Kode Program 1.1 Data Latih dan Target Latih
Kode Program 1.1 merupakan penulisan matriks data latih dan target latih
pada pemrograman Matlab. Matriks data latih disimpan dalam variabel data_latih,
sedangkan target latih disimpan pada variabel target_latih.
1.2.2 Pembentukan JST Backpropagation
Proses pembangunan Jaringan Saraf Tiruan (JST) Backpropagation pada
Matlab menggunakan fungsi yang telah disediakan, yaitu newff. Berikut ini
merupakan rincian kode program yang digunakan untuk membangun jaringan
backpropagation.
% Pembangunan Jaringan Backpropagation
net =
newff(minmax(data_latih),[2,1],{logsig','purelin'},'traingdx');
net.IW{1,1} = [-7.62,0.97,-2.60,-9.55;-5.83,-3.41,3.08,-4.44];
net.LW{2,1} = [-2.40,-2.67];
net.b{1,1} = [9.38;-2.7];
net.b{2,1} = 5.93;
Kode Program 1.2 Pembentukan JST Backpropagation
Kode Program 1.4 merupakan proses training atau pelatihan JST pada
pemrograman Matlab, dimana dengan menggunakan fungsi train disertai dengan
parameter net, data_latih dan target_latih. Program akan menampilkan hasil
dari proses pelatihan ini, yaitu berupa bobot hidden layer dan bobot keluaran yang
baru, bias hidden layer dan keluaran yang baru, jumlah iterasi yang dihasilkan, nilai
keluaran, nilai kesalahan (error) dan juga nilai MSE.
Gambar 1.10 Neural Network Training
Gambar 1.11 merupakan tampilan untuk melihat error (mse) yang dihasilkan
pada setiap epoch, dimana dengan meng-klik tombol ‘performance’ pada halaman
Neural Network Training (Gambar 1.10). Sedangkan koefisien korelasi hasil
pelatihan dapat dilihat dengan meng-klik tombol ‘regression’ pada Neural Network
Training yang ditunjukan pada Gambar 1.10.
Gambar 1.12 Neural Network Training Regression
Kode Program 1.5 merupakan kode program yang digunakan untuk proses
pengujian JST Backpropagation yang telah dilatih terlebih dahulu. Data uji yang telah
diubah menjadi matriks berukuran 5 x 4 dimasukkan ke dalam variabel data_uji.
Kemudian, untuk menghitung hasil pengujian, maka digunakan fungsi sim dengan
parameter net_keluaran dan data_uji. Dimana, pada rumus tersebut dilengkapi
dengan fungsi round, untuk membulatkan hasil dari pengujian tersebut.
1.4 Kesimpulan
Implementasi Jaringan Saraf Tiruan Backpropagation untuk Identifikasi Pola
Wajah Manusia dapat dibuat dengan menggunakan program Matlab R2016a. Proses
pelatihan jaringan menggunakan 60 data latih yang terdiri dari 15 data pola mata, 15
data pola hidung, 15 data pola mulut dan 15 data pola telinga. Sedangkan pada proses
pengujian digunakan 20 data uji yang terdiri dari 5 data pola mata, 5 data pola
hidung, 5 data pola mulut dan 5 data pola telinga.
Arsitektur dari jaringan backpropagation yang dibuat adalah 4-2-1, yang
artinya terdapat 4 unit masukan, 2 unit layar tersembunyi (hidden layer) dan 1 unit
keluaran. Pada pemrograman ini digunakan fungsi aktivasi sigmoid biner pada hidden
layer dan fungsi linear (purelin) pada layer keluaran. Sedangkan fungsi pelatihan
(traingdx) menggunakan metode gradien descent.
Hasil dari pelatihan JST Backpropagation yang telah dibuat menunjukkan
bahwa target error (MSE) tercapai pada epoch ke-506 dengan hasil pengujian 100%
sesuai dengan target uji yang telah diberikan sebelumnya. Sehingga, dapat
disimpulkan jaringan ini dapat mengidentifikasi/ membedakan pola wajah seseorang
berdasarkan ciri mata, hidung, mulut, dan telinga dengan baik.
DAFTAR PUSTAKA