My Research Work
 

Main Page

My Research Related Resources

My Research Work

The Neural Networks Bookshelf

Related conferences

Neural Networks Journals

Java (and other) links

Personal Links

Detailed online Resume 

 

I am currently working on building software models for neural systems which are scalable, can store and retrieve sequences with state information . I am concerned mainly with rank-ordered N of M coded Kanerva (Sparse Distributed) memories. The Elman-Jordan network model is used to incorporate state information. The basic model is a two-layered neural network with recurrent connections. The idea is to decode the input pattern into high dimensional space, where it is much more likely to be linearly seperable. Hebbian learning takes place in only one of the two layers, while the weights are fixed in the other layer. The second of the two layers is a correlation matrix memory. I am currently working on time abstracted neural models which learn 'on the fly', that is, in a single pass. Such neural structures are claimed to have properties similar to the cerebellum in the brain.

The novelty of the model is due to its scalability, similarity metrics, temporal properties due to the use of rank order coding, and speed of learning, which may be done in real time. The training and recall phases can be either seperated or done together. A generic finite state machine may be implemented by this network model. Multiple units of the two-layer model may be used to give additional flexibility. Hebbian learning is highly localised and this makes it easier to implement in hardware. Retrieval of correct output data on slightly errorenous input data, storing of sequences, etc are properties inherent in the neural memory model.

The models are being implemented and tested in hardware, on an EPXA1 development board using Excalibur EPXA1 devices. Scalability and speedup due to hardware are the major motivations for modelling in hardware. Locally synchronous, globally asynchronous model is to be used for the hardware.

Potential applications of ther work include pattern (like character/image) recognition, time series prediction, data classification or clustering, robot navigation, motif discovery, genome mapping in DNA sequences, learning of tunes etc.

The ultimate goal of the hardware project is to create scalable neural chips using FPGA logic, which can be joined in a modular fashion to build a large-scale neural network, with the inter-chip communication limited to reporting of events(firing of the neuron). Altera chips are to be used, along with a hardware development board to design the functioning. Thus the project would also involve, at a later time, things about the high-level interface for programming the chip, the primitive communication protocol to be used for inter-chip communication, a primitive operating system for the microprocessor, etc. The Altera chips have a microprocessor and RAM memory to store the information. The software model, once it is developed, is to be transferred to the chips using Altera Excalibur EPXA1 Hardware Development Board (which uses an ARM processor along with APEX FPGA) and the Altera Quartus II Software. Verilog is the dominant HDL to be used.

I am also interested in neural models for storing sequences of groups of neurons firing seperated in time. Implementing the above ideas in real time involves resolving the synchronisation problems between different waves of firing neurons, and maintaining their seperation as well as their order. Also, implementing the N of M model described above in real pulse-coded neurons involves getting only a specific fixed number of neurons with the highest activations to fire, the time of firing being in order of their activations. Use of/Comparision with other neural architectures/algorithms such as self organising maps, genetic algorithms or support vector machines may also be investigated. Modelling of non-linear functions is a subject of interest.

Heres an overview of the sequence machine, in layman's terms:

Definition: What?

I have created a sequence machine using spiking neurons. Let me explain what that really means: a sequence macine is something that can "recognise" sequences of patterns. I am defining it as a deterministic automaton that can learn and predict sequences of patterns. Now the patterns can be anything such as notes in a tune or english alphabet or a sequence of images as in a movie.

The main thing about a sequence is time: it is a collection of patterns in time. Now in our heads we also represent (store and retrieve) time, eg when we store a song and can replay it. Time is stored spatially, as the only means we have are the interconnected neurons in the brain, and the connections are what store the information.

Motivation: Why?

Its an intriguing question as to how biology does it, which I seek to understand through modelling. Also, if you have read a book by Jeff Hawkins (On Intelligence), the neocortex part of the human brain (in the forebrain, it is responsible for higher functions such as intelligence) works exactly this way: as a sequence memory and predictor. Its intuitive and easy to understand: we make predictions all the time witrh our senses: for example we predict every morning how our office is going to look like.

As you may or may not know, all information in the brain is transmitted as spikes or action potentials, which are small electrical pulses. The beautiful scenery, the soothing music, the delicious dinner, etc all information gets transmitted to the brain in the language of spikes. And likewise for the brain commands to the motor organs (such as hands and legs) to do things such as move. If you want to know how that happens, you can see Fred Rieke's book called Spikes (MIT Press). Similarly, my sequence machine also first converts the patterns constituting a sequence as spikes following a specific code (which I will explain), and then stores the patterns in the connections of artificial neurons in the brain. The "spikes following a specific code" is in reality also a sequence of spikes, so I am storing a sequence of sequences of spikes in my artificial neural network, which in a way is like a mathematical abstracted model of the neurons in the brain. Also the interconnected neurons in this artificial neural network which I use to store the sequences spatially (just as in a real brain) in their connection strengths, can adapt themselves or 'learn' from the sequences that are input to them, and that is how they can make the right predictions.

Method or approach: How?

The approach is broadly based on how biology does things. It is a model of short and long term memory, and also a theory on how short term memory gets transformed into long term memory gradually. Besides, the network is robust (to a degree) to input error. There are some restrictions, however, on how much time the inputs must be separated by, so that the neural network may not confuse between two patterns.

Technically speaking, I have used an associative memory to store the sequences. The spiking neural model is a variant of the standard leaky integrate and fire model (read a book by Mass called pulsed neural networks, MIT Press, to know about such models. The coding I have used to encode any pattern as a burst of spikes is called rank ordered N-M code, which comes from rank roder codes used by Thorpe (see article by Simon Thorpe in nature) and N-M codes used widely in asynchronous logic and also popularised by a paper by Furber in neural networks.

Here's another question: why bother? Why should you be interested in this? Well, its a piece of research in an interesting field, memories. And also it might be possible (at a later stage) to build some interesting applications with this kind of model. A guy I met at a conference I recently went to, called Ander Maurer, trained a robot to see and reproduce guestures using a model quite similar to mine. And well, for those who have read Hawkins' book, this model is a concrete example (in a way) of the kind of things the book speaks about, though of course the structure of the network is nothing like the neocortex. Besides, there are some interesting problems I have attempted to treat by the side, such as how to develop a good capacity robust associative memory, the dynamics of complex systems involving layers of spiking neurons with feedback, how to best store time as space, how to have a distance metric between codes when the code you use to encode patterns does not have an inherent concept of distance, and thus what does the distance notion actually mean, etc.

Research Project Group members

The current members of the neural Network Fire Project Team are:

  • Steve Furber(Supervisor and head)
  • Jonathan Shapiro(Joint Supervisor of Joy Bose)
  • Mike Cumpstey
  • Hamed Shihidipour
  • Basabdutta Sen
  • Joy Bose

Previous members:

  • Peter Marshall
  • Lihua Ren

Please mail me if you have any comments/ ideas/ suggestions/ objections/ questions regarding my work.

Papers

(1) An associative memory for the on-line recognition and prediction of temporal sequences. in IJCNN 2005, Montreal, Canada
(2) A spiking neural sparse distributed memory implementation for learning and predicting temporal sequences. In ICANN 2005, Warsaw, Poland
(3) A system for transmitting a coherent burst of activity through a network of spiking neurons. Published in WIRN 2005, Vietri Sul Mare, Italy
(4) A neural network for recognition and prediction of temporal sequences of patterns , published in PREP 2005, Lancaster University
(5) A sequence machine built with an asynchronous spiking neural network in 17th UK Asynchronous Forum, Southampton, Sep 2005
(6) An asynchronous spiking neural network which can learn temporal sequences in 18th UK Asynchronous Forum, Newcastle, Sep 2006
(7) Sparse Distributed Memory using Rank Order Neural Codes (Co-authored with Steve Furber, Gavin Brown, Mike Cumpstey and Jon Shapiro) in IEEE TNN, May 2007

Paper Drafts

Draft Paper: an online predictive sequence machine using rank order coded predictive spiking neurons

PhD Dissertation

Download my PhD dissertation titled "Engineering a sequence machine out of spiking neurons employing rank order codes" (5.23 MB, 216 pages)

Research presentations

APT Group meeting, 18 June 2003 slides

Colamn meeting June 2006 Slides

APT group meeting, July 2006 slides

Colamn meeting, March 2006 slides (only 4 slides are my work)

Presentation to AI group: 10 Nov 2004

Presentation to APT Group, 28 Oct 2004

APT Group Presentation, Jan 2003

Presentation to CS 700 research symposium, December 2002

Presentation to UK async forum in Newcastle, September 2006

Memory capacity experiments, September 2003

NIPS report, December 2003

NIPS 2003: notes

Workshops attended in NIPS 03

RNNaisance Workshop, NIPS 2003

NN conferences list, prepared 2004

PhD Transfer Interview 2003 presentation

Prep conference April 2005 presentation (for poster)

Research Students Symposium, 3 Nov 2004

ICANN 2005 presentation, September 2005, Warsaw, Poland

Poster for IJCNN 2005, 25 August 2005, Montreal Canada

WIRN conference June 6 2005, Slides presentation

WIRN 2005 Poster, June 6 2005

End of year 2 presentation, August-September 2004, and end of year 2 report

PhD viva questions: preparation

PhD Transfer report / MPhil thesis draft

A scalable sparse distributed neural memory model

A typical experiment 

See the page A Complete Research Experiment 

My coding page

Various perspectives on the research

Writing a paper