¿Por qué una máquina de Boltzman restringida (RBM) tiende a aprender pesos muy similares?

8

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Cuando entreno RBM, solo tomo píxeles distintos de cero, por lo que se ignora la región negra exterior.

amigo
fuente
Comparta alguna información sobre los datos que está viendo.
bayer
@bayer: mira mi actualización.
amigo
Esto parece un mal procedimiento de entrenamiento. ¿Puede agregar información sobre el número de pasos del CD, la velocidad / momento de aprendizaje, el tamaño del lote, etc.?
bayer
@bayer: en el momento de estos experimentos utilicé CD-1, tamaño de lote de 10 imágenes, tasa de aprendizaje de 0.01 (0.1 / lote_tamaño) y ningún impulso en absoluto. También noté que la inicialización del peso tiene algún impacto: con los pesos inicializados desde N (0, 0.01) casi nunca he visto el problema descrito, pero con los pesos desde N (0, 0.001) obtengo el problema casi cada vez.
Amigo
1
Si su tasa de aprendizaje es demasiado alta, la primera muestra (o la media del lote) será a lo que se adapte el RBM. Si las "neuronas" (es decir, p (h | v)) se saturan, el aprendizaje se detiene: los gradientes de estas neuronas estarán cerca de cero. Esta es una forma de que esto suceda.
bayer

Respuestas:

1

Una máquina de Boltzmann restringida (RBM) aprende una compresión con pérdida de las entradas originales o, en otras palabras, una distribución de probabilidad.

Esas son 4 matrices de peso diferentes, todas son representaciones de dimensiones reducidas de las entradas de cara originales. Si visualizara los pesos como una distribución de probabilidad, el valor de las distribuciones sería diferente pero tendrían la misma cantidad de pérdida de la reconstrucción de la imagen original.

Brian Spiering
fuente