What is reservoir computing in deep learning?
Reservoir computing (RC) is a computation framework that uses a Recurrent Neural Network but does not update all the parameters of the network. It only updates some parameters, the other parameters are chosen at random and are left fixed.
It uses the dynamics of a fixed, non-linear system known as a reservoir to map input signals to higher dimensional computational spaces. The reservoir is used as a black box, and once an input signal is fed to it, a simple readout mechanism is then trained to read the state of the reservoir and map it to the desired output.
Since the reservoir dynamics are fixed, training is only carried out at the readout stage.
In classical reservoir computing, the reservoir needs to have two properties: first, it needs to consist of individual, non-linear units, and second, it has to be able to store information.
Reservoir computing is essentially an approach that is used for the purpose of making machine learning algorithms run faster. The term ‘reservoir’ refers to a dynamical system.
Dynamical systems are denoted by a mathematical function that explains the manner in which a point in space behaves with time. With knowledge of these systems, you could be able to predict the future position of that point in space.
The reservoir is made up of several recurrently connected units that are connected randomly. So, as mentioned earlier, reservoir computing utilizes a recurrent neural network, and rather than updating all parameters of the network, it only updates a few of the parameters and leaves the other parameters fixed after choosing them in a random manner.
Reservoir computing is rather effective at the task of processing temporal or sequential kinds of data. This happens because of its design. The framework of reservoir computing bears resemblance to a framework based on recurrent neural networks. The current reservoir computing frameworks are a product of echo state networks, liquid state machines, and other recurrent neural network models.
What are the types of classical reservoir computing?
A lot of the variants of reservoir computing models have been proposed for the purpose of improving the performance of the original ones. Some of the types of reservoir computing are:
- Context reverberation network
- Echo state network
- Liquid-state machine
- Nonlinear Transient Computation
- Deep reservoir computing
1. Context reverberation network
In the Context reverberation network, an input layer feeds into a high dimensional dynamical system and a trainable single-layer perceptron reads it out. There are two types of dynamical systems: an RNN with randomized and fixed weights, and a continuous reaction-diffusion system.
The perceptron associates current inputs with the signals that reverberate in the dynamical system.
2. Echo state network
Echo state networks have a sparsely connected hidden layer. The hidden layer usually has less than 10% connectivity. They seek to drive a large, random, fixed RNN with the input signal, thereby inducing a nonlinear response signal in each neuron in the reservoir and then connecting it to the desired output signal using a trainable linear combination of all of the response signals.
3. Liquid-state machine
A liquid-state machine (LSM) employs a spiking neural network. The LSM is made up of a huge collection of nodes (or neurons). Every neuron gets time-varying inputs from other neurons and from external sources.
Due to the recurring nature of the connections, the time-varying input turns into a spatio-temporal pattern of activations in the network nodes. These spatio-temporal patterns of activation are then read out by linear discriminant units.
4. Nonlinear transient computation
This is most important when the time-varying input signals leave the mechanism’s internal dynamics. That results in transients (temporary altercations) which are represented in the output of the device.
5. Deep reservoir computing
This makes it possible to develop efficiently trained models for the purpose of processing temporal data in a hierarchical manner. It also allowed the investigation of the role of layered composition in RNNs.
What is the purpose of reservoir computing?
The job of the reservoir in reservoir computing is to transform the sequential inputs nonlinearly into a high-dimensional space such that the features of the inputs can be read out by a simple learning algorithm in an efficient manner.
This helps in speeding up machine learning algorithms to a substantial extent and using these faster learning algorithms. Rather than just using recurrent neural networks, it is also possible to use other dynamical systems as reservoirs. This also resulted in the development of Physical Reservoir Computing.
Reservoir computers are rather easy to train, which is why non-expert developers tend to like using this framework.
The whole objective of reservoir computing is to build systems that have the ability to process information and data at a faster pace with a lower learning cost. In the case of machine learning, this is particularly important due to the fact that power consumption generally tends to be rather high while training large datasets.
What is Quantum reservoir computing?
In Quantum reservoir computing, the nonlinear nature of quantum mechanical interactions or processes can be used for the purpose of forming the characteristic nonlinear reservoirs, but it can also be performed with linear reservoirs when the input is injected into the reservoir to create non-linearity.
The types of quantum reservoir computing are:
- Gaussian states of interacting quantum harmonic oscillators
- 2-D quantum dot lattices
- Nuclear spins in a molecular solid
- Reservoir computing on gate-based near-term superconducting quantum computers
What is physical reservoir computing?
A conventional reservoir computing system makes use of an RNN-based reservoir. A physical reservoir computing system’s reservoir, on the other hand, is realized through the use of a physical system or device.
This is how physical reservoir computers (RCs) are classified:
- Fluidic Reservoir Computer
- Reservoir Computer using coupled oscillators
- Reservoir Computer using memristor
- Biological Reservoir Computer