Introducción a la red neuronal recurrente

Las redes neuronales recurrentes (RNN) son un tipo de red neuronal donde la salida del paso anterior se alimenta como entrada al paso actual . En las redes neuronales tradicionales, todas las entradas y salidas son independientes entre sí, pero en casos como cuando se requiere predecir la siguiente palabra de una oración, se requieren las palabras anteriores y, por lo tanto, es necesario recordar las palabras anteriores. Así nació RNN, que resolvió este problema con la ayuda de una capa oculta. La característica principal y más importante de RNN es el estado oculto , que recuerda alguna información sobre una secuencia.

RNN tiene una «memoria» que recuerda toda la información sobre lo que se ha calculado. Utiliza los mismos parámetros para cada entrada, ya que realiza la misma tarea en todas las entradas o capas ocultas para producir la salida. Esto reduce la complejidad de los parámetros, a diferencia de otras redes neuronales.

Cómo funciona RNN

El funcionamiento de un RNN se puede entender con la ayuda del siguiente ejemplo:

Ejemplo:

Supongamos que hay una red más profunda con una capa de entrada, tres capas ocultas y una capa de salida. Entonces, como otras redes neuronales, cada capa oculta tendrá su propio conjunto de pesos y sesgos, digamos, para la capa oculta 1, los pesos y sesgos son (w1, b1), (w2, b2) para la segunda capa oculta y (w3, b3) para la tercera capa oculta. Esto significa que cada una de estas capas son independientes entre sí, es decir, no memorizan las salidas anteriores.

Ahora la RNN hará lo siguiente:

  • RNN convierte las activaciones independientes en activaciones dependientes al proporcionar los mismos pesos y sesgos a todas las capas, lo que reduce la complejidad de aumentar los parámetros y memorizar cada salida anterior al dar cada salida como entrada a la siguiente capa oculta.
  • Por lo tanto, estas tres capas se pueden unir de manera que los pesos y sesgos de todas las capas ocultas sean los mismos, en una sola capa recurrente.

  • Fórmula para calcular el estado actual:

    rnn
    dónde:

    ht -> current state
    ht-1 -> previous state
    xt -> input state
    
  • Fórmula para aplicar la función de activación (tanh):

    rnn
    dónde:

    whh -> weight at recurrent neuron
    wxh -> weight at input neuron
    
  • Fórmula para calcular la salida:

    rnn

    Yt -> output
    Why -> weight at output layer
    

Capacitación a través de RNN

  1. Se proporciona a la red un solo paso de tiempo de la entrada.
  2. Luego calcule su estado actual usando el conjunto de entrada actual y el estado anterior.
  3. El ht actual se convierte en ht-1 para el siguiente paso de tiempo.
  4. Se pueden recorrer tantos pasos de tiempo según el problema y juntar la información de todos los estados anteriores.
  5. Una vez que se completan todos los pasos de tiempo, se usa el estado actual final para calcular la salida.
  6. A continuación, la salida se compara con la salida real, es decir, la salida objetivo y se genera el error.
  7. Luego, el error se propaga hacia atrás a la red para actualizar los pesos y, por lo tanto, se entrena la red (RNN).

Ventajas de la red neuronal recurrente

  1. Un RNN recuerda todas y cada una de las informaciones a través del tiempo. Es útil en la predicción de series temporales solo por la función de recordar también entradas anteriores. A esto se le llama Memoria a Largo Corto Plazo.
  2. Las redes neuronales recurrentes incluso se utilizan con capas convolucionales para ampliar la vecindad efectiva de píxeles.

Desventajas de la red neuronal recurrente

  1. Problemas de explosión y desaparición de gradientes.
  2. Entrenar a un RNN es una tarea muy difícil.
  3. No puede procesar secuencias muy largas si usa tanh o relu como función de activación.

Publicación traducida automáticamente

Artículo escrito por aishwarya.27 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *