Centroid Neural Network untuk Pengelompokan dengan Numpy – Menuju AI — Teknologi, Sains, dan Teknik Terbaik

Pengarang: LA Tran

Pembelajaran Mendalam

Mari kita tingkatkan potensi yang kurang diperhatikan

Foto oleh Alex Padurariu di Unsplash

Centroid neural network (CentNN) adalah algoritma pengelompokan yang efisien dan stabil yang telah berhasil diterapkan pada banyak masalah. CentNN tidak memerlukan koefisien pembelajaran yang telah ditentukan sebelumnya tetapi tetap menghasilkan hasil clustering yang kompetitif dibandingkan dengan K-means Clustering atau Self-Organizing Map (SOM) yang hasilnya sangat bergantung pada parameter awal. Bagi mereka yang tidak tahu atau tidak memahami algoritma hebat ini, Anda dipersilakan untuk membaca penjelasan saya dengan contoh visual di sini. Dan sekarang, mari kita perjelas CentNN dengan beberapa baris kode.

Saya ingin memilih masalah pengelompokan data 2-d sebagai contoh penjelasan dalam posting ini karena sangat mudah untuk dipahami dan dilihat dan karena ini adalah alat yang efisien untuk menjelaskan algoritme pengelompokan.

Pertama, mari impor beberapa pustaka yang diperlukan dan buat kumpulan data dengan 10 pusat.

https://medium.com/media/cb3714e80a38dffab04711b0dd13c195/href

Gambar oleh Penulis

Beberapa subrutin penting yang disiapkan untuk implementasi, semuanya tersedia di github saya:

https://medium.com/media/bfae6ded564ff9c9506cc2987d3fec9d/href

Sekali lagi, saya berasumsi bahwa kalian semua sudah memahami algoritma ini. Jika tidak, saya sangat menyarankan Anda membaca teorinya sebelum melanjutkan. Anda dapat memeriksa penjelasan saya untuk algoritma ini di sini.

Sekarang, mari kita mulai melatih algoritme:

Langkah 1:

Cari centroid c untuk semua data, kemudian bagi c menjadi 2 bobot w1, w2 dengan kecil.

https://medium.com/media/babe843ed85b45542a012f99a51ea8d5/href

Berikut adalah 2 bobotnya:

[0.43965411 2.88785116]
[0.33965411 2.78785116]

Langkah 2:

Temukan neuron pemenang untuk setiap x dalam X.

https://medium.com/media/79f8609a93a18a9dc5177bebfedd7736/href

Hasil setelah Epoch 0:

Gambar oleh Penulis

Langkah 3:

Dari epoch 1 sampai akhir, terus mencari winner neuron untuk setiap data tunggal dan update winner neurons dan loser neurons hingga mencapai jumlah cluster yang diinginkan.

https://medium.com/media/816adffe4b15c2c89df45dfc07bf1b09/href

Algoritme berhenti setelah 81 epoch untuk contoh dataset:

GIF oleh Penulis

Hasil pengelompokan akhir:

Gambar oleh Penulis

Centroid akhir:

[-9.66726188 6.62956078]
[-8.57296482 -8.31582399]
[ 9.30888233 -2.32652503]
[5.82090263 0.57715316]
[5.55404696 7.36294438]
[-1.32316256 7.86651609]
[-1.63557118 2.87845278]
[2.08983389 0.85729017]
[1.47692106 8.56662456]
[0.90838486 4.30719839]

Dalam posting ini, saya telah memperkenalkan kepada Anda semua tutorial tentang implementasi algoritma Centroid Neural Network (CentNN) menggunakan Numpy. Kalian dapat menemukan implementasi CentNN saya di sini. Jika Anda merasa itu membantu, jangan ragu untuk memberikannya bintang. Anda dipersilakan untuk mengunjungi halaman Facebook saya yang untuk berbagi hal-hal mengenai Machine Learning: Diving Into Machine Learning.

Postingan berikutnya dalam rangkaian CentNN saya adalah kombinasi dari kuantisasi vektor (block quantization) dan CentNN dalam aplikasi kompresi gambar.

Itu saja untuk hari ini. Terima kasih telah meluangkan waktu!

Referensi

[1] Centroid Neural Network: Algoritma Clustering yang Efisien dan Stabil

[2] Implementasi CentNN saya dengan Numpy

Centroid Neural Network for Clustering with Numpy awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI