Una red neuronal recurrente (RNN) es una red neuronal de aprendizaje profundo que está entrenada para convertir entradas secuenciales en salidas secuenciales específicas. Una red neuronal tradicional no puede recordar datos pasados, lo que convierte una RNN en algo útil.
Una red neuronal es un sistema computacional inspirado en la estructura del cerebro humano, compuesto de neuronas artificiales. Estas redes están diseñadas para replicar los procesos de toma de decisiones de los humanos. Sin embargo, las redes neuronales tradicionales normalmente procesan cada entrada de forma independiente, sin la capacidad para considerar la secuencia o el contexto de los datos. Por ejemplo, al procesar las palabras “manzana roja”, una red neuronal estándar no reconocería “rojo” como un atributo que describe la manzana, por lo que se pierde por completo el vínculo contextual entre las dos.
Esta es una limitación importante que podría evitar fácilmente que las máquinas lleguen a desarrollar algo parecido a lo que podría considerarse como inteligencia. Para abordar esta deficiencia, los investigadores desarrollaron redes neuronales recurrentes (RNN). A diferencia de los modelos tradicionales, las RNN incorporan mecanismos para retener información durante períodos, lo que les permite mantener una memoria de las entradas anteriores. Esta competencia permite a las RNN comprender secuencias y contextos dentro de los datos, lo que las hace particularmente útiles para tareas en las que el orden es fundamental, como el procesamiento del lenguaje o el análisis de series temporales.
Una red neuronal recurrente está diseñada como una forma de toma de decisiones de IA capaz de reconocer y retener la secuencia en la que aparecen los datos. Esta es una característica fundamental para procesar información secuencial, como texto, números o datos de series temporales. A diferencia de las redes neuronales tradicionales, que tratan cada entrada de forma independiente, las RN pueden conectar la información anterior a las entradas actuales, lo que permite una comprensión más matizada de las secuencias de datos.
Si bien el concepto de red neuronal recurrente fue un cambio importante cuando se introdujo y estableció las bases para crear modelos de aprendizaje profundo, la inteligencia artificial basada en transformadores y los modelos de lenguaje de gran tamaño (LLM) se están convirtiendo en su reemplazo. Estos nuevos desarrollos son más eficientes en el procesamiento de datos secuenciales.
Las RNN se distinguen por su capacidad para procesar secuencias de datos mediante el reconocimiento de las relaciones y las dependencias entre elementos individuales. Si bien todas las RNN comparten esta característica esencial, cada una de las siguientes categorías está diseñada para abordar tipos específicos de desafíos de procesamiento de datos. Estos son los cuatro tipos principales:
Uno a uno
La forma más simple de una RNN, uno a uno, describe las redes en las que se procesa una entrada para generar una salida. Este modelo sirve como base para arquitecturas de RNN más complejas.Uno a muchos
En esta configuración, una sola entrada genera varias salidas. Este tipo de RNN es ideal para tareas en las que una entrada puede desencadenar una serie de salidas relacionadas, pero distintas, como generar una oración a partir de una sola palabra descriptiva o producir una melodía a partir de una nota musical.Muchos a uno
El modelo de muchos a uno procesa varios puntos de datos de entrada para producir una única salida. Se utiliza comúnmente en aplicaciones como el análisis de opinión, donde varias palabras (entradas) contribuyen a determinar la opinión (salida) general sobre una frase o documentoMuchos a muchos
Esta última variación maneja secuencias tanto en las entradas como en las salidas. Es adecuado para tareas como la traducción de idiomas, donde una secuencia de entrada de palabras en un idioma se convierte en una secuencia de salida en otro idioma. Este modelo también puede manejar situaciones en las que la longitud de las secuencias de entrada y salida es diferente.
Una red neuronal que no tiene nodos de bucle se llama red neuronal prealimentada. Este tipo de redes son similares a la RNN, ya que ambos modelos intentan procesar datos de una manera similar a los humanos mediante muchos nodos interconectados. Sin embargo, una red neuronal prealimentada solo transmite la información hacia adelante y el modelo no puede recordar la información ingresada anteriormente. Si usamos el ejemplo anterior, este modelo no podría recordar el rojo cuando haya procesado la manzana.
En su lugar, la red neuronal prealimentada funciona moviendo información de la capa de entrada a la capa de salida, incluidas las capas ocultas. Este tipo de modelo funciona bien para la clasificación de imágenes en la que la entrada y la salida son independientes. Sin embargo, esta red difiere de las redes RNN porque no puede recordar la secuencia como una red recurrente.
La arquitectura de RNN tiene tres variantes principales, cada una adaptada a partir de la estructura básica para mejorar la funcionalidad y el rendimiento para tareas específicas. Esta flexibilidad en el diseño ayuda a satisfacer las demandas únicas de varias tareas de procesamiento de secuencias de datos. Las siguientes variantes modifican la forma en que se procesan y transmiten los datos, lo que permite aplicaciones más especializadas en una variedad de campos:
Una red neuronal recurrente bidireccional (BRNN) procesa secuencias de datos hacia adelante y hacia atrás. La capa hacia adelante funciona de manera muy similar a la primera capa de las RNN, pero la capa hacia atrás funciona de manera diferente para mover la información en una dirección secundaria. Combinar ambas capas aumenta la precisión de las predicciones.
La memoria larga a corto plazo (LSTM) es un modelo diseñado para llevar una memoria más larga. Una RNN básica solo puede recordar la última entrada inmediata. Una LSTM puede utilizar entradas de secuencias anteriores para mejorar su precisión de predicción. Considera este ejemplo simplificado de entrada de datos: La manzana es roja. A Ann le encantan las manzanas rojas. Una LSTM recordaría que la manzana está roja al procesar información sobre qué tipos de manzanas son importantes en esta situación. Una RNN no recordaría que la manzana es roja, porque esa información se presentó en una secuencia anterior.
Una unidad recurrente cerrada (GRU) es una variante sofisticada de la red neuronal recurrente estándar diseñada para abordar algunas de las limitaciones relacionadas con la retención de memoria. Las GRU incorporan puertas, mecanismos que regulan el flujo de información. Estos incluyen la puerta de actualización, que determina la cantidad de información pasada (de pasos anteriores) que se debe retener, y la puerta de reinicio, que decide la cantidad de la información pasada que se debe olvidar. Esto permite a las GRU retener o descartar información de forma selectiva, lo que las hace altamente eficaces para tareas en las que comprender el contexto o la secuencia de eventos es fundamental.
Las RNN son muy versátiles en el manejo de datos que involucran secuencias, lo que las hace adecuadas para una amplia gama de aplicaciones. Estos son algunos de los usos más comunes:
Modelado del lenguaje y generación de texto
Las RNN pueden predecir la siguiente palabra en una oración en función de palabras anteriores, lo que es fundamental para tareas como el autocompletado en los motores de búsqueda o la generación automática de texto legible.Reconocimiento de voz
Estas redes pueden procesar datos de audio con el tiempo, lo que las hace ideales para reconocer palabras habladas en tiempo real y convertirlas en texto, como se ve en asistentes virtuales y aplicaciones móviles de voz a texto.Traducción automática
Las RNN pueden analizar secuencias de palabras en un idioma y convertirlas en otro y mantener la precisión gramatical y contextual en el proceso de traducción.Reconocimiento de imágenes
Aunque esta tarea no es tan común como con otros modelos como las CNN, las RNN pueden utilizarse para analizar secuencias dentro de imágenes, como leer texto manuscrito o procesar fotogramas de video de forma secuencial.Previsión de series de tiempo
Las RNN son adecuadas para predecir valores futuros en una serie basada en datos históricos, aplicables en campos como el pronóstico del mercado de valores, la predicción meteorológica y el pronóstico de la demanda en el sector minorista.
Hay algunos desafíos incluidos en el uso de una RNN, que son parte del razonamiento que implica reemplazarlas con nuevas redes neuronales y variaciones. Estos son cuatro de los mayores obstáculos en el uso de una red neuronal recurrente:
Gradiente explosivo
El gradiente se refiere a la sensibilidad de la tasa de error correspondiente a los parámetros del modelo. Si el gradiente aumenta exponencialmente, puede volverse inestable. Cuando eso sucede, se considera un gradiente explosivo. Ese tipo de error puede llevar a un sobreajuste, que es un fenómeno en el que el modelo puede hacer predicciones con precisión mediante datos de formación, pero no puede hacer lo mismo con datos del mundo real.Desvanecimiento de gradiente
Este desafío surge cuando los valores de gradiente disminuyen a casi cero durante la formación, lo que ralentiza significativamente el proceso de aprendizaje o lo detiene por completo. Un gradiente que se desvanece hace que sea difícil para la RNN capturar y aprender de los datos de formación de manera efectiva, lo que a menudo lleva a un subajuste, en el que el modelo no puede generalizar bien los datos nuevos.Dificultad para procesar secuencias largas
Las RNN pueden tener problemas con secuencias de datos largas. Esta limitación surge porque la información relevante se puede diluir en secuencias largas, lo que dificulta la capacidad del modelo para aprender de manera eficaz a partir de dichos datos.Tiempo de formación lento.
Dado que una RNN procesa los datos de forma secuencial, no puede procesar grandes cantidades de información de forma simultánea. Este procesamiento secuencial da como resultado tiempos de formación más largos, lo que hace que las RNN sean menos eficientes en comparación con otros modelos que pueden procesar datos en paralelo, como los transformadores.
Además de la capacidad de procesar la información secuencialmente, existen otras ventajas principales de confiar en una red neuronal recurrente:
Las RNN están equipadas con estructuras como unidades de memoria larga a corto plazo (LSTM) que les permiten recordar información durante períodos prolongados. Esta característica es fundamental para las tareas en las que es necesario comprender el contexto pasado para hacer predicciones precisas sobre eventos futuros.
Las RNN se pueden combinar con redes neuronales convolucionales (CNN) para mejorar su competencia en el procesamiento de datos espaciales, como las imágenes y los videos. Esta combinación permite a las RNN no solo reconocer patrones a lo largo del tiempo, sino también ampliar su “campo de visión” en términos de datos de píxeles, lo que mejora el análisis de secuencias en las entradas visuales.
A diferencia de muchas otras arquitecturas de redes neuronales, las RNN pueden manejar secuencias de entrada de diferentes longitudes sin necesidad de reformular ni cambiar el tamaño de las entradas. Esto las hace altamente versátiles para aplicaciones como el reconocimiento de voz, donde la duración de los datos de entrada puede variar significativamente.
Las RNN están diseñadas esencialmente para procesar secuencias en las que el tiempo entre eventos es fundamental. Esto las hace excepcionalmente buenas para aplicaciones como la predicción del precio de las acciones, la composición musical y otros análisis sensibles en los que la secuencia y el tiempo de los puntos de datos históricos son fundamentales para predecir el futuro.
Como se indicó, las RNN están compuestas de neuronas artificiales diseñadas para imitar la toma de decisiones de los humanos. Estas neuronas artificiales son nodos de procesamiento de datos que trabajan juntos para llevar a cabo tareas complejas. Las neuronas se organizan en varias capas principales: entrada, salida y capas ocultas. La capa de entrada recibe la información que se deberá procesar y la capa de salida proporciona el resultado. El procesamiento, el análisis y la predicción de datos se llevan a cabo en la capa oculta.
El funcionamiento de una RNN implicar pasar los datos secuenciales que recibe a través de las capas ocultas un paso a la vez. Sin embargo, existe un flujo de trabajo recurrente o una característica de bucle automático en la capa oculta. La capa oculta puede recordar y utilizar entradas anteriores para predicciones futuras en su memoria a corto plazo. La entrada actual se almacenará en la memoria para hacer predicciones en la próxima secuencia.
Por ejemplo, considera la siguiente secuencia: La lluvia es húmeda. Los usuarios quieren una RNN que prediga el concepto “húmedo” cuando recibe la palabra lluvia como entrada. La capa oculta procesaría y almacenaría el concepto de lluvia. Se almacena una copia en su memoria. Luego, cuando recibe la entrada “húmedo”, puede recuperar el concepto de “lluvia” de su memoria y crear una secuencia completa. Esa información se puede utilizar para mejorar la precisión. Esta función es lo que hace que una RNN sea útil para el reconocimiento de voz, la traducción y otras tareas de modelado del lenguaje.
Los ingenieros de aprendizaje automático suelen entrenar redes neuronales como las RNN alimentando el modelo con los datos de formación y, luego, puliendo su rendimiento. Las neuronas en los modelos neuronales reciben un “peso” que indica cuán influyente es la información aprendida durante la formación cuando se hace la predicción de la salida. Inicialmente, cada capa de una RNN compartirá el mismo peso.
Luego, los ingenieros ajustan los pesos a medida que el modelo aprende a determinar la precisión de la predicción. Para hacer esto, se basan en una técnica llamada retropropagación a través del tiempo (BPTT) para calcular el error del modelo y ajustar su peso en consecuencia. Los ingenieros pueden hacer esto para identificar qué estado oculto en la secuencia está causando un error significativo y reajustar el peso para reducir el margen de error.
Los ingenieros de aprendizaje automático desarrollan una red neuronal recurrente con sus lenguajes de codificación preferidos, como Python. Independientemente de cómo elijan hacerlo, estos son los pasos generales para implementar una RNN:
Crear la capa de entrada
El primer paso es crear una capa que pueda recopilar datos de entrada. Esta capa está formada por neuronas artificiales.Crear estados ocultos
Los modelos de RNN pueden tener varias capas ocultas que hacen el procesamiento real de la red neuronal. Estas capas también están formadas por neuronas artificiales que están interconectadas. Esto ayuda a imitar las habilidades humanas de predicción y hace posible la secuenciación.Crear la capa de salida
Esta capa final predice los resultados. Algunos modelos también pueden contener capas posteriores.Entrenar con pesos
Los parámetros exactos y los márgenes de error se crean después de que los ingenieros entrenan el modelo con datos. Puede llevar tiempo ajustar los pesos de manera exacta y evitar que se desvanezcan o exploten los gradientes.
Las redes neuronales recurrentes han sentado una base sólida para el procesamiento secuencial de datos. Sin embargo, tienen limitaciones que han llevado a muchas empresas a confiar en modelos más nuevos y avanzados y en la inteligencia artificial para sus necesidades. Es por eso que Now Platform® de ServiceNow utiliza aprendizaje automático avanzado e IA generativa. Esto incluye marcos de trabajo de aprendizaje automático, comprensión del lenguaje natural, búsqueda y automatización y análisis y minería de procesos: tecnologías de IA innovadoras y de vanguardia que trabajan juntas para que tu empresa crezca.
Mira una demostración de ServiceNow hoy mismo para ver cómo las nuevas soluciones de red neuronal pueden ser tu siguiente paso en el camino hacia el éxito.