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:
Saat melatih RBM, saya hanya mengambil piksel non-nol, sehingga wilayah hitam luar diabaikan.
Jawaban:
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.
sumber