Jaringan saraf tiruan Self Organizing Maps (SOM) atau disebut juga dengan jaringan Kohonen telah banyak dimanfaatkan untuk pengenalan pola baik berupa citra, suara, dan lain-lain [1,2]. Jaringan SOM sering pula digunakan untuk ekstraksi ciri (feature) pada proses awal pengenalan pola. Ia mampu mereduksi dimensi input pola ke jumlah yang lebih sedikit sehingga pemrosesan komputer menjadi lebih hemat.
GAMBAR 1
STRUKTUR JARINGAN SARAF TIRUAN KOHONEN
Prinsip kerja dari algoritma SOM adalah pengurangan node-node tetangganya (neighbor), sehingga pada akhirnya hanya ada satu node output yang terpilih (winner node). Pertama kali yang dilakukan adalah melakukan inisialisasi bobot untuk tiap-tiap node dengan nilai random. Setelah diberikan bobot random, maka jaringan diberi input sejumlah dimensi node/neuron input (10x10). Setelah input diterima jaringan, maka jaringan mulai melakukan perhitungan jarak vektor yang didapatkan dengan menjumlah selisih/jarak antara vektor input dengan vektor bobot.
Pada metode ini hasil pengenalan pola/citra ada pada bobot-bobot yang terdapat pada node winner output. Dibandingkan dengan bobot-bobot yang lain, bobot pada winner output ini paling mendekati dengan pola yang dilatihkan pada jaringan. Pada proses pelatihan bobot pada winner output beserta dengan tetangganya selalu diupdate, dilakukan iterasi terus menerus sampai mencapai error yang diinginkan. Jikalau belum mencapai error tertentu maka proses kembali pada penginputan citra untuk dilatih kembali.
Salah satu metode untuk mencegah terjadinya non-konvergen adalah menginisialisasi bobot awal dengan pola-pola yang sangat mirip dengan pola-pola yang akan dilatihkan (input pattern). Dengan cara ini maka jaringan akan dapat belajar secara perlahan mengikuti perubahan input yang ada, yang pada akhirnya didapatkan bentuk pemetaan yang sesuai dengan yang diperlukan oleh jaringan untuk pengenalan pola.
Pada algoritma Kohonen didapatkan node output yang saling berhubungan antara satu node dengan node yang lain, dari hubungan ini maka node yang satu akan mempengaruhi node-node yang lain. Sebelum diberikan input maka daerah keputusan memiliki area yang sangat lebar. Setelah melewati tahapan pelatihan maka luas area dari vektor keputusan akan semakin kecil.
IMPLEMENTASI PERANGKAT LUNAK
Jaringan Kohonen yang digunakan di sini diimplementasi kedalam bentuk perangkat lunak yang dibuat dengan Borland C++. Perangkat lunak yang dibuat terdiri dari tiga modul, yaitu : inisialisasi, modul pelatihan jaringan Kohonen dan modul pengenalan citra.
- Modul Inisialisasi
- Modul Pelatihan Jaringan Kohonen
- Modul Pengenalan Citra
GAMBAR 2
ALUR MODUL PELATIHAN JARINGAN KOHONEN
GAMBAR 3
CITRA INPUT JARINGAN KOHONEN
Jaringan dilatih untuk mengenali pola sebanyak lima belas macam yang meliputi tiga bentuk (kubus, tabung, dan kerucut) dengan masing-masing memiliki lima posisi berbeda (gambar 2). Jaringan dilatih terus menerus sampai error mencapai 0.000001. Setelah proses pelatihan kemudian jaringan dicoba untuk mengenali citra dengan kehadiran variasi noise dan deformasi citra (pergeseran, perbesaran dan pengecilan citra).
HASIL-HASIL UJI
Pengujian jaringan dilakukan dengan diawali pencarian struktur dan parameter jaringan. Setelah didapat struktur dan parameter yang optimal, jaringan kemudian dicoba untuk mengenali citra dengan kehadiran variasi noise dan deformasi citra (pergeseran, perbesaran dan pengecilan citra).
Pencarian Struktur Jaringan
Pada awalnya dilakukan pencarian struktur dan parameter jaringan Kohonen yang optimal untuk kebutuhan pengenalan citra ini. Dengan didapatnya struktur yang optimal, maka diharapkan jaringan akan cepat belajar dan dapat mengenali citra dengan error yang minimum. Dalam pengujian struktur jaringan, dilakukan pencarian beberapa parameter yaitu: jumlah Kohonen map, nilai neighborhood, dan alpha/learning rate.
- Parameter Jaringan Kohonen
Pada pencarian parameter jaringan Kohonen ini dilakukan tiga hal yaitu pencarian jumlah Kohonen maps, nilai neighborhood, dan alpha/learning rate dengan menggunakan input yang tetap 10X10 pixel. Untuk mengetahui benar dan salahnya suatu pengujian maka dengan bantuan jaringan Backpropagation dapat ditentukan kebenaran atau kesalahan pengujian melalui identifikasi output yaitu hasil gambar output pengujian Kohonen merupakan input Backpropagation dan akhirnya Backpropagation akan menyebutkan gambar output dengan penamaan : kerucut, kubus, tabung atau benda asing.
- Jumlah Kohonen Maps
Pada pencarian ini ditetapkan nilai neighborhood dan alpha=0.2. Hasil yang diperoleh yaitu bahwa pada jumlah Kohonen map mempunyai iterasi lebih sedikit untuk mencapai error 0.000001 yaitu 2425 epoch. Didapat bahwa tidak terdapat error kesalahan pengujian.
- Jumlah neighborhood
Untuk pencarian ini ditetapkan jumlah Kohonen maps dan alpha=0.2. Jumlah neighborhood optimal yang didapat adalah 10 yang mana mempunyai iterasi paling sedikit yaitu 3435 epoch untuk mencapai error 0.000001
- Harga Alpha/Learning Rate
Pencarian parameter alpha dilakukan dengan penetapan jumlah Kohonen map, neighborhood. Hasil alpha optimum adalah 0.9 yang mana memiliki iterasi tercepat yaitu 735 epoch .
Selanjutnya dilakukan pengenalan citra dengan diberi deformasi bentuk berupa pergeseran dan pengecilan. Disini ada 8 type pergeseran, yaitu empat type pertama (type 1-4) berturut-turut digeser ke atas, kanan, bawah, kiri sejauh satu pixel dan empat type berikutnya (type 5-8) adalah input citra digeser ke kiri-atas, kanan-atas, kanan-bawah, kiri-bawah sejauh satu pixel.
Hasil uji pengenalan dengan input citra diperkecil sekaligus digeser. Di sini terdapat 4 type pengecilan, yaitu pengecilan citra 50 % dibarengi dengan pergeseran ke empat arah yaitu kiri-atas, kanan-atas, kiri-bawah, kanan-bawah sejauh satu pixel. Hasil yang diperoleh ternyata jaringan lebih bisa mengenali pola daripada hanya dengan pergeseran citra.
Filosofi jaringan Kohonen terinspirasi dari struktur otak manusia yang mana memiliki area-area khusus untuk menyimpan data tertentu, misalkan daerah untuk saraf penglihatan, pendengaran, dll. Maka untuk jaringan saraf tiruan Kohonen juga terdapat pembagian area (maps) sesuai dengan input pelatihan. Setelah jaringan dilatih sampai mencapai error 0.000001, maka didapatkan winner index berbeda untuk setiap bentuk input citra.
KESIMPULAN
Dari percobaan pengenalan citra objek sederhana yang telah dilakukan didapat struktur/parameter jaringan Kohonen yang optimal adalah dengan jumlah Kohonen map, nilai neighborhood dan alpha/learning rate berturut-turut adalah 90, 10 dan 0,9. Jaringan saraf tiruan ini mampu mengenali citra bernoise, namun kurang dapat menangani pergeseran citra. Pada input citra dengan pengecilan sekaligus pergeseran, justru jaringan dapat lebih mengenali.