Content deleted Content added
No edit summary |
m WP:CHECKWIKI error fixes, added orphan tag using AWB (11971) |
||
Line 1:
{{Orphan|date=March 2016}}
'''Bidirectional Recurrent Neural Networks'''('''BRNN''') were invented in 1997 by Schuster & Paliwal <ref name="Schuster"> Schuster, Mike, and Kuldip K. Paliwal. "Bidirectional recurrent neural networks." Signal Processing, IEEE Transactions on 45.11 (1997): 2673-2681.2. Awni Hannun, Carl Case, Jared Casper, Bryan Catanzaro, Greg Diamos, Erich Elsen, Ryan </ref>. BRNN is introduced to increase the amount of input information available to be referred to. For example, [[multilayer perceptron]](MLP) and [[time delay neural network]](TDNN) have limitation on the input data flexibility, as they require their input data to be fixed. Standard [[recurrent neural network]](RNN) also has restrictions as its future input information cannot be reached from its current state. On the contrary, BRNN do not require their input data to be fixed. Moreover, their future input information is reachable from the current state. The basic idea of BRNN is to connect two hidden layers of opposite directions to the same output. By this structure, the output layer can get information from past and future states. ▼
▲'''Bidirectional Recurrent Neural Networks'''('''BRNN''') were invented in 1997 by Schuster & Paliwal
BRNN are especially useful when the context of the input is needed. For example, in handwriting recognition, the performance can be enhanced by knowledge of the letters located before and after the current letter.
Line 6 ⟶ 8:
[[File:RNN BRNN.png|thumbnail|Structure of RNN and BRNN<ref name="Schuster" />]]
The principle of BRNN is to split the neurons of a regular RNN into two directions, one for positive time direction(forward states), and another for negative time direction(backward states). Those two states’ output are not connected to inputs of the opposite direction states. The general structure of RNN and BRNN can be depicted in the right diagram. By using two time directions, input information from the past and future of the current time frame can be used unlike standard RNN which requires the delays for including future information.<ref name="Schuster" />
==Training==
BRNN can be trained using similar algorithms compared to RNN, because the two directional neurons do not have any interactions. However, when back-propagation is applied, additional processes are needed because updating input and output layers cannot be done at once. General procedures for training are as follows: For forward pass, forward states and backward states are passed first, then output neurons are passed. For backward pass, output neurons are passed first, then forward states and backward states are passed next. After forward and backward passes are done, the weights are updated.<ref name="Schuster" />
==Applications==
Applications of BRNN include :
*Speech Recognition(Combined with [[Long short-term memory]])<ref>
*Translation<ref> Sundermeyer, Martin, et al. "Translation modeling with bidirectional recurrent neural networks." Proceedings of the Conference on Empirical Methods on Natural Language Processing, October. 2014. </ref>▼
▲*Translation<ref>
*Handwritten Recognition<ref>Liwicki, Marcus, et al. "A novel approach to on-line handwriting recognition based on bidirectional long short-term memory networks." Proc. 9th Int. Conf. on Document Analysis and Recognition. Vol. 1. 2007.</ref>
*Protein Structure Prediction<ref>
▲*Protein Structure Prediction<ref> Baldi, Pierre, et al. "Exploiting the past and the future in protein secondary structure prediction." Bioinformatics 15.11 (1999): 937-946.</ref><ref>Pollastri, Gianluca, and Aoife Mclysaght. "Porter: a new, accurate server for protein secondary structure prediction." Bioinformatics 21.8 (2005): 1719-1720.</ref>
==See also==
Line 34 ⟶ 33:
==References==
{{reflist}}
==External links==
*[https://github.com/hycis/bidirectional_RNN] Implementation of BRNN/LSTM in Python with Theano
[[Category:Artificial neural networks]]
|