Neural Simulation Language NSL - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

Neural Simulation Language NSL

Description:

... (but not only) when the neurons are modeled as leaky integrator neurons. ... Leaky integrator. 8. CS564 - Brain Theory and Artificial Intelligence, USC, Fall 2001. ... – PowerPoint PPT presentation

Number of Views:125
Avg rating:3.0/5.0
Slides: 36
Provided by: michael232
Learn more at: http://www-scf.usc.edu
Category:

less

Transcript and Presenter's Notes

Title: Neural Simulation Language NSL


1
Neural Simulation LanguageNSL
2
Overview
  • Introduction
  • NSLM
  • Example (Max Selector)
  • NSLS
  • Downloading and installing NSL

3
Introduction
  • NSL is a platform for
  • Building neural architectures (modeling)
  • NSLM
  • NSLJ NSLC
  • Executing them (simulation).
  • NSLS
  • NSL provides tools for modeling complex neural
    systems - especially (but not only) when the
    neurons are modeled as leaky integrator neurons.

4
Methodology
  • The general methodology for making a complex
    neural model of brain function is to combine
    different modules corresponding to different
    brain regions.
  • To model a particular brain region, we divide it
    anatomically or physiologically into different
    neural arrays.
  • Each brain region is then modeled as a set of
    neuron arrays, where each neuron is described for
    example by the leaky integrator, a
    single-compartment model of membrane potential
    and firing rate.

5
Levels of abstraction
  • A complete model in NSL requires the following
    components
  • a set of modules defining the entire model
  • neurons comprised in each neural module
  • neural interconnections
  • neural dynamics
  • numerical methods to solve the differential
    equations.

6
Example of modules
7
Leaky integrator
8
Simulation
1
2
6
7
3
4
5
9
Simulation Methods
  • initSys
  • initModule
  • makeConn
  • (simulation steps)
  • endModule
  • endSys

10
Simulation Methods
initTrainEpoch initTrain simTrain endTrain endTrai
nEpoch initRunEpoch initRun simRun endRu
n endRunEpoch
train
doTrainEpochTimes
trainAndRunAll
run
doRunEpochTimes
11
Model Structures
  • Model
  • Highest level
  • Modules
  • NeuralNetworks
  • InModules
  • OutModules
  • Graphic Interfaces
  • MotorModules
  • Robotics
  • NslClass
  • Libraries
  • New Canvases
  • New NSLS Commands

12
NSLM Types
  • Primitive types
  • int
  • float
  • double
  • boolean
  • char
  • NslData types (0, 1, 2, 3, 4)
  • NslInt
  • NslFloat
  • NslDouble
  • NslBoolean
  • NslString (0)
  • Could be public, private or protected.
  • NslPort types (0, 1, 2, 3, 4)
  • NslDinInt
  • NslDinFloat
  • NslDinDouble
  • NslDinBoolean
  • NslDinString (0)
  • NslDoutInt
  • NslDoutFloat
  • NslDoutDouble
  • NslDoutBoolean
  • NslDoutString (0)
  • Ports must be public

13
Max Selector Model
  • The details of this model can be found in section
    4.4 of TMB2.

The model uses competition mechanisms to obtain,
in many cases, a single winner in the network
where the input signal with the greatest strength
is propagated along to the output of the network.
14
Max Selector Model (2)
15
Max Selector Model (3)
MaxSelectorModel
MaxSelector
Stimulus
Output
ULayer
VLayer
16
MaxSelectorModel
  • nslImport nslAllImports
  • nslImport MaxSelectorStimulus
  • nslImport MaxSelector
  • nslImport MaxSelectorOutput
  • nslModel MaxSelectorModel()
  • nslConst int size 10
  • private MaxSelectorStimulus stimulus(size)
  • private MaxSelector maxselector(size)
  • private MaxSelectorOutput output(size)
  • public void initSys()
  • system.setRunEndTime(10.0)
  • system.nslSetRunDelta(0.1)

17
MaxSelectorStimulus
  • nslImport nslAllImports
  • nslModule MaxSelectorStimulus(int size)
  • public NslDoutDouble1 s_out(size)
  • public void initRun()
  • s_out0
  • s_out10.5
  • s_out31.0

18
MaxSelectorOutput
  • nslImport nslAllImports
  • nslOutModule MaxSelectorOutput(int size)
  • public NslDinDouble1 s_out(size)
  • public NslDinDouble1 uf(size)
  • private NslDouble1 up(size)
  • private boolean worked false
  • public void initModule()
  • up.nslSetAccess('W')
  • nslAddAreaCanvas(s_out,0,1)
  • nslAddTemporalCanvas(up,-2.5,2.5)
  • nslAddAreaCanvas(uf,0,1)
  • public void simRun()
  • workednslSetValue(up,"maxSelectorModel.maxs
    elector.u1.up")

19
MaxSelector
  • nslImport nslAllImports
  • nslImport Ulayer
  • nslImport Vlayer
  • nslModule MaxSelector(int size)
  • public NslDinDouble1 in(size)
  • public NslDoutDouble1 out(size)
  • private Ulayer u1(size)
  • private Vlayer v1()
  • public void makeConn()
  • nslRelabel(this.in, u1.s_in)
  • nslConnect(u1.uf, v1.u_in)
  • nslConnect(v1.vf, u1.v_in)
  • nslRelabel(u1.uf, this.out)

20
ULayer
  • nslImport nslAllImports
  • nslModule Ulayer(int size)
  • //inports
  • public NslDinDouble1 s_in()
  • public NslDinDouble0 v_in()
  • //outports
  • public NslDoutDouble1 uf(size)
  • //variables
  • private NslDouble1 up(size)
  • private NslDouble0 w1()
  • private NslDouble0 w2()
  • private NslDouble0 h1()
  • private NslDouble0 k()
  • private double tau

21
Ulayer(2)
  • public void initRun()
  • uf 0
  • up 0
  • tau 1.0
  • w1 1.0
  • w2 1.0
  • h1 0.1
  • k 0.1
  • public void simRun()
  • //compute upup((timestep/tu)du/dt)
  • up nslDiff(up, tau, -up w1uf-w2v_in - h1
    s_in)
  • uf nslStep(up,k.get(),0,1.0)

22
VLayer
  • nslImport nslAllImports
  • nslModule Vlayer()
  • // ports
  • public NslDinDouble1 u_in()
  • // output port
  • public NslDoutDouble0 vf()
  • // variables
  • private NslDouble0 vp() // neuron potential
  • private NslDouble0 h2()
  • private double tau // time constant

23
Vlayer (2)
  • public void initRun()
  • vf0
  • vp0
  • tau1.0
  • h2 0.5
  • public void simRun()
  • // vpvp((timestep/tv)dv/dt)
  • vp nslDiff(vp, tau, -vp nslSum(u_in) -h2)
  • vf nslRamp(vp)

24
Compilation
  • One model/module per file
  • The file extension must be .mod
  • We recommend to clean the model directory before
    compiling with the nslclean command
  • To compile the model you just have to execute the
    following command nslc modelName
  • Where modelName is the Name of the file that
    contains the model structure.
  • For this example we should write nslc
    MaxSelectorModel
  • Note that we didnt write the file extension at
    the end of the name.

Class File
Mod File
Nlx File
Java File
25
Execution
  • To simulate your model you have to use the nsl
    command.
  • For this example you should write nsl
    MaxSelectorModel
  • Two running modes
  • Text (-nodisplay)
  • Graphic interface (default)
  • To redirect the standard output (-stdout console)
  • To redirect the standard error (-stderr console)

26
Interface
27
Interface (2)
28
NSLS
  • To avoid re-compiling every time you modify your
    model parameters we provide the NSL script
    language known as NSLS which also provides a
    dynamic user control environment.
  • NSLS provides the following functionality
  • NSL model parameter assignment
  • NSL input specification
  • NSL simulation control
  • NSL file control
  • NSL graphics control
  • NSLS is an extension of the well know TCL
    scripting language, thus providing NSL and TCL
    functionality.

29
NSLS (2)
  • NSL command syntax nsl subcommand options
  • Important NSL commands
  • nsl source fileName
  • (i.e. nsl source hopfield.nsls)
  • nsl set variable value
  • (i.e. nsl set maxSelectorModel.stimulus.s_out 1
    0 0.5)
  • nsl get variable
  • (i.e. nsl get maxSelectorModel.stimulus.s_out)
  • nsl run
  • nsl train
  • nsl exit

30
NSLS example
  • Hopfield Network
  • set A
  • set B
  • set C
  • set D
  • proc memorize x
  • puts "Memorizing x"
  • nsl set hopfield.inModule.input x
  • nsl train
  • proc test x d

31
NSLS example (2)
  • proc initData
  • global A B C D
  • set A
  • -1 -1 1 1 -1 -1
  • -1 1 -1 -1 1 -1
  • -1 1 1 1 1 -1
  • -1 1 1 1 1 -1
  • -1 1 -1 -1 1 -1
  • -1 1 -1 -1 1 -1
  • set B
  • 1 1 -1 -1 -1 -1
  • 1 1 -1 -1 -1 -1
  • 1 1 1 1 -1 -1
  • 1 1 -1 -1 1 -1
  • 1 1 -1 -1 1 -1

32
NSLS example (3)
  • proc trainNetwork
  • global A B C D
  • memorize A
  • memorize B
  • memorize C
  • memorize D
  • proc NslMain
  • global A B C D
  • puts "Initializing"
  • initData
  • puts "Training"
  • trainNetwork
  • puts "Testing"
  • for set i 10 ilt20 incr i
  • puts "Testing with distortion i"
  • test A i

33
Downloading NSL
  • First, you will need to install the latest Java
    SDK get it directly from Sun at
    http//java.sun.com/j2se/1.3/.
  • Once this is setup and working, download the
    entire NSL tree from http//www-scf.usc.edu/csci5
    64/nsl.tar.gz
  • Extract the archive (Winzip or Pkzip).
  • Edit the file "NSL3_0_n\resume.bat" such that it
    matches your environment (you will have to
    specify the path where you installed Java, where
    you installed NSL, etc).
  • Execute the resume batch file before beginning a
    NSL session.

34
Downloading NSL (2)
  • _at_echo off
  • echo Initializing NSL environment variables
  • set NSLJ_ROOTC\salvador\NSL3_0_n
  • set JAVA_HOMEC\jdk1.3
  • set NSL_OSwindows
  • echo Updating path and classpath
  • set PATHJAVA_HOME\binNSLJ_ROOTPATH
  • set CLASSPATHNSLJ_ROOT.NSLJ_ROOT\nslj\src\m
    ain
  • NSLJ_ROOT\nslj\src\nsls\jacl
  • NSLJ_ROOT\nslj\src\nsls\tcljava
  • _at_echo on

35
References
  • A Weitzenfeld, MA Arbib and A Alexander, 2002,
    NSL Neural Simulation Language, MIT Press (in
    press)
  • An old version is at
  • http//www-hbp.usc.edu/_Documentation/NSL/Book/TO
    C.htm
  • For any NSL related questions and bug reports,
    please send me an email at smarmol_at_usc.edu
Write a Comment
User Comments (0)
About PowerShow.com