¿Cuándo usar GRU sobre LSTM?

95

La diferencia clave entre un GRU y un LSTM es que un GRU tiene dos compuertas ( restablecer y actualizar compuertas) mientras que un LSTM tiene tres compuertas (es decir , compuertas de entrada , salida y olvido ).

¿Por qué hacemos uso de GRU cuando claramente tenemos más control en la red a través del modelo LSTM (ya que tenemos tres puertas)? ¿En qué escenario se prefiere GRU sobre LSTM?

Sayali Sonawane
fuente
1
Una GRU es un poco menos compleja pero es aproximadamente tan buena como una LSTM en cuanto al rendimiento. Una implementación en TensorFlow se encuentra aquí: data-blogger.com/2017/08/27/gru-implementation-tensorflow .
www.data-blogger.com

Respuestas:

64

GRU está relacionado con LSTM, ya que ambos utilizan una forma diferente si compilan información para evitar el problema de gradiente de fuga. Aquí hay algunos puntos clave sobre GRU vs LSTM-

  • El GRU controla el flujo de información como la unidad LSTM, pero sin tener que usar una unidad de memoria . Simplemente expone todo el contenido oculto sin ningún control.
  • GRU es relativamente nuevo, y desde mi perspectiva, el rendimiento está a la par con LSTM, pero computacionalmente más eficiente ( estructura menos compleja como se señaló ). Así que estamos viendo que se usa cada vez más.

Para una descripción detallada, puede explorar este trabajo de investigación - Arxiv.org . El artículo explica todo esto brillantemente.

Además, también puede explorar estos blogs para tener una mejor idea.

¡Espero eso ayude!

Abhishek Jaiswal
fuente
1
Además de su respuesta, hay un buen artículo que evalúa el rendimiento entre GRU y LSTM y sus diversas permutaciones "Una exploración empírica de arquitecturas de red recurrentes" por Google
minerales
38

* Para complementar las excelentes respuestas anteriores.

  • Según mi experiencia, los GRU entrenan más rápido y funcionan mejor que los LSTM con menos datos de entrenamiento si está haciendo modelado de idiomas (no estoy seguro acerca de otras tareas).

  • Los GRU son más simples y, por lo tanto, más fáciles de modificar, por ejemplo, agregando nuevas puertas en caso de entrada adicional a la red. Es solo menos código en general.

  • En teoría, los LSTM deberían recordar secuencias más largas que las GRU y superarlas en tareas que requieran modelar relaciones a larga distancia.

* Algunos documentos adicionales que analizan GRU y LSTM.

minerales
fuente
9

Esta respuesta realmente se encuentra en el conjunto de datos y el caso de uso. Es difícil decir definitivamente cuál es mejor.

  • GRU expone la memoria completa a diferencia de LSTM, por lo que las aplicaciones que actúan como ventaja podrían ser útiles. Además, agregando a por qué usar GRU: es computacionalmente más fácil que LSTM ya que solo tiene 2 puertas y si su rendimiento está a la par con LSTM, ¿por qué no?
  • Este documento demuestra de manera excelente con gráficos la superioridad de las redes controladas sobre un RNN simple, pero menciona claramente que no puede concluir cuál de las dos es mejor. Por lo tanto, si está confundido acerca de cuál usar como modelo, le sugiero que entrene a ambos y luego obtenga lo mejor de ellos.
Hima Varsha
fuente
8

Unidad FULL GRU

c~t=tanh(Wc[Grct1,xt]+bc)

Gu=σ(Wu[ct1,xt]+bu)

Gr=σ(Wr[ct1,xt]+br)

ct=Guc~t+(1Gu)ct1

at=ct

Unidad LSTM

c~t=tanh(Wc[at1,xt]+bc)

Gu=σ(Wu[at1,xt]+bu)

Gf=σ(Wf[at1,xt]+bf)

Go=σ(Wo[at1,xt]+bo)

ct=Guc~t+Gfct1

at=Gotanh(ct)

Como se puede ver en las ecuaciones, los LSTM tienen una puerta de actualización separada y una puerta de olvido. Esto claramente hace que los LSTM sean más sofisticados pero al mismo tiempo más complejos también. No hay una manera simple de decidir cuál usar para su caso de uso particular. Siempre tiene que hacer prueba y error para probar el rendimiento. Sin embargo, debido a que GRU es más simple que LSTM, los GRU tomarán mucho menos tiempo para entrenar y son más eficientes.

Créditos: Andrew Ng

balboa
fuente
En la siguiente diapositiva después de las escritas a mano, la última ecuación es diferente: . Esta fórmula se confirma correcta aquí . a<t>=Γotanh(c~<t>)
Tom Hale
1

GRU es mejor que LSTM, ya que es fácil de modificar y no necesita unidades de memoria, por lo tanto, es más rápido de entrenar que LSTM y da según el rendimiento.

Vivek Khetan
fuente
12
respalde la afirmación de rendimiento con referencias justas
Kari
1

En realidad, la diferencia clave resulta ser más que eso: los perceptrones a corto y largo plazo (LSTM) se componen utilizando los algoritmos de momento y descenso de gradiente. Cuando se concilian los perceptrones LSTM con sus equivalentes recursivos RNN, se obtiene GRU, que en realidad es solo una unidad recurrente generalizada o una unidad recurrente de gradiente (según el contexto) que integra más estrechamente los algoritmos de momento y descenso de gradiente. Si yo fuera usted, investigaría más sobre AdamOptimizers.

GRU es un concepto desactualizado por cierto. Sin embargo, puedo entender que lo investigue si desea un conocimiento profundo moderado-avanzado de TF.

Andre Patterson
fuente
8
Soy curioso. ¿Podría explicar por qué GRU es un concepto anticuado?
random_user el