Anda di halaman 1dari 6

www.randilabs.

com

Perceptron
Arsitektur Jaringan
Arsitektur jaringan perceptron terdiri dari sebuah bias (yang ada secara default) dan beberapa
masukan yang menghasilkan sebuah keluaran. Di ilustrasikan seperti gambar berikut ini:

1 b

X1 W1

W2
X2

Wn
Xn

Fungsi aktivasi sebuah perceptron dapat berupa nilai -1, 0 atau 1 (tapi akan berbeda saat melakukan
implementasi pada Matlab, karena masukan dan target yang dipakai dapat bernilai bebas dan
threshold yang dipakai adalah 0), dengan penentuan 𝜃 (threshold) sebagai berikut:
1 (𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 > 𝜃
f(net) = {0 (𝑗𝑖𝑘𝑎 − 𝜃 ≤ 𝑛𝑒𝑡 ≤ 𝜃
−1 (𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 < −𝜃

Perceptron dalam Matlab


Mengenal Pembentukan Jaringan
Perceptron adalah salah satu model yang dapat diselesaikan secara sederhana dengan Matlab. Dalam
Matlab telah tersedua toolbox yang dapat dimanfaatkan untuk menyelesaikan sebuah model jaringan
syaraf tiruan perceptron. Untuk mengeksekusi perceptron pada Matlab, pengguna dapat
menggunakan perintah newp, perintah ini akan membentuk sebuah perceptron dengan spesifikasi
terntentu berdasarkan jumlah input, jumlah neuron, fungsi aktivasi atau lainnya. Format penulisannya
ialah sebagai berikut:

n = newp(AA,B,CC,DD)

 AA: matriks ordo R-buah-unit-masukan x 2 yang menyatakan nilai minimum dan maksimum
dari input.
 B: jumlah neuron target.
 CC: fungsi aktivasi (biner), default-nya adalah fungsi threshold (atau dalam toolbox Matlab
disebut dengan hardlim).
 DD: fungsi pelatihan (toolbox Matlab-nya disebut learnp).

1 Follow me @randiekayonida
www.randilabs.com

Fungsi learnp dapat digunakan untuk mengubah bobot sehingga bisa mendekati nilai target yang
diinginkan. Untuk mengubah fungsi aktivasi threshold bipolar, fungsi aktivasi (pada contoh format
kode dilambangkan dengan CC) dapat dibuah ke hardlims. Pada fungsi newp secara otomatis bobot
akan di set bernilai 0. Namun pengguna dapat mengubag bobot dengan menggunakan penugasan
terhadap n.IW( { i, j } dan n.b { i }.
Contoh:
Semisal hendak membuat perceptron untuk mengenali logika AND dua variabel X1 dan X2. Logika AND
tersebut dengan dua variabel masing-masing memiliki range nilai masukan [ 0, 1 ] dan sebuah target.
Maka sintaks yang dituliskan pada Command Window:

n = newp([0 1; 0 1],1);

Matrik [0 1] pertama menunjukkan nilai X1 dan yang kedua menunjukkan nilai X2 dan 1 menginisialisasi
jaringan yang hanya memiliki satu target/neuron. Matlab akan memberikan hasil beupa bobot awal,
bias hingga perubahan bobot dengan nilai default.

Pembentukan Vektor Masukan dan Target


Ketika hendak membuat perceptron dengan nilai input dan target sesuai kehendak, misal untuk
membuat pola logika AND dengan bobot awal w = [-1 1] dan bias b = [1], maka dapat di gambarkan
dan dituliskan dengan cara berikut:
Pola Input Input Target
P1 1 1
( )
1
P2 1 0
( )
0
P3 0 0
( )
1
P4 0 0
( )
0

Sintaks Matlab yang digunakan adalah sebagai berikut:

n = newp ([0 1; 0 1],1);


n.IW {1,1} = [-1 1];
n.b {1} = [1];
p = [[1;1],[1;0],[0;1],[0;0]];
t = [1 0 0 0];

Menghitung Keluaran Perceptron


Langkah berikutnya setelah membuat input ialah melakukan perhitungan untuk menghasilkan suatu
keluaran jaringan. Pada Matlab pengguna dapat menggunakan perintah sim untuk menghitung

2 Follow me @randiekayonida
www.randilabs.com

keluaran perceptron. Contohnya ketika hendak menghitung inputan yang ada pada bab sebelumnya
dapat menggunakan perintah berikut ini:

a = sim(n,p)

Vektor a adalah keluaran dari P1, P2, P3 dan P4 dengan menggunakan bobot dan bias yang telah
ditentukan. Secara lengkap fungsi sim pada Matlab memiliki format seprti berikut:

[Y, Pf, Af, E, perf] = sim(n, P, Pi, Ai, T)

Parameter Masukan

 n : variabel jaringan dalam perintah newp.


 P : vektor masukan jaringan.
 Pi : kondisi delay awal masukan, dengan nilai default adalah 0.
 Ai : kondisi delay layar, dengan nilai default adalah 0.
 T : target dai jaringan, dengan nilai default adalah 0.

Parameter Hasil

 Y : keluaran jaringan.
 Pf : kondisi delay akhir masukan.
 Af : kondisi akhir delay layar.
 E : error jaringan ( T – Y ).
 perf : kinerja jaringan.

Tidak semua jaringan memiliki delay masukan dan layar, seperti pada yang dicontohkan adalah sebuah
jaringan sederhana. Untuk menghitung sebuah keluaran jaringan, pengguna tidak perlu mengetahui
targetnya (jika ingin menghitung kesalahan yang terjadi maka hasil perlu diketahui). Pada contoh
sebelumnya, jika pengguna ingin mengetahui error dan kinerja jaringan, maka dapat menggunakan
sintaks berikut:

[a, Pf, Af, e, perf] = sim(n,p,[],[],t)

Pf dan Af dibairkan kosong, karena pada kasus tersebut tidak melibatkan delay. Keluaran yang
dihasilkan adalah keluaran jaringan yang disimpan dalam variabel a, error yang disimpan dalam
variabel e serta tingkat kesalahan yang disimpan dalam variabel perf.

Modifikasi Bobot dan Bias


Langkah berikutnya setelah mendapatkan hasil keluaran jaringan ialah mengubah bobot berdasarkan
selisih keluaran dengan target yang didefinisikan. Contohnya ketika ingin mengubah bobot pada
contoh sebelumnya, maka dapat menggunakan kode berikut ini:
p1 = [1 1];
p2 = [1 0];
p3 = [0 1];
p4 = [0 0];
p = [p1, p2, p3, p4];
t1= [1];
t2= [0];
t3= [0];
t4= [0];

3 Follow me @randiekayonida
www.randilabs.com

t = [t1, t2, t3, t4];

n = newp([0 1; 0 1],1);
bobot = [1 -1];
n.IW {1,1} = bobot;
bias = [1];
n.b {1} = bias;

disp ('pola p1: ')


a1 = sim(n, p1)
e1 = t1-a1
dW = learnp(bobot,p1,[],[],[],[],e1,[],[],[],[],[])
bobot = bobot + dW

disp ('pola p2: ')


a2 = sim(n, p2)
e2 = t2-a2
dW = learnp(bobot,p2,[],[],[],[],e2,[],[],[],[],[])
bobot = bobot + dW

disp ('pola p3: ')


a3 = sim(n, p3)
e3 = t3-a3
dW = learnp(bobot,p3,[],[],[],[],e3,[],[],[],[],[])
bobot = bobot + dW

disp ('pola p4: ')


a4 = sim(n, p4)
e4 = t4-a4
dW = learnp(bobot,p4,[],[],[],[],e4,[],[],[],[],[])
bobot = bobot + dW

Perintah learnp menyimpan besarnya perubahan bobot pada dW. Bobot baru diperoleh dengan
menambah dW dengan vektor bobot. Karena keluaran jaringan = target, maka tidak dilakukan
perubagan bobot, sehingga bobot baru = bobot lama.

Pelatihan Perceptron
Perceptron melakukan perubahan bobot secara terus menerus hingga menemukan bobot yang
dipakai untuk mengenali pola secara maksimal. Perubahan bobot untuk seluruh pola disebut dengan
epoch. Pada contoh sebelumnnya diperoleh bobot setelah epoch pertama [-2 0] dan bias [-1] tapi
bobot tersebut belum mampu mengenali polsa dengan benar.

a = sim (n, p);

e = t – a;

Hasil keluaran pola 1 hingga 4 adalah [1 1 1 1] sedangkan target yang diinginkan ialah [1 0 0 0] berarti
perlu dilakukannya pelatihan untuk epoch selanjutnya hingga menemukan hasil yang sesuai (e = 0).
Matlab telah memberikan kemudahan untuk melakukan pelatihan, pada contoh diatas, dapat
dilakukan pelatihan dengan menggunakan kode berikut:

n = train(n, p , t)

4 Follow me @randiekayonida
www.randilabs.com

Keluarannya berupa sebuah grafik data seperti gambar berikut:

Untuk mengetahui bobot dan bias pada keadaan optimal dapat ditampilkan melalui kode berikut ini:

disp (n.IW {1, 1})

disp (n.b {1})

Untuk mengtahui perubahan bobot dan bias untuk setiap epoch iterasi harus dihentikan sementara
per epoch dapat menggunakan kode manual berikut:

n.trainParam.epoch = 1

Secara lengkap fungsi pelatihan perceptron dapat didefinisikan dengan sintaks berikut ini:

[n, tr, Y, E, Pf, Af] = train[n, P, T, Pi, Ai, VV, TV)

 n : jaringan yang didefinisikan


 p : masukan jaringan.
 T : target jaringan.
 Pi : kondisi delay awal masukan.
 Ai : kondisi delay awal layar.
 VV: struktur validasi vektor.
 TV : struktur vektor uji.

Perintah train akan menghasilkan

 n : jaringan baru.
 tr : record pelatihan (epoch dan performa).
 Y : keluaran jaringan.
 E : error jaringan.
 Pf : kondisi akhir delay masukan.
 Af : kondisi akhir delay layar.

5 Follow me @randiekayonida
www.randilabs.com

Contoh kode secara utuh:


function perceptron;

clc
n = newp([0 1; 0 1],1);
n.IW {1,1} = [-1 1];
n.b {1} = [1];

p = [[1;1],[1;0],[0;1],[0;0]];
t = [1 0 0 0];
e = 9999;
while e > 0
n.trainParam.epoch = 1;
n = train(n,p,t);
bobot = n.IW {1,1}
bias = n.b {1}
a =sim (n,p)
e = sum (t-a)
end

Hasil:

Sumber
 Berbagai sumber di Internet.
 Buku JST dan Pemrograman oleh Drs. Jong Jek Siang, M.Sc.
 Buku AI dan Teknik Aplikasinya oleh Sri Kusumadewi

6 Follow me @randiekayonida

Anda mungkin juga menyukai