Java API for Recurrent Neural Network.
logo armasuisse     logo armasuisse
 Other Projects :  <NESD>    <Streaming>
Project Summary Concept Screenshots Download/Demos Links

Project Description

This project to implement a Recurrent Neural Networks (RNN) framework to explore their capabilities. This project is powered by armasuisse


A Recurrent Neural Network (RNN) is a neural network (NN) with recurrent connections. These connections forward part of the output signal back in network input. Since the NNN could stimulate its itself these neuron it could :

  • Save information about past iteration.
  • Start to generate its own signal.
  • Such behaviors are complex and hard to control. Therefore a serie of custom RNN have been developped by the past : where RRN was componed of several NN bind together, or with a single recurrent connection... Another approch, used by NEAT project, is to let the network evolve by itself using Genetic Algorithm (GA). We choose this one.

    Fig.1 : Full Connected RNN



    JavaRNN use full connected RNNs. Such a RNN contains X nodes and X2 connections. Each of this connection is weighted. The choosen transfer function is at this time a simple sigmoid.


    We actually use RNN as predictor : we check the RNN capability to predict a signal at T+1. We also use it as long-run predcitor, coupling its predicted output to its input we let im predict a signal at T+n


    We have experienced limitations modelling periodic signals due to the natural resonant frequency of the RNN. To solve this problem we had delay buffers in each connection in form of a FIFO queue. the length of the queue is also set during the training.

    Fig.2 : Weight Matrix


    We use a straigt forward Genetic Algorithm (GA) in order to train weights and deplays.


    screenshot screenshot screenshot screenshot
    screenshot screenshot




    Frédéric Dreier AI/AL Homepage
    NEAT Project