Penerapan Jaringan Saraf Tiruan Untuk Pengenalan Pola Huruf Dengan Metode Backpropagation

(1)

PENERAPAN JARINGAN SARAF TIRUAN UNTUK

PENGENALAN POLA HURUF DENGAN

METODE BACKPROPAGATION

SKRIPSI

TAUFIQ AFANDI

040803054

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2009


(2)

PENERAPAN JARINGAN SARAF TIRUAN UNTUK

PENGENALAN POLA HURUF DENGAN

METODE BACKPROPAGATION

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar sarjana Sains

TAUFIQ AFANDI

040803054

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2009


(3)

PERSETUJUAN

Judul : PENERAPAN JARINGAN SARAF TIRUAN

UNTUK PENGENALAN POLA HURUF DENGAN

METODE BACKPROPAGATION Kategori

Nama

Nomor Induk Mahasiswa Program Studi

Departemen Fakultas

: SKRIPSI

: TAUFIQ AFANDI : 040803054

: SARJANA (S1) MATEMATIKA : MATEMATIKA

: MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juni 2009 Komisi Pembimbing :

Pembimbing II Pembimbing I

Drs. Sawaluddin Nasution, M.IT Drs. James P. Marbun, M.Kom NIP.132206398 NIP.131639804

Diketahui/Disetujui oleh

Departemen Matematikan FMIPA USU Ketua,

Dr. Saib Suwilo, M.Sc NIP.131796149


(4)

PERNYATAAN

PENERAPAN JARINGAN SARAF TIRUAN UNTUK PENGENALAN POLA HURUF DENGAN METODE BACKPROPAGATION

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juni 2009

TAUFIQ AFANDI 040803054


(5)

PENGHARGAAN

Alhamdulillahirabbil’alamin adalah kata syukur yang sampai saat ini sangat pantas untuk penulis ucapkan kepada Allah SWT karena begitu banyak rahmat, karunia dan petunjuk yang telah dilimpahkanNya sehingga penulis dapat menyelesaikan skripsi yang berjudul ”Penerapan Jaringan Saraf Tiruan untuk Pengenalan Pola Huruf dengan Metode Backpropagation” ini dengan baik. Shalawat beriring salam juga penulis ucapkan kepada Nabi besar Muhammad SAW.

Pada kesempatan ini, penulis mengucapkan terima kasih kepada Bapak Drs. James P. Marbun, M.Kom selaku Pembimbing I dan Bapak Drs. Sawaluddin Nasution, M.IT selaku Pembimbing II yang telah telah membimbing dan mengarahkan penulis serta kebaikannya untuk meluangkan waktu, tenaga, pikiran dan bantuannya sehingga skripsi ini dapat selesai tepat waktu. Penulis juga mengucapkan terima kasih kepada Bapak Dr. Saib Suwilo, M.Sc dan Bapak Drs. Henry Sitepu, M.Si selaku Ketua dan Sekretaris Departemen Matematika di FMIPA USU. Bapak Dr. Eddy Marlianto, M.Sc selaku Dekan FMIPA USU serta kepada seluruh Staf Pengajar Departemen Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Sumatera Utara.

Tak lupa, penulis juga mengucapkan terima kasih kepada Ayahanda dan Ibunda tercinta yang telah memberikan kasih sayang, doa, bantuan moril maupun materil yang begitu sangat berartinya bagi penulis. Serta kepada seluruh keluarga, terutama kepada abangda Eko Fransiska, terima kasih untuk semangat dan nasihatnya, adinda Soni Riki Hamdani serta Wahono Hadi yang telah banyak membantu penulis dalam hal penyelesaian skripsi ini. Rayi Syahfitri yang telah memberikan dorongan semangat dan selalu mendampingi penulis hingga selesainya skripsi ini. Seluruh mahasiswa matematika stambuk 2001, 2002, 2003, 2004, 2005 dan 2006 terutama Quarthano Reavindo, Robby Ulfan, Ramidin, Deni, Indra, Rajali, Gunyanto dan Darto yang telah banyak memberikan bantuan pikiran, waktu, tenaga dan kebersamaan yang tidak mungkin terlupakan. Semoga semua kebaikan yang telah terukir ini menjadi keabadaian yang pantas untuk dikenang dan mendapat balasan yang jauh lebih baik dari Allah SWT.


(6)

Penulis menyadari bahwa skripsi ini memiliki banyak kekurangan, oleh karena itu dibutuhkan saran dan masukan dari semua pihak demi perbaikan tulisan ini.

Akhir kata penulis mengucapkan terima kasih atas perhatiannya, semoga tulisan ini berguna bagi siapa saja yang membutuhkan.

Medan, Juni 2009 Penulis

Taufiq Afandi


(7)

ABSTRAK

Penelitian ini membahas perbandingan pengaruh inisialisasi bobot awal terhadap tingkat akurasi dan jumlah epoch pada pengenalan pola huruf dengan metode backpropagation. Arsitektur yang digunakan adalah lapis banyak (multilayer) dengan 1 lapisan tersembunyi. Jumlah neuron pada lapisan tersembunyi sebanyak 10, 15, 20, 25, dan 30. Laju pembelajaran (α) dan momentum (µ) yang digunakan berada dalam interval [0.1,0.9] dengan error 0.01. Dari hasil penelitian diperoleh bahwa pola huruf dikenali cukup baik dan inisialisasi bobot awal metode acak unggul dalam hal generalisasi ketika neuron pada lapisan tersembunyi sebanyak 10, 20 dan 25 sedangkan inisialisasi bobot awal nguyen widrow unggul pada 15 neuron.


(8)

IMPLEMENTATION OF NEURAL NETWORK TO RECOGNITION A LETTTER PATTERN WITH BACKPROPOGATION METHOD

ABSTRACT

This research studies about the comparison of the influence of initial weight for the level accuracy and the number of epoch that is used for the recognition of letter pattern with backpropagation method. The applied architecture is multilayer with 1 hidden layer. The number of neuron at hidden layer are 10, 15, 20, 25, and 30.

Learning rate (α) and momentum (μ) are used at interval [0.1,0.9] with error 0.01.

Based on the research, the letter pattern identified with sufficient and inisialisation of random weight is good in generalisation problem when neuron in hidden layer is 10, 20 and 25 while initialization of nguyen widrow winning at 15 neuron.


(9)

DAFTAR ISI

Halaman

PERSETUJUAN i

PERNYATAAN ii

PENGHARGAAN iii

ABSTRAK v

ABSTRACT vi

DAFTAR ISI vii

DAFTAR GAMBAR ix

DAFTAR TABEL xi

BAB 1. PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tinjauan Pustaka 4

1.5 Tujuan Penelitian 4

1.6 Manfaat Penelitian 4

1.7 Metodologi Penelitian 5

2. LANDASAN TEORI 6

2.1 Jaringan Saraf Biologi 6

2.2 Jaringan Saraf Tiruan (JST) 7

2.2.1 Komponen Jaringan Saraf Tiruan 7

2.2.2 Arsitektur Jaringan 8

2.2.3 Model Pelatihan JST 10

2.2.4 Fungsi Aktivasi dan Error 11

2.3 Backpropagation 13


(10)

2.3.2 Algoritma Backpropagation 15

2.4Optimalitas Arsitektur Backpropagation 18

3. HASIL UTAMA 20

3.1 Pengumpulan Data Pelatihan 20

3.2 Pendesainanan JST 27

3.3 Implementasi dan Pengujian 29

4. KESIMPULAN DAN SARAN 48

4.1 Kesimpulan 48

4.2 Saran 59

DAFTAR PUSTAKA 50

LAMPIRAN A 52

A. SOURCE PROGRAM 52

B. HASIL SCANNER HURUF 57


(11)

DAFTAR GAMBAR

Gambar Halaman

2.1 Sel Saraf Biologi 6

2.2 Jaringan Lapis Tunggal 9

2.3 Jaringan Multilapis 9

2.4 Jaringan Kompetitif 10

2.5 Arsitektur Jaringan Backropagation 14

2.6 Contoh Sampel Representasi Huruf A 21

2.7 Pembagian Region pada Sample dan Nilai Piksel Aktifnya 21 3.1 Arsitektur Jaringan Backpropagation Untuk Pengenalan Pola

Karakter Huruf 28

3.2 Grafik Perbandingan Tingkat Akurasi Generalisasi 36 3.3 Grafik Hasil Pengujian dengan 10 Neuron pada Lapisan

Tersembunyi Tipe I dan Tipe II 37

3.4 Grafik Hasil Pengujian dengan 15 Neuron pada Lapisan

Tersembunyi Tipe I dan Tipe II 38

3.5 Grafik Hasil Pengujian dengan 20 Neuron pada Lapisan

Tersembunyi Tipe I dan Tipe II 39

3.6 Grafik Hasil Pengujian dengan 25 Neuron pada Lapisan

Tersembunyi Tipe I dan Tipe II 40

3.7 Grafik Hasil Pengujian dengan 30 Neuron pada Lapisan

Tersembunyi Tipe I dan Tipe II 41

3.8 Grafik Hasil Pengujian dengan 10 Neuron pada Lapisan

Tersembunyi Tipe I dan Tipe II 42

3.9 Grafik Hasil Pengujian dengan 15 Neuron pada Lapisan

Tersembunyi Tipe I dan Tipe II 43

3.10 Grafik Hasil Pengujian dengan 20 Neuron pada Lapisan


(12)

3.11 Grafik Hasil Pengujian dengan 25 Neuron pada Lapisan

Tersembunyi Tipe I dan Tipe II 45

3.12 Grafik Hasil Pengujian dengan 30 Neuron pada Lapisan

Tersembunyi Tipe I dan Tipe II 46


(13)

DAFTAR TABEL

Tabel Halaman

3.1 Data Pelatihan 21

3.2 Data Pengujian 24

3.3 Bentuk Contoh Huruf Beserta Vektor Inputnya 29

3.4 Hasil Pengujian dengan 10 Neuron pada Lapisan Tersembunyi

(tipe I) 30

3.5 Hasil Pengujian dengan 10 Neuron pada Lapisan Tersembunyi

(tipe II) 31

3.6 Hasil Pengujian dengan 15 Neuron pada Lapisan Tersembunyi

(tipe I) 31

3.7 Hasil Pengujian dengan 15 Neuron pada Lapisan Tersembunyi

(tipe II) 31

3.8 Hasil Pengujian dengan 20 Neuron pada Lapisan Tersembunyi

(tipe I) 31

3.9 Hasil Pengujian dengan 20 Neuron pada Lapisan Tersembunyi

(tipe II) 32

3.10 Hasil Pengujian dengan 25 Neuron pada Lapisan Tersembunyi

(tipe I) 32

3.11 Hasil Pengujian dengan 25 Neuron pada Lapisan Tersembunyi

(tipe II) 32

3.12 Hasil Pengujian dengan 30 Neuron pada Lapisan Tersembunyi

(tipe I) 32

3.13 Hasil Pengujian dengan 30 Neuron pada Lapisan Tersembunyi

(tipe II) 33

3.14 Hasil Pengujian dengan 10 Neuron pada Lapisan Tersembunyi

(tipe I) 33

3.15 Hasil Pengujian dengan 10 Neuron pada Lapisan Tersembunyi


(14)

3.16 Hasil Pengujian dengan 15 Neuron pada Lapisan Tersembunyi

(tipe I) 34

3.17 Hasil Pengujian dengan 15 Neuron pada Lapisan Tersembunyi

(tipe II) 34

3.18 Hasil Pengujian dengan 20 Neuron pada Lapisan Tersembunyi

(tipe I) 34

3.19 Hasil Pengujian dengan 20 Neuron pada Lapisan Tersembunyi

(tipe II) 35

3.20 Hasil Pengujian dengan 25 Neuron pada Lapisan Tersembunyi

(tipe I) 35

3.21 Hasil Pengujian dengan 25 Neuron pada Lapisan Tersembunyi

(tipe II) 35

3.22 Hasil Pengujian dengan 30 Neuron pada Lapisan Tersembunyi

(tipe I) 35

3.23 Hasil Pengujian dengan 30 Neuron pada Lapisan Tersembunyi

(tipe II) 36


(15)

ABSTRAK

Penelitian ini membahas perbandingan pengaruh inisialisasi bobot awal terhadap tingkat akurasi dan jumlah epoch pada pengenalan pola huruf dengan metode backpropagation. Arsitektur yang digunakan adalah lapis banyak (multilayer) dengan 1 lapisan tersembunyi. Jumlah neuron pada lapisan tersembunyi sebanyak 10, 15, 20, 25, dan 30. Laju pembelajaran (α) dan momentum (µ) yang digunakan berada dalam interval [0.1,0.9] dengan error 0.01. Dari hasil penelitian diperoleh bahwa pola huruf dikenali cukup baik dan inisialisasi bobot awal metode acak unggul dalam hal generalisasi ketika neuron pada lapisan tersembunyi sebanyak 10, 20 dan 25 sedangkan inisialisasi bobot awal nguyen widrow unggul pada 15 neuron.


(16)

IMPLEMENTATION OF NEURAL NETWORK TO RECOGNITION A LETTTER PATTERN WITH BACKPROPOGATION METHOD

ABSTRACT

This research studies about the comparison of the influence of initial weight for the level accuracy and the number of epoch that is used for the recognition of letter pattern with backpropagation method. The applied architecture is multilayer with 1 hidden layer. The number of neuron at hidden layer are 10, 15, 20, 25, and 30.

Learning rate (α) and momentum (μ) are used at interval [0.1,0.9] with error 0.01.

Based on the research, the letter pattern identified with sufficient and inisialisation of random weight is good in generalisation problem when neuron in hidden layer is 10, 20 and 25 while initialization of nguyen widrow winning at 15 neuron.


(17)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Keberadaan komputer sampai saat ini telah mengalami berbagai kemajuan. Kemampuan komputer untuk melakukan suatu pekerjaan atau tugas pun semakin baik. Jika dahulu komputer digunakan untuk memproses data secara sederhana, maka saat ini penggunaan komputer sudah sangat luas yang pengaruh dan manfaatnya meliputi segala aspek kehidupan manusia.

Salah satu keunggulan utama yang dimiliki oleh komputer sehingga dapat membantu kehidupan manusia adalah kecepatan pemrosesannya yang jauh lebih cepat daripada kemampuan manusia. Di lain pihak, walaupun komputer dianggap canggih dan modern namun komputer hanya dapat melakukan sesuatu berdasarkan data yang lengkap dan pasti, berbeda dengan manusia yang dapat memproses data walaupun data tersebut tidak lengkap dan pasti. Untuk itulah berbagai upaya dilakukan untuk membuat komputer menjadi lebih “pintar”, salah satunya dengan mengembangkan sistem jaringan saraf tiruan.

Jaringan saraf tiruan (JST) merupakan sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan saraf manusia. Model JST dihubungkan dengan pembobot. Pembobot-pembobot inilah yang nantinya beradaptasi selama JST mengalami pelatihan. Pelatihan perlu dilakukan pada suatu JST sebelum digunakan untuk menyelesaikan masalah dengan memeriksa dan memperbaiki setiap kesalahan yang terjadi selama proses pelatihan berlangsung. Dari pelatihan inilah nantinya diharapkan tujuan yang dinginkan tercapai. Pada suatu tingkatan tertentu JST dapat memberikan tanggapan yang benar walaupun masukan yang diberikan terdapat noise atau berubah oleh suatu keadaan.

Salah satu algoritma pembelajaran dalam JST adalah backpropagation. Algoritma pembelajaran ini merupakan algoritma pembelajaran yang terawasi dimana


(18)

berfungsi sebagai “guru” dengan memberikan informasi yang jelas tentang bagaimana sistem jaringan yang harus dibangun dan dimodifikasi sehingga nantinya diperoleh JST dengan bentuk yang terbaik. Pasangan data ini dipakai untuk melatih bobot-bobot

input untuk mencari output aktual untuk dibandingkan dengan output target awal.

Selisih antara output aktual dengan output target ini disebut error. Error yang timbul ini digunakan untuk memodifikasi bobot-bobot sehingga perubahan bobot ini diharapkan dapat mengurangi besarnya error sampai pada nilai yang diinginkan. Sehingga JST dapat menghasilkan jawaban yang sedekat mungkin dengan jawaban yang benar yang telah diketahui sebelumnya oleh JST.

JST telah banyak dimanfaatkan dalam berbagai bidang aplikasi, seperti klasifikasi data, peramalan, optimisasi dan pengenalan pola. Salah satu algoritma pembelajaran JST yang memiliki kemampuan yang baik dalam hal pengenalan pola ialah backpropagation. Pada penelitian ini pengenalan pola dilakukan terhadap huruf abjad. Bila seseorang membaca huruf A, maka huruf tersebut mudah sekali untuk dibaca, tetapi bagaimana jika di beberapa bagian huruf tersebut ada yang terhapus, mungkin orang tersebut akan mencoba memperkirakannya dan kemungkinan mengetahuinya dengan baik. Ini terjadi karena manusia dapat mengenali pola dengan baik. Tetapi hal ini berbeda dengan komputer. Komputer akan sangat sulit sekali mengenali pola jika tidak ada suatu sistem yang memberikan kemampuan tersebut. Melalui penelitian ini penulis mencoba agar komputer dapat mengenali pola huruf, dimana huruf direpresentasikan dalam bentuk matriks 7 × 5 yang berisikan bilangan– bilangan biner. Noise diberikan karena didalam dunia nyata terkadang citra karakter sangat mungkin mengandung noise atau derau. Diharapkan dengan data yang diberikan dalam proses pelatihan dapat membuat JST dapat mengenali pola huruf sehingga dalam proses pengujian nanti ketika dimasukkan input baru yang berbeda, JST dapat juga mengenalinya sebagai sebuah karakter huruf tertentu dengan tingkat akurasi yang baik.

Bobot awal juga sangat penting bagi jaringan dalam melakukan proses iterasinya. Bobot awal akan mempengaruhi seberapa cepat jaringan dalam proses konvergensi (pengenalan pola). Inisialisasi acak merupakan inisialisasi bobot awal secara acak yang nilainya berada dalam interval [-0.5, 0.5] sedangkan inisialisasi

Nguyen Widrow merupakan inisialisasi bobot awal yang nilainya berasal dari nilai

inisialisasi bobot awal secara acak tetapi dimodifikasi dengan menggunakan rumus: 12


(19)

β = 0.7 (p)1/n dimana:

β = faktor skala Nguyen Widrow

n = jumlah neuron pada lapisan input p = jumlah neuron pada lapisan tersembunyi

Dua metode inilah yang akan dibuat perbandingannya untuk melihat tingkat akurasi pengenalan pola huruf dan jumlah epoch yang dilakukan selama proses komputasi berlangsung.

1.2 Perumusan Masalah

Permasalahan yang terdapat dalam penelitian ini adalah sebagai berikut:

1. Bagaimana melakukan pengenalan pola karakter huruf dengan JST metode

backpropagation.

2. Seberapa besar pengaruh perbandingan inisialisasi bobot awal terhadap tingkat akurasi dan jumlah epoch pengenalan pola huruf.

1.3 Batasan Masalah

Agar penelitian ini difokuskan secara spesifik, maka perlu adanya beberapa batasan masalah, yaitu:

1. Pola input karakter huruf merupakan pola huruf kapital berupa matriks berukuran 7× 5 yang berisi bilangan biner.

2. Fungsi aktivasi yang digunakan adalah fungsi sigmoid biner. 3. Lapisan tersembunyi yang digunakan hanya satu lapisan.

4. Jumlah neuron pada lapisan tersembunyi yang digunakan terdiri dari 10 neuron, 15 neuron, 20 neuron, 25 neuron dan 30 neuron.

5. Error yang diinginkan adalah 0.01.

6. Kinerja yang akan dilihat adalah masalah memorisasi, generalisasi dan pengaruh inisialisasi bobot awal terhadap tingkat akurasi data dan jumlah


(20)

1.4 Tinjauan Pustaka

Arief Hermawan [5] menyatakan bahwa JST adalah sistem komputasi dimana arsitektur dan operasi diilhami dari pengetahuan tentang sel saraf biologis dalam otak manusia. Kemampuan yang dimiliki JST dapat digunakan untuk belajar dan menghasilkan aturan atau operasi dari beberapa input yang dimasukkan dan membuat prediksi tentang kemungkinan output yang akan muncul atau menyimpan karekteristik dari input yang disimpan padanya.

Siang [15] menyatakan bahwa backpropagation melatih jaringan untuk mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan (train) serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan tersebut untuk digunakan sebagai acuan dalam mengenali dan memberikan respon yang benar selama proses pengujian (test).

1.5 Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk mengetahui serta menganalisis kinerja metode

backpropagation dalam mengenali pola huruf. Disamping itu penelitian ini juga

bertujuan untuk membandingkan kinerja dari JST dalam hal penginisialisasian bobot-bobot awal dengan menggunakan metode Nguyen Widrow dan dengan mengunakan metode acak untuk melihat perbandingan tingkat akurasi dan jumlah epoch pada pengenalan pola karakter huruf.

1.6 Manfaat Penelitian

Manfaat yang dapat diambil dari penelitian ini adalah:

1. Memperkaya literatur dalam bidang JST khususnya dengan menggunakan algoritma pembelajaran backpropagation.

2. Dapat dijadikan sebagai dasar atau pedoman untuk pengembangan sistem pengenalan pola huruf tingkat lanjut.


(21)

1.7 Metodologi Penelitian

Dalam melakukan penelitian ini, penulis menggunakan beberapa metode penelitian, antara lain:

1. Studi Kepustakaan

Metode ini dilakukan dengan membaca buku-buku, jurnal-jurnal dan bahan-bahan referensi dari internet untuk memperoleh pengertian dan pengetahuan mengenai JST dengan menggunakan algoritma pembelajaran

backpropagation.

2. Metode simulasi, dengan tahapan sebagai berikut:

a. Mengumpulkan dan membagi data penelitian ke dalam dua bagian yaitu data untuk pelatihan dan data untuk pengujian.

b. Mendesain JST dengan algoritma pembelajaran backpropogation. c. Melatih JST dengan menggunakan data pelatihan sampai nilai

toleransi error terpenuhi serta untuk mengamati kemampuan memorisasi jaringan. Kemampuan memorisasi dilihat melalui kemampuan jaringan dalam mengenali pola-pola yang telah dipelajari.

d. Menguji JST dengan menggunakan data pengujian untuk mengamati kemampuan generalisasi jaringan. Kemampuan generalisasi dilihat melalui kemampuan jaringan dalam mengenali pola-pola yang belum pernah dipelajari.


(22)

BAB 2

LANDASAN TEORI

Pada bab ini akan dijelaskan mengenai teori-teori yang berhubungan dengan penelitian ini, sehingga dapat dijadikan sebagai landasan berpikir dan akan mempermudah dalam hal pembahasan hasil utama pada bab berikutnya. Adapun teori-teori tersebut mencakup pengertian dasar jaringan saraf biologi, JST, dan algoritma pembelajaran backpropagation.

2.1 Jaringan Saraf Biologi

Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan yang luar biasa. Otak manusia terdiri dari neuron-neuron dan penghubung yang disebut sinapsis. Neuron bekerja berdasarkan sinyal yang diberikan neuron lain dan meneruskannya pada neuron lainnya. Diperkirakan manusia memiliki 1012 neuron. Dengan jumlah yang begitu banyak maka otak manusia mampu mengenali pola, melakukan perhitungan, serta mengontrol organ-organ tubuh dengan baik. Neuron memiliki 3 komponen utama, yaitu dendrit, badan sel (soma) dan akson. Gambar 2.1 dibawah ini merupakan gambar sel saraf biologi.

Gambar 2.1 Sel Saraf Biologi

Dendrit berfungsi menerima sinyal informasi dari satu atau beberapa neuron yang terhubung. Kemudian sinyal yang diterima oleh dendrit diteruskan ke badan sel. Jika total sinyal yang diterima oleh badan sel cukup kuat untuk mengaktifkan sebuah neuron maka neuron tersebut akan mengirimkan sinyal ke semua neuron terhubung


(23)

melalui akson. Jadi semua neuron hanya memiliki dua kemungkinan yaitu mengirimkan sinyal kepada neuron lain atau tidak.

Neuron pada otak merupakan sistem yang bersifat fault tollerant dalam dua hal. Pertama, otak manusia dapat mengenali sinyal input yang berbeda dari yang pernah diterima sebelumnya, contohnya manusia dapat mengenali seseorang yang wajahnya agak berbeda karena sudah lama tidak berjumpa. Kedua, otak manusia tetap mampu bekerja meskipun beberapa neuronnya tidak mampu bekerja dengan baik. Jika sebuah neron rusak, neuron lain terkadang dapat dilatih untuk menggantikan fungsi sel yang rusak tersebut.

2.2 Jaringan Saraf Tiruan (JST)

JST merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan digunakan karena jaringan saraf ini diimplementasikan dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran berlangsung. Dikarenakan sebagai generalisasi model maematika dari jaringan saraf biologi, maka JST diasumsikan sebagai berikut:

1. Pengolahan informasi terjadi pada elemen pemrosesan yang disebut neuron. 2. Sinyal dikirimkan diantara neuron-neuron melalui penghubung-penghubung. 3. Setiap penghubung antar neuron memiliki nilai bobot.

4. Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi terhadap total input jaringan (penjumlahan bobot input).

Karakteristik dari JST ialah:

1. Arsitektur jaringan: pola hubungan antar neuron

2. Algoritma pembelajaran: metode yang menentukan nilai bobot penghubung 3. Fungsi aktivasi: menentukan nilai output berdasarkan total nilai input-nya. 2.2.1 Komponen Jaringan Saraf Tiruan

Seperti otak manusia, JST juga memiliki neuron yang merupakan dasar dari operasi JST yang berfungsi untuk memproses informasi. Sel saraf tiruan ini biasa disebut

processing element, neuron atau unit.

Masing-masing neuron akan meneruskan informasi yang diterimanya menuju neuron lainnya. Hubungan antar neuron ini disebut edge dan memiliki nilai yang


(24)

disebut bobot atau wieght (disimbolkan dengan w1, ..., wn). Selain bobot, setiap unit juga memiliki input, output dan error. Input yang disimbolkan dengan (x1, ..., xn) merupakan nilai atau angka yang ingin dilatih maupun untuk diuji didalam suatu jaringan dimana nilainya harus berupa angka sedangkan output yang disimbolkan dengan (y1, ..., yn) merupakan hasil keluaran dari suatu unit yang merupakan solusi atau pemahaman jaringan terhadap data input, sedangkan error merupakan tingkat kesalahan yang terdapat dalam suatu unit dari proses yang telah dilakukan. Dalam jaringan terkadang ditambah sebuah unit input yang nilainya selalu sama dengan 1, unit ini disebut bias.

JST memiliki banyak neuron yang tersebar di seluruh bagiannya. Masing-masing neuron dikelompokkan ke dalam beberapa lapisan dan memiliki hubungan satu dengan yang lain yang disebut dengan layer.

Layer terdiri dari beberapa bagian, yaitu: 1. Lapisan masukan (input layer)

Lapisan ini merupakan tempat dimana seluruh bobot awal dimasukkan (inisialisasi input) yang selanjutnya diproses untuk dikirimkan ke lapisan di atasnya.

2. Lapisan tersembunyi (hidden layer)

Lapisan ini merupakan lapisan di antara lapisan masukan dan lapisan keluaran. Disini bobot yang diterima dari lapisan input juga diproses untuk selanjutnya dikirim ke lapisan di atasnya yaitu lapisan output.

3. Lapisan keluaran (output layer)

Lapisan ini merupakan lapisan akhir pada arsitektur jaringan dimana nilai

output dari jaringan dihasilkan. Pada lapisan ini ditetapkan nilai output aktual

untuk dibandingkan dengan nilai output target untuk mengetahui apakah jaringan sudah sesuai dengan hasil yang diinginkan.

2.2.2 Arsitektur Jaringan

Arsitektur jaringan merupakan salah satu hal terpenting dalam JST selain dari neuron dan algoritma pembelajaran. Arsitektur jaringan terbagi menjadi tiga jenis, yaitu:


(25)

v2m vn3 vn1

v1m v22

v21 V12 v11

X1

X2

Xn Zm

Z1

Z2 Y

1. Jaringan lapis tunggal (single layer network)

Jaringan lapis tunggal merupakan jaringan yang hanya memiliki satu buah lapisan dengan bobot-bobot yang terhubung. Jaringan ini hanya menerima nilai input dan secara langsung mengolahnya untuk menjadi nilai output tanpa melalui lapisan tersembunyi. Jaringan lapis tunggal dapat dilihat pada gambar 2.2 dibawah ini.

2. Jaringan multilapis (multilayer network)

Jaringan multilapis merupakan jaringan yang memiliki satu buah atau lebih lapisan di antara lapisan input dan lapisan output. Jaringan multi lapis ini dapat menyelesaikan permasalahan yang lebih kompleks dibandingkan dengan jaringan lapis tunggal walaupun memiliki tingkat kerumitan yang tinggi serta membutuhkan waktu yang lama dalam proses pelatihannya. Jaringan multilapis dapat dilihat pada gambar 2.3 dibawah ini.

Vn2

Gambar 2.3 Jaringan Multilapis Gambar 2.2 Jaringan Lapis Tunggal

v3 v2

v1 x1

x2

x3


(26)

3. Jaringan kompetitif (competitive layer network)

Jaringan kompetitif sering disebut feedback loop karena unit output ada yang memberikan informasi terhadap unit masukan.

Gambar 2.4 Jaringan Kompetitif

2.2.3 Model Pelatihan JST

Seperti halnya otak manusia yang membutuhkan belajar dalam mengenali sesuatu, pada JST juga demikian. Setiap neuron dibangun untuk dilatih dalam mempelajari pola yang akan dijalankan. Pada saat pelatihan dilakukan, nilai dari masing-masing hubungan antar neuron ditetapkan untuk menentukan output. Semakin banyak pelatihan yang dilakukan maka akan semakin kecil tingkat dari suatu error di lapisan keluarannya, sehingga pengenalan suatu pola akan segera tercapai. Metode pembelajaran JST terdiri dari dua cara:

1. Supervised Learning

Supervised learning merupakan metode pembelajaran dalam JST dimana output target yang diinginkan telah diketahui sebelumnya dan diharapkan

setelah proses pelatihan output target tercapai. Pada metode pembelajaran ini pasangan data (masukan-keluaran) dipakai untuk melatih jaringan. Pada proses pembelajarannya pola masukan diberikan pada lapisan input untuk terus dirambatkan sampai pada lapisan output. Nilai yang diperoleh dari proses perhitungan pola pembelajaran pada lapisan output akan dicocokkan dengan pola output target awal. Jika diperoleh perbedaan antara kedua nilainya maka akan muncul error. Apabila nilai error belum sesuai dengan yang diinginkan

A1

A1

A1

A1


(27)

maka pelatihan akan terus dilakukan dengan terus memodifikasi bobot sampai dihasilkan error yang sesuai. Model JST yang menggunakan metode

supervised learning adalah perceptron, ADALINE dan backpropagation.

2. Unsupervised Learning

Unsupervised learning merupakan metode pembelajaran dalam JST yang tidak

memerlukan output target dalam proses pembelajarannya. Pelatihan dilakukan hanya pada data input saja. Model JST yang menggunakan metode

unsupervised learning adalah kohonen, hebbian, dll.

Pada umumnya operasi model jaringan dalam JST terbagi atas dua mekanisme kerja, yaitu:

1. Mekanisme pelatihan atau belajar

Pada mekanisme ini jaringan dilatih untuk menghasilkan data yang sesuai dengan output target yang diinginkan melalui satu atau lebih pasangan data (masukan dan keluaran). Semakin banyak pelatihan pada tiap siklusnya (epoch) dilakukan maka target yang diinginkan akan segera tercapai.

2. Mekanisme pengujian

Pada mekanisme ini jaringan diuji apakah dapat mengenali pola yang baru dengan data input yang berbeda dari data pelatihan setelah proses pelatihan dilakukan.

2.2.4 Fungsi Aktivasi dan Error

Fungsi aktivasi merupakan bagian penting dalam tahap perhitungan JST karena dipakai untuk menentukan keluaran dari suatu neuron. Beberapa fungsi aktivasi yang dipakai dalam JST adalah:

1. Fungsi sigmoid biner (logsig)

Fungsi ini pada umumnya digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode backpropagation. Fungsi sigmoid biner memiliki nilai antara 0 sampai 1. Oleh karena itu, fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1.


(28)

 

1 1 x f x e  '

( ) ( ) (1 ( ) )

f xf xf x

1 ( ) 1 x x e f x e    



1

( ) 1 ( ) 1 ( )

2

f x   f xf x

2 1

2 n k kn kn

ty

 

Fungsi sigmoid biner dirumuskan sebagai:

dengan:

2. Fungsi sigmoid bipolar (tansig)

Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja fungsi ini memiliki range antara 1 sampai -1. Fungsi sigmoid bipolar dirumuskan sebagai:

dengan:

Perhitungan kesalahan pada output jaringan menentukan apakah jaringan sudah mengenali pola atau belum. Jika error yang diinginkan belum terpenuhi, maka jaringan dianggap belum mengenali pola. Error jaringan dihitung dengan persamaan

Sum Square Error (SSE). SSE digunakan tiap satu epoch pelatihan, dengan

menghitung seluruh pola output aktual dari tiap pola input untuk dihitung selisihnya dengan pola output yang diinginkan. Jika nilai SSE error yang diinginkan maka

jaringan dianggap sudah mengenali pola tetapi jika belum maka jaringan terus dilatih dan dihitung kembali tiap epochnya sampai nilai SSE ≤ error yang diinginkan. Rumus

menghitung nilai SSE ialah:

SSE =

dimana tkn = nilai terget keluaran yang diinginkan ykn = nilai keluaran aktual

Sebagai contoh akan dilakukan perhitungan nilai SSE.

Jika pada suatu JST terdapat 2 pola masukan dan menghasilkan pola keluaran sebagai berikut:


(29)

1 2 1 2 1 2 1 2

k

kn kn n

y

t 2

2 1

Pola Input Nilai Output Aktual Nilai Output Target

1111 0.99 -0.01 1 0

1001 0.82 0.90 1 1

Jika nilai error yang diinginkan adalah 0.1, maka perhitungan nilai SSE ialah:

SSE =

SSE = ((1-0.99)2 + (0-(-0.01))2 + (1-0.82)2 + (1-0.9)2)

SSE = ((0.01)2 + (0.01)2 + (0.18)2 + (0.1)2)

SSE = (0.0001 + 0.0001 + 0.324 + 0.01)

SSE = (0.3342)

SSE = 0.1671

Karena SSE > 0.1 maka jaringan dianggap belum mengenali pola. 2.3 Backpropagation

Backpropagation merupakan salah satu dari beberapa metode yang digunakan dalam

JST dan yang paling sering digunakan dalam berbagai bidang aplikasi, seperti pengenalan pola, peramalan dan optimisasi. Hal ini dimungkinkan karena metode ini menggunakan pembelajaran yang terbimbing. Pola masukan dan target diberikan sebagai sepasang data. Bobot-bobot awal dilatih dengan melalui tahap maju untuk mendapatkan error keluaran yang selanjutnya error ini digunakan dengan tahap mundur untuk memperoleh nilai bobot yang sesuai agar dapat memperkecil nilai error sehinggga target keluaran yang dikehendaki tercapai. Tujuan dari model ini adalah untuk mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama proses pelatihan berlangsung serta kemampuan jaringan memberikan respon yang benar terhadap pola masukan yang berbeda dengan pola masukan selama pelatihan.


(30)

2.3.1 Arsitektur Backpropagation

Hubungan antar neuron dalam suatu jaringan dan membentuk lapisan disebut arsitektur jaringan. Backpropagation terdiri dari beberapa lapisan, yaitu lapisan input, lapisan tersembunyi dan lapisan output. Masing-masing neuron dalam tiap lapisan saling terhubung dengan lapisan di atasnya. Neuron-neuron pada lapisan input terhubung dengan neuron-neuron pada lapisan tersembunyi melalui edge yang disebut bobot, begitu juga pada lapisan tersembunyi neuron-neuronnya terhubung melalui

edge dengan neuron-neuron pada lapisan output. Terdapat masing-masing 1 buah bias

pada lapisan input dan lapisan tersembunyi yang bernilai = 1. Arsitektur jaringan

backpropagation dapat dilihat pada gambar 2.5 dibawah ini:

Gambar 2.5 Arsitektur Jaringan Backropagation

Terdapat no, np dan nm buah neuron pada lapisan input, lapisan tersembunyi dan lapisan output. Sehingga terdapat no × np edge dari lapisan input ke lapisan

tersembunyi dan np × nm edge dari lapisan tersembunyi ke lapisan output. Setiap edge memiliki bobot (weight). vji merupakan bobot garis dari unit masukan xi pada lapisan

x

1

x

i

x

o

1

1

z

1

1

Y

z

j

z

p

Y

m

Y

k

v 1 0

v j 0

1 j v 1 1 v 1 p v p 0 v j v i 1

v i v p i v 1 o

v p n o

v j 1 1

w

j w m 1

w 0

j w 1 0

w m w m 1

w k j

p w 1 w k 0

1 w k

p

w k w m p


(31)

input ke masing-masing unit zj pada lapisan tersembunyi dengan vj0 merupakan bobot garis yang menghubungkan bias di unit masukan ke unit zj pada lapisan tersembunyi.

wkj merupakan bobot dari unit lapisan tersembunyi zj ke unit keluaran yk dengan wk0 merupakan bobot dari bias di lapisan tersembunyi ke unit keluaran yk. Pada umumnya nilai bobot yang digunakan dalam suatu arsitektur jaringan antara -0.5 sampai 0.5.

Nilai masukan pada lapisan input dinotasikan sebagai x1, x2, x3, ..., xno. Pada lapisan tersembunyi neuron-neuronnya dinotasikan dengan zn1, zn2, zn3, ..., znp. Begitu juga neuron-neuron pada lapisan output dinotasikan dengan yn1, yn2, yn3, ..., ynm .

2.3.2 Algoritma Backpropagation

Algoritma backpropagation terdiri dari dua bagian: 1. Algoritma Pelatihan Backpropagation

Di dalam proses pelatihan backpropagation terdapat tiga tahap. Tahap pertama ialah tahap maju. Pada tahap ini seluruh proses awal inisialisasi bobot-bobot

input dilakukan. Pada tahap ini juga ditentukan angka pembelajaran (α), nilai toleransi error dan jumlah epoch (siklus setiap pola pelatihan) yang diperlukan selama proses komputasi berlangsung. Setelah semua proses inisialisasi dilakukan, maka langkah selanjutnya ialah proses maju. Setiap unit masukan xi akan mengirimkan sinyal masukan ke lapisan tersembunyi. Setelah dihitung dengan menggunakan fungsi aktivasi maka keluarannya akan dikirimkan ke lapisan di atasnya, yaitu lapisan output. Setelah nilai keluaran (yk) diperoleh, maka dibandingkan dengan target keluaran sebenarnya (tk). Selisih yk – tk disebut dengan error (δk). Jika nilai error lebih kecil atau sama dengan dari nilai ambang maka proses iterasi dihentikan, tetapi jika tidak maka nilai error tersebut digunakan untuk memodifikasi bobot-bobot untuk mengoreksi kesalahan yang terjadi.

Tahap kedua adalah tahap mundur. Pada tahap ini, nilai error (δk) yang diperoleh pada di lapisan output digunakan untuk mengoreksi bobot-bobot yang ada pada lapisan tersembunyi yang berhubungan langsung dengan lapisan output. Setelah itu nilai error (δj) di setiap unit pada lapisan tersembunyi juga dihitung untuk mengoreksi bobot-bobot yang menghubungkan lapisan input dengan lapisan tersembunyi.


(32)

  n i ji i j

j v xv

net z 1 0 _

  n i ji i j

j v x v

z 1 0

  p j kj j k

k w z w

net y

1 0 _

Tahap ketiga adalah tahap pengoreksian bobot. Setelah seluruh bobot pada lapisan input dan lapisan tersembunyi dimodifikasi sesuai dengan besar faktor errornya, maka ketiga fase ini diulang secara terus menerus sampai kondisi berhenti dipenuhi. Kondisi berhenti yang dimaksud adalah jika jumlah

epoch yang ditetapkan tercapai atau jika nilai error jaringan telah sama dengan

atau lebih kecil dari nilai toleransi error yang ditetapkan sebelumnya. Pada tahap pelatihan, jaringan diharapkan dapat melatih seluruh data pelatihan yang diberikan untuk mendapatkan bobot akhir jaringan yang akan digunakan pada tahap pengujian.

Struktur algoritma pelatihan Backpropagation adalah: 1. Inisialisasi bobot-bobot

Tentukan angka pembelajaran (α).

Tentukan pula nilai toleransi error yang diinginkan dan set maksimal

epoch jika ingin membatasi jumlah epoch yang digunakan.

2. Selama kondisi berhenti tidak terpenuhi, lakukan langkah ke-2 sampai langkah ke-9.

3. Untuk setiap pasangan pola pelatihan, lakukan langkah ke-3 sampai langkah ke-8.

Tahap maju

4. Tiap-tiap unit input (xi, i = 1, 2, 3, ..., o) menerima sinyal input dan meneruskan sinyal tersebut ke tiap-tiap unit pada lapisan tersembunyi. 5. Tiap-tiap unit di lapisan tersembunyi (zj, j = 1, 2, 3, ..., p)

menjumlahkan sinyal-sinyal input yang berbobot, yaitu:

Fungsi aktivasi untuk menghitung sinyal outputnya, yaitu:

dan mengirimkan sinyal tersebut ke semua unit pada lapisan di atasnya (lapisan output).

6. Tiap-tiap unit di lapisan output (yk, k = 1, 2, 3, ..., m) menjumlahkan sinyal input yang berbobot, yaitu:


(33)

) 1 ( ) ( ) _ ( ' )

(k k k k k k k

kty f y netty yy

j k

jk z

w

  p j kj j k

k w z w

y

1 0

k k

w

 0

m k jk k j w net 1 _ ) 1 ( _ ) _ ( '

_ j j j j j

j net f z net net zz

j j

v

 0

i j

ji x

v

Fungsi aktivasi untuk menghitung sinyal outputnya, yaitu:

Tahap mundur

7. Tiap-tiap unit output yk menerima pola target tk untuk menghitung

error (δk), yaitu:

Kemudian hitung nilai koreksi bobot yang nantinya digunakan untuk memperbaiki nilai bobot antara lapisan tersembunyi dan lapisan output (wjk), yaitu:

Hitung juga koreksi bias yang digunakan untuk memperbaiki nilai bias antara lapisan tersembunyi dan lapisan output (wk0), yaitu:

8. Tiap-tiap unit pada lapisan tersembunyi (zj, j = 1, 2, 3, ..., p) menjumlahkan sinyal-sinyal input dari lapisan output, yaitu:

Kalikan nilai ini dengan fungsi aktivasi untuk menghitung error pada lapisan tersembunyi (δj), yaitu:

Kemudian hitung koreksi bobot untuk memperbaiki nilai bobot antara lapisan input dan lapisan tersembunyi (vji), yaitu:

Kemudian hitung koreksi bias untuk memperbaiki nilai bobot antara lapisan input dan lapisan tersembunyi (vj0), yaitu:


(34)

Tahap pengoreksian bobot

9. Tiap-tiap unit keluaran (yk, k = 1, 2, 3, ..., m) memperbaiki bobot dan bias, yaitu:

wkj(baru)wkj(lama)wkj, ( k = 1, 2, ... , m ; j = 0, 1, ... , p ) tiap-tiap unit tersembunyi memperbaiki bobot dan bias, yaitu: vji(baru)vji(lama)vji, ( j = 1, 2, ... , p ; i = 0, 1, ... , n ) 10. Tes kondisi berhenti

2. Algoritma Pengujian Backpropagation

Setelah proses pelatihan, backpropagation dapat digunakan untuk proses pengujian jaringan. Pada proses pengujian, tahap yang dilakukan hanya sampai tahap maju saja, tidak ada tahap mundur apalagi tahap modifikasi bobot. Seluruh bobot input diambil dari nilai bobot terakhir yang diperoleh dari proses pelatihan. Pada tahap pengujian ini, jaringan diharapkan dapat mengenali pola berdasarkan data baru yang diberikan (generalisasi).

2.4 Optimalitas Arsitektur Backpropagation

Masalah utama yang terdapat dalam backpropagation ialah lamanya proses iterasi yang dilakukan. Backpropagation tidak dapat memastikan berapa epoch yang harus dilalui sampai pola yang diinginkan terpenuhi. Oleh karena itu terdapat beberapa cara yang digunakan untuk mengoptimalkan proses iterasi, yaitu:

1. Pemilihan bobot dan bias awal

Bobot awal merupakan unsur yang terpenting dalam pembentukan jaringan yang baik, karena bobot awal mempengaruhi kecepatan iterasi jaringan dalam mengenali pola. Bobot awal standar yang biasa dipakai dalam melakukan proses komputasi dinilai memberikan waktu yang lama. Inisialisasi Nguyen

Widrow merupakan modifikasi sederhana bobot-bobot dan bias ke unit

tersembunyi yang mampu meningkatkan kecepatan jaringan dalam proses pelatihan jaringan.


(35)

2 2 2 1 2 ...

ji j j jn

vvv  v

Inisialisasi Nguyen Widrow didefinisikan dengan rumus:

dimana:

n = jumlah neuron pada lapisan input p = jumlah neuron pada lapisan tersembunyi

β = faktor skala

Prosedur inisialisasi Nguyen Widrow ialah:

a. Inisialisasi bobot-bobot (vji) lama dengan bilangan acak dalam interval [-0.5, 0.5]

b. Hitung

c. Bobot baru yang dipakai sebagai inisialisasi

d. Bias baru yang dipakai sebagai inisialisasi vj0 = bilangan acak dalam interval [-β, β]

2. Momentum

Penambahan parameter momentum dalam tahap pengoreksian nilai bobot dapat mempercepat proses pelatihan yaitu dengan memodifikasi nilai bobot pada iterasi (t+1) yang nilainya ditentukan oleh nilai bobot pada iterasi ke-t dan (t-1). µ adalah konsanta yang menyatakan parameter momentum yang nilainya 0≤ µ ≤1. Maka persamaan untuk menentukan bobot baru ialah:

wkj (t+1) = wkj (t) + αδk zj + µ (wkj (t) - wkj (t-1)) dengan:

wkj (t) = bobot awal pola kedua (hasil dari iterasi pola pertama)

wkj (t −1) = bobot awal pada iterasi pola pertama dan

vji (t+1) = vji (t) + αδk xi + µ (vji (t) - vji (t-1)) dengan :

vji (t) = bobot awal pola kedua (hasil iterasi pola pertama)

vji (t-1)= bobot awal pada iterasi pertama

0, 7n p

( )

ji ji

j

v lama

v

v


(36)

2.5 Pengenalan Pola

Pengenalan pola ialah disiplin ilmu yang bertujuan untuk mengklasifikasikan dan mendeskripsikan pola atau objek kompleks melalui pengukuran sifat-sifat atau ciri-ciri objek bersangkutan. Suatu sistem pengenalan pola melakukan akuisisi data melalui alat pengindera atau sensor seperti scanner dan kamera, mengatur bentuk representasi data serta melakukan proses analisis dan klasifikasi data. Proses akuisisi data tersebut harus benar-benar akurat dengan mempertimbangkan semua karakteristik dari setiap sampel yang tidak lain adalah suatu citra digital, dimana setiap citra digital memiliki karakteristik tertentu. Tentunya data numerik yang dihasilkan haruslah benar-benar dapat mewakili karakteristik atau ciri-ciri dari sampel yang diamati, sehingga diharapkan dari sekumpulan data dengan target yang sama akan dihasilkan suatu generalisasi terhadap suatu target yang sejenis.

Sampel-sampel yang akan diamati tentunya harus dibatasi dengan suatu struktur dimensi dan homogenisasi piksel yang sederhana, sehingga diharapkan dapat mempermudah proses analisa terhadap konsep ini. Setiap sampel adalah satu citra digital yang nilai warna dari piksel-pikselnya terhomo-genisasi menjadi dua representasi warna, yaitu warna aktif (hitam) dan warna non aktif (selain hitam). Selain itu dimensi dari setiap sampel dibatasi sebesar area yang disediakan pada program aplikasi, tetapi tidak akan mengurangi fleksibilitas dan skalabilitas yang diharapkan.

Untuk mendapatkan data yang akurat dan konsisten dari setiap sampel, digunakan suatu metode sederhana yaitu dengan cara menghitung jumlah piksel aktif yang terdapat pada bagian-bagian dari sampel. Salah satu metode dalam pengekstrakan data numerik dari setiap sampel adalah sebagai berikut:

1. Setiap sampel yang diamati, dibagi menjadi beberapa area, misalnya 4 baris dan 5 kolom, sehingga akan terdapat 20 area pengamatan.

2. Jumlah piksel yang aktif dari setiap area yang ada dihitung secara akurat dengan menggunakan software pembaca piksel gambar.

3. Dihasilkan sejumlah 20 data numerik dengan atribut kolom dan baris yang diharapkan dapat mewakili data ciri dari sampel yang diamati.


(37)

Gambar 2.6 dan gambar 2.7 berikut merupakan contoh representasi huruf dan pembagian region sampel piksel-piksel aktifnya.

Gambar 2.6 Contoh Sampel Representasi Huruf A

Gambar 2.7 Pembagian Region pada Sample dan Nilai Pixel Aktifnya

Setelah data diekstrak maka harus dinormalkan terlebih dahulu sebelum menjadi data masukan pada penelitian ini. Data-data tersebut harus dinormalkan karena data-data tersebut bukanlah data yang sesuai untuk menjadi nilai masukan. Metode normalisasi yang akan digunakan adalah suatu metoda normalisasi yang paling sederhana yaitu normalisasi perbandingan tetap. Dalam kasus ini adalah perbandingan antara jumlah piksel aktif pada masing-masing area dalam suatu sampel akan dibandingkan (dibagi) dengan jumlah piksel aktif terbanyak dalam satu area yang ada pada sampel yang sama. Hasil dari proses normalisasi ini adalah sekumpulan data numerik yang bernilai antara 0 dan 1 yang akan digunakan sebagai data input jaringan.


(38)

BAB 3

HASIL UTAMA

Pada bab ini akan diperlihatkan hasil utama dari penelitian ini. Hasil utama yang diperoleh berdasarkan penjelasan-penjelasan yang telah dipaparkan pada bab-bab sebelumnya. Hasil utama dari tulisan ini yaitu bagaimana kinerja metode

backpropagation terhadap pengenalan pola huruf juga membandingkan kinerja

metode inisialisasi bobot awal dengan menggunakan metode Nguyen Widrow dan dengan mengunakan metode acak untuk melihat perbandingan tingkat akurasi dan jumlah epoch pada pengenalan pola karakter huruf.

3.1 Pengumpulan Data Pelatihan

Langkah-langkah pengumpulan data untuk penelitian ini adalah sebagai berikut. 1. Membuat rancangan data input dan output yang akan digunakan sebagai data

pelatihan dan data pengujian. Karakter huruf diimplementasikan ke dalam bentuk biner. Dalam penelitian ini huruf diberi noise atau ketidak lengkapan citra yang diharapkan JST dapat mengenali huruf (generalisasi) walau tedapat

noise. Untuk noise yang diberikan sampai sebanyak dua piksel dengan

pertimbangan jika lebih dari itu maka karakter huruf akan susah dikenali. Pada penelitian ini jumlah karakter huruf yang digunakan sebanyak dua puluh enam huruf dari huruf A sampai huruf Z.

2. Memisahkan data penelitian menjadi dua bagian, yaitu data pelatihan dan data pengujian. Data pelatihan digunakan untuk mengamati kemampuan jaringan dalam hal mengenali pola-pola yang telah dipelajari (memorisasi) sedang data pelatihan digunakan untuk mengamati kemampuan jaringan dalam hal mengenali pola-pola yang belum pernah dipelajari (generalisasi).

Tabel 3.1 berikut merupakan data pelatihan yang digunakan dalam penelitian ini:


(39)

No Vektor Masukan Vektor Keluaran

Huruf

1 00100 01010 10001 11111 10001 10001 10001 00100 01010 10001 11110 10001 10001 10001 00100 01010 10001 11111 10000 10001 10001 00100 01010 10001 11111 10001 10001 10000 00100 01010 00001 11111 00001 10001 10001

00001

A

2 11110 10001 10001 11110 10001 10001 11110 01110 10001 10000 11110 10001 10001 11110 11110 10001 10000 11110 10001 10001 11110 11110 00001 10001 11110 10001 10001 11110 11110 10001 10001 01110 10001 10001 11100

00010 B

3 01110 10001 10000 10000 10000 10001 01110 00110 10001 10000 10000 10000 00001 01110 01110 10001 10000 10000 10000 00001 00110 01110 00001 10000 10000 10000 10001 01110 01110 10001 10000 00000 10000 00001 01110

00011 C

4 11110 10001 10001 10001 10001 10001 11110 01110 10001 10001 10001 10001 10001 11110 01110 10000 10001 10001 10001 10001 11110 11010 10001 10001 10001 10001 10001 11110 11110 10001 10001 00001 10001 10001 11010

00100 D

5 11111 10000 10000 11111 10000 10000 11111 11011 10000 10000 11111 10000 10000 11111 11111 10000 10000 11111 10000 00000 11111 11111 10000 10000 11011 10000 10000 11111 11111 10000 10000 11110 10000 10000 11110

00101 E

6 11111 10000 10000 11111 10000 10000 10000 10111 10000 10000 11111 10000 10000 10000 11110 10000 10000 11111 10000 10000 10000 11111 10000 10000 11011 10000 10000 10000 11111 10000 00000 11111 10000 00000 10000

00110 F

7 01110 10001 10000 10111 10001 10001 01110 01010 10001 10000 10111 10001 10001 01110 01110 10000 10000 10111 10001 10001 01110 01110 10001 10000 10110 10001 10001 01110 01110 10001 00000 10111 00001 10001 01110

00111 G

8 10001 10001 10001 11111 10001 10001 10001 10001 10001 10001 10111 10001 10001 10001 10000 10001 10001 11111 10001 10001 10001 10001 10000 10001 11111 10001 10001 10001 10001 00001 10001 11111 10001 10001 10000

01000 H

9 01110 00100 00100 00100 00100 00100 01110 00110 00100 00100 00100 00100 00100 01110 01110 00000 00100 00100 00100 00100 01110 01110 00100 00100 00000 00100 00100 01110 01010 00100 00100 00100 00100 00100 01010

01001 I


(40)

Tabel 3.1 Data Pelatihan (lanjutan)

No Vektor Masukan Vektor

Keluaran

Huruf

10 11111 00001 00001 00001 00001 10001 01110 10111 00001 00001 00001 00001 10001 01110 11111 00000 00001 00001 00001 10001 01110 11111 00001 00000 00001 00001 10001 01110 11111 00001 00001 00001 00000 10001 01100

01010 J

11 10010 10100 11000 10000 11000 10100 10010 00010 10100 11000 10000 11000 10100 10010 10010 10000 11000 10000 11000 10100 10010 10010 10100 01000 10000 11000 10100 10010 10010 10100 11000 10000 10000 10000 10010

01001 K

12 10000 10000 10000 10000 10000 10000 11111 00000 10000 10000 10000 10000 10000 11111 10000 10000 00000 10000 10000 10000 11111 10000 10000 10000 10000 00000 10000 11111 10000 10000 10000 10000 10000 10000 01101

01100 L

13 10001 11011 10100 10001 10001 10001 10001 00001 11011 10100 10001 10001 10001 10001 10000 11011 10100 10001 10001 10001 10001 10001 11011 10100 10000 10001 10001 10001 10001 11011 10000 10001 10001 00001 10001

01101 M

14 10001 11001 10101 10011 10001 10001 10001 10000 11001 10101 10011 10001 10001 10001 00001 11001 10101 10011 10001 10001 10001 10001 11001 10100 10011 10001 10001 10001 10001 11001 10101 10011 00001 10001 10000

01110 N

15 01110 10001 10001 10001 10001 10001 01110 01100 10001 10001 10001 10001 10001 01110 00110 10001 10001 10001 10001 10001 01110 01110 10001 10000 10001 10001 10001 01110 01110 10001 10001 00001 10001 00001 01110

01111 O

16 11110 10001 10001 11110 10000 10000 10000 01110 10001 10001 11110 10000 10000 10000 11110 10000 10001 11110 10000 10000 10000 11110 10001 10001 11110 10000 00000 10000 11110 00001 10001 11110 10000 10000 00000

10000 P

17 01110 10001 10001 10001 10001 10011 01101 00110 10001 10001 10001 10001 10011 01101 01110 10001 00001 10001 10001 10011 01101 01110 10001 10001 10001 10001 10011 01100 01100 10001 10001 10001 10000 10011 01101

10001 Q


(41)

Tabel 3.1 Data Pelatihan (lanjutan)

No Vektor Masukan Vektor

Keluaran

Huruf

18 11110 10001 10001 11110 10100 10010 10001 01110 10001 10001 11110 10100 10010 10001 11110 10001 10001 11010 10100 10010 10001 11110 10001 10001 11110 10100 00010 10001 11110 10001 10001 10110 10100 10010 00001

10010 R

19 01110 10001 10000 01110 00001 10001 01110 01010 10001 10000 01110 00001 10001 01110 01110 10001 00000 01110 00001 10001 01110 01110 10001 10000 01110 00000 10001 01110 01110 00001 10000 01110 00001 10001 00110

10011 S

20 11111 00100 00100 00100 00100 00100 00100 11111 00100 00100 00100 00000 00100 00100 11111 00100 00000 00100 00100 00100 00100 11111 00100 00100 00100 00100 00100 00000 11101 00100 00100 00100 00100 00000 00100

10100 T

21 10001 10001 10001 10001 10001 10001 01110 10001 10001 00001 10001 10001 10001 01110 10001 10001 10001 10001 10001 10001 00110 10001 10000 10001 10001 10001 10001 01110 10000 10001 10001 10001 00001 10001 01110

10101 U

22 10001 10001 10001 10001 10001 01010 00100 10001 00001 10001 10001 10001 01010 00100 10001 10001 10000 10001 10001 01010 00100 10001 10001 10001 10001 10001 01000 00100 10001 10001 10001 10001 00001 01010 00000

10110 V

23 10001 10001 10001 10001 10101 11011 10001 00001 10001 10001 10001 10101 11011 10001 10001 10001 10000 10001 10101 11011 10001 10001 10001 10001 10000 10101 11011 10001 10000 10001 10001 10001 10101 11011 00001

10111 W

24 10001 10001 01010 00100 01010 10001 10001 10001 10001 01000 00100 01010 10001 10001 10001 00001 01010 00100 01010 10001 10001 10001 10001 01010 00100 01010 00001 10001 10001 10001 00010 00100 01010 10001 10000

11000 X

25 10001 10001 01010 00100 00100 00100 00100 10001 10001 01010 00100 00100 00000 00100 10001 10001 01010 00000 00100 00100 00100 00001 10001 01010 00100 00100 00100 00100 10000 10001 00010 00100 00100 00100 00000


(42)

Tabel 3.1 Data Pelatihan (lanjutan)

No Vektor Masukan Vektor

Keluaran

Huruf

26 11111 00001 00010 00100 01000 10000 11111 11111 00001 00010 00100 01000 00000 11111 11111 00001 00010 00100 01000 10000 11110 11110 00001 00010 00100 00000 10000 11111 11011 00001 00000 00100 01000 10000 11111

11010 Z

Sementara untuk data pengujian yang digunakan untuk menguji kemampuan generalisasi jaringan dapat dilihat pada tabel 3.2 sebagai berikut:

Tabel 3.2 Data Pengujian

No Vektor Masukan Vektor

Keluaran

Huruf

1 00000 01010 10001 11111 10001 10001 10001 00100 01000 10001 10111 10001 10001 10001 00100 00010 10001 11110 10001 10001 10001 00100 01010 10001 11111 10001 10001 00001

00001 A

2 11010 10001 10001 11110 10001 10001 11110 11110 10001 00001 11100 10001 10001 11110 11110 10000 10001 11110 10001 10001 11010 11110 10001 10001 11110 10001 10001 01110

00010 B

3 01110 10000 10000 10000 10000 10001 01110 01110 10001 10000 10000 00000 10001 01100 01100 10001 00000 00000 10000 10001 01110 01100 10001 10000 10000 10000 10001 01110

00011 C

4 11110 10000 10001 10001 10001 10001 11110 11110 00001 10001 10001 10001 00001 11110 11110 10001 10000 10001 00001 10001 11110 11110 10001 00001 10001 10001 10001 11110

00100 D

5 11110 10000 10000 11111 10000 10000 11111 01111 10000 10000 01111 10000 10000 11111 11111 00000 10000 11111 10000 10000 10111 11111 10000 10000 11111 10000 10000 11011

00101 E

6 11111 10000 10000 01111 10000 10000 10000 01111 10000 10000 11111 10000 10000 00000 11111 00000 10000 11110 10000 10000 10000 11101 10000 10000 11111 10000 10000 10000

00110 F

7 01100 10001 10000 10111 10001 10001 01110 01110 10001 10000 00111 10001 10001 01010 01110 00001 10000 10111 10001 10000 01110 01110 10001 10000 10111 10000 10001 01110

00111 G


(43)

Tabel 3.2 Data Pengujian (lanjutan)

No Vektor Masukan Vektor

Keluaran

Huruf

8 00001 10001 00001 11111 10001 10001 10001 10001 10001 00001 11110 10001 10001 10001 10001 10001 10001 11101 10001 00001 10001 10001 10001 10001 11111 10000 10001 10001

01000 H

9 01110 00100 00000 00100 00100 00100 01110 01110 00100 00100 00100 00100 00000 01100 01100 00100 00100 00100 00100 00100 00110 01110 00100 00100 00100 00000 00100 01110

01001 I

10 01111 00001 00001 00001 00001 10001 01110 11110 00001 00001 00001 00001 10000 01110 11101 00001 00001 00001 00001 10001 01010 11111 00001 00001 00001 00000 10001 01100

01010 J

11 10000 10100 11000 10000 11000 10100 10010 10010 00100 11000 10000 11000 10100 00010 10010 10100 11000 10000 01000 10100 10000 10010 10100 10000 10000 11000 10100 10010

01001 K

12 10000 00000 10000 10000 10000 10000 11111 10000 10000 10000 10000 10000 00000 11110 10000 10000 10000 00000 10000 10000 11011 10000 10000 10000 10000 10000 10000 10111

01100 L

13 10001 10011 10100 10001 10001 10001 10001 10001 11010 10100 10001 10001 10001 10000 10001 11011 10100 00001 10001 10000 10001 10001 11011 10100 10001 10001 10001 00001

01101 M

14 10001 01001 10101 10011 10001 10001 10001 10001 11001 10001 10011 10001 10000 10001 10001 11001 10101 10011 10001 00001 00001 10001 11001 10101 10011 10000 10001 10001

01110 N

15 01110 10001 00001 10001 10001 10001 01110 01110 10000 10001 10001 10001 10001 01100 01110 10001 10001 10000 10001 10000 01110 01110 00001 10001 10001 10001 10001 01110

01111 O

16 11100 10001 10001 11110 10000 10000 10000 11110 10001 10000 11110 00000 10000 10000 10110 10001 10001 10110 10000 10000 10000 11110 10001 10001 11100 10000 10000 10000

10000 P

17 01110 10001 10000 10001 10001 10011 01101 01110 10001 10001 10001 00001 10011 01001 01010 10001 10001 10001 10001 10001 01101 01110 10001 10001 10001 10001 00011 01101


(44)

Tabel 3.2 Data Pengujian (lanjutan)

No Vektor Masukan Vektor

Keluaran

Huruf

18 11110 10001 10001 11110 10000 10010 10001 11110 10000 10001 01110 10100 10010 10001 11010 10001 10001 11110 10100 10010 10000 11110 00001 10001 11110 10100 10010 10001

10010 R

19 00110 10001 10000 01110 00001 10001 01110 01110 00001 10000 00110 00001 10001 01110 01110 10000 10000 01110 00001 10001 01100 01110 10001 10000 01100 00001 10001 01110

10011 S

20 11110 00100 00100 00100 00100 00100 00100 11011 00100 00100 00000 00100 00100 00100 01111 00000 00100 00100 00100 00100 00100 10111 00100 00100 00100 00100 00100 00100

10100 T

21 10001 10001 10001 00001 10001 10001 01110 10001 00001 10001 10001 10001 10001 01100 10001 10001 10000 10001 10001 00001 01110 10001 10001 10001 10001 10001 10000 01110

10101 U

22 10001 10000 10001 10001 10001 01010 00100 10000 10001 10001 10001 10001 00010 00100 10001 10001 10001 00001 10000 01010 00100 00001 10001 10001 10001 10001 01010 00100

10110 V

23 10001 00001 10001 10001 10101 11011 10001 10001 10001 10001 00001 10101 11011 10000 10001 10000 10001 10001 10101 11010 10001 10001 10001 10001 10001 10101 01011 10001

10111 W

24 10001 10001 00010 00100 01010 10001 10001 10000 10001 01010 00100 01010 10001 00001 10001 10001 01010 00000 01000 10001 10001 00001 10001 01010 00100 01010 10001 10001

11000 X

25 10001 00001 01010 00100 00100 00100 00100 10001 10001 01000 00100 00100 00100 00000 10001 10000 01010 00100 00000 00100 00100 10000 10001 01010 00100 00100 00100 00100

11001 Y

26 11111 00001 00010 00000 01000 10000 11111 01111 00001 00010 00100 01000 10000 01111 11111 00000 00010 00100 01000 10000 11011 10111 00001 00010 00100 01000 10000 11111

11010 Z

Pada penelitian ini seluruh proses pelatihan melibatkan 130 kasus dengan masing-masing karakter huruf memiliki lima kriteria pelatihan dengan satu kriteria huruf sebagai huruf normal tanpa adanya noise, dua kriteria huruf diberi noise dengan menghilangkan sebanyak satu piksel sedangkan dua kriteria lagi diberi noise dengan 128


(45)

menghilangkan sebanyak dua piksel. Pada proses pengujiannya melibatkan 104 kasus dengan masing-masing karakter huruf memiliki empat kriteria pengujian yang dibagi atas dua kriteria huruf diberi noise dengan menghilangkan sebanyak satu piksel dan dua kriteria lagi diberi noise dengan menghilangkan sebanyak dua piksel.

3.2 Pendesainanan JST

Sebelum dilakukan simulasi terhadap jaringan, maka terlebih dahulu jaringan didesain sesuai dengan data agar tidak terjadi kegagalan dalam proses komputasi jaringan nantinya.

Melihat karakteristik alfanumerik yang merupakan diskrit, maka tipe input yang cocok adalah yang bertipe biner. Demikian pula dengan tipe outputnya. Fungsi aktivasi yang digunakan adalah fungsi aktivasi sigmoid biner dengan alasan bahwa fungsi aktivasi ini yang paling umum digunakan untuk metode backpropagation.

Pada tingkat jaringan dilakukan perancangan arsitektur jaringan. Jaringan

backpropagation merupakan jaringan yang memiliki banyak lapisan dalam pengertian

bahwa jaringan dapat memiliki lapisan tersembunyi lebih dari satu. Namun dalam penelitian ini, hanya digunakan satu buah lapisan tersembunyi saja tetapi jumlah neuron yang digunakan terdiri dari 5 kriteria yaitu, 10 neuron, 15 neuron, 20 neuron, 25 neuron dan 30 neuron untuk dapat dilihat perbandingan kinerja dari masing-masing neuron tersebut, sehingga secara keseluruhan arsitektur jaringannya hanya memiliki 3 lapisan saja, yaitu lapisan input, lapisan tersembunyi dan lapisan output.

Rancangan jumlah neuron pada arsitektur JST pengenalan pola huruf adalah: 1. Lapisan input terdiri dari 35 neuron ditambah sebuah bias menjadi 36 neuron. 2. Lapisan tersembunyi terdiri dari 10, 15, 20, 25 dan 30 neuron ditambah

masing-masing sebuah bias menjadi 11, 16, 21, 26 dan 31 neuron. 3. Lapisan output sebanyak 5 neuron.

Seluruh rancangan arsitektur jaringan pada pengenalan pola huruf dapat dilihat pada gambar 3.1 dibawah ini, yaitu:


(46)

x

1

x

i

x

35

1

1

z

1

1

Y

z

j

z

10

Y

5

Y

m

v 1 0

v j 0

1 j v 1 1 v 1 10, v 10, 0 v j v i 1

v i v 10, i v 1 ,35

v 10, 35 ,35

v j 1 1

w w 5, ,j

1 w 0

j w 1 1

w m w m 0

0

w 5, w 5, 1

w m j

10 w 1,

10 w m,

w 5 ,10

. . .

. . .

. . .

. . .

. . .

. . .

Gambar 3.1 Arsitektur Jaringan Backpropagation Untuk Pengenalan Pola Karakter Huruf

Penentuan 35 neuron masukan berdasarkan pada pembacaan oleh scanner. Sebelumnya karakter huruf dibentuk pada media kertas kotak-kotak yang terdiri dari tujuh baris dan lima kolom agar sesuai dengan pengisian angka biner. Selanjutnya karakter huruf yang dibaca oleh scanner diterjemahkan ke dalam bentuk matriks berukuran 7 × 5 yang melambangkan piksel-piksel data. Data ini dikonversi ke dalam bentuk biner dengan angka 1 merupakan piksel yang berisi pola citra sedang angka 0 menunjukkan kosong. Cara ini bertujuan agar komputer nantinya dapat mengenali angka biner sebagai pembentuk pola huruf. Untuk data huruf yang memiliki noise dibentuk dengan memodifikasi penghilangan angka 1 menjadi angka 0. Bentuk contoh huruf beserta vektor inputnya dapat dilihat pada tabel 3.3 dibawah ini:


(47)

Tabel 3.3 Bentuk Contoh Huruf Beserta Vektor Inputnya

Pembacaan Scanner

Bentuk huruf Vektor Input

0 0 1 0 0 0 1 0 1 0 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

00100 01010 10001 11111 10001 10001 10001

Untuk jumlah neuron pada lapisan tersembunyi yaitu masing-masing 10, 15, 20, 25 neuron dan 30 neuron berdasarkan percobaan penulis saja untuk melihat seberapa besar pengaruh neuron dalam proses komputasi jaringan.

Untuk jumlah neuron pada lapisan output sebanyak 5 karena dengan pertimbangkan bahwa pelambangan 36 karakter huruf dalam bentuk biner memerlukan 5 digit. Pengurutan dua puluh enam karakter huruf sesuai dengan urutan binernya.

Setelah penentuan arsitektur jaringannya, maka hal yang perlu diperhatikan adalah parameter-parameter jaringan. Parameter-parameter jaringan yang terdapat dalam penelitian ini adalah error, angka pembelajaran (α) dan momentum (µ). Nilai

Error yang diinginkan adalah 0.01. Sedangkan nilai α dan µ berada dalam interval [0.1, 0.9].

3.3 Implementasi dan pengujian

Proses komputasi jaringan yang dilakukan pada penelitian ini menggunakan program Matlab 6.1. Matlab merupakan perangkat lunak yang cocok dipakai sebagai alat komputasi yang melibatkan penggunaan matrik dan vektor. Fungsi-fungsi dalam paket perangkat lunak (toolbox) Matlab dibuat untuk memudahkan perhitungan tersebut. Banyak model jaringan saraf tiruan menggunakan manipulasi matriks atau vektor dalam iterasinya. Oleh karena itu Matlab merupakan perangkat lunak yang cocok dipakai dalam penelitian ini.

Hasil penelitian yang diperoleh dari proses komputasi dibedakan atas dua bagian. Bagian pertama memuat hasil pengujian dengan menggunakan inisialisasi


(48)

100 %

jumlah data yang dikenali memorisasi

jumlah data pelatihan

 

100 %

jumlah data yang dikenali generalisasi

jumlah data pengujian

 

bobot awal Nguyen Widrow sedangkan pada bagian kedua memuat hasil pengujian dengan menggunakan inisialisasi acak. Proses komputasi sendiri terdiri dari dua tipe. Tipe pertama, nilai α dan µ memiliki nilai yang sama dengan nilai awal untuk α adalah 0.1 dan nilai awal untuk µ adalah 0.1. Sedangkan untuk tipe yang kedua nilai α dan µ masing-masing menaik dan menurun dengan nilai awal untuk α adalah 0.1 sedangkan nilai µ adalah 0.9.

Jaringan yang telah melakukan proses pelatihan memperlihatkan kemampuan memorisasinya yang dapat dihitung dengan rumus:

Sedangkan jaringan yang telah melakukan proses pengujian memperlihatkan kemampuan generalisasinya yang juga dapat dihitung dengan rumus:

Setelah dilakukan pengujian program, maka diperoleh hasil pengujian dengan menggunakan inisialisasi Nguyen Widrow dan dengan menggunakan inisialisasi acak pada tabel 3.4 sampai dengan tabel 3.23 di bawah ini:

1. Hasil pengujian dengan menggunakan inisialisasi Nguyen Widrow

Tabel 3.4 Hasil Pengujian dengan 10 Neuron pada Lapisan Tersembunyi (tipe I)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Epoch 11068 5802 3526 2648 2200 1875 1948 1562 5104

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 69.23% 70.19% 72.11% 72.11% 75.96% 66.34% 71.15% 74.03% 75%

Huruf yang

dikenali 72/104 73/104 75/104 75/104 79/104 69/104 74/104 77/104 78/104


(49)

Tabel 3.5 Hasil Pengujian dengan 10 Neuron pada Lapisan Tersembunyi (tipe II)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

Epoch 6991 3839 3007 2635 2200 2009 1791 1914 1759

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 63.46% 72.11% 74.03% 75% 75.96% 71.15% 73.07% 75.96% 73.07%

Huruf yang

dikenali 66/104 75/104 77/104 78/104 79/104 74/104 76/104 79/104 76/104

Tabel 3.6 Hasil Pengujian dengan 15 Neuron pada Lapisan Tersembunyi (tipe I)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Epoch 8171 4149 2529 1789 1666 1319 987 827 847

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 69.23% 66.34% 68.26% 67.30% 67.30% 73.07% 70.19% 75.96% 74.03%

Huruf yang

dikenali 72/104 69/104 71/104 70/104 70/104 76/104 73/104 79/104 77/104

Tabel 3.7 Hasil Pengujian dengan 15 Neuron pada Lapisan Tersembunyi (tipe II)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

Epoch 4953 2798 1929 1589 1666 1433 1307 1242 1205

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 68.26% 65.38

% 67.30% 67.30% 67.30% 75.96% 73.07% 73.07% 73.07%

Huruf yang

dikenali 71/104

68/10

4 70/104 70/104 67/104 79/104 76/104 76/104 76/104

Tabel 3.8 Hasil Pengujian dengan 20 Neuron pada Lapisan Tersembunyi (tipe I)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Epoch 7259 3436 2303 1708 1297 1025 861 763 626

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 69.23

% 71.15% 73.07% 75.96% 74.03% 75% 76.92% 79.80% 76.92%

Huruf yang


(50)

Tabel 3.9 Hasil Pengujian dengan 20 Neuron pada Lapisan Tersembunyi (tipe II)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

Epoch 4327 2537 1766 1527 1297 1155 1081 1062 1050

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 69.23% 71.15% 76.92% 75% 74.03% 74.03% 76.92% 75% 75.96%

Huruf yang

dikenali 72/104 74/104 80/104 78/104 77/104 77104 80/104 78/104 79 /104

Tabel 3.10 Hasil Pengujian dengan 25 Neuron pada Lapisan Tersembunyi (tipe I)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Epoch 6580 3172 1958 1457 1119 939 748 634 523

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 70.19% 71.15% 75.96% 78.84% 76.92% 77.88% 76.92% 80.76% 77.88

% Huruf yang

dikenali 73/104 74/104 79/104 82/104 80/104 81/104 80/104 84/104

81/10 4

Tabel 3.11 Hasil Pengujian dengan 25 Neuron pada Lapisan Tersembunyi (tipe II)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

Epoch 3912 2109 1586 1309 1119 1032 970 939 914

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 71.15% 75% 76.92% 75.96% 76.92% 75% 75% 77.88% 78.846%

Huruf yang

dikenali 74/104 78/104 80/104 79/104 80/104 78/104 78/104 81/104 82 /104

Tabel 3.12 Hasil Pengujian dengan 30 Neuron pada Lapisan Tersembunyi (tipe I)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Epoch 6082 2942 1950 1433 1098 876 740 607 557

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 69.23% 71.15% 76.92% 78.84% 80.76% 81.73% 80.76% 79.80% 83.65%

Huruf yang

dikenali 72/104 74/104 80/104 82/104 84/104 85/104 84/104 83/104 87/104


(51)

Tabel 3.13 Hasil Pengujian dengan 30 Neuron pada Lapisan Tersembunyi (tipe II)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

Epoch 3649 2093 1558 1279 1098 1028 923 876 847

Memorisasi 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 % 100 %

Generalisasi 73.07% 76.92% 80.76% 79.80% 80.76% 83.65% 82.69% 82.69% 82.69%

Huruf yang

dikenali 76/104 80/104 84/104 83/104 84/104 87/104 86/104 86/104 86/104

Dari seluruh percobaan dengan menggunakan metode inisialisasi Nguyen

Widrow diperoleh hasil bahwa kinerja backpropagation dinilai cukup baik karena dari

segi kemampuan jaringan dalam hal mengenali pola pada saat proses pelatihan untuk mengamati kemampuan memorisasi dinilai sangat baik karena mencapai 100%. Yang berarti pada saat proses pelatihan, jaringan dapat mengenali secara keseluruhan pola yang diberikan. Sedangkan untuk masalah generalisasi, nilai persentase akurasi pengenalan pola jaringan dinilai cukup baik yakni antara 63.46% sampai dengan 83.65%. Dalam hal pengaruh jumlah epoch secara rata-rata terjadi penurunan jumlah

epoch. Baik pada pengujian tipe I maupun pada tipe II, epoch mengalami penurunan

walau ada beberapa percobaan yang mengalami kenaikan dari percobaan sebelumnya tetapi epoch langsung mengalami penurunan kembali. Seperti pada pengujian tipe II dengan menggunakan 10 neuron, pada percobaan ketujuh jumlah epoch yang diperoleh 1791 tetapi pada percobaan kedelapan epoch mengalami kenaikan menjadi 1914 namun pada percobaan kesembilan terjadi penurunan jumlah epoch menjadi 1759.

2. Hasil pengujian dengan menggunakan inisialisasi acak

Tabel 3.14 Hasil Pengujian dengan 10 Neuron pada Lapisan Tersembunyi (tipe I)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Epoch 11525 5057 2953 2407 2033 1590 1282 1465 1520

Memorisasi 100% 100% 100% 100% 100% 100% 100% 100% 100%

Generalisasi 58.65% 63.46% 62.5% 69.23% 72.11% 76.92% 64.42% 68.26% 66.34%

Huruf yang


(52)

Tabel 3.15 Hasil Pengujian dengan 10 Neuron pada Lapisan Tersembunyi (tipe II)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

Epoch 6243 3402 2725 2474 2033 2035 1849 1790 1686

Memorisasi 100% 100% 100% 100% 100% 100% 100% 100% 100%

Generalisasi 59.61% 64.42% 63.46% 72.11% 72.11% 78.84% 75% 74.03% 74.03%

Huruf yang

dikenali 62/104 67/104 66/104 75/104 75/104 82/104 78/104 77/104 77/104

Tabel 3.16 Hasil Pengujian dengan 15 Neuron pada Lapisan Tersembunyi (tipe I)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Epoch 7730 3582 2301 1761 1368 1032 957 780 637

Memorisasi 100% 100% 100% 100% 100% 100% 100% 100% 100%

Generalisasi 62.50% 68.26% 66.34% 72.11% 67.30% 67.30% 71.15% 72.11% 68.26%

Huruf yang

dikenali 65/104 71/104 69104 75/104 70/104 70104 74/104 75/104 71/104

Tabel 3.17 Hasil Pengujian dengan 15 Neuron pada Lapisan Tersembunyi (tipe II)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1

Epoch 4605 2477 1777 1621 1368 1226 1075 996 993

Memorisasi 100% 100% 100% 100% 100% 100% 100% 100% 100%

Generalisasi 64.42% 64.42% 68.26% 69.23% 67.30% 68.26% 65.38% 69.23% 70.19%

Huruf yang

dikenali 67/104 67/104 71/104 72/104 70104 71/104 68/104 72/104 73/104

Tabel 3.18 Hasil Pengujian dengan 20 Neuron pada Lapisan Tersembunyi (tipe I)

Laju

Pembelajaran 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Momentum 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Epoch 6812 3084 2081 1455 1174 954 892 742 693

Memorisasi 100% 100% 100% 100% 100% 100% 100% 100% 100%

Generalisasi 73.07% 72.11% 75.96% 73.07% 77.88% 77.88% 77.88% 80.76% 79.80%

Huruf yang

dikenali 76/104 75/104 79/104 7681/104 81/104 81/104 81/104 84/104 83/104

136 4


(1)

function y = bp2val(P,W1,W2);

%--- % BP2VAL - Fungsi untuk menghitung nilai keluaran

aktual dari jaringan saraf propagasi balik dengan satu lapisan tersembunyi

% y = bp2val(P,W1,W2)

% P - matriks berukuran n x N, berisi N buah vektor data masukan berdimensi n

% W1 - Bobot-bobot dari lapisan masukan ke lapisan tersembunyi

% W2 - Bobot-bobot dari lapisan tersembunyi ke lapisan keluaran

% y - matriks berukuran m x N, berisi N buah vektor data keluaran berdimensi m

%--- [n,N] = size(P);

[m,M] = size(W2); y = zeros(m,N); for i=1:N

v1 = W1 * [P(:,i)' 1]'; xout1 = logsig(v1);

v2 = W2 * [xout1' 1]'; xout2 = logsig(v2);

y(:,i) = xout2; end

%Program utama pelatihan dengan menggunakan momentum %Tujuan untuk mengamati tingkat konvergensi jaringan

%--- clear all;

clc;

%inisialisasi masukan dan target load data;

%inisialisasi pelatihan

M=input('jumlah_neuron_lapisan_tersembunyi = '); Tp=input('[alpha betha] = ' );

%inisialisasi bobot awal load bobotku;

%pelatihan 2 faktor


(2)

function [W1,W2,E] = bp2m(Ptrain,Ttrain,M,Tp,W1,W2);

%--- % [W1,W2,E] = bp2m(Ptrain,Ttrain,M,Tp,W1,W2]

%Ptrain = matriks berukuran n x N, berisi N buah vektor data masukan berdimensi n

%Ttrain = matriks berukuran m x N, berisi N buah vektor data target keluaran berdimensi m

%M = Banyaknya neuron pada lapisan tersembunyi %Tp = Parameter pelatihan

%Tp(1) = alpha ( laju pembelajaran ) %Tp(2) = betha ( momentum )

%W1 = Bobot dari lapisan masukan ke lapisan tersembunyi( termasuk bias )

%W2 = Bobot dari lapisan tersembunyi ke lapisan keluaran ( termasuk bias )

%E = informasi kesalahan pelatihan (SSE)

%--- [n,N]=size(Ptrain);

[m,N]=size(Ttrain); %inisialisasi

alpha = Tp(1); beta = Tp(2); Accuracy =0.01; E=[];

SSE = Accuracy+1; iter = 0;

dWnew1 = zeros(size(W1)); dWnew2 = zeros(size(W2)); %Pelatihan jaringan while SSE>Accuracy iter=iter+1 for i=1:N dWold1=dWnew1; dWold2=dWnew2; v1=W1*[Ptrain(:,i)' 1]'; xout1=logsig(v1);

g1=diag(xout1) * (ones(size(xout1))-xout1); v2=W2 * [xout1' 1]';

xout2= logsig(v2);

g2=diag(xout2) * (ones(size(xout2))-xout2); D2=diag(g2)*(Ttrain(:,i)-xout2); D1=diag(g1)*W2(1:m,1:M)'*D2; dWnew2=D2*[xout1' 1]; dWnew1=D1*[Ptrain(:,i)' 1]; W1=W1+alpha*(dWnew1+beta*dWold1); W2=W2+alpha*(dWnew2+beta*dWold2); end


(3)

y=bp2val(Ptrain,W1,W2);

SSE=sum(sum(((Ttrain - y).^2)/2)); E=[E;SSE];

end W1b=W1; W2b=W2;

%simpan bobotbaru

save bobotbaru2 W1b W2b; %Gambar grafik

a=[1:iter] b=E(a,:); plot(a,b);

title('Grafik Pelatihan Jaringan Backpropagation'); xlabel('Epoch');

ylabel('SSE');

%Program utama pengujian memorisasi jaringan

%Tujuan untuk mengamati kemampuan memorisasi jaringan %Masukan berasal dari data pelatihan

%Target berasal dari data pelatihan %Bobot berasal dari hasil pelatihan

%--- clear all;

clc;

load data;

load bobotbaru2; [n,N]=size(Ptrain);

y=bp2val(Ptrain,W1b,W2b); Y=round(y);

dikenali=0; for i=1:N A=Y(:,i);

B=Ttrain(:,i); C=isequal(A,B); if C==1

disp('DIKENALI'); dikenali=dikenali+1;

else

disp('TIDAK_DIKENALI');


(4)

end

jumlah_dikenali=dikenali;

persentase=(jumlah_dikenali/N)*100; disp(['Banyak data ->' num2str(N)]);

disp(['dikenali ->' num2str(jumlah_dikenali)]); disp(['Persentase_Memorisasi -> ' num2str(persentase) '%']);

%Program utama pengujian generalisasi

%Tujuan untuk mengamati kemampuan generalisasi jaringan %Masukan berasal dari data ujian

%Target berasal dari data ujian

%Bobot berasal dari hasil pelatihan dengan momentum %--- clear all;

clc;

load data_uji; load bobotbaru2; [n,N]=size(P_uji);

y=bp2val(P_uji,W1b,W2b); Y=round(y);

dikenali=0; for i=1:N A=Y(:,i); B=T_uji(:,i); C=isequal(A,B); if C==1

disp('DIKENALI'); dikenali=dikenali+1; else

disp('TIDAK DIKENALI'); end

end

jumlah_dikenali=dikenali;

persentase=(jumlah_dikenali/N)*100; disp(['Banyak data ->' num2str(N)]);

disp(['dikenali ->' num2str(jumlah_dikenali)]);


(5)

LAMPIRAN B HASIL SCANNER HURUF


(6)