Skip to main content

Queueing Recurrent Neural Network

Project description

Queueing Recurrent Neural Network (Q-RNN) made-with-python

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.

Table of contents

What is Q-RNN? 🤔

Random Neuron

(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.

Comparison 📊

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.

Overall Comparison

Check the test_results folder to see detailed results 🔎.

Installation 🛠

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

Usage 👩‍💻

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 🔎.

References 📚

[1] Gelenbe, Erol. (1989). Random Neural Networks with Negative and Positive Signals and Product Form Solution. Neural Computation - NECO. 1. 502-510. 10.1162/neco.1989.1.4.502.

[2] Gelenbe, Erol. (1993). Learning in the Recurrent Random Neural Network. Neural Computation. 5. 154-164. 10.1162/neco.1993.5.1.154.

[3] Basterrech, S., & Rubino, G. (2015). Random Neural Network Model for Supervised Learning Problems. Neural Network World, 25, 457-499.

[4] Hossam Abdelbaki (2020). rnnsimv2.zip (https://www.mathworks.com/matlabcentral/fileexchange/91-rnnsimv2-zip), MATLAB Central File Exchange. Retrieved September 22, 2020.

License

GitHub license

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

queueing_rnn-1.0.4.tar.gz (6.9 kB view details)

Uploaded Source

File details

Details for the file queueing_rnn-1.0.4.tar.gz.

File metadata

  • Download URL: queueing_rnn-1.0.4.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for queueing_rnn-1.0.4.tar.gz
Algorithm Hash digest
SHA256 533b35b82dabafb196e739b06b9a663494454b03bc89ca1a1f8f51a19209af7c
MD5 68117760961b2c5a862749e03baeccfc
BLAKE2b-256 0f7fcb9779f212646041b42ee62952f3f874f8ecc8b4c3df609b9a6dde13e6fc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page