Langsung ke konten utama

Learning Vector Quantization (LVQ)

Learning Vector Quantization (LVQ) adalah sebuah metode klasifikasi dimana setiap unit output mempresentasikan sebuah kelas. LVQ digunakan untuk pengelompokkan dimana jumlah kelompok sudah ditentukan arsitekturnya (target/kelas sudah ditentukan).

LVQ salah satu jaringan syaraf tiruan yang merupakan algoritma pembelajaran kompetitif terawasi versi dari algoritma Kohonen Self-Organizing Map (SOM). Tujuan dari algoritma ini adalah untuk mendekati distribusi kelas vektor  untuk meminimalkan kesalahan dalam pengklasifikasian.

Algoritma diusulkan oleh Kohonen pada tahun 1986 sebagai perbaikan dari Vector Quantization. Model pembelajaran LVQ dilatih secara signifikan agar lebih cepat dibandingkan algoritma lain seperti Back Propagation Neural Network. Hal ini dapat meringkas atau mengurangi dataset besar untuk sejumlah kecil vektor.

Arsitektur LVQ seperti pada gambar berikut:






Adapun Langkah langkah LVQ sebagai berikut:
  • Tetapkan: bobot(W), maksimum epoch (MaxEpoch), error minimum yang diharapkan (Eps), Learning rate (α).
  • Masukan:
  1. Input : x(m,n);
  2. Target : T(1,n)
  • Tetapkan kondisi awal:
  1. Epoch = 0;
  2. Eps = 1;
  • Tetapkan jika:epoch < MaxEpoch atau ( e < eps)
  1. Epoch = Epoch + 1
  2. Kerjakan untuk i = 1 sampai n
  • Tentukan J sedemikian hingga || x – wj || minimum (sebut sebagai Ci)
  • Perbaiki Wj dengan ketentuan:
           - Jika T = Cj maka: wj(baru) = wj(lama) + α (x-wj(lama))
           - Jika T ≠ Cj maka: wj(baru) = wj(lama) - α (x-wj(lama))
  • Kurangi nilai α
Sekian, saya lanjutkan dengan contoh perhitungan dilain kesempatan. Thanks.

Komentar

Postingan populer dari blog ini

Contoh Perhitungan Algoritma Perceptron

      Melanjutkan tulisan saya sebelumnya tentang algoritma perceptron,kali ini saya akan menulis tentang conto perhitungan manual algoritma perceptron. Untuk contoh kasusnya saya menggunakan data logika AND. Cekidot.... Algoritma      Data yang kita gunakan sebagai contoh adalah data logika AND sebagai berikut: x1 x2 target 0 0 0 0 1 0 1 0 0 1 1 1       tentukan bobot awal secara acak, saya pakai contoh w1 = 0,w2 =0, learning rate = 1, bias = 0,maksimal epoh = 10. Disini saya memakai fungsi aktivasi undak biner. Epoh ke 1 Data ke satu x = {0,0}, bobot w = {0,0},b=0,target = 0 y_in = (x1*w1)+(x2*w2)+b = (0*0)+(0*0)+0 = 0 y = sign(0) = 1 karena y != target maka hitung error dan update bobot  error = target - y = 0 - 1 = -1 w1_baru = w1_lama +(learning_rate*error*x1)                = 0 ...

Contoh Perhitungan Algoritma Learning Vector Quantization

Melanjutkan tulisan saya tentang algoritma Learning Vector Quantization yang lalu, kali ini saya akan melanjutkan dengan contoh perhitungan manual. Berikut ini contoh data yang akan kita hitung. No X1 X2 X3 X4 target 1 0 1 1 0 0 2 0 0 1 1 1 3 1 1 1 1 0 4 1 0 0 1 1 pada contoh di atas, saya menggunakan 4 data sebagai data training beserta target yang bertujuan untuk mendapatkan bobot yang akan digunakan pada proses klasifikasi. Bobot awal adalah { 1, 1, 1, 0} dan { 1, 0, 1, 1} dengan learning rate 0,05 dengan fungsi pembelajaran = 0,1. Pelatihan Iterasi ke 1 1. Data ke 1 { 0, 1, 1, 0} dengan target 0, bobot = {{ 1, 1, 1, 0},{ 1, 0, 1, 1}}      - menghitung bobot untuk masing masing output :          kelas 0 = sqrt(((0-1)^2)+((1-1)^2)+((1-1)^2)+((0-...

SOLID - Prinsip Desain Arsitektur Di Dalam Pemrograman Object Oriented (Dependency Inversion Principal)

Akhirnya kita sampai di bagian paling akhir dari seri tulisan SOLID Principal yaitu untuk huruf D.  Ketika kita bekerja menggunakan bahasa pemrograman berorientasi object, kita pasti akan menggunakan Class. Class tersebut pada akhirnya akan saling terkait /  ketergantungan satu dan yang lain untuk melakukan tugas tertentu.  Ketergantungan ini disebut dengan istilah  Dependency.  Dependency ini bisa terjadi antar Class di dalam satu  Code Base  yang sama, atau bahkan antar  Library.  Controhnya seperti potongan kode berikut. <?php namespace App\DependencyInversion; /** * Description of Engine * * @author programmer */ class Engine { private KeihinCarburator $carburator ; private NGKSpark $spark ; public function __construct (KeihinCarburator $carburator , NGKSpark $spark ) { $this -> carburator = $carburator ; $this -> spark = $spark ; } public funct...