mayo 4, 2022 10:00 am

Jesús

Con el tiempo, el conjunto de redes neuronales va creciendo exponencialmente. Se necesita un mapa para navegar entre muchas arquitecturas y enfoques emergentes.

Afortunadamente, he compilado una maravillosa hoja sobre las topologías de las Redes Neuronales, e intentaré explicar cómo funciona y dónde se utiliza. 

¿Preparado? Vamos allá.

Si no eres nuevo en el aprendizaje automático, deberías haberla visto antes:

Perceptrón. El modelo más simple y antiguo de Neurona, tal y como lo conocemos. Toma algunas entradas, las suma, aplica la función de activación y las pasa a la capa de salida. No hay magia aquí.

Red neuronal prealimentada (Feed forward neural networks) también son bastante antiguas: tiene su origen en los años 50. En esta red, la información se mueve en una sola dirección: hacia adelante, desde los nodos de entrada, a través de los nodos ocultos (si los hay) y hacia los nodos de salida. No hay ciclos ni bucles en la red.

En general sigue las siguientes reglas:

  1. 1
    Todos los nodos están completamente conectados.
  2. 2
    La activación fluye de la capa de entrada a la de salida, sin bucles de retorno.
  3. 3
    Hay una capa entre la entrada y la salida (capa oculta).

En la mayoría de los casos, este tipo de redes se entrena con el método de retropropagación.

LasRedes de BaseRadial (RBF) son en realidad Redes Neuronales FF (feed forward), que utilizan la función de base radial como función de activación en lugar de la función logística. ¿Cuál es la diferencia?

La función logística asigna un valor arbitrario a un rango de 0...1, respondiendo a una pregunta de "sí o no". Es buena para los sistemas de clasificación y toma de decisiones, pero funciona mal para los valores continuos.

Por el contrario, las funciones de base radial responden a la pregunta "¿a qué distancia estamos del objetivo?” Esto es perfecto para la aproximación de funciones, y el control de máquinas (como reemplazo de los controladores PID, por ejemplo).

Para resumir, se trata simplemente de redes FF con una función de activación y un aparato diferentes.

Las Redes Neuronales de Retroalimentaación Profunda (Deep feedfoward - DDF) abrieron la caja de pandora del aprendizaje profundo a principios de los 90. Son simplemente redes neuronales FF, pero con más de una capa oculta.

Entonces, ¿qué las hace tan diferentes?

Al entrenar una FF tradicional, sólo pasamos una pequeña cantidad de error a la capa anterior. Por eso, apilar más capas llevaba a un crecimiento exponencial de los tiempos de entrenamiento, lo que hacía que los DFF fueran poco prácticos. Sólo a principios de los años 00 desarrollamos una serie de enfoques que permitieron entrenar los DFF de forma efectiva; ahora forman un núcleo de los sistemas modernos de aprendizaje automático, cubriendo los mismos propósitos que los FF, pero con resultados mucho mejores.

Las Redes Neuronales Recurrentes (RNN) introducen un tipo diferente de células: las células recurrentes. La primera red de este tipo fue la llamada red Jordan, en la que cada célula oculta recibía su propia salida con un retraso fijo: una o más iteraciones. Aparte de eso, era como una FNN común.

Por supuesto, hay muchas variaciones - como pasar el estado a los nodos de entrada, retrasos variables, etc, pero la idea principal sigue siendo la misma. Este tipo de redes neuronales se utiliza principalmente cuando el contexto es importante - cuando las decisiones de iteraciones o muestras pasadas pueden influir en las actuales. Los ejemplos más comunes de este tipo de contextos son los textos: una palabra puede analizarse sólo en el contexto de palabras u oraciones anteriores.

La Memoria a Corto/LargoPlazo (LSTM) Este tipo introduce una célula de memoria, una célula especial que puede procesar datos cuando éstos tienen lagunas temporales (o lags). Las RNN pueden procesar textos "teniendo en cuenta" diez palabras anteriores, y las redes LSTM pueden procesar un fotograma de vídeo "teniendo en cuenta" algo que ocurrió hace muchos fotogramas. Las redes LSTM también se utilizan mucho para la escritura y el reconocimiento del habla.

Las células de memoria se componen en realidad de un par de elementos -llamados puertas- que son recurrentes y controlan cómo se recuerda y olvida la información. La estructura se ve bien en la ilustración de wikipedia (nótese que no hay funciones de activación entre los bloques):

Las cosas (x) en el gráfico son puertas, y tienen sus propios pesos y a veces funciones de activación. En cada muestra deciden si pasar los datos hacia adelante, borrar la memoria y así sucesivamente. La puerta de entrada decide cuánta información de la última muestra se mantendrá en la memoria; la puerta de salida regula la cantidad de datos que se pasan a la siguiente capa, y las puertas de olvido controlan la tasa de ruptura de la memoria almacenada.

Esta es, sin embargo, una implementación muy simple de las células LSTM, existen muchas otras arquitecturas.

Las GRUs son LSTMs con diferentes mecanismos de activación. Punto.

Suena sencillo, pero la falta de puerta de salida facilita la repetición de la misma salida para una entrada concreta varias veces, y actualmente son las más utilizadas en la temáticas de sonido (música) y del habla.

La composición real, sin embargo, es un poco diferente: todas las puertas LSTM se combinan en la llamada puerta de actualización, y la puerta de reinicio está estrechamente ligada a la entrada.

Consumen menos recursos que las LSTM y son casi igual de eficaces.

Los Autocodificadores se utilizan para la clasificación, la agrupación y la compresión de características.

Cuando se entrenan redes neuronales FF para la clasificación, la mayoría de las veces hay que alimentar X ejemplos en Y categorías, y esperar que se active una de las Y celdas de salida. Esto se llama "aprendizaje supervisado".

Las EA, en cambio, pueden entrenarse sin supervisión. Su estructura, cuando el número de celdas ocultas es menor que el número de celdas de entrada (y el número de celdas de salida es igual al número de celdas de entrada), y cuando el EA se entrena de forma que la salida sea lo más parecida posible a la entrada, obliga a los EA a generalizar los datos y a buscar patrones comunes.

Autocodificador Variacional; las VAE o, por sus siglas en inglés, Variational autoencoder, en comparación con las AE, comprimen las probabilidades en lugar de las características.

A pesar de ese simple cambio, cuando los EA responden a la pregunta "¿cómo podemos generalizar los datos?", los VAE responden a la pregunta "¿qué tan fuerte es la conexión entre dos eventos? ¿debemos distribuir el error entre los dos eventos o son completamente independientes?".

Aunque los AE son geniales, a veces, en lugar de encontrar las características más robustas, sólo se adaptan a los datos de entrada (en realidad es un ejemplo de sobreajuste).

Los DAE añaden un poco de ruido en las celdas de entrada: varían los datos por un bit aleatorio, cambian aleatoriamente los bits de entrada, etc. Al hacer esto, se obliga al DAE a reconstruir la salida a partir de una entrada con un poco de ruido, lo que lo hace más general y le obliga a elegir características más comunes.

SAE es otro tipo de autocodificador que en algunos casos puede revelar algunos patrones de agrupación ocultos en los datos. La estructura es la misma que en el AE, pero el número de celdas ocultas es mayor que el número de celdas de la capa de entrada/salida.

Las Cadenas de Markov son un concepto bastante antiguo de grafos en los que cada arista tiene una probabilidad. Antiguamente se utilizaban para construir textos como "después de la palabra hola podríamos tener la palabra querido con un 0,0053% de probabilidad y la palabra tú con un 0,03551% de probabilidad" (tu T9, por cierto, utiliza MCs para predecir su entrada).

Estas MCs no son redes neuronales de forma clásica, las MCs pueden ser utilizadas para la clasificación basada en probabilidades (como los filtros bayesianos), para la agrupación (de algún tipo), y como máquina de estado finito.

Las redes de Hopfield se entrenan con un conjunto limitado de muestras, por lo que responden a una muestra conocida con la misma muestra.

Cada celda sirve como celda de entrada antes del entrenamiento, como celda oculta durante el entrenamiento y como celda de salida cuando se utiliza.

Como las HN tratan de reconstruir la muestra entrenada, pueden utilizarse para denotar y restaurar las entradas. Dada la mitad de la imagen o secuencia aprendida, devolverán la muestra completa.

Las máquinas de Boltzmann son muy similares a las HN, en las que algunas celdas se marcan como de entrada y permanecen ocultas. Las celdas de entrada se convierten en salida tan pronto como cada celda oculta actualiza su estado (durante el entrenamiento, las BM / HN actualizan las celdas una a una, y no en paralelo).

Esta es la primera topología de red que se ha logrado mantener mediante elAlgoritmo de recocido simulado.

Múltiples máquinas de Boltzmann apiladas pueden formar la llamada red de creencia profunda (véase más adelante), que se utiliza para la detección y extracción de características.

La Máquina de Boltzmann Restringida (RBMs) se asemeja, en su estructura, a los BMs pero, al estar restringidos, permiten ser entrenados utilizando la retropropagación al igual que los FFs (con la única diferencia de que antes de pasar la retropropagación los datos se devuelven a la capa de entrada una vez).

Red de CreenciaProfunda (DBN), son en realidad una pila de máquinas de Boltzmann (rodeadas de VAE). Pueden encadenarse entre sí (cuando una NN entrena a otra) y pueden utilizarse para generar datos mediante patrones ya aprendidos.

Las DCN son actualmente las estrellas de las redes neuronales artificiales. Cuentan con células de convolución (o capas de agrupación) y núcleos, cada uno de los cuales sirve para un propósito diferente.

Los núcleos de convolución procesan realmente los datos de entrada, y las capas de agrupación los simplifican (sobre todo utilizando funciones no lineales, como la máxima), reduciendo las características innecesarias.

Utilizados normalmente para el reconocimiento de imágenes, operan sobre un pequeño subconjunto de la imagen (algo así como 20x20 píxeles). La ventana de entrada se desliza a lo largo de la imagen, píxel a píxel. Los datos pasan a las capas de convolución, que forman un embudo (comprimiendo las características detectadas). Desde el punto de vista del reconocimiento de imágenes, la primera capa detecta los gradientes, la segunda las líneas, la tercera las formas, y así sucesivamente hasta la escala de los objetos particulares. Los DFF se suelen adjuntar a la capa convolucional final para el procesamiento posterior de los datos.

Las Redes Deconvolutivas (DNs) son DCNs invertidos. El DN toma la imagen del gato, y produce un vector como { perro: 0, lagarto: 0, caballo: 0, gato: 1 }. El DCN puede tomar este vector y dibujar una imagen de gato a partir de él.

Red Gráfica Inversa Convolucional Profunda (¿eh?) se parece a DCN y DN pegados, pero no es del todo correcto.

En realidad, es un autocodificador. DCN y DN no actúan como redes separadas, sino que son espaciadores de entrada y salida de la red. Utilizadas sobre todo para el procesamiento de imágenes, estas redes pueden procesar imágenes con las que no han sido entrenadas previamente.

La red de gráficos inversa convolucional profunda es un tipo particular de red neuronal convolucional que tiene como objetivo relacionar representaciones gráficas con imágenes. Los expertos explican que una red de gráficos inversos convolucionales profundos utiliza un paradigma de “visión como gráficos inversos” que utiliza elementos como iluminación, ubicación de objetos, textura y otros aspectos del diseño de imágenes para un procesamiento de imágenes muy sofisticado.

Red generativa antagónica (RGAs) representa una enorme familia de redes dobles, que se componen de un generador y un discriminador. Constantemente intentan engañarse mutuamente: el generador intenta generar algunos datos, y el discriminador, al recibir los datos de la muestra, intenta distinguir los datos generados de las muestras. En constante evolución, este tipo de redes neuronales puede generar imágenes de la vida real, en caso de que sea capaz de mantener el equilibrio de entrenamiento entre estas dos redes.

Máquina de Estado Líquido (LSM) es una red neuronal dispersa (no totalmente conectada) en la que las funciones de activación se sustituyen por niveles de umbral. La célula acumula los valores de las muestras secuenciales y emite la salida sólo cuando se alcanza el límite, poniendo el contador interno de nuevo a cero.

Esta idea está tomada del cerebro humano, y estas redes se utilizan ampliamente en los sistemas de visión por ordenador y de reconocimiento del habla, pero sin grandes avances.

Máquinas de Aprendizaje Extremo (ELM) son un intento de reducir la complejidad de las redes FF mediante la creación de capas ocultas dispersas con conexiones aleatorias. Requieren menos potencia de cálculo, pero la eficacia real depende en gran medida de la tarea y los datos.

Red de Estado de Eco (ESN) es un subtipo de redes recurrentes con un enfoque de entrenamiento especial. Los datos se pasan a la entrada, y luego la salida si se controla durante múltiples iteraciones (permitiendo que las características recurrentes entren en acción). Después sólo se actualizan los pesos entre las celdas ocultas.

Personalmente, no conozco ninguna aplicación real de ese tipo, aparte de múltiples puntos de referencia teóricos. 

Red Neuronal Residual (DRN) es una red profunda en la que una parte de los datos de entrada pasa a las capas siguientes. Esta característica les permite ser realmente profundas (hasta 300 capas), pero en realidad son una especie de RNN sin retardo explícito.

Kohonen Network (KN) KN introduce la característica "distancia a la celda". Este tipo de red, que se utiliza sobre todo para la clasificación, intenta ajustar sus celdas para que reaccionen al máximo ante una entrada determinada. Cuando se actualiza una celda, también se actualizan sus vecinas más cercanas.

Al igual que las SVM, estas redes no siempre se consideran redes neuronales "reales".

Máquinas de Vectores de Soporte (SVM) se utiliza para tareas de clasificación binaria. No importa cuántas dimensiones -o entradas- procese la red, la respuesta es siempre "sí" o "no".

Las SVM no siempre se consideran una red neuronal.

Uff, ¡la última!

Máquina de Turing, las redes neuronales son una especie de cajas negras: podemos entrenarlas, obtener resultados y mejorarlas, pero la ruta de decisión real se nos oculta en su mayor parte.

Una NTM está formada por dos componentes: un controlador de red neuronal típico y una matriz de memoria con la que interactúa. Como en la mayoría de redes neuronales, el controlador se comunica con el usuario mediante vectores de entrada y salida. Estos vectores de salida son los que sirven para parametrizar las operaciones de lectura y escritura sobre la memoria, y se les llama "cabezas".

Estas operaciones de lectura y escritra son de tipo borroso, de este modo se puede entrenar la red usando descenso de gradiente. Estas operaciones no actúan solo sobre un elemento en la memoria; en su lugar interactúan con todos los elementos que hay alojados, centrando la mayor parte de su atención en un número reducido de elemento e interactuando levemente con el resto. El grado en el que las operaciones actúan sobre elementos concretos de la memoria, mientras ignoran el resto, viene determinado por un mecanismo de enfoque de atención.

La localización de la memoria en la que se enfoca está determinada por un sistema de distribución de peso. Estos pesos vienen determinados por una salida de datos de las cabezas y definen el grado en el que se lee o escribe en cada posición.

.          .          .

Espero que te haya gustado este resumen. Si crees que me he equivocado, no dudes en hacérmelo saber, ¿sí?


¡Hasta pronto!

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.