UZH ETH UZH|ETH
  Zurich

Skip to content. | Skip to navigation

Sections
Personal tools
You are here: Home Projects Parameter Estimation General procedure

General procedure

by Giacomo Indiveri — last modified Feb 07, 2010 04:50 PM
Ideas and specifications for a modular automated parameter estimation program which can be used to find optimal multi-neuron chip bias settings

Goal

To write a modular program that can be used to find optimal VLSI chip biases, or SW simulation parameters, irrespective of the chip/SW used.

Usage case

  1. Connect a multi-neuron chip to the PC;
  2. specify desired performance or behaviour;
  3. execute program;
  4. store set of biases found and run further experiments with the setup.

Basic steps

The program will iterate through the following steps:

  1. specify desired variable or function to optimize (e.g. synaptic time constant, WTA network gain, learning rate, etc.)

    1. specify associated chip/SW parameters
    2. specify associated cost-function/metric and tolerance (e.g. minimum square error)
    3. specify associated stimulation procedure
    4. make chip operational (set chip parameters to default values) and switch off circuits that interfere with mesurement
    5. specify associated measurement procedure
  2. apply stimulus (using specified procedure)

  3. measure the chip/SW response (using specified procedure)

  4. evaluate cost-function

  5. change biases/parameters in the direction that minimizes the cost-function

  6. repeat 2-->6 until error < specified tolerance

Modularity and re-cursiveness

Ideally the program will allows users to write their own modules (or plugins) for step 1. This way users can specify the parameters/variables they want to tune automatically, the measurement instrument (scope, spectrum board, aer output), the input stimulus, etc. In addition, this allows complex optimizations to be carried out by using the program in a recursive way.

A discussion on the specifications for the synapse and neuron modules is here.

Tools

Given the context, Python is the best programming language to use. For the multi-neuron chip setups, it can take advantage (import) many of the routines already developed in the pyNCS code, and should (re)use the various optimization techniques already developed (e.g. in scipy or ipopt).

Comments (0)