Anda di halaman 1dari 14

Klasifikasi (Season 3)

ANN Perceptron
Pengenalan Pola
Materi 3
Artificial Neural Network
 ANN merupakan suatu konsep rekayasa pengetahuan dalam
bidang kecerdasan buatan yang didesain dengan
mengadopsi sistem saraf manusia
◦ Pemrosesan utama sistem syaraf manusia ada di otak.
 Bagian terkecil dari otak adalah sel saraf yang disebut
sebagai unit dasar pemroses informasi (neuron).
◦ Ada sekitar 10 milyar neuron dalam otak manusia, sekitar 60
trilyun koneksi (disebut synapse) antar neuron dalam otak
manusia (Shepherd dan Koch, 1990).
 Penggunaan neuron-neorun tersebut secara simultan, otak
manusia dapat memproses informasi secara paralel dan
cepat
◦ bahkan lebih cepat dari komputer tercepat saat ini
 Elemen neuron: badan sel (disebut soma), sejumlah serat
yang menyalurkan informasi ke neuron (disebut dendrite),
dan sebuah serat tunggal keluar dari neuron (disebut axon)

2
Artificial Neural Network
 ANN terdiri dari :
◦ Sebuah unit pemroses, disebut neuron (axon kalau dalam otak
manusia) yang berisi penambah (adder) dan fungsi aktivasi,
◦ Sejumlah bobot (synapse dalam otak manusia)
◦ Sejumlah vektor masukan (dendrite dalam otak manusia).
◦ Fungsi aktivasi, berguna untuk mengatur keluaran yang diberikan
oleh neuron.
 Seperti halnya manusia yang otaknya selalu belajar dari
lingkungan, ANN membutuhkan proses pelatihan agar ANN
dapat melakukan prediksi kelas suatu data uji baru yang
ditemukan.
 Algoritma proses pelatihan ANN: Perceptron, Backpropagation,
Self Organizing Map (SOM), Delta, Associative Memori, Learning
Vector Quantization, dsb. Vektor
Masukan Neuron
x1 w1 Pemroses Sinyal
Keluaran
S
w2
x2 y
w3
x3
T
3
Fungsi aktivasi 2

 Fungsi aktivasi linear 0

y
y  sign (v)  v -2
-2 0 2
v
2
 Fungsi aktivasi step
◦ Step biner 0

y
1 jika v  T
y  sign (v)  
0 jika v  T
◦ Step bipolar
-2
-2 0 2
 1 jika v  T v
y  sign (v)   2
- 1 jika v  T
 Fungsi aktivasi sigmoid 0

y
biner 1
y  sign (v)  -2
1  e av -5 0 5
v
2

 Fungsi aktivasi sigmoid 0

y
bipolar 2
y  sign (v)  1
1  e av -2
-5 0 5
v
4
Artificial Neural Network
 Ditinjau dari jumlah layer, ANN bisa
dibagi menjadi 2 macam: ANN layer
tunggal dan ANN layer jamak.
 ANN dengan layer tunggal mempunyai
satu lapis neuron pemroses.
◦ Satu lapis bisa berisi banyak neuron.
◦ Contoh algoritma ANN layer tunggal: ANN layer tunggal
Perceptron, Delta, dsb.
 ANN dengan layer jamak mempunyai
sejumlah neuron perantara yang
menghubungkan vektor masukan
dengan layer keluar, layer perantara ini
disebut sebagai layer tersembunyi
(hidden layer).
◦ Contoh algoritma ANN layer jamak:
Back-propagation, Construktive
Backpropagation, Recurrent Neural
Network, dsb. ANN layer jamak

5
Perceptron
 Perceptrom merupakan salah satu jenis ANN dengan
layer tunggal.
 Pertama kali diperkenalkan oleh Frank Rosenblatt yang
berisi algoritma pelatihan yang digunakan untuk
membangun model ANN (Rosenblatt, 1958).
 Perceptron yang paling sederhana menggunakan satu
neuron pemroses
◦ Karena hanya satu neuron pemroses maka perceptron
dengan satu neuron hanya bisa melakukan klasifikasi dua
kelas.
◦ Jika ingin klasifikasi dengan jumlah kelas lebih dari dua,
digunakan jumlah neuron sama dengan jumlah kelasnya,
misal untuk klasifikasi tiga kelas digunakan tiga neuron,
untuk klasifikasi empat kelas digunakan empat neuron, dan
seterusnya.

6
Algoritma Pelatihan perceptron
D = {(xi, yi)|i = 1,2,3...,n} adalah himpunan data latih
Inisialisasi bobot awal w(0)
repeat
for setiap data latih do
Hitung v = jumlah hasil kali setiap fitur dengan bobot
masing-masing
η
Hitung y’ dengan fungsi aktivasi
Hitung error sebagai hasil selisih antara target kelas y
dengan y’
if error masih ada then
Ubah bobot, w(k+1) = w(k) + .error.X
end if
end for
until kondisi berhenti tercapai

7
atau dalam Bahasa lain
ALGORITMA PERCEPTRON
1. Inisialisasi semua bobot (wi) dan bias (b), umumnya wi = b = 0.

2. Tentukan laju pembelajaran, η. Untuk penyederhanaan, pilih η=1


3. Selama ada elemen vektor masukan (s) yang respon unit keluarannya
(y) tidak sama dengan target (t), lakukan :
a. Set aktivasi unit masukan xi = si ( i = 1, …, n )
b. Hitung respon unit keluaran : net = ∑i xi wi + b
y = f (net) =
4. Perbaiki bobot pola yang mengandung kesalahan ( y ≠ t ) menurut
persamaan :

Wi (baru) = Wi (lama) + ∆w (i=1, …,n) dengan ∆w = η t xi

b (baru) = b (lama) + ∆b dengan ∆b = η t

8
Perceptron
  adalah konstanta laju pembelajaran (learning rate) nilainya mulai 0
sampai 1.
 Nilai error adalah selisih antara target kelas yang diinginkan y
dengan nilai keluaran yang didapatkan y’, jika nilainya masih
melebihi batas maka dilakukan perubahan bobot. Sedangkan X
adalah vektor masukan (data) yang sedang diproses.
 Kondisi berhentinya proses pelatihan:
◦ Tidak adanya error pada nilai keluaran semua vektor masukan
◦ Sum of Square Error (SSE)
◦ Jumlah iterasi pelatihan
 Contoh kasus sederhana penyelesaian masalah pengenalan pola
data masukan dengan kelas sebagai keluaran hasil prediksi adalah
masalah memodelkan operasi logika AND dengan ANN

x1 x2 kelas (y) w1 = 2
x1
1 1 1 w1

1 0 0 w2
y

0 1 0 x2 w2= 2
T=3
T
0 0 0
9
Contoh
 Klasifikasi perkiraan kebangkrutan keuangan orang.
 Fitur yang digunakan: harta dan utang.
 Data set ada 5, harta dan utang (dalam satuan juta).
FITUR Representasi status:
STATUS 1= Tidak bangkrut
HARTA UTANG
0 = Bangkrut
1.2 0.3 Tidak Bangkrut 2

0.8 0.6 Tidak Bangkrut 1.5

1.1 1 Tidak Bangkrut 1

0.4 1 Bangkrut 0.5

0.5 1.5 Bangkrut 0


0 0.5 1 1.5 2

 Jika ada orang dengan harta (x1) sebesar 0.7 juta,


utang (x2) sebesar 0.6 juta. Apakah dia bangkrut atau
tidak ?

10
Penyelesaian dengan
Perceptron
 Bobot awal untuk w1 dan w2 masing-masing -1.8 dan 2.9
 Laju pembelajaran = 0.9, T untuk fungsi aktivasi step = 0
kelu targe
masukan error delta bobot bobot baru
ite v aran t
[x1 x2] y' d [w1 w2] [w1 w2]
Inisialisasi [-1.8 2.9]
[1.2 0.3] -1.2900 0 1 1 [1.0800 0.2700] [-0.7200 3.1700]
[0.8 0.6] 1.3260 1 1 0 [0 0] [-0.7200 3.1700]
1 [1.1 1] 2.3780 1 1 1 [0 0] [-0.7200 3.1700]
[0.4 1] 2.8820 1 0 -1 [-0.3600 -0.9000] [-1.0800 2.2700]
[0.5 1.5] 2.8650 1 0 -1 [-0.4500 -1.3500] [-1.5300 0.9200]
[1.2 0.3] -1.5600 0 1 1 [1.0800 0.2700] [-0.4500 1.1900]
[0.8 0.6] 0.3540 1 1 0 [0 0] [-0.4500 1.1900]
2 [1.1 1] 0.6950 1 1 0 [0 0] [-0.4500 1.1900]
[0.4 1] 1.0100 1 0 -1 [-0.3600 -0.9000] [-0.8100 0.2900]
[0.5 1.5] 0.0300 1 0 -1 [-0.4500 -1.3500] [-1.2600 -1.0600]
[1.2 0.3] -1.8300 0 1 1 [1.0800 0.2700] [-0.1800 -0.7900]
[0.8 0.6] -0.6180 0 1 1 [0.7200 0.5400] [0.5400 -0.2500]
3 [1.1 1] 0.3440 1 1 0 [0 0] [0.5400 -0.2500]
[0.4 1] -0.0340 0 0 0 [0 0] [0.5400 -0.2500]
[0.5 1.5] -0.1050 0 0 0 [0 0] [0.5400 -0.2500]
[1.2 0.3] 0.5730 1 1 0 [0 0] [0.5400 -0.2500]
[0.8 0.6] 0.2820 1 1 0 [0 0] [0.5400 -0.2500]
4 [1.1 1] 0.3440 1 1 0 [0 0] [0.5400 -0.2500] Bobot
[0.4 1] -0.0340 0 0 0 [0 0] [0.5400 -0.2500] akhir
[0.5 1.5] -0.1050 0 0 0 [0 0] [0.5400 -0.2500] 11
Penyelesaian dengan
Perceptron
 Setelah 4 kali iterasi, ternyata tidak ditemukan error, maka
iterasi dihentikan
 Didapatkan bobot akhir (sebagai model) perceptron [w1 w2] =
[0.5400 -0.2500]
 Menggunakan bobot akhir tersebut untuk mendapatkan hasil
prediksi data uji [0.7 0.6]
◦ v= x1*w1+x2*w2 = 0.7*0.5400+0.6*(-0.2500) = 0.2280
◦ y = sign(v) = sign(0.2280) = 1
◦ Karena y = 1 (Tidak bangkrut) maka orang tersebut
dikategorikan tidak bangkrut.
2

1.5 Garis keputusan


Kelas bangkrut perceptron
1

0.5
Kelas tidak bangkrut

0
0 0.5 1 1.5 2

12
Nama file: perceptron_bangkrut.m
% jaringan Perceptron AND
data_latih = [
%x1 x2
1.2 0.3
0.8 0.6
1.1 1
0.4 1
0.5 1.5
];
kelas_latih = [
1 1 1 0 0
]';
bobot = [
-1.8 2.9
];
lr = 0.9;
[M,N]=size(data_latih);
for iterasi=1:6
for i=1:M
v = data_latih(i,:) * bobot';
yk = fa_threshold(v);
if target(i) - yk ~= 0
i
deltabobot = lr * (kelas_latih(i) - yk) * data_latih(i,:)
bobot = bobot + deltabobot;
end
end
display(['Bobot pada iterasi ke-',num2str(iterasi),' = ',mat2str(bobot')]);
End

%Menggambar diagram data latih dan garis keputusan perceptron


% -----BERLAKU HANYA UNTUK DATA 2 FITUR-----
plot(data_latih(logical(kelas_latih),1), data_latih(logical(kelas_latih),2),'kx', 'MarkerSize', 8); axis([0 2 0
2]);
hold on
plot(data_latih(logical(1-kelas_latih),1), data_latih(logical(1-kelas_latih),2),'k+', 'MarkerSize', 8); axis([0 2 0
2]);
%Menggambar fungsi bobot
a(1,1) = 1;
a(1,2) = a(1)*bobot(1) / (-bobot(2));
b(1,1) = -5;
b(1,2) = b(1)*bobot(1) / (-bobot(2));
garis = [a;b];
plot(garis(:,1),garis(:,2));

%Prediksi
data_uji = [0.5400 -0.2500];
v = data_uji * bobot';
y = fa_threshold(v)
13
Untuk fungsi aktivasi
Nama file: fa_threshold.m
function y = fa_threhold(v)
if v >= 0
y = 1;
else
y = 0;
end

Bagaimana jika ada orang dengan keuangan seperti dibawah ini ?

2
FITUR
STATUS 1.5
HARTA UTANG
1 1.6 ? 1

0.3 0.4 ? 0.5

0.65 1.44 ? 0
0 0.5 1 1.5 2
0.87 1.25 ?
Model garis keputusan
0.21 0.5 ? yang didapat sebelumnya

14

Anda mungkin juga menyukai