Spiking Neural Network
A spiking neural network for classifying input pattern signals, comprising a plurality of spiking neurons implemented in hardware or a combination of hardware and software, and a plurality of synaptic elements interconnecting the spiking neurons to form the network. Each synaptic element is adapted to receive a synaptic input signal and apply a weight to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weight applied by each synaptic element, and each of the spiking neurons is adapted to receive one or more of the synaptic output signals from one or more of the synaptic elements, and generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals.
This disclosure generally relates to composing spiking neural networks. More specifically, but not exclusively, it relates to composing pattern recognizers build out of spiking neurons and a system and method for building spiking neural networks in a compositional way using a unique response method.
BACKGROUNDAutomatic signal recognition (ASR) refers to the recognition of signals through the identification of their constituent features. ASR is utilized in a range of applications, for example to recognize the voice of a speaker and spoken words in a voice/speech recognition system, to recognize arrhythmias in electrocardiograms (ECG), to determine the shape of a gesture in a motion-controlled system, among others. ASR is typically performed by characterizing patterns present in short samples of an input signal, and thus accurate pattern recognition capabilities are fundamental to an effective ASR system.
Measuring some physical quantities to derive input signals for an ASR system may require the fusion of data from multiple types of sensors. For example, recognizing a hand gesture using a hand-held input device may necessitate the fusion of data from an accelerometer, to measure motion, and data from a gyroscope, to measure orientation. Combining data from both sensors enables the detection of gestures in three-dimensional space.
In general, data fusion refers to the integration of data gathered from disparate, and potentially heterogeneous sources, in order to decrease the uncertainty in interpretation of data from those individual sources. It is important that during the fusion process, essential features in the disparate input signals are adequately represented in the fused signal.
Pattern recognition and fusion are typically performed using microprocessors, and/or digital signal processors, both of which implement a stored program architecture. This architecture is inherently inefficient for analytics of streaming data. On a single processor, the extraction and recognition of patterns is carried out sequentially. This is because the pattern extraction and identification are realized in terms of the generic, simplistic instruction sets (e.g. RISC or CISC instruction sets), resulting in lengthy execution sequences for every pattern in the signal sample. Complex patterns in the input signal necessitate the use of more complex signal processing algorithms, which in a system requiring real-time responses from the pattern recognition engine, further necessitates the use of higher clock frequencies for the processor. In power-constrained devices (such as portable electronic devices, wearable devices, etc.), this is not feasible. Furthermore, due to the sequential execution paradigm, the latency and power dissipation of pattern recognition operations on a microprocessor increase greatly as the complexity and repertoire of patterns increases. The presence of noise in the input signals further increases the complexity of analysis, and adversely impacts performance and efficiency.
Data fusion is a non-native operation for microprocessors. This means that before input signals or data streams can be fused, their information content must be extracted, and thereafter combined with corresponding content from other streams. Consequently, in microprocessor implementations, each input signal/data source for fusion is processed separately by independent pattern recognition pipelines, followed by a rule-based framework to combine the disparate pattern recognition outcomes. This approach requires multiple invocations of the pattern recognition infrastructure, for each input signal or data stream, leading to increased power dissipation. Furthermore, the limitations of load-store architecture microprocessors and digital signal processors (DSPs) for pattern recognition mean that as pattern complexity increases, the power and latency costs of recognizing these patterns also increase. While the latency cost can be mitigated by increasing clock frequency, this is achieved at the cost of further increased power dissipation. Similarly, the quality of fusion is limited by the complexity of processing and ASR carried out on input signals, the number of signals being fused, and the computational capabilities of the microprocessor or DSP. The sequential nature of processing reduces the throughput of fusion-based ASR, thus, as complexity of patterns in signals increases, the number of input signals that can be fused using the microprocessor or DSP, decreases.
Artificial neural networks have been proposed as an alternative to a microprocessor implementation. Spiking neural networks (SNN) are a promising means of realizing ASR for many different applications. SNNs encode information in the form of one or more precisely timed (voltage) spikes, rather than as integer or real-valued vectors. Computations for pattern classification are effectively performed in the analog and temporal domains. For this reason, SNNs are typically realized in hardware as full-custom mixed signal integrated circuits. This enables them to perform pattern classification with several orders of magnitude lower energy consumption than their artificial neural network counterparts, in addition to having smaller network sizes.
SNNs consist of a network of spiking neurons interconnected by synapses that dictate the strength of the connections between the spiking neurons. This strength is represented as a weight, which moderates the effect of the output of a pre-synaptic neuron on the input to a post-synaptic neuron. Typically, these weights are set in a training process that involves exposing the network to a large volume of labelled input data, and gradually adjusting the weights of the synapses until a desired network output is achieved. However, practically, these volumes of labelled data may simply not exist.
Furthermore, training a large, multi-layer network in a monolithic fashion is time-consuming since the network size results in a complex optimization problem whose solution is computationally expensive, due to the need to back propagate errors over several layers of the network.
Spiking neural networks typically rely on learning rules based on the relative firing time of the two neurons connected by a synapse, for the purposes of determining error. A common learning rule is referred to as spike timing dependent plasticity or STDP. Although this method enables potentially unsupervised training of an SNN to set the weights of the synapses, it is inherently unstable. This is because STDP targets weight adjustment at individual synapses, and lacks mechanisms to balance synaptic weights at the network level. As a result, the STDP process can be unstable, and yield a divergent synaptic weight configuration. Although it may be possible to mitigate this issue by balancing the magnitude and distribution of excitatory and inhibitory connections formed by the synapses in the network, this process is difficult to implement and necessitates exhaustive searches to yield a stable, convergent weight configuration. Spiking neural networks may also trained with conventional back-propagation methods. However, these techniques are computationally expensive when applied to deep, multi-layer networks due to the complex causal relationship between neurons across different layers of the network.
SUMMARYTo address the above discussed drawbacks of the prior art, there is proposed, according to an aspect of the disclosure, a spiking neural network for classifying input pattern signals, comprising a plurality of spiking neurons implemented in hardware or a combination of hardware and software, and a plurality of synaptic elements interconnecting the spiking neurons to form the network. Each synaptic element is adapted to receive a synaptic input signal and apply a weight to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weight applied by each synaptic element, and each of the spiking neurons is adapted to receive one or more of the synaptic output signals from one or more of the synaptic elements, and generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals.
The spiking neural network comprises a first sub-network comprising a first sub-set of the spiking neurons connected to receive synaptic output signals from a first sub-set of the synaptic elements. The first sub-network is adapted to generate a sub-network output pattern signal from the first sub-set of spiking neurons, in response to a sub-network input pattern signal applied to the first sub-set of synaptic elements, and the weights of the first sub-set of synaptic elements are configured by training the sub-network on a training set of sub-network input pattern signals, so that the sub-network output pattern signal is different for every unique sub-network input pattern signal of the training set.
In one embodiment, the distance between each different sub-network output pattern signal is larger than a predetermined threshold value, the distance being measured by an output pattern metric. The spiking neurons and synaptic elements may be configured such that respective distances, as measured by an output pattern metric, between two output pattern signals of the sub-network generated in response to two respective different sub-network input pattern signals are maximized for all sub-network input pattern signals of the training set. Each respective distance may be maximized until the output pattern signals meet at least a first minimum sensitivity threshold required for distinguishing between features of the input pattern signals.
A feature is any characteristic of an input pattern signal that enables identification of that signal, and/or patterns of interest within that signal. Patterns may be composed of one or more features. For example, relevant features in an ECG input signal could be the various time-varying amplitudes that characterize the different stages of a heartbeat, for an audio input signal the relevant features can be the frequency content of the signal within each discrete time interval in which the audio signal is sampled, or for an image input signal the relevant features can be the fundamental shapes and lines present in the image. Additional examples are provided herein.
In the spiking neural network, each of the spiking neurons may be configurable to adjust the response of the neuron to the received one or more synaptic output signals. Spikes may be generated by the spiking neurons at one or more firing times, and the sub-set of synaptic elements and/or the sub-set of neurons may be configured such that the union of two sets of firing times of the sub-set of neurons that fire for two different sub-network input pattern signals is minimized for all sub-network input pattern signals of the training set. Each union may be minimized until the output pattern signals meet at least a second minimum sensitivity threshold required for distinguishing between features of the input pattern signals.
The spiking neural network may comprise a second sub-network comprising a second sub-set of the spiking neurons connected to receive synaptic outputs from a second sub-set of the synaptic elements, wherein the second sub-network is adapted to receive a second sub-network input pattern signal applied to the second sub-set of synaptic elements, and generate a corresponding second sub-network output pattern signal from the second sub-set of neurons, and wherein the configurations of the second sub-set of synaptic elements are adjusted so that the second sub-network output pattern signal is different for every unique feature in the second sub-network input pattern signals, wherein the network comprises a third sub-network comprising a third sub-set of the spiking neurons connected to receive synaptic outputs from a third sub-set of the synaptic elements, wherein the first and second sub-network output pattern signals are input pattern signals of the third sub-network, and wherein the configurations of the third sub-set of synaptic elements are adjusted such that the third sub-network output pattern signal is different for every unique feature in the input pattern signal from both the first and second sub-network and unique combinations of them, such that the features that are present in the input pattern signals from both the first and second sub-network are encoded by the third sub-network.
The synaptic elements of the third sub-network may be configured such that the input pattern signals from the first and second sub-network are weighted according to importance of the specific input patterns. The network may comprise multiple sub-networks of synaptic elements and spiking neurons, for which the sub-network output pattern signal is different for every unique feature in the sub-network input pattern signals, wherein the network can be divided in multiple layers having a particular sequential order in the network, and wherein the multiple sub-networks are instantiated in the particular sequential order of the multiple layers each respective sub-network belongs to.
In the spiking neural network, the synaptic elements may be arranged as a configurable switch matrix.
Configuration information of the neurons, synaptic elements, interconnection topology of the neurons and synaptic elements and/or output configuration of the neural network may be saved on a configuration memory, and the configuration information may be loaded from the configuration memory when the neural network is brought to an initialization state.
A set of neurons may be arranged in one or multiple template networks of neurons, the neurons of a particular template network of neurons forming a sub-network of the neural network, wherein the sub-network output pattern signal is different for every unique feature in the sub-network input pattern signals, and wherein each template network in the neural network was instantiated in a pre-trained manner.
The neural network may be configured to take as input one or multiple sampled input signals and convert the input signals into a representative set of neural network input pattern signals. An output pattern signal of the neural network may be classified in one or multiple output classes.
According to an aspect of the invention, a method is proposed for classifying input pattern signals using a spiking neural network comprising a plurality of spiking neurons implemented in hardware or a combination of hardware and software, and a plurality of synaptic elements interconnecting the spiking neurons to form the network, wherein each of the synaptic elements is adapted to receive a synaptic input signal and apply a weight to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weight applied by each synaptic element, and wherein each of the spiking neurons is adapted to receive one or more of the synaptic output signals from one or more of the synaptic elements, and generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals. The method comprises the steps of defining a first sub-network of the spiking neural network, the first sub-network comprising a first sub-set of the spiking neurons connected to receive synaptic output signals from a first sub-set of the synaptic elements, configuring the weights of the first sub-set of synaptic elements by training the sub-network on a training set of sub-network input pattern signals, so that the sub-network output pattern signal is different for every unique sub-network input pattern signal of the training set, applying a sub-network input pattern signal to a first sub-network of the spiking neural network, the first sub-network comprising a first sub-set of the spiking neurons connected to receive synaptic output signals from a first sub-set of the synaptic elements, and receiving a sub-network output pattern signal generated by the first sub-set of spiking neurons in response to the sub-network input pattern signal, wherein the output pattern signal identifies one or more features of the input pattern signal.
According to another aspect of the invention, a method is proposed for classification of predetermined features in input signals. The method comprises building and training a neural network as described above, submitting at least one sampled input signal to the neural network, and classifying the features in at least one sampled input signal in one or multiple output classes of the neural network.
According to yet another aspect of the invention, a template library is provided, comprising one or multiple template networks of spiking neurons for use as a sub-network of a spiking neural network or information on a configuration thereof, wherein each template network comprises a set of the spiking neurons connected to receive synaptic outputs from a set of the synaptic elements. Each template network is adapted to receive a template network input pattern signal applied to the set of synaptic elements, and generate a corresponding template network output pattern signal from the set of neurons. The configurations of the set of synaptic elements are adjusted by training the template network on a training set of template network input pattern signals, so that the template network output pattern signal is different for every unique template network input pattern signal of the training set, wherein the training set is used to train the template network to perform a particular task, such that each template network can be used as a sub-network of a spiking neural network in a pre-trained manner to perform the particular task or such that the sub-network of the spiking neural network can be instantiated on the basis of the information on the configuration of the template network in a pre-trained manner to perform the particular task.
According to yet another aspect of the invention, a method is proposed for composing a spiking neural network, the method comprising obtaining one or multiple template networks or information on the configuration of one or multiple template networks from a template library as described above, and instantiating the one or multiple template networks as a sub-network of the spiking neural network such that the sub-network of the spiking neural network is able to perform the particular task the template network was pre-trained to perform.
The invention consists of a method to realize pattern classifiers in a bottom-up fashion, using smaller network stages that are trained separately. Each stage of the pattern classifier is trained for its specific function using a common methodology, applied with different training objectives specific to the function being realized. The training process is aided by a method that accounts for the long-range causal influence of synapses when adapting weights, thus overcoming the instability issues faced with STDP. The three methods may be used independent of the others. The methodology enables the realization of low-latency pattern recognizers, applicable to different signal types, and which can recognize and correlate patterns across multiple signals. The methodology simplifies training and deployment time of pattern recognizers, facilitates reuse of previously trained pattern recognition networks, while concomitantly ensuring that the implementation remains flexible.
Embodiments will now be described, by way of example only, with reference to the accompanying schematic drawings in which corresponding reference symbols indicate corresponding parts, and in which:
The figures are meant for illustrative purposes only, and do not serve as restriction of the scope or the protection as laid down by the claims.
DESCRIPTION OF EMBODIMENTSHereinafter, certain embodiments will be described in further detail. It should be appreciated, however, that these embodiments may not be construed as limiting the scope of protection for the present disclosure.
The neurons 1 and synaptic elements 2 can be implemented in hardware, for example using analog circuit elements or digital hardwired logic circuits. They can also be implemented partly in hardware and partly in software, or entirely in software. Implementation in hardware is preferred to achieve faster processing, e.g. enabling much faster pattern recognition, and event-driven processing in which blocks of neurons and synaptic elements are only activated when needed.
The neural network 100 can be a spiking neural network. The neurons 1 are then spiking neurons, which generate a neuron output signal in the form of one or more spikes. The spiking neurons 1 may be configured to fire (i.e. generate an output spike) only when a membrane potential (e.g. an energy potential, or voltage or current level) within the neuron reaches a predetermined threshold value. The membrane potential of the spiking neuron changes as a result of the received input signals, i.e. the synaptic output signals received by the neuron from the synaptic elements are accumulated, integrated, or otherwise processed to alter the membrane potential. When a weight of a synaptic element 2 is positive, a synaptic output signal received from that synaptic element excites the spiking neurons 1 which receive the signal, raising their membrane potentials. When a weight of a synaptic element 2 is negative, a synaptic output signal received from that synaptic element inhibits the spiking neurons 1 which receive the signal, lowering their membrane potentials. When a weight of a synaptic element 2 is zero, a synaptic output signal received from that synaptic element does not have any effect on the spiking neurons 1 which receive the signal.
When the membrane potential of a spiking neuron 1 reaches the threshold value, the neuron fires, generating a spike at the time of firing, and the membrane potential is reduced as a result of the firing. If the membrane potential subsequently again reaches the threshold value, the neuron will fire again, generating a second spike. Each spiking neuron 1 is thus configured to generate one or more spikes in response to input signals received from the connected synaptic elements 2, the spikes forming a spatio-temporal spike train. Since a spiking neuron 1 only fires when its membrane potential reaches the predetermined threshold value, the coding and processing of temporal information is incorporated into the neural network 100. In this way, spatio-temporal spike trains are generated in the spiking neural network 100, which are temporal sequences of spikes generated by the spiking neurons 1 of the network 100.
The temporal characteristics of the spike trains encode amplitude and frequency features of the input signal. The temporal characteristics comprise: the latency between onset of stimulus (e.g. an input signal from a synaptic element) and generation of a spike at the output of a neuron; the latency between successive spikes from the same neuron; and the number of spikes fired by the neuron in the time duration for which the input stimulus is applied.
The synaptic elements 2 can be configurable such that for example the respective weights of the synaptic elements can be varied, for example by training the neural network 100. The neurons 1 can be configurable in the way they respond to a signal from a synaptic element. For example, in the case of spiking neural networks, the neurons 1 can be configured in the way a certain signal increases or decreases the membrane potential, the time it takes for the membrane potential to naturally decay towards a resting potential, the value of the resting potential, the threshold value that triggers a spike of the spiking neuron 1. The configuration of the neurons 1 can for example be kept constant during training, or be variable and set in a training of the neural network 100 on a particular training set.
Input signals 11 are for example multiple, disparate, sampled input signals, or spatio-temporal spike trains. The input can be an analog-to-digital converted value of a signal sample, or the digital value of the sample in the case of for example an analog or digital integrator, or the analog value of the sample in the case of an analog integrator.
Output signals 12 of the neural network 100 are for example spatio-temporal spike trains, which can be read out from the output neurons 1 and further classified and transformed by an output transformation stage into a set of digital values corresponding to the type of output code selected by the user.
Operations such as pattern recognition may be accomplished in a number of steps (e.g. data conversion, feature encoding, classification). The present embodiment enables these steps to be realized using standardized sub-networks of synaptic elements and neurons (cells), and configured using a flexible training methodology for each application domain. The objective of the training methodology is to configure each stage or sub-network of the neural network to produce a unique response for each unique pattern or feature in the input signal.
The data converter stage 201 receives input pattern signals for processing by the neural network. In this example, the data converter stage 201 is shown as cell 301, the data converter stage 202 is shown as part of cell 302, and the pattern classifier stage 203 is shown as part of cell 303. Each cell 301, 302, 303 comprises a sub-network formed by a sub-set of the synaptic elements 2 and sub-set of the neurons 1 of the network, connected in a topology that realizes the function the cell is intended to implement. Each cell 301, 302, 303 is parameterized, i.e. can be configured to have a different number of synaptic elements 2, neurons 1, input connections, output connections, hidden layer connections (i.e. connections between a layer of neurons not visible to input of output), among others.
The weights of the synaptic elements 2 in each of stages 201, 202, 203 may be configured by training. In this example, data converter stage 201 is first trained in cell 301. After training the data converter stage 201, the configuration settings of the trained data converter stage 201 and cell 301 may be saved. These saved settings may then be used to configure a cell 302, which includes both a data converter stage 201 and an input encoder stage 203.
Cell 302 may then be trained and the configuration settings of the trained encoder stage 203 and cell 302 may be saved. These saved settings may then be used to configure a cell 303, which includes a data converter stage 201, an input encoder stage 203, and a pattern classifier stage 203. Cell 303 may then be trained and the resulting configuration settings of the trained pattern classifier stage 203 and cell 303 saved.
The training may be accomplished using a unique response algorithm. The unique response algorithm realizes a configuration of the weights of the synaptic elements of each cell, which results in unique features in the input signal being transcoded into a unique response of the cell's neurons 1. In the case of spiking neurons this can be a unique spiking response. The unique response algorithm is described further below. The uniqueness of a cell's response indicates the cell's ability to separate distinct features in the input pattern signal 11 into distinct output signals 12A, 12B, 12C of the cell. In the case of spiking neurons, these distinct output signals 12A, 12B, 12C can be distinct output spike trains, e.g. a unique set of spatio-temporal spike train outputs from the output neurons of the cell. The uniqueness of a set of spatio-temporal spike train outputs may be determined by the number of spikes and/or the timing of spikes generated by each output neuron of the cell. Consequently, during training of the network, the uniqueness of each response is tested after the input presented to the network and converted into spikes, and the weights of the synaptic elements of the cell being trained are adapted using the unique response methodology, until the output response 12A, 12B, 12C of each cell 301, 302, 303 meets the uniqueness criterion. Teacher input 13A, 13B, 13C can be used to obtain the desired unique response for each cell 301, 302, 303, as described below.
To realize higher level functions, previously trained cells 301, 302, 303 can be instantiated and interconnected in a bottom-up manner. i.e. lowest level cell 301 can be trained first, then instantiated in a higher-level cell 302 containing the subsequent stage 202. The mid-level cell 302 can then be instantiated in a higher-level cell 303 containing the subsequent stage 203. Following each creation of a higher-level cell, the unique response algorithm is invoked.
Cells 301, 302, 303 can be trained in this manner for specific functions in different application domains, and the configuration settings of the trained cells saved in a template library from where they can be reused in different networks. For instance, the input encoder stage 202 of a spoken word recognition network could be reused in a hot-word triggering network without any change. Such reuse facilitates a reduction in overall training time, and complexity.
During each invocation of the unique response methodology, a cell 301, 302, 303 can be exposed to input data 11 derived from the input pattern to be processed. The input data 11 is derived from an input pattern p that is presented to the neural network for processing.
The input pattern p may comprise, e.g. an audio signal for a voice recognition application, a still image or video image for an image recognition application, or many other types of pattern suitable for a pattern recognition system. The input data 11 may comprise of a single item of time-varying data (e.g. a single stream of data derived from an audio signal, e.g. an analog or digital signal output by a microphone), multiple items of data (e.g. a set of input data representing individual pixels of a still image output by a CCD array), multiple items of time-varying data (e.g. a set of input data streams representing individual pixels of a video image), or multiple augmented versions generated from a single item of data (e.g. a combination of input signals).
The weights of the synaptic elements 2 of the cell 301, 302, 303 may be adapted using Causal Chain Spike-timing-dependent plasticity (CC-STDP), a learning rule that accounts for long-range causation when adapting the synaptic weights. In this sense it is different from the conventional Spike-timing-dependent plasticity (STDP) learning rule, which only accounts for short-range causation when adapting weights, making the updating of weights using some training sets quite volatile and chaotic and largely a consequence of localized behaviour. CC-STDP is presented further below. Once a cell is trained, the configuration settings for the trained cell may be stored into a library of template cells from where it may be subsequently recalled and reused.
The desired spike response 14A, 14B, 14C for each input pattern p can be described as a tuple which specifies the spike response in each time bin where input data 11 derived from an input pattern p is presented. For example, the tuple may specify the population of the cell's output neurons (Ap) that fired in response to the input data 11, and their precise firing times (Bp). The uniqueness of a response is determined by computing its distance from the cell's responses to other input patterns, using a distance function or metric (e.g. a Victor Purpura or a Van Rossum distance function), which are typically functions of Ap and Bp.
In a preferred embodiment, for each input pattern p the set Ap can describe a disjoint set containing a single output neuron 1, and the set Bp can describe the time bin corresponding to when that output neuron 1 responds. Thus, in this embodiment, each input pattern p can be identified by the single neuron 1 that responds the earliest. Later responses from the same or other neurons can for example be suppressed using a winner-take-all network, or ignored. For additional robustness, the tuple can be augmented with an additional field (Cp) that describes the strength of the neuron's response (expressed as the number of spike events generated by the single earliest spiking neuron in the period during which input data 11 was applied, Cp).
In an alternative embodiment, for each pattern p, the set Ap can be a disjoint set containing multiple output neurons 1, and the set Bp can be an identically sized set containing the response times of those neurons. The response of the cell can be steered towards different Ap and Bp values, in order to reach the desired spike tuple, using the Causal Chain STDP rule presented below.
The Bp values can be reduced by increasing the weights in the synaptic elements contributing to the firing of the corresponding neuron 1, while Bp values can be increased by reducing those weights. This can be achieved by artificially facilitating the causal firing of the output neuron 1, or facilitating anti-causal firing by inducing an early spike concomitant with the application of the input data 11. This causes a positive or negative synaptic weight adjustment respectively of the contributing pathway.
In
An object of the unique response method can be to generate a set of unique spatio-temporal spike trains for each unique input pattern. These spatio-temporal spike trains may be composed as a sequence of precisely timed electrical pulses. The uniqueness of the response can be described as explained below.
Let A denote a set of neurons that generate output spike trains. Take p to be a given known input pattern. Ap, a subset of A, denotes the set of neurons that fire for the given input pattern p. Take As={Ap|pϵP} to be the set of all sets of neurons that fire for each input pattern p of the set of all known input patterns P.
Furthermore, let Fip be the set of precise firing times of a neuron i, for a particular input pattern p. Take Bp={F1p, F2p, . . . , FN
In one embodiment, a network's response to input data 11 can be called unique if one or more of the following rules apply, within for example each given sampling window of a time-varying input. As a first rule, for all unique input patterns p, q in P (thus p≠q), it should hold that Δ(Ap, Aq)≠0. As a second rule, for all unique input patterns p, q in P, it should hold that Δ(Bp, Bq)≠0.
The distances Δ(Ap, Aq) and Δ(Bp, Bq) can be calculated together using an appropriate spike distance metric Δ(⋅,⋅) such as Victor-Purpura, Van Rossum, ISI, or SPIKE-distance, among others.
These rules can be applied as objectives for configuration of the synaptic weights, where they can be restated as follows. A first weight configuration objective can be that for all Ap in As, maximize the distance Δ(Ap, Aq) for each Aq in As where q is a particular different input pattern in P. A second weight configuration objective can be that for all Bp in Bs, the distance Δ(Bp, Bq) for each Bq in Bs is maximized and the union B′∪Bq for each Bq in Bs is minimized, where q is a particular different input pattern in P.
Desired spike tuples can be generated based on these weight configuration objectives, and e.g. an input encoder stage 202 can be trained using the CC-STDP as presented below. The object of this exercise is to arrive at a configuration of the input encoder stage 202, that yields unique responses which subsequent stages can use to distinguish between features in the input pattern.
Although the configuration objectives are intended to yield an optimum, this may be computationally expensive. A simpler approach is to bound the objectives, such that Δ(Ap, Aq), Δ(Bp,Bq) are increased and Bp ∪Bq is decreased until the point where the output of the input encoder stage meets at least the minimum sensitivity threshold required for distinguishing between features in the subsequent processing stage. This enables the runtime of the weight configuration training process to be reduced without impacting robustness and quality of encoding.
Once the full set of spike tuples is described or generated for all patterns of interest, the weights of synaptic elements 2 of neuron 1 connections in the cells 301, 302, 303 can be trained such that they exhibit the desired unique response to the presented input pattern. In a supervised learning regime, this training is carried out using a supervised method (for example an autoencoder method, an exhaustive search, a gradient descent, using backpropagation, among others). However, this is computationally expensive. In the following, we describe a semi-supervised training methodology that relies on a new STDP weight facilitation scheme. Semi-supervised can mean that one does not say what the resulting error is, but, for example, what the desired or required spikes are to obtain a unique response to a certain input pattern.
In conventional STDP, the weight change of a synaptic element is dependent on the relative firing time of two neurons 1 connected to one another by that particular synaptic element 2. However, the resulting weight changes are largely a consequence of localized behaviour. Causal Chain STDP (CC-STDP) instead predicates weight changes on the longer chain of causation of a pre-synaptic neuron, i.e. weights are adjusted only if the firing event contributes to firing of neurons in subsequent layers of the network.
The CC-STDP rule can be applied in the semi-supervised training of cells to obtain specific output spike responses. For instance, assume n is the particular output neuron where a spike is desired at a specific time tspike n. During training, by inducing a spike artificially at time tspike n at neuron n, the nature of the relationship between neurons in the early layers of the network and neuron n can be established. These relationships may be causal (neuron in early layer causes a spike at the output neuron), anti-causal (neuron in the early layer does not cause a spike at the output neuron, but the two neurons are synchronized in their firing, with the early neuron firing after the output neuron), or non-causal (the two neurons do not have any synchrony in their firing behaviour). CC-STDP can thus enable the identification of causal relationships between neurons in preceding layers of the network and the desired output neurons, and can cause the weights of intervening synaptic elements along this path of causation to be adjusted.
At neurons where a spike may not be desired, anti-causal relationships can be emulated by inducing a spike concomitant with the presentation of the input sample to the cell, i.e. in the same time interval. This can cause the output neurons to fire before the neurons in all preceding layers, thus yielding an anti-causal relationship, and in turn, causing localized depression of intervening synaptic elements along this path.
Thus, by inducing spikes at the desired output neuron(s) at a specific time tspike k and at other neurons at a time concomitant with the application of the input stimulus, the network is configured to respond with the desired spiking response pattern.
The weight wi,j of a synaptic element positioned between neuron i and neuron j can for example change according to the following rule:
Here in equation (1), Δwi,j is the effective weight change for the synaptic element between neuron i and j, wj,k is the weight of the synaptic element between neuron j and a neuron k of the subsequent layer. tspike i, tspike j and tspike k refer to the precise times at which neuron i, j and k respectively spike. δwi,j is the weight change in the synaptic element between neuron i and j, due to their relative time of spiking, and may be computed using the STDP learning rule.
Thus, according to the learning rule of equation (1), Δwi,j=δwi,j if the weight change in the synaptic element between neurons i and j is ought to be positive and if the weight between neurons j and k is non-zero and if neuron k spikes later than both neurons i and j. If the weight change in the synaptic element between neurons i and j is ought to be negative then Δwi,j=δwi,j. Lastly, the weight change will be zero if the neuron k does not spike, if the neuron k spikes immediately, or if the neuron k spikes earlier than either neuron i or j, of if the weight between neuron j and k is zero. In the latter case, there seems to be no causal relationship between neuron i firing and neuron k firing.
Alternative learning rules may also be used, in which case the spike time parameters in the above equation may be replaced by the fundamental parameter (e.g. spike rate) of the chosen learning rule.
This principle can be explained with reference to
In an embodiment where CC-STDP is used to train the spiking neural network, it can be necessary to be able to induce and/or inhibit spike generation at specific neurons 1 at specific times. As an example, this can be done in the following ways (this list is not exhaustive). To induce a spike, one method would be to drive the corresponding neuron's membrane to a voltage that exceeds the firing threshold, by means of a bias voltage input, thereby inducing the generation of a spike. Another way might be to inject an artificial spike into the neuron's output at the desired time. To prevent a spike, one method would be to drive the corresponding neuron's membrane to the refractory voltage, or lowest possible voltage, preventing the generation of a spike. Alternatively, one could disable spike generation at the neuron by for example disconnecting neuron inputs from the integrator, thereby for example disconnecting the spike generation circuitry from the output. These signals for inducing or disabling spike generation in the neurons are illustrated as the teacher inputs 13A, 13B, 13C, which can be used to obtain the desired unique response for each cell 301, 302, 303.
Namely, in case a layer has multiple concurrent cells in a stage (e.g. multiple input encoders 202A, 202B forming the input encoder stage in a fusion system), each of these cells 202A, 202B can be configured first before being instantiated in a cell with a subsequent stage 203. All stages of the network may be trained using teacher inputs 13A1, 13A2, 13B1, 13B2, 13C, 13D. In the event that all the concurrent cells perform an identical function on identical data (e.g. input encoding of different receiver antennas in a radar transceiver, or of different microphones pointed in different directions) it might not be necessary to run separate training sequences for each instance. Rather, a single trained cell can be instantiated multiple times. As a result, a trained cell or the configuration thereof can be implemented in a different spiking neural network to perform the same functionality. Therefore, during the composition of a spiking neural network, cells that have been trained already can be implemented, if the same functionality is required, without any new training being necessary. The composition of the spiking neural network will thus take less time, and will be less complex.
A memory device can be configured to be used as a template library of trained cells. On such a memory device, the software- and/or hardware settings of one or more trained cells of a spiking neural network can be stored. The configuration settings of the synaptic elements 2 of such a cell can be for example the respective weights of the synaptic elements. The configuration settings of the neurons 1 of such a cell can be for example the firing threshold, leakage rate, resting value, refractory level, refractory period, or other parameters of the neuron.
Each cell is trained to perform a particular functionality. When in a particular spiking neural network such a new cell with that particular functionality is necessary, the cell does not have to be trained from scratch, which saves time and enables spiking neural networks to be implemented much more efficiently. Instead, the configuration settings from pre-trained cell designed for that functionality can be obtained from the memory device that is configured as a template library. By instantiating the new cell using the pre-trained cell configuration settings, the new cell will be able to function in the same way as the pre-trained cell.
The memory device can be any computer-readable storage media. The memory device may be non-transitory storage media. Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive, ROM chips or any type of solid-state non-volatile semiconductor memory) on which information may be permanently stored; and (ii) writable storage media, e.g., hard disk drive or any type of solid-state random-access semiconductor memory, flash memory, on which alterable information may be stored.
The template library may also be a collection of hardware spiking neural network cells, which are pre-trained to each perform a particular function. These hardware cells can be directly used in a spiking neural network that requires a cell with that particular function.
In
For example, when fusing two sets of input spike trains 12A2, 12B2 containing a feature e and f of the input patterns 11A, 11B respectively, the resulting fused spike train(s) 12C contain the corresponding unique representations of both features e and f. The goal of configuring the data fusion stage 203 is to achieve this unique mapping of the complete feature space of each input pattern signal 11A, 11B to a feature sub-space of the fused output signal 12C.
Consider two input encoders α and β, which encode features in their respective input pattern signals Mα and Mβ, and produce two sets of spike trains Pα and Pβ.
The set of u known features in signal Mα one would like to encode is given as Φ(α)={ϕ1, ϕ2, . . . , ϕu}, which is thus the feature space of signal Mα. Each feature ϕi for i in {1, . . . , u} is encoded as a set of spatio-temporal spike trains. Aα={A1, A2, . . . , Au} is the set of sets of output neurons Ai that fire for feature ϕi. The set of sets containing precise firing times of neurons for all u known features is Bα={B1, B2, . . . , Bu}, where each Bi in Bα is the set of precise firing times of output neurons for feature ϕi.
For data fusion to be lossless, the feature space of the fused spike train(s) Φ(γ) can encompass the individual feature spaces of the disparate input signals:
The spatio-temporal spike trains corresponding to feature space Φ(γ) can adhere to the rule 1 and 2 as stated for input encoding, i.e. such that they can have sufficient uniqueness to enable subsequent processing stages to distinguish between spike-coded features. Thus, the generation of spike tuples can use the unique response methodology described above, wherein each unique combination of features in the input spike-trains yields a unique set of output spatio-temporal spike trains in the fusion block.
In a signal recognition system that uses data fusion, data sources may vary in importance based on their impact on the final outcome. Certain features may be primary to the signal recognition process, while others only serve to enhance the quality of the recognition outcome. Consequently, the size of Aγ, which is the set of spike trains representing the fused feature spaces of Aα and Aβ can be reduced in size by diminishing the effect of less important features. This may be done in at least three ways.
First, by introducing anti-causal spikes in the output neurons of the data fusion stage 203, concomitant with the less important features of particular input spike trains. This method can be applicable in the case where none of the input patterns contains a desired feature.
Second, less desired features may also be suppressed by introducing a weight bias in the input synaptic elements of the data fusion stage 203 which receive the outputs from each input encoder stage 202A and 202B, corresponding to the priority of each in the fusion process. Consequently, spike trains from the input encoder stages 202A, 202B can be weighted, according to their desired impact on the output of the data fusion stage 203, before they are fused. This facilitates the control of the energy transfer between an input signal and the resulting fused representation. Increasing the priority bias of a signal can raise the impact of that signal on the fused representation. Maximizing the bias for a signal causes the fused representation to replicate the input signal. Conversely, minimizing the priority bias weights for a signal, can reduce its impact on the fused representation, whereas completely nullifying the weight eliminates the signal's influence on the fused result altogether. During fusion, the spatial spike distributions Aα and Aβ are transformed to a fused spatial distribution Aγ through the transfer function f realized by the configuration of the data fusion stage 203. Thus, in a priority biased embodiment, the fused distribution takes the form
In equation (3), wα and wβ are the priority biasing weight sets that control the influence of the spike train sets Pα and Pβ on the data fusion stage 203.
The third way, arguably the simplest, involves not suppressing or diminishing any feature, instead including its influence in the fused representation. The representation corresponding to this feature may simply be ignored in the subsequent classification stage 204, i.e. assigned a class that is not of interest. This approach contributes to increased accuracy as it distinctly classifies the undesired feature combinations, thereby enabling more accurate identification of desired features.
Next, the application of the above principles in a system for fusion and pattern recognition is described.
A spiking neuron network 400 comprises one or multiple input encoder stages 4011, . . . , 401N; each of the input encoder stages 4011, . . . , 401N being configurable by configuration data 717. The input encoder stages 4011, . . . , 401N may receive input pattern signals 7111, . . . , 711N and convert these input pattern signals into spatio-temporal spike trains P1, . . . , PN encoding the feature space of each input pattern signal 7111, . . . , 711N. The set of input pattern signals 7111, . . . , 711N may be derived, for example, by sampling input pattern data to generate the set of signals, e.g. recording an image using a CCD array image sensor to generate a set of input pattern signals 7111, . . . , 711N each representing image data recorded by one or more pixels of the image sensor.
Each spike train P1, . . . , PN may comprise a sequence of precisely timed voltage spikes, generated by one or more neurons of the input encoder stages 4011, . . . , 401N in response to each input pattern signal 7111, . . . , 711N.
If multiple neurons are used to encode a single input pattern signal 7111, . . . , 711N, the output from each of the multiple neurons may be a spike train comprising one or more spikes with one or more of the above mentioned temporal characteristics. The aggregated spike trains P1, . . . , PN generated by output neurons of the input encoder stages 4011, . . . , 401N together represent the encoded spatio-temporal spike response for the presented input pattern signals 7111, . . . , 711N.
Each neuron 1 can have a set of configuration parameters C that control the precise firing behaviour of that neuron 1. For example, the neuron may be designed with a firing threshold, which represents a threshold of a voltage, energy, or other variable which accumulates in the neuron as a result of receiving inputs, and where the neuron generates an output spike (such as a voltage, current or energy spike) when the accumulated variable meets or exceeds the firing threshold. The neuron may implement an integration function which integrates the inputs to the neuron to determine the adjustment to the accumulated variable. In addition, the neuron may also be designed with: (a) a leakage rate, which represents the rate at which the accumulated variable in the neuron decays over time; (b) a resting value of the accumulated variable, which represents the value to which the accumulated variable will decay over time in the absence of any input signals to the neuron; (c) an integration time constant, which represents the time over which an input signal is integrated to determine any increase or decrease in the accumulated variable in the neuron; (d) a refractory level, which represents the value of the accumulated variable in the neuron immediately after firing of the neuron; (e) a refractory period, which represents the time period required for the accumulated variable in the neuron to rise to the resting value after firing of the neuron. These parameters may be predetermined and/or configurable and/or adjustable for each neuron. By adjusting for example the firing threshold, leakage rate, integration time constant, and refractory period of the neuron to match the energy content of a critical input signal feature, the neuron 1 will generate one or more precisely timed spikes when stimulated with an input signal containing that feature.
Referring back to
As a first method, the trailing (Bs−Bi) bits of the digital input are discarded, when Bs>Bi. As a second method, the digital input is padded with (Bi−Bs) trailing ‘0’ bits, when Bi>Bs. As a third method, the digital input is padded with Bn trailing ‘0’ bits, or Bn trailing bits are discarded, where Bn can be a configurable parameter that allows the digital input's amplitude to be shifted within the voltage range of the membrane. This shifting can also be realized when the input signal and integrator bit widths are matched, by using a combination of padding and truncating of the sample value.
When using a neuron 1 with an analog integrator, the digital value can be provided as pre-synaptic inputs to Bs synaptic elements 2, the post-synaptic output terminals of which are connected to the neurons 1 of the input encoder stage 4011, . . . , 401N. Amplitude shifting can be realized by padding and/or truncating the input signal vector (comprising a string of bits) by Bn bits, as previously described for the digital neuron. In another embodiment, the analog value of a input signal can be provided directly as input to the analog integrator. The analog value can be presented to the integrator for a period of time, for example causing the integrator to accumulate charge. By selecting a suitable threshold voltage, the neuron's exact firing time can be varied in inverse proportion to the amplitude of the analog input signal value (i.e. the higher the amplitude, the sooner the neuron fires). Further, by utilizing multiple neurons 1 with appropriately selected sensitivity thresholds, a complex multi-level analog to spike converter can be realized.
In such an embodiment, data converter stages 2011, . . . , 201N may be included, which convert the presented analog voltage value of the input pattern signals 7111, . . . , 711N into a unique, equivalent spike representation, e.g. where the distance between input values and the corresponding distance between output spike responses are proportional. The input encoder stage 4011, . . . , 401N then encodes the features identified in the transcoded spike response from the data converter stages 2011, . . . , 201N into a unique representation.
Input pattern signals 7111, . . . , 711N supplied to the system 700 may have varying dynamic ranges: some low, some high. While the absolute dynamic range may not be important in itself, the ability to distinguish between features at different amplitudes can be important. It might consequently be necessary to ensure that the configuration of the input encoder stages 4011, . . . , 401N results in all known features of interest, and at whichever amplitude they occur, being encoded into a unique spike representation, i.e. the intent may be to obtain unique spike characteristics at more than one amplitude in the range of interest.
Consequently, the input encoder stages 4011, . . . , 401N may comprise a group of neurons 1 that connect an arbitrary number of inputs and produce an arbitrary number of spike train outputs P1, . . . , PN that encode the features present in the input pattern signal 7111, . . . , 711N, where an input signal 7111, . . . , 711N can be defined for example as a single sampled data point of an input pattern signal, or a spatial or temporal or spatio-temporal series of sampled data points of an input pattern signal.
Features or patterns to be detected in the input pattern signal can be, for example, the specific content of a single sampled input data point or set of sampled input data points, e.g. the amplitude of an input signal at a specific point in time, the presence of “ON” pixels at a certain location in a binary image frame, intensity of a particular input signal attribute at a specific point in time.
Features or patterns to be detected can also be in the spatial sequence of content in a series of sampled data points forming the input signal, e.g. “ON” pixels corresponding to the edge of an object in a binary image.
Features or patterns to be detected can also be in the temporal sequence of content across multiple samples of a single data point forming the input signal, or in the temporal sequence of content across multiple spatial sequences of sampled data points. For example, a rising sequence of amplitudes, followed by falling sequence of amplitudes, characterizing a triangular wave pattern in an input signal, or displacement of an edge of an object across multiple frames of a video image forming an input signal, corresponding to the movement of an object over time.
Referring back to the embodiment shown in
The classifier's input can be for example either a set of spike trains P1, . . . , PN from the input encoder stages, for example in the case of a system with only one set of input signals 7111, . . . , 711N, or a set of spike trains 712 from a data fusion stage 403, in the case of a system with multiple sets of input signals 7111, . . . , 711N which are encoded and thereafter fused into a representative set of spike trains 712. In
The classifier's output 713 can be a classified set of spatio-temporal spike trains 713 on an output port R, where each spike train 713 can be generated by a single specific output neuron in the classifier 404, or by multiple output neurons. In a classifier embodiment compliant with the unique response principle, spikes can be generated by a separate output neuron for each unique input feature or unique combination of input features in the input pattern signals. In this embodiment, the spike tuple for each pattern of interest consists of a single neuron (i.e. Ap is a unit set for a pattern p) which spikes at a specific time interval, with at least one spike. The output port, consequently, can contain at least as many spike-trains as patterns of interest.
Restating this in terms of the weight configuration objectives described earlier, take A to be the generic set of the classifier's output neurons that generate output spike trains 713 in response to known input patterns, and let Ap be the subset of A, containing neurons that fire for a given known input pattern p, and let As={Ap|pϵP} be the superset of all Ap, for all p in the set of known input patterns P, then for a classifier stage 404 for which the above holds: each Ap in As will be a unit set, and for each q in P, with p≠q, it holds that Ap≠Aq.
Next, looking again at
The output of the classifier stage 404 may thus be a set of spatio-temporal spike trains 713, wherein one or more specific spike trains 713 exhibit specific characteristics, thus for example allowing the input pattern 7111, . . . , 711N to be identified as belonging to a particular class, or label. The output transformation stage 501 can facilitate this identification process by transforming the spike train characteristics into a digital code 714 which can be stored and retrieved from a dictionary 601.
Feature information in spike trains may be encoded in several forms, for example: a population code, in which output neurons 1 of the classifier stage 404 fired in the elapsed time period in which the input stimulus was presented; a population temporal code, in which output neurons 1 of the classifier stage 404 fired first within a specific time period since the input stimulus was presented; a population rate code, that describes how many spikes were generated by output neurons 1 of the classifier 404 in the elapsed time period in which the input stimulus was presented; a temporal code, which describes the precise time at which a specific output neuron 1 of the classifier stage 404 fired; and finally a rate code, which describes the firing rate of a specific output neuron 1 of the classifier stage 404.
The combination of spatial and temporal spiking information can provide a greater degree of detail than a purely spatial classifier 404 output. For instance, consider that an input pattern signal 7111, . . . , 711N contains two dominant features X and Y, one stronger than the other. The relative strength of the two features could be determined by measuring the firing rate of their respective classification stage outputs 713. Alternatively, the stronger feature could be identified based on the temporal code of the corresponding output neurons 1, specifically by determining which output neuron 1 fired sooner.
The output transformation stage 501 can contain circuits to analyse the spike activity on the classifier's output port. Circuits are activated for example according to a user-configuration 717, based on the type of analysis the user wishes to carry out on the spiking behaviour of the array's neurons 1: spiking population, precise spike timing, firing rate, and combinations thereof.
For the code type population, the method of transformation consists of having one register per output neuron of the classifier stage 404, to denote if the neuron spiked in the present time interval following application of the input pattern signal. For the code type population temporal, the method of transformation consists of having one-register per output neuron of the classifier stage 404, to denote which neurons spiked first in the present time interval, following application of the input pattern signal. After the earliest spike event is registered, the other registers are disabled. For the code type population rate, the method of transformation consists of having counters per output neuron of the classifier stage 404, to count the number of spikes generated by the output neuron in the present time interval following application of the input pattern signal. Counters with non-zero spike count values also denote a population code. For the code type temporal, the method of transformation consists of having a time-to-digital converter per output neuron of the classifier stage 404, to precisely measure the time elapsed since application of the input pattern signal until the output neuron spikes. Finally, for the code type rate, the method of transformation consists of having a counter per output neuron of the classifier stage 404, to count the number of spikes generated by the output neuron in the present time interval following application of the input pattern signal.
The input to the output transformation stage 501 can be a vector 713 of spikes from all output neurons 1 of the classifier stage 404, and the output 714 from the circuit 501 can be a set of digital values corresponding to the type of output code selected by the user. The inputs 713 to the output transformation stage 501 can be presented in the duration of the time window in which a signal sample is valid. The outputs 714 from the output transformation stage 501 can be valid at the end of the time window, and can be reset before the next time window begins. The classification output 713 can be transformed into a single hash code, or set of hash codes that can be utilized as a unique fingerprint of the patterns in the input pattern signal(s) 7111, . . . , 711N.
Next, looking again at
This operation allows the decoding of the output of the classifier stage 404 into the user-space, i.e. user-defined identifier of input patterns. During the configuration phase, the pattern recognizer 400 may be trained with sample features and patterns, and the generated hash codes can be recorded. Sample patterns can be assigned a user-defined identifier which may be stored alongside the generated hash code in a hash-table or dictionary 601, for example. At runtime, when the recognizer 400 is used to recognize a feature in a signal, the generated hash code is used in a hash-table or dictionary lookup operation to determine the user-space identifier corresponding to the recognized feature.
A reset generator and sequencer 718 shown in
The sampling window can be implemented as an input buffer of depth equal to the window size. As an alternative, a configurable virtual sampling window can be realized through the use of a periodic reset signal that arrests spiking behaviour in the network and resets the output stages. The sampling window in such a method can have the same period as the reset signal. When configuring the sampling window, the period should be sufficiently long as to fully accommodate the longest known feature, yet small enough that the feature content of each window is minimized, thus increasing the accuracy of feature recognition. The width of the sampling window can influence the granularity of features the system 700 can detect. In general one could say that the sampling window duration must be larger than the timescale at which the feature presents in the input signal, with a sampling rate greater than or equal to the Nyquist rate. Features at different timescales can be detected through the use of multiple input encoder stages 4011, . . . , 401N, or a single input encoder stage 4011, . . . , 401N. The length of the sampling window can also have an impact on the width of counters used in the output transformation stage 501.
Similarly, for the reset signal, the period between two consecutive reset pulses could for example follow the following formula:
In equation (4), tfeature is the duration of features, tfallthrough is the fall through latency for the spike trains to propagate from the input encoder stage to the output of the classifier stage, toutput is the latency of the output transformation stage to generate a hash or set of hashes, and tlookup is the worst-case latency for the hash-table/dictionary lookup operation.
The duration of the reset pulse must be sufficient to trigger the reset circuits of the appropriate components. During a reset, the state of all neurons 1 in the network 400 is reset i.e. for example membrane voltage brought back to resting, interfacing signals are reset to their initialized state (i.e. the state they had after the system was programmed), synaptic readout circuitry is reset (weight is retained), and inflight synaptic updates are abandoned. In the output stage 500, counters and registers tracking the population and rate of firing in neurons 1 can also be reset. The reset does not affect the input encoder stages 4011, . . . , 401N, ensuring a continuous encoding of input pattern signals 7111, . . . , 711N to spikes even during the transition between sampling windows.
In a first step 1001, new signal samples are encoded as spatio-temporal spike trains by one or multiple input encoder stages 4011, . . . , 401N. The output of the one or multiple output encoders are spatio-temporal spike trains P1, . . . , PN.
In a second step 1002, the spike trains P1, . . . , PN are weighted according to their significance in the fusion by priority biasing. The output of the priority biasing module 402 are weighted disparate spatio-temporal spike trains.
In a third step 1003, the disparate spatio-temporal spike trains are unified into a representative set of spike trains 712 encompassing individual feature sub-spaces by a data fusion stage 403. The output of the data fusion stage are fused spatio-temporal spike trains 712.
In a fourth step 1004, a classifier stage 404 classifies the spatio, temporal and rate features, in the post-fusion spike trains 712. The temporal spike trains are thus categorized.
In a fifth step 1005, the output transformation stage 501 converts the categorized spike trains 713 into classification code 714.
In a sixth step 1006, the method might wait until a new sampling window starts.
In a seventh step, the lookup and output in the hash table or dictionary 601 of the pattern identifier 700 corresponding to the classification code 714 is performed.
Finally, in an eight step 1008, the data fusion stage 403, classifier stage 404 and output transformation stage 501 are reset.
The method can then be repeated starting at the first step 1001 again.
In general, the system and method described herein use a network of spiking neurons 1 as a means of generating unique spatio-temporal spike trains in response to a unique stimulus, where the uniqueness of responses is controllable through the operating parameters of the spiking neurons 1 and interconnection network. The system consists of an array of spiking neurons 1 with configurable parameters, interconnected through synaptic elements 2 with configurable parameters. By virtually partitioning the array into multiple different networks, the system can simultaneously realize multiple functionalities.
For instance, one network might realize the conversion of multiple, disparate, sampled input signals into a representative set of spatio-temporal spike trains which fully encodes the feature space of the input signal.
In a second configuration, the invention might realize the conversion of multiple, disparate, sampled input signals into a singular representative set of spatio-temporal spike trains with a feature space that is a superset of the individual feature spaces of all input signals.
In a third configuration, the invention might realize the classification of spatio-temporal spike trains into one or more output classes through appropriate configuration of the network's uniqueness.
The configurability of the neurons, synaptic elements and interconnection network of the invention facilitates the simultaneous realization of all three configurations on separate groups of neurons in the same array, in different combinations. The synaptic elements act as a configurable switch matrix.
A spiking neural network 1100 according to an embodiment is shown in
Input signals 1104 may be transmitted to the neurons N0, . . . ,N7 via the array of synaptic elements 1102 in accordance with the weights of the synaptic elements 2. In addition, two neurons N0, . . . ,N7 may be interconnected via the array of synaptic elements 1102 and the configurable switch 1103, in accordance with the weights of the synaptic elements 2 and the connection topology of the configurable switch 1103. Positive weights in the synaptic elements 2 connecting an input signal 1104 to a neuron N0, . . . ,N7, or interconnecting a pair of neurons N0, . . . ,N7, results in excitation of the post-synaptic neuron N0, . . . ,N7. Negative weights in these connecting synaptic elements 2 results in inhibition of the post-synaptic neuron N0, . . . ,N7, and a zero weight in these connecting synaptic elements 2 results in no connection to the post-synaptic neuron N0, . . . ,N7.
The configuration parameters for neurons N0, . . . ,N7 and synaptic elements 2, interconnection topology, and output stage configuration parameters can be loaded from a configuration memory every time the spiking neural network 1100 is set to an initialization state. This operation causes neurons N0, . . . ,N7 to be interconnected according to the loaded interconnection topology and synaptic weights, neuron and synaptic element parameters to be initialized according to the relevant loaded configuration parameters, the system parameters to be initialized according to the relevant loaded configuration parameters, and the output dictionary or hash-table to be populated with entries stored in the configuration memory.
Input signals 1104 are submitted to a subset of the synaptic elements 2, and the network 1100 produces a certain output 1105, that can be send to an output decoder.
The spiking neural network 1100 may be implemented as shown in
The input encoder stages 1211A, 1211B, data fusion stage 1212, and classifier stage 1213 can be implemented as illustrated in the spiking neural network 1200. The output transformation can be implemented using digital logic circuits, and the hashtable/dictionary lookup operations can be implemented, in one embodiment, as software code executed on the microprocessor accompanying the spiking neural network, and in another embodiment, using digital logic circuits.
The principle underlying each of the network stages 1211A, 1211B, 1212, 1213 is the same, each stage 1211A, 1211B, 1212, 1213 generates a unique response, according to its configuration parameters, upon being presented with an input stimulus. The objective of the input encoder stages 1211A, 1211B can be to generate a unique response for each unique feature present in the input pattern signals 1204A, 1204B. The objective of the data fusion stage 1212 can be to generate a unique response for each unique combination of input spike trains from the input encoder stages 1211A, 1211B. The objective of the classifier stage 1213 can be to generate a unique classification response for each unique feature or combination of features.
One or more embodiments may be implemented as a computer program product for use with a computer system. The program(s) of the program product may define functions of the embodiments (including the methods described herein) and can be contained on a variety of computer-readable storage media. The computer-readable storage media may be non-transitory storage media. Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive, ROM chips or any type of solid-state non-volatile semiconductor memory) on which information may be permanently stored; and (ii) writable storage media, e.g., hard disk drive or any type of solid-state random-access semiconductor memory, flash memory, on which alterable information may be stored.
Two or more of the above embodiments may be combined in any appropriate manner.
Claims
1. A spiking neural network for classifying input pattern signals, comprising a plurality of spiking neurons implemented in hardware or a combination of hardware and software, and a plurality of synaptic elements interconnecting the spiking neurons to form the network,
- wherein each synaptic element is adapted to receive a synaptic input signal and apply a weight to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weight applied by each synaptic element, and
- wherein each of the spiking neurons is adapted to receive one or more of the synaptic output signals from one or more of the synaptic elements, and generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals,
- wherein the spiking neural network comprises a first sub-network comprising a first sub-set of the spiking neurons connected to receive synaptic output signals from a first sub-set of the synaptic elements,
- wherein the first sub-network is adapted to generate a sub-network output pattern signal from the first sub-set of spiking neurons, in response to a sub-network input pattern signal applied to the first sub-set of synaptic elements, and
- wherein the weights of the first sub-set of synaptic elements are configured by training the sub-network on a training set of sub-network input pattern signals, so that the sub-network output pattern signal is unique for every unique sub-network input pattern signal of the training set, wherein the degree of uniqueness is controllable through operating parameters of the first sub-set of spiking neurons and synaptic elements.
2. The spiking neural network of claim 1, wherein a respective distance between each unique sub-network output pattern signal is larger than a predetermined threshold value, the distance being measured by an output pattern metric.
3. The spiking neural network of claim 1, wherein the spiking neurons and synaptic elements are configured such that respective distances, as measured by an output pattern metric, between two output pattern signals of the sub-network generated in response to two respective different sub-network input pattern signals are maximized for all sub-network input pattern signals of the training set.
4. The spiking neural network of claim 3, wherein each respective distance is maximized until the output pattern signals meet at least a first minimum sensitivity threshold required for distinguishing between features of the input pattern signals.
5. The spiking neural network of claim 1, wherein the weights of the first sub-set of synaptic elements are configured by training the sub-network on a training set of sub-network input pattern signals using a semi-supervised training methodology, by inducing spikes at a desired output neuron at a specific time and at other neurons at a time concomitant with the application of the sub-network input pattern signals, the sub-network is configured to respond with the desired sub-network output pattern signal.
6. The spiking neural network of claim 5, wherein a desired spike is artificially induced at a specific time to obtain a unique response to a certain input pattern.
7. The spiking neural network of claim 5, wherein by inducing a spike artificially at a neuron n of the sub-network at a desired time, the nature of the relationship between neurons in preceding layers of the sub-network and the neuron n is established as causal, anti-causal, or non-causal.
8. The spiking neural network of claim 1, wherein the weights of the first sub-set of synaptic elements are configured using a causal-chain spike-timing-dependent plasticity (CC-STDP) learning rule, which enables identification of causal relationships between desired output neurons and neurons in preceding layers of the sub-network, and causes the weights of intervening synaptic elements along this path of causation to be adjusted.
9. The spiking neural network of claim 8, wherein using the CC-STDP learning rule, the sub-network output pattern signal can be steered towards a different population of the sub-network's output neurons that fired in response to a particular sub-network input pattern signal, and their precise firing times, in order to reach a particular sub-network output pattern signal.
10. The spiking neural network of claim 8, wherein the CC-STDP learning rule adjusts weights of the first sub-set of synaptic elements on the basis of a firing event only if the firing event contributes to firing of neurons in subsequent layers of the sub-network.
11. The spiking neural network of claim 8, wherein the training using the CC-STDP learning rule comprises inducing and/or inhibiting spike generation at neurons of the first sub-set of spiking neurons at specific times.
12. The spiking neural network of claim 11, wherein inducing spike generation in a neuron comprises driving a membrane of the neuron to a voltage that exceeds the firing threshold of the membrane, by means of a bias voltage input, thereby inducing the generation of a spike, or injecting an artificial spike into the neuron's output at the specific time.
13. The spiking neural network of claim 11, wherein inhibiting spike generation in a neuron comprises driving a membrane of the neuron to its refractory voltage, or lowest possible voltage, preventing the generation of a spike, or disabling spike generation at the neuron.
14-18. (canceled)
19. The spiking neural network of claim 1, wherein the network comprises a second sub-network comprising a second sub-set of the spiking neurons connected to receive synaptic outputs from a second sub-set of the synaptic elements,
- wherein the second sub-network is adapted to receive a second sub-network input pattern signal applied to the second sub-set of synaptic elements, and generate a corresponding second sub-network output pattern signal from the second sub-set of neurons, and
- wherein the configurations of the second sub-set of synaptic elements are adjusted so that the second sub-network output pattern signal is unique for every unique feature in the second sub-network input pattern signals,
- wherein the network comprises a third sub-network comprising a third sub-set of the spiking neurons connected to receive synaptic outputs from a third sub-set of the synaptic elements,
- wherein the first and second sub-network output pattern signals are input pattern signals of the third sub-network, and
- wherein the configurations of the third sub-set of synaptic elements are adjusted such that the third sub-network output pattern signal is unique for every unique feature in the input pattern signal from both the first and second sub-network and unique combinations of them, such that the features that are present in the input pattern signals from both the first and second sub-network are encoded by the third sub-network.
20. The spiking neural network of claim 19, wherein the synaptic elements of the third sub-network are configured such that the input pattern signals from the first and second sub-network are weighted according to importance of the specific features in the input pattern signals.
21. The spiking neural network of claim 1, wherein the network comprises multiple sub-networks of synaptic elements and spiking neurons, for which the sub-network output pattern signal is unique for every unique feature in the sub-network input pattern signals,
- wherein the network can be divided in multiple layers having a particular sequential order in the network, and
- wherein the multiple sub-networks are instantiated in the particular sequential order of the multiple layers each respective sub-network belongs to.
22-23. (canceled)
24. The spiking neural network of claim 1, wherein a set of neurons are arranged in one or multiple template networks of neurons, the neurons of a particular template network of neurons forming a sub-network of the neural network,
- wherein the sub-network output pattern signal is unique for every unique feature in the sub-network input pattern signals, and
- wherein each template network in the neural network is instantiated as a pre-trained sub-network that was configured according to claim 17.
25. The spiking neural network of claim 1, wherein the neural network is configured to take as input one or multiple sampled analog or digital input signals and convert the input signals into a representative set of spiking neural network input pattern signals.
26. (canceled)
27. A method for classifying input pattern signals using a spiking neural network comprising a plurality of spiking neurons implemented in hardware or a combination of hardware and software, and a plurality of synaptic elements interconnecting the spiking neurons to form the network,
- wherein each of the synaptic elements is adapted to receive a synaptic input signal and apply a weight to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weight applied by each synaptic element, and
- wherein each of the spiking neurons is adapted to receive one or more of the synaptic output signals from one or more of the synaptic elements, and generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals,
- the method comprising:
- defining a first sub-network of the spiking neural network, the first sub-network comprising a first sub-set of the spiking neurons connected to receive synaptic output signals from a first sub-set of the synaptic elements;
- configuring the weights of the first sub-set of synaptic elements by training the sub-network on a training set of sub-network input pattern signals, so that the sub-network output pattern signal is unique for every unique sub-network input pattern signal of the training set, wherein the degree of uniqueness is controllable through operating parameters of the first sub-set of spiking neurons and synaptic elements;
- applying a sub-network input pattern signal to a first sub-network of the spiking neural network, the first sub-network comprising a first sub-set of the spiking neurons connected to receive synaptic output signals from a first sub-set of the synaptic elements; and
- receiving a sub-network output pattern signal generated by the first sub-set of spiking neurons in response to the sub-network input pattern signal, wherein the output pattern signal identifies one or more features of the input pattern signal.
28. (canceled)
29. A memory device comprising a template library stored thereon, the template library comprising information on a configuration of one or multiple template networks of spiking neurons for use as a sub-network of a spiking neural network,
- wherein each template network comprises a set of the spiking neurons implemented in hardware or a combination of hardware and software connected to receive synaptic outputs from a set of the synaptic elements, and
- wherein each template network is adapted to receive a template network input pattern signal applied to the set of synaptic elements, and generate a corresponding template network output pattern signal from the set of neurons, and
- wherein the configurations of the set of synaptic elements are adjusted by training the template network on a training set of template network input pattern signals, so that the template network output pattern signal is unique for every unique template network input pattern signal of the training set, wherein the degree of uniqueness is controllable through operating parameters of the first sub-set of spiking neurons and synaptic elements,
- wherein the training set is used to train the template network to perform a particular task,
- such that the sub-network of the spiking neural network can be instantiated on the basis of the information on the configuration of the template network in a pre-trained manner to perform the particular task.
30. A method of composing a spiking neural network, the method comprising
- obtaining one or multiple template networks or information on the configuration of one or multiple template networks from a template library according to claim 29, and
- instantiating the one or multiple template networks as a sub-network of the spiking neural network such that the sub-network of the spiking neural network is able to perform the particular task the template network was pre-trained to perform.
Type: Application
Filed: Nov 14, 2019
Publication Date: Jul 21, 2022
Inventors: Amir Zjajo (The Hague), Sumeet Susheel Kumar (The Hague)
Application Number: 17/294,430