Definition

Recurrent neural network (RNN) is a class of Neural Network for sequential data processing. RNNs maintain an internal state, representing the semantics of the input sequence processed so far, which is updated at each step based on the current input and the previous hidden state. RNNs can process input sequences of any length, and the model size doesn’t increase for longer input. However, due to the sequential structure, the computation is slow, and it suffers from the vanishing gradient problem in training.
Applications
One-to-Many

Many-to-One

Many-to-Many

Sequence-to-Sequence
