Queueing Recurrent Neural Network (Q-RNN) is a new kind of Artificial Neural Network that has been designed to use in time-series forecasting applications. According to experiments that have been run, QRNN has a potential to outperform the LSTM, Simple RNN and GRU, in the cases where the dataset has highly non-linear characteristics.
(Look of a Random Neuron [4])
It is a compose of Simple RNN and Random Neural Network. Queueing RNN uses the fundamental math of Queueing Theory and G-Queues while combining it with the powerful architecture of Recurrent Neural Networks. For more detailed explanation about the theoretical background of QRNN check the mathematical-model folder and references section.
In order to evaluate the performance of QRNN, it has been compared with LSTM, GRU and Simple RNN using Keras with TensorFlow backend. During the experiments, 4 different data sets (google stock price, bike sharing, pm2.5 concentration, traffic volume) and 10 different optimization algorithms have been used. The mean square error distribution on the test set is given in the image below. As it seems QRNN manages to reach 3 lowest rms error out of 4.
Check the test_results folder to see detailed results 🔎.
Installing via pip package manager:
pip install queueing-rnn
Installing via GitHub:
git clone https://github.com/bilkosem/queueing-rnn
cd queueing-rnn
python setup.py install
from queueing_rnn import QRNN
data=data.reshape((samples,timesteps,features))
qrnn = QRNN([features, hidden neurons, output neurons]) # Shape of the network
for s in range(samples):
qrnn.feedforward()
# Calculate Loss
qrnn.backpropagation()
Check the examples folder to see detailed use 🔎.