Bangun Deep Belief Autoencoder untuk Pengurangan Dimensi

Aug 18 2020

Saya bekerja dengan kumpulan data besar (sekitar 50K pengamatan x 11K fitur) dan saya ingin mengurangi dimensinya. Ini pada akhirnya akan digunakan untuk klasifikasi kelas jamak, jadi saya ingin mengekstrak fitur yang berguna untuk memisahkan data. Sejauh ini, saya sudah mencoba PCA (berkinerja OK dengan akurasi keseluruhan dalam Linear SVM sekitar 70%), LDA (dilakukan dengan akurasi pelatihan sangat tinggi sekitar 96% tetapi akurasi pengujian sekitar 61%), dan autoencoder (3 encoder padat lapisan dengan masing-masing 13000 - 1000 - 136 unit, yang kinerjanya hampir sama dengan PCA). Saya telah diminta untuk mencoba Deep Belief Network (tumpukan Mesin Boltzmann yang Dibatasi) dalam masalah ini.

Sejauh ini, saya memperkirakan ada dua tantangan. Pertama, saya memiliki akses ke GPU yang dapat digunakan, tetapi saya tidak melihat banyak implementasi DBN dari pemain utama di komunitas jaringan saraf (mis., TensorFlow / Keras, PyTorch), yang berarti ini perlu dilakukan. diterapkan pada CPU, memunculkan tantangan nomor dua. Kedua, menerapkan ini akan membutuhkan memori yang signifikan dan akan sangat lambat. Ini memunculkan pertanyaan saya: Apakah ada implementasi DBN autoencoder dengan Python (atau R) yang dipercaya dan, secara optimal, menggunakan GPU? Jika tidak, apa metode yang disukai untuk membangun DBN dengan Python? Haruskah saya menggunakan sklearn?

Jawaban

1 hH1sG0n3 Aug 18 2020 at 21:16

Tidak seperti Autoencoder, Botzmann Machines (dibatasi atau tidak) tidak memiliki lapisan keluaran dan dengan demikian diklasifikasikan sebagai model generatif yang dalam.

Ada berbagai implementasi di Pytorch. Yang ini kompatibel dengan GPU (https://github.com/GabrielBianconi/pytorch-rbm) dan saya merasa ini sangat membantu di masa lalu.

RBM bisa sangat berguna dalam berbagai tugas seperti

  • Pengurangan dimensi
  • Pemfilteran kolaboratif untuk sistem pemberi rekomendasi
  • Fitur pembelajaran dan lain-lain.

Ini adalah bacaan yang menarik jika Anda ingin mengetahui lebih lanjut tentang RBM. https://heartbeat.fritz.ai/guide-to-restricted-boltzmann-machines-using-pytorch-ee50d1ed21a8