Anda di halaman 1dari 24

PRAKTIKUM VII

ALGORITMA PERCEPTRON UNTUK


PENGENALAN POLA
LAPORAN PRAKTIKUM TEKNIK KLASIFIKASI

DAN PENGENALAN POLA

Disusun Oleh:

Rayuh Dhilah Hanggara

1501022088

LABORATORIUM KOMPUTER DAN INFORMATIKA


PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
2017
PRAKTIKUM VIi

ALGORITMA PERCEPTRON UNTUK PENGENALAN POLA

A. TUJUAN PRAKTIKUM
1. Mahasiswa mampu memahami algoritma perceptron

B. DASAR TEORI
Perceptron biasanya digunakan untuk mengklasifikasikan pola tertentu dan
juga dikenal sebagai pemisah secara linear. Perceptron mempunyai 3 lapis neuron
yaitu: unit sensori, unit asosiator dan unit tanggapan.
Output perceptron: y = f (y_in)
dengan fungsi aktivasi:

Implementasi dalam MATLAB


function y=bipolar2(x,th)
if x > th
y=1;
elseif x < -1*th
y=-1;
else
y=0;
end
end

Perubahan bobot:
wi(baru) = wi(lama) + at.xi
dengan nilai target t= +1 atau -1 dan a = laju pelatihan

Algoritma Perceptron (MISO):


L0. Inisialisasi bobot dan bias (untuk mudahnya tetapkan semua bobot dan bias
sama dengan nol)
Tetapkan laju pelatihan a (0<a1) dan (untuk mudahnya a = 1)
L1. Selama syarat berhenti bernilai false, kerjakan langkah 2-6,
L2. Untuk setiap pasangan pembelajaran s:t, kerjakan langkah 3-5,
L3. Tetapkan aktivasi unit input
Xi = si; dengan i= 1,2,,n
L4. Hitung tangggapan unit output
L5. Perbarui bobot dan bias jika terjadi error.
Bila y t maka:
wi(baru) = wi(lama) + a.t.xi
b(baru) = b(lama) + a.t
Bila y = t, maka:
wi(baru) = wi(lama)
b(baru) = b(lama)
L6. Uji syarat berhenti; jika tidak terjadi perubahan bobot pada langkah 2, maka
kondisi berhenti true, namun bila masih terjadi perubahan maka kondisi berhenti
false.

function [w,b,err]=lperceptron1(pm,pt,lp,maxiter)
%Input : pm = pola-pola masukan
% pt = pola-pola target
% lp = laju pembelajaran
% maxiter = jumlah maksimum iterasi
% eps = toleransi error
%Output : w = bobot
% b = bias
% err = error
%==========================================
% inisialisasi semua bobot dan bias nol
w= rand(1,length(pm(1,:)));
w=w-w;
b=0;
n=0;
MSE=1;
err=[];
while (n < maxiter)
disp('iterasi ke:'),n+1
for k=1:length(pm(:,1))
disp('data ke:'),k
s= pm(k,:);
x=s;
yin=b+sum(x*w');
y=bipolar2(yin,0.2);
t=pt(k,:);
if y ~= t
% Perbarui bobot
w= w + (lp*t* x)
b= b+(lp*t)
else
% Perbarui bobot
w=w
b=b
end

e(k)=(y-t)
end
n=n+1;
err(n)=sqrt(sum(e.A2))/(length(pm(:,1))*n);
MSE=err(n)
end

Algoritma Perceptron MIMO (Multi Input Multi Output):


L0. Inisialisasi bobot dan bias (untuk mudahnya tetapkan semua bobot dan bias
sama dengan nol)
Tetapkan laju pelatihan a (0<a1) dan (untuk mudahnya a = 1)
L1. Selama syarat berhenti bernilai false, kerjakan langkah 2-6, {jumlah iterasi /
toleransi error}
L2. Untuk setiap pasangan pembelajaran s:t, kerjakan langkah 3-5,
L3. Tetapkan aktivasi unit input
xi = si; dengan i= 1,2,...,n
L4. Hitung tangggapan unit output

L5. Perbarui bobot dan bias jika terjadi error:


Bila y t maka:
wij(baru ) = wij(lama) + a.tj,xi
bj(baru ) = bj (lama) + a.tj
Bila y = t, maka:
wij (baru) = wij(lama)
b(baru) = b(lama)
L6. Uji syarat berhenti; jika tidak terjadi perubahan bobot pada langkah 2, maka
kondisi berhenti true, namun bila masih terjadi perubahan maka kondisi berhenti
false.
function [w,b,err]=lperceptron2(pm,pt,lp,maxiter)
%Input : pm = pola-pola masukan
% pt = pola-pola target
% lp = laju pembelajaran
% maxiter = jumlah maksimum iterasi
% eps = toleransi error
%Output : w = bobot
% b = bias
% err = error
%=============================
% inisialisasi semua bobot dan bias nol
n=length(pm(1,:));
m=length(pt(1,:));
w= zeros(n,m);
b=zeros(1,m);
err=[];
while (n < maxiter);
for iter= 1: maxiter
disp('iterasi ke:'),iter
for k=1:length(pm(:,1))
disp('data ke:'),k
for i=1:n;
s(i)= pm(k,i);
x(i)=s(i);
end
for j=1:m;
yin(j) =b(j)+sum(x(i)*w(i,j)');
y(j)=bipolar2(yin(j),0.5);
end
if y(j) ~= t(j)
% Perbarui bobot w(i,j)= w(i,j) + (lp*t(j)* x(i,j))
b(j)= b(j)+(lp*t(j))
else
% Perbarui bobot
w(i,j)=w(I,j)
b(j)=b(j)
end
end
end
C. ALAT DA BAHAN
1. Komputer
2. Matlab 2014b

D. HASIL DAN PEMBAHASAN


1. Algoritma Perceptron
a. Pembuatan fungsi lperceptron1.m
Algoritma perceptron yang pertama yaitu MISO(Multiple Input
Single Output) dengan penulisan programnya seperti gambar di bawah ini
dengan kemudian dapat dipanggil disertai memberikan parameter inputnya:

Gambar 4.1.1 Program lperceptron1.m


Gambar 4.1.2 Program lperceptron1.m (Lanjutan)
Fungsi ini dituliskan kedalam empat puluh dua baris program, baris
pertama merupakan penulisan untuk input dan output variable dengan
w,b,dan err sebagai variable output dan pm,pt,lp serta maxiter adalah
variable input. Sedangkan lperceptron1 sendiri adalah nama file yang
sekaligus sebagai nama fungsi untuk dipanggil saat nanti akan diperlukan.
Berlanjut ke sepuluh baris berikutnya pada baris kedua hingga seterusnya
adalah komentar atau hanya sekedar informasi atau catatan bagi pengguna
fungsi tersebut. Setelahnya terdapat baris-baris program yang dimulai dari
baris keduabelas hingga ketujuhbelas merupakan bagian inisiasi awal
sedangkan pada baris kedelapan belas hingga empat puluh dua adalah
langkah langkah atau susunan algoritma dari fungsi perceptron MISO itu
sendiri.

b. Pembuatan fungsi lperceptron2.m


Fungsi perceptron kedua yang dibuat yaitu fungsi MIMO(Multiple
Input Multiple Output) dengan penulisan programnya seperti gambar 4.1.3
dengan kemudian dapat dipanggil disertai memberikan parameter inputnya:
Gambar 4.1.3 Program sigmod.m
Fungsi ini dituliskan kedalam empat puluh satu baris program, baris
pertama merupakan penulisan untuk input dan output variable dengan w,b,
dan err sebagai variable output dan pt,pm,lp serta maxiter adalah variable
input. Sedangkan lperceptron2 sendiri adalah nama file yang sekaligus
sebagai nama fungsi untuk dipanggil saat nanti akan diperlukan. Berlanjut
ke baris berikutnya pada baris kedua hingga sepuluh baris berikutnya adalah
komentar atau hanya sekedar informasi atau catatan bagi pengguna fungsi
tersebut. Setelahnya terdapat baris-baris program yang dimulai dari baris
keduabelas hingga ke enambelas merupakan bagian inisiasi awal sedangkan
pada baris ke tujuh belas hingga empat puluh satu adalah langkah langkah
atau susunan algoritma dari fungsi perceptron MIMO itu sendiri.

2. Menuliskan program fungsi Prak71a.m


Setelah dilakukan penyiapan fungsi untuk perceptron MISO
maupun MIMO dilakukan penulisan program atau fungsi baru yang
menerapkan algoritma perceptron tersebut sehingga dapat diuji cobakan
untuk mengetahui penerapan algoritma perceptron secara nyata. Berikut
pada gambar 4.2.1 diperlihatkan penulisan program implementasi algoritma
perceptron MISO tahap pelatihan atau training.
Program fungsi Prak71a.m secara keseluruhan merupakan listing
program yang di dalamnya terbagi ke dalam langkah-langkah dengan terdiri
dari inisialisasi awal termasuk pemberian nilainya, setelahnya diikuti
pemanggilan fungsi lperceptron1. Sedangkan pada baris terakhir merupakan
proses penyimpanan data dari hasil perhitungan atau pemrosesan oleh
fungsi perceptron tadi.

Gambar 4.2.1 program Prak71a.m

Meski pada akhir eksekusi fungsi tersebut dilakukan penyimpanan


namun dapat kita cermati hasil eksekusinya berdasarkan variable variable
output yang sudah disiapkan, seperti pada gambar gambar hasil percobaan
berikut ini.
(a) (b)
Gambar 4.2.2 iterasi pertama (a) data ke 1 (b) data ke 2 dan 3
(a) (b)

Gambar 4.2.3 (a) iterasi pertama data ke 4 dan (b) iterasi kedua data ke 1 dan 2
(a) (b)

Gambar 4.2.4 (a) iterasi kedua data ke 3 dan 4 (b) iterasi ketiga data ke 1
(a) (b)

Gambar 4.2.5 (a) iterasi ketiga data ke 2 dan 3 (b) data ke 4


Gambar 4.2.6 iterasi ketiga data akhir

3. Menuliskan program fungsi Prak71b.m


Setelah proses pelatihan dilakukan, maka berikutnya adalah
pengujian dari fungsi yang dibuat untuk algoritma perceptron MISO.
Disiapkan terlebih dahulu listing program seperti pada gambar 4.3.1 berikut.
Program fungsi Prak71b.m secara keseluruhan merupakan listing
program penerapan untuk pengenalan pola menggunakan algoritma MISO.
Awal program akan dimuat ulang file yang berisi data pelatihan, diikuti
dengan permintaan program kepada pengguna fungsi tersebut untuk
menginputkan data yang ingin diujikan. Dilanjutkan dengan perhitungan
hingga pada baris kesembilan disertai pemanggilan fungsi bipolar2 yang
pernah dibuat di praktikum sebelumnya.

Gambar 4.3.1 program Prak71b.m


Seketika fungsi ini di running maka dapat dilihat pada gambar-
gambar berikut ini yang merupakan hasil eksekusinya.

Gambar 4.3.2 hasil dari pola uji [1 1]

Gambar 4.3.3 hasil dari pola uji [1 0]

Gambar 4.3.4 hasil dari pola uji [0 1]


Gambar 4.3.5 hasil dari pola uji [0 0]

Diberikan variasi terhadap nilai threshold sehingga dapat dicermati


seberapa besar pengaruh dari nilai threshold tersebut dengan nilai yang
diperoleh.

Variasi pertama terhadap nilai thresholdnya yaitu diberikan nilai 2


untuk Th.

Gambar 4.3.6 pengubahan nilai Th=2

Gambar 4.3.7 hasil dari pola uji [1 1] Th=2


Gambar 4.3.8 hasil dari pola uji [1 0] Th=2

Gambar 4.3.9 hasil dari pola uji [0 1] Th=2

Gambar 4.3.10 hasil dari pola uji [0 0] Th=2

Variasi kedua terhadap nilai thresholdnya yaitu diberikan nilai 3


untuk Th.
Gambar 4.3.11 pengubahan nilai Th=3

Gambar 4.3.12 hasil dari pola uji [1 1] Th=3

Gambar 4.3.13 hasil dari pola uji [1 0] Th=3

Gambar 4.3.14 hasil dari pola uji [0 1] Th=3


Gambar 4.3.15 hasil dari pola uji [0 0] Th=3

E. TUGAS
Pada penugasan dilakukan penerapan untuk kedua fungsi yang
sudah dituliskan sebelumnya yaitu Prak71a.m dan Prak71b.m dengan
menuliskannya disertai sedikit perubahan program seperti pada gambar
5.1.1 di bawah ini.

Gambar 5.1.1 program Prak72a.m

Perubahan yang terjadi pada listing program tersebut yaitu pada nilai
nilai yang diberikan untuk variable pm dan pt yang disesuaikan dengan
tabel. Kemudian untuk fungsi perceptron yang dipanggil adalah untuk
algoritma MIMO (multi input multi output).
Berikut di bawah ini hasil-hasil yang ditampilkan oleh program
tersebut ketika di running untuk melakukan pembelajaran atau training.
Gambar 5.1.2 hasil dari pelatihan untuk algoritma perceptron MIMO

Serupa dengan percobaan pertama, setelah proses pelatihan


dilakukan, maka berikutnya adalah pengujian dari fungsi yang dibuat untuk
algoritma perceptron MIMO. Disiapkan terlebih dahulu listing program
seperti pada gambar 5.1.3 berikut.

Gambar 5.1.3 program Prak72b.m

Program fungsi Prak72b.m secara keseluruhan merupakan listing


program penerapan untuk pengenalan pola menggunakan algoritma MIMO.
Awal program akan dimuat ulang file yang berisi data pelatihan, diikuti
dengan permintaan program kepada pengguna fungsi tersebut untuk
menginputkan data yang ingin diujikan. Dilanjutkan dengan perhitungan
hingga pada baris kesembilan disertai pemanggilan fungsi bipolar2 yang
pernah dibuat di praktikum sebelumnya.

Seketika fungsi ini di running maka dapat dilihat pada gambar-


gambar berikut ini yang merupakan hasil eksekusinya.

Gambar 5.1.4 hasil dari pola uji [0 1 0 0]

Gambar 5.1.5 hasil dari pola uji [0 0 0 1]


Gambar 5.1.6 hasil dari pola uji [0 1 1 0]

Gambar 5.1.7 hasil dari pola uji [0 0 1 1]

Gambar 5.1.8 hasil dari pola uji [1 1 0 0]


Gambar 5.1.9 hasil dari pola uji [1 0 0 1]

Gambar 5.1.10 hasil dari pola uji [1 1 1 0]

Gambar 5.1.11 hasil dari pola uji [1 0 1 1]


F. KESIMPULAN
1. Pengenalan pola dapat dilakukan dengan menggunakan algoritma
perceptron.
2. Terdapat beberapa model algoritma perceptron yang diujikan dengan
menyesuiakan masukan dan keluarannya yaitu MISO dan MIMO.
3. Penyesuaian nilai threshold dapat memaksimalkan ketepatan dalam
program ini sehingga antara pola target dengan pola masukan diperoleh
kemiripan yang dekat.

G. REFERENSI

Fadlil, A. (2016) Petunjuk Praktikum Teknik Klasifikasi & Pengenalan Pola,


Yogyakarta: Universitas Ahmad Dahlan.

Anda mungkin juga menyukai