laporan.pdf

32
KECERDASAN KOMPUTASIONAL PENERAPAN NEURAL NETWORK TENTANG METODE BACKPROPAGATION PADA PENGENALAN POLA HURUF “H, A, D” EKA LARASATI AMALIA [ 116060300111018 ] PROGRAM PASCASARJANA FAKULTAS TEKNIK ELEKTRO Minat: SISTEM TEKNIK KOMUNIKASI & INFORMATIKA (SKI) UNIVERSITAS BRAWIJAYA 2011/2012

Upload: toty-gusmao

Post on 07-Feb-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LAPORAN.pdf

KECERDASAN KOMPUTASIONAL

PENERAPAN NEURAL NETWORK TENTANG

METODE BACKPROPAGATION PADA PENGENALAN

POLA HURUF “H, A, D”

EKA LARASATI AMALIA

[ 116060300111018 ]

PROGRAM PASCASARJANA FAKULTAS TEKNIK ELEKTRO

Minat: SISTEM TEKNIK KOMUNIKASI & INFORMATIKA (SKI)

UNIVERSITAS BRAWIJAYA 2011/2012

Page 2: LAPORAN.pdf

1. Pendahuluan

Seiring dengan berkembangnya teknologi, komputer diharapkan memiliki kemampuan

untuk mengerjakan segala sesuatu yang dapatdikerjakan oleh manusia. Agar komputer dapat

bertindak seperti dan sebaik manusia, diperlukan beberapa metode untuk membekali komputer

agar menjadi mesin yang pintar.

Aplikasi JST pada saat ini telah merambah banyak bidang. Misalnya, pada pesawat

terbang: sistem kontrol pesawat, deteksi kesalahan, simulasi lintasan terbang, pada otomotif:

system pemandu otomatis, pada pertahanan: deteksi musuh, elektronika: prediksi urutan kode,

pada hiburan: animasi, efek khusus, pada keuangan: prediksi harga terbaru, program penjualan

portofolio, optimalisasi poduk, pada manufaktur: kontrol proses manufaktur, analisis dan desain

produk, pada kedokteran: analisis sel kanker, analisis EEG dan ECG, pada minyak dan gas :

bidang eksplorasi, pada suara : pengenalan suara, kompresi suara, klasifikasi vokal, pada

saham : system penasihat perdagangan saham dan lain-lain.

2. Metode Jalar Balik (backpropagation)

Metode yang digunakan dalam kesempatan ini adalah metode jalar balik dimana metode

inisangat populer meskipun bukan yang terbaik. Metode ini tidak mempunyai hubungan

feedbacksehingga galat dijalar-balik selama latihan lalu diperoleh Galat Kuadrat Rerata

Terkecil. Galat dalam output menentukan ukuran galat output lapisan hidden yang digunakan

untuk menentukan bobot antara input dan lapisan hidden. Penentuan bobot antara pasangan-

pasangan lapisan dan mengkalkulasi ulang output merupakan proses iteratif yang dilakukan

sampai galat mencapai toleransi tertentu. Bobot penentuan parameter laju belajar dan

momentum yang sesuai bias digunakan untuk memperbaiki hasil dari JST.

Pasangan vektor input dan output dipilih untuk melatih JST untuk pertama kalinya.

Setelahlatihan selesai, maka bobot ditentukan dan JST dapat digunakan untuk menemukan

output sebagaiinput baru. Sejumlah neuron dalam lapisan input menentukan dimensi input, dan

Page 3: LAPORAN.pdf

sejumlah neuron dalam lapisan output menentukan dimensi lapisan output, kemudian JST

dapat membuat pemetaan ruang dimensi-k menjadi ruang dimensi-m. Tentu saja, pemetaan

tersebut tergantung padabagaimana pasangan pola atau vektor digunakan. Sehingga setelah

dilatih, JST akan memberikanvektor input baru.

Tidak mudah untuk menentukan berapa banyak neuron yang diperlukan. Oleh sebab itu

kita membagi tiga bidang, satu untuk neuron input, satu untuk unsur pemroses hidden, dan satu

untuk neuron output, sehingga menjadi hubungan jalar maju.

JST jalar-balik mengalami latihan tanpa guru, dengan sejumlah pasangan pola

berhinggayang terdiri dari pola input dan sebuah pola output target atau yang diinginkan. Pola

input muncul pada lapisan input lalu ke lapisan berikutnya yaitu pada lapisan hidden. Output

neuron hidden layer diperoleh dengan menggunakan bias, dan juga fungsi ambang dengan

aktivasi yang ditentukan dengan bobot dan input. Output lapisan hidden tersebut menjadi input

ke neuron output, yang juga diproses menggunakan sebuah fungsi bias dan fungsi ambang

dengan aktivasinya untuk menentukan output akhir dari JST.

Pola terhitung dan pola input lalu dibandingkan sehingga galat untuk masing-masing

komponen pola dapat ditentukan, sementara penentuan bobot koneksi antara lapisan hidden

dan lapisan output dapat dihitung. Sebuah perhitungan serupa ( masih berdasarkan pada galat

pada output) dibuat untuk bobot koneksi antara input dan lapisan hidden. Proses kemudian

diulang sebanyak yang diperlukan sampai galat dalam batas toleransi yang diinginkan.

Algoritma jalar balik adalah sbb:

-Inisialisasi Bobot

Menentukan bobot dan ambang simpul dengan sedikit acak.

-Menghitung aktivasi

Menentukan tingkat aktivasi input.

Tingkat aktivasi Oj sebuah hidden dan satuan output ditentukan oleh:

Page 4: LAPORAN.pdf

Oj = F ( ΣWjiOi -θj ) (1)

Dimana Wji adalah bobot dari input Oi , θj adalah ambang simpul dan F adalah fungsi sigmoid :

F(a) = 1/ (1+ e-a) (2)

-Melatih bobot

1. Mulai pada output terus pada lapisan hidden secara rekursif. Pemasangan bobot oleh:

Wji(t+1)=Wji(t)+ ΔWji (3)

Dimana Wji(t) adalah bobot dari unit i ke unit j pada waktu t (atau iterasi ke t) dan ΔWji adalah

penentuan bobot.

2. Perubahan bobot dihitung dengan :

ΔWji = ηδjOi

dimana η adalah laju belajar ( 0<η<1 misal 0,3) dan δj adalah gradien galat pada unit j.

Konvergensi kadang-kadang lebih cepat dengan menambahkan bentuk momentum:

Wji(t+1)=Wji(t)+ηδjOi + α[Wji(t)- Wji(t-1)] dimana 0<α<1 (4)

3.Gradien galat diberikan dengan:

-Untuk unit output:

δj=Oj(1-Oj)(Tj-Oj) (5)

dimana Tj adalah aktivasi output (target) yang diinginkan dan Oj adalah aktivasi output aktual

pada unit output j.

-Untuk unit hidden:

δj=Oj(1-Oj)ΣδkWkj (6)

δk adalah gradien galat pada unit k dimana merupakan titik hubung dari unit hidden j.

4. Mengulangi iterasi sampai konvergen untuk kriteria galat tertentu. Iterasi termasuk

menampilkan contoh, menghitung aktivasi, dan memodifikasi bobot.

Nama Jalar-balik berasal dari kenyataan dimana galat diturunkan dari jalar galat terbalik

Page 5: LAPORAN.pdf

yang diasosiasikan dengan unit output (sebagaimana dihitung berdasarkan persamaan diatas)

ketika nilai target untuk unit hidden tidak diberikan. Pada JST jalar-balik, fungsi aktivasi yang

dipilih adalah fungsi sigmoid, yang menentukan nilai output ke dalam range 0 dan 1.

3. HASIL DAN PEMBAHASAN MENGENALI HURUF “H” MENGGUNAKAN PERHITUNGAN

MANUAL

Source Code :

clc x={1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1}; %DATA TRAINING X=cell2mat(x); x2=reshape(x,5,7); x3=x2' LR=0.2; t=1; max=1; min=-1; %PEMBERIAN BOBOT DARI INPUT KE HIDEN 1 for i=1:20 for j=1:35 if(X(j)==0) u(j,i)=0.0; else u(j,i)=min+rand*(max-min); end u(36,i)=0.0; end end %PEMBERIAN BOBOT DARI HIDEN 1 KE HIDEN 2 for i=1:10 for j=1:20 v(j,i)=min+rand*(max-min); end v(21,i)=0.0; end %PEMBERIAN BOBOT DARI HIDEN 2 KE OUTPUT for j=1:11 w(j)=min+rand*(max-min); end disp(w);

Page 6: LAPORAN.pdf

%PROSES TRAINING X=X*0.1; for i=1:50 tempu=u; %Haiden 1 for j=1:20 ynet(j)=0.0; for k=1:35 ynet(j)=ynet(j)+X(k)*u(k,j); end ynet(j)=ynet(j)+u(36,j); y(j)=1./(1+exp(-ynet(j))); end for j=1:10 znet(j)=0.0; for k=1:20 znet(j)=znet(j)+y(k)*v(k,j); end znet(j)=znet(j)+v(21,j); z(j)=1./(1+exp(-znet(j))); end anet=0.0; for j=1:10 anet=anet+z(j)*w(j); end anet=anet+w(11); b=0-anet; d=exp(b); a=1./(1+exp(-anet)); fprintf('y:%f \t %f \n',a,d); tho=(t-a)*a*(1-a); fprintf('error:%f\n',tho); deltaW3=LR*tho; w(11)=w(11)+deltaW3; %v; fprintf('epoch ke-%d\n',i); for j=1:10

%UPDATE BOBOT w deltaW(j)=LR*tho*z(j); w(j)=w(j)+deltaW(j); thonetv(j)=tho*w(j); thov(j)=thonetv(j)*z(j)*(1-z(j)); for k=1:20

%UPDATE BOBOT v deltaV(k,j)=LR*thov(j)*y(k); v(k,j)=v(k,j)+deltaV(k,j); thonetu(k)=thov(j)*v(k); thou(k)=thonetu(k)*y(k)*(1-y(k)); deltaV(21,j)=LR*thov(j);

Page 7: LAPORAN.pdf

v(21,j)=v(21,j)+deltaV(21,j); for l=1:35

%UPDATE BOBOT u deltaU(l,k)=LR*thou(k)*X(l); u(l,k)=u(l,k)+deltaU(l,k); deltaU(36,k)=LR*thou(k); u(36,k)=u(36,k)+deltaU(36,k); end end end end disp(w); %PROSES UJI b={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; %DATA TRAINING B=cell2mat(b); B=B*0.1; for j=1:20 ynetp(j)=0.0; for k=1:35 ynetp(j)=ynetp(j)+B(k)*u(k,j); end ynetp(j)=ynetp(j)+u(36,j); yp(j)=1./(1+exp(-ynetp(j))); end for j=1:10 znetp(j)=0.0; for k=1:20 znetp(j)=znetp(j)+yp(k)*v(k,j); end znetp(j)=znetp(j)+v(21,j); zp(j)=1./(1+exp(-znetp(j))); end anetp=0.0; for j=1:10 anetp=anetp+zp(j)*w(j); end anetp=anetp+w(11); b=0-anetp; d=exp(b); ap=1./(1+exp(-anetp)); fprintf('ap:%f \t \n',ap); if (ap>0.8) fprintf('huruf yang anda masukkan H\n');

Page 8: LAPORAN.pdf

else fprintf('huruf yang anda masukkan tidak dikenali\n'); end

Output :

x3 =

[1] [0] [0] [0] [1]

[1] [0] [0] [0] [1]

[1] [0] [0] [0] [1]

[1] [1] [1] [1] [1]

[1] [0] [0] [0] [1]

[1] [0] [0] [0] [1]

[1] [0] [0] [0] [1]

Columns 1 through 7

0.0432 -0.8197 0.8093 0.7688 -0.1220 0.5634 -0.7031

Columns 8 through 11

0.2396 -0.4788 -0.1087 0.6880

y:0.646959 0.545693

error:0.080636

epoch ke-1

y:0.678420 0.474013

error:0.070158

epoch ke-2

y:0.704749 0.418944

error:0.061435

epoch ke-3

Page 9: LAPORAN.pdf

y:0.726898 0.375709

error:0.054215

epoch ke-4

y:0.745677 0.341063

error:0.048230

epoch ke-5

y:0.761742 0.312780

error:0.043242

epoch ke-6

y:0.775610 0.289307

error:0.039053

epoch ke-7

y:0.787687 0.269540

error:0.035506

epoch ke-8

y:0.798291 0.252676

error:0.032480

epoch ke-9

y:0.807673 0.238125

error:0.029876

epoch ke-10

y:0.816032 0.225442

error:0.027618

epoch ke-11

y:0.823528 0.214288

error:0.025647

Page 10: LAPORAN.pdf

epoch ke-12

y:0.830289 0.204400

error:0.023914

epoch ke-13

y:0.836419 0.195572

error:0.022381

epoch ke-14

y:0.842006 0.187640

error:0.021018

epoch ke-15

y:0.847120 0.180471

error:0.019799

epoch ke-16

y:0.851820 0.173957

error:0.018704

epoch ke-17

y:0.856156 0.168011

error:0.017715

epoch ke-18

y:0.860171 0.162559

error:0.016818

epoch ke-19

y:0.863900 0.157541

error:0.016002

epoch ke-20

y:0.867374 0.152905

Page 11: LAPORAN.pdf

error:0.015257

epoch ke-21

y:0.870620 0.148607

error:0.014574

epoch ke-22

y:0.873659 0.144611

error:0.013945

epoch ke-23

y:0.876513 0.140884

error:0.013366

epoch ke-24

y:0.879198 0.137400

error:0.012830

epoch ke-25

y:0.881730 0.134134

error:0.012333

epoch ke-26

y:0.884122 0.131065

error:0.011872

epoch ke-27

y:0.886386 0.128176

error:0.011442

epoch ke-28

y:0.888533 0.125450

error:0.011040

epoch ke-29

Page 12: LAPORAN.pdf

y:0.890572 0.122874

error:0.010664

epoch ke-30

y:0.892512 0.120434

error:0.010312

epoch ke-31

y:0.894359 0.118119

error:0.009981

epoch ke-32

y:0.896121 0.115921

error:0.009670

epoch ke-33

y:0.897804 0.113829

error:0.009377

epoch ke-34

y:0.899414 0.111835

error:0.009100

epoch ke-35

y:0.900955 0.109934

error:0.008838

epoch ke-36

y:0.902432 0.108117

error:0.008591

epoch ke-37

y:0.903849 0.106379

error:0.008356

Page 13: LAPORAN.pdf

epoch ke-38

y:0.905210 0.104716

error:0.008133

epoch ke-39

y:0.906519 0.103121

error:0.007922

epoch ke-40

y:0.907778 0.101590

error:0.007720

epoch ke-41

y:0.908991 0.100120

error:0.007529

epoch ke-42

y:0.910161 0.098707

error:0.007346

epoch ke-43

y:0.911289 0.097347

error:0.007172

epoch ke-44

y:0.912378 0.096037

error:0.007005

epoch ke-45

y:0.913430 0.094774

error:0.006846

epoch ke-46

y:0.914448 0.093556

Page 14: LAPORAN.pdf

error:0.006693

epoch ke-47

y:0.915432 0.092380

error:0.006547

epoch ke-48

y:0.916385 0.091244

error:0.006407

epoch ke-49

y:0.917309 0.090146

error:0.006272

epoch ke-50

Columns 1 through 7

0.1572 -0.6723 0.9514 0.8700 0.0506 0.6930 -0.6592

Columns 8 through 11

0.3909 -0.3324 0.0553 0.8863

ap:0.917826

huruf yang anda masukkan H

Output yang dihasilkan sesuai dengan hasil yang diinginkan yaitu huruf H.

Page 15: LAPORAN.pdf

Analisa menggunakan perhitungan adalah sebagai berikut :

Diberikan pola huruf A yang direpresentasikan menggunakan kode 0 dan 1 pada

matriks berukuran 5x7 seperti pada gambar berikut :

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

1 1 1 1 1

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

Penyelesaian :

Langkah 0 : Mula-mula bobot diberi nilai acak yang kecil (range [-1,1]). Misalkan di dapat bobot

seperti tabel II.5 (bobot dari layer input ke layer tersembunyi = vij) dan II.6 (bobot dari layer

tersembunyi ke layer output = wkj).

Tabel bobot dari layer input ke layer tersembunyi

Z1 Z2

X1 0.1 0.1

X2 0 0

X3 0 0

X4 0 0

X5 0.1 0.2

X6 -0.1 0.1

X7 0 0

X8 0 0

Page 16: LAPORAN.pdf

X9 0 0

X10 0.2 -0.3

X11 -0.2 -0.2

X12 0 0

X13 0 0

X14 0 0

X15 0.1 0.1

X16 -0.2 0.2

X17 -0.2 0.1

X18 0.3 0.1

X19 0.1 -0.1

X20 0.2 -0.2

X21 0.1 0.1

X22 0 0

X23 0 0

X24 0 0

X25 -0.1 -0.1

X26 0.2 -0.1

X27 0 0

X28 0 0

X29 0 0

X30 0.3 0.2

X31 0.1 0.1

X32 0 0

X33 0 0

Page 17: LAPORAN.pdf

Tabel bobot dari layer tersembunyi ke layer output

Y

Z1 0.3

Z2 0.1

B 0.1

Langkah 1 : Jika kondisi penghentian belum terpenuhi, lakukan langkah 2-8

Langkah 2 : Untuk setiap pasang data pelatihan, lakukan langkah 3-8

Tahap I : Umpan Maju (feedforward)

Langkah 3 : Setiap unit input mengirim sinyal ke unit tersembunyi

Langkah 4 : hitung keluaran di unit tersembunyi (zj)

z_net1 = 0 + 1(0.1) + 0(0) + 0(0) + 0(0) + 1(0.1) + 1(-0.1) + 0(0) + 0(0) + 0(0) + 1(0.2) + 1(-0.2) + 0(0) + 0(0) + 0(0) + 1(0.1) + 1(-0.2) + 1(-0.2) + 1(0.3) + 1(0.1) + 1(0.2) + 1(0.1) + 0(0) + 0(0) + 0(0) + 1(-0.1) + 1(-0.2) + 0(0) + 0(0) + 0(0) + 1(0.3) + 1(0.1) + 0(0) + 0(0) +0(0)+ 1(0.3) = 0.9 z_net2 = 0 + 1(0.1) + 0(0) + 0(0) + 0(0) + 1(0.2) + 1(0.1) + 0(0) + 0(0) + 0(0) + 1(-0.3) + 1(-0.2) + 0(0) + 0(0) + 0(0) + 1(0.1) + 1(0.2) + 1(0.1) + 1(0.1) + 1(-0.1) + 1(-0.2) + 1(0.1) + 0(0) + 0(0) + 0(0) + 1(-0.1) + 1(-0.1) + 0(0) + 0(0) + 0(0) + 1(0.2) + 1(0.1) + 0(0) + 0(0) +0(0)+ 1(0.1) = 0.2

X34 0 0

X35 0.3 0.1

B 0 0

Page 18: LAPORAN.pdf

Z1 = 0.71095

Z2 = 0.54983

Langkah 5 : Hitung keluaran unit output(yk)

Karena jaringan hanya memiliki satu unit output y, maka : y_netk = 0.1 + 0.71095 (0.3) + 0.54983 (0.1) = 0.86312

yk = 0.70331

Tahap II : Umpan Mundur (backward propagation)

Langkah 6 : Hitung faktor di unit output yk

k = (tk- yk) f’(y_netk) = (tk- yk) yk(1-yk)

Karena jaringan hanya memiliki satu buah unit output, maka :

k = (t- y) y(1-y) = (1-0.70331)( 0.70331)(1-0.70331) = 0.0619

Suku perubahan bobot wkj = wjk (dengan = 0.2) :

ΔWkj = k zj dengan j = 0,1,…,3 ……………(14)

ΔW11 = 0.3(0.0619)( 0.71095) = 0.0132

ΔW12 = 0.3(0.0619)( 0.54983) = 0.0102

Page 19: LAPORAN.pdf

Langkah 7 : Hitung penjumlahan kesalahan dari unit tersembunyi ( )

Karena jaringan hanya memiliki satu buah unit output, maka :

_net1 = (0.0619)(0.3) = 0.01857

_net2 = (0.0619)(0.1) = 0.0619

Faktor kesalahan di unit tersembunyi :

j = _netj f’( _netj) = _netj zj(1-zj) …………..(17)

1 = 0.01857 (0.71095)(1-0.71095) = 0.003816

2 = 0.0619 (0.54983)(1-0.54983) = 0.015321

Suku perubahan bobot ke unit tersembunyi :

ΔVji = j xi (j = 1,2,3,…; i = 0,1,2 )

Tabel suku perubahan bobot ke unit tersembunyi

Z1 Z2

X1 0.003816 0.015321

X2 0 0

X3 0 0

X4 0 0

X5 0.003816 0.015321

X6 0.003816 0.015321

X7 0 0

X8 0 0

X9 0 0

Page 20: LAPORAN.pdf

X10 0.003816 0.015321

X11 0.003816 0.015321

X12 0 0

X13 0 0

X14 0 0

X15 0.003816 0.015321

X16 0.003816 0.015321

X17 0.003816 0.015321

X18 0.003816 0.015321

X19 0.003816 0.015321

X20 0.003816 0.015321

X21 0.003816 0.015321

X22 0 0

X23 0 0

X24 0 0

X25 0.003816 0.015321

X26 0.003816 0.015321

X27 0 0

X28 0 0

X29 0 0

X30 0.003816 0.015321

X31 0.003816 0.015321

X32 0 0

X33 0 0

X34 0 0

Page 21: LAPORAN.pdf

Tahap III : Peng-update-an bobot dan bias

Langkah 8 : Hitung semua perubahan bobot

Perubahan bobot unit output dengan wjk = wkj :

Wkj (baru) = Wkj(lama) + ΔWkj

W11 (baru) = 0.3 + 0.0132 = 0.3132

W12 (baru) = -0.2 + 0.0102= 0.1102

Perubahan bobot unit tersembunyi :

Vji(baru) = Vji(lama) + ΔVji (j = 1,2,3 ; i = 0,1,2)

Tabel perubahan bobot input ke unit hidden

X35 0.003816 0.015321

Z1 Z2

X1 0.103816 0.115321

X2 0 0

X3 0 0

X4 0 0

X5 0.003816 0.15321

X6 -0.096184 0.15321

X7 0 0

X8 0 0

X9 0 0

X10 0.203816 -0.284679

X11 -0.196184 -0.184679

X12 0 0

Page 22: LAPORAN.pdf

X13 0 0

X14 0 0

X15 0.103816 0.115321

X16 -0.196184 0.215321

X17 -0.196184 0.115321

X18 0.303816 0.115321

X19 0.103816 -0.084679

X20 0.203816 -0.184679

X21 0.103816 0.115321

X22 0 0

X23 0 0

X24 0 0

X25 -0.096184 -0.084679

X26 0.203816 0.084679

X27 0 0

X28 0 0

X29 0 0

X30 0.303816 0.215321

X31 0.103816 0.115321

X32 0 0

X33 0 0

X34 0 0

X35 0.303816 0.115321

Page 23: LAPORAN.pdf

4. HASIL DAN PEMBAHASAN MENGENALI HURUF MENGGUNAKAN MATLAB TOOLBOX

(PENGENALAN HURUF H, A, D)

clc clear %================== Latih JST ================================= alphabet=[1 0 0 0 1; % character H matrix 5x7 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1] targets= [1 0 0 0 1; % character H matrix 5x7 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1] alphabet=[0 1 1 1 0; % character A matrix 5x7 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1] targets= [0 1 1 1 0; % character A matrix 5x7 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1] alphabet=[1 1 1 0 0; % character D matrix 5x7 1 0 0 1 0; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 1 0; 1 1 1 0 0] targets= [1 1 1 0 0; % character D matrix 5x7 1 0 0 1 0; 1 0 0 0 1; 1 0 0 0 1;

Page 24: LAPORAN.pdf

1 0 0 0 1; 1 0 0 1 0; 1 1 1 0 0] S1 = 10; [R,Q] = size(alphabet); [S2,Q] = size(targets); P = alphabet; net = newff(minmax(P),[S1 S2],{'logsig' 'logsig'},'traingdx'); P = alphabet; T = targets; net.performFcn = 'sse'; net.trainParam.goal = 0.1; net.trainParam.show = 20; net.trainParam.epochs = 5000; net.trainParam.mc = 0.95; [net,tr] = train(net,P,T); %=======testing============ uji= [1 0 0 0 1; % character yang di uji character H 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1] uji= [0 1 1 1 0; % character yang di uji character A 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1] uji= [1 1 1 0 0; % character yang di uji character D 1 0 0 1 0; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 1 0; 1 1 1 0 0] A = sim(net,uji) %output target=targets*0.001; %normalisasi target Eror=A-targets %hitung eror SUM=0; for baris = 1:7 % jumlah eror matrik uji terhadap target for kolom = 1:5 elemen=(Eror(baris,kolom)); SUM=SUM+elemen; end kolom=1;

Page 25: LAPORAN.pdf

end SUM if (SUM < 0.05) pass = 1; else pass = 2; end; switch pass case 1 Character = 'H' case 2 Character = 'bukan H' end; switch pass case 1 Character = 'A' case 2 Character = 'bukan A' end; switch pass case 1 Character = 'D' case 2 Character = 'bukan D' end; fprintf('\n')

Output :

alphabet =

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

1 1 1 1 1

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

Page 26: LAPORAN.pdf

targets =

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

1 1 1 1 1

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

alphabet =

0 1 1 1 0

1 0 0 0 1

1 0 0 0 1

1 1 1 1 1

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

Page 27: LAPORAN.pdf

targets =

0 1 1 1 0

1 0 0 0 1

1 0 0 0 1

1 1 1 1 1

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

alphabet =

1 1 1 0 0

1 0 0 1 0

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

1 0 0 1 0

1 1 1 0 0

Page 28: LAPORAN.pdf

targets =

1 1 1 0 0

1 0 0 1 0

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

1 0 0 1 0

1 1 1 0 0

** Warning in INIT

** Network "input{1}.range" has a row with equal min and max values.

** Constant inputs do not provide useful information.

TRAINGDX, Epoch 0/5000, SSE 14.5888/0.1, Gradient 3.55644/1e-006

TRAINGDX, Epoch 20/5000, SSE 12.6385/0.1, Gradient 1.796/1e-006

TRAINGDX, Epoch 40/5000, SSE 11.4377/0.1, Gradient 1.60339/1e-006

TRAINGDX, Epoch 60/5000, SSE 9.86626/0.1, Gradient 0.773421/1e-006

TRAINGDX, Epoch 80/5000, SSE 6.76181/0.1, Gradient 1.32014/1e-006

TRAINGDX, Epoch 100/5000, SSE 2.97807/0.1, Gradient 0.391657/1e-006

TRAINGDX, Epoch 110/5000, SSE 0.0918363/0.1, Gradient 0.186456/1e-006

TRAINGDX, Performance goal met.

Page 29: LAPORAN.pdf

uji =

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

1 1 1 1 1

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

uji =

0 1 1 1 0

1 0 0 0 1

1 0 0 0 1

1 1 1 1 1

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

Page 30: LAPORAN.pdf

uji =

1 1 1 0 0

1 0 0 1 0

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

1 0 0 1 0

1 1 1 0 0

A =

0.9880 0.9997 0.9997 0.0034 0.0199

0.9999 0.0001 0.0001 0.9971 0.0112

0.9973 0.0029 0.0029 0.0597 0.9934

0.9991 0.0000 0.0000 0.0736 0.9996

0.9948 0.0035 0.0035 0.0004 0.9860

0.9219 0.0002 0.0002 0.9483 0.0305

0.9745 0.9996 0.9996 0.0004 0.0244

Page 31: LAPORAN.pdf

Eror =

-0.0120 -0.0003 -0.0003 0.0034 0.0199

-0.0001 0.0001 0.0001 -0.0029 0.0112

-0.0027 0.0029 0.0029 0.0597 -0.0066

-0.0009 0.0000 0.0000 0.0736 -0.0004

-0.0052 0.0035 0.0035 0.0004 -0.0140

-0.0781 0.0002 0.0002 -0.0517 0.0305

-0.0255 -0.0004 -0.0004 0.0004 0.0244

SUM =

0.0354

Character =

H

Character =

A

Character =

D

Page 32: LAPORAN.pdf

Analisa adalah sebagai berikut :

No Input Output Berarti

1. 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1;

1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1;

Huruf H

2. 0 1 1 1 0; 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1;

0 1 1 1 0; 1 0 0 0 1; 1 0 0 0 1; 1 1 1 1 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1;

Huruf A

3. 1 1 1 0 0; 1 0 0 1 0; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 1 0; 1 1 1 0 0;

1 1 1 0 0; 1 0 0 1 0; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 0 1; 1 0 0 1 0; 1 1 1 0 0;

Huruf D

Telah ditunjukkan bahwa JST mampu mengenali dengan baik jenis-jenis huruf dari H, A, D. Hal

ini memberikan kemungkinan yang besar untuk perkembangan pengenalan pola yang lebih

jauh lagi.