Estoy tratando de entender cómo funcionan las máquinas de Boltzmann, pero no estoy muy seguro de cómo se aprenden los pesos, y no he podido encontrar una descripción clara. ¿Es correcto lo siguiente? (Además, los consejos sobre cualquier buena explicación de la máquina Boltzmann también serían geniales).
Tenemos un conjunto de unidades visibles (por ejemplo, correspondientes a píxeles en blanco y negro en una imagen) y un conjunto de unidades ocultas. Los pesos se inicializan de alguna manera (p. Ej., Uniformemente desde [-0.5, 0.5]), y luego alternamos entre las siguientes dos fases hasta que se alcanza una regla de detención:
Fase fija: en esta fase, todos los valores de las unidades visibles son fijos, por lo que solo actualizamos los estados de las unidades ocultas (de acuerdo con la regla de activación estocástica de Boltzmann). Actualizamos hasta que la red haya alcanzado el equilibrio. Una vez que alcanzamos el equilibrio, continuamos actualizando más veces (para algunos N predefinidos ), haciendo un seguimiento del promedio de x i x j (donde x i , x j son los estados de los nodos i y j ). Después de esas actualizaciones de equilibrio de N , actualizamos w i j = w i j 1, dondeCes una tasa de aprendizaje. (O, en lugar de hacer una actualización por lotes al final, ¿actualizamos después del paso de equilibrio?)
Fase libre: en esta fase, se actualizan los estados de todas las unidades. Una vez que alcanzamos el equilibrio, continuamos actualizando N 'más veces, pero en lugar de sumar correlaciones al final, restamos: .
Entonces mis preguntas principales son:
Cada vez que estamos en la fase fija, ¿restablecemos las unidades visibles a uno de los patrones que queremos aprender (con alguna frecuencia que represente la importancia de ese patrón), o dejamos las unidades visibles en el estado en que se encontraban? al final de la fase libre?
¿Hacemos una actualización por lotes de los pesos al final de cada fase, o actualizamos los pesos en cada paso de equilibrio en la fase? (O, ¿está bien uno?)
fuente