Misalkan saya memiliki satu set sinyal domain waktu dengan sama sekali tidak ada label . Saya ingin mengelompokkannya dalam 2 atau 3 kelas. Autoencoder adalah jaringan tanpa pengawasan yang belajar mengompresi input. Jadi diberi input , bobot dan , bias dan , dan output , kita dapat menemukan hubungan berikut:
Jadi akan menjadi bentuk terkompresi dari , dan rekonstruksi yang terakhir. Sejauh ini bagus.
Apa yang saya tidak mengerti adalah bagaimana ini bisa digunakan untuk pengelompokan (jika ada cara untuk melakukannya sama sekali). Sebagai contoh, pada gambar pertama dari makalah ini , ada diagram blok Saya tidak yakin saya mengerti. Ia menggunakan sebagai input ke jaringan umpan-maju, tetapi tidak disebutkan bagaimana jaringan itu dilatih. Saya tidak tahu apakah ada sesuatu yang saya abaikan atau apakah kertasnya tidak lengkap. Juga, tutorial ini pada bagian akhir menunjukkan bobot yang dipelajari oleh autoencoder, dan mereka tampaknya adalah kernel yang CNN akan belajar untuk mengklasifikasikan gambar. Jadi ... Saya kira bobot autoencoder dapat digunakan entah bagaimana di jaringan umpan-maju untuk klasifikasi, tapi saya tidak yakin bagaimana caranya.
Keraguan saya adalah:
- Jika adalah sinyal domain waktu dengan panjang (yaitu ), dapat hanya menjadi vektor juga? Dengan kata lain, apakah masuk akal jika menjadi matriks dengan salah satu dimensinya lebih besar dari ? Saya percaya tidak akan, tetapi saya hanya ingin memeriksa.
- Manakah dari jumlah ini yang akan menjadi input ke pengklasifikasi? Sebagai contoh, jika saya ingin menggunakan MLP klasik yang memiliki unit output sebanyak kelas yang saya ingin mengklasifikasikan sinyal, apa yang harus saya masukkan pada input dari jaringan yang sepenuhnya terhubung ini ( , , ada hal lain)?
- Bagaimana saya bisa menggunakan bobot dan bias yang dipelajari dalam MLP ini? Ingatlah bahwa kami mengasumsikan sama sekali tidak ada label yang tersedia, jadi tidak mungkin untuk melatih jaringan. Saya pikir dan harus berguna entah bagaimana dalam jaringan yang sepenuhnya terhubung, tetapi saya tidak melihat bagaimana menggunakannya.
Pengamatan: perhatikan bahwa saya menggunakan MLP sebagai contoh karena ini adalah arsitektur paling dasar, tetapi pertanyaannya berlaku untuk jaringan saraf lain yang dapat digunakan untuk mengklasifikasikan sinyal domain waktu.
Sebelum bertanya 'bagaimana autoencoder dapat digunakan untuk mengelompokkan data?' pertama-tama kita harus bertanya 'Bisakah autoencoder mengelompokkan data?'
Karena autoencoder belajar membuat ulang titik data dari ruang laten. Jika kita mengasumsikan bahwa autoencoder memetakan ruang laten secara “terus menerus”, titik data yang dari cluster yang sama harus dipetakan bersama. Karenanya dengan cara tertentu, pembuat enkode akan mengelompokkan titik yang sama "bersama", mengelompokkannya "bersama". Kami telah melihat dalam literatur bahwa autoencoder gagal untuk memegang asumsi kesinambungan dalam ruang laten.
Namun demi keuntungan kami, autoencoder variasional bekerja persis seperti ini. Encoder variabel mempelajari pemetaan ruang laten dengan dua sifat utama: kontinuitas, kelengkapan1.
Oleh karena itu menggunakan pengkodean autoencoder itu sendiri, kadang-kadang cukup. Namun, pekerjaan telah dilakukan untuk berimprovisasi / mempelajari pengelompokan secara eksplisit. Algoritma yang dikemukakan oleh Xie et al. (2016) 2 adalah contoh, yang "secara iteratif memperbaiki kluster dengan distribusi target tambahan yang berasal dari penugasan klaster lunak saat ini."
sumber