Anda di halaman 1dari 8

Modul 7

Pengantar Pengenalan Pola

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:

Objek ekstraksi fitur Hasil klasifikasi


pemilah
masukan fitur objek masukan

Gambar 1 Diagram blok sistem pengenalan pola

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

Metoda pengenalan pola terbagi dalam tiga kelompok, yaitu:


a. Statistik (statistical)
Proses pemilahan dilakukan berdasarkan model statistik dari fitur, yang didefinisikan sebagai
suatu keluarga dari fungsi kerapatan peluang kelas bersyarat P(x|ci) – peluang vektor fitur x
apabila diberikan kelas ci.

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.

2. Pengenalan Pola Secara Statistik


Perbincangan mengenai metoda statistik dalam persoalan pengenalan pola tidak dapat dilepaskan dari
teorema Bayes. Secara matematis, teorema ini didefinisikan menurut relasi berikut:

[ ]
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. Jaringan Syaraf Tiruan


Jaringan syaraf tiruan (JST) merupakan mesin yang didesain untuk memodelkan cara yang digunakan
otak untuk mengerjakan suatu fungsi tertentu. Suatu JST berwujud sebagai jaringan yang terdiri oleh
satu atau beberapa neuron yang terhubung satu sama lain dalam bobot yang berbeda-beda. Jaringan
ini memiliki kemampuan untuk memperoleh pengetahuan dari suatu proses belajar, dan kemudian
menyimpannya untuk kebutuhan penggunaan berikutnya.
Pengembangan JST dipicu oleh adanya pemikiran bahwa otak manusia melakukan komputasi dalam
cara yang sama sekali berbeda dengan pada komputer digital. Oleh karena itu, JST didesain untuk
memiliki beberapa persamaan sifat dengan otak, yaitu dalam hal:
• Pengetahuan yang dimiliki diperoleh dari suatu proses belajar.
• Pengetahuan disimpan dalam bentuk bobot koneksi antar neuron.
Suatu JST dikatakan memiliki arsitektur feedforward apabila setiap output dari setiap neuron
diteruskan dari sisi input ke sisi outputnya. Dalam sebuah arsitektur feedforward tersebut, neuron
dapat dikelompokkan dalam satu atau lebih layer, di mana setiap layer tidak memiliki hubungan
feedback dengan layer lainnya. Ilustrasi mengenai suatu arsitektur feedforward-network yang tersusun
oleh 2 buah layer diberikan pada Gambar 4.
Algoritma belajar yang amat populer bagi arsitektur feedforward-network adalah algoritma
backpropagation. Pada algoritma ini, proses pelatihan terhadap jaringan berjalan melalui dua proses
propagasi, yaitu propagasi maju dan propagasi balik.

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

Gambar 3. Contoh feedforward network dengan 2 layer

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

panjang (cm) jumlah sampel

17 1
18 4
19 5
20 6
21 4
22 3
23 2

• Ikan sea bass

panjang (cm) jumlah sampel

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?

ikan salmon ikan sea bass

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 ⎠ ⎥⎦

dan peluang prior dari masing-masing kelas adalah:


P(ωSalmon) = 0.35
P(ωSeaBass) = 0.65

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

maka tentukanlah persamaan klasifikasi:


ω1
Λ ( x) : x > ............. cm
<
ω2
menurut:
a. Kriteria Bayes
b. Kriteria MAP
c. Kriteria ML
d. Jaringan syaraf tiruan

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

™ Lengkapi tabel berikut untuk masing-masing metoda.

hasil klasifikasi
total
ikan salmon ikan sea bass
ikan salmon ………. ………. 33
jenis ikan
ikan sea bass ………. ………. 67
total ………. ………. 100

Peluang ikan salmon diklasifikasi benar = ………….. %


Peluang ikan sea bass diklasifikasi benar = ………….. %

Peluang benarnya keputusan klasifikasi ikan salmon = ………….. %


Peluang benarnya keputusan klasifikasi ikan sea bass = ………….. %

™ Metoda manakah yang memberikan akurasi klasifikasi tertinggi? Berikan analisis mengapa
metoda tersebut lebih baik daripada metoda lainnya.

C. Kode Matlab

%IKAN Program klasifikasi ikan


% Program untuk mengklasifikasi vektor input (panjang ikan) ke dalam 2
% kelas output (salon dan seabass)

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

%IKANJST Program klasifikasi ikan


% Program untuk mengklasifikasi vektor input (panjang ikan) ke dalam 2
% kelas output (salon dan seabass) dengan menggunakan sebuah JST yang
% memiliki 2 layer dan 2 neuron.

function c=ikanjst(salmon,seabass)

Input= [salmon,seabass];
Target=ones(1,50);Target(1:25)=0;

figure,net=init(newff([min(Input) max(Input)],[1 1],{'logsig','logsig'}));


net.trainParam.show = 10;
net.trainParam.epochs = 100;
net.trainParam.lr = 0.05;
net=train(net,Input,Target);

figure,hold on,axis([min(Input) max(Input) -0.1 1.1]);


RangeInput=[floor(min(Input)):0.001:ceil(max(Input))];
Output=sim(net,RangeInput);
RoundOutput=round(Output);
[a b]=min(abs(Output-0.5));
c=0.001*b+floor(min(Input));
plot(RangeInput,Output,'LineWidth',3,'Color','b');
plot(RangeInput,RoundOutput,'--','LineWidth',3,'Color','r');
t=-0.1:0.01:1.1; plot(c,t);
t=min(Input):0.1:max(Input); plot(t,0.5);
text(round(c+min(Input))/2,0.55,...
'Salmon' ,'horizontalalignment','center');
text(round(c+max(Input))/2,0.55,...
'Sea Bass','horizontalalignment','center');

Anda mungkin juga menyukai