Working PaperPDF Available

Training Spiking Deep Networks for Neuromorphic Hardware

Training Spiking Deep Networks
for Neuromorphic Hardware
Eric Hunsberger
Centre for Theoretical Neuroscience
University of Waterloo
Waterloo, ON N2L 3G1
Chris Eliasmith
Centre for Theoretical Neuroscience
University of Waterloo
Waterloo, ON N2L 3G1
We describe a method to train spiking deep networks that can be run using leaky
integrate-and-fire (LIF) neurons, achieving state-of-the-art results for spiking LIF
networks on five datasets, including the large ImageNet ILSVRC-2012 bench-
mark. Our method for transforming deep artificial neural networks into spik-
ing networks is scalable and works with a wide range of neural nonlinearities.
We achieve these results by softening the neural response function, such that its
derivative remains bounded, and by training the network with noise to provide
robustness against the variability introduced by spikes. Our analysis shows that
implementations of these networks on neuromorphic hardware will be many times
more power-efficient than the equivalent non-spiking networks on traditional hard-
1 Introduction
Deep artificial neural networks (ANNs) have recently been very successful at solving image cate-
gorization problems. Early successes with the MNIST database [1] were subsequently tested on the
more difficult but similarly sized CIFAR-10 [2] and Street-view house numbers [3] datasets. Re-
cently, many groups have achieved better results on these small datasets (e.g. [4]), as well as on
larger datasets (e.g. [5]). This work has culminated with the application of deep convolutional neu-
ral networks to ImageNet [6], a very large and challenging dataset with 1.2 million images across
1000 categories.
There has recently been considerable effort to introduce neural “spiking” into deep ANNs [7, 8, 9,
10, 11, 12], such that connected nodes in the network transmit information via instantaneous single
bits (spikes), rather than transmitting real-valued activities. While one goal of this work is to better
understand the brain by trying to reverse engineer it [7], another goal is to build energy-efficient
neuromorphic systems that use a similar spiking communication method, for image categorization
[10, 11, 12] or other applications [13].
In this paper, we present a novel method for translating deep ANNs into spiking networks for im-
plementation on neuromorphic hardware. Unlike previous methods, our method is applicable to
a broad range of neural nonlinearities, allowing for implementation on hardware with idiosyncratic
neuron types (e.g. [14]). We extend our previous results [15] to additional datasets, and most notably
demonstrate that it scales to the large ImageNet dataset. We also perform an analysis demonstrating
that neuromorphic implementations of these networks will be many times more power-efficient than
the equivalent non-spiking networks running on traditional hardware.
2 Methods
We first train a network on static images using traditional deep learning techniques; we call this the
ANN. We then take the parameters (weights and biases) from the ANN and use them to connect
spiking neurons, forming the spiking neural network (SNN). A central challenge is to train the ANN
in such a way that it can be transferred into a spiking network, and such that the classification error
of the resulting SNN is minimized.
2.1 Convolutional ANN
We base our network off that of Krizhevsky et al. [6], which won the ImageNet ILSVRC-2012
competition. A smaller variant of the network achieved 11% error on the CIFAR-10 dataset. The
network makes use of a series of generalized convolutional layers, where one such layer is composed
of a set of convolutional weights, followed by a neural nonlinearity, a pooling layer, and finally a
local contrast normalization layer. These generalized convolutional layers are followed by either
locally-connected layers, fully-connected layers, or both, all with a neural nonlinearity. In the case
of the original network, the nonlinearity is a rectified linear (ReLU) function, and pooling layers
perform max-pooling. The details of the network can be found in [6] and code is available1.
To make the ANN transferable to spiking neurons, a number of modifications are necessary. First,
we remove the local response normalization layers. This computation would likely require some
sort of lateral connections between neurons, which are difficult to add in the current framework
since the resulting network would not be feedforward and we are using methods focused on training
feedforward networks.
Second, we changed the pooling layers from max pooling to average pooling. Again, computing max
pooling would likely require lateral connections between neurons, making it difficult to implement
without significant changes to the training methodology. Average pooling, on the other hand, is very
easy to compute in spiking neurons, since it is simply a weighted sum.
The other modifications—using leaky integrate-and-fire neurons and training with noise—are the
main focus of this paper, and are described in detail below.
2.2 Leaky integrate-and-fire neurons
Our network uses a modified leaky integrate-and-fire (LIF) neuron nonlinearity instead of the recti-
fied linear nonlinearity. Past work has kept the rectified linear nonlinearity for the ANN and substi-
tuted in the spiking integrate-and-fire (IF) neuron model in the SNN [11, 10], since the static firing
curve of the IF neuron model is a rectified line. Our motivation for using the LIF neuron model is
that it and it demonstrates that more complex, nonlinear neuron models can be used in such net-
works. Thus, these methods can be extended to the idiosyncratic neuron types employed by some
neuromorphic hardware (e.g. [14]).
The LIF neuron dynamics are given by the equation
τRC ˙v(t) = v(t) + J(t)(1)
where v(t)is the membrane voltage, ˙v(t)is its derivative with respect to time, J(t)is the input
current, and τRC is the membrane time constant. When the voltage reaches Vth = 1, the neuron
fires a spike, and the voltage is held at zero for a refractory period of τref . Once the refractory
period is finished, the neuron obeys Equation 1 until another spike occurs.
Given a constant input current J(t) = j, we can solve Equation 1 for the time it takes the voltage to
rise from zero to one, and thereby find the steady-state firing rate
r(j) = τref +τRC log 1 + Vth
where ρ(x) = max(x, 0).
Theoretically, we should be able to train a deep neural network using Equation 2 as the static non-
linearity and make a reasonable approximation of the network in spiking neurons, assuming that
Figure 1: Comparison of LIF and soft LIF response functions. The left panel shows the response
functions themselves. The LIF function has a hard threshold at j=Vth = 1; the soft LIF function
smooths this threshold. The right panel shows the derivatives of the response functions. The hard
LIF function has a discontinuous and unbounded derivative at j= 1; the soft LIF function has a
continuous bounded derivative, making it amenable to use in backpropagation.
the spiking network has a synaptic filter that sufficiently smooths a spike train to give a good ap-
proximation of the firing rate. The LIF steady state firing rate has the particular problem that the
derivative approaches infinity as j0+, which causes problems when employing backpropagation.
To address this, we added smoothing to the LIF rate equation.
If we replace the hard maximum ρ(x) = max(x, 0) with a softer maximum ρ1(x) = log(1 + ex),
then the LIF neuron loses its hard threshold and the derivative becomes bounded. Further, we can
use the substitution
ρ2(x) = γlog h1 + ex/γ i(3)
to allow us control over the amount of smoothing, where ρ2(x)max(x, 0) as γ0. Figure 1
shows the result of this substitution.
2.3 Training with noise
Training neural networks with various types of noise on the inputs is not a new idea. Denoising
autoencoders [16] have been successfully applied to datasets like MNIST, learning more robust
solutions with lower generalization error than their non-noisy counterparts.
In a biological spiking neural network, synapses between neurons perform some measure of filtering
on the spikes, due to the fact that the post-synaptic current induced by the neurotransmitter release
is distributed over time. We employ a similar mechanism in our networks to attenuate some of
the variability introduced by spikes. The α-function α(t)=(t/τs)et/τsis a simple second-order
lowpass filter, inspired by biology [17]. We chose this as a synaptic filter for our networks since it
provides better noise reduction than a first-order lowpass filter.
The filtered spike train can be viewed as an estimate of the neuron activity. For example, if the
neuron is firing regularly at 200 Hz, filtering spike train will result in a signal fluctuating around 200
Hz. We can view the neuron output as being 200 Hz, with some additional “noise” around this value.
By training our ANN with some random noise added to the output of each neuron for each training
example, we can simulate the effects of using spikes on the signal received by the post-synaptic
Figure 2 shows how the variability of filtered spike trains depends on input current for the LIF
neuron. Since the impulse response of the α-filter has an integral of one, the mean of the filtered
spike trains is equal to the analytical rate of Equation 2. However, the statistics of the filtered signal
vary significantly across the range of input currents. Just above the firing threshold, the distribution
is skewed towards higher firing rates (i.e. the median is below the mean), since spikes are infrequent
so the filtered signal has time to return to near zero between spikes. At higher input currents, on the
Figure 2: Variability in filtered spike trains versus input current for the LIF neuron (τRC =
0.02, τref = 0.004). The solid line shows the mean of the filtered spike train (which matches
the analytical rate of Equation 2), the ‘x’-points show the median, the solid error bars show the 25th
and 75th percentiles, and the dotted error bars show the minimum and maximum. The spike train
was filtered with an α-filter with τs= 0.003 s.
other hand, the distribution is skewed towards lower firing rates (i.e. the median is above the mean).
In spite of this, we used a Gaussian distribution to generate the additive noise during training, for
simplicity. We found the average standard deviation to be approximately σ= 10 across all positive
input currents for an α-filter with τs= 0.005. During training, we add Gaussian noise ηG(0, σ )
to the firing rate r(j)(Equation 2) when j > 0, and add no noise when j0.
2.4 Conversion to a spiking network
Finally, we convert the trained ANN to a SNN. The parameters in the spiking network (i.e. weights
and biases) are all identical to that of the ANN. The convolution operation also remains the same,
since convolution can be rewritten as simple connection weights (synapses) wij between pre-
synaptic neuron iand post-synaptic neuron j. (How the brain might learn connection weight pat-
terns, i.e. filters, that are repeated at various points in space, is a much more difficult problem that
we will not address here.) Similarly, the average pooling operation can be written as a simple con-
nection weight matrix, and this matrix can be multiplied by the convolutional weight matrix of the
following layer to get direct connection weights between neurons.2
The only component of the network that changes when moving from the ANN to the SNN is the
neurons themselves. The most significant change is that we replace the soft LIF rate model (Equa-
tion 2) with the LIF spiking model (Equation 1). We remove the additive Gaussian noise used in
training. We also add post-synaptic filters to the neurons, which removes a significant portion of the
high-frequency variation produced by spikes.
3 Results
We tested our methods on five datasets: MNIST [1], SVHN [18], CIFAR-10 and CIFAR-100 [19],
and the large ImageNet ILSVRC-2012 dataset [20]. Our best result for each dataset is shown in
Table 1. Using our methods has allowed us to build spiking networks that perform nearly as well as
their non-spiking counterparts using the same number of neurons. All datasets show minimal loss
in accuracy when transforming from the ANN to the SNN. 3
2For computational efficiency, we actually compute the convolution and pooling separately.
3The ILSVRC-2012 dataset actually shows a marginal increase in accuracy, though this is likely not statisti-
cally significant and could be because the spiking LIF neurons have harder firing thresholds than their soft-LIF
rate counterparts. Also, the CIFAR-100 dataset shows a considerable increase in performance when using soft-
MNIST 0.79% 0.84% 0.88%
SVHN 5.65% 5.79% 6.08%
CIFAR-10 16.48% 16.28% 16.46%
CIFAR-100 50.05% 44.35% 44.87%
ILSVRC-2012 45.4% (20.9%)a48.3% (24.1%)a48.2% (23.8%)a
aResults from the first 3072-image test batch.
Table 1: Results for spiking LIF networks (LIF SNN), compared with ReLU ANN and LIF ANN
(both using the same network structure, but with ReLU and LIF rate neurons respectively). The
spiking versions of each network perform almost as well as the rate-based versions. The ILSVRC-
2012 (ImageNet) results show the error for the top result, with the top-5 result in brackets.
Dataset This Paper TN 1-chip TN 8-chip Best Other
MNIST 0.88% (27k) None None 0.88% (22k) [10]
SVHN 6.08% (27k) 3.64% (1M) 2.83% (8M) None
CIFAR-10 16.46% (50k) 17.50% (1M) 12.50% (8M) 22.57% (28k) [11]
CIFAR-100 44.87% (50k) 47.27% (1M) 36.95% (8M) None
ILSVRC-2012 48.2%, 23.8% (493k)aNone None None
aResults from the first 3072-image test batch.
Table 2: Our error rates compared with recent results on the TrueNorth (TN) neuromorphic
chip [12], as well as other best results in the literature. Approximate numbers of neurons are shown
in parentheses. The TrueNorth networks use significantly more neurons than our networks (about
20×more for the 1-chip network and 160×more for the 8-chip network). The first number for
ILSVRC-2012 (ImageNet) indicates the error for the top result, and the second number the more
commonly reported top-5 result.
Table 2 compares our results to the best spiking network results on these datasets in the litera-
ture. The most significant recent results are from [12], who implemented networks for a number of
datasets on both one and eight TrueNorth chips. Their results are impressive, but are difficult to com-
pare with ours since they use between 20 and 160 times more neurons. We surpass a number of their
one-chip results while using an order of magnitude fewer neurons. Furthermore, we demonstrate
that our method scales to the large ILSVRC-2012 dataset, which no other SNN implementation to
date has done. The most significant difference between our results and that of [10] and [11] is that
we use LIF neurons and can generalize to other neuron types, whereas their methods (and those of
[12]) are specific to IF neurons.
We examined our methods in more detail on the CIFAR-10 dataset. This dataset is composed of
60000 32×32 pixel labelled images from ten categories. We used the first 50000 images for training
and the last 10000 for testing, and augmented the dataset by taking random 24 ×24 patches from the
training images and then testing on the center patches from the testing images. This methodology
is similar to Krizhevsky et al. [6], except that they also used multiview testing where the classifier
output is the average output of the classifier run on nine random patches from each testing image
(increasing the accuracy by about 2%).
Table 3 shows the effect of each modification on the network classification error. Rows 1-5 show that
each successive modification required to make the network amenable to running in spiking neurons
adds additional error. Despite the fact that training with noise adds additional error to the ANN,
rows 6-8 of the table show that in the spiking network, training with noise pays off, though training
with too much noise is not advantageous. Specifically, though training with σ= 20 versus σ= 10
decreased the error introduced when switching to spiking neurons, it introduced more error to the
ANN (Network 5), resulting in worse SNN performance (Network 8).
LIF neurons versus ReLUs in the ANN, but this could simply be due to the training hyperparameters chosen,
since these were not optimized in any way.
# Modification CIFAR-10 error
0 Original ANN based on Krizhevsky et al. [6] 14.03%
1 Network 0 minus local contrast normalization 14.38%
2 Network 1 minus max pooling 16.70%
3 Network 2 with soft LIF 15.89%
4 Network 3 with training noise (σ= 10) 16.28%
5 Network 3 with training noise (σ= 20) 16.92%
6 Network 3 (σ= 0) in spiking neurons 17.06%
7 Network 4 (σ= 10) in spiking neurons 16.46%
8 Network 5 (σ= 20) in spiking neurons 17.04%
Table 3: Effects of successive modifications to CIFAR-10 error. We first show the original ANN
based on [6], and then the effects of each subsequent modification. Rows 6-8 show the results of
running ANNs 3-5 in spiking neurons, respectively. Row 7 is the best spiking network, using a
moderate amount of training noise.
3.1 Efficiency
Running on standard hardware, spiking networks are considerably less efficient than their ANN
counterparts. This is because ANNs are static, requiring only one forward-pass through the network
to compute the output, whereas SNNs are dynamic, requiring the input to be presented for a number
of time steps and thus a number of forward passes. On hardware that can take full advantage of the
sparsity that spikes provide—that is, neuromorphic hardware—SNNs can be more efficient than the
equivalent ANNs, as we show here.
First, we need to compute the computational efficiency of the original network, specifically the num-
ber of floating-point operations (flops) required to pass one image through the network. There are
two main sources of computation in the image: computing the neurons and computing the connec-
flops =flops
neuron ×neurons +flops
connection ×connections (4)
Since a rectified linear unit is a simple max function, it requires only one flop to compute
(flops/neuron = 1). Each connection requires two flops, a multiply and an add (flops/connection = 2).
We can determine the number of connections by “unrolling” each convolution, so that the layer is in
the same form as a locally connected layer.
To compute the SNN efficiency on a prospective neuromorphic chip, we begin by identifying the
energy cost of a synaptic event (Esynop) and neuron update (Eupdate), relative to standard hardware.
In consultation with neuromorphic experts, and examining current reports of neuromorphic chips
(e.g. [21]), we assume that each neuron update takes as much energy as 0.25 flops (Eupdate = 0.25),
and each synaptic event takes as much energy as 0.08 flops (Esynop = 0.08). (These numbers could
potentially be much lower for analog chips, e.g. [14].) Then, the total energy used by an SNN to
classify one image is (in units of the energy required by one flop on standard hardware)
ESN N =Esynop
image (5)
For our CIFAR-10 network, we find that on average, the network has rates of 2,693,315,174 syn-
ops/s and 49,536,000 updates/s. This results in EC IF AR10 = 45,569,843, when each image is
presented for 200 ms. Dividing by the number of flops per image on standard hardware, we find that
the relative efficiency of the CIFAR-10 network is 0.76, that is it is somewhat less efficient.
Equation 5 shows that if we are able to lower the amount of time needed to present each image to
the network, we can lower the energy required to classify the image. Alternatively, we can lower
the number of synaptic events per second by lowering the firing rates of the neurons. Lowering
the number of neuron updates would have little effect on the overall energy consumption since the
synaptic events require the majority of the energy.
To lower the presentation time required for each input while maintaining accuracy, we need to
decrease the synapse time constant as well, so that the information is able to propagate through the
Dataset τs[ms] c0[ms] c1[ms] Error Efficiency
CIFAR-10 5 120 200 16.46% 0.76×
CIFAR-10 0 10 80 16.63% 1.64×
CIFAR-10 0 10 60 17.47% 2.04×
MNIST 5 120 200 0.88% 5.94×
MNIST 2 40 100 0.92% 11.98×
MNIST 2 50 60 1.14% 14.42×
MNIST 0 20 60 3.67% 14.42×
ILSVRC-2012 3 140 200 23.80% 1.39×
ILSVRC-2012 0 30 80 25.33% 2.88×
ILSVRC-2012 0 30 60 25.36% 3.51×
Table 4: Estimated efficiency of our networks on neuromorphic hardware, compared with traditional
hardware. For all datasets, there is a tradeoff between accuracy and efficiency, but we find many con-
figurations that are significantly more efficient while sacrificing little in terms of accuracy. τsis the
synapse time constant, c0is the start time of the classification, c1is the end time of the classification
(i.e. the total presentation time for each image).
whole network in the decreased presentation time. Table 4 shows the effect of various alternatives
for the presentation time and synapse time constant on the accuracy and efficiency of the networks
for a number of the datasets.
Table 4 shows that for some datasets (e.g. CIFAR-10 and ILSVRC-2012) the synapses can be com-
pletely removed (τs= 0 ms) without sacrificing much accuracy. Interestingly, this is not the case
with the MNIST network, which requires at least some measure of synapses to function accurately.
We suspect that this is because the MNIST network has much lower firing rates than the other net-
works (average of 9.67 Hz for MNIST, 148 Hz for CIFAR-10, 93.3 Hz for ILSVRC-2012). This
difference in average firing rates is also why the MNIST network is significantly more efficient than
the other networks.
It is important to tune the classification time, both in terms of the total length of time each example
is shown for (c1), and when classification begins (c0). The optimal values for these parameters are
very dependent on the network, both in terms of the number of layers, firing rates, and synapse time
constants. Figure 3 shows how the classification time affects accuracy for various networks.
Given that the CIFAR-10 network performs almost as well with no synapses as with synapses, one
may question whether noise is required during training at all. We retrained the CIFAR-10 network
with no noise and ran with no synapses, but could not achieve accuracy better than 18.06%. This
suggests that noise is still beneficial during training.
4 Discussion
Our results show that it is possible to train accurate deep convolutional networks for image clas-
sification without adding neurons, while using more complex nonlinear neuron types—specifically
the LIF neuron—as opposed to the traditional rectified-linear or sigmoid neurons. We have shown
that networks can be run in spiking neurons, and training with noise decreases the amount of error
introduced when running in spiking versus rate neurons. These networks can be significantly more
energy-efficient than traditional ANNs when run on specialized neuromorphic hardware.
The first main contribution of this paper is to demonstrate that state-of-the-art spiking deep networks
can be trained with LIF neurons, while maintaining high levels of classification accuracy. For exam-
ple, we have described the first large-scale SNN able to provide good results on ImageNet. Notably,
all other state-of-the-art methods use integrate-and-fire (IF) neurons [11, 10, 12], which are straight-
forward to fit to the rectified linear units commonly used in deep convolutional networks. We show
that there is minimal drop in accuracy when converting from ANN to SNN. We also examine how
classification time affects accuracy and energy-efficiency, and find that networks can be made quite
efficient with minimal loss in accuracy.
CIFAR-10 (τs= 5 ms) CIFAR-10 (τs= 0 ms)
MNIST (τs= 2 ms) ILSVRC-2012 (τs= 0 ms)
Figure 3: Effects of classification time on accuracy. Individual traces show different starting classi-
fication times (c0), and the x-axis the end classification time (c1).
By smoothing the LIF response function so that its derivative remains bounded, we are able to use
this more complex and nonlinear neuron with a standard convolutional network trained by back-
propagation. Our smoothing method is extensible to other neuron types, allowing for networks to be
trained for neuromorphic hardware with idiosyncratic neuron types (e.g. [14]). We found that there
was very little error introduced by switching from the soft response function to the hard response
function with LIF neurons for the amount of smoothing that we used. However, for neurons with
harsh discontinuities that require more smoothing, it may be necessary to slowly relax the smoothing
over the course of the training so that, by the end of the training, the smooth response function is
arbitrarily close to the hard response function.
The second main contribution of this paper is to demonstrate that training with noise on neuron
outputs can decrease the error introduced when transitioning to spiking neurons. The error decreased
by 0.6% overall on the CIFAR-10 network, despite the fact that the ANN trained without noise
performs better. This is because noise on the output of the neuron simulates the variability that a
spiking network encounters when filtering a spike train. There is a tradeoff between training with
too little noise, which makes the SNN less accurate, and too much noise, which makes the initially
trained ANN less accurate.
These methods provide new avenues for translating traditional ANNs to spike-based neuromorphic
hardware. We have provided some evidence that such implementations can be significantly more
energy-efficient than their ANN counterparts. While our analyses only consider static image classi-
fication, we expect that the real efficiency of SNNs will become apparent when dealing with dynamic
inputs (e.g. video). This is because SNNs are inherently dynamic, and take a number of simulation
steps to process each image. This makes them best suited to processing dynamic sequences, where
adjacent frames in the video sequence are similar to one another, and the network does not have to
take time to constantly “reset” after sudden changes in the input.
Future work includes experimenting with lowering firing rates for greater energy-efficiency. This
could be done by changing the neuron refractory period τref to limit the firing below a particular
rate, optimizing for both accuracy and low rates, using adapting neurons, or adding lateral inhibition
in the convolutional layers. Other future work includes implementing max-pooling and local contrast
normalization layers in spiking networks. Networks could also be trained offline as described here
and then fine-tuned online using an STDP rule [22, 23] to help further reduce errors associated
with converting from rate-based to spike-based networks, while avoiding difficulties with training a
network in spiking neurons from scratch.
[1] Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner, “Gradient-based learning applied to document recogni-
tion,” Proceedings of the IEEE, vol. 86, no. 11, pp. 2278–2324, 1998.
[2] A. Krizhevsky, “Convolutional deep belief networks on CIFAR-10,” Tech. Rep., 2010.
[3] P. Sermanet, S. Chintala, and Y. LeCun, “Convolutional neural networks applied to house numbers digit
classification,” in International Conference on Pattern Recognition (ICPR), 2012.
[4] C.-Y. Lee, S. Xie, P. W. Gallagher, Z. Zhang, and Z. Tu, “Deeply-supervised nets,” in International
Conference on Artificial Intelligence and Statistics (AISTATS), vol. 38, 2015, pp. 562–570.
[5] R. Gens and P. Domingos, “Discriminative learning of sum-product networks,” in Advances in Neural
Information Processing Systems (NIPS), 2012, pp. 1–9.
[6] A. Krizhevsky, I. Sutskever, and G. Hinton, “Imagenet classification with deep convolutional neural net-
works,” in Advances in Neural Information Processing Systems, 2012.
[7] C. Eliasmith, T. C. Stewart, X. Choo, T. Bekolay, T. DeWolf, C. Tang, and D. Rasmussen, “A Large-Scale
Model of the Functioning Brain,” Science, vol. 338, no. 6111, pp. 1202–1205, Nov. 2012.
[8] E. Neftci, S. Das, B. Pedroni, K. Kreutz-Delgado, and G. Cauwenberghs, “Event-driven contrastive di-
vergence for spiking neuromorphic systems,Frontiers in Neuroscience, vol. 7, no. 272, 2013.
[9] P. O’Connor, D. Neil, S.-C. Liu, T. Delbruck, and M. Pfeiffer, “Real-time classification and sensor fusion
with a spiking deep belief network,” Frontiers in Neuroscience, vol. 7, Jan. 2013.
[10] P. U. Diehl, D. Neil, J. Binas, M. Cook, S.-C. Liu, and M. Pfeiffer, “Fast-Classifying, High-Accuracy
Spiking Deep Networks Through Weight and Threshold Balancing,” in IEEE International Joint Confer-
ence on Neural Networks (IJCNN), 2015.
[11] Y. Cao, Y. Chen, and D. Khosla, “Spiking Deep Convolutional Neural Networks for Energy-Efficient
Object Recognition,” International Journal of Computer Vision, vol. 113, no. 1, pp. 54–66, Nov. 2014.
[12] S. K. Esser, P. A. Merolla, J. V. Arthur, A. S. Cassidy, R. Appuswamy, A. Andreopoulos, D. J. Berg, J. L.
Mckinstry, T. Melano, D. R. Barch, C. di Nolfo, P. Datta, A. Amir, B. Taba, M. D. Flickner, and D. S.
Modha, “Convolutional Networks for Fast, Energy-Efficient Neuromorphic Computing,” arXiv preprint,
vol. 1603, no. 08270, pp. 1–7, 2016.
[13] P. U. Diehl, G. Zarrella, A. Cassidy, B. U. Pedroni, and E. Neftci, “Conversion of Artificial Recurrent
Neural Networks to Spiking Neural Networks for Low-power Neuromorphic Hardware,arXiv preprint,
vol. 1601, no. 04187, 2016.
[14] B. V. Benjamin, P. Gao, E. McQuinn, S. Choudhary, A. R. Chandrasekaran, J.-M. Bussat, R. Alvarez-
Icaza, J. V. Arthur, P. A. Merolla, and K. Boahen, “Neurogrid: A mixed-analog-digital multichip system
for large-scale neural simulations,Proceedings of the IEEE, vol. 102, no. 5, pp. 699–716, 2014.
[15] E. Hunsberger and C. Eliasmith, “Spiking Deep Networks with LIF Neurons,” arXiv:1510.08829 [cs],
pp. 1–9, 2015.
[16] P. Vincent, H. Larochelle, Y. Bengio, and P.-A. Manzagol, “Extracting and composing robust features with
denoising autoencoders,” in International Conference on Machine Learning (ICML), 2008, pp. 1096–
[17] Z. F. Mainen and T. J. Sejnowski, “Reliability of spike timing in neocortical neurons.” Science (New York,
N.Y.), vol. 268, no. 5216, pp. 1503–6, Jun. 1995.
[18] Y. Netzer, T. Wang, A. Coates, A. Bissacco, B. Wu, and A. Y. Ng, “Reading Digits in Natural Images with
Unsupervised Feature Learning,” in NIPS workshop on deep learning and unsupervised feature learning,
2011, pp. 1–9.
[19] A. Krizhevsky, “Learning Multiple Layers of Features from Tiny Images,” Master’s thesis, University of
Toronto, 2009.
[20] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla,
M. Bernstein, A. C. Berg, and L. Fei-Fei, “ImageNet Large Scale Visual Recognition Challenge,Inter-
national Journal of Computer Vision, vol. 115, no. 3, pp. 211–252, 2015.
[21] P. A. Merolla, J. V. Arthur, R. Alvarez-Icaza, A. S. Cassidy, J. Sawada, F. Akopyan, B. L. Jackson,
N. Imam, C. Guo, Y. Nakamura, B. Brezzo, I. Vo, S. K. Esser, R. Appuswamy, B. Taba, A. Amir, M. D.
Flickner, W. P. Risk, R. Manohar, and D. S. Modha, “A million spiking-neuron integrated circuit with a
scalable communication network and interface,Science, vol. 345, no. 6197, pp. 668–673, 2014.
[22] B. Nessler, M. Pfeiffer, L. Buesing, and W. Maass, “Bayesian computation emerges in generic cortical
microcircuits through spike-timing-dependent plasticity.” PLoS computational biology, vol. 9, no. 4, p.
e1003037, Apr. 2013.
[23] T. Bekolay, C. Kolbeck, and C. Eliasmith, “Simultaneous unsupervised and supervised learning of cogni-
tive functions in biologically plausible spiking neural networks,” in Proc. 35th Annual Conference of the
Cognitive Science Society, 2013, pp. 169–174.
... This layer does not include an activation function in order to fully capture the negative and positive spatial correlations from the input. The SNN layers use leaky-integrate and fire (LIF) neurons with dynamics governed by Equation 1, where τ RC is the membrane time constant, V t is the neuron's membrane voltage at time t, J tl is the accumulated input current from the l layer at time t and δ t is the change in time from the previous time step [64]. τ rc is assumed to be fixed to 20 ms, however, a grid search can be performed to optimize this hyper-parameter. ...
... The final time step from the decision window is used as the final classification for the attended speaker. The Nengo deep learning library approaches training of the non-differentiable neurons through surrogate-models that are differentiable [64]. The non-differentiable neurons are replaced during training with an approximate model that is differentiable. ...
In a multi-speaker "cocktail party" scenario, a listener can selectively attend to a speaker of interest. Studies into the human auditory attention network demonstrate cortical entrainment to speech envelopes resulting in highly correlated Electroencephalography (EEG) measurements. Current trends in EEG-based auditory attention detection (AAD) using artificial neural networks (ANN) are not practical for edge-computing platforms due to longer decision windows using several EEG channels, with higher power consumption and larger memory footprint requirements. Nor are ANNs capable of accurately modeling the brain's top-down attention network since the cortical organization is complex and layer. In this paper, we propose a hybrid convolutional neural network-spiking neural network (CNN-SNN) corticomorphic architecture, inspired by the auditory cortex, which uses EEG data along with multi-speaker speech envelopes to successfully decode auditory attention with low latency down to 1 second, using only 8 EEG electrodes strategically placed close to the auditory cortex, at a significantly higher accuracy of 91.03%, compared to the state-of-the-art. Simultaneously, when compared to a traditional CNN reference model, our model uses ~15% fewer parameters at a lower bit precision resulting in ~57% memory footprint reduction. The results show great promise for edge-computing in brain-embedded devices, like smart hearing aids.
... The challenge is to develop optimal SNN models, algorithms, and engineering technologies for real use cases [4], [8], [9]. Methods to build SNNs have been studied [10], [11] as a way to reproduce the proven functionality of deep neural networks (DNNs) in various real applications. These methods use various types of training for SNNs, such as conversion of trained DNNs into SNNs [10], [11], backpropagation [12], and online training with pseudo-backpropagation [13]. ...
... Methods to build SNNs have been studied [10], [11] as a way to reproduce the proven functionality of deep neural networks (DNNs) in various real applications. These methods use various types of training for SNNs, such as conversion of trained DNNs into SNNs [10], [11], backpropagation [12], and online training with pseudo-backpropagation [13]. The approach of reproducing DNNs as SNNs has the advantage of using DNNs that are proven for various applications. ...
Neuromorphic computing with a spiking neural network (SNN) is expected to provide a complement or alternative to deep learning in the future. The challenge is to develop optimal SNN models, algorithms, and engineering technologies for real use cases. As a potential use cases for neuromorphic computing, we have investigated a person monitoring and worker support with a video surveillance system, given its status as a proven deep neural network (DNN) use case. In the future, to increase the number of cameras in such a system, we will need a scalable approach that embeds only a few neuromorphic devices in a camera. Specifically, this will require a shallow SNN model that can be implemented in a few neuromorphic devices while providing a high recognition accuracy comparable to a DNN with the same configuration. A shallow SNN was built by converting ResNet, a proven DNN for image recognition, and a new configuration of the shallow SNN model was developed to improve its accuracy. The proposed shallow SNN model was evaluated with a few neuromorphic devices, and it achieved a recognition accuracy of more than 80% with about 1/130 less energy consumption than that of a GPU with the same configuration of DNN as that of SNN.
... Although ANNs are partially in-spired by the cerebral cortex in terms of spatial complexity [53], they have been used effectively in many specific applications [54], [55]. Examples of such specific tasks are image recognition and classification [56], natural language processing [57], speech recognition [58], and gaming [59]. On the other hand, SNNs take advantage of event-driven spikes, rich spatiotemporal dynamics, and compact memory and computing elements to offer advantages in terms of energy and computing efficiency. ...
The emergence of artificial intelligence has represented great potential in solving a wide range of complex problems. However, traditional general-purpose chips based on von Neumann architectures face the “memory wall” problem when applied in artificial intelligence applications. Based on the efficiency of the human brain, many intelligent neuromorphic chips have been proposed to emulate its working mechanism and neuron-synapse structure. With the emergence of spiking-based neuromorphic chips, the computation and energy efficiency of such devices could be enhanced by integrating a variety of features inspired by the biological brain. Aligning with the rapid development of neuromorphic chips, it is of great importance to quickly initiate the investigation of the electromagnetic interference and signal integrity issues related to neuromorphic chips for both CMOS-based and memristor-based artificial intelligence integrated circuits. Here, this paper provides a review of neuromorphic circuit design and algorithms in terms of electromagnetic issues and opportunities with a focus on signal integrity issues, modeling, and optimization. Moreover, the heterogeneous structures of neuromorphic circuits and other circuits, such as memory arrays and sensors using different integration technologies, are also reviewed, and locations where signal integrity might be compromised are discussed. Finally, we provide future trends in electromagnetic interference and signal integrity and outline prospects for upcoming neuromorphic devices.
... One common approach to develop SNNs is to train an Artificial Neural Network (ANN) using back-propagation and perform a conversion process to map the trained model to an SNN for inference. Strategies for this conversion include activation function approximations [56], and optimizations [57], [58], constrained training to resemble spiking form [59], [60], and optimized spiking neuron model [61]. However, due to limited weight precision, these approaches often have reduced performance compared to their ANN counterparts when deployed on neuromorphic hardware. ...
Full-text available
In robotics, Spiking Neural Networks (SNNs) are increasingly recognized for their largely-unrealized potential energy efficiency and low latency particularly when implemented on neuromorphic hardware. Our paper highlights three advancements for SNNs in Visual Place Recognition (VPR). First, we propose Modular SNNs, where each SNN represents a set of non-overlapping geographically distinct places, enabling scalable networks for large environments. Secondly, we present Ensembles of Modular SNNs, where multiple networks represent the same place, significantly enhancing accuracy compared to single-network models. Our SNNs are compact and small, comprising only 1500 neurons and 474k synapses, which makes them ideally suited for ensembling due to this small size. Lastly, we investigate the role of sequence matching in SNN-based VPR, a technique where consecutive images are used to refine place recognition. We analyze the responsiveness of SNNs to ensembling and sequence matching compared to other VPR techniques. Our contributions highlight the viability of SNNs for VPR, offering scalable and robust solutions, paving the way for their application in various energy-sensitive robotic tasks.
... In CIFAR10, we compared two Spiking CNNs, and the accuracy comparison results are shown in Table 7. DlaCSNN-BP achieved 89.92% highest accuracy, and 89.81% average accuracy on NET5, which was better than the SNN converted from ANN [49], STBP [24], TSSL-BP, and other two proposed methods. In Net6, Dyn-CSNN outperformed ANN, converted SNN and SNNs with the best accuracy of 91.39% and average accuracy of 91.30%. ...
Full-text available
Spiking Neural Network (SNN) is one of the mainstream frameworks for brain-like computing and neuromorphic computing, which has the potential to overcome current AI challenges, for example, low-power learning dynamic processes. However, there is still a huge gap in performance between SNN and artificial neural networks (ANN) in traditional supervised learning. One solution for this problem is to propose a better spiking neuron model to improve its memory ability for temporal data. This paper proposed a leaky integrate-and-fire (LIF) neuron model with dynamic postsynaptic potential and a layer-span connecting method for SNN trained using backpropagation. The dynamic postsynaptic potential LIF model allows the neurons dynamically release neurotransmitters in an SNN model, which mimics the activity of biological neurons. The layer-span connecting method enhances the long-distance memory ability of SNN. We also first introduced a cosh-based surrogate gradient for the backpropagation training of SNNs. We compared the SNN with cosh-based surrogate gradient (CSNN), CSNN with dynamic postsynaptic potential (Dyn-CSNN), layer-span connecting CSNN (Las-CSNN), and SNN model with all the proposed methods (DlaCSNN-BP) in three image classification and one text classification datasets. The experimental results exhibited that proposed SNN methods could outperform most of the previously proposed SNNs and ANNs in the same network structure. Among them, the proposed DlaCSNN-BP got the best classification performance. This result indicates that our proposed method can effectively improve the effect of SNN in supervised learning and reduce the gap with deep learning. This work also provides more possibilities for putting SNN into practical application.
... Furthermore, NengoDL facilitated the training process using conventional backpropagation. This was achievable through the utilization of a differentiable function, known as SoftLIF [39], which serves as an approximation of the non-differentiable original function in the LIF (leaky integrate-and-fire) model. By incorporating this approximation, the tool enables the seamless integration of gradients during training, making it feasible to apply standard backpropagation techniques to optimize spiking neural networks. ...
Full-text available
Predicting system faults is critical to improving productivity, reducing costs, and enforcing safety in industrial processes. Yet, traditional methodologies frequently falter due to the intricate nature of the task. This research presents a novel use of spiking neural networks (SNNs) in anticipating faults in syntactical time series, utilizing the generalized stochastic Petri net (GSPN) model. The inherent ability of SNNs to process both time and space aspects of data positions them as a prime instrument for this endeavor. A comparative evaluation with long short-term memory (LSTM) networks suggests that SNNs offer comparable robustness and performance.
... LIF is computationally efficient, but it is not differentiable. Thus, SoftLIF [36], an approximation to LIF, is used while training the model. In the inference time, LIF is still used. ...
Full-text available
This paper proposes a nondestructive testing (NDT) method for the inspection of corrosion in rivets used in an aircraft. The NDT system uses an ultrasonic sensor coupling with a membrane that allows the ultrasonic wave propagates through to the inspecting rivet. The measured signal is then analyzed by a spiking neural network (SNN), a neural network that mimics the biological neurons for efficient detection of the corrosion in rivet. Compared to the conventional deep neural network, SNN is low energy consumption and can be implemented on a compact SNN accelerator chip, making them better run on a compact NDT system and general edge computing applications. We have tested the proposed SNN model on different sizes of corrosion in rivets (i.e., 30–70% of cross-section area) and at different depths from the surface (i.e., 1.0–2.0 mm). The proposed SNN model achieves about 95.4% accuracy with a small number of rivet samples (i.e., four rivet with corrosion) for training.
... Recently, there is also an increasing research interest in applying deep learning methods on SNNs to solve artificial intelligence-related problems [10], [11], [12], [13]. Currently, the simulation of SNNs is already an important research method for neuroscience [3], [8], [14], [15], brain-inspired computing [16], [17], [18], [19], artificial intelligence [20], [21], [22], and other research fields [23], [24], [25], [26]. ...
Full-text available
Spiking Neural Networks (SNNs) are currently the most widely used computing model for neuroscience communities. There is also an increasing research interest in exploring the potential of SNN in brain-inspired computing, artificial intelligence, and other areas. As SNNs possess distinguished characteristics that originate from biological authenticity, they require dedicated simulation frameworks to achieve usability and efficiency. However, there is no widely-used, easily accessible, high performance SNN simulation framework for GPU clusters. In this paper, we propose ENLARGE, an efficient SNN simulation framework on GPU clusters. ENLARGE provides a multi-level architecture that deals with computation, communication, and synchronization hierarchically. We also propose an efficient communication method with an all-to-all communication pattern. To deal with the delay of spike delivery, which is the most distinguished SNN characteristic, several delay-aware optimization methods are also proposed. We further propose a multilevel workload management method. Various experiments are carried out to demonstrate the performance and scalability of the framework, as well as the effects of the optimization methods. Test results show that ENLARGE can achieve $3.17\times \sim 28.12\times$ speedup compared with the most widely used NEST simulator and $3.26\times \sim 13.57\times$ speedup compared with the widely used NEST GPU simulator for GPU clusters.
... A different line of work avoids training altogether and converts directly an ANN into an SNN. Beyond the classic conversion techniques based on rate coding [46,47], some studies considered the conversion from ANNs to temporally coded SNNs [48,49,50,51]. While most of them relied on an inexact mapping algorithm or unconventional threshold dynamics, it was recently shown that approximation-free conversion from ANN to TTFS-SNN is possible [51]. ...
Communication by binary and sparse spikes is a key factor for the energy efficiency of biological brains. However, training deep spiking neural networks (SNNs) with backpropagation is harder than with artificial neural networks (ANNs), which is puzzling given that recent theoretical results provide exact mapping algorithms from ReLU to time-to-first-spike (TTFS) SNNs. Building upon these results, we analyze in theory and in simulation the learning dynamics of TTFS-SNNs. Our analysis highlights that even when an SNN can be mapped exactly to a ReLU network, it cannot always be robustly trained by gradient descent. The reason for that is the emergence of a specific instance of the vanishing-or-exploding gradient problem leading to a bias in the gradient descent trajectory in comparison with the equivalent ANN. After identifying this issue we derive a generic solution for the network initialization and SNN parameterization which guarantees that the SNN can be trained as robustly as its ANN counterpart. Our theoretical findings are illustrated in practice on image classification datasets. Our method achieves the same accuracy as deep ConvNets on CIFAR10 and enables fine-tuning on the much larger PLACES365 dataset without loss of accuracy compared to the ANN. We argue that the combined perspective of conversion and fine-tuning with robust gradient descent in SNN will be decisive to optimize SNNs for hardware implementations needing low latency and resilience to noise and quantization.
Conference Paper
Full-text available
Deep neural networks such as Convolutional Net­ works (ConvNets) and Deep Belief Networks (DBNs) represent the state-of-the-art for many machine learning and computer vision classification problems. To overcome the large computational cost of deep networks, spiking deep networks have recently been pro­ posed, given the specialized hardware now available for spiking neural networks (SNNs). However, this has come at the cost of performance losses due to the conversion from analog neural networks (ANNs) without a notion of time, to sparsely firing, event-driven SNNs. Here we analyze the effects of converting deep ANNs into SNNs with respect to the choice of parameters for spiking neurons such as firing rates and thresholds. We present a set of optimization techniques to minimize performance loss in the conversion process for ConvNets and fully connected deep networks. These techniques yield networks that outperform all previous SNNs on the MNIST database to date, and many networks here are close to maximum performance after only 20 ms of simulated time. The techniques include using rectified linear units (ReLUs) with zero bias during training, and using a new weight normalization method to help regulate firing rates. Our method for converting an ANN into an SNN enables low­ latency classification with high accuracies already after the first output spike, and compared with previous SNN approaches it yields improved performance without increased training time. The presented analysis and optimization techniques boost the value of spiking deep networks as an attractive framework for neuromorphic computing platforms aimed at fast and efficient pattern recognition.
Full-text available
We train spiking deep networks using leaky integrate-and-fire (LIF) neurons, and achieve state-of-the-art results for spiking networks on the CIFAR-10 and MNIST datasets. This demonstrates that biologically-plausible spiking LIF neurons can be integrated into deep networks can perform as well as other spiking models (e.g. integrate-and-fire). We achieved this result by softening the LIF response function, such that its derivative remains bounded, and by training the network with noise to provide robustness against the variability introduced by spikes. Our method is general and could be applied to other neuron types, including those used on modern neuromorphic hardware. Our work brings more biological realism into modern image classification models, with the hope that these models can inform how the brain performs this difficult task. It also provides new methods for training deep networks to run on neuromorphic hardware, with the aim of fast, power-efficient image classification for robotics applications.
Full-text available
Deep-learning neural networks such as convolutional neural network (CNN) have shown great potential as a solution for difficult vision problems, such as object recognition. Spiking neural networks (SNN)-based architectures have shown great potential as a solution for realizing ultra-low power consumption using spike-based neuromorphic hardware. This work describes a novel approach for converting a deep CNN into a SNN that enables mapping CNN to spike-based hardware architectures. Our approach first tailors the CNN architecture to fit the requirements of SNN, then trains the tailored CNN in the same way as one would with CNN, and finally applies the learned network weights to an SNN architecture derived from the tailored CNN. We evaluate the resulting SNN on publicly available Defense Advanced Research Projects Agency (DARPA) Neovision2 Tower and CIFAR-10 datasets and show similar object recognition accuracy as the original CNN. Our SNN implementation is amenable to direct mapping to spike-based neuromorphic hardware, such as the ones being developed under the DARPA SyNAPSE program. Our hardware mapping analysis suggests that SNN implementation on such spike-based hardware is two orders of magnitude more energy-efficient than the original CNN implementation on off-the-shelf FPGA-based hardware.
Conference Paper
Our proposed deeply-supervised nets (DSN) method simultaneously minimizes classification error while making the learning process of hidden layers direct and transparent. We make an attempt to boost the classification performance by studying a new formulation in deep networks. Three aspects in convolutional neural networks (CNN) style architectures are being looked at: (1) transparency of the intermediate layers to the overall classification; (2) discriminativeness and robustness of learned features, especially in the early layers; (3) effectiveness in training due to the presence of the exploding and vanishing gradients. We introduce "companion objective" to the individual hidden layers, in addition to the overall objective at the output layer (a different strategy to layer-wise pre-training). We extend techniques from stochastic gradient methods to analyze our algorithm. The advantage of our method is evident and our experimental result on benchmark datasets shows significant performance gain over existing methods (e.g. all state-of-the-art results on MNIST, CIFAR-10, CIFAR-100, and SVHN).
Conference Paper
We trained a large, deep convolutional neural network to classify the 1.2 million high-resolution images in the ImageNet LSVRC-2010 contest into the 1000 dif- ferent classes. On the test data, we achieved top-1 and top-5 error rates of 37.5% and 17.0% which is considerably better than the previous state-of-the-art. The neural network, which has 60 million parameters and 650,000 neurons, consists of five convolutional layers, some of which are followed by max-pooling layers, and three fully-connected layers with a final 1000-way softmax. To make training faster, we used non-saturating neurons and a very efficient GPU implemen- tation of the convolution operation. To reduce overfitting in the fully-connected layers we employed a recently-developed regularization method called dropout that proved to be very effective. We also entered a variant of this model in the ILSVRC-2012 competition and achieved a winning top-5 test error rate of 15.3%, compared to 26.2% achieved by the second-best entry
Sum-product networks are a new deep architecture that can perform fast, exact inference on high-treewidth models. Only generative methods for training SPNs have been proposed to date. In this paper, we present the first discriminative training algorithms for SPNs, combining the high accuracy of the former with the representational power and tractability of the latter. We show that the class of tractable discriminative SPNs is broader than the class of tractable generative ones, and propose an efficient backpropagation-style algorithm for computing the gradient of the conditional log likelihood. Standard gradient descent suffers from the diffusion problem, but networks with many layers can be learned reliably using "hard" gradient descent, where marginal inference is replaced by MPE inference (i.e., inferring the most probable state of the non-evidence variables). The resulting updates have a simple and intuitive form. We test discriminative SPNs on standard image classification tasks. We obtain the best results to date on the CIFAR-10 dataset, using fewer features than prior methods with an SPN architecture that learns local image structure discriminatively. We also report the highest published test accuracy on STL-10 even though we only use the labeled portion of the dataset.
We trained a large, deep convolutional neural network to classify the 1.2 million high-resolution images in the ImageNet LSVRC-2010 contest into the 1000 dif-ferent classes. On the test data, we achieved top-1 and top-5 error rates of 37.5% and 17.0% which is considerably better than the previous state-of-the-art. The neural network, which has 60 million parameters and 650,000 neurons, consists of five convolutional layers, some of which are followed by max-pooling layers, and three fully-connected layers with a final 1000-way softmax. To make train-ing faster, we used non-saturating neurons and a very efficient GPU implemen-tation of the convolution operation. To reduce overfitting in the fully-connected layers we employed a recently-developed regularization method called "dropout" that proved to be very effective. We also entered a variant of this model in the ILSVRC-2012 competition and achieved a winning top-5 test error rate of 15.3%, compared to 26.2% achieved by the second-best entry.
Detecting and reading text from natural images is a hard computer vision task that is central to a variety of emerging applications. Related problems like document character recognition have been widely studied by computer vision and machine learning researchers and are virtually solved for practical applications like reading handwritten digits. Reliably recognizing characters in more complex scenes like photographs, however, is far more difficult: the best existing methods lag well behind human performance on the same tasks. In this paper we attack the prob-lem of recognizing digits in a real application using unsupervised feature learning methods: reading house numbers from street level photos. To this end, we intro-duce a new benchmark dataset for research use containing over 600,000 labeled digits cropped from Street View images. We then demonstrate the difficulty of recognizing these digits when the problem is approached with hand-designed fea-tures. Finally, we employ variants of two recently proposed unsupervised feature learning methods and find that they are convincingly superior on our benchmarks.