Mengapa mesin Boltzman terbatas (RBM) cenderung mempelajari bobot yang sangat mirip?


8

masukkan deskripsi gambar di sini

Ini adalah 4 matriks berat berbeda yang saya dapatkan setelah melatih mesin Boltzman terbatas (RBM) dengan ~ 4k unit yang terlihat dan hanya 96 unit tersembunyi / vektor berat. Seperti yang Anda lihat, bobotnya sangat mirip - bahkan piksel hitam pada wajah direproduksi. 92 vektor lainnya juga sangat mirip, meskipun tidak ada bobot yang persis sama.

Saya bisa mengatasinya dengan meningkatkan jumlah vektor berat menjadi 512 atau lebih. Tetapi saya mengalami masalah ini beberapa kali sebelumnya dengan tipe RBM yang berbeda (biner, Gaussian, bahkan konvolusional), jumlah unit tersembunyi yang berbeda (termasuk cukup besar), parameter hiper yang berbeda, dll.

Pertanyaan saya adalah: apa alasan kemungkinan bobot untuk mendapatkan nilai yang sangat mirip ? Apakah mereka semua hanya mencapai batas minimum lokal? Atau itu tanda overfitting?

Saat ini saya menggunakan semacam Gaussian-Bernoulli RBM, kode dapat ditemukan di sini .

UPD. Dataset saya didasarkan pada CK + , yang berisi> 10r gambar dari 327 individu. Namun saya melakukan preprocessing yang cukup berat. Pertama, saya klip hanya piksel di dalam kontur luar wajah. Kedua, saya mengubah setiap wajah (menggunakan pembungkus affine piecewise) ke kotak yang sama (misalnya alis, hidung, bibir dll. Berada dalam posisi yang sama (x, y) pada semua gambar). Setelah preprocessing gambar terlihat seperti ini:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Saat melatih RBM, saya hanya mengambil piksel non-nol, sehingga wilayah hitam luar diabaikan.


Silakan bagikan beberapa info tentang data yang Anda lihat.
bayer

@bayer: silakan periksa pembaruan saya.
Berteman

Ini terlihat seperti prosedur pelatihan yang buruk. Bisakah Anda menambahkan informasi tentang jumlah langkah CD, tingkat pembelajaran / momentum, ukuran batch dll?
bayer

@ bayer: pada saat percobaan ini saya menggunakan CD-1, ukuran batch 10 gambar, kecepatan belajar 0,01 (0,1 / batch_size) dan tidak ada momentum sama sekali. Saya juga memperhatikan bahwa inisialisasi berat memiliki beberapa dampak: dengan bobot yang diinisialisasi dari N (0, 0,01) saya hampir tidak pernah melihat masalah yang dijelaskan, tetapi dengan bobot dari N (0, 0,001) saya mendapatkan masalah hampir setiap kali.
berteman

1
Jika tingkat belajar Anda terlalu tinggi, sampel pertama (atau rata-rata dari bets) akan sesuai dengan yang dikenakan RBM. Jika "neuron" (yaitu p (h | v)) kemudian jenuh, kios belajar - gradien dari neuron ini akan mendekati nol. Ini adalah salah satu cara terjadinya hal ini.
bayer

Jawaban:


1

Mesin Boltzmann terbatas (RBM) mempelajari kompresi lossy dari input asli atau dengan kata lain, distribusi probabilitas.

Mereka adalah 4 matriks bobot yang berbeda semuanya merupakan representasi dimensi yang diperkecil dari input wajah asli. Jika Anda memvisualisasikan bobot sebagai distribusi probabilitas, nilai distribusi akan berbeda tetapi mereka akan memiliki jumlah kerugian yang sama dari rekonstruksi gambar asli.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.