Pourquoi une machine Boltzman restreinte (RBM) a tendance à apprendre des poids très similaires?

8

entrez la description de l'image ici

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:

entrez la description de l'image ici entrez la description de l'image ici

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.

ami
la source
Veuillez partager quelques informations sur les données que vous consultez.
bayer
@bayer: veuillez consulter ma mise à jour.
ffriend
Cela ressemble à une mauvaise procédure de formation. Pouvez-vous ajouter des informations sur le nombre d'étapes du CD, le taux d'apprentissage / l'élan, la taille du lot, etc.?
bayer
@bayer: au moment de ces expériences, j'ai utilisé CD-1, une taille de lot de 10 images, un taux d'apprentissage de 0,01 (0,1 / batch_size) et aucun élan du tout. J'ai également remarqué que l'initialisation du poids a un certain impact: avec des poids initialisés à partir de N (0, 0,01), je n'ai presque jamais vu de problème décrit, mais avec des poids à partir de N (0, 0,001), je reçois le problème presque à chaque fois.
ffriend
1
Si votre taux d'apprentissage est trop élevé, le premier échantillon (ou la moyenne du lot) sera ce à quoi le RBM s'adapte. Si les «neurones» (c'est-à-dire p (h | v)) saturent, l'apprentissage stagne - les gradients de ces neurones seront proches de zéro. C'est une façon pour que cela se produise.
bayer

Réponses:

1

Une machine Boltzmann restreinte (RBM) apprend une compression avec perte des entrées d'origine ou en d'autres termes, une distribution de probabilité.

Ce sont 4 matrices de poids différentes qui sont toutes des représentations de dimension réduite des entrées de face d'origine. Si vous visualisez les poids comme une distribution de probabilité, la valeur des distributions serait différente mais ils auraient la même quantité de perte par rapport à la reconstruction de l'image d'origine.

Brian Spiering
la source