PENGENAL HURUF TULISAN TANGAN MENGGUNAKAN JARINGAN SARAF TIRUAN METODE LVQ (LEARNING VECTOR QUANTIZATION) By. Togu Sihombing Tugas Ujian Sarjana. Penjelasan Learning Vector Quantization (LVQ) Learning Vector Quantization (LVQ) adalah suatu metode untuk melakukan pembelajaran pada lapisan kompetitif yang terawasi. Suatu lapisan kompetitif akan secara otomatis belajar untuk mengklasifikasikan vektor-vektor input. Kelas-kelas yang didapatkan sebagai hasil dari lapisan kompetitif ini hanya tergantung pada jarak antara vektor-vektor input. Jika vektor input mendekati sama, maka lapisan kompetitif akan meletakkan kedua vektor input tersebut ke dalam kelas yang sama.. Algoritma Learning Vector Quantization (LVQ. Tetapkan bobot (W), Maksimum epoh (MaxEpoh), error minimum yang diharapkan (Eps), Learning rate ( ). Masukkan Input : x (m,n) Targetm : T (,n) 3. Tetapkan kondisi awal Epoh = 4. Kerjakan jika: (epoh <MaxEpoh) atau ( > eps) a. epoh = epoh + b. Kerjakan untuk i = sampai n i. Tentukan J sedemikian hingga x w j minimum (sebut sebagai C j ) ii. Perbaiki wj dengan ketentuan Jika T = C j maka: w j (baru) = w j (lama) + (x-w j (lama)) Jika T Cj maka: wj (baru) = wj(lama) - (x-wj(lama)) c. Kurangi nilai
3. Arsitektur LVQ (Learning Vector Quantization) Pada jaringan saraf metode LVQ (Learning Vector Quantization) lapisan kompetitif akan belajar untuk menggolongkan vektor masukan dengan cara yang hampir sama dengan lapisan kompetitif sebelumnya. Lapisan linier mengubah bentuk yang kompetitif kedalam kelas lapisan yang sama. X X x w Y_in F Y X 3 X 4 X 5 x w Y_in F Y X 6 Gambar Arsitektur jaringan LVQ (Learning Vector Quantization) Dimana : X = Vektor Masukan (x, x i, x n ) F Y_in Y W = Lapisan kompetitif = Masukan kelapisan kompetitif = Keluaran (Output) = Vektor bobot untuk unit keluaran x w = Selisih nilai jarak Euclidean antara vektor input dengan vektor bobot untuk unit Output[3]
Gambar diatas adalah arsitektur jaringan LVQ (Learning Vector Quantization) yang terdiri dari 6 node lapisan masukan (Input layer), node lapisan tersembunyi (Hidden layer) serta node lapisan keluaran (Output layer). Lapisan input memiliki 6 node yang disimbolkan dengan nilai x, x, x 3, x 4, x 5, dan x 6. Pada tiap lapis masukan terlebih dahulu diberikan dua nilai bobot yang berbeda yaitu w dan w. Dimana tujuan dari pemberian bobot tersebut adalah agar nilai tiap masukan memiliki penimbang (bobot) yang kemudian akan dihitung nilainya dan diselesaikan dengan persamaan yang dimiliki oleh metode LVQ (Learning Vector Quantization). Sehingga jaringan memiliki dua buah kelas yang berbeda, yaitu kelas dan kelas. Kelas memiliki bobot w dan kelas dua memiliki bobot w. Keluaran dari lapisan ini akan menjadi masukan bagi lapisan tersembunyi (hidden layer) sebanyak node yaitu Y_ in dan Y_ in. Dengan menggunakan prinsip bahwa nilai paling kecil yang dihasilkan adalah pemenang dan merupakan kelas dari input tersebut maka pada lapisan keluaran (Output layer) digunakan sebuah fungsi pembanding yang berguna membandingkan dua nilai tersebut untuk dicari nilai terkecilnya. Dalam jaringan diatas fungsi pembanding tersebut dituliskan dengan simbol F dan F. Nilai input yang diberikan ke lapisan masukan (Input layer) merupakan berupa vektor yang disimbolkan dengan nilai biner dan. Jumlah dari vektor x sebagai input tergantung jumlah input yang diberikan kelapisan masukan yang berasal dari vektor ukuran m x n dan diubah menjadi vektor berukuran x n. Tujuannya adalah untuk mempermudah penentuan jumlah node pada lapisan masukan serta perhitungannya dengan metode LVQ (Learning Vector Quantization). Misalkan diketahui input vektor dalam kelas sebagai berikut :. (,,,,, ). (,,,,, ) 3. (,,,,, ) 4. (,,,,, ) 5. (,,,,, ) 6. (,,,,, ) 7. (,,,,, ) 8. (,,,,, ) 9. (,,,,, ). (,,,,, ) 3
Dua input pertama akan dijadikan sebagai inisialisasi bobot sedangkan 8 input sisanya akan digunakan sebagai data yang akan dilatih. Sebagai nilai awal dipilih learning rate ( =,5) dengan pengurangan sebesar,*, serta maksimum epoh (MaxEpoh = ) a. Epoh ke- : - Data ke- : (,,,,, ) Jarak pada bobot ke- = ( ) ( ) ( ) ( ) ( ) ( ) Y_in Jarak pada bobot ke- = ( ) ( ) ( ) ( ) ( ) ( ) Y_in X X x w F X 3 X 4 X 5 x w F X 6 Gambar Arsitektur jaringan LVQ untuk tahap pembelajaran dengan input data ke- 4
Jarak terkecil terdapat pada bobot ke-, sehingga target data ke- adalah data ke-. Nilai bobot ke- baru : w = w + *( x - w ) = +,5 *( ) =,95; w = w + *( x - w ) = +,5 *( ) =,; w 3 = w 3 + *( x - w 3 ) = +,5 * ( ) =,5; w 4 = w 4 + *( x - w 4 ) = +,5 *( ) =,; w 5 = w 5 + *( x - w 5 ) = +,5 *( ) =,95; w 6 = w 6 + *( x - w 6 ) = +,5 *( ) =,5; Jadi w = (,95,,5,,95,5) - Data ke- : (,,,,, ) Jarak pada bobot ke- (,95) ( ) Jarak pada bobot ke- (,5) ( ) (,95) (,5),3454 ( ) ( ) ( ) ( ) ( ) ( ),44 Jarak terkecil terdapat pada bobot ke-, sehingga target data ke- adalah data ke-. X,95 X x w,3454 F X 3,5 X 4 X 5,95 x w,44 F X 6,5 Gambar Arsitektur jaringan LVQ untuk tahap pembelajaran dengan input data ke- 5
Nilai bobot ke- baru : w = w + *( x - w ) =,95 +,5 *, 95 =,95; w = w + *( x - w ) =, +,5 * ( ) =,; w 3 = w 3 + *( x - w 3 ) =,5 +,5 * (, 5 ) =, 975; w 4 = w 4 + *( x - w 4 ) =, +,5 * ( ) =,; w 5 = w 5 + *( x - w 5 ) =,95 +,5 * (,95) =, 955; w 6 = w 6 + *( x - w 6 ) =,5 +,5 * (,5) =, 475; Jadi w = (,95,,975,,955,475) - Data ke-3 : (,,,,, ) Jarak pada bobot ke- = (,95) ( ) (,975) ( ) (,955) (,475),975 Jarak pada bobot ke- = ( ) ( ) ( ) ( ) ( ) ( ) Jarak terkecil terdapat pada bobot ke-, sehingga target data ke-3 adalah data ke-. X,95 X x w,975 F X 3,975 X 4 X 5,955 x w F X 6,475 Gambar Arsitektur jaringan LVQ untuk tahap pembelajaran dengan input data ke-3 6
Nilai bobot ke- baru : w = w + *( x - w ) =,95 +,5 *(,95) =,8547; w = w + *( x - w ) =, +,5 *(,) =,5; w 3 = w 3 + *( x - w 3 ) =,975 +,5 *(,975) =,96; w 4 = w 4 + *( x - w 4 ) =, +,5 *(,) =,; w 5 = w 5 + *( x - w 5 ) =,955 +,5 *(,95) =,949; w 6 = w 6 + *( x - w 6 ) =,475 +,5 *(,475) =,95; Jadi w = (,8547,5,96,,949,95) Proses tersebut diteruskan untuk epoh ke- sampai ke-, untuk setiap data dengan menggunakan cara yang sama. Setelah mencapai epoh yang ke- diperoleh bobot akhir : w = (,377,6,6347 -,64,798,454) w = (,,7969,79,,5869,7) Sehingga bentuk jaringan untuk tahap pengujian dapat digambarkan sebagai berikut : X,377 X,6,7969 x w Y_in Y F X 3,6347,79 -,64 X 4 X 5,798,5869 x w Y_in Y F,454,7 X 6 Gambar Arsitektur jaringan LVQ untuk tahap pengujian setelah epoh ke- 7
Misalkan sebuah vektor input diambil untuk pengujian misalnya (,,,,, ), maka terlebih dahulu dihitung jarak input tersebut dengan kedua bobot. Nomor dari bobot dengan jarak yang terpendek akan menjadi kelasnya. Jarak pada bobot ke-: (,377) (,6) (,6347) (,64) (,798) (,454),694 Jarak pada bobot ke-: ( ) (,7969) (,79) ( ) (,5869) (,7) Jarak terkecil pada bobot ke-, sehingga input tersebut termasuk dalam kelas.,9398 Pengujian nilai input diatas dapat digambarkan seperti Gambar arsitektur LVQ dibawah ini : X,377 X,6,7969 x w,694 F X 3,6347,79 X 4 -,64 X 5,798,5869 x w,9398 F X 6,454,7 Gambar Arsitektur jaringan LVQ untuk tahap pengujian 8
4. Proses Pengenalan Huruf Proses pengenalan memanfaatkan jaringan saraf tiruan (JST) dengan komposisi Jaringan neural yang terdiri dari 3 lapisan yang terdiri dari satu input layer (56 node), satu hidden layer (5 node) dan satu output layer (5 node), yaitu sesuai dengan jumlah vektor interpretasi tulisan tangan hasil scanning menjadi vektor 6 x6 sebanyak 56 jenis dan jumlah tulisan yang digunakan sebanyak 5 buah (huruf alphabet huruf kecil a~z dan huruf besar A~Z). Urutan Input dimulai dari rangkaian dijit paling kiri menuju kanan, maka susunan input seperti terlihat pada Gambar berikut : Abjad Matrik 5 x 56 Susunan Input Pada Jaringan Saraf 3 53 54 55 A B Input ke Input ke 4 5 6 7.. Y Z a b y z 5 5 Input ke 54 Input ke 55 Gambar Susunan Input pada pengenalan huruf tulisan tangan 5. Tahap Inisialisasi Kelas - kelas yang ada pada program ini diurutkan berdasarkan huruf abjad. Dimana huruf A dimasukkan kedalam kelas ke- dan huruf B dimasukkan kedalam kelas ke- sampai kepada huruf terakhir dalam Alphabet, hingga huruf Z mendapat kelas ke-6. Demikian juga dengan huruf kecil (lowercase) dimasukkan kedalam kelas yang berbeda dengan huruf besar, dimana kelas 9
pertama dalam huruf kecil adalah lanjutan dari kelas untuk huruf besar. Yaitu huruf a mendapat kelas ke-7, huruf b diletakkan pada kelas ke-8 hingga huruf z mendapat kelas ke-56. 6. Tahap Pembelajaran Tulisan Tangan Memasukkan pola tulisan tangan yang akan diajarkan, baik yang telah tersedia berupa file bmp maupun pola tulisan tangan langsung dari hasil scanner dan diletakkan ke Form input yang tersedia pada program tulisan tangan. Kemudian pola tersebut dikonversi menjadi vektor matrik 6 x 6 agar dapat dihitung nilai bobot matriknya dengan metode LVQ (Learning Vector Quantization). Selanjutnya bobot matrik tersebut dihitung dengan aturan hitungan pada pembelajaran dengan metode LVQ (Learning Vector Quantization) dengan (sepuluh) epoh untuk tiap huruf yang akan diajarkan sampai diperoleh nilai epoh terkecil untuk setiap huruf tulisan tangan. Unit terkecil yang dihasilkan akan menjadi bobot pembanding yang akan dipakai pada tahap pengujian. Disetiap pemasukan input huruf dipastikan pembelajarannya sesuai dengan dengan huruf yang kita inginkan. Tujuannya adalah memperoleh nilai bobot terkecil yang dimiliki oleh setiap huruf tulisan tangan. Kemudian pastikan bahwa semua huruf tulisan tangan yang akan diajarkan telah merata seluruhnya diajarkan dalam sistem, karena jika tidak merata akan mengakibatkan kesalahan pada bobot epoh terakhir yang kita ingini tidak sesuai. Ini disebabkan nilai dari setiap huruf pada tiap pembelajaran akan berubah jika salah satu huruf diberikan pembelajaran. Dan jika antara data masukan dengan data target sesuai maka nilai bobot baru dihitung dengan persamaan : w j (baru) = w j (lama) + (x-w j (lama))
Namun Jika terjadi ketidakcocokan antara data masukan dengan data target maka nilai bobot baru kemudian diperbaiki dengan persamaan : w j (baru) = w j (lama) - (x-w j (lama)) Nilai nilai bobot baru tersebut akan dihitung sampai kepada Maxepoh (maksimum epoh yang dilakukan untuk setiap huruf pembelajaran). Dalam tugas akhir ini nilai epoh awal =,5. Dan setiap epoh ke epoh berikutnya nilai (learning rate) mengalami pengurangan nilai sebesar,* seperti persamaan berikut : Nilai untuk epoh ke-n n = n- -,* n- [7] Sehingga susunan jaringan saraf tiruan dengan metode LVQ (Learning Vector Quantization) yang digunakan untuk proses pengenalan tulisan tangan selengkapnya seperti yang ditunjukkan pada Gambar dibawah ini : Abjad Matrik 5 x 56 3 53 54 55 3 Lapisan Input Lapisan tersembunyi Lapisan Output 3 A B Z 48 49 5 5 5 53 54 55 a b z Gambar Susunan Jaringan Saraf metode LVQ untuk pengenalan tulisan tangan Jumlah node lapisan keluaran adalah 5 node, yaitu sesuai dengan jumlah huruf alphabet Huruf besar A~Z serta huruf kecil a~z. Masing-masing unit hidden menghitung sesuai dengan fungsi aktivasinya kemudian mengirim sinyal terhitung
tersebut kemasing-masing unit output. Setelah diterima output dihitung sesuai dengan fungsi aktivasinya dan akan menghasilkan sinyal keluaran sebagai respon adanya masukan di unit input. 7. Analisis dan Kesimpulan - Hasil pengujian pengenalan huruf tulisan tangan menggunakan awal (Leaning rate) =,5 sebagai epoh awal dan untuk epoh berikutnya nilai (learning rate) mengalami pengurangan nilai sebesar,* dan diselesaikan dengan persamaan n = n- -,* n-. - Tugas akhir ini Menggunakan 39 data latih yang memiliki 3 (tiga) jenis tingkat kerusakan yaitu tingkat kerusakan rendah (4 : 4), tingkat kerusakan sedang (3 : 4), tingkat kerusakan tinggi ( : 4). - Pengenalan huruf besar dengan dengan kerusakan rendah (4 : 4), kerusakan sedang (3 : 4), kerusakan tinggi ( : 4) berturut-turut, 9,6 %, 85,8 %, 7.7 %. Serta pengenalan huruf kecil 9, %, 86,5 %, 73,8 %. Tingkat kerberhasilan pengenalan huruf tulisan tangan huruf besar dan kecil dengan kerusakan tinggi ( : 4) adalah yang terkecil 7,7 % dan 73,8 % dibanding dengan pengenalan dengan kerusakan sedang (3 : 4) maupun kerusakan rendah (4 : 4), dikarenakan kerusakan yang dihasilkan menyebabkan nilai perbandingan bit dan tidak berimbang serta nilai bobot yang terdeteksi menjadi tidak sesuai dengan data pelatihan Jenis Huruf Hasil Implementasi Rendah (4:4) Tingkat kerusakan Sedang (3:4) Tinggi (:4) Huruf Besar 9, 6% 85, 8% 7, 7% Huruf Kecil 9, % 86, 5% 73, 8%