RNNs are a type of neural network that are suited for sequential (or recurrent) data. Examples of sequential data include sentences (sequences of words), time series (sequences of stock prices, for instance), or videos (sequences of frames). They qualify as recurrent data as each time step is related to the previous ones.
While RNNs were originally developed for time series analysis and natural language processing tasks, they are now applied to various computer vision tasks.
We will first introduce the basic concepts behind RNNs, before trying to get a general understanding of how they work. We will then describe how their weights can be learned.