<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Artif. Intell.</journal-id>
<journal-title>Frontiers in Artificial Intelligence</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Artif. Intell.</abbrev-journal-title>
<issn pub-type="epub">2624-8212</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/frai.2022.891624</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Artificial Intelligence</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Neural Network Training With Asymmetric Crosspoint Elements</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Onen</surname> <given-names>Murat</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<xref ref-type="author-notes" rid="fn003"><sup>&#x02021;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/452092/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Gokmen</surname> <given-names>Tayfun</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c002"><sup>&#x0002A;</sup></xref>
<xref ref-type="author-notes" rid="fn003"><sup>&#x02021;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/339406/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Todorov</surname> <given-names>Teodor K.</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Nowicki</surname> <given-names>Tomasz</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>del Alamo</surname> <given-names>Jes&#x000FA;s A.</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Rozen</surname> <given-names>John</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1162430/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Haensch</surname> <given-names>Wilfried</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/465324/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Kim</surname> <given-names>Seyoung</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c003"><sup>&#x0002A;</sup></xref>
<xref ref-type="author-notes" rid="fn002"><sup>&#x02020;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/191254//overview"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>IBM Thomas J. Watson Research Center</institution>, <addr-line>Yorktown Heights, NY</addr-line>, <country>United States</country></aff>
<aff id="aff2"><sup>2</sup><institution>Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology</institution>, <addr-line>Cambridge, MA</addr-line>, <country>United States</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Saban &#x000D6;zt&#x000FC;rk, Amasya University, Turkey</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Mucahid Barstugan, Konya Technical University, Turkey; Umut &#x000D6;zkaya, Konya Technical University, Turkey; Bing Li, Capital Normal University, China</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Murat Onen <email>monen&#x00040;mit.edu</email></corresp>
<corresp id="c002">Tayfun Gokmen <email>tgokmen&#x00040;us.ibm.com</email></corresp>
<corresp id="c003">Seyoung Kim <email>kimseyoung&#x00040;postech.ac.kr</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Machine Learning and Artificial Intelligence, a section of the journal Frontiers in Artificial Intelligence</p></fn>
<fn fn-type="present-address" id="fn002"><p>&#x02020;Present address: Seyoung Kim, Department of Materials Science and Engineering, POSTECH, Pohang, South Korea</p></fn>
<fn fn-type="equal" id="fn003"><p>&#x02020;These authors have contributed equally to this work</p></fn></author-notes>
<pub-date pub-type="epub">
<day>09</day>
<month>05</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>5</volume>
<elocation-id>891624</elocation-id>
<history>
<date date-type="received">
<day>08</day>
<month>03</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>01</day>
<month>04</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2022 Onen, Gokmen, Todorov, Nowicki, del Alamo, Rozen, Haensch and Kim.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Onen, Gokmen, Todorov, Nowicki, del Alamo, Rozen, Haensch and Kim</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license> </permissions>
<abstract>
<p>Analog crossbar arrays comprising programmable non-volatile resistors are under intense investigation for acceleration of deep neural network training. However, the ubiquitous asymmetric conductance modulation of practical resistive devices critically degrades the classification performance of networks trained with conventional algorithms. Here we first describe the fundamental reasons behind this incompatibility. Then, we explain the theoretical underpinnings of a novel fully-parallel training algorithm that is compatible with asymmetric crosspoint elements. By establishing a powerful analogy with classical mechanics, we explain how device asymmetry can be exploited as a useful feature for analog deep learning processors. Instead of conventionally tuning weights in the direction of the error function gradient, network parameters can be programmed to successfully minimize the total energy (Hamiltonian) of the system that incorporates the effects of device asymmetry. Our technique enables immediate realization of analog deep learning accelerators based on readily available device technologies.</p></abstract>
<kwd-group>
<kwd>analog computing</kwd>
<kwd>DNN training</kwd>
<kwd>hardware accelerator architecture</kwd>
<kwd>neuromorphic accelerator</kwd>
<kwd>learning algorithm</kwd>
</kwd-group>
<counts>
<fig-count count="4"/>
<table-count count="0"/>
<equation-count count="4"/>
<ref-count count="37"/>
<page-count count="11"/>
<word-count count="8279"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>Introduction</title>
<p>Deep learning has caused a paradigm shift in domains such as object recognition, natural language processing, and bioinformatics which benefit from classifying and clustering representations of data at multiple levels of abstraction (Lecun et al., <xref ref-type="bibr" rid="B22">2015</xref>). However, the computational workloads to train state-of-the-art deep neural networks (DNNs) demand enormous computation time and energy costs for data centers (Strubell et al., <xref ref-type="bibr" rid="B33">2020</xref>). Since larger neural networks trained with bigger data sets generally provide better performance, this trend is expected to accelerate in the future. As a result, the necessity to provide fast and energy-efficient solutions for deep learning has invoked a massive collective research effort by industry and academia (Chen et al., <xref ref-type="bibr" rid="B8">2016</xref>; Jouppi et al., <xref ref-type="bibr" rid="B17">2017</xref>; Rajbhandari et al., <xref ref-type="bibr" rid="B26">2020</xref>).</p>
<p>Highly optimized digital application-specific integrated circuit (ASIC) implementations have attempted to accelerate DNN workloads using reduced-precision arithmetic for the computationally intensive matrix operations. Although acceleration of inference tasks was achieved by using 2-bit resolution (Choi et al., <xref ref-type="bibr" rid="B9">2019</xref>), learning tasks were found to require at least hybrid 8-bit floating-point formats (Sun et al., <xref ref-type="bibr" rid="B34">2019</xref>) which still imposes considerable energy consumption and processing time for large networks. Therefore, beyond-digital approaches that can efficiently handle training workloads are actively sought for.</p>
<p>The concept of in-memory computation with analog resistive crossbar arrays is under intense study as a promising alternative. These frameworks were first designed to make use of Ohm&#x00027;s and Kirchhoff&#x00027;s Laws to perform parallel vector&#x02013;matrix multiplications (see <xref ref-type="supplementary-material" rid="SM1">Supplementary Sections 2.1</xref>, <xref ref-type="supplementary-material" rid="SM1">2.2</xref> for details), which constitute &#x02248;2/3 of the overall computational load (Steinbuch, <xref ref-type="bibr" rid="B32">1961</xref>). However, unless the remaining &#x02248;1/3 of computations during the update cycle is parallelized as well, the acceleration factors provided by analog arrays will be a mere 3 &#x000D7; at best with respect to conventional digital processors. It was much later discovered that rank-one outer products can also be achieved in parallel, using pulse-coincidence and incremental changes in device conductance (Burr et al., <xref ref-type="bibr" rid="B5">2015</xref>; Gokmen and Vlasov, <xref ref-type="bibr" rid="B15">2016</xref>). Using this method, an entire crossbar array can be updated in parallel, without explicitly computing the outer product<xref ref-type="fn" rid="fn0001"><sup>1</sup></xref> or having to read the value of any individual crosspoint element (Gokmen et al., <xref ref-type="bibr" rid="B13">2017</xref>). As a result, all basic primitives for DNN training using the Stochastic Gradient Descent (SGD) algorithm can be performed in a fully-parallel fashion using analog crossbar architectures. However, this parallel update method imposes stringent device requirements since its performance is critically affected by the conductance modulation characteristics of the crosspoint elements. In particular, asymmetric conductance modulation characteristics (i.e., having mismatch between positive and negative conductance adjustments) are found to deteriorate classification accuracy by causing inaccurate gradient accumulation (Yu et al., <xref ref-type="bibr" rid="B37">2015</xref>; Agarwal et al., <xref ref-type="bibr" rid="B2">2016</xref>, <xref ref-type="bibr" rid="B1">2017</xref>; Gokmen and Vlasov, <xref ref-type="bibr" rid="B15">2016</xref>; Gokmen et al., <xref ref-type="bibr" rid="B13">2017</xref>, <xref ref-type="bibr" rid="B14">2018</xref>; Ambrogio et al., <xref ref-type="bibr" rid="B3">2018</xref>). Unfortunately, all analog resistive devices to date have asymmetric characteristics, which poses a major technical barrier before the realization of analog deep learning processors.</p>
<p>In addition to widespread efforts to engineer ideal resistive devices (Woo and Yu, <xref ref-type="bibr" rid="B35">2018</xref>; Fuller et al., <xref ref-type="bibr" rid="B11">2019</xref>; Grollier et al., <xref ref-type="bibr" rid="B16">2020</xref>; Yao et al., <xref ref-type="bibr" rid="B36">2020</xref>), many high-level mitigation techniques have been proposed to remedy device asymmetry. Despite numerous published simulated and experimental demonstrations, none of these studies so far provides a solution for which the analog processor still achieves its original purpose: energy-efficient acceleration of deep learning. The critical issue with the existing techniques is the requirement of serial accessing to crosspoint elements one-by-one or row-by-row (Prezioso et al., <xref ref-type="bibr" rid="B25">2015</xref>; Yu et al., <xref ref-type="bibr" rid="B37">2015</xref>; Agarwal et al., <xref ref-type="bibr" rid="B1">2017</xref>; Burr et al., <xref ref-type="bibr" rid="B4">2017</xref>; Ambrogio et al., <xref ref-type="bibr" rid="B3">2018</xref>; Li et al., <xref ref-type="bibr" rid="B23">2018</xref>, <xref ref-type="bibr" rid="B24">2019</xref>; Cai et al., <xref ref-type="bibr" rid="B6">2019</xref>; Sebastian et al., <xref ref-type="bibr" rid="B30">2020</xref>). Methods involving serial operations include reading conductance values individually, engineering update pulses to artificially force symmetric modulation, and carrying or resetting weights periodically. Furthermore, some approaches offload the gradient computation to digital processors, which not only requires consequent serial programming of the analog matrix, but also bears the cost of outer product calculation (Prezioso et al., <xref ref-type="bibr" rid="B25">2015</xref>; Yu et al., <xref ref-type="bibr" rid="B37">2015</xref>; Li et al., <xref ref-type="bibr" rid="B23">2018</xref>, <xref ref-type="bibr" rid="B24">2019</xref>; Cai et al., <xref ref-type="bibr" rid="B6">2019</xref>; Sebastian et al., <xref ref-type="bibr" rid="B30">2020</xref>). Updating an <italic>N</italic>&#x000D7;<italic>N</italic> crossbar array with these serial routines would require at least <italic>N</italic> or even <italic>N</italic><sup>2</sup> operations. For practical array sizes, the update cycle would simply take too much computational time and energy. In conclusion, for implementations that compromise parallelism, whether or not the asymmetry issue is resolved becomes beside the point since computational throughput and energy efficiency benefits over conventional digital processors are lost for practical applications. It is therefore urgent to devise a method that deals with device asymmetry while employing only fully-parallel operations.</p>
<p>Recently, our group proposed a novel fully-parallel training method, <italic>Tiki-Taka</italic>, that can successfully train DNNs based on asymmetric resistive devices with asymmetric modulation characteristics (Gokmen and Haensch, <xref ref-type="bibr" rid="B12">2020</xref>). This algorithm was empirically shown in simulation to deliver ideal-device-equivalent classification accuracy for a variety of network types and sizes emulated with asymmetric device models (Gokmen and Haensch, <xref ref-type="bibr" rid="B12">2020</xref>). However, the missing theoretical underpinnings of the proposed algorithmic solution as well as the cost of doubling analog hardware previously limited the method described in Gokmen and Haensch (<xref ref-type="bibr" rid="B12">2020</xref>).</p>
<p>In this paper, we first theoretically explain why device asymmetry has been a fundamental problem for SGD-based training. By establishing a powerful analogy with classical mechanics., we further establish that the <italic>Tiki-Taka</italic> algorithm minimizes the total energy (Hamiltonian) of the system, incorporating the effects of device asymmetry. The present work formalizes this new method as Stochastic Hamiltonian Descent (SHD) and describes how device asymmetry can be exploited as a useful feature in a fully-parallel training. The advanced physical intuition allows us to enhance the original algorithm and achieve a reduction in hardware cost of 50%, improving its practical relevance. Using simulated training results for different device families, we conclude that SHD provides better classification accuracy and faster convergence with respect to SGD-based training in all applicable scenarios. The contents of this paper provide a guideline for the next generation of crosspoint elements as well as specialized algorithms for analog computing.</p></sec>
<sec id="s2">
<title>Theory</title>
<p>Neural networks can be construed as many layers of matrices (i.e., weights, <italic>W</italic>) performing affine transformations followed by non-linear activation functions. Training (i.e., learning) process refers to the adjustment of <italic>W</italic> such that the network response to a given input produces the target output for a labeled dataset. The discrepancy between the network and target outputs is represented with a scalar error function, <italic>E</italic>, which the training algorithm seeks to minimize. In the case of the conventional SGD algorithm (Cauchy, <xref ref-type="bibr" rid="B7">1847</xref>), values of <italic>W</italic> are incrementally modified by taking small steps (scaled by the learning rate, &#x003B7;) in the direction of the gradient of the error function sampled for each input. Computation of the gradients is performed by the backpropagation algorithm consisting of forward pass, backward pass, and update subroutines (Rumelhart et al., <xref ref-type="bibr" rid="B27">1986</xref>) (<xref ref-type="fig" rid="F1">Figure 1A</xref>). When the discrete nature of DNN training is analyzed in the continuum limit, the time evolution of <italic>W</italic> can be written as a Langevin equation:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M1"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>&#x01E86;</mml:mi><mml:mo>=</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mo>-</mml:mo><mml:mi>&#x003B7;</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003F5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B7; is the learning rate and &#x003F5;(<italic>t</italic>) is a fluctuating term with zero-mean, accounting for the inherent stochasticity of the training procedure (Feng and Tu, <xref ref-type="bibr" rid="B10">2023</xref>). As a result of this training process, <italic>W</italic> converges to the vicinity of an optimum <italic>W</italic><sub>0</sub>, at which <inline-formula><mml:math id="M2"><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> but &#x01E86; is only on average 0 due to the presence of &#x003F5;(<italic>t</italic>). For visualization, if the training dataset is a cluster of points in space, <italic>W</italic><sub>0</sub> is the center of that cluster, where each individual point still exerts a force (&#x003F5;(<italic>t</italic>)) that averages out to 0 over the whole dataset.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Effect of asymmetric conductance modulation for SGD-based training. <bold>(A)</bold> Schematic and pseudocode of processes for conventional SGD algorithm (Cauchy, <xref ref-type="bibr" rid="B7">1847</xref>). Vectors <italic>x, y</italic>, represent the input and output vectors in the forward pass whereas &#x003B4;, <italic>z</italic> contain the backpropagated error information. The analog architecture schematic is only shown for a single layer, where all vectors are propagated between upper and lower network layers in general. The pseudocode only describes operations computed in the analog domain, whereas digital computations such as activation functions are not shown for simplicity. <bold>(B)</bold> Sketch of conductance modulation behavior of a symmetric crosspoint device. <bold>(C)</bold> Simulated single-parameter optimization result for the symmetric device shown in <bold>(B)</bold>. conductance successfully converges to the optimal value for the problem at hand, <italic>G</italic><sub>0</sub>. <bold>(D)</bold> Simulated residual distance between the final converged value, <italic>G</italic><sub><italic>final</italic></sub>, and <italic>G</italic><sub>0</sub> for training the device with characteristics shown in <bold>(B)</bold> for datasets with different optimal values. <bold>(E)</bold> Sketch of conductance modulation behavior of an asymmetric crosspoint device. The point at which &#x00394;<italic>G</italic><sup>&#x0002B;</sup> &#x0003D; &#x00394;<italic>G</italic><sup>&#x02212;</sup> is defined as the symmetry point of the device (<italic>G</italic><sub><italic>symmetry</italic></sub>) <bold>(F)</bold> Simulated training result for the same single-parameter optimization with the asymmetric device shown in <bold>(E)</bold>. Device conductance fails to converge to <italic>G</italic><sub>0</sub>, but instead settles at a level between <italic>G</italic><sub>0</sub> and <italic>G</italic><sub><italic>symmetry</italic></sub>. <bold>(G)</bold> Simulated residual distance (in semilog scale) between the final value, <italic>G</italic><sub><italic>final</italic></sub>, and <italic>G</italic><sub>0</sub> for training the device with characteristics shown in <bold>(E)</bold> for datasets with different optimal values.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="frai-05-891624-g0001.tif"/>
</fig>
<p>In the case of analog crossbar-based architectures, the linear matrix operations are performed on arrays of physical devices, whereas all non-linear computations (e.g., activation and error functions) are handled at peripheral circuitry. The strictly positive nature of device conductance requires representation of each weight by means of the differential conductance of a pair of crosspoint elements (i.e., <italic>W</italic>&#x0221D;<italic>G</italic><sub><italic>main</italic></sub>&#x02212;<italic>G</italic><sub><italic>ref</italic></sub>). Consequently, vector-matrix multiplications for the forward and backward passes are computed by using both the main and the reference arrays (<xref ref-type="fig" rid="F1">Figure 1A</xref>). On the other hand, the gradient accumulation and updates are only performed on the main array using bidirectional conductance changes while the values of the reference array are kept constant<xref ref-type="fn" rid="fn0002"><sup>2</sup></xref>. In this section, to illustrate the basic dynamics of DNN training with analog architectures, we study a single-parameter optimization problem (linear regression) which can be considered as the simplest &#x0201C;neural network&#x0201D;.</p>
<p>The weight updates in analog implementations are carried out through modulation of the conductance values of the crosspoint elements, which are often applied by means of pulses. These pulses cause incremental changes in device conductance (&#x00394;<italic>G</italic><sup>&#x0002B;, &#x02212;</sup>). In an ideal device, these modulation increments are of equal magnitude in both directions and independent of the device conductance, as shown in <xref ref-type="fig" rid="F1">Figure 1B</xref>. It should be noted that the series of modulations in the training process is inherently non-monotonic as different input samples in the training set create gradients with different magnitudes and signs in general. Furthermore, as stated above, even when an optimum conductance, <italic>G</italic><sub>0</sub>, is reached (<italic>W</italic><sub>0</sub>&#x0221D;<italic>G</italic><sub>0</sub>&#x02212;<italic>G</italic><sub><italic>ref</italic></sub>), continuing the training operation would continue modifying the conductance in the vicinity of <italic>G</italic><sub>0</sub>, as shown in <xref ref-type="fig" rid="F1">Figure 1C</xref>. Consequently, <italic>G</italic><sub>0</sub> can be considered as a dynamic equilibrium point of the device conductance from the training algorithm point of view.</p>
<p>Despite considerable technological efforts in the last decade, analog resistive devices with the ideal characteristics illustrated in <xref ref-type="fig" rid="F1">Figure 1B</xref> have yet to be realized. Instead, practical analog resistive devices display asymmetric conductance modulation characteristics such that unitary (i.e., single-pulse) modulations in opposite directions do not cancel each other in general, i.e., &#x00394;<italic>G</italic><sup>&#x0002B;</sup>(<italic>G</italic>)&#x02260;&#x02212;&#x00394;<italic>G</italic><sup>&#x02212;</sup>(<italic>G</italic>). However, with the exception of some device technologies such as Phase Change Memory (PCM) which reset abruptly (Burr et al., <xref ref-type="bibr" rid="B4">2017</xref>; Sebastian et al., <xref ref-type="bibr" rid="B31">2017</xref>; Ambrogio et al., <xref ref-type="bibr" rid="B3">2018</xref>), many crosspoint elements can be modeled by a smooth, monotonic, non-linear function that shows saturating behavior at its extrema as shown in <xref ref-type="fig" rid="F1">Figure 1E</xref> (Kim et al., <xref ref-type="bibr" rid="B21">2019b</xref>, <xref ref-type="bibr" rid="B19">2020</xref>; Yao et al., <xref ref-type="bibr" rid="B36">2020</xref>). For such devices, there exists a unique conductance point, <italic>G</italic><sub><italic>symmetry</italic></sub>, at which the magnitude of an incremental conductance change is equal to that of a decremental one. As a result, the time evolution of <italic>G</italic> during training can be rewritten as:</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M3"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>&#x00120;</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi>&#x003B7;</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>G</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003F5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x003B7;</mml:mi><mml:mi>&#x003BA;</mml:mi><mml:mo>|</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>G</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003F5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mo>.</mml:mo><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>d</mml:mi><mml:mi>w</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mtext>&#x000A0;</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003BA; is the asymmetry factor and <italic>f</italic><sub><italic>hardware</italic></sub> is the functional form of the device asymmetry (see <xref ref-type="supplementary-material" rid="SM1">Supplementary Section 1.1</xref> for derivation). In this expression, the term <inline-formula><mml:math id="M4"><mml:mo>-</mml:mo><mml:mi>&#x003B7;</mml:mi><mml:mo>|</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>G</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003F5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:math></inline-formula> signifies that the direction of the change related to asymmetric behavior is solely determined by <italic>f</italic><sub><italic>hardware</italic></sub>, irrespective of the direction of the intended modulation. For the exponentially saturating device model shown in <xref ref-type="fig" rid="F1">Figure 1E</xref>, <italic>f</italic><sub><italic>hardware</italic></sub> &#x0003D; <italic>G</italic>&#x02212;<italic>G</italic><sub><italic>symmetry</italic></sub>, which indicates that each and every update event has a component that drifts the device conductance toward its symmetry point. A simple observation of this effect is when enough equal number of incremental and decremental changes are applied to these devices in a random order, the conductance value converges to the vicinity of <italic>G</italic><sub><italic>symmetry</italic></sub> (Kim et al., <xref ref-type="bibr" rid="B19">2020</xref>). Therefore, this point can be viewed as the physical equilibrium point for the device, as it is the only conductance value that is dynamically stable.</p>
<p>It is essential to realize that there is in general no relation between <italic>G</italic><sub><italic>symmetry</italic></sub> and <italic>G</italic><sub>0</sub>, as the former is entirely device-dependent while the latter is problem-dependent. As a result, for an asymmetric device, two equilibria of hardware and software create a competing system, such that the conductance value converges to a particular conductance somewhere between <italic>G</italic><sub><italic>symmetry</italic></sub> and <italic>G</italic><sub>0</sub>, for which the driving forces of the training algorithm and device asymmetry are balanced out (<xref ref-type="fig" rid="F1">Figure 1F</xref>). In examples shown in <xref ref-type="fig" rid="F1">Figures 1C,F</xref>, <italic>G</italic><sub>0</sub> of the problem is purposefully designed to be far away from <italic>G</italic><sub><italic>symmetry</italic></sub>, so as to depict a case for which the effect of asymmetry is pronounced. Indeed, it can be seen that the discrepancy between the final converged value, <italic>G</italic><sub><italic>final</italic></sub>, and <italic>G</italic><sub>0</sub> strongly depends on the relative position of <italic>G</italic><sub>0</sub> with respect to the <italic>G</italic><sub><italic>symmetry</italic></sub> (<xref ref-type="fig" rid="F1">Figure 1G</xref>), unlike that of ideal devices (<xref ref-type="fig" rid="F1">Figure 1D</xref>). Detailed derivation of these dynamics can be found in <xref ref-type="supplementary-material" rid="SM1">Supplementary Section 1.2</xref>.</p>
<p>In contrast to SGD, our new training algorithm, illustrated in <xref ref-type="fig" rid="F2">Figure 2A</xref>, separates both the forward path and error backpropagation from the update function. For this purpose, two array pairs (instead of a single pair), namely <italic>A</italic><sub><italic>main</italic></sub>, <italic>A</italic><sub><italic>ref</italic></sub>, <italic>C</italic><sub><italic>main</italic></sub>, <italic>C</italic><sub><italic>ref</italic></sub> are utilized to represent each layer (Gokmen and Haensch, <xref ref-type="bibr" rid="B12">2020</xref>). In this representation, <italic>A</italic> &#x0003D; <italic>A</italic><sub><italic>main</italic></sub>&#x02212;<italic>A</italic><sub><italic>ref</italic></sub> stands for the auxiliary array and <italic>C</italic> &#x0003D; <italic>C</italic><sub><italic>main</italic></sub>&#x02212;<italic>C</italic><sub><italic>ref</italic></sub> stands for the core array.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>DNN training with Stochastic Hamiltonian Descent (SHD) algorithm and dynamics of a dissipative harmonic oscillator. <bold>(A)</bold> Schematic and pseudocode of training process using the SHD algorithm. The pseudocode only describes operations computed in the analog domain, whereas digital computations such as non-linear error functions are not shown for simplicity. <bold>(B)</bold> Illustration of a damped harmonic oscillator system. <bold>(C)</bold> Differential equations describing the evolution of the parameters with the SHD training algorithm in the continuum limit. <bold>(D)</bold> Equations of motion describing the dynamics of a harmonic oscillator. <bold>(E)</bold> Simulated results for a single-parameter optimization task using the SHD algorithm with symmetric devices described in <xref ref-type="fig" rid="F1">Figure 1B</xref>. <bold>(F)</bold> Simulated results for a single-parameter optimization task using the SHD algorithm with asymmetric devices described in <xref ref-type="fig" rid="F1">Figure 1E</xref>.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="frai-05-891624-g0002.tif"/>
</fig>
<p>The new training algorithm operates as follows. At the beginning of the training process, <italic>A</italic><sub><italic>ref</italic></sub> and <italic>C</italic><sub><italic>ref</italic></sub> are initialized to <italic>A</italic><sub><italic>main, symmetry</italic></sub> and <italic>C</italic><sub><italic>main, symmetry</italic></sub>, respectively [reasons will be clarified later, see Section M1. Array Initialization (Zero-Shifting) for details] following the method described in Kim et al. (<xref ref-type="bibr" rid="B19">2020</xref>). As illustrated in <xref ref-type="fig" rid="F2">Figure 2A</xref>, first, forward and backward pass cycles are performed on the array-pair <italic>C</italic> (Steps <italic>I</italic> and <italic>II</italic>), and corresponding updates are performed on <italic>A</italic><sub><italic>main</italic></sub> (scaled by the learning rate &#x003B7;<sub><italic>A</italic></sub>) using the parallel update scheme discussed in Gokmen and Vlasov (<xref ref-type="bibr" rid="B15">2016</xref>) (Step <italic>III</italic>). In other words, the updates that would have been applied to <italic>C</italic> in a conventional SGD scheme are directed to <italic>A</italic> instead.</p>
<p>Then, every &#x003C4; cycles, another forward pass is performed on <italic>A</italic>, with a vector <italic>u</italic>, which produces <italic>v</italic> &#x0003D; <italic>Au</italic> (Step <italic>IV</italic>). In its simplest form, <italic>u</italic> can be a vector of all &#x0201C;0&#x0201D;s but one &#x0201C;1&#x0201D;, which then makes <italic>v</italic> equal to the row of <italic>A</italic> corresponding to the location of &#x0201C;1&#x0201D; in <italic>u</italic>. Finally, the vectors <italic>u</italic> and <italic>v</italic> are used to update <italic>C</italic><sub><italic>main</italic></sub> with the same parallel update scheme (scaled by the learning rate &#x003B7;<sub><italic>c</italic></sub>) (Step <italic>V</italic>). These steps (<italic>IV</italic> and <italic>V</italic> shown in <xref ref-type="fig" rid="F2">Figure 2A</xref>) essentially partially add the information stored in <italic>A</italic> to <italic>C</italic><sub><italic>main</italic></sub>. The complete pseudocode for the algorithm can be found in Section M2. Pseudocode for SHD Algorithm.</p>
<p>At the end of the training procedure <italic>C</italic> alone contains the optimized network, to be later used in inference operations (hence the name core). Since A receives updates computed over <inline-formula><mml:math id="M5"><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>C</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula>, which have zero-mean once <italic>C</italic> is optimized, its active component, <italic>A</italic><sub><italic>main</italic></sub>, will be driven toward <italic>A</italic><sub><italic>main, symmetry</italic></sub>. The choice to initialize the stationary reference array, <italic>A</italic><sub><italic>ref</italic></sub>, at <italic>A</italic><sub><italic>main, symmetry</italic></sub> ensures that <italic>A</italic> &#x0003D; 0 at this point (i.e., when <italic>C</italic> is optimized), thus generating no updates to <italic>C</italic> in return.</p>
<p>With the choice of <italic>u</italic> vectors made above, every time steps <italic>IV</italic> and <italic>V</italic> are performed, the location of the &#x0201C;1&#x0201D; for the <italic>u</italic> vector would change in a cyclic fashion, whereas in general any set of orthogonal <italic>u</italic> vectors can be used for this purpose (Gokmen and Haensch, <xref ref-type="bibr" rid="B12">2020</xref>). We emphasize that these steps should not be confused with weight carrying (Agarwal et al., <xref ref-type="bibr" rid="B1">2017</xref>; Ambrogio et al., <xref ref-type="bibr" rid="B3">2018</xref>), as <italic>C</italic> is updated by only a fractional amount in the direction of <italic>A</italic> as &#x003B7;<sub><italic>C</italic></sub> &#x0003C; &#x0003C;1 and at no point information stored in <italic>A</italic> is externally erased (i.e., <italic>A</italic> is never reset). Instead, <italic>A</italic> and <italic>C</italic> create a coupled-dynamical-system, as the changes performed on both are determined by the values of one another.</p>
<p>Furthermore, it is critical to realize that the algorithm shown in <xref ref-type="fig" rid="F2">Figure 2</xref> consists of only fully-parallel operations. Similar to steps <italic>I</italic> and <italic>II</italic> (forward and backward pass on <italic>C</italic>), steps <italic>IV</italic> is yet another matrix-vector multiplication that is performed by means of Ohm&#x00027;s and Kirchhoff&#x00027;s Laws. On the other hand, the update steps <italic>III</italic> and <italic>V</italic> are performed by the stochastic update scheme (Gokmen and Vlasov, <xref ref-type="bibr" rid="B15">2016</xref>). This update method does not explicitly compute the outer products (<italic>x</italic>&#x000D7;&#x003B4; and <italic>u</italic>&#x000D7;<italic>v</italic>), but instead uses a statistical method to modify all weights in parallel proportional to those outer products. As a result, no serial operations are required at any point throughout the training operation, enabling high throughput and energy efficiency benefits in deep learning computations.</p>
<p>For the same linear regression problem studied above, the discrete-time update rules given in <xref ref-type="fig" rid="F2">Figure 2A</xref> can be rewritten as a pair of differential equations in the continuum limit that describe the time evolution of subsystems <italic>A</italic> and <italic>C</italic> (<xref ref-type="fig" rid="F2">Figure 2C</xref>) as:</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M6"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>&#x00226;</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>C</mml:mi></mml:mrow></mml:mfrac><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003F5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mi>&#x003BA;</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>C</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003F5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:mo>&#x000D7;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="E4"><label>(4)</label><mml:math id="M7"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x0010A;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi></mml:mrow></mml:msub><mml:mi>A</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi></mml:mrow></mml:msub><mml:mi>&#x003BA;</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mi>A</mml:mi><mml:mo>|</mml:mo><mml:mo>&#x000D7;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>It can be noticed that this description of the coupled system has the same arrangement as the equations governing the motion of a damped harmonic oscillator (<xref ref-type="fig" rid="F2">Figures 2B,D</xref>). In this analogy, subsystem <italic>A</italic> corresponds to velocity, &#x003BD;, while subsystem <italic>C</italic> maps to position, <italic>x</italic>, allowing the scalar error function of the optimization problem<xref ref-type="fn" rid="fn0003"><sup>3</sup></xref>, <inline-formula><mml:math id="M8"><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>C</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, to map onto the scalar potential energy of the physical framework, <inline-formula><mml:math id="M9"><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>p</mml:mi><mml:mi>r</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>. Moreover, for implementations with asymmetric devices, an additional force term, <italic>F</italic><sub><italic>hardware</italic></sub>, needs to be included in the differential equations to reflect the hardware-induced effects on the conductance modulation. As discussed earlier, for the device model shown in <xref ref-type="fig" rid="F1">Figure 1E</xref> this term is proportional to <italic>A</italic><sub><italic>main</italic></sub>&#x02212;<italic>A</italic><sub><italic>main, symmetry</italic></sub>. If we assume <italic>A</italic><sub><italic>ref</italic></sub> &#x0003D; <italic>A</italic><sub><italic>main, symmetry</italic></sub> (this assumption will be explained later), we can rewrite <italic>F</italic><sub><italic>hardware</italic></sub> as a function of <italic>A</italic><sub><italic>main</italic></sub>&#x02212;<italic>A</italic><sub><italic>ref</italic></sub>, which then resembles a drag force, <italic>F</italic><sub><italic>drag</italic></sub>, that is linearly proportional to velocity (&#x003BD;&#x0221D;<italic>A</italic> &#x0003D; <italic>A</italic><sub><italic>main</italic></sub>&#x02212;<italic>A</italic><sub><italic>ref</italic></sub>) with a variable (but strictly non-negative) drag coefficient <italic>k</italic><sub><italic>drag</italic></sub>. In general, the <italic>F</italic><sub><italic>hardware</italic></sub> term can have various functional forms for devices with different conductance modulation characteristics but is completely absent for ideal devices. Note that, only to simplify the physical analogy, we ignore the effect of asymmetry in subsystem <italic>C</italic>, which yields the equation shown in <xref ref-type="fig" rid="F2">Figure 2C</xref> (instead of Equation 4). This decision will be justified in the Section Discussions.</p>
<p>Analogous to the motion of a lossless harmonic oscillator, the steady-state solution for this modified optimization problem with ideal devices (i.e., <italic>F</italic><sub><italic>hardware</italic></sub> &#x0003D; 0) has an oscillatory behavior (<xref ref-type="fig" rid="F2">Figure 2E</xref>). This result is expected, as in the absence of any dissipation mechanism, the total energy of the system cannot be minimized (it is constant) but can only be continuously transformed between its potential and kinetic components. On the other hand, for asymmetric devices, the dissipative force term <italic>F</italic><sub><italic>hardware</italic></sub> gradually annihilates all energy in the system, allowing <italic>A</italic>&#x0221D;&#x003BD; to converge to 0 (<italic>E</italic><sub><italic>kinetic</italic></sub> &#x02192; 0) while <italic>C</italic>&#x0221D;<italic>x</italic> converges to <italic>C</italic><sub>0</sub>&#x0221D;<italic>x</italic><sub>0</sub> (<italic>E</italic><sub><italic>potential</italic></sub> &#x02192; 0). Based on these observations, we rename the new training algorithm as <italic>Stochastic Hamiltonian Descent (SHD)</italic> to highlight the evolution of the system parameters in the direction of reducing the system&#x00027;s total energy (Hamiltonian). These dynamics can be visualized by plotting the time evolution of <italic>A</italic> vs. that of <italic>C</italic>, which yields a spiraling path representing decaying oscillations for the optimization process with asymmetric devices (<xref ref-type="fig" rid="F2">Figure 2F</xref>), in contrast to elliptical trajectories observed for ideal lossless systems (<xref ref-type="fig" rid="F2">Figure 2E</xref>).</p>
<p>Following the establishment of the necessity to have dissipative characteristics, here we analyze conditions at which device asymmetry provides this behavior. It is well-understood in mechanics that for a force to be considered dissipative, its product with velocity (i.e., power) should be negative (otherwise it would imply energy injection into the system). In other words, the hardware-induced force term <inline-formula><mml:math id="M10"><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>h</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>d</mml:mi><mml:mi>w</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BA;</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02202;</mml:mi><mml:mi>C</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003F5;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> and the velocity, &#x003BD; &#x0003D; <italic>A</italic><sub><italic>main</italic></sub>&#x02212;<italic>A</italic><sub><italic>ref</italic></sub>, should always have opposite signs. Furthermore, from the steady-state analysis, for the system to be stationary (&#x003BD; &#x0003D; 0) at the point with minimum potential energy (<italic>x</italic> &#x0003D; <italic>x</italic><sub>0</sub>), there should be no net force (<italic>F</italic> &#x0003D; 0). Both of these arguments indicate that, for the SHD algorithm to function properly, <italic>A</italic><sub><italic>ref</italic></sub> must be set to <italic>A</italic><sub><italic>main, symmetry</italic></sub>. Note that as long as the crosspoint elements are realized with asymmetric devices (opposite to SGD requirement) and a symmetry point exists for each device, the shape of their modulation characteristics is not critical for successful DNN training with the SHD algorithm. Importantly, while a technologically viable solution for symmetric devices has not yet been found over decades of investigation, asymmetric devices that satisfy the aforementioned properties are abundant.</p>
<p>A critical aspect to note is that the SGD and the SHD algorithms are fundamentally disjunct methods governed by completely different dynamics. The SGD algorithm attempts to optimize the system parameters while disregarding the effect of device asymmetry and thus converges to the minimum of a wrong energy function. On the other, the system variables in an SHD-based training do not conventionally evolve in directions of the error function gradient, but instead, are tuned to minimize the total energy incorporating the hardware-induced terms. The most obvious manifestation of these properties can be observed when the training is initialized from the optimal point (i.e., the very lucky guess scenario) since any &#x0201C;training&#x0201D; algorithm should at least be able to maintain this optimal state. For the conventional SGD, when <italic>W</italic> &#x0003D; <italic>W</italic><sub>0</sub>, the zero-mean updates applied to the network were shown above to drift <italic>W</italic> away from <italic>W</italic><sub>0</sub> toward <italic>W</italic><sub><italic>symmetry</italic></sub>. On the other hand, for the SHD method, when <italic>A</italic> &#x0003D; 0 and <italic>C</italic> &#x0003D; <italic>C</italic><sub>0</sub>, the zero-mean updates applied on <italic>A</italic> do not have any adverse effect since <italic>A</italic><sub><italic>main</italic></sub> is already at <italic>A</italic><sub><italic>main, symmetry</italic></sub> for <italic>A</italic> &#x0003D; 0. Consequently, no updates are applied to <italic>C</italic> either as &#x0010A; &#x0003D; <italic>A</italic> &#x0003D; 0. Therefore, it is clear that SGD is fundamentally incompatible with asymmetric devices, even when the solution is guessed correctly from the beginning, whereas the SHD does not suffer from this problem. Note that the propositions made for SGD can be further generalized to other crossbar-compatible training methods such as equilibrium propagation (Scellier and Bengio, <xref ref-type="bibr" rid="B29">2017</xref>) and deep Boltzmann machines (Salakhutdinov and Hinton, <xref ref-type="bibr" rid="B28">2009</xref>), which can also be adapted to be used with asymmetric devices following the approach discussed in this paper.</p>
<p>Finally, we appreciate that large-scale neural networks are much more complicated systems with respect to the problem analyzed here. Similarly, different analog devices show a wide range of conductance modulation behaviors, as well as bearing other non-idealities such as analog noise, imperfect retention, and limited endurance. However, the theory we provide here finally provides an intuitive explanation for: (1) why device asymmetry is fundamentally incompatible with SGD-based training and (2) how to ensure accurate optimization while only using fully-parallel operations. We conclude that asymmetry-related issues within SGD should be analyzed in the context of competing equilibria, where the optimum for the classification problem is not even a stable solution at steady-state. In addition to this simple stability analysis, the insight to modify the optimization landscape to include non-ideal hardware effects allows other fully-parallel solutions to be designed in the future using advanced concepts from optimal control theory. As a result, these parallel methods enable analog processors to provide high computational throughput and energy efficiency benefits over their conventional digital counterparts.</p></sec>
<sec id="s3">
<title>Experimental Demonstration</title>
<p>In order to validate the SHD dynamics theorized above, we carried out an experimental demonstration of the SHD algorithm using metal-oxide based electrochemical devices reported in Sebastian et al. (<xref ref-type="bibr" rid="B31">2017</xref>) (<xref ref-type="fig" rid="F3">Figure 3A</xref>). These devices are three-terminal<xref ref-type="fn" rid="fn0004"><sup>4</sup></xref>, voltage-controlled crosspoint elements, absent of any compliance circuits or serial-access devices. The modulation characteristics obtained for one of the devices is shown in <xref ref-type="fig" rid="F3">Figure 3B</xref>, where &#x0201C;crossed-swords&#x0201D; behavior is observed with a well-defined symmetry point.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Experimental demonstration of SHD training algorithm. <bold>(A)</bold> Optical micrograph of metal-oxide based electrochemical devices (Sebastian et al., <xref ref-type="bibr" rid="B31">2017</xref>). Note that the image shows an integrated array whereas experiments were conducted with individual devices connected externally. <bold>(B)</bold> Conductance modulation characteristics obtained for one of the devices, showing &#x0201C;crossed-swords&#x0201D; behavior with a well-defined symmetry point. <bold>(C)</bold> Schematic for array configuration used in 2-parameter optimization with SHD algorithm. All steps are shown using the same notation used in <xref ref-type="fig" rid="F2">Figure 2</xref> except for the backward pass (Step <italic>II</italic>) which is not required for a single layer network. For training, sum of squared errors is used to calculate the scalar error and vector &#x003B4;, <italic>C</italic><sub><italic>main</italic></sub> is updated once every 10 samples (i.e., &#x003C4; &#x0003D; 10) whereas [1, 0] and [0, 1] were used in Step <italic>IV</italic> (as <italic>u</italic> vectors). The reference arrays containing symmetry point information are stored in digital (as they remain unchanged throughout the training) for simplicity. <bold>(D)</bold> Evolution of device conductances for the first (<italic>A</italic><sub>1</sub>, <italic>C</italic><sub>1</sub>) and the second (<italic>A</italic><sub>2</sub>, <italic>C</italic><sub>2</sub>) parameters. Plotting the values of <italic>A</italic> vs. <italic>C</italic> produces the distinctive spiraling image, as expected from the theoretical analysis.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="frai-05-891624-g0003.tif"/>
</fig>
<p>To capture the essence of SHD-based training, we have chosen a 2-parameter optimization problem with a synthetic dataset <italic>x</italic><sub>1, 2</sub> and <italic>y</italic> generated of form <italic>y</italic> &#x0003D; <italic>G</italic><sub>0<sub>1</sub></sub><italic>x</italic><sub>1</sub>&#x0002B;<italic>G</italic><sub>0<sub>2</sub></sub><italic>x</italic><sub>2</sub>&#x0002B;&#x003B3;, where <sub><italic>G</italic><sub>0</sub>1, 2</sub> are the unknowns searched for and &#x003B3; is the Gaussian noise. During the forward and backward pass cycles, input values (from the training set) were represented with different voltage levels and output results were obtained <italic>via</italic> measuring the line currents. We note that in an actual implementation representing input values with different pulse widths rather than amplitudes might be beneficial, avoiding the impact of the non-linear conductance of the crosspoint elements for accurate vector-matrix multiplication. Following the generation of the update vectors, <italic>x</italic> and &#x003B4;, the array is programmed in parallel using stochastic updating with half-bias voltage scheme, as explained in Gokmen and Vlasov (<xref ref-type="bibr" rid="B15">2016</xref>). Therefore, we neither computed the outer product explicitly nor accessed the devices serially at any point (<xref ref-type="fig" rid="F3">Figure 3C</xref>).</p>
<p>The array training results using the SHD algorithm are shown in <xref ref-type="fig" rid="F3">Figure 3D</xref>. It can be seen that both <italic>A</italic><sub>1</sub> and <italic>A</italic><sub>2</sub> converges to 0, while <italic>C</italic><sub>1</sub> and <italic>C</italic><sub>2</sub> successfully converge to the optimal values. Moreover, the distinctive spiraling behavior (i.e., decaying oscillations) was observed for both variables, displaying analogous dynamics to dissipative mechanical systems. We found that the success of the training operation strongly depends on the stability of the devices&#x00027; symmetry points. As discussed earlier, any discrepancy between the symmetry point and the reference point (initialized to the symmetry point at the beginning of training) of a device indicates a non-zero steady-state velocity. Therefore, future crosspoint device technologies should exhibit a well-defined symmetry point that is at least quasi-static throughout the training operation.</p></sec>
<sec id="s4">
<title>Discussion and Simulated Training Results</title>
<p>In this section, we first discuss how to implement the SHD algorithm with 3 arrays (instead of 4) using the intuition obtained from the theoretical analysis of the coupled-system. Then we provide simulated results for a large-scale neural network for different asymmetry characteristics to benchmark our method against SGD-based training.</p>
<p>Considering a sequence of <italic>m</italic>&#x0002B;<italic>n</italic> incremental and <italic>n</italic> decremental changes at random order, the net modulation obtained for a symmetric device is on average <italic>m</italic>. On the other hand, we have shown above that for asymmetric devices the conductance value eventually converges to the symmetry point for increasing <italic>n</italic> (irrespective of <italic>m</italic> or the initial conductance). It can be seen by inspection that for increasing statistical variation present in the training data (causing more directional changes for updates), the effect of device asymmetry gets further pronounced, leading to heavier degradation of classification accuracy for networks trained with conventional SGD (see <xref ref-type="supplementary-material" rid="SM1">Supplementary Figure S1</xref>). However, this behavior can alternatively be viewed as non-linear filtering, where only signals with persistent sign information, <inline-formula><mml:math id="M11"><mml:mfrac><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:math></inline-formula> are passed. Indeed, the SHD algorithm exploits this property within the auxiliary array, <italic>A</italic>, which filters the gradient information that is used to train the core array, <italic>C</italic>. As a result, <italic>C</italic> is updated with less frequency and only in directions with a high confidence level of minimizing the error function of the problem at hand. A direct implication of this statement is that the asymmetric modulation behavior of <italic>C</italic> is much less critical than that of <italic>A</italic> (see <xref ref-type="supplementary-material" rid="SM1">Supplementary Figure S2</xref>) for successful optimization as its update signal contains less amount of statistical variation. Therefore, symmetry point information of <italic>C</italic><sub><italic>main</italic></sub> is not relevant either. Using these results and intuition, we modified the original algorithm by discarding <italic>C</italic><sub><italic>ref</italic></sub> and using <italic>A</italic><sub><italic>ref</italic></sub> (set to <italic>A</italic><sub><italic>main, symmetry</italic></sub>) as a common reference array for differential readout. This modification reduces the hardware cost of SHD implementations by 50% to significantly improve their practicality.</p>
<p>Our description of asymmetry as the mechanism of dissipation indicates that it is a necessary and useful device property for convergence within the SHD framework (<xref ref-type="fig" rid="F2">Figure 2E</xref>). However, this argument does not imply that the convergence speed would be determined by the magnitude of device asymmetry for practical-sized applications. Unlike the single-parameter regression problem considered above, the exploration space for DNN training is immensely large, causing optimization to take place over many iterations of the dataset. In return, the level of asymmetry required to balance (i.e., damp) the system evolution is very small and can be readily achieved by any practical level of asymmetry.</p>
<p>To prove these assertations, we show simulated results in <xref ref-type="fig" rid="F4">Figure 4</xref> for a Long Short-Term Memory (LSTM) network, using device models with increasing levels of asymmetry, trained with both the SGD and SHD algorithms. The network was trained on Leo Tolstoy&#x00027;s War and Peace novel, to predict the next character for a given text string (Karpathy et al., <xref ref-type="bibr" rid="B18">2015</xref>). For reference, training the same network with a 32-bit digital floating-point architecture yields a cross-entropy level of 1.33 (complete learning curve shown in <xref ref-type="supplementary-material" rid="SM1">Supplementary Figure S6</xref>). We have particularly chosen this network as LSTM&#x00027;s are known for being particularly vulnerable to device asymmetry (Gokmen et al., <xref ref-type="bibr" rid="B14">2018</xref>).</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Simulated training results for different resistive device technologies. <bold>(A)</bold> Simulated learning curves of a Long Short-Term Memory (LSTM) network trained on Leo Tolstoy&#x00027;s War and Peace novel, using different crosspoint device models under the SGD algorithm. Details of the network can be found in Karpathy et al. (<xref ref-type="bibr" rid="B18">2015</xref>). <bold>(B)</bold> Simulated learning curves for the same network using the SHD algorithm. All simulation details can be found in Section M3. Training Simulator and LSTM Network. See <xref ref-type="supplementary-material" rid="SM1">Supplementary Figure S4</xref> for device-to-device variation included in the simulations and <xref ref-type="supplementary-material" rid="SM1">Supplementary Figure S6</xref> for floating-point baseline comparison.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="frai-05-891624-g0004.tif"/>
</fig>
<p>The insets in <xref ref-type="fig" rid="F4">Figure 4</xref> show the average conductance modulation characteristics representative for each asymmetry level. The simulations further included device-to-device variation, cycle-to-cycle variation, analog read noise, and stochastic updating similar to the work conducted in Gokmen and Vlasov (<xref ref-type="bibr" rid="B15">2016</xref>). The learning curves show the evolution of the cross-entropy error, which measures the performance of a classification model, with respect to the epochs of training. First, <xref ref-type="fig" rid="F4">Figure 4A</xref> shows that even for minimally asymmetric devices (blue trace) trained with SGD, the penalty in classification performance is already severe. This result also demonstrates once more the difficulty of engineering a device that is symmetric-enough to be trained accurately with SGD. On the other hand, for SHD (<xref ref-type="fig" rid="F4">Figure 4B</xref>), all depicted devices are trained successfully, with the sole exception being the perfectly symmetric devices (black trace), as expected (see <xref ref-type="supplementary-material" rid="SM1">Supplementary Figure S3</xref> for devices with abrupt modulation characteristics). Furthermore, <xref ref-type="fig" rid="F4">Figure 4B</xref> demonstrates that SHD can even provide training results with higher accuracy and faster convergence than those for perfectly symmetric devices trained with SGD. As a result, we conclude that SHD is generically superior to SGD for analog deep learning architectures.</p>
<p>Finally, although we present SHD in the context of analog computing specifically, it can also be potentially useful on conventional processors (with simulated asymmetry). The filtering dynamics described above allows SHD to guide its core component selectively in directions with high statistical persistence. Therefore, at the expense of increasing the overall memory and number of operations, SHD might outperform conventional training algorithms by providing faster convergence, better classification accuracy, and/or superior generalization performance.</p></sec>
<sec sec-type="conclusions" id="s5">
<title>Conclusion</title>
<p>In this paper, we described a fully-parallel neural network training algorithm for analog crossbar-based architectures, Stochastic Hamiltonian Descent (SHD), based on resistive devices with asymmetric conductance modulation characteristics, as is the case for all practical technologies. In contrast to previous work that resorted to serial operations to mitigate asymmetry, SHD is a fully-parallel and scalable method that can enable high throughput and energy-efficiency deep learning computations with analog hardware. Our new method uses an auxiliary array to successfully tune the system variables in order to minimize the total energy (Hamiltonian) of the system that includes the effect of device asymmetry. Standard techniques, such as Stochastic Gradient Descent, perform optimization without accounting for the effect of device asymmetry and thus converge to the minimum of a wrong energy function. Therefore, our theoretical framework describes the inherent fundamental incompatibility of asymmetric devices with conventional training algorithms. The SHD framework further enables the exploitation of device asymmetry as a useful feature to selectively filter and apply the updates only in directions with high confidence. The new insights shown here have allowed a 50% reduction in the hardware cost of the algorithm. This method is immediately applicable to a variety of existing device technologies, and complex neural network architectures, enabling the realization of analog training accelerators to tackle the ever-growing computational demand of deep learning applications.</p></sec>
<sec sec-type="methods" id="s6">
<title>Methods</title>
<sec>
<title>M1. Array Initialization (Zero-Shifting)</title>
<p>Initialization of the reference array requires identification of the conductance values of each and every element in <italic>A</italic><sub><italic>main</italic></sub>, and programming the reference array conductances (<italic>A</italic><sub><italic>ref</italic></sub>) to those values. Given that under those conditions <italic>A</italic> &#x0003D; <italic>A</italic><sub><italic>main</italic></sub>&#x02212;<italic>A</italic><sub><italic>ref</italic></sub> becomes 0, the method is also referred to as zero-shifting (Kim et al., <xref ref-type="bibr" rid="B20">2019a</xref>). To identify <italic>A</italic><sub><italic>main, symmetry</italic></sub>, a sufficiently long sequence of increment-decrement pulses is applied to <italic>A</italic><sub><italic>main</italic></sub>. Given the asymmetric nature of the devices, each pair results in a residual conductance modulation toward each device&#x00027;s respective symmetry point. Following this step, the resultant <sub><italic>A</italic><sub><italic>main</italic></sub> &#x0003D; <italic>Amain, symmetry</italic></sub> is then copied to the reference array. Since these steps only occur once per training, the time and energy costs are negligible with respect to the rest of the operation (even for serial copying).</p></sec>
<sec>
<title>M2. Pseudocode for SHD Algorithm</title>
<p>Initialize</p>
<p><italic>k</italic>:<italic>iteration step</italic>&#x02190;1, <italic>l</italic>:<italic>layer index</italic></p>
<p>Set &#x003C4;, &#x003B7;</p>
<p>For each layer</p>
<p><inline-formula><mml:math id="M12"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> (<italic>m</italic>&#x000D7;<italic>n matrix, dynamic</italic>)</p>
<p><inline-formula><mml:math id="M13"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>  (<italic>m</italic>&#x000D7;<italic>n matrix, static</italic>)</p>
<p><inline-formula><mml:math id="M14"><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> (<italic>m</italic>&#x000D7;<italic>n matrix, dynamic</italic>)</p>
<p>For each labeled data pair [<italic>x</italic><sub><italic>i</italic></sub>, <italic>t</italic><sub><italic>i</italic></sub>]</p>
<p>Convert input <italic>x</italic><sub><italic>i</italic></sub> to time encoded voltage pulse for the first layer (<inline-formula><mml:math id="M15"><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>)</p>
<p><inline-formula><mml:math id="M16"><mml:mi>M</mml:mi><mml:mi>A</mml:mi><mml:mi>C</mml:mi><mml:mtext>&#x000A0;</mml:mtext><mml:msup><mml:mrow><mml:mi>O</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p>
<p>Convert analog output to digital to store and apply non-linear functions (activations, pooling etc.)</p>
<p>Forward propagate <italic>O</italic><sup>1</sup>[<italic>k</italic>] as the input for next layer (always using <inline-formula><mml:math id="M17"><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> arrays) for all <italic>layers</italic></p>
<p>Compute error (cost) using network output <italic>O</italic><sup><italic>final</italic></sup>[<italic>k</italic>] and target output <italic>t</italic>[<italic>k</italic>]</p>
<p>Backward propagate using the same dynamics (again using <inline-formula><mml:math id="M18"><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mtext>&#x000A0;</mml:mtext></mml:math></inline-formula>arrays) to compute all error matrices &#x003B4;<sup><italic>l</italic></sup>[k]</p>
<p>Update <inline-formula><mml:math id="M19"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02190;</mml:mo><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x003B7;</mml:mi><mml:mo>.</mml:mo><mml:msup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> using stochastic update scheme</p>
<p>If mod (k,&#x003C4;) = 0</p>
<p><italic>u</italic><sup><italic>l</italic></sup>[<italic>k</italic>] &#x0003D; [0, 0, 0&#x02026;1, &#x02026;0, 0], where &#x0201C;1&#x0201D; is at <italic>k</italic><sup><italic>th</italic></sup> location</p>
<p>MAC <inline-formula><mml:math id="M20"><mml:msup><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>.</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p>
<p>Update <inline-formula><mml:math id="M21"><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02190;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mi>&#x003B7;</mml:mi><mml:mo>.</mml:mo><mml:msup><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02297;</mml:mo><mml:msup><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p></sec>
<sec>
<title>M3. Training Simulator and LSTM Network</title>
<p>The simulation framework used here is the same that was used in Gokmen and Vlasov (<xref ref-type="bibr" rid="B15">2016</xref>), Gokmen et al. (<xref ref-type="bibr" rid="B13">2017</xref>, <xref ref-type="bibr" rid="B14">2018</xref>), and Gokmen and Haensch (<xref ref-type="bibr" rid="B12">2020</xref>). The simulations start with instantiating 3 devices per weight. Each device parameter (e.g., number of states, asymmetry factor, and symmetry point) is generated with a given mean and standard variation, such that no two devices are the same. Moreover, these device parameters also bear cycle-to-cycle variation, defined by another parameter, to make the operation more realistic. An open access version of the simulator we used in this work can be found in github.com/ibm/aihwkit for reproduction of the results.</p>
<p>The incremental changes are set such that devices have on average 1,200 programmable states within their dynamic range. Through setting the gain factors at the integrator terminals appropriately, the average full conductance range of devices are adjusted to be equivalent &#x000B1; 2 arbitrary units. Consistent with this notation, the integrators are set to saturate at &#x000B1; 40 arbitrary units. We have used 9-bit resolution for the ADCs and 7-bit resolution for the DACs where the output-referred noise level was set at 0.02 arbitrary units. This selection was made in order not to be limited by noise-related performance degradation, as studied by Gokmen et al. (<xref ref-type="bibr" rid="B13">2017</xref>). In the update cycle, the maximum allowed number of pulses (i.e., bit length, BL) was set to be 100. However, as update management determines this number on-the-go depending on certain characteristics of the update vectors and device parameters, real BL was &#x0003C;10 for the most of the training.</p>
<p>The War and Peace dataset consists of 3, 258, 246 characters, which we split into training and test sets as 2, 933, 246 and 325, 000 characters, respectively. The network is trained to have a vocabulary of 87 distinct characters. We have selected to use hidden vectors of 64-cell size, which corresponds to &#x0007E;77K weights for the complete network. Full details of the network architecture can be found in Karpathy et al. (<xref ref-type="bibr" rid="B18">2015</xref>).</p>
<p>The selection of the LSTM problem studied here in detail is found to be optimal, which is complex enough to validate the training algorithm, while it still is trainable with limited number of conductance states, analog noise, variations, and limited resolution. Given that SHD only resolves asymmetry related issues, whereas other imperfections related with analog processors such as device-to-device variability, cycle-to-cycle variability, noise, and resolution can still deteriorate the training performance significantly, we recommend future studies to explore larger problems, once there are additional solutions for these other non-idealities related to analog crossbar architectures.</p></sec></sec>
<sec sec-type="data-availability" id="s7">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/<xref ref-type="supplementary-material" rid="SM1">Supplementary Material</xref>, further inquiries can be directed to the corresponding author/s.</p></sec>
<sec id="s8">
<title>Author Contributions</title>
<p>MO and TG conceived the original idea and performed software experiments. TT fabricated devices. MO and SK performed hardware experiments. All authors contributed to the theory development and contributed to the preparation of the manuscript. All authors contributed to the article and approved the submitted version.</p></sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of Interest</title>
<p>MO, TG, TT, TN, JR, WH, and SK were employed by IBM Thomas J. Watson Research Center. The remaining author declares that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p></sec>
<sec sec-type="disclaimer" id="s9">
<title>Publisher&#x00027;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p></sec> </body>
<back>
<sec sec-type="supplementary-material" id="s10">
<title>Supplementary Material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/frai.2022.891624/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/frai.2022.891624/full#supplementary-material</ext-link></p>
<supplementary-material xlink:href="Data_Sheet_1.pdf" id="SM1" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/></sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Agarwal</surname> <given-names>S.</given-names></name> <name><surname>Gedrim</surname> <given-names>R. B. J.</given-names></name> <name><surname>Hsia</surname> <given-names>A. H.</given-names></name> <name><surname>Hughart</surname> <given-names>D. R.</given-names></name> <name><surname>Fuller</surname> <given-names>E. J.</given-names></name> <name><surname>Talin</surname> <given-names>A. A.</given-names></name> <etal/></person-group>. (<year>2017</year>). <article-title>Achieving ideal accuracies in analog neuromorphic computing using periodic carry</article-title>. <source>Symp. VLSI Technol.</source> <fpage>174</fpage>&#x02013;<lpage>175</lpage>. <pub-id pub-id-type="doi">10.23919/VLSIT.2017.7998164</pub-id></citation>
</ref>
<ref id="B2">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Agarwal</surname> <given-names>S.</given-names></name> <name><surname>Plimpton</surname> <given-names>S. J.</given-names></name> <name><surname>Hughart</surname> <given-names>D. R.</given-names></name> <name><surname>Hsia</surname> <given-names>A. H.</given-names></name> <name><surname>Richter</surname> <given-names>I.</given-names></name> <name><surname>Cox</surname> <given-names>J. A.</given-names></name> <etal/></person-group>. (<year>2016</year>). <article-title>Resistive memory device requirements for a neural algorithm accelerator</article-title>. <source>Proc. Int. Jt. Conf. Neural Networks.</source> <fpage>929</fpage>&#x02013;<lpage>938</lpage>. <pub-id pub-id-type="doi">10.1109/IJCNN.2016.7727298</pub-id></citation>
</ref>
<ref id="B3">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ambrogio</surname> <given-names>S.</given-names></name> <name><surname>Narayanan</surname> <given-names>P.</given-names></name> <name><surname>Tsai</surname> <given-names>H.</given-names></name> <name><surname>Shelby</surname> <given-names>R. M.</given-names></name> <name><surname>Boybat</surname> <given-names>I.</given-names></name> <name><surname>Nolfo</surname> <given-names>C.</given-names></name> <etal/></person-group>. (<year>2018</year>). <article-title>Equivalent-accuracy accelerated neural-network training using analogue memory</article-title>. <source>Nature</source>. <volume>558</volume>, <fpage>60</fpage>&#x02013;<lpage>67</lpage>. <pub-id pub-id-type="doi">10.1038/s41586-018-0180-5</pub-id><pub-id pub-id-type="pmid">29875487</pub-id></citation></ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Burr</surname> <given-names>G. W.</given-names></name> <name><surname>Shelby</surname> <given-names>R. M.</given-names></name> <name><surname>Sebastian</surname> <given-names>A.</given-names></name> <name><surname>Kim</surname> <given-names>S.</given-names></name> <name><surname>Sidler</surname> <given-names>S.</given-names></name> <name><surname>Virwani</surname> <given-names>K.</given-names></name> <etal/></person-group>. (<year>2017</year>). <article-title>Neuromorphic computing using non-volatile memory</article-title>. <source>Adv. Phys.</source> <volume>2</volume>, <fpage>89</fpage>&#x02013;<lpage>124</lpage>. <pub-id pub-id-type="doi">10.1080/23746149.2016.1259585</pub-id></citation>
</ref>
<ref id="B5">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Burr</surname> <given-names>G. W.</given-names></name> <name><surname>Shelby</surname> <given-names>R. M.</given-names></name> <name><surname>Sidler</surname> <given-names>S.</given-names></name> <name><surname>Di Nolfo</surname> <given-names>C.</given-names></name> <name><surname>Jang</surname> <given-names>J.</given-names></name> <name><surname>Boybat</surname> <given-names>I.</given-names></name> <etal/></person-group>. (<year>2015</year>). <article-title>Experimental demonstration and tolerancing of a large-scale neural network (165 000 Synapses) using phase-change memory as the synaptic weight element</article-title>. <source>IEEE Trans. Electron Devices</source>. <volume>62</volume>, <fpage>3498</fpage>&#x02013;<lpage>3507</lpage>. <pub-id pub-id-type="doi">10.1109/TED.2015.2439635</pub-id></citation>
</ref>
<ref id="B6">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cai</surname> <given-names>F.</given-names></name> <name><surname>Correll</surname> <given-names>J. M.</given-names></name> <name><surname>Lee</surname> <given-names>S. H.</given-names></name> <name><surname>Lim</surname> <given-names>Y.</given-names></name> <name><surname>Bothra</surname> <given-names>V.</given-names></name> <name><surname>Zhang</surname> <given-names>Z.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>A fully integrated reprogrammable memristor&#x02013; CMOS system for efficient multiply&#x02013;accumulate operations</article-title>. <source>Nat. Electron.</source> <volume>2</volume>, <fpage>1</fpage>. <pub-id pub-id-type="doi">10.1038/s41928-019-0270-x</pub-id></citation>
</ref>
<ref id="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cauchy</surname> <given-names>A..</given-names></name></person-group> (<year>1847</year>). <article-title>M&#x000E9;thode g&#x000E9;n&#x000E9;rale pour la r&#x000E9;solution des systemes d&#x00027;&#x000E9;quations simultan&#x000E9;es</article-title>. <source>Comp. Rend. Sci. Paris</source>. <volume>25</volume>, <fpage>536</fpage>&#x02013;<lpage>538</lpage>.</citation>
</ref>
<ref id="B8">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>Y.</given-names></name> <name><surname>Member</surname> <given-names>S.</given-names></name> <name><surname>Krishna</surname> <given-names>T.</given-names></name> <name><surname>Emer</surname> <given-names>J. S.</given-names></name> <name><surname>Sze</surname> <given-names>V.</given-names></name></person-group> (<year>2016</year>). <article-title>Eyeriss: an energy-efficient reconfigurable accelerator for deep convolutional neural networks</article-title>. <source>IEEE J. Solid-State Circuits</source>. <volume>52</volume>, <fpage>127</fpage>&#x02013;<lpage>138</lpage>. <pub-id pub-id-type="doi">10.1109/JSSC.2016.2616357</pub-id></citation>
</ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Choi</surname> <given-names>J.</given-names></name> <name><surname>Venkataramani</surname> <given-names>S.</given-names></name> <name><surname>Srinivasan</surname> <given-names>V.</given-names></name> <name><surname>Gopalakrishnan</surname> <given-names>K.</given-names></name> <name><surname>Wang</surname> <given-names>Z.</given-names></name> <name><surname>Chuang</surname> <given-names>P.</given-names></name></person-group> (<year>2019</year>). <article-title>Accurate and efficient 2-bit quantized neural networks</article-title>. <source>Proc. 2nd SysML Conf</source> . <fpage>348</fpage>&#x02013;<lpage>359</lpage>.</citation>
</ref>
<ref id="B10">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Feng</surname> <given-names>Y.</given-names></name> <name><surname>Tu</surname> <given-names>Y.</given-names></name></person-group> (<year>2023</year>). <source>How Neural Networks Find Generalizable Solutions: Self-Tuned Annealing in Deep Learning</source>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://arxiv.org/abs/2001.01678">https://arxiv.org/abs/2001.01678</ext-link> (accessed March 01, 2022).</citation>
</ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fuller</surname> <given-names>E. J.</given-names></name> <name><surname>Keene</surname> <given-names>S. T.</given-names></name> <name><surname>Melianas</surname> <given-names>A.</given-names></name> <name><surname>Wang</surname> <given-names>Z.</given-names></name> <name><surname>Agarwal</surname> <given-names>S.</given-names></name> <name><surname>Li</surname> <given-names>Y.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>Parallel programming of an ionic floating-gate memory array for scalable neuromorphic computing</article-title>. <source>Science</source> <volume>364</volume>, <fpage>570</fpage>&#x02013;<lpage>574</lpage>. <pub-id pub-id-type="doi">10.1126/science.aaw5581</pub-id><pub-id pub-id-type="pmid">31023890</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gokmen</surname> <given-names>T.</given-names></name> <name><surname>Haensch</surname> <given-names>W.</given-names></name></person-group> (<year>2020</year>). <article-title>Algorithm for training neural networks on resistive device arrays</article-title>. <source>Front. Neurosci.</source> <volume>14</volume>, <fpage>e00103</fpage>. <pub-id pub-id-type="doi">10.3389/fnins.2020.00103</pub-id><pub-id pub-id-type="pmid">32174807</pub-id></citation></ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gokmen</surname> <given-names>T.</given-names></name> <name><surname>Onen</surname> <given-names>M.</given-names></name> <name><surname>Haensch</surname> <given-names>W.</given-names></name></person-group> (<year>2017</year>). <article-title>Training deep convolutional neural networks with resistive cross-point devices</article-title>. <source>Front. Neurosci.</source> <volume>11</volume>, <fpage>538</fpage>. <pub-id pub-id-type="doi">10.3389/fnins.2017.00538</pub-id><pub-id pub-id-type="pmid">29066942</pub-id></citation></ref>
<ref id="B14">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gokmen</surname> <given-names>T.</given-names></name> <name><surname>Rasch</surname> <given-names>M. J.</given-names></name> <name><surname>Haensch</surname> <given-names>W.</given-names></name></person-group> (<year>2018</year>). <article-title>Training LSTM networks with resistive cross-point devices</article-title>. <source>Front. Neurosci.</source> <volume>12</volume>, <fpage>745</fpage>. <pub-id pub-id-type="doi">10.3389/fnins.2018.00745</pub-id><pub-id pub-id-type="pmid">30405334</pub-id></citation></ref>
<ref id="B15">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gokmen</surname> <given-names>T.</given-names></name> <name><surname>Vlasov</surname> <given-names>Y.</given-names></name></person-group> (<year>2016</year>). <article-title>Acceleration of deep neural network training with resistive cross-point devices: design considerations</article-title>. <source>Front. Neurosci.</source> <volume>10</volume>, <fpage>333</fpage>. <pub-id pub-id-type="doi">10.3389/fnins.2016.00333</pub-id><pub-id pub-id-type="pmid">27493624</pub-id></citation></ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Grollier</surname> <given-names>J.</given-names></name> <name><surname>Querlioz</surname> <given-names>D.</given-names></name> <name><surname>Camsari</surname> <given-names>K. Y.</given-names></name> <name><surname>Everschor-Sitte</surname> <given-names>K.</given-names></name> <name><surname>Fukami</surname> <given-names>S.</given-names></name> <name><surname>Stiles</surname> <given-names>M. D.</given-names></name></person-group> (<year>2020</year>). <article-title>Neuromorphic spintronics</article-title>. <source>Nat. Electron.</source> <volume>3</volume>, <fpage>360</fpage>&#x02013;<lpage>370</lpage>. <pub-id pub-id-type="doi">10.1038/s41928-019-0360-9</pub-id><pub-id pub-id-type="pmid">33367204</pub-id></citation></ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jouppi</surname> <given-names>N. P.</given-names></name> <name><surname>Young</surname> <given-names>C.</given-names></name> <name><surname>Patil</surname> <given-names>N.</given-names></name> <name><surname>Patterson</surname> <given-names>D.</given-names></name> <name><surname>Agrawal</surname> <given-names>G.</given-names></name> <name><surname>Bajwa</surname> <given-names>R.</given-names></name> <etal/></person-group>. (<year>2017</year>). <article-title>In - datacenter performance analysis of a tensor processing unit</article-title>. <source>Proc. 44th Annu. Int. Symp. Comput. Archit.</source> <fpage>1</fpage>&#x02013;<lpage>12</lpage>. <pub-id pub-id-type="doi">10.1145/3079856.3080246</pub-id></citation>
</ref>
<ref id="B18">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Karpathy</surname> <given-names>A.</given-names></name> <name><surname>Johnson</surname> <given-names>J.</given-names></name> <name><surname>Fei-Fei</surname> <given-names>L.</given-names></name></person-group> (<year>2015</year>). <article-title>&#x0201C;Visualizing and understanding recurrent networks&#x0201D;</article-title>, in <source>ICLR</source> <volume>2016</volume> (<publisher-loc>San Juan</publisher-loc>), <fpage>1</fpage>&#x02013;<lpage>12</lpage>.</citation>
</ref>
<ref id="B19">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>H.</given-names></name> <name><surname>Rasch</surname> <given-names>M.</given-names></name> <name><surname>Gokmen</surname> <given-names>T.</given-names></name> <name><surname>Ando</surname> <given-names>T.</given-names></name> <name><surname>Miyazoe</surname> <given-names>H.</given-names></name> <name><surname>Kim</surname> <given-names>J.-J.</given-names></name> <etal/></person-group>. (<year>2020</year>). <source>Zero-Shifting Technique for Deep Neural Network Training on Resistive Cross-point Arrays</source>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://arxiv.org/abs/1907.10228">https://arxiv.org/abs/1907.10228</ext-link> (accessed March 01, 2022).</citation>
</ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>H.</given-names></name> <name><surname>Rasch</surname> <given-names>M.</given-names></name> <name><surname>Gokmen</surname> <given-names>T.</given-names></name> <name><surname>Ando</surname> <given-names>T.</given-names></name> <name><surname>Miyazoe</surname> <given-names>H.</given-names></name> <name><surname>Kim</surname> <given-names>J. J.</given-names></name> <etal/></person-group>. (<year>2019a</year>). <article-title>Zero-shifting Technique for deep neural network training on resistive cross-point arrays</article-title>. <source>arXiv</source> <fpage>2019</fpage>&#x02013;<lpage>2022</lpage>.</citation>
</ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>S.</given-names></name> <name><surname>Todorov</surname> <given-names>T.</given-names></name> <name><surname>Onen</surname> <given-names>M.</given-names></name> <name><surname>Gokmen</surname> <given-names>T.</given-names></name> <name><surname>Bishop</surname> <given-names>D.</given-names></name> <name><surname>Solomon</surname> <given-names>P.</given-names></name> <etal/></person-group>. (<year>2019b</year>). <article-title>Oxide based, CMOS-compatible ECRAM for deep learning accelerator</article-title>. <source>IEEE Int. Electron Devices Meet.</source> <fpage>847</fpage>&#x02013;<lpage>850</lpage>. <pub-id pub-id-type="doi">10.1109/IEDM19573.2019.8993463</pub-id><pub-id pub-id-type="pmid">27295638</pub-id></citation></ref>
<ref id="B22">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lecun</surname> <given-names>Y.</given-names></name> <name><surname>Bengio</surname> <given-names>Y.</given-names></name> <name><surname>Hinton</surname> <given-names>G.</given-names></name></person-group> (<year>2015</year>). <article-title>Deep learning</article-title>. <source>Nature</source>. <volume>521</volume>, <fpage>436</fpage>&#x02013;<lpage>444</lpage>. <pub-id pub-id-type="doi">10.1038/nature14539</pub-id><pub-id pub-id-type="pmid">26017442</pub-id></citation></ref>
<ref id="B23">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>C.</given-names></name> <name><surname>Hu</surname> <given-names>M.</given-names></name> <name><surname>Li</surname> <given-names>Y.</given-names></name> <name><surname>Jiang</surname> <given-names>H.</given-names></name> <name><surname>Ge</surname> <given-names>N.</given-names></name> <name><surname>Montgomery</surname> <given-names>E.</given-names></name> <etal/></person-group>. (<year>2018</year>). <article-title>Analogue signal and image processing with large memristor crossbars</article-title>. <source>Nat. Electron.</source> <volume>1</volume>, <fpage>52</fpage>&#x02013;<lpage>59</lpage>. <pub-id pub-id-type="doi">10.1038/s41928-017-0002-z</pub-id></citation>
</ref>
<ref id="B24">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>C.</given-names></name> <name><surname>Wang</surname> <given-names>Z.</given-names></name> <name><surname>Rao</surname> <given-names>M.</given-names></name> <name><surname>Belkin</surname> <given-names>D.</given-names></name> <name><surname>Song</surname> <given-names>W.</given-names></name> <name><surname>Jiang</surname> <given-names>H.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>Long short-term memory networks in memristor crossbar arrays</article-title>. <source>Nat. Mach. Intell.</source> <volume>1</volume>, <fpage>49</fpage>&#x02013;<lpage>57</lpage>. <pub-id pub-id-type="doi">10.1038/s42256-018-0001-4</pub-id></citation>
</ref>
<ref id="B25">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Prezioso</surname> <given-names>M.</given-names></name> <name><surname>Merrikh-Bayat</surname> <given-names>F.</given-names></name> <name><surname>Hoskins</surname> <given-names>B. D.</given-names></name> <name><surname>Adam</surname> <given-names>G. C.</given-names></name> <name><surname>Likharev</surname> <given-names>K. K.</given-names></name> <name><surname>Strukov</surname> <given-names>D. B.</given-names></name></person-group> (<year>2015</year>). <article-title>Training and operation of an integrated neuromorphic network based on metal-oxide memristors</article-title>. <source>Nature</source>. <volume>521</volume>, <fpage>61</fpage>&#x02013;<lpage>64</lpage>. <pub-id pub-id-type="doi">10.1038/nature14441</pub-id><pub-id pub-id-type="pmid">25951284</pub-id></citation></ref>
<ref id="B26">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Rajbhandari</surname> <given-names>S.</given-names></name> <name><surname>Rasley</surname> <given-names>J.</given-names></name> <name><surname>Ruwase</surname> <given-names>O.</given-names></name> <name><surname>He</surname> <given-names>Y.</given-names></name></person-group> (<year>2020</year>). <source>Zero: Memory Optimizations Toward Training Trillion Parameter Models</source>. <publisher-loc>Atlanta, GA</publisher-loc>: <publisher-name>IEEE Press</publisher-name>.</citation>
</ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rumelhart</surname> <given-names>D. E.</given-names></name> <name><surname>Hinton</surname> <given-names>G. E.</given-names></name> <name><surname>Willams</surname> <given-names>R. J.</given-names></name></person-group> (<year>1986</year>). <article-title>Learning representations by back-propagating errors</article-title>. <source>Nature</source>. <volume>323</volume>, <fpage>533</fpage>&#x02013;<lpage>536</lpage>. <pub-id pub-id-type="doi">10.1038/323533a0</pub-id></citation>
</ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Salakhutdinov</surname> <given-names>R.</given-names></name> <name><surname>Hinton</surname> <given-names>G.</given-names></name></person-group> (<year>2009</year>). <article-title>Deep Boltzmann machines</article-title>. <source>J. Mach. Learn. Res.</source> <volume>5</volume>, <fpage>448</fpage>&#x02013;<lpage>455</lpage>.</citation>
</ref>
<ref id="B29">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Scellier</surname> <given-names>B.</given-names></name> <name><surname>Bengio</surname> <given-names>Y.</given-names></name></person-group> (<year>2017</year>). <article-title>Equilibrium propagation: bridging the gap between energy-based models and backpropagation</article-title>. <source>Front. Comput. Neurosci.</source> <volume>11</volume>, <fpage>e00024</fpage>. <pub-id pub-id-type="doi">10.3389/fncom.2017.00024</pub-id><pub-id pub-id-type="pmid">28522969</pub-id></citation></ref>
<ref id="B30">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sebastian</surname> <given-names>A.</given-names></name> <name><surname>Le Gallo</surname> <given-names>M.</given-names></name> <name><surname>Khaddam-Aljameh</surname> <given-names>R.</given-names></name> <name><surname>Eleftheriou</surname> <given-names>E.</given-names></name></person-group> (<year>2020</year>). <article-title>Memory devices and applications for in-memory computing</article-title>. <source>Nat. Nanotechnol.</source> <volume>15</volume>, <fpage>246</fpage>&#x02013;<lpage>253</lpage>. <pub-id pub-id-type="doi">10.1038/s41565-020-0655-z</pub-id><pub-id pub-id-type="pmid">32678302</pub-id></citation></ref>
<ref id="B31">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sebastian</surname> <given-names>A.</given-names></name> <name><surname>Tuma</surname> <given-names>T.</given-names></name> <name><surname>Papandreou</surname> <given-names>N.</given-names></name> <name><surname>Le Gallo</surname> <given-names>M.</given-names></name> <name><surname>Kull</surname> <given-names>L.</given-names></name> <name><surname>Parnell</surname> <given-names>T.</given-names></name> <etal/></person-group>. (<year>2017</year>). <article-title>Temporal correlation detection using computational phase-change memory</article-title>. <source>Nat. Commun.</source> <volume>8</volume>. <fpage>1</fpage>&#x02013;<lpage>10</lpage>. <pub-id pub-id-type="doi">10.1038/s41467-017-01481-9</pub-id><pub-id pub-id-type="pmid">29062022</pub-id></citation></ref>
<ref id="B32">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Steinbuch</surname> <given-names>K..</given-names></name></person-group> (<year>1961</year>). <article-title>Die lernmatrix</article-title>. <source>Kybernetik</source>. <volume>1</volume>, <fpage>36</fpage>&#x02013;<lpage>45</lpage>. <pub-id pub-id-type="doi">10.1007/BF00293853</pub-id></citation>
</ref>
<ref id="B33">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Strubell</surname> <given-names>E.</given-names></name> <name><surname>Ganesh</surname> <given-names>A.</given-names></name> <name><surname>McCallum</surname> <given-names>A.</given-names></name></person-group> (<year>2020</year>). <article-title>Energy and policy considerations for deep learning in NLP</article-title>. <source>ACL 2019 - 57th Annu. Meet. Assoc. Comput. Linguist. Proc. Conf.</source> <fpage>3645</fpage>&#x02013;<lpage>3650</lpage>. <pub-id pub-id-type="doi">10.18653/v1/P19-1355</pub-id></citation>
</ref>
<ref id="B34">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sun</surname> <given-names>X.</given-names></name> <name><surname>Choi</surname> <given-names>J.</given-names></name> <name><surname>Chen</surname> <given-names>C.-Y.</given-names></name> <name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Venkataramani</surname> <given-names>S.</given-names></name> <name><surname>Srinivasan</surname> <given-names>V.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>Hybrid 8-bit floating point (HFP8) training and inference for deep neural networks</article-title>. <source>Adv. Neural Inf. Process. Syst.</source></citation>
</ref>
<ref id="B35">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Woo</surname> <given-names>J.</given-names></name> <name><surname>Yu</surname> <given-names>S.</given-names></name></person-group> (<year>2018</year>). <article-title>Resistive memory-based analog synapse: the pursuit for linear and symmetric weight update</article-title>. <source>IEEE Nanotechnol. Mag.</source> <volume>12</volume>, <fpage>36</fpage>&#x02013;<lpage>44</lpage>. <pub-id pub-id-type="doi">10.1109/MNANO.2018.2844902</pub-id></citation>
</ref>
<ref id="B36">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yao</surname> <given-names>X.</given-names></name> <name><surname>Klyukin</surname> <given-names>K.</given-names></name> <name><surname>Lu</surname> <given-names>W.</given-names></name> <name><surname>Onen</surname> <given-names>M.</given-names></name> <name><surname>Ryu</surname> <given-names>S.</given-names></name> <name><surname>Kim</surname> <given-names>D.</given-names></name> <etal/></person-group>. (<year>2020</year>). <article-title>Protonic solid-state electrochemical synapse for physical neural networks</article-title>. <source>Nat. Commun.</source> <volume>11</volume>, <fpage>1</fpage>&#x02013;<lpage>10</lpage>. <pub-id pub-id-type="doi">10.1038/s41467-020-16866-6</pub-id><pub-id pub-id-type="pmid">32561717</pub-id></citation></ref>
<ref id="B37">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yu</surname> <given-names>S.</given-names></name> <name><surname>Chen</surname> <given-names>P. Y.</given-names></name> <name><surname>Cao</surname> <given-names>Y.</given-names></name> <name><surname>Xia</surname> <given-names>L.</given-names></name> <name><surname>Wang</surname> <given-names>Y.</given-names></name> <name><surname>Wu</surname> <given-names>H.</given-names></name></person-group> (<year>2015</year>). <article-title>Scaling-up resistive synaptic arrays for neuro-inspired architecture: challenges and prospect</article-title>. <source>Tech. Dig. - Int. Electron Devices Meet. IEDM</source>. <fpage>17</fpage>&#x02013;<lpage>3</lpage>. <pub-id pub-id-type="doi">10.1109/IEDM.2015.7409718</pub-id></citation>
</ref>
</ref-list>
<fn-group>
<fn id="fn0001"><p><sup>1</sup>The result of the outer product is not returned to the user, but implicitly applied to the network.</p></fn>
<fn id="fn0002"><p><sup>2</sup>For implementations using devices showing unidirectional conductance modulation characteristics, both the main and the reference array are updated. When SGD is used as the training algorithm, values of <italic>G</italic><sub><italic>ref</italic></sub> are not critical as long as they fall in the midrange of <italic>G</italic><sub><italic>main</italic></sub>&#x00027;s conductance span (Gokmen and Vlasov, <xref ref-type="bibr" rid="B15">2016</xref>).</p></fn>
<fn id="fn0003"><p><sup>3</sup>Conventionally error functions are written in terms of the difference between the network response and the target output and gradients are computed accordingly. However, in the absence of any stochasticity, &#x003F5;, it can instead be written in terms of the network weights and their optimal values as well for notational purposes.</p></fn>
<fn id="fn0004"><p><sup>4</sup>SHD algorithm is compatible with various configurations of resistive device, such as 2-terminal devices, as well as 3-terminal devices we show here.</p></fn>
</fn-group>
</back>
</article> 