
La red BRNN (Bidirectional Recurrent Neural Networks) fue descrita por Mike Schuster y Kuldip K. Paliwal en un artículo del mismo nombre publicado en 1.997. La idea básica es conectar dos capas ocultas de direcciones opuestas a la misma salida. Con esta estructura, la capa de salida puede obtener información de estados pasados y futuros.
La arquitectura tiene dos capas de neuronas ocultas, ambas capas están conectadas a la entrada y salida. La idea es dividir las neuronas de estado en una parte que es responsable de la dirección del tiempo positiva (adelante) y una parte para el tiempo negativo (atrás). Las salidas hacia adelante no están conectadas a entradas de estados de retroceso y viceversa.
Las dos capas ocultas se diferencian en que la primera tiene conexiones recurrentes de los pasos de tiempo pasados, mientras que en la segunda se invierte la dirección de recurrencia de conexiones, pasando la activación hacia atrás a lo largo de la secuencia
Esta red tiene una limitación importante, no puede ejecutarse continuamente, necesita un punto final tanto en el futuro como en el pasado del proceso.
El entrenamiento se puede realizar con los mismos algoritmos que utiliza cualquier otra RNR unidireccional, debido a que no existen interacciones entre los dos tipos de neuronas de estado, sin embargo, sí se utiliza cualquier forma de retrocesión a través del tiempo, por ejemplo BPTT, el procedimiento de pase hacia adelante y hacia atrás se complica, ya que se necesitan procesos adicionales debido a que la actualización de las capas de entrada y salida no se puede realizar a la vez.