Spiking neural network

The spiking neural network addresses inefficiencies in pattern recognition by stabilizing synaptic weights using a causal chain STDP rule, reducing power and latency for efficient pattern classification in power-constrained devices.

JP2025013779AActive Publication Date: 2025-01-28INNATERA NANOSYSTEMS BV
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024166746
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-11-18
Filing Date
2024-09-25
Publication Date
2025-01-28

AI Technical Summary

Technical Problem

Existing pattern recognition systems, particularly in ASR, face inefficiencies due to sequential execution on microprocessors, high power consumption, and complexity, especially in power-constrained devices, with data fusion being non-native and unstable in microprocessors and DSPs, leading to increased latency and power loss.

Method used

A spiking neural network (SNN) is implemented with multiple spiking neurons and synaptic elements, using a causal chain STDP learning rule to stabilize weight configuration and enable efficient pattern recognition, allowing for flexible training and deployment across various signals.

Benefits of technology

The SNN reduces power consumption and latency while maintaining high recognition accuracy by stabilizing synaptic weights, enabling efficient pattern classification and data fusion in real-time, suitable for power-constrained devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025013779000001_ABST
    Figure 2025013779000001_ABST
Patent Text Reader

Abstract

To provide a system for and a method of arranging a spiking neural network in a constructive form which forms a pattern recognition device formed of a spiking neuron by using a unique response method.SOLUTION: The present invention is directed to a spiking neural network 100 for classifying an input pattern signal. The spiking neural network has a plurality of spiking neurons 1 formed of hardware or a combination of hardware and software, and a plurality of synapse elements 2 for mutually connecting spiking neurons for forming a network. Each of the synapse elements receives a synapse input signal 11, applies weight to the synapse input signal, and generates a synapse output signal 12 to adjust applied weight. Each of the spiking neurons receives one or more synapse output signals from one or more synapse elements to generate a space-time spike series output signal in response to the one or more received synapse output signals.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001]

[0001] The present disclosure relates generally to constructing spiking neural networks. More particularly, but not by way of limitation, the present disclosure relates to constructing pattern recognizers constructed from spiking neurons, and to systems and methods for constructing spiking neural networks in a constructive manner using unique response methods. [Background technology]

[0002]

[0002] Automatic signal recognition (ASR) refers to the recognition of a signal through the identification of its constituent features. ASR is used in a wide range of applications, for example, to recognize a speaker's voice and spoken words in voice / speech recognition systems, to recognize arrhythmias in electrocardiograms (ECGs), and to determine gesture shapes in motion control systems, among others. ASR is typically performed by characterizing patterns present in short samples of the input signal, and thus accurate pattern recognition capabilities are fundamental for an effective ASR system.

[0003]

[0003] 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 hand gestures using a handheld input device may require the fusion of data from an accelerometer to measure movement and data from a gyroscope to measure orientation. Combining data from both sensors allows for the detection of gestures in three-dimensional space.

[0004]

[0004] In general, data fusion refers to the integration of data collected from different, potentially heterogeneous sources, in order to reduce the uncertainty in the interpretation of the data from those individual sources. During the fusion process, it is important that the essential features in the different input signals are adequately represented in the fused signal.

[0005]

[0005] 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 the analysis of streaming data. On a single processor, pattern extraction and recognition are performed sequentially. This is because pattern extraction and identification are realized in terms of a common simplified instruction set (e.g., RISC or CISC instruction set), resulting in a long execution sequence for every pattern in the signal sample. Complex patterns in the input signal require the use of more complex signal processing algorithms, which further necessitates the use of higher clock frequencies for the processor in systems that require real-time response from the pattern recognition engine. 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 increases significantly as the complexity and repertoire of patterns increases. The presence of noise in the input signal further increases the complexity of the analysis, adversely affecting performance and efficiency.

[0006]

[0006] 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 then combined with the corresponding content from the other streams. As a result, in a microprocessor implementation, each input signal / data source for fusion is processed separately by an independent pattern recognition pipeline, followed by a rule-based framework to combine the different pattern recognition results. 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 the complexity of the patterns increases, so does the power and latency cost of recognizing these patterns. The latency cost can be mitigated by increasing the clock frequency, but this is achieved at the expense of further increased power dissipation. Similarly, the quality of fusion is limited by the complexity of the processing and ASR performed on the input signals, the number of signals to be fused, and the computational power of the microprocessor or DSP. The sequential nature of the processing reduces the throughput of fusion-based ASR, and thus, as the complexity of the patterns in the signals increases, the number of input signals that can be fused using a microprocessor or DSP decreases.

[0007]

[0007] Artificial neural networks have been proposed as an alternative to microprocessor implementations. Spiking neural networks (SNNs) 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. Calculations for pattern classification are efficiently performed in the analog and time domains. For this reason, SNNs are typically realized in hardware as full-custom mixed signal integrated circuits. This allows them to perform pattern classification with orders of magnitude lower energy consumption than their artificial neural network counterparts, in addition to having smaller network sizes.

[0008]

[0008] An SNN consists of a network of spiking neurons interconnected by synapses that determine the strength of the connections between the spiking neurons. This strength is represented as a weight, which moderates the influence of the output of a presynaptic neuron on the input to a post-synaptic neuron. Typically, these weights are set in a training process that involves exposing the network to large amounts of labeled input data and gradually adjusting the synaptic weights until a desired network output is achieved. In practice, however, these amounts of labeled data may simply not exist.

[0009]

[0009] Furthermore, training large multi-layer networks in a monolithic manner takes time as the network size leads to complex optimization problems whose solution is computationally expensive due to the need to back-propagate errors through several layers of the network.

[0010] Spiking neural networks typically rely on a learning rule based on the relative firing times of two neurons connected by a synapse to determine the error. A common learning rule is called spike timing dependent plasticity, or STDP. This method allows for potentially unsupervised training of SNNs to set synaptic weights, but is inherently unstable. This is because STDP targets weight adjustments at individual synapses and lacks a mechanism for balancing synaptic weights at the network level. As a result, the STDP process may be unstable and may result in divergent synaptic weight configurations. Although it may be possible to alleviate this problem by balancing the magnitude and distribution of excitatory and inhibitory connections formed by synapses in the network, this process is difficult to implement and requires exhaustive search to result in a stable convergent weight configuration. Spiking neural networks can also be trained with traditional backpropagation methods. However, these techniques are computationally expensive when applied to deep multi-layer networks due to the complex causal relationships between neurons across different layers of the network. Summary of the Invention

[0011]

[0011] To address the above-mentioned shortcomings of the prior art, according to an aspect of the present disclosure, a spiking neural network for classifying an input pattern signal is proposed, comprising a plurality of spiking neurons implemented in hardware or a combination of hardware and software, and a plurality of synapse elements interconnecting the spiking neurons to form a network. Each synapse 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 synapse elements are configurable to adjust the weight applied by each synapse 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 synapse elements and generate a spatio-temporal spike train output signal in response to the received one or more synaptic output signals.

[0012] The spiking neural network comprises a first subnetwork comprising a first subset of spiking neurons connected to receive synaptic output signals from a first subset of synaptic elements, the first subnetwork adapted to generate subnetwork output pattern signals from the first subset of spiking neurons in response to subnetwork input pattern signals applied to the first subset of synaptic elements, the weights of the first subset of synaptic elements being configured by training the subnetwork on a training set of subnetwork input pattern signals such that the subnetwork output pattern signals differ for each unique subnetwork input pattern signal in the training set.

[0013] In one embodiment, the distance between each different sub-network output pattern signal is greater than a predetermined threshold, the distance being measured by an output pattern metric. The spiking neurons and synaptic elements may be configured such that the respective distances, measured by the output pattern metric, between two output pattern signals of a 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 signal meets at least a first minimum sensitivity threshold required to distinguish between features of the input pattern signals.

[0014]

[0014] A feature is any characteristic of an input pattern signal that allows for the identification of that signal and / or a pattern of interest within that signal. A pattern may be composed of one or more features. For example, the relevant features in an ECG input signal may be the various time-varying amplitudes that characterize different phases of the heartbeat, for an audio input signal the relevant features may be the frequency content of the signal within each discrete time interval at which the audio signal is sampled, or for an image input signal the relevant features may be the primitive shapes and lines present in the image. Additional examples are provided herein.

[0015]

[0015] In a spiking neural network, each of the spiking neurons may be configurable to tailor the neuronal response to one or more received synaptic output signals. Spikes may be generated by the spiking neurons at one or more firing times, and the subsets of synaptic elements and / or subsets of neurons may be configured such that the union of two sets of firing times of the subsets of neurons firing 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 signal meets at least a second minimum sensitivity threshold required to distinguish between features of the input pattern signals.

[0016]

[0016] The spiking neural network may comprise a second sub-network comprising a second subset of spiking neurons connected to receive synaptic outputs from a second subset of synaptic elements, the second sub-network adapted to receive a second sub-network input pattern signal applied to the second subset of synaptic elements and generate a corresponding second sub-network output pattern signal from the second subset of neurons, the configuration of the second subset of synaptic elements being adjusted such that the second sub-network output pattern signals differ for each unique feature in the second sub-network input pattern signal, comprises a third sub-network comprising a third subset of spiking neurons connected to receive synaptic outputs from the third subset of synaptic elements, the first and second sub-network output pattern signals being input pattern signals of the third sub-network, and the configuration of the third subset of synaptic elements is adjusted such that the third sub-network output pattern signals differ for each unique feature in the input pattern signals from both the first and second sub-networks, as well as for each unique combination thereof, such that features present in the input pattern signals from both the first and second sub-networks are encoded by the third sub-network.

[0017]

[0017] The synaptic elements of the third sub-network may be configured such that the input pattern signals from the first and second sub-networks are weighted according to the importance of a particular input pattern. The network may comprise a plurality of sub-networks of synaptic elements and spiking neurons, for which the sub-network output pattern signals differ for each unique feature in the sub-network input pattern signals, and the network may be divided into a plurality of layers having a particular sequential order in the network, and the plurality of sub-networks are instantiated in a particular sequential order of the plurality of layers to which each respective sub-network belongs.

[0018]

[0018] In a spiking neural network, the synaptic elements may be arranged as a configurable switch matrix.

[0019]

[0019] Configuration information of neurons, synaptic elements, the interconnection topology of neurons and synaptic elements, and / or the output configuration of the neural network may be stored in a configuration memory, and the configuration information may be loaded from the configuration memory when the neural network is placed in an initialized state.

[0020]

[0020] The set of neurons may be arranged in one or more template networks of neurons, the neurons of a particular template network of neurons forming a subnetwork of the neural network, the subnetwork output pattern signals differ for each unique feature in the subnetwork input pattern signals, and each template network in the neural network is instantiated in a pre-trained manner.

[0021]

[0021] A neural network may be configured to take as input one or more sampled input signals and convert the input signals into a representative set of neural network input pattern signals. The neural network output pattern signals may be classified into one or more output classes.

[0022]

[0022] According to an aspect of the present invention, a method is proposed for classifying an input pattern signal 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 a network, each of the synaptic elements being 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 being adapted to receive one or more of the synaptic output signals from one or more of the synaptic elements and generate a spatiotemporal spike train output signal in response to the received one or more synaptic output signals. The method comprises the steps of: defining a first subnetwork of a spiking neural network, the first subnetwork comprising a first subset of spiking neurons connected to receive synaptic output signals from the first subset of synaptic elements; configuring weights of the first subset of synaptic elements by training the subnetwork on a training set of subnetwork input pattern signals, such that the subnetwork output pattern signal is different for each unique subnetwork input pattern signal in the training set; applying subnetwork input pattern signals to the first subnetwork of the spiking neural network, the first subnetwork comprising a first subset of spiking neurons connected to receive synaptic output signals from the first subset of synaptic elements; and receiving subnetwork output pattern signals generated by the first subset of spiking neurons in response to the subnetwork input pattern signals, wherein the output pattern signals identify one or more features of the input pattern signals.

[0023] According to another aspect of the invention, a method for classification of predetermined features in an input signal is proposed, comprising constructing and training a neural network as described above, submitting at least one sampled input signal to the neural network, and classifying the features in the at least one sampled input signal into one or more output classes of the neural network.

[0024] According to yet another aspect of the present invention, there is provided a template library comprising information on one or more template networks of spiking neurons or their configurations for use as sub-networks of a spiking neural network, each template network comprising a set of spiking neurons connected to receive synaptic outputs from a set of synaptic elements. Each template network is adapted to receive template network input pattern signals applied to the set of synaptic elements and generate corresponding template network output pattern signals from the set of neurons. The configuration of the set of synaptic elements is tuned by training the template network on a training set of template network input pattern signals, such that the template network output pattern signals are different for each unique template network input pattern signal of the training set, the training set being used to train the template network to perform a specific 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 a specific task, or such that a sub-network of a spiking neural network can be instantiated based on information on the configuration of the template network in a pre-trained manner to perform a specific task.

[0025]

[0025] According to yet another aspect of the present invention, a method for configuring a spiking neural network is proposed, the method comprising obtaining information about one or more template networks or the configuration of one or more template networks from the above-mentioned template library, and instantiating one or more template networks as sub-networks of the spiking neural network such that the sub-networks of the spiking neural network are capable of performing specific tasks that the template networks were pre-trained to perform.

[0026]

[0026] The present invention consists of a method for implementing a pattern classifier in a bottom-up manner using smaller network stages trained separately. Each stage of the pattern classifier is trained for its specific function using a common method, with different training objectives applied that are specific to the function being implemented. The training process is aided by a method that considers the long-range causal influence of synapses when adapting the weights, thus overcoming the instability problem faced by STDP. The three methods can be used independently of the other methods. The methods allow for the realization of low-latency pattern recognizers that are applicable to different signal types and can recognize and correlate patterns across multiple signals. The methods simplify the training and deployment time of the pattern recognizer and facilitate the reuse of previously trained pattern recognition networks, while concomitantly ensuring that the implementation remains flexible.

[0027]

[0027] 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: [Brief description of the drawings]

[0028] [Figure 1]

[0028] An exemplary neural network consisting of neurons and synaptic elements is shown. [Diagram 2]

[0029] We show the construction of a pattern recognizer through the integration of a data transformer, an input encoder, and a pattern classifier stage, each of which is trained separately and instantiated in subsequent stages. [Figure 3A]

[0030] 1 shows a schematic of how the input encoder converts a sampled input signal into a spatio-temporal spike train. [Figure 3B]

[0031] Illustrates examples of desired spike responses for three input patterns written in the form of spike tuples. [Figure 4]

[0032] We present the principle of causal chain STDP to identify deep causal, anti-causal, and non-causal relationships between postsynaptic neurons and neurons in subsequent network layers. [Figure 5A]

[0033] We show the construction of a sensor fusion pattern recognizer through the fusion of two separate spike-coded data streams and subsequent pattern classification using the fused spike trains. [Figure 5B]

[0034] 1 illustrates a schematic of how multiple temporal spike trains are fused into a single fused spike train. [Figure 6]

[0035] We present a system that can use a network of spiking neurons to fuse multiple data streams and perform automatic signal recognition on the fused streams. [Figure 7A]

[0036] An example of how to interface an input signal to a neuron is shown. [Figure 7B]

[0037] An example of how to interface an input signal to a neuron is shown. [Figure 8]

[0038] An example of how to generate a reset pulse is given below. [Figure 9]

[0039] We present a method for fusing multiple data streams and performing automatic signal recognition on the resulting fused streams using networks of spiking neurons. [Figure 10]

[0040] 1 shows an array of neurons and synaptic elements interconnected through a configurable switch matrix. [Figure 11]

[0041] 1 shows an example of a constructed array illustrating an example mapping of ASR pipeline stages onto neurons and synaptic elements.

[0029]

[0042] The drawings are intended for illustrative purposes only and do not serve as a limitation on the scope or protection defined by the claims. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0030]

[0043] Certain specific embodiments are described in further detail below, however, it should be understood that these embodiments may not be construed as limiting the scope of protection for the present disclosure.

[0031]

[0044] FIG. 1 is a simplified diagram of a neural network 100. Neurons 1 are connected to each other via synaptic elements 2. In order not to clutter the image, only a few neurons and synaptic elements are shown (only some are numbered). The connection topology shown in FIG. 1, i.e. the way in which the synaptic elements 2 connect the neurons 1 to each other, is merely an example, and many other topologies can be used. Each synaptic element 2 can send a signal to the input of a neuron 1, and each neuron 1 receiving the signal can process the signal and then generate an output, which is transmitted to other neurons 1 via further synaptic elements 2. Each synaptic element 2 is assigned a certain weight that is applied to each synaptic input signal that it receives and transmits to generate a weighted synaptic output signal. The weight of a synaptic element is thus a measure of the type of causal relationship between two neurons 1 connected by a synaptic element 2. The relationship can be causal (positive weight), anticausal (negative weight) or non-existent (0 weight).

[0032]

[0045] 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 fully in software. A hardware implementation is preferred to achieve faster processing, which allows for example much faster pattern recognition, and event-driven processing, where blocks of neurons and synaptic elements are only activated when necessary.

[0033]

[0046] Neural network 100 may be a spiking neural network. Neuron 1 is thus a spiking neuron, which generates a neuronal output signal in the form of one or more spikes. Spiking neuron 1 may be configured to fire (i.e., generate an output spike) only when a membrane potential (e.g., energy potential, or voltage or current level) within the neuron reaches a predetermined threshold. The membrane potential of a spiking neuron changes as a result of a received input signal, i.e., a synaptic output signal received by the neuron from a synaptic element is accumulated, integrated, or otherwise processed to change the membrane potential. If the weight of synaptic element 2 is positive, the synaptic output signal received from that synaptic element excites spiking neurons 1 that receive the signal, raising their membrane potential. If the weight of synaptic element 2 is negative, the synaptic output signal received from that synaptic element inhibits spiking neurons 1 that receive the signal, lowering their membrane potential. When the weight of a synaptic element 2 is 0, the synaptic output signal received from that synaptic element has no effect on the spiking neuron 1 that receives the signal.

[0034]

[0047] When the membrane potential of a spiking neuron 1 reaches a threshold, the neuron fires, generating a spike upon firing, and the membrane potential is reduced as a result of the firing. If the membrane potential subsequently reaches the threshold again, the neuron fires 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 connected synaptic elements 2, the spikes forming a spatiotemporal spike train. Since a spiking neuron 1 only fires when its membrane potential reaches a predefined threshold, coding and processing of temporal information is built into the neural network 100. In this way, a spatiotemporal spike train is generated in the spiking neural network 100, which is a time sequence of spikes generated by the spiking neurons 1 of the network 100.

[0035]

[0048] The temporal characteristics of a spike train encode the amplitude and frequency features of the input signal, including the latency between the onset of a stimulus (e.g., an input signal from a synaptic element) and the generation of a spike at the output of the neuron, the latency between successive spikes from the same neuron, and the number of spikes fired by the neuron during the duration that the input stimulus is applied.

[0036]

[0049] The synaptic elements 2 may be configurable such that, for example, the respective weights of the synaptic elements can be changed, for example, by training the neural network 100. The neurons 1 may be configurable to respond to signals from the synaptic elements. For example, in the case of a spiking neural network, the neurons 1 may be configured such that certain signals increase or decrease the membrane potential, the time it takes for the membrane potential to naturally decay towards the resting potential, the value of the resting potential, the threshold that triggers a spike in the spiking neurons 1. The configuration of the neurons 1 may be kept constant, for example, during training, or may be variable and set in the training of the neural network 100 on a particular training set.

[0037]

[0050] The input signal 11 is for example a number of different sampled input signals, or a spatio-temporal spike train. The input can be analog-to-digital converted values ​​of the signal samples, or for example the digital values ​​of the samples in the case of an analog or digital integrator, or the analog values ​​of the samples in the case of an analog integrator.

[0038]

[0051] The output signal 12 of the neural network 100 is, for example, a spatio-temporal spike train, which can be read out from the output neurons 1, further classified and converted by an output conversion stage into a set of digital values ​​corresponding to the type of output code selected by the user.

[0039]

[0052] An operation such as pattern recognition can be accomplished in several steps (e.g., data transformation, feature encoding, classification). The present embodiment allows these steps to be realized using standardized sub-networks (cells) of synaptic elements and neurons, and configured using flexible training methods for each application domain. The goal of the training method is to configure each stage or sub-network of the neural network to generate a unique response to each unique pattern or feature in the input signal.

[0040]

[0053] 2 shows the construction of a neural network formed by the union of several constituent stages, including in this example a data converter stage 201, an input coder stage 202, and a pattern classifier stage 203. Each stage can be trained separately and instantiated in the network for training of subsequent stages. The term "instantialized" refers to the process where a portion of the network that forms a sub-network, e.g., a stage or cell of the network, has previously been constructed, typically by training, and the configuration data of the sub-network is used to construct that sub-network within the entire network.

[0041]

[0054] The data converter stage 201 receives an input pattern signal for processing by the neural network. In this example, the data converter stage 201 is shown as a cell 301, the data converter stage 202 is shown as part of the cell 302 and the pattern classifier stage 203 is shown as part of the cell 303. Each cell 301, 302, 303 comprises a sub-network formed by a subset of the synaptic elements 2 and a subset of the neurons 1 of the network, connected in a topology that realizes the function that the cell is intended to implement. Each cell 301, 302, 303 can be parameterized, i.e. configured to have, among other things, different numbers of synaptic elements 2, neurons 1, input connections, output connections, hidden layer connections (i.e. connections between layers of neurons that are not visible to the input of the output).

[0042]

[0055] 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 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 cell 302, which includes both data converter stage 201 and input encoder stage 203.

[0043]

[0056] Cell 302 may then be trained, and the trained encoder stage 203 and configuration settings of cell 302 may be saved. These saved settings may then be used to configure cell 303, which includes data converter stage 201, input encoder stage 203, and 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 may be saved.

[0044]

[0057] Training may be achieved using a unique response algorithm. The unique response algorithm provides a configuration of the weights of the synaptic elements of each cell, which results in a unique feature in the input signal being transcoded into a unique response of the neuron 1 of the cell. In the case of a spiking neuron, this may be a unique spiking response. The unique response algorithm is further described below. The uniqueness of the response of the cell indicates the ability of the cell to separate different features in the input pattern signal 11 into different output signals 12A, 12B, 12C of the cell. In the case of a spiking neuron, these different output signals 12A, 12B, 12C may be different output spike trains, e.g., a unique set of spatiotemporal spike train outputs from the output neurons of the cell. The uniqueness of the set of spatiotemporal spike train outputs may be determined by the number of spikes and / or the timing of the spikes generated by each output neuron of the cell. As a result, during training of the network, the uniqueness of each response is tested after the inputs are presented to the network and converted into spikes, and the weights of the synaptic elements of the cell being trained are adapted using a unique response method until the output response 12A, 12B, 12C of each cell 301, 302, 303 meets the uniqueness criterion. Teacher inputs 13A, 13B, 13C can be used to obtain the desired unique response for each cell 301, 302, 303, as described below.

[0045]

[0058] To realize higher level functions, previously trained cells 301, 302, 303 can be instantiated and interconnected in a bottom-up manner, i.e., the lowest level cells 301 can be trained first and then instantiated in higher level cells 302 that encompass the subsequent tiers 202. The mid-level cells 302 can then be instantiated in higher level cells 303 that encompass the subsequent tiers 203. Following each creation of a higher level cell, a unique response algorithm is invoked.

[0046]

[0059] Cells 301, 302, 303 can be trained in this way for specific functions in different application domains, and the configuration settings of the trained cells can be saved in a template library where they can be reused in different networks. For example, the input encoder stage 202 of a spoken word recognition network can be reused without any modification in a hot-word triggering network. Such reuse facilitates a reduction in overall training time and complexity.

[0047]

[0060] 3A shows diagrammatically how an input encoder 22 converts a sampled input signal 20 into a spatio-temporal spike train 24. Each output neuron of the input encoder 22 produces an output signal 23 that is a spatio-temporal spike train. The input encoder 22 is configured by a configuration 21, in which, for example, the weights of the synaptic elements of the input encoder are set.

[0048]

[0061] FIG. 3B shows an example of three desired spike responses 14A, 14B, 14C to three different input patterns to a cell of a spiking neural network. Each response in this example takes the form of a set of one or more spatiotemporal spike trains generated by the cell's output neurons N1, N2, N3, N4, N5. Each response 14A, 14B, 14C is described in terms of discrete time bins 15A, 15B, 15C that may be selected for each network. The time bins 15A, 15B, 15C may be at least as large as the time between the onset of a first input stimulus to a cell and the last response from the cell's output neurons. The time bins may be multiples of the fall-through latency of the cell, the multiple being equal to the typical number of spikes generated per output neuron of the cell as a result of the input stimulus.

[0049]

[0062] During each invocation of the unique response method, cells 301, 302, 303 may 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.

[0050]

[0063] The input pattern p may comprise, for example, an audio signal for a speech recognition application, a still or video image for an image recognition application, or many other types of patterns suitable for a pattern recognition system. The input data 11 may comprise a single time-varying data item (e.g. a single data stream derived from an audio signal, e.g. an analog or digital signal output by a microphone), multiple data items (e.g. a set of input data representing individual pixels of a still image output by a CCD array), multiple time-varying data items (e.g. a set of input data streams representing individual pixels of a video image), or multiple augmented versions generated from a single data item (e.g. a combination of input signals).

[0051]

[0064] The weights of the synaptic elements 2 of cells 301, 302, 303 can be adapted using Causal Chain Spike-timing-dependent plasticity (CC-STDP), a learning rule that considers long-range causality when adapting the synaptic weights. In this sense, it differs from conventional spike-timing-dependent plasticity (STDP) learning rules that only consider short-range causality when adapting the weights, making weight updates using several training sets highly unstable and chaotic, resulting in mainly local behavior. CC-STDP is presented further below. Once a cell is trained, the configuration settings for the trained cell can be stored in a library of template cells from which it can then be recalled and reused.

[0052]

[0065] The desired spike response 14A, 14B, 14C to each input pattern p can be described as a tuple that specifies the spike response in each time bin in which input data 11 derived from input pattern p is presented. For example, the tuple may be a set of tuples that specify the spike response of the output neuron (A p ) population and their precise firing times (B p ) can be specified. The uniqueness of the response is typically p and B. p The cell's response is determined by calculating its distance from the cell's response to other input patterns using a distance function or metric that is a function of .gamma. (eg, the Victor Purpura or Van Rossum distance functions).

[0053]

[0066] In a preferred embodiment, for each input pattern p, a set A p can describe disjoint sets that encompass a single output neuron 1, and the set B p can describe the time bins corresponding to when its output neurons 1 respond. From this, in this embodiment, each input pattern p can be identified by the single neuron 1 that responds earliest. Later responses from the same or other neurons can be suppressed or ignored, for example using a winner-take-all network. For additional robustness, the tuples can be expressed as the strength of the neuron's response (the number of spike events C generated by the single earliest spiking neuron during the period in which the input data 11 was applied). p An additional field (C p ) can be augmented with

[0054]

[0067] In an alternative embodiment, for each pattern p, a set A p may be a disjoint set containing multiple output neurons 1, and the set B pA can be a set of equal size that encompasses the response times of those neurons. The cell's response is then scaled to different A to arrive at the desired spike tuple, using the causal chain STDP rules presented below. p and B. p can be steered towards a value.

[0055]

[0068] B p The value can be reduced by increasing the weights on the synaptic elements that contribute to the firing of the corresponding neuron 1, but B p The values ​​can be increased by decreasing their weights. This can be achieved by artificially promoting causal firing of the output neurons 1, or promoting anti-causal firing by inducing premature spikes incident to the application of input data 11. This causes positive or negative synaptic weight adjustments, respectively, of the contributing pathways.

[0056]

[0069] In FIG. 3B, desired spike responses 14A, 14B, 14C are shown for three input patterns p. The response of the first input pattern is generated during a first time bin 15A, the response of the second pattern is generated during a second time bin 15B, and the response of the third pattern is generated during a third time bin 15C. The first pattern (p1) is represented by the tuple

number

number

number

[0057]

[0070] The goal of the unique response method may be to generate a unique set of spatiotemporal spike trains for each unique input pattern. These spatiotemporal spike trains may be constructed as precisely timed sequences of electrical pulses. The uniqueness of the response may be described as follows:

[0058]

[0071] Let A denote the set of neurons that generate output spike trains. Let p be a given known input pattern. Let A be a subset of A. p denotes the set of neurons that fire for a given input pattern p. s ={A p Let |p∈P} be the set of all sets of neurons that fire for each input pattern p in the set of all known input patterns P.

[0059]

[0072] Furthermore,

number

number

[0060]

[0073] In one embodiment, the response of a network to input data 11 can be called unique if, for example, within each given sampling window of the time-varying input, one or more of the following rules apply: As a first rule, for every unique input pattern p, q in P (hence p≠q), Δ(A p ,A q) ≠ 0. As a second rule, for every unique input pattern p, q in P, Δ(B p ,B q ) ≠ 0 should hold.

[0061]

[0074] Distance Δ(A p ,A q ) and Δ(B p ,B q ) can be jointly computed using an appropriate spike distance metric Δ(·,·), such as Victor-Purpura, Van Rossum, ISI, or SPIKE distance, among others.

[0062]

[0075] These rules can be applied as objectives for the configuration of synaptic weights, where they can be restated as follows: s All A's in p In contrast, A s Each A in q Distance Δ(A p ,A q ), where q is a particular distinct input pattern in P. The second weight construction objective is to maximize B s All B's in p In contrast, B s Each B in q Distance Δ(B p ,B q ) is maximized, and B s Each B in q Union B of p ∪B q may be minimized, where q is a particular distinct input pattern in P.

[0063]

[0076] The desired spike tuples can be generated based on these weight configuration objectives, for example, the input encoder stage 202 can be trained using CC-STDP as presented below. The goal of this exercise is to arrive at a configuration of the input encoder stage 202 that results in a unique response that can be used by subsequent stages to distinguish between features in the input pattern.

[0064]

[0077] The construction objective is intended to produce an optimum, which can be computationally expensive. A simpler approach is to scale Δ(A p ,A q ), Δ(B p ,B q ) increases, and B p ∪B q The objective is to bound , so that , decreases. This allows the runtime of the weight configuration training process to be reduced without affecting the robustness and quality of the encoding.

[0065]

[0078] Once a full set of spike tuples has been described or generated for all target patterns, the weights of the synaptic elements 2 of the neuron 1 connections in the cells 301, 302, 303 can be trained so that they show the desired unique response to the input pattern presented. In a supervised learning regime, this training is performed using a supervised method (e.g., using autoencoder methods, exhaustive search, gradient descent, backpropagation, among others). However, this is computationally expensive. In the following, we describe a semi-supervised training method that relies on a new STDP weight facilitation scheme. Semi-supervised can mean not saying what the resulting error is, but saying, for example, what the desired or necessary spikes are to obtain a unique response to a certain input pattern.

[0066]

[0079] In traditional STDP, the weight change of a synaptic element depends on the relative firing times of two neurons 1 connected to each other by that particular synaptic element 2. However, the resulting weight change is primarily the result of local behavior. Causal chain STDP (CC-STDP) instead predicates weight changes in a longer chain of causal relations of presynaptic neurons, i.e., weights are adjusted only if a firing event contributes to the firing of neurons in subsequent layers of the network.

[0067]

[0080] Figure 4 shows the principle of the CC-STDP learning rule, which is 1,2 It is possible to identify deep causal, anti-causal and non-causal relationships between the pre-synaptic neuron N1 and the postsynaptic neuron N2 of a particular synaptic element 2 having the same function as the neurons N3, N4, N5 in subsequent layers of the network.

[0068]

[0081] The CC-STDP rule can be applied in semi-supervised training of cells to obtain a particular output spike response. For example, if n is a time series of a particular time t spike n Suppose we have a particular output neuron n whose spikes are desired to occur at time t during training. spike n By artificially inducing spikes in the output neuron, the nature of the relationship between neurons in the early layers of the network and neuron n can be established. These relationships can be causal (neurons in the early layers cause spikes in the output neuron), anti-causal (neurons in the early layers do not cause spikes in 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 behavior). CC-STDP can thus enable the identification of a causal relationship between neurons in the preceding layers of the network and the desired output neuron, and can adjust the weights of intervening synaptic elements along this path of causality.

[0069]

[0082] In neurons where spiking may be undesirable, anti-causality can be emulated by inducing a spike contemporaneously, i.e. at the same time interval, with the presentation of an input sample to the cell. This can cause the output neuron to fire before neurons in all preceding layers, thus resulting in anti-causality, which in turn causes local inhibition of intervening synaptic elements along the path.

[0070]

[0083] From this, at a specific time t spike k By inducing spikes in the desired output neuron(s) simultaneously with the application of an input stimulus, and inducing spikes in other neurons simultaneously, the network is configured to respond with a desired spiking response pattern.

[0071]

[0084] The weight w of the synaptic element between neuron i and neuron j i,j can vary, for example, according to the following rules:

number

[0072]

[0085] Here, in equation (1), Δw i,j is the effective weight change for the synaptic element between neuron i and neuron j, and w j,k is the weight of the synaptic element between neuron j and neuron k in the subsequent layer. spike i , t spike j and t spike k refers to the exact time at which neurons i, j, and k spike, respectively. i,j is the weight change in the synaptic element between neuron i and neuron j due to their relative time of spiking, which can be calculated using the STDP learning rule.

[0073]

[0086] From this, according to the learning rule of equation (1), if the weight change in the synaptic element between neuron i and neuron j should be positive, and if the weight between neuron j and neuron k is non-zero, and if neuron k spikes slower than both neuron i and neuron j, then Δw i,j = δw i,j If the weight change in the synaptic element between neuron i and neuron j should be negative, then Δw i,j = δw i,j Finally, the weight change will be 0 if neuron k does not spike, if neuron k spikes immediately, if neuron k spikes earlier than either neuron i or neuron j, or if the weight between neuron j and neuron k is 0. In the latter case, there appears to be no causal relationship between neuron i firing and neuron k firing.

[0074]

[0087] Alternative learning rules may also be used, in which case the spike time parameters in the above equations may be replaced by the base parameters (eg, spike rate) of the selected learning rule.

[0075]

[0088] This principle can be explained with reference to FIG. 4. For example, a spike is elicited at a particular time in a particular output neuron (e.g., spike time t spike N3 At t = 4 ms, neuron N4 spikes at time t spike N4 = 3 ms, and no evoked spikes in neuron N5). In this way, a desired specific spatiotemporal spike output pattern is created. This desired output pattern is generated by a specific spatiotemporal input pattern (e.g., t spike N1 For example, this input pattern and a particular synaptic weight w 1,2 Therefore, neuron N2 is spike N2 = 3 ms. Effective weight change Δw for synaptic element 1,2can be calculated, for example, using equation (1) above. 2,3 ≠0, so and w 1,2 >0, the contribution from neuron N3 firing at this particular time is δw 1,2 It is. 2,4 = 0, so the resulting change from neuron N4 firing on synaptic weights is 0. Neuron N5 does not spike, so the resulting change from neuron N5 is 0.

[0076]

[0089] In an embodiment where CC-STDP is used to train a spiking neural network, it may be necessary to be able to induce and / or inhibit spike generation in a particular neuron 1 at a particular time. By way of example, this can be done in the following ways (this list is not exhaustive): To induce a spike, one way would be to drive the membrane of the corresponding neuron by a bias voltage input to a voltage above the firing threshold, thereby inducing spike generation. Another way could be to inject an artificial spike at the output of the neuron at the desired time. To prevent a spike, one way would be to drive the membrane of the corresponding neuron to a refractory voltage or the lowest possible voltage, preventing spike generation. Alternatively, spike generation in the neuron can be disabled, for example, by disconnecting the neuron input from the integrator, thereby disconnecting, for example, the spike generation circuit from the output. These signals for inducing or disabling spike generation in the neuron are illustrated as teacher inputs 13A, 13B, 13C, which can be used to obtain a desired unique response for each cell 301, 302, 303.

[0077]

[0090] 5A shows the construction of a sensor fusion pattern recognizer through the fusion of two separate data streams 11A, 11B and subsequent pattern classification using the fused stream 12C in a pattern classifier stage 204. The output 12D of the pattern classifier stage 204 can be, for example, a set of spatiotemporal spike trains 12D generated by output neurons of the pattern classifier stage 204, where each spike train of the set 12D is generated by a single particular output neuron in the pattern classifier stage 204.

[0078]

[0091] That is, if a layer has multiple simultaneous cells in a stage (e.g., multiple input encoders 202A, 202B forming an 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 can be trained using the teacher inputs 13A1, 13A2, 13B1, 13B2, 13C, 13D. If all simultaneous cells perform the same function on the same data (e.g., input encoding of different receive antennas in a radar transceiver, or input encoding of different microphones pointed in different directions), it may not be necessary to perform a separate training sequence for each instance. Rather, a single trained cell can be instantiated multiple times. As a result, a trained cell or its configuration can be implemented in different spiking neural networks to perform the same function. Thus, during the configuration of a spiking neural network, if the same function is required, an already trained cell can be implemented without the need for any new training. The construction of spiking neural networks therefore takes less time and is less complex.

[0079]

[0092] The memory device can be configured to be used as a template library of trained cells. On such a memory device, 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.

[0080]

[0093] Each cell is trained to perform a specific function. When such a new cell with that specific function is needed in a particular spiking neural network, the cell does not need to be trained from scratch, which saves time and allows the spiking neural network to be implemented much more efficiently. Instead, the configuration settings from a pre-trained cell designed for that function can be retrieved from a memory device configured as a template library. By instantiating a new cell using the pre-trained cell configuration settings, the new cell is enabled to function in the same manner as the pre-trained cell.

[0081]

[0094] The memory device may be any computer-readable storage medium. The memory device may be a non-transitory storage medium. Exemplary computer-readable storage media include, but are not limited to, (i) non-writable storage media in which information may be permanently stored (e.g., a read-only memory device in a computer, such as a CD-ROM disk readable by a CD-ROM drive, a ROM chip, or any type of solid-state non-volatile semiconductor memory), and (ii) writable storage media in which changeable information may be stored, such as a hard disk drive or any type of solid-state random access semiconductor memory, flash memory.

[0082]

[0095] A template library can also be a collection of hardware spiking neural network cells, each pre-trained to perform a specific function. These hardware cells can be used directly in spiking neural networks that require cells with that specific function.

[0083]

[0096] In Fig. 5A, two data converter stages 201A, 201B may be trained with input pattern signals 11A, 11B in cells 301A, 301B, respectively, to generate spike response outputs 12A1, 12AB. The configurations of cells 301A, 301B may be stored and instantiated in cells 302A, 302B, each of which also includes a subsequent stage, i.e., input encoder stage 202A, 202B. Cells 302A, 302B may be trained with input pattern signals 11A, 11B, respectively, which results in outputs 12A1, 12B1 of data converter stages 201A, 201B becoming input data to input encoder stages 202A, 202B. The configurations of cells 302A, 302B may be similarly stored and instantiated in cell 303, which also includes a subsequent stage, i.e., data fusion stage 203. The cell 303 may be trained using both input pattern signals 11A and 11B, which results in the outputs 12A2 and 12B2 of the input encoder stages 202A and 202B becoming input data to the data fusion stage 203. The spatiotemporal spike trains of the outputs 12A2 and 12B2 of the input encoder stages 202A and 202B are then simultaneously incident on one or more neurons 1 of the data fusion stage 203. The output 12C of the data fusion stage 203 is a temporal spike train (if the data fusion stage 203 comprises only one output neuron 1) or a set of spatiotemporal spike trains (if the data fusion stage 203 comprises multiple output neurons 1) generated in response to joint stimulation by multiple spike trains (outputs 12A2 and 12B2 from the input encoder stages 202A, 202B). The resulting fused set 12C of spike trains(s) represents a combination of the feature space of all fused input pattern signals 11A, 11B. The resulting fused spike train encodes all features present in the input pattern signal during the current time window.

[0084]

[0097] For example, when fusing two sets of input spike trains 12A2, 12B2 that contain features e and f of input patterns 11A, 11B, respectively, the resulting fused spike train(s) 12C will contain 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 full feature space of each input pattern signal 11A, 11B onto the feature subspace of the fused output signal 12C.

[0085]

[0098] Their respective input pattern signals M α and M β We encode the features in the spike train P α and P β Consider two input encoders α and β that generate two sets of

[0086]

[0099] A signal M that we may wish to encode. α The set of u known features in is Φ(α)={φ1,φ2, ,φ u}, which means that the signal M α is the feature space for i in {1, ,u}. i is encoded as a set of spatiotemporal spike trains. α ={A1,A2,...,A u} is the feature φ i Output neuron A fires for i The set of sets that contains the exact firing times of neurons for all u known features is B α ={B1,B2,...,B u}, where B α Each B in i is the feature φ i is the set of precise firing times of the output neurons relative to

[0087]

[0100] For data fusion to be lossless, the feature space of the fused spike train(s) Φ(γ) can encompass the individual feature spaces of the different input signals: Φ(γ)=Φ(α)·Φ(β)+Φ(α)+Φ(β) (2)

[0088]

[0101] The spatiotemporal spike trains corresponding to the feature space Φ(γ) can obey rules 1 and 2 described for the input encoding, i.e., they can be sufficiently unique to allow subsequent processing stages to distinguish between the spike-coded features. From this, the generation of spike tuples can use the unique response method described above, where each unique combination of features in the input spike trains results in a unique set of output spatiotemporal spike trains in the fusion block.

[0089]

[0102] FIG. 5B shows a schematic of how multiple temporal spike trains 30A, 30B are fused into a single fused spike train 35 in an embodiment. The temporal spike trains 30A, 30B are each transmitted through synaptic elements 31A, 31B and inbound on a neuron 34. The neuron 34 may have recurrent connections 32 connected to it through one or more synaptic elements 33. The fused spike train 35 represents a combination of the feature spaces of both the first temporal spike train 30A and the second temporal spike train 30B. The representation of these features in the fused spike train 35 is sufficiently unique so that subsequent processing stages can distinguish between the spike-encoded features of the first temporal spike train 30A and the spike-encoded features of the second temporal spike train 30B.

[0090]

[0103] In a signal recognition system that uses data fusion, data sources may be of different importance based on their impact on the final result. Certain features may be primary to the signal recognition process, while other features only play a role in improving the quality of the recognition result. As a result, α and A β A is a set of spike trains that represents the fused feature space of γThe size of can be reduced by reducing the influence of less important features. This can be done in at least three ways.

[0091]

[0104] First, by introducing anti-causal spikes in the output neurons of the data fusion stage 203, associated with less significant features of a particular input spike train. This method may be applicable when none of the input patterns contain the desired features.

[0092]

[0105] Secondly, less desirable features can also be suppressed by introducing weight biases in the input synaptic elements of the data fusion stage 203 that receive the output from each input encoder stage 202A and 202B, corresponding to their respective priorities in the fusion process. As a result, the spike trains from the input encoder stages 202A, 202B can be weighted according to their desired influence on the output of the data fusion stage 203 before they are fused. This facilitates the control of the energy transfer between the input signals and the resulting fused representation. By increasing the priority bias of a signal, the influence of that signal on the fused representation can be increased. Maximizing the bias for a signal causes the fused representation to replicate the input signal. Conversely, minimizing the priority bias weight for a signal can reduce its influence on the fused representation, whereas completely disabling the weight completely eliminates the influence of the signal on the fused result. During fusion, the spatial spike distribution A α and A β is the spatial distribution A fused through the transfer function f realized by the configuration of the data fusion stage 203. γ From this, in a priority-biased embodiment, the merged distribution takes the form: A γ =f((A α ,w α ),(A β ,w β )) and B γ =f((B α ,w α ),(Bβ ,w β )) (3)

[0093]

[0106] In equation (3), w α and w β is the spike train set P for the data fusion stage 203. α and P β is a set of priority bias weights that control the influence of

[0094]

[0107] The third method, arguably the simplest, involves not suppressing or reducing any feature, but instead including its influence in the fused representation. The representation corresponding to this feature can simply be ignored, i.e., assigned a class of no interest, in the subsequent classification stage 204. This approach contributes to increased accuracy as it clearly classifies undesirable feature combinations, thereby allowing more precise identification of desired features.

[0095]

[0108] Next, the application of the above principles in a system for fusion and pattern recognition is described.

[0096]

[0109] FIG. 6 is a simplified block diagram of an embodiment of a system 700 for data fusion and automatic signal recognition based on a spiking neural network 400 interfaced with a microprocessor or hardware logic system 600.

[0097]

[0110] The spiking neuron network 400 includes one or more input encoder stages 4011, . . . , 401 N input encoder stages 4011, . . . , 401 N Each of the input encoder stages 4011, . . . , 401 N are input pattern signals 7111, . . . , 711 N , 7111, . . . , 711 N The spatiotemporal spike train P1, , P NThe input pattern signals 7111, . . . , 711 N The set of input pattern signals 7111, . . . , 711 may be generated, for example, by recording an image using, for example, a CCD array image sensor, by sampling input pattern data to generate a set of signals, each of which represents image data recorded by one or more pixels of the image sensor. N It can be derived by generating a set of

[0098]

[0111] Each spike train P1, ,P N are the input pattern signals 7111, . . . , 711 N In response to the input encoder stages 4011, . . . , 401 N The neuron may comprise a precisely timed sequence of voltage spikes generated by one or more neurons in the neuron.

[0099]

[0112] Multiple neurons receive a single input pattern signal 7111,...,711 N When used to encode a signal, the output from each of the multiple neurons may be a spike train comprising one or more spikes having one or more of the time characteristics described above. N The aggregate spike trains P1, ,P N are the presented input pattern signals 7111, . . . , 711 N , and the encoded spatiotemporal spike responses to

[0100]

[0113] 7A shows how a neuron 1 is interfaced with an input signal 801, such as an output signal from a synaptic element 2. Neuron 1 has a certain configuration that will change the way neuron 1 responds to the input signal 801, where the neuron configuration is a configuration signal C NDepending on the input signal 801 and the neuron configuration, neuron 1 will output a certain spatiotemporal spike train S. In FIG. 7B, the input signal 802 is a combination of synaptic output signals from multiple synaptic elements 2A, 2B, each configured in a certain way, where the configuration of each synaptic element is determined by a configuration signal C. SB , C SB The synaptic elements 2A, 2B can have as input an input signal 803 or a recurrent input from another neuron 804.

[0101]

[0114] Each neuron 1 can have a set of configuration parameters C that control the exact firing behavior of that neuron 1. For example, a neuron can be designed with a firing threshold, which represents a threshold of voltage, energy, or other variable that accumulates in the neuron as a result of receiving an input, 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 can implement an integral function that integrates the input to the neuron to determine an adjustment to the accumulated variable. In addition, a 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 would decay over time in the absence of any input signal to the neuron; (c) an integration time constant, which represents the time over which the 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 the neuron fires; and (e) a refractory period, which represents the period of time required for the accumulated variable in the neuron to rise to the resting value after the neuron fires. These parameters may be predetermined and / or configurable and / or adjustable for each neuron. For example, by adjusting the firing threshold, leakage rate, integration time constant, and refractory period of a neuron to match the energy content of a critical input signal feature, neuron 1 will generate one or more precisely timed spikes when stimulated with an input signal that encompasses that feature.

[0102]

[0115] Referring back to FIG. 6, each input encoder stage 4011, . . . , 401 N may comprise a number of spiking neurons 1. N The inputs to can be analog or digital values ​​(e.g., analog-to-digital converted values ​​of input pattern data). When using neurons with digital integrators, the digital value of each input signal to a neuron is provided as a direct input to the neuron's integrator. The bit width (B s ) and the integrator bit width (B i ) are matched by one or a combination of the following illustrative methods:

[0103]

[0116] The first method is B s >B i When the digital input s -B i ) bits are discarded. Second, the digital input is i >B s When (B i -B s ) padded with trailing "0" bits. Third, the digital input is n It is padded with trailing "0" bits or B n The trailing bits are discarded, where B n can be a configurable parameter that allows the amplitude of the digital input to be shifted within the voltage range of the membrane. This shift can also be achieved when the input signal and the integrator bit width match by using a combination of padding and truncation of the sample values.

[0104]

[0117] When using neuron 1 with an analog integrator, the digital value is B s , 401 can be provided as presynaptic inputs to synaptic element 2, and its post-synaptic output terminals can be provided as input encoder stages 4011, . . . , 401 NThe amplitude shift is performed by multiplying the input signal vector (comprising a string of bits) by B n This can be realized by padding and / or truncating by bits. In another embodiment, the analog value of the input signal can be provided directly as input to an analog integrator. The analog value can be presented to the integrator over a period of time, for example causing the integrator to accumulate charge. By selecting a suitable threshold voltage, the exact firing time of the neuron can be varied inversely proportional to the amplitude of the analog input signal value (i.e. the higher the amplitude, the sooner the neuron fires). Furthermore, by utilizing multiple neurons 1 with appropriately selected sensitivity thresholds, complex multi-level analog-to-spike converters can be realized.

[0105]

[0118] In such an embodiment, the data converter stages 2011, . . . , 201 N , which may include input pattern signals 7111, . . . , 711 N The input encoder stages 4011, 401 N Then, the data conversion stage 2011, 201 N The features identified in the transcoded spike responses from are encoded into a unique representation.

[0106]

[0119] Input pattern signals 7111, . . . , 711 provided to the system 700 N , 4011, . . . , 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 40 NIt may be necessary to ensure that the configuration of results in all known features of interest being encoded into unique spike representations at every amplitude at which they occur, i.e. the intention may be to obtain unique spike characteristics at more than one amplitude in the range of interest.

[0107]

[0120] As a result, the input encoder stages 4011, . . . , 401 N , an arbitrary number of inputs are connected, and input pattern signals 7111, . . . , 711 N Any number of spike train outputs P1, ,P that encode the features present in N where the input signals 7111, . . . , 711 N can be defined, for example, as a single sampled data point of the input pattern signal, or a spatial or temporal or spatio-temporal sequence of sampled data points of the input pattern signal.

[0108]

[0121] The feature or pattern to be detected in the input pattern signal may be, for example, the particular content of a single sampled input data point or a set of sampled input data points, e.g., the amplitude of the input signal at a particular time, the presence of an "on" pixel at a particular location in a binary image frame, the intensity of a particular input signal attribute at a particular time.

[0109]

[0122] The feature or pattern to be detected may also be present in a spatial sequence of content in the series of sampled data points forming the input signal, for example "on" pixels corresponding to the edge of an object in a binary image.

[0110]

[0123] The feature or pattern to be detected may also be in a time sequence of content across multiple samples of a single data point forming the input signal, or in a time sequence of content across multiple spatial sequences of sampled data points, for example a sequence of rising amplitude followed by a sequence of falling amplitude characterizing a triangular wave pattern in the input signal, or the displacement of an edge of an object across multiple frames of a video image forming the input signal corresponding to the movement of the object over time.

[0111]

[0124] Referring back to the embodiment shown in FIG. 6, input encoder stages 4011, . . . , 401 N The spike train outputs P1, ,P N are first optionally weighted according to a priority bias scheme in priority bias module 402, as described above, and then fused in data fusion stage 403 illustrated in Figure 6. The resulting spatio-temporal spike train 712 is then received by classifier stage 404, which classifies spatio-temporal spike train 712. Classifier stage 404 identifies the strongest spatio-temporal patterns present in the transcoded representation, which can be associated with, for example, particular output neurons.

[0112]

[0125] The input of the classifier is, for example, the input signals 7111, . . . , 711 N For example, for a system with only one set of spike trains P1, . . . , P N or input signals 7111, . . . , 711 that are encoded and then fused into a representative set of spike trains 712. N , or the set of spike trains 712 from the data fusion stage 403. In FIG. 6, the classifier stage 404 gets its input 712 from the data fusion stage 403.

[0113]

[0126] The output 713 of the classifier may be a sorted set of spatiotemporal spike trains 713 on output port R, where each spike train 713 may be generated by a single specific output neuron in the classifier 404, or by multiple output neurons. In an embodiment of the classifier that adheres to the unique response principle, spikes may be generated by a separate output neuron for each unique input feature or unique combination of input features in the input pattern signal. In this embodiment, the spike tuple for each pattern of interest consists of a single neuron that spikes at a specific time interval and has at least one spike (i.e., A p (where p is the identity set for pattern p). The output port can then contain at least as many spike trains as there are patterns of interest.

[0114]

[0127] To rephrase this for weight construction purposes discussed above, let A be a general set of output neurons of the classifier that generate output spike trains 713 in response to known input patterns, and let A p Let be the subset of A that contains the neurons that fire for a given known input pattern p, and let A s ={A p |p∈P} for all A p , and for every p in the set of known input patterns p, then for the classifier stage 404 such that: A s Each A in p is the identity set, and for each q in P with p ≠ q, A p ≠A q holds true.

[0115]

[0128] Now, referring again to FIG. 6 , a logic unit 500 with an output conversion stage 501 can convert an output 713 from the classifier stage 404 (e.g. a set of spatiotemporal spike trains 713) into, for example, a digital code 714 that can be stored in, and retrieved from, for example, the dictionary 601.

[0116]

[0129] The output of the classifier stage 404 may thus be a set of spatio-temporal spike trains 713, where one or more particular spike trains 713 exhibit particular properties and thus may be classified as distinct from, for example, the input patterns 7111, . . . , 711 N can be identified as belonging to a particular class or label. Output conversion stage 501 can facilitate this identification process by converting spike train characteristics into digital codes 714 that can be stored in and retrieved from dictionary 601.

[0117]

[0130] The feature information in the spike train may be encoded in several forms, for example a population code that an output neuron 1 of the classifier stage 404 fired during the elapsed time period that the input stimulus was presented, a population time code that an output neuron 1 of the classifier stage 404 first fired within a particular time period after the input stimulus was presented, a population rate code describing how many spikes were generated by an output neuron 1 of the classifier stage 404 during the elapsed time period that the input stimulus was presented, a time code describing the exact time that a particular output neuron 1 of the classifier stage 404 fired, and finally a rate code describing the firing rate of a particular output neuron 1 of the classifier stage 404.

[0118]

[0131] The combination of spatial and temporal spiking information can provide more detail than the output of a purely spatial classifier 404. For example, the input pattern signals 7111, . . . , 711 N Consider that the classification stage 713 comprises two dominant features X and Y, one stronger than the other. The relative strength of the two features can be determined by measuring the firing rates of their respective classification stage outputs 713. Alternatively, the stronger feature can be identified based on the time codes of the corresponding output neurons 1, specifically by determining which output neurons 1 fired earlier.

[0119]

[0132] The output transformation stage 501 can contain circuitry for analyzing the spike activity on the output ports of the classifier, the circuitry being activated based on the type of analysis the user wants to perform on the spiking behavior of the neurons 1 of the array, e.g., spiking population, precise spike timing, firing rate, and combinations thereof, according to, for example, user configuration 717.

[0120]

[0133] In the case of a code type population, the method of conversion consists of having one register per output neuron of the classifier stage 404 to indicate whether the neuron spiked during the current time interval following application of the input pattern signal. In the case of a code type population, the method of conversion consists of having one register per output neuron of the classifier stage 404 to indicate which neuron spiked first in the current time interval following application of the input pattern signal. After the earliest spike event is registered, the other registers are disabled. In the case of a code type population rate, the method of conversion consists of having a counter per output neuron of the classifier stage 404 to count the number of spikes generated by the output neuron during the current time interval following application of the input pattern signal. A counter having a non-zero spike count value also indicates a population code. In the case of a code type time, the method of conversion consists of having a time-to-digital converter per output neuron of the classifier stage 404 to accurately measure the time that has elapsed from application of the input pattern signal until the output neuron spikes. Finally, in the case of code type rates, the method of conversion consists of having a counter for each output neuron of the classifier stage 404 to count the number of spikes generated by the output neuron during the current time interval following application of the input pattern signal.

[0121]

[0134] The input to the output conversion stage 501 may be a vector 713 of spikes from all output neurons 1 of the classifier stage 404, and the output 714 from the circuit 501 may be a set of digital values ​​corresponding to the type of output code selected by the user. The input 713 to the output conversion stage 501 may be presented for the duration of the time window in which the signal samples are valid. The output 714 from the output conversion stage 501 may be valid at the end of the time window and may be reset before the next time window begins. The classification output 713 is a vector of spikes from the input pattern signal(s) 7111,...,711 N The resulting pattern can be converted into a single hash code or set of hash codes that can be used as a unique fingerprint of the pattern in the pattern.

[0122]

[0135] Next, referring again to FIG. 6, a microprocessor or logic circuit 600 having a hash table or dictionary lookup function 601 obtains the digital code 714, after which a hash table or dictionary lookup operation can be performed to determine a user space identifier corresponding to the recognized feature.

[0123]

[0136] This operation allows the output of the classifier stage 404 to be decoded into a user space, i.e., a user-defined identifier for the input pattern. During the configuration phase, the pattern recognizer 400 may be trained with sample features and patterns and the generated hash codes may be recorded. The sample patterns may be assigned user-defined identifiers that may be stored, for example, along with the generated hash codes in a hash table or dictionary 601. At run-time, when the recognizer 400 is used to recognize features in a signal, the generated hash codes are used in a hash table or dictionary lookup operation to determine the user space identifier that corresponds to the recognized feature.

[0124]

[0137] 6 may, for example, reset the contents of the data fusion stage 403, the classifier stage 404, and the output transformation stage 501 at the beginning of a new sampling window. This action removes residual spikes from the network 400 and allows the next sampling window to be evaluated without the influence of the previous window.

[0125]

[0138] The sampling window can be implemented as an input buffer with a depth equal to the window size. Alternatively, a configurable virtual sampling window can be realized through the use of a periodic reset signal that stops spiking behavior in the network and resets the output stage. The sampling window in such a method can have the same duration as the reset signal. When configuring the sampling window, the duration should be long enough to completely accommodate the longest known feature, but small enough so that the feature content of each window is minimized, thus increasing the accuracy of feature recognition. The width of the sampling window can affect the granularity of features that the system 700 can detect. In general, the sampling window duration should be greater than the time scales at which features are present in the input signal, which means that the sampling rate is equal to or greater than the Nyquist rate. Features at different time scales can be sampled by multiple input encoder stages 4011,...,401. N , or a single input encoder stage 4011, . . . , 401 N The length of the sampling window can also have an effect on the width of the counter used in the output conversion stage 501.

[0126]

[0139] 8 shows an example of the generation of a reset pulse. Clock information 904 changes the value of an up-counter 901. The value of the up-counter 901, together with information about a sampling period 905, is submitted to a comparator 902. The comparator 902 checks whether the value of the up-counter 901 is still within the sampling period 905. If it is no longer the case, the comparator 902 sends a signal to a pulse generator 903, which sends a reset signal 906 to both the up-counter 901 and the respective module in the system 700 as the signal 716 in FIG. 6.

[0127]

[0140] Similarly, for the reset signal, the period between two successive reset pulses may, for example, follow the formula: t reset ≧max(t feature )+max(t fallthrough )+t output +max(t lookup ) (4)

[0128]

[0141] In equation (4), t feature is the duration of the feature, and t fallthrough is the fall-through latency for a spike train to propagate from the input encoder stage to the output of the classifier stage, and t output is the latency of the output transformation stage to generate a hash or set of hashes, and t lookup is the worst case latency for a hash table / dictionary lookup operation.

[0129]

[0142] The duration of the reset pulse must be sufficient to trigger the reset circuits of the appropriate components. During reset, the state of all neurons 1 in the network 400 is reset, i.e., for example, membrane voltages are returned to their quiescent state, interface signals are reset to their initialization state (i.e., the state they had after the system was programmed), synaptic readout circuits are reset (weights are held), and in-flight synaptic updates are abandoned. In the output stage 500, counters and registers that track population and firing rates in neurons 1 can also be reset. The reset is performed by the input encoder stages 4011,...,401 N , 7111, . . . , 711 N This ensures continuous encoding of

[0130]

[0143] 9 illustrates a method 1000 for performing fusion of multiple different input pattern signals into a single representative set of spike trains and then performing automatic signal recognition on the spike trains to detect and identify patterns / features. Method 1000 begins at start point 1000S.

[0131]

[0144] In a first step 1001, new signal samples are input to one or more input encoder stages 4011, . . . , 401 N The output of one or more output encoders is a spatiotemporal spike train P1, ,P N It is.

[0132]

[0145] In a second step 1002, the spike trains P1, . . . , P N are weighted according to their importance in the priority-biased fusion. The output of the priority-bias module 402 is the weighted distinct spatiotemporal spike trains.

[0133]

[0146] In a third step 1003, the different spatio-temporal spike trains are combined into a representative set of spike trains 712 encompassing the individual feature subspaces by a data fusion stage 403. The output of the data fusion stage is a fused spatio-temporal spike train 712.

[0134]

[0147] In a fourth step 1004, the classifier stage 404 classifies the spatial, temporal and rate features in the fused spike trains 712. The temporal spike trains are thus categorized.

[0135]

[0148] In a fifth step 1005 , the output transformation stage 501 transforms the categorized spike trains 713 into classification codes 714 .

[0136]

[0149] In a sixth step 1006, the method may wait until a new sampling window begins.

[0137]

[0150] In a seventh step, a lookup in the hash table or dictionary 601 and output of the pattern identifier 700 corresponding to the classification code 714 is performed.

[0138]

[0151] Finally, in an eighth step 1008, the data fusion stage 403, the classifier stage 404 and the output transformation stage 501 are reset.

[0139]

[0152] The method can then be repeated starting again from the first step 1001.

[0140]

[0153] In general, the systems and methods described herein use a network of spiking neurons 1 as a means to generate unique spatiotemporal spike trains in response to unique stimuli, where the uniqueness of the response is controllable through the operating parameters of the spiking neurons 1 and the interconnecting 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 several different networks, the system is able to realize several functions simultaneously.

[0141]

[0154] For example, a network may be implemented to transform multiple distinct sampled input signals into a representative set of spatiotemporal spike trains that completely encode the feature space of the input signals.

[0142]

[0155] In a second configuration, the invention may be implemented to convert multiple distinct sampled input signals into a single representative set of spatiotemporal spike trains having a feature space that is a superset of the individual feature spaces of all the input signals.

[0143]

[0156] In a third configuration, the present invention may achieve classification of spatiotemporal spike trains into one or more output classes through appropriate configuration of network uniqueness.

[0144]

[0157] The configurability of the neurons, synaptic elements, and interconnection network of the present invention facilitates the simultaneous realization of different combinations of all three configurations on separate groups of neurons in the same array. The synaptic elements act as a configurable switch matrix.

[0145]

[0158] A spiking neural network 1100 according to an embodiment is shown in FIG. 10, in which neurons N0,...,N7 are arranged in an array of neurons 1101 interconnected through a configurable switch matrix consisting of an array 1102 of configurable synaptic elements 2 via configurable switches 1103.

[0146]

[0159] An input signal 1104 may be sent to neurons N0,...,N7 via the array of synaptic elements 1102 according to 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 switches 1103 according to the weights of the synaptic elements 2 and the connection topology of the configurable switches 1103. Positive weights at the synaptic elements 2 connecting the input signal 1104 to neurons N0,...,N7 or interconnecting pairs of neurons N0,...,N7 result in excitation of the post-synaptic neurons N0,...,N7. Negative weights at these connecting synaptic elements 2 result in inhibition of the post-synaptic neurons N0,...,N7, and zero weights at these connecting synaptic elements 2 result in no connection to the post-synaptic neurons N0,...,N7.

[0147]

[0160] The configuration parameters, interconnection topology, and output stage configuration parameters for neurons N0,...,N7 and synaptic elements 2 can be loaded from the configuration memory each time spiking neural network 1100 is set to the initialized 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 associated loaded configuration parameters, system parameters to be initialized according to the associated loaded configuration parameters, and an output dictionary or hash table to be populated with entries stored in the configuration memory.

[0148]

[0161] An input signal 1104 is submitted to a subset of synaptic elements 2 and the network 1100 generates a particular output 1105 that can be sent to an output decoder.

[0149]

[0162] The spiking neural network 1100 may be implemented as shown in FIG. 11, which shows an example of a configured synapse array 1202 illustrating an example mapping of the described neural network stages onto neurons N0,...,N7 and synaptic element 2.

[0150]

[0163] The input encoder stages 1211A, 1211B, data fusion stage 1212, and classifier stage 1213 may be implemented as illustrated in spiking neural network 1200. The output transformation may be performed using digital logic circuitry, and the hash table / dictionary lookup operations may in one embodiment be implemented as software code running on a microprocessor associated with the spiking neural network, and in another embodiment may be implemented using digital logic circuitry.

[0151]

[0164] The underlying principle of each of the network stages 1211A, 1211B, 1212, 1213 is the same, with each stage 1211A, 1211B, 1212, 1213 generating a unique response according to its configuration parameters when presented with an input stimulus. The objective of the input encoder stages 1211A, 1211B may 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 may 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 may be to generate a unique classification response for each unique feature or combination of features.

[0152]

[0165] 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 the functions of the embodiments (including the methods described herein) and may be embodied on various computer-readable storage media. The computer-readable storage medium may be a non-transitory storage medium. Exemplary computer-readable storage media include, but are not limited to, (i) a non-writable storage medium in which information may be permanently stored (e.g., a read-only memory device in a computer, such as a CD-ROM disk readable by a CD-ROM drive, a ROM chip, or any type of solid-state non-volatile semiconductor memory), and (ii) a writable storage medium in which changeable information may be stored, such as a hard disk drive or any type of solid-state random access semiconductor memory, flash memory.

[0153]

[0166] Two or more of the above embodiments may be combined in any suitable manner.

Claims

1. A spiking neural network for classifying an input pattern signal, 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 weighting to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weighting applied by each synaptic element; 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 to generate a spatiotemporal 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 subset of the spiking neurons connected to receive synaptic output signals from a first subset of the synaptic elements; the first sub-network is adapted to generate sub-network output pattern signals from the first subset of spiking neurons in response to sub-network input pattern signals applied to the first subset of synaptic elements; the weights of the first subset of synaptic elements are constructed by training the subnetwork on the training set of subnetwork input pattern signals such that the subnetwork output pattern signal is different for each unique subnetwork input pattern signal in the training set.

2. 2. The spiking neural network of claim 1, wherein a distance between each different sub-network output pattern signal is greater than a predetermined threshold, said distance being measured by an output pattern metric.

3. 3. A spiking neural network as claimed in claim 1 or 2, wherein the spiking neurons and synaptic elements are configured such that a respective distance, as measured by an output pattern metric, between two output pattern signals of the subnetwork generated in response to two respective different subnetwork input pattern signals is maximized for all subnetwork input pattern signals in the training set.

4. 4. The spiking neural network of claim 3, wherein each respective distance is maximized until the output pattern signal meets at least a first minimum sensitivity threshold required to distinguish between features of the input pattern signals.

5. 5. A spiking neural network according to claim 1, wherein each of the spiking neurons is configurable to tailor its response to the received one or more synaptic output signals.

6. 6. A spiking neural network according to claim 1, wherein spikes are generated by the spiking neurons at one or more firing times, and the subset of synaptic elements and / or the subset of neurons are configured such that the union of two sets of firing times of the subset of neurons firing for two different sub-network input pattern signals is minimized for all sub-network input pattern signals of the training set.

7. 7. The spiking neural network of claim 6, wherein each union is minimized until the output pattern signal meets at least a second minimum sensitivity threshold required to distinguish between features of the input pattern signals.

8. the network comprises a second sub-network comprising a second subset of the spiking neurons connected to receive synaptic outputs from a second subset of the synaptic elements; the second sub-network is adapted to receive second sub-network input pattern signals applied to the second subset of synaptic elements and to generate corresponding second sub-network output pattern signals from the second subset of neurons; a configuration of the second subset of synaptic elements is adjusted such that the second sub-network output pattern signal differs for each unique feature in the second sub-network input pattern signal; the network comprises a third sub-network comprising a third subset of the spiking neurons connected to receive synaptic outputs from a third subset of the synaptic elements; the first and second sub-network output pattern signals are input pattern signals of the third sub-network; 8. A spiking neural network as claimed in any one of claims 1 to 7, wherein a configuration of the third subset of synaptic elements is tuned such that the third sub-network output pattern signal differs for each unique feature in the input pattern signals from both the first and second sub-networks and for each unique combination thereof, such that the features present in the input pattern signals from both the first and second sub-networks are encoded by the third sub-network.

9. 7. The spiking neural network of claim 6, wherein the synaptic elements of the third sub-network are configured such that the input pattern signals from the first and second sub-networks are weighted according to the importance of a particular input pattern.

10. the network comprises a plurality of sub-networks of synaptic elements and spiking neurons, for which the sub-network output pattern signals differ for each unique feature in the sub-network input pattern signals; The network may be divided into layers having a particular sequential order in the network; 10. A spiking neural network as claimed in any one of claims 1 to 9, wherein the sub-networks are instantiated in the particular sequential order of the layers to which each respective sub-network belongs.

11. 11. A spiking neural network as claimed in any preceding claim, wherein the synaptic elements are arranged as a configurable switch matrix.

12. Configuration information of the neurons, synaptic elements, interconnection topology of the neurons and synaptic elements, and / or output configuration of the neural network are stored in a configuration memory; 12. A spiking neural network as claimed in any preceding claim, wherein the configuration information is loaded from the configuration memory when the neural network is brought into an initialized state.

13. a set of neurons is arranged in one or more template networks of neurons, the neurons of a particular template network of neurons forming a sub-network of the neural network; the sub-network output pattern signals differ for each unique feature in the sub-network input pattern signals; 13. A spiking neural network as claimed in any one of claims 1 to 12, wherein each template network in the neural network is instantiated in a pre-trained manner.

14. 14. A spiking neural network according to any one of claims 1 to 13, wherein the neural network is configured to take as input one or more sampled input signals and convert the input signals into a representative set of neural network input pattern signals.

15. 15. A spiking neural network according to any one of claims 1 to 14, wherein output pattern signals of the neural network are classified into one or more output classes.

16. 1. A method for classifying an input pattern signal 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, comprising: each of the synaptic elements is adapted to receive a synaptic input signal and apply a weighting to the synaptic input signal to generate a synaptic output signal, the synaptic elements being configurable to adjust the weighting applied by each synaptic element; 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 to generate a spatiotemporal spike train output signal in response to the received one or more synaptic output signals; The method comprises: defining a first sub-network of the spiking neural network, the first sub-network comprising a first subset of the spiking neurons connected to receive synaptic output signals from a first subset of the synaptic elements; configuring the weights of the first subset of synaptic elements by training the subnetwork on a training set of subnetwork input pattern signals such that the subnetwork output pattern signal is different for each unique subnetwork input pattern signal in the training set; applying a subnetwork input pattern signal to a first subnetwork of the spiking neural network, the first subnetwork comprising a first subset of the spiking neurons connected to receive synaptic output signals from a first subset of the synaptic elements; receiving a subnetwork output pattern signal generated by the first subset of spiking neurons in response to the subnetwork input pattern signal, wherein the output pattern signal identifies one or more features of the input pattern signal; A method comprising:

17. 1. A method for classification of a predetermined feature in an input signal, said method comprising: Constructing and training a neural network according to claims 14 and 15; submitting at least one sampled input signal to the neural network; classifying said features in at least one sampled input signal into one or more output classes of said neural network; How to prepare.

18. 1. A template library comprising information regarding one or more template networks or configurations of spiking neurons for use as sub-networks of a spiking neural network, each template network comprises a set of said spiking neurons connected to receive synaptic outputs from said set of said synaptic elements; each template network adapted to receive template network input pattern signals applied to said set of synaptic elements and to generate corresponding template network output pattern signals from said set of neurons; a configuration of the set of synaptic elements is conditioned by training the template network on the training set of template network input pattern signals such that the template network output pattern signal differs for each unique template network input pattern signal of the training set; The training set is used to train the template network to perform a particular task; A template library whereby 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 whereby the sub-network of the spiking neural network can be instantiated based on the information about the configuration of the template network in a pre-trained manner to perform the particular task.

19. 1. A method of constructing a spiking neural network, the method comprising: Obtaining information about one or more template networks or a configuration of one or more template networks from a template library according to claim 17; instantiating the one or more template networks as sub-networks of the spiking neural network such that the sub-networks of the spiking neural network are capable of performing the particular tasks that the template networks were pre-trained to perform; A method comprising:

Citation Information

Patent Citations

  • Digital electronic circuit and system implementing a spiking neural network for performing unsupervised detection of patterns

    EP3324344A1

  • Intelligent Autonomous Feature Extraction System Using Two Hardware Spiking Neutral Networks with Spike Timing Dependent Plasticity

    US20170236051A1

  • Apparatus and methods for encoding of sensory data using artificial spiking neurons

    US9047568B1