¿Cuáles son las diferencias entre GRU y RNN estándar?

Esas dos son formas diferentes de construir una célula recurrente.

Usaré fotos de un gran artículo de Christopher Olah: Comprensión de las redes LSTM, si está familiarizado con los conceptos básicos, omita esta respuesta y haga clic en el enlace.

La celda recurrente, como concepto abstracto, es una función que toma la entrada (un vector de alguna secuencia), actualiza su estado interno (lo que sea) y predice el siguiente elemento.

¿Cuál es la forma más sencilla de hacerlo? Por supuesto, use la salida anterior como un estado oculto. De esta manera, tendrá que mantener solo un conjunto de parámetros ocultos para la transformación afín y una transformación no lineal (tanh):

Esta es una celda RNN estándar desplegada en el tiempo. Tiene algunos inconvenientes, por ejemplo, no proporciona buenas representaciones de secuencias largas y no puede decidir qué recordar y qué omitir.

¿Cómo podemos resolver este problema? Definamos algunas puertas . Gate es una función no lineal que depende del estado oculto y transforma la señal de entrada de tal manera que solo se utilizarán partes útiles para actualizar el estado y calcular la salida.

Hay dos puertas allí, que se denotan como funciones sigmoideas. Reciben los vectores ocultos de entrada y el estado oculto anterior y le dan dos vectores que, al multiplicarse por componentes con el estado oculto anterior, regulan su impacto en la salida y el siguiente estado oculto.

Por ejemplo, esta unidad es capaz de aprender a borrar su estado (o partes específicas) al recibir una señal especial o ignorar los datos innecesarios de la entrada.

En comparación con los RNN estándar, los GRU le brindan representaciones mucho mejores de las secuencias y, en general, pueden realizar transformaciones más complejas con alta confiabilidad. Se utilizaron con éxito en la traducción automática neuronal en los últimos años.