I.JUDUL
Pengenalan Pola Citra Retina Menggunakan Jaringan Syaraf Tiruan Backpropagation Untuk Mendeteksi Retinopati Diabetes
(Retina Image Pattern Recognition Using Artificial Neural Network for Retinopathy Diabetes Detection)
II.PENDAHULUAN
II.1 Latar Belakang
Pada penderita Diabetes Melitus dapat terjadi kelainan retina yang disebut sebagai Retinopati Diabetes. Retinopati Diabetes merupakan penyakit sistemik yang paling penting pada mata. Retinopai Diabetes akan menyebabkan gangguan pada tajam penglihatan, sehingga penglihatan penderita akan semakin menurun dan dapat menyebabkan kebutaan. Meskipun penyakit Diabetes Melitus ini adalah penyakit turunan, namun penyebab yang paling besar adalah pola makan yang keliru. Hal ini sering membuat para penderita Diabetes Melitus tidak menyadari bahwa dirinya telah mengidap penyakit ini. Sehingga, sering terjadi Retinopati Diabetes sebelum penderita menyadari bahwa dirinya mengidap Diabetes Melitus.
Sebagaimana kita ketahui peran dokter sangat penting dalam mendiagnosis suatu penyakit, sehingga sangat mempengaruhi dalam pengambilan keputusan terhadap suatu penyakit. Akan sangat membantu jika ada suatu alat bantu untuk mendeteksi kelainan Retinopati Diabetes pada pasien agar dapat dilakukan penanganan sedini mungkin.
Metode Jaringan Syaraf Tiruan (Artificial Neural Network) merupakan salah satu alternatif pemecahan masalah dan banyak diminati oleh para peneliti pada saat ini. Hal ini adalah karena keluwesan yang dimiliki oleh Jaringan Syaraf Tiruan, baik dalam perancangan maupun penggunaannya. Dasar pemikiran metode Jaringan Syaraf Tiruan ini adalah jaringan syaraf manusia. Metode ini meniru cara kerja otak manusia dalam berfikir untuk memecahkan beragam permasalahan.
Salah satu penggunaan dari metode Jaringan Syaraf Tiruan seperti yang dilakukan pada tugas akhir ini yaitu untuk mengidentifikasi pola citra hasil foto Fundus sehingga dapat mengidentifikasi kelainan mata akibat Diabetes Melitus yang biasa disebut Retinopati Diabetes.
Jaringan Syaraf Tiruan dapat dikembangkan untuk mempermudah deteksi Retinopati Diabetes pada citra retina, dimana data citra retina yang diperoleh dari foto Fundus diolah dengan menggunakan Operator Sobel untuk memperoleh data biner. Data biner ini digunakan sebagai data masukan pada proses Jaringan Syaraf Tiruan. Setelah melalui proses training dan mapping, jaringan dapat mengenali pola sesuai dengan pola yang telah diajarkan. Dengan demikian jaringan dapat mengambil keputusan mengenai ada atau tidaknya Retinopati Diabetes pada pasien.
II.2 Rumusan Masalah
Berdasarkan permasalahan yang telah dijelaskan pada bagian latar belakang, maka rumusan masalah dikhususkan pada :
§ Penerapan Operator Sobel untuk mengolah citra retina sehingga didapatkan data digital dari citra tersebut.
§ Penerapan Algoritma Backpropagation untuk mengenali pola citra retina dari penderita Retinopati Diabetes dan citra retina normal.
§ Pengembangan aplikasi pendeteksi diabetes dengan menerapkan Algoritma Backpropagation menggunakan UML dan Java.
II.3 Batasan Masalah Masalah
Ruang lingkup permasalahan dibatasi oleh :
§ Citra retina yang digunakan adalah citra Retinopati Diabetik dan citra retina normal hasil dari foto Fundus.
§ Data yang digunakan berupa file *.bmp 256 warna..
§ Aplikasi akan dirancang menggunakan UML dan diimplementasikan menggunakan Java.
§ Aplikasi dibuat untuk bekerja pada sistem operasi Windows XP Profesional.
§ Menggunakan Learning Rate 0,3 dan Momentum 0,8.
§ Jeringan Syaraf Tiruan yang dipergunakan adalah metode Backpropagation dengan Hidden Layer maksimal 5 layer.
§ Deteksi tepi yang digunakan adalah Operator Sobel
II.4 Tujuan
Tujuan dari penelitian ini adalah mengembangkan Jaringan Syaraf Tiruan yang dapat mengidentifikasi Retinopati Diabetes melalui citra retina sehingga dapat dilakukan penanganan secara dini terhadap penderita Retinopati Diabetes.
II.5 Manfaat
Manfaat dari penelitian ini antara lain :
1. Sebagai upaya untuk menerapkan Jaringan Syaraf Tiruan metode Backpropagation dalam dunia kedokteran.
2. Didapatkan sebuah aplikasi yang dapat mendeteksi penyakit Retinopati Diabetes secara cepat dan akurat.
3. Membantu dokter untuk mendiagnosis pasien penderita Renitopati Diabetes lebih dini.
II.6 Tinjauan Pustaka
II.6.1 Retinopati Diabetes
Pada penderita Diabetes Melitus dapat terjadi kelainan retina yang disebut sebagai Retinopati Diabetes. Retinopati Diabetes merupakan penyakit sistemik yang paling penting pada mata. Retinopai Diabetes akan menyebabkan gangguan pada tajam penglihatan, sehingga penglihatan penderita akan semakin menurun dan dapat menyebabkan kebutaan.
Kemungkinan terjadinya Retinopati Diabetes cukup tinggi dan mencapai 40-50% dari penderita Diabetes Melitus.Kemungkinannya bertambah akibat pemakaian insulin, sehingga mengakibatkan bertambahnya usia penderita Diabetes Melitus. Pada Diabetes Juvenil jarang ditemukan Retinopati Diabetes pada usia lebih rendah dari 17 tahun. Pada umumnya Retinopati Diabetes terjadi pada penderita Diabetes Melitus yang telah terjangkit selama 10 tahun. Rada usia lanjut sering terlihat Retinopati Diabetes sebelum penderita menyadari adanya Diabetes Melitus. [ILY-05]
Kelainan pada Retina yang dapat terjadi akibat Retinopati Diabetes adalah :
1. Kelainan Vena, yaitu melebar iregular dan berkelok-kelok. Kelainan vena terjadi akibat gangguan sirkulasi dan gangguan pada Endotelnya.
2. Microaneurismata, yaitu terjadi penonjolan dinding pembuluh darah kapiler vena retina.
3. Pendarahan pada retina berbentuk pendarahan bintik dan bercak-bercak di dalam retina.
4. Obstruksi kapiler, mengakibatkan terganggunya aliran darah kapiler retina.
5. Neovaskularisasi, merupakan awal penyakit yang lebih berat pada Retinopati Diabetes.
II.6.2 Pengolahan Citra Digital
Pengolahan citra (image processing) merupakan suatu sistem di mana proses dilakukan dengan masukan berupa citra (image) dan hasilnya juga berupa citra (image). Sesuai dengan perkembangan komputer vision itu sendiri, pengolahan citra mempunyai dua tujuan utama, yakni:
- Memperbaiki kualitas citra, dimana citra yang dihasilkan dapat menampilkan informasi secara jelas atau dengan kata lain manusia dapat melihat informasi secara jelas atau dapat menginterpretasikan citra yang ada.
- Mengekstraksi informasi ciri yang menonjol pada suatu citra di mana hasilnya adalah informasi citra di mana manusia mendapatkan informasi ciri dari citra secara numerik atau dengan kata lain komputer (mesin) melakukan interpretasi terhadap informasi yang ada pada citra melalui besaran-besaran data yang dapat dibedakan secara jelas (besaran-besaran ini berupa besaran numerik). [BAS-05]
Dalam perkembangan lebih lanjut dari ilmu komputasi yang memanfaatkan pengolahan citra, ternyata untuk mengidentifikasi seseorang bisa menggunakan sidik jari, pengenalan wajah (face recognition) ataupun pengenalan retina (retina recognition). Dalam model pengenalan wajah dan pengenalan retina, proses pengolahan citra yang dilakukan menjadi tidak sederhana, baik dari sisi capture sampai pada ekstraksi cirinya. Pada pengenalan wajah proses capture ini sangat menentukan tingkat kesulitan dalam komputasinya, salah satunya bahwa dalam setiap dalam setiap proses capture ternyata cahaya, warna, posisi, skala dan kemiringan menjadi suatu masalah yang perlu di perhatikan.
Citra digital adalah citra yang didefinisikan sebagai fungsi f(x,y) dimana x menyatakan nomor baris, y menyatakan nilai kolom, dan f menyatakan nilai derajat keabuan pada citra. Dengan demikian (x,y) adalah posisi dari piksel dan f adalah nilai derajat keabuan pada titik(x,y).Citra yang dimaksudkan dalam keseluruhan buku ini adalah ”citra diam” (still images). Citra diam adalah citra tunggal yang tidak bergerak. Untuk selanjutnya citra diam disebut citra saja. [BAS-05]
II.6.2.1 Representasi Citra Digital
Sebuah citra dalam komputer direpresentasikan dalam sebuah matriks yang berisikan angka-angka. Jika kita menyimpan citra kedalam sebuah file, maka yang disimpan kedalam file tersebut adalah angka-angka yang diperoleh dari matriks kanvas seperti yang ditunjukkan oleh gambar berikut ini ini.
201 188 181 185 180 147 140 149 155 138 144 144 145
199 200 201 188 139 132 147 150 143 123 112 102 117
207 221 222 136 90 111 125 145 140 138 122 104 97
231 219 200 90 65 84 84 107 95 92 92 99 89
227 223 181 74 72 89 92 86 77 63 50 55 65
217 211 166 85 47 75 82 83 75 42 42 39 40
208 195 179 131 54 68 66 72 46 21 15 24 19
198 187 181 141 53 54 55 59 37 21 37 66 90
195 184 170 134 52 38 42 45 35 43 98 152 172
186 175 171 169 100 34 34 27 44 85 139 170 184
167 156 142 144 112 48 32 46 84 133 166 172 186
142 139 131 120 108 67 30 76 102 123 153 171 178
145 134 128 125 117 70 38 91 101 105 125 146 157
Gambar 2.1 Representasi citra kedalam matriks angka
Untuk format Windows Bitmap File (.bmp) terdapat sebuah header yang berisi informasi jumlah kolam dan baris dalam citra serta informasi palet. Header langsung diikuti oleh angka-angka dalam matriks yang disusun perbaris, baris pertama langsung diikuti baris kedua.
Header |
Angka-angka dari matriks |
Header | Baris 1 | ….. | Baris terakhir |
Gambar 2.2 Susunan Header dan Matriks angka
Ada bermacam format representasi citra dalam file, seperti bmp, tif, jpg, dan sebagainya. Dalam format .bmp semua informasi angka dalam baris disimpan. Misalkan ukuran header adalah H byte, ukuran citra 100x100 byte monokrom, maka ukuran file bmp tersebut adalah : H + data citra = H + 10000 Byte. Bagian data citra (10000 byte) sebenarnya bisa dikompresi agar ukuran file tidak terlalu besar. Salah satu cara kompresi adalah dengan terlebih dahulu mentransformasikan citra ke ruang yang berbeda (contoh: format file JPEG).
II.6.2.2 Hubungan Dasar Antar Piksel
Dalam pengolahan citra, hubungan dasar antar piksel merupakan hal yang sangat penting. Sebuah piksel p pada koordinat (x,y) mempunyai 4 tetangga horisontal dan vertikal yang koordinat-koordinatnya sebagai berikut :
(x+1,y),(x-1,y),(x,y+1), dan (x,y-1) (2.1)
Kumpulan dari píxel-piksel data yang disebut 4-neighbours of p dapat dinyatakan sebagai N4 (p). Kecuali jika p(x,y) posisinya berada di garis batas gambar, sehingga jumlah píxel tetangga tidak terdiri dari 4 piksel tetangga. Selain 4 tetangga diatas, p juga mempunyai 4 tetangga diagonal yaitu :
(x+1,y+1),(x+1,y-1),(x-1,y+1), dan (x-1,y-1) (2.2)
píksel-piksel diatas dinyatakan dalam ND (p). Gabungan dari N4 (p) dan ND (p) didefinisikan sebagai 8-neighbours of p dapat dinyatakan sebagai N8 (p).
Hubungan dasar antar píksel merupakan suatu konsep yang sangat penting yang digunakan untuk mendefinisikan batas-batas dari suatu objek dan bagian-bagian daerah kecil dari suatu gambar. Sebagai pertimbangan apakan dua buah piksel saling berhubungan atau tidak, diperlukan beberapa kriteria. Diantaranya apakah kedua piksel tersebut mempunyai prinsip kedekatan yang sesuai dengan konsep yang telah ditentukan, seperti 4-neighbours atau 8-neighbours. Selain itu, apakah kedua piksel tersebut mempunyai gray level yang sesuai dengan kriteria yang diinginkan. Sebagai contoh, jika dua piksel masing-masing mempunyai nilai 1 dan 0 dan keduanya merupakan bagian dari 4-neighbours, maka dinyatakan kedua piksel tersebut tidak ada hubungan, hal ini karena kedua piksel tersebut memiliki nilai yang berbeda.
II.6.2.3 Deteksi Tepi
Deteksi tepi (Edge Detection) pada suatu citra adalah suatu proses yang menghasilkan tepi-tepi dari obyek-obyek citra, tujuannya adalah :
- Untuk menandai bagian yang menjadi detail citra
- Untuk memperbaiki detail dari citra yang kabur, yang terjadi karena error atau adanya efek dari proses akuisisi citra
Suatu titik (x,y) dikatakan sebagai tepi (edge) dari suatu citra bila titik tersebut mempunyai perbedaan yang tinggi dengan tetangganya. Gambar 2.3 berikut ini meng-gambarkan bagaimana tepi suatu gambar diperoleh.
Gambar 2.3. Proses Deteksi Tepi Citra
Perhatikan hasil deteksi dari beberapa citra menggunakan model differensial di atas:
Gambar 2.4. Hasil beberapa deteksi tepi
Pada gambar 2.4. terlihat bahwa hasil deteksi tepi berupa tepi-tepi dari suatu gambar. Bila diperhatikan bahwa tepi suatu gambar terletak pada titik-titik yang memiliki perbedaan tinggi. Berdasarkan prinsip-prinsip filter pada citra maka tepi suatu gambar dapat diperoleh menggunakan High Pass Filter (HPF), yang mempunyai karakteristik:
Contoh:
Diketahui fungsi citra f(x,y) sebagai berikut:
1 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 1 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 |
Dengan menggunakan filter : H (x,y) = [-1 1]
Maka Hasil filter adalah :
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 |
Bila digambarkan maka proses filter di atas mempunyai masukan dan keluaran sebagai berikut
Untuk mencoba perhitungan di atas dapat dilakukan dengan cara manual menggunakan perhitungan konvolusi yang telah dibahas pada bab 5, atau dengan memanfaatkan program konvolusi.
Macam-macam metode untuk proses deteksi tepi ini, antara lain:
1. Metode Robert
2. Metode Prewitt
3. Metode Sobel
Metode yang banyak digunakan untuk proses deteksi tepi adalah metode Robert, Prewitt dan Sobel.
II.6.2.4 Operator Sobel
Operator sobel melakukan perhitungan secara 2D terhadap suatu ruang di dalam sebuah gambar dengan harapan nantinya akan nampak daerah-daerah bernilai tinggi pada gambar tersebut yang merupakan deteksi tepi dari suatu gambaran. Operator ini biasanya digunakan untuk mencari gradient dari masing-masing pixel gambar input yang telah di grayscale sebelumnya. Secara teori, diperlukan matrik setidaknya berukuran 3x3 sebagai kernelnya. Seperti gambar dibawah ini menunjukkan kernel 3x3 dari sobel :
Gambar 2.5 Kernel Konvolusi Sobel
Sumber : Wikipedia
Kernel ini dirancang untuk menyelesaikan permasalahan deteksi tepi baik secara vertikal maupun horisontal. Penggunaan kernel-kernel ini dapat digunakan bersamaan ataupun secara terpisah. Apabila digunakan kernel verikal dan kernel horisontal
secara bersamaan, maka gradient dapat diukur dengan formula sbb:
G = Gx2 + Gy2
Nilai magnitude dari gradient juga dapat dihitung lebih cepat lagi dengan menggunakan formula sbb:
G = Gx + Gy
Gradient tersebut pasti mempunyai derajat kemiringan tertentu. Untuk dapat menegtahui sudut dari gradient tersebut dapat dihitung dengan menggunakan rumus sbb:
ϑ = arctan(Gy / Gx)
Dalam kasus ini, orientasi 0 untuk menentukan nilai kontras maximum dari hitam ke putih dihitung dari kiri menuju kanan dan berjalan terus sampai ke bagian paling atas dari suatu gambaran. Sedangkan sudutnya diukur berlawanan arah jarum jam.
Yang sering terjadi dalam filter ini adalah nilai absolut dari magnitude hanya sebatas penglihatan mata kita saja, apabila terdapat dua komponen gradient maka akan digabungkan menggunakan operator pseudo-convolution sbb:
Gambar 2.6 Kernel pseudo-convolution agar mempercepat komputasi
Sumber : Wikipedia
Dengan menggunakan kernel pseudo-convolution seperti
diatas maka perhitungan yang terjadi adalah:
Pada kenyataannya operator Sobel memerlukan proses perhitungan yang lebih lama dibandingkan dengan operator Robert Cross. Akan tetapi, bila nantinya dalam proses digunakan kernel berukuran besar, maka akan memperhalus gambar input sehingga nantinya akan mereduksi noise. Keunggulan lain dari operator Sobel dibandingkan dengan Robert Cross adalah nilainilai output dari proses konvolusi dengan Sobel lebih akurat dan presisi.
Gambar 2.7 Citra Grayscale dan Hasil Operator Sobel
Sumber : Wikipedia
II.6.3 Jaringan Syaraf Tiruan
II.6.3.1 Definisi Jaringan Syaraf Tiruan
Jaringan Saraf tiruan (artificial neural networks) atau di singkat JST adalah sistem komputasi dimana arsitektur dan operasi di ilhami dari pengetahuan tentang sel saraf biologi di dalam otak. JST dapat digambarkan sebagai model matematis dan komputasi untuk fungsi aproksimasi nonlinear, klasifikasi data, cluster dan regresi non parametrik atau sebagai sebuah simulasi dari koleksi model saraf biologi. [KRI-04]
II.6.3.2 KOMPONEN JARINGAN SARAF
Ada beberapa tipe jaringan saraf, namun demikian, hampir semuanya memiliki komponen-komponen yang sama. Seperti halnya otak manusia, jaringan saraf juga terdiri dari beberapa neuron, dan ada hubungan antara neuron-neuron tersebut. Neuron-neuron tersebut akan mentransformasikan informasi yang di terima melalui sambungan
keluarnya menuju ke neuron-neuron yang lain. Pada jaringan saraf, hubungan ini dikenal dengan nama bobot. Informasi tersebut disimpan pada suatu nilai tertentu pada bobot tersebut. Gambar 2.8 menunjukkan struktur neuron pada jaringan saraf.
Gambar 2.8Struktur neuron jaringan saraf
Sumber : Dewi.2003
Jika kita lihat, neuron buatan ini sebenarnya mirip dengan sel neuron biologis. Neuron-neuron buatan tersebut bekerja dengan cara yang sama pula dengan sel neuron biologis. Informasi (disebut dengan input) akan dikirim ke neuron dengan bobot kedatangan tertentu. Input ini akan di proses oleh suatu fungsi perambatan yang akan menjumlahkan nilai-nilai semua bobot yang datang. Hasil penjumlahan ini kemudian akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktivasi setiap neuron. Apabila input tersebut melewati suatu nilai ambang tertentu, maka neuron tersebut diaktifkan, tapi kalau tidak, maka neuron tersebut tidak akan diaktifkan. Apabila neuron tersebut akan diaktifkan, maka neuron tersebut akan mengirimkan output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. Demikian seterusnya. [DEW-03]
II.6.3.3 ARSITEKTUR JARINGAN
JST yang telah dan sedang dikembangkan merupakan pemodelan matematika dari jaringan syaraf, berdasarkan asumsi :
- Pemrosesan info terjadi pada banyak elemen pemroses sederhana yang disebut neuron;
- Sinyal dilewatkan antar neuron yang membentuk jaringan neuron;
- Setiap elemen pada jaringan neuron memiliki 1 (satu) pembobot. Sinyal yang dikirimkan ke lapisan neuron berikutnya adalah info dikalikan dengan pembobot yang bersesuaian;
- Tiap-tiap neuron mengerjakan fungsi aktivasi untukmendapatkan nilai output masing-masing.
Karakteristik dari JST secara umum adalah :
1. Arsitektur (pola koneksi antar neuron)
2. Pelatihan/ pembelajaran
3. Fungsi aktivasi
Suatu neuron sederhana digambarkan sebagai berikut :
Gambar 2.9 Neuron Sederhana
Sumber : Astutik.2005 : 11
Pada gambar 2.9 di atas, neuron Y menerima input dari neuron X1, X2, dan X3 serta W1, W2, dan W3 merupakan pembobot antar koneksi dari X1, X2, X3 terhadap neuron Y. Jaringan input y_in pada neuron Y merupakan penjumlahan dari perkalian neuron-neuron input dengan masing-masing pembobot yang bersesuaian, dimana :
……………………………..(2.3)
Fungsi aktivasi dari neuron Y (f(y_in)) diberikan sebagai fungsi dari
input jaringannya (y_in) :
...............................................(2.4)
Apabila neuron Y di atas dihubungkan dengan neuron Z1 dan Z2 dengan pembobot v1 dan v2, maka nilai aktivasi z1 dan z2 dari neuron neuron Z1 dan Z2 akan tergantung pada input-input dari beberapa atau bahkan banyak neuron , tidak hanya satu.
Gambar 2.10 Neuron Network Yang Sangat Sederhana
Sumber : Astutik.2005 : 12
Gambar 2.10. merupakan suatu model neural network yang sangat sederhana yang terdiri dari unit-unit input, output dan satu unit hidden yang terletak pada suatu lapisan tersembunyi (hidden layer).
Susunan dari neuron-neuron di dalam layer dan bentuk hubungan di dalam dan diantara layer disebut net architecture (arsitektur jaringan). Neural net pada umumnya diklasifikasikan berdasarkan pada jumlah layer (input unit tidak dihitung sebagai layer, karena tidak mengerjakan fungsi aktivasi). Jumlah dari layer pada net dapat didefinisikan menjadi jumlah layer-layer dari pembobotan interkoneksi (links) diantara neuron-neuron, karena pembobot pada suatu net berisi info yang amat penting. Sebuah net yang memiliki satu layer dari hubungan pembobot-pembobotnya, diantara unit-unit input dengan unitunit output disebut single-layer neural network (Gambar 2.11).
Sedangkan, sebuah net dengan satu atau lebih hidden layer diantara unit -unit input dengan unit-unit output dikenal dengan multilayer neural network (Gambar 2.12). Untuk beberapa kasus, mungkin multilayer lebih menguntungkan, tetapi pada umumnya dengan satu layer saja sudah memadai untuk menyelesaikan berbagai masalah.
Gambar 2.11 Singlelayer Neural Network
Sumber : Fausett.1997
Gambar 2.12 Multilayer neural network
Sumber : fausett.1997
II.6.3.4 JARINGAN SARAF TIRUAN PROPAGASI BALIK
Metode Neural Network atau Jaringan Saraf Tiruan (JST) yang akan digunakan pada tugas akhir ini menggunakan algoritma Backpropagation. Aturan belajar algoritma ini adalah menggunakan error atau ketidaksesuaian output dengan target untuk koreksi bobotnya. Bobot di koreksi sampai error dapat diterima (memenuhi toleransi yang kita berikan) atau sampai dengan jumlah epoch tertentu. Prosedur pengajaran atau pembentukan bobot-bobot yang digunakan adalah sebagaimana yang digunakan dalam pengajaran jaringan yang bersifat supervised learning (pengajaran yang menggunakan target). Sehingga aturan ini memerlukan pasangan output untuk tiap input yang akan diajarkan.
Dengan keadaan bobot awal random, tiap input dilewatkan ke bobot tersebut dan di hasilkan output untuk saat itu. Output tersebut di bandingkan dengan target yang diinginkan. Besar perbedaan yang terjadi digunakan sebagai faktor pengubah pembobot yang menghubungkan input dengan output tersebut (Update wight). Sehingga, dengan bobot yang baru akan mengarahkan output ke target yang seharusnya. Proses perubahan bobot berdasarkan error ini dilakukan terus sampai output yang di hasilkan sesuai dengan yang di targetkan, atau mempunyai error yang dapat diterima. Logika umumnya adalah sebuah metode untuk meminimalisasi error rata-rata total (gradient descent), yang dihitung oleh net (jaringan neuron).
Gambar 2.13 Gradient descent
Sumber : Astutik.2005 : 14
Tujuannya, yaitu melatih sistem jaringan untuk mencapai suatu keseimbangan dalam merespon secara benar model input yang telah dilatihkan, dan kemampuan untuk memberikan respon yang masuk akal bagi input yang mirip tetapi tidak identik dengan input pada saat pembelajaran. Pada proses pengajaran, diperlukan semua pola data input
yang akan diajarkan dan target yang telah di tentukan sebelumnya. Setiap pola yang diinputkan akan diolah dan diproses melalui bobot yang ada, dan hasilnya dibandingkan dengan data target yang diinginkan, kemudian dihitung error-nya (ketidaksamaan hasil saat itu dengan hasil yang diinginkan). Dimana, error tersebut diumpan-balikkan (backpropagation) kebobot yang menghubungkan layer tersebut sebagai sinyal koreksi bobot, agar dengan bobot yang baru errornya berkurang sampai dengan harga yang diterima.
Prinsip algoritma bacpropagation memiliki 3 fase, yaitu:
1. Fase feedforward pada pola input pembelajaran.
2. Fase kalkulasi dan backpropagation error yang didapat.
3. Fase penyesuaian bobot.
Arsitektur yang digunakan adalah jaringan perseptron lapis banyak (multi layer perseptron), hal ini merupakan generalisasi dari arsitektur jaringan perseptron lapis tunggal. Secara umum, algoritma jaringan ini memerlukan waktu pembelajaran yang memang lambat, namun setelah pembelajaran selesai, aplikasinya akan memberikan
output yang sangat cepat dikarenakan faktor pembobot yang lebih baik..Berikut adalah gambar arsitektur algoritma Backpropagation dengan banyak lapisan :
Gambar 2.14 Arsitektur Backpropagation
Sumber : Freeman.1991: 90
II.6.3.5 Fungsi Aktivasi
Fungsi aktivasi merupakan fungsi pengolah jumlahan data input menjadi data output. Karakteristik pada fungsi aktivasi dari Backpropagation adalah kontinyu, dapat diturunkan, dan tidak menurun secara monoton. Fungsi aktivasi merupakan lengkung sigmoid, sebagaimana ditunjukkan oleh keterangan berikut. Ada beberapa jenis fungsi aktivasi untuk algoritma backpropagasi:
1. Bipolar sigmoid
Bipolar sigmoid memiliki range dari (-1,1) dan didefinisikan :
............................................................................(2.5)
dan turunan fungsi adalah :
f '(x) = 0.5 [1 + f(x)][1 – f(x)] ..................................................................(2.6)
Ilustrasi fungsi di atas digambarkan :
Gambar 2.15 Bipolar sigmoid, range (-1,1)
Sumber : Astutik.2005 : 17
Fungsi bipolar sigmoid ini dapat juga dihasilkan dari :
……........…....................(2.7)
dengan turunan fungsi adalah :
h ' (x) = [1 + h(x)][1 – h(x)] ............................................................( 2.8)
2. Binary sigmoid
Binary sigmoid memiliki range dari (0,1) dan didefinisikan :
………………………………..............…(2.9)
dan fungsi turunannya adalah :
f '(x) = f(x).[1-f(x)] …………………....................……………….(2.10)
Ilustrasi fungsi di atas digambarkan :
Gambar 2.16 Binary sigmoid, range (0,1)
Sumber : Astutik.2005 : 18
Lengkung sigmoid secara relatif mendatar pada kedua ujungnya, dan meningkat cepat pada pertengahannya. Ketika x kurang dari –3, f(x) mendekati 0, ketika x lebih besar dari 3, f(x) mendekati 1. Kenyataannya, f(x) mendekati 1 secara lurus sebagaimana x bertambah dan f(x) mendekati 0 secara lurus sebagaimana x menjadi lebih besar dari harga negatif. Ada suatu transisi dari 0 ke 1 dimana x secara perkiraan (-3 <>threshold yang dibulatkan (dan
dapat diturunkan} terhadap fungsi step (gambar 2.17).
Gambar 2.17 Fungsi Step
Sumber : Astutik.2005 : 18
Setelah fungsi sigmoid dihitung, nilai resultan menjadi level pengaktifasi unit tersebut. Nilai ini, dikirim sepanjang interkoneksi output. Nilai output yang sama dikirim ke semua interkoneksi output.
Lapisan input unit adalah kasus khusus. Unit-unit ini tidak menunjukkan jumlah pembobotan pada vektor inputnya. Kita pertimbangkan lapisan input sebagai sebuah lapisan jaringan meskipun tidak menunjukkan jumlah pembobotan dan perhitungan sigmoid.
Beberapa jaringan backpropagasi menerapkan sebuah unit bias sebagai bagian tiap lapisan. Unit ini mempunyai nilai pengaktifan konstan berharga 1, dimana tiap unit bias dihubungkan ke semua unit pada lapisan selanjutnya yang lebih tinggi, dan pembobotan padanya diatur selama back-error propagation. Unit bias memberikan masa konstan dalam jumlah pembobotan dari unitunit dilapisan selanjutnya. Hasilnya kadangkala merupakan properti konvergensi (menuju target) dari jaringan. Unit bias juga memberikan efek threshold pada tiap unit pada targetnya, fungsi sigmoid (1). Ini ekivalen dengan translasi lengkung sigmoid pada gambar 2.18, ke kiri atau ke kanan.
Gambar 2.18 Lengkung Sigmoid
Sumber : Astutik.2005 : 19
Sebagai contoh, anggap unit bias (v0) pada gambar 2.12
mempunyai nilai output 1 dan bobot :
c=vj0 ..............................................................................................(2.11)
dengan mengambil
. ……………………………......................……(2.12)
Maka z adalah jumlah masukan dari semua unit pada gambar 2.13 selain unit bias. Jika unit bias memberi kontribusi konstanta c ke jumlah masukan unit j, penjumlahan ini menjadi:
z+c ……………………………………………........................….(2.13)
Konstanta c mentranslansikan grafik ke kiri sejumlah c, kemudian menggerakkan threshold lengkung sigmoid dari 0 ke –c. Dengan cara ini, unit bias memberikan suatu threshold yang dapat diatur untuk tiap unit target. Threshold untuk unit j kemudian diambil dari nilai vj0, bobot interkoneksi dari unit bias.
II.6.3.6 Pembelajaran/ Pelatihan
Pada JST, belajar adalah proses pembentukan konfigurasi harga-harga bobot dari jaringan. Pembentukan ini memiliki tujuan akhir agar input-input yang diberikan padanya akan direspon melalui bobot-bobot tersebut sehingga menghasilkan output yang sesuai dengan target atau mendekati, untuk input yang bersangkutan. Terdapat banyak cara di dalam proses pembelajaran dari JST, secara umum dapat dikategorikan dalam 2 jenis proses, yaitu :
• Supervised training (Pembelajaran Dengan Pengawasan)
Pada tipe belajar dengan pengawasan, tiap pola input memiliki pola target. Sehingga pada pembelajaran tipe ini, masing-masing input memiliki pasangan output yang bersesuaian. Pada proses belajarnya, bobot-bobot dibangun menuju kesesuaian respon pasangan input-output dari pola yang diajarkan, yaitu tiap diberikan pola input yang diajarkan, pembobotnya dapat memberikan respon dan menghasilkan pola output
yang sesuai dengan target dari pola input tersebut. Dalam hal ini, dapat diterapkan toleransi kesalahan output respon terhadap target yang seharusnya. Error digunakan untuk mengubah bobot sambungan sehingga kesalahan akan semakin kecil dalam siklus pelatihan berikutnya. Pada tugas akhir ini akan digunakan tipe pembelajaran di atas.
• Unsupervised training (Pembelajaran Tanpa Pengawasan)
Algoritma ini tidak membutuhkan vektor target untuk keluarannya, sehingga tidak ada perbandingan untuk menentukan respon yang ideal. Kumpulan pola pelatihan hanya terdiri dari vektor masukan dan, algoritma pelatihan berfungsi sebagai pengubah/update pembobot (weight) jaringan untuk menghasilkan pola vektor, sehingga penerapan 2 vektor pelatihan suatu vektor lain yang cukup sejenis menghasilkan pola keluaran yang sama. Dalam proses pelatihan, jaringan mengklasifikasikan pola-pola masukan menjadi kelompok yang sejenis. Penerapan suatu vektor dari suatu kelas tertentu pada masukannya akan menghasilkan vektor keluaran yang spesifik, namun tak ada cara untuk menentukan terlebih dahulu pada pelatihannya, yang akan menghasilkan pola keluaran tertentu dengan satu vektor masukan dari kelas tertentu.
II.6.3.7 Algoritma Pembelajaran
Algoritma pembelajaran backpropagation terdiri dari tiga tahap, yaitu feedforward dari pola pelatihan input, backpropagation dari errornya, serta adjustment of the weights. Algoritma Pembelajaran sebagai berikut :
Step 0. Inisialisasi pembobot (set ke nilai-nilai kecil secara acak/random)
Step 1. Saat kondisi pemberhentian false, kerjakan langkah 2-9
Step 2. Untuk tiap-tiap pasangan pelatihan, kerjakan step 3-8
Feedforward:
Step 3. Tiap input unit (Xi , i = 1……n) menerima sinyal input xi dan mengirimkan sinyal ini ke semua unit-unit pada layer di atasnya (hidden units).
Step 4. Tiap hidden unit (Zj , j = 1…..p) menjumlahkan sinyal-sinyal input pembobotnya,
............................................................(2.14)
menerapkan fungsi aktifasi, menghitung sinyal output:
z j = f(z_inj), ........................................................................(2.15)
dan mengirimkan sinyal ini ke semua unit-unit pada layer di atasnya (output units).
Step 5. Tiap output unit (Yk, k = 1……..m) menjumlahkan sinyal-sinyal input pembobotnya,
y_in k = wok + zjwjk, .................................................(2.16)
menerapkan fungsi aktivasi, dan menghitung sinyal outputnya :
y k = f(y_ink). ......................................................................(2.17)
Backpropagation of error :
Step 6. Tiap output unit (Yk, k = 1……..m) menerima suatu pola target yang bersesuaian dengan pola pelatihan input, menghitung batas informasi errornya,
δ k = (tk – yk)f ′___ (y_ink), ……...……………………...(2.18)
serta mengkalkulasi batas koreksi pembobotnya(digunakan untuk update wjk selanjutnya),
∆wjk = αδkzj, …………………………………………….(2.19)
mengkalkulasi batas koreksi biasnya (digunakan untuk meng update w0k selanjutnya),
∆w0k = αδk, ………………………………………….…..(2.20)
dan mengirimkan δk pada unit-unit layer di bawahnya.
Step 7. Tiap-tiap hidden unit (Zj, j = 1……p) menjumlahkan delta input-inputnya (dari unit-unit layer diatasnya),
δ_inj = δkwjk, ………………………………………..(2.21)
mengalikan dengan turunan dari fungsi aktivasinya untuk mengkalkulasi batas informasi errornya,
δj = δ_inj f ′(z_inj), …………………………………………..(2.22)
mengkalkulasi batas koreksi pembobotnya (digunakan untuk meng update vij kemudian),
∆vij = αδjxi, …..………………………………………………(2.23)
dan mengkalkulasi batas koreksi biasnya (digunakan untuk meng update v0 j selanjutnya),
∆v0j = αδj, ………………...............................................…….(2.24)
Update weights and biases :
Step 8. Tiap output unit (Yk, k = 1……m) mengupdate bias danpembobot-pembobotnya (j = 0…..p) :
wjk(new) = wjk(old) + ∆ wjk, ………………………………..(2.25)
Tiap hidden unit (Zj, j=1…..p) meng update bias dan pembobot-pembobotnya (i = 0……n) :
vij(new) = vij(old) + ∆vij, ……………………………..…….(2.26)
Step 9. Uji kondisi pemberhentian
II.6.3.8 Faktor-faktor Pembelajaran
Parameter-parameter yang turut menentukan keberhasilan proses belajar pada algoritma backpropagation adalah :
Inisialisasi pembobot dan bias
Pemilihan nilai awal untuk pembobot merupakan faktor yang mempengaruhi kecepatan suatu net untuk mencapai kondisi output yang mendekati target (konvergensi). Nilai pembobot yang terlalu besar menyebabkan nilai output dari output unit jatuh pada daerah saturasi, sedangkan nilai pembobot yang terlalu kecil menyebabkan net menjadi sangat lambat untuk belajar.Pembobot bisa diinisialisasi secara random dengan nilai batasan antara –0.5 sampai 0.5, atau -1 sampai 1.
Adaptasi pembobot
Ada 2 macam jenis adaptasi pembobot,yaitu:
1. Adaptasi kumulatif (comulatif weight adjustment) Pembobot baru diadaptasi setelah semua pembobot masuk.
2. Adaptasi biasa (incremental updating)Pembobot diadaptasi pada setiap pola yang masuk.
Learning rate (α)
Parameter kecepatan belajar sangat mempengaruhi intensitas dalam proses belajar, efektivitas dan konvergensi dari pelatihan. Harga optimum dari α tergantung dari masalah yang dihadapi. Intinya, dipilih sedemikian rupa agar tercapai konvergensi yang optimal dalam proses pelatihan. Harga α yang relatif kecil menjamin penurunan gradien terlaksana dengan baik, namun hal ini berakibat lamanya jumlah iterasi. Harga batasan untuk α antara 0.001 sampai 10 untuk proses belajar.
Momentum ( µ )
Tujuan metode ini adalah untuk mempercepat konvergensi dari algoritma error backpropagation. Prinsip dari metode ini adalah menambahkan sebagian dari perubahan pembobot sebelumnya. Hal ini dapat dirumuskan dengan :
∆w(t) = αE(t) + µ∆w(t-1)…………………....................................(2.27)
dengan µ adalah harga konstanta momentum yang berupa bilangan positif antara 0.5 sampai dengan 0.9. Penggunaan momentum ini disarankan apabila konvergensi berlangsung terlalu lama.
Parameter-parameter yang telah dijelaskan di atas dapat membantu proses algoritma backpropagasi error agar lebih cepat mencapai keadaan konvergensi. Maka, JST Backpropagasi dilatih secara terpadu (supervised) dengan menggunakan algoritma GDR (Generalized Delta Rule) yang menyertakan parameter-parameter di atas dengan langkah sebagai berikut:
- Inisialisasi iterasi N=1.
- Inisialisasi matriks bobot wij dengan bilangan random, ataunilai yang didapat sebelumnya.
- Masukkan pola input dan hitung respon JST.
- Hitung error output, dengan rumus :
………………...…….....................................……(2.28)
dimana:
t = target output.
o = keluaran dari jaringan neural network.
5. Jika E ≤ Et (threshold) atau N ≥ Nmak stop training.
Hitung output neuron, dengan rumus:
δo=(t-o).f ’(x)……………………...................................................…(2.29)
dimana:
f‘(x) = turunan fungsi sigmoid.
X = input neuron, total output dari hidden layeryang terkoneksi.
6. Hitung keluaran hidden layer, dengan rumus:
hj=f ‘(x). ……........................(2.30)
dimana :
n = jumlah neuron pada output layer.
Wnj = bobot koneksi dari neuron j ke neuron n.
n = keluaran dari neuron output
7. Update matrik bobot wij dengan rumus:
∆wij(n+1) = α. j.oj + µ.∆wji(n)…….................…(2.31)
dimana:
α = laju pembelajaran (learning rate)
µ = parameter momentum
oj = output neuron i yang masuk ke neuron j
= keluaran dari neuron hidden.
8. Naikkan harga N, kembali ke langkah 3 hingga selesai jika langkah 5 terpenuhi.
Training dilakukan sampai error melampaui ambang toleransi atau jumlah training telah mencapai harga yang telah ditentukan. Setelah training selesai dilakukan dengan ambang toleransi telah dicapai atau dilampaui, matrik bobot wij dipakai untuk menentukan jalur yang paling ekonomis. Sedangkan untuk mengecek hasil dari training
tersebut digunakan data yang digunakan pada saat training terpadu, jika menghasilkan keluaran yang benar, maka pada proses training berhasil.
Fase Pemakaian
Pada fase pemakaian, pola yang hendak dikenali dimasukkan pada node layer masukan jaringan. Inisialisasi pembobot sambungan diambil dari nilai pembobot sambungan terakhir pada tahap belajar yang dianggap terbaik. Pada fase ini, jaringan (backpropagation neural network) diterapkan hanya dengan penggunaan fase umpan maju (feedforward) dari algoritma pelatihan. Prosedurnya sebagai berikut :
Step 0 Inisialisasi pembobot (dari pembobot terakhir saat pelatihan)
Step 1 Untuk tiap-tiap vektor input , kerjakan langkah 2-4
Step 2 For i = 1……n : set aktivasi dari input unit xi .
Step 3 For j = 1…..p :
z_inj = voj + ∑ xivij………………………....................................…(2.32)
z j = f(z_inj)…………………………...………………………..……(2.33)
mengirimkan sinyal ini ke semua unit-unit pada layer di atasnya, output (units).
Step 4 For k = 1……..m) :
y_in k = wok + zjwjk……...................................................…...(2.34)
menerapkan fungsi aktivasi menghitung sinyal outputnya
y k = f(y_ink)…………………………...........(2.35)
II.6.3.9 Permasalahan dalam Bacpropagation
Gambar 2.19 Kesalahan pada Local Minimum
Sumber : Freeman.1991 : 106
Pemasalahan yang mungkin terjadi dalam pelatihan bacpropagation dan beberapa model jaringan saraf tiruan lainnya adalah saat pelatihan, output terjebak dalam local minimum sehingga proses pelatihan tidak akan mencapai global minimum, seperti yang ditunjukkan pada gambar 2.16. diatas.
II.7 Metodologi Penelitian
Langkah-langkah yang dilakukan dalam pembuatan aplikasi ini adalah :
1. Studi literatur mengenai retina dan berbagai penyakit mata yang diakibatkan oleh Diabetes Melitus.
2. Penentuan kebutuhan dan perancangan aplikasi
§ Menentukan bahan dalam pembuatan aplikasi
Data :
Data yang digunakan adalah citra retina hasil foto Fundus yang diambil dari Rumah Sakit Dr. Saiful Anwar Malang dengan format .bmp.
§ Analisa Kebutuhan
Aplikasi ini dikembangkan dengan metode analisis berorientasi objek berupa UML dengan tool bahasa pemrograman Java.
Dari analisa kebutuhan awal yang telah dilakukan maka diteruskan dengan pembuatan rancangan awal aplikasi dalam bentuk Use Case Diagram aplikasi
Gambar 2.20 Contoh Use Case Diagram
- Perancangan Perangkat Lunak
Perancangan perangkat lunak dilakukan dengan orientasi terhadap objek menggunakan UML. Dari diagram use case dibuat diagram activity, yang menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang,
bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir.
3. Implementasi Rancangan
Implementasi rancangan dilakukan dengan menggunakan aplikasi Java dan dibagi menjadi dua tahap, yaitu:
- Pembuatan unit, untuk setiap kelas, objek, dan interface yang telah dirancang sebelumnya.
- Integrasi unit, yang dilakukan setelah setiap unit telah dibuat sebelumnya.
Tahap implementasi dilakukan berurutan atau secara perulangan dengan mengacu kepada analisis kebutuhan dan perancangan aplikasi.
Gambar 2.21 Contoh Activity Diagram
4. Pengujian dan Analisis Aplikasi
Pengujian aplikasi untuk mengetahui apakah aplikasi yang telah dibuat dapat berjalan sesuai dengan fungsi yang diinginkan sebelumnya. Pengujian aplikasi dilaksanakan dalam beberapa tahap, yakni :
- Pengujian Kotak Putih (White Box Testing), dengan menggunakan kelas dummy dari kelas-kelas yang digunakan, untuk mengetahui apakah algoritma yang digunakan telah bekerja dengan benar.
- Pengujian Kotak Hitam (Black Box Testing), untuk mengetahui apakah semua kebutuhan telah terpenuhi.
- Pengujian terhadap data, dimana pengujian akan dilaksanakan untuk 20 data, 10 data citra Retinopati Diabetes dan 10 data citra retina normal untuk mengetahui perbedaan pola diantara keduanya.
- Strategi pengujian meliputi Pengujian Unit, Pengujian Terintegrasi dan Pengujian Validasi.
II.8 Sistematika Penulisan
Dalam penulisan tugas akhir ini untuk mendapat hasil yang sesuai dengan sasaran yang ingin dicapai maka digunakan sistematika penulisan sebagai berikut :
- BAB I memuat tentang latar belakang, rumusan masalah, ruang lingkup, tujuan, dan sistematika penulisan.
- BAB II memuat tentang teori dasar dan teori penunjang mengenai pengolahan citra dan Jaringan Syaraf Tiruan Backpropagation.
- BAB III membahas tentang perancangan dan pembuatan aplikasi Jaringan Syaraf Tiruan untuk identifikasi pola citra retina dengan menggunakan Java.
- BAB IV membahas tentang simulasi dan pengujian identifikasi pola citra retina dengan metode Backpropagation.
- BAB V berisi tentang kesimpulan dan saran yang didapatkan selama proses perencanaan dari sistem serta rencana pengembangan dari proyek akhir dimasa yang akan datang.
III. Daftar Pustaka
[AST-06] Astutik, Wahyu Sri. 2006. Proyek Akhir Pengenalan Osteoporosis Melalui Pola Iris Mata. Surabaya : Jurusan Teknik Elektronika POLTEK ITS.
[BAS-05] Basuki, Achmad .2005. Pengolahan Citra Digital. Yogyakarta :Graha Ilmu.
[BOS-96] Bose, N.K., Liang, P. 1996. Neural Network Fundamentals with Graphs, Algorithms, and Applications. Singapore : McGraw Hill.
[CSU-06] http://www.cs.ui.ac.id/WebKuliah/citra/2005. tanggal akses : 21 Desember 2006.
[DEW-03] Dewi, Sri Kusuma. 2003. Artificial Intelligence (Teknik dan Aplikasinya). Yogyakarta : Graha Ilmu.
[DEP-07] http://www.depkes.go.id/index.php?option=news&task=viewarticle &sid=1183&Itemid=2. tanggal akses : 21 Maret 2007
[DJU-07] Djuwantoro, Dy-ri. Deteksi Dini Kebutaan akibat Diabetes Melitus di Puskesmas. www.kalbefarma.com/files/cdk/files/16Deteksi DiniKebutaan95.pdf/16DeteksiDiniKebutaan95.html. tanggal akses: 12 Maret 2007.
[FAU-97] Fausett, L. 1997. Artificial Neural Network, McGRAW-HILL INT.
[FIK-05] Fikri, Rijalul, Adam, Ipam Fuadina, Prakoso, Imam. 2005. Pemrograman Java. Yogyakarta : ANDI.
[FRE-91] Freeman, James A., Skapura, David M. 1991. Neural Networks Algorithms, Applications, and Programming Techniques.
[ILY-05] Ilyas, Sidarta. 2005. Kedaruratan Dalam Ilmu Penyakit Mata. Jakarta : Balai Penerbit Fakultas Kedokteran Universitas Indonesia.
[JAH-97] Jahne, Bernd.1997. Digital Image Processing Concepts, Algorithms, and Scientific Applications. Berlin, Germany : Springer.
[KRI-04] Kristanto, Andri. 2004. Jaringan Syaaf Tiruan: Konsep Dasar, Algoritma, dan Apilkasi. Yogyakarta :Gava Media.
[LEC-06] http://lecturer.eepis-its.edu/~riyanto/citra-bab8.pdf. tanggal akses : 21 Desember 2006.
[WIK-06] http://en.wikipedia.org/wiki/Sobel. tanggal akses : 21 Desember 2006.
Tidak ada komentar:
Posting Komentar