Modul 7
Modul 7
1. Pendahuluan
Berbeda dengan disiplin ilmu pengolahan citra yang dibatasi oleh penggunaan citra sebagai masukan
maupun keluarannya, suatu aplikasi pengenalan pola bertujuan untuk melakukan proses pengenalan
terhadap suatu objek (misalnya citra) ke dalam salah satu kelas tertentu, berdasarkan pola yang
dimilikinya.
Secara umum, proses pengenalan pola ini dapat digambarkan dalam diagram blok sederhana berikut:
Pengertian pola (pattern) dapat dibedakan dengan istilah ciri/fitur (feature) sebagai berikut:
• Fitur: segala jenis aspek pembeda, kualitas, maupun karakteristik
• Pola: komposit/gabungan dari fitur yang merupakan sifat dari sebuah objek
Kualitas dari suatu vektor fitur dapat dilihat dari kemampuannya dalam melakukan pemilahan objek
berdasarkan keanggotaan kelasnya:
• Objek dari kelas yang sama harus memiliki vektor fitur yang sama
• Objek dari kelas yang berbeda harus memiliki vektor fitur yang berlainan
Tugas dari pemilah (classifier) adalah untuk menyekat ruang fitur ke dalam daerah-daerah yang
dilabeli sebagai kelas yang berbeda.
pesumo
berat badan
pelari
atlit berkuda
tinggi badan
Gambar 2 Contoh klasifikasi atlet berdasarkan vektor fitur tinggi dan berat badan
1
b. Sintaktik (syntactic)
Pemilahan berdasarkan keserupaan ukuran struktural. Dengan cara ini, deskripsi hirarkis suatu
pola kompleks dapat diformulasikan sebagai gabungan dari beberapa pola yang lebih
sederhana. Pada metoda ini, pengetahuan direpresentasikan secara formal grammar atau
deskripsi relasional (graf).
c. Jaringan saraf (neural network)
Pemilahan dilakukan berdasarkan tanggapan suatu neuron jaringan pengolah sinyal terhadap
suatu stimulus masukan (pola). Metoda jaringan saraf tiruan menyimpan pengetahuan dalam
bentuk arsitektur jaringan dan kekuatan pembobot sinaptik.
[ ]
P ωj | x =
[ ] [ ]=
P x |ωj ⋅ P ωj [ ] [ ]
P x |ωj ⋅ P ωj (1)
P[x ] n
∑ P[x | ω ]⋅ P[ω ]
k =1
k k
Secara prinsip, proses pemilahan dalam suatu aplikasi pengenalan pola adalah dengan memilih kelas
ωi yang paling mungkin apabila diketahui suatu vektor fitur x. Atau dengan kata lain, dalam persoalan
pemilahan vektor ciri satu dimensi x ke dalam dua kelas ω1 dan ω2 berlaku:
“apabila P(ω1|x) > P(ω2|x), pilih kelas ω1, selain itu pilih kelas ω2”
yang dapat dinyatakan secara matematis sebagai:
ω1
P[ω1 | x ] > P[ω 2 | x ] (2)
<
ω2
atau:
ω1
P(ω1 | x ) >
Λ ( x) : 1 (3)
P(ω2 | x ) <
ω2
Suku Λ(x) disebut nisbah likelihood, dan aturan keputusan (3) disebut uji nisbah likelihood (UNL).
Persamaan (3) tersebut dapat diperluas dengan memasukkan parameter fungsi biaya Cij, yaitu penalti
atas kesalahan memilih kelas ωi padahal kelas sesungguhnya adalah ωj. Modifikasi ini menyebabkan
UNL yang dihasilkan menjadi:
ω1
P(ω1 | x ) > C12 − C 22
Λ( x) : (4)
P(ω2 | x ) < C 21 − C11
ω2
Substusi (1) dalam (4) menghasilkan:
ω1
P( x | ω1 ) > (C12 − C 22 )P(ω2 )
Λ ( x) : (5)
P ( x | ω2 ) < (C 21 − C11 )P(ω1 )
ω2
Persamaan (5) ini dikenal sebagai Kriteria Bayes, yaitu aturan keputusan UNL yang meminimumkan
Resiko Bayes secara umum. Dua macam bentuk khusus dari persamaan ini adalah Kriteria A-
Posteriori Maksimum (MAP) dan Kriteria Likelihood Maksimum (ML).
2
a. Kriteria MAP
Penerapan kriteria MAP dilakukan pada proses klasifikasi di mana kedua kelas yang diamati
(diasumsikan) memiliki fungsi biaya yang satu-nol.
C11 = C 22 = 0
(6)
C12 = C 21 = 1
Sehingga aturan UNL yang berlaku adalah:
ω1
P( x | ω1 ) > P(ω2 )
Λ ( x) : (7)
P( x | ω2 ) < P(ω1 )
ω2
b. Kriteria ML
Kriteria ini merupakan penyederhanaan lebih jauh dari kriteria MAP, yaitu dengan menarik
asumsi bahwa peluang prior dari kedua kelas sama besar:
P(ω1 ) = P(ω2 ) =
1
(8)
2
sehingga:
ω1
P( x | ω1 ) >
Λ( x) : 1 (9)
P ( x | ω2 ) <
ω2
3
layer 1 layer 2
A1 B1 C1
∑ ϕ(.) ∑ ϕ(.) D1
b11 b21
I1
1 1
I2 A2 B2 C2
∑ ϕ(.) ∑ ϕ(.) D2
M b12 b22
Ip 1 M 1 M M
Aq Bq Cr
wqp ∑ ϕ(.) ∑ ϕ(.) Dr
wrq
b1q b2r
1 1
Propagasi maju dikerjakan pada vektor input setahap demi setahap, hingga dihasilkan nilai D(k) pada
layer output. Pada iterasi ke n, nilai dari masing-masing variabel jaringan adalah:
p
A j (n ) = ∑ w ji .I i (n ) + b1 j
i =1
B j (n ) = ϕ (A j (n )) (10)
q
C k (n ) = ∑ wkj .B j (n ) + b2 k
j =1
Dk (n ) = ϕ (C k (n ))
Respon aktual dari jaringan tersebut diberikan oleh Dk. Apabila diinginkan vektor target (label
numerik dari masing-masing kelas) adalah Tk, maka besar error yang terjadi pada iterasi ke-n tersebut
adalah:
ek (n) = Tk − Dk (n) (11)
Sum of squared error jaringan untuk iterasi ke-n adalah jumlah dari squared error untuk seluruh
neuron pada layer 2:
r
E (n ) = ∑ ek2 (n ) (12)
k =1
Dengan N vektor target, diperoleh nilai MSE sebagai squared error rata-rata jaringan, yaitu:
1 r
MSE(n ) = ∑ ek2 (n ) (13)
N k =1
Propagasi balik bekerja dengan menggunakan faktor koreksi Δwkj(n) untuk bobot wkj(n), yang nilainya
sebanding dengan gradien δE(n)/δwkj(n). Nilai δE(n)/δwkj(n) ini selanjutnya akan diamati untuk
menentukan arah pencarian dalam ruang bobot bagi wkj(n).
Apabila nilai MSE yang diperoleh hingga iterasi tertentu belum memenuhi kriteria error yang
diharapkan, maka proses training dapat diulangi kembali dengan menggunakan data yang sama.
4
4. Tugas
A. Latar Belakang
Perusahaan pengalengan ikan hendak mengautomasikan proses pemilahan ikan menurut spesiesnya:
ikan salmon dan ikan sea-bass.
Dari pengamatan terhadap 50 sampel ikan, diperoleh data sebagai berikut:
• Ikan salmon
17 1
18 4
19 5
20 6
21 4
22 3
23 2
20 2
21 1
22 2
23 2
24 3
25 4
26 4
27 2
28 2
29 2
30 1
Dari hasil pengamatan tersebut, ternyata kita dapat mengetahui bahwa ukuran rata-rata dari ikan sea
bass ternyata lebih besar daripada ikan salmon. Fitur panjang ikan ini selanjutnya diklasifikasi dengan
menggunakan beberapa metoda yang telah dijelaskan.
5
B. Pertanyaan
1. Dengan mengasumsikan bahwa sampel yang diambil cukup representatif, maka berapakah rata-
rata dan deviasi standar dari panjang setiap jenis ikan?
Rata-rata . . . . . . . . . . . . . cm . . . . . . . . . . . . . cm
Deviasi Standar . . . . . . . . . . . . . cm . . . . . . . . . . . . . cm
2. Apabila diasumsikan kerapatan peluang dari masing-masing jenis ikan terdistribusi secara normal:
1 ⎡ 1⎛x−μ ⎞
2
⎤
P( x | ϖ i ) = exp⎢− ⎜⎜ i
⎟⎟ ⎥
σi 2π ⎢⎣ 2 ⎝ σ i ⎠ ⎥⎦
serta untuk menjaga kepuasan pelanggan, dipertimbangkan penggunaan parameter biaya salah
pilah sebagai berikut:
• Biaya salah pilah salmon menjadi sea bass
Pelanggan yang menemukan rasa lezat ikan salmon padahal ia memesan ikan sea bass →
CSeaBass-Salmon = 1
• Biaya salah pilah sea bass menjadi salmon
Pelanggan kecewa ketika merasakan ikan sea bass padahal ia membeli ikan salmon →
CSalmon-SeaBass = 2.5
• Biaya benar pilah → CSeaBass-SeaBass = CSalmon-Salmon = 0
6
3. Persamaan klasifikasi tersebut diterapkan ke 100 sampel uji berikut:
jumlah sampel jumlah sampel
panjang (cm) panjang (cm)
salmon sea bass salmon sea bass
17 1 0 24 2 7
18 3 2 25 1 8
19 5 3 26 0 11
20 8 3 27 0 9
21 6 5 28 0 5
22 4 4 29 0 4
23 3 4 30 0 2
hasil klasifikasi
total
ikan salmon ikan sea bass
ikan salmon ………. ………. 33
jenis ikan
ikan sea bass ………. ………. 67
total ………. ………. 100
Metoda manakah yang memberikan akurasi klasifikasi tertinggi? Berikan analisis mengapa
metoda tersebut lebih baik daripada metoda lainnya.
C. Kode Matlab
clear;clc;close all;
salmon= ...
[17 18 18 18 18 19 19 19 19 19 20 20 20 20 20 20 21 21 21 21 22 22 22 23 23];
seabass= ...
[20 20 21 22 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 28 28 29 29 30];
u1=mean(salmon); u2=mean(seabass);
o1=std(salmon) ; o2=std(seabass);
c11=0; c21=1; c22=0; c12=2.5;
pw1=0.35; pw2=1-pw1;
d1=ikanstat([pw1,pw2],[u1,u2],[o1,o2],[c11,c21,c12,c22],'Kriteria Bayes');
d2=ikanstat([pw1,pw2],[u1,u2],[o1,o2],[ 0, 1, 1, 0],'Kriteria MAP' );
d3=ikanstat([0.5,0.5],[u1,u2],[o1,o2],[ 0, 1, 1, 0],'Kriteria ML' );
d4=ikanjst (salmon,seabass);
7
%IKANSTAT Program klasifikasi ikan
% Program untuk mengklasifikasi vektor input (panjang ikan) ke dalam 2
% kelas output (salon dan seabass) dengan menggunakan metoda statistikal
function Disk=ikanstat(p,u,o,c,t)
figure,title(t),hold on,syms x;
xlabel('Panjang (cm)');ylabel('Rapat peluang');
pxw1=((o(1)^2*2*pi).^-0.5)*exp(-0.5*(x-u(1)).^2/o(1)^2);
pxw2=((o(2)^2*2*pi).^-0.5)*exp(-0.5*(x-u(2)).^2/o(2)^2);
Disk=double(solve(p(1)*(c(2)-c(1))*pxw1-p(2)*(c(3)-c(4))*pxw2));
JumlahDisk=size(Disk);
x=min(u(1)-4*o(1),u(2)-4*o(2)):0.01:max(u(1)+3*o(1),u(2)+3*o(2));
pxw1=(o(1)^2*2*pi).^-0.5*exp(-0.5*(x-u(1)).^2/o(1)^2);
pxw2=(o(2)^2*2*pi).^-0.5*exp(-0.5*(x-u(2)).^2/o(2)^2);
Gauss1 = line(x,pxw1,'LineWidth',3,'Color','b');
Gauss2 = line(x,pxw2,'LineWidth',3,'Color','r');
text(floor(u(1)-o(1)-1),pxw1(floor(100*(u(1)-o(1)-u(1)+4*o(1)))),...
'Salmon','horizontalalignment','right');
text(floor(u(2)+o(2)+1),pxw2(floor(100*(u(2)+o(2)-u(2)+4*o(2)))),...
'Sea Bass','horizontalalignment','left');
set(gca,'userdata',[Gauss1 Gauss2]);
t=0:0.001:1.0*max(max(pxw1),max(pxw2));
plot(Disk(1),t,':k');
if JumlahDisk(1)>1
plot(Disk(2),t,':k');
end
function c=ikanjst(salmon,seabass)
Input= [salmon,seabass];
Target=ones(1,50);Target(1:25)=0;