¿Por qué utilizar máquinas de Boltzmann profundas en lugar de máquinas de Boltzmann?

Una forma de entender esto es mirar directamente los métodos de capacitación e inferencia para RBM.

El método de entrenamiento más simple para las máquinas de Boltzmann que utilizan el descenso de gradiente requiere calcular dos distribuciones, una de ellas es la función de partición. Como punto de partida, decidimos usar un algoritmo de Monte Carlo para tomar muestras de él y luego tomar algunos promedios para estimar la distribución. Tomar la diferencia da la dirección del gradiente para las actualizaciones de peso. El muestreo se puede hacer mirando cada unidad y actualizando su estado (activado o desactivado) calculando la probabilidad de que esté activado debido a los estados de las otras unidades y qué tan fuertemente están correlacionados (o anticorrelacionados) sus estados con esta unidad. Este es un problema de huevo y gallina, pero eventualmente si haces suficientes “barridos” sobre todas las unidades, llegas a algún tipo de punto de equilibrio.

Para máquinas Boltzmann completamente conectadas, el número de barridos necesarios para llegar al equilibrio (o, alternativamente, el número de pasos en la cadena de Markov) es muy grande porque las dependencias entre unidades pueden ser muy complejas y se requieren muchos intentos Número estadísticamente significativo de muestras para estimar la probabilidad de que una unidad esté encendida. Aquí es donde ayuda la conectividad bipartita de RBM. Requiere que relajemos la condición de equilibrio detallada, pero hasta el momento tiende a ser una suposición correcta (no se puede decir nada para un modelado de datos más complicado). La capa puede actualizar las unidades RBM porque no hay conexiones directas entre las unidades en cada capa. Esto puede facilitar la búsqueda de puntos de equilibrio, pero eso se debe en parte a que hemos restringido dónde se pueden formar estos puntos de equilibrio a través de este proceso de entrenamiento. Si bien las RBM y las RBM apiladas en redes de creencias profundas parecen estar funcionando bien ahora, no está claro si continuarán haciéndolo para problemas más complicados.

La esperanza es que podamos hacer algo intermedio. Queremos la capacidad de modelar relaciones complejas en los datos al permitir conexiones directas entre variables latentes (las unidades ocultas), pero no tener tantas conexiones intracapa que la convergencia de una cadena de Markov tome para siempre. La idea es tener una estructura bipartita en capas en las unidades ocultas. Esta topología particular se ha denominado máquinas de Boltzmann profundas, que difieren de las redes de creencias profundas en que todo el modelo no está dirigido. Se cree que esto es ventajoso para las máquinas de Boltzmann profundas, ya que la información de las capas superiores puede fluir a las capas inferiores, y las redes de creencias profundas ya tienen bastante éxito en el modelado de una gama de diferentes tipos de datos.

Totalmente conectadas (o planas, como se llama en el artículo que ha citado), las máquinas Boltzmann pueden hacer cualquier cosa que una máquina Boltzmann con estructura de gráfico más dispersa podría hacer, pero solo en teoría. En la práctica, lleva mucho más tiempo entrenar estos modelos y casi siempre no tienen éxito con nuestros métodos de entrenamiento actuales. Esto puede tener que ver con que el descenso de gradiente sea un optimizador local de la función de probabilidad, pero no recuerdo ninguna literatura que explore específicamente esto. Ciertamente tiene que ver con lo anterior que estamos aplicando a través de las restricciones en el gráfico de red. Estos trucos y aproximaciones son extremadamente importantes en la práctica con nuestro hardware actual, porque de lo contrario son inutilizables. Es importante aclarar que al usar RBM en una red de creencias profundas, podemos hacer inferencias extremadamente rápido porque requiere solo una multiplicación matriz-matriz para cada capa. La inferencia con redes más complicadas también puede requerir el muestreo en cadena de Markov, lo que sería horrible por razones de rendimiento y estamos en una etapa en la que el rendimiento es fundamental para avanzar en la investigación, sin mencionar las aplicaciones industriales.

Las máquinas de Boltzmann (BM) son modelos basados ​​en energía que capturan dependencias entre variables asociando una energía escalar a cada configuración de las variables y son análogas a las redes de Hopfield. En una máquina Boltzmann, todas las unidades están interconectadas, es decir, incluso las conexiones visible-visible y oculta-oculta están presentes y, por lo tanto, es costoso computacionalmente y los modelos de aprendizaje son difíciles.
Las máquinas de Boltzmann profundas (DBM) son máquinas de Boltzmann restringidas (RBM) apiladas una encima de la otra. La diferencia entre un RBM y un BM es que las conexiones visible-visible y oculta-oculta están ausentes. Ahora agregando varias capas ocultas. Al igual que en los DBM, puede ayudar a la red a encontrar relaciones incluso desde las capas más profundas y, por lo tanto, la entrada puede ser mejor entendida por la red, lo que lo ayudará a aprender un mejor modelo.
También responden la pregunta en el documento “El aprendizaje puede hacerse más eficiente mediante el uso de una fase de” pre-entrenamiento “capa por capa que inicializa los pesos de manera sensata. El pre-entrenamiento también permite que la inferencia variacional sea inicializado con sensatez con un solo pase ascendente “.
También el resultado que ha mostrado es para estimar las funciones de partición de los modelos BM, junto con las estimaciones del límite inferior para el modelo. Si sigue leyendo el documento, después del paso de ajuste, del modelo, las tasas de error son considerablemente diferentes. La máquina Boltzmann de 2 capas alcanza una tasa de error del 0,95% en el conjunto de prueba MNIST completo. El BM de 3 capas da una tasa de error de 1.01%. y el BM plano, por otro lado, da una tasa de error del 1,27%. Por lo tanto, DBM funciona mucho mejor que el BM plano.