Estas son 4 matrices de peso diferentes que obtuve después de entrenar una máquina de Boltzman restringida (RBM) con ~ 4k unidades visibles y solo 96 unidades ocultas / vectores de peso. Como puede ver, los pesos son extremadamente similares, incluso se reproducen píxeles negros en la cara. Los otros 92 vectores también son muy similares, aunque ninguno de los pesos es exactamente el mismo.
Puedo superar esto aumentando el número de vectores de peso a 512 o más. Pero me encontré con este problema varias veces antes con diferentes tipos de RBM (binario, gaussiano, incluso convolucional), diferente número de unidades ocultas (incluso bastante grandes), diferentes hiperparámetros, etc.
Mi pregunta es: ¿cuál es la razón más probable para que los pesos obtengan valores muy similares ? ¿Todos llegan a un mínimo local? ¿O es una señal de sobreajuste?
Actualmente uso un tipo de Gaussian-Bernoulli RBM, el código se puede encontrar aquí .
UPD Mi conjunto de datos se basa en CK + , que contiene> 10k imágenes de 327 personas. Sin embargo, hago un preprocesamiento bastante pesado. Primero, recorto solo píxeles dentro del contorno exterior de una cara. En segundo lugar, transformo cada cara (usando un envoltorio afinado por partes) en la misma cuadrícula (por ejemplo, las cejas, la nariz, los labios, etc. están en la misma posición (x, y) en todas las imágenes). Después de preprocesar las imágenes, tenga este aspecto:
Cuando entreno RBM, solo tomo píxeles distintos de cero, por lo que se ignora la región negra exterior.