PENERAPAN NEURAL NETWORK TENTANG METODE BACKPROPAGATION PADA PENGENALAN POLA HURUF MT AsepSholahuddin, JurusanMatematikaUniversitasPadjadjaran Jl. RayaJatinangorKm21.Telp. (022)7794696Bandung E-mail :
[email protected] [email protected]
Abstrak Neural network adalah salah satu cabang dari ArtiJicial Intelligent. Salah satu metode dalam neural network adalah metode baclcpropagation- Banyak aplikasi dari neural network diontaranya : untuk predilcsi, pengenalan pola, identifilasi dan simulasi. Dalam paper ini, neural network dengan menggunakan metode baclEropagation telah diaplilasilmn dengan suksesuntuk pengenalan pola huruf abjad. Untuk mencobanya dibuat sofhuare, software tersebut ditraining uttuk mengenali pola huruf setelah itu dicoba untuk mengenali huruf yang dimasuknn, ternyata software tersebut mengenalinya bahkan dicoba huruf-huruf tersebut diberi noise, tapi dalam fotas-batas tertentu tetap masih mengenali huruf tersebut- Dari metode tersebut bisa dikembangknn lebih jauh lagi, misalnya pengenalan pola wajah, pengenalan pola tanda tangan dan lain-lain Kata kunci: neural network, baclqropagation, noise. l.
Pendahuluan
Bila seseorangmembacahuruf, misalnya huruf A maka orang tersebut akan mudah sekali membacanya tetapi bagaimana kalau huruf tersebut ada beberapa bagian yang terhapus, orang tersebut akan mencoba memperkirakanhuruf tersebut dan kemungkinan bisa menebaknyadengan baik. Kenapa manusia bisa seperti itu? jawabannya karena manusia mempunyai pengenalanpola yang sangat baik. Bagaimana halnya dengan komputer?. Maka pada paper ini saya mencoba komputer untuk bisa mengenalipola.denganmenggunakanJaringan Syaraf Tiruan (JST). Aplikasi JST pada saat ini telah merambah banyak bidang. Misalnya, pada pesawat terbang: sistem kontrol pesawat,deteksi kesalahan,simulasi lintasan terbang, pada otomotif: sistem 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:analisissel kanker, analisis EEG dan ECG, pada minyak dan gas : bidang eksplorasi,pada suara: pengenalansuara,kompresi suara,klasifikasi vokal, pada saham: sistem penasihatperdagangansahamdan lain-lain. 2.
Metode Jalar Balik (backpropagation)
Metode yang digunakandalam kesempatanini adalahmetodejalar balik dimana metode ini sangat populer meskipun bukan yang terbaik. Metode ini tidak mempunyai hubungan feedback sehingga 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. Penentuanbobot antara pasangan-pasanganlapisan dan mengkalkulasi ulang output merupakan proses iteratif yang dilakukan sampai galat mencapai toleransi tertentu. Bobot penentuan parameter laju belajar dan momentum yang sesuai bisa digunakan untuk memperbaiki hasil dari JST. Pasanganvektor input dan output dipilih untuk melatih JST untuk pertama kalinya. Setelah latihan selesai,maka bobot ditentukan dan JST dapat digunakan untuk menemukan output sebagai
kapan
A-83
Neural Network Tentang Metode Backpropagation Pada Pengenalan Pola Huruf
iryut baru. Sejumlah neuron dalam lapisan input menentukandimensi input, dan sejumlah neuron dNlam lapisan output menentukan dimensi lapisan ouQut, kemudian JST dapat membuat pemetaan ruang dimensi-k menjadi ruang dimensi-m. Tentu saja, pemetaan tersebut tergannrng pada btgaimana pasangan pola atau vektor digunakan: Sehingga setelah dilatih, JST akan memberikan vrktor input baru. Tidak mudah untuk menentukan berapa banyak neuron yang diperlukan. Oleh sebab itu kina membagi tiga bidang, satu untuk neuron input, satu untuk unsur pernroses hidden, dan satu murk neuron output sehinggamenjadi hubunganjalar maju. JST jalar-balik mengalami latihan tanpa guru, dengan sejumlah pasanganpola berhingga ymg terdiri dari pola input dan sebuah pola output taxget atau yang diinginkan. Pola input muncul nda 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 dcnganbobot dan input. Output lapisan hidden tersebutmenjadi input ke neuron output, yang juga diproses menggunakan sebuah fungsi bias dan fungsi ambang dengan aktivasinya untuk nrenentukanoutput akhir dari JST. Pola terhitung dan pola input lalu dibandingkan sehingga galat untuk masing-masing komponen pola dapat ditentukan, sementarapenentuanbobot koneksi antara lapisan hidden dan lapisan output dapat dihitung. Sebuah perhitungan serupa ( masih berdasarkan pada galat pada outru| dibuat untuk bobot koneksi antara input dan lapisan hidden. Proses kemudian diulang scbanyakyang diperlukan sampai galat dalam batastoleransi yang diinginkan. jalar balik adalah sbb: ""r,lgoritma -Inisialisasi Bobot !{enentukan bobot dan ambangsimpul dengan sedikit acak. -Menghitung ahivasi lfenentukan tingkat aktivasi input. Tingkat aktivasi Q sebuahhidden dan satuanouput ditentukan oleh: (l) Q: F ( I \iOi-0;) Dimana Wli adalahbobot dari input Oi , 0j adalahambangsimpul dan F adalah fungsi sigmoid : (2) F(a): l/ (1+ e") -Melatih bobot i. Mulai pada output terus pada lapisan hidden secararekursif. Pemasanganbobot oleh: (3) Wjr(t+1):Wr(t)+ AW;i j (atau adalah pada t) dan A\i waktu iterasi ke ke unit t adalah dari unit i Dimana Wi(t) bobot penentuanbobot. 2. Perubahanbobot dihitung dengan : A\i: l6lOi adalah gradien galat pada unit j. dimana q adalah laju belajar ( 0
6i:Q(1-QXTj-Oj)
(s)
dimana I adalah aktivasi output (target) yang diinginkan dan Q adalah aktivasi output aktual padaunit outputj. -Untuk unit hidden: (6) 6;Q(l-Q)Iftwpl j. dari hidden gradien galat pada hubung unit merupakan titik adalah unit k dimana & 4. Mengulangi iterasi sampai konvergen untuk kriteria galattertentu. Iterasi termasuk menampilkan contoh,menghitungaktivasi,dan memodifikasibobot.
ProceedingsKomputerdan sistemIntelcjen(KoMMm2002) Auditorium UniversitasGunadarmaJakarh, 2l -22 Agushts2002
Nama Jalar-balik berasaldari kenyataandimanagalat diturunkandari jalar galat terbalik dihitung berdasarkanpersamaandiatas)ketika yangdiasosiasikandenganunit output (sebagaimana Pada JST jalar-balik, fungsi aktivasi yang dipilih nital target untgk unit hidden tidak diberikan. ke adalahfungsi sigrnoid,yang menentukannilai oYtput dalamrange0 dan 1. Contohmetodebackpropagasiyang diterapkanpadamasalahekslusive-or
Input
outPut
(1 , 1 ) (1,0) (0,1) (0,0)
0 I I o
Gambar l. penyelesaianeklusive-ordengan menggunaknnmetodebaclcpropagasi Kita inisialisasibobot : Wz+:0'02,Wtb: - 0'01,Wzu: - 0'01 WIz= - 0.02,W23=0.01, W13:0.02,W1a=0.03, Kalkulasi aktifasi untuk input (1,1) yang menghasilkanoutput (0) Ot=O+=l 02= 1 /[1 + e -(l
x 0 ' 0+ 1 I x 0 ' 0 2 l- x ' 0 ' 0 1 ) ] = 0.505
I x0'03-I x'0'01) x -0'02+ Or:1/[1+e -(0.50s ]:0.508 Traning bobot dengan I:0.3
- 0.508):-0-127 6r:0.s08(i - 0.508X0 AWrr:0.3 x (-0.127)xl: - 0.038 x- 0.02;:0-0006 6z:0.505(1- 0.505X-0.127 AWz::0.3 x 0.0006x1 : 0.0002 iterasiterusdilakukandanberakhirpadaerrorlebihkecil dari 0.01didapatkanbobot-bobotsbh - 2'16,Wzu=- 8'83 Wtz: - I1.30,W6:5.62,W2a:5'62,Wtb: Wr+=4.98, W13:4.98, (untukprogramnyadapatdilihat di lampiranl)
PenerapanNeural Network Tentang Metode Backpropagation Pada Pengenalan Pola Huruf
A-85
Hasil dan Pembahasan Mengenali Huruf
3.
Pada kesempatanini JST didesain dan dilatih untuk mengenali 26 huruf alpabet. Masingmasinghuruf diwakili oleh nilai Boolean kisi 5x7' Pertama kita mendefinisikan 35 vektor input dan vektor target dimana masing-masing vektor target adalah 26 vektor dengan I pada posisi huruf yang mewakilinya dan 0 untuk yang oleh I pada elemen pertama ( untuk alasan lainnya. Sebagai contoh, huruf A diwakili pertama karena adalah dan 0 pada elemen 2 sampai26. A huruf alpabet) kemudahan,
TabelI JSTyang dilatih untukmengenalihuruf alpabet
lNo
Huruf
Input
00100 01010 01010 10001 llllr r 0001 10001
I
A
,) B I
llt0 0001 0001 lll0 0001 000 r 1110
Output
I 0000000000000000000000000
0 1 000000000000000000000000
l tl l l
26
Z
00001 00010 00100 01000 10000 lllll
00000000000000000000000001
JST terdiri dari 35 vektor input dan 26 vektor output. Masing-masing vektor output mewakili sebuah huruf. JST yang benar mampu merespon salah satu huruf yang ada sementara nilai output lainnya nol. JST yang baik juga seharusnya dapat mengatasi noise dimana JST seharusnyamembuat kesalahansekecil mungkin ketika mengklasifikasi vektor bernoise rata-rata 0 dan deviasi standar0,2 ataukurang.
ProceedingsKomputer dan sistem Intelejen(KOMMIT2O02) Auditorium Universitas Gunadarma, Jakarta, 2l -22 Agustrrs 2002
A-86
Tabel2 JST ketil(ndiuji untukmengenali 3 huruf ideal tnaupun3 huruf bernoise No
Uji JST dgn dataini (ideal & bernoise)
KcsimpulanJST
I
0 0 100010100101010001 l l l l I l 0 0 0110001
0.90.00.00.00"00.00.00.00.00.0 0.00.00.00.00.00.00.00.00.00.0 A 0.00.00.00.00.00.0
tanpa noise
2
berarti
0.00.00.20.00.00.00.70.00.60.00.00.60.0 0.80.00.00.00.00.00.00.00.00.0_. 0.80.00.30.00.00.00.20.20.60.00.20.60.3 0.00.00.00.00.00.00.00.00.00.0 A 0.00.00.00.10.00.00.00.00.1 0.00.00.00.00.00.0 diberinoiserandom
J
0 r I 1010001 10000100001 0 0 1 t 1 0.00.00.00.00.00.00.90.00.00.0 0 0 0101110 0.00.00.00.00.00.00.00.00.00.0 G tanpa noise 0.00.00.00.00.00.0
A
0.60.00.00.00.50.90.00.00.00.50.80.00.0 0.00.00.00.00.00.00.60.00.00.0 0.00.10.90.10.70.60.10.00.00.00.00.20.9 0.00.00.00.00.00.00.00.00.00.0 G 0.00.00.00.30.20.00.00.00.7 0.00.00.00.00.00.0
I
diberi noise random
5
6
r l 1 101000r 10001 r l I 10101001 001010001 tanpanoise
0.00.00.00.00.00.00.00.00.00.0 0.00.00.00.00.00.00.00.90.00.0 0.00.00.00.00.00.0 R
0.40.20.00.20.0 0.90.00.00.00.60.80.00.0 0.00.00.00.00.00.00.00.00.00.0 0.00.20.00.30.60.00.00.90.00.70.00:00.2 0.00.00.00.00.00.00.00.20.00.0 0.00.00.50.00.80.00.00.00.8 0.00.00.00.00.00.0 diberinoise
R
JST memerlukan 35 input dan 26 neuron pada lapisan output untuk mengidentifikasi huruf. JST terdiri dari dua lapisan. Fungsi tr.ansfer log-sigmoid dipilih karena jangkauan outputnya 0 sampai I yang cocok untuk latihan nilai Boolean output. Lapisanhidden terdiri dari 10 neuron. Jumlah ini dipilih berdasarkantebakandan pengalaman.Jika JST bermasalahdalam latihan maka neuron dapatdiambahkan pada lapisan ini. JST dilatih untuk satu output pada vektor output yang tepat dan mengisi vektor output yang lain dengan0. bagaimanapunvektor input bernoisemungkin hasilnya tidak sempurna0 dan 1
1r;aerapanNeural Network Tentang Metode Backpropagation Pada Pengenalan Pola Huruf
A-87
Untuk menghasilkan JST yang dapat mengatasi veklor input bernoise cara terbaik yaitu wlatih JST baik ideal maupun vektor bemoise.Oleh sebabitu JST pertama kali dilatih pada vektor ilcal sampai mempunyai SSE kecil. Kemudian JST akan dilatih pada 10 set ideal dan vektor tcrnoise. JST dilatih pada alpabet bebas noise rangkap dua dimana pada saat yang sama dilatih pda vektor bemoise. Alpabet bebas noise rangkap dua digunakan untuk memelihara kemampuan IST untuk mengklasifikasi vektor input ideal. JST akan kembali dilatih pada vektor ideal. Hal ini mnrk meyakinkan bahwa JST akan merespon secara sempurna ketika muncul huruf ideal. Seluruh btihan dikerjakan dengan menggunakanjalar balik. Untuk latihan tanpa noise, JST pada awalnya dilatih tanpa noise untuk maksimum 5000 cpoch atau sampai SSE mencapai 0,1. Sementarauntuk bernoise, kita latih dengan ideal rangkap &ra dan vektor bernoise rangkap dua pada alpabet. Vektor target terdiri dari vektor rangkap 4 pada rarget.Vektor noise mempunyai noise ratz-rata0,1 dan 0,2 yang ditarnbahkanpada sistem. Hal ini ekan membuat neuron belajar bagaimanamengidentifikasi huruf bernoise lebih tepat, tetapi tetap meresponvektor ideal denganbaik. Untuk melatih bernoise masimum maka jumlah epoch dikurangi sampai 3000 dan galat goal dinaikkan sampai 0,6. Hal ini dikarenakanjumlah vektor semakin banyak. Setelah JST dilatih dengan noise maka masuk akal untuk melatihnya tanpa noise. Hal ini meyakinkan bahwa vektor input ideal selalu diklasifikasi secarabenar. Karenanya JST lebih untuk dilatih lagi dengan pola identik sebagaimanayangpertamakalinya. Kehandalan sistem pengenalanpola JST diukur denganmenguji JST dengan ratusanvektor input denganjumlah noise yang bervariasi. JST tidak membuat kesalahanuntuk vektor dengan noise rata-rata 0,00 atau 0,05. ketika noise rata-rata 0,2 ditambahkanuntuk vektor maka kedua JST mulai membuat kesalahan. Jika akurasi lebih tinggi diperlukan maka JST dapat dilatih ulang dengan lebih banyak neuron pada lapisan hiddennya. Juga resolusi vektor input dapat dibaikan katakanlah 10x14' akhirnya JST dapat dilatih pada vektor input denganjumlah noise lebih besarjika kehandalanlebih tinggi diperlukan untuk tingkat noise yang lebih tinggi (untuk programnya dapat lihat lampiran2). Kesimpulan
4.
Telah dirunjukkan bahwa JST mampu mengenali dengan baik jenis-jenis huruf dari A sampai Z, bahkan ketika diberi noise sekalipun. Hal ini memberikan kemungkinan yang besar untuk perkembangan pengenalanpola yang lebih jauh lagi.
Daftar Pustaka
5. [1] [2] [3] [4] [5] [6] [7] igj
Blum. A, Nem'al Networl<sin C*4,New York:John Wiley & Son, 1992 Chester,Neural Networl<s:A Tutorial,New Jersey:PrenticeHall, Inc, 1994 Demoth, Hou'ard, Neural Networl<sToolbox,The Mathworks,Inc, Massachusetts,1995 Eberhart, Russel C, Dobbins, Neural Networl<sPC Tools: A Practical Guide,San Diego:AcademicPress,Inc, 1990 Fu Li Min, Neural Networl<sin ComputerIntelligence, Singapore:McGraw-Hill, Inc, 1994 Haykin, Simon, Neural Netvvorks:A ComprehensiveFoundafroz, New Yorks: Macmillan, Inc, 1994 Rao, Valluru, C++ Neural Networl<sand Fuzzy Logic,New York:MIS Press, 1993 fn" Student Edition of Mattab version 4,The Mathwork, Inc, Massachusetts,1995
Lampiranl. Listing program EXOR dengansofhuareMatlab input = [1 1 ;1 O ;0 1 ,' 0 0 ] ' ; out put = [0 1 1 0 ] ; t R, Q l
= s i z e (i n p u t)
;
Proceedings Komputer dan sistem Intelejen(KOMMIT2002) Auditorium Universitas Gunadarma, Jakart4 2l -22 Agustus 2002
A-88
lS z , ql
= s i z e (o u tp u t);
hidden = 1 o ; neE = ne w ff (m i n ma x (i n p u t), = rs s e r net . per f orm F c n = net . E r ainPa ra m.g o a l net . E r ain P a ra m . e p o c h s = 0. net s . t r ainPa ra m.n c
S 2], { ' l ogsi g' '
[h i dden
} ,' trai ngdxr
l ogsi g'
) ;
; 0 .0 0 1 ; = 5 0 0 0 ,' 95;
P = input ; T = output; lnet . , t r l
c ont oh= [ t
= tra i n
(n e t,, P , T ) ;
1J , ;
A = s i m (n e t,c o n to h )
;
Lampiran2. Listing program mengenali pola huruf dengan software Matlab = j e n i s h u ru f lalphabee , ta rg e ts ] = s i z e (a l p h a b e t) [ R, Q ] ; I s 2, Q ] = s i z e (Ea rg e t.s ) ; ?pause ? tekan
sembarang
;
tombol.
net = ne w ff (m i n ma x (a l p h a b e t) , [st = n e t.L W{ 2 , 1 } * O . O 1; net . LW { 2 ,I} = n e t.l { z i * 0 .0 1 ; net . b{ 2}
= 'sser ; net . per f orm F c n = 0 .0 1 ; net . t r ainP a ra m .g o a l show = 20t net . t r ainP a ra m . = 5000; net . t r ain Pa ra m.e p o c h s = 0 .9 5 ; net . t r ainP a ra m .m c
D r
-
-
rlnh:l-ral-.
sr yr r qveut
T = t ar ge ts ; lnet , t r ]
conLoh =
= tra i n (n e t,P,T )
[1 0 0 0 1 10001 10001 1 t_ t_ l _ 1 10001 10001_ 10 0 011';
;
..
s2] , {' l ogsi g"
l ogsi g'
} , ' trai ngdx' )
;
icnerapan Neural Network Tentang Metode BackpropagationPadaPengenalanPola Huruf
A = s i m(n e t,c o n t,o h ) function
;
fa1fabets,tsarget]
hurufA
=
[0 0 ]-0 0 01010 01010 t-0 0 0 1 11111 10001 1_0 o 011';
hurufB
=
[1_ ]- r_ 1_ 0 10001 10001 11110 10001 :_ 0 0 0 1 1 1 1 1 0 l';
hur uf C
=
[O 1 1 1 0 ... 10001 r_ 0 0 0 0 10000 10000 10001 o l_ l_ I o l';
= prprobo
[1 1 1 1 0 l_0001 10001 10001 l -0 0 0 1 10001 11110l';
hurufD
hurufZ
A-89
=
f1
1
1
1
'l
1
1
00001 00010 00100 01000 10000 ' l' t
alf abet
, t ar get
=
1
lr .
[h u ru fA ,h u ru fB,h u ru fC ,hurufD ,hurufE ,hurufF,hurufG,hurufH ,... huruf I, huruf .T,huruf K, huruf L, huruf M, huruf N, huruf O, huruf P, . . . hurufQ , hurufR, hurufS , hurufT , hurufU, hurufV, hurufW , hurufX, . . . h u ru fY ,h u ru fZ l i
= e y e (2 6 ) ;