Redes Neurais em IA e Deep Learning - página 57

 

Clase 10.4 — Hacer práctico el aprendizaje bayesiano completo



Lección 10.4 — Hacer práctico el aprendizaje bayesiano completo [Redes neuronales para el aprendizaje automático]

En este video, explicaré cómo hacer que el aprendizaje bayesiano completo sea práctico para grandes redes neuronales con miles o incluso millones de pesos. La técnica utilizada es un método de Monte Carlo, que puede parecer peculiar en un primer momento. Empleamos un generador de números aleatorios para explorar el espacio de los vectores de peso de manera aleatoria, pero con un sesgo hacia la función de costo descendente. Cuando se hace correctamente, este enfoque tiene una propiedad notable: muestrea vectores de peso en proporción a sus probabilidades en la distribución posterior. Al muestrear una gran cantidad de vectores de peso, podemos obtener una buena aproximación del método bayesiano completo.

A medida que aumenta el número de parámetros, el número de puntos de cuadrícula en el espacio de parámetros se vuelve exponencialmente grande. Por lo tanto, la creación de una cuadrícula para más de unos pocos parámetros no es factible cuando hay suficientes datos para hacer que la mayoría de los vectores de parámetros sean altamente improbables. En su lugar, podemos centrarnos en evaluar una pequeña fracción de los puntos de la cuadrícula que hacen una contribución significativa a las predicciones. Una idea que hace factible el aprendizaje bayesiano es muestrear vectores de peso de acuerdo con sus probabilidades posteriores. En lugar de sumar todos los términos de la ecuación, podemos muestrear términos de la suma. Asignamos un peso de uno o cero a cada vector de peso, dependiendo de si está muestreado o no. La probabilidad de ser muestreado corresponde a la probabilidad posterior del vector de peso, resultando en el valor esperado correcto.

La retropropagación estándar, representada en el lado derecho, sigue una ruta desde un punto inicial hasta un único punto final moviéndose a lo largo del gradiente y descendiendo en la función de costo. Por el contrario, un método de muestreo introduce ruido gaussiano en cada actualización de ponderación, lo que hace que el vector de ponderación deambule y explore el espacio de ponderación continuamente. Este comportamiento errante favorece las regiones de bajo costo y tiende a moverse cuesta abajo siempre que sea posible. Una pregunta esencial es con qué frecuencia los pesos visitarán cada punto del espacio. Los puntos rojos representan muestras tomadas durante la deambulación y es posible que no se encuentren en las regiones de menor costo debido al ruido inherente. Sin embargo, después de una exploración suficiente, surge una propiedad notable de la cadena de Markov Monte Carlo: los vectores de peso se convierten en muestras imparciales de la distribución posterior verdadera. Los vectores de peso que son altamente probables debajo de la parte posterior tienen más probabilidades de estar representados por un punto rojo que los altamente improbables. Esta técnica, conocida como cadena de Markov Monte Carlo, permite el uso del aprendizaje bayesiano con miles de parámetros.

El método mencionado anteriormente, que consiste en agregar ruido gaussiano, se denomina método de Langevin. Si bien es efectivo, no es el enfoque más eficiente. Hay métodos más sofisticados disponibles que requieren menos tiempo para que los vectores de peso exploren el espacio antes de obtener muestras confiables. Uno de estos enfoques es el uso de mini lotes en el aprendizaje bayesiano completo. Al calcular el gradiente de la función de costo en un mini lote aleatorio, obtenemos una estimación imparcial con ruido de muestreo. Este ruido de muestreo se puede utilizar para proporcionar el ruido requerido por el método Monte Carlo de la cadena de Markov. Una idea inteligente de Welling y colaboradores permite un muestreo eficiente de la distribución posterior sobre pesos utilizando métodos de mini lotes. Este avance debería hacer factible el aprendizaje bayesiano completo para redes mucho más grandes que requieren capacitación con mini lotes para completar el proceso de capacitación.

El uso de minilotes en el aprendizaje bayesiano completo ofrece varias ventajas. Al calcular el gradiente de la función de costo en un mini lote aleatorio, no solo obtenemos una estimación imparcial con ruido de muestreo, sino que también aprovechamos la eficiencia de los métodos de mini lote. Esto significa que podemos entrenar redes mucho más grandes que de otro modo serían inviables para entrenar con aprendizaje bayesiano completo.

El avance logrado por Welling y sus colaboradores permite un muestreo eficiente a partir de la distribución posterior sobre pesos utilizando métodos de mini lotes. Su ingeniosa idea utiliza el ruido de muestreo inherente a la estimación del gradiente de minilotes para servir como el ruido requerido por el método Monte Carlo de la cadena de Markov. Al incorporar adecuadamente este ruido, han obtenido con éxito muestras confiables de la distribución posterior, lo que hace que el aprendizaje bayesiano completo sea práctico para redes más grandes.

Con este avance, es posible entrenar redes neuronales con miles o incluso millones de pesos usando mini lotes y obtener muestras de la distribución posterior sobre pesos. Esto es particularmente beneficioso cuando se trata de problemas a gran escala que requieren grandes recursos computacionales. La capacidad de incorporar la incertidumbre a través del aprendizaje bayesiano completo proporciona una comprensión más completa de las predicciones del modelo y puede conducir a una mejor toma de decisiones.

El aprendizaje bayesiano completo se puede hacer práctico para grandes redes neuronales aprovechando los métodos de Monte Carlo, como la cadena de Markov Monte Carlo. Al muestrear vectores de peso de acuerdo con sus probabilidades posteriores, podemos aproximarnos al método bayesiano completo y obtener información valiosa sobre la incertidumbre de nuestros modelos. Con la introducción de métodos de mini lotes, ahora se puede lograr un muestreo eficiente de la distribución posterior sobre pesos, lo que permite la aplicación del aprendizaje bayesiano completo a redes mucho más grandes.

 

Clase 10.5 — Abandono



Lección 10.5 — Abandono [Redes neuronales para el aprendizaje automático]

Dropout es un método exitoso para combinar una gran cantidad de modelos de redes neuronales sin entrenar cada modelo por separado. En este enfoque, se eliminan subconjuntos aleatorios de unidades ocultas para cada caso de entrenamiento, lo que da como resultado arquitecturas diferentes para cada caso. Esto crea un modelo único para cada caso de entrenamiento, lo que genera preguntas sobre cómo entrenar y promediar de manera eficiente estos modelos durante las pruebas.

Dos formas de combinar los resultados de múltiples modelos son promediando sus probabilidades de salida o usando la media geométrica de sus probabilidades. Compartir el peso juega un papel crucial en este método. Dropout proporciona una forma eficiente de promediar las redes neuronales, aunque es posible que no funcione tan bien como el enfoque bayesiano correcto. Durante el entrenamiento, las unidades ocultas se eliminan aleatoriamente con una probabilidad de 0,5, lo que da como resultado una gran cantidad de arquitecturas que comparten pesos. El abandono puede verse como un promedio del modelo, donde la mayoría de los modelos no se muestrean y cada modelo muestreado recibe solo un ejemplo de entrenamiento. Compartir el peso entre modelos los regulariza efectivamente. En el momento de la prueba, se utilizan todas las unidades ocultas, pero sus pesos salientes se reducen a la mitad para calcular la media geométrica de las predicciones de todos los modelos posibles. El abandono se puede extender a varias capas ocultas aplicando un abandono de 0,5 en cada capa. Esta aproximación es más rápida que promediar modelos separados de deserción, pero proporciona una buena aproximación.

Además, el abandono se puede aplicar a las capas de entrada con una mayor probabilidad de mantener las entradas. Esta técnica ya se utiliza para eliminar el ruido de los codificadores automáticos y ha mostrado buenos resultados. Se ha demostrado que el abandono es eficaz para reducir los errores y prevenir el sobreajuste en las redes neuronales profundas. Fomenta la especialización de unidades ocultas y evita coadaptaciones complejas que pueden conducir a una mala generalización en nuevos datos de prueba. Al obligar a las unidades ocultas a trabajar con diferentes combinaciones de otras unidades ocultas, la deserción promueve un comportamiento útil individualmente y desalienta la dependencia de colaboraciones específicas. Este enfoque mejora el desempeño de las redes de deserción al permitir que cada unidad contribuya de una manera única y marginalmente útil, lo que genera excelentes resultados.

Dropout es una técnica poderosa para entrenar y combinar modelos de redes neuronales. Aborda el desafío del sobreajuste mediante la regularización de los modelos mediante el reparto del peso y la eliminación aleatoria de unidades ocultas. Al crear arquitecturas diversas para cada caso de formación, la deserción fomenta la especialización de unidades individuales y reduce las coadaptaciones complejas. El proceso de promediar las probabilidades de salida de los modelos o usar la media geométrica proporciona un efecto similar al de un conjunto, lo que mejora el rendimiento general de la red. Aunque la deserción puede no alcanzar el mismo nivel de rendimiento que el enfoque bayesiano correcto, ofrece una alternativa práctica y eficiente. Cuando se aplica a múltiples capas ocultas, el abandono se puede utilizar en cada capa con una probabilidad de abandono de 0,5. Esta aproximación, conocida como "red media", combina efectivamente los beneficios de la deserción con un cálculo más rápido. Es particularmente útil cuando los recursos computacionales son limitados.

Además, la deserción se puede extender a la capa de entrada al aplicar la deserción con una mayor probabilidad de retener las entradas. Esta técnica ayuda a prevenir el sobreajuste y ha tenido éxito en varias aplicaciones. Es importante tener en cuenta que la deserción no solo mejora el rendimiento en los datos de entrenamiento, sino que también mejora la generalización a datos de prueba no vistos. Al fomentar el comportamiento de las unidades individuales y reducir las coadaptaciones complejas, los modelos de deserción tienden a funcionar bien en ejemplos nuevos e invisibles.

Dropout es un método práctico y efectivo para combinar modelos de redes neuronales. Al descartar aleatoriamente las unidades ocultas y fomentar el comportamiento de las unidades individuales, la deserción mitiga el sobreajuste y mejora la generalización. Su simplicidad y eficiencia lo convierten en una herramienta valiosa para entrenar redes neuronales profundas.

 

Clase 11.1 — Redes de Hopfield



Lección 11.1 — Redes de Hopfield [Redes neuronales para el aprendizaje automático]

En este video, el presentador presenta las redes de Hopfield y su papel en el resurgimiento del interés por las redes neuronales en la década de 1980. Las redes de Hopfield son dispositivos simples que se utilizan para almacenar memorias como patrones distribuidos de actividad. Son modelos basados en energía con unidades de umbral binarias y conexiones recurrentes.

El análisis de redes con unidades no lineales y conexiones recurrentes puede ser un desafío debido a sus diversos comportamientos, como establecerse en estados estables, oscilar o incluso ser caóticos. Sin embargo, Hopfield y otros investigadores se dieron cuenta de que si las conexiones son simétricas, se puede definir una función de energía global para cada configuración binaria de la red. La regla de decisión de umbral binario, combinada con la función de energía correcta, hace que la red se mueva cuesta abajo en energía, alcanzando eventualmente un mínimo de energía. La función de energía consta de contribuciones locales que representan el producto de los pesos de conexión y los estados binarios de las neuronas conectadas.

Para encontrar un mínimo de energía, las unidades en una red de Hopfield se actualizan secuencialmente, una a la vez, en orden aleatorio. Cada unidad calcula su estado en función de la configuración que da como resultado la energía global más baja. Esta actualización secuencial evita que las unidades tomen decisiones simultáneas que podrían aumentar la energía y provocar oscilaciones. Las redes de Hopfield son adecuadas para almacenar memorias, ya que las memorias corresponden a los mínimos de energía en la red. Los recuerdos pueden ser parciales o corruptos, y la regla de decisión de umbral binario puede limpiarlos y restaurarlos a recuerdos completos. Esta memoria direccionable por contenido permite el acceso a elementos almacenados en función de información de contenido parcial.

Las redes de Hopfield tienen propiedades que las hacen resistentes frente a daños en el hardware, ya que aún pueden funcionar correctamente incluso con algunas unidades extraídas. Los pesos en la red brindan información sobre cómo encajan los estados de las neuronas, de manera similar a la reconstrucción de un dinosaurio a partir de unos pocos huesos. La regla de almacenamiento de memorias en una red de Hopfield es simple. Al incrementar los pesos entre unidades en función del producto de sus actividades, se puede almacenar un vector de estado binario. Esta regla solo requiere una pasada a través de los datos, lo que la convierte en una regla en línea. Sin embargo, no es una regla de corrección de errores, que tiene ventajas y desventajas.

Las redes de Hopfield ofrecen un enfoque sencillo para almacenar memorias y tienen propiedades interesantes que las hacen valiosas para diversas aplicaciones.

 

Clase 11.2 — Manejo de mínimos espurios



Lección 11.2 — Manejo de mínimos espurios [Redes neuronales para el aprendizaje automático]

En este video, hablaré sobre la capacidad de almacenamiento de las redes de Hopfield y cómo está limitada por recuerdos espurios. Los recuerdos espurios ocurren cuando los mínimos de energía cercanos se combinan, creando un nuevo mínimo en el lugar equivocado. Los esfuerzos para eliminar estos mínimos espurios condujeron a un interesante método de aprendizaje en sistemas más complejos que las redes básicas de Hopfield.

También me referiré a un redescubrimiento histórico relacionado con el aumento de la capacidad de las redes de Hopfield. Los físicos que intentaban mejorar su capacidad de almacenamiento se toparon con el procedimiento de convergencia de perceptrón, que se desarrolló inicialmente después de que Hopfield inventara las redes de Hopfield como dispositivos de almacenamiento de memoria.

La capacidad de una red de Hopfield, utilizando la regla de almacenamiento de Hopfield para una red totalmente conectada, es de aproximadamente 0,15 n memorias, donde n representa el número de unidades de umbral binarias. Esta capacidad indica el número de memorias que se pueden almacenar sin confusión. Cada memoria consiste en una configuración aleatoria de las N unidades, aportando n bits de información. Por lo tanto, la información total almacenada en una red Hopfield es de aproximadamente 0,15 N bits cuadrados.

Sin embargo, este método de almacenamiento no utiliza eficientemente los bits necesarios para almacenar los pesos. Si analizamos el número de bits necesarios para almacenar los pesos en el ordenador, supera los 0,15N bits cuadrados, demostrando que la memoria distribuida en mínimos energéticos locales no es eficiente.

Para mejorar la capacidad de una red de Hopfield, debemos abordar la fusión de los mínimos de energía, lo que limita su capacidad. Cada vez que se memoriza una configuración binaria, esperamos crear un nuevo mínimo de energía. Sin embargo, los patrones cercanos pueden provocar la fusión de mínimos, lo que hace imposible distinguir entre memorias separadas. Este fenómeno de fusión es lo que restringe la capacidad de una red Hopfield.

Una idea intrigante que surgió al mejorar la capacidad de las redes de Hopfield es el concepto de desaprendizaje. El desaprendizaje implica permitir que la red se asiente a partir de un estado inicial aleatorio y luego aplicar lo opuesto a la regla de almacenamiento para eliminar los mínimos espurios. Hopfield, Feinstein y Palmer demostraron que el desaprendizaje aumenta efectivamente la capacidad de la memoria, y Crick y Mitchison propusieron que el desaprendizaje podría ocurrir durante el sueño REM.

El desafío radica en determinar cuánto desaprendizaje se debe hacer. Idealmente, desaprender debería ser parte del proceso de ajuste de un modelo a los datos. El ajuste de máxima probabilidad del modelo puede incorporar automáticamente el desaprendizaje, proporcionando una guía precisa sobre la cantidad de desaprendizaje requerida.

Los físicos se esforzaron por mejorar la capacidad de las redes de Hopfield, impulsados por el deseo de encontrar conexiones entre los conceptos matemáticos familiares y la funcionalidad del cerebro. Elizabeth Gardner propuso una regla de almacenamiento más eficiente que utilizaba la capacidad total de las pesas. Esta regla implicaba recorrer el conjunto de entrenamiento varias veces y emplear el procedimiento de convergencia del perceptrón para entrenar el estado correcto de cada unidad.

Esta técnica es similar al método de pseudoverosimilitud que se utiliza en las estadísticas, en el que el objetivo es acertar en una dimensión dados los valores de todas las demás dimensiones. El procedimiento de convergencia del perceptrón, con algunos ajustes para los pesos simétricos en las redes de Hopfield, permite un almacenamiento de memoria más eficiente.

Mediante el uso del procedimiento de convergencia de perceptrón y la iteración de los datos varias veces, podemos mejorar la eficiencia de almacenamiento de memoria de las redes de Hopfield. Esta técnica es análoga al método de pseudoverosimilitud empleado en estadística, donde el objetivo es acertar en una dimensión en función de los valores de todas las demás dimensiones. El procedimiento de convergencia del perceptrón, con las modificaciones apropiadas para los pesos simétricos en las redes de Hopfield, permite un almacenamiento de memoria más efectivo.

Esta regla de almacenamiento mejorada presentada por Gardner representa un avance significativo en la maximización de la capacidad de las redes Hopfield. Al recorrer el conjunto de entrenamiento y ajustar iterativamente los pesos según el procedimiento de convergencia del perceptrón, la red puede almacenar una mayor cantidad de memorias.

Vale la pena señalar que este enfoque sacrifica la propiedad en línea de las redes de Hopfield, que permite el procesamiento de datos en un solo paso. Sin embargo, la compensación se justifica por la eficiencia de almacenamiento mejorada lograda mediante la utilización de la capacidad total de las pesas.

La incorporación del desaprendizaje, propuesta por Hopfield, Feinstein y Palmer, proporciona un medio para eliminar los mínimos espurios y aumentar aún más la capacidad de la memoria. El desaprendizaje permite la separación de mínimos combinados, lo que garantiza una mejor recuperación de los recuerdos individuales.

Curiosamente, Crick y Mitchison sugirieron una explicación funcional para desaprender durante el sueño REM. Propusieron que el propósito de soñar es facilitar la eliminación de mínimos espurios, restableciendo efectivamente la red a un estado aleatorio y desaprendiendo patrones anteriores.

Para abordar el desafío matemático de determinar la cantidad óptima de desaprendizaje, una posible solución radica en tratar el desaprendizaje como parte del proceso de ajuste del modelo. Al emplear el ajuste de máxima verosimilitud, el desaprendizaje se puede incorporar automáticamente, proporcionando una guía precisa sobre el grado de desaprendizaje requerido para optimizar el rendimiento del modelo.

La búsqueda para mejorar la capacidad de las redes de Hopfield ha arrojado información valiosa sobre el almacenamiento de memoria y los procesos de aprendizaje. El desarrollo del procedimiento de convergencia de perceptrón, junto con la exploración del desaprendizaje, nos ha acercado a aprovechar todo el potencial de las redes de Hopfield para el almacenamiento y la recuperación de memoria efectivos.

 

Clase 11.3 — Redes de Hopfield con unidades ocultas



Lección 11.3 — Redes de Hopfield con unidades ocultas [Redes neuronales para el aprendizaje automático]

En este video, presentaré un enfoque novedoso para utilizar las redes de Hopfield y su función energética. Al incorporar unidades ocultas en la red, nuestro objetivo es derivar interpretaciones de la entrada perceptual en función de los estados de estas unidades ocultas. El concepto clave es que los pesos entre unidades imponen restricciones a las interpretaciones favorables y, al encontrar estados con baja energía, podemos descubrir buenas interpretaciones de los datos de entrada.

Las redes de Hopfield combinan dos ideas fundamentales: la capacidad de encontrar mínimos de energía locales utilizando unidades de umbral binarias conectadas simétricamente y la noción de que estos mínimos de energía locales pueden corresponder a memorias. Sin embargo, existe una forma alternativa de aprovechar la capacidad de encontrar mínimos locales. En lugar de usar la red únicamente para el almacenamiento de memoria, podemos emplearla para construir interpretaciones de información sensorial. Para ilustrar esta idea, profundicemos en los detalles de inferir información de una línea 2D en una imagen sobre el mundo tridimensional. Cuando observamos una línea 2D, puede originarse en varios bordes tridimensionales del mundo. Debido a la pérdida de información de profundidad en la imagen, varios bordes 3D pueden dar lugar a la misma apariencia en la retina. Esta ambigüedad surge porque nos falta conocimiento sobre la profundidad en cada extremo de la línea.

Para abordar esto, asumimos que un borde 3D recto en el mundo genera una línea 2D recta en la imagen. Sin embargo, esta suposición elimina dos grados de libertad relacionados con la profundidad en cada extremo del borde 3D. En consecuencia, toda una familia de bordes 3D corresponde a la misma línea 2D, pero solo podemos percibir uno de ellos a la vez. Ahora, consideremos un ejemplo que demuestra cómo podemos utilizar la capacidad de encontrar estados de baja energía en una red de unidades binarias para ayudar a interpretar la información sensorial. Supongamos que tenemos un dibujo lineal y queremos interpretarlo como un objeto tridimensional. Para cada línea 2D potencial, asignamos una neurona correspondiente. Solo unas pocas neuronas se activarán en cualquier imagen dada, representando las líneas actuales.

Para construir interpretaciones, introducimos un conjunto de unidades de línea 3D, una para cada borde 3D posible. Dado que cada unidad de línea 2D puede corresponder a múltiples líneas 3D, debemos excitar todas las líneas 3D relevantes y garantizar la competencia entre ellas, ya que solo una línea 3D debe estar activa a la vez. Para lograr esto, establecemos conexiones excitatorias desde la unidad de línea 2D a todas las líneas 3D candidatas, junto con conexiones inhibitorias para permitir la competencia.

Sin embargo, el cableado de la red neuronal aún no está completo. Necesitamos incorporar información sobre cómo se conectan los bordes 3D. Por ejemplo, cuando dos líneas 2D convergen en la imagen, es muy probable que correspondan a bordes con la misma profundidad en el punto de unión. Podemos representar esta expectativa introduciendo conexiones adicionales que admitan dichos bordes 3D coincidentes.

Además, podemos aprovechar la ocurrencia común de bordes 3D que se unen en ángulos rectos. Al establecer conexiones más fuertes entre dos bordes 3D que coinciden en profundidad y forman un ángulo recto, podemos indicar su relación cohesiva. Estas conexiones, representadas por líneas verdes más gruesas, brindan información sobre cómo se conectan los bordes del mundo y contribuyen a la formación de un objeto 3D coherente. Ahora, nuestra red contiene conocimiento sobre la disposición de los bordes en el mundo y cómo se proyectan para crear líneas en la imagen. Cuando alimentamos una imagen en esta red, debería generar una interpretación. En el caso de la imagen que presento, hay dos interpretaciones distintas, conocidas como el cubo de Necker. La red exhibiría dos mínimos de energía, cada uno correspondiente a una de las posibles interpretaciones del cubo de Necker.

Tenga en cuenta que este ejemplo sirve como una analogía para comprender el concepto de usar estados de baja energía como interpretaciones de datos de percepción. La construcción de un modelo completo que justifique la inversión del cubo de Necker sería considerablemente más complejo que el escenario simplificado que se describe aquí. Si decidimos utilizar estados de baja energía para representar interpretaciones perceptivas sólidas, surgen dos desafíos clave. Primero, debemos abordar el problema de la búsqueda: cómo evitar que las unidades ocultas queden atrapadas en mínimos de energía locales deficientes. Los mínimos deficientes reflejan interpretaciones subóptimas basadas en nuestro modelo y pesos actuales. ¿Existe un mejor enfoque que simplemente descender en energía desde un estado inicial aleatorio?

El segundo desafío es aún más desalentador: cómo aprender los pesos de las conexiones entre unidades ocultas y entre unidades visibles y ocultas. ¿Existe un algoritmo de aprendizaje sencillo para ajustar estos pesos, teniendo en cuenta que no hay un supervisor externo que guíe el proceso de aprendizaje? Nuestro objetivo es que la red reciba información y construya patrones significativos de actividad en las unidades ocultas que representan interpretaciones sensatas. Esto plantea un desafío considerable.

En resumen, utilizar las redes de Hopfield y su función energética de una manera novedosa implica incorporar unidades ocultas para derivar interpretaciones de la entrada perceptiva. Los pesos entre unidades representan restricciones a las buenas interpretaciones, y encontrar estados de baja energía nos permite descubrir interpretaciones favorables.

Sin embargo, hay desafíos que superar. El primer desafío es el problema de la búsqueda, que consiste en evitar quedar atrapado en mínimos locales deficientes de energía. Estos mínimos representan interpretaciones subóptimas y es crucial encontrar un método de búsqueda eficiente. El segundo desafío es aprender los pesos sobre las conexiones entre unidades ocultas y entre unidades visibles y ocultas. Esta tarea se complica por la ausencia de un supervisor o guía externa. Se necesita un algoritmo de aprendizaje adecuado para ajustar los pesos, lo que permite que la red construya interpretaciones significativas de la entrada sensorial. Es importante tener en cuenta que el ejemplo proporcionado, que involucra la interpretación de un dibujo lineal 2D como un objeto 3D, es una analogía para ilustrar el concepto de usar estados de baja energía para las interpretaciones. La construcción de un modelo integral para manejar fenómenos de percepción más complejos requeriría enfoques más complejos.

En el próximo video, profundizaremos en el problema de búsqueda y exploraremos posibles soluciones para evitar quedar atrapados en mínimos locales pobres de la función de energía.

 

Clase 11.4 — Uso de unidades estocásticas para mejorar la búsqueda



Lección 11.4 — Uso de unidades estocásticas para mejorar la búsqueda [Redes neuronales para el aprendizaje automático]

En este video, explicaré cómo agregar ruido a los sistemas puede ayudarlos a escapar de los mínimos locales. Específicamente, le mostraré cómo incorporar ruido en las unidades de una red de Hopfield de manera adecuada.

Una red Hopfield siempre toma decisiones que reducen la energía. Esto hace que sea difícil salir de un mínimo local. Si estamos atrapados en un mínimo local, no podemos superar la barrera energética para alcanzar un mínimo mejor.

Sin embargo, al agregar ruido aleatorio, podemos escapar de los mínimos pobres, especialmente aquellos que son poco profundos y carecen de barreras energéticas significativas. La estrategia más efectiva es comenzar con un alto nivel de ruido, lo que permite la exploración del espacio en una escala gruesa y encontrando generalmente buenas regiones. A medida que el nivel de ruido disminuye, el enfoque cambia a los mejores mínimos cercanos.

El recocido simulado es una técnica que reduce gradualmente el nivel de ruido para guiar el sistema hacia un mínimo profundo. Aprovecha la temperatura en un sistema físico o simulado, donde una temperatura más alta aplana el paisaje energético, permitiendo cruzar más fácilmente las barreras, mientras que una temperatura más baja mejora la relación de probabilidades para favorecer las transiciones de un mínimo a otro.

Para introducir ruido en una red de Hopfield, reemplazamos las unidades de umbral binarias con unidades estocásticas binarias que toman decisiones aleatorias sesgadas. El nivel de ruido está controlado por un parámetro llamado temperatura. Elevar el nivel de ruido corresponde a disminuir las brechas de energía entre configuraciones.

Es importante comprender el concepto de equilibrio térmico en el contexto de las máquinas de Boltzmann. A una temperatura fija, el equilibrio térmico se refiere a la distribución de probabilidad que se asienta en una distribución estacionaria, determinada por la función de energía. La probabilidad de una configuración en equilibrio térmico es proporcional a e elevado a la potencia de menos su energía.

Alcanzar el equilibrio térmico implica ejecutar múltiples sistemas estocásticos con los mismos pesos y aplicar reglas de actualización estocástica. Aunque los sistemas individuales siguen cambiando de configuración, la fracción de sistemas en cada configuración permanece constante. Esto es análogo a barajar paquetes de cartas en un gran casino hasta que el orden inicial se vuelve irrelevante y hay un número igual de paquetes en cada orden posible.

El recocido simulado es un método poderoso para superar los óptimos locales, pero no se discutirá más en este curso, ya que puede distraer la comprensión de las máquinas de Boltzmann. En su lugar, se utilizarán unidades estocásticas binarias con una temperatura de uno (función logística estándar).

Agregar ruido a los sistemas, como las redes de Hopfield y las máquinas de Boltzmann, puede ayudar a escapar de los mínimos locales y explorar regiones más favorables. El nivel de ruido está controlado por la temperatura, y alcanzar el equilibrio térmico implica que la fracción de sistemas en cada configuración permanezca constante mientras los sistemas individuales siguen cambiando sus estados.

 

Lección 11.5 — Cómo una máquina de Boltzmann modela datos



Lección 11.5 — Cómo una máquina de Boltzmann modela datos [Redes neuronales para el aprendizaje automático]

En este video, explicaré cómo una máquina de Boltzmann modela vectores de datos binarios. En primer lugar, discutiré las razones para modelar vectores de datos binarios y las posibles aplicaciones de tal modelo. Luego, profundizaré en cómo las probabilidades asignadas a los vectores de datos binarios están determinadas por los pesos en una máquina de Boltzmann.

Las máquinas de Boltzmann, también conocidas como redes estocásticas de Hopfield con unidades ocultas, son efectivas para modelar datos binarios. Al utilizar unidades ocultas, estas máquinas pueden ajustar un modelo a un conjunto de vectores de entrenamiento binarios y asignar una probabilidad a cada vector binario posible.

Hay varias aplicaciones prácticas para modelar datos binarios. Por ejemplo, si tiene diferentes distribuciones de vectores binarios, es posible que desee determinar a qué distribución pertenece un nuevo vector binario. Mediante el uso de unidades ocultas para modelar la distribución de cada tipo de documento, puede identificar la clase de documento más probable para un vector binario determinado.

Además, las máquinas de Boltzmann pueden ser útiles para monitorear sistemas complejos y detectar comportamientos inusuales. Suponga que tiene una central nuclear con lecturas binarias de varios diales que indican el estado de la central. En lugar de confiar en el aprendizaje supervisado, que requiere ejemplos de estados peligrosos, puede construir un modelo de estados normales y detectar desviaciones de la norma. De esta manera, puede identificar estados inusuales sin conocimiento previo de tales estados.

Para calcular la probabilidad posterior de que una distribución particular haya generado los datos observados, puede emplear el teorema de Bayes. Dados los datos observados, la probabilidad de que provenga de un modelo específico es la probabilidad de que el modelo genere esos datos dividida por la suma de la misma cantidad para todos los modelos.

Hay dos enfoques principales para generar modelos de datos, específicamente vectores binarios. El enfoque del modelo causal implica generar primero los estados de las variables latentes, que luego se utilizan para generar el vector binario. Este modelo se basa en conexiones ponderadas y sesgos entre las unidades latentes y visibles. El análisis factorial es un ejemplo de un modelo causal que utiliza variables continuas.

Por otro lado, una máquina de Boltzmann es un modelo basado en energía que no genera datos de manera causal. En cambio, define todo en términos de las energías de configuraciones conjuntas de unidades visibles y ocultas. La probabilidad de una configuración conjunta se define directamente en términos de energía o se calcula según el procedimiento después de actualizar las unidades binarias estocásticas hasta que se alcanza el equilibrio térmico. La energía de una configuración conjunta consta de términos de sesgo, interacciones visible-visible, interacciones visible-oculto e interacciones oculto-oculto.

Para calcular las probabilidades de diferentes vectores visibles, podemos trabajar con un ejemplo. Anotando todos los estados posibles de las unidades visibles, computando sus energías negativas, exponenciando esas energías y normalizando las probabilidades, podemos determinar las probabilidades de configuraciones conjuntas y vectores visibles individuales.

Para redes más grandes, calcular la función de partición se vuelve inviable debido al número exponencial de términos. En tales casos, podemos usar los métodos de Monte Carlo de la cadena de Markov para obtener muestras del modelo. Al actualizar las unidades estocásticamente en función de sus brechas de energía, podemos llegar a la distribución estacionaria y obtener una muestra del modelo. La probabilidad de una muestra es proporcional ae a la potencia de la energía negativa.

Además, podríamos estar interesados en obtener muestras de la distribución posterior sobre configuraciones ocultas dado un vector de datos, que es necesario para el aprendizaje. Al usar la cadena de Markov Monte Carlo con las unidades visibles sujetas al vector de datos, podemos actualizar solo las unidades ocultas y obtener muestras de la distribución posterior. Esta información es crucial para encontrar buenas explicaciones para los datos observados y guiar los procesos de aprendizaje.

El proceso de aprendizaje en una máquina de Boltzmann implica ajustar los pesos y sesgos para mejorar el ajuste del modelo a los datos de entrenamiento. Este proceso de aprendizaje generalmente se logra a través de un algoritmo llamado divergencia contrastiva.

La divergencia contrastiva es un método de aproximación utilizado para estimar el gradiente de la función de verosimilitud logarítmica. Nos permite actualizar los pesos y sesgos en la máquina de Boltzmann de manera eficiente. La idea básica detrás de la divergencia contrastiva es realizar algunos pasos de muestreo de Gibbs, lo que implica alternar entre actualizar las unidades ocultas y actualizar las unidades visibles, a partir de un vector de datos.

Para actualizar las unidades ocultas, podemos muestrear sus estados en función de las probabilidades determinadas por la energía de la configuración conjunta de unidades visibles y ocultas. Luego, actualizamos las unidades visibles en función de los nuevos estados de las unidades ocultas. Este proceso se repite durante algunas iteraciones hasta que la cadena de Markov alcanza un equilibrio aproximado.

Una vez que hemos obtenido una muestra de la distribución posterior sobre configuraciones ocultas, podemos usarla para calcular las asociaciones positivas y negativas entre las unidades visibles y ocultas. Las asociaciones positivas se calculan tomando el producto externo del vector de datos y la configuración oculta muestreada. Las asociaciones negativas se calculan de manera similar, pero utilizando las unidades visibles obtenidas del proceso de muestreo de Gibbs.

Tomando la diferencia entre las asociaciones positivas y negativas, podemos calcular el gradiente de la función de verosimilitud logarítmica. Luego, este gradiente se usa para actualizar los pesos y sesgos de la máquina de Boltzmann a través de una regla de aprendizaje, como el descenso de gradiente estocástico.

El proceso de aprendizaje continúa aplicando repetidamente la divergencia contrastiva, muestreando la distribución posterior y actualizando los pesos y sesgos. Con el tiempo, la máquina de Boltzmann aprende a capturar los patrones y distribuciones subyacentes presentes en los datos de entrenamiento.

Es importante tener en cuenta que entrenar una máquina Boltzmann puede ser una tarea desafiante, especialmente para redes grandes con muchas unidades ocultas. La complejidad computacional aumenta exponencialmente con el número de unidades, lo que dificulta realizar cálculos exactos. Sin embargo, métodos aproximados como la divergencia contrastiva proporcionan una solución práctica para el aprendizaje en máquinas de Boltzmann.

El aprendizaje en una máquina de Boltzmann implica ajustar los pesos y sesgos a través de la divergencia contrastiva, que se aproxima al gradiente de la función de verosimilitud logarítmica. Mediante el muestreo iterativo de la distribución posterior y la actualización de los parámetros del modelo, la máquina de Boltzmann puede aprender a modelar los patrones subyacentes en los datos binarios.

 

Lección 12.1 — Aprendizaje automático de Boltzmann



Lección 12.1 — Aprendizaje automático de Boltzmann [Redes neuronales para el aprendizaje automático]

En el video anterior, demostré cómo se puede usar una máquina de Boltzmann como modelo probabilístico para vectores de datos binarios. Ahora, profundicemos en el algoritmo de aprendizaje automático de Boltzmann.

Inicialmente, el algoritmo de aprendizaje automático de Boltzmann era lento y ruidoso, lo que lo hacía poco práctico. Sin embargo, se desarrollaron varias técnicas para acelerar significativamente el algoritmo, haciéndolo más práctico y efectivo. De hecho, se ha utilizado con éxito en una competencia de aprendizaje automático de un millón de dólares.

El algoritmo de aprendizaje automático de Boltzmann es un algoritmo de aprendizaje no supervisado, lo que significa que no requiere datos etiquetados. En cambio, su objetivo es construir un modelo de un conjunto de vectores de entrada (o vectores de salida) maximizando el producto de las probabilidades asignadas por la máquina de Boltzmann a los vectores de entrenamiento. Esto también se puede lograr maximizando la suma de las probabilidades logarítmicas o la probabilidad de obtener los casos de entrenamiento.

Para entrenar la máquina de Boltzmann, seguimos un proceso de asentamiento en una distribución estacionaria varias veces sin entrada externa. Luego muestreamos el vector visible y repetimos este proceso varias veces para obtener muestras de la distribución posterior.

Aprender en la máquina de Boltzmann puede ser un desafío debido a las interacciones entre los pesos. Cada peso necesita saber acerca de otros pesos para determinar la dirección adecuada para el cambio. Sorprendentemente, un algoritmo de aprendizaje simple que utiliza solo información local es suficiente. La regla de aprendizaje se basa en la diferencia de dos correlaciones, capturando la información necesaria para las actualizaciones de peso.

La regla de aprendizaje consta de dos términos. El primer término aumenta los pesos proporcionalmente al producto de las actividades unitarias observadas al presentar los datos. Este término es similar al término de almacenamiento en una red Hopfield. Sin embargo, sin control, los pesos seguirían aumentando, lo que generaría inestabilidad. El segundo término disminuye los pesos proporcionalmente al producto de las actividades unitarias al muestrear de la distribución del modelo. Este término ayuda a eliminar los mínimos espurios y mantiene la estabilidad.

La derivada del logaritmo de probabilidad de un vector visible con respecto a un peso es notablemente simple. Se puede expresar como el producto de las dos actividades unitarias conectadas. Esta simplicidad surge de la relación lineal entre el logaritmo de probabilidades y la función de energía, la cual, a su vez, es lineal en los pesos.

La fase negativa en el proceso de aprendizaje sirve para desaprender o reducir la influencia de ciertas configuraciones. Se enfoca en disminuir la energía de los términos que contribuyen significativamente a la función de partición, reduciendo así su impacto.

Para recopilar las estadísticas requeridas para la regla de aprendizaje, se usa comúnmente un método llamado divergencia contrastiva. En la fase positiva, los vectores de datos se fijan en las unidades visibles y las unidades ocultas se actualizan hasta que se alcanza el equilibrio térmico. Luego se muestrean las correlaciones entre pares de unidades y se promedian sobre todos los vectores de datos. En la fase negativa, no se bloquea ningún dato y se permite que la red alcance el equilibrio sin interferencia externa. Las correlaciones entre pares de unidades se muestrean nuevamente varias veces.

Determinar la cantidad de iteraciones necesarias en la fase negativa puede ser un desafío, ya que el panorama energético de la máquina de Boltzmann puede contener múltiples modos. Estos modos representan diferentes configuraciones con niveles de energía similares, y es necesario repetir el muestreo para capturarlos de manera efectiva.

Cuando se trata de una máquina de Boltzmann, es crucial considerar el número de repeticiones requeridas en la fase negativa. Debido a la presencia de múltiples modos en el panorama energético, el algoritmo necesita muestrear extensamente para garantizar que todos los modos estén representados adecuadamente.

El proceso de aprendizaje en una máquina de Boltzmann implica la actualización iterativa de los pesos en función de las correlaciones obtenidas de las fases positiva y negativa. Al comparar las correlaciones en estas fases, el algoritmo puede ajustar los pesos para mejorar la representación de los datos en el modelo.

Un aspecto importante a tener en cuenta es que el algoritmo de aprendizaje automático de Boltzmann es una forma de aprendizaje hebbiano. Sigue el principio propuesto por Donald Hebb en la década de 1940 o 1950, que sugiere que las sinapsis en el cerebro fortalecen las conexiones entre las neuronas en función de su coactivación. En la máquina de Boltzmann, la fase positiva eleva los pesos en proporción al producto de las actividades unitarias observadas durante la presentación de datos, asemejándose a la idea de Hebb.

Sin embargo, sin un mecanismo de contrapeso, los pesos seguirían creciendo indefinidamente, lo que provocaría inestabilidad. La fase negativa sirve para este propósito al reducir los pesos basados en el producto de las actividades de la unidad al tomar muestras de la distribución del modelo. Este equilibrio asegura que la máquina de Boltzmann permanezca estable durante el proceso de aprendizaje.

Vale la pena mencionar que el algoritmo de aprendizaje automático de Boltzmann tiene fundamentos teóricos relacionados con funciones de energía y distribuciones de probabilidad. La probabilidad de una configuración global en equilibrio térmico sigue una función exponencial de su energía. La relación lineal entre los pesos y la probabilidad logarítmica permite cálculos derivados directos y facilita actualizaciones de peso eficientes.

El algoritmo de aprendizaje automático de Boltzmann es un enfoque de aprendizaje no supervisado que tiene como objetivo construir un modelo de vectores de entrada o salida. Al maximizar las probabilidades asignadas a los vectores de entrenamiento, el algoritmo ajusta los pesos usando una combinación de correlaciones positivas y negativas. Este proceso de aprendizaje, junto con técnicas como la divergencia contrastiva, ayuda a la máquina de Boltzmann a capturar patrones complejos en los datos.

 

Lecture 12.3 — Restricted Boltzmann Machines



Lecture 12.3 — Restricted Boltzmann Machines [Neural Networks for Machine Learning]

Boltzmann machines have a simplified architecture with no connections between hidden units, making it easy to compute the equilibrium distribution of the hidden units when the visible units are clamped. The learning algorithm for Boltzmann machines is slow, but a shortcut was discovered in 1998 that led to an efficient learning algorithm for restricted Boltzmann machines (RBMs). RBMs have restricted connectivity, with one layer of hidden units and no connections between hidden or visible units. The RBM architecture is a bipartite graph with independent computations for each unit.

The shortcut allows for quick computation of the expected values of connections between visible and hidden units in parallel. A learning algorithm for RBMs introduced in 2008 involves clamping a data vector on the visible units, computing the expected values of connections, and averaging them over the data vectors in the mini-batch. In the negative phase, fantasy particles (global configurations) are used to update each particle a few times, and the expected values of connections are averaged over the fantasy particles. This algorithm builds good density models for binary vectors.

Another learning algorithm for RBMs is faster but not as effective in building density models. It involves running an alternating chain of updates between visible and hidden units. The learning rule updates the weights based on the difference between the expected values of connections at the beginning and end of the chain. Running the chain for a long time to reach thermal equilibrium is not necessary; even a short chain produces effective learning.

The shortcut works because the Markov chain wanders away from the data towards the equilibrium distribution. By changing the weights to lower the probability of reconstructions and raise the probability of the data after one full step, the chain stops wandering away from the data. The learning stops when the data and the reconstructions have the same distribution. The energy surface in the space of global configurations is modified to create an energy minimum at the data point during learning.

However, the shortcut fails for regions far from the data. Persistent particles, which remember their states and undergo additional updates, can help address this issue. A compromise between speed and correctness is to start with small weights and use contrastive divergence (CD) with a few steps (CD-1, CD-3, CD-5, etc.) as the weights grow. This approach maintains effective learning even as the mixing rate of the Markov chain decreases.

Using this approach, the learning algorithm for restricted Boltzmann machines (RBMs) strikes a balance between speed and accuracy. It starts with small weights and utilizes contrastive divergence (CD) with a small number of steps, such as CD-1, as the weights gradually increase. This strategy ensures that the learning process continues to work reasonably well even when the mixing rate of the Markov chain slows down.

It is important to consider regions of the data space that the model favors but are far from any actual data points. These regions, known as low-energy holes, can cause issues with the normalization term. To address this, a technique called persistent particles can be employed. Persistent particles retain their states and undergo additional updates after each weight update. By doing so, they can explore and eventually fill up these low-energy holes, improving the model's performance.

The RBM learning algorithm using the shortcut and various techniques, such as CD with different numbers of steps and the use of persistent particles, allows for efficient learning and the construction of effective density models for sets of binary vectors. While the shortcut deviates from maximum likelihood learning and has theoretical limitations, it has proven to work well in practice, leading to a resurgence of interest in Boltzmann machine learning.

 

Lección 12.4 — Un ejemplo de aprendizaje de GBR



Lección 12.4 — Un ejemplo de aprendizaje RBM [Redes neuronales para el aprendizaje automático]

En este video, demostraremos un ejemplo simple de una máquina Boltzmann restringida (RBM) que aprende un modelo de dos escritos a mano. Una vez que el modelo esté entrenado, evaluaremos su capacidad para reconstruir dos y observar su comportamiento cuando se le dé un dígito diferente para reconstruir. Además, examinaremos los pesos obtenidos al entrenar un RBM más grande en todas las clases de dígitos, que aprende una amplia gama de características que son efectivas para reconstruir y modelar varias clases de dígitos.

El RBM utilizado en este ejemplo tiene imágenes de 16x16 píxeles de dos y 50 unidades ocultas binarias que funcionan como detectores de características. Cuando se le presenta un caso de datos, el RBM activa los detectores de características utilizando los pesos y las conexiones de los píxeles a los detectores de características. Cada neurona binaria toma una decisión estocástica para adoptar un estado de 1 o 0. Luego, el RBM usa estas activaciones para reconstruir los datos tomando decisiones binarias para cada píxel. Los pesos se actualizan aumentando los pesos entre los píxeles activos y los detectores de características activas durante el procesamiento de datos y disminuyendo los pesos durante la reconstrucción.

Inicialmente, los pesos son aleatorios y las reconstrucciones tienen menor energía que los datos. A través del entrenamiento en cientos de ejemplos de dígitos y ajustes de peso, los pesos forman patrones gradualmente. Muchos detectores de funciones comienzan como detectores globales y se vuelven más localizados a medida que avanza el entrenamiento. Los pesos finales revelan que cada neurona se ha convertido en un detector de características diferente, siendo la mayoría de los detectores de naturaleza local. Por ejemplo, un detector de características puede detectar la parte superior de un dos activando sus píxeles blancos cuando la parte superior de un dos está presente y sus píxeles negros cuando no hay nada.

Después de aprender el modelo, podemos evaluar sus capacidades de reconstrucción. Cuando se le da un ejemplo de prueba de un dos, la reconstrucción es generalmente fiel, aunque un poco borrosa. Sin embargo, si proporcionamos un ejemplo de prueba de una clase de dígito diferente, como un tres, el RBM reconstruye una imagen que se parece a un dos en lugar de un tres. Este comportamiento ocurre porque el RBM ha aprendido principalmente detectores de características específicos de dos y carece de detectores para ciertas características de otros dígitos.

Además, mostramos detectores de características aprendidos en la primera capa oculta de un RBM más grande entrenado en las clases de diez dígitos. Estos detectores de características exhiben una amplia variedad de patrones. Algunos detectan características específicas como líneas inclinadas, mientras que otros capturan regularidades espaciales o de largo alcance introducidas por la normalización de los datos. En general, el RBM demuestra su capacidad para aprender formas complejas de representar y detectar características en los datos de entrada.

Además, me gustaría señalar que el RBM utilizado en esta demostración consta de 500 unidades ocultas, lo que le permite modelar todas las clases de diez dígitos. Este modelo se ha sometido a un extenso entrenamiento utilizando una técnica llamada divergencia contrastiva. Como resultado, ha adquirido un conjunto diverso de detectores de características.

Al examinar los detectores de características en la capa oculta, observamos patrones intrigantes. Por ejemplo, hay un detector de características, indicado por el recuadro azul, que parece adecuado para detectar la presencia de líneas diagonales. Por otro lado, el detector de características en el cuadro rojo exhibe una característica única. Prefiere activar los píxeles ubicados muy cerca de la parte inferior de la imagen y no le gustan los píxeles en una fila específica ubicada 21 píxeles por encima de la parte inferior. Este comportamiento se deriva de la normalización de los datos, donde los dígitos no pueden superar una altura de 20 píxeles. En consecuencia, un píxel activado en la región de peso positivo no puede activarse simultáneamente en la región de peso negativo, lo que da como resultado que se aprenda esta regularidad de largo alcance.

Además, otro detector de características, resaltado en el cuadro verde, demuestra una propiedad interesante. Detecta la posición inferior de un trazo vertical y puede detectarlo en múltiples posiciones sin tener en cuenta las posiciones intermedias. Este comportamiento se parece al dígito menos significativo de un número binario, que alterna entre estar activo e inactivo a medida que aumenta la magnitud del número. Muestra la capacidad de RBM para desarrollar representaciones complejas de posiciones y relaciones espaciales.

Estos ejemplos ilustran la capacidad de RBM para aprender y extraer características significativas de los datos de entrada. Al ajustar los pesos durante el proceso de aprendizaje, el RBM tiene como objetivo hacer que los datos tengan poca energía mientras se mantiene una energía más alta para las reconstrucciones. Este mecanismo de aprendizaje permite que el RBM modele y reconstruya imágenes de dígitos de manera efectiva, capturando las características globales y locales de los dígitos en sus representaciones aprendidas.

Razón de la queja: