The Connection-set Algebra Mikael Djurfeldt, INCF/KTH
The Introduction Connection-set Algebra Mikael Djurfeldt The connection-set algebra Introduction Definition ◮ Notation for description of connectivity in neuronal Implementations network models Connection Generator ◮ Connection structure - which connections exist? ◮ Parameters associated with connections (weights, delays, ...) ◮ Geometry ◮ Algebra for computing with connectivity ◮ Scalable support for setting up connectivity on serial and parallel computers
The Motivation Connection-set Algebra Mikael Djurfeldt Layer II/III cortex model Introduction Djurfeldt et al (2008) Definition Implementations Structure at three levels: Connection Generator ◮ cells ◮ minicolumns ◮ hypercolumns ρ (0 . 7) ∩ B ( h b , h p )¯ C bp = ¯ δ ρ (0 . 7) ∩ B ( m r , m p )¯ C rp = ¯ δ C l ρ (0 . 25) ∩ B ( m p )¯ δ − ¯ pp = ¯ δ C g ρ B ( m p ) θ ( a e P ) − B ( m p )¯ pp = ¯ δ ρ B ( m p , m r ) θ ( − a i P )) − B ( m p , m r )¯ C pr = ¯ δ C pb = ¯ ρ (0 . 7) ∩ B ( m p , m b )n closest pre( g m , h m , 8)
The Motivation Connection-set Algebra All-to-all without self-connections Mikael Djurfeldt 1 Introduction Definition Implementations Connection Generator 2 0 3 Example 1: All-to-all connectivity without self-connections for i in range (0, 4): for j in range (0, 4): if i != j: connect (i, j)
The Motivation Connection-set Algebra All-to-all without self-connections Mikael Djurfeldt 2 Introduction 3 Definition 1 Implementations 4 Connection Generator 0 5 8 6 7 Example 1: All-to-all connectivity without self-connections for i in range (0, 9): for j in range (0, 9): if i != j: connect (i, j)
The Motivation Connection-set Algebra Finite — structure + size Mikael Djurfeldt Introduction Definition Implementations Connection Generator Infinite — only structure
The Connection-set Connection-set Algebra Mikael Djurfeldt ◮ Mask M : I × J → {F , T } or { ( i 0 , j 0 ) , ( i 1 , j 1 ) , . . . } Introduction Example: { (0 , 1) , (1 , 1) , (1 , 2) , (3 , 2) , (2 , 3) , (0 , 4) } Definition Implementations Targets Connection 0 Generator 0 Sources 2 3 1 4 0 4 2 1 1 3 2 3 Same source and target enums Separate source and target enums ◮ Value set V : I × J → R N ◮ Connection-set � M , V 0 , V 1 , . . . �
The CSA Connection-set Algebra Mikael Djurfeldt Snippets of CSA formalism Introduction ◮ Index sets Definition Implementations I = N 0 infinite index set (natural numbers) Connection I = { m .. n } finite index set Generator ◮ Cartesian product on index sets I × J = { ( i , j ) | i ∈ I , j ∈ J } ◮ Elementary masks Ω the set of all connections (index pairs) δ the set of all ( i , i ) ◮ Operators on connection-sets ∩ intersection − set difference
The All-to-all without self-connections Connection-set Algebra Mikael Djurfeldt Introduction Definition Implementations Connection Generator
The Python demo Connection-set Algebra Mikael Djurfeldt Introduction ◮ Python demo implementation beta-released under GPL Definition at INCF Software Center: Implementations http://software.incf.org/software/csa Connection Generator ◮ Distribution contains a tutorial for hands-on-learning ◮ Part of Debian/Squeeze ◮ Supported in PyNN (CSAConnector) ◮ NEST connect can use native CSA objects (csanest branch) ◮ Support in NineML (experimental branch)
The Demo Connection-set Algebra Mikael Djurfeldt Introduction Definition Implementations Connection Generator Hands on demo
The C++ library Connection-set Algebra Mikael Djurfeldt Introduction Definition Implementations Connection Generator ◮ C++ library under development ◮ Planned release autumn 2012
The ConnectionGenerator Connection-set Algebra Mikael Djurfeldt Python Introduction Definition PyNEST binding CSA binding Implementations Connection Generator connection NEST libcsa generator interface int arity(): Return the number of values associated with this iterator. Values can be parameters like weight, delay, time constants, or others. int size(): Return the number of connections represented by this iterator. void setMask(Mask& mask): Inform the generator about which source and target indices exist. A mask represents a subset of the nodes in the network. void setMask(std::vector<Mask>& masks, int local): Parallel case. void start(): Start an iteration. bool next(int& source, int& target, double* value): Advance to the next connection. Return false if no more connections.
The ConnectionGenerator Connection-set Algebra Mikael Djurfeldt Introduction Definition Implementations Connection Generator Eppler et al (2011) INCF congress poster
Recommend
More recommend