A recurrent neural network ( RNN ) is one of the two broad types of
artificial neural network, characterized by direction of the flow of
information between its layers. In contrast to the uni-directional feedforward
neural network, it is a bi-directional artificial neural network, meaning that
it allows the output from some nodes to affect subsequent input to the same
nodes. Their ability to use internal state (memory) to process arbitrary
sequences of inputs makes them applicable to tasks such as unsegmented,
connected handwriting recognition or speech recognition.