Anda benar tentang data yang tidak berlabel. RBM adalah model generatif dan paling umum digunakan sebagai pembelajar yang tidak diawasi.
Ketika digunakan untuk membangun Deep Belief Network, prosedur yang paling umum adalah dengan hanya melatih setiap RBM baru satu per satu saat mereka ditumpuk satu sama lain. Jadi perbedaan kontras tidak naik dan turun dalam arti yang saya pikir Anda maksudkan. Ini hanya bekerja dengan satu RBM pada satu waktu, menggunakan lapisan tersembunyi dari RBM paling atas sebelumnya sebagai input untuk RBM paling atas baru. Setelah semua ini, Anda dapat memperlakukan tumpukan bobot RBM sebagai bobot awal untuk jaringan saraf maju umpan standar dan berlatih menggunakan data berlabel dan backpropagation atau melakukan sesuatu yang lebih eksotis seperti menggunakan algoritma wake-sleep. Perhatikan bahwa kami belum menggunakan data berlabel apa pun hingga langkah terakhir ini, itulah salah satu manfaat dari model-model ini.
Di sisi lain, ada beberapa cara Anda bisa menggunakan RBM untuk klasifikasi.
- Latih RBM atau tumpukan beberapa RBM. Gunakan lapisan tersembunyi paling atas sebagai input ke beberapa pelajar yang dilindungi lainnya.
- Latih RBM untuk setiap kelas dan gunakan energi yang tidak dinormalisasi sebagai input ke pengklasifikasi diskriminatif.
- Latih RBM untuk menjadi model densitas gabungan P (X, Y). Kemudian diberi beberapa input x, pilih saja kelas y yang meminimalkan fungsi energi (normalisasi bukan masalah di sini seperti di atas karena konstanta Z adalah sama untuk semua kelas).
- Melatih RBM yang diskriminatif
Saya sangat menyarankan Anda membaca laporan teknis Panduan Praktis untuk Pelatihan Mesin Boltzmann Terbatas oleh Geoff Hinton. Ini membahas beberapa masalah ini secara lebih rinci, memberikan tips yang sangat berharga, mengutip banyak makalah yang relevan, dan dapat membantu menjernihkan kebingungan lain yang mungkin Anda miliki.
Silakan lihat implementasinya, http://code.google.com/p/matrbm/ . Ini memiliki fungsi fit klasifikasi rmb layak dipertimbangkan. Juga beri tahu saya jika Anda menemukan implementasi DBN dan RMB yang lebih baik untuk klasifikasi dan regresi.
sumber
Saya pikir salah satu cara Anda dapat menguji jaringan saraf seperti Mesin Boltzman Terbatas (RBM) adalah menerapkannya pada set data baru, atau lebih umum subset dari set data total, dan melihat kinerjanya. Anda juga dapat menguji model dengan validasi silang. Saya telah menggunakan toolkit perangkat lunak pembelajaran open source machine (ML) yang mudah dipasang dan digunakan, dan memungkinkan Anda untuk dengan mudah menguji berbagai jenis algoritma ML secara terpisah dengan sejumlah statistik regresi model ( http: // www. cs.waikato.ac.nz/ml/weka/ ). Itu mungkin memberi Anda analisis cepat tanpa banyak intervensi kecuali dasar-dasar menjalankan program, meskipun tergantung itu mungkin tidak layak jika akan sulit untuk memformat data Anda (meskipun Anda biasanya dapat google "csv to arff convert online" misalnya untuk pemformatan satu langkah).
sumber