Neural Networks B, SS06 1

UA Dr. Robert Legenstein, WiMAus Prashant Joshi, M.S.

Institute for Theoretical Computer Science
Technische Universität Graz
A-8010 Graz, Austria
{legi, joshi}

NACHNAME Vorname Matrikelnmr Teammitglieder

Exercise 5: Introduction to the Liquid State Machines

NOTE: You can download this exercise in pdf or postscript(ps) format here.

In this exercise you have to perform some experiments which will help you in understanding the concept of liquid state machine (LSM). For this exercise you have to use the ex5.tar.gz (availaible for download at which contains all the source code that you will need to perform your experiments. Please also download the documents csim-1.0-usermanual.pdf, circuit-tool-1.0-manual.pdf, and learning-tool-1.0-manual.pdf,from $$, which provide a tutorial on using this code.


In this exercise you have the following setup:

You have a recurrent spiking neural network, also called as the liquid, that is composed of 135 leaky-integrate-and-fire neurons. This liquid is receiving 2 time-varying poisson spike trains as the input. Two linear readouts are connected to all the neurons in this liquid. These linear readouts are supposed to calculate two different target functions. The first readout has to find the sum of rates of the two input spike trains in the last 30 msec. The second readout has to find the product of rates of the same two input spike trains in the last 30 msec. Please also see figure 1.

Figure: Conceptual Figure to explain the experimental setup

Setting up the system

  1. All of you must already have CSIM installed on your computers. But for this exercise you will also need to install ``learning tool'' and ``circuit tool'' which are availaible for download at lsm website. The installation procedure is same as for CSIM (just extract them into your home directory).

  2. After this run the script install.m in the $HOME/lsm directory.

  3. Now unzip the ex5.tar.gz tarball. This will create a directory called as ex5. Move this directory to $HOME/lsm/learning/demos.
  4. You will see 4 different directories called ``ex5'', ``multi'', ``segment classification'' and ``spike train classification'' here. The last 3 are fully working demos which have been supplied to you so that you can become comfortable with playing around with the system. The ex5 directory is where you shall be working for this exercise.
  5. Just change your working directory to one of the other 3, e.g. ``segment classification''. Run matlab and on the command prompt type $ seg\_class$. The simulation should run smoothly. If not then you made some mistake somewhere.
  6. Hey you have had enough of fun ;-). Now go back to the ex5 directory.


First go through all the source code in this directory and all the sub-directories. What you don't see here more or less doesn't concerns you.

Check the function $ target\_values.m$ in the $ @dummy\_readout$ directory to get an intuitive feeling of how to design a target function. This particular target function gives an output of 1, if the total number of spikes in the last 50 msec in the two input channels is greater than 8, otherwise it gives an output of 0.

  1. Now design the target function for readout 1. The readout 1 has to calculate the sum of rate of the two input channels in the last 30 msec. Since this value will not be a smooth one, you can set the target function to be a low-pass filtered and normalized version of this value (please see $ ex5/lpf.m$ and $ ex5/sumofrates.m$). A suitable value for kernel size of the low-pass filter is 10.

  2. Also design the target function for readout 2. This readout has to calculate the product of rates of the two input channels in the last 30 msec. Again you can use a low pass filter and normalization to get the values in a smooth and reasonable range.

  3. Now start playing with the connectivity parameters. For example, increase(decrease) the connectivity from the input neurons to the liquid. What is the impact of this on the performance of the readouts. (Hint: You can increase the connectivity by increasing the values of lambda and Cscale for the corresponding connections).

  4. Increase(decrease) the recurency inside the liquid. Describe your observations about the effects of recurrency on the performance. Is recurrency helpful here?

  5. Increase(decrease) the size of training samples? Describe the difference in performance.

  6. Finally find the ideal setting of parameters( parameters with which you were able to obtain best performance). Describe what is happening here and what makes this system work.

  7. Submit a printout of all the MATLAB code that you have written.

About this document ...

Neural Networks B, SS06 1

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split=0 -no_navigation ex5.tex

The translation was initiated by Joshi Prashant on 2006-05-09


... SS061
Class Website:

Joshi Prashant 2006-05-09