A General Purpose Architecture for Building Spiking Neuron Models of Biological Cognition - eScholarship
Bibliographic record
Abstract
A General Purpose Architecture for Building Spiking Neuron Models of Biological Cognition Chris Eliasmith (celiasmith@uwaterloo.ca) Terrence C. Stewart (tcstewar@uwaterloo.ca) Center for Theoretical Neuroscience, University of Waterloo 200 University Ave West, Waterloo, ON, N2L 3G1, Canada Keywords: SPAUN, cognitive modeling; neural engineering; representation; decision making; working memory; cognitive architecture; cognitive control; semantic pointers class Rules: def read_action(category='ACTION'): set(action=vision*2) def read_object(category='OBJECT'): set(object=vision*2) def do_write(vision='DONE', phrase='ACTION*WRITE', scale=0.5): set(motor=phrase*'~OBJECT') def do_write_remembered(vision='DONE', phrase='ACTION*WRITE+OBJECT*NUMBER'): set(motor=memory) def do_remember(vision='DONE', phrase='ACTION*REMEMBER', scale=0.5): set(memory=phrase*'~OBJECT') Tutorial Objectives We have recently created the world's largest biologically realistic brain model that is capable of performing tasks (Eliasmith et al., 2012). This model uses 2.5 million spiking neurons, takes visual input from a 28x28 pixel visual field, and controls a physically modelled arm. By presenting different visual inputs, the model can perform eight different tasks, including memorizing and writing a list of numbers, single-digit addition via counting, and flexible pattern completion in the Raven's Matrices task. This tutorial is meant to introduce the software toolkit and theoretical background that would allow other researchers to build their own models using the same architecture, allowing them to explore other tasks and brain functions. This tool supports a novel cognitive architecture (SPA; the Semantic Pointer Architecture) that directly connects neuroscience with cognitive science. Our previous tutorials have focused on the underlying theory of the Neural Engineering Framework (NEF; Eliasmith and Anderson, 2003), a general method for implementing high-level cognitive theories using biologically realistic spiking neurons. In this tutorial, our emphasis will be on building large-scale models with our open-source toolkit Nengo ( ). The tutorial will be the first presentation of our Semantic Pointer Architecture, a Python module for Nengo which takes a high-level description of the desired cognitive system, including (basic) visual processing, motor control, working memory, associative memory, and cognitive control. The software takes this specification and creates a biologically realistic neural model, including various cortical areas, the basal ganglia, and the thalamus. An example model using the SPA is shown in Figure 1. It is able to follow basic commands such as “WRITE TWO” and “REMEMBER THREE WRITE NUMBER”. When run in Nengo, this creates a model with 48,000 spiking neurons and produces predictions of spike patterns, firing rates, fMRI time-courses, accuracy, and reaction times. Complete details can be found in the book How to Build a Brain (Eliasmith, 2013). Participants will leave the tutorial having interactively used a method for constructing cognitive models with spiking neurons, and experience using that method in an intuitive software environment. class Parser(SPA): vision = Vision() category = Buffer(feedback=0) action = Buffer(feedback=0) object = Buffer(feedback=0) actionC = Cleanup(mutual_inhibit=0.5) objectC = Cleanup(mutual_inhibit=0.5) phrase = Buffer(feedback=0) motor = Motor() memory = Buffer(pstc_feedback=0.1) flow = Flow( action->actionC object->objectC actionC*1.1->action objectC*1.1->object action*ACTION->phrase object*OBJECT->phrase vision.WRITE->category.ACTION vision.REMEMBER->category.ACTION vision.ONE->category.OBJECT vision.TWO->category.OBJECT vision.THREE->category.OBJECT vision.NUMBER->category.OBJECT BG=BasalGanglia(Rules()) thal=Thalamus(BG) Figure 1: A script (top) to generate a model with 48,000 spiking neurons (bottom left) capable of simple cognitive behaviour (bottom right)
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.000 | 0.001 |
| Meta-epidemiology (narrow) | 0.001 | 0.000 |
| Meta-epidemiology (broad) | 0.000 | 0.001 |
| Bibliometrics | 0.000 | 0.000 |
| Science and technology studies | 0.001 | 0.001 |
| Scholarly communication | 0.001 | 0.002 |
| Open science | 0.002 | 0.001 |
| Research integrity | 0.001 | 0.001 |
| Insufficient payload (model declined to judge) | 0.011 | 0.003 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".