Recurrent Neural Networks

RNNs are used when we have sequential data. Some examples of problems that use sequence data include:

  • Speech Recognition

  • Music Generation

  • Sentiment Classification

  • DNA Sequence Analysis

  • Machine Translation

  • Video Activity Recognition

  • Name Entity Recognition etc

An RNN learns how to map an input sequence to an output sequence.

The input sequence is denoted by X<1>(i),X<2>(i),...,X<Tx(i)>(i)X^{\lt 1\gt(i)}, X^{\lt 2\gt(i)}, ..., X^{\lt T_x^{(i)}\gt(i)}where i denotes training examples and Tx(i)T_x^{(i)} is the length of the input sequence of the ithi^{th} training example.

Similarly, the output sequence is denoted by Y<1>(i),Y<2>(i),...,Y<Ty(i)>(i)Y^{\lt 1\gt(i)}, Y^{\lt 2\gt(i)}, ..., Y^{\lt T_y^{(i)}\gt(i)}where i denotes training examples and Ty(i)T_y^{(i)} is the length of the output sequence of the ithi^{th} training example.

The input and output sequences can have different lengths. This is one of the main reasons why we can't use a standard neural network to learn the mapping from the input to the output sequences. Another reason is because standard neural networks don't share features learned across different positions of a sequence.

Last updated