Home | About | Journals | Submit | Contact Us | Français |

**|**HHS Author Manuscripts**|**PMC3864805

Formats

Article sections

- Abstract
- I. Cortically-Controlled Motor Prostheses
- II. Kalman-filter Decoder
- III. Neural Engineering Framework
- IV. Kalman Filter with Spiking Neurons
- V. Results
- VI. Conclusions and Future Work
- References

Authors

Related links

Int IEEE EMBS Conf Neural Eng. Author manuscript; available in PMC 2013 December 16.

Published in final edited form as:

Int IEEE EMBS Conf Neural Eng. 2011 : 10.1109/NER.2011.5910570.

doi: 10.1109/NER.2011.5910570PMCID: PMC3864805

NIHMSID: NIHMS468827

Julie Dethier, Student Member, IEEE, Vikash Gilja, Member, IEEE, Paul Nuyujukian, Student Member, IEEE, Shauki A. Elassaad, Member, IEEE, Krishna V. Shenoy, Senior Member, IEEE, and Kwabena Boahen, Senior Member, IEEE

Julie Dethier, Department of Bioengineering, Stanford University, Stanford, CA 94305, USA;

Julie Dethier: ude.drofnats@reihtedj; Vikash Gilja: ude.drofnats@ajlig; Paul Nuyujukian: ude.drofnats.lpn@luap; Shauki A. Elassaad: ude.drofnats@ikuahs; Krishna V. Shenoy: ude.drofnats@yonehs; Kwabena Boahen: ude.drofnats@nehaob

See other articles in PMC that cite the published article.

We used a spiking neural network (SNN) to decode neural data recorded from a 96-electrode array in premotor/motor cortex while a rhesus monkey performed a point-to-point reaching arm movement task. We mapped a Kalman-filter neural prosthetic decode algorithm developed to predict the arm’s velocity on to the SNN using the Neural Engineering Framework and simulated it using *Nengo*, a freely available software package. A 20,000-neuron network matched the standard decoder’s prediction to within 0.03% (normalized by maximum arm velocity). A 1,600-neuron version of this network was within 0.27%, and run in real-time on a 3GHz PC. These results demonstrate that a SNN can implement a statistical signal processing algorithm widely used as the decoder in high-performance neural prostheses (Kalman filter), and achieve similar results with just a few thousand neurons. Hardware SNN implementations—neuromorphic chips—may offer power savings, essential for realizing fully-implantable cortically controlled prostheses.

Neural prostheses aim to restore functions lost to neurological disease and injury. Motor prostheses aim to help disabled patients by translating neural signals from the brain into control signals for prosthetic limbs or computer cursors. We recently reported a closed-loop cortically-controlled motor prosthesis capable of producing quick, accurate, and robust computer cursor movements by decoding action potentials from a 96-electrode array in rhesus macaque premotor/motor cortex [1]–[4]. This design and previous high-performance designs as well (e.g., [5]) employ versions of the Kalman filter, ubiquitous in statistical signal processing.

While these recent advances are encouraging, true clinical viability awaits fully-implanted systems which, in turn, impose severe power dissipation constraints. For example, to avoid heating the brain by more than 1°C, which is believed to be important for long term cell health, a 6×6mm^{2} implant must dissipate less than 10mW [6]. Running the 96-electrode to 2 degree-of-freedom Kalman-filter on a 3.06GHz Core Duo Intel processor took 0.985*μ*s/update, or 6,030 flops/update, which, at 66.3Mflops/watt, consumes 1.82mW for 20 updates/sec. This lack of low-power circuits for neural decoding is a major obstacle to the successful translation of this new class of motor prostheses.

We focus here on a new approach to implementing the Kalman filter that is capable of meeting these power constraints: the *neuromorphic* approach. The neuromorphic approach combines digital’s and analog’s best features—programmability and efficiency—offering potentially greater robustness than either [7], [8]. At 50nW per silicon neuron [9], a neuromorphic chip with 1,600 spiking neurons would consume 80*μ*W. To exploit this energy-efficient approach to build a fully implantable and programmable decoder chip, the first step is to explore the feasibility of implementing existing decoder algorithms with spiking neural networks (SNN) in software. We did this for the Kalman-filter based decoder [1]–[4] using *Nengo*, a freely available simulator [10].

The concept behind the Kalman filter is to track the state of a dynamical system throughout time using a model of its dynamics as well as noisy measurements. The model gives an estimate of the system’s state at the next time step. This estimate is then corrected using the measurements at this time step. The relative weights for these two pieces of information are given by the *Kalman gain*, **K** [11], [12].

For neural applications, the cursor’s kinematics define the system’s state vector,
${\mathbf{x}}_{t}[{\mathit{vel}}_{t}^{\text{x}},{\mathit{vel}}_{t}^{\text{y}},1]$; the constant 1 allows for a fixed offset compensation. The neural spike rate (spike counts in each time step) of 96 channels of action-potential threshold crossings defines the measurements vector, **y*** _{t}*. And the system’s dynamics are modeled by:

$${\mathbf{x}}_{t}={\mathbf{Ax}}_{t-1}+{\mathbf{w}}_{t},$$

(1)

$${\mathbf{y}}_{t}={\mathbf{Cx}}_{t}+{\mathbf{q}}_{t},$$

(2)

where **A** is the state matrix, **C** is the observation matrix, and **w*** _{t}* and

Assuming the system is stationary, we estimate the current system state by combining the estimate at the previous time step with the noisy measurements using the Kalman gain **K** = (**I** + **WCQ**^{−1}**C**)^{−1}
**W C Q**^{−1}. This yields:

$${\widehat{\mathbf{x}}}_{t}=(\mathbf{I}-\mathbf{KC})\mathbf{A}{\widehat{\mathbf{x}}}_{t-1}+{\mathbf{Ky}}_{t}.$$

(3)

Neural engineers have developed a formal methodology for mapping control-theory algorithms onto a computational fabric consisting of a highly heterogeneous population of spiking neurons simply by programming the strengths of their connections [10]. These artificial neurons are characterized by a nonlinear multi-dimensional-vector-to-spikerate function—*a _{i}*(

The neural engineering approach to configuring SNNs to perform arbitrary computations involves representation, transformation, and dynamics [10], [13]–[15]:

**Representation**is defined by nonlinear encoding of**x**(*t*) as a spike rate,*a*(_{i}**x**(*t*)), combined with weighted linear decoding of*a*(_{i}**x**(*t*)) to recover an estimate of**x**(*t*), $\widehat{\mathbf{x}}(t)={\sum}_{i}{a}_{i}(\mathbf{x}(t)){\mathrm{i\mathbf{x}}}_{}^{}$. The decoding weights, ${\mathrm{i\mathbf{x}}}_{}^{}$, are obtained by minimizing the mean squared error.**Transformation**is performed by using alternate decoding weights in the decoding operation to map transformations of**x**(*t*) directly into transformations of*a*(_{i}**x**(*t*)). For example,**y**(*t*) =**Ax**(*t*) is represented by the spike rates*b*(_{j}**A$\widehat{x}$**(*t*)), where unit*j*’s input is computed directly from unit*i*’s output using $\mathbf{A}\widehat{\mathbf{x}}(t)={\sum}_{i}{a}_{i}(\mathbf{x}(t))\mathbf{A}{\mathrm{i\mathbf{x}}}_{}^{}$, an alternative linear weighting.**Dynamics**are realized by using the synapses’ spike response,*h*(*t*), (aka, impulse response) to capture the system’s dynamics. For example, for*h*(*t*) =*τ*^{−1}*e*^{−}^{t}^{/}=^{τ},**Ax**(*t*) is realized by replacing**A**with**A′**=*τ***A**+**I**. This so-called*neurally plausible*matrix yields an equivalent dynamical system:**x**(*t*) =*h*(*t*)***A′x**(*t*), where convolution replaces integration.

The nonlinear encoding process—from a multidimensional stimulus, **x**(*t*), to a one-dimensional soma current, *J _{i}*, to a firing rate,

$${a}_{i}(\mathbf{x}(t))=G({J}_{i}(\mathbf{x}(t))).$$

(4)

Here *G*() is the neurons’ nonlinear current-to-spike-rate function, which is given by

$$G({J}_{i}(\mathbf{x}))={\left\{{\tau}^{\text{ref}}-{\tau}^{\text{RC}}ln\phantom{\rule{0.16667em}{0ex}}(1-{J}_{\text{th}}/{J}_{i}(\mathbf{x}))\right\}}^{-1},$$

(5)

for the leaky integrate-and-fire model (LIF). This model’s subthreshold behavior is described by an RC circuit with time constant *τ*^{RC}. When the voltage reaches the threshold, *V*_{th}, the neuron emits a spike *δ*(*t* − *t _{n}*). After this spike, the neuron is reset and rests for

The conversion from a multi-dimensional stimulus, **x**(*t*), to a one-dimensional soma current, *J _{i}*, is performed by assigning to the neuron a preferred direction,
${\stackrel{i}{~}}_{}^{}$, in the stimulus space and taking the dot-product:

$${J}_{i}(\mathbf{x}(t))={\alpha}_{i}{\stackrel{i}{~}}_{\xb7}^{\mathbf{x}}$$

(6)

where *α _{i}* is a gain or conversion factor, and
${J}_{i}^{\text{bias}}$ is a bias current that accounts for background activity. For a 1D space,
${\stackrel{j}{~}}_{}^{}$ is either 1 or −1 (drawn randomly). For a 2D space,
${\stackrel{i}{~}}_{}^{}$ is uniformly distributed on the unit circle. The resulting

To implement the Kalman filter with a SNN by applying the Neural Engineering Framework (NEF), we first convert (3) from discrete time (DT) to continuous time (CT), then we replace the CT matrices with neurally plausible ones, and use them to specify the SNN’s weights (Fig. 2). This yields:

$$\mathbf{x}(t)=h(t)({\mathbf{A}}^{\prime}\mathbf{x}(t)+{\mathbf{B}}^{\prime}\mathbf{y}(t)),$$

(7)

where

Implementing a Kalman filter with spiking neurons. **a.** Original Kalman filter (top) and neurally plausible version (bottom). The integrator is replaced with the synapses’ spike response, *h*(*t*), and the matrices are replaced with **A′** = *τ* **...**

$${\mathbf{A}}^{\prime}=\tau {\mathbf{M}}_{x}^{\text{CT}}+\mathbf{I}=\frac{\tau}{\mathrm{\Delta}t}({\mathbf{M}}_{x}^{\text{DT}}-\mathbf{I})+\mathbf{I},$$

(8)

$${\mathbf{B}}^{\prime}=\tau {\mathbf{M}}_{y}^{\text{CT}}=\frac{\tau}{\mathrm{\Delta}t}{\mathbf{M}}_{y}^{\text{DT}}.$$

(9)

${\mathbf{M}}_{x}^{\text{DT}}=(\mathbf{I}-\mathbf{KC})\mathbf{A}$ and
${\mathbf{M}}_{y}^{\text{DT}}=\mathbf{K}$ are the Kalman matrices, Δ*t* is the discrete time step (50ms), and *τ* is the synaptic time constant.

The *j*^{th} neuron’s input current (see (6)) is computed from the system’s current state, **x**(*t*), which is computed from estimates of the system’s previous state (
$\widehat{\mathbf{x}}(t)={\sum}_{i}{a}_{i}(t){\mathrm{i\mathbf{x}}}_{}^{}$) and current input (
$\widehat{\mathbf{y}}(t)={\sum}_{k}{b}_{k}(t){\mathrm{i\mathbf{y}}}_{}^{}$) using (7). This yields:

$$\begin{array}{l}{\alpha}_{j}{\stackrel{j}{~}}_{\xb7}^{\mathbf{x}}\end{array}$$

(10)

where ${\omega}_{ji}={\alpha}_{j}{\stackrel{j}{~}}_{{\mathbf{A}}^{\prime}}^{{\mathrm{i\mathbf{x}}}_{}^{}}$ and ${\omega}_{jk}={\alpha}_{j}{\stackrel{j}{~}}_{{\mathbf{B}}^{\prime}}^{{\mathrm{k\mathbf{y}}}_{}^{}}$ are the recurrent and feedforward weights, respectively.

An adult male rhesus macaque (monkey L) was trained to perform variants of a point-to-point arm movement task in a 3D experimental apparatus for juice reward [1].^{1} A 96-electrode silicon array (Blackrock Microsystems) was then implanted in premotor/motor cortex. Array recordings (−4.5 RMS threshold crossing applied to each electrode’s signal) yielded tuned activity for the direction and speed of arm movements. As detailed in [1], a standard Kalman filter model was fit by correlating the observed hand kinematics with the simultaneously measured neural signals, while the monkey was performing the point-to-point reaching task (Fig. 3). The resulting model was used online to control an on-screen cursor in real time. This model and 500 of these trials (2010-03-08) serves as the standard against which the SNN implementation’s performance is compared.

Neural and kinematic measurements for one trial. **a.** The ninety-six cortical recordings that were fed as input to the Kalman filter and the spiking neural network (spike counts in 50ms bins). **b.** Arm *x*- and *y*-velocity measurements that were correlated with **...**

Starting with the matrices obtained by correlating the observed hand kinematics with the simultaneously measured neural signals, we built a SNN using the NEF methodology and simulated it in *Nengo* using the parameter values listed in Table I. We ensured that the time constants
${\tau}_{i}^{\text{RC}},{\tau}_{i}^{\text{ref}}$, and
${\tau}_{i}^{\text{PSC}}$ were smaller than the implementation’s time step (50ms).

We had the choice of two network architectures for the *a _{j}*(

Spiking neural network architectures. **a.** 3D integrator: A single population represents three scalar quantities—*x* and *y*-velocity and a constant. **b.** 1D integrators: A separate population represents each scalar quantity—*x* or *y*-velocity in **...**

The SNN performed better as we increased the number of neurons (Fig. 5a,b). For 20,000 neurons, the *x* and *y*-velocity decoded from its two 10,000-neuron populations matched the standard decoder’s prediction to within 0.03% (RMS error normalized by maximum velocity).^{2} As reported in [10], the RMS error was roughly inversely proportional to the square-root of the number of neurons (Fig. 5c,d). There is a tradeoff between accuracy and computational time. For real-time operation—on a 3GHz PC with a 1ms simulation time-step—the network size is limited to 1,600 neurons. Encouragingly, this small network’s error was only 0.27%.

The *Nengo* simulations reported here demonstrate offline output that is virtually ident ical to that produced by a standard Kalman filter implementation. A 1,600-neuron network’s output is within 0.3% of the standard implementation, and *Nengo* can simulate this network in real-time. Which means we can now proceed to testing our new SNN on-line. This more challenging setting will enable us to further advance the SNN implementation by incorporating recently proposed variants of the Kalman filter that have been demonstrated to further increase performance and robustness during closed-loop, real-time operation [2], [3]. As such a filter and its variants have demonstrated the highest levels of brain-machine interface performance in both human [5] and monkey users [2], these simulations provide confidence that similar levels of performance can be attained with a neuromorphic architecture. Having refined the SNN architecture, we will proceed to our final validation step: implementing the network on *Neurogrid*, a hardware platform with sixteen programmable neuromorphic chips that can simulate a million spiking neurons in real-time [8].

The ultimate goal of this work is to build a fully implantable and programmable decoder chip using the neuromorphic approach. Variability among the silicon neurons and the large number of synaptic connections required present challenges. A distribution of spike-rates with a CV of 15% (sigma/mean) is typical, due to pronounced transistor mismatch in the subthreshold region where these nanopower circuits operate [9]. We have shown, however, that the NEF can effectively exploit even higher degrees of variability. Thus, the only real remaining challenge is achieving a high degree of connectivity. This one can be addressed by adopting a columnar organization, whereby nearby neurons share the same inputs, just like they do in the cortex—and in *Neurogrid*. This solution requires extending the NEF to a columnar architecture, a subject of ongoing research.

We thank Chris Eliasmith and Terry Stewart for valuable help with *Nengo*.

This work was supported in part by the Belgian American Education Foundation (J. Dethier), NSF and NDSEG Graduate Research Fellowships (V. Gilja), Stanford NIH Medical Scientist Training Program (MSTP) and Soros Fellowship (P. Nuyujukian), DARPA Revolutionizing Prosthetics program (N66001-06-C-8005, K. V. Shenoy), and two NIH Director’s Pioneer Awards (DP1-OD006409, K. V. Shenoy; DPI-OD000965, K. Boahen).

^{1}Animal protocols were approved by the Stanford IACUC.

^{2}The SNN’s estimates were smoothed with a filter identical to *h*(*t*), but with *τ* set to 5ms instead of 20ms to avoid introducing significant delay.

Julie Dethier, Department of Bioengineering, Stanford University, Stanford, CA 94305, USA.

Vikash Gilja, Department of Computer Science and Stanford Institute for Neuro-Innovation and Translational Neuroscience, Stanford University, Stanford, CA 94305, USA.

Paul Nuyujukian, Department of Bioengineering and MSTP, Stanford University, Stanford, CA 94305, USA.

Shauki A. Elassaad, Department of Bioengineering, Stanford University, Stanford, CA 94305, USA.

Krishna V. Shenoy, Departments of Electrical Engineering and Bioengineering, and Neurosciences Program, Stanford University, Stanford, CA 94305, USA.

Kwabena Boahen, Department of Bioengineering, Stanford University, Stanford, CA 94305, USA.

1. Gilja V. PhD Thesis. Department of Computer Science, Stanford University; 2010. Towards clinically viable neural prosthetic systems; pp. 19–22.pp. 57–73.

2. Gilja V, Nuyujukian P, Chestek CA, Cunningham JP, Fan JM, Yu BM, Ryu SI, Shenoy KV. 2010 Neuroscience Meeting Planner. San Diego, CA: Society for Neuroscience; 2010. A high-performance continuous cortically-controlled prosthesis enabled by feedback control design.

3. Nuyujukian P, Gilja V, Chestek CA, Cunningham JP, Fan JM, Yu BM, Ryu SI, Shenoy KV. 2010 Neuroscience Meeting Planner. San Diego, CA: Society for Neuroscience; 2010. Generalization and robustness of a continuous cortically-controlled prosthesis enabled by feedback control design.

4. Gilja V, Chestek CA, Diester I, Henderson JM, Deisseroth K, Shenoy KV. Challenges and opportunities for next-generation intra-cortically based neural prostheses. IEEE TBME. 2011 in press. [PMC free article] [PubMed]

5. Kim SP, Simeral JD, Hochberg LR, Donoghue JP, Black MJ. Neural control of computer cursor velocity by decoding motor cortical spiking activity in humans with tetraplegia. J Neural Engineering. 2008;5:455–476. [PMC free article] [PubMed]

6. Kim S, Tathireddy P, Normann RA, Solzbacher F. Thermal impact of an active 3-D microelectrode array implanted in the brain. IEEE TNSRE. 2007;15:493–501. [PubMed]

7. Boahen K. Neuromorphic Microchips. Scientific American. 2005;292(5):56–63. [PubMed]

8. Silver R, Boahen K, Grillner S, Kopell N, Olsen KL. Neurotech for neuroscience: Unifying concepts, organizing principles, and emerging tools. Journal of Neuroscience. 2007;27(44):11807–11819. [PMC free article] [PubMed]

9. Arthur JV, Boahen K. Silicon Neuron Design: The Dynamical Systems Approach. IEEE Transactions on Circuits and Systems. In press. [PMC free article] [PubMed]

10. Eliasmith C, Anderson CH. Neural Engineering: Computation, representation, and dynamics in neurobiological systems. MIT Press; Cambridge, MA: 2003.

11. Kalman RE. A New Approach to Linear Filtering and Prediction Problems. Transactions of the ASME–Journal of Basic Engineering. 1960;82(Series D):35–45.

12. Welsh G, Bishop G. An Introduction to the Kalman Filter. TR 95-041. Vol. 95. University of North Carolina; Chapel Hill Chapel Hill NC: 1995. pp. 1–16.

13. Eliasmith C. A unified approach to building and controlling spiking attractor networks. Neural Computation. 2005;17:1276–1314. [PubMed]

14. Singh R, Eliasmith C. Higher-dimensional neurons explain the tuning and dynamics of working memory cells. The Journal of Neuroscience. 2006;26(14):3667–3678. [PubMed]

15. Eliasmith C. How to build a brain: from function to implementation. Synthese. 2007;159(3):373–388.

PubMed Central Canada is a service of the Canadian Institutes of Health Research (CIHR) working in partnership with the National Research Council's national science library in cooperation with the National Center for Biotechnology Information at the U.S. National Library of Medicine(NCBI/NLM). It includes content provided to the PubMed Central International archive by participating publishers. |