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.
- Cómo construir la matriz del núcleo para un polinomio de grado finito
- Al entrenar una red neuronal, ¿es común tener un tamaño de paso diferente para los parámetros en cada capa y las compensaciones al realizar el Descenso de gradiente?
- ¿Cuál es la diferencia entre un clasificador Naive Bayes y AODE?
- ¿Aprendizaje automático sin historia matemática?
- ¿Cómo puede llevar a cabo experimentos y compararlos con otros algoritmos en la investigación de la visión por computadora (detección de objetos, reconocimiento, seguimiento, etc.)?
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