Ce sont 4 matrices de poids différentes que j'ai obtenues après avoir entraîné une machine Boltzman restreinte (RBM) avec environ 4k unités visibles et seulement 96 unités cachées / vecteurs de poids. Comme vous pouvez le voir, les poids sont extrêmement similaires - même les pixels noirs sur le visage sont reproduits. Les 92 autres vecteurs sont également très similaires, mais aucun des poids n'est exactement le même.
Je peux surmonter cela en augmentant le nombre de vecteurs de poids à 512 ou plus. Mais j'ai rencontré ce problème plusieurs fois plus tôt avec différents types de RBM (binaire, gaussien, même convolutionnel), différents nombres d'unités cachées (y compris assez grandes), différents hyper-paramètres, etc.
Ma question est: quelle est la raison la plus probable pour que les poids obtiennent des valeurs très similaires ? Est-ce qu'ils arrivent tous à un minimum local? Ou est-ce un signe de sur-ajustement?
J'utilise actuellement une sorte de RBM Gaussian-Bernoulli, le code peut être trouvé ici .
UPD. Mon ensemble de données est basé sur CK + , qui contient> 10 000 images de 327 individus. Cependant, je fais un prétraitement assez lourd. Tout d'abord, je coupe uniquement les pixels à l'intérieur du contour extérieur d'un visage. Deuxièmement, je transforme chaque visage (en utilisant un habillage affiné par morceaux) sur la même grille (par exemple, les sourcils, le nez, les lèvres, etc. sont dans la même position (x, y) sur toutes les images). Après le prétraitement, les images ressemblent à ceci:
Lors de la formation RBM, je ne prends que des pixels non nuls, de sorte que la région noire extérieure est ignorée.