US20230409893A1 - On-chip training of memristor crossbar neuromorphic processing systems - Google Patents
On-chip training of memristor crossbar neuromorphic processing systems Download PDFInfo
- Publication number
- US20230409893A1 US20230409893A1 US18/242,352 US202318242352A US2023409893A1 US 20230409893 A1 US20230409893 A1 US 20230409893A1 US 202318242352 A US202318242352 A US 202318242352A US 2023409893 A1 US2023409893 A1 US 2023409893A1
- Authority
- US
- United States
- Prior art keywords
- voltage signal
- signal
- output voltage
- resistive memories
- resistive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012549 training Methods 0.000 title description 39
- 238000012545 processing Methods 0.000 title description 33
- 230000015654 memory Effects 0.000 claims abstract description 149
- 230000007423 decrease Effects 0.000 claims abstract description 13
- 210000002569 neuron Anatomy 0.000 claims description 129
- 230000000644 propagated effect Effects 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 19
- 230000001902 propagating effect Effects 0.000 claims description 5
- 238000013528 artificial neural network Methods 0.000 description 113
- 230000006870 function Effects 0.000 description 7
- 230000003247 decreasing effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 210000000225 synapse Anatomy 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
Definitions
- This invention relates to neural networks, and more particularly, to systems and methods for implementing resistive memories in an analog neuromorphic circuit.
- Traditional computing systems use conventional microprocessor technology in that operations are performed in chronological order such that each operation is completed before the subsequent operation is initiated. The operations are not performed simultaneously. For example, an addition operation is completed before the subsequent multiplication operation is initiated.
- the chronological order of operation execution limits the performance of conventional microprocessor technology.
- Conventional microprocessor design is limited in how small the microprocessors can be designed, the amount of power that the microprocessors consume, as well as the speed in which the microprocessors execute operations in chronological order.
- conventional microprocessor technology is proving insufficient in applications that require high computation power, such as in image recognition.
- Conventional neuromorphic computing networks are implemented in large scale computer clusters which include computers that are physically large in order to attain the computation power necessary to execute applications such as image recognition.
- applications of these large scale computer clusters include rows and rows of physically large servers that may attain the computation power necessary to execute image recognition when coupled together to form a conventional neuromorphic computing network.
- Such large scale computer clusters not only take up a significant amount of physical space but also require significant amounts of power to operate.
- the present invention provides an analog neuromorphic circuit that implements a plurality of resistive memories, a first comparator, and a resistance adjuster.
- a plurality of resistive memories is configured to provide a resistance to the input voltage signal as the input voltage signal propagates through the plurality of resistive memories generating a first output voltage signal.
- the plurality of resistive memories is also configured to provide a resistance to the first error signal that propagates through the plurality of resistive memories generating a second output voltage signal.
- a first comparator is configured to compare the first output voltage signal to a desired output signal.
- the desired output signal is a signal level that the first output voltage signal is desired to be within a threshold of the signal level.
- the first comparator is also configured to generate the first error signal that is representative of a difference between the first output voltage signal and the desired output signal.
- the first comparator is also configured to generate the first error signal so that the first error signal propagates back through the plurality of resistive memories.
- a resistance adjuster is configured to adjust a resistance value associated with each resistive memory based on the first error signal and the second output voltage signal to decrease the difference between the first output voltage signal and the desired output signal.
- the present invention also provides a method for adjusting resistances of a plurality of resistive memories positioned in an analog neuromorphic circuit.
- the method starts with applying an input voltage signal of the analog neuromorphic circuit.
- the method further includes providing a resistance to the input voltage signal by each resistive memory as the input voltage signal propagates through the plurality of resistive memories to generate a first output voltage signal.
- the method further includes comparing the first output voltage signal to a desired output signal.
- the desired output signal is at a signal level that the first output voltage signal is desired to be within a threshold of the signal level.
- the method further includes a first error signal that is representative of a difference between the first output voltage signal and the desired output signal.
- the method further includes generating the first error signal so that the first error signal propagates back through the plurality of resistive memories.
- the method further includes providing a resistance to the first error signal by each resistive memory as the first error signal propagates back through the plurality of resistive memories to generate a second output voltage signal.
- the method further includes adjusting a resistance value associated with each resistive memory based on the first error signal and the second output voltage signal to decrease the difference between the first output voltage signal and the desired output signal.
- the present invention also provides an analog neuromorphic system that implements a plurality of resistive memories, including a first analog neuromorphic circuit, a first plurality of resistive memories, a comparator, and a resistance adjuster.
- the first analog neuromorphic circuit includes the first plurality of resistive memories that is configured to apply a first set of weights to an input voltage signal that is generated as an output signal from another analog neuromorphic circuit as the input voltage signal propagates through the first plurality of resistive memories generating a first output voltage signal.
- the first set of weights is generated by resistance values applied by the first plurality of resistive memories to the input voltage signal.
- the first analog neuromorphic circuit is also configured to apply a second set of weights to a first error signal as the first error signal propagates back through the first plurality of resistive memories generating a second output voltage signal.
- the second set of weights is generated by resistance values applied by the first plurality of resistive memories.
- the comparator is configured to generate the first error signal that is representative of a difference between the first output voltage signal and a desired output voltage signal.
- the desired output voltage signal is at a signal level that the first output voltage signal is desired to be within a threshold of the signal level.
- the comparator is also configured to generate a second error signal that is representative of a difference between the second output voltage signal and the desired output voltage signal.
- the resistance adjuster is configured to adjust a resistance value associated with each resistive memory included in the first plurality of resistive memories based on the first error signal and the second error signal to decrease the difference between the first output voltage signal and the desired output signal and the difference between the second output voltage signal and the desired output signal.
- the resistance adjuster is also configured to provide the first error signal and the second error signal to an additional analog neuromorphic circuit.
- FIG. 1 is a schematic illustration of an exemplary analog neuromorphic processing device that simultaneously executes several computing operations in parallel in accordance with an embodiment of the disclosure
- FIG. 2 is a schematic illustration of an exemplary analog neuromorphic circuit that simultaneously executes several computing operations in parallel in accordance with an embodiment of the disclosure
- FIG. 3 is a schematic illustration of an exemplary neural network configuration that the analog neuromorphic circuit of FIG. 1 may be implemented and scaled in accordance with an embodiment of the disclosure.
- FIG. 4 A is a schematic illustration of an exemplary neural network configuration that details how the weights of such an exemplary neural network configuration are applied when executing a back propagation training algorithm in accordance with an embodiment of the disclosure;
- FIG. 4 B is a schematic illustration of an exemplary neural network configuration that details how the weights of such an exemplary neural network configuration are propagated back through the neural network configuration when executing a back propagation training algorithm in accordance with an embodiment of the disclosure;
- FIG. 5 is a schematic illustration of an exemplary neural network configuration implementing a first and second crossbar configuration in accordance with an embodiment of the disclosure
- FIG. 6 A is a schematic illustration of an exemplary neural network configuration that details how the weights of such an exemplary neural network configuration are applied when executing a back propagation training algorithm in accordance with an embodiment of the disclosure;
- FIG. 6 B is a schematic illustration of an exemplary neural network configuration with regards to a vertical neural network configuration being implemented in the second crossbar configuration in accordance with an embodiment of the disclosure
- FIG. 7 A is a schematic illustration of an exemplary neural network configuration that details how the weights of such an exemplary neural network configuration are propagated back through the neural network configuration when executing a back propagation training algorithm in accordance with an embodiment of the disclosure;
- FIG. 7 B is a schematic illustration of an exemplary neural network configuration with regards to a horizontal neural network configuration being implemented in the second crossbar configuration in accordance with an embodiment of the disclosure
- FIG. 8 A is a schematic illustration of a resistance adjuster of resistances for memristors included in the first and second crossbar configurations in accordance with an embodiment of the disclosure.
- FIG. 8 B is a schematic illustration of signal behavior as triggered by the resistance adjuster with regards to a reference voltage signal, an input voltage signal, and a training voltage signal in accordance with an embodiment of the disclosure.
- Embodiments of the present invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the present invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors.
- a machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device).
- a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), and others.
- firmware, software, routines, and/or instructions may be described herein as performing certain actions. However, it should be appreciated that such descriptions are merely for convenience and that such actions in fact result from computing devices, processors, controllers, or other devices executing the firmware, software, routines, instructions, etc.
- each of the various components discussed may be considered a module, and the term “module” shall be understood to include at least one of software, firmware, and hardware (such as one or more circuit, microchip, or device, or any combination thereof), and any combination thereof.
- each module may include one, or more than one, component within an actual device, and each component that forms a part of the described module may function either cooperatively or independently of any other component forming a part of the module.
- multiple modules described herein may represent a single component within an actual device. Further, components within a module may be in a single device or distributed among multiple devices in a wired or wireless manner.
- the present invention creates an analog neuromorphic computing network by implementing resistive memories.
- a resistive memory is a non-volatile, variable resistor that may not only change the resistance level but may also maintain the resistance level after power to the resistive memory has been terminated so that the resistive memory acts as memory.
- the resistive memory may also have resistances that are positive and negative.
- an equivalent of a negative resistance generated by a resistive memory may be generated by implementing negative weight values with a pair of resistive memories. The output of one of the resistive memories from the pair may then be inverted by an inverting circuit.
- Such characteristics of the resistive memory enables neuromorphic computing to be shrunk down from implementing large computers to a circuit that can be fabricated onto a chip while requiring minimal power due to the analog characteristics of the resistive memory.
- the resistive memories may be positioned in a crossbar configuration in that each resistive memory is positioned at an intersection of a plurality of horizontal wires and a plurality of vertical wires forming a wire grid.
- An input voltage may be applied to each horizontal wire.
- Each resistive memory may apply a resistance to each input voltage so that each input voltage is multiplied by each resistance.
- the positioning of each resistive memory at each intersection of the wire grid enables the multiplying of each input voltage by the resistance of each resistive memory to be done in parallel.
- the multiplication in parallel enables multiple multiplication operations to be executed simultaneously.
- Each current relative to each horizontal wire may then be added to generate an accumulative current that is conducted by each vertical wire.
- each current to generate the accumulative currents is also done in parallel due to the positioning of the resistive memories at each intersection of the wire grid.
- the addition in parallel also enables multiple addition operations to be executed simultaneously.
- the simultaneous execution of addition and multiplication operations in an analog circuit generates significantly more computation power than conventional microprocessors while implementing significantly less power than conventional microprocessors.
- an analog neuromorphic processing device 100 simultaneously executes several computing operations in parallel.
- the analog neuromorphic processing device 100 includes a plurality of input voltages 140 ( a - n ) that are applied to a plurality of respective inputs of the analog neuromorphic processing device 100 and the analog neuromorphic processing device 100 then generates a plurality of output signals 180 ( a - n ).
- the analog neuromorphic processing device 100 may include a plurality of resistive memories (not shown) that have variable resistance characteristics that may be exercised not only with low levels of power but may also exercise those variable resistance characteristics after power applied to the resistive memories has been terminated.
- the variable resistance characteristics of the resistive memories enable the resistive memories to act as memory while maintaining significantly low power requirements compared to conventional microprocessors.
- the resistive memories are also of nano-scale sizes that enable a significant amount of resistive memories to be configured within the analog neuromorphic processing device 100 while still maintaining significantly low power level requirements.
- variable resistance capabilities of the resistive memories coupled with the nano-scale size of the resistive memories enable the resistive memories to be configured so that the analog neuromorphic processing device 100 has significant computational efficiency while maintaining the size of the analog neuromorphic processing device 100 to a chip that may easily be positioned on a circuit board.
- the resistive memories may include but are not limited to memristors that are nano-scale variable resistance devices with a significantly large variable resistance range.
- the physics of the resistive memories, such as memristors, require significantly low power and occupy little space so that the resistive memories may be configured in the analog neuromorphic processing device 100 to generate significant computational efficiency from a small chip.
- the plurality of input voltages 140 may be applied to corresponding inputs of the analog neuromorphic processing device 100 to exercise the variable resistance characteristics of the resistive memories.
- the input voltages 140 ( a - n ) may be applied at a voltage level and for a time period that is sufficient to exercise the variable resistance characteristics of the resistive memories.
- the input voltages 140 ( a - n ) may vary and/or be substantially similar depending on the types of variable resistance characteristics that are to be exercised by each of the resistive memories.
- the resistive memories may be arranged in the analog neuromorphic processing device 100 such that the resistive memories may simultaneously execute multiple addition and multiplication operations in parallel in response to the input voltages 140 ( a - n ) being applied to the inputs of the analog neuromorphic processing device 100 .
- the variable resistance characteristics of the resistive memories as well as their nano-scale size enables a significant amount of resistive memories to be arranged so that the input voltages 140 ( a - n ) trigger responses in the resistive memories that are then propagated throughout the analog neuromorphic processing device 100 that results in simultaneous multiplication and addition operations that are executed in parallel.
- the simultaneous multiplication and addition operations executed in parallel exponentially increase the efficiency of analog neuromorphic processing device 100 while limiting the power required to obtain such computation capabilities to the input voltages 140 ( a - n ).
- the resistive memories are passive devices so that the simultaneous multiplication and addition operations executed in parallel are performed in the analog domain, which also exponentially decreases the required power.
- the analog neuromorphic processing device 100 may have significantly more computational efficiency than traditional microprocessor devices, and may be smaller than traditional microprocessor chips while reducing power in a range from 1,000 times to 1,000,000 times that of traditional microprocessors.
- the resistive memories may also be arranged such that the simultaneous execution of the multiplication and addition operations in parallel may be configured as a single computation hub that constitutes a single neuron in a neural network.
- the variable resistance characteristics and the nano-scale size of the resistive memories further enable the arrangement of resistive memories to be scaled with other arrangements of resistive memories so that the single neuron may be scaled into a neural network including multiple neurons.
- the scaling of a single neuron into multiple neurons exponentially further increases the computational efficiency of the resulting neural network.
- the multiple neurons may be scaled into several layers of neurons that further exponentially increases the computational efficiency of the neural network.
- the scaling of the resistive memories into additional neurons may be done within the analog neuromorphic processing device 100 such as within a single chip. However, the analog neuromorphic processing device 100 may also be scaled with other analog neuromorphic circuits contained in other chips to exponentially increase the computational efficiency of the resulting neural network.
- the analog neuromorphic processing device 100 may be configured into a neural network that has the capability of executing applications with significant computational efficiency, such as image recognition.
- the output signals 180 ( a - n ), where n is an integer greater than or equal to one, may generate signals that correctly identify an image.
- the analog neuromorphic processing device 100 may also have the learning capability as will be discussed in further detail below so that analog neuromorphic circuits may successfully execute learning algorithms.
- the analog neuromorphic processing device 100 implemented as a single neuron and/or multiple neurons in a neural network and/or configured with other similar analog neuromorphic processing devices 100 may have significant advantages in traditional computing platforms that require significant computational efficiency with limited power resources and space resources.
- traditional computing platforms may include but are not limited to Fast Fourier Transform (FFT) applications, Joint Photographic Experts Group (JPEG) image applications, and/or recognition, mining, and synthesis (RMS) applications.
- FFT Fast Fourier Transform
- JPEG Joint Photographic Experts Group
- RMS recognition, mining, and synthesis
- the implementation of low power neural networks that have a limited physical footprint may also enable this type of computational efficiency to be utilized in many systems that have traditionally not been able to experience such computational efficiency due to the high power consumption and large physical footprint of conventional computing systems.
- Such systems may include but are not limited to military and civilian applications in security (image recognition), robotics (navigation and environment recognition), and/or medical applications (artificial limbs and portable electronics).
- the layering of the analog neuromorphic processing device 100 with other similar analog neuromorphic circuits may enable complex computations to be executed.
- the compactness of the resistive memory configurations enables fabrication of chips with a high synaptic density in that each chip may have an increased amount of neurons that are fitted onto the chip.
- the passive characteristics of the resistive memories eliminate the need for software code which increases the security of the analog neuromorphic processing device 100 .
- an analog neuromorphic circuit 200 simultaneously executes several computing operations in parallel.
- the analog neuromorphic circuit 200 includes a plurality of resistive memories 210 ( a - n ) where n is an integer equal to or greater than four, a plurality of horizontal wires 220 ( a - n ) where n is an integer equal to or greater than two, a pair of vertical wires 230 ( a - b ), a plurality of input voltages 240 ( a - n ) where n is an integer equal to or greater than two, a pair of bias voltage connections 250 ( a - b ), a first and second input of a comparator 260 ( a - b ), a comparator 270 , an output of the comparator 280 , a pair of weights 290 ( a - b ), and a combined weight 295 .
- the analog neuromorphic circuit 200 shares many similar features with the analog neuromorphic processing device 100 ; therefore, only the
- the analog neuromorphic circuit 200 may be representative of a single neuron of a neural network.
- the analog neuromorphic circuit 200 has the capability to be scaled to interact with several other analog neuromorphic circuits so that multiple neurons may be implemented in the neural network as well as creating multiple layers of neurons in the neural network.
- Such a scaling capability to include not only multiple neurons but also multiple layers of neurons significantly magnifies the computational efficiency of the neural network, as will be discussed in further detail below.
- the resistive memories 210 ( a - n ) may be laid out in a crossbar configuration that includes a high density wire grid.
- the crossbar configuration enables the resistive memories 210 ( a - n ) to be tightly packed together in the wire grid as will be discussed in further detail below.
- the tightly packed resistive memories 210 ( a - n ) provides a high density of resistive memories 210 ( a - n ) in a small surface area of a chip such that numerous analog neuromorphic circuits may be positioned in a neural network on a chip while occupying little space.
- the crossbar configuration also enables the resistive memories 210 ( a - n ) to be positioned so that the analog neuromorphic circuit 200 may execute multiple addition and multiplication operations in parallel in the analog domain.
- the numerous neuromorphic circuits may then be positioned in the neural network so that the multiple addition and multiplication operations that are executed in parallel may be scaled significantly, thus exponentially increasing the computational efficiency.
- the resistive memories 210 ( a - n ) are passive devices so that the multiple addition and multiplication operations executed in parallel are done in the analog domain, which also exponentially decreases the required power.
- analog neuromorphic circuits that are configured into a neural network have the capability of executing applications requiring significant computation power, such as image recognition.
- the analog neuromorphic circuits also have learning capability as will be discussed in further detail below so that the analog neuromorphic circuits may successfully execute learning algorithms.
- neural network configuration 300 that the analog neuromorphic circuit 200 may be implemented and scaled into is shown.
- the neural network configuration 300 shares many similar features with the analog neuromorphic processing device 100 and the analog neuromorphic circuit 200 ; therefore, only the differences between the neural network configuration 200 and the analog neuromorphic processing device 100 and the analog neuromorphic circuit 200 are to be discussed in further detail.
- the analog neuromorphic circuit 200 may be implemented into the neural network configuration 300 .
- the analog neuromorphic circuit 200 may constitute a single neuron, such as neuron 310 a in the neural network configuration 300 .
- the input voltage 240 a and represented by “A” is applied to the horizontal wire 220 a
- the input voltage 240 b and represented by “B” is applied to the horizontal wire 220 b
- the input voltage 240 n and represented by “C” is applied to the horizontal wire 220 c
- the combined weight 295 as shown in FIG. 2 as representative of the combined weight for the input voltage 240 a is shown as W j,i in FIG. 3 .
- Similar combined weights for the input voltage 240 b and the input voltage 240 n may also be represented in FIG. 3 in a similar fashion.
- the wire grid, the resistive memories 210 ( a - n ), and the comparator 270 are represented by the neuron 310 a .
- the output 280 of the analog neuromorphic circuit 200 is coupled to additional neurons 320 a and 320 b.
- the analog neuromorphic circuit 200 may then be scaled so that similar circuits may be configured with the analog neuromorphic circuit 200 to constitute additional neurons, such as neurons 310 ( b - n ) where n is an integer greater than or equal to two.
- Each of the other neurons 310 ( b - n ) includes similar circuit configurations as the analog neuromorphic circuit 200 .
- the resistances of the resistive memories associated with each of the other neurons 310 ( b - n ) may differ from the analog neuromorphic circuit 200 so that outputs that differ from the output 280 of the analog neuromorphic circuit 200 may be generated.
- the input voltages 240 ( a - n ) may also be applied to multiple other neurons 310 ( b - n ) so that each of the additional neurons 310 ( b - n ) also generate outputs that differ from the output 280 generated by the analog neuromorphic circuit 200 .
- the generation of multiple different outputs from the different neurons 310 ( a - n ) exponentially increases the computational efficiency of the neural network configuration 300 .
- the analog neuromorphic circuit 200 represented by the neuron 310 a operates as a single logic function with the type of logic function being adjustable.
- the addition of neurons 310 ( b - n ) provides additional logic functions that also have the capability of their logic functions being adjustable so that the computational efficiency of the neural network configuration 300 is significant.
- the analog neuromorphic circuit 200 may also be scaled to include additional layers of neurons, such as neurons 320 ( a - b ).
- additional layers of neurons also exponentially increases the computational efficiency of the neural network configuration 300 to the extent that the neural network configuration 300 can execute learning algorithms.
- a neural network configuration with a significant number of input voltages, such as several hundred, that are applied to a significant number of neurons, such as several hundred, that have outputs that are then applied to a significant number of layers of neurons, such as hundreds may be able to execute learning algorithms.
- the repetitive execution of the learning algorithms by the extensive neural network configuration may result in the neural network configuration eventually attaining automatic image recognition capabilities.
- the neural network configuration may eventually output a high voltage value of “F 1 ” representative of the binary signal “1” and output a low voltage value of “F 2 ” representative of the binary signal “0” when the neural network configuration recognizes an image of a dog.
- the neural network configuration may then output a low voltage value of “F 1 ” representative of the binary signal “0” and output a high voltage value of “F 2 ” representative of the binary signal “1” when the neural network configuration recognizes an image that is not a dog.
- the neural network configuration 300 does not automatically output a binary signal “1” for “F 1 ” and a binary signal “0” for “F 2 ” when the neural network configuration 300 recognizes an image of a dog.
- the neural network configuration 300 may have to execute learning algorithms in millions of iterations until the resistance values of each memristor included in the neural network configuration 300 is at a value so that the neural network configuration 300 outputs a binary signal “1” for “F 1 ” and a binary signal “0” for “F 2 ” when the neural network configuration 300 recognizes the image of a dog.
- neural network configuration 300 executes a back propagation training algorithm in which the output voltage values of “F 1 ” and “F 2 ” of neurons 320 ( a - b ), respectively after each iteration, are then “propagated back” to neurons 310 ( a - n ).
- FIGS. 4 A and 4 B in which like reference numerals are used to refer to like parts, neural network configurations 400 and 450 in which the back propagation training algorithm may be executed with is shown.
- the neural network configurations 400 and 450 share many similar features with the neural network configuration 300 , the analog neuromorphic circuit 200 , and the analog neuromorphic processing device 100 ; therefore, only the differences between the neural network configurations 400 and 450 and the neural network configuration 300 , the analog neuromorphic circuit 200 , and the analog neuromorphic processing device 100 are to be discussed in further detail.
- known input voltages 240 ( a - n ) as represented by “A”, “B”, and “C” are applied to neurons 310 ( a - n ).
- a displayed image of a dog may generate known input voltages 240 ( a - n ) that are applied to neurons 310 ( a - n ).
- the known input voltage 240 a applies a binary signal of “1” to input “A”
- the known input voltage 240 b applies a binary signal of “0” to input “B”
- the known input voltage 240 n applies a binary signal of “0” to input “C” after engaging an image of a dog.
- the neural network configuration 400 must generate the appropriate corresponding output voltage values of “F 1 ” and “F 2 ” to correctly identify the image as displaying a dog after the input voltages 240 ( a - n ) are applied to neurons 310 ( a - n ).
- the desired output voltage values of “F 1 ” and “F 2 ” that are necessary to correctly identify the image as displaying a dog may be known.
- the binary signal of “1” for “F 1 ” and the binary signal of “0” for “F 2 ” may be a required output for the neural network configuration 400 to properly identify an image as displaying a dog.
- the actual output voltage values of “F 1 ” and “F 2 ” for neurons 320 ( a - b ) after the known input voltage values of “A”, “B”, and “C” are applied to neurons 310 ( a - n ) are unknown.
- the input voltage values of “A”, “B”, and “C” are applied to the memristors included in each of the neurons 310 ( a - n ) with each memristor having a resistance value.
- Weights 410 ( a - n ) as contained in the resistor values of each memristor included in neurons 310 ( a - n ) are then exercised when the input voltage values of “A”, “B”, and “C” are applied to the resistor values of each memristor included in neurons 310 ( a - n ).
- the weights 410 ( a - n ) then generate the output voltage value of “F 1 ”.
- the output voltage value of “F 2 ” is generated in a similar fashion.
- the output voltage values of “F 1 ” and “F 2 ” may be a direct correlation to the resistor values of the memristors included in neurons 310 ( a - n ).
- the output voltage values of “F 1 ” and “F 2 ” differ from the desired output voltages after the input voltage values of “A”, “B”, “C” are applied such that the neural network configuration 400 fails to execute the appropriate task, such as identifying the image as displaying a dog.
- the input voltage values of “1” for “A”, “0” for “B”, and “0” for “C” results in an output voltage value of “0” for “F 1 ” and “1” for “F 2 ”.
- the known desired output voltage value for “F 1 ” is “1” and “0” for “F 2 ” so that the image is correctly identified as displaying a dog.
- the actual output voltage values of “0” for “F 1 ” and “1” for “F 2 ” differ from the desired output voltage values of “1” for “F 1 ” and “0” for “F 2 ”.
- the actual output voltage values for “F 1 ” and “F 2 ” may be compared to the desired output voltage values to generate an error output voltage value.
- the actual output voltage values may be subtracted from the desired output voltage values to generate the error output voltage values.
- the actual output voltage value of “0” for “F 1 ” is subtracted from the desired output value of “1” to generate an error output voltage value of “1”.
- the actual output voltage value of “1” for “F 2 ” is subtracted from the desired output value of “0” to generate an error output voltage value of “ ⁇ 1”.
- the comparing of the actual output voltage values from the desired output voltage values may be executed via subtracting the actual output voltage value from the desired output voltage value and/or any other comparing technique that may determine the error output voltage value as would be appreciated by one skilled in the art.
- the weights associated with neurons 320 may be updated accordingly in an attempt to rectify the error output voltages generated for “F 1 ” and “F 2 ”.
- the resistance values of the memristors included in neuron 320 a may be adjusted to rectify the error output voltage of “1” for “F 1 ”
- the resistance values of the memristors included in neuron 320 b may be adjusted to rectify the error output voltage of “ ⁇ 1” for “F 2 ”.
- the resistance values of the memristors included in neuron 320 a may be adjusted so that the output voltage value of “F 2 ” is eventually substantially equal to the desired output voltage value of “1” and the resistance values of the memristors included in neuron 320 b may be adjusted so that the output voltage of “F 2 ” is eventually substantially equal to the desired output voltage value of “0” so that the neural network configuration 400 eventually correctly identifies the image as displaying the dog.
- the error output voltage value of “1” for “F 1 ” may then be applied to neuron 320 a and the error output voltage value of “ ⁇ 1” for “F 2 ” may then be applied to neuron 320 b as shown with neural network configuration 450 in FIG. 4 B .
- the error output voltage values are then propagated back through neural network configuration 450 .
- the error output voltage values of “F 1 ” and “F 2 ” are applied to the memristors with the adjusted resistor values.
- Weights 420 ( a - b ) which differ from weights 410 ( a - n ) are then generated from the error output voltage values of “F 1 ” and “F 2 ” being applied to the adjusted resistor values of each memristor included in neurons 320 ( a - b ).
- the weights 420 ( a - b ) then generate the propagated output voltage value of “A”.
- the propagated output voltage values of “B” and “C” are generated in a similar fashion.
- the propagated output voltage values of “A”, “B” and “C” may be a direct correlation to the adjusted resistor values of the memristors included in neurons 320 ( a - b ).
- the propagated output values of “A”, “B” and “C” may then be compared to the desired output voltage values of “F 1 ” and “F 2 ” to generate additional error output voltages.
- the resistance values of the memristors included in neurons 310 ( a - n ) may then be adjusted in a similar fashion as the memristors included in neurons 320 ( a - b ) based on the error output voltages.
- the propagation of error voltages through the neural network configuration 450 may then continue through several iterations until the output voltage values of “F 1 ” and “F 2 ” are substantially equivalent to the desired output voltage values such that the neural network configuration 450 may correctly identify the image as displaying a dog.
- a detailed neural network configuration 500 implementing analog neuromorphic circuits similar to the analog neuromorphic circuit 200 is shown.
- the neural network configuration 500 shares many similar features with the analog neuromorphic circuit 200 , the neural network configurations 300 , 400 , and 450 , and the neuromorphic processing device 100 ; therefore, only the differences between the neural network configuration 500 and the analog neuromorphic circuit 200 , the neural network configurations 300 , 400 and 450 , and the neuromorphic processing device 100 are to be discussed in further detail.
- the neural network configuration 500 includes a first memristor crossbar configuration 510 .
- the first memristor crossbar configuration 510 includes a plurality of vertical neuron configurations, such as vertical neuron configuration 550 a .
- An example of a vertical neuron configuration is analog neuromorphic circuit 200 shown in FIG. 2 .
- the vertical neuron configurations included in the first memristor crossbar configuration 510 may represent neurons 310 ( a - n ) as discussed in FIGS. 3 , 4 A, and 4 B .
- An initial input voltage signal 540 may be applied to the input of the first memristor crossbar configuration 510 as discussed in detail with regards to the input voltages 240 ( a - n ) being applied to neurons 310 ( a - n ) in the neural network configuration 400 shown in FIG. 4 A .
- the initial input voltage signal 540 may then propagate through the memristors included in the first memristor crossbar configuration 510 in which the resistance values in each of the memristors represent weights used to generate a set of output voltages which may then be applied as an input voltage signal 520 to a second memristor crossbar configuration 530 .
- the second memristor crossbar configuration 530 includes both a vertical neuron configuration 560 a as well as a plurality of horizontal neuron configurations, such as horizontal neuron configuration 570 a .
- the vertical neuron configuration 560 a as well as the plurality of horizontal neuron configurations may represent neurons 320 ( a - b ) as discussed in FIGS. 3 , 4 A , and 4 B.
- the input voltage signal 520 is applied to the second memristor crossbar configuration 530 , the input voltage signal 520 propagates through the vertical neuron configuration 560 a in which the resistance values of the memristors included in the vertical neuron configuration 560 a generate a first output voltage signal 580 a .
- the first output voltage signal 580 a may represent the output voltage values of “F 1 ” and “F 2 ” as discussed in FIGS. 3 , 4 A, and 4 B.
- the first output voltage signal 580 a may then be compared to a desired output signal 590 a to generate a first error signal 595 .
- the comparison of the first output voltage signal 580 a to the desired output signal 590 a to generate the first error signal 595 may be done in a similar fashion as the output voltage values “F 1 ” and “F 2 ” are compared to the desired output voltage value to generate the error voltage value as discussed in FIGS. 3 , 4 A, and 4 B .
- the first error signal 595 is then propagated back through the second memristor crossbar configuration 530 as discussed in detail with regards to the neural network configuration 450 in FIG. 4 B .
- the first error signal 595 may then be applied to the second memristor crossbar configuration 530 .
- the first error signal 595 may propagate through the plurality of horizontal neuron configurations, such as horizontal neuron configuration 570 a , in which the resistance values of the memristors included in the plurality of horizontal neuron configurations generate a second output voltage signal 505 .
- the second output voltage signal 505 may then be compared to the input voltage signal 520 to generate a second error signal 535 .
- the second error signal 535 is then applied to the first memristor crossbar configuration 510 as the initial input voltage signal 540 .
- the resistance values for each memristor included in the first memristor crossbar configuration 510 and the second memristor crossbar configuration 530 may be adjusted accordingly.
- the resistance values for each memristor may be adjusted such that following each of the iterations in generating the first error signal 595 and the second error signal 535 , the magnitudes of the first error signal 595 and the second error signal 535 are decreased.
- the magnitudes of the first error signal 595 and the second error signal 535 may be decreased sufficiently such that the first output voltage signals 580 ( a - b ) of the second memristor crossbar configuration 530 are within thresholds the desired output signals 590 ( a - b ).
- the convergence of the first output voltage signals 580 ( a - b ) to the desired output signals 590 ( a - b ) may indicate that the neural network configuration 500 accurately executes the required task, such as identifying an image that is displaying a dog.
- the functionality of the neural network configuration 500 may be discussed in further detail below.
- the neural network configuration 600 as presented in FIG. 6 A includes the similar features as the neural network configuration 400 as presented in FIG. 4 A .
- the second memristor crossbar configuration 650 as presented in FIG. 6 B includes the similar features as the second memristor crossbar configuration 530 as presented in FIG. 5 in which the functionality of the vertical neural network configuration 560 a is discussed in further detail.
- the input voltage signal 520 generated by the first memristor crossbar configuration 510 is applied to a horizontal input of the second memristor crossbar configuration 650 similar to the input voltages 240 ( a - n ) being applied to neurons 310 ( a - n ) in FIG. 6 A .
- the horizontal input is the input of the second memristor crossbar configuration 650 that is coupled to the output of the first memristor crossbar configuration 510 .
- the input voltage signal 520 then propagates through the vertical neural network configuration 560 a .
- the weights 410 ( a - n ) as represented by the resistance values of each memristor included in the vertical neural network configuration 560 a are exercised when the input voltage signal 520 is applied to the neural network configuration 560 a as in FIG. 6 A .
- the weights 410 ( a - n ) then generate the first output voltage signal 580 a which is similar to the output voltage value of “F 1 ” in FIG. 6 A .
- the first output voltage signal 580 a may be a direct correlation to the resistance values of the memristors included in the vertical neural network configuration 560 a.
- the first output voltage signal 580 a may then be compared to the desired output signal 590 a .
- the desired output signal 590 a may be the signal required so that the task may be appropriately executed, such as identifying an image displaying a dog.
- the comparisons of the first output voltage signal 580 a to the desired output signal 590 a generates the first error signal 595 a in which the first error signal 595 a may be the difference between the desired output signal 590 a and the first output voltage signal 580 a .
- the weights associated with the neurons included in the second memristor crossbar configuration 650 may be updated accordingly in an attempt to rectify the first error signal 595 a so that the first error signal 595 a is within a threshold of the desired output signal 590 a .
- the threshold from the desired output signal 590 a may be an adequate threshold such that the task may be appropriate executed, such as identifying an image displaying a dog.
- the first error signal 595 a may be applied to a vertical input 525 a of the second memristor crossbar configuration 650 .
- FIGS. 7 A and 7 B the functionality of the horizontal neural network configuration 570 a as discussed in FIG. 5 with regards to the discussion of the neural network configuration 450 as discussed in FIG. 4 B is presented in further detail below for clarity.
- the neural network configuration 700 as presented in FIG. 7 A includes similar features as the neural network configuration 450 as presented in FIG. 4 B .
- the second memristor crossbar configuration 750 as presented in FIG. 7 B includes similar features as the second memristor crossbar configuration 530 as presented in FIG. 5 in which the functionality of the horizontal neural network configuration 570 a is discussed in further detail.
- the first error signal 595 a is generated via the vertical neural network configuration 560 a
- the first error signal 595 a is applied to the vertical input 525 a of the second memristor crossbar configuration 650 so that the first error signal 595 a may be propagated back through the second memristor crossbar configuration 750 .
- This is similar to the error output voltage value of “F 1 ” being applied neuron 320 a and propagated back through the neural network configuration 700 as in FIG. 7 A .
- Weights 420 ( a - b ) are then generated for the horizontal neural network configuration 570 a that differ from the weights 410 ( a - n ) generated for the vertical neural network configuration 560 a due to the different memristors included in the horizontal neural network configuration 570 a as compared to the memristors included in the vertical neural network configuration 560 a .
- Weights 420 ( a - b ) as shown in FIG. 7 B correspond to the weights 420 ( a - b ) as shown in FIG. 7 A as the error output voltage is propagated back through the neural network configurations.
- the vertical input 525 a is the input of the second memristor crossbar configuration 750 that is not coupled to the output of the first memristor crossbar configuration 510 while enabling the first error signal 595 a to propagate through each of the horizontal neural network configurations, such as the horizontal neural network configuration 570 a .
- the weights 420 ( a - b ) as shown in FIG. 7 B then generate the second output signal 505 .
- the second output signal 505 a may be a direct correlation to the resistance values of the memristors included in the horizontal neural network configuration 570 a.
- the second output signal 505 may then be compared to the input voltage signal 520 to generate the second error signal 535 .
- the second error signal 535 may then be propagated back through the first memristor crossbar configuration 510 as the initial input voltage signal 540 .
- the resistance values of each memristor included in the first memristor crossbar configuration 510 and the second memristor crossbar configuration 530 may be adjusted accordingly so that the first error signal 595 ( a - b ) eventually converges to the desired output signal 590 ( a - b ).
- the implementation of the vertical neural network configuration 560 a as shown in FIG. 5 and FIG. 6 B as well as the horizontal neural network configuration 570 a as shown in FIG. 5 and FIG. 7 B may significantly decrease the quantity of iterations required for the first error signal 595 ( a - b ) to converge to the desired output signal 590 ( a - b ).
- the combination of the vertical network configuration 560 a with the horizontal network configuration 570 a in a single memristor crossbar configuration, such as the second memristor crossbar configuration 530 implements the same memristors for both the generation of the weights 410 ( a - n ) as well as the generation of the weights 420 ( a - b ).
- the exercising of different weights, such as weights 410 ( a - n ) and weights 420 ( a - b ), from memristors within a single memristor crossbar configuration may be implemented for both the initial application of voltages to the single memristor crossbar configuration as well as the propagation of the error voltages generated by the second memristor crossbar configuration back through the entire neural network.
- the implementation of the a single memristor crossbar configuration for both the initial application of voltages as well as the propagation of error voltages back through the neural network prevents additional memristor crossbar configurations from being implemented into the neural network. Having a memristor crossbar configuration devoted to the application of the initial application of voltages and then another memristor crossbar configuration devoted to the propagation of error voltages back through the neural network compounds the quantity of iterations necessary for the error voltage to converge within a threshold of the desired output voltage exponentially.
- memristors included in the memristor crossbar configuration devoted to the initial application of voltages as well as memristors included in the memristor crossbar configuration devoted to the propagation of error voltages with similar resistance values is quite difficult.
- the difference in resistance values has a significant impact on the convergence of the error voltage to the desired output voltage.
- Implementing the same memristors in a single memristor crossbar configuration for both the application of the initial voltage as well as the propagation of the error signal eliminates any difference in resistance values.
- the training units 545 and 555 are resistor adjusters that update the resistances of each memristor included in the first crossbar configuration 510 and the second crossbar configuration 530 .
- the training unit 555 compares the first error signal 595 with a reference voltage signal.
- An example of a reference voltage signal is an error signal generated from a different crossbar configuration. Based on the comparison of the first error signal 595 with the reference voltage signal, the training unit 555 generates a training voltage signal that is then used to update the resistance values of the memristors included in the second crossbar configuration 530 .
- the training unit 545 compares the second output voltage signal 505 with the input voltage signal 520 . Based on the comparison of the second output voltage signal 505 with the input voltage signal 520 , the training unit 545 updates the resistance values of the memristors included in the first crossbar configuration 510 .
- FIG. 8 A depicts an example resistance adjuster 800 .
- the example resistance adjuster 800 can be implemented for both training units 545 and 555 .
- input voltage signal 810 is represented by the first error signal 595 which is the difference between the first output voltage signal 580 of the second crossbar configuration 530 and the desired output signal 590 .
- the first error signal 595 is then applied to the vertical input 525 of the second crossbar configuration 530 in which the first error signal 595 is then propagated back through the memristors included in the second crossbar configuration 530 .
- the resistance adjusters implemented for training units 545 and 555 may be any type of resistance adjuster that adjusts resistance values associated with resistive memories to decrease the difference between an output voltage signal and a desired signal as will be appreciated by one of ordinary skill in the art.
- the first error signal 595 is first compared by comparator 840 to a reference voltage signal 820 .
- the comparator 840 then generates a training voltage signal 830 that may then be applied to the second crossbar configuration 530 to adjust the resistances of the memristors in the second crossbar configuration 530 so that the difference between the first output voltage signal 580 and the desired output signal 590 is decreased.
- the reference voltage signal 820 may be any type of known voltage signal that when compared with the input voltage signal 810 , such as the first error signal 595 , an adequate training voltage signal 830 is generated that can be used to adequately adjust the memristors in a crossbar configuration as will be appreciated by one of ordinary skill in the art.
- the reference voltage signal 820 may be an error signal generated from a different crossbar configuration.
- the reference voltage signal 820 is a digital signal, such as a binary signal and the input voltage signal 810 is a multivalued signal as shown in FIG. 8 B .
- FIG. 8 B depicts a signal behavior 850 of the reference voltage signal 820 , the input voltage signal 810 and the training voltage signal 830 .
- the comparator 840 may then generate the training voltage signal 830 such that the training voltage signal 830 is a binary signal. The conversion of the training voltage signal 830 to a binary signal by the comparator enables the training voltage signal 830 to be easily transferred to different cores in a multi-core system without the need of digital to analog converters required to convert multivalued signals to binary signals.
- An example of a core in a multi-core system is the first crossbar configuration 510 as a first core and the second crossbar configuration 530 as the second core.
- Several additional cores may also be included in the system.
- the conversion of the training voltage signal 830 to a binary signal enables the training voltage signal 830 to be easily applied as the second error signal 535 to the first crossbar configuration 510 as well as the being easily applied as the first error signal 595 to the second crossbar configuration 530 .
- the implementation of the resistance adjuster 800 eliminates the need of additional digital to analog converters to be associated with the configuration.
- the additional digital to analog converters would convert multivalued signals outputted by each of the first and second crossbar configurations to binary signals so that the binary signals could be applied to each of the first and second crossbar configurations.
- the digital to analog converters require additional power and space for the configuration that is not required with the resistance adjuster 800 .
- the second output voltage signal 505 is first compared by comparator 840 to the input voltage signal 520 , as represented by the reference voltage signal 820 .
- the comparator 840 then generates a training voltage signal 830 that may then be applied to the first crossbar configuration 510 to adjust the resistances of the memristors in the first crossbar configuration 510 so that the difference between the first output voltage signal 480 and the desired output signal 590 is decreased.
- both the input and its complemented form are applied to the analog neuromorphic circuit 200 .
- a complemented input voltage such as A (bar)
- A the original input voltage 240 ( a - n ) (such as A).
- the synapse for input voltage A has a positive weight.
- ⁇ A+ is less than ⁇ A ⁇
- the synapse has a negative weight. This applies to each of the input voltages 240 ( a - n ).
- the output 280 of the comparator 270 at the bottom of the circuit represents the output of the analog neuromorphic circuit 200 .
- the potential at the first comparator input (DP j ) is given by
- Eq. 1 indicates that the analog neuromorphic circuit 200 is essentially carrying out a set of multiply-add operations in parallel in the analog domain.
- the analog neuromorphic circuit 200 is essentially providing discrete neuron output of values 1 or ⁇ 1.
- Training of a multi-layer neural network is required in order to obtain the appropriate output such as the identification of a dog when an image of a dog is observed.
- An example training mechanism for the multi-layer neural network is provided below. However, any other training technique may be implemented as would be appreciated by one skilled in the art.
- ⁇ j sgn( ⁇ k ⁇ k w k,j ) (3)
- the training circuit is able to generate a variable pulse width so that resistive memory conductance may be updated according to the learning rule in Eq. (4). From Eq. (4) and (5) the weight update amount depends inversely on the DP j value of the corresponding neuron.
- the crossbar column may be accessed implementing the neuron (input of the inverter pair in the neuron circuit).
- the DP j value of the neuron and the updated weights of the neuron may not be accessed at the same time.
- the value of DP j may be stored in a capacitor and may be used to determine the desired training pulse width.
- a single capacitor may be implemented for a layer of neurons and the weights are updated one neuron at a time.
- the value DP j for each of the neurons in the crossbar may be connected to the capacitor in the training unit through pass transistors and will be charged as V c .
- the training unit may access the desired DP j value by enabling the corresponding pass transistor.
- the weights may be updated in two steps: increasing and decreasing. During the increasing step, the conductance of the resistive memories 210 ( a - n ) that require positive update may be updated. During the decreasing step the conductance of the resistive memories 210 ( a - n ) requiring a conductance decrease may be modified.
- the circuit in FIG. 8 A is essentially a pulse width modulation circuit which may be used to pulse the memristor crossbar during training.
- the term ⁇ g th (DP j ) in the training rule (Eq. (4)) is implemented using the voltage single V ref which is a triangular wave.
- the term ⁇ may determine the slope and duration of the triangular pulse.
- V op is equal to V DD when V ref >V c , otherwise V op is equal to V SS . From FIG. 8 A , the smaller a V c generates longer pulse and vice versa.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
Abstract
An analog neuromorphic circuit is disclosed having resistive memories that provide a resistance to an input voltage signal as the input voltage signal propagates through the resistive memories generating a first output voltage signal and to provide a resistance to a first error signal that propagates through the resistive memories generating a second output voltage signal. A comparator generates the first error signal that is representative of a difference between the first output voltage signal and the desired output signal and generates the first error signal so that the first error signal propagates back through the plurality of resistive memories. A resistance adjuster adjusts a resistance value associated with each resistive memory based on the first error signal and the second output voltage signal to decrease the difference between the first output voltage signal and the desired output signal.
Description
- The present application is a Continuation Application of U.S. Non-Provisional application Ser. No. 17/141,981 filed on Jan. 5, 2021, and which is a Continuation Application of U.S. Non-Provisional application Ser. No. 15/202,995 filed on Jul. 6, 2016, which issued as U.S. Pat. No. 10,885,429 on Jan. 5, 2021, which claims the benefit of U.S. Provisional Patent Application No. 62/189,026 filed on Jul. 6, 2015, the disclosure of which are incorporated by reference in its entirety.
- This invention relates to neural networks, and more particularly, to systems and methods for implementing resistive memories in an analog neuromorphic circuit.
- Traditional computing systems use conventional microprocessor technology in that operations are performed in chronological order such that each operation is completed before the subsequent operation is initiated. The operations are not performed simultaneously. For example, an addition operation is completed before the subsequent multiplication operation is initiated. The chronological order of operation execution limits the performance of conventional microprocessor technology. Conventional microprocessor design is limited in how small the microprocessors can be designed, the amount of power that the microprocessors consume, as well as the speed in which the microprocessors execute operations in chronological order. Thus, conventional microprocessor technology is proving insufficient in applications that require high computation power, such as in image recognition.
- It is becoming common wisdom to use conventional neuromorphic computing networks which are laid out in a similar fashion as the human brain. Hubs of computing power are designed to function as a neuron in the human brain where different neurons of computing power are coupled to other neurons of computing power. This coupling of neurons enables the neuromorphic computing network to execute multiple operations simultaneously. Therefore, the neuromorphic computing network has exponentially more computing power than traditional computing systems.
- Conventional neuromorphic computing networks are implemented in large scale computer clusters which include computers that are physically large in order to attain the computation power necessary to execute applications such as image recognition. For example, applications of these large scale computer clusters include rows and rows of physically large servers that may attain the computation power necessary to execute image recognition when coupled together to form a conventional neuromorphic computing network. Such large scale computer clusters not only take up a significant amount of physical space but also require significant amounts of power to operate.
- The significant amount of physical space and power required to operate conventional neuromorphic computing networks severely limits the types of applications for which conventional neuromorphic computing networks may be implemented. For example, industries such as biomedical, military, robotics, and mobile devices are industries that cannot implement conventional neuromorphic computing networks due to the significant space limitations in such industries as well as the power limitations. Therefore, an effective means to decrease the space and the power required by conventional neuromorphic computing is needed.
- The present invention provides an analog neuromorphic circuit that implements a plurality of resistive memories, a first comparator, and a resistance adjuster. A plurality of resistive memories is configured to provide a resistance to the input voltage signal as the input voltage signal propagates through the plurality of resistive memories generating a first output voltage signal. The plurality of resistive memories is also configured to provide a resistance to the first error signal that propagates through the plurality of resistive memories generating a second output voltage signal. A first comparator is configured to compare the first output voltage signal to a desired output signal. The desired output signal is a signal level that the first output voltage signal is desired to be within a threshold of the signal level. The first comparator is also configured to generate the first error signal that is representative of a difference between the first output voltage signal and the desired output signal. The first comparator is also configured to generate the first error signal so that the first error signal propagates back through the plurality of resistive memories. A resistance adjuster is configured to adjust a resistance value associated with each resistive memory based on the first error signal and the second output voltage signal to decrease the difference between the first output voltage signal and the desired output signal.
- The present invention also provides a method for adjusting resistances of a plurality of resistive memories positioned in an analog neuromorphic circuit. The method starts with applying an input voltage signal of the analog neuromorphic circuit. The method further includes providing a resistance to the input voltage signal by each resistive memory as the input voltage signal propagates through the plurality of resistive memories to generate a first output voltage signal. The method further includes comparing the first output voltage signal to a desired output signal. The desired output signal is at a signal level that the first output voltage signal is desired to be within a threshold of the signal level. The method further includes a first error signal that is representative of a difference between the first output voltage signal and the desired output signal. The method further includes generating the first error signal so that the first error signal propagates back through the plurality of resistive memories. The method further includes providing a resistance to the first error signal by each resistive memory as the first error signal propagates back through the plurality of resistive memories to generate a second output voltage signal. The method further includes adjusting a resistance value associated with each resistive memory based on the first error signal and the second output voltage signal to decrease the difference between the first output voltage signal and the desired output signal.
- The present invention also provides an analog neuromorphic system that implements a plurality of resistive memories, including a first analog neuromorphic circuit, a first plurality of resistive memories, a comparator, and a resistance adjuster. The first analog neuromorphic circuit includes the first plurality of resistive memories that is configured to apply a first set of weights to an input voltage signal that is generated as an output signal from another analog neuromorphic circuit as the input voltage signal propagates through the first plurality of resistive memories generating a first output voltage signal. The first set of weights is generated by resistance values applied by the first plurality of resistive memories to the input voltage signal. The first analog neuromorphic circuit is also configured to apply a second set of weights to a first error signal as the first error signal propagates back through the first plurality of resistive memories generating a second output voltage signal. The second set of weights is generated by resistance values applied by the first plurality of resistive memories. The comparator is configured to generate the first error signal that is representative of a difference between the first output voltage signal and a desired output voltage signal. The desired output voltage signal is at a signal level that the first output voltage signal is desired to be within a threshold of the signal level. The comparator is also configured to generate a second error signal that is representative of a difference between the second output voltage signal and the desired output voltage signal. The resistance adjuster is configured to adjust a resistance value associated with each resistive memory included in the first plurality of resistive memories based on the first error signal and the second error signal to decrease the difference between the first output voltage signal and the desired output signal and the difference between the second output voltage signal and the desired output signal. The resistance adjuster is also configured to provide the first error signal and the second error signal to an additional analog neuromorphic circuit.
- The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and, together with a general description of the invention given above, and the detailed description given below, serve to explain the invention. Additionally, the left most digit(s) of a reference number identifies the drawing in which the reference number first appears.
-
FIG. 1 is a schematic illustration of an exemplary analog neuromorphic processing device that simultaneously executes several computing operations in parallel in accordance with an embodiment of the disclosure; -
FIG. 2 is a schematic illustration of an exemplary analog neuromorphic circuit that simultaneously executes several computing operations in parallel in accordance with an embodiment of the disclosure; -
FIG. 3 is a schematic illustration of an exemplary neural network configuration that the analog neuromorphic circuit ofFIG. 1 may be implemented and scaled in accordance with an embodiment of the disclosure; and -
FIG. 4A is a schematic illustration of an exemplary neural network configuration that details how the weights of such an exemplary neural network configuration are applied when executing a back propagation training algorithm in accordance with an embodiment of the disclosure; -
FIG. 4B is a schematic illustration of an exemplary neural network configuration that details how the weights of such an exemplary neural network configuration are propagated back through the neural network configuration when executing a back propagation training algorithm in accordance with an embodiment of the disclosure; -
FIG. 5 is a schematic illustration of an exemplary neural network configuration implementing a first and second crossbar configuration in accordance with an embodiment of the disclosure; -
FIG. 6A is a schematic illustration of an exemplary neural network configuration that details how the weights of such an exemplary neural network configuration are applied when executing a back propagation training algorithm in accordance with an embodiment of the disclosure; -
FIG. 6B is a schematic illustration of an exemplary neural network configuration with regards to a vertical neural network configuration being implemented in the second crossbar configuration in accordance with an embodiment of the disclosure; -
FIG. 7A is a schematic illustration of an exemplary neural network configuration that details how the weights of such an exemplary neural network configuration are propagated back through the neural network configuration when executing a back propagation training algorithm in accordance with an embodiment of the disclosure; -
FIG. 7B is a schematic illustration of an exemplary neural network configuration with regards to a horizontal neural network configuration being implemented in the second crossbar configuration in accordance with an embodiment of the disclosure; -
FIG. 8A is a schematic illustration of a resistance adjuster of resistances for memristors included in the first and second crossbar configurations in accordance with an embodiment of the disclosure; and -
FIG. 8B is a schematic illustration of signal behavior as triggered by the resistance adjuster with regards to a reference voltage signal, an input voltage signal, and a training voltage signal in accordance with an embodiment of the disclosure. - The following Detailed Description refers to accompanying drawings to illustrate exemplary embodiments consistent with the present disclosure. References in the Detailed Description to “one embodiment,” “an embodiment,” “an exemplary embodiment,” etc., indicate that the exemplary embodiment described can include a particular feature, structure, or characteristic, but every exemplary embodiment does not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is within the knowledge of those skilled in the relevant art(s) to affect such feature, structure, or characteristic in connection with other exemplary embodiments whether or not explicitly described.
- The exemplary embodiments described herein are provided for illustrative purposes, and are not limiting. Other embodiments are possible, and modifications can be made to exemplary embodiments within the scope of the present disclosure. Therefore, the Detailed Description is not meant to limit the present disclosure. Rather, the scope of the present disclosure is defined only in accordance with the following claims and their equivalents.
- Embodiments of the present invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the present invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), and others. Further, firmware, software, routines, and/or instructions may be described herein as performing certain actions. However, it should be appreciated that such descriptions are merely for convenience and that such actions in fact result from computing devices, processors, controllers, or other devices executing the firmware, software, routines, instructions, etc.
- For purposes of this discussion, each of the various components discussed may be considered a module, and the term “module” shall be understood to include at least one of software, firmware, and hardware (such as one or more circuit, microchip, or device, or any combination thereof), and any combination thereof. In addition, it will be understood that each module may include one, or more than one, component within an actual device, and each component that forms a part of the described module may function either cooperatively or independently of any other component forming a part of the module. Conversely, multiple modules described herein may represent a single component within an actual device. Further, components within a module may be in a single device or distributed among multiple devices in a wired or wireless manner.
- The following Detailed Description of the exemplary embodiments will so fully reveal the general nature of the present disclosure that others can, by applying knowledge of those skilled in the relevant art(s), readily modify and/or adapt for various applications such exemplary embodiments, without undue experimentation, without departing from the scope of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and plurality of equivalents of the exemplary embodiments based upon the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not limitation, such that the terminology or phraseology of the present specification is to be interpreted by those skilled in relevant art(s) in light of the teachings herein.
- The present invention creates an analog neuromorphic computing network by implementing resistive memories. A resistive memory is a non-volatile, variable resistor that may not only change the resistance level but may also maintain the resistance level after power to the resistive memory has been terminated so that the resistive memory acts as memory. The resistive memory may also have resistances that are positive and negative. In an embodiment, an equivalent of a negative resistance generated by a resistive memory may be generated by implementing negative weight values with a pair of resistive memories. The output of one of the resistive memories from the pair may then be inverted by an inverting circuit. Such characteristics of the resistive memory enables neuromorphic computing to be shrunk down from implementing large computers to a circuit that can be fabricated onto a chip while requiring minimal power due to the analog characteristics of the resistive memory.
- The resistive memories may be positioned in a crossbar configuration in that each resistive memory is positioned at an intersection of a plurality of horizontal wires and a plurality of vertical wires forming a wire grid. An input voltage may be applied to each horizontal wire. Each resistive memory may apply a resistance to each input voltage so that each input voltage is multiplied by each resistance. The positioning of each resistive memory at each intersection of the wire grid enables the multiplying of each input voltage by the resistance of each resistive memory to be done in parallel. The multiplication in parallel enables multiple multiplication operations to be executed simultaneously. Each current relative to each horizontal wire may then be added to generate an accumulative current that is conducted by each vertical wire. The addition of each current to generate the accumulative currents is also done in parallel due to the positioning of the resistive memories at each intersection of the wire grid. The addition in parallel also enables multiple addition operations to be executed simultaneously. The simultaneous execution of addition and multiplication operations in an analog circuit generates significantly more computation power than conventional microprocessors while implementing significantly less power than conventional microprocessors.
- The terms “horizontal” and “vertical” are used herein for ease of discussion to refer to one example of the invention. It should be understood however that such orientation is not required, nor is a perpendicular intersection required. It is sufficient that a plurality of parallel wires intersects a pair of parallel wires to form a crossbar or grid pattern having two wires for adding current and two or more wires for inputting voltages, with a resistive memory positioned at each intersection for multiplication. The intersections may occur at right angles (orthogonal crossing lines) or non-right angles. It may be understood, however, that the orthogonal arrangement provides the simplest means for scaling the circuit to include additional neurons and/or layers of neurons. Further, it may be understood that an orientation having horizontal rows and/or vertical columns is also simpler for scaling purposes and is a matter of the point of reference, and should not be considered limiting. Thus, any grid configuration orientation is contemplated.
- Referring to
FIG. 1 , an analogneuromorphic processing device 100 simultaneously executes several computing operations in parallel. The analogneuromorphic processing device 100 includes a plurality of input voltages 140(a-n) that are applied to a plurality of respective inputs of the analogneuromorphic processing device 100 and the analogneuromorphic processing device 100 then generates a plurality of output signals 180(a-n). - The analog
neuromorphic processing device 100 may include a plurality of resistive memories (not shown) that have variable resistance characteristics that may be exercised not only with low levels of power but may also exercise those variable resistance characteristics after power applied to the resistive memories has been terminated. The variable resistance characteristics of the resistive memories enable the resistive memories to act as memory while maintaining significantly low power requirements compared to conventional microprocessors. The resistive memories are also of nano-scale sizes that enable a significant amount of resistive memories to be configured within the analogneuromorphic processing device 100 while still maintaining significantly low power level requirements. The variable resistance capabilities of the resistive memories coupled with the nano-scale size of the resistive memories enable the resistive memories to be configured so that the analogneuromorphic processing device 100 has significant computational efficiency while maintaining the size of the analogneuromorphic processing device 100 to a chip that may easily be positioned on a circuit board. - For example, the resistive memories may include but are not limited to memristors that are nano-scale variable resistance devices with a significantly large variable resistance range. The physics of the resistive memories, such as memristors, require significantly low power and occupy little space so that the resistive memories may be configured in the analog
neuromorphic processing device 100 to generate significant computational efficiency from a small chip. - The plurality of input voltages 140(a-n), where n is an integer greater than or equal to one, may be applied to corresponding inputs of the analog
neuromorphic processing device 100 to exercise the variable resistance characteristics of the resistive memories. The input voltages 140(a-n) may be applied at a voltage level and for a time period that is sufficient to exercise the variable resistance characteristics of the resistive memories. The input voltages 140(a-n) may vary and/or be substantially similar depending on the types of variable resistance characteristics that are to be exercised by each of the resistive memories. - The resistive memories may be arranged in the analog
neuromorphic processing device 100 such that the resistive memories may simultaneously execute multiple addition and multiplication operations in parallel in response to the input voltages 140(a-n) being applied to the inputs of the analogneuromorphic processing device 100. The variable resistance characteristics of the resistive memories as well as their nano-scale size enables a significant amount of resistive memories to be arranged so that the input voltages 140(a-n) trigger responses in the resistive memories that are then propagated throughout the analogneuromorphic processing device 100 that results in simultaneous multiplication and addition operations that are executed in parallel. - The simultaneous multiplication and addition operations executed in parallel exponentially increase the efficiency of analog
neuromorphic processing device 100 while limiting the power required to obtain such computation capabilities to the input voltages 140(a-n). The resistive memories are passive devices so that the simultaneous multiplication and addition operations executed in parallel are performed in the analog domain, which also exponentially decreases the required power. For example, the analogneuromorphic processing device 100 may have significantly more computational efficiency than traditional microprocessor devices, and may be smaller than traditional microprocessor chips while reducing power in a range from 1,000 times to 1,000,000 times that of traditional microprocessors. - The resistive memories may also be arranged such that the simultaneous execution of the multiplication and addition operations in parallel may be configured as a single computation hub that constitutes a single neuron in a neural network. The variable resistance characteristics and the nano-scale size of the resistive memories further enable the arrangement of resistive memories to be scaled with other arrangements of resistive memories so that the single neuron may be scaled into a neural network including multiple neurons. The scaling of a single neuron into multiple neurons exponentially further increases the computational efficiency of the resulting neural network. In addition, the multiple neurons may be scaled into several layers of neurons that further exponentially increases the computational efficiency of the neural network. The scaling of the resistive memories into additional neurons may be done within the analog
neuromorphic processing device 100 such as within a single chip. However, the analogneuromorphic processing device 100 may also be scaled with other analog neuromorphic circuits contained in other chips to exponentially increase the computational efficiency of the resulting neural network. - As a result, the analog
neuromorphic processing device 100 may be configured into a neural network that has the capability of executing applications with significant computational efficiency, such as image recognition. For example, the output signals 180(a-n), where n is an integer greater than or equal to one, may generate signals that correctly identify an image. The analogneuromorphic processing device 100 may also have the learning capability as will be discussed in further detail below so that analog neuromorphic circuits may successfully execute learning algorithms. - The analog
neuromorphic processing device 100 implemented as a single neuron and/or multiple neurons in a neural network and/or configured with other similar analogneuromorphic processing devices 100 may have significant advantages in traditional computing platforms that require significant computational efficiency with limited power resources and space resources. For example, such traditional computing platforms may include but are not limited to Fast Fourier Transform (FFT) applications, Joint Photographic Experts Group (JPEG) image applications, and/or recognition, mining, and synthesis (RMS) applications. The implementation of low power neural networks that have a limited physical footprint may also enable this type of computational efficiency to be utilized in many systems that have traditionally not been able to experience such computational efficiency due to the high power consumption and large physical footprint of conventional computing systems. Such systems may include but are not limited to military and civilian applications in security (image recognition), robotics (navigation and environment recognition), and/or medical applications (artificial limbs and portable electronics). - The layering of the analog
neuromorphic processing device 100 with other similar analog neuromorphic circuits may enable complex computations to be executed. The compactness of the resistive memory configurations enables fabrication of chips with a high synaptic density in that each chip may have an increased amount of neurons that are fitted onto the chip. The passive characteristics of the resistive memories eliminate the need for software code which increases the security of the analogneuromorphic processing device 100. - Referring to
FIG. 2 , an analogneuromorphic circuit 200 simultaneously executes several computing operations in parallel. The analogneuromorphic circuit 200 includes a plurality of resistive memories 210(a-n) where n is an integer equal to or greater than four, a plurality of horizontal wires 220(a-n) where n is an integer equal to or greater than two, a pair of vertical wires 230(a-b), a plurality of input voltages 240(a-n) where n is an integer equal to or greater than two, a pair of bias voltage connections 250(a-b), a first and second input of a comparator 260(a-b), acomparator 270, an output of thecomparator 280, a pair of weights 290(a-b), and a combinedweight 295. The analogneuromorphic circuit 200 shares many similar features with the analogneuromorphic processing device 100; therefore, only the differences between the analogneuromorphic circuit 200 and the analogneuromorphic processing device 100 are to be discussed in further detail. - The analog
neuromorphic circuit 200 may be representative of a single neuron of a neural network. The analogneuromorphic circuit 200 has the capability to be scaled to interact with several other analog neuromorphic circuits so that multiple neurons may be implemented in the neural network as well as creating multiple layers of neurons in the neural network. Such a scaling capability to include not only multiple neurons but also multiple layers of neurons significantly magnifies the computational efficiency of the neural network, as will be discussed in further detail below. - The resistive memories 210(a-n) may be laid out in a crossbar configuration that includes a high density wire grid. The crossbar configuration enables the resistive memories 210(a-n) to be tightly packed together in the wire grid as will be discussed in further detail below. The tightly packed resistive memories 210(a-n) provides a high density of resistive memories 210(a-n) in a small surface area of a chip such that numerous analog neuromorphic circuits may be positioned in a neural network on a chip while occupying little space. The crossbar configuration also enables the resistive memories 210(a-n) to be positioned so that the analog
neuromorphic circuit 200 may execute multiple addition and multiplication operations in parallel in the analog domain. The numerous neuromorphic circuits may then be positioned in the neural network so that the multiple addition and multiplication operations that are executed in parallel may be scaled significantly, thus exponentially increasing the computational efficiency. The resistive memories 210(a-n) are passive devices so that the multiple addition and multiplication operations executed in parallel are done in the analog domain, which also exponentially decreases the required power. - As a result, the analog neuromorphic circuits that are configured into a neural network have the capability of executing applications requiring significant computation power, such as image recognition. The analog neuromorphic circuits also have learning capability as will be discussed in further detail below so that the analog neuromorphic circuits may successfully execute learning algorithms.
- Referring to
FIG. 3 , in which like reference numerals are used to refer to like parts,neural network configuration 300 that the analogneuromorphic circuit 200 may be implemented and scaled into is shown. Theneural network configuration 300 shares many similar features with the analogneuromorphic processing device 100 and the analogneuromorphic circuit 200; therefore, only the differences between theneural network configuration 200 and the analogneuromorphic processing device 100 and the analogneuromorphic circuit 200 are to be discussed in further detail. - The analog
neuromorphic circuit 200 may be implemented into theneural network configuration 300. The analogneuromorphic circuit 200 may constitute a single neuron, such asneuron 310 a in theneural network configuration 300. As shown inFIG. 3 , theinput voltage 240 a and represented by “A” is applied to thehorizontal wire 220 a, theinput voltage 240 b and represented by “B” is applied to thehorizontal wire 220 b, and theinput voltage 240 n and represented by “C” is applied to the horizontal wire 220 c. The combinedweight 295 as shown inFIG. 2 as representative of the combined weight for theinput voltage 240 a is shown as Wj,i inFIG. 3 . Similar combined weights for theinput voltage 240 b and theinput voltage 240 n may also be represented inFIG. 3 in a similar fashion. The wire grid, the resistive memories 210(a-n), and thecomparator 270 are represented by theneuron 310 a. Theoutput 280 of the analogneuromorphic circuit 200 is coupled toadditional neurons - The analog
neuromorphic circuit 200 may then be scaled so that similar circuits may be configured with the analogneuromorphic circuit 200 to constitute additional neurons, such as neurons 310(b-n) where n is an integer greater than or equal to two. Each of the other neurons 310(b-n) includes similar circuit configurations as the analogneuromorphic circuit 200. However, the resistances of the resistive memories associated with each of the other neurons 310(b-n) may differ from the analogneuromorphic circuit 200 so that outputs that differ from theoutput 280 of the analogneuromorphic circuit 200 may be generated. - Rather than limiting the input voltages 240(a-n) to be applied to a single neuron 310, the input voltages 240(a-n) may also be applied to multiple other neurons 310(b-n) so that each of the additional neurons 310(b-n) also generate outputs that differ from the
output 280 generated by the analogneuromorphic circuit 200. The generation of multiple different outputs from the different neurons 310(a-n) exponentially increases the computational efficiency of theneural network configuration 300. As noted above, the analogneuromorphic circuit 200 represented by theneuron 310 a operates as a single logic function with the type of logic function being adjustable. The addition of neurons 310(b-n) provides additional logic functions that also have the capability of their logic functions being adjustable so that the computational efficiency of theneural network configuration 300 is significant. - In addition to having several different neurons 310(a-n), the analog
neuromorphic circuit 200 may also be scaled to include additional layers of neurons, such as neurons 320(a-b). The scaling of additional layers of neurons also exponentially increases the computational efficiency of theneural network configuration 300 to the extent that theneural network configuration 300 can execute learning algorithms. For example, a neural network configuration with a significant number of input voltages, such as several hundred, that are applied to a significant number of neurons, such as several hundred, that have outputs that are then applied to a significant number of layers of neurons, such as hundreds, may be able to execute learning algorithms. The repetitive execution of the learning algorithms by the extensive neural network configuration may result in the neural network configuration eventually attaining automatic image recognition capabilities. - For example, the neural network configuration may eventually output a high voltage value of “F1” representative of the binary signal “1” and output a low voltage value of “F2” representative of the binary signal “0” when the neural network configuration recognizes an image of a dog. The neural network configuration may then output a low voltage value of “F1” representative of the binary signal “0” and output a high voltage value of “F2” representative of the binary signal “1” when the neural network configuration recognizes an image that is not a dog.
- However, the
neural network configuration 300 does not automatically output a binary signal “1” for “F1” and a binary signal “0” for “F2” when theneural network configuration 300 recognizes an image of a dog. Theneural network configuration 300 may have to execute learning algorithms in millions of iterations until the resistance values of each memristor included in theneural network configuration 300 is at a value so that theneural network configuration 300 outputs a binary signal “1” for “F1” and a binary signal “0” for “F2” when theneural network configuration 300 recognizes the image of a dog. - In an embodiment,
neural network configuration 300 executes a back propagation training algorithm in which the output voltage values of “F1” and “F2” of neurons 320(a-b), respectively after each iteration, are then “propagated back” to neurons 310(a-n). Referring toFIGS. 4A and 4B , in which like reference numerals are used to refer to like parts,neural network configurations neural network configurations neural network configuration 300, the analogneuromorphic circuit 200, and the analogneuromorphic processing device 100; therefore, only the differences between theneural network configurations neural network configuration 300, the analogneuromorphic circuit 200, and the analogneuromorphic processing device 100 are to be discussed in further detail. - As mentioned above, known input voltages 240(a-n) as represented by “A”, “B”, and “C” are applied to neurons 310(a-n). In a simplified example, a displayed image of a dog may generate known input voltages 240(a-n) that are applied to neurons 310(a-n). In such a simplified example, the known
input voltage 240 a applies a binary signal of “1” to input “A”, the knowninput voltage 240 b applies a binary signal of “0” to input “B”, and the knowninput voltage 240 n applies a binary signal of “0” to input “C” after engaging an image of a dog. However, a more realistic example would require significantly more input voltages than three input voltages to reasonably represent a dog. This example discusses three input voltages out of simplicity with regards to representing a dog out of simplicity. Theneural network configuration 400 must generate the appropriate corresponding output voltage values of “F1” and “F2” to correctly identify the image as displaying a dog after the input voltages 240(a-n) are applied to neurons 310(a-n). The desired output voltage values of “F1” and “F2” that are necessary to correctly identify the image as displaying a dog may be known. For example, the binary signal of “1” for “F1” and the binary signal of “0” for “F2” may be a required output for theneural network configuration 400 to properly identify an image as displaying a dog. - The actual output voltage values of “F1” and “F2” for neurons 320(a-b) after the known input voltage values of “A”, “B”, and “C” are applied to neurons 310(a-n) are unknown. The input voltage values of “A”, “B”, and “C” are applied to the memristors included in each of the neurons 310(a-n) with each memristor having a resistance value. Weights 410(a-n) as contained in the resistor values of each memristor included in neurons 310(a-n) are then exercised when the input voltage values of “A”, “B”, and “C” are applied to the resistor values of each memristor included in neurons 310(a-n). The weights 410(a-n) then generate the output voltage value of “F1”. The output voltage value of “F2” is generated in a similar fashion. Thus, the output voltage values of “F1” and “F2” may be a direct correlation to the resistor values of the memristors included in neurons 310(a-n).
- Often times, the output voltage values of “F1” and “F2” differ from the desired output voltages after the input voltage values of “A”, “B”, “C” are applied such that the
neural network configuration 400 fails to execute the appropriate task, such as identifying the image as displaying a dog. For example, the input voltage values of “1” for “A”, “0” for “B”, and “0” for “C” results in an output voltage value of “0” for “F1” and “1” for “F2”. In this example, the known desired output voltage value for “F1” is “1” and “0” for “F2” so that the image is correctly identified as displaying a dog. As a result, the actual output voltage values of “0” for “F1” and “1” for “F2” differ from the desired output voltage values of “1” for “F1” and “0” for “F2”. - The actual output voltage values for “F1” and “F2” may be compared to the desired output voltage values to generate an error output voltage value. In an embodiment, the actual output voltage values may be subtracted from the desired output voltage values to generate the error output voltage values. In this example, the actual output voltage value of “0” for “F1” is subtracted from the desired output value of “1” to generate an error output voltage value of “1”. The actual output voltage value of “1” for “F2” is subtracted from the desired output value of “0” to generate an error output voltage value of “−1”. The comparing of the actual output voltage values from the desired output voltage values may be executed via subtracting the actual output voltage value from the desired output voltage value and/or any other comparing technique that may determine the error output voltage value as would be appreciated by one skilled in the art.
- With the error output voltages known for “F1” and “F2”, the weights associated with neurons 320(a-b) may be updated accordingly in an attempt to rectify the error output voltages generated for “F1” and “F2”. For example, the resistance values of the memristors included in
neuron 320 a may be adjusted to rectify the error output voltage of “1” for “F1” and the resistance values of the memristors included inneuron 320 b may be adjusted to rectify the error output voltage of “−1” for “F2”. The resistance values of the memristors included inneuron 320 a may be adjusted so that the output voltage value of “F2” is eventually substantially equal to the desired output voltage value of “1” and the resistance values of the memristors included inneuron 320 b may be adjusted so that the output voltage of “F2” is eventually substantially equal to the desired output voltage value of “0” so that theneural network configuration 400 eventually correctly identifies the image as displaying the dog. - After the resistance values of the memristors included in the neurons 320(a-b) have been adjusted, the error output voltage value of “1” for “F1” may then be applied to
neuron 320 a and the error output voltage value of “−1” for “F2” may then be applied toneuron 320 b as shown withneural network configuration 450 inFIG. 4B . In applying the error output voltage values for “F1” and “F2” to neurons 320(a-b), respectively, the error output voltage values are then propagated back throughneural network configuration 450. The error output voltage values of “F1” and “F2” are applied to the memristors with the adjusted resistor values. Weights 420(a-b) which differ from weights 410(a-n) are then generated from the error output voltage values of “F1” and “F2” being applied to the adjusted resistor values of each memristor included in neurons 320(a-b). The weights 420(a-b) then generate the propagated output voltage value of “A”. The propagated output voltage values of “B” and “C” are generated in a similar fashion. Thus, the propagated output voltage values of “A”, “B” and “C” may be a direct correlation to the adjusted resistor values of the memristors included in neurons 320(a-b). - The propagated output values of “A”, “B” and “C” may then be compared to the desired output voltage values of “F1” and “F2” to generate additional error output voltages. The resistance values of the memristors included in neurons 310(a-n) may then be adjusted in a similar fashion as the memristors included in neurons 320(a-b) based on the error output voltages. The propagation of error voltages through the
neural network configuration 450 may then continue through several iterations until the output voltage values of “F1” and “F2” are substantially equivalent to the desired output voltage values such that theneural network configuration 450 may correctly identify the image as displaying a dog. - Referring to
FIG. 5 , in which like reference numerals are used to refer to like parts, a detailedneural network configuration 500 implementing analog neuromorphic circuits similar to the analogneuromorphic circuit 200 is shown. Theneural network configuration 500 shares many similar features with the analogneuromorphic circuit 200, theneural network configurations neuromorphic processing device 100; therefore, only the differences between theneural network configuration 500 and the analogneuromorphic circuit 200, theneural network configurations neuromorphic processing device 100 are to be discussed in further detail. - The
neural network configuration 500 includes a firstmemristor crossbar configuration 510. The firstmemristor crossbar configuration 510 includes a plurality of vertical neuron configurations, such asvertical neuron configuration 550 a. An example of a vertical neuron configuration is analogneuromorphic circuit 200 shown inFIG. 2 . The vertical neuron configurations included in the firstmemristor crossbar configuration 510 may represent neurons 310(a-n) as discussed inFIGS. 3, 4A, and 4B . An initialinput voltage signal 540 may be applied to the input of the firstmemristor crossbar configuration 510 as discussed in detail with regards to the input voltages 240(a-n) being applied to neurons 310(a-n) in theneural network configuration 400 shown inFIG. 4A . The initialinput voltage signal 540 may then propagate through the memristors included in the firstmemristor crossbar configuration 510 in which the resistance values in each of the memristors represent weights used to generate a set of output voltages which may then be applied as aninput voltage signal 520 to a secondmemristor crossbar configuration 530. - The second
memristor crossbar configuration 530 includes both avertical neuron configuration 560 a as well as a plurality of horizontal neuron configurations, such ashorizontal neuron configuration 570 a. Thevertical neuron configuration 560 a as well as the plurality of horizontal neuron configurations may represent neurons 320(a-b) as discussed inFIGS. 3, 4A , and 4B. As theinput voltage signal 520 is applied to the secondmemristor crossbar configuration 530, theinput voltage signal 520 propagates through thevertical neuron configuration 560 a in which the resistance values of the memristors included in thevertical neuron configuration 560 a generate a first output voltage signal 580 a. The first output voltage signal 580 a may represent the output voltage values of “F1” and “F2” as discussed inFIGS. 3 , 4A, and 4B. The first output voltage signal 580 a may then be compared to a desired output signal 590 a to generate afirst error signal 595. The comparison of the first output voltage signal 580 a to the desired output signal 590 a to generate thefirst error signal 595 may be done in a similar fashion as the output voltage values “F1” and “F2” are compared to the desired output voltage value to generate the error voltage value as discussed inFIGS. 3, 4A, and 4B . Thefirst error signal 595 is then propagated back through the secondmemristor crossbar configuration 530 as discussed in detail with regards to theneural network configuration 450 inFIG. 4B . - In propagating back through the second
memristor crossbar configuration 530, thefirst error signal 595 may then be applied to the secondmemristor crossbar configuration 530. Thefirst error signal 595 may propagate through the plurality of horizontal neuron configurations, such ashorizontal neuron configuration 570 a, in which the resistance values of the memristors included in the plurality of horizontal neuron configurations generate a secondoutput voltage signal 505. The secondoutput voltage signal 505 may then be compared to theinput voltage signal 520 to generate asecond error signal 535. As shown inFIG. 5 , thesecond error signal 535 is then applied to the firstmemristor crossbar configuration 510 as the initialinput voltage signal 540. - In propagating the
first error signal 595 back through the secondmemristor crossbar configuration 530 as well as propagating thesecond error signal 535 back through the firstmemristor crossbar configuration 510, the resistance values for each memristor included in the firstmemristor crossbar configuration 510 and the secondmemristor crossbar configuration 530 may be adjusted accordingly. The resistance values for each memristor may be adjusted such that following each of the iterations in generating thefirst error signal 595 and thesecond error signal 535, the magnitudes of thefirst error signal 595 and thesecond error signal 535 are decreased. After several iterations of adjusting the resistance values for each memristor, the magnitudes of thefirst error signal 595 and thesecond error signal 535 may be decreased sufficiently such that the first output voltage signals 580(a-b) of the secondmemristor crossbar configuration 530 are within thresholds the desired output signals 590(a-b). The convergence of the first output voltage signals 580(a-b) to the desired output signals 590(a-b) may indicate that theneural network configuration 500 accurately executes the required task, such as identifying an image that is displaying a dog. The functionality of theneural network configuration 500 may be discussed in further detail below. - Referring to
FIGS. 6A and 6B , the functionality of the verticalneural network configuration 560 a as discussed inFIG. 5 with regards to the discussion of theneural network configuration 400 as discussed inFIG. 4A is presented in further detail below for clarity. Theneural network configuration 600 as presented inFIG. 6A includes the similar features as theneural network configuration 400 as presented inFIG. 4A . The secondmemristor crossbar configuration 650 as presented inFIG. 6B includes the similar features as the secondmemristor crossbar configuration 530 as presented inFIG. 5 in which the functionality of the verticalneural network configuration 560 a is discussed in further detail. - The
input voltage signal 520 generated by the firstmemristor crossbar configuration 510 is applied to a horizontal input of the secondmemristor crossbar configuration 650 similar to the input voltages 240(a-n) being applied to neurons 310(a-n) inFIG. 6A . The horizontal input is the input of the secondmemristor crossbar configuration 650 that is coupled to the output of the firstmemristor crossbar configuration 510. Theinput voltage signal 520 then propagates through the verticalneural network configuration 560 a. As theinput voltage signal 520 propagates through the verticalneural network configuration 560 a, the weights 410(a-n) as represented by the resistance values of each memristor included in the verticalneural network configuration 560 a are exercised when theinput voltage signal 520 is applied to theneural network configuration 560 a as inFIG. 6A . The weights 410(a-n) then generate the first output voltage signal 580 a which is similar to the output voltage value of “F1” inFIG. 6A . Thus, the first output voltage signal 580 a may be a direct correlation to the resistance values of the memristors included in the verticalneural network configuration 560 a. - The first output voltage signal 580 a may then be compared to the desired output signal 590 a. As discussed above, the desired output signal 590 a may be the signal required so that the task may be appropriately executed, such as identifying an image displaying a dog. The comparisons of the first output voltage signal 580 a to the desired output signal 590 a generates the first error signal 595 a in which the first error signal 595 a may be the difference between the desired output signal 590 a and the first output voltage signal 580 a. As noted above, the weights associated with the neurons included in the second
memristor crossbar configuration 650 may be updated accordingly in an attempt to rectify the first error signal 595 a so that the first error signal 595 a is within a threshold of the desired output signal 590 a. The threshold from the desired output signal 590 a may be an adequate threshold such that the task may be appropriate executed, such as identifying an image displaying a dog. - The first error signal 595 a may be applied to a
vertical input 525 a of the secondmemristor crossbar configuration 650. Referring toFIGS. 7A and 7B , the functionality of the horizontalneural network configuration 570 a as discussed inFIG. 5 with regards to the discussion of theneural network configuration 450 as discussed inFIG. 4B is presented in further detail below for clarity. Theneural network configuration 700 as presented inFIG. 7A includes similar features as theneural network configuration 450 as presented inFIG. 4B . The secondmemristor crossbar configuration 750 as presented inFIG. 7B includes similar features as the secondmemristor crossbar configuration 530 as presented inFIG. 5 in which the functionality of the horizontalneural network configuration 570 a is discussed in further detail. - After the first error signal 595 a is generated via the vertical
neural network configuration 560 a, the first error signal 595 a is applied to thevertical input 525 a of the secondmemristor crossbar configuration 650 so that the first error signal 595 a may be propagated back through the secondmemristor crossbar configuration 750. This is similar to the error output voltage value of “F1” being appliedneuron 320 a and propagated back through theneural network configuration 700 as inFIG. 7A . Weights 420(a-b) are then generated for the horizontalneural network configuration 570 a that differ from the weights 410(a-n) generated for the verticalneural network configuration 560 a due to the different memristors included in the horizontalneural network configuration 570 a as compared to the memristors included in the verticalneural network configuration 560 a. Weights 420(a-b) as shown inFIG. 7B correspond to the weights 420(a-b) as shown inFIG. 7A as the error output voltage is propagated back through the neural network configurations. Thevertical input 525 a is the input of the secondmemristor crossbar configuration 750 that is not coupled to the output of the firstmemristor crossbar configuration 510 while enabling the first error signal 595 a to propagate through each of the horizontal neural network configurations, such as the horizontalneural network configuration 570 a. The weights 420(a-b) as shown inFIG. 7B then generate thesecond output signal 505. Thus, the second output signal 505 a may be a direct correlation to the resistance values of the memristors included in the horizontalneural network configuration 570 a. - As noted above, the
second output signal 505 may then be compared to theinput voltage signal 520 to generate thesecond error signal 535. Thesecond error signal 535 may then be propagated back through the firstmemristor crossbar configuration 510 as the initialinput voltage signal 540. The resistance values of each memristor included in the firstmemristor crossbar configuration 510 and the secondmemristor crossbar configuration 530 may be adjusted accordingly so that the first error signal 595(a-b) eventually converges to the desired output signal 590(a-b). - The implementation of the vertical
neural network configuration 560 a as shown inFIG. 5 andFIG. 6B as well as the horizontalneural network configuration 570 a as shown inFIG. 5 andFIG. 7B may significantly decrease the quantity of iterations required for the first error signal 595(a-b) to converge to the desired output signal 590(a-b). The combination of thevertical network configuration 560 a with thehorizontal network configuration 570 a in a single memristor crossbar configuration, such as the secondmemristor crossbar configuration 530, implements the same memristors for both the generation of the weights 410(a-n) as well as the generation of the weights 420(a-b). Thus, the exercising of different weights, such as weights 410(a-n) and weights 420(a-b), from memristors within a single memristor crossbar configuration may be implemented for both the initial application of voltages to the single memristor crossbar configuration as well as the propagation of the error voltages generated by the second memristor crossbar configuration back through the entire neural network. - The implementation of the a single memristor crossbar configuration for both the initial application of voltages as well as the propagation of error voltages back through the neural network prevents additional memristor crossbar configurations from being implemented into the neural network. Having a memristor crossbar configuration devoted to the application of the initial application of voltages and then another memristor crossbar configuration devoted to the propagation of error voltages back through the neural network compounds the quantity of iterations necessary for the error voltage to converge within a threshold of the desired output voltage exponentially. Additionally, having memristors included in the memristor crossbar configuration devoted to the initial application of voltages as well as memristors included in the memristor crossbar configuration devoted to the propagation of error voltages with similar resistance values is quite difficult. The difference in resistance values has a significant impact on the convergence of the error voltage to the desired output voltage. Implementing the same memristors in a single memristor crossbar configuration for both the application of the initial voltage as well as the propagation of the error signal eliminates any difference in resistance values.
- Referring to
FIG. 8A , the functionality oftraining unit 545 andtraining unit 555 as shown inFIG. 5 is discussed in further detail. Thetraining units first crossbar configuration 510 and thesecond crossbar configuration 530. Thetraining unit 555 compares thefirst error signal 595 with a reference voltage signal. An example of a reference voltage signal is an error signal generated from a different crossbar configuration. Based on the comparison of thefirst error signal 595 with the reference voltage signal, thetraining unit 555 generates a training voltage signal that is then used to update the resistance values of the memristors included in thesecond crossbar configuration 530. Thetraining unit 545 compares the secondoutput voltage signal 505 with theinput voltage signal 520. Based on the comparison of the secondoutput voltage signal 505 with theinput voltage signal 520, thetraining unit 545 updates the resistance values of the memristors included in thefirst crossbar configuration 510. -
FIG. 8A depicts anexample resistance adjuster 800. Theexample resistance adjuster 800 can be implemented for bothtraining units training unit 555,input voltage signal 810 is represented by thefirst error signal 595 which is the difference between the first output voltage signal 580 of thesecond crossbar configuration 530 and the desired output signal 590. As noted above, thefirst error signal 595 is then applied to the vertical input 525 of thesecond crossbar configuration 530 in which thefirst error signal 595 is then propagated back through the memristors included in thesecond crossbar configuration 530. The resistance adjusters implemented fortraining units - In an embodiment, the
first error signal 595, as represented by theinput voltage signal 810 inFIG. 8A , is first compared bycomparator 840 to areference voltage signal 820. Thecomparator 840 then generates atraining voltage signal 830 that may then be applied to thesecond crossbar configuration 530 to adjust the resistances of the memristors in thesecond crossbar configuration 530 so that the difference between the first output voltage signal 580 and the desired output signal 590 is decreased. Thereference voltage signal 820 may be any type of known voltage signal that when compared with theinput voltage signal 810, such as thefirst error signal 595, an adequatetraining voltage signal 830 is generated that can be used to adequately adjust the memristors in a crossbar configuration as will be appreciated by one of ordinary skill in the art. For example, thereference voltage signal 820 may be an error signal generated from a different crossbar configuration. - In an embodiment, the
reference voltage signal 820 is a digital signal, such as a binary signal and theinput voltage signal 810 is a multivalued signal as shown inFIG. 8B .FIG. 8B depicts asignal behavior 850 of thereference voltage signal 820, theinput voltage signal 810 and thetraining voltage signal 830. Thecomparator 840 may then generate thetraining voltage signal 830 such that thetraining voltage signal 830 is a binary signal. The conversion of thetraining voltage signal 830 to a binary signal by the comparator enables thetraining voltage signal 830 to be easily transferred to different cores in a multi-core system without the need of digital to analog converters required to convert multivalued signals to binary signals. An example of a core in a multi-core system is thefirst crossbar configuration 510 as a first core and thesecond crossbar configuration 530 as the second core. Several additional cores may also be included in the system. The conversion of thetraining voltage signal 830 to a binary signal enables thetraining voltage signal 830 to be easily applied as thesecond error signal 535 to thefirst crossbar configuration 510 as well as the being easily applied as thefirst error signal 595 to thesecond crossbar configuration 530. - The implementation of the
resistance adjuster 800 eliminates the need of additional digital to analog converters to be associated with the configuration. The additional digital to analog converters would convert multivalued signals outputted by each of the first and second crossbar configurations to binary signals so that the binary signals could be applied to each of the first and second crossbar configurations. Although more precise than theresistance adjuster 800, the digital to analog converters require additional power and space for the configuration that is not required with theresistance adjuster 800. - In an embodiment, the second
output voltage signal 505, as represented by theinput voltage signal 810 inFIG. 8B , is first compared bycomparator 840 to theinput voltage signal 520, as represented by thereference voltage signal 820. Thecomparator 840 then generates atraining voltage signal 830 that may then be applied to thefirst crossbar configuration 510 to adjust the resistances of the memristors in thefirst crossbar configuration 510 so that the difference between the firstoutput voltage signal 480 and the desired output signal 590 is decreased. - Referring back to the analog
neuromorphic circuit 200 ofFIG. 2 , both the input and its complemented form are applied to the analogneuromorphic circuit 200. In the analogneuromorphic circuit 200, a complemented input voltage (such as A (bar)) has the same magnitude but opposite polarity as the original input voltage 240(a-n) (such as A). For the input voltage pair A inFIG. 2 , if σAi+ is higher than σA−, then the synapse for input voltage A has a positive weight. Likewise if σA+ is less than σA−, the synapse has a negative weight. This applies to each of the input voltages 240(a-n). Theoutput 280 of thecomparator 270 at the bottom of the circuit represents the output of the analogneuromorphic circuit 200. The potential at the first comparator input (DPj) is given by -
- where the conductance of the resistive memories 210(a-n) of
FIG. 2 from top to bottom are σA+, σA−, . . . , σC+, σC. - Eq. 1 indicates that the analog
neuromorphic circuit 200 is essentially carrying out a set of multiply-add operations in parallel in the analog domain. For the analogneuromorphic circuit 200 inFIG. 2 , the approximation of the activation function may be executed using a pair of CMOS inverters setting the power rails to Vdd=1V and Vss=−1V. The analogneuromorphic circuit 200 is essentially providing discrete neuron output ofvalues 1 or −1. - Training of a multi-layer neural network, such as the
neural network configuration 500 inFIG. 5 , is required in order to obtain the appropriate output such as the identification of a dog when an image of a dog is observed. An example training mechanism for the multi-layer neural network is provided below. However, any other training technique may be implemented as would be appreciated by one skilled in the art. -
- 1) Initialize the resistive memories 210(a-n) with random resistances.
- 2) For each input pattern x provided via initial
input voltage signal 540 to the neural network configuration 500:- i) Apply the input pattern x to the first
memristor crossbar configuration 510 and evaluate,record DP 1 values and outputs of all neurons (hidden neurons and output neurons). - ii) For each output layer neuron i, calculate the error, δi, between the neuron output (Fi) and the target output (Di).
- i) Apply the input pattern x to the first
-
δi=sgn(D i −F i) (2) -
-
- iii) Back propagate the error for each hidden layer neuron j.
-
-
δj=sgn(Σkδk w k,j) (3) -
-
-
- where neuron k is connected to the previous layer neuron j.
- iv) Determine the amount, Δw, that each neuron's synapses should be changed (ηπ/2 is the learning rate):
-
-
-
-
-
- v) Apply write pulses to the crossbar with pulse widths proportional to Δwj to update the resistive memory conductance.
- 3) If the error in the output layer has not converged to a sufficiently small value, return to
step 2.
-
- The training circuit is able to generate a variable pulse width so that resistive memory conductance may be updated according to the learning rule in Eq. (4). From Eq. (4) and (5) the weight update amount depends inversely on the DPj value of the corresponding neuron. To determine the DPj value of a neuron, the crossbar column may be accessed implementing the neuron (input of the inverter pair in the neuron circuit). The DPj value of the neuron and the updated weights of the neuron may not be accessed at the same time. In this circuit, the value of DPj may be stored in a capacitor and may be used to determine the desired training pulse width. To reduce the training circuit overhead a single capacitor may be implemented for a layer of neurons and the weights are updated one neuron at a time. The value DPj for each of the neurons in the crossbar may be connected to the capacitor in the training unit through pass transistors and will be charged as Vc. The training unit may access the desired DPj value by enabling the corresponding pass transistor. For each neuron, the weights may be updated in two steps: increasing and decreasing. During the increasing step, the conductance of the resistive memories 210(a-n) that require positive update may be updated. During the decreasing step the conductance of the resistive memories 210(a-n) requiring a conductance decrease may be modified.
- The circuit in
FIG. 8A is essentially a pulse width modulation circuit which may be used to pulse the memristor crossbar during training. The term η×gth(DPj) in the training rule (Eq. (4)) is implemented using the voltage single Vref which is a triangular wave. The term η may determine the slope and duration of the triangular pulse. Here Vop is equal to VDD when Vref>Vc, otherwise Vop is equal to VSS. FromFIG. 8A , the smaller a Vc generates longer pulse and vice versa. - It is to be appreciated that the Detailed Description section, and not the Abstract section, is intended to be used to interpret the claims. The Abstract section can set forth one or more, but not all exemplary embodiments, of the present disclosure, and thus, is not intended to limit the present disclosure and the appended claims in any way.
- While the present invention has been illustrated by the description of one or more embodiments thereof, and while the embodiments have been described in considerable detail, they are not intended to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in art. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and method and illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the scope of the general inventive concept.
Claims (20)
1. An analog neuromorphic circuit that implements a plurality of resistive memories, comprising:
a plurality of resistive memories configured to:
provide a resistance to an input voltage signal as the input voltage signal propagates through the plurality of resistive memories generating a first output voltage signal, and
provide a resistance to a first error signal that propagates through the plurality of resistive memories generating a second output voltage signal;
a first comparator configured to:
compare the first output voltage signal to a desired output signal, wherein the desired output signal is at a signal level that the first output voltage signal is desired to be within a threshold of the signal level,
generate the first error signal that is representative of a difference between the first output voltage signal and the desired output signal, and
provide the first error signal so that the first error signal propagates back through the plurality of resistive memories; and
a resistance adjuster configured to adjust a resistance value associated with each resistive memory based on the first error signal and the second output voltage signal to decrease the difference between the first output voltage signal and the desired output signal.
2. The analog neuromorphic circuit of claim 1 , further comprising:
a second comparator configured to:
compare the second output voltage signal to the input voltage signal,
generate a second error signal that is representative of a difference between the second output voltage signal and the input voltage signal, and
provide the second error signal to an additional analog neuromorphic circuit.
3. The analog neuromorphic circuit of claim 1 , wherein the plurality of resistive memories is arranged in a grid configuration that includes at least two rows and at least two columns of resistive memories so that each column of resistive memories is grouped as a vertical neuron configuration and each set of two rows of resistive memories is grouped as a horizontal neuron configuration.
4. The analog neuromorphic circuit of claim 3 , wherein the input voltage signal is propagated through each vertical neuron configuration so that each resistance of each resistive memory included in each of the vertical neuron configurations contribute to the generation of the first output voltage signal.
5. The analog neuromorphic circuit of claim 4 , wherein the first error signal is propagated back through the plurality of resistive memories via each horizontal neuron configuration so that each resistance of each resistive memory included in each of the horizontal neuron configurations contributes to the generation of the second output voltage signal.
6. The analog neuromorphic circuit of claim 5 , wherein the propagation of the input voltage signal through each of the vertical neuron configurations to generate the first output voltage signal and the propagation of the first error signal back through the plurality of resistive memories via each of the horizontal neuron configurations to generate the second output voltage signal is executed without additional resistive memories associated with additional analog neuromorphic circuits.
7. The analog neuromorphic circuit crossbar configuration of claim 1 , wherein each resistive memory is a memristor.
8. A method for adjusting resistances of a plurality of resistive memories positioned in an analog neuromorphic circuit, comprising:
applying an input voltage signal to the neuromorphic circuit;
providing a resistance to the input voltage signal by each resistive memory as the input voltage signal propagates through the plurality of resistive memories to generate a first output voltage signal;
comparing the first output voltage signal to a desired output signal, wherein the desired output signal is at a signal level that the first output voltage signal is desired to be within a threshold of the signal level;
generating a first error signal that is representative of a difference between the first output voltage signal and the desired output signal;
providing the first error signal so that the first error signal propagates back through the plurality of resistive memories;
providing a resistance to the first error signal by each resistive memory as the first error signal propagates back through the plurality of resistive memories to generate a second output voltage signal; and
adjusting a resistance value associated with each resistive memory based on the first error signal and the second output voltage signal to decrease the difference between the first output voltage signal and the desired output signal.
9. The method of claim 8 , further comprising:
comparing the second output voltage signal to the input voltage signal;
generating a second error signal that is representative of a difference between the second output voltage signal and the input voltage signal; and
providing the second error signal to an additional analog neuromorphic circuit.
10. The method of claim 8 , further comprising:
arranging the plurality of resistive memories in a grid configuration that includes at least two rows and at least two columns of resistive memories so that each column of resistive memories is grouped as a vertical neuron configuration and each set of two rows of resistive memories is grouped as a horizontal neuron configuration.
11. The method of claim 10 , further comprising:
propagating the input voltage signal through each vertical neuron configuration so that each resistance of each resistive memory included in each of the vertical neuron configurations contributes to the generation of the first output voltage signal.
12. The method of claim 11 , further comprising:
propagating back the first error signal through the plurality of resistive memories via each of the horizontal neuron configuration so that each resistance of each resistive memory included in each of the horizontal neuron configurations contributes to the generation of the second output voltage signal.
13. The method of claim 12 , further comprising:
executing the propagation of the input voltage signal through each of the vertical neuron configurations to generate the first output voltage signal and the propagation of the first error signal back through the plurality of resistive memories via each of the horizontal neuron configurations to generate the second output signal without additional resistive memories associated with additional analog neuromorphic circuits.
14. The method of claim 8 , wherein each resistive memory is a memristor.
15. An analog neuromorphic system that implements a plurality of resistive memories, comprising:
a first analog neuromorphic circuit that includes a first plurality of resistive memories that is configured to:
apply a first set of weights to an input voltage signal that is generated as an output signal from another analog neuromorphic circuit as the input voltage signal propagates through the first plurality of resistive memories generating a first output voltage signal, wherein the first set of weights is generated by resistance values applied by the first plurality of resistive memories to the input voltage signal, and
apply a second set of weights to a first error signal as the first error signal propagates back through the first plurality of resistive memories generating a second output voltage signal, wherein the second set of weights is generated by resistance values applied by the first plurality of resistive memories;
a comparator configured to:
generate the first error signal that is representative of a difference between the first output voltage signal and a desired output voltage signal, wherein the desired output signal is at a signal level that the first output voltage signal is desired to be within a threshold of the signal level,
generate a second error signal that is representative of a difference between the second output voltage signal and the desired output signal; and
a resistance adjuster configured to:
adjust a resistance value associated with each resistive memory included in the first plurality of resistive memories based on the first error signal and the second error signal to decrease the difference between the first output voltage signal and the desired output signal and the difference between the second output voltage signal and the desired output signal, and
provide the first error signal and the second error signal to an additional analog neuromorphic circuit.
16. The analog neuromorphic system that implements a plurality of resistive memories, comprising:
a second analog neuromorphic circuit that includes a second plurality of resistive memories that is configured to:
apply a third set of weights to an initial input voltage signal as the initial input voltage signal propagates through the second plurality of resistive memories generating the input voltage signal, wherein the second set of weights is generated by resistance values applied by the second plurality of resistive memories to the initial input voltage signal, and
apply the third set of weights to the second error output signal as the second error output signal propagates through the second plurality of resistive memories;
the comparator further configured to:
generate the second error signal that is representative of a difference between the second output voltage signal and the input voltage signal.
17. The analog neuromorphic system of claim 16 , wherein the first and second pluralities of resistive memories are arranged in a grid configuration that includes at least two rows and at least two columns of resistive memories so that each column of resistive memories is grouped as a vertical neuron configuration and each set of two rows of resistive memories is grouped as a horizontal neuron configuration.
18. The analog neuromorphic system of claim 17 , wherein the input voltage signal is propagated through each vertical neuron configuration included in the first plurality of resistive memories so that each resistance of each resistive memory included in each of the vertical neuron configurations contributes to the generation of the first output voltage signal.
19. The analog neuromorphic system of claim 18 , wherein the first error signal is propagated back through the first plurality of restive memories via each horizontal neuron configuration so that each resistance of each resistive memory included in each of the horizontal neuron configurations contributes to the generation of the second output voltage signal.
20. The analog neuromorphic system of claim 19 , wherein the propagation of the input voltage signal through each of the vertical neuron configurations to generate the first output voltage signal and the propagation of the first error signal back through the first plurality of resistive memories via each of the horizontal neuron configurations to generate the second output voltage signal is executed without additional resistive memories associated with additional analog neuromorphic circuits.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/242,352 US20230409893A1 (en) | 2015-07-06 | 2023-09-05 | On-chip training of memristor crossbar neuromorphic processing systems |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562189026P | 2015-07-06 | 2015-07-06 | |
US15/202,995 US10885429B2 (en) | 2015-07-06 | 2016-07-06 | On-chip training of memristor crossbar neuromorphic processing systems |
US17/141,981 US11748609B2 (en) | 2015-07-06 | 2021-01-05 | On-chip training of memristor crossbar neuromorphic processing systems |
US18/242,352 US20230409893A1 (en) | 2015-07-06 | 2023-09-05 | On-chip training of memristor crossbar neuromorphic processing systems |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/141,981 Continuation US11748609B2 (en) | 2015-07-06 | 2021-01-05 | On-chip training of memristor crossbar neuromorphic processing systems |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230409893A1 true US20230409893A1 (en) | 2023-12-21 |
Family
ID=57731146
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/202,995 Active 2039-08-09 US10885429B2 (en) | 2015-07-06 | 2016-07-06 | On-chip training of memristor crossbar neuromorphic processing systems |
US17/141,981 Active 2037-09-16 US11748609B2 (en) | 2015-07-06 | 2021-01-05 | On-chip training of memristor crossbar neuromorphic processing systems |
US18/242,352 Pending US20230409893A1 (en) | 2015-07-06 | 2023-09-05 | On-chip training of memristor crossbar neuromorphic processing systems |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/202,995 Active 2039-08-09 US10885429B2 (en) | 2015-07-06 | 2016-07-06 | On-chip training of memristor crossbar neuromorphic processing systems |
US17/141,981 Active 2037-09-16 US11748609B2 (en) | 2015-07-06 | 2021-01-05 | On-chip training of memristor crossbar neuromorphic processing systems |
Country Status (1)
Country | Link |
---|---|
US (3) | US10885429B2 (en) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10332004B2 (en) * | 2015-07-13 | 2019-06-25 | Denso Corporation | Memristive neuromorphic circuit and method for training the memristive neuromorphic circuit |
WO2017131632A1 (en) * | 2016-01-26 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Memristive arrays with offset elements |
US11741352B2 (en) * | 2016-08-22 | 2023-08-29 | International Business Machines Corporation | Area and power efficient implementation of resistive processing units using complementary metal oxide semiconductor technology |
US10909449B2 (en) | 2017-04-14 | 2021-02-02 | Samsung Electronics Co., Ltd. | Monolithic multi-bit weight cell for neuromorphic computing |
US10171084B2 (en) * | 2017-04-24 | 2019-01-01 | The Regents Of The University Of Michigan | Sparse coding with Memristor networks |
WO2018217632A1 (en) * | 2017-05-22 | 2018-11-29 | University Of Florida Research Foundation | Deep learning in bipartite memristive networks |
KR20180136202A (en) * | 2017-06-14 | 2018-12-24 | 에스케이하이닉스 주식회사 | Convolution Neural Network and a Neural Network System Having the Same |
JP6724869B2 (en) * | 2017-06-19 | 2020-07-15 | 株式会社デンソー | Method for adjusting output level of neurons in multilayer neural network |
US11348002B2 (en) | 2017-10-24 | 2022-05-31 | International Business Machines Corporation | Training of artificial neural networks |
US20190251430A1 (en) * | 2018-02-13 | 2019-08-15 | International Business Machines Corporation | Mixed signal cmos rpu with digital weight storage |
US11403529B2 (en) * | 2018-04-05 | 2022-08-02 | Western Digital Technologies, Inc. | Noise injection training for memory-based learning |
US11157810B2 (en) | 2018-04-16 | 2021-10-26 | International Business Machines Corporation | Resistive processing unit architecture with separate weight update and inference circuitry |
WO2019210276A1 (en) * | 2018-04-26 | 2019-10-31 | David Schie | Analog learning engine and method |
US10943652B2 (en) * | 2018-05-22 | 2021-03-09 | The Regents Of The University Of Michigan | Memory processing unit |
US11195089B2 (en) * | 2018-06-28 | 2021-12-07 | International Business Machines Corporation | Multi-terminal cross-point synaptic device using nanocrystal dot structures |
US11250316B2 (en) * | 2018-08-10 | 2022-02-15 | International Business Machines Corporation | Aggregate adjustments in a cross bar neural network |
US12111878B2 (en) | 2018-10-12 | 2024-10-08 | International Business Machines Corporation | Efficient processing of convolutional neural network layers using analog-memory-based hardware |
US11481611B2 (en) | 2018-11-02 | 2022-10-25 | International Business Machines Corporation | RRAM crossbar array structure for multi-task learning |
CN109657787B (en) * | 2018-12-19 | 2022-12-06 | 电子科技大学 | Two-value memristor neural network chip |
KR102692218B1 (en) * | 2018-12-19 | 2024-08-05 | 에스케이하이닉스 주식회사 | Neuromorphic system performing supervised training using error back propagation |
KR102368962B1 (en) * | 2019-03-22 | 2022-03-03 | 국민대학교산학협력단 | Neural network system including gate circuit for controlling memristor array circuit |
CN110147597B (en) * | 2019-05-10 | 2022-12-27 | 山东科技大学 | Multi-stable-state magnetic control memristor equivalent simulation circuit |
CN110842915B (en) * | 2019-10-18 | 2021-11-23 | 南京大学 | Robot control system and method based on memristor cross array |
CN111079365B (en) * | 2019-12-12 | 2023-11-10 | 杭州电子科技大学 | Simulator of arc tangent trigonometric function memristor |
KR102584868B1 (en) | 2020-01-06 | 2023-10-04 | 서울대학교산학협력단 | On-chip training neuromorphic architecture |
US11562240B2 (en) | 2020-05-27 | 2023-01-24 | International Business Machines Corporation | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference |
WO2022005673A1 (en) * | 2020-06-29 | 2022-01-06 | Micron Technology, Inc. | Neuromorphic operations using posits |
US11443171B2 (en) | 2020-07-15 | 2022-09-13 | International Business Machines Corporation | Pulse generation for updating crossbar arrays |
US11568217B2 (en) | 2020-07-15 | 2023-01-31 | International Business Machines Corporation | Sparse modifiable bit length deterministic pulse generation for updating analog crossbar arrays |
CN113985261B (en) * | 2021-07-07 | 2024-08-09 | 四川大学锦城学院 | Simulation circuit fault diagnosis method based on neural network |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5101361A (en) * | 1989-09-29 | 1992-03-31 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Analog hardware for delta-backpropagation neural networks |
US7398259B2 (en) | 2002-03-12 | 2008-07-08 | Knowmtech, Llc | Training of a physical neural network |
US20110004579A1 (en) | 2008-03-14 | 2011-01-06 | Greg Snider | Neuromorphic Circuit |
US9269042B2 (en) | 2010-09-30 | 2016-02-23 | International Business Machines Corporation | Producing spike-timing dependent plasticity in a neuromorphic network utilizing phase change synaptic devices |
US8274312B2 (en) | 2011-02-25 | 2012-09-25 | The United States Of America As Represented By The Secretary Of The Air Force | Self-reconfigurable memristor-based analog resonant computer |
KR101888468B1 (en) | 2011-06-08 | 2018-08-16 | 삼성전자주식회사 | Synapse for a function cell of spike-timing-dependent plasticity(stdp), the function cell of spike-timing-dependent plasticity, and a neuromorphic circuit using the function cell of spike-timing-dependent plasticity |
FR2977350B1 (en) | 2011-06-30 | 2013-07-19 | Commissariat Energie Atomique | NETWORK OF ARTIFICIAL NEURONS BASED ON COMPLEMENTARY MEMRISTIVE DEVICES |
FR2977351B1 (en) | 2011-06-30 | 2013-07-19 | Commissariat Energie Atomique | NON-SUPERVISING LEARNING METHOD IN ARTIFICIAL NEURON NETWORK BASED ON MEMORY NANO-DEVICES AND ARTIFICIAL NEURON NETWORK USING THE METHOD |
US9460387B2 (en) | 2011-09-21 | 2016-10-04 | Qualcomm Technologies Inc. | Apparatus and methods for implementing event-based updates in neuron networks |
US9015092B2 (en) | 2012-06-04 | 2015-04-21 | Brain Corporation | Dynamically reconfigurable stochastic learning apparatus and methods |
US9111224B2 (en) | 2011-10-19 | 2015-08-18 | Qualcomm Incorporated | Method and apparatus for neural learning of natural multi-spike trains in spiking neural networks |
US9015091B2 (en) | 2011-11-09 | 2015-04-21 | Qualcomm Incorporated | Methods and apparatus for unsupervised neural replay, learning refinement, association and memory transfer: structural plasticity and structural constraint modeling |
US8832009B2 (en) | 2012-05-15 | 2014-09-09 | The United States Of America As Represented By The Secretary Of The Air Force | Electronic charge sharing CMOS-memristor neural circuit |
US20140058679A1 (en) | 2012-08-23 | 2014-02-27 | Apple Inc. | Wake Status Detection for Suppression and Initiation of Notifications |
JP5659361B1 (en) * | 2013-07-04 | 2015-01-28 | パナソニックIpマネジメント株式会社 | Neural network circuit and learning method thereof |
-
2016
- 2016-07-06 US US15/202,995 patent/US10885429B2/en active Active
-
2021
- 2021-01-05 US US17/141,981 patent/US11748609B2/en active Active
-
2023
- 2023-09-05 US US18/242,352 patent/US20230409893A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210201125A1 (en) | 2021-07-01 |
US10885429B2 (en) | 2021-01-05 |
US20170011290A1 (en) | 2017-01-12 |
US11748609B2 (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748609B2 (en) | On-chip training of memristor crossbar neuromorphic processing systems | |
US11907831B2 (en) | Analog neuromorphic circuit implemented using resistive memories | |
US11954588B2 (en) | Analog neuromorphic circuits for dot-product operation implementing resistive memories | |
US10740671B2 (en) | Convolutional neural networks using resistive processing unit array | |
US9779355B1 (en) | Back propagation gates and storage capacitor for neural networks | |
US11087204B2 (en) | Resistive processing unit with multiple weight readers | |
US9715655B2 (en) | Method and apparatus for performing close-loop programming of resistive memory devices in crossbar array based hardware circuits and systems | |
US10339041B2 (en) | Shared memory architecture for a neural simulator | |
CN108009640A (en) | The training device and its training method of neutral net based on memristor | |
US12050997B2 (en) | Row-by-row convolutional neural network mapping for analog artificial intelligence network training | |
CN115699028A (en) | Efficient tile mapping for line-by-line convolutional neural network mapping that simulates artificial intelligence network reasoning | |
Lu et al. | NVMLearn: a simulation platform for non-volatile-memory-based deep learning hardware | |
US20140365413A1 (en) | Efficient implementation of neural population diversity in neural system | |
AU2021296187B2 (en) | Suppressing undesired programming at half-selected devices in a crosspoint array of 3-terminal resistive memory | |
Kendall et al. | Deep learning in memristive nanowire networks | |
US20240037380A1 (en) | Resistive memory circuit for liquid state machine with temporal classifcation | |
US20230028592A1 (en) | Analog neuromoprhic circuit with stacks of resistive memory crossbar configurations | |
Lee et al. | Mitigating The Impact of ReRAM IV Nonlinearity and IR Drop via Fast Offline Network Training | |
Bo et al. | A self-learning analog neural processor | |
Tagare | A Multicore Neuromorphic Chip Design Using Multilevel Synapses in 65nm Standard CMOS Technology | |
Kuruvada | Memory storage in a variable threshold artificial neural network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: UNIVERSITY OF DAYTON, OHIO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TAHA, TAREK M.;HASAN, MD RAQIBUL;YAKOPCIC, CHRIS;SIGNING DATES FROM 20171017 TO 20171021;REEL/FRAME:064799/0226 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |