¿Qué son las unidades recurrentes cerradas y cómo se pueden implementar con TensorFlow?

Las Unidades Recurrentes Cerradas (GRU), desarrolladas en 2014 por Yoshua Bengio https://arxiv.org/pdf/1406.1078v…, son una variación de las células RNN que son más fáciles de entrenar y evitan el problema de los gradientes que desaparecen. El problema del gradiente de desaparición surge si al entrenar RNN con datos de series de tiempo largas y secuenciales, el gradiente de error con respecto a los parámetros del modelo en los primeros pasos de tiempo pasa a cero (como resultado de multiplicar demasiados números que son <1). Esto significa que se hace más difícil para el modelo aprender dependencias a largo plazo en la serie temporal de entrada.

Este problema se puede resolver mediante el uso de LSTM (memoria de corto plazo) o unidades recurrentes activadas (GRU) en lugar de la celda RNN básica.

En comparación con los LSTM, los GRU son menos costosos desde el punto de vista informático debido a que tienen menos puertas internas.

Aquí hay una figura, del artículo del blog de Colahs, Understanding LSTM Networks, que muestra cómo funciona GRU.

Las unidades recurrentes cerradas (GRU) ya están implementadas en TensorFlow. Puede crear una instancia usando

cell = tf.nn.rnn_cell.GRUCell (state_size)

Lea los documentos: Celdas RNN para usar con los métodos RNN principales de TensorFlow | TensorFlow

Y la implementación de la fuente: tensorflow / tensorflow