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-0)^2)) = 1
kelas 1 = sqrt(((0-1)^2)+((1-0)^2)+((1-1)^2)+((0-1)^2)) = 1.7320508075689
kelas 1 = sqrt(((0-1)^2)+((1-0)^2)+((1-1)^2)+((0-1)^2)) = 1.7320508075689
- menentukan kelas pemenang :
output = min(kelas 0, kelas 1) = kelas 0
- update bobot :
karena target 0 sama dengan output 0, maka update bobot :
W11 = 1 + (0.05*(0 - 1)) = 0.95
W12 = 1 + (0.05*(1 - 1)) = 1
W13 = 1 + (0.05*(1 - 1)) = 1
W14 = 0 + (0.05*(0 - 0)) = 0
W12 = 1 + (0.05*(1 - 1)) = 1
W13 = 1 + (0.05*(1 - 1)) = 1
W14 = 0 + (0.05*(0 - 0)) = 0
maka diperoleh bobot baru = {{ 0.95, 1, 1, 0},{ 1, 0, 1, 1}} untuk digunakan pada perhitungan data selanjutnya
2. Data ke 2 { 0, 0, 1, 1} dengan target 1, bobot = {{ 0.95, 1, 1, 0},{ 1, 0, 1, 1}}
- menghitung bobot untuk masing masing output :
maka diperoleh bobot baru = {{ 0.95, 1, 1, 0},{ 0.95, 0, 1, 1}} untuk digunakan pada perhitungan data selanjutnya
3. Data ke 3 { 1, 1, 1, 1} dengan target 0, bobot = {{ 0.95, 1, 1, 0},{ 0.95, 0, 1, 1}}
kelas 0 = sqrt(((0-0.95)^2)+((0-1)^2)+((1-1)^2)+((1-0)^2)) = 1.7036725037401
kelas 1 = sqrt(((0-1)^2)+((0-0)^2)+((1-1)^2)+((1-1)^2)) = 1
kelas 1 = sqrt(((0-1)^2)+((0-0)^2)+((1-1)^2)+((1-1)^2)) = 1
output = min(kelas 0, kelas 1) = kelas 1
- update bobot :
karena target 1 sama dengan output 1, maka update bobot :
W21 = 1 + (0.05*(0 - 1)) = 0.95
W22 = 0 + (0.05*(0 - 0)) = 0
W22 = 0 + (0.05*(0 - 0)) = 0
W23 = 1 + (0.05*(1 - 1)) = 1
W24 = 1 + (0.05*(1 - 1)) = 1
W24 = 1 + (0.05*(1 - 1)) = 1
maka diperoleh bobot baru = {{ 0.95, 1, 1, 0},{ 0.95, 0, 1, 1}} untuk digunakan pada perhitungan data selanjutnya
3. Data ke 3 { 1, 1, 1, 1} dengan target 0, bobot = {{ 0.95, 1, 1, 0},{ 0.95, 0, 1, 1}}
- menghitung bobot untuk masing masing output :
kelas 0 = sqrt(((1-0.95)^2)+((1-1)^2)+((1-1)^2)+((1-0)^2)) = 1.001249219725
kelas 1 = sqrt(((1-0.95)^2)+((1-0)^2)+((1-1)^2)+((1-1)^2)) = 1.001249219725
kelas 1 = sqrt(((1-0.95)^2)+((1-0)^2)+((1-1)^2)+((1-1)^2)) = 1.001249219725
- menentukan kelas pemenang :
output = min(kelas 0, kelas 1) = kelas 0,
- karena output antara kedua kelas sama besar, bisa dipilih salah satu sebagai output
- update bobot :
karena target 0 sama dengan output 0, maka update bobot :
W11 = 0.95 + (0.05*(1 - 0.95)) = 0.9525
W12 = 1 + (0.05*(1 - 1)) = 1
W13 = 1 + (0.05*(1 - 1)) = 1
W14 = 0 + (0.05*(1 - 0)) = 0.05
W14 = 0 + (0.05*(1 - 0)) = 0.05
maka diperoleh bobot baru = {{ 0.9525, 1, 1, 0.05},{ 0.95, 0, 1, 1}} untuk digunakan pada perhitungan data selanjutnya
4. Data ke 4 { 1, 0, 0, 1} dengan target 1, bobot = {{ 0.9525, 1, 1, 0.05},{ 0.95, 0, 1, 1}}
- menghitung bobot untuk masing masing output :
kelas 0 = sqrt(((1-0.9525)^2)+((0-1)^2)+((0-1)^2)+((1-0.05)^2)) = 1.7043345475581
kelas 1 = sqrt(((1-0.95)^2)+((0-0)^2)+((0-1)^2)+((1-1)^2)) = 1.001249219725
kelas 1 = sqrt(((1-0.95)^2)+((0-0)^2)+((0-1)^2)+((1-1)^2)) = 1.001249219725
- menentukan kelas pemenang :
output = min(kelas 0, kelas 1) = kelas 1
- update bobot :
karena target 1 sama dengan output 1, maka update bobot :
W21 = 0.95 + (0.05*(1 - 0.95)) = 0.9525
W22 = 0 + (0.05*(0 - 0)) = 0
W22 = 0 + (0.05*(0 - 0)) = 0
W23 = 1 + (0.05*(0 - 1)) = 0.95
W24 = 1 + (0.05*(1 - 1)) = 1
maka diperoleh bobot baru = {{ 0.9525, 1, 1, 0.05},{ 0.9525, 0, 0.95, 1}} untuk digunakan pada perhitungan data selanjutnyaW24 = 1 + (0.05*(1 - 1)) = 1
- setelah semua data selesai dihitung, update learning rate :
learning rate baru = fungsi pembelajaran * learning rate;
= 0.1 * 0.05 = 0.005
karena dalam satu iterasi semua data sudah diklasifikasikan dengan benar, maka iterasi pelatihan bisa dihentikan dan memakai bobot terakhir untuk digunakan dalam proses klasifikasi / prediksi. Jika dalam satu iterasi ada yang outputnya belum tepat, maka dilanjutkan ke iterasi berikutnya sampai dengan data diklasifikasikan dengan benar atau telah mencapai maksimal iterasi yang telah ditentukan.
Klasifikasi / Prediksi
Setelah didapat bobot hasil pelatihan yaitu {{ 0.9525, 1, 1, 0.05},{ 0.9525, 0, 0.95, 1}}, maka kita coba melakukan uji coba klasifikasi terhadap dua data yaitu { 1, 1, 1, 0} dan { 1, 0, 1, 1}.1. Data ke 1 { 1, 1, 1, 0}
kelas 0 = sqrt(((1-0.9525)^2)+((1-1)^2)+((1-1)^2)+((0-0.05)^2)) = 0.068965571120669kelas 1 = sqrt(((1-0.9525)^2)+((1-0)^2)+((1-0.95)^2)+((0-1)^2)) = 1.4158941521173
output = kelas 0
2. Data ke 2 { 1, 0, 1, 1}
kelas 0 = sqrt(((1-0.9525)^2)+((0-1)^2)+((1-1)^2)+((1-0.05)^2)) = 1.3801290700511kelas 1 = sqrt(((1-0.9525)^2)+((0-0)^2)+((1-0.95)^2)+((1-1)^2)) = 0.068965571120669
output = kelas 1
Sekian tulisan saya kali ini, semoga bermanfaat.
Good
BalasHapusterima kasih gan sudah berkenan membaca
BalasHapusga paham { 1, 1, 1, 0} dan { 1, 0, 1, 1} dengan learning rate 0,05 dengan fungsi pembelajaran = 0,1.
BalasHapusdapat dari mana?
learning rate, fungsi pembelajaran, bobot awal ditentukan sendiri mas di awal, yg kemudian dalam proses pembelajaran akan di update sesuai denga hasil perhitungan
Hapusbobot awal itu bisa mengunakan data latih ?
Hapusbisa gan
Hapusmas mau nanya... jika data latih dalam bentuk penjualan barang, bobot awal yg kita tentuin itu bisa tidak diambil dari nilai max dan min dari data penjualan keseluruhan dalam satu tahun? saya mau memperdiksi jumlah penjualan di tahun depannya... terima kasih
BalasHapusbisa mas, bobot awal kan random bisa dr nilai apa saja, nanti disesuaikan di dalam proses pelatihan
Hapusjika begitu mas... jika saya menggunakan 2 kalas , kelas 0 (max) kelas 1 (min).. ntar kan pasti hasilnya selalu yg kelas 1 yang akan diperbaharui bobotnya... apakah itu tidak masalah mas? terima kasih
Hapuscoba dulu gan, kalau nanti yg nilai 0 tidak diperbarui mungkin lebih baik bobot awal didefinisikan sendiri secara acak
Hapusbaik gan.. terima kasih banyak atas bantuanya
HapusMas kalau data dari gambar caranya gmna ya mas??
BalasHapuskalau dari gambar, gambarnya harus dijadikan angka dulu mbak, jadi diambil nilai dari fitur-fitur tertentu menggunakan image processing. mungkin paper saya berikut bisa membantu mengenai alur ekstraksi fitur gambar
Hapushttps://caridokumen.com/download/identifikasi-jenis-mangga-berdasarkan-warna-dan-bentuk-daun-menggunakan-metode-ann-voted-perceptron-_5a45b6dbb7d7bc7b7ad385ca_pdf
Mas, cara menentukan
BalasHapus{ 1, 1, 1, 0} dan { 1, 0, 1, 1} dengan learning rate 0,05 dengan fungsi pembelajaran = 0,1.
ini dapat dari mana? apakah itu acak atau gimana?
terima kasih
itu acak mas
Hapusitu kan contohnya ada 2 kelas berarti memakai 2 bobot kalau misal ada 3 kelas maka harus memakai 3 bobot begitukah?
BalasHapusiya seperti itu
Hapusmas mau nanya, kan saya datanya dari review film nah si data itu udah ngelewatin ke berbagai proses yg akhirnya masuk ke perhitungan TF-IDF, nah hasil akhir yang dari TF-IDF itu kalo mau di masukin ke LVQ nya yang mananya mas?
BalasHapussama kalo iterasinya di batasin engga kalo di LVQ mas?
TF-IDF itu apa ya ? belum pernah baca soalnya, kalao terkait iterasi memang ada 2 kondisi untuk berhenti : 1. kalau outputnya sudah sesuai atau batas maksimal iterasinya sudah tercapai, jd tetap diberi batasan maksimal iterasi supaya kalau prosesnya gak ketemu bobot terbaiknya bisa berhenti di iterasi tertentu, biar komputernya gak hang
Hapusbobot dikatakan baik itu bagaimana ya terimakasih
Hapusgan mau bertanya jika bobot tidak sama dengan target maka bobot awal tidak dirubah?, terumakasih
BalasHapusmau nanya lagi , untuk iterasi nya kapan ya berhenti syarat untuk berhentingnya apa ya, terus untuk klasifikasinya berarti menggunakan bobot yang terakhir ya mas ?
BalasHapusiterasi nya akan berhenti jika nilai learning rate nya kecil (<) dari minimum error, atau epoch nya besar (>) dari maxEpoch
Hapusdan untuk klasifikasi nya itu menggunakan update bobot dari hasil Epoch nya yang terakhir
semoga bisa membantu :)
mas kalau data dari suara cocoknya pake apa ya mas?
BalasHapusmas ingin nanya untuk target pada tabel itu, kita nentuin sendiri atau gimana ya ?
BalasHapusalhamdulillah. terima kasih atas penjelasannya mas. sangat mudah dipahami
BalasHapusmas mau nanya x1, x2,x3,.., xn dan target tuh apa yah? maksudnya yang mana data training dan yang mana data baru yang mau dibandingin.
BalasHapusx1,x2...xn itu adalah data yang akan di latih(testing), Target itu merupakan si x1,x2, ...xn itu masuk ke kelas yang mana
Hapussedangkan data bobot(training) itu data yang akan di jadikan data banding
gan mau tanya, LVQ contoh di atas fungsi aktivasinya yang mana ya ?
BalasHapusmas saya mau nanya tentang perhitungan manual LVQ untuk project saya, apa kah ada email atau wa yang bisa saya hubungi ? mohon bantuan nya mas :)
BalasHapuskelinci99
BalasHapusTogel Online Terpercaya Dan Games Laiinnya Live Casino.
HOT PROMO NEW MEMBER FREECHIPS 5ribu !!
NEXT DEPOSIT 50ribu FREECHIPS 5RB !!
Ada Bagi2 Freechips Untuk New Member + Bonus Depositnya Loh ,
Yuk Daftarkan Sekarang Mumpung Ada Freechips Setiap Harinya
segera daftar dan bermain ya selain Togel ad juga Games Online Betting lain nya ,
yang bisa di mainkan dgn 1 userid saja .
yukk daftar di www.kelinci99.casino
mas mau bertanya, cara menentukan input vector (0,1,1,0) itu gimana ya?
BalasHapusHalo kak untuk contoh GLVQ ada ga kak? Terimakasih
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusmau nanya dong mas .... kalau datanya punya 4 kelas berarti bobot awalnya ada brapa ya ? tengkyu
BalasHapusM88 Casino: New Member Bonus up to €100 + 300 FS
BalasHapusM88 Casino offers its players an attractive welcome bonus m88 that will ensure 온카지노 you have link 12bet a safe gaming experience. Claim your bonus today!
Ada contoh program nya mas?
BalasHapuswah ini artikel udah lama banget, kodingnya gak tau kemana hehhee... next mungkin bisa aku buatkan tutorial videonya gan... next bsia di cek di channel youtube saya
Hapushttps://www.youtube.com/channel/UCMddKgnZ9AHIsE2MFia75VA