POLITEKNOSAINS VOL. X NO. 2
Juni 2011
MENGENALI FUNGSI LOGIKA “AND” MELALUI PEMROGRAMAN PERCEPTRON DENGAN MATLAB Yaya Finayani Teknik Elektro, Politeknik Pratama Mulia , Surakarta 57149, Indonesia
ABSTRACT This paper focuses on recognizing the logic function "and" with two input variables through programming perceptron. Perceptron is a simple form of artificial neural networks, perceptron is usually used to produce a certain type of pattern is often known by the separation in a linear fashion. The first simulations, carried out the programming perceptron to recognize the logic function "and" 2 input variables with binary inputs (0 or 1) and the target output is binary (0 or 1), simulation results show to get the performance = 0 which means all the patterns recognized correctly 9 epoch iteration process is needed. The second simulation, programming perceptron to recognize the logic functions 'and' two input variables with bipolar inputs (-1 or 1), the results of simulations required four epoch iteration process. The third simulation, programming perceptron to recognize the logic function “and” 2 input variables with binary input, but the initial value of weights and the initial bias = 0, simulation result show to get to work = 0 8 epoch iteration process is required. From the simulation results concluded that the programming perceptron to recognize the logic function "and" 2 input variables using a binary input (0 or 1) a longer iteration process (9 epoch) compared with bipolar inputs (-1 or 1) with a 4 epoch, the value initial weights and biases affect the initial value of the iteration process is faster iteration process (8 epoch) for the initial value of weights and the initial value bias = 0 compared with the initial value of weights (1.1) and the initial value bias = 1 with 9 epoch.
Keyword: perceptron, logic function, and, epoch, programming, Matlab.
Mengenali Fungsi Logika. . .
37
POLITEKNOSAINS VOL. X NO. 2
1. PENDAHULUAN Jaringan syaraf tiruan (JST) adalah sistem pemrosesan informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi. JST mensimulasikan abstrak dari system syaraf dalam otak manusia yang mengandung sekelompok neuro yang terinterkoneksi satu sama lain. Pemodelan neuron tiruan (artificial neuron) yang membangun jaringan ini, pertama kali diperkenalkan oleh McCulloch dan Pitts pada tahun 1943 yang menyimpulkan bahwa kombinasi beberapa neuron sederhana menjadi sebuah system neural akan meningkatkan komputasi (Jong, 2005). Pada tahun 1960, Widrow dan Hoff mengembangkan perceptron dengan memperkenalkan aturan pelatihan jaringan. Perceptron merupakan salah satu bentuk jaringan sederhana, perceptron biasanya digunakan untuk menghasilkan suatu pola tipe tertentu yang sering dikenal dengan pemisahan secara linear. Pada dasarnya perceptron pada jaringan syaraf dengan satu lapisan memiliki bobot yang dapat diatur. Dapat digunakan dalam kasus salah satunya untuk mengenali fungsi logika “AND’. Mengenali Fungsi Logika. . .
September 2011
Model jaringan perceptron ditemukan oleh Rosenblatt (1962) dan Minsky-Papert (1969). Model tersebut merupakan model yang memiliki aplikasi dan pelatihan yang paling baik pada era tersebut (Jong, 2005). Makalah ini bertujuan untuk melakukan pengenali fungsi logika ”AND” dengan 2 variabel input melalui pemrograman perceptron dengan Matlab. 2. BAHAN DAN METODE Bahan yang digunakan adalah Software Matlab 7.04 dan Algoritma Perceptron. Metode yang digunakan meliputi: 1. mengenali fungsi logika ”AND” dengan 2 variabel dengan masukan biner (0 atau 1) 2. mengenali fungsi logika ”AND” 2 variabel dengan masukan bipolar (-1 atau 1) 3. mengenali fungsi logika ”AND” 2 variabel dengan nilai awal bobot dan nilai awal bias = 0 Arsitektur Jaringan Perceptron Arsitektur jaringan terdiri dari 1 lapisan input dan 1 lapisan output. Setiap unit pada lapisan input dihubungkan dengan semua unit di lapisan output dengan 38
POLITEKNOSAINS VOL. X NO. 2
suatu bobot keterhubungan. Arsitektur Perceptron dengan 2 unit (ditambah 1 unit bias) di lapisan input dan 1 unit di lapisan output pada Gambar 1. Unit bias merupakan satu unit masukan di suatu lapisan yang nilai inputnya selalu 1.
Juni 2011
Keterangan Gambar 1. X1, X2, Xn : n unit input Y : unit output b : bias (=1) W1, W2, Wn : bobot penghubung dari unit input ke unit output
pada setiap iterasi. Besarnya nilai α lebih besar dari 0 (nol) dan maksimal 1. Besarnya perubahan bobot yang terjadi pada setiap iterasi adalah: ∆ . . ∆ . dengan, = sinyal input = laju pembelajaran = sinyal output Dengan demikian bobot yang baru adalah: . . . Algoritma pelatihan Perceptron adalah sebagai berikut: 1. Inisialisasi semua bobot dan bias
_ 0 Tentukan laju pembelajaran
, biasanya 1 2. Selama ada elemen vektor input yang respon unit outputnya tidak sama dengan target, lakukan a. Set aktivasi input dengan s adalah vector input b. Hitung respon unit output: ∑
Algoritma Perceptron Proses belajar Perceptron, proses perubahan bobot pembelajarannya ditambahkan laju pembelajaran (learning rate) α yang berfungsi untuk mengontrol perubahan bobot
∆ dengan ∆ . . ∆
1
X1
b W1 W2
Y
X2
Wn
Xn
Gambar 1. Arsitektur Perceptron
Mengenali Fungsi Logika. . .
1, 0, ! ! 1, " c. Perbaiki bobot pola yang mengandung kesalahan # menurut persamaan:
39
POLITEKNOSAINS VOL. X NO. 2
Ada beberapa hal yang perlu diperhatikan rhatikan dalam algoritma perceptron: a. Iterasi dilakukan terus hingga semua pola memiliki output jaringan yang sama dengan targetnya (jaringan sudah memahami pola) b. Perubahan bobot hanya dilakukan pada pola ola yang mengandung kesalahan (output jaringan target). Perubahan tersebut merupakan hasil kali unit input dengan target dan laju pembelajaran. Perubahan bobot hanya akan terjadi kalau unit input 0. c. Kecepatan iterasi ditentukan itentukan oleh learning rate yang dipakai. 3. HASIL PEMBAHASAN
DAN
September 2011 function perceptron %Pelatihan perceptron %Perceptron mengenali pola 'dan' dengan 2 variabel input %Dengan masukan biner (0 atau 1) target biner ( 0 atau 1 ) clc net = newp ([0 1 ; 0 1],1); net.IW {1,1}= [-1 1];%nilai bobot awal net.b {1} = [1];%nilai bias awal p = [ [1;1] [1;0] [0;1] [0;0] ];%kombinasi masukan t = [1 0 0 0];%target net = train (net, p, t);%pelatihan perceptron disp ('nilai bobot terakhir') disp (net.IW {1,1}) disp ('nilai bias terakhir') disp (net.b {1})
HASIL PROGRAM: TRAINC, Epoch 0/100 TRAINC, Epoch 9/100 TRAINC, Performance goal met. nilai bobot terakhir 1 2 nilai bias terakhir -3
FUNGSI LOGIKA “AND” Dalam mengenali fungsi logika “and” dilakukan 3 kali simulasi program Matlab untuk pemograman Perceptron. Pemograman Perceptron mengenali Fungsi logika “dan” 2 variabel dengan masukan bipolar (0 atau 1) target biner ( 0 atau 1 )
Program Matlab sebagai berikut:
Mengenali Fungsi Logika. . .
Gambar 2. Grafik proses iterasi NN Fungsi Logika “AND” 2 input dengan input biner.
40
POLITEKNOSAINS VOL. X NO. 2
Hasil program Matlab dan Gambar 2 menunjukkan bahwa dengan bobot awal w1 = -1 ; w2 = 1 ; bias awal = 1, menunjukkan bahwa iterasi diselesaikan dalam 9 epoch,pada epoch ke-1 unjuk kerja 0,75 berarti hanya ada 1 pola yang dikenali dengan benar), epoch ke-2 unjuk kerja 0,5 berari ada 2 pola yang dikenali dengan benar, dan seterusnya sampai pada epoch ke-9 memiliki unjuk kerja 0 berarti semua pola telah dikenali. Bobot terakhir w1 = 1 , w2 = 2 sedangkan bias -3. Analisis perhitungan fungsi logika “and” 2 variable input dari hasil program Matlab, sebagai berikut: 1 a. Pola $ % &, 1
∑'( $
1.1 1.2 3 0, karena nilai 0 , maka 1 sehingga menghasilkan +,-./+ 0 1 b. Pola $ % &, 0
∑'( $
1.1 0.2 3 2, karena nilai 2 , maka 0 sehingga menghasilkan +,-./+ 1 0 c. Pola $ % &, 1
∑'( $
0.1 1.2 3 1, karena nilai 1 , maka 0 sehingga menghasilkan +,-./+ 1 0 d. Pola $ % &, 0
∑'( $
Mengenali Fungsi Logika. . .
Juni 2011
0.1 0.2 3 3, karena nilai 3 , maka 0 sehingga menghasilkan +,-./+ 1 Dari hasil analisis perhitungan menunjukkan dengan bobot w1=1 dan w2=2, bias = b= -3 dengan input biner (0 atau 1) dengan target biner (0 atau 1) diperoleh hasil perhitungan sesuai dengan fungsi logika “and”.
Pemograman Perceptron mengenali Fungsi logika “dan” 2 variabel dengan masukan bipolar (-1 atau 1) target biner ( 0 atau 1 ) function perceptron %Pelatihan perceptron %Perceptron mengenali pola 'dan' dengan 2 variabel input %Masukan bipolar , target biner %Mengetahui bobot akhir yang diperoleh clc net = newp ([-1 1 ; -1 1],1);%data bipolar net.IW {1,1}= [-1 1];%bobot awal bentuk bipolar net.b {1} = [1]; p = [ [1;1] [1;-1] [-1;1] [-1;-1] ]; t = [1 0 0 0]; net = train (net,p,t); disp ('nilai bobot terakhir') disp (net.IW {1,1}) disp ('nilai bias terakhir') disp (net.b {1}) HASIL PROGRAM TRAINC, Epoch 0/100 TRAINC, Epoch 4/100 TRAINC, Performance goal met. nilai bobot terakhir 1 1
41
POLITEKNOSAINS VOL. X NO. 2 nilai bias terakhir -1
September 2011
perhitungan dari hasil program Matlab adalah sebagai berikut: a.
Pola
, ,
karena
nilai , maka sehingga menghasilkan b. Pola
,
, karena nilai , maka sehingga menghasilkan c. Pola Gambar 3. Grafik proses iterasi NN Fungsi Logika “AND” 2 input dengan input bipolar.
Gambar 3 menunjukkan bahwa pada epoch ke-1 dan ke-22 unjuk kerja 0,5 berarti ada 2 pola yang dikenali dengan benar, sedangkan epoch ke-33 unjuk kerja naik menjadi 0,75 yang artinya hanya 1 pola yang dikenali dengan benar dan pada epoch ke-44 unjuk kerja 0 semua pola dikenali dengan benar. Hasil program Matlab dari pemrograman emrograman perceptron fungsi logika ”and” 2 input menggunakan input bipolar dan target biner didapatkan proses iterasi 2 epoch dengan bobot terakhir w1 = 1 w2 = 1, bias = -11, sedangkan bobot awal w1 = -11 ; w2 = 1 ; bias awal = 1.. Jika dilakukan pengecekan analisis Mengenali Fungsi Logika. . .
,
, karena nilai , maka sehingga menghasilkan d. Pola
,
, karena nilai , maka sehingga menghasilkan
Dari analisis perhitungan menunjukkan dengan bobot w1=1 dan w2=1, bias = b= -1 dengan input bipolar (-1 atau 1) dengan target biner (0 atau 1) diperoleh hasil perhitungan sesuai dengan fungsi logika “and” pada epoch ke4. Pemograman Perceptron untuk Fungsi Logika “AND” 2 input dengan menggunakan biner (0 atau 1) dan bipolar (-1 atau 1) dengan 42
POLITEKNOSAINS VOL. X NO. 2
target biner (0 atau 1) konvergensi diperoleh eroleh lebih cepat saat menggunakan input ut bipolar yaitu pada epoch ke-4,, sedangkan untuk input biner (0 atau 1) konvergen diperoleh pada epoch ke-9.
Juni 2011 1 2 nilai bias terakhir -3
Fungsi logika ’dan’ 2 variabel dengan masukan biner dan target biner , dengan nilai bobot awal [0 0] dan bias awal = [0] Simulasi ini dilakukan untuk mengetahui pengaruh proses iterasi pada pemograman Perceptron fungsi logika “and” 2 input dengan adanya pemberian nilai bobot awal dan bias awal = 0, simulasi digunakan igunakan input biner (0 atau 1) dan target biner (0 atau 1) Program Matlab function perceptron %Pelatihan Perceptron %Perceptron mengenali pola 'dan' dengan 2 variabel input clc net = newp ([0 1 ; 0 1],1);%data %data biner net.IW {1,1}= [0 0];%bobot awal 0 net.b {1} = [0];%bias awal p = [ [1;1] [1;0] [0;1] [0;0] ]; t = [1 0 0 0];%target net = train (net,p,t); disp ('nilai bobot terakhir') disp (net.IW {1,1}) disp ('nilai bias terakhir') disp (net.b {1}) HASIL PROGRAM
Gambar 4. Grafik proses iterasi NN Fungsi Logika “AND” 2 input dengan input biner dengan kondisi awal bobot dan bias = 0.
Gambar 4 menunjukkan proses iterasi diselesaikan dalam 8 epoch dengan nilai awal bobot w1=0, w2=0 dan nilai bias b=0 , jumlah iterasi ini lebih kecil dibanding dengan hasil simulasi fungsi logika “and” 2 input dengan kondisi awal bobot awal w1 = -1 ; w2 = 1 ; bias awal = 1 (Gambar 2) dengan demikian kondisi awal bobot dan kondisi awal bias mempengaruhi jumlah iterasi dengan hasil nilai akhir bobot dan nilai akhir bias adalah sama. Hasil program menunjukkan saat epoch ke-8 unjuk kerja = 0 berarti semua pola dikenali dengan benar.
TRAINC, Epoch 0/100 TRAINC, Epoch 8/100 TRAINC, Performance goal met. nilai bobot terakhir
Mengenali Fungsi Logika. . .
43
POLITEKNOSAINS VOL. X NO. 2
4. KESIMPULAN Dapat disimpul disini bahwa: 1. Pemograman Perceptron untuk mengenali fungsi logika “and” 2 variabel input dengan input biner (0 atau 1) membutuhkan proses iterasi yang lebih lama (9 epoch) dibandingkan dengan input bipolar (-1 atau 1) yang membutuhkan 4 epoch. 2. Kondisi awal bobot dan kondisi awal bias mempengaruhi jumlah iterasi dalam pemograman Perceptron, untuk mengenali fungsi logika “and” 2 variabel input dengan masukan biner , kondisi awal bobot w1=0, w2=0 dan nilai bias b=0 jumlah iterasi untuk memperoleh unjuk kerja = 0 diperlukan 8 epoch, sedangkan dengan nilai awal bobot w1 = -
September 2011
jaringan Neural BuatanFuzzy Dan Aplikasinya Pada Sistem Penciuman Elektronik”, Makara Sains, Vol.6.No.1, April 2002. Jong. J.S., 2005, ”Jaringan syaraf Tiruan & Pemrogramannya Menggunakan Matlab”, Andi Offset, Yogyakarta. Wahidin.W.,2004, ”Aplikasi Algoritma BackPropagation Multi Layer Perceptron pada Identifikasi Dimanika Sistem Nonlinier”, Jurnal Teknologi, Edisi No.1, Tahun XVIII, Maret 2004, 1-62, ISSN 02151685.
1 ; w2 = 1 ; bias awal = 1 memerlukan 9 epoch untuk mencapai unjuk kerja = 0.
5. DAFTAR PUSTAKA Andi.P.,2004, ” Pengenalan Karakter Alfabet Menggunakan Jaringan Saraf Tiruan”., Jurusan Teknik Elektro Fakultas Teknik Universitas Diponegoro, Semarang. Benyamin.K.,Ponix.I, 2002 ”Penggunaan Algoritma Genetik Untuk Optimasi Mengenali Fungsi Logika. . .
44