US20180336470A1 - Deep learning in bipartite memristive networks - Google Patents

Deep learning in bipartite memristive networks Download PDF

Info

Publication number
US20180336470A1
US20180336470A1 US15/985,212 US201815985212A US2018336470A1 US 20180336470 A1 US20180336470 A1 US 20180336470A1 US 201815985212 A US201815985212 A US 201815985212A US 2018336470 A1 US2018336470 A1 US 2018336470A1
Authority
US
United States
Prior art keywords
current
voltage
error delta
input
output
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.)
Abandoned
Application number
US15/985,212
Inventor
Jack D. Kendall
Juan C. Nino
Laura E. Suarez
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Florida Research Foundation Inc
Original Assignee
University of Florida Research Foundation Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Florida Research Foundation Inc filed Critical University of Florida Research Foundation Inc
Priority to US15/985,212 priority Critical patent/US20180336470A1/en
Publication of US20180336470A1 publication Critical patent/US20180336470A1/en
Priority to US18/138,984 priority patent/US20230297839A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • G06N3/0635
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0073Write using bi-directional cell biasing

Definitions

  • a memristor is a passive non-linear two-terminal electrical component.
  • the electrical resistance of the device depends on a history of current that previously flowed through it (or voltage applied across it).
  • the resistance of a memristor can be changed incrementally by placing a voltage differential or drop across it. When this voltage drop is removed, the memristor retains its current value of resistance. If the polarity of the voltage drop is reversed, the resistance will change in the opposite direction.
  • a memristor can act as an artificial synapse with a weight equivalent to its conductance.
  • the strength of the weight can be modified over time by controlling the voltage drop across the memristor.
  • Memristors typically have a threshold voltage drop, below which no change in conductance will occur.
  • memristors for synaptic networks has been proposed as a promising approach in the field of neuromorphic circuit development.
  • Memristors have been incorporated into crossbar synapse networks with complementary metal oxide semiconductor (CMOS)-based circuitry for presynaptic and postsynaptic voltage control.
  • CMOS complementary metal oxide semiconductor
  • CMOS-based voltage and current control can be used to generate changes in the resistance or impedance (e.g., memory) of memristors.
  • inputs can be presented as voltages to a set of electrodes in a network of memristors.
  • voltages or currents are read out. These are taken to be the outputs of the neural network.
  • the goal of learning in such a memristive neural network is to change the conductances of the memristors in order to minimize some cost or error function.
  • One example embodiment includes a method to train a memristive network having a number of input nodes and a number of output nodes.
  • the memristive network can include a bipartite memristive network, and the method can reproduce a backpropagation algorithm for training the memristive network.
  • the method includes applying an input voltage or current to an input node among the number of input nodes, grounding an output node among the number of output nodes, measuring an output current or voltage at the output node, comparing the output current or voltage to a target current or voltage to determine an error delta, and applying a threshold voltage or current to the output node for a time period proportional to a magnitude of the error delta.
  • the method can also include applying a positive threshold voltage or current to the output node for the time period proportional to the error delta, and applying a negative threshold voltage or current to the output node for the time period proportional to the error delta.
  • the method can include reversing a polarity of the input voltage or current applied to the input node, applying a positive threshold voltage or current to the output node for the time period proportional to the error delta, and applying a negative threshold voltage or current to the output node for the time period proportional to the error delta.
  • the method can further include transforming the error delta into an error delta voltage or current, applying the error delta voltage or current to the output node, and applying the threshold voltage or current to the input node for a second time period proportional to an absolute value of the error delta voltage or current.
  • the method can include applying a positive threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current, and applying a negative threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current.
  • the method can further include reversing a polarity of the error delta voltage or current applied to the output node, applying a positive threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current, and applying a negative threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage.
  • a memristive network in another embodiment, includes a number of nanofibers, wherein each nanofiber comprises a metallic core and a memristive shell, a number of electrodes deposited upon the nanofibers, wherein the number of electrodes comprise a number of input nodes and a number of output nodes, and a training processor.
  • the training processor can be configured to apply an input voltage or current to an input node among the number of input nodes, ground an output node among the number of output nodes, measure an output current or voltage at the output node, compare the output current or voltage to a target current or voltage to determine an error delta, and apply a threshold voltage or current to the output node for a time period proportional to a magnitude of the error delta.
  • FIG. 1A illustrates an example network architecture of a memristive nanofiber neural network according to various embodiments described herein.
  • FIG. 1B illustrates example connections between input and output electrodes and memristive nanofibers in the neural network shown in FIG. 1A according to various embodiments described herein.
  • FIG. 1C illustrates an example equivalent circuit of a portion of the neural network shown in FIG. 1A according to various embodiments described herein.
  • FIG. 2 illustrates an example bipartite memristive network and an alternate feedforward form of the bipartite memristive network with inputs and outputs segregated according to various embodiments described herein.
  • FIG. 3 illustrates an example linear model of a memristor with a threshold V T according to various embodiments described herein.
  • FIG. 4 illustrates an example training processor for training the feedforward network shown in FIG. 2 according to various embodiments described herein.
  • FIG. 5A illustrates an example memristive network training process according to various embodiments described herein.
  • FIG. 5B further illustrates the example memristive network training process shown in FIG. 5A according to various embodiments described herein.
  • FIG. 5C further illustrates the example memristive network training process shown in FIG. 5A according to various embodiments described herein.
  • a memristor can act as an artificial synapse with a weight equivalent to its conductance.
  • the strength of the weight can be modified over time by controlling the voltage drop across the memristor.
  • Memristors typically have a threshold voltage drop, below which no change in conductance will occur.
  • inputs can be presented as voltages to a set of electrodes in a network of memristors.
  • voltages or currents are read out. These are taken to be the outputs of the neural network.
  • the goal of learning in such a memristive neural network is to change the conductances of the memristors in order to minimize some cost or error function.
  • the concepts described herein are directed to a bipartite memristive network and method of teaching such a network.
  • the memristive network can include a number of nanofibers, wherein each nanofiber comprises a conductive or metallic core and a memristive shell.
  • the memristive network can also include a number of electrodes deposited upon the nanofibers.
  • a first set of the number of electrodes can include input electrodes in the memristive network, and a second set of the number of electrodes can include output electrodes in the memristive network.
  • the memristive network can be embodied as a bipartite memristive network and trained according to the method of teaching described herein.
  • the concepts described herein are applicable to other forms and structures of bipartite memristive networks (e.g., other than using nanofibers). Further, while the figures illustrate a number of example networks, electrodes, etc., the concepts described herein can be applied to other forms, structures, and sizes of bipartite memristive networks.
  • FIG. 1A illustrates an example network architecture of a memristive nanofiber neural network 10 according to various embodiments described herein.
  • the neural network 10 takes the form of a bipartite memristive network.
  • a number of memristive nanofibers 12 (“nanofibers 12 ” or “nanofiber 12 ”) are randomly aligned on a substrate, and a set of input/output electrodes 14 are deposited on top of the nanofibers 12 .
  • the neural network 10 can be formed in any suitable manner, such as the method described in U.S. Non-Provisional patent application Ser. No. 15/383,527, titled “MEMRISTIVE NANOFIBER NEURAL NETWORKS,” the entire contents of which is hereby incorporated herein by reference.
  • the conductive core 12 A of the nanofibers 12 can be formed from doped titanium dioxide (TiO 2 ), using a percursor of titanium isopropoxide, titanium butoxide, or another suitable precursor.
  • the memristive shell 12 B can be formed around the conductive metallic core 12 A by electrospinning the outer shell of the conductive core 12 A with a memristive material.
  • FIG. 1C illustrates an example equivalent circuit of a portion of the neural network 10 shown in FIG. 1A .
  • the interface resistance between two of the nanofibers 12 when overlapping and contacting each other in the neural network 10 , can be much higher than the resistance between an electrode 14 and a nanofiber 12 . This is because the contact area between two of the nanofibers 12 is typically very small, and the contact point is between two insulating memristive shells 12 B.
  • each electrode 14 contacts a longer length or section of the memristive shell 12 B of each nanofiber 12 , and the voltage drop is across only a single memristive shell 12 B, rather than two memristive shells 12 B between two nanofibers 12 .
  • FIG. 2 illustrates an example bipartite memristive network 20 and an alternate feedforward form 30 of the bipartite memristive network 20 .
  • the electrodes 14 in FIG. 1A which are referred to as external electrodes in FIG. 2 , are connected to the conductive metallic cores 12 A of the nanofibers 12 through the memristive shells 12 B.
  • the electrodes 14 are not directly connected to one another.
  • the conductive metallic cores 12 A of the nanofibers 12 which are referred to as internal electrodes, are connected to the external electrodes 14 through the memristive shells 12 B.
  • the electrodes 14 are separated into a number of input electrodes 14 A and output electrodes 14 B. If it is assumed that the nanofibers 12 are effectively insulated or isolated from one another electrically, the feedforward form 30 of the bipartite memristive network 20 will take the form of a bipartite graph as shown.
  • the alternate feedforward form 30 of the bipartite memristive network 20 can be operated as a three-layer feedforward neural network. If more hidden layers are needed, several such networks (e.g., similar to the feedforward form 30 ) can be linked together.
  • Kirchoff's laws can be used to determine the voltage drops across the memristive shells 12 B (or simply “memristors” as described below). Once the voltage drops and currents through the feedforward network 30 are identified, an appropriate memristor model can be applied to determine how to change the conductances of these memristors over time.
  • G ij is the instantaneous conductance of a memristor connecting external node i to internal node j and the sum runs over all external nodes (i.e., the input and output nodes).
  • Equation (1) can be arranged to solve for the voltage at internal node j as shown below. Since summation is linear and V j is not indexed by i:
  • the currents at the output node k can be solved for using the voltages at the internal nodes. Since the output nodes are all grounded, the current is given by:
  • FIG. 3 illustrates an example linear model of a memristor with a threshold V T according to various embodiments described herein.
  • the weights between the internal and output nodes are considered since these weights require only the delta rule for learning.
  • the delta rule is given as follows:
  • T k is the desired output current
  • I k is the measured output current
  • V j is the applied voltage at internal node j
  • is the learning rate
  • the error delta (T k ⁇ I k ) is positive, it would be desirable to make the current I k more positive, thus decreasing the error. This can be accomplished by strengthening the connections to internal nodes which are positive, and weakening the connections to internal nodes which are negative. If the error delta is negative, the opposite should occur.
  • the form of the delta rule is such that it is linear in both the error delta and the activation of the internal nodes. If a linear neuron with a threshold V T is assumed, the following equation is of the form of the conductance change:
  • ⁇ ⁇ ⁇ G ⁇ ⁇ ⁇ ( ⁇ ⁇ ⁇ V - V T ) ⁇ t if ⁇ ⁇ ⁇ ⁇ V > V T - ⁇ ⁇ ( ⁇ ⁇ ⁇ V + V T ) ⁇ t if ⁇ ⁇ ⁇ ⁇ V ⁇ - V T 0 if ⁇ ⁇ V T > ⁇ ⁇ ⁇ V > - V T . ( 8 )
  • Equation (8) ⁇ is analogous to the learning rate, ⁇ V is the voltage drop across the memristor, and t is the duration of the applied voltage.
  • the graph of the above equation, not including duration, is given in FIG. 3 .
  • Equation (8) is a simple model for a memristor with a threshold, so it can be used in deriving the learning algorithm. However, other memristor models, including those with noise, also work with the derived algorithm.
  • the duration t can be set to be proportional to the magnitude of this error delta.
  • the resulting change in conductance of the memristor G kj can also be made to be proportional to the voltage V j at internal node j as described below.
  • the voltages at the internal nodes cannot be changed directly and may be unknown. However, the voltages and/or currents at the inputs and/or outputs can be directly measured. Since the outputs are all grounded initially, changing the voltage on a single output will perturb the voltages at the internal nodes. However, provided there are many inputs and outputs, this will result in only a small perturbation.
  • connections to negative internal nodes can be weakened and connections to positive internal nodes can be strengthened. This can be accomplished by reversing the voltage polarities of all inputs (thus flipping the signs of all internal nodes), followed by the same procedure described above. This will flip the direction of the voltage drop across each memristor in each case.
  • the above weighted sum can be reproduced as a voltage on internal node j, and the same methods described above can be applied to change the conductances proportionally to this voltage.
  • FIG. 4 illustrates an example training processor 110 for training the feedforward network 30 shown in FIG. 2 according to various embodiments described herein.
  • the training processor 110 includes a data store 120 , an interface module 130 , a measurement module 140 , and a training module 150 .
  • the data store 120 stores various types of data, including the training data 122 and the network data 124 .
  • the training data 122 can be relied upon by the training module 150 to train the feedforward network 30 .
  • the training data 122 can include data that defines the target weights between the internal nodes (e.g., the conductive metallic cores 12 A) in the feedforward network 30 and the output nodes (e.g., the input electrodes 14 A and/or the output electrodes 14 B).
  • the training data 122 can define the target levels or values of conductance to be programmed into each of the memristive shells 12 B in the feedforward network 30 .
  • the training data 122 can be based on any suitable model for training, for any purpose of training a network.
  • the network data 124 can include data that defines the network structure of the feedforward network 30 , such as the connections between the conductive metallic cores 12 A, the input electrodes 14 A, and the output electrodes 14 B.
  • the network data 124 can define the memristor connections formed by the memristive shells 12 B between the conductive metallic cores 12 A, the input electrodes 14 A, and the output electrodes 14 B shown in FIG. 4 .
  • the training module 150 can reference the network data 124 to determine the appropriate sequence of steps to use for training the feedforward network 30 .
  • the interface module 130 can include one or more circuits to provide an electrical interface with the input electrodes 14 A and the output electrodes 14 B.
  • the interface module 130 can include circuitry capable of providing input voltages and/or currents to one or more of the input electrodes 14 A and/or the output electrodes 14 B.
  • the interface module 130 can include circuitry capable of grounding one or more of the input electrodes 14 A and/or the output electrodes 14 B.
  • the interface module 130 can also include circuitry capable of reading voltages and/or currents at one or more of the input electrodes 14 A and/or the output electrodes 14 B.
  • the measurement module 140 can include one or more circuits to take measurements at one or more of the input electrodes 14 A and/or the output electrodes 14 B.
  • the measurement module 140 can measure voltages and/or currents at one or more of the input electrodes 14 A and/or the output electrodes 14 B.
  • the measurement module 140 can also calculate the difference between various voltages, currents, etc., to determine the differences between measured and target values.
  • Both the interface module 130 and the measurement module 140 can be embodied as any suitable network of analog and/or digital circuitry, including amplifiers, filters, and processing circuitry, with memory.
  • the training module 150 can be embodied as processing circuitry capable of conducting the memristive network training process shown in FIGS. 5A, 5B, and 5C .
  • the training module 150 can direct the interface module 130 to train the conductances or weights between the input electrodes 14 A and the conductive cores 12 A of the internal nodes.
  • the training module 150 can also direct the interface module 130 to train the conductances or weights between the conductive cores 12 A of the internal nodes and the output electrodes 14 B.
  • the internal structure of the feedforward network 30 (e.g., the individual connections and/or conductances of the memristive shell 12 B connections between the input electrodes 14 A, the output electrodes 14 B, and the conductive cores 12 A) may be unknown.
  • the algorithm performed by the training module 150 is designed to perform the training process implicitly.
  • the training module 150 is effectively self-organizing a set of pathways between the input electrodes 14 A and the conductive cores 12 A, and between the output electrodes 14 B and the conductive cores 12 A.
  • the pathways are defined or organized through adjusting the conductances of the memristive shells 12 B between the input electrodes 14 A, the output electrodes 14 B, and the conductive cores 12 A.
  • the training module 150 can start with a set of target currents at the output electrodes 14 B.
  • FIGS. 5A-5C illustrate an example memristive network training process for training a feedforward network according to various embodiments described herein.
  • the training process is described in connection with the feedforward network 30 and the training processor 110 shown in FIG. 4 .
  • the training processor 110 is configured to perform the process shown in FIGS. 5A-5C .
  • other feedforward networks can be trained by other training processors using the process shown in FIGS. 5A-5C .
  • the process diagrams show an order of operation or execution, the order can differ from that which is shown. For example, the order of execution of two or more process steps can be switched relative to the order shown or as described below. Also, two or more process steps shown in succession can be executed concurrently or with partial concurrence. Further, in some examples, one or more of the process steps shown in the process diagrams can be skipped or omitted.
  • the training module 150 can first train the conductances or weights (e.g., the conductances of the memristors) the between the conductive cores 12 A of the internal nodes and the output electrodes 14 B in the feedforward network 30 .
  • the process includes applying input power to one or more input nodes of a feedforward network.
  • the training module 150 can direct the interface module 130 to apply a voltage between ⁇ 1 ⁇ 2 V T and 1 ⁇ 2 V T to one or more of the input electrodes 14 A of the feedforward network 30 .
  • the training module 150 can direct the interface module 130 to apply a voltage between ⁇ 1 ⁇ 2 V T and 1 ⁇ 2 V T to each of the input electrodes 14 A.
  • the training module 150 can direct the interface module 130 to apply or drive a certain level of current to one or more of the input electrodes 14 A.
  • the process can include grounding one or more output nodes of the feedforward network.
  • the training module 150 can direct the interface module 130 to ground one or more of the output electrodes 14 B of the feedforward network 30 .
  • the training module 150 can direct the interface module 130 to ground each of the output electrodes 14 B.
  • the currents at the output electrodes 14 B can be solved for by the training module 150 . Since the output electrodes 14 B are all grounded at step 204 , the current can be given by Equation (6). As noted above, this is a linear transformation of the hidden nodes by a matrix of conductances. At the same time, the actual currents at the output electrodes 14 B are accessible by the interface module 130 for measurement by the measurement module 140 .
  • the process can include the measurement module 140 measuring an output current at one or more of the output electrodes 14 B.
  • the measurement module 140 can measure an output current each of the output electrodes 14 B, in turn, and store those values in the data store 120 for further processing.
  • the measurement module 140 can also measure output voltages at one or more of the output electrodes 14 B at step 106 in some cases.
  • the process can include the training module 150 comparing the output current (or voltage) at the one or more of the output electrodes 14 B, as measured at step 206 , with a target or desired output current (or voltage) to determine a first error delta.
  • Step 208 can be performed, in sequence, for each of the output electrodes 14 B, and a first error delta can be determined for each of the output electrodes 14 B.
  • the error deltas can be stored in the data store 120 for further processing.
  • Step 208 follows from the application of the delta rule according to Equation (7) above. If the error delta (e.g., (T k ⁇ I k ) in Equation (7)) is positive, it would be desirable to make the current or currents measured at step 206 greater, thus decreasing the error. This can be accomplished by strengthening the connections to internal nodes which are positive, and weakening the connections to internal nodes which are negative. If the error delta is negative, it would be desirable to make the current or currents measured at step 206 smaller to decrease the error.
  • the error delta e.g., (T k ⁇ I k ) in Equation (7)
  • the process can include the training module 150 applying a threshold voltage or current to one or more of the output electrodes 14 B for a time period proportional to a magnitude of the first error delta determined at step 208 .
  • a first error delta can be determined at step 208 for a first one of the output electrodes 14 B.
  • the training module 150 can direct the interface module 130 to apply a positive threshold voltage V T or a negative threshold voltage ⁇ V T to the first one of the output electrodes 14 B for a time period proportional to a magnitude of the first error delta determined for the first one of the output electrodes 14 B at step 208 .
  • the remaining output electrodes 14 B i.e., other than the first
  • Step 210 can iterate over each of the of the output electrodes 14 B, in turn.
  • the process includes the training module 150 determining whether the error delta (e.g., (T k ⁇ I k ) in Equation (7)) from step 208 for the first one of the output electrodes 14 B is negative. If the error delta is negative, then the process proceeds to step 304 . If the error delta is positive, then the process proceeds to step 308 .
  • the error delta e.g., (T k ⁇ I k ) in Equation (7)
  • the process includes the training module 150 applying a positive threshold voltage or current to one or more of the output nodes for the time period proportional to the error delta.
  • a positive threshold voltage or current can be determined at step 208 for a first one of the output electrodes 14 B.
  • the training module 150 can direct the interface module 130 to apply a positive threshold voltage V T to the first one of the output electrodes 14 B for a time period proportional to the magnitude of the error delta determined at step 208 .
  • the remaining output electrodes 14 B i.e., other than the first
  • the quantity driving the conductance change ⁇ G ⁇ ( ⁇ V ⁇ V T ) is therefore proportional to V j . If the error delta is negative (i.e., the “Yes” branch from step 302 in FIG. 5B ), the current should be more negative. Therefore, it would be desirable to strengthen the connection to the internal nodes with negative voltages. Since, in the above case, ⁇ V>V T , the application of V T at step 304 to the first one of the output electrodes 14 B can increase the conductances to all negative internal nodes by an amount proportional to the V j of each node.
  • the process can also include applying a negative threshold voltage or current to one or more of the output nodes for the time period proportional to the error delta.
  • the training module 150 can direct the interface module 130 to apply a negative threshold voltage ⁇ V T to the first one of the output electrodes 14 B for a time period t proportional to the magnitude of the error delta determined at step 208 .
  • the remaining output electrodes 14 B i.e., other than the first can remain grounded at step 306 .
  • step 306 the voltage drop ( ⁇ V T ⁇ V j ) across all internal nodes with negative voltages will be under the threshold for conductance change, effectively isolating the internal nodes with positive V j .
  • the magnitude of the conductance changes across these positive internal nodes are also proportional to the voltages at each internal node in the direction to decrease, rather than increase, the conductance. Again, this is what is required for an output node with negative error delta (i.e., the “Yes” branch from step 302 in FIG. 5B ). Steps 304 and 306 can occur for all output electrodes 14 B with a negative error deltas.
  • connections to negative internal nodes can be weakened and connections to positive internal nodes can be strengthened. This can be accomplished by reversing the voltage polarities of all inputs (thus flipping the signs of all internal nodes) at step 308 .
  • the process includes the training module 150 reversing a polarity of the input voltage or current applied to the input electrodes 14 A. This can be a reversal of the polarity of the voltage or current applied to the input electrodes 14 A at step 202 .
  • steps 310 and 312 the process includes steps similar to steps 304 and 306 , respectively. Steps 308 , 310 , and 312 can occur for all output electrodes 14 B with a positive error delta. The process can return from FIG. 5B to step 212 in FIG. 5A .
  • the training module 150 can now train the conductances or weights between the input electrodes 14 A and the conductive cores 12 A of the internal nodes. Since the voltages applied to input electrodes 14 A were restricted to between ⁇ 1 ⁇ 2 V T and 1 ⁇ 2 V T among steps 202 , 204 , 206 , 208 , and 210 , the weights between the input electrodes 14 A and the conductive cores 12 A of the internal nodes could not have changed during the training of the output weights, as the maximum voltage drop from input node to internal node cannot exceed V T .
  • the process can include the training module 150 transforming, for one or more of the output electrodes 14 B, the first error deltas of the output electrodes 14 B determined at step 208 , into second error deltas for the output electrodes 14 B.
  • the training module 150 can transform the first error delta current (e.g., (T k ⁇ I k ) in Equation (7)) for the first one the output electrodes 14 B into a second error delta, which may be a voltage.
  • the second error delta can be proportionate to the first error delta, but converted from a current to a voltage, for example, or from a voltage to a current.
  • Step 212 can be performed for each of the output electrodes 14 B with reference to the first error deltas from step 208 which were stored in the data store 120 .
  • the process can include grounding one or more input nodes of the feedforward network.
  • the training module 150 can direct the interface module 130 to ground one or more of the input electrodes 14 A of the feedforward network 30 .
  • the training module 150 can direct the interface module 130 to ground each of the input electrodes 14 A.
  • the process can include, for each of the output electrodes 14 B, applying the second error delta determined at step 212 to the output electrode 14 B.
  • a second error delta which can be a voltage
  • the training module 150 can direct the interface module 130 to apply the second error delta voltages for each of the output electrodes 14 B, respectively, to the output electrodes 14 B.
  • Step 216 can also include applying threshold voltages or currents to the input electrodes 14 A, in turn, for a second time period proportional to an absolute value of the second error delta.
  • step 216 The procedure of step 216 is shown in greater detail in FIG. 5C .
  • the training module 150 can direct the interface module 130 to apply the second error delta voltages determined at step 212 for each of the output electrodes 14 B, respectively, to the output electrodes 14 B.
  • the process includes the training module 150 determining whether original input applied to one of the input electrodes 14 A at step 202 in FIG. 5A , was negative. If the original input was negative, then the process proceeds to step 324 . If the original input was positive, then the process proceeds to step 328 .
  • the process includes the training module 150 applying a positive threshold voltage or current to one or more of the input nodes for the time period proportional to the second error delta.
  • the training module 150 can direct the interface module 130 to apply a positive threshold voltage V T to one of the input electrodes 14 A for a second time period proportional to an absolute value of the second error delta determined at step 212 in FIG. 5A .
  • the training module 150 can direct the interface module 130 to apply a negative threshold voltage ⁇ V T to the first one of the input electrodes 14 A for the second time period.
  • the remaining input electrodes 14 A i.e., other than the first
  • the process includes the training module 150 reversing a polarity of the second error delta voltages applied to the output electrodes 14 B at step 320 .
  • the process includes the training module 150 applying a positive threshold voltage or current to one or more of the input nodes for the time period proportional to the second error delta.
  • the training module 150 can direct the interface module 130 to apply a positive threshold voltage V T to one of the input electrodes 14 A for a second time period proportional to an absolute value of the second error delta determined at step 212 in FIG. 5A .
  • the training module 150 can direct the interface module 130 to apply a negative threshold voltage ⁇ V T to the first one of the input electrodes 14 A for the second time period.
  • the remaining input electrodes 14 A i.e., other than the first
  • the algorithm presented in FIGS. 5A-5C reproduces the backpropagation algorithm in bipartite memristive networks.
  • the algorithm can, in some cases, be applied or used in alternative sequences.
  • certain voltages and currents are described as being applied and/or measured in the algorithm, it should be appreciated that the measurement or application of a voltage can be substituted by that of a current.
  • the measurement or application of a current can be substituted by that of a voltage. Since the algorithm only iterates over each external node once per training example, it is first order in time with respect to the number of nodes. This is in contrast with the standard implementation of the backpropagation algorithm, which is second order in time.
  • each element can represent a module or group of code that includes program instructions to implement the specified logical function(s).
  • the program instructions can be embodied in the form of, for example, source code that includes human-readable statements written in a programming language or machine code that includes machine instructions recognizable by a suitable execution system, such as a processor in a computer system or other system.
  • each element can represent a circuit or a number of interconnected circuits that implement the specified logical function(s).
  • the training processor 110 can include at least one processing circuit.
  • a processing circuit can include, for example, one or more processors and one or more storage or memory devices coupled to a local interface.
  • the local interface can include, for example, a data bus with an accompanying address/control bus or any other suitable bus structure.
  • the storage or memory devices can store data or components that are executable by the processors of the processing circuit.
  • the training module 150 and/or other components can be stored in one or more storage devices and be executable by one or more processors in the training processor 110 .
  • the training module 150 and other components described herein can be embodied in the form of hardware, as software components that are executable by hardware, or as a combination of software and hardware. If embodied as hardware, the components described herein can be implemented as a circuit or state machine that employs any suitable hardware technology.
  • the hardware technology can include, for example, one or more microprocessors, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, programmable logic devices (e.g., field-programmable gate array (FPGAs), and complex programmable logic devices (CPLDs)).
  • one or more or more of the components described herein that include software or program instructions can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, a processor in a computer system or other system.
  • the computer-readable medium can contain, store, and/or maintain the software or program instructions for use by or in connection with the instruction execution system.
  • a computer-readable medium can include a physical media, such as, magnetic, optical, semiconductor, and/or other suitable media.
  • Examples of a suitable computer-readable media include, but are not limited to, solid-state drives, magnetic drives, or flash memory.
  • any logic or component described herein can be implemented and structured in a variety of ways. For example, one or more components described can be implemented as modules or components of a single application. Further, one or more components described herein can be executed in one computing device or by using multiple computing devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Micromachines (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Control Of Voltage And Current In General (AREA)
  • Measurement Of Resistance Or Impedance (AREA)
  • Measurement Of Current Or Voltage (AREA)

Abstract

A bipartite memristive network and method of teaching such a network is described herein. In one example case, the memristive network can include a number of nanofibers, wherein each nanofiber comprises a metallic core and a memristive shell. The memristive network can also include a number of electrodes deposited upon the nanofibers. A first set of the number of electrodes can include input electrodes in the memristive network, and a second set of the number of electrodes can include output electrodes in the memristive network. The memristive network can be embodied as a bipartite memristive network and trained according to the method of teaching described herein.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application claims the benefit of U.S. Provisional Application No. 62/509,423, filed May 22, 2017, the entire contents of which is hereby incorporated herein by reference. This application is also related to U.S. Non-Provisional patent application Ser. No. 15/383,527, titled “MEMRISTIVE NANOFIBER NEURAL NETWORKS,” the entire contents of which is hereby incorporated herein by reference.
  • BACKGROUND
  • A memristor is a passive non-linear two-terminal electrical component. In a memristor, the electrical resistance of the device depends on a history of current that previously flowed through it (or voltage applied across it). Thus, the resistance of a memristor can be changed incrementally by placing a voltage differential or drop across it. When this voltage drop is removed, the memristor retains its current value of resistance. If the polarity of the voltage drop is reversed, the resistance will change in the opposite direction.
  • In certain circuit configurations, a memristor can act as an artificial synapse with a weight equivalent to its conductance. The strength of the weight can be modified over time by controlling the voltage drop across the memristor. Memristors typically have a threshold voltage drop, below which no change in conductance will occur.
  • The use of memristors for synaptic networks has been proposed as a promising approach in the field of neuromorphic circuit development. Memristors have been incorporated into crossbar synapse networks with complementary metal oxide semiconductor (CMOS)-based circuitry for presynaptic and postsynaptic voltage control. Those circuits demonstrate that CMOS-based voltage and current control can be used to generate changes in the resistance or impedance (e.g., memory) of memristors.
  • In a memristive neural network, inputs can be presented as voltages to a set of electrodes in a network of memristors. At a separate set of electrodes in the network, voltages or currents are read out. These are taken to be the outputs of the neural network. The goal of learning in such a memristive neural network is to change the conductances of the memristors in order to minimize some cost or error function.
  • SUMMARY
  • One example embodiment includes a method to train a memristive network having a number of input nodes and a number of output nodes. The memristive network can include a bipartite memristive network, and the method can reproduce a backpropagation algorithm for training the memristive network.
  • In one example, the method includes applying an input voltage or current to an input node among the number of input nodes, grounding an output node among the number of output nodes, measuring an output current or voltage at the output node, comparing the output current or voltage to a target current or voltage to determine an error delta, and applying a threshold voltage or current to the output node for a time period proportional to a magnitude of the error delta.
  • When the error delta is negative, the method can also include applying a positive threshold voltage or current to the output node for the time period proportional to the error delta, and applying a negative threshold voltage or current to the output node for the time period proportional to the error delta. When the error delta is positive, the method can include reversing a polarity of the input voltage or current applied to the input node, applying a positive threshold voltage or current to the output node for the time period proportional to the error delta, and applying a negative threshold voltage or current to the output node for the time period proportional to the error delta.
  • In other aspects, the method can further include transforming the error delta into an error delta voltage or current, applying the error delta voltage or current to the output node, and applying the threshold voltage or current to the input node for a second time period proportional to an absolute value of the error delta voltage or current.
  • When the input voltage or current applied to the input node was positive, the method can include applying a positive threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current, and applying a negative threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current. When the input voltage or current applied to the input node was negative, the method can further include reversing a polarity of the error delta voltage or current applied to the output node, applying a positive threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current, and applying a negative threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage.
  • In another embodiment, a memristive network includes a number of nanofibers, wherein each nanofiber comprises a metallic core and a memristive shell, a number of electrodes deposited upon the nanofibers, wherein the number of electrodes comprise a number of input nodes and a number of output nodes, and a training processor.
  • The training processor can be configured to apply an input voltage or current to an input node among the number of input nodes, ground an output node among the number of output nodes, measure an output current or voltage at the output node, compare the output current or voltage to a target current or voltage to determine an error delta, and apply a threshold voltage or current to the output node for a time period proportional to a magnitude of the error delta.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily drawn to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. In the drawings, like reference numerals designate corresponding parts throughout the several views.
  • FIG. 1A illustrates an example network architecture of a memristive nanofiber neural network according to various embodiments described herein.
  • FIG. 1B illustrates example connections between input and output electrodes and memristive nanofibers in the neural network shown in FIG. 1A according to various embodiments described herein.
  • FIG. 1C illustrates an example equivalent circuit of a portion of the neural network shown in FIG. 1A according to various embodiments described herein.
  • FIG. 2 illustrates an example bipartite memristive network and an alternate feedforward form of the bipartite memristive network with inputs and outputs segregated according to various embodiments described herein.
  • FIG. 3 illustrates an example linear model of a memristor with a threshold VT according to various embodiments described herein.
  • FIG. 4 illustrates an example training processor for training the feedforward network shown in FIG. 2 according to various embodiments described herein.
  • FIG. 5A illustrates an example memristive network training process according to various embodiments described herein.
  • FIG. 5B further illustrates the example memristive network training process shown in FIG. 5A according to various embodiments described herein.
  • FIG. 5C further illustrates the example memristive network training process shown in FIG. 5A according to various embodiments described herein.
  • DETAILED DESCRIPTION
  • As noted above, a memristor can act as an artificial synapse with a weight equivalent to its conductance. The strength of the weight can be modified over time by controlling the voltage drop across the memristor. Memristors typically have a threshold voltage drop, below which no change in conductance will occur.
  • In a memristive neural network, inputs can be presented as voltages to a set of electrodes in a network of memristors. At a separate set of electrodes in the network, voltages or currents are read out. These are taken to be the outputs of the neural network. The goal of learning in such a memristive neural network is to change the conductances of the memristors in order to minimize some cost or error function.
  • The concepts described herein are directed to a bipartite memristive network and method of teaching such a network. In one example case, the memristive network can include a number of nanofibers, wherein each nanofiber comprises a conductive or metallic core and a memristive shell. The memristive network can also include a number of electrodes deposited upon the nanofibers. A first set of the number of electrodes can include input electrodes in the memristive network, and a second set of the number of electrodes can include output electrodes in the memristive network. The memristive network can be embodied as a bipartite memristive network and trained according to the method of teaching described herein. The concepts described herein are applicable to other forms and structures of bipartite memristive networks (e.g., other than using nanofibers). Further, while the figures illustrate a number of example networks, electrodes, etc., the concepts described herein can be applied to other forms, structures, and sizes of bipartite memristive networks.
  • FIG. 1A illustrates an example network architecture of a memristive nanofiber neural network 10 according to various embodiments described herein. As described in further detail below, the neural network 10 takes the form of a bipartite memristive network. In the neural network 10, a number of memristive nanofibers 12 (“nanofibers 12” or “nanofiber 12”) are randomly aligned on a substrate, and a set of input/output electrodes 14 are deposited on top of the nanofibers 12.
  • FIG. 1B illustrates example connections between the input/output electrodes 14 and the memristive nanofibers 12 in the neural network 10 shown in FIG. 1A. As shown in FIG. 1B, each of the nanofibers 12 includes a conductive or metallic core 12A and a memristive shell 12B. Further, at each junction between an electrode 14 and a nanofiber 12, a memristive synapse 16 is formed.
  • The neural network 10 can be formed in any suitable manner, such as the method described in U.S. Non-Provisional patent application Ser. No. 15/383,527, titled “MEMRISTIVE NANOFIBER NEURAL NETWORKS,” the entire contents of which is hereby incorporated herein by reference. For example, the conductive core 12A of the nanofibers 12 can be formed from doped titanium dioxide (TiO2), using a percursor of titanium isopropoxide, titanium butoxide, or another suitable precursor. The memristive shell 12B can be formed around the conductive metallic core 12A by electrospinning the outer shell of the conductive core 12A with a memristive material.
  • FIG. 1C illustrates an example equivalent circuit of a portion of the neural network 10 shown in FIG. 1A. The interface resistance between two of the nanofibers 12, when overlapping and contacting each other in the neural network 10, can be much higher than the resistance between an electrode 14 and a nanofiber 12. This is because the contact area between two of the nanofibers 12 is typically very small, and the contact point is between two insulating memristive shells 12B. In contrast, each electrode 14 contacts a longer length or section of the memristive shell 12B of each nanofiber 12, and the voltage drop is across only a single memristive shell 12B, rather than two memristive shells 12B between two nanofibers 12.
  • FIG. 2 illustrates an example bipartite memristive network 20 and an alternate feedforward form 30 of the bipartite memristive network 20. The electrodes 14 in FIG. 1A, which are referred to as external electrodes in FIG. 2, are connected to the conductive metallic cores 12A of the nanofibers 12 through the memristive shells 12B. The electrodes 14 are not directly connected to one another. The conductive metallic cores 12A of the nanofibers 12, which are referred to as internal electrodes, are connected to the external electrodes 14 through the memristive shells 12B.
  • In the alternate feedforward form 30 of the bipartite memristive network 20, the electrodes 14 are separated into a number of input electrodes 14A and output electrodes 14B. If it is assumed that the nanofibers 12 are effectively insulated or isolated from one another electrically, the feedforward form 30 of the bipartite memristive network 20 will take the form of a bipartite graph as shown.
  • Thus, if the external electrodes 14 are divided or segregated into the input electrodes 14A and the output electrodes 14B, the alternate feedforward form 30 of the bipartite memristive network 20 can be operated as a three-layer feedforward neural network. If more hidden layers are needed, several such networks (e.g., similar to the feedforward form 30) can be linked together. An approach to teach the alternate feedforward form 30 (also the “the feedforward network 30”) of the bipartite memristive network 20 described in further detail below.
  • In order to determine how the feedforward network 30 behaves, Kirchoff's laws can be used to determine the voltage drops across the memristive shells 12B (or simply “memristors” as described below). Once the voltage drops and currents through the feedforward network 30 are identified, an appropriate memristor model can be applied to determine how to change the conductances of these memristors over time.
  • First, a procedure for changing the conductances of the output to internal node weights can be developed. If the input voltages to the feedforward network 30 are presented as voltages between −½ VT and ½ VT, then it avoids changing any memristor conductances, since the maximum voltage drop across any memristor cannot exceed VT. Next, it can be assumed that the outputs of the feedforward network 30 are read as currents at the output nodes, where the voltages are kept at ground.
  • Since the total current into any internal node must sum to zero (i.e., according to Kirchoff's current law), we have the following equation:

  • I ji=1 N G ij(V i −V j)=0,  (1)
  • where Gij is the instantaneous conductance of a memristor connecting external node i to internal node j and the sum runs over all external nodes (i.e., the input and output nodes).
  • Equation (1) can be arranged to solve for the voltage at internal node j as shown below. Since summation is linear and Vj is not indexed by i:
  • i = 1 N ( G ij V i - G ij V j ) = 0 , ( 2 ) i = 1 N G ij V i = i = 1 N G ij V j , ( 3 ) i = 1 N G ij V i = V j i = 1 N G ij , and ( 4 ) V j = i = 1 N G ij V i i = 1 N G ij = i = 1 N G ij V i G j . ( 5 )
  • In Equation (5), the normalization factor, Gji=1 N Gij, does not depend on the instantaneous values of the voltages or currents. The normalization factor Gj does not significantly influence the operation of the feedforward network 30. If all of the output nodes are left at ground (i.e., Vi=0), the only contributions to the sum are those of the input nodes. Therefore, the voltages at the internal nodes can be considered a linear transformation of the input by a matrix of conductances divided by a normalization factor.
  • Similarly, the currents at the output node k can be solved for using the voltages at the internal nodes. Since the output nodes are all grounded, the current is given by:

  • I kj=1 M G kj V j.  (6)
  • This is a linear transformation of the hidden nodes by a matrix of conductances. Since this current is accessible by an external circuit, a further non-linear transformation can take place on this sum, allowing the network to possess a non-linear output layer. For simplicity in deriving the learning algorithm, however, all layers can be assumed to be linear.
  • Now that an example three-layer neural network with memristive connections has been described and shown in the feedforward network 30, an appropriate algorithm is needed to train such a network. For this purpose, an approximation to the backpropagation algorithm which is suitable for training the network is described.
  • FIG. 3 illustrates an example linear model of a memristor with a threshold VT according to various embodiments described herein. To start, the weights between the internal and output nodes are considered since these weights require only the delta rule for learning. For linear neurons in this network, the delta rule is given as follows:

  • ΔG kj=α(T k −I k)V j,  (7)
  • where Tk is the desired output current, Ik is the measured output current, Vj is the applied voltage at internal node j, and α is the learning rate.
  • Intuitively, if the error delta (Tk−Ik) is positive, it would be desirable to make the current Ik more positive, thus decreasing the error. This can be accomplished by strengthening the connections to internal nodes which are positive, and weakening the connections to internal nodes which are negative. If the error delta is negative, the opposite should occur. The form of the delta rule is such that it is linear in both the error delta and the activation of the internal nodes. If a linear neuron with a threshold VT is assumed, the following equation is of the form of the conductance change:
  • Δ G = { α ( Δ V - V T ) t if Δ V > V T - α ( Δ V + V T ) t if Δ V < - V T 0 if V T > Δ V > - V T . ( 8 )
  • In Equation (8), α is analogous to the learning rate, ΔV is the voltage drop across the memristor, and t is the duration of the applied voltage. The graph of the above equation, not including duration, is given in FIG. 3. Equation (8) is a simple model for a memristor with a threshold, so it can be used in deriving the learning algorithm. However, other memristor models, including those with noise, also work with the derived algorithm.
  • Since the error delta (Tk−Ik) is available for measurement by an external circuit, the duration t can be set to be proportional to the magnitude of this error delta. The resulting change in conductance of the memristor Gkj can also be made to be proportional to the voltage Vj at internal node j as described below.
  • The voltages at the internal nodes (e.g., the conductive cores 12A) cannot be changed directly and may be unknown. However, the voltages and/or currents at the inputs and/or outputs can be directly measured. Since the outputs are all grounded initially, changing the voltage on a single output will perturb the voltages at the internal nodes. However, provided there are many inputs and outputs, this will result in only a small perturbation.
  • If an output node is selected and voltage set equal to VT, the connections to all internal nodes with positive voltages (+Vj) will not change their conductances because their voltage drop (VT−Vj) will be, by definition, less than VT since Vj is positive. This isolates the internal nodes with negative V1, whose voltage drops will be larger than VT. Also, the voltage drop across each negative internal node is now equal to:

  • ΔV=V T −V j,  such that (9)

  • V j=−(ΔV−V T).  (10)
  • The quantity driving the conductance change, ΔG∝(ΔV−VT), is therefore proportional to Vj. If the error delta is negative, the current should be more negative. Therefore, it would be desirable to strengthen the connection to the internal nodes with negative voltages. Since, in the above case, ΔV>VT, the application of VT to an output node would increase the conductances to all negative internal nodes by an amount proportional to the Vj of each node. If it is assumed that this voltage is applied for a time t proportional to the error delta on this output node, the delta rule, ΔGkj=α(Tk−Ik)Vj, can be reconstructed for this set of connections.
  • This can be extended to the positive internal nodes connected to this output node by applying a voltage −VT after the application of +VT for time t. Now, the voltage drop (−VT−Vj) across all internal nodes with negative voltages will be under the threshold for conductance change, effectively isolating the internal nodes with positive Vj. For a similar reason, the magnitude of the conductance changes across these positive internal nodes are also proportional to the voltages at each internal node in the direction to decrease, rather than increase, the conductance. Again, this is what is required for an output node with negative error delta.
  • To account for outputs with positive error delta, the directions of these conductance changes can be reversed. Specifically, connections to negative internal nodes can be weakened and connections to positive internal nodes can be strengthened. This can be accomplished by reversing the voltage polarities of all inputs (thus flipping the signs of all internal nodes), followed by the same procedure described above. This will flip the direction of the voltage drop across each memristor in each case.
  • Next, a procedure for changing the conductances of the input to internal node weights can be developed. Since the input voltages are restricted to between −½ VT and −½ VT, these weights could not have changed during the training of the output weights, as the maximum voltage drop from input node to internal node cannot exceed VT.
  • The backpropagation step of the backpropagation algorithm is given by the following equation:

  • ΔG ij=α(Σk G kj(T k −I k))V i.  (11)
  • Instead of the center term being proportional to the error delta, it is now equal to a weighted sum of error deltas. This is the internal node j's “contribution to the error”. The term on the right is the voltage at the input, which is accessible for measurement. The duration t can be made proportional to the absolute value of this input Vi.
  • Now, the above weighted sum can be reproduced as a voltage on internal node j, and the same methods described above can be applied to change the conductances proportionally to this voltage.
  • If the error deltas (Tk−Ik) are taken and converted into voltages, this weighted sum can be achieved by placing these voltages on the output nodes while grounding the input nodes. The resulting contribution to the error on each internal node is accurate up to a normalization factor Gj, which again does not significantly influence the learning process.
  • By applying a voltage VT to an input node with a positive input, it is possible to selectively strengthen the conductances to all nodes connected to it with a negative voltage, decreasing these internal nodes' contributions to the error. Similarly, applying a voltage −VT will selectively weaken the conductances to all nodes with positive voltage, again reducing these nodes' contributions to the error. Flipping the signs of all the error deltas, input nodes with negative input can be handled in the same way.
  • FIG. 4 illustrates an example training processor 110 for training the feedforward network 30 shown in FIG. 2 according to various embodiments described herein. The training processor 110 includes a data store 120, an interface module 130, a measurement module 140, and a training module 150. The data store 120 stores various types of data, including the training data 122 and the network data 124. The training data 122 can be relied upon by the training module 150 to train the feedforward network 30. For example, the training data 122 can include data that defines the target weights between the internal nodes (e.g., the conductive metallic cores 12A) in the feedforward network 30 and the output nodes (e.g., the input electrodes 14A and/or the output electrodes 14B). Thus, the training data 122 can define the target levels or values of conductance to be programmed into each of the memristive shells 12B in the feedforward network 30. The training data 122 can be based on any suitable model for training, for any purpose of training a network.
  • The network data 124 can include data that defines the network structure of the feedforward network 30, such as the connections between the conductive metallic cores 12A, the input electrodes 14A, and the output electrodes 14B. Thus, the network data 124 can define the memristor connections formed by the memristive shells 12B between the conductive metallic cores 12A, the input electrodes 14A, and the output electrodes 14B shown in FIG. 4. The training module 150 can reference the network data 124 to determine the appropriate sequence of steps to use for training the feedforward network 30.
  • The interface module 130 can include one or more circuits to provide an electrical interface with the input electrodes 14A and the output electrodes 14B. For example, the interface module 130 can include circuitry capable of providing input voltages and/or currents to one or more of the input electrodes 14A and/or the output electrodes 14B. The interface module 130 can include circuitry capable of grounding one or more of the input electrodes 14A and/or the output electrodes 14B. The interface module 130 can also include circuitry capable of reading voltages and/or currents at one or more of the input electrodes 14A and/or the output electrodes 14B.
  • The measurement module 140 can include one or more circuits to take measurements at one or more of the input electrodes 14A and/or the output electrodes 14B. For example, the measurement module 140 can measure voltages and/or currents at one or more of the input electrodes 14A and/or the output electrodes 14B. The measurement module 140 can also calculate the difference between various voltages, currents, etc., to determine the differences between measured and target values. Both the interface module 130 and the measurement module 140 can be embodied as any suitable network of analog and/or digital circuitry, including amplifiers, filters, and processing circuitry, with memory.
  • The training module 150 can be embodied as processing circuitry capable of conducting the memristive network training process shown in FIGS. 5A, 5B, and 5C. In that context, the training module 150 can direct the interface module 130 to train the conductances or weights between the input electrodes 14A and the conductive cores 12A of the internal nodes. The training module 150 can also direct the interface module 130 to train the conductances or weights between the conductive cores 12A of the internal nodes and the output electrodes 14B.
  • In the practical sense, the internal structure of the feedforward network 30 (e.g., the individual connections and/or conductances of the memristive shell 12B connections between the input electrodes 14A, the output electrodes 14B, and the conductive cores 12A) may be unknown. Thus, the algorithm performed by the training module 150 is designed to perform the training process implicitly. Through training the feedforward network 30, the training module 150 is effectively self-organizing a set of pathways between the input electrodes 14A and the conductive cores 12A, and between the output electrodes 14B and the conductive cores 12A. The pathways are defined or organized through adjusting the conductances of the memristive shells 12B between the input electrodes 14A, the output electrodes 14B, and the conductive cores 12A. In some cases, rather than using a set of target weights for training, the training module 150 can start with a set of target currents at the output electrodes 14B.
  • FIGS. 5A-5C illustrate an example memristive network training process for training a feedforward network according to various embodiments described herein. The training process is described in connection with the feedforward network 30 and the training processor 110 shown in FIG. 4. Thus, the training processor 110 is configured to perform the process shown in FIGS. 5A-5C. However, other feedforward networks can be trained by other training processors using the process shown in FIGS. 5A-5C. Further, although the process diagrams show an order of operation or execution, the order can differ from that which is shown. For example, the order of execution of two or more process steps can be switched relative to the order shown or as described below. Also, two or more process steps shown in succession can be executed concurrently or with partial concurrence. Further, in some examples, one or more of the process steps shown in the process diagrams can be skipped or omitted.
  • Turning to FIG. 5A, the training module 150 can first train the conductances or weights (e.g., the conductances of the memristors) the between the conductive cores 12A of the internal nodes and the output electrodes 14B in the feedforward network 30. To that end, at step 202, the process includes applying input power to one or more input nodes of a feedforward network. For example, the training module 150 can direct the interface module 130 to apply a voltage between −½ VT and ½ VT to one or more of the input electrodes 14A of the feedforward network 30. In some cases, the training module 150 can direct the interface module 130 to apply a voltage between −½ VT and ½ VT to each of the input electrodes 14A. As an alternative to the application of voltages, the training module 150 can direct the interface module 130 to apply or drive a certain level of current to one or more of the input electrodes 14A.
  • At step 204, the process can include grounding one or more output nodes of the feedforward network. For example, the training module 150 can direct the interface module 130 to ground one or more of the output electrodes 14B of the feedforward network 30. In some cases, the training module 150 can direct the interface module 130 to ground each of the output electrodes 14B.
  • As noted above, in Equation (5), the normalization factor, Gji=1 NGij, does not depend on the instantaneous values of the voltages or currents. The normalization factor Gj does not significantly influence the operation of the feedforward network 30. If all of the output nodes are left at ground (i.e., Vi=0), the only contributions to the sum are those of the input nodes. Therefore, the voltages at the internal nodes can be considered a linear transformation of the input by a matrix of conductances divided by a normalization factor.
  • Similarly, the currents at the output electrodes 14B can be solved for by the training module 150. Since the output electrodes 14B are all grounded at step 204, the current can be given by Equation (6). As noted above, this is a linear transformation of the hidden nodes by a matrix of conductances. At the same time, the actual currents at the output electrodes 14B are accessible by the interface module 130 for measurement by the measurement module 140.
  • At step 206, the process can include the measurement module 140 measuring an output current at one or more of the output electrodes 14B. The measurement module 140 can measure an output current each of the output electrodes 14B, in turn, and store those values in the data store 120 for further processing. In addition to current, the measurement module 140 can also measure output voltages at one or more of the output electrodes 14B at step 106 in some cases.
  • At step 208, the process can include the training module 150 comparing the output current (or voltage) at the one or more of the output electrodes 14B, as measured at step 206, with a target or desired output current (or voltage) to determine a first error delta. Step 208 can be performed, in sequence, for each of the output electrodes 14B, and a first error delta can be determined for each of the output electrodes 14B. The error deltas can be stored in the data store 120 for further processing.
  • Step 208 follows from the application of the delta rule according to Equation (7) above. If the error delta (e.g., (Tk−Ik) in Equation (7)) is positive, it would be desirable to make the current or currents measured at step 206 greater, thus decreasing the error. This can be accomplished by strengthening the connections to internal nodes which are positive, and weakening the connections to internal nodes which are negative. If the error delta is negative, it would be desirable to make the current or currents measured at step 206 smaller to decrease the error.
  • At step 210, the process can include the training module 150 applying a threshold voltage or current to one or more of the output electrodes 14B for a time period proportional to a magnitude of the first error delta determined at step 208. For example, a first error delta can be determined at step 208 for a first one of the output electrodes 14B. Then, at step 210, the training module 150 can direct the interface module 130 to apply a positive threshold voltage VT or a negative threshold voltage −VT to the first one of the output electrodes 14B for a time period proportional to a magnitude of the first error delta determined for the first one of the output electrodes 14B at step 208. The remaining output electrodes 14B (i.e., other than the first) can remain grounded. Step 210 can iterate over each of the of the output electrodes 14B, in turn.
  • The procedure of applying a threshold voltage at step 210 is shown in greater detail in FIG. 5B. At step 302 in FIG. 5B, the process includes the training module 150 determining whether the error delta (e.g., (Tk−Ik) in Equation (7)) from step 208 for the first one of the output electrodes 14B is negative. If the error delta is negative, then the process proceeds to step 304. If the error delta is positive, then the process proceeds to step 308.
  • At step 304, the process includes the training module 150 applying a positive threshold voltage or current to one or more of the output nodes for the time period proportional to the error delta. For example, an error delta can be determined at step 208 for a first one of the output electrodes 14B. Then, at step 304, the training module 150 can direct the interface module 130 to apply a positive threshold voltage VT to the first one of the output electrodes 14B for a time period proportional to the magnitude of the error delta determined at step 208. The remaining output electrodes 14B (i.e., other than the first) can remain grounded at step 304.
  • As noted above, if a first one of the output electrodes 14B is selected and voltage set equal to VT at step 304, then the connections to all internal nodes with positive voltages (+Vj) will not change their conductances because their voltage drop (VT−Vj) will be, by definition, less than VT since Vj is positive. This isolates the internal nodes with negative Vj, whose voltage drops will be larger than VT. Also, the voltage drop across each negative internal node is now equal to the relationships in Equations (9) and (10).
  • Further, the quantity driving the conductance change, ΔG∝(ΔV−VT), is therefore proportional to Vj. If the error delta is negative (i.e., the “Yes” branch from step 302 in FIG. 5B), the current should be more negative. Therefore, it would be desirable to strengthen the connection to the internal nodes with negative voltages. Since, in the above case, ΔV>VT, the application of VT at step 304 to the first one of the output electrodes 14B can increase the conductances to all negative internal nodes by an amount proportional to the Vj of each node. If it is assumed that this voltage is applied for a time t proportional to the error delta on this output node, then the backpropagation algorithm, ΔGkj=α(Tk−Ik)Vj, can be reconstructed for this set of connections.
  • This can be extended to the positive internal nodes connected to the first one of the output electrodes 14B by applying a voltage −VT after the application of +VT for the time t. Thus, at step 306, the process can also include applying a negative threshold voltage or current to one or more of the output nodes for the time period proportional to the error delta. For example, at step 306, the training module 150 can direct the interface module 130 to apply a negative threshold voltage −VT to the first one of the output electrodes 14B for a time period t proportional to the magnitude of the error delta determined at step 208. The remaining output electrodes 14B (i.e., other than the first) can remain grounded at step 306.
  • Due to step 306, the voltage drop (−VT−Vj) across all internal nodes with negative voltages will be under the threshold for conductance change, effectively isolating the internal nodes with positive Vj. For a similar reason, the magnitude of the conductance changes across these positive internal nodes are also proportional to the voltages at each internal node in the direction to decrease, rather than increase, the conductance. Again, this is what is required for an output node with negative error delta (i.e., the “Yes” branch from step 302 in FIG. 5B). Steps 304 and 306 can occur for all output electrodes 14B with a negative error deltas.
  • To account for outputs with positive error deltas (i.e., the “No” branch from step 302 in FIG. 5B), the directions of these conductance changes can be reversed. Specifically, connections to negative internal nodes can be weakened and connections to positive internal nodes can be strengthened. This can be accomplished by reversing the voltage polarities of all inputs (thus flipping the signs of all internal nodes) at step 308. At step 308, the process includes the training module 150 reversing a polarity of the input voltage or current applied to the input electrodes 14A. This can be a reversal of the polarity of the voltage or current applied to the input electrodes 14A at step 202. Further, at steps 310 and 312, the process includes steps similar to steps 304 and 306, respectively. Steps 308, 310, and 312 can occur for all output electrodes 14B with a positive error delta. The process can return from FIG. 5B to step 212 in FIG. 5A.
  • Turning back to FIG. 5A, the training module 150 can now train the conductances or weights between the input electrodes 14A and the conductive cores 12A of the internal nodes. Since the voltages applied to input electrodes 14A were restricted to between −½ VT and ½ VT among steps 202, 204, 206, 208, and 210, the weights between the input electrodes 14A and the conductive cores 12A of the internal nodes could not have changed during the training of the output weights, as the maximum voltage drop from input node to internal node cannot exceed VT.
  • At step 212, the process can include the training module 150 transforming, for one or more of the output electrodes 14B, the first error deltas of the output electrodes 14B determined at step 208, into second error deltas for the output electrodes 14B. As one example, the training module 150 can transform the first error delta current (e.g., (Tk−Ik) in Equation (7)) for the first one the output electrodes 14B into a second error delta, which may be a voltage. The second error delta can be proportionate to the first error delta, but converted from a current to a voltage, for example, or from a voltage to a current. Step 212 can be performed for each of the output electrodes 14B with reference to the first error deltas from step 208 which were stored in the data store 120.
  • At step 214, the process can include grounding one or more input nodes of the feedforward network. For example, the training module 150 can direct the interface module 130 to ground one or more of the input electrodes 14A of the feedforward network 30. In some cases, the training module 150 can direct the interface module 130 to ground each of the input electrodes 14A.
  • At step 216, the process can include, for each of the output electrodes 14B, applying the second error delta determined at step 212 to the output electrode 14B. For example, a second error delta, which can be a voltage, can be determined at step 212 for each of the output electrodes 14B as described above. The training module 150 can direct the interface module 130 to apply the second error delta voltages for each of the output electrodes 14B, respectively, to the output electrodes 14B. Step 216 can also include applying threshold voltages or currents to the input electrodes 14A, in turn, for a second time period proportional to an absolute value of the second error delta.
  • The procedure of step 216 is shown in greater detail in FIG. 5C. At step 320 in FIG. 5C, the training module 150 can direct the interface module 130 to apply the second error delta voltages determined at step 212 for each of the output electrodes 14B, respectively, to the output electrodes 14B.
  • At step 322 in FIG. 5C, the process includes the training module 150 determining whether original input applied to one of the input electrodes 14A at step 202 in FIG. 5A, was negative. If the original input was negative, then the process proceeds to step 324. If the original input was positive, then the process proceeds to step 328.
  • At step 324, the process includes the training module 150 applying a positive threshold voltage or current to one or more of the input nodes for the time period proportional to the second error delta. For example, the training module 150 can direct the interface module 130 to apply a positive threshold voltage VT to one of the input electrodes 14A for a second time period proportional to an absolute value of the second error delta determined at step 212 in FIG. 5A. Further, at step 326, the training module 150 can direct the interface module 130 to apply a negative threshold voltage −VT to the first one of the input electrodes 14A for the second time period. The remaining input electrodes 14A (i.e., other than the first) can remain grounded at steps 324 and 326.
  • At step 328 in FIG. 5C, the process includes the training module 150 reversing a polarity of the second error delta voltages applied to the output electrodes 14B at step 320. At step 3330, the process includes the training module 150 applying a positive threshold voltage or current to one or more of the input nodes for the time period proportional to the second error delta. For example, the training module 150 can direct the interface module 130 to apply a positive threshold voltage VT to one of the input electrodes 14A for a second time period proportional to an absolute value of the second error delta determined at step 212 in FIG. 5A. Further, at step 332, the training module 150 can direct the interface module 130 to apply a negative threshold voltage −VT to the first one of the input electrodes 14A for the second time period. The remaining input electrodes 14A (i.e., other than the first) can remain grounded at steps 324 and 326.
  • The algorithm presented in FIGS. 5A-5C reproduces the backpropagation algorithm in bipartite memristive networks. Although presented in one example order or sequence in FIGS. 5A-5C, the algorithm can, in some cases, be applied or used in alternative sequences. Additionally, while certain voltages and currents are described as being applied and/or measured in the algorithm, it should be appreciated that the measurement or application of a voltage can be substituted by that of a current. Similarly, the measurement or application of a current can be substituted by that of a voltage. Since the algorithm only iterates over each external node once per training example, it is first order in time with respect to the number of nodes. This is in contrast with the standard implementation of the backpropagation algorithm, which is second order in time.
  • The components described herein, including the interface module 130, the measurement module 140, and the training module 150, can be embodied in hardware, software, or a combination of hardware and software. If embodied in software, each element can represent a module or group of code that includes program instructions to implement the specified logical function(s). The program instructions can be embodied in the form of, for example, source code that includes human-readable statements written in a programming language or machine code that includes machine instructions recognizable by a suitable execution system, such as a processor in a computer system or other system. If embodied in hardware, each element can represent a circuit or a number of interconnected circuits that implement the specified logical function(s).
  • The training processor 110 can include at least one processing circuit. Such a processing circuit can include, for example, one or more processors and one or more storage or memory devices coupled to a local interface. The local interface can include, for example, a data bus with an accompanying address/control bus or any other suitable bus structure. The storage or memory devices can store data or components that are executable by the processors of the processing circuit. For example, the training module 150 and/or other components can be stored in one or more storage devices and be executable by one or more processors in the training processor 110.
  • The training module 150 and other components described herein can be embodied in the form of hardware, as software components that are executable by hardware, or as a combination of software and hardware. If embodied as hardware, the components described herein can be implemented as a circuit or state machine that employs any suitable hardware technology. The hardware technology can include, for example, one or more microprocessors, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, programmable logic devices (e.g., field-programmable gate array (FPGAs), and complex programmable logic devices (CPLDs)).
  • Also, one or more or more of the components described herein that include software or program instructions can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, a processor in a computer system or other system. The computer-readable medium can contain, store, and/or maintain the software or program instructions for use by or in connection with the instruction execution system.
  • A computer-readable medium can include a physical media, such as, magnetic, optical, semiconductor, and/or other suitable media. Examples of a suitable computer-readable media include, but are not limited to, solid-state drives, magnetic drives, or flash memory. Further, any logic or component described herein can be implemented and structured in a variety of ways. For example, one or more components described can be implemented as modules or components of a single application. Further, one or more components described herein can be executed in one computing device or by using multiple computing devices.
  • The above-described examples of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications can be made without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.

Claims (20)

Therefore, the following is claimed:
1. A method to train a memristive network comprising a number of input nodes and a number of output nodes, comprising:
applying an input voltage or current to an input node among the number of input nodes;
grounding an output node among the number of output nodes;
measuring an output current or voltage at the output node;
comparing the output current or voltage to a target current or voltage to determine an error delta; and
applying a threshold voltage or current to the output node for a time period proportional to a magnitude of the error delta.
2. The method of claim 1, wherein, when the error delta is negative, applying the threshold voltage or current to the output node comprises:
applying a positive threshold voltage or current to the output node for the time period proportional to the error delta; and
applying a negative threshold voltage or current to the output node for the time period proportional to the error delta.
3. The method of claim 1, wherein, when the error delta is positive, applying the threshold voltage or current to the output node comprises:
reversing a polarity of the input voltage or current applied to the input node;
applying a positive threshold voltage or current to the output node for the time period proportional to the error delta; and
applying a negative threshold voltage or current to the output node for the time period proportional to the error delta.
4. The method of claim 1, further comprising:
transforming the error delta into an error delta voltage or current;
applying the error delta voltage or current to the output node; and
applying the threshold voltage or current to the input node for a second time period proportional to an absolute value of the error delta voltage or current.
5. The method of claim 4, wherein, when the input voltage or current applied to the input node was positive, applying the threshold voltage or current to the input node comprises:
applying a positive threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current; and
applying a negative threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current.
6. The method of claim 4, wherein, when the input voltage or current applied to the input node was negative, applying the threshold voltage or current to the input node comprises:
reversing a polarity of the error delta voltage or current applied to the output node;
applying a positive threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current; and
applying a negative threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage.
7. The method of claim 1, wherein the memristive network comprises a bipartite memristive network.
8. The method of claim 1, wherein the method reproduces a backpropagation algorithm for training the memristive network.
9. A memristive network, comprising:
a number of nanofibers, wherein each nanofiber comprises a metallic core and a memristive shell;
a number of electrodes deposited upon the nanofibers, wherein the number of electrodes comprise a number of input nodes and a number of output nodes; and
a training processor configured to:
apply an input voltage or current to an input node among the number of input nodes;
ground an output node among the number of output nodes;
measure an output current or voltage at the output node;
compare the output current or voltage to a target current or voltage to determine an error delta; and
apply a threshold voltage or current to the output node for a time period proportional to a magnitude of the error delta.
10. The memristive network according to claim 9, wherein, when the error delta is negative, the training processor is further configured to:
apply a positive threshold voltage or current to the output node for the time period proportional to the error delta; and
apply a negative threshold voltage or current to the output node for the time period proportional to the error delta.
11. The memristive network according to claim 9, wherein, when the error delta is positive, the training processor is further configured to:
reverse a polarity of the input voltage or current applied to the input node;
apply a positive threshold voltage or current to the output node for the time period proportional to the error delta; and
apply a negative threshold voltage or current to the output node for the time period proportional to the error delta.
12. The memristive network according to claim 9, wherein the training processor is further configured to:
transform the error delta into an error delta voltage or current;
apply the error delta voltage or current to the output node; and
apply the threshold voltage or current to the input node for a second time period proportional to an absolute value of the error delta voltage or current.
13. The memristive network according to claim 12, wherein, when the input voltage or current applied to the input node was positive, the training processor is further configured to:
apply a positive threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current; and
apply a negative threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current.
14. The memristive network according to claim 12, wherein, when the input voltage or current applied to the input node was negative, the training processor is further configured to:
reverse a polarity of the error delta voltage or current applied to the output node;
apply a positive threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage or current; and
apply a negative threshold voltage or current to the input node for the second time period proportional to the absolute value of the error delta voltage.
15. The memristive network according to claim 9, wherein the memristive network comprises a bipartite memristive network.
16. A method to train a memristive network comprising a number of input nodes and a number of output nodes, comprising:
applying an input voltage to an input node among the number of input nodes;
grounding an output node among the number of output nodes;
measuring an output current at the output node;
comparing the output current to a target current to determine an error delta; and
applying a threshold voltage to the output node for a time period proportional to a magnitude of the error delta.
17. The method of claim 16, wherein, when the error delta is negative, applying the threshold voltage to the output node comprises:
applying a positive threshold voltage to the output node for the time period proportional to the error delta; and
applying a negative threshold voltage to the output node for the time period proportional to the error delta.
18. The method of claim 16, wherein, when the error delta is positive, applying the threshold voltage to the output node comprises:
reversing a polarity of the input voltage applied to the input node;
applying a positive threshold voltage to the output node for the time period proportional to the error delta; and
applying a negative threshold voltage to the output node for the time period proportional to the error delta.
19. The method of claim 16, wherein the memristive network comprises a bipartite memristive network.
20. The method of claim 16, wherein the method reproduces a backpropagation algorithm for training the memristive network.
US15/985,212 2017-05-22 2018-05-21 Deep learning in bipartite memristive networks Abandoned US20180336470A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/985,212 US20180336470A1 (en) 2017-05-22 2018-05-21 Deep learning in bipartite memristive networks
US18/138,984 US20230297839A1 (en) 2017-05-22 2023-04-25 Deep learning in bipartite memristive networks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762509423P 2017-05-22 2017-05-22
US15/985,212 US20180336470A1 (en) 2017-05-22 2018-05-21 Deep learning in bipartite memristive networks

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/138,984 Continuation US20230297839A1 (en) 2017-05-22 2023-04-25 Deep learning in bipartite memristive networks

Publications (1)

Publication Number Publication Date
US20180336470A1 true US20180336470A1 (en) 2018-11-22

Family

ID=64271828

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/985,212 Abandoned US20180336470A1 (en) 2017-05-22 2018-05-21 Deep learning in bipartite memristive networks
US18/138,984 Pending US20230297839A1 (en) 2017-05-22 2023-04-25 Deep learning in bipartite memristive networks

Family Applications After (1)

Application Number Title Priority Date Filing Date
US18/138,984 Pending US20230297839A1 (en) 2017-05-22 2023-04-25 Deep learning in bipartite memristive networks

Country Status (7)

Country Link
US (2) US20180336470A1 (en)
EP (1) EP3631800A4 (en)
JP (1) JP2020521248A (en)
KR (1) KR20200009044A (en)
CN (1) CN110651330A (en)
AU (1) AU2018273847A1 (en)
WO (1) WO2018217632A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022545186A (en) * 2019-08-14 2022-10-26 レイン・ニューロモーフィックス・インコーポレーテッド Analog system using balanced propagation for learning

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7130766B2 (en) 2018-04-05 2022-09-05 レイン・ニューロモーフィックス・インコーポレーテッド Systems and methods for efficient matrix multiplication
US11450712B2 (en) 2020-02-18 2022-09-20 Rain Neuromorphics Inc. Memristive device
CN111555357A (en) * 2020-06-04 2020-08-18 西华大学 Photovoltaic power generation optimization control method
JPWO2023032158A1 (en) * 2021-09-03 2023-03-09

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040091264A1 (en) * 2002-11-08 2004-05-13 Nortel Networks Limited Hybrid fine-coarse carrier switching
US20110182104A1 (en) * 2010-01-26 2011-07-28 Kim Hyongsuk Method of implementing memristor-based multilevel memory using reference resistor array
US20170017877A1 (en) * 2015-07-13 2017-01-19 Denso Corporation Memristive neuromorphic circuit and method for training the memristive neuromorphic circuit
US9847132B1 (en) * 2016-07-28 2017-12-19 Hewlett Packard Enterprise Development Lp Ternary content addressable memories
US20190027217A1 (en) * 2016-01-27 2019-01-24 Hewlett Packard Enterprise Development Lp Memristive array with parallel reset control devices

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2015277645B2 (en) * 2014-06-19 2021-01-28 The University Of Florida Research Foundation, Inc. Memristive nanofiber neural netwoks
US10198691B2 (en) * 2014-06-19 2019-02-05 University Of Florida Research Foundation, Inc. Memristive nanofiber neural networks
US9971965B2 (en) * 2015-03-18 2018-05-15 International Business Machines Corporation Implementing a neural network algorithm on a neurosynaptic substrate based on metadata associated with the neural network algorithm
US10170180B2 (en) * 2015-04-30 2019-01-01 Hewlett-Packard Development Company, L.P. Memory including bi-polar memristor
CN104779950B (en) * 2015-05-05 2017-08-08 西南大学 Picture average learning circuit based on memristor cross architecture
US10332004B2 (en) 2015-07-13 2019-06-25 Denso Corporation Memristive neuromorphic circuit and method for training the memristive neuromorphic circuit
CN105160401B (en) * 2015-08-27 2017-08-11 电子科技大学 It is a kind of based on the WTA neutral nets of memristor array and its application
US9691479B1 (en) * 2016-04-29 2017-06-27 Hewlett Packard Enterprise Development Lp Method of operating and apparatus of memristor arrays with diagonal lines interconnect between memristor cells
US9646243B1 (en) 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040091264A1 (en) * 2002-11-08 2004-05-13 Nortel Networks Limited Hybrid fine-coarse carrier switching
US20110182104A1 (en) * 2010-01-26 2011-07-28 Kim Hyongsuk Method of implementing memristor-based multilevel memory using reference resistor array
US20170017877A1 (en) * 2015-07-13 2017-01-19 Denso Corporation Memristive neuromorphic circuit and method for training the memristive neuromorphic circuit
US20190027217A1 (en) * 2016-01-27 2019-01-24 Hewlett Packard Enterprise Development Lp Memristive array with parallel reset control devices
US9847132B1 (en) * 2016-07-28 2017-12-19 Hewlett Packard Enterprise Development Lp Ternary content addressable memories

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Burger et al. Hierarchical Composition of Memristive Networks for Real-Time Computing, 2015, 6 pages (Year: 2015) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022545186A (en) * 2019-08-14 2022-10-26 レイン・ニューロモーフィックス・インコーポレーテッド Analog system using balanced propagation for learning
JP7286006B2 (en) 2019-08-14 2023-06-02 レイン・ニューロモーフィックス・インコーポレーテッド Analog system using balanced propagation for learning

Also Published As

Publication number Publication date
KR20200009044A (en) 2020-01-29
EP3631800A4 (en) 2021-04-07
AU2018273847A1 (en) 2019-11-14
JP2020521248A (en) 2020-07-16
US20230297839A1 (en) 2023-09-21
EP3631800A1 (en) 2020-04-08
WO2018217632A1 (en) 2018-11-29
CN110651330A (en) 2020-01-03

Similar Documents

Publication Publication Date Title
US20230297839A1 (en) Deep learning in bipartite memristive networks
US11361215B2 (en) Neural network circuits having non-volatile synapse arrays
US9779355B1 (en) Back propagation gates and storage capacitor for neural networks
US11875249B2 (en) Counter based resistive processing unit for programmable and reconfigurable artificial-neural-networks
US20170330070A1 (en) Spin orbit torque based electronic neuron
US8275728B2 (en) Neuromorphic computer
CN110945535B (en) Method for realizing artificial neural network ANN
JP6724870B2 (en) Artificial neural network circuit training method, training program, and training device
US11915132B2 (en) Synaptic weight transfer between conductance pairs with polarity inversion for reducing fixed device asymmetries
TWI751403B (en) Neural network circuits having non-volatile synapse arrays and neural chip
CN107122828B (en) Circuit structure, driving method thereof and neural network
US20210374546A1 (en) Row-by-row convolutional neural network mapping for analog artificial intelligence network training
Mahalanabis et al. Demonstration of spike timing dependent plasticity in CBRAM devices with silicon neurons
WO2019096660A1 (en) Competitive machine learning accuracy on neuromorphic arrays with capacitor memory devices
Gavrilov et al. Capacity, fidelity, and noise tolerance of associative spatial-temporal memories based on memristive neuromorphic networks
TWI845270B (en) In-memory computing (imc) memory device and in-memory computing method
US11120864B2 (en) Capacitive processing unit
US11487990B2 (en) Resistive crossbar arrays with reduced numbers of elements
US20230053948A1 (en) Apparatus and method with in-memory computing
Valentian et al. SPIRIT: A First Mixed-Signal SNN Using Co-integrated CMOS Neurons and Resistive Synapses
JPS63261874A (en) Semiconductor integrated circuit

Legal Events

Date Code Title Description
STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION