双向循环神经网络

双向循环神经网络（）将两个方向相反的隐藏层连接到同一个输出。通过这种形式的生成式深度学习，输出层可以同时获得来自过去（后向）和未来（前向）状态的信息。双向循环神经网络由Schuster和Paliwal于1997发明，BRNN的出现增加了网络可用的输入信息量。由于要求固定形式的输入数据，多层感知器（MLP）和时间延迟神经网络（TDNN）并不灵活，而标准的循环神经网络（RNNs）具有“因果”结构，即当前的输出只能取决于当前和过去的信息，所以也具有一定的限制。相反，循环神经网络不要求其输入数据的形式，同时其输入数据可以包含未来的信息。

当需要考虑整个输入序列的信息时，双向循环神经网络尤其有用。例如，在手写识别任务中，可以通过考虑前后字母的信息增加对当前字母预测的表现。

结构 

双向神经网络的原理是将标准循环神经网络的神经元分成正时间方向（前向）和负时间方向（后向）。这两种状态的输出仅与同样方向状态的输入相连。循环神经网络和双向循环神经网络的一般结构如图所示。通过使用两个时间方向，双向循环神经网络可以使用当前、过去和未来时间下的输入信息，而不像标准的循环神经网络需要通过延迟来使用将来时间的信息。

参考 

人工神经网络