¿Cuál es la diferencia entre las redes neuronales recurrentes y las redes neuronales recursivas?

La forma en que entendí esto es la siguiente:

Una red neuronal recurrente se desarrolla básicamente con el tiempo. Se utiliza para entradas secuenciales donde el factor tiempo es el principal factor diferenciador entre los elementos de la secuencia. Por ejemplo, aquí hay una red neuronal recurrente utilizada para modelar el lenguaje que se ha ido desarrollando a lo largo del tiempo. En cada paso de tiempo, además de la entrada del usuario en ese paso de tiempo, también acepta la salida de la capa oculta que se calculó en el paso de tiempo anterior.

Una red neuronal recursiva es más como una red jerárquica donde realmente no hay un aspecto temporal en la secuencia de entrada, pero la entrada debe procesarse jerárquicamente en forma de árbol. Aquí hay un ejemplo de cómo se ve una red neuronal recursiva. Muestra la forma de aprender un árbol de análisis de una oración tomando recursivamente el resultado de la operación realizada en un fragmento más pequeño del texto.

Oh, es solo el factor de ramificación. Un NN recurrente tendrá solo una forma de ramificación (por lo que realmente no se ramifica) y es una cadena. Eso es genial cuando quieres lidiar con el tiempo porque ahora tienes una forma de expresar un cambio en el estado de la red, sin tener un estado explícito (solo lo pasas como entrada todo el tiempo).

Con lo que una red recurrente no puede lidiar es con estructuras en forma de árbol, como las que surgen al analizar una oración. Entonces, la solución es simplemente permitir una topología de árbol en la red permitiendo que las conexiones se ramifiquen.

Para más detalles, recomiendo echar un vistazo a CS224D de Stanford

Creo que estamos tratando con semántica. Hay muchas arquitecturas diferentes de redes neuronales de propagación hacia atrás. En general, estas son redes recursivas. Las redes recurrentes son redes recursivas y la diferencia entre ellas no está bien definida. Algunos dirían que si puede desplegar la red de modo que se convierta en una verdadera red de alimentación directa, entonces es recurrente. No estoy satisfecho con esta definición.

Experimenté con una red recursiva para realizar la administración de energía de un vehículo híbrido. El rastreo de red convencional si estas redes es muy difícil debido a los bucles de propagación hacia atrás. Entrenar una red recurrente desplegándola es mucho más fácil. No me queda claro que la eficiencia de una red recursiva es mejor que una red de retroalimentación en la ejecución de la tarea para la que la estábamos usando. Sin embargo, produjo resultados que estaban más cerca de la solución de programación dinámica estocástica que se consideraba óptima. que la red de alimentación hacia adelante. No publiqué los resultados ya que el vehículo al que se iba a aplicar para la prueba fue destruido accidentalmente por un operador desatento antes de que se aplicara el algoritmo.

Las redes neuronales recurrentes son de hecho redes neuronales recursivas con una estructura particular: la de una cadena lineal. Mientras que las redes neuronales recursivas operan en cualquier estructura jerárquica, combinando representaciones secundarias en representaciones primarias, las redes neuronales recurrentes operan en la progresión lineal del tiempo, combinando el paso de tiempo anterior y una representación oculta en la representación para el paso de tiempo actual.

No sé qué significa todo eso, pero lo copié y lo pegué de wikipedia. Aquí está el enlace: red neuronal recurrente

Hay dos diferencias principales entre los dos:

  • Las redes recursivas están estructuradas como un árbol profundo, mientras que las RNN tienen una estructura similar a una cadena.
  • Para una secuencia de la misma longitud N, profundidad de red recursiva si O (logN) mientras que la de RNN es O (N), lo que podría ayudar a mantener las dependencias a largo plazo.