laporan.pdf
TRANSCRIPT
![Page 1: LAPORAN.pdf](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/6.jpg)
%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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051402/55cf9201550346f57b92a30b/html5/thumbnails/32.jpg)
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.