The present invention provides an event-driven universal neural network circuit. The circuit comprises a plurality of neural modules. Each neural module comprises multiple digital neurons such that each neuron in a neural module has a corresponding neuron in another neural module. An interconnection network comprising a plurality of digital synapses interconnects the neural modules. Each synapse interconnects a first neural module to a second neural module by interconnecting a neuron in the first neural module to a corresponding neuron in the second neural module. Corresponding neurons in the first neural module and the second neural module communicate via the synapses. Each synapse comprises a learning rule associating a neuron in the first neural module with a corresponding neuron in the second neural module. A control module generates signals which define a set of time steps for event-driven operation of the neurons and event communication via the interconnection network.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method comprising: for an input/output (I/O) port of a neural module comprising a plurality of neurons and a plurality of I/O ports: classifying the I/O port into one of a plurality of types, wherein the I/O port is classified into a type that is different from another type that another I/O port of the plurality of I/O ports is classified into; connecting the I/O port to at least one I/O port of at least one synapse that is classified into the same type as the I/O port, wherein the at least one synapse interconnects the plurality of neurons with at least one other plurality of neurons of at least one other neural module; maintaining a corresponding list of the at least one synapse, a sum of synaptic weights of the at least one synapse, and a target for the sum; processing all synaptic messages received via the I/O port; and in response to at least one firing event generated by at least one of the plurality of neurons based on the processing, sending information to the at least one synapse via the I/O port, wherein the information is indicative of the at least one firing event, the type the I/O port is classified into, and a comparison between the sum and the target for the sum; wherein a set of learning rules for the at least one synapse is selectively updated based on the comparison between the sum and the target for the sum.
2. The method of claim 1 , wherein: for each neuron of the plurality of neurons: the set of learning rules for the at least one synapse comprises at least one learning rule associating the neuron with at least one neuron of the at least one other neural module; and the at least one learning rule is applied if the neuron generated a firing event.
3. The method of claim 1 , wherein a first I/O port and a second I/O port of the plurality of I/O ports are classified into a first type and a second type of the plurality of types, respectively, and the first type and the second type are different types.
4. The method of claim 1 , wherein the set of learning rules for the at least one synapse is updated in response to determining the sum exceeds or is less than the target for sum.
5. The method of claim 1 , further comprising: for a neuron of the neural module: maintaining neural information indicative of a membrane potential of the neuron, a most recent time the neuron generated a firing event, a first set of I/O ports of the plurality of I/O ports the neuron sends output to, and a second set of I/O ports of the plurality of I/O ports the neuron receives input from.
6. A system comprising a computer processor, a computer-readable hardware storage medium, and program code embodied with the computer-readable hardware storage medium for execution by the computer processor to implement a method comprising: for an input/output (I/O) port of a neural module comprising a plurality of neurons and a plurality of I/O ports: classifying the I/O port into one of a plurality of types, wherein the I/O port is classified into a type that is different from another type that another I/O port of the plurality of I/O ports is classified into; connecting the I/O port to at least one I/O port of at least one synapse that is classified into the same type as the I/O port, wherein the at least one synapse interconnects the plurality of neurons with at least one other plurality of neurons of at least one other neural module; maintaining a corresponding list of the at least one synapse, a sum of synaptic weights of the at least one synapse, and a target for the sum; processing all synaptic messages received via the I/O port; and in response to at least one firing event generated by at least one of the plurality of neurons based on the processing, sending information to the at least one synapse via the I/O port, wherein the information is indicative of the at least one firing event, the type the I/O port is classified into, and a comparison between the sum and the target for the sum; wherein a set of learning rules for the at least one synapse is selectively updated based on the comparison between the sum and the target for the sum.
7. The system of claim 6 , wherein: for each neuron of the plurality of neurons: the set of learning rules for the at least one synapse comprises at least one learning rule associating the neuron with at least one neuron of the at least one other neural module; and the at least one learning rule is applied if the neuron generated a firing event.
8. The system of claim 6 , wherein a first I/O port and a second I/O port of the plurality of I/O ports are classified into a first type and a second type of the plurality of types, respectively, and the first type and the second type are different types.
9. The system of claim 6 , wherein the set of learning rules for the at least one synapse is updated in response to determining the sum exceeds or is less than the target for sum.
10. The system of claim 6 , the method further comprising: for a neuron of the neural module: maintaining neural information indicative of a membrane potential of the neuron, a most recent time the neuron generated a firing event, a first set of I/O ports of the plurality of I/O ports the neuron sends output to, and a second set of I/O ports of the plurality of I/O ports the neuron receives input from.
11. A non-transitory computer program product comprising a computer-readable hardware storage medium having program code embodied therewith, the program code being executable by a computer to implement a method comprising: for an input/output (I/O) port of a neural module comprising a plurality of neurons and a plurality of I/O ports: classifying the I/O port into one of a plurality of types, wherein the I/O port is classified into a type that is different from another type that another I/O port of the plurality of I/O ports is classified into; connecting the I/O port to at least one I/O port of at least one synapse that is classified into the same type as the I/O port, wherein the at least one synapse interconnects the plurality of neurons with at least one other plurality of neurons of at least one other neural module; maintaining a corresponding list of the at least one synapse, a sum of synaptic weights of the at least one synapse, and a target for the sum; processing all synaptic messages received via the I/O port; and in response to at least one firing event generated by at least one of the plurality of neurons based on the processing, sending information to the at least one synapse via the I/O port, wherein the information is indicative of the at least one firing event, the type the I/O port is classified into, and a comparison between the sum and the target for the sum; wherein a set of learning rules for the at least one synapse is selectively updated based on the comparison between the sum and the target for the sum.
12. The computer program product of claim 11 , wherein: for each neuron of the plurality of neurons: the set of learning rules for the at least one synapse comprises at least one learning rule associating the neuron with at least one neuron of the at least one other neural module; and the at least one learning rule is applied if the neuron generated a firing event.
13. The computer program product of claim 11 , wherein a first I/O port and a second I/O port of the plurality of I/O ports are classified into a first type and a second type of the plurality of types, respectively, and the first type and the second type are different types.
14. The computer program product of claim 11 , wherein the set of learning rules for the at least one synapse is updated in response to determining the sum exceeds or is less than the target for sum.
15. The computer program product of claim 11 , the method further comprising: for a neuron of the neural module: maintaining neural information indicative of a membrane potential of the neuron, a most recent time the neuron generated a firing event, a first set of I/O ports of the plurality of I/O ports the neuron sends output to, and a second set of I/O ports of the plurality of I/O ports the neuron receives input from.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 29, 2016
January 12, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.