What is a RNN?
It has the same computational unit as the feed forward neural net, but difer in the architecture of connections.
No cycles in feed forward net.
Recurrent, because they perform the same task for every element of a sequence, with the output being depended on the previous computations. They have “memory”, which can keep what has been calculated so far.
A NN with feedbacks. The outputs are related to the inputs, weights and feedbacks. Emphasised on learning and training.
It contains at least one feed-back connection, can flow round in a loop. Which enables the networks to do temporal processing and learn sequences…perform sequence recognition/reproduction or temporal association/prediction.
Input Units (left): ,,..,
Output Units (right):,,…,
Hidden Units (middle, they are allowed to be connected with themselves): ,,..,
Back Projections: RNNs break the restriction with connections from output units back to the hidden units.
Challenges are in how to train RNNs.
The way Converting RNN into an essentially a feedforward neural network: unrolling(unfolding).
A same idea can be found here:
If the input is a sentence with 5 words, so basically it will compute five times, and the RNN rolls into a 5-layer neural network, with each word in a layer.
Remember that, U,W,V are constant. We give the network different input each time, with the parameters kept stable.
The architectures includes Fully Recurrent NNs, Locally Recurrent NNs.
One common type consists of a standard Multi-Layer Perceptron (MLP) with added loops.
Others have more uniform structures…with every neuron connected to all the others……may also have stochastic activation functions.
Fully RNNs: Hopfield net (Continues and Discrete)
Locally RNNs: Outside Jordan, Inside Elman
FRNN: Simplest form of FRNN is an MLP with the previous set of hidden unit activations feeding back into the network along with the inputs. I think the general RNN we are discussing is FRNN.