¿Qué son las redes neuronales recurrentes?
Descubra cómo las redes neuronales recurrentes utilizan datos secuenciales para resolver problemas temporales comunes observados en la traducción de idiomas y el reconocimiento de voz
Fondo negro y azul
¿Qué son las redes neuronales recurrentes?

Una red neuronal recurrente (RNN) es un tipo de red neuronal artificial que utiliza datos secuenciales o datos de series temporales. Estos algoritmos de deep learning se usan comúnmente para problemas ordinarios o temporales como, por ejemplo, la traducción de idiomas, el procesamiento del lenguaje natural (NLP), el reconocimiento de voz y los subtítulos de imágenes; se incorporan a aplicaciones populares como Siri, búsqueda de voz y Google Translate. Como las redes neuronales convolucionales (CNN) y de propagación hacia delante, las redes neuronales recurrentes utilizan datos de entrenamiento para aprender. Se distinguen por su "memoria", ya que obtienen información de entradas anteriores para influir en la entrada y salida actuales. Mientras que las redes neuronales profundas tradicionales asumen que las entradas y salida son independiente entre sí, la salida de las redes neuronales recurrentes depende de los elementos anteriores dentro de la secuencia. Si bien los eventos futuros también serán útiles para determinar la salida de una determinada secuencia, las redes neuronales recurrentes unidireccionales no pueden tener en cuenta estos eventos en sus predicciones.

Veamos una frase hecha como, por ejemplo, "tirar la casa por la ventana", que se usa cuando alguien hace un gran dispendio, para ayudarnos en la explicación de las RNN. Para que la frase hecha tenga sentido, debe expresarse en ese orden concreto. Como resultado, las redes recurrentes necesitan tener en cuenta la posición de cada palabra en la frase hecha y utilizar esa información para pronosticar la siguiente palabra en la secuencia.

Otra característica distintiva de las redes recurrentes es que comparten parámetros en cada capa de la red. Mientras que las redes de propagación hacia delante tienen diferentes pesos en cada nodo, las redes neuronales recurrentes comparten el mismo parámetro de peso en cada capa de la red. Ahora bien, estos pesos siguen siendo ajustados en los procesos de retropropagación y pendiente de gradiente para facilitar el aprendizaje por refuerzo.

Las redes neuronales recurrentes utilizan el algoritmo de retropropagación a través del tiempo (BPTT) para determinar los gradientes, que es ligeramente diferente de la retropropagación tradicional, ya que es específico para secuenciar los datos. Los principios del BPTT son los mismos que los de la retropropagación tradicional, donde el modelo se entrena a sí mismo calculando errores desde la capa de salida hasta la capa de entrada. Estos cálculos nos permiten ajustar y adaptar los parámetros del modelo según corresponda. El BPTT se diferencia del enfoque tradicional en que el BPTT suma los errores en cada paso temporal, mientras que las redes de propagación hacia delante no necesitan sumar los errores porque no comparten parámetros en cada capa.

Con este proceso, las RNN suelen encontrar dos problemas, conocidos como gradientes explosivos y gradientes desvanecientes. Estos problemas están definidos por el tamaño del gradiente, que es la inclinación de la función de pérdida a lo largo de la curva de error. Cuando el gradiente es demasiado pequeño, continúa haciéndose más pequeño, actualizando los parámetros de peso hasta que se vuelven insignificantes, es decir, 0. Cuando ocurre esto, el algoritmo ya no está aprendiendo. Los gradientes explosivos ocurren cuando el gradiente es demasiado grande y se crea un modelo inestable. En este caso, los pesos del modelo crecerán demasiado y eventualmente se representarán como NaN. Una solución a estos problemas es reducir el número de capas ocultas dentro de la red neuronal, eliminando parte de la complejidad en el modelo de RNN.

Productos destacados

Watson Studio

Watson Machine Learning Accelerator

Tipos de redes neuronales recurrentes

Las redes de propagación hacia delante correlacionan una entrada con una salida y, aunque hemos visualizado redes neuronales recurrentes de esta manera en los diagramas anteriores, en realidad no tienen esta restricción. En su lugar, las entradas y salidas pueden variar de longitud y se utilizan diferentes tipos de RNN para diferentes casos de uso como, por ejemplo, la generación de música, la clasificación de sentimientos y la traducción automática.

Funciones de activación comunes

Como se analizó en el artículo de aprendizaje sobre redes neuronales, una función de activación determina si debe activarse una neurona. Las funciones no lineales suelen convertir la salida de una determinada neurona a un valor entre 0 y 1 o -1 y 1. 

Arquitecturas de RNN variantes

Redes neuronales recurrentes bidireccionales (BRNN): estas son una arquitectura de red variante de las RNN. Mientras que las RNN unidireccionales solo pueden extraerse de entradas anteriores para realizar predicciones sobre el estado actual, las RNN bidireccionales extraen datos futuros para mejorar su exactitud. Si volvemos al ejemplo anterior de "tirar la casa por la ventana" en este artículo, el modelo podrá pronosticar mejor que la tercera palabra en la frase es "casa" si sabe que la última palabra de la secuencia es "ventana".

Memoria a corto-largo plazo (LSTM): esta es una popular arquitectura de RNN, que fue presentada por Sepp Hochreiter y Juergen Schmidhuber como una solución al problema del gradiente desvaneciente. En su estudio (PDF, 388 KB) (enlace externo a IBM), trabajaron para solucionar el problema de las dependencias a largo plazo. Es decir, si el estado anterior que está influyendo en el pronóstico actual no está en un pasado reciente, es posible que el modelo RNN no pueda pronosticar con precisión el estado actual. Por ejemplo, supongamos que queremos pronosticar las palabras en cursiva en la siguiente frase: "Alicia es alérgica a los frutos secos. Ella no puede comer mantequilla de cacahuete". El contexto de una alergia a los frutos secos puede ayudarnos a anticipar que los alimentos que no se pueden comer contienen frutos secos. Sin embargo, si el contexto estuviera varias frases antes, sería más difícil o incluso imposible que la RNN conectara la información. Para remediarlo, las LSTM tienen "celdas" en las capas ocultas de la red neuronal que tienen tres puertas: una puerta de entrada, una puerta de salida y una puerta de olvido. Estas puertas controlan el flujo de información que se necesita para pronosticar la salida en la red. Por ejemplo, si el pronombre de género, como "ella", se ha repetido varias veces en las frases anteriores, puede excluirlo del estado de la celda.

Unidades recurrentes cerradas (GRU): esta variante de RNN es similar a las LSTM, ya que también intenta solucionar el problema de la memoria a corto plazo de los modelos RNN. En lugar de utilizar el "estado de la celda" para regular la información, utiliza estados ocultos y, en lugar de tres puertas, tiene dos: una puerta restablecimiento y una puerta de actualización. Al igual que las puertas en las LSTM, las puertas de restablecimiento y actualización controlan cuánta y qué información se debe retener.

Redes neuronales recurrentes e IBM Cloud

Desde hace décadas, IBM ha sido pionera en el desarrollo de tecnologías de IA y redes neuronales y ha destacado por el desarrollo y la evolución de IBM Watson. Watson se ha afianzado como solución preferida por las empresas que quieren aplicar el procesamiento del lenguaje natural avanzado y las técnicas de deep learning en sus sistemas utilizando un enfoque por capas probado en la adopción y la implementación de IA.

Los productos de IBM, como IBM Watson Machine Learning, también dan soporte a bibliotecas de Python conocidas como, por ejemplo, TensorFlow, Keras y PyTorch, que se usan comúnmente en redes neuronales recurrentes. Utilizando herramientas como IBM Watson Studio y Watson Machine Learning, su empresa puede poner en producción proyectos de IA de código abierto sin problemas, mientras despliega y ejecuta sus modelos en cualquier cloud.

Para obtener más información sobre cómo iniciarse en la tecnología de la inteligencia artificial, explore IBM Watson Studio.

Regístrese para obtener un IBMid y crear su cuenta de IBM Cloud
Soluciones relacionadas
Watson Studio

Cree y escale IA fiable en cualquier cloud. Automatice el ciclo de vida de IA para ModelOps.

Explore IBM Watson Studio
Cloud Paks

Software de cloud híbrido basado en IA.

Explore IBM Cloud Paks
Soluciones de IBM Cloud

Híbridas. Abiertas. Resilientes. Su plataforma y su socio para la transformación digital.

Explore las soluciones en cloud
Recursos Watson Studio

Cree y escale IA fiable en cualquier cloud. Automatice el ciclo de vida de IA para ModelOps.

Watson Machine Learning Accelerator

Acelere su carga de trabajo de deep learning. Acelere la generación de valor con la inferencia y el entrenamiento de modelos de IA.

Dé el siguiente paso

Descubra cómo IBM Watson se ha afianzado como solución preferida por las empresas que quieren aplicar técnicas avanzadas de procesamiento del lenguaje natural y deep learning en sus sistemas.

Agilice su actividad