Learning and Recall in Spiking Neural Networks

By dynamically configuring synaptic weights and neuron components in spike neural networks using machine learning models to store data signals according to correlation categories, the problem of inefficiency in storage and recall in spike neural networks is solved, and efficient and reliable data signal storage and recall are achieved.

CN114175054BActive Publication Date: 2025-07-25INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080054418.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-08-01
Filing Date
2020-07-23
Publication Date
2025-07-25
Estimated Expiration
2040-07-23

AI Technical Summary

Technical Problem

The existing spike neural networks have problems of inefficiency and insufficient reliability in storing and recalling data signals, making it difficult to effectively simulate the information processing mechanism in the brain.

Method used

By inputting metadata of data signals into machine learning models, synaptic weights and neuron components of spike neural networks are dynamically configured, data signals are stored according to correlation categories, and output signals of machine learning models are used to assign neurons to improve storage reliability and efficiency.

Benefits of technology

It realizes efficient and reliable storage and recall of data signals in spike neural networks, improves the fidelity and storage efficiency of data signals, and dynamically adapts to the network to adapt to the correlation of all data signals.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114175054B_ABST
    Figure CN114175054B_ABST
Patent Text Reader

Abstract

Methods and apparatus are provided for storing data signals in a spiking neural network. For each data signal, such a method includes providing metadata associated with the data signal to a machine learning model that is trained to generate an output signal based on the input metadata for the data signal, the output signal indicating a relevance category for the data signal. The method includes: iteratively providing the data signal to a subassembly of neurons interconnected via synaptic weights in the spiking neural network; and training the synaptic weights to store the data signal in the subassembly. The method further includes assigning neurons of the network to the subassembly based on the output signal of the model such that larger subassemblies store more relevant data signals. The data signal stored in the subassembly can subsequently be recalled by activating the neurons of the subassembly.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to learning and recall in spiking neural networks. Methods for storing data signals in spiking neural networks, as well as apparatuses and computer program products for implementing such methods, are provided. The stored data signals can subsequently be recalled by activating the neurons of the network. Background Art

[0002] A spiking neural network (SNN) is a neuromorphic processing system inspired by the biological architecture of the nervous system. In the human brain, information is processed by a complex network of neurons interconnected by synapses. A biological neuron can integrate the input signals it receives. The neuron "membrane potential", which represents the stored neuron state, is gradually modified by the arrival of neuron input signals. When the membrane potential crosses a specific voltage threshold, the neuron will "fire", generating an output signal called an "action potential" or "spike", and then returning to its initial state. These spikes are transmitted via synapses to other neurons, and these synapses change their connection strength ("plasticity" or "synaptic weight") due to neuron activity.

[0003] The basic components of an SNN include functions that simulate neurons and synapses, where the neurons are interconnected via synapses that relay spikes between neurons according to stored synaptic weights. Information processing in an SNN relies on all-or-none spike-based communication between networks of spiking neurons.

[0004] Experimental evidence from different brain regions shows that precise spike timing can be learned and reliably reproduced in experiments, providing a mechanism for storing and recalling information. In neuromorphic systems, the fundamental challenge of autonomously reproducing spatio-temporal spike patterns representing data signals has only recently been approached by models of spiking neural networks (see, for example: "Diverse Synaptic Plasticity Mechanisms Orchestrated to Form and Retrieve Memories", Zenke et al., Nature Communications, 2015; and "Matching Recall and Storage in Sequence Learning with Spiking neural Networks", Brea et al., Journal of Neuroscience, 2013).

[0005] Improved techniques for storing data signals in SNNs would be highly desirable. Summary of the Invention

[0006] According to one aspect of the present invention, a method for storing data signals in a spiking neural network is provided. For each data signal, the method includes supplying metadata associated with the data signal to a machine learning model that is trained to generate an output signal indicating a relevance category of the data signal based on input metadata for the data signal. The method includes: iteratively supplying the data signal to a neuron sub-component of the spiking neural network interconnected via synaptic weights, and training the synaptic weights to store the data signal in the sub-component. The method further includes assigning neurons of the network to sub-components according to the output signal of the model such that larger sub-components store more relevant data signals.

[0007] The method embodying the present invention implements "relevance-aware" learning in an SNN. Based on the metadata of the data signal, the relevance of the data signal to be stored is determined via a classification process implemented by a machine learning model. The SNN is dynamically configured to store each data signal based on the output signal and thus based on the relevance category from the model, such that data signals classified as more relevant are stored in larger sub-components than less relevant signals. This provides an elegant and efficient technique for emulating brain-like features, whereby learning and recall functions can rely on associations to improve reliability. In particular, it is a common experience that learning and recall of relevant / important information is more reliable than that of irrelevant information. By dynamically configuring sub-components based on the relevance category derived from the metadata, the method embodying the present invention can improve the fidelity with which data is stored and subsequently recalled in the SNN, thus providing efficient SNN-based data storage.

[0008] Based on the model output signal, neurons can be assigned from a free neuron pool of the SNN that is not assigned to any other sub-component to a sub-component. This allows a desired number of neurons to be assigned to a sub-component based on the relevance category of the data signal to be stored. In a preferred embodiment, neurons can also be assigned to a sub-component from another sub-component storing a previous data signal, depending on: (1) the model output signal for the current data signal to be stored; and (2) the model output signal generated from the metadata for the previous data signal. This is implemented such that components storing more relevant data signals retain a larger number of neurons than components storing less relevant signals. In these embodiments, the SNN is reconfigurable over time. As new data signals are stored, the evolving network can adapt to appropriately accommodate all data signals according to their relevance.

[0009] In a particularly efficient embodiment, the machine learning model includes an additional SNN that implements a classification process. The data provided to the SNN can be encoded in the occurrence (e.g., rate or timing) of spikes in the spike signals input to the network. The preferred embodiment uses spike frequency encoding for the metadata provided to the additional SNN, whereby the data is encoded at the frequency (rate) of the spikes in the spike signal, and the relevance class is preferably indicated by the spike frequency in the output signal of the additional SNN.

[0010] The data signal stored by the sub-component can be recalled by activating the neurons of the sub-component, whereby the sub-component outputs the stored data signal encoded in the spike signal output by the component. In the preferred embodiment, the metadata includes a unique identifier of the data signal. The method then includes storing the unique identifier of the data signal stored by each sub-component in a memory associated with the SNN. This allows for convenient recall of the stored data signal in response to receiving the identifier subsequently from the metadata input.

[0011] Another aspect of the present invention provides an apparatus for storing data signals. The apparatus includes: a spiking neural network for receiving the data signal to be stored; a classifier that implements a machine learning model for generating an output signal indicating the relevance class of the data signal based on input metadata related to the data signal; and control logic adapted to implement the method as described above.

[0012] An additional aspect of the present invention provides a computer program product comprising a computer-readable storage medium embodying program instructions executable by a computing device to cause the computing device to perform the method for storing data signals in an SNN described above.

[0013] Embodiments of the present invention will be described in more detail below by way of example and not limitation with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings, in which:

[0015] Figure 1 is a schematic diagram of an apparatus for storing data signals according to an embodiment of the present invention;

[0016] Figure 2 represents Figure 1 the steps of the method implemented by the

[0017] Figure 3 shows an embodiment of the classifier of the apparatus;

[0018] Figure 4Shows another embodiment of the classifier;

[0019] Figure 5 Shows a preferred embodiment of a device for storing data signals;

[0020] Figure 6 Shows Figure 5 the stored SNN of the device;

[0021] Figure 7 Represents steps of a method implemented by Figure 5 the device; and

[0022] Figure 8 Represents steps of a method for recalling data signals stored by a device implementing the present invention. Detailed implementation mode

[0023] The present invention may be a system, a method, and / or a computer program product. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute aspects of the present invention.

[0024] A computer-readable storage medium may be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse through an optical fiber cable), or an electrical signal transmitted through a wire.

[0025] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device or to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the corresponding computing / processing device.

[0026] The computer-readable program instructions for carrying out operations of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and conventional procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server. In the latter case, the remote computer may be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or may be connected to an external computer (e.g., through the Internet using an Internet service provider). In some embodiments, an electronic circuit, including, for example, a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA), can execute the computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit, so as to carry out aspects of the present invention.

[0027] Aspects of the present invention will be described hereinafter with reference to the flowchart and / or block diagram of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that each block of the flowchart and / or block diagram, and the combinations of blocks in the flowchart and / or block diagram, can be implemented by computer-readable program instructions.

[0028] These computer-readable program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing apparatus create means for implementing the functions / acts specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer-readable storage medium storing the instructions comprises an article of manufacture including instructions embodying aspects of implementing the functions / acts specified in one or more boxes of the flowchart and / or block diagram.

[0029] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, such that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / acts specified in one or more boxes of the flowchart and / or block diagram.

[0030] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

[0031] Figure 1 A block diagram of an apparatus for storing data signals according to an embodiment of the present invention is shown. Apparatus 1 includes an SNN 2 for receiving a data signal to be stored, a classifier 3 for classifying the data signal, and control logic (designated as controller 4) for controlling the operation of the apparatus. Controller 4 receives the data signal to be stored and associated metadata related to the data signal, and controls the operation of SNN 2 for storage and recall of the signal, as detailed below.

[0032] SNN 2 includes a component of spiking neurons interconnected via synaptic weights, as Figure 1is schematically shown in the enlarged view in. This shows a pair of neurons interconnected via a synapse s, namely n j and n i , and the synapse s relays a signal from n ij to n j according to the synaptic weight w i stored therein. The presynaptic neuron n j accumulates input spike signals from its connected neurons in the component. When the neuron membrane potential crosses the firing threshold, the neuron generates an output spike and the membrane potential returns to the resting potential. The spike from the presynaptic neuron n j is received by the synapse s, which relays a postsynaptic signal to the postsynaptic neuron n ij depending on the synaptic weight w i . In particular, after the spike is fired by the presynaptic neuron n j , the synaptic connection between n j and n i causes an instantaneous change in the membrane potential of the postsynaptic neuron n i . The amplitude of this change reflects the synaptic weight w ij . In the operation of SNN 2, the synaptic weight w ij is gradually modified by neuron activity. This "synaptic plasticity" can be implemented, for example, via the STDP (spike-timing-dependent plasticity) rule based on the timing of presynaptic and / or postsynaptic neuron spikes. The weight w ij can also be modified during a training operation for storing data signals in SNN 2, as detailed below. During SNN operation, the synaptic weight can be modified by a control signal generated by the control logic of the device (e.g., controller 4).

[0033] Various implementations for neurons and synapses are known in the art, including circuits that utilize the memristive properties of nanodevices, e.g., resistive memory cells such as phase change memory (PCM) cells, for storing neuron membrane potentials or synaptic weights. Dense crossbar arrays of such memristive devices provide large-scale parallelism as well as area- and energy-efficient SNNs. SNN architectures can be efficiently implemented in integrated circuits, as described, for example, in "A Million Spiking-Neuron Integrated Circuit with a Scalable Communication Network and Interface" by Merolla et al. in 2014. Memristive devices based on resistive RAM (RRAM or ReRAM) cells, including conductive-bridge RRAM cells, oxide or metal-oxide RRAM cells, and carbon RRAM cells, can also be used for neuron / synapse implementations. In general, neurons and synapses can be implemented in any desired way, and specific functions can be provided by hardware or software or a combination thereof. Synaptic plasticity can be implemented via various STDP schemes based on the (absolute or relative) timing of at least one of the input neuron and output neuron spikes. Plasticity can also depend on other variables / events in the SNN operation, such as neuron membrane potential and the output of the network optimization process during training, as explained below.

[0034] The data signals input to device 1 can include sensing input signals, such as, image signals, video signals, and audio signals, e.g., voice signals. The data signals can include data independent of time, such as a single image or other static pattern or data set, e.g., bytes of a data file or other data set, or time data sequences, such as video / audio data representing the time evolution of a set of data points. In general, the input data signals can represent any type of data and can represent a static or spatio-temporal collection of data points.

[0035] The data signals to be stored in device 1 have associated metadata for classifying these data signals. The metadata includes a predefined set of data items related to the associated data signals and can be conveniently expressed as a set of key-value pairs, where the key identifies a specific attribute type and the value indicates the corresponding attribute value. The metadata can include various data items that describe, define, identify, or otherwise relate to the content and / or context of the data signals. The metadata can include, for example, data extracted or derived from the data signals themselves by extracting predefined fields of the data set and / or data items defined separately for the data signals, e.g., user-defined data items.

[0036] Classifier 3 is adapted to classify a data signal based on input metadata for the data signal provided by controller 4. Specifically, classifier 3 implements a machine learning (ML) model that is (at least partially) trained to generate an output signal based on the input metadata for the data signal, the output signal indicating a relevance category for the data signal. A variety of ML models can be used here for classification, including logistic regression, support vector machines, graph-based classification models, tree ensembles (such as random forest models), and various neural network models. Such models can be trained to classify input data via an iterative training process, where the training input data is iteratively provided to the model and the model parameters are optimized for subsequent classification of new (unseen) input data. In some embodiments, classifier 3 can be integrated within the functionality of controller 4. In the following preferred embodiment, classifier 3 includes an additional SNN.

[0037] Controller 4 includes the functionality to encode an input data signal into spike signals for providing to the neurons of SNN 2. For example, a video data signal representing a sequence of image frames can be encoded into a spatio-temporal spike signal pattern where spike signals correspond to pixels. Pixel values (e.g., grayscale values) can be encoded in the occurrence (e.g., rate or timing) of spikes in the spike signals provided to the corresponding neurons of SNN 2 according to a predetermined mapping of pixels to neurons. Data bits, bytes, etc. in any input data signal can be similarly encoded in spike signals and mapped to the neurons of SNN 2. In some embodiments, controller 4 can use spike frequency encoding, whereby data values are encoded in the rate of occurrence of spikes in the spike signals provided to the SNN. In other embodiments, controller 4 can use spike time encoding, whereby data values are encoded at the time of occurrence of spikes in the spike signals provided to the SNN. Controller 4 also includes the functionality to control the operation of SNN 2 for storing data signals and for subsequently recalling the stored data signals, as described in detail below. Appropriate logical implementations of controller 4 will be apparent to those skilled in the art based on the description of the operations herein. The controller can include, for example, a microcontroller or a system-on-chip, and the controller functionality can be (fully or partially) integrated within the control circuitry of SNN 2. Generally, the functionality of controller 4 can be provided by logic implemented in hardware or software or a combination thereof. Such logic can be described in the context of computer system executable instructions (such as program modules) executed by a (general-purpose or special-purpose) computing device. Generally, program modules can include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types.

[0038] Figure 2Denotes the steps performed by apparatus 1 to store the input data signal. In step 10, controller 4 receives the data signal and the associated metadata. In step 11, controller 4 provides the metadata to classifier 3 to obtain a model output signal that indicates the relevance category of the data signal. In step 12, controller 4 controls the configuration in SNN 2 of the neuron sub-component for storing the data signal. In this step, neurons are assigned to the sub-component according to the classifier output. A higher relevance category indicating a more relevant data signal results in more neurons being assigned to the sub-component than a lower relevance category indicating a less relevant data signal. Neurons are assigned to the sub-component by activating the synapses of the interconnected neurons, thus allowing the synaptic weights to be modified during subsequent training processes. Thus, controller 4 controls SNN 2 to configure a sub-component of the required size and activates the synaptic weights via control signals to the synapses. Controller 4 then initiates a training process to train the synaptic weights so as to store the input data signal in the sub-component. As indicated at step 13, the input data signal (encoded in the spike signal as described above) is iteratively provided to the neurons of the newly configured sub-component. In response to the input signal, the interconnected neurons of the sub-component generate spike signals that modify the synaptic weights as described above. The synaptic weights are also progressively modified via an iterative optimization process. For example, the synaptic weights can be incrementally updated after a set of iterations in which the input signal is repeatedly provided to the sub-component. As indicated by decision step 14, controller 4 periodically checks whether a predefined convergence condition corresponding to the optimized synaptic weights has been reached. If not (the "no" at step 14), the operation returns to step 13 and the training continues for another set of iterations. The training thus continues until convergence is detected (the "yes" at step 14), and then the operation terminates. The representation of the input data signal is then effectively stored in the trained synaptic weights of the sub-component.

[0039] In Figure 2In step 12, neurons can be assigned to the sub-component from the free neuron pool of the SNN that is not assigned to any other sub-component. Neurons can be connected in an all-to-all manner in the SNN, and depending on the correlation category output from classifier 3, multiple neurons can be assigned from the pool, and synapses are activated to configure the component. In some embodiments, neurons can be interconnected via all-to-all connections only within a predefined block for component formation, and have fewer all-to-all connections between blocks. The component can be configured by activating synaptic connections between all neurons or a subset of neurons in one or more blocks based on the correlation category output, where any "unused" neurons in the block are assigned to the free neuron pool for later components. As detailed below, the preferred embodiment can also assign neurons of an existing sub-component to a new sub-component. Generally, the connectivity in SNN 2 can be adjusted to suit a given application, and the sub-components can be configured in any desired manner such that the number of neurons in the sub-component increases with the higher correlation of the data signal to be stored.

[0040] The above method achieves correlation-aware learning of storing data signals in SNN 2. Neurons are dynamically assigned to sub-components such that more correlated data signals are stored by larger sub-components, thereby improving the fidelity with which these signals are stored and subsequently recalled by SNN 2. Controller 4 can recall the stored data signal by activating the neurons of the appropriate sub-component, whereby the sub-component outputs the stored data signal, as described in more detail below.

[0041] In the preferred embodiment, classifier 3 includes another SNN. Figure 3 An example of an SNN-based classifier is shown. As schematically shown herein, SNN 20 includes a set of input neurons interconnected with a set of output neurons via synaptic connections. These synaptic connections, represented by dashed lines in the figure, are excitatory connections, where the synaptic output signal enhances the postsynaptic output neuron (increases its membrane potential). The output neurons are interconnected via inhibitory synaptic connections indicated by solid lines in the figure. In these connections, the synaptic output signal inhibits the postsynaptic output neuron (lowers its membrane potential). The input metadata encoded in the spike signals as described above is provided to the input neurons of SNN 20. Spike signals encoding metadata items (e.g., values represented as key-value pairs) are mapped to the input neurons (in this example, via a one-to-one mapping of values to input neurons). The spike signals generated by the input neurons are relayed to the output neurons via excitatory synapses, and synaptic plasticity is implemented via a learning rule (e.g., the STDP rule) to modify the synaptic weights based on neuron activity. The output neurons generate output spike signals based on the accumulated input from the input neurons.

[0042] During the training of the SNN 20, the input metadata includes a label that indicates a user-defined classification for the data signal associated with the metadata, and this classification corresponds to a relevance category. This label is used for supervised teaching in the training phase. Specifically, this label is used to generate a teaching signal that modulates the inhibitory weights of the output neuron connections so that a particular output neuron (or group of output neurons) is more active for a particular category. In this example, one output neuron is assigned to each category, and classification is performed via a "winner takes all" method, whereby the output neuron that fires the most indicates the category associated with the input metadata. The SNN is trained using a training dataset, examples of the metadata are continuously provided to the SNN from this training dataset, and the synaptic weights are progressively modified based on the associated category labels until the desired classification accuracy is achieved. After training, new (unseen) metadata can be provided to the input neurons of the SNN. Then, the category assigned to the associated data signal is indicated by the spike frequency in the SNN output signal, here indicated by the output neuron that fires the most in response to the input metadata. Based on some user-defined relevance strategy, for example, by ranking the categories from least relevant to most relevant to the application under discussion, a relevance is assigned to the categories. Then, as described above, the relevance categories are used to control the formation of components for data storage.

[0043] Although Figure 3 a simple two-layer network is shown, the SNN can be configured in various ways to perform classification operations and can include additional internal (hidden) neuron layers between the input neurons and the output neurons. A group of output neurons can be assigned to each category, where the average activity of each group is calculated to determine the output category. Figure 4 Another example is shown where the SNN classifier 25 includes multiple hidden neuron layers and a single output neuron. Here, the output category is indicated by the spike frequency v of the single output neuron. The categories can be defined during the training process such that different ranges or values of the spike frequency v map to different relevance categories, for example, where a higher value of v indicates a higher relevance. Many other SNN configurations can be envisioned to perform the classification process. Additionally, although supervised learning is preferred, the training can use an unsupervised learning process, where, in the absence of metadata labels, classification is performed based on the relevance in the training metadata, and a relevance is assigned to the resulting classification, as previously described.

[0044] The structure and operation of the preferred embodiment will now be described in more detail. Figure 5is a schematic representation of the storage device in this embodiment. The device 30 includes: a first storage SNN 31; a second classifier SNN 32; an SNN controller 33 and a memory 34. The classifier SNN 32 performs data signal classification based on the input metadata as described above. In this example, the classifier SNN is implemented as Figure 4 the SNN 25, where the spike frequency v of the output signal is directly mapped to the correlation category for ease of simple interpretation. The SNN controller 33 includes functions for spike signal encoding of the data signal and metadata respectively provided to the SNNs 31 and 32 in the storage mode, and also for decoding the spike signal output by the storage SNN 31 in the recall mode. The controller 33 controls the operation of the storage SNN 31 in both the storage and recall modes, and controls the neurons / synapses of the SNNs in both modes. The controller realizes the selection and activation of the visible neuron set (explained below) during storage and recall via the V m control signal, and realizes synaptic control for component formation and training via the synaptic control signal to the SNN 31. The memory 34 stores the data used by the controller 33 in the storage and recall modes, which will be further discussed below.

[0045] The storage SNN 31 includes a plurality of "visible" neurons 35 that provide the input / output interface of the SNN and a plurality of hidden neurons 36. The visible neurons 35 include M sets of visible neurons having the identifier V m where m = 1 to M. The visible neurons have inputs for receiving the encoded data signal and are interconnected with the hidden neurons 36 via synaptic weights. The hidden neurons are interconnected with other hidden neurons via synaptic weights, and the hidden neurons have output synaptic connections to the inputs of the visible neurons 35. In this embodiment, the SNN 31 provides all-to-all connectivity of the visible and hidden neurons. However, in general, the connectivity can range from all-to-all connectivity of the entire neuron assembly to partial connectivity, for example, all-to-all connectivity between subgroups of neurons, as desired for a given application.

[0046] During operation, each sub-component configured in the storage SNN includes a set of visible neurons V m and a set of hidden neurons, as schematically shown in Figure 6 . This shows three sub-components S1 to S3 including the corresponding sets of visible neurons V1 to V3 and a variable number of hidden neurons 36. The sub-components are defined by the activated synaptic connections between the neurons as described above. The active synaptic connections are schematically represented by the bold dashed arrows in the figure. In the shown state, the SNN 31 includes additional, unused sets of visible neurons V4 to V M, and a free neuron pool 38 that is not currently assigned to any sub-component. The inactive synaptic connections to these neurons are schematically represented by grey dashed arrows in the figure. Before activation, the synaptic weights can be initialized to, for example, zero or random weight values.

[0047] The neurons of the SNN 31 operate according to the following neuron model. The noiseless membrane potential of neuron i is given by:

[0048]

[0049] where: w ij is the synaptic weight from neuron j to neuron i, denotes the convolution of the spike train x k with the kernel α, where the postsynaptic kernel is For s ≥ 0, the weight adaptation kernel is For s ≥ 0, where for s < 0 both kernels vanish, and u0 represents the resting potential. Depending on the noiseless membrane potential u, noise is modeled by random spikes, i.e., the probability that neuron i emits a spike at time interval t is a function ρ of its membrane potential u:

[0050] P(x i (t) = 1|u i (t)) = ρ(u i (t)).

[0051] Figure 7 represents the steps of a method for storing an input data signal in the device 30. In step 40, the controller 33 receives the data signal and the associated metadata. In this embodiment, the controller 33 uses spike frequency encoding for the metadata provided to the classifier SNN 32. Additionally, the metadata in this embodiment includes (in addition to the metadata items for classification) a unique identifier (ID) for the associated data signal. In step 41, the controller 33 provides the appropriately frequency-encoded metadata items in the spike signal to the input neurons of the classifier SNN 32 and receives the classifier output signal, where the current spike frequency v(t) indicates the relevance category of the data signal. The classifier output v(t) at time t is used to configure the sub-component S m . In step 42, the controller 33 selects the next unused set of visible neurons V m in the SNN 31, and in step 43, stores the data tuple {ID; V m ; v(t)} for the data signal in the memory 34. In step 44, the controller assigns the neurons to the sub-component S m, a synaptic control signal is provided to the SNN 31 to configure the sub-component based on the classifier output v(t). In this embodiment, hidden neurons are assigned to the sub-component in a probabilistic manner from the hidden neurons in the free neuron pool 38 and potentially also from the hidden neurons in another sub-component that has already been configured in the SNN 31, where the other sub-component stores previous data signals. In particular, at time t, a free hidden neuron n i is assigned to the newly formed sub-component S m with a probability that is a function ζ1 of the classifier output v(t):

[0052] P(n i (t) ∈ S m | v(t)) = ζ1(v(t)).

[0053] The function ζ1 is chosen such that more relevant data signals are stored in larger sub-components. For example, ζ1 can be chosen as a monotonically increasing function of the spike rate v(t). Additionally, the probability that a hidden neuron n i (a member of an existing sub-component S q ) is assigned to the newly formed sub-component S m at time t is a function ζ2 of the current classifier output v(t) and the classifier output v(t q ) at the time t q when S q was formed (t q < t):

[0054] P(n i (t) ∈ S m | n i (t - 1) ∈ S q , v(t), v(t q )) = ζ2(v(t), v(t q )).

[0055] The classifier output v(t m ) of the sub-component can be retrieved from the memory 34 based on the identifier V m in the data tuple {ID; V q ; v(t)} of the sub-component. Thus, based on the current spike rate of the classifier SNN 32 and the spike rate v(t q ) in the classifier output signal generated from the metadata of the previous data signals, neurons are probabilistically assigned from another sub-component that stores the previous data signals to the new sub-component. This operation is performed such that components that store more relevant data signals retain a larger number of neurons than components that store less relevant signals. For example, the function ζ2 can be chosen to: increase monotonically with v(t) and decrease monotonically with v(t q) decreases; or monotonically increases with the difference v(t) - v(t q ) increases, where the difference is greater than zero, otherwise ζ2 = 0. The functions ζ1 and ζ2 can be constructed based on exponential functions, sigmoid functions, or many other functions to achieve the specified goal.

[0056] Return Figure 7 , in step 45, the controller starts the training process for the synaptic weights of the sub-component S m . In this embodiment, the controller 33 uses spike-time encoding for the data signals provided to the SNN 31. The controller activates the set of visible neurons V m , causing them to spike simultaneously over several consecutive time periods to provide a start sequence of the data signal. Then, the spike signal encoding the data signal is provided to the neurons V m , whereby a probabilistic spike sequence propagates in this sub-component. The spike signal is iteratively provided to the neurons V m for a batch of iterations. In step 46, the controller checks whether the batch has been completed, and if not, the operation returns to step 45. When the batch is completed at step 46, the operation proceeds to step 47, in which the controller 33 activates the sub-component S m to recall the data signals stored so far. Here, the controller activates the visible neurons V m to generate an initial start sequence. After an operating cycle, the spike signal representing the stored data signal is reproduced at the input to the visible neurons V m . In step 48, the controller compares the spike sequence for the recall of the data signal with the target (i.e., the original input) spike sequence, and in step 49 determines whether the convergence condition has been reached. If not, the operation proceeds to step 50, in which the controller 49 updates the synaptic weights of this sub-component according to the training algorithm. The operation then returns to step 45 for further training iterations. When convergence is detected at step 49, the trained synaptic weights are optimized for the accurate storage of the data signal in the sub-component S m .

[0057] In this embodiment, the training in the SNN 31 involves adjusting the synaptic weights w v between and among the N h visible neurons and N ii hidden neurons in the sub-component to minimize the Kullback-Leibler (KL) divergence between the input data signal and the data signal stored in the sub-component:

[0058]

[0059] where P * (v) and PW (v) respectively represent the target distribution and the model distribution of the spike trains of visible neurons V m Specifically, a learning rule that minimizes an upper bound of the KL divergence can be used to perform the minimization via a batch stochastic gradient descent method. Assuming that the firing of each neuron in the sub-component is independent of the activities in other neurons given the past, the probabilities of the visible (v) and hidden (h) spike trains can be factorized as:

[0060] P w (x) = P w (v, h) = R w (v|h)Q w (h|v),

[0061] where

[0062] and

[0063]

[0064] The batch stochastic gradient descent algorithm is then expressed as:

[0065]

[0066] where η, β, and are positive constants. In step 50 of Figure 7 , the update ΔW ij of the synaptic weight w ij is calculated accordingly.

[0067] The above embodiments provide a highly efficient system for correlation-aware storage in SNNs. Sub-components that store more relevant data signals include and maintain more neurons than sub-components that store less relevant signals, thereby improving the fidelity of stored relevant signals and also reducing the likelihood that these signals are "forgotten", thus providing improved signal recall. The dynamic configuration of sub-components with neurons assigned from existing components allows for continued component formation in the case where the free neuron pool is depleted and can additionally strengthen components that store more relevant signals. The SNN is reconfigurable over time, allowing the network to evolve as new data signals are stored and be appropriately adjusted according to correlation to accommodate all data signals. Thus, the system provides an efficient allocation of storage capacity among all data signals based on correlation, where the fidelity of recall is prioritized for more relevant signals. Embodiments can be envisioned where the correlation categories are at least partially based on the expected storage duration, where higher correlation indicates a longer duration. Less relevant signals that are likely to be "forgotten" earlier will be retrieved earlier and can be reliably stored in smaller sub-components. Then a reliable fidelity of recall can be achieved for all data signals via the dynamic configuration of sub-components.

[0068] Figure 8 The process of data signal recall in apparatus 30 is shown. In step 60, the unique ID of the stored data signal is provided to controller 33. In step 61, the controller accesses memory 34 to retrieve the identifier V m in the data tuple {ID; V m ; v(t)} for the input ID. In step 62, controller 33 then activates the visible neurons V m of the sub-component, generally as Figure 7 described in step 47 thereof. Only the neurons of the desired sub-component are active. The sub-component thus outputs the stored data signal encoded in the absolute timing of the spike pattern in the spike signal provided to controller 33. In step 63, the controller decodes the spike signal, and in step 64 outputs the recalled data signal.

[0069] During recall, the visible activity pattern of the spike signal provided to controller 33 is distributed as P w (v). Since the stochastic gradient algorithm for learning the desired pattern converges to a local minimum of the KL divergence bound, the average value of the weight changes during recall is zero. However, the variance of the weight changes is non-zero, so diffusion occurs and the weights deviate from the optimal setting. The time taken to "forget" the stored pattern is estimated as the time taken for the drift from the minimum value of the KL divergence limit reached to exceed a predetermined threshold.

[0070] As will be seen, embodiments of the present invention provide a highly efficient SNN-based storage system that uses correlation-aware learning to improve the storage and recall of data. Such SNN-based storage systems offer significantly higher energy efficiency than conventional von Neumann architectures, thus facilitating deployment in a wide range of applications including edge computing technologies for IoT (Internet of Things).

[0071] It should be understood that many changes and modifications can be made to the above exemplary embodiments. As an example, data / metadata can be encoded in other ways in the occurrence of spikes in the spike signals provided to the SNN. Other embodiments can employ one or different combinations of spike-time and spike-frequency encoding schemes. The correlation category can be indicated in various ways via the occurrence of spikes in the classifier output signal. The classifier output can also be converted into any signal representing the correlation category for controlling component configuration. The classifier itself can be fully or partially trained before starting the storage operation. Embodiments can be envisioned in which classifier training continues during component formation, e.g., based on labels included in the metadata of data signals stored in the SNN. Other neuron models and training schemes can also be used for neuron implementation and SNN training.

[0072] Generally, where features are described herein with reference to methods embodying the invention, corresponding features can be provided in an apparatus / computer program product embodying the invention, and vice versa. The steps of the flowcharts can be executed in an order different from the order shown, and some steps can be executed concurrently, depending on the circumstances.

[0073] The description of the various embodiments of the present invention has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to a person of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein have been chosen to best explain the principles of the embodiments, the practical application, or the technical improvement of technologies found in the marketplace, or to enable a person of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A method for storing data signals in a spiking neural network, the method comprising, for each data signal: providing metadata associated with the data signal to a machine learning model, the machine learning model being trained to generate an output signal indicating a relevance category of the data signal based on input metadata for the data signal; iteratively providing the data signal to a subassembly of neurons interconnected via synaptic weights in the spiking neural network, and training the synaptic weights to store the data signal in the subassembly; and assigning neurons of the network to the subassembly based on the relevance category according to the output signal of the model, such that more relevant data signals are stored by larger subassemblies.

2. The method according to claim 1, wherein The model includes another spiking neural network.

3. The method according to claim 1, wherein Based on the output signal of the model, neurons are assigned to the subassembly from a pool of free neurons in the network that are not assigned to any other subassembly.

4. The method according to claim 3, comprising: Neurons are assigned to the subassembly from another subassembly to store the previous data signal based on the relevance category according to the output signal of the model and the output signal generated by the model based on the metadata for the previous data signal, such that the subassembly storing more relevant data signals retains a greater number of neurons.

5. The method according to claim 1, wherein Neurons are assigned to the subassembly in a probabilistic manner.

6. The method according to claim 1, wherein: the subassembly includes a set of visible neurons and a set of hidden neurons; the input data signal is iteratively provided to the set of visible neurons; and neurons assigned to the subassembly are assigned to the set of hidden neurons.

7. The method according to claim 1, wherein: the model includes another spiking neural network; the metadata is encoded by spike frequency encoding in spike signals provided to the other network; and the relevance category is indicated by the spike frequency in the output signal of the other network.

8. The method according to claim 1, including training the synaptic weights by a learning rule that minimizes an upper bound of the Kullback-Leibler divergence between the input data signal and the data signal stored in the subassembly.

9. The method according to claim 1, the method further including recalling the data signal stored by the subassembly by activating neurons of the subassembly, whereby the subassembly outputs the stored data signal.

10. The method according to claim 1, wherein, The metadata includes a unique identifier of the data signal, and wherein the method includes: storing the unique identifier of the data signal to be stored by the subassembly in a memory associated with the network; and in response to subsequently receiving the unique identifier, recalling the stored data signal by activating neurons of the subassembly, whereby the subassembly outputs the stored data signal.

11. An apparatus for storing data signals, the apparatus comprising: a spiking neural network for receiving data signals to be stored, A classifier that implements a machine learning model for generating an output signal indicating a relevance category of a data signal based on input metadata related to the data signal; and control logic adapted, for each data signal: to provide the metadata of the data signal to the classifier to obtain the output signal indicating the relevance category of the data signal; to iteratively provide the data signal to a sub - assembly of neurons interconnected via synaptic weights of the spiking neural network, and train the synaptic weights to store the data signal in the sub - assembly; and based on the relevance category according to the output signal of the classifier, assign neurons of the network to the sub - assembly such that more relevant data signals are stored by larger sub - assemblies.

12. The apparatus according to claim 11, wherein, The machine learning model includes an additional spiking neural network.

13. The apparatus according to claim 11, wherein, The control logic is adapted to assign neurons to the sub - assembly from a pool of free neurons of the network that are not assigned to any other sub - assembly according to the output signal of the classifier.

14. The apparatus according to claim 13, wherein, The control logic is adapted to assign neurons to the sub - assembly from another sub - assembly storing a previous data signal based on the relevance category according to the output signal of the classifier and the output signal generated by the classifier according to the metadata for the previous data signal, such that the assembly storing the more relevant data signal retains a greater number of neurons.

15. The device according to claim 11, wherein, The control logic is adapted to assign neurons to the sub - assembly in a probabilistic manner.

16. The device according to claim 11, wherein, The sub - assembly includes a set of visible neurons and a set of hidden neurons, and wherein the control logic is adapted to iteratively provide the data signal to the set of visible neurons and assign neurons to the set of hidden neurons.

17. The apparatus according to claim 11, wherein: the machine learning model includes a further spiking neural network; the control logic is adapted to encode the metadata by spike frequency encoding in spike signals provided to the classifier; and the relevance category is indicated by the spike frequency in the output signal of the classifier.

18. The apparatus according to claim 11, wherein, The control logic is adapted to train the synaptic weights by a learning rule that minimizes an upper bound of the Kullback - Leibler divergence between the input data signal and the data signal stored in the sub - assembly.

19. The apparatus according to claim 11, wherein, The control logic is further adapted to recall the data signal stored by the sub - assembly by activating the neurons of the sub - assembly, whereby the sub - assembly outputs the stored data signal.

20. The apparatus according to claim 11, wherein The metadata includes a unique identifier of the data signal, and wherein the control logic is further adapted to: store the unique identifier of the data signal stored by the sub - assembly in the memory of the apparatus; and in response to subsequently receiving the unique identifier, recall the stored data signal by activating the neurons of the sub - assembly, whereby the sub - assembly outputs the stored data signal.

21. A computer program product for storing data signals in a spiking neural network, the computer program product comprising a computer-readable storage medium having program instructions embodied therein, the program instructions being executable by a computing device to cause the computing device to perform the following operations for each data signal: Provide metadata associated with the data signal to a machine learning model, the machine learning model being trained to generate an output signal indicating a relevance category of the data signal based on input metadata for the data signal; Iteratively provide the data signal to a sub-component of neurons interconnected via synaptic weights in a spiking neural network, and train the synaptic weights to store the data signal in the sub-component; And Based on the relevance category according to the output signal of the model, assign neurons of the network to the sub-component such that more relevant data signals are stored by larger sub-components.

22. The computer program product according to claim 21, wherein, The model includes another spiking neural network.

23. The computer program product according to claim 21, wherein the program instructions are executable to assign neurons to the sub-component from a pool of free neurons in the network that are not assigned to any other sub-component according to the output signal of the model.

24. The computer program product according to claim 23, wherein the program instructions are further executable to: based on the relevance category according to the output signal of the model and the output signal generated by the model based on metadata for a previous data signal, assign neurons from another sub-component storing the previous data signal to the sub-component such that the component storing the more relevant data signal retains a greater number of neurons.

25. The computer program product according to claim 21, wherein the program instructions are further executable to recall the data signal stored by the sub-component by activating neurons of the sub-component, whereby the sub-component outputs the stored data signal.

Citation Information

Patent Citations

  • Implementing a neural network algorithm on a neurosynaptic substrate based on metadata associated with the neural network algorithm

    CN107430704A

  • Method and apparatus for learning, prediction, and recall of spatiotemporal patterns

    US10346739B1