¿Qué son las redes neuronales recurrentes?
Una red neuronal recurrente es un tipo de red neuronal artificial comúnmente utilizada en el reconocimiento de voz y el procesamiento del lenguaje natural. Las redes neuronales recurrentes reconocen las características secuenciales de los datos y usan patrones para predecir el próximo escenario probable.
Los RNN se utilizan en el aprendizaje profundo y en el desarrollo de modelos que simulan la actividad neuronal en el cerebro humano. Son especialmente poderosos en casos de uso donde el contexto es fundamental para predecir un resultado y también se diferencian de otros tipos de redes neuronales artificiales porque utilizan bucles de retroalimentación para procesar una secuencia de datos que informa el resultado final. Estos ciclos de retroalimentación permiten que la información persista. Este efecto a menudo se describe como memoria.
Los casos de uso de RNN tienden a estar conectados a modelos de lenguaje en los que conocer la siguiente letra de una palabra o la siguiente palabra en una oración se basa en los datos que la preceden. Un experimento convincente involucra a un RNN entrenado con las obras de Shakespeare para producir una prosa similar a Shakespeare con éxito. Escribir por RNNs es una forma de creatividad computacional. Esta simulación de la creatividad humana es posible gracias a la comprensión de la gramática y la semántica que la IA ha aprendido de su conjunto de entrenamiento.
Cómo aprenden las redes neuronales recurrentes
Las redes neuronales artificiales se crean con componentes de procesamiento de datos interconectados que están diseñados de manera flexible para funcionar como el cerebro humano. Están compuestos por capas de neuronas artificiales (nodos de red) que tienen la capacidad de procesar la entrada y reenviar la salida a otros nodos de la red. Los nodos están conectados por bordes o pesos que influyen en la fuerza de una señal y la salida final de la red.
En algunos casos, las redes neuronales artificiales procesan la información en una sola dirección desde la entrada hasta la salida. Estas redes neuronales de «alimentación hacia adelante» incluyen redes neuronales convolucionales que sustentan los sistemas de reconocimiento de imágenes. Los RNN, por otro lado, se pueden colocar en capas para procesar información en dos direcciones.
Al igual que las redes neuronales de retroalimentación, los RNN pueden procesar datos desde la entrada inicial hasta la salida final. A diferencia de las redes neuronales de retroalimentación, las RNN utilizan bucles de retroalimentación, como la propagación hacia atrás a lo largo del tiempo, a lo largo del proceso computacional para devolver la información a la red. Esto conecta las entradas y es lo que permite a los RNN procesar datos secuenciales y temporales.
Una red neuronal de retropropagación truncada a través del tiempo es un RNN en el que el número de pasos de tiempo en la secuencia de entrada está limitado por un truncamiento de la secuencia de entrada. Esto es útil para redes neuronales recurrentes que se utilizan como modelos secuencia a secuencia, donde el número de pasos en la secuencia de entrada (o el número de pasos de tiempo en la secuencia de entrada) es mayor que el número de pasos en la secuencia de salida. .
Redes neuronales bidireccionales recurrentes
Las redes neuronales bidireccionales recurrentes (BRNN) son otro tipo de RNN que aprenden simultáneamente las direcciones hacia adelante y hacia atrás del flujo de información. Esto es diferente de los RNN estándar, que solo aprenden información en una dirección. El proceso de aprendizaje simultáneo de ambas direcciones se conoce como flujo de información bidireccional.
En una red neuronal artificial típica, las proyecciones hacia adelante se utilizan para predecir el futuro y las proyecciones hacia atrás se utilizan para evaluar el pasado. Sin embargo, no se utilizan juntos como en un BRNN.
Desafíos de RNN y cómo resolverlos
Los problemas más comunes con RNNS son problemas de explosión y desaparición de gradientes. Los gradientes se refieren a los errores cometidos a medida que se entrena la red neuronal. Si los gradientes comienzan a explotar, la red neuronal se volverá inestable y no podrá aprender de los datos de entrenamiento.
Unidades de memoria a corto plazo
Un inconveniente de los RNN estándar es el problema del gradiente de desaparición, en el que el rendimiento de la red neuronal se ve afectado porque no se puede entrenar adecuadamente. Esto sucede con las redes neuronales de capas profundas, que se utilizan para procesar datos complejos.
Los RNN estándar que utilizan un método de aprendizaje basado en gradientes se degradan a medida que crecen y se vuelven más complejos. Ajustar los parámetros de manera efectiva en las primeras capas se vuelve demasiado lento y costoso desde el punto de vista computacional.
Una solución al problema son las llamadas redes de memoria a corto plazo (LSTM), que los científicos informáticos Sepp Hochreiter y Jurgen Schmidhuber inventaron en 1997. Los RNN construidos con unidades LSTM clasifican los datos en celdas de memoria a corto y largo plazo. Al hacerlo, los RNN pueden determinar qué datos son importantes y deben recordarse y volver a conectarse a la red. También permite a los RNN averiguar qué datos se pueden olvidar.
Unidades recurrentes cerradas
Las unidades recurrentes cerradas (GRU) son una forma de unidad de red neuronal recurrente que se puede usar para modelar datos secuenciales. Si bien las redes LSTM también se pueden utilizar para modelar datos secuenciales, son más débiles que las redes de alimentación directa estándar. Al usar un LSTM y un GRU juntos, las redes pueden aprovechar las fortalezas de ambas unidades: la capacidad de aprender asociaciones a largo plazo para el LSTM y la capacidad de aprender de patrones a corto plazo para el GRU.
Perceptrones multicapa y redes neuronales convolucionales
Los otros dos tipos de clases de redes neuronales artificiales incluyen perceptrones multicapa (MLP) y redes neuronales convolucionales.
Los MLP constan de varias neuronas dispuestas en capas y, a menudo, se utilizan para clasificación y regresión. Un perceptrón es un algoritmo que puede aprender a realizar una tarea de clasificación binaria. Un solo perceptrón no puede modificar su propia estructura, por lo que a menudo se apilan en capas, donde una capa aprende a reconocer características más pequeñas y específicas del conjunto de datos.
Las neuronas de diferentes capas están conectadas entre sí. Por ejemplo, la salida de la primera neurona está conectada a la entrada de la segunda neurona, que actúa como filtro. Los MLP se utilizan para supervisar el aprendizaje y para aplicaciones como el reconocimiento óptico de caracteres, el reconocimiento de voz y la traducción automática.
Las redes neuronales convolucionales, también conocidas como CNN, son una familia de redes neuronales utilizadas en la visión por computadora. El término «convolucional» se refiere a la convolución – el proceso de combinar el resultado de una función con el proceso de calcularlo / calcularlo – de la imagen de entrada con los filtros en la red. La idea es extraer propiedades o características de la imagen. Estas propiedades se pueden utilizar para aplicaciones como el reconocimiento o la detección de objetos.
Las CNN se crean a través de un proceso de entrenamiento, que es la diferencia clave entre las CNN y otros tipos de redes neuronales. Una CNN está formada por múltiples capas de neuronas y cada capa de neuronas es responsable de una tarea específica. La primera capa de neuronas podría ser responsable de identificar las características generales de una imagen, como su contenido (por ejemplo, un perro). La siguiente capa de neuronas podría identificar características más específicas (por ejemplo, la raza del perro).