Divergencia contrastante persistente para RBM

9

Cuando usamos el algoritmo de aprendizaje de CD persistente para máquinas Bolzmann restringidas, comenzamos nuestra cadena de muestreo de Gibbs en la primera iteración en un punto de datos, pero a diferencia del CD normal, en las siguientes iteraciones no comenzamos sobre nuestra cadena. En cambio, comenzamos donde terminó la cadena de muestreo de Gibbs en la iteración anterior.

En el algoritmo de CD normal, cada iteración evalúa un mini lote de puntos de datos y calcula las cadenas de muestreo de Gibbs a partir de esos puntos de datos.

En CD persistente, ¿debemos mantener las cadenas de muestreo de Gibbs para cada punto de datos? ¿O deberíamos mantener también un mini lote de cadenas de muestreo de Gibbs, que comenzaron en puntos de datos que actualmente no se evalúan en la iteración actual?

Me parece que mantener las cadenas de muestreo de Gibbs para cada punto de datos será demasiado engorroso, pero, por otro lado, parece inadecuado comparar las señales de la muestra actual con las señales después de una larga cadena de Gibbs que no comenzó en la corriente la muestra .

Angelorf
fuente
@subha Parece contrario a la intuición, pero en realidad está bastante claro que debería ser una sola cadena que se utiliza para diferentes datos de entrada. También eche un vistazo a deeplearning.net/tutorial/rbm.html . Allí se afirma que lo que se hace es "no reiniciar una cadena para cada ejemplo observado". deeplearning.net tiene muchos ejemplos excelentes y explicaciones simples.
Angelorf
@Angelorf, ¿podría revisar estas instrucciones? Estoy usando la versión por lotes. así que para el primer lote encuentro v0-h0-v1-h1.ahora encontramos muestras + ve y -ve y gradiente de actualización. Luego, para el siguiente lote, la cadena de Gibbs comienza en h1 del primer lote en lugar de h0 del segundo lote. Estoy en lo cierto?
subha
@subha Creo que es correcto, pero eso es exactamente lo que estoy preguntando en la publicación original.
Angelorf
Cuando me gusta eso, ¿cómo reconstruirá los datos de entrada correctamente? Lo he intentado, no está reconstruyendo los datos correctamente.
subha

Respuestas:

1

El documento original que describe esto se puede encontrar aquí.

En la sección 4.4, discuten las formas en que se puede implementar el algoritmo. La mejor implementación que descubrieron inicialmente fue no restablecer ninguna Cadena de Markov, hacer una actualización completa de Gibbs en cada Cadena de Markov para cada estimación de gradiente, y usar una cantidad de Cadenas de Markov igual al número de puntos de datos de entrenamiento en un mini- lote.

La Sección 3 puede darle una idea de la idea clave detrás de PCD.

presidente
fuente
0

Como dice el presidente, no restablecen la cadena para la parte del gradiente negativo.

¿Cuál es la intuición detrás de esto? Como dice el documento original , para RBMs, no tiene que restablecer la cadena porque solo hay una distribución de la que debe muestrear, en oposición a una distribución por punto (que podría necesitar para las redes de creencias). Tienes razón en que para algunos modelos es posible que necesites recordar la cadena por punto.

Para métodos contrastantes: el término negativo en la actualización supera una expectativa o muestra de acuerdo con alguna distribución, pero los RBM solo tienen una distribución (post-quemado).

beelze-b
fuente