Anda di halaman 1dari 6

LVQ (learning vector quantization)

Komputasi nonlinear - kecerdasan buatan Oleh: mulkan.ms@gmail.com http://softscients.blogspot.com Bidang kecerdasan buatan telah mengenalkan algoritma LVQ yang merupakan algoritma untuk melakukan teknik klasifikasi yang terbimbing (untuk versi tidak terbimbing yaitu kohonen). Lain kata LVQ melakukan klasifikasi input secara berkelompok kedalam kelas yang sudah didefinisikan melalui jaringan yang telah dilatih yaitu mendapatkan n input dan mengelompokan kedalam m output. Contoh kasus dari matematika nonlinear yaitu algoritma Boolean OR Param a Param b Result 1 1 1 0 0 0 0 1 1 1 0 1 Penulis menggunakan java sebagai toolsnya (bila anda ingin mencoba menggunakan nya silahkan download JImage library di http://softscients.blogspot.com versi JImageV.11.03.13) atau kirim email ke mulkan.ms@gmail.com. Berikut potongan kode nya.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 /* demo kasus LVQ untuk logica booelan */ LVQ lvq = new LVQ(); //instance class LVQ //sampel double [][]sampel =new double[][]{ {1,1}, {0,0}, {0,1}, {1,0} }; int [][]target=new int [][]{ {2}, //artinya true {1}, //artinya false {2}, {2} }; double [][]bobot=new double[][]{ {Math.random(),Math.random()}, {Math.random(),Math.random()} }; lvq.setSampel(sampel); lvq.setTarget(target); lvq.setBobot(bobot); lvq.setAlfa(0.1); //nilai learning rate

47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

lvq.setDecAlfa(0.001);// decreasing rate lvq.setMakEpoch(2000); //maksimal epoch //lvq.setMomentum(true); System.out.println("sample awal"); util.Print.print(lvq.getSampel()); System.out.println("bobot awal"); util.Print.print(lvq.getBobot()); System.out.println("target awal"); util.Print.print(lvq.getTarget()); System.out.println("======== training ==========="); lvq.processTrain(); System.out.println("======== testing ============="); lvq.processTest(lvq.getSampel(), lvq.getBobot()); System.out.println("bobot akhir"); util.Print.print(lvq.getBobot()); System.out.println("target akhir"); util.Print.print(lvq.getHasil()); System.out.println("epoch terakhir nya"); System.out.println(lvq.getEpoch());

Hasilnya sample awal 1.0 1.0 0.0 0.0 0.0 1.0 1.0 0.0 bobot awal 0.4225259882188299 0.1665614588212595 0.4164443699236845 0.5338319989262157 target awal 2 1 2 2 ======== training =========== ======== testing ============= bobot akhir 0.2151177210532752 0.16324688579071645 0.4361291511069294 0.6941471744954901 target akhir 2 1 2 2

epoch terakhir nya 2

Terlihat bahwa target awal == target akhir dicapai dalam 2 epoch saja!

Kasus lain Tidak hanya kasus diatas saja yang bisa ditangani oleh LVQ, berikut adalah salah satu kasus yakni menggunakan 4 paramater sekaligus!

*note: Tentunya catatan kecil diatas belum membahas faktor -faktor apa sajakah yang mempercepat dan ketepatan hasil dari proses training? Bila anda masih tertarik, silahkan untuk diskusi ke mulkan.ms@gmail.com atau http://softscients.blogspot.com. Selain itu Source code diatas telah ditranslate kedalam bahasa C#, C/C++, dan Matlab sehingga memudahkan bagi u ser bila ingin mengembangkan kedalam bahasa yang dikuasai tersebut.