Monday, May 31, 2010

Perancangan Menggunakan Fuzzy Logic

Tugas Tgl Tugas Tgl Selesai
Tugas 7 29 April 2010 31 Mei 2010

Nama NPM TUGAS
Dwi Ferdiana
0415031047
Mencari bahan, memasukan ke blog
Anisa Ulya D
0855031005
Mencari bahan, memasukan ke blog
Yuly Indriani
0815031097
Mencari bahan, memasukan ke blog
Novia Utami P
0815031077
Mencari bahan, memasukan ke blog




Perancangan Fuzzy Logic Control untuk Aplikasi Penentuan Jumlah Produksi Kursi Jati

1. Spesifikasi Sistem yang akan di rancang
Sistem yang akan dirancang adalah sistem yang akan digunakan untuk memperkirakan jumlah produksi kursi jati menggunakan logika fuzzy dengan memperhatikan faktor jumlah permintaan dan jumlah persediaan.
Produk yang diteliti adalah kursi jati. Faktor–faktor yang mempengaruhi penentuan jumlah produksi adalah jumlah permintaan dan jumlah persediaan.

2. masukan dan keluarannya
Inputnya berupa jumlah permintaan pasar dan persediaan barang, sedangkan outputnya adalah jumlah produksi kursi jati.

3. Proses Fuzzification







4. Membership Fungsinya







5. Rule base



6. Proses Defuzzification



7. Kesimpulan
Dari perancangan yang dilakukan dengan menggunakan fuzzy logic dapat diketahui bahwa hal yang terpenting pada perancangan yaitu pada tahap rule based, karena output yang didapat adalah sesuai dengan rule yang telah dibuat sebelumnya.

Sunday, May 30, 2010

Program JST Pengenalan Pola

Tugas Tgl Tugas Tgl Selesai
Tugas 4 22 April 2010 30 Mei 2010

Nama NPM TUGAS
Dwi Ferdiana
0415031047
Mencari bahan, memasukan ke blog
Anisa Ulya D
0855031005
Mencari bahan, memasukan ke blog
Yuly Indriani
0815031097
Mencari bahan, memasukan ke blog
Novia Utami P
0815031077
Mencari bahan, memasukan ke blog


clc;
clear all;


disp(' PROGRAM PENGENAL POLA');
disp(' LINGKARAN, PERSEGI, DAN SEGITIGA');
disp('---------------------------------------------');
disp(' ');
disp('Kelompok 5-A');
disp(' ');
disp('1.Dwi Ferdiana');
disp('2.Annisa Ulya Darajat');
disp('3.Yuli Indriani');
disp('4.Novia Utami Putri');
disp('Masukan input pola dalam digit 1 atau 0 dalam bentuk matrix');
disp('Contoh :');
disp('X = [1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1]');
disp('sehingga dalam bentuk matrix 5 x 5 adalah :');
disp('[1 1 1 1 1');
disp(' 1 0 0 0 1');
disp(' 1 0 0 0 1');
disp(' 1 0 0 0 1');
disp(' 1 1 1 1 1]');
disp(' ');
disp(' ');
disp('Silahkan Masukan Pola :');
X = input ('X = ');

w = [0.1 -0.5 0.3 0.4 -0.2;
0.3 -0.1 -0.4 -0.4 -0.2;
0.3 -0.1 -0.2 0.4 0.5;
0.4 0 0.2 0.4 0;
0.3 -0.2 -0.3 -0.4 0.1;
0.3 0 0.3 0 -0.3;
-0.3 -0.2 0.2 -0.5 -0.4;
0.1 -0.1 -0.2 -0.2 0.4;
-0.7 -0.5 0.5 0 0.1;
-0.8 -0.9 -0.5 -0.5 -0.1;
-0.4 -0.1 -0.1 -0.3 -0.4;
-0.3 -0.4 -0.4 0.4 0.2;
1 0.5 0.5 0.5 0.5;
-0.5 0.2 0.2 -0.1 0.2;
-0.3 -0.3 -0.4 0.3 0.5;
0.5 0.5 0.1 0.1 -0.4;
-0.5 0.5 0 -0.2 0;
-0.1 -0.4 0 0 0;
-0.2 -0.3 0.1 0.2 0.2;
0.1 -0.3 -0.3 -0.1 -0.3;
0.5 0.3 -0.3 0.1 -0.5;
0.1 -0.1 0.4 -0.5 0.4;
0.2 0 0.1 0.2 -0.4;
-0.2 0 0.4 -0.3 -0.5;
-0.2 0.3 0.2 0.1 -0.2];

h = X*w;

hA = mat2cell(h,[1],[1 1 1 1 1]);

HA = cell2mat(hA(1));
HB = cell2mat(hA(2));
HC = cell2mat(hA(3));
HD = cell2mat(hA(4));
HE = cell2mat(hA(5));

H1 = sigmf (HA,[1 0]);
H2 = sigmf (HB,[1 0]);
H3 = sigmf (HC,[1 0]);
H4 = sigmf (HD,[1 0]);
H5 = sigmf (HE,[1 0]);

fH = [H1 H2 H3 H4 H5];

v =[0.4 0.5 0.7 0.8 0.5;
0.5 0.1 -0.5 0.5 0.7;
0.4 -0.3 -0.3 -0.4 -0.4;
-0.4 -0.3 -0.1 -0.2 -0.9;
0.2 0.5 -0.2 0.6 -0.1];

V = fH*v;

i = mat2cell(V,[1],[1 1 1 1 1]);

VA = cell2mat(i(1));
VB = cell2mat(i(2));
VC = cell2mat(i(3));
VD = cell2mat(i(4));
VE = cell2mat(i(5));

V1 = sigmf (VA, [1 0]);
V2 = sigmf (VB, [1 0]);
V3 = sigmf (VC, [1 0]);
V4 = sigmf (VD, [1 0]);
V5 = sigmf (VE, [1 0]);

fV = [V1 V2 V3 V4 V5];
u = [0.3;0.2;0.15;0.1;-0.5];

U = fV*u*1000;
Y = int32(U);
disp ('Y :');
disp (Y);

if Y == 190
disp('Bentuk pola anda berupa persegi');
elseif Y ==193
disp('Bentuk pola anda berupa persegi');
elseif Y ==198
disp('Bentuk pola anda berupa persegi');
elseif Y ==234
disp('Bentuk pola anda berupa persegi');
elseif Y ==173
disp('Bentuk pola anda berupa persegi');
elseif Y ==205
disp('Bentuk pola anda berupa persegi');
elseif Y ==189
disp('Bentuk pola anda berupa lingkaran');
elseif Y == 227
disp('Bentuk pola anda berupa segitiga');
elseif Y == 196
disp('Bentuk pola anda berupa segitiga');
elseif Y == 195
disp('Bentuk pola anda berupa segitiga');
end;

Hasilnya berupa:

Friday, May 28, 2010

Makalah Fuzzy Logic

Tugas Tgl Tugas Tgl Selesai
Tugas 8 29 April 2010 28 Mei 2010

Nama NPM TUGAS
Dwi Ferdiana
0415031047
Mencari bahan, memasukan ke blog
Anisa Ulya D
0855031005
Mencari bahan, memasukan ke blog
Yuly Indriani
0815031097
Mencari bahan, memasukan ke blog
Novia Utami P
0815031077
Mencari bahan, memasukan ke blog



PENENTUAN JUMLAH PRODUKSI DENGAN APLIKASI METODE FUZZY – MAMDANI


ABSTRAK
Permasalahan yang timbul di dunia ini seringkali mengandung ketidakpastian, logika fuzzy merupakan salah satu metode untuk melakukan analisis sistem yang mengandung ketidakpastian. Pada penelitian ini digunakan metode mamdani atau sering juga dikenal dengan metode Min – Max. Perancangan sistem untuk mendapatkan output dilakukan dalam tahap – tahap (a) pembentukan himpunan fuzzy, (b) Aplikasi fungsi implikasi, (c) membentuk aturan – aturan, (d) penegasan (defuzzifikasi). Pada penelitian ini defuzzifikasi dilakukan dengan menggunakan metode centroid. Pada metode ini nilai defuzzyfikasi bergerak secara halus, sehingga perubahan pada himpunan fuzzy juga akan bergerak dengan halus. Dari hasil penelitian yang telah dilakukan, dengan memasukkan variabel input pada bulan juli 2005, yaitu jumlah permintaan sebesar 21.945 unit dan jumlah persediaan sebesar 1.824 unit menghasilkan output jumlah produksi sebesar 20.300 unit.
Kata Kunci : Ketidakpastian, Jumlah produksi, Logika fuzzy.

Pendahuluan
Pada saat ini hampir semua perusahaan yang bergerak dibidang industry dihadapkan pada suatu masalah yaitu adanya tingkat persaingan yang semakin kompetitif. Hal ini mengharuskan perusahaan untuk merencanakan atau menentukan jumlah produksi, agar dapat memenuhi permintaan pasar dengan tepat waktu dan dengan jumlah yang sesuai. Sehingga diharapkan keuntungan perusahaan akan meningkat. Pada dasarnya penentuan jumlah produksi ini direncanakan untuk memenuhi tingkat produksi guna memenuhi tingkat penjualan yang direncanakan atau tingkat permintaan pasar. Logika fuzzy (logika samar) itu sendiri merupakan logika yang berhadapan dengan konsep kebenaran sebagian, dimana logika klasik menyatakan bahwa segala hal dapat di ekspresikan dalam istilah binary (0 atau 1). Logika fuzzy memungkinkan nilai keanggotaan antara 0 dan 1. Berbagai teori didalam perkembangan logika fuzzy menunjukkan bahwa pada dasarnya logika fuzzy dapat digunakan untuk memodelkan berbagai sistem.
Logika fuzzy dianggap mampu untuk memetakan suatu input kedalam suatu output tanpa mengabaikan faktor–faktor yang ada. Logika fuzzy diyakini dapat sangat fleksibel dan memiliki toleransi terhadap data-data yang ada. Dengan berdasarkan logika fuzzy, akan dihasilkan suatu model dari suatu sistem yang mampu memperkirakan jumlah produksi. Faktor–faktor yang mempengaruhi dalam menentukan jumlah produksi dengan logika fuzzy antara lain jumlah permintaan dan jumlah persediaan.

Rumusan Masalah
Berdasarkan uraian dari latar belakang, dapat dirumuskan permasalahan dari penelitian yang akan dilakukan yaitu: memperkirakan jumlah produksi berdasarkan logika fuzzy dengan memperhatikan faktor jumlah permintaan dan jumlah persediaan.
Adapun batasan masalah dalam penelitian ini adalah:
1. Produk yang diteliti adalah kloset jongkok.
2. Faktor–faktor yang mempengaruhi penentuan jumlah produksi adalah jumlah permintaan dan jumlah persediaan.
3. Penalaran fuzzy menggunakan metode mamdani
4. Penegasan (defuzzyfikasi) dengan metode centroid.
5. Pengolahan data menggunakan bantuan software matlab 6.1
6. Data lain tidak diteliti atau dianggap tetap.

Dasar Teori

Logika Fuzzy
Dalam kondisi yang nyata, beberapa aspek dalam dunia nyata selalu atau biasanya berada diluar model matematis dan bersifat inexact. Konsep ketidakpastian inilah yang menjadi konsep dasar munculnya konsep logika fuzzy. Pencetus gagasan logika fuzzy adalah Prof. L.A. Zadeh (1965) dari California University. Pada prinsipnya himpunan fuzzy adalah perluasan himpunan crisp, yaitu himpunan yang membagi sekelompok individu kedalam dua kategori, yaitu anggota dan bukan anggota.
Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu himpunan A, yang sering ditulis dengan µ A [x], memiliki 2 kemungkinan, yaitu ( Kusumadewi, 2003: 156 ) :
• Satu (1) yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan.
• Nol (0) yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.

Pada himpunan crisp, nilai keanggotaan ada 2 kemungkinan, yaitu 0 atau 1. Sedangkan pada himpunan fuzzy nilai keanggotaan terletak pada rentang 0 sampai 1. Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy. Semesta pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai semesta pembicaraan dapat berupa bilangan positif maupun negatif ( Kusumadewi, 2003: 159 ) .
Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy (Kusumadewi, 2001: 12 ).
Fungsi keanggotaan (membership function) adalah suatu kurva yang menunjukkan pemetaan titik-titik input data kedalam nilai keanggotaan yang memiliki interval antara 0 sampai 1. Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi. Ada beberapa fungsi yang bisa digunakan diantaranya :
1. representasi linear
2. representasi segitiga
3. representasi trapesium
4. representasi kurva bentuk bahu
5. representasi kurva S
6. representasi bentuk lonceng

Sistem Inferensi Fuzzy Metode Mamdani
Metode mamdani sering juga dikenal dengan nama metode min–max. Metode ini diperkenalkan oleh Ebrahim Mamdani pada tahun 1975. Untuk mendapatkan output diperlukan 4 tahapan, diantaranya :
1. Pembentukan himpunan fuzzy
Pada metode mamdani baik variabel input maupun variabel output dibagi menjadi satu atau lebih himpunan fuzzy.
2. Aplikasi fungsi implikasi
Pada Metode Mamdani, fungsi implikasi yang digunakan adalah min.
3. Komposisi aturan
Metode yang digunakan dalam melakukan inferensi sistem fuzzy, yaitu Metode max (maximum). Secara umum dapat dituliskan :



dengan :
µsf[Xi] = nilai keanggotaan solusi fuzzy sampai aturan ke i
µkf [Xi]) = nilai keanggotaan konsekuan fuzzy aturan ke i
4. Penegasan (defuzzy)
Defuzzifikasi pada komposisi aturan mamdani dengan menggunakan metode centroid. Dimana pada metode ini, solusi crisp diperoleh dengan cara mengambil titik pusat daerah fuzzy.
Secara umum dirumuskan (Bo Yuan, 1999) :



Ada dua keuntungan menggunakan metode centroid, yaitu (Kusumadewi, 2002):
1. Nilai defuzzyfikasi akan bergerak secara halus sehingga perubahan dari suatu himpunan fuzzy juga akan berjalan dengan halus.
2. Lebih mudah dalam perhitungan.

Metode Penelitian

Identifikasi Data
Identifikasi data dilakukan dengan penentuan variabel yang diperlukan dalam melakukan perhitungan dan analisis masalah. Perusahaan dalam melakukan proses produksi dipengaruhi oleh beberapa faktor, diantaranya :
1. Jumlah Permintaan
2. Jumlah Persediaan
3. Jumlah Produksi

Pembentukan himpunan fuzzy
Pada metode mamdani baik variabel input maupun variabel output dibagi menjadi satu atau lebih himpunan fuzzy.

Aplikasi fungsi implikasi
Pada metode mamdani, fungsi implikasi yang digunakan untuk tiap – tiap aturan adalah fungsi min.

Penegasan (defuzzy)
Proses penegasan (defuzzyfikasi) menggunakan bantuan software matlab dengan menggunakan fasilitas yang disediakan pada toolbox fuzzy.

Pengumpulan dan Pengolahan Data

Pengumpulan Data
Data yang dikumpulkan dalam penelitian ini meliputi data permintaan, data persediaan dan data jumlah produksi untuk kurun waktu antara bulan Juli 2004 sampai dengan bulan Juni 2005. Data tersebut dapat dilihat pada tabel 1. Untuk menentukan jumlah produksi pada bulan juli 2005, juga dibutuhkan data permintaan dan persediaan bulan juli 2005. Data permintaan untuk bulan juli 2005 adalah sebesar 21.945 unit. Sedangkan untuk data persediaan pada bulan juli 2005 adalah sebesar 1.824 unit. Dan sampai saat ini perusahaan mampu memproduksi barang maksimum 25.000 produk tiap bulannya.



Pengolahan Data
Pengolahan data dilakukan dengan menentukan variabel dan semesta npembicaraan, dilanjutkan dengan membentuk himpunan fuzzy. Penentuan variabel dan semesta pembicaraan dari hasil pengambilan data dapat diperoleh pada tabel 2. Sedang himpunan fuzzy ditampilkan pada tabel 3.











Langkah selanjutnya adalah membuat fungsi keanggotaan untuk tiap variable permintaan, persediaan dan jumlah produksi. Fungsi keanggotaan variabel persediaan, meliputi kurva bentuk S penyusutan untuk himpunan sedikit dan kurva bentuk S pertumbuhan untuk himpunan banyak.
Sedangkan kurva PI untuk himpunan sedang. Hal ini dapat dilihat pada gambar 1. Fungsi keanggotaan variabel permintaan, meliputi kurva bentuk S penyusutan untuk himpunan sedikit dan kurva bentuk S pertumbuhan untuk himpunan banyak. Sedangkan kurva PI untuk himpunan sedang. Hal ini dapat dilihat pada gambar 2. Fungsi keanggotaan variabel jumlah produksi, meliputi kurva bentuk S penyusutan untuk himpunan sedikit dan kurva bentuk S pertumbuhan untuk himpunan banyak. Sedangkan kurva PI untuk himpunan sedang. Hal ini dapat dilihat pada gambar 3.

Setelah penentuan fungsi keanggotaan variabel, maka dilakukan pembentukan aturan logika fuzzy. Berdasarkan data – data yang ada, dapat dibentuk aturan – aturan sebagai berikut :
1. if (Permintaan is Sedikit) and (Persediaan is Sedikit) then (Jumlah Produksi is Sedikit)
2. if (Permintaan is Sedikit) and (Persediaan is Sedikit) then (Jumlah Produksi is Sedang)
3. if (Permintaan is Sedikit) and (Persediaan is Sedang) then (Jumlah Produksi is Sedikit)
4. if (Permintaan is Sedikit) and (Persediaan is Sedang) then (Jumlah Produksi is Sedang)
5. if (Permintaan is Sedikit) and (Persediaan is Sedang) then (Jumlah Produksi is Banyak)
6. if (Permintaan is Sedikit) and (Persediaan is Banyak) then (Jumlah Produksi is Sedikit)
7. if (Permintaan is Sedikit) and (Persediaan is Banyak) then (Jumlah Produksi is Sedang)
8. if (Permintaan is Sedang) and (Persediaan is Sedikit) then (Jumlah Produksi is Sedikit)
9. if (Permintaan is Sedang) and (Persediaan is Sedikit) then (Jumlah Produksi is Sedang)
10. if (Permintaan is Sedang) and (Persediaan is Sedikit) then (Jumlah Produksi is Banyak)
11. if (Permintaan is Sedang) and (Persediaan is Sedang) then (Jumlah Produksi is Sedikit)
12. if (Permintaan is Sedang) and (Persediaan is Sedang) then (Jumlah Produksi is Sedang)
13. if (Permintaan is Sedang) and (Persediaan is Sedang) then (Jumlah Produksi is Banyak)
14. if (Permintaan is Sedang) and (Persediaan is Banyak) then (Jumlah Produksi is Sedikit)
15. if (Permintaan is Sedang) and (Persediaan is Banyak) then (Jumlah Produksi is Sedang)
16. if (Permintaan is Sedang) and (Persediaan is Banyak) then (Jumlah Produksi is Banyak)
17. if (Permintaan is Banyak) and (Persediaan is Sedikit) then (Jumlah Produksi is Sedang)
18. if (Permintaan is Banyak) and (Persediaan is Sedikit) then (Jumlah Produksi is Banyak)
19. if (Permintaan is Banyak) and (Persediaan is Sedang) then (Jumlah Produksi is Sedang)
20. if (Permintaan is Banyak) and (Persediaan is Sedang) then (Jumlah Produksi is Sedang)
21. if (Permintaan is Banyak) and (Persediaan is Banyak) then (Jumlah Produksi is Sedang)
22. if (Permintaan is Banyak) and (Persediaan is Banyak) then (Jumlah Produksi is Banyak)

Langkah terakhir adalah penegasan (defuzzyfikasi). Penegasan dilakukan dengan bantuan software matlab 6.1 toolbox fuzzy. Hasil pengujian dengan metode centroid dengan input jumlah permintaan sebesar 21.945 unit dan jumlah persediaan sebesar 1.824 unit menghasilkan output jumlah produksi sebesar 20.300 unit. Penalaran fuzzy dengan menggunakan metode centroid digambarkan seperti pada gambar 4.




Pembahasan Kelompok

Dalam makalah ini hal yang pertama dilakukan adalah pengumpulan dan identifikasi data. Identifikasi data dilakukan dengan penentuan variabel yang diperlukan dalam melakukan perhitungan dan analisis masalah. Pengolahan data dilakukan dengan menentukan variabel dan semesta pembicaraan, dilanjutkan dengan membentuk himpunan fuzzy. Pada metode mamdani baik variabel input maupun variabel output dibagi menjadi satu atau lebih himpunan fuzzy. Langkah selanjutnya adalah membuat fungsi keanggotaan untuk tiap variable.
Setelah penentuan fungsi keanggotaan variabel, maka dilakukan pembentukan aturan logika fuzzy. Pada metode mamdani, fungsi implikasi yang digunakan untuk tiap – tiap aturan adalah fungsi min. Langkah terakhir adalah penegasan (defuzzyfikasi). Penegasan dilakukan dengan bantuan software matlab 6.1 toolbox fuzzy. Pengujian dilakukan dengan metode centroid dengan input jumlah permintaan dan jumlah persediaan menghasilkan output jumlah produksi. Penalaran fuzzy dengan menggunakan metode centroid digambarkan seperti pada gambar 4. Dari gambar tersebut data diketahui input dan output yang ditampilkan sesuai dengan aturan logika yang telah dibuat.

Kesimpulan
Berdasarkan hasil penelitian yang telah dilakukan, serta uraian – uraian yang telah dikemukakan, maka dapat diambil kesimpulan yaitu : Untuk menentukan jumlah produksi pada bulan juli 2005, dilakukan pengolahan data dengan menggunakan bantuan software Matlab 6.1 Toolbox Fuzzy, dimana pada penegasan (defuzzyfikasi) dengan menggunakan metode centroid. Dengan memasukkan variabel input, yaitu jumlah permintaan sebesar 21.945 unit dan jumlah persediaan sebesar 1.824 unit, maka hasil yang didapatkan untuk jumlah produksi pada bulan juli 2005 sebesar 20.300 unit.


Referensi: http://eprints.ums.ac.id/198/1/JTI-0402-06-OK.pdf

FUZZY LOGIC

Tugas Tgl Tugas Tgl Selesai
Tugas 6 April 2010 28 Mei 2010

Nama NPM TUGAS
Dwi Ferdiana
0415031047
Mencari bahan, memasukan ke blog
Anisa Ulya D
0855031005
Mencari bahan, memasukan ke blog
Yuly Indriani
0815031097
Mencari bahan, memasukan ke blog
Novia Utami P
0815031077
Mencari bahan, memasukan ke blog



KONSEP DASAR LOGIKA FUZZY

Pada pertengahan 1960, Prof. Lotfi Zadeh dari universitas California di Barkeley menemukan bahwa hukum benar atau salah dari logika boolean tidak memperhitungkan beragam kondisi yang nyata. Untuk menghitung gradasi yang tak terbatas jumlahnya antara benar dan salah, Zadeh mengembangkan ide penggolongan set yang ia namakan set fuzzy. Tidak seperti logika boolean, logika fuzzy memiliki banyak nilai. Tidak seperti elemen yang dikategorikan 100% ini atau itu, atau sebuah dalil yang menyatakan semuanya benar atau seluruhnya salah, fuzzy membaginya dalam derajat keanggotaan dan derajat kebenaran, yaitu : sesuatu yang dapat menjadi sebagian benar dan sebagian salah pada waktu yang sama. Hal ini telah dibuktikan oleh Bart Kosko bahwa logika boolean adalah kasus kusus dari logika fuzzy.

Lotfi Zadeh mengatakan Integrasi Logika Fuzzy kedalam sistem informasi dan rekayasa proses adalah menghasilkan aplikasi seperti sistem kontrol, alat alat rumah tangga, dan sistem pengambil keputusan yang lebih fleksibel, mantap, dan canggih dibandingkan dengan sistem konvensional. Dalam hal ini kami dapat mengatakan bahwa logika fuzzy memimpin dalam pengembangan kecerdasan mesin yang lebih tinggi ( machine Intelligency Quotient / MIQ ) Produk produk berikut telah menggunakan logika fuzzy dalam alat alat rumah tangga seperti mesin cuci, video dan kamera refleksi lensa tunggal, pendingin ruangan, oven microwave, dan banyak sistem diagnosa mandiri.


Perbedaan Fuzzy Logic dengan Boolean

Blog Diagram Logika Fuzzy



Fungsi dari bagian-bagian di atas adalah sebagai berikut :
1. Fuzzifikasi
Berfungsi untuk mngubah sinyal masukan yang bersifat crisp ( bukan fuzzy ) ke himpunan fuzzy dengan menggunakan operator fuzzifikasi.
2. Basis Pengetahuan
Berisi basis data dan aturan dasar yang mendefinisikan himpunan fuzzy atas
daerah–daerah masukan dan keluaran dan menyusunnya dalam perangkat aturan kendali.
3. Logika Pengambil Keputusan
merupakan inti dari Logika Fuzzy yang mempunyai kemampuan seperti manusia dalam mengambil keputusan. Aksi atur fuzzy disimpulkan dengan menggunakan implikasi fuzzy dan mekanisme inferensi fuzzy.
4. Defuzzifikasi
berfungsi untuk mentransformasikan kesimpulan tentang aksi atur yang bersifat fuzzy menjadi sinyal sebenarnya yang bersifat crisp dengan menggunakan operator defuzzifikasi

FUZZIFIKASI

Fuzzifikasi merupakan suatu proses pengubahan variabel non-fuzzy (crisp) ke dalam variabel fuzzy, variabel masukan (crisp) dipetakan ke bentuk himpunan fuzzy sesuai dengan variasi semesta pembicaraan masukan. Pemetaan titik-titik numerik (crisp points) x = (x1, x2, .., xn)^ T є U ke himpunan fuzzy A pada semesta pembicaraan U. Data yang telah dipetakan selanjutnya dikonfersikan ke dalam bentuk linguistik yang sesuai dengan label dari himpunan fuzzy yang telah terdefinisi untuk variabel masukan sistem.
Fungsi keanggotaan merupakan sebuah kurva yang menggambarkan pemetaan dari masukan ke derajat keanggotaan antara 0 dan 1. Melalui fungsi keanggotaan yang telah disusun maka dari nilai-nilai masukan tersebut menjadi informasi fuzzy yang berguna nantinya untuk proses pengolahan secara fuzzy. Banyaknya jumlah fungsi keanggotaan dalam fuzzy set menentukan banyaknya aturan yang harus dibuat. Keanggotaan dalam himpunan fuzzy mempunyai bentuk yang berbeda-beda terdiri dari :

1. Fungsi Gausian





2. Fungsi segitiga



3. Trapesium



Untuk merancang sistem fuzzy logic memerlukan hubungan data masukan dan keluaran serta data lingusitic dari operator untuk menentukan semesta pembicaraan dan fungsi keanggotaan. Tipe fuzzy yang dipakai adalah mamdani karena memiliki keunggulan lebih fleksibel untuk diterapkan pada segala jenis permasalahan.

Penentuan masukkan pada model fuzzy logic.
Input yang dipakai adalah laju aliran bahan bakar yang bergantung pada rasio laju aliran udara pada perbandingan tertentu. Laju aliran massa yang dapat dilewatkan melalui valve adalah 6,2 kg/s, sehingga dengan demikian jangkauan proses variable yang masuk antara 0 kg/s sampai 6,2 kg/s.

Penentuan variabel keluaran model dengan fuzzy logic
Variabel keluaran pada sistem ini adalah kandungan kadar oksigen gas buang
pada proses pembakaran yang ditangkap oleh gas analizer.


FUNGSI KEANGGOTAAN (MEMBERSHIP FUNCTION)

Fungsi Keanggotaan (membership function) adalah suatu kurva yang menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotaannya (sering juga disebut dengan derajat keanggotaan) yang memiliki interval antara 0 sampai 1. Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi. Ada beberapa fungsi yang bisa digunakan.

a. Representasi Linear
Pada representasi linear, pemetaan input ke derajat keanggotannya digambarkan sebagai suatu garis lurus. Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas.
Ada 2 keadaan himpunan fuzzy yang linear. Pertama, kenaikan himpunan dimulai pada nilai domain yang memiliki derajat keanggotaan nol [0] bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan lebih tinggi (Gambar 7.5)



b. Representasi Kurva Segitiga
Kurva Segitiga pada dasarnya merupakan gabungan antara 2 garis (linear) seperti terlihat pada Gambar 7.9.



c. Representasi Kurva Trapesium
Kurva Segitiga pada dasarnya seperti bentuk segitiga, hanya saja ada beberapa titik yang memiliki nilai keanggotaan 1 (Gambar 2.26).



d. Representasi Kurva Bentuk Bahu
Daerah yang terletak di tengah-tengah suatu variabel yang direpresentasikan dalam bentuk segitiga, pada sisi kanan dan kirinya akan naik dan turun (misalkan: DINGIN bergerak ke SEJUK bergerak ke HANGAT dan bergerak ke PANAS). Tetapi terkadang salah satu sisi dari variabel tersebut tidak mengalami perubahan. Sebagai contoh, apabila telah mencapai kondisi PANAS, kenaikan temperatur akan tetap berada pada kondisi PANAS. Himpunan fuzzy ‘bahu’, bukan segitiga, digunakan untuk mengakhiri variabel suatu daerah fuzzy. Bahu kiri bergerak dari benar ke salah, demikian juga bahu kanan bergerak dari salah ke benar.



e. Representasi Kurva-S
Kurva PERTUMBUHAN dan PENYUSUTAN merupakan kurva-S atau sigmoid yang berhubungan dengan kenaikan dan penurunan permukaan secara tak linear.
Kurva-S untuk PERTUMBUHAN akan bergerak dari sisi paling kiri (nilai keanggotaan = 0) ke sisi paling kanan (nilai keanggotaan = 1). Fungsi keanggotaannya akan tertumpu pada 50% nilai keanggotaannya yang sering disebut dengan titik infleksi (Gambar 7.14).



Kurva-S untuk PENYUSUTAN akan bergerak dari sisi paling kanan (nilai keanggotaan = 1) ke sisi paling kiri (nilai keanggotaan = 0) seperti telihat pada Gambar 7.15.



Kurva-S didefinisikan dengan menggunakan 3 parameter, yaitu: nilai keanggotaan nol (alpha), nilai keanggotaan lengkap (gama), dan titik infleksi atau crossover (beta) yaitu titik yang memiliki domain 50% benar. Gambar 7.16 menunjukkan karakteristik kurva-S dalam bentuk skema.





f. Representasi Kurva Bentuk Lonceng (Bell Curve)
Untuk merepresentasikan bilangan fuzzy, biasanya digunakan kurva berbentuk lonceng. Kurva berbentuk lonceng ini terbagi atas 3 kelas, yaitu: himpunan fuzzy PI, beta, dan Gauss. Perbedaan ketiga kurva ini terletak pada gradiennya.

(i) Kurva PI
Kurva PI berbentuk lonceng dengan derajat keanggotaan 1 terletak pada pusat dengan domain (gama), dan lebar kurva (beta) seperti terlihat pada Gambar 7.19. Nilai kurva untuk suatu nilai domain x diberikan sebagai:





(ii) Kurva BETA
Seperti halnya kurva PI, kurva BETA juga berbentuk lonceng namun lebih rapat. Kurva ini juga didefinisikan dengan 2 parameter, yaitu nilai pada domain yang menunjukkan pusat kurva (gama), dan setengah lebar kurva (beta) seperti terlihat pada Gambar 7.21. Nilai kurva untuk suatu nilai domain x diberikan sebagai:
Salah satu perbedaan mencolok kurva BETA dari kurva PI adalah, fungsi keanggotaannya akan mendekati nol hanya jika nilai (beta) sangat besar.





(iii) Kurva GAUSS
Jika kurva PI dan kurva BETA menggunakan 2 parameter yaitu (gama) dan (beta), kurva GAUSS juga menggunakan (gama) untuk menunjukkan nilai domain pada pusat kurva, dan (k) yang menunjukkan lebar kurva (Gambar 7.25). Nilai kurva untuk suatu nilai domain x diberikan sebagai:





g. Koordinat Keanggotaan

Himpunan fuzzy berisi urutan pasangan berurutan yang berisi nilai domain dan kebenaran nilai keanggotaannya dalam bentuk:
Skalar(i) / Derajat(i)
‘Skalar’ adalah suatu nilai yang digambar dari domain himpunan fuzzy,
sedangkan ‘Derajat’ skalar merupakan derajat keanggotaan himpunan
fuzzynya.



Gambar 7.26 merupakan contoh himpunan fuzzy yang diterapkan pada sistem asuransi yang akan menanggung resiko seorang pengendara kendaraan bermotor berdasarkan usianya, akan berbentuk ‘U’. Koordinatnya dapat digambarkan dengan 7 pasangan berurutan sebagai berikut:

16/1 21/.6 28/.3 68/.3 76/.5 80/.7 96/1

Gambar 2.43 memperlihatkan koordinat yang menspesifikasikan titik-titik sepanjang domain himpunan fuzzy. Semua titik harus ada di domain, dan paling sedikit harus ada satu titik yang memiliki nilai kebenaran sama dengan 1. Apabila titik-titik tersebut telah digambarkan, maka digunakan interpolasi linear untuk mendapatkan permukaan fuzzy-nya seperti terlihat pada Gambar 7.27.



RULE EVALUATION

Proses ini berfungsi untuk untuk mencari suatu nilai fuzzy output dari fuzzy input.
Prosesnya adalah sebagai berikut: suatu nilai fuzzy input yang berasal dari proses fuzzification kemudian dimasukkan kedalam sebuah rule yang telah dibuat untuk dijadikan sebuah fuzzy output. Ini merupakan bagian utama dari fuzzy, karena disinilah sistem anda akan menjadi pintar atau tidak. Jika anda tidak pintar dalam mengatur rule maka sistem yang akan dikontrol menjadi kacau. Format dari rule adalah sebagai berikut:
If antecedent1 operator antecendent2 then consequent1 operator consequent2



Diagram blok proses rule evaluation

DEFUZZIFIKASI

Proses ini berfungsi untuk menentukan suatu nilai crisp output.
Prosesnya adalah sebagai berikut: suatu nilai fuzzy output yang berasal dari rule evaluation diambil kemudian dimasukkan ke dalam suatu membership function output. Bentuk bangun yang digunakan dalam membership function output adalah bentuk singleton yaitu garis lurus vertikal ke atas, seperti yang ditunjukkan pada gambar 7.
Besar nilai fuzzy output dinyatakan sebagai degree of membership function output. Nilai-nilai tersebut dimasukkan ke dalam suatu rumus yang dinamakan COG (Center Of Gravity) untuk mendapatkan hasil akhir yang disebut crisp output. Crisp output adalah suatu nilai analog yang akan kita butuhkan untuk mengolah data pada sistem yang telah dirancang.



Proses Defuzzifikasi



Rumus Defuzzifikasi



Bentuk Fuzzy Output

APLIKASI LOGIKA FUZZY

Beberapa aplikasi logika fuzzy, antara lain:
1. Pada tahun 1990 pertama kali dibuat mesin cuci dengan logika fuzzy di Jepang (Matsushita Electric Industrial Company). Sistem fuzzy digunakan untuk menentukan putaran yang tepat secara otomatis berdasarkan jenis dan banyaknya kotoran serta jumlah yang akan dicuci. Input yang digunakan adalah: seberapa kotor, jenis kotoran, dan banyaknya yang dicuci. Mesin ini menggunakan sensor optik , mengeluarkan cahaya ke air dan mengukur bagaimana cahaya tersebut sampai ke ujung lainnya. Makin kotor, maka sinar yang sampai makin redup. Disamping itu, sistem juga dapat menentukan jenis kotoran (daki atau minyak).
2. Transmisi otomatis pada mobil. Mobil Nissan telah menggunakan sistem fuzzy pada transmisi otomatis, dan mampu menghemat bensin 12 – 17%.
3. Kereta bawah tanah Sendai mengontrol pemberhentian otomatis pada area tertentu.
4. Ilmu kedokteran dan biologi, seperti sistem diagnosis yang didasarkan pada logika fuzzy, penelitian kanker, manipulasi peralatan prostetik yang didasarkan pada logika fuzzy, dll.
5. Manajemen dan pengambilan keputusan, seperti manajemen basisdata yang didasarkan pada logika fuzzy, tata letak pabrik yang didasarkan pada logika fuzzy, sistem pembuat keputusan di militer yang didasarkan pada logika fuzzy, pembuatan games yang didasarkan pada logika fuzzy, dll.
6. Ekonomi, seperti pemodelan fuzzy pada sistem pemasaran yang kompleks, dll.
7. Klasifikasi dan pencocokan pola.
8. Psikologi, seperti logika fuzzy untuk menganalisis kelakuan masyarakat, pencegahan dan investigasi kriminal, dll.
9. Ilmu-ilmu sosial, terutam untuk pemodelan informasi yang tidak pasti.
10. Ilmu lingkungan, seperti kendali kualitas air, prediksi cuaca, dll.
11. Teknik, seperti perancangan jaringan komputer, prediksi adanya gempa bumi, dll.
12. Riset operasi, seperti penjadwalan dan pemodelan, pengalokasian, dll.
13. Peningkatan kepercayaan, seperti kegagalan diagnosis, inspeksi dan monitoring produksi.

Referensi:
http://www.scribd.com/doc/30330306/Tugas-Mata-Kuliah-Fuzzy-2-Louis-Gandhi-Prabowo-2407100046
http://www.scribd.com/doc/22571134/Logika-Fuzzy
http://iddhien.com/index.php?option=com_content&task=view&id=49&Itemid=113

Makalah Jaringan Syaraf Tiruan

Tugas Tgl Tugas Tgl Selesai
Tugas 5 29 April 2010 28 Mei 2010

Nama NPM TUGAS
Dwi Ferdiana
0415031047
Mencari bahan, memasukan ke blog
Anisa Ulya D
0855031005
Mencari bahan, memasukan ke blog
Yuly Indriani
0815031097
Mencari bahan, memasukan ke blog
Novia Utami P
0815031077
Mencari bahan, memasukan ke blog


PENERAPAN JARINGAN SYARAF TIRUAN UNTUK MENDETEKSI POSISI WAJAH MANUSIA PADA CITRA DIGITAL

Abstrak

Salah satu bagian penting dalam proses pengenalan wajah adalah mendeteksi posisi wajah. Dalam makalah ini kami merancang dan mengimplementasikan sistem pendeteksi posisi wajah dengan menggunakan jaringan syaraf tiruan. Sistem ini dilatih dengan menggunakan contoh-contoh wajah yang diberikan. Algoritma Quickprop dan metode active learning digunakan untuk mempercepat proses pelatihan sistem. Dari hasil eksperimen dengan menggunakan 23 file citra berisi 149 wajah, sistem pendeteksi wajah ini memberikan hasil detection rate 71,14% dan false positive 62.
Kata kunci: deteksi wajah, jaringan syaraf tiruan, quickprop, active learning

1. Pendahuluan

Dengan semakin tingginya kemampuan komputer untuk memproses data dalam jumlah besar dengan kecepatan yang tinggi, sistem biometrik semakin banyak diaplikasikan dalam kehidupan manusia. Sistem biometrik adalah sistem untuk melakukan identifikasi dengan cara menggunakan ciri-ciri fisik atau anggota badan manusia, seperti sidik jari, retina mata, suara. Teknologi biometrik ini memiliki beberapa kelebihan seperti tidak mudah hilang, tidak dapat lupa, tidak mudah dipalsukan, dan memiliki keunikan yang berbeda antara manusia satu dengan yang lain.
Salah satu cara yang digunakan dalam system biometrik adalah pengenalan wajah. Sistem pengenalan wajah bertujuan untuk mengidentifikasi wajah seseorang dengan cara membandingkan wajah tersebut dengan database wajah yang sudah ada. Dalam system pengenalan wajah, pendeteksian posisi wajah merupakan salah satu tahap yang penting karena di dunia nyata wajah dapat muncul di dalam citra dengan berbagai ukuran dan posisi, dan dengan latar belakang yang bervariasi [Hjelmas, 2001].
Dalam makalah ini kami merancang dan mengimplementasikan sistem pendeteksi wajah manusia yang dapat memberikan output berupa jumlah, posisi, dan ukuran wajah manusia yang ditemukan di dalam suatu citra digital.

2. Teori Dasar

2.1 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan adalah suatu system pemrosesan informasi yang cara kerjanya memiliki kesamaan tertentu dengan jaringan syaraf biologis [Fausett, 1994]. Jaringan syaraf tiruan dikembangkan sebagai model matematis dari syaraf biologis dengan berdasarkan asumsi bahwa:
a. Pemrosesan terjadi pada elemen-elemen sederhana yang disebut neuron.
b. Sinyal dilewatkan antar neuron melalui penghubung.
c. Setiap penghubung memiliki bobot yang akan mengalikan sinyal yang lewat.
d. Setiap neuron memiliki fungsi aktivasi yang akan menentukan nilai sinyal output.
Jaringan syaraf dapat digolongkan menjadi berbagai jenis berdasarkan pada arsitekturnya, yaitu pola hubungan antara neuron-neuron, dan algoritma trainingnya, yaitu cara penentuan nilai bobot pada penghubung.

2.2 Multi-Layer Perceptron
Multi-Layer Perceptron adalah jaringan syaraf tiruan feed-forward yang terdiri dari sejumlah neuron yang dihubungkan oleh bobot-bobot penghubung. Neuron-neuron tersebut disusun dalam lapisan-lapisan yang terdiri dari satu lapisan input (input layer), satu atau lebih lapisan tersembunyi (hidden layer), dan satu lapisan output (output layer). Lapisan input menerima sinyal dari luar, kemudian melewatkannya ke lapisan tersembunyi pertama, yang akan diteruskan sehingga akhirnya mencapai lapisan output [Riedmiller, 1994].
Setiap neuron i di dalam jaringan adalah sebuah unit pemrosesan sederhana yang menghitung nilai aktivasinya yaitu:



di mana pred(i) melambangkan himpunan predesesor dari unit i, wij melambangkan bobot koneksi dari unit j ke unit i, dan qi adalah nilai bias dari unit i. Untuk membuat representasi menjadi lebih mudah, seringkali bias digantikan dengan suatu bobot yang terhubung dengan unit bernilai 1. Dengan demikian bias dapat diperlakukan secara sama dengan bobot koneksi.

2.3 Supervised Learning
Tujuan pada pembelajaran supervised learning adalah untuk menentukan nilai bobot-bobot koneksi di dalam jaringan sehingga jaringan dapat melakukan pemetaan (mapping) dari input ke output sesuai dengan yang diinginkan. Pemetaan ini ditentukan melalui satu set pola contoh atau data pelatihan (training data set). Setiap pasangan pola p terdiri dari vector input xp dan vektor target tp. Setelah selesai pelatihan, jika diberikan masukan xp seharusnya jaringan menghasilkan nilai output tp. Besarnya perbedaan antara nilai vektor target dengan output aktual diukur dengan nilai error yang disebut juga dengan cost function:



di mana n adalah banyaknya unit pada output layer. Tujuan dari training ini pada dasarnya sama dengan mencari suatu nilai minimum global dari E.

2.4 Algoritma Backpropagation
Salah satu algoritma pelatihan jaringan syaraf tiruan yang banyak dimanfaatkan dalam bidang pengenalan pola adalah backpropagation. Algoritma ini umumnya digunakan pada jaringan syaraf tiruan yang berjenis multi-layer feed-forward, yang tersusun dari beberapa lapisan dan sinyal dialirkan secara searah dari input menuju output.
Algoritma pelatihan backpropagation pada dasarnya terdiri dari tiga tahapan [Fausett, 1994], yaitu:
a. Input nilai data pelatihan sehingga diperoleh nilai output
b. Propagasi balik dari nilai error yang diperoleh
c. Penyesuaian bobot koneksi untuk meminimalkan nilai error.
Ketiga tahapan tersebut diulangi terus menerus sampai mendapatkan nilai error yang diinginkan. Setelah training selesai dilakukan, hanya tahap pertama yang diperlukan untuk memanfaatkan
jaringan syaraf tiruan tersebut.
Secara matematis [Rumelhart, 1986], ide dasar dari algoritma backpropagation ini sesungguhnya adalah penerapan dari aturan rantai (chain rule) untuk menghitung pengaruh masing-masing bobot terhadap fungsi error:



Dimana wij adalah bobot penghubung dari neuron j ke neuron i, si adalah output, dan neti adalah
jumlah hasil kali pada input dari neuron i.

2.5 Algoritma Quickprop
Pada algoritma Quickprop dilakukan pendekatan dengan asumsi bahwa kurva fungsi error terhadap masing-masing bobot penghubung berbentuk parabola yang terbuka ke atas, dan gradien dari kurva error untuk suatu bobot tidak terpengaruh oleh bobot-bobot yang lain [Fahlman,1988]. Dengan demikian perhitungan perubahan bobot hanya menggunakan informasi lokal pada masing-masing bobot. Perubahan bobot pada algoritma Quickprop dirumuskan sebagai berikut:



Pada eksperimen dengan masalah XOR dan encoder/decoder [Fahlman, 1988], terbukti bahwa algoritma Quickprop dapat meningkatkan kecepatan training. Eksperimen dari [Schiffmann,1993] juga menunjukkan peningkatan kecepatan training dan unjuk kerja yang signifikan.

3. Cara Penelitian
Dalam penelitian ini kami menggunakan data yang terdiri dari satu set citra untuk pelatihan (training data set) dan satu set citra untuk pengujian (testing data set). Untuk data pelatihan digunakan citra wajah berukuran 20x20 pixel sebanyak 3000 buah. Sedangkan untuk citra non -wajah diperoleh dari file-file citra yang tidak terdapat wajah manusia di dalamnya.
Sistem ini menggunakan jaringan syaraf tiruan (JST) dengan jenis multi-layer perceptron. Arsitektur yang digunakan diadaptasi dari hasil penelitian [Rowley, 1998], namun lebih disederhanakan.
Lapisan input terdiri dari 400 unit input, yang menerima masukan dari nilai grayscale pixel 20x20 dari subcitra yang akan dideteksi. Sebelum dijadikan input untuk JST, nilai grayscale yang berkisar dari 0 sampai 255 dinormalisasi menjadi antara –1 dan 1.
Lapisan output terdiri dari sebuah unit dengan nilai keluaran berkisar antara –1 dan 1. Pada training data set didefinisikan nilai 1 untuk data wajah dan –1 untuk data non-wajah.
Lapisan tersembunyi (hidden layer) terdiri dari total 25+16=41 unit. Bagian pertama terhubung dengan lapisan input yang membentuk 25 area berukuran 4x4 pixel. Bagian kedua terhubung dengan lapisan input yang membentuk 16 area berukuran 5x5 pixel.
Secara keseluruhan jaringan ini memiliki 883 bobot penghubung, sudah termasuk bias. Jaringan ini lebih sederhana dibandingkan dengan system [Rowley, 1998] yang jumlah bobot penghubungnya mencapai 4357.

3.1 Teknik Active Learning
Training dilakukan secara bertahap dengan menggunakan metode active learning [Sung, 1994].
Pada tahap pertama training dimulai dengan menggunakan sedikit data non-wajah. Pada tahap berikutnya, data training non-wajah ditambah sedikit demi sedikit. Namun data tambahan tersebut diseleksi hanya untuk data tertentu saja, yaitu data yang yang dideteksi sebagai wajah (false positive) pada hasil training tahap sebelumnya. Dengan demikian jumlah data training yang digunakan untuk jaringan syaraf tiruan akan lebih sedikit. Karena data training yang digunakan lebih sedikit, waktu yang diperlukan untuk proses training juga akan lebih singkat. Gambar 1 menunjukkan teknik active learning yang digunakan untuk sistem pendeteksi wajah.

3.2 Detektor Wajah
Bagian detektor wajah menggunakan arsitektur jaringan syaraf yang sama dengan yang digunakan untuk training. Bobot penghubung yang digunakan diambil dari bobot terakhir yang dihasilkan pada proses training. Hasil deteksi akan diputuskan sebagai wajah jika output dari JST lebih dari 0, dan diputuskan sebagai non-wajah jika output JST kurang dari atau sama dengan 0.


Gambar 1. Teknik Active Learning untuk Sistem Pendeteksi Wajah

3.3 Ekstraksi Subcitra
Posisi wajah bisa berada di mana saja pada citra yang akan dideteksi. Untuk itu digunakan window berukuran 20x20 pixel yang akan digeser melalui seluruh daerah citra. Daerah citra yang dilewati oleh window tersebut akan diperiksa satu persatu apakah ada wajah atau tidak di area tersebut. Untuk mengantisipasi ukuran wajah yang bervariasi di dalam citra yang dideteksi, citra diperkecil secara bertahap dengan skala perbandingan 1:1,2 sebagaimana dilakukan pada [Rowley, 1998]. Pada setiap ukuran citra yang diperkecil, window 20x20 pixel akan digeser melalui seluruh area citra.

3.4 Preprocessing
Sebelum digunakan sebagai training data set, citra akan melalui tahap-tahap preprocessing berikut:
1. Histogram Equalization, untuk memperbaiki kontras citra.
2. Masking, yaitu menghilangkan bagian sudut sudut citra untuk mengurangi variasi citra sehingga memperkecil dimensi data.
3. Normalisasi, yaitu mengkonversi nilai intensitas grayscale citra sehingga memiliki range antara –1 sampai dengan 1.
Tahap-tahap preprocessing ini juga digunakan pada saat proses pendeteksian wajah.


Gambar 2. Contoh data wajah yang telah mengalami preprocessing

3.5 Merging
Pada saat dilakukan deteksi wajah pada citra, biasanya sebuah wajah akan terdeteksi pada beberapa lokasi yang berdekatan. Lokasi-lokasi ini disebut dengan kandidat wajah. Untuk itu perlu dilakukan proses penggabungan (merging), yaitu menyatukan lokasi kandidat-kandidat wajah yang berdekatan.


Gambar 3. Hasil deteksi sebelum dan sesudah proses penggabungan (merging)

4. Hasil dan Pembahasan

Unjuk kerja dari detektor wajah pada umumnya diukur dengan menggunakan dua parameter, yaitu detection rate dan false positive rate [Yang, 2002]. Detection rate adalah perbandingan antara jumlah wajah yang berhasil dideteksi dengan jumlah seluruh wajah yang ada. Sedangkan false positive rate adalah banyaknya subcitra non-wajah yang dideteksi sebagai wajah.
Contoh hasil deteksi yang dilakukan pada beberapa citra pengujian ditunjukkan pada gambar 4. Pengujian dilakukan dengan data uji citra yang berasal dari Massachusetts Institute of Technology (MIT) yang terdiri dari 23 file citra yang secara keseluruhan berisi 149 wajah (data uji MIT-23). Kumpulan citra ini pertama kali dipublikasikan pada [Sung, 1994]. Pada data uji ini diperoleh hasil detection rate sebesar 71,14% dan false positives sebanyak 62. Hasil ini diperoleh dari training yang menggunakan 3000 data wajah dan 5200 data nonwajah yang diperoleh melalui metode active learning.
Tabel 1 menunjukkan hasil deteksi yang pernah dilakukan oleh para peneliti lain dengan menggunakan data uji MIT-23. Perbandingan ini tidak bisa dijadikan patokan mutlak untuk menyimpulkan bahwa satu metode lebih baik dari metode yang lain, karena faktor-faktor berikut [Hjelmas, 2001]:
1. data set yang digunakan untuk training tidak sama
2. jumlah data yang digunakan untuk training tidak sama


Gambar 4. Contoh hasil deteksi wajah pada beberapa citra uji yang juga digunakan pada [Sung,1994]



4.1 Pengaruh Jumlah Data Training
Tabel 2 menunjukkan pengaruh jumlah data training yang digunakan terhadap hasil deteksi. Tabel ini berdasarkan hasil deteksi pada suatu citra berisi 15 wajah dan memiliki total 790.797 window. Terlihat bahwa semakin banyak data training nonwajah yang digunakan, semakin kecil angka false positive yang dihasilkan. Hal ini menunjukkan bahwa dengan data yang semakin lengkap, hasil belajar sistem akan semakin baik.



4.2 Pengaruh Algoritma Quickprop pada Kecepatan Training
Tabel 3 menunjukkan perbandingan waktu training yang diperlukan antara training yang menggunakan algoritma backpropagation standar dengan training yang menggunakan algoritma Quickprop. Eksperimen dilakukan dengan menggunakan 2000, 3000, dan 4000 data. Untuk setiap proses training, iterasi dihentikan pada saat nilai error mencapai 0,05. Terlihat bahwa untuk jumlah data training yang semakin besar, algoritma Quickprop memberikan peningkatan kecepatan yang signifikan.



4.3 Pengaruh Metode Active Learning
Tabel 4 menunjukkan perbandingan antara hasil training yang menggunakan metode active learning untuk memilih contoh data non-wajah, dengan hasil training yang menggunakan data nonwajah yang dipilih secara random. Pada eksperimen pertama digunakan 6000 data yang terdiri dari 3000 data wajah dan 3000 data non-wajah. Sedangkan pada eksperimen kedua digunakan 8200 data yang terdiri dari 3000 data wajah dan 5200 data nonwajah. Terlihat bahwa teknik active learning memberikan hasil yang lebih baik. Ini berarti bahwa teknik active learning dapat memilih data yang benar-benar perlu, sehingga dapat meminimalkan jumlah data training yang digunakan.



Pembahasan Kelompok

Dalam penelitian ini digunakan data yang terdiri dari satu set citra untuk pelatihan (training data set) dan satu set citra untuk pengujian (testing data set). Sistem yang digunakan untuk training data maupun testing data adalah sistem yang menggunakan jaringan syaraf tiruan multi layer perceptron. Lapisan input terdiri dari 400 unit input, yang menerima masukan dari nilai grayscale pixel 20x20 dari subcitra yang akan dideteksi. Sebelum dijadikan input untuk JST, nilai grayscale yang berkisar dari 0 sampai 255 dinormalisasi menjadi antara –1 dan 1.
Lapisan output terdiri dari sebuah unit dengan nilai keluaran berkisar antara –1 dan 1. Pada training data set didefinisikan nilai 1 untuk data wajah dan –1 untuk data nonwajah.
Lapisan tersembunyi (hidden layer) terdiri dari total 25+16=41 unit. Bagian pertama terhubung dengan lapisan input yang membentuk 25 area berukuran 4x4 pixel. Bagian kedua terhubung dengan lapisan input yang membentuk 16 area berukuran 5x5 pixel. Secara keseluruhan jaringan ini memiliki 883 bobot penghubung, sudah termasuk bias.
Penentuan nilai bobot-bobot koneksi di dalam jaringan menggunakan pembelajaran supervised learning dengan tujuan jaringan dapat melakukan pemetaan (mapping) dari input ke output sesuai dengan yang diinginkan. Pemetaan ini ditentukan melalui satu set pola contoh atau data pelatihan (training data set). Tujuan dari training ini pada dasarnya sama dengan mencari suatu nilai minimum global dari nilai error.
Algoritma yang digunakan dalam pelatihan data ini adalah algoritma backpropagation. Algoritma pelatihan backpropagation pada dasarnya terdiri dari tiga tahapan [Fausett, 1994], yaitu:
a. Input nilai data pelatihan sehingga diperoleh nilai output
b. Propagasi balik dari nilai error yang diperoleh
c. Penyesuaian bobot koneksi untuk meminimalkan nilai error.
Selain algoritma backpropagation digunakan pula algoritma Quickprop. Pada algoritma Quickprop dilakukan pendekatan dengan asumsi bahwa kurva fungsi error terhadap masing-masing bobot penghubung berbentuk parabola yang terbuka ke atas, dan gradien dari kurva error untuk suatu bobot tidak terpengaruh oleh bobot-bobot yang lain [Fahlman,1988]. Dengan demikian perhitungan perubahan bobot hanya menggunakan informasi lokal pada masing-masing bobot.
Training data dilakukan secara bertahap dengan menggunakan metode active learning. Pada tahap pertama training dimulai dengan menggunakan sedikit data non-wajah. Pada tahap berikutnya, data training non-wajah ditambah sedikit demi sedikit. Namun data tambahan tersebut diseleksi hanya untuk data tertentu saja, yaitu data yang yang dideteksi sebagai wajah (false positive) pada hasil training tahap sebelumnya. Dengan demikian jumlah data training yang digunakan untuk jaringan syaraf tiruan akan lebih sedikit.
Bagian detektor wajah menggunakan arsitektur jaringan syaraf yang sama dengan yang digunakan untuk training. Bobot penghubung yang digunakan diambil dari bobot terakhir yang dihasilkan pada proses training. Hasil deteksi akan diputuskan sebagai wajah jika output dari JST lebih dari 0, dan diputuskan sebagai non-wajah jika output JST kurang dari atau sama dengan 0.
Ekstraksi subcitra digunakan untuk penentuan dimana posisi wajah berada pada citra yang akan di deteksi. Pada saat dilakukan deteksi wajah pada citra, biasanya sebuah wajah akan terdeteksi pada beberapa lokasi yang berdekatan. Lokasi-lokasi ini disebut dengan kandidat wajah. Untuk itu perlu dilakukan proses penggabungan (merging), yaitu menyatukan lokasi kandidat-kandidat wajah yang berdekatan.

Namun sebelum digunakan sebagai training data set, citra akan melalui tahap-tahap preprocessing berikut:
1. Histogram Equalization, untuk memperbaiki kontras citra.
2. Masking, yaitu menghilangkan bagian sudut sudut citra untuk mengurangi variasi citra sehingga memperkecil dimensi data.
3. Normalisasi, yaitu mengkonversi nilai intensitas grayscale citra sehingga memiliki range antara –1 sampai dengan 1.

Unjuk kerja dari detektor wajah pada umumnya diukur dengan menggunakan dua parameter, yaitu detection rate adalah perbandingan antara jumlah wajah yang berhasil dideteksi dengan jumlah seluruh wajah yang ada, sedangkan false positive rate adalah banyaknya subcitra non-wajah yang dideteksi sebagai wajah.
Tabel 2 menunjukkan bahwa semakin banyak data training nonwajah yang digunakan, semakin kecil angka false positive yang dihasilkan. Hal ini menunjukkan bahwa dengan data yang semakin lengkap, hasil belajar sistem akan semakin baik.
Tabel 3 menunjukkan perbandingan waktu training yang diperlukan antara training yang menggunakan algoritma backpropagation standar dengan training yang menggunakan algoritma Quickprop. Terlihat bahwa untuk jumlah data training yang semakin besar, algoritma Quickprop memberikan peningkatan kecepatan yang signifikan.
Tabel 4 menunjukkan perbandingan antara hasil training yang menggunakan metode active learning untuk memilih contoh data non-wajah, dengan hasil training yang menggunakan data nonwajah yang dipilih secara random. Terlihat bahwa teknik active learning memberikan hasil yang lebih baik. Ini berarti bahwa teknik active learning dapat memilih data yang benar-benar perlu, sehingga dapat meminimalkan jumlah data training yang digunakan.


Kesimpulan

Dari penelitian ini dapat diambil kesimpulan bahwa jaringan syaraf tiruan dengan jenis multi layer perceptron dapat digunakan untuk melakukan deteksi wajah pada citra digital. Pada sistem pendeteksi wajah yang berbasis contoh, kinerja hasil deteksi yang didapatkan sangat tergantung dari kualitas dan kuantitas dari data contoh yang diberikan. Untuk training dengan jumlah data yang besar, algoritma Quickprop memberikan peningkatan kecepatan training yang signifikan. Metode active learning dapat digunakan untuk memilih data contoh yang lebih tepat, sehingga meminimalkan jumlah data training yang digunakan.

referensi: http://www.snpages.info/files/u1/sitia2005/naskah-SITIA2005-rev1b.pdf