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.
- ¿Cuál es la diferencia entre una maestría en informática (MS) y una maestría en aplicaciones informáticas (MCA)? Este año busqué una Licenciatura en Aplicación de Computadoras (BCA), ¿qué título debo elegir ahora?
- ¿Cómo mostraban las computadoras letras y formas antes de las pantallas de mapa de bits?
- ¿Qué matemáticas se requieren para comenzar los cursos de aprendizaje automático?
- ¿Cuál es la diferencia entre una máquina, robot, dispositivo y una computadora?
- ¿Vale la pena hacer computación en la nube?
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.