Part of a series on |

Machine learning and data mining |
---|

**Recurrent neural networks** (RNNs) are a class of artificial neural networks for sequential data processing. Unlike feedforward neural networks, which process data in a single pass, RNNs process data across multiple time steps, making them well-adapted for modelling and processing text, speech, and time series.^{[1]}

The fundamental building block of an RNN is the recurrent unit. This unit maintains a hidden state, essentially a form of memory, which is updated at each time step based on the current input and the previous hidden state. This feedback loop allows the network to learn from past inputs and incorporate that knowledge into its current processing.

Early RNNs suffered from the vanishing gradient problem, limiting their ability to learn long-range dependencies. This was solved by the invention of Long Short-Term Memory (LSTM) networks in 1997, which became the standard architecture for RNN.

They have been applied to tasks such as unsegmented, connected handwriting recognition,^{[2]} speech recognition,^{[3]}^{[4]} natural language processing, and neural machine translation.^{[5]}^{[6]}

One origin of RNN was statistical mechanics. The Ising model was developed by Wilhelm Lenz^{[7]} and Ernst Ising^{[8]} in the 1920s^{[9]} as a simple statistical mechanical model of magnets at equilibrium. Glauber in 1963 studied the Ising model evolving in time, as a process towards equilibrium (Glauber dynamics), adding in the component of time.^{[10]} Shun'ichi Amari in 1972 proposed to modify the weights of an Ising model by Hebbian learning rule as a model of associative memory, adding in the component of learning.^{[11]} This was popularized as the Hopfield network (1982).^{[12]}

Another origin of RNN was neuroscience. The word "recurrent" is used to describe loop-like structures in anatomy. In 1901, Cajal observed "recurrent semicircles" in the cerebellar cortex formed by parallel fiber, Purkinje cells, and granule cells.^{[13]} In 1933, Lorente de Nó discovered "recurrent, reciprocal connections" by Golgi's method, and proposed that excitatory loops explain certain aspects of the vestibulo-ocular reflex.^{[14]}^{[15]} During 1940s, multiple people proposed the existence of feedback in the brain, which was a contrast to the previous understanding of the neural system as a purely feedforward structure. Hebb considered "reverberating circuit" as an explanation for short-term memory.^{[16]} The McCulloch and Pitts paper (1943), which proposed the McCulloch-Pitts neuron model, considered networks that contains cycles. The current activity of such networks can be affected by activity indefinitely far in the past.^{[17]} They were both interested in closed loops as possible explanations for e.g. epilepsy and causalgia.^{[18]}^{[19]} Recurrent inhibition was proposed in 1946 as a negative feedback mechanism in motor control. Neural feedback loops were a common topic of discussion at the Macy conferences.^{[20]} See ^{[21]} for an extensive review of recurrent neural network models in neuroscience.

Minsky and Papert pointed out that recurrent networks can be unrolled in time into a layered feedforward network. (p. 354 ^{[22]})

At the resurgence of neural networks in the 1980s, recurrent networks were studied again. They were sometimes called "iterated nets".^{[23]} Two early influential works were the Jordan network (1986) and the Elman network (1990), which applied RNN to study cognitive psychology. In 1993, a neural history compressor system solved a "Very Deep Learning" task that required more than 1000 subsequent layers in an RNN unfolded in time.^{[24]}

Long short-term memory (LSTM) networks were invented by Hochreiter and Schmidhuber in 1995 and set accuracy records in multiple applications domains.^{[25]}^{[26]} It became the default choice for RNN architecture.

Around 2006, LSTM started to revolutionize speech recognition, outperforming traditional models in certain speech applications.^{[27]}^{[28]} LSTM also improved large-vocabulary speech recognition^{[3]}^{[4]} and text-to-speech synthesis^{[29]} and was used in Google voice search, and dictation on Android devices.^{[30]}

LSTM broke records for improved machine translation,^{[31]} language modeling^{[32]} and Multilingual Language Processing.^{[33]} LSTM combined with convolutional neural networks (CNNs) improved automatic image captioning.^{[34]}

The idea of encoder-decoder sequence transduction had been developed in the early 2010s. The papers most commonly cited as the originators that produced seq2seq are two papers from 2014.^{[35]}^{[36]} A seq2seq architecture employs two RNN, typically LSTM, an "encoder" and a "decoder", for sequence transduction, such as machine translation. They became state of the art in machine translation, and was instrumental in the development of attention mechanism and Transformer.

An RNN-based model can be factored into two parts: configuration and architecture. Multiple RNN can be combined in a data flow, and the data flow itself is the configuration. Each RNN itself may have any architecture, including LSTM, GRU, etc.

RNNs come in many variants. Abstractly speaking, an RNN is a function of type , where

- : input vector;
- : hidden vector;
- : output vector;
- : neural network parameters.

In words, it is a neural network that maps an input into an output , with the hidden vector playing the role of "memory", a partial record of all previous input-output pairs. At each step, it transforms input to an output, and modifies its "memory" to help it to better perform future processing.

The illustration to the right may be misleading to many because practical neural network topologies are frequently organized in "layers" and the drawing gives that appearance. However, what appears to be layers are, in fact, different steps in time, "unfolded" to produce the appearance of layers.

A stacked RNN, or deep RNN, is composed of multiple RNNs stacked one above the other. Abstractly, it is structured as follows

- Layer 1 has hidden vector , parameters , and maps .
- Layer 2 has hidden vector , parameters , and maps .
- ...
- Layer has hidden vector , parameters , and maps .

Each layer operates as a stand-alone RNN, and each layer's output sequence is used as the input sequence to the layer above. There is no limit to the height of the RNN.

A bi-directional RNN is composed of two RNNs, one processing the input sequence in one direction, and another in the opposite direction. Abstractly, it is structured as follows:

- The forward RNN processes in one direction:
- The backward RNN processes in the opposite direction:

The two output sequences are then concatenated to give the total output: .

Bidirectional RNN allows the model to process a token both in the context of what came before it and what came after it. By stacking multiple bidirectional RNNs together, the model can process a token increasingly contextually. The ELMo model (2018)^{[37]} is a stacked bidirectional LSTM which takes character-level as inputs and produces word-level embeddings.

Two RNN can be run front-to-back in an encoder-decoder configuration. The encoder RNN processes an input sequence into a sequence of hidden vectors, and the decoder RNN processes the sequence of hidden vectors to an output sequence, with an optional attention mechanism. This was used to construct state of the art neural machine translators during the 2014–2017 period. This was an instrumental step towards the development of Transformers.^{[38]}

An RNN may process data with more than one dimension. PixelRNN processes two-dimensional data, with many possible directions.^{[39]} For example, the row-by-row direction processes an grid of vectors in the following order: The diagonal BiLSTM uses two LSTM to process the same grid. One processes it from the top-left corner to the bottom-right, such that it processes depending on its hidden state and cell state on the top and the left side: and . The other processes it from the top-right corner to the bottom-left.

Fully recurrent neural networks (FRNN) connect the outputs of all neurons to the inputs of all neurons. In other words, it is a fully connected network. This is the most general neural network topology, because all other topologies can be represented by setting some connection weights to zero to simulate the lack of connections between those neurons.

The Hopfield network is an RNN in which all connections across layers are equally sized. It requires stationary inputs and is thus not a general RNN, as it does not process sequences of patterns. However, it guarantees that it will converge. If the connections are trained using Hebbian learning, then the Hopfield network can perform as robust content-addressable memory, resistant to connection alteration.

An Elman network is a three-layer network (arranged horizontally as *x*, *y*, and *z* in the illustration) with the addition of a set of context units (*u* in the illustration). The middle (hidden) layer is connected to these context units fixed with a weight of one.^{[40]} At each time step, the input is fed forward and a learning rule is applied. The fixed back-connections save a copy of the previous values of the hidden units in the context units (since they propagate over the connections before the learning rule is applied). Thus the network can maintain a sort of state, allowing it to perform tasks such as sequence-prediction that are beyond the power of a standard multilayer perceptron.

Jordan networks are similar to Elman networks. The context units are fed from the output layer instead of the hidden layer. The context units in a Jordan network are also called the state layer. They have a recurrent connection to themselves.^{[40]}

Elman and Jordan networks are also known as "Simple recurrent networks" (SRN).

- Elman network
^{[41]} - Jordan network
^{[42]}

Variables and functions

- : input vector
- : hidden layer vector
- : output vector
- , and : parameter matrices and vector
- and : Activation functions

Long short-term memory (LSTM) is the most widely used RNN architecture. It was designed to solve the vanishing gradient problem. LSTM is normally augmented by recurrent gates called "forget gates".^{[43]} LSTM prevents backpropagated errors from vanishing or exploding.^{[44]} Instead, errors can flow backward through unlimited numbers of virtual layers unfolded in space. That is, LSTM can learn tasks that require memories of events that happened thousands or even millions of discrete time steps earlier. Problem-specific LSTM-like topologies can be evolved.^{[45]} LSTM works even given long delays between significant events and can handle signals that mix low and high-frequency components.

Many applications use stacks of LSTMs,^{[46]} for which it is called "deep LSTM". LSTM can learn to recognize context-sensitive languages unlike previous models based on hidden Markov models (HMM) and similar concepts.^{[47]}

Gated recurrent unit (GRU), introduced in 2014, was designed as a simplification of LSTM. They are used in the full form and several further simplified variants.^{[48]}^{[49]} They have fewer parameters than LSTM, as they lack an output gate.^{[50]}

Their performance on polyphonic music modeling and speech signal modeling was found to be similar to that of long short-term memory.^{[51]} There does not appear to be particular performance difference between LSTM and GRU.^{[51]}^{[52]}

Introduced by Bart Kosko,^{[53]} a bidirectional associative memory (BAM) network is a variant of a Hopfield network that stores associative data as a vector. The bi-directionality comes from passing information through a matrix and its transpose. Typically, bipolar encoding is preferred to binary encoding of the associative pairs. Recently, stochastic BAM models using Markov stepping were optimized for increased network stability and relevance to real-world applications.^{[54]}

A BAM network has two layers, either of which can be driven as an input to recall an association and produce an output on the other layer.^{[55]}

Echo state networks (ESN) have a sparsely connected random hidden layer. The weights of output neurons are the only part of the network that can change (be trained). ESNs are good at reproducing certain time series.^{[56]} A variant for spiking neurons is known as a liquid state machine.^{[57]}

A recursive neural network^{[58]} is created by applying the same set of weights recursively over a differentiable graph-like structure by traversing the structure in topological order. Such networks are typically also trained by the reverse mode of automatic differentiation.^{[59]}^{[60]} They can process distributed representations of structure, such as logical terms. A special case of recursive neural networks is the RNN whose structure corresponds to a linear chain. Recursive neural networks have been applied to natural language processing.^{[61]} The Recursive Neural Tensor Network uses a tensor-based composition function for all nodes in the tree.^{[62]}

Neural Turing machines (NTMs) are a method of extending recurrent neural networks by coupling them to external memory resources with which they interact. The combined system is analogous to a Turing machine or Von Neumann architecture but is differentiable end-to-end, allowing it to be efficiently trained with gradient descent.^{[63]}

Differentiable neural computers (DNCs) are an extension of Neural Turing machines, allowing for the usage of fuzzy amounts of each memory address and a record of chronology.^{[64]}

Neural network pushdown automata (NNPDA) are similar to NTMs, but tapes are replaced by analog stacks that are differentiable and trained. In this way, they are similar in complexity to recognizers of context free grammars (CFGs).^{[65]}

Recurrent neural networks are Turing complete and can run arbitrary programs to process arbitrary sequences of inputs.^{[66]}

An RNN can be trained into a conditionally generative model of sequences, aka **autoregression**.

Concretely, let us consider the problem of machine translation, that is, given a sequence of English words, the model is to produce a sequence of French words. It is to be solved by a seq2seq model.

Now, during training, the encoder half of the model would first ingest , then the decoder half would start generating a sequence . The problem is that if the model makes a mistake early on, say at , then subsequent tokens are likely to also be mistakes. This makes it inefficient for the model to obtain a learning signal, since the model would mostly learn to shift towards , but not the others.

**Teacher forcing** makes it so that the decoder uses the correct output sequence for generating the next entry in the sequence. So for example, it would see in order to generate .

Gradient descent is a first-order iterative optimization algorithm for finding the minimum of a function. In neural networks, it can be used to minimize the error term by changing each weight in proportion to the derivative of the error with respect to that weight, provided the non-linear activation functions are differentiable.

The standard method for training RNN by gradient descent is the "backpropagation through time" (BPTT) algorithm, which is a special case of the general algorithm of backpropagation. A more computationally expensive online variant is called "Real-Time Recurrent Learning" or RTRL,^{[67]}^{[68]} which is an instance of automatic differentiation in the forward accumulation mode with stacked tangent vectors. Unlike BPTT, this algorithm is local in time but not local in space.

In this context, local in space means that a unit's weight vector can be updated using only information stored in the connected units and the unit itself such that update complexity of a single unit is linear in the dimensionality of the weight vector. Local in time means that the updates take place continually (on-line) and depend only on the most recent time step rather than on multiple time steps within a given time horizon as in BPTT. Biological neural networks appear to be local with respect to both time and space.^{[69]}^{[70]}

For recursively computing the partial derivatives, RTRL has a time-complexity of O(number of hidden x number of weights) per time step for computing the Jacobian matrices, while BPTT only takes O(number of weights) per time step, at the cost of storing all forward activations within the given time horizon.^{[71]} An online hybrid between BPTT and RTRL with intermediate complexity exists,^{[72]}^{[73]} along with variants for continuous time.^{[74]}

A major problem with gradient descent for standard RNN architectures is that error gradients vanish exponentially quickly with the size of the time lag between important events.^{[44]}^{[75]} LSTM combined with a BPTT/RTRL hybrid learning method attempts to overcome these problems.^{[26]} This problem is also solved in the independently recurrent neural network (IndRNN)^{[76]} by reducing the context of a neuron to its own past state and the cross-neuron information can then be explored in the following layers. Memories of different ranges including long-term memory can be learned without the gradient vanishing and exploding problem.

The on-line algorithm called causal recursive backpropagation (CRBP), implements and combines BPTT and RTRL paradigms for locally recurrent networks.^{[77]} It works with the most general locally recurrent networks. The CRBP algorithm can minimize the global error term. This fact improves the stability of the algorithm, providing a unifying view of gradient calculation techniques for recurrent networks with local feedback.

One approach to gradient information computation in RNNs with arbitrary architectures is based on signal-flow graphs diagrammatic derivation.^{[78]} It uses the BPTT batch algorithm, based on Lee's theorem for network sensitivity calculations.^{[79]} It was proposed by Wan and Beaufays, while its fast online version was proposed by Campolucci, Uncini and Piazza.^{[79]}

The connectionist temporal classification (CTC)^{[80]} is a specialized loss function for training RNNs for sequence modeling problems where the timing is variable.^{[81]}

Training the weights in a neural network can be modeled as a non-linear global optimization problem. A target function can be formed to evaluate the fitness or error of a particular weight vector as follows: First, the weights in the network are set according to the weight vector. Next, the network is evaluated against the training sequence. Typically, the sum-squared difference between the predictions and the target values specified in the training sequence is used to represent the error of the current weight vector. Arbitrary global optimization techniques may then be used to minimize this target function.

The most common global optimization method for training RNNs is genetic algorithms, especially in unstructured networks.^{[82]}^{[83]}^{[84]}

Initially, the genetic algorithm is encoded with the neural network weights in a predefined manner where one gene in the chromosome represents one weight link. The whole network is represented as a single chromosome. The fitness function is evaluated as follows:

- Each weight encoded in the chromosome is assigned to the respective weight link of the network.
- The training set is presented to the network which propagates the input signals forward.
- The mean-squared error is returned to the fitness function.
- This function drives the genetic selection process.

Many chromosomes make up the population; therefore, many different neural networks are evolved until a stopping criterion is satisfied. A common stopping scheme is:

- When the neural network has learned a certain percentage of the training data or
- When the minimum value of the mean-squared-error is satisfied or
- When the maximum number of training generations has been reached.

The fitness function evaluates the stopping criterion as it receives the mean-squared error reciprocal from each network during training. Therefore, the goal of the genetic algorithm is to maximize the fitness function, reducing the mean-squared error.

Other global (and/or evolutionary) optimization techniques may be used to seek a good set of weights, such as simulated annealing or particle swarm optimization.

The independently recurrent neural network (IndRNN)^{[76]} addresses the gradient vanishing and exploding problems in the traditional fully connected RNN. Each neuron in one layer only receives its own past state as context information (instead of full connectivity to all other neurons in this layer) and thus neurons are independent of each other's history. The gradient backpropagation can be regulated to avoid gradient vanishing and exploding in order to keep long or short-term memory. The cross-neuron information is explored in the next layers. IndRNN can be robustly trained with non-saturated nonlinear functions such as ReLU. Deep networks can be trained using skip connections.

The neural history compressor is an unsupervised stack of RNNs.^{[85]} At the input level, it learns to predict its next input from the previous inputs. Only unpredictable inputs of some RNN in the hierarchy become inputs to the next higher level RNN, which therefore recomputes its internal state only rarely. Each higher level RNN thus studies a compressed representation of the information in the RNN below. This is done such that the input sequence can be precisely reconstructed from the representation at the highest level.

The system effectively minimizes the description length or the negative logarithm of the probability of the data.^{[86]} Given a lot of learnable predictability in the incoming data sequence, the highest level RNN can use supervised learning to easily classify even deep sequences with long intervals between important events.

It is possible to distill the RNN hierarchy into two RNNs: the "conscious" chunker (higher level) and the "subconscious" automatizer (lower level).^{[85]} Once the chunker has learned to predict and compress inputs that are unpredictable by the automatizer, then the automatizer can be forced in the next learning phase to predict or imitate through additional units the hidden units of the more slowly changing chunker. This makes it easy for the automatizer to learn appropriate, rarely changing memories across long intervals. In turn, this helps the automatizer to make many of its once unpredictable inputs predictable, such that the chunker can focus on the remaining unpredictable events.^{[85]}

A generative model partially overcame the vanishing gradient problem^{[44]} of automatic differentiation or backpropagation in neural networks in 1992. In 1993, such a system solved a "Very Deep Learning" task that required more than 1000 subsequent layers in an RNN unfolded in time.^{[24]}

Second-order RNNs use higher order weights instead of the standard weights, and states can be a product. This allows a direct mapping to a finite-state machine both in training, stability, and representation.^{[87]}^{[88]} Long short-term memory is an example of this but has no such formal mappings or proof of stability.

Hierarchical recurrent neural networks (HRNN) connect their neurons in various ways to decompose hierarchical behavior into useful subprograms.^{[85]}^{[89]} Such hierarchical structures of cognition are present in theories of memory presented by philosopher Henri Bergson, whose philosophical views have inspired hierarchical models.^{[90]}

Hierarchical recurrent neural networks are useful in forecasting, helping to predict disaggregated inflation components of the consumer price index (CPI). The HRNN model leverages information from higher levels in the CPI hierarchy to enhance lower-level predictions. Evaluation of a substantial dataset from the US CPI-U index demonstrates the superior performance of the HRNN model compared to various established inflation prediction methods.^{[91]}

Generally, a recurrent multilayer perceptron network (RMLP network) consists of cascaded subnetworks, each containing multiple layers of nodes. Each subnetwork is feed-forward except for the last layer, which can have feedback connections. Each of these subnets is connected only by feed-forward connections.^{[92]}

A multiple timescales recurrent neural network (MTRNN) is a neural-based computational model that can simulate the functional hierarchy of the brain through self-organization depending on the spatial connection between neurons and on distinct types of neuron activities, each with distinct time properties.^{[93]}^{[94]} With such varied neuronal activities, continuous sequences of any set of behaviors are segmented into reusable primitives, which in turn are flexibly integrated into diverse sequential behaviors. The biological approval of such a type of hierarchy was discussed in the memory-prediction theory of brain function by Hawkins in his book *On Intelligence*.^{[citation needed]} Such a hierarchy also agrees with theories of memory posited by philosopher Henri Bergson, which have been incorporated into an MTRNN model.^{[90]}^{[95]}

Greg Snider of HP Labs describes a system of cortical computing with memristive nanodevices.^{[96]} The memristors (memory resistors) are implemented by thin film materials in which the resistance is electrically tuned via the transport of ions or oxygen vacancies within the film. DARPA's SyNAPSE project has funded IBM Research and HP Labs, in collaboration with the Boston University Department of Cognitive and Neural Systems (CNS), to develop neuromorphic architectures that may be based on memristive systems.
Memristive networks are a particular type of physical neural network that have very similar properties to (Little-)Hopfield networks, as they have continuous dynamics, a limited memory capacity and natural relaxation via the minimization of a function which is asymptotic to the Ising model. In this sense, the dynamics of a memristive circuit have the advantage compared to a Resistor-Capacitor network to have a more interesting non-linear behavior. From this point of view, engineering analog memristive networks account for a peculiar type of neuromorphic engineering in which the device behavior depends on the circuit wiring or topology.
The evolution of these networks can be studied analytically using variations of the Caravelli–Traversa–Di Ventra equation.^{[97]}

A continuous-time recurrent neural network (CTRNN) uses a system of ordinary differential equations to model the effects on a neuron of the incoming inputs. They are typically analyzed by dynamical systems theory. Many RNN models in neuroscience are continuous-time.^{[21]}

For a neuron in the network with activation , the rate of change of activation is given by:

Where:

- : Time constant of postsynaptic node
- : Activation of postsynaptic node
- : Rate of change of activation of postsynaptic node
- : Weight of connection from pre to postsynaptic node
- : Sigmoid of x e.g. .
- : Activation of presynaptic node
- : Bias of presynaptic node
- : Input (if any) to node

CTRNNs have been applied to evolutionary robotics where they have been used to address vision,^{[98]} co-operation,^{[99]} and minimal cognitive behaviour.^{[100]}

Note that, by the Shannon sampling theorem, discrete-time recurrent neural networks can be viewed as continuous-time recurrent neural networks where the differential equations have transformed into equivalent difference equations.^{[101]} This transformation can be thought of as occurring after the post-synaptic node activation functions have been low-pass filtered but prior to sampling.

They are in fact recursive neural networks with a particular structure: that of a linear chain. Whereas recursive neural networks operate on any hierarchical structure, combining child representations into parent representations, recurrent neural networks operate on the linear progression of time, combining the previous time step and a hidden representation into the representation for the current time step.

From a time-series perspective, RNNs can appear as nonlinear versions of finite impulse response and infinite impulse response filters and also as a nonlinear autoregressive exogenous model (NARX).^{[102]} RNN has infinite impulse response whereas convolutional neural networks have finite impulse response. Both classes of networks exhibit temporal dynamic behavior.^{[103]} A finite impulse recurrent network is a directed acyclic graph that can be unrolled and replaced with a strictly feedforward neural network, while an infinite impulse recurrent network is a directed cyclic graph that cannot be unrolled.

The effect of memory-based learning for the recognition of sequences can also be implemented by a more biological-based model which uses the silencing mechanism exhibited in neurons with a relatively high frequency spiking activity.^{[104]}

Additional stored states and the storage under direct control by the network can be added to both infinite-impulse and finite-impulse networks. Another network or graph can also replace the storage if that incorporates time delays or has feedback loops. Such controlled states are referred to as gated states or gated memory and are part of long short-term memory networks (LSTMs) and gated recurrent units. This is also called Feedback Neural Network (FNN).

The following pseudocode (based on the programming language Python) illustrates the functionality of a recurrent neural network.^{[105]}

```
def RNN_forward(x, sequence_length, neural_network, hidden_size):
hidden = zeros(size=hidden_size) # initialize with zeros for each independent time series separately
y_pred = zeros(size=sequence_length)
for i in range(sequence_length):
y_pred[i], hidden = neural_network(x[i], hidden) # update hidden state
return y_pred
```

Modern libraries provide runtime-optimized implementations of the above functionality or allow to speed up the slow loop by just-in-time compilation.

- Apache Singa
- Caffe: Created by the Berkeley Vision and Learning Center (BVLC). It supports both CPU and GPU. Developed in C++, and has Python and MATLAB wrappers.
- Chainer: Fully in Python, production support for CPU, GPU, distributed training.
- Deeplearning4j: Deep learning in Java and Scala on multi-GPU-enabled Spark.
- Flux: includes interfaces for RNNs, including GRUs and LSTMs, written in Julia.
- Keras: High-level API, providing a wrapper to many other deep learning libraries.
- Microsoft Cognitive Toolkit
- MXNet: an open-source deep learning framework used to train and deploy deep neural networks.
- PyTorch: Tensors and Dynamic neural networks in Python with GPU acceleration.
- TensorFlow: Apache 2.0-licensed Theano-like library with support for CPU, GPU and Google's proprietary TPU,
^{[106]}mobile - Theano: A deep-learning library for Python with an API largely compatible with the NumPy library.
- Torch: A scientific computing framework with support for machine learning algorithms, written in C and Lua.

Applications of recurrent neural networks include:

- Machine translation
^{[31]} - Robot control
^{[107]} - Time series prediction
^{[108]}^{[109]}^{[110]} - Speech recognition
^{[111]}^{[28]}^{[112]} - Speech synthesis
^{[113]} - Brain–computer interfaces
^{[114]} - Time series anomaly detection
^{[115]} - Text-to-Video model
^{[116]} - Rhythm learning
^{[117]} - Music composition
^{[118]} - Grammar learning
^{[119]}^{[47]}^{[120]} - Handwriting recognition
^{[121]}^{[122]} - Human action recognition
^{[123]} - Protein homology detection
^{[124]} - Predicting subcellular localization of proteins
^{[125]} - Several prediction tasks in the area of business process management
^{[126]} - Prediction in medical care pathways
^{[127]} - Predictions of fusion plasma disruptions in reactors (Fusion Recurrent Neural Network (FRNN) code)
^{[128]}

**^**Tealab, Ahmed (2018-12-01). "Time series forecasting using artificial neural networks methodologies: A systematic review".*Future Computing and Informatics Journal*.**3**(2): 334–340. doi:10.1016/j.fcij.2018.10.003. ISSN 2314-7288.**^**Graves, Alex; Liwicki, Marcus; Fernandez, Santiago; Bertolami, Roman; Bunke, Horst; Schmidhuber, Jürgen (2009). "A Novel Connectionist System for Improved Unconstrained Handwriting Recognition" (PDF).*IEEE Transactions on Pattern Analysis and Machine Intelligence*.**31**(5): 855–868. CiteSeerX 10.1.1.139.4502. doi:10.1109/tpami.2008.137. PMID 19299860. S2CID 14635907.- ^
^{a}^{b}Sak, Haşim; Senior, Andrew; Beaufays, Françoise (2014). "Long Short-Term Memory recurrent neural network architectures for large scale acoustic modeling" (PDF). Google Research. - ^
^{a}^{b}Li, Xiangang; Wu, Xihong (2014-10-15). "Constructing Long Short-Term Memory based Deep Recurrent Neural Networks for Large Vocabulary Speech Recognition". arXiv:1410.4281 [cs.CL]. **^**Dupond, Samuel (2019). "A thorough review on the current advance of neural network structures".*Annual Reviews in Control*.**14**: 200–230.**^**Abiodun, Oludare Isaac; Jantan, Aman; Omolara, Abiodun Esther; Dada, Kemi Victoria; Mohamed, Nachaat Abdelatif; Arshad, Humaira (2018-11-01). "State-of-the-art in artificial neural network applications: A survey".*Heliyon*.**4**(11): e00938. Bibcode:2018Heliy...400938A. doi:10.1016/j.heliyon.2018.e00938. ISSN 2405-8440. PMC 6260436. PMID 30519653.**^**Lenz, W. (1920), "Beiträge zum Verständnis der magnetischen Eigenschaften in festen Körpern",*Physikalische Zeitschrift*,**21**: 613–615.**^**Ising, E. (1925), "Beitrag zur Theorie des Ferromagnetismus",*Z. Phys.*,**31**(1): 253–258, Bibcode:1925ZPhy...31..253I, doi:10.1007/BF02980577, S2CID 122157319**^**Brush, Stephen G. (1967). "History of the Lenz-Ising Model".*Reviews of Modern Physics*.**39**(4): 883–893. Bibcode:1967RvMP...39..883B. doi:10.1103/RevModPhys.39.883.**^**Glauber, Roy J. (February 1963). "Roy J. Glauber "Time-Dependent Statistics of the Ising Model"".*Journal of Mathematical Physics*.**4**(2): 294–307. doi:10.1063/1.1703954. Retrieved 2021-03-21.**^**Amari, S.-I. (November 1972). "Learning Patterns and Pattern Sequences by Self-Organizing Nets of Threshold Elements".*IEEE Transactions on Computers*.**C-21**(11): 1197–1206. doi:10.1109/T-C.1972.223477. ISSN 0018-9340.**^**Hopfield, J. J. (1982). "Neural networks and physical systems with emergent collective computational abilities".*Proceedings of the National Academy of Sciences*.**79**(8): 2554–2558. Bibcode:1982PNAS...79.2554H. doi:10.1073/pnas.79.8.2554. PMC 346238. PMID 6953413.**^**Espinosa-Sanchez, Juan Manuel; Gomez-Marin, Alex; de Castro, Fernando (2023-07-05). "The Importance of Cajal's and Lorente de Nó's Neuroscience to the Birth of Cybernetics".*The Neuroscientist*. doi:10.1177/10738584231179932. hdl:10261/348372. ISSN 1073-8584. PMID 37403768.**^**de NÓ, R. Lorente (1933-08-01). "Vestibulo-Ocular Reflex Arc".*Archives of Neurology and Psychiatry*.**30**(2): 245. doi:10.1001/archneurpsyc.1933.02240140009001. ISSN 0096-6754.**^**Larriva-Sahd, Jorge A. (2014-12-03). "Some predictions of Rafael Lorente de Nó 80 years later".*Frontiers in Neuroanatomy*.**8**: 147. doi:10.3389/fnana.2014.00147. ISSN 1662-5129. PMC 4253658. PMID 25520630.**^**"reverberating circuit".*Oxford Reference*. Retrieved 2024-07-27.**^**McCulloch, Warren S.; Pitts, Walter (December 1943). "A logical calculus of the ideas immanent in nervous activity".*The Bulletin of Mathematical Biophysics*.**5**(4): 115–133. doi:10.1007/BF02478259. ISSN 0007-4985.**^**Moreno-Díaz, Roberto; Moreno-Díaz, Arminda (April 2007). "On the legacy of W.S. McCulloch".*Biosystems*.**88**(3): 185–190. Bibcode:2007BiSys..88..185M. doi:10.1016/j.biosystems.2006.08.010. PMID 17184902.**^**Arbib, Michael A (December 2000). "Warren McCulloch's Search for the Logic of the Nervous System".*Perspectives in Biology and Medicine*.**43**(2): 193–216. doi:10.1353/pbm.2000.0001. ISSN 1529-8795. PMID 10804585.**^**Renshaw, Birdsey (1946-05-01). "Central Effects of Centripetal Impulses in Axons of Spinal Ventral Roots".*Journal of Neurophysiology*.**9**(3): 191–204. doi:10.1152/jn.1946.9.3.191. ISSN 0022-3077. PMID 21028162.- ^
^{a}^{b}Grossberg, Stephen (2013-02-22). "Recurrent Neural Networks".*Scholarpedia*.**8**(2): 1888. Bibcode:2013SchpJ...8.1888G. doi:10.4249/scholarpedia.1888. ISSN 1941-6016. **^**Rumelhart, D. E., Hinton, G. E. & Williams, R. J. "Learning internal representations by error propagation" in Parallel Distributed Processing: Explorations in the Microstructure of Cognition. Vol. 1: Foundations (eds Rumclhart, D. E. & McClelland, J. L.) 318-362 (MIT, Cambridge, 1986).**^**Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (October 1986). "Learning representations by back-propagating errors".*Nature*.**323**(6088): 533–536. doi:10.1038/323533a0. ISSN 1476-4687.- ^
^{a}^{b}Schmidhuber, Jürgen (1993).*Habilitation thesis: System modeling and optimization*(PDF).^{[permanent dead link]}Page 150 ff demonstrates credit assignment across the equivalent of 1,200 layers in an unfolded RNN. **^**Sepp Hochreiter; Jürgen Schmidhuber (21 August 1995),*Long Short Term Memory*, Wikidata Q98967430- ^
^{a}^{b}Hochreiter, Sepp; Schmidhuber, Jürgen (1997-11-01). "Long Short-Term Memory".*Neural Computation*.**9**(8): 1735–1780. doi:10.1162/neco.1997.9.8.1735. PMID 9377276. S2CID 1915014. **^**Graves, Alex; Schmidhuber, Jürgen (2005-07-01). "Framewise phoneme classification with bidirectional LSTM and other neural network architectures".*Neural Networks*. IJCNN 2005.**18**(5): 602–610. CiteSeerX 10.1.1.331.5800. doi:10.1016/j.neunet.2005.06.042. PMID 16112549. S2CID 1856462.- ^
^{a}^{b}Fernández, Santiago; Graves, Alex; Schmidhuber, Jürgen (2007). "An Application of Recurrent Neural Networks to Discriminative Keyword Spotting".*Proceedings of the 17th International Conference on Artificial Neural Networks*. ICANN'07. Berlin, Heidelberg: Springer-Verlag. pp. 220–229. ISBN 978-3-540-74693-5. **^**Fan, Bo; Wang, Lijuan; Soong, Frank K.; Xie, Lei (2015). "Photo-Real Talking Head with Deep Bidirectional LSTM".*Proceedings of ICASSP 2015 IEEE International Conference on Acoustics, Speech and Signal Processing*. pp. 4884–8. doi:10.1109/ICASSP.2015.7178899. ISBN 978-1-4673-6997-8.**^**Sak, Haşim; Senior, Andrew; Rao, Kanishka; Beaufays, Françoise; Schalkwyk, Johan (September 2015). "Google voice search: faster and more accurate".- ^
^{a}^{b}Sutskever, Ilya; Vinyals, Oriol; Le, Quoc V. (2014). "Sequence to Sequence Learning with Neural Networks" (PDF).*Electronic Proceedings of the Neural Information Processing Systems Conference*.**27**: 5346. arXiv:1409.3215. Bibcode:2014arXiv1409.3215S. **^**Jozefowicz, Rafal; Vinyals, Oriol; Schuster, Mike; Shazeer, Noam; Wu, Yonghui (2016-02-07). "Exploring the Limits of Language Modeling". arXiv:1602.02410 [cs.CL].**^**Gillick, Dan; Brunk, Cliff; Vinyals, Oriol; Subramanya, Amarnag (2015-11-30). "Multilingual Language Processing From Bytes". arXiv:1512.00103 [cs.CL].**^**Vinyals, Oriol; Toshev, Alexander; Bengio, Samy; Erhan, Dumitru (2014-11-17). "Show and Tell: A Neural Image Caption Generator". arXiv:1411.4555 [cs.CV].**^**Cho, Kyunghyun; van Merrienboer, Bart; Gulcehre, Caglar; Bahdanau, Dzmitry; Bougares, Fethi; Schwenk, Holger; Bengio, Yoshua (2014-06-03). "Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation". doi:10.48550/ARXIV.1406.1078.`((cite journal))`

: Cite journal requires`|journal=`

(help)**^**Sutskever, Ilya; Vinyals, Oriol; Le, Quoc Viet (14 Dec 2014). "Sequence to sequence learning with neural networks". arXiv:1409.3215 [cs.CL]. [first version posted to arXiv on 10 Sep 2014]**^**Peters ME, Neumann M, Iyyer M, Gardner M, Clark C, Lee K, Zettlemoyer L (2018). "Deep contextualized word representations". arXiv:1802.05365 [cs.CL].**^**Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N; Kaiser, Ł ukasz; Polosukhin, Illia (2017). "Attention is All you Need".*Advances in Neural Information Processing Systems*.**30**. Curran Associates, Inc.**^**Oord, Aäron van den; Kalchbrenner, Nal; Kavukcuoglu, Koray (2016-06-11). "Pixel Recurrent Neural Networks".*Proceedings of the 33rd International Conference on Machine Learning*. PMLR: 1747–1756.- ^
^{a}^{b}Cruse, Holk;*Neural Networks as Cybernetic Systems*, 2nd and revised edition **^**Elman, Jeffrey L. (1990). "Finding Structure in Time".*Cognitive Science*.**14**(2): 179–211. doi:10.1016/0364-0213(90)90002-E.**^**Jordan, Michael I. (1997-01-01). "Serial Order: A Parallel Distributed Processing Approach".*Neural-Network Models of Cognition — Biobehavioral Foundations*. Advances in Psychology. Vol. 121. pp. 471–495. doi:10.1016/s0166-4115(97)80111-2. ISBN 978-0-444-81931-4. S2CID 15375627.**^**Gers, Felix A.; Schraudolph, Nicol N.; Schmidhuber, Jürgen (2002). "Learning Precise Timing with LSTM Recurrent Networks" (PDF).*Journal of Machine Learning Research*.**3**: 115–143. Retrieved 2017-06-13.- ^
^{a}^{b}^{c}Hochreiter, Sepp (1991).*Untersuchungen zu dynamischen neuronalen Netzen*(PDF) (Diploma). Institut f. Informatik, Technische University Munich. **^**Bayer, Justin; Wierstra, Daan; Togelius, Julian; Schmidhuber, Jürgen (2009-09-14). "Evolving Memory Cell Structures for Sequence Learning".*Artificial Neural Networks – ICANN 2009*(PDF). Lecture Notes in Computer Science. Vol. 5769. Berlin, Heidelberg: Springer. pp. 755–764. doi:10.1007/978-3-642-04277-5_76. ISBN 978-3-642-04276-8.**^**Fernández, Santiago; Graves, Alex; Schmidhuber, Jürgen (2007). "Sequence labelling in structured domains with hierarchical recurrent neural networks" (PDF).*Proceedings of the 20th International Joint Conference on Artificial Intelligence, Ijcai 2007*. pp. 774–9. CiteSeerX 10.1.1.79.1887.- ^
^{a}^{b}Gers, Felix A.; Schmidhuber, Jürgen (2001). "LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages" (PDF).*IEEE Transactions on Neural Networks*.**12**(6): 1333–40. doi:10.1109/72.963769. PMID 18249962. S2CID 10192330. Archived from the original (PDF) on 2020-07-10. Retrieved 2017-12-12. **^**Heck, Joel; Salem, Fathi M. (2017-01-12). "Simplified Minimal Gated Unit Variations for Recurrent Neural Networks". arXiv:1701.03452 [cs.NE].**^**Dey, Rahul; Salem, Fathi M. (2017-01-20). "Gate-Variants of Gated Recurrent Unit (GRU) Neural Networks". arXiv:1701.05923 [cs.NE].**^**Britz, Denny (October 27, 2015). "Recurrent Neural Network Tutorial, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano – WildML".*Wildml.com*. Retrieved May 18, 2016.- ^
^{a}^{b}Chung, Junyoung; Gulcehre, Caglar; Cho, KyungHyun; Bengio, Yoshua (2014). "Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling". arXiv:1412.3555 [cs.NE]. **^**Gruber, N.; Jockisch, A. (2020), "Are GRU cells more specific and LSTM cells more sensitive in motive classification of text?",*Frontiers in Artificial Intelligence*,**3**: 40, doi:10.3389/frai.2020.00040, PMC 7861254, PMID 33733157, S2CID 220252321**^**Kosko, Bart (1988). "Bidirectional associative memories".*IEEE Transactions on Systems, Man, and Cybernetics*.**18**(1): 49–60. doi:10.1109/21.87054. S2CID 59875735.**^**Rakkiyappan, Rajan; Chandrasekar, Arunachalam; Lakshmanan, Subramanian; Park, Ju H. (2 January 2015). "Exponential stability for markovian jumping stochastic BAM neural networks with mode-dependent probabilistic time-varying delays and impulse control".*Complexity*.**20**(3): 39–65. Bibcode:2015Cmplx..20c..39R. doi:10.1002/cplx.21503.**^**Rojas, Rául (1996).*Neural networks: a systematic introduction*. Springer. p. 336. ISBN 978-3-540-60505-8.**^**Jaeger, Herbert; Haas, Harald (2004-04-02). "Harnessing Nonlinearity: Predicting Chaotic Systems and Saving Energy in Wireless Communication".*Science*.**304**(5667): 78–80. Bibcode:2004Sci...304...78J. CiteSeerX 10.1.1.719.2301. doi:10.1126/science.1091277. PMID 15064413. S2CID 2184251.**^**Maass, Wolfgang; Natschläger, Thomas; Markram, Henry (2002). "Real-time computing without stable states: a new framework for neural computation based on perturbations" (PDF).*Neural Computation*.**14**(11): 2531–2560. doi:10.1162/089976602760407955. PMID 12433288. S2CID 1045112.**^**Goller, Christoph; Küchler, Andreas (1996). "Learning task-dependent distributed representations by backpropagation through structure".*Proceedings of International Conference on Neural Networks (ICNN'96)*. Vol. 1. p. 347. CiteSeerX 10.1.1.52.4759. doi:10.1109/ICNN.1996.548916. ISBN 978-0-7803-3210-2. S2CID 6536466.**^**Linnainmaa, Seppo (1970).*The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors*(MSc) (in Finnish). University of Helsinki.**^**Griewank, Andreas; Walther, Andrea (2008).*Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation*(Second ed.). SIAM. ISBN 978-0-89871-776-1.**^**Socher, Richard; Lin, Cliff; Ng, Andrew Y.; Manning, Christopher D., "Parsing Natural Scenes and Natural Language with Recursive Neural Networks" (PDF),*28th International Conference on Machine Learning (ICML 2011)***^**Socher, Richard; Perelygin, Alex; Wu, Jean Y.; Chuang, Jason; Manning, Christopher D.; Ng, Andrew Y.; Potts, Christopher. "Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank" (PDF).*Emnlp 2013*.**^**Graves, Alex; Wayne, Greg; Danihelka, Ivo (2014). "Neural Turing Machines". arXiv:1410.5401 [cs.NE].**^**Graves, Alex; Wayne, Greg; Reynolds, Malcolm; Harley, Tim; Danihelka, Ivo; Grabska-Barwińska, Agnieszka; Colmenarejo, Sergio Gómez; Grefenstette, Edward; Ramalho, Tiago (2016-10-12). "Hybrid computing using a neural network with dynamic external memory".*Nature*.**538**(7626): 471–476. Bibcode:2016Natur.538..471G. doi:10.1038/nature20101. ISSN 1476-4687. PMID 27732574. S2CID 205251479.**^**Sun, Guo-Zheng; Giles, C. Lee; Chen, Hsing-Hen (1998). "The Neural Network Pushdown Automaton: Architecture, Dynamics and Training". In Giles, C. Lee; Gori, Marco (eds.).*Adaptive Processing of Sequences and Data Structures*. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer. pp. 296–345. CiteSeerX 10.1.1.56.8723. doi:10.1007/bfb0054003. ISBN 978-3-540-64341-8.**^**Hyötyniemi, Heikki (1996). "Turing machines are recurrent neural networks".*Proceedings of STeP '96/Publications of the Finnish Artificial Intelligence Society*: 13–24.**^**Robinson, Anthony J.; Fallside, Frank (1987).*The Utility Driven Dynamic Error Propagation Network*. Technical Report CUED/F-INFENG/TR.1. Department of Engineering, University of Cambridge.**^**Williams, Ronald J.; Zipser, D. (1 February 2013). "Gradient-based learning algorithms for recurrent networks and their computational complexity". In Chauvin, Yves; Rumelhart, David E. (eds.).*Backpropagation: Theory, Architectures, and Applications*. Psychology Press. ISBN 978-1-134-77581-1.**^**Schmidhuber, Jürgen (1989-01-01). "A Local Learning Algorithm for Dynamic Feedforward and Recurrent Networks".*Connection Science*.**1**(4): 403–412. doi:10.1080/09540098908915650. S2CID 18721007.**^**Príncipe, José C.; Euliano, Neil R.; Lefebvre, W. Curt (2000).*Neural and adaptive systems: fundamentals through simulations*. Wiley. ISBN 978-0-471-35167-2.**^**Yann, Ollivier; Tallec, Corentin; Charpiat, Guillaume (2015-07-28). "Training recurrent networks online without backtracking". arXiv:1507.07680 [cs.NE].**^**Schmidhuber, Jürgen (1992-03-01). "A Fixed Size Storage O(n3) Time Complexity Learning Algorithm for Fully Recurrent Continually Running Networks".*Neural Computation*.**4**(2): 243–248. doi:10.1162/neco.1992.4.2.243. S2CID 11761172.**^**Williams, Ronald J. (1989). Complexity of exact gradient computation algorithms for recurrent neural networks (Report). Technical Report NU-CCS-89-27. Boston (MA): Northeastern University, College of Computer Science. Archived from the original on 2017-10-20. Retrieved 2017-07-02.**^**Pearlmutter, Barak A. (1989-06-01). "Learning State Space Trajectories in Recurrent Neural Networks".*Neural Computation*.**1**(2): 263–269. doi:10.1162/neco.1989.1.2.263. S2CID 16813485.**^**Hochreiter, Sepp; et al. (15 January 2001). "Gradient flow in recurrent nets: the difficulty of learning long-term dependencies". In Kolen, John F.; Kremer, Stefan C. (eds.).*A Field Guide to Dynamical Recurrent Networks*. John Wiley & Sons. ISBN 978-0-7803-5369-5.- ^
^{a}^{b}Li, Shuai; Li, Wanqing; Cook, Chris; Zhu, Ce; Yanbo, Gao (2018). "Independently Recurrent Neural Network (IndRNN): Building a Longer and Deeper RNN". arXiv:1803.04831 [cs.CV]. **^**Campolucci, Paolo; Uncini, Aurelio; Piazza, Francesco; Rao, Bhaskar D. (1999). "On-Line Learning Algorithms for Locally Recurrent Neural Networks".*IEEE Transactions on Neural Networks*.**10**(2): 253–271. CiteSeerX 10.1.1.33.7550. doi:10.1109/72.750549. PMID 18252525.**^**Wan, Eric A.; Beaufays, Françoise (1996). "Diagrammatic derivation of gradient algorithms for neural networks".*Neural Computation*.**8**: 182–201. doi:10.1162/neco.1996.8.1.182. S2CID 15512077.- ^
^{a}^{b}Campolucci, Paolo; Uncini, Aurelio; Piazza, Francesco (2000). "A Signal-Flow-Graph Approach to On-line Gradient Calculation".*Neural Computation*.**12**(8): 1901–1927. CiteSeerX 10.1.1.212.5406. doi:10.1162/089976600300015196. PMID 10953244. S2CID 15090951. **^**Graves, Alex; Fernández, Santiago; Gomez, Faustino J. (2006). "Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural networks" (PDF).*Proceedings of the International Conference on Machine Learning*. pp. 369–376. CiteSeerX 10.1.1.75.6306. doi:10.1145/1143844.1143891. ISBN 1-59593-383-2.**^**Hannun, Awni (2017-11-27). "Sequence Modeling with CTC".*Distill*.**2**(11): e8. doi:10.23915/distill.00008. ISSN 2476-0757.**^**Gomez, Faustino J.; Miikkulainen, Risto (1999), "Solving non-Markovian control tasks with neuroevolution" (PDF),*IJCAI 99*, Morgan Kaufmann, retrieved 5 August 2017**^**Syed, Omar (May 1995).*Applying Genetic Algorithms to Recurrent Neural Networks for Learning Network Parameters and Architecture*(MSc). Department of Electrical Engineering, Case Western Reserve University.**^**Gomez, Faustino J.; Schmidhuber, Jürgen; Miikkulainen, Risto (June 2008). "Accelerated Neural Evolution Through Cooperatively Coevolved Synapses" (PDF).*Journal of Machine Learning Research*.**9**: 937–965.- ^
^{a}^{b}^{c}^{d}Schmidhuber, Jürgen (1992). "Learning complex, extended sequences using the principle of history compression" (PDF).*Neural Computation*.**4**(2): 234–242. doi:10.1162/neco.1992.4.2.234. S2CID 18271205.^{[permanent dead link]} **^**Schmidhuber, Jürgen (2015). "Deep Learning".*Scholarpedia*.**10**(11): 32832. Bibcode:2015SchpJ..1032832S. doi:10.4249/scholarpedia.32832.**^**Giles, C. Lee; Miller, Clifford B.; Chen, Dong; Chen, Hsing-Hen; Sun, Guo-Zheng; Lee, Yee-Chun (1992). "Learning and Extracting Finite State Automata with Second-Order Recurrent Neural Networks" (PDF).*Neural Computation*.**4**(3): 393–405. doi:10.1162/neco.1992.4.3.393. S2CID 19666035.**^**Omlin, Christian W.; Giles, C. Lee (1996). "Constructing Deterministic Finite-State Automata in Recurrent Neural Networks".*Journal of the ACM*.**45**(6): 937–972. CiteSeerX 10.1.1.32.2364. doi:10.1145/235809.235811. S2CID 228941.**^**Paine, Rainer W.; Tani, Jun (2005-09-01). "How Hierarchical Control Self-organizes in Artificial Adaptive Systems".*Adaptive Behavior*.**13**(3): 211–225. doi:10.1177/105971230501300303. S2CID 9932565.- ^
^{a}^{b}"Burns, Benureau, Tani (2018) A Bergson-Inspired Adaptive Time Constant for the Multiple Timescales Recurrent Neural Network Model. JNNS". **^**Barkan, Oren; Benchimol, Jonathan; Caspi, Itamar; Cohen, Eliya; Hammer, Allon; Koenigstein, Noam (2023). "Forecasting CPI inflation components with Hierarchical Recurrent Neural Networks".*International Journal of Forecasting*.**39**(3): 1145–1162. arXiv:2011.07920. doi:10.1016/j.ijforecast.2022.04.009.**^**Tutschku, Kurt (June 1995).*Recurrent Multilayer Perceptrons for Identification and Control: The Road to Applications*. Institute of Computer Science Research Report. Vol. 118. University of Würzburg Am Hubland. CiteSeerX 10.1.1.45.3527.**^**Yamashita, Yuichi; Tani, Jun (2008-11-07). "Emergence of Functional Hierarchy in a Multiple Timescale Neural Network Model: A Humanoid Robot Experiment".*PLOS Computational Biology*.**4**(11): e1000220. Bibcode:2008PLSCB...4E0220Y. doi:10.1371/journal.pcbi.1000220. PMC 2570613. PMID 18989398.**^**Alnajjar, Fady; Yamashita, Yuichi; Tani, Jun (2013). "The hierarchical and functional connectivity of higher-order cognitive mechanisms: neurorobotic model to investigate the stability and flexibility of working memory".*Frontiers in Neurorobotics*.**7**: 2. doi:10.3389/fnbot.2013.00002. PMC 3575058. PMID 23423881.**^**"Proceedings of the 28th Annual Conference of the Japanese Neural Network Society (October, 2018)" (PDF).**^**Snider, Greg (2008), "Cortical computing with memristive nanodevices",*Sci-DAC Review*,**10**: 58–65, archived from the original on 2016-05-16, retrieved 2019-09-06**^**Caravelli, Francesco; Traversa, Fabio Lorenzo; Di Ventra, Massimiliano (2017). "The complex dynamics of memristive circuits: analytical results and universal slow relaxation".*Physical Review E*.**95**(2): 022140. arXiv:1608.08651. Bibcode:2017PhRvE..95b2140C. doi:10.1103/PhysRevE.95.022140. PMID 28297937. S2CID 6758362.**^**Harvey, Inman; Husbands, Phil; Cliff, Dave (1994), "Seeing the light: Artificial evolution, real vision",*3rd international conference on Simulation of adaptive behavior: from animals to animats 3*, pp. 392–401**^**Quinn, Matt (2001). "Evolving communication without dedicated communication channels".*Advances in Artificial Life: 6th European Conference, ECAL 2001*. pp. 357–366. doi:10.1007/3-540-44811-X_38. ISBN 978-3-540-42567-0.**^**Beer, Randall D. (1997). "The dynamics of adaptive behavior: A research program".*Robotics and Autonomous Systems*.**20**(2–4): 257–289. doi:10.1016/S0921-8890(96)00063-2.**^**Sherstinsky, Alex (2018-12-07). Bloem-Reddy, Benjamin; Paige, Brooks; Kusner, Matt; Caruana, Rich; Rainforth, Tom; Teh, Yee Whye (eds.).*Deriving the Recurrent Neural Network Definition and RNN Unrolling Using Signal Processing*. Critiquing and Correcting Trends in Machine Learning Workshop at NeurIPS-2018.**^**Siegelmann, Hava T.; Horne, Bill G.; Giles, C. Lee (1995). "Computational Capabilities of Recurrent NARX Neural Networks".*IEEE Transactions on Systems, Man, and Cybernetics - Part B: Cybernetics*.**27**(2): 208–15. CiteSeerX 10.1.1.48.7468. doi:10.1109/3477.558801. PMID 18255858.**^**Miljanovic, Milos (Feb–Mar 2012). "Comparative analysis of Recurrent and Finite Impulse Response Neural Networks in Time Series Prediction" (PDF).*Indian Journal of Computer and Engineering*.**3**(1).**^**Hodassman, Shiri; Meir, Yuval; Kisos, Karin; Ben-Noam, Itamar; Tugendhaft, Yael; Goldental, Amir; Vardi, Roni; Kanter, Ido (2022-09-29). "Brain inspired neuronal silencing mechanism to enable reliable sequence identification".*Scientific Reports*.**12**(1): 16003. arXiv:2203.13028. Bibcode:2022NatSR..1216003H. doi:10.1038/s41598-022-20337-x. ISSN 2045-2322. PMC 9523036. PMID 36175466.**^**Chollet, Francois; Kalinowski, Tomasz; Allaire, J. J. (2022-09-13).*Deep Learning with R, Second Edition*. Simon and Schuster. ISBN 978-1-63835-078-1.**^**Metz, Cade (May 18, 2016). "Google Built Its Very Own Chips to Power Its AI Bots".*Wired*.**^**Mayer, Hermann; Gomez, Faustino J.; Wierstra, Daan; Nagy, Istvan; Knoll, Alois; Schmidhuber, Jürgen (October 2006). "A System for Robotic Heart Surgery that Learns to Tie Knots Using Recurrent Neural Networks".*2006 IEEE/RSJ International Conference on Intelligent Robots and Systems*. pp. 543–548. CiteSeerX 10.1.1.218.3399. doi:10.1109/IROS.2006.282190. ISBN 978-1-4244-0258-8. S2CID 12284900.**^**Wierstra, Daan; Schmidhuber, Jürgen; Gomez, Faustino J. (2005). "Evolino: Hybrid Neuroevolution/Optimal Linear Search for Sequence Learning".*Proceedings of the 19th International Joint Conference on Artificial Intelligence (IJCAI), Edinburgh*. pp. 853–8. OCLC 62330637.**^**Petneházi, Gábor (2019-01-01). "Recurrent neural networks for time series forecasting". arXiv:1901.00069 [cs.LG].**^**Hewamalage, Hansika; Bergmeir, Christoph; Bandara, Kasun (2020). "Recurrent Neural Networks for Time Series Forecasting: Current Status and Future Directions".*International Journal of Forecasting*.**37**: 388–427. arXiv:1909.00590. doi:10.1016/j.ijforecast.2020.06.008. S2CID 202540863.**^**Graves, Alex; Schmidhuber, Jürgen (2005). "Framewise phoneme classification with bidirectional LSTM and other neural network architectures".*Neural Networks*.**18**(5–6): 602–610. CiteSeerX 10.1.1.331.5800. doi:10.1016/j.neunet.2005.06.042. PMID 16112549. S2CID 1856462.**^**Graves, Alex; Mohamed, Abdel-rahman; Hinton, Geoffrey E. (2013). "Speech recognition with deep recurrent neural networks".*2013 IEEE International Conference on Acoustics, Speech and Signal Processing*. pp. 6645–9. arXiv:1303.5778. Bibcode:2013arXiv1303.5778G. doi:10.1109/ICASSP.2013.6638947. ISBN 978-1-4799-0356-6. S2CID 206741496.**^**Chang, Edward F.; Chartier, Josh; Anumanchipalli, Gopala K. (24 April 2019). "Speech synthesis from neural decoding of spoken sentences".*Nature*.**568**(7753): 493–8. Bibcode:2019Natur.568..493A. doi:10.1038/s41586-019-1119-1. ISSN 1476-4687. PMC 9714519. PMID 31019317. S2CID 129946122.**^**Moses, David A.; Metzger, Sean L.; Liu, Jessie R.; Anumanchipalli, Gopala K.; Makin, Joseph G.; Sun, Pengfei F.; Chartier, Josh; Dougherty, Maximilian E.; Liu, Patricia M.; Abrams, Gary M.; Tu-Chan, Adelyn; Ganguly, Karunesh; Chang, Edward F. (2021-07-15). "Neuroprosthesis for Decoding Speech in a Paralyzed Person with Anarthria".*New England Journal of Medicine*.**385**(3): 217–227. doi:10.1056/NEJMoa2027540. PMC 8972947. PMID 34260835.**^**Malhotra, Pankaj; Vig, Lovekesh; Shroff, Gautam; Agarwal, Puneet (April 2015). "Long Short Term Memory Networks for Anomaly Detection in Time Series".*European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning – ESANN 2015*. Ciaco. pp. 89–94. ISBN 978-2-87587-015-5.**^**"Papers with Code - DeepHS-HDRVideo: Deep High Speed High Dynamic Range Video Reconstruction".*paperswithcode.com*. Retrieved 2022-10-13.**^**Gers, Felix A.; Schraudolph, Nicol N.; Schmidhuber, Jürgen (2002). "Learning precise timing with LSTM recurrent networks" (PDF).*Journal of Machine Learning Research*.**3**: 115–143.**^**Eck, Douglas; Schmidhuber, Jürgen (2002-08-28). "Learning the Long-Term Structure of the Blues".*Artificial Neural Networks — ICANN 2002*. Lecture Notes in Computer Science. Vol. 2415. Berlin, Heidelberg: Springer. pp. 284–289. CiteSeerX 10.1.1.116.3620. doi:10.1007/3-540-46084-5_47. ISBN 978-3-540-46084-8.**^**Schmidhuber, Jürgen; Gers, Felix A.; Eck, Douglas (2002). "Learning nonregular languages: A comparison of simple recurrent networks and LSTM".*Neural Computation*.**14**(9): 2039–2041. CiteSeerX 10.1.1.11.7369. doi:10.1162/089976602320263980. PMID 12184841. S2CID 30459046.**^**Pérez-Ortiz, Juan Antonio; Gers, Felix A.; Eck, Douglas; Schmidhuber, Jürgen (2003). "Kalman filters improve LSTM network performance in problems unsolvable by traditional recurrent nets".*Neural Networks*.**16**(2): 241–250. CiteSeerX 10.1.1.381.1992. doi:10.1016/s0893-6080(02)00219-8. PMID 12628609.**^**Graves, Alex; Schmidhuber, Jürgen (2009). "Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks" (PDF).*Advances in Neural Information Processing Systems*. Vol. 22, NIPS'22. MIT Press. pp. 545–552.**^**Graves, Alex; Fernández, Santiago; Liwicki, Marcus; Bunke, Horst; Schmidhuber, Jürgen (2007). "Unconstrained Online Handwriting Recognition with Recurrent Neural Networks".*Proceedings of the 20th International Conference on Neural Information Processing Systems*. Curran Associates. pp. 577–584. ISBN 978-1-60560-352-0.**^**Baccouche, Moez; Mamalet, Franck; Wolf, Christian; Garcia, Christophe; Baskurt, Atilla (2011). "Sequential Deep Learning for Human Action Recognition". In Salah, Albert Ali; Lepri, Bruno (eds.).*Human Behavior Unterstanding*. Lecture Notes in Computer Science. Vol. 7065. Amsterdam, Netherlands: Springer. pp. 29–39. doi:10.1007/978-3-642-25446-8_4. ISBN 978-3-642-25445-1.**^**Hochreiter, Sepp; Heusel, Martin; Obermayer, Klaus (2007). "Fast model-based protein homology detection without alignment".*Bioinformatics*.**23**(14): 1728–1736. doi:10.1093/bioinformatics/btm247. PMID 17488755.**^**Thireou, Trias; Reczko, Martin (July 2007). "Bidirectional Long Short-Term Memory Networks for Predicting the Subcellular Localization of Eukaryotic Proteins".*IEEE/ACM Transactions on Computational Biology and Bioinformatics*.**4**(3): 441–446. doi:10.1109/tcbb.2007.1015. PMID 17666763. S2CID 11787259.**^**Tax, Niek; Verenich, Ilya; La Rosa, Marcello; Dumas, Marlon (2017). "Predictive Business Process Monitoring with LSTM Neural Networks".*Advanced Information Systems Engineering*. Lecture Notes in Computer Science. Vol. 10253. pp. 477–492. arXiv:1612.02130. doi:10.1007/978-3-319-59536-8_30. ISBN 978-3-319-59535-1. S2CID 2192354.**^**Choi, Edward; Bahadori, Mohammad Taha; Schuetz, Andy; Stewart, Walter F.; Sun, Jimeng (2016). "Doctor AI: Predicting Clinical Events via Recurrent Neural Networks".*JMLR Workshop and Conference Proceedings*.**56**: 301–318. arXiv:1511.05942. Bibcode:2015arXiv151105942C. PMC 5341604. PMID 28286600.**^**"Artificial intelligence helps accelerate progress toward efficient fusion reactions".*Princeton University*. Retrieved 2023-06-12.

- Mandic, Danilo P.; Chambers, Jonathon A. (2001).
*Recurrent Neural Networks for Prediction: Learning Algorithms, Architectures and Stability*. Wiley. ISBN 978-0-471-49517-8. - Grossberg, Stephen (2013-02-22). "Recurrent Neural Networks".
*Scholarpedia*.**8**(2): 1888. Bibcode:2013SchpJ...8.1888G. doi:10.4249/scholarpedia.1888. ISSN 1941-6016. - Recurrent Neural Networks with over 60 RNN papers by Jürgen Schmidhuber's group at Dalle Molle Institute for Artificial Intelligence Research

Differentiable computing | |||||||
---|---|---|---|---|---|---|---|

General | |||||||

Concepts | |||||||

Applications | |||||||

Hardware | |||||||

Software libraries | |||||||

Implementations |
| ||||||

People | |||||||

Organizations | |||||||

Architectures | - Neural Turing machine
- Differentiable neural computer
- Transformer
- Recurrent neural network (RNN)
- Long short-term memory (LSTM)
- Gated recurrent unit (GRU)
- Echo state network
- Multilayer perceptron (MLP)
- Convolutional neural network
- Residual neural network
- Mamba
- Autoencoder
- Variational autoencoder (VAE)
- Generative adversarial network (GAN)
- Graph neural network
| ||||||