1
PENGENALAN HURUF BERBASIS JARINGAN SYARAF TIRUAN MENGGUNAKAN ALGORITMA PERCEPTRON
Wahyono, Ilmu Komputer Universitas Gadjah Mada Satryo Puji Hastono, Ilmu Komputer Universitas Gadjah Mada Ary Novianto, Ilmu Komputer Universitas Gadjah Mada
Abstrak : Algoritma Perceptron dalam jaringan jar ingan syaraf tiruan dikenal sebagai algoritma algorit ma yang hanya h anya digunakan untuk mengklasifikasikan m engklasifikasikan apakah sebuah pola masuk ke suatu sua tu kelas atau tidak. Namun dari sifat tersebut nampaknya perceptron juga mampu digunakan untuk mengklasifikasikan sebuah pola yang jumlahnya lebih dari satu masuk kekelas mana, dengan cara membandingkan pola kedalam setiap kelas ada. Oleh sebab itu peneliti bermaksud melakukan penelitian penganalan huruf menggunakan algoritma perceptron. Dengan menggunakan metode binerisasi dalam pembacaan input pola dan algoritma perceptron multi input-output inp ut-output dalam dala m pelatihan p elatihan dan pengujian data pola didapatkan bahwa ternyata algoritma perceptron pun bisa digunakan dalam pengenalan huruf yang masuk dalam ruang lingkup pengklasifikasian pola. Kata kunci : perceptron, pengenalan huruf, jaringan syaraf tiruan.
PENDAHULUAN Latar Belakang Masalah Algoritma Perceptron dalam jaringan syaraf tiruan dikenal sebagai algoritma yang hanya digunakan untuk mengklasifikasikan apakah sebuah pola masuk ke suatu kelas atau tidak. Namun dari sifat tersebut nampaknya perceptron juga mampu digunakan untuk mengklasifikasikan sebuah pola masuk kekelas mana, dengan cara membandingkan pola kedalam setiap kelas yang ada. Sehingga perlu dilakukan penelitian untuk membuktikan hal tersebut.
Batasan Penelitian Batasan-batasan dalam penelitian ini adalah jumlah jenis huruf yang digunakan hanya berjumlah tujuh buah. Nilai alpha adalah 1 dan tetha adalah 0,5. Teknik pengenalan pola yang digunakan adalah algoritma klasik perceptron untuk melakukan pembelajaran data. Dan sistem aplikasi ini dibangun di atas bahasa pemrograman Delphi versi 6.0.
2
Dasar Teori Jaringan Syaraf Tiruan Jaringan saraf tiruan (JST) (Bahasa Inggris: artificial neural network (ANN), atau juga disebut simulated neural network (SNN), atau umumnya hanya disebut neural network (NN)), adalah jaringan dari sekelompok unit pemroses kecil yang dimodelkan berdasarkan jaringan saraf manusia. JST merupakan sistem adaptif yang dapat merubah strukturnya untuk memecahkan masalah berdasarkan informasi eksternal maupun internal yang mengalir melalui jaringan tersebut. “Menurut Haykin, S. (1994) Sebuah jaringan saraf adalah sebuah prosesor yang terdistribusi paralel dan mempuyai kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk digunakan. Hal ini menyerupai kerja otak dalam dua hal yaitu: 1. Pengetahuan diperoleh oleh jaringan melalui suatu proses belajar. 2. Kekuatan hubungan antar sel saraf yang dikenal dengan bobot sinapsis digunakan untuk menyimpan pengetahuan” “Sedangkan menurut Zurada, J.M. (1992 ) “Sistem saraf tiruan atau jaringan saraf tiruan adalah sistem selular fisik yang dapat memperoleh, menyimpan dan menggunakan pengetahuan yang didapatkan dari pengalaman”. Algoritma Perceptron Perceptron adalah salah satu algoritma pembelajaran single layer yang mempelajari suatu procedure dengan melakukan perulangan sampai mendapatkan bobot neural yang tepat. Algoritma Pembelajaran Perceptron lebih baik dibandingkan dengan algoritma Hebb rule (Fausset, Fundamentals of Neural Networks : Architectures, Algorithms, and Applications) . Perceptron menggunakan fungsi aktivasi biner untuk unit sensor dan unit asosiasi serta menggunakan +1, 0, -1 aktivasi untuk respon unit. Output dari perceptron adalah y=f(yin) dimana fungsi aktivasinya adalah yin > θ 1 f ( yin) = 0 − θ <= yin < θ − 1 yin < −θ
TUJUAN Tujuan dari penelitian ini adalah membuat sistem klasifikasi huruf berbasis jaringan syaraf tiruan dengan menggunakan algoritma perceptron.
3
PERANCANGAN SISTEM Desain Pola Huruf Dalam klasifikasi huruf pada penelitian ini hanya dibatasi menggunakan huruf kapital dari ‘A’, ‘B’, ‘C’,’D’,’E’,’J’,’K’. Huruf-huruf yang akan diklasifikasi terlebih dahulu dibentuk polanya menggunakan matriks berukuran 9x7, yang digambarkan dengan symbol ‘.’ (titik) dan ‘#’ (kres). Sebagai contoh berikut beberapa pola yang diikutsertakan dalam penelitian ini: Tabel. 1. Pola Huruf dalam matrik 9x7 (Pola Input Satu) Huruf Pola Huruf Pola
A
B
C
..##...
#######
...#...
.#....#
...#...
.#.....
..#.#..
.#.#...
..#.#..
.###...
.#####.
.#.#...
.#...#.
.#.....
.#...#.
.#....#
###.###
#######
######.
...####
.#....#
.....#.
.#....#
.....#.
.#....#
.....#.
.#####.
J
.....#.
.#....#
.....#.
.#....#
.#...#.
.#....#
.#...#.
######.
..###..
..#####
###..##
.#....#
.#..#..
#......
.#.#...
#......
.##....
#......
K
.##....
#......
.#.#...
#......
.#..#..
.#....#
.#...#.
..####.
###..##
#####.. .#...#. .#....# .#....#
D
E
.#....# .#....# .#....# .#...#. #####..
4
Pola inilah yang akan digunakan sebagai data pelatihan dengan target sesuai dengan pola yang diinginkan, dengan merubah pola input tersebut menjadi sekumpulan vector bit 0 dan 1 sebanyak 63 digit dimana 0 menggantikan titik dan 1 menggantikan tanda ‘#’, dan pola output (target) sebanyak 7 bit. Pasangan pola input dan output dari data-data di atas bisa dilihat dalam tabel 2 berikut:
No 1. 2. 3. 4. 5. 6. 7.
Tabel 2. Pola Vektor Input dan Vektor Output (Pola Input Satu) Vektor Input Vektor Output Huruf ( 63 bit ) ( 7 bit) 0011000 0001000 0001000 0010100 0010100 A 1000000 0111110 0100010 0100010 1110111 1111110 0100001 0100001 0100001 0111110 B 0100000 0100001 0100001 0100001 1111110 0011111 0100001 1000000 1000000 1000000 C 0010000 1000000 1000000 0100001 0011110 1111100 0100010 0100001 0100001 0100001 D 0001000 0100001 0100001 0100010 1111100 1111111 0100001 0100000 0101000 0111000 E 0000100 0101000 0100000 0100001 1111111 0001111 0000010 0000010 0000010 0000010 J 0000010 0000010 0100010 0100010 0011100 1110011 0100100 0101000 0110000 0110000 K 0000001 0101000 0100100 0100010 1110011
Teknik Pembacaan Pola Huruf dengan Binerisasi Dalam pembuatan program penelitian ini digunakan bahasa pemgroman berbasiskan desktop yaitu Delphi 6. Beberapa tahapan proses dalam penelitian ini adalah: 1. Input pola dalam bentuk matriks sebanyak jumlah pola dan target yang diinginkan 2. Binerisasi pola input menjadi vector input dengan mengubah ‘.’ Menjadi 0 dan ‘#’ menjadi 1. 3. Melakukan pelatihan dari vector input dan vector output. 4. Pengujian huruf
POLA HURUF
Binerisasi
VEKTOR INPUT DAN OUTPUT
Pelatihan Data
BOBOT POLA Pengujian Pola
Gambar 1. Tahapan Proses
5
Dalam pembacaan input pola bisa dilakukan secara serempak dan sekaligus dengan aturan, baris pertama input adalah bilangan bulat yang menyatakan banyaknya pola yang ingin dilatih (ingat jenis huruf yang digunakan tetap hanya ‘A’,’B’,’C’,’D’,’E’,’J’,’K) untuk pola pertama menempati baris kedua sampai baris ke 10 yang kemudian baris berikutnya diikuti target dari pola yang diinginkan, untuk pola kedua menempati baris ke-12 sampai bari ke-18 dan kemudian baris berikutnya diikuti target dari pola yang diinginkan dan seterusnya sampai pola ke-n, sebagai contoh berikut aturan input pola yang digunakan sebanyak 2 buah yaitu A, dan B. 2 ..##... ...#... ...#... ..#.#.. ..#.#.. .#####. .#...#. .#...#. ###.### A...... ######. .#....# .#....# .#....# .#####. .#....# .#....# .#....# ######. .B.....
Dari pola ini program membaca baris perbaris string yang kemudian dibinerisasi dengan aturan yang telah dijelaskan sebelumnya kedalam tipe data array satu dimensi. Flowchart untuk proses pembacaan dan binerisasi bisa dilihat pada gambar 3.
Arsitektur dan algoritma Pelatihan Arsitektur Jaringan Syaraf Tiruan yang digunakan adalah perceptron dengan 63 neuron input dan 7 neuron output dengan arsitektur lapis tunggal (neuron hidden = 0). Seperti terlihat pada gambar 2.
Dari arsitektur tersebut didapat algoritma untuk melakukan pelatihan data yaitu :
6
0. 1. 2. 3. 4. 5. 6. 7.
Tentukan nilai Untuk i dari satu sampai 7 ( jumlah jenis huruf) lakukan langkah 1-9 Untuk j ß 1 sampai 64 lakukan Wij ß 0 Selama kondisi =false lakukan langkah 4-9 Untuk kß 1 sampai N (jumlah data pelatihan) lakukan langkah 5-8 Untuk setiap pola pelatihan si:ti lakukan set aktivasi untuk input Xi = Si Hitung respon unit output,
1
W11
X1
W12 W17
W13
W21
X2
W22 W23
8.
9.
Y3
...
.. .. .
X3
j =1
Perubahan bobot, Jika y Tki untuk jß 1 sampai dengan n lakukan Wij(baru)=Wij(lama)+alpha*Tki*Xkj; Cek kondisi jika tidak terjadi perubahan bobot kondisi=true else kembali kelangkah 3
Y7
X63
Gambar 2. Arsitektur Perceptron Mulai
Baca N(baris 1) Init i=0; Ya Baca string Baris Pada Pola
Jadi 1
kar=# Binerisasi
No Jadi 0 Ya
Y2
W27
63
∑ Xkj *Wij , hitung nilai y = f(yin);
Y1
Iß i+1 i<=N No Stop Gambar 3. Flowchart baca input pola dan binerisasi
7
Pengujian Huruf Sama seperti pada pelatihan data, untuk pengujian data kita menggunakan input pola matriks 9x7 yang terdiri dari karakter titik atau #, setelah pola diinputkan kemudian pola tersebut dibinerisasi untuk selanjutnya dilakukan pengujian, bentuk pola input data untuk pengujian hanya bersifat tunggal seperti berikut: ..##... ...#... ...#... ..#.#.. ..#.#.. .#####. .#...#. .#...#. ###.###
Sedangkan untuk algoritma lengkapnya adalah sebagai berikut 1. Baca Input 2. Binerisasi input 3. Untuk iß 1 sampai 7 lakukan langkah 4 sampai 7 4. yin=bobot[i,64] 5. Untuk jß 1 sampai 63 lakukan yin=yin+datauji[j]*bobot[i,j]; 6. y[i]=f(yin) 7. jika y[i]=1 berarti pola yang dimasukan merupakan huruf ke-i 8. jika tidak ada satupun y[i] yang bernilai satu maka pola yang diinputkan tidak bisa diklasifikasikan.
HASIL DAN PEMBAHASAN Implementasi pembuatan sistem ini didasarkan pada rancangan sistem yang sudah dibahas sebelumnya dimana sistem ini dibagi menjadi dua sub sistem yaitu subsistem pelatihan data dan yang kedua subsistem pengujian data. Dengan menggunakan data yang ada seperti pada bab Perancangan Sistem sebagai input pelatihan dan input pengujian didapatkan hasil sebagai berikut: Tabel 3. Hasil Pengujian dengan Data Pelatihan 7 buah INPUT TARGET OUTPUT A A A atau B B B D atau K C C C atau D atau K D D D E E K J J J K K Tidak Masuk Manapun
8
Empat (yaitu huruf ‘A’,’C’,’D’, dan ‘J’) dari tujuh pola input pengujian yang juga merupakan pola input pelatihan menunjukan hasil yang sesuai meskipun pola huruf tersebut juga diklasifikasikan ke dalam kelas lain, misalnya pola ‘A’ diklasifikasikan ke ‘A’ juga ke ‘B’. Sedangkan pola huruf ‘B’, dan ‘E’ diklasifikasikan ke kelas yang berbeda. Namur untuk pola ‘K’ justru tidak dapat diklasifikasikan ke kelas manapun. Kemudian dicoba menggunakan pola input pengujian yang berbeda dengan pola input pelatihan [Fausset, Fundamentals of Neural Networks : Architectures, Algorithms, and Applications halaman 72, pola input dua dan tiga ] didapatkan hasil sebagai berikut: ,
INPUT A B C D E J K
Tabel 4. Hasil Pengujian dengan input pengujian berbeda TARGET OUTPUT POLA INPUT 2 OUTPUT POLA INPUT 3 A A B B D atau K D atau K C C C D C atau D D E C atau K K J J J K C atau K K
Ternyata didapatkan hasil yang lebih akurat (A, C, D, J, dan K pada pola input 2, serta C,D,J,K pada pola input 3) dalam mengklasifikasian huruf dibandingkan kita menggunakan pola input pengujian yang sama dengan pola input pelatihan. Kemudian dicoba menggunakan input pelatihan yang lebih banyak (21 buah) dengan pola huruf yang sama [Fausset, Fundamentals of Neural Networks : Architectures, Algorithms, and Applications halaman 72] dan input pengujian yang sama dengan pengujian sebelumnya didapatkan hasil yang berbeda. ,
INPUT A B C D E J K
Tabel 5. Hasil Pengujian dengan Data Pelatihan 21 buah TARGET OUTPUT POLA 1 OUTPUT POLA 2 OUTPUT POLA 3 A A atau B A B B K D atau K C K B B D B atau K B atau K E K K K J J J B atau J K K
Ternyata ketika kita menggunakan pola input satu, pola input dua dan pola input tiga sebagai data pelatihan sekaligus sebagai data pengujian, hasilnya lebih tidak akurat dibandingkan dengan pengujian sebelumnya.
9
KESIMPULAN Dengan menggunakan algoritma perceptron ternyata bisa dilakukan pengklasifikasian pola huruf. Meskipun dalam pelatihan dengan data yang sedikit, saat pengujiannya hasil yang didapat menunjukan bahwa beberapa pola tidak sesuai dengan klasifikasi polanya tetapi persentasi ketidaksesuaian ini lebih kecil dibadingkan dengan pengujian data yang memiliki data pelatihan lebih banyak.
DAFTAR PUSTAKA Duda, R.O., Hart, P.E., Stork, D.G. (2001) Pattern classification (2nd edition), Wiley Fausett, Laurene., Fundamentals of Neural Networks : Architectures, Algorithms, and Applications Haykin, S. (1994), Neural Networks: A Comprehensive Foundation, NY, Macmillan J. Schuermann: Pattern Classification: A Unified View of Statistical and Neural Approaches, Wiley&Sons, 1996 Jurnal “Artificial Neural Network Technology”,St. Louis University, 1998. Richard O. Duda, Peter E. Hart, David G. Stork (2001) Pattern classification (2nd edition), Wiley, New York Zurada, J.M. (1992), Introduction To Artificial Neural Systems, Boston: PWS Publishing Company
10
LAMPIRAN ...#...
######.
..###..
...#...
#.....#
.#...#.
...#...
#.....#
#.....#
..#.#..
#.....#
#......
..#.#..
######.
#......
.#...#.
#.....#
#......
.#####.
#.....#
#.....#
.#...#.
#.....#
.#...#.
.#...#.
######.
..###..
#####..
#######
.....#.
#....#.
#....#.
#......
.....#.
#...#..
#.....#
#......
.....#.
#..#...
#.....#
#......
.....#.
#.#....
#.....#
#####..
.....#.
##.....
#.....#
#......
.....#.
#.#....
#.....#
#......
.#...#.
#..#...
#....#.
#......
.#...#.
#...#..
#####..
#######
..###..
#....#.
...#...
######.
..###.#
...#...
.#....#
.#...##
..#.#..
.#....#
#.....#
..#.#..
.#####.
#......
.#...#.
.#....#
#......
.#####.
.#....#
#......
#.....#
.#....#
#.....#
#.....#
.#....#
.#...#.
##...##
######.
..###..
#####..
#######
....###
###..##
.#...#.
.#....#
.....#.
.#...#.
.#....#
.#..#..
.....#.
.#..#..
.#....#
.####..
.....#.
.#.#...
.#....#
.#..#..
.....#.
.##....
.#....#
.#.....
.....#.
.#.#...
.#....#
.#.....
.....#.
.#..#..
.#...#.
.#....#
.#...#.
.#...#.
#####..
#######
..###..
###..##
POLA INPUT 2
POLA INPUT 3