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 (𝑗𝑖𝑘𝑎 𝑛𝑒𝑡 < −𝜃
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.
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:
Parameter Masukan
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:
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.
3 Follow me @randiekayonida
www.randilabs.com
n = newp([0 1; 0 1],1);
bobot = [1 -1];
n.IW {1,1} = bobot;
bias = [1];
n.b {1} = bias;
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.
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
Untuk mengetahui bobot dan bias pada keadaan optimal dapat ditampilkan melalui kode berikut ini:
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 : 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
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