<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article 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. Neurosci.</journal-id>
<journal-title>Frontiers in Neuroscience</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Neurosci.</abbrev-journal-title>
<issn pub-type="epub">1662-453X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fnins.2020.627276</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Learning to Approximate Functions Using Nb-Doped SrTiO<sub>3</sub> Memristors</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Tiotto</surname> <given-names>Thomas F.</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1137726/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Goossens</surname> <given-names>Anouk S.</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1158642/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Borst</surname> <given-names>Jelmer P.</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/320269/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Banerjee</surname> <given-names>Tamalika</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/1162034/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name><surname>Taatgen</surname> <given-names>Niels A.</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>
<uri xlink:href="http://loop.frontiersin.org/people/11762/overview"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Groningen Cognitive Systems and Materials Center, University of Groningen</institution>, <addr-line>Groningen</addr-line>, <country>Netherlands</country></aff>
<aff id="aff2"><sup>2</sup><institution>Artificial Intelligence, Bernoulli Institute, University of Groningen</institution>, <addr-line>Groningen</addr-line>, <country>Netherlands</country></aff>
<aff id="aff3"><sup>3</sup><institution>Zernike Institute for Advanced Materials, University of Groningen</institution>, <addr-line>Groningen</addr-line>, <country>Netherlands</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Xiaobing Yan, Hebei University, China</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Jiyong Woo, Kyungpook National University, South Korea; Zhongrui Wang, The University of Hong Kong, Hong Kong</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Niels A. Taatgen <email>n.a.taatgen&#x00040;rug.nl</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Neuromorphic Engineering, a section of the journal Frontiers in Neuroscience</p></fn></author-notes>
<pub-date pub-type="epub">
<day>19</day>
<month>02</month>
<year>2021</year>
</pub-date>
<pub-date pub-type="collection">
<year>2020</year>
</pub-date>
<volume>14</volume>
<elocation-id>627276</elocation-id>
<history>
<date date-type="received">
<day>08</day>
<month>11</month>
<year>2020</year>
</date>
<date date-type="accepted">
<day>24</day>
<month>12</month>
<year>2020</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2021 Tiotto, Goossens, Borst, Banerjee and Taatgen.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Tiotto, Goossens, Borst, Banerjee and Taatgen</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>Memristors have attracted interest as neuromorphic computation elements because they show promise in enabling efficient hardware implementations of artificial neurons and synapses. We performed measurements on interface-type memristors to validate their use in neuromorphic hardware. Specifically, we utilized Nb-doped SrTiO<sub>3</sub> memristors as synapses in a simulated neural network by arranging them into differential synaptic pairs, with the weight of the connection given by the difference in normalized conductance values between the two paired memristors. This network learned to represent functions through a training process based on a novel supervised learning algorithm, during which discrete voltage pulses were applied to one of the two memristors in each pair. To simulate the fact that both the initial state of the physical memristive devices and the impact of each voltage pulse are unknown we injected noise into the simulation. Nevertheless, discrete updates based on local knowledge were shown to result in robust learning performance. Using this class of memristive devices as the synaptic weight element in a spiking neural network yields, to our knowledge, one of the first models of this kind, capable of learning to be a universal function approximator, and strongly suggests the suitability of these memristors for usage in future computing platforms.</p></abstract>
<kwd-group>
<kwd>neuromorphic computing</kwd>
<kwd>supervised learning</kwd>
<kwd>interface memristor</kwd>
<kwd>Nb-doped SrTiO<sub>3</sub></kwd>
<kwd>neural networks</kwd>
<kwd>spiking neural network</kwd>
<kwd>function approximation</kwd>
</kwd-group>
<counts>
<fig-count count="7"/>
<table-count count="2"/>
<equation-count count="8"/>
<ref-count count="53"/>
<page-count count="16"/>
<word-count count="13463"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>The field of Machine Learning is, at its core, concerned with building function approximators from incomplete data samples. The state of the art approach to solving this problem is using artificial neural networks (ANNs), where a large number of real-valued artificial neurons are connected to each other by means of weights. The neurons in such networks are typically arranged into multiple layers, and are therefore referred to as <italic>deep learning</italic>. The optimization process is performed by updating the weight matrices defining the connection weights between pairs of neurons and is guided by learning rules, which are heuristic optimization algorithms capable of iteratively tuning the network weights to minimize some error function. This process is based on either global (as in the classic back-propagation algorithm) or local knowledge (which is more biologically plausible); the typical outcome is an interpolation for the hidden mapping from input samples to observed outputs.</p>
<p>Traditional neural networks usually require considerable power and are not necessarily constrained by physical limitations. One of the main reasons for this shortcoming is that artificial neural networks are run on traditional Von Neumann architectures in which memory and computation are not <italic>co-located</italic>. The high energy required by deep learning can be ascribed to the fact that an artificial neural network is essentially a non-Von Neumann computational model, where memory and computation are co-located in connection weight matrices, being simulated on hardware that implements a different computational paradigm.</p>
<p>Even though many important advances in deep learning have been &#x0201C;biologically inspired&#x0201D; (e.g., convolutional neural networks), it is unclear how far the current deterministic approach can progress because of energy requirements, architectural complexity, and capacity to generalize.</p>
<p>To reduce energy, alternative approaches to traditional neural networks aim to implement learning in neuromorphic hardware. Memristors are novel fundamental circuit elements that have attracted a great deal of interest for this purpose because they exhibit multilevel conductance states, giving them&#x02014;for example when arranged in a crossbar array architecture&#x02014;the ability to carry out parallel vector-matrix multiplication (<italic>C</italic> &#x0003D; <bold><italic>a</italic></bold><italic>B</italic>), which is the most important mathematical operation underpinning artificial neural network implementations (Xia and Yang, <xref ref-type="bibr" rid="B51">2019</xref>). The ability to carry out this operation, where the input is voltage <italic>V</italic>, output is current <italic>I</italic>, and the weight corresponds to conductance <italic>G</italic> (the inverse of resistance <italic>R</italic>), follows from Ohm&#x00027;s law <italic>I</italic> &#x0003D; <italic>VG</italic> and Kirchoff&#x00027;s current law <italic>I</italic><sub><italic>j</italic></sub> &#x0003D; &#x02211;<italic>I</italic><sub><italic>i</italic></sub>. Due to their non-volatile nature and ability to co-locate memory and computing, memristors can enable parallel physical computation within a low energy envelope.</p>
<p>Memristors have also been used as direct hardware implementations of weights in order to replicate standard deep learning software architectures, such as long short-term memory (LSTM) (Li et al., <xref ref-type="bibr" rid="B25">2019</xref>). Such systems can then be trained using standard gradient-based machine learning algorithms but in doing so limit themselves to the mainstream computational paradigm and do not take full advantage of the material properties of the memristive devices.</p>
<p>Another alternative approach to computation in which the use of memristors is currently being explored is that of <italic>reservoir computing</italic> (Luko&#x00161;evi&#x0010D;ius and Jaeger, <xref ref-type="bibr" rid="B26">2009</xref>). A reservoir is a collection of recurrently interconnected units exhibiting short-term memory and non-linear response to inputs; the connections of the reservoir are fixed and the training of the network is focused on a simple feed-forward readout layer thus reducing training time and complexity. Previous literature has shown that memristor-based reservoir computers are capable of excellent performance on a variety of tasks by taking advantage of the intrinsic characteristics of the physical devices. A recurrent connection is a way of adding temporal dynamics to a model, but a memristor already is such a system. Existing memristor-based reservoirs have thus eschewed the recurrent connections between the reservoir units and relied on the fact that programming pulses at different moments in time have varying effect on the state of the device (Du et al., <xref ref-type="bibr" rid="B8">2017</xref>; Midya et al., <xref ref-type="bibr" rid="B28">2019</xref>; Moon et al., <xref ref-type="bibr" rid="B30">2019</xref>). <italic>Diffusive</italic> memristors&#x02014;whose memristance is governed by fast diffusive species have also seen use as reservoir units (Wang et al., <xref ref-type="bibr" rid="B50">2017b</xref>), but also as artificial neurons (Wang et al., <xref ref-type="bibr" rid="B49">2018b</xref>), as their dynamics are well-suited to representing the leaky integrate-and-fire model of neuronal computation.</p>
<p>The biological parallel with the brain can be taken further by substituting continuous idealized neurons, found in traditional artificial neural networks, for their spiking equivalent and by using a learning algorithm which updates weights on the basis of local knowledge. For example, considerable interest has been devoted to using memristors to implement Hebbian learning rules which are thought to underpin the capacity of the brain to learn in an unsupervised manner and adapt to novel stimuli. Multiple flavors of spike timing-dependent plasticity (STDP) and hardware architectures have been proposed as ways to make good use of the physical characteristics of memristors, by appropriately shaping voltage pulses (Serrano-Gotarredona et al., <xref ref-type="bibr" rid="B41">2013</xref>; Ambrogio et al., <xref ref-type="bibr" rid="B1">2016</xref>), or by controlling second-order state variables (Kim et al., <xref ref-type="bibr" rid="B19">2015</xref>).</p>
<p>The most widely studied memristors for neuromorphic applications are ones relying on electric field control of nanoscale filaments between two electrodes (Seo et al., <xref ref-type="bibr" rid="B39">2011</xref>; Hu et al., <xref ref-type="bibr" rid="B15">2018</xref>; Moon et al., <xref ref-type="bibr" rid="B31">2018</xref>; Wang et al., <xref ref-type="bibr" rid="B48">2018a</xref>), phase transitions (Kuzum et al., <xref ref-type="bibr" rid="B22">2012</xref>; Ambrogio et al., <xref ref-type="bibr" rid="B1">2016</xref>; Wang et al., <xref ref-type="bibr" rid="B47">2017a</xref>), or voltage induced control of the ferroelectric configuration (Nishitani et al., <xref ref-type="bibr" rid="B34">2012</xref>; Kim and Lee, <xref ref-type="bibr" rid="B18">2019</xref>; Oh et al., <xref ref-type="bibr" rid="B35">2019</xref>). A less studied class of materials for synaptic device applications are interface-type memristors where electric field controlled resistive switching results from changes occurring at interfaces. While the resistive switching in for example metal/Nb-doped SrTiO<sub>3</sub> (Nb:STO) Schottky junctions, is well-documented in literature, there are not many reports in which they are considered as individual neuromorphic components (Yin et al., <xref ref-type="bibr" rid="B52">2016</xref>; Jang et al., <xref ref-type="bibr" rid="B16">2018</xref>; Zhao et al., <xref ref-type="bibr" rid="B53">2019</xref>), and to the best of our knowledge, no reports of their use as components in neural networks. Often, memristive devices require forming processes, which can be unfavorable for device performance and network integration (Amer et al., <xref ref-type="bibr" rid="B2">2017</xref>; Kim et al., <xref ref-type="bibr" rid="B17">2019</xref>). An attractive feature of Nb:STO memristors is that the switching behavior is present in the as-fabricated device. In addition, they also show reproducible multi-level resistive switching and low reading currents at room temperature, making them potentially ideal as components in neuromorphic computers. Such computers need to be able to deal and operate within the physical constraints of the particular class of memristor they utilize as hardware substrate. The heterogeneous characteristics of memristive devices also entails that a neuromorphic computer be aware of their physical characteristics and responses, in order to be able to utilize them to their full potential.</p>
<p>Here, we utilized Nb:STO memristors as synapses in a simulated spiking neural network to explore the suitability of this class of memristors as computing substrate. Measurements were conducted on physical devices, in which the change in resistance in response to a series of voltage pulses was monitored. We found the resistance values in response to forward voltage pulses to follow a power law, whereby each pulse gives rise to an amplitude-dependent decrease in the resistance. Next, we built a simulated model using the Nengo Brain Builder framework, consisting of pre- and post-synaptic neuronal ensembles arranged in a fully-connected topology. Each artificial synapse was composed of a <italic>differential synaptic pair</italic> of memristors, one designated as &#x0201C;positive&#x0201D; and one as &#x0201C;negative,&#x0201D; and the weight of the connection was given by the difference in normalized conductance values between the two paired memristors. Using a training process during which discrete voltage pulses were applied to one of the two memristors in each pair, we showed that our model was capable of learning to approximate transformations from randomly and periodically time-varying signals, suggesting that it could operate as a general function approximator. The initial state of the memristive devices was unknown, as were their exact operating parameters due to the addition of noise; this simulated the same kind of constraints faced in hardware, making it likely that the learning model could be ported to a physical implementation. Most importantly, robust learning performance was proven using only discrete updates based on local information.</p></sec>
<sec sec-type="materials and methods" id="s2">
<title>2. Materials and Methods</title>
<sec>
<title>2.1. Device Fabrication</title>
<p>Memristive devices are material systems which undergo reversible physical changes under the influence of a sufficiently high voltage, giving rise to a change in resistance (Strukov et al., <xref ref-type="bibr" rid="B44">2008</xref>; Brivio et al., <xref ref-type="bibr" rid="B5">2018</xref>). Here, metal/Nb-doped SrTiO<sub>3</sub> devices were used, where resistive switching results from changes occurring at the Ni/Nb:STO interface (Sim et al., <xref ref-type="bibr" rid="B43">2005</xref>; Seong et al., <xref ref-type="bibr" rid="B40">2007</xref>; Sawa, <xref ref-type="bibr" rid="B38">2008</xref>; Rodenbs&#x000FC;cher et al., <xref ref-type="bibr" rid="B37">2013</xref>; Mikheev et al., <xref ref-type="bibr" rid="B29">2014</xref>; Goossens et al., <xref ref-type="bibr" rid="B12">2018</xref>). We fabricated devices on (001) SrTiO<sub>3</sub> single crystal substrates doped with 0.01 wt% Nb in place of Ti (obtained from Crystec Germany). To obtain a TiO<sub>2</sub> terminated surface, a wet etching protocol was carried out using buffered hydrofluoric acid, this was followed by <italic>in-situ</italic> cleaning in oxygen plasma. To fabricate the Schottky junctions, a layer of Ni (20 nm), capped with Au (20 nm) to prevent oxidation, was grown by electron beam evaporation at a room temperature at a base pressure of &#x02248; 10<sup>&#x02212;6</sup> Torr. Junctions with areas between 50 &#x000D7; 100 and 100 &#x000D7; 300 &#x003BC;m<sup>2</sup> were defined using UV-photolithography and ion beam etching. Further UV-photolithography, deposition and lift-off steps were done to create contact pads and finally wire bonding was carried out to connect the contacts to a chip carrier. Current-voltage measurements were performed using a Keithley 2410 SourceMeter in a cryostat under vacuum conditions (10<sup>&#x02212;6</sup> Torr). All electrical measurements were done using three-terminal geometry with a voltage applied to the top Ni electrode. The measurements in the present work are performed on junctions of 20,000 &#x003BC;m<sup>2</sup>. More details on the measurement techniques and device characterization can be found in Goossens et al. (<xref ref-type="bibr" rid="B12">2018</xref>). In light of practical applications and due to the attractive lowering of reverse bias current with increasing temperatures (Susaki et al., <xref ref-type="bibr" rid="B45">2007</xref>; Goossens et al., <xref ref-type="bibr" rid="B12">2018</xref>), all measurements were done at room temperature.</p></sec>
<sec>
<title>2.2. Device Experimental Evaluation</title>
<p>Biological synapses strengthen and weaken over time in a process known as <italic>synaptic plasticity</italic>, which is thought to be one of the most important underlying mechanisms enabling learning and memory in the brain. For a device to be useful as a neural network component, its resistance should thus be controllable through an external parameter, such as voltage pulses&#x02014;so that it may take on a range of values (within a certain window). The as-fabricated Ni/Nb-doped SrTiO<sub>3</sub> memristive devices showed stable and reproducible resistive switching without any electroforming process.</p>
<p>Hence, to investigate the effect of applying pulses across the interface, we conducted a series of measurements in which a device was subjected to a SET voltage of &#x0002B;1 V for 120 s to bring it to a low resistance state and reduce the influence of previous measurements. Then, 25 RESET pulses of negative polarity (&#x02212;4 V) were applied and the current was read after each pulse. A negative read voltage was chosen because significantly larger hysteresis is observed in reverse bias compared to forward bias. Because of differences in the charge transport mechanisms under forward and reverse bias, a much smaller current flows in this regime: to ensure the measured current is sufficiently large to be read without significant noise levels, a reading voltage of &#x02212;1 V was chosen. The RESET pulse amplitude was varied from &#x02212;2 to &#x02212;4 V. This procedure was repeated several times for each amplitude sequentially. The pulse widths were &#x02248; 1 s.</p>
<p>Next, we performed a set of measurements in which devices were SET to a low resistance state by applying &#x0002B;1 V for 120 s before applying 10 RESET pulses of &#x02212;4 V to bring devices to a depressed state. This was followed by applying a series of potentiation pulses ranging from &#x0002B;0.1 to &#x0002B;1 V.</p></sec>
<sec>
<title>2.3. Nengo Brain Maker Framework</title>
<p>The aforementioned devices were integrated into a simulated spiking neural network (SNN); this was implemented using the Nengo Brain Maker Python package (Bekolay et al., <xref ref-type="bibr" rid="B4">2014</xref>), which represents information according to the principles of the Neural Engineering Framework (NEF) (Eliasmith and Anderson, <xref ref-type="bibr" rid="B9">2003</xref>). Nengo was chosen because its two-tier architecture enables it to run on a wide variety of hardware backends&#x02014;including GPUs, SpiNNaker, Loihi&#x02014;with minimal changes to user-facing code, opening up the possibility of running models on a variety of neuromorphic hardware (Furber et al., <xref ref-type="bibr" rid="B11">2014</xref>; Davies et al., <xref ref-type="bibr" rid="B7">2018</xref>). The results of our current work are framework-independent and would apply to any computational model congruent to the one we simulated in Nengo.</p>
<p>In Nengo, information is represented by real-valued vectors which are <italic>encoded</italic> into neural activity and <italic>decoded</italic> to reconstruct the original signal (Bekolay et al., <xref ref-type="bibr" rid="B4">2014</xref>). The representation is realized by <italic>neuronal ensembles</italic>, which are collections of neurons representing a vector; the higher the number of neurons in the ensemble, the better the vector can be encoded and decoded/reconstructed. Each neuron <italic>i</italic> in an ensemble (which in our case are leaky integrate-and-fire (LIF) neurons) has its own <italic>tuning curve</italic> that describes how strongly it spikes in response to particular inputs (<italic>encoding</italic>). The collective spiking activity of the neurons in an ensemble represents the input vector, which can be reconstructed in output by applying a temporal filter to each spike train and linearly combining these individual contributions (<italic>decoding</italic>). Thus, each neuronal ensemble represents a vector through its unique neuronal activation pattern through time.</p>
<p>Ensembles are linked by <italic>connections</italic> which transform and transmit the encoded vector represented in the <italic>pre-synaptic ensemble</italic> by means of a <italic>weight matrix</italic>. The <italic>post-synaptic ensemble</italic> will thus be trying to render a <italic>transformation</italic> of the vector represented in the pre-synaptic neuronal ensemble; in the default case Nengo attempts offline optimization to find a series of optimal weights to approximate the function along the connection.</p>
<p><italic>Learning rules</italic> can be applied to the connection between two ensembles in order to iteratively modify its weighting and thus find the correct transformation in an <italic>online</italic> manner.</p></sec>
<sec>
<title>2.4. Simulated Model</title>
<p>The Nengo model used to evaluate the usage of our memristive devices in a neuromorphic learning setting, consisted of three neuronal ensembles: pre- and post-synaptic, and one for calculating an error signal <bold><italic>E</italic></bold>. The pre- and post-synaptic ensembles were linked by a connection which resulted in a fully-connected topology between their constituent neurons; this is equivalent to the physical arrangement of memristors into <italic>crossbar arrays</italic> (Xia and Yang, <xref ref-type="bibr" rid="B51">2019</xref>) used in many previous works to realize efficient brain-inspired computation (Hu et al., <xref ref-type="bibr" rid="B14">2014</xref>; Li et al., <xref ref-type="bibr" rid="B25">2019</xref>). The specific topology, which is crucial in enabling the model to learn, is shown in <xref ref-type="fig" rid="F1">Figure 1A</xref>.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p><bold>(A)</bold> The Error neuronal ensemble calculates the difference <bold><italic>E</italic></bold> &#x0003D; <bold><italic>y</italic></bold> &#x02212; <italic>f</italic> (<bold><italic>x</italic></bold>) between the post-synaptic <bold><italic>y</italic></bold> and transformed pre-synaptic <italic>f</italic> (<bold><italic>x</italic></bold>) representations in order to inform the mPES learning rule. These connections are not implemented using simulated memristors and are calculated by Nengo. mPES tunes the weights <italic>W</italic> on the connection between the pre- and post-synaptic ensembles with the overall goal of reducing the error <italic>E</italic>. <italic>W</italic> transforms <bold><italic>x</italic></bold> into <bold><italic>y</italic></bold> &#x02248; <italic>f</italic> (<bold><italic>x</italic></bold>) across the synaptic connection and, with training, the post-synaptic ensemble&#x00027;s representation improves, becoming closer to the transformed pre-synaptic one: <bold><italic>y</italic></bold> &#x02192; <italic>f</italic> (<bold><italic>x</italic></bold>). The Switch ensemble is activated to inhibit the Error ensemble and stop learning. NB: the input <bold><italic>x</italic></bold>, error signal <bold><italic>E</italic></bold>, and output <bold><italic>y</italic></bold> can have different dimensionality, which&#x02014;in turn&#x02014;is independent from the number of neurons used to represent them. In our current work, all three signals have the same dimensionality. <bold>(B)</bold> In this example, the pre- and post-synaptic neuronal ensembles both have size 3 and are fully-connected so the weight matrix <italic>W</italic> has 3 &#x000D7; 3 entries. Each pair of pre- and post-synaptic neurons (<italic>i, j</italic>) is linked by a simulated synapse. Each synapse&#x00027;s weight <italic>W</italic><sub><italic>ij</italic></sub> is given by the scaled difference in normalized conductances <inline-formula><mml:math id="M1"><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> of its differential synaptic pair of memristors <inline-formula><mml:math id="M2"><mml:msubsup><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M3"><mml:msubsup><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>. As an example, the figure focuses on how the neurons (1, 1) in the pre- and post-synaptic ensembles are connected by a synaptic weight <italic>W</italic><sub>11</sub>; the neural activity <inline-formula><mml:math id="M4"><mml:msubsup><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">pre</mml:mtext></mml:mstyle></mml:mrow></mml:msubsup></mml:math></inline-formula> of the pre-synaptic neuron is combined with the synaptic weight <italic>W</italic><sub>11</sub> to give the input to the first post-synaptic neuron. The activations of the post-synaptic neurons, in turn, define the signal represented in post-synaptic ensemble.</p></caption>
<graphic xlink:href="fnins-14-627276-g0001.tif"/>
</fig>
<p>The pre-synaptic ensemble had as input signal a <italic>d</italic>-dimensional vector <bold><italic>x</italic></bold> and the connection between the ensembles was tuned in order for the post-synaptic ensemble to represent a transformation/function <italic>f</italic> : <bold><italic>x</italic></bold> &#x02192; <bold><italic>y</italic></bold> of the vector encoded into the pre-synaptic neuronal population. This time-varying input signal consisted of either <italic>d</italic> uniformly phase-shifted sine waves <italic>x</italic><sub><italic>d</italic></sub> described by:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M5"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo class="qopname">sin</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:mfrac><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>i</mml:mi><mml:mfrac><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>or of <italic>d</italic> white noise signals low-filtered by a 5 Hz cutoff. The latter signal was generated by using the <monospace>nengo.processes.WhiteSignal</monospace> class and is naturally periodic but, in order to be able to test network on unseen data, the period was chosen to be double the total simulation time of 30 s.</p>
<p>The third neuronal ensemble, dedicated to calculating the error signal, was connected to the pre- and post-synaptic ensembles using standard Nengo connections whose weights were pre-calculated by the framework. The connection from the post-synaptic ensemble implemented the identity function&#x02014;simply transferring the vector&#x02014;while the one from the pre-synaptic ensemble calculated &#x02212;<italic>f</italic> (<bold><italic>x</italic></bold>) with <italic>f</italic> being the transformation of the input signal we sought to teach the model to approximate. The connection from pre to error ensembles did indeed already represent the transformation <italic>f</italic> (<bold><italic>x</italic></bold>) that the model needed to learn, but the optimal network weights for this connection were calculated by Nengo before the start of the simulation based on the response characteristics of the neurons in the connected ensembles. Therefore, the weights realizing the transformation on this connection were not learned from data and did not change during the simulation. Given these connections from pre and post-ensembles, the error ensemble represented a <italic>d</italic>-dimensional vector <bold><italic>E</italic></bold> &#x0003D; <bold><italic>y</italic></bold> &#x02212; <italic>f</italic> (<bold><italic>x</italic></bold>) which was used to drive the learning in order to bring the post-synaptic representation <italic>y</italic> as close as possible to the transformed pre-synaptic signal <italic>f</italic> (<bold><italic>x</italic></bold>), the <italic>ground truth</italic> in this <italic>supervised learning</italic> context.</p>
<p>The learning phase was stopped after 22 s of simulation time had passed; this was done by activating a fourth neuronal ensemble which had strong inhibitory connections to the error ensemble. Suppressing the firing of neurons in the error ensemble stopped the learning rule on the main synaptic connection from modifying the weights further and thus let us test the quality of the learned representation in the remaining 8 s of simulation time. An example simulation run is shown in <xref ref-type="supplementary-material" rid="SM1">Supplementary Figures 2</xref>, <xref ref-type="supplementary-material" rid="SM1">3</xref>.</p>
<p>In separate experiments, the transformation <italic>f</italic> for the model to learn was either <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold> or <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold><sup>2</sup>. Learning the square function was expected to be a harder problem to solve as <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold><sup>2</sup> is not an <italic>injective</italic> function; i.e., different inputs can be mapped to the same output [(&#x02212;1)<sup>2</sup> &#x0003D; 1<sup>2</sup> &#x0003D; 1, for example]. Even learning the identity function <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold> is not a trivial problem in this setting, as the pre- and post-synaptic ensembles are not congruent in how they represent information, even when they have the same number of neurons. Each of the ensembles&#x00027; neurons may respond differently to identical inputs, so the same vector decoded from the two ensembles will be specified by different neuronal activation patterns. Therefore, the learning rule has to be able to find an optimal mapping between two potentially very different vector spaces even when the implicit transformation between these is the identity function.</p>
<p>The quality of the learned representation was evaluated on the last 8 s of neuronal activity by calculating the mean squared error (MSE) and Spearman correlation coefficient &#x003C1; between the ground truth given by the transformed pre-synaptic vector <italic>f</italic> (<bold><italic>x</italic></bold>), and the <bold><italic>y</italic></bold> vector represented in the post-synaptic sensemble.</p>
<p>At a lower level, each artificial synapse&#x02014;one to connect each pair of neurons in the pre- and post-synaptic ensemble&#x02014;in our model was composed of a &#x0201C;positive&#x0201D; <italic>M</italic><sup>&#x0002B;</sup> and a &#x0201C;negative&#x0201D; <italic>M</italic><sup>&#x02212;</sup> simulated memristor (see <xref ref-type="fig" rid="F1">Figure 1B</xref>). The mapping of the current resistance state <italic>R</italic><sup>&#x000B1;</sup> of a pair of memristors to the corresponding synaptic network weight &#x003C9; was defined as:</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M6"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mi>&#x003C9;</mml:mi><mml:mo>=</mml:mo><mml:mi>&#x003B3;</mml:mi><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mo>&#x02212;</mml:mo></mml:msup></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>&#x003B3;</mml:mi><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msup><mml:mi>G</mml:mi><mml:mo>+</mml:mo></mml:msup><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msup><mml:mi>G</mml:mi><mml:mo>&#x02212;</mml:mo></mml:msup><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Note that the relationship between conductance and resistance was specified by <inline-formula><mml:math id="M8"><mml:mi>G</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula>; thus, when normalizing, the maximum conductance <italic>G</italic><sub>1</sub> was given by the inverse of the minimum resistance <inline-formula><mml:math id="M9"><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:math></inline-formula>, and vice-versa. So, the network weight of a synapse at each timestep was the result of the difference between its current memristor conductances <italic>G</italic><sup>&#x000B1;</sup>, which were normalized in the range [0, 1], and then multiplied by a gain factor &#x003B3;.</p>
<p>To simulate device-to-device variation and hardware noise we elected to introduce randomness into the model in two ways. Firstly, we initialized the memristor resistances to a random high in the range [10<sup>8</sup> &#x003A9; &#x000B1; 15%] in order to ensure than all the weights were not 0 at the start of the simulation. This value was chosen on the basis of the experimental measurements shown in <bold>Figure 4</bold>, it being a high-resistance state the devices converged to after the application of &#x02212;4 V RESET pulses. We can therefore imagine the simulated memristors being brought to their initial resistances by the application of several &#x02212;4 V RESET pulses prior to the start of the training phase. As each entry in weight matrix <italic>W</italic> was given by the difference in normalized conductances of a pair of memristors, initializing them all to the same resistance 10<sup>8</sup> &#x003A9; would have lead them all to necessarily be equal to 0, as per Equation (2). In Machine Learning parlance, the act of assigning a random initial value network parameters is known as &#x0201C;symmetry breaking.&#x0201D; Secondly, we perturbed, via the addition of 15% Gaussian noise, the parameters in Equation (8) used to calculate the updated resistance states of the simulated devices. This was done independently for every simulated memristive device.</p>
</sec>
<sec>
<title>2.5. Learning Rule</title>
<p>The process through which learning is effected in an artificial neural network is the iterative, guided modification of the network weights connecting the neurons. To this end, we designed a neuromorphic learning rule that enacted this optimization process by applying SET pulses to our memristive devices.</p>
<p>In order to learn the desired transformation from the pre-synaptic signal, we iteratively tuned the model parameter matrix <italic>W</italic>, which represented the transformation across the synaptic connection between the pre- and post-synaptic ensembles. This was done by adjusting the resistances <italic>R</italic><sup>&#x000B1;</sup> of the memristors in each differential synaptic pair through the simulated application of &#x0002B;0.1 V SET learning pulses guided - at each timestep of the simulation - by a modified version of the supervised, pseudo-Hebbian prescribed error sensitivity (PES) learning rule (MacNeil and Eliasmith, <xref ref-type="bibr" rid="B27">2011</xref>); this extension of PES to memristive synapses will be referred to as <italic>mPES</italic> from here on.</p>
<p>The PES learning rule accomplishes online error minimization by applying at every timestep the following equation to each synaptic weight &#x003C9;<sub><italic>ij</italic></sub>:</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M10"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mo>&#x00394;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003C9;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x003BA;</mml:mi><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>E</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003C9;<sub><italic>ij</italic></sub> is the weight of the connection between pre-synaptic neuron <italic>i</italic> and post-synaptic neuron <italic>j</italic>, &#x003BA; is the learning rate, &#x003B1;<sub><italic>j</italic></sub> the gain factor for neuron <italic>j</italic>, <italic>e</italic><sub><italic>j</italic></sub> the encoding vector for neuron <italic>j</italic>, <bold><italic>E</italic></bold> the global <italic>d</italic>-dimensional error to minimize, and <italic>a</italic><sub><italic>i</italic></sub> the activity of pre-synaptic neuron <italic>i</italic>. &#x003B1;<sub><italic>j</italic></sub> and <italic>e</italic><sub><italic>j</italic></sub> are calculated for each neuron in the post-synaptic ensemble by the Nengo simulator such that:</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M11"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000B7;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>with <italic>G</italic> the neuronal non-linearity, <bold><italic>x</italic></bold> the input vector to the ensemble, and <italic>b</italic><sub><italic>j</italic></sub> a bias term.</p>
<p>The factor <bold>&#x003F5;</bold> &#x0003D; &#x003B1;<sub><italic>j</italic></sub><italic>e</italic><sub><italic>j</italic></sub><bold><italic>E</italic></bold> is analogous to the <italic>local error</italic> in the backpropagation algorithm widely used to train artificial neural networks (Le Cun, <xref ref-type="bibr" rid="B23">1986</xref>). The overview shown in <xref ref-type="fig" rid="F2">Figure 2</xref> applies to both the PES and mPES learning rules, with the exception of step 3 that is characteristic to mPES; in this high-level depiction we can see how the neuronal pairs <italic>i, j</italic> whose &#x003C9;<sub><italic>ij</italic></sub> &#x0003E; 0 are the ones which contribute to the post-synaptic representation being lower than the pre-synaptic signal and should thus be the ones potentiated in order to bring the post-synaptic representation closer to the pre-synaptic one. The converse is also true, so the synapses whose corresponding &#x003C9;<sub><italic>ij</italic></sub> &#x0003C; 0 should be depressed in order to reduce <bold><italic>E</italic></bold>. Thus, the neurons in the post-synaptic ensemble that are erroneously activating will be less likely to be driven to fire in the future, changing the post-synaptic representation toward a more favorable one.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>High level example (not to scale) of how the mPES learning rule minimizes the error <bold><italic>E</italic></bold> between the pre- and post-synaptic representations. At time <italic>t</italic> &#x0003D; <italic>k</italic> the neurons contributing to making the relevant component in error <bold><italic>E</italic></bold> negative are found, and the weights connecting them are adjusted accordingly; this example focuses on one such synapse. The error is negative so the synapse of the identified neurons is facilitated by pulsing its positive memristor <italic>M</italic><sup>&#x0002B;</sup> to increase its conductance. The facilitation increases the future response of the post-synaptic neuron and this is conducive to reducing the error in the following timesteps. NB: The process is analogous for the PES learning rule, with the exception of step <bold>3</bold>., as PES operates directly on the synaptic weights <italic>W</italic>.</p></caption>
<graphic xlink:href="fnins-14-627276-g0002.tif"/>
</fig>
<p>mPES is a novel learning rule developed to operate under the constraints imposed by the memristive devices and essentially behaves as a discretized version of PES. This discretization is a natural consequence of the models it operates on not having ideal continuous network weights but instead, by these being given by the state of memristors, which were updated in a discrete manner through voltage pulses. The gradual change in the weights <italic>W</italic> between pre- and post-synaptic neuronal ensembles in the model can be classified as a <italic>self-supervised learning</italic> optimization process, as the learning was informed by the error <bold><italic>E</italic></bold> vector calculated by the third neuronal ensemble&#x02014;which was also a part of the model. Our learning rule had to be able to operate in a very restricted and stochastic environment given that we only supplied &#x0002B;0.1 V SET potentiation pulses to our memristive devices during the online training process, and that we introduced uncertainty on the initial resistance and update magnitude of the memristors. Furthermore, at most one memristor in each synapse could have its resistance updated (either <italic>M</italic><sup>&#x0002B;</sup> or <italic>M</italic><sup>&#x02212;</sup>) and the exact result of this operation was also uncertain due to the fact that we injected noise into the parameters in Equation (8) governing the update. <xref ref-type="fig" rid="F3">Figure 3</xref> shows how the resistances of the memristors in one such differential synaptic pair are modulated during training, and how the corresponding weight evolves over time. An interesting characteristic stemming from the power-law memristance behavior is that each SET pulse has a smaller effect than the one preceding it; the effect this has on the network weight is to help it converge to an optimum in a manner very similar to the cooling in <italic>simulated annealing</italic> (Kirkpatrick et al., <xref ref-type="bibr" rid="B20">1983</xref>), as can be seen for <italic>W</italic> in <xref ref-type="fig" rid="F3">Figure 3</xref>. This kind of behavior was seen for most&#x02014;if not all&#x02014;of the synapses in our simulations.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>The left panel shows the evolution of the memristors&#x00027; resistances in one differential synaptic pair during the learning part of the simulation. The positive memristor <italic>M</italic><sup>&#x0002B;</sup> in the pair in plotted in red, the negative memristor <italic>M</italic><sup>&#x02212;</sup> in blue. The right panel shows the corresponding network weight <italic>W</italic> whose value is given by applying Equation (2) to the resistances in the differential synaptic pair. <italic>W</italic> is unit-less and varies in the range [0, &#x003B3;].</p></caption>
<graphic xlink:href="fnins-14-627276-g0003.tif"/>
</fig>
<p>The learning rule is gated, pseudo-Hebbian, and uses discrete updates and local information, therefore making it biologically plausible. Our claim that the learning rule is local is substantiated by the fact that only information available to post-synaptic neuron <italic>j</italic> is used when calculating the weight update &#x00394;&#x003C9;<sub><italic>ij</italic></sub>. The key point is that each neuron has a different random encoder and is therefore responsive to a different portion of the error vector space. Each update is thus optimizing a separate local error <bold>&#x003F5;</bold> which depends on the neural state of <italic>j</italic>; there is no collaboration between units toward optimizing a global error function as in classical gradient methods. The algorithmic approach is akin to that presented in, e.g., Mostafa et al. (<xref ref-type="bibr" rid="B32">2018</xref>). Specific to our current setup is also the fact that we have no <italic>hidden layers</italic> in the network and therefore all information is necessarily local, there being no intermediaries. The characterization as a gated learning rule derives from the fact that when <bold><italic>E</italic></bold> &#x0003D; <bold>0</bold> learning does not occur, while the pseudo-Hebbian element is given by the post-synaptic activity being represented indirectly by &#x003B1;<sub><italic>j</italic></sub><italic>e</italic><sub><italic>j</italic></sub> instead of explicitly by <italic>a</italic><sub><italic>j</italic></sub>.</p>
<p>mPES required the definition and tuning of a hyperparameter &#x003B3;, which is analogous to the <italic>learning rate</italic> found in most machine learning algorithms. &#x003B3; represents the gain factor used to scale the memristors&#x00027; conductances <italic>G</italic><sup>&#x000B1;</sup> to network weights <italic>W</italic> whose magnitude was compatible with the signals the model needs to represent. A larger &#x003B3; made each pulse to the memristors have an increased effect on the network weights but, unlike a learning rate &#x003BA;, the magnitude of each update on the underlying objects was not changed by &#x003B3;, affecting only the translation to network weights.</p>
<p>Our learning rule also presented an <italic>error threshold</italic> &#x003B8;<sub>&#x003F5;</sub> hyperparameter whose role was to guarantee that a very small error <italic>E</italic> would not elicit updates on the memristors, given that this was seen to negatively impact learning. At this stage, the value for the error threshold was experimentally determined but kept constant and considered a static part of the model rather than a hyperparameter.</p>
<p>The mPES learning rule went through the following stages at each timestep of the simulation, in order to tune the resistances of each memristor in every differential synaptic pair with the overall goal of minimizing the global error <italic>E</italic>:</p>
<list list-type="order">
<list-item><p>The <italic>global error</italic> signal vector <bold><italic>E</italic></bold> was taken as input to the learning rule.</p></list-item>
<list-item><p>A <italic>local error</italic> <bold>&#x003F5;</bold> vector was calculated as <bold>&#x003F5;</bold> &#x0003D; &#x02212;<italic>e</italic><sub><italic>j</italic></sub><bold><italic>E</italic></bold>. <bold>&#x003F5;</bold> is a projection of <bold><italic>E</italic></bold> onto each neuron&#x00027;s response and, consequently, encodes the contribution of each post-synaptic neuron to the global error <bold><italic>E</italic></bold> (Note that the sign of <bold><italic>E</italic></bold> is inverted).</p></list-item>
<list-item><p>If no value in the <bold>&#x003F5;</bold> vector was greater than an experimentally determined <italic>error threshold</italic> <inline-formula><mml:math id="M12"><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003F5;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>5</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> the updates in this timestep were skipped. The reason for this check was 2-fold. Firstly, if we didn&#x00027;t filter for local errors very close to 0, the learning performance would suffer. This is because a very small error may have no consequence in a continuous-update setting, as that where original PES is applied, but in our setup it could trigger a voltage pulse on the corresponding memristor and bring it to a new resistance state. As memristors move between discrete resistance states, such an update would end up having an outsized effect. Secondly, inhibiting the error ensemble to terminate the learning phase did not completely shut off its activity so <bold><italic>E</italic></bold> would never be exactly <bold>0</bold> and the adjustments to the resistances would not stop, thus leading to the learning phase going on indefinitely.</p></list-item>
<list-item><p>A <italic>delta</italic> matrix &#x00394; &#x0003D; &#x02212;<bold>&#x003F5;</bold> &#x02297; <bold><italic>a</italic></bold><sup>pre</sup>, whose entries were the equivalent to the PES &#x00394;&#x003C9;<sub><italic>ij</italic></sub> in Equation (3), was calculated. Each entry in &#x00394; has a one-to-one correspondence to a synapse in the model and encodes the participation of each pair of pre- and post-synaptic neurons (<italic>i, j</italic>) to the error <bold><italic>E</italic></bold>. Therefore, the sign of each entry &#x00394;<sub><italic>ij</italic></sub> determines if the corresponding synapse should be potentiated (&#x00394;<sub><italic>ij</italic></sub> &#x0003E; 0) or depressed (&#x00394;<sub><italic>ij</italic></sub> &#x0003C; 0).</p></list-item>
<list-item><p>The <bold><italic>a</italic></bold><sup>pre</sup> vector of pre-synaptic activations&#x00027; elements were discretized into binary values 0 and 1, as the only information of interest was if a pre-synaptic neuron had spiked, not the intensity of its activity.</p></list-item>
<list-item><p>The update direction <italic>V</italic> for each synapse was calculated as <italic>V</italic> &#x0003D; sgn(&#x00394;), in order to determine which memristor in each pair needed adjusting:</p>
<list list-type="alpha-lower">
<list-item><p>The positive memristor <inline-formula><mml:math id="M13"><mml:msubsup><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x0002B;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> in a differential synaptic pair was pulsed when the corresponding term <italic>V</italic><sub><italic>ij</italic></sub> &#x0003E; 0.</p></list-item>
<list-item><p>The negative memristor <inline-formula><mml:math id="M14"><mml:msubsup><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> was pulsed when <italic>V</italic><sub><italic>ij</italic></sub> &#x0003C; 0.</p>
<p>This lead to a facilitation of synapses whose neurons (<italic>i, j</italic>) had a positive participation to the error <bold><italic>E</italic></bold> and a depression of those for whom &#x00394;<sub><italic>ij</italic></sub> &#x0003C; 0. The synapses afferent to neurons which &#x0201C;pushed&#x0201D; the post-synaptic signal <bold><italic>y</italic></bold> to be higher than the reference one <italic>f</italic> (<bold><italic>x</italic></bold>) were depressed in order to reduce the future activation of these same post-synaptic neurons. The magnitude of change induced by each pulse was determined by the memristive devices&#x00027; characteristic response, which in this work was given by Equation (8).</p></list-item>
</list></list-item>
<list-item><p>Finally, Equation (2) was applied to each synapse in order to convert from <italic>M</italic><sup>&#x000B1;</sup>&#x00027;s resistances to network weights <italic>W</italic>.</p></list-item>
</list></sec>
<sec>
<title>2.6. Optimization Experiments</title>
<p>In order to assess the effect that the gain &#x003B3; hyperparameter had on the learning capacity of the model, we set up a series of eight experiments, one for each combination of the three binary parameters: input function (sine wave or white noise), learned transformation (<italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold> or <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold><sup>2</sup>), and ensemble size (10 or 100 pre- and post-synaptic neurons). In each experiment we ran 100 randomly initialized models for each value of &#x003B3; logarithmically distributed in the range [10, 10<sup>6</sup>] and recorded the average mean squared error and Spearman correlation coefficient measured on the testing phase of each simulation, during the final 8 s.</p></sec>
<sec>
<title>2.7. Learning Experiments</title>
<p>To assess the learning capacity of our model and learning rule (mPES) we compared them against a network using prescribed error sensitivity (PES) as learning algorithm and continuous synapses together with noiseless weight updates. The default model with mPES used to generate our results was run with 15% of injected Gaussian noise on both the memristor parameters and the initial resistances, as previously described. To show that our model was not just learning the transformed input signal <italic>f</italic> (<bold><italic>x</italic></bold>) but the actual function <italic>f</italic>, we tested both on the same signal that had been learned upon, and on the other. In other words, the model learned the <italic>f</italic> (<bold><italic>x</italic></bold>) transformations from both a sine wave and a white noise signal, using either 10 or 100 neurons, and the quality of the learning was then tested on both functions. Both input learning and testing signals were 3-dimensional in all cases.</p>
<p>To have a quantitative basis to compare the two models, we measured the mean squared error (MSE) together with Spearman correlation &#x003C1; between the pre- and post-synaptic representations in the testing phase of the simulation (corresponding to the last 8 of the total 30 s). We took PES as the &#x0201C;golden standard&#x0201D; to compare against, but also looked at what the error would have been when using the memristors without a learning rule modifying their resistances. A lower mean squared error indicates a better correspondence between the pre- and post-synaptic signals, while a correlation coefficient close to &#x0002B;1 describes a strong monotonic relationship between them. A higher MSE-to-&#x003C1; (<inline-formula><mml:math id="M15"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac></mml:math></inline-formula>) ratio suggests that a model is able to learn to represent the transformed pre-synaptic signal more faithfully.</p></sec>
<sec>
<title>2.8. Other Experiments</title>
<p>We also tested the learning performance of the network for varying amounts of noise, as defining models capable of operating in stochastic, uncertain settings is one of the fundamental goals of the field on Neuromorphic Computing. To this end, we defined the simplest model possible within our learning framework (10 neurons, learning identity from sine input) and used it to evaluate the learning performance for varying amounts of Gaussian noise and for different values of the <italic>c</italic> parameter in the resistance update Equation (8).</p>
<p>We ran 10 randomly initialized models for each of 100 levels of noise&#x02014;expressed as coefficient of variation <inline-formula><mml:math id="M16"><mml:mfrac><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula>&#x02014;in the range [0, 100%] and reported the averaged MSE-to-&#x003C1; ratio for each noise percentage. The Gaussian noise was added in the same amount to the <italic>R</italic><sub>0</sub>, <italic>R</italic><sub>1</sub>, and <italic>c</italic> parameters in Equation (8) as well as to the initial resistances of the memristors. The methodology we followed closely resembled that reported in Querlioz et al. (<xref ref-type="bibr" rid="B36">2013</xref>), but is should be noted that, in doing so, the magnitude of the uncertainty of each memristance update depends on the devices&#x00027; current resistance state; it is presently unclear if this method best models the actual behavior that would be seen in a physical device, but it suffices for the scope of this work.</p>
<p>Using the same methodology, we also ran a <italic>parameter search</italic> for the exponent <italic>c</italic> in Equation (8) in order to find the SET voltage magnitude best able to promote learning. To realize this, we evaluated the MSE-to-&#x003C1; ratio of randomly initialized models with 15% noise for 100 values of <italic>c</italic> uniformly distributed in the range [&#x02212;1, &#x02212;0.0001].</p></sec></sec>
<sec sec-type="results" id="s3">
<title>3. Results</title>
<sec>
<title>3.1. Device Experimental Evaluation</title>
<p>We investigated the effect of applying pulses across the interface by administering a long SET pulse followed by 25 RESET pulses. Due to the resistance&#x00027;s dependence on the memristor&#x00027;s previous history, there is some variation in the starting state, shown by the measurement at pulse number 0. <xref ref-type="fig" rid="F4">Figure 4A</xref> shows the results for pulses of &#x02212;4 V in amplitude. Results for other pulse amplitudes can be found in <xref ref-type="supplementary-material" rid="SM1">Supplementary Figure 1</xref>. The first pulse gave rise to the largest increase in resistance, with subsequent ones having a much smaller effect. The change in resistance quickly leveled off and the influence of subsequent pulses was significantly smaller. The application of a RESET pulse resulted in a switch to a high resistance state that depended strongly on the amplitude of the applied pulse, but not particularly on the number of pulses of that amplitude that were applied.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p><bold>(A)</bold> Device response to the application of multiple RESET pulses of &#x02212;4 V. <xref ref-type="supplementary-material" rid="SM1">Supplementary Figure 1</xref> shows the results for varying RESET amplitudes. <bold>(B)</bold> Device response to the application of multiple SET pulses of varying amplitudes of &#x0002B;0.1 V (black), &#x0002B;0.5 V (blue), and &#x0002B;1 V (red). 10 RESET pulses of &#x02212;4 V are applied to increase the resistance before the application of the potentiation pulses.</p></caption>
<graphic xlink:href="fnins-14-627276-g0004.tif"/>
</fig>
<p>We also explored the devices&#x00027; response to SET voltages. It should be pointed out that in <xref ref-type="fig" rid="F4">Figure 4B</xref> the initial state (and hence also the large difference induced by the first RESET pulse) after applying a long SET voltage, which would correspond to pulse number 0, is not shown. Note that different pulse amplitudes were chosen for SET and RESET pulses because the asymmetric nature of the charge transport results in much larger currents in forward bias (Goossens et al., <xref ref-type="bibr" rid="B12">2018</xref>). With the application of positive pulses, the device saw its resistance gradually decrease, i.e., it was potentiated. It is clear that in this case both the pulse amplitude and the number of applied pulses had a great impact on the resistance state of the device. The larger the amplitude of the SET pulse, the greater the induced difference to the resistance with each applied pulse. Interesting, compared to applying RESET pulses, the difference between the change induced by the first and later pulses was not severe. While 10 applied RESET pulses gave rise to close to saturated high resistance states, this was not observed when positive pulses were applied.</p></sec>
<sec>
<title>3.2. Device Memristive Response</title>
<p>In order to simulate our memristive devices in Nengo, we modeled their behavior in response to SET pulses on the basis of the experimental measurements we carried out.</p>
<p>The device behavior when applying a series of SET pulses, i.e., its <italic>forward bias</italic> response, was seen to be well-described by an exponential equation of the form:</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M17"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>R</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>V</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>b</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>in which <italic>V</italic> represented the amplitude of the SET pulse, <italic>n</italic> the pulse number, <italic>R</italic><sub>0</sub> the lowest value that the resistance <italic>R</italic>(<italic>n, V</italic>) could reach, and <italic>R</italic><sub>0</sub> &#x0002B; <italic>R</italic><sub>1</sub> the highest value. One of the reasons we chose a fit of this form was because of the parallel we saw with the classic <italic>power law of practice</italic>, a psychological and biological phenomenon by virtue of which improvements are quick at the beginning but become slower with practice. In particular, skill acquisition has classically been thought to follow a power law (Newell and Rosenbloom, <xref ref-type="bibr" rid="B33">1981</xref>; Hill et al., <xref ref-type="bibr" rid="B13">1991</xref>).</p>
<p>By solving Equation (5) for <italic>n</italic>, we can calculate the pulse number from the current resistance <italic>R</italic>(<italic>n, V</italic>) by:</p>
<disp-formula id="E6"><label>(6)</label><mml:math id="M18"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>R</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>V</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mi>b</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Parameters <italic>a</italic> and <italic>b</italic> were found based on the data measured by applying SET voltages between &#x0002B;0.1 and &#x0002B;1 V to the memristive devices, as shown in <xref ref-type="fig" rid="F5">Figure 5A</xref>. The exponents of the curves best describing the memristors&#x00027; behavior were then fitted with linear regression on the log-transformed pulse numbers and resistances, shown in <xref ref-type="fig" rid="F5">Figure 5B</xref>, in order to obtain a linear expression <italic>a</italic>&#x0002B;<italic>bV</italic>. This process yielded an estimated best fit for the memristor behavior of:</p>
<disp-formula id="E7"><label>(7)</label><mml:math id="M19"><mml:mtable class="eqnarray" columnalign="right center left"><mml:mtr><mml:mtd><mml:mi>R</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>V</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>200</mml:mn><mml:mo>&#x0002B;</mml:mo><mml:mn>2</mml:mn><mml:mo>.</mml:mo><mml:mn>3</mml:mn><mml:mo>&#x000D7;</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>093</mml:mn><mml:mo>-</mml:mo><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>53</mml:mn><mml:mi>V</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>In our current work we always supplied SET pulses of &#x0002B;0.1 V so we could subsume the exponential term <italic>a</italic> &#x0002B; <italic>bV</italic> into a single parameter <italic>c</italic>:</p>
<disp-formula id="E8"><label>(8)</label><mml:math id="M20"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mi>R</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>n</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mn>200</mml:mn><mml:mo>+</mml:mo><mml:mn>2.3</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x000D7;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msup><mml:mn>10</mml:mn><mml:mn>8</mml:mn></mml:msup><mml:msup><mml:mi>n</mml:mi><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>0.093</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mn>0.53</mml:mn><mml:mo>&#x000D7;</mml:mo><mml:mn>0.1</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mn>200</mml:mn><mml:mo>+</mml:mo><mml:mn>2.3</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x000D7;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msup><mml:mn>10</mml:mn><mml:mn>8</mml:mn></mml:msup><mml:msup><mml:mi>n</mml:mi><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mn>0.146</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p><bold>(A)</bold> Circles show the experimental data of device resistance after the application of multiple SET pulses with amplitudes varying from &#x0002B;0.1 V (top branch) to &#x0002B;1 V (bottom branch). Lines represent fits to Equation (5). <bold>(B)</bold> Black circles show the exponents extracted from the fits in (a) as a function of pulse voltage. The red line is a linear regression fit from which the <italic>a</italic> and <italic>b</italic> parameters are obtained.</p></caption>
<graphic xlink:href="fnins-14-627276-g0005.tif"/>
</fig></sec>
<sec>
<title>3.3. Optimization Experiments</title>
<p>The gain factor &#x003B3; in Equation (2) was analogous to the <italic>learning rate</italic> &#x003BA; in Equation (3)&#x02014;present in most machine learning algorithms&#x02014;in that it defined how big an effect each memristor conductance update had on the corresponding network weight.</p>
<p>The rationale behind this experiment was to execute an equivalent of hyperparameter tuning&#x02014;routinely done for artificial neural networks&#x02014;as we had realized that &#x003B3; was homomorphous to a learning rate. Therefore searching if there existed a &#x0201C;best&#x0201D; value of &#x003B3; was integral in helping mPES obtain good learning performance from the models.</p>
<p>The results for this experiment are shown in <xref ref-type="table" rid="T1">Table 1</xref>, with the optimal value of the hyperparameter &#x003B3; that was found for each combination of factors highlighted in bold. This &#x0201C;best&#x0201D; gain value was selected as the one giving the highest mean squared error-to-Spearman correlation coefficient ratio (<inline-formula><mml:math id="M22"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac></mml:math></inline-formula>) across the various models. In our case this value was &#x003B3; &#x0003D; 10<sup>4</sup>, which would be the hyperparameter used in our subsequent experiments to evaluate the learning performance of our models in greater depth. Most modern Machine Learning algorithms employ some form of scheduling of the learning rate in order to help convergence. We had considered adding a decay to our gain factor but elected against this because, as previously stated, our eventual goal is to move our memristor-based learning model from simulation to physical circuit implementation and adding a schedule to our gain factor would entail a more complex CMOS logic. It should also be noted that the memristors themselves naturally implement a decaying learning schedule as their memristance behavior is described by a power law (Equation 5); each subsequent SET learning pulse will have a smaller effect on the resistance than the previous one.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Influence of the &#x003B3; hyperparameter on the learning performance, expressed as mean squared error (MSE), Spearman correlation coefficient (&#x003C1;), and MSE-to-&#x003C1; ratio - measured in the testing phase - of the model for different combinations of ensemble size, input signal, and learned transformation.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="center" colspan="4" style="border-bottom: thin solid #000000;"><bold>10 neurons, sine</bold>, <bold>f</bold>(<bold>x</bold>) &#x0003D; <bold>x</bold></th>
<th valign="top" align="center" colspan="4" style="border-bottom: thin solid #000000;"><bold>10 neurons, sine</bold>, <bold><bold>f</bold>(<bold>x</bold>) &#x0003D; <bold>x</bold><sup>2</sup></bold></th>
</tr>
<tr>
<th valign="top" align="left"><bold>Gain &#x003B3;</bold></th>
<th valign="top" align="center"><bold>MSE</bold></th>
<th valign="top" align="center"><bold>&#x003C1;</bold></th>
<th valign="top" align="center"><bold><inline-formula><mml:math id="M23"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></bold></th>
<th valign="top" align="center"><bold>Gain &#x003B3;</bold></th>
<th valign="top" align="center"><bold>MSE</bold></th>
<th valign="top" align="center"><bold>&#x003C1;</bold></th>
<th valign="top" align="center"><bold><inline-formula><mml:math id="M24"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">10<sup>1</sup></td>
<td valign="top" align="center">0.3058</td>
<td valign="top" align="center">0.0422</td>
<td valign="top" align="center">0.1381</td>
<td valign="top" align="center">10<sup>1</sup></td>
<td valign="top" align="center">0.1710</td>
<td valign="top" align="center">0.0061</td>
<td valign="top" align="center">0.0356</td>
</tr>
<tr>
<td valign="top" align="left">10<sup>2</sup></td>
<td valign="top" align="center">0.2737</td>
<td valign="top" align="center">0.3234</td>
<td valign="top" align="center">1.1814</td>
<td valign="top" align="center">10<sup>2</sup></td>
<td valign="top" align="center">0.1389</td>
<td valign="top" align="center">0.0364</td>
<td valign="top" align="center">0.2620</td>
</tr>
<tr>
<td valign="top" align="left">10<sup>3</sup></td>
<td valign="top" align="center">0.1416</td>
<td valign="top" align="center">0.7997</td>
<td valign="top" align="center">5.6478</td>
<td valign="top" align="center">10<sup>3</sup></td>
<td valign="top" align="center"><bold>0.1188</bold></td>
<td valign="top" align="center">0.1745</td>
<td valign="top" align="center">1.4696</td>
</tr>
<tr>
<td valign="top" align="left"><bold>10<sup>4</sup></bold></td>
<td valign="top" align="center"><bold>0.1183</bold></td>
<td valign="top" align="center"><bold>0.8674</bold></td>
<td valign="top" align="center"><bold>7.3303</bold></td>
<td valign="top" align="center"><bold>10<sup>4</sup></bold></td>
<td valign="top" align="center">0.1346</td>
<td valign="top" align="center"><bold>0.2306</bold></td>
<td valign="top" align="center"><bold>1.7129</bold></td>
</tr>
<tr>
<td valign="top" align="left">10<sup>5</sup></td>
<td valign="top" align="center">0.2190</td>
<td valign="top" align="center">0.7670</td>
<td valign="top" align="center">3.5016</td>
<td valign="top" align="center">10<sup>5</sup></td>
<td valign="top" align="center">0.2752</td>
<td valign="top" align="center">0.1161</td>
<td valign="top" align="center">0.4219</td>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">10<sup>6</sup></td>
<td valign="top" align="center">0.3177</td>
<td valign="top" align="center">0.6802</td>
<td valign="top" align="center">2.1408</td>
<td valign="top" align="center">10<sup>6</sup></td>
<td valign="top" align="center">0.4189</td>
<td valign="top" align="center">0.0747</td>
<td valign="top" align="center">0.1784</td>
</tr> <tr>
<td valign="top" align="center" colspan="4" style="border-bottom: thin solid #000000;"><bold>10 neurons, white</bold>, <bold>f</bold>(<bold>x</bold>) &#x0003D; <bold>x</bold></td>
<td valign="top" align="center" colspan="4" style="border-bottom: thin solid #000000;"><bold>10 neurons, white</bold>, <bold><bold>f</bold>(<bold>x</bold>) &#x0003D; <bold>x</bold><sup>2</sup></bold></td>
</tr>
<tr>
<td valign="top" align="left"><bold>Gain &#x003B3;</bold></td>
<td valign="top" align="center"><bold>MSE</bold></td>
<td valign="top" align="center"><bold>&#x003C1;</bold></td>
<td valign="top" align="center"><inline-formula><mml:math id="M25"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center"><bold>Gain &#x003B3;</bold></td>
<td valign="top" align="center"><bold>MSE</bold></td>
<td valign="top" align="center"><bold>&#x003C1;</bold></td>
<td valign="top" align="center"><inline-formula><mml:math id="M26"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
</tr> <tr>
<td valign="top" align="left">10<sup>1</sup></td>
<td valign="top" align="center">0.1733</td>
<td valign="top" align="center">0.0107</td>
<td valign="top" align="center">0.0618</td>
<td valign="top" align="center">10<sup>1</sup></td>
<td valign="top" align="center">0.0863</td>
<td valign="top" align="center">0.0030</td>
<td valign="top" align="center">0.0349</td>
</tr>
<tr>
<td valign="top" align="left">10<sup>2</sup></td>
<td valign="top" align="center">0.1631</td>
<td valign="top" align="center">0.1070</td>
<td valign="top" align="center">0.6563</td>
<td valign="top" align="center">10<sup>2</sup></td>
<td valign="top" align="center"><bold>0.0752</bold></td>
<td valign="top" align="center">0.0280</td>
<td valign="top" align="center">0.3722</td>
</tr>
<tr>
<td valign="top" align="left">10<sup>3</sup></td>
<td valign="top" align="center">0.1352</td>
<td valign="top" align="center">0.5313</td>
<td valign="top" align="center">3.9290</td>
<td valign="top" align="center">10<sup>3</sup></td>
<td valign="top" align="center">0.0869</td>
<td valign="top" align="center">0.0882</td>
<td valign="top" align="center">1.0149</td>
</tr>
<tr>
<td valign="top" align="left"><bold>10<sup>4</sup></bold></td>
<td valign="top" align="center"><bold>0.1287</bold></td>
<td valign="top" align="center"><bold>0.7599</bold></td>
<td valign="top" align="center"><bold>5.9052</bold></td>
<td valign="top" align="center"><bold>10<sup>4</sup></bold></td>
<td valign="top" align="center">0.1298</td>
<td valign="top" align="center"><bold>0.1542</bold></td>
<td valign="top" align="center"><bold>1.1882</bold></td>
</tr>
<tr>
<td valign="top" align="left">10<sup>5</sup></td>
<td valign="top" align="center">0.1830</td>
<td valign="top" align="center">0.7308</td>
<td valign="top" align="center">3.9923</td>
<td valign="top" align="center">10<sup>5</sup></td>
<td valign="top" align="center">0.1831</td>
<td valign="top" align="center">0.1332</td>
<td valign="top" align="center">0.7276</td>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">10<sup>6</sup></td>
<td valign="top" align="center">0.2302</td>
<td valign="top" align="center">0.6136</td>
<td valign="top" align="center">2.6655</td>
<td valign="top" align="center">10<sup>6</sup></td>
<td valign="top" align="center">0.2866</td>
<td valign="top" align="center">0.0936</td>
<td valign="top" align="center">0.3268</td>
</tr> <tr>
<td valign="top" align="center" colspan="4" style="border-bottom: thin solid #000000;"><bold>100 neurons, sine</bold>, <bold>f</bold>(<bold>x</bold>) &#x0003D; <bold>x</bold></td>
<td valign="top" align="center" colspan="4" style="border-bottom: thin solid #000000;"><bold>100 neurons, sine</bold>, <bold><bold>f</bold>(<bold>x</bold>) &#x0003D; <bold>x</bold><sup>2</sup></bold></td>
</tr>
<tr>
<td valign="top" align="left"><bold>Gain &#x003B3;</bold></td>
<td valign="top" align="center"><bold>MSE</bold></td>
<td valign="top" align="center"><bold>&#x003C1;</bold></td>
<td valign="top" align="center"><inline-formula><mml:math id="M27"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center"><bold>Gain &#x003B3;</bold></td>
<td valign="top" align="center"><bold>MSE</bold></td>
<td valign="top" align="center"><bold>&#x003C1;</bold></td>
<td valign="top" align="center"><inline-formula><mml:math id="M28"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
</tr> <tr>
<td valign="top" align="left">10<sup>1</sup></td>
<td valign="top" align="center">0.3049</td>
<td valign="top" align="center">0.0357</td>
<td valign="top" align="center">0.1172</td>
<td valign="top" align="center">10<sup>1</sup></td>
<td valign="top" align="center">0.1817</td>
<td valign="top" align="center">0.0065</td>
<td valign="top" align="center">0.0360</td>
</tr>
<tr>
<td valign="top" align="left">10<sup>2</sup></td>
<td valign="top" align="center">0.2740</td>
<td valign="top" align="center">0.3171</td>
<td valign="top" align="center">1.1571</td>
<td valign="top" align="center">10<sup>2</sup></td>
<td valign="top" align="center">0.1439</td>
<td valign="top" align="center">0.0452</td>
<td valign="top" align="center">0.3144</td>
</tr>
<tr>
<td valign="top" align="left">10<sup>3</sup></td>
<td valign="top" align="center">0.1461</td>
<td valign="top" align="center">0.7886</td>
<td valign="top" align="center">5.3989</td>
<td valign="top" align="center">10<sup>3</sup></td>
<td valign="top" align="center"><bold>0.1169</bold></td>
<td valign="top" align="center">0.1511</td>
<td valign="top" align="center"><bold>1.2920</bold></td>
</tr>
<tr>
<td valign="top" align="left"><bold>10<sup>4</sup></bold></td>
<td valign="top" align="center"><bold>0.1239</bold></td>
<td valign="top" align="center"><bold>0.8741</bold></td>
<td valign="top" align="center"><bold>7.0567</bold></td>
<td valign="top" align="center"><bold>10<sup>4</sup></bold></td>
<td valign="top" align="center">0.1924</td>
<td valign="top" align="center"><bold>0.2143</bold></td>
<td valign="top" align="center"><bold>1.1138</bold></td>
</tr>
<tr>
<td valign="top" align="left">10<sup>5</sup></td>
<td valign="top" align="center">0.2341</td>
<td valign="top" align="center">0.7785</td>
<td valign="top" align="center">3.3254</td>
<td valign="top" align="center">10<sup>5</sup></td>
<td valign="top" align="center">0.2710</td>
<td valign="top" align="center">0.1426</td>
<td valign="top" align="center">0.5261</td>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">10<sup>6</sup></td>
<td valign="top" align="center">0.3649</td>
<td valign="top" align="center">0.6649</td>
<td valign="top" align="center">1.8220</td>
<td valign="top" align="center">10<sup>6</sup></td>
<td valign="top" align="center">0.4395</td>
<td valign="top" align="center">0.0843</td>
<td valign="top" align="center">0.1918</td>
</tr> <tr>
<td valign="top" align="center" colspan="4" style="border-bottom: thin solid #000000;"><bold>100 neurons, white</bold>, <bold>f</bold>(<bold>x</bold>) &#x0003D; <bold>x</bold></td>
<td valign="top" align="center" colspan="4" style="border-bottom: thin solid #000000;"><bold>100 neurons, white</bold>, <bold><bold>f</bold>(<bold>x</bold>) &#x0003D; <bold>x</bold><sup>2</sup></bold></td>
</tr>
<tr>
<td valign="top" align="left"><bold>Gain &#x003B3;</bold></td>
<td valign="top" align="center"><bold>MSE</bold></td>
<td valign="top" align="center"><bold>&#x003C1;</bold></td>
<td valign="top" align="center"><inline-formula><mml:math id="M29"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
<td valign="top" align="center"><bold>Gain &#x003B3;</bold></td>
<td valign="top" align="center"><bold>MSE</bold></td>
<td valign="top" align="center"><bold>&#x003C1;</bold></td>
<td valign="top" align="center"><inline-formula><mml:math id="M30"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></td>
</tr> <tr>
<td valign="top" align="left">10<sup>1</sup></td>
<td valign="top" align="center">0.1761</td>
<td valign="top" align="center">0.0130</td>
<td valign="top" align="center">0.0736</td>
<td valign="top" align="center">10<sup>1</sup></td>
<td valign="top" align="center">0.0790</td>
<td valign="top" align="center">0.0031</td>
<td valign="top" align="center">0.0389</td>
</tr>
<tr>
<td valign="top" align="left">10<sup>2</sup></td>
<td valign="top" align="center">0.1667</td>
<td valign="top" align="center">0.1001</td>
<td valign="top" align="center">0.6005</td>
<td valign="top" align="center">10<sup>2</sup></td>
<td valign="top" align="center"><bold>0.0710</bold></td>
<td valign="top" align="center">0.0255</td>
<td valign="top" align="center">0.3590</td>
</tr>
<tr>
<td valign="top" align="left">10<sup>3</sup></td>
<td valign="top" align="center">0.1413</td>
<td valign="top" align="center">0.5155</td>
<td valign="top" align="center">3.6488</td>
<td valign="top" align="center">10<sup>3</sup></td>
<td valign="top" align="center">0.0928</td>
<td valign="top" align="center">0.0797</td>
<td valign="top" align="center">0.8583</td>
</tr>
<tr>
<td valign="top" align="left"><bold>10<sup>4</sup></bold></td>
<td valign="top" align="center"><bold>0.1219</bold></td>
<td valign="top" align="center"><bold>0.7689</bold></td>
<td valign="top" align="center"><bold>6.3070</bold></td>
<td valign="top" align="center"><bold>10<sup>4</sup></bold></td>
<td valign="top" align="center">0.1255</td>
<td valign="top" align="center"><bold>0.1593</bold></td>
<td valign="top" align="center"><bold>1.2694</bold></td>
</tr>
<tr>
<td valign="top" align="left">10<sup>5</sup></td>
<td valign="top" align="center">0.1769</td>
<td valign="top" align="center">0.7292</td>
<td valign="top" align="center">4.1219</td>
<td valign="top" align="center">10<sup>5</sup></td>
<td valign="top" align="center">0.1797</td>
<td valign="top" align="center">0.1373</td>
<td valign="top" align="center">0.7642</td>
</tr>
<tr>
<td valign="top" align="left">10<sup>6</sup></td>
<td valign="top" align="center">0.2225</td>
<td valign="top" align="center">0.6467</td>
<td valign="top" align="center">2.9062</td>
<td valign="top" align="center">10<sup>6</sup></td>
<td valign="top" align="center">0.2844</td>
<td valign="top" align="center">0.0767</td>
<td valign="top" align="center">0.2696</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>The bolded entries highlight the optimal value found for each statistic, and the best &#x003B3; chosen for each model. NB: the &#x003B3; chosen for the [<bold>100 neurons, white</bold>, <bold>f(x) &#x0003D; x</bold>] model was &#x003B3;=10<sup>4</sup> even though the <inline-formula><mml:math id="M31"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac></mml:math></inline-formula> was lower for &#x003B3;=10<sup>3</sup></italic>.</p>
</table-wrap-foot>
</table-wrap>
</sec>
<sec>
<title>3.4. Learning Experiments</title>
<p>The results for the experiments comparing learning a function using PES or mPES are shown in <xref ref-type="table" rid="T2">Table 2</xref>, where it can be immediately seen that our mPES learning rule is competitive with PES by noticing that the statistics encoding the quality of the learning, the mean squared error (MSE) and Spearman correlation coefficient (&#x003C1;), are consistently more favorable to mPES&#x02014;or when not, very close to equal&#x02014;across the spectrum of tested models.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Mean squared error (MSE), Spearman correlation coefficient (&#x003C1;), and MSE-to-&#x003C1;&#x02014;averaged over 100 runs&#x02014;for models trying to learn either <italic>y</italic> &#x0003D; <italic>x</italic> or <italic>y</italic> &#x0003D; <italic>x</italic><sup>2</sup> using PES or mPES as learning rule, from a 3-dimensional learning input signal.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Neur</bold>.</th>
<th valign="top" align="left"><bold>Learn x</bold></th>
<th valign="top" align="left"><bold>f(x)</bold></th>
<th valign="top" align="left"><bold>Test x</bold></th>
<th valign="top" align="center" colspan="3" style="border-bottom: thin solid #000000;"><bold>PES</bold></th>
<th valign="top" align="center" colspan="3" style="border-bottom: thin solid #000000;"><bold>mPES</bold></th>
<th valign="top" align="center" colspan="3" style="border-bottom: thin solid #000000;"><bold>No learning</bold></th>
</tr>
<tr>
<th valign="top" align="left" colspan="4"/>
<th valign="top" align="left"><bold>MSE</bold></th>
<th valign="top" align="left"><bold>&#x003C1;</bold></th>
<th valign="top" align="left"><bold><inline-formula><mml:math id="M32"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></bold></th>
<th valign="top" align="center"><bold>MSE</bold></th>
<th valign="top" align="center"><bold>&#x003C1;</bold></th>
<th valign="top" align="center"><bold><inline-formula><mml:math id="M33"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></bold></th>
<th valign="top" align="center"><bold>MSE</bold></th>
<th valign="top" align="center"><bold>&#x003C1;</bold></th>
<th valign="top" align="center"><bold><inline-formula><mml:math id="M34"><mml:mrow><mml:mfrac><mml:mstyle mathvariant='bold' mathsize='normal'><mml:mi>&#x003C1;</mml:mi></mml:mstyle><mml:mrow><mml:mtext>MSE</mml:mtext></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula></bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">10</td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="left"><italic>x</italic></td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="center">0.2088</td>
<td valign="top" align="center">0.8283</td>
<td valign="top" align="center">3.9673</td>
<td valign="top" align="center">0.1283</td>
<td valign="top" align="center">0.8719</td>
<td valign="top" align="center">6.7957</td>
<td valign="top" align="center">0.5675</td>
<td valign="top" align="center">0.0511</td>
<td valign="top" align="center">0.0900</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="center">0.2800</td>
<td valign="top" align="center">0.5526</td>
<td valign="top" align="center">1.9735</td>
<td valign="top" align="center">0.1822</td>
<td valign="top" align="center">0.6268</td>
<td valign="top" align="center">3.4412</td>
<td valign="top" align="center">0.4044</td>
<td valign="top" align="center">&#x02212;0.0128</td>
<td valign="top" align="center">&#x02212;0.0317</td>
</tr>
<tr>
<td/>
<td/>
<td valign="top" align="left"><italic>x</italic><sup>2</sup></td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="center">0.2048</td>
<td valign="top" align="center">0.2132</td>
<td valign="top" align="center">1.0411</td>
<td valign="top" align="center">0.1673</td>
<td valign="top" align="center">0.2032</td>
<td valign="top" align="center">1.2146</td>
<td valign="top" align="center">0.1849</td>
<td valign="top" align="center">&#x02212;0.0075</td>
<td valign="top" align="center">&#x02212;0.0406</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="center">0.1783</td>
<td valign="top" align="center">0.0390</td>
<td valign="top" align="center">0.2189</td>
<td valign="top" align="center">0.1322</td>
<td valign="top" align="center">0.0992</td>
<td valign="top" align="center">0.7499</td>
<td valign="top" align="center">0.1005</td>
<td valign="top" align="center">0.0153</td>
<td valign="top" align="center">0.1524</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="left"><italic>x</italic></td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="center">0.1315</td>
<td valign="top" align="center">0.8708</td>
<td valign="top" align="center">6.6223</td>
<td valign="top" align="center">0.1712</td>
<td valign="top" align="center">0.8058</td>
<td valign="top" align="center">4.7077</td>
<td valign="top" align="center">0.8719</td>
<td valign="top" align="center">0.0222</td>
<td valign="top" align="center">0.0255</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="center">0.1515</td>
<td valign="top" align="center">0.8322</td>
<td valign="top" align="center">5.4928</td>
<td valign="top" align="center">0.1307</td>
<td valign="top" align="center">0.7719</td>
<td valign="top" align="center">5.9074</td>
<td valign="top" align="center">0.8021</td>
<td valign="top" align="center">0.0006</td>
<td valign="top" align="center">0.0008</td>
</tr>
<tr>
<td/>
<td/>
<td valign="top" align="left"><italic>x</italic><sup>2</sup></td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="center">0.1561</td>
<td valign="top" align="center">0.2786</td>
<td valign="top" align="center">1.7854</td>
<td valign="top" align="center">0.1766</td>
<td valign="top" align="center">0.2024</td>
<td valign="top" align="center">1.1465</td>
<td valign="top" align="center">0.1676</td>
<td valign="top" align="center">0.0007</td>
<td valign="top" align="center">0.0042</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="center">0.1586</td>
<td valign="top" align="center">0.2266</td>
<td valign="top" align="center">1.4288</td>
<td valign="top" align="center">0.1247</td>
<td valign="top" align="center">0.1374</td>
<td valign="top" align="center">1.1013</td>
<td valign="top" align="center">0.0002</td>
<td valign="top" align="center">&#x02212;0.0009</td>
<td valign="top" align="center">&#x02212;5.6996</td>
</tr> <tr style="border-top: thin solid #000000;">
<td valign="top" align="left">100</td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="left"><italic>x</italic></td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="center">0.1385</td>
<td valign="top" align="center">0.8812</td>
<td valign="top" align="center">6.3601</td>
<td valign="top" align="center">0.1197</td>
<td valign="top" align="center">0.9421</td>
<td valign="top" align="center">7.8731</td>
<td valign="top" align="center">0.4208</td>
<td valign="top" align="center">&#x02212;0.0305</td>
<td valign="top" align="center">&#x02212;0.0724</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="center">0.1905</td>
<td valign="top" align="center">0.6810</td>
<td valign="top" align="center">3.5742</td>
<td valign="top" align="center">0.1847</td>
<td valign="top" align="center">0.7344</td>
<td valign="top" align="center">3.9758</td>
<td valign="top" align="center">0.2204</td>
<td valign="top" align="center">&#x02212;0.0179</td>
<td valign="top" align="center">&#x02212;0.0811</td>
</tr>
<tr>
<td/>
<td/>
<td valign="top" align="left"><italic>x</italic><sup>2</sup></td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="center">0.0816</td>
<td valign="top" align="center">0.5956</td>
<td valign="top" align="center">7.3007</td>
<td valign="top" align="center">0.1316</td>
<td valign="top" align="center">0.4796</td>
<td valign="top" align="center">3.6441</td>
<td valign="top" align="center">0.2579</td>
<td valign="top" align="center">&#x02212;0.0322</td>
<td valign="top" align="center">&#x02212;0.1249</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="center">0.0997</td>
<td valign="top" align="center">0.1739</td>
<td valign="top" align="center">1.7445</td>
<td valign="top" align="center">0.1724</td>
<td valign="top" align="center">0.1215</td>
<td valign="top" align="center">0.7047</td>
<td valign="top" align="center">0.1222</td>
<td valign="top" align="center">&#x02212;0.0139</td>
<td valign="top" align="center">&#x02212;0.1140</td>
</tr>
<tr>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="left"><italic>x</italic></td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="center">0.0176</td>
<td valign="top" align="center">0.9865</td>
<td valign="top" align="center">56.1002</td>
<td valign="top" align="center">0.0867</td>
<td valign="top" align="center">0.9614</td>
<td valign="top" align="center">11.0912</td>
<td valign="top" align="center">0.4653</td>
<td valign="top" align="center">&#x02212;0.0152</td>
<td valign="top" align="center">&#x02212;0.0327</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="center">0.0162</td>
<td valign="top" align="center">0.9784</td>
<td valign="top" align="center">60.2713</td>
<td valign="top" align="center">0.0654</td>
<td valign="top" align="center">0.9554</td>
<td valign="top" align="center">14.6141</td>
<td valign="top" align="center">0.2508</td>
<td valign="top" align="center">0.0186</td>
<td valign="top" align="center">0.0742</td>
</tr>
<tr>
<td/>
<td/>
<td valign="top" align="left"><italic>x</italic><sup>2</sup></td>
<td valign="top" align="left">Sine</td>
<td valign="top" align="center">0.0385</td>
<td valign="top" align="center">0.8384</td>
<td valign="top" align="center">21.7865</td>
<td valign="top" align="center">0.1405</td>
<td valign="top" align="center">0.5152</td>
<td valign="top" align="center">3.6670</td>
<td valign="top" align="center">0.2465</td>
<td valign="top" align="center">&#x02212;0.0008</td>
<td valign="top" align="center">&#x02212;0.0031</td>
</tr>
<tr>
<td/>
<td/>
<td/>
<td valign="top" align="left">White</td>
<td valign="top" align="center">0.0248</td>
<td valign="top" align="center">0.7957</td>
<td valign="top" align="center">32.0590</td>
<td valign="top" align="center">0.1013</td>
<td valign="top" align="center">0.5604</td>
<td valign="top" align="center">5.5338</td>
<td valign="top" align="center">0.1122</td>
<td valign="top" align="center">&#x02212;0.0014</td>
<td valign="top" align="center">&#x02212;0.0129</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>The models are given by a combination of number of neurons in their ensembles, training input signal, and function learned. Each model was tested on both kinds of testing input. The results where mPES is run with no learning time allotted are also included in the &#x0201C;No learning&#x0201D; column</italic>.</p>
</table-wrap-foot>
</table-wrap>
<p><xref ref-type="fig" rid="F6">Figures 6A&#x02013;D</xref> show a selection of results from our simulations for various combinations of neuronal ensemble sizes, desired transformations <italic>f</italic> and input signals. The plots show the decoded output for the post-synaptic neuronal ensemble (filled colors), overlaid to the signal represented in the pre-synaptic ensemble (faded colors) during the testing phase of the simulation. The x-axis shows the final 8 s of the simulation, while the y-axis is fixed to [&#x02212;1, &#x0002B;1] to show the value of the signals. In all cases the training input and testing signals were 3-dimensional, with the first dimension plotted in blue, the second in orange, and the third in green. These results were chosen to give an intuition on the outcome of learning from a qualitative point of view, given that mere statistics might not encode the notion of what an observer would deem a &#x0201C;good&#x0201D; fit.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p><bold>(A)</bold> Decoded output from pre- and post-synaptic ensembles of 10 neurons on a sine wave input, after being trained on a sine wave to learn to represent the identity function <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold>. The quality of learning is <inline-formula><mml:math id="M35"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mn>16</mml:mn><mml:mo>.</mml:mo><mml:mn>3398</mml:mn></mml:math></inline-formula>. <bold>(B)</bold> Decoded output from pre- and post-synaptic ensembles of 100 neurons on a sine wave input, after being trained on a sine wave to learn to represent the identity function <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold>. The quality of learning is <inline-formula><mml:math id="M36"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mn>132</mml:mn><mml:mo>.</mml:mo><mml:mn>9364</mml:mn></mml:math></inline-formula>. <bold>(C)</bold> Decoded output from pre- and post-synaptic ensembles of 100 neurons on a white noise input, after being trained on a white noise signal to learn to represent the identity function <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold>. The quality of learning is <inline-formula><mml:math id="M37"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mn>10</mml:mn><mml:mo>.</mml:mo><mml:mn>5064</mml:mn></mml:math></inline-formula>. <bold>(D)</bold> Decoded output from pre- and post-synaptic ensembles of 100 neurons on a sine wave input, after being trained on a sine wave to learn to represent the square function <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold><sup>2</sup>. The quality of learning is <inline-formula><mml:math id="M38"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mn>12</mml:mn><mml:mo>.</mml:mo><mml:mn>2479</mml:mn></mml:math></inline-formula>.</p></caption>
<graphic xlink:href="fnins-14-627276-g0006.tif"/>
</fig>
<p><xref ref-type="fig" rid="F6">Figure 6A</xref> shows how pre, post and error ensembles of 10 neurons each, after the learning period, were able to learn the identity function from a 3-dimensional sine wave. Increasing the model&#x00027;s ensembles to 100 neurons (see <xref ref-type="fig" rid="F6">Figure 6B</xref>) gave a much cleaner output that better approximated the pre-synaptic signal. It should also be noted that the signal decoded from the smaller neuronal ensembles is much noisier, apart from having a worse average fit (i.e., has both higher MSE and lower &#x003C1;). <xref ref-type="fig" rid="F6">Figure 6C</xref> shows that 100-neuron ensembles could learn the identity function after being trained on a white noise signal. Finally, <xref ref-type="fig" rid="F6">Figure 6D</xref> indicates that neuronal ensembles of 100 neurons each could also learn to approximate the square from an input sine wave, with the caveat being that the quality of the learned transformation was noticeably lower&#x02014;which is also reflected by the statistics in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
<p>An argument in support of reporting the notion of qualitative fit is given by analysing the results in <xref ref-type="table" rid="T2">Table 2</xref> for the models in <xref ref-type="fig" rid="F6">Figures 6B,D</xref>. Here we see how these particular models perform similarly in regards to the measured mean squared error when trying to learn the identity and square function from a sine wave, but how the Spearman correlation coefficient is two times worse when learning the latter. The answer to the dilemma can be found by looking at the qualitative fits of the simulations (<xref ref-type="fig" rid="F6">Figures 6B,D</xref>) and noticing that, even though the pre- and post-synaptic signals are&#x02014;on average&#x02014;close in both cases, when trying to learn the square the post-synaptic signal is much noisier. A noisy signal negatively impacts the correlation coefficient as the pre- and post-synaptic signals are nearly never moving in tandem, even when the oscillations are around the correct value. This could be ascribed to the square being a harder function to learn than the identity, as already noted throughout, which could lead to a model being &#x0201C;overpowered,&#x0201D; in the sense that its representational power is allotted to trying to learn the harder function, decreasing the resources available to represent the signal.</p>
<p>The sizes of the neuronal ensembles were not fine-tuned for compactness so it may well be possible to learn representations of similar quality using smaller neuronal ensembles.</p></sec>
<sec>
<title>3.5. Other Experiments</title>
<sec>
<title>3.5.1. Increasing Noise Experiments</title>
<p>As previously mentioned, the impact of noise is not linear across the resistance range, with memristors in a HRS seeing their response to pulses having a higher uncertainty. This is due to the fact that we were introducing variation on the update equation itself and not on the resulting resistance state.</p>
<p>As can be seen in <xref ref-type="fig" rid="F7">Figure 7A</xref>, learning performance decreased for high levels of noise and this degradation was graceful, as the MSE-to-&#x003C1; monotonically decreased toward 0. As previously stated: a lower MSE-to-&#x003C1; ratio (<inline-formula><mml:math id="M41"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac></mml:math></inline-formula>) indicates a model that cannot faithfully represent the transformed pre-synaptic signal <italic>f</italic>(<italic>x</italic>). Performance was well-maintained up until &#x02248; 15% of variation of the parameters and smoothly decreased until stabilizing around 0 for noise &#x0003E; 60%. An example of how the memristor resistances behave in the presence of various amounts of noise is shown in <xref ref-type="supplementary-material" rid="SM1">Supplementary Figure 4</xref>.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p><bold>(A)</bold> The black line shows the MSE-to-&#x003C1; (<inline-formula><mml:math id="M39"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac></mml:math></inline-formula>) measured on the testing phase of the simulation as a function of the percentage of noise&#x02014;expressed as coefficient of variation <inline-formula><mml:math id="M40"><mml:mfrac><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> of each parameter&#x02014;injected into the model. The red line shows the rolling average for the measured MSE-to-&#x003C1;. <bold>(B)</bold> The black line shows the MSE-to-&#x003C1; as a function of the magnitude of the exponent <italic>c</italic> in Equation (8). The red line shows the rolling average for the measured MSE-to-&#x003C1;.</p></caption>
<graphic xlink:href="fnins-14-627276-g0007.tif"/>
</fig></sec>
<sec>
<title>3.5.2. Exponent Search Experiments</title>
<p>The results for the exponent parameter search are shown in <xref ref-type="fig" rid="F7">Figure 7B</xref> and here we can see how strongly the performance of the model depends on the magnitude of the exponent in the power law (Equation 8). The quality of the fit is in direct correspondence with the value of <italic>c</italic> up until <italic>c</italic> &#x02248; &#x02212;0.162, with a rapid decrease in learning performance thereafter. The highest performance is found for <italic>c</italic> &#x02208; [&#x02212;0.17, &#x02212;0.16]. Our choice of supplying learning SET pulses of &#x0002B;0.1 V implied <italic>c</italic> &#x0003D; &#x02212;0.146 (Equation 8), suggesting that a slightly higher tension could have led to better performance in the task at hand.</p>
<p>The decrease in MSE-to-&#x003C1; for the smallest values of the exponent is most likely the result of the memristors having too small of a response for the training time supplied (which was 24 s in all out experiments) to be able to learn the function. This is the equivalent to having too small a learning rate in a traditional machine learning model.</p></sec></sec></sec>
<sec sec-type="discussion" id="s4">
<title>4. Discussion</title>
<p>Even with the restrictions imposed by the devices&#x00027; physical characteristics, our experiments showed that we could enable the post-synaptic neuronal ensemble to well-represent transformations of the pre-synaptic signal by applying our novel mPES learning rule to synapses based on Nb:STO memristive devices. This process leads to a set of memristor resistances that can be mapped to network weights, which transform the supplied input into the desired output by encoding the learned function. Crucially, our results are not limited to our Nb:STO memristors but generalize to any memristive device whose memristance follows a power law. We showed that our model could learn to approximate both the identity <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold> and square <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold><sup>2</sup> functions&#x02014;the latter being a qualitatively harder problem to solve&#x02014;with no theoretical reason limiting it to only representing these transformations. Learning was effective both when the input signal was a periodic sine wave and also when it was random, as the case where the pre-synaptic ensemble was fed white noise, or was switched between learning and testing phases; this second result is important in that it shows that the model was able to learn the transformation independently of the regularity of the supplied training data and of the input signal itself. It had already been suggested that the original PES learning rule, on which our mPES algorithm is based, would be able to learn arbitrary vector functions (Bekolay, <xref ref-type="bibr" rid="B3">2010</xref>; MacNeil and Eliasmith, <xref ref-type="bibr" rid="B27">2011</xref>). The fact that our learning rule is derived from one already capable of approximating arbitrary functions leads further credence to our conclusion that our model is capable of learning any transformation of <italic>n</italic>-dimensional vectors. Critically, as our model aimed to present strong neuromorphic credentials, these results are robust to the presence of noise on the updates and on the initial state of the memristors&#x00027; resistances.</p>
<p>The results in the learning experiments&#x02014;during which we compared the quality of the representations in the pre- and post-synaptic ensembles-were competitive with the original PES learning rule even though the latter had the advantage of operating on ideal, continuous network weights, with no uncertainty on their updates. Our mPES learning rule showed a post-training MSE-to-&#x003C1; ratio that was consistently close to that of PES; the results were especially favorable when trying to learn the identity function <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold>. In general, the MSE-to-&#x003C1; ratio was consistently lower for both algorithms when trying to learn the square transformation <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold><sup>2</sup> compared to the <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold> case, but the drop in performance for mPES was more marked. These observations suggest that the square function is a harder problem to learn and that the gap in performance between PES and mPES when trying to learn this transformation could be bridged by using a higher number of neurons in conjunction with our learning rule. Both learning rules exhibited higher performance when trained on a white noise input signal compared to a sine wave; we attribute this difference to the dissimilarity in how the input spaces are sampled but have no grounded theoretical explanations to explain this influence. Most importantly, we did see a decline in learning performance when switching to a different input signal between learning and testing phases, but this effect was limited; this lends credence to the belief that our model is actually able to generalize and thus is learning the function <italic>f</italic>, not just the transformed input signal <italic>f</italic> (<bold><italic>x</italic></bold>).</p>
<p>The evaluations on the learning performance for increasing amounts of noise were done with models composed of a very small number of neurons, which could potentially predispose the network to be more susceptible to the injected randomness; this suggests that using our memristive devices and learning rule can lead to robust performance. As previously reported, the model maintained its best performance up to a moderate amount of Gaussian noise on the initial memristor resistances and on the parameters of the update equation (Equation 8). The measured performance in the presence of increasing noise is less than that reported in previous work, but in our case we did not have a well-defined metric to measure performance against, for example recognition rate as in Querlioz et al. (<xref ref-type="bibr" rid="B36">2013</xref>). Again we raise the question of what constitutes a &#x0201C;good enough fit,&#x0201D; reiterating that&#x02014;in our view&#x02014;this is entirely dependent on the observer and the task at hand. The results also suggest that noise aids the model to a certain degree, given that the act of initializing each network weight to a different value is, in Machine Learning terminology, known as &#x0201C;symmetry breaking&#x0201D;; failing to do so can make a model difficult or impossible to train. Therefore, the noise on the initial resistance state could be effectively &#x0201C;breaking the symmetry&#x0201D; of the weights.</p>
<p>It is notable that the learning performance was maintained even though our mPES learning rule had absolutely no knowledge of the magnitudes of the updates and that the only hyperparameter tuned was the gain &#x003B3;, whose effect was analogous to a learning rate. The learning rule was also only able to adjust the memristors toward lower resistance states, potentially making it harder to backtrack on any error. We experimentally found, as reported in <xref ref-type="table" rid="T1">Table 1</xref>, that a value of &#x003B3; &#x0003D; 10<sup>4</sup> lead to the best learning performance&#x02014;defined as balance between testing error and correlation MSE-to-&#x003C1; ratio <inline-formula><mml:math id="M42"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac></mml:math></inline-formula>&#x02014;for all models given by combinations of neuronal ensemble size, training input signal, and desired transformation. The best values for mean squared error (MSE) and Spearman correlation coefficient (&#x003C1;) were both found for the same value of &#x003B3; &#x0003D; 10<sup>4</sup> in all the instances where the models were instructed to learn the identity function <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold>. Instead, when the models were attempting to learn the square function <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold><sup>2</sup> there was a discrepancy between the values of &#x003B3; leading to the lowest MSE and to the highest &#x003C1;. The two models learning the square from the regular sine wave input still had best &#x003C1; for &#x003B3; &#x0003D; 10<sup>4</sup>, but showed the lowest error for a smaller gain factor of &#x003B3; &#x0003D; 10<sup>3</sup>; the combined MSE-to-&#x003C1; statistic still indicated &#x003B3; &#x0003D; 10<sup>4</sup> as the best choice for this class of model as the positive gains in correlation counterbalanced the higher error. The models learning the square transformation from the random white noise input followed the same pattern as they also showed highest correlation for &#x003B3; &#x0003D; 10<sup>4</sup> and required a smaller gain factor to exhibit the lowest error: &#x003B3; &#x0003D; 10<sup>2</sup> in their case. The measured <inline-formula><mml:math id="M43"><mml:mfrac><mml:mrow><mml:mi>&#x003C1;</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">MSE</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac></mml:math></inline-formula> for this last class of models was close for both &#x003B3; &#x0003D; 10<sup>3</sup> and &#x003B3; &#x0003D; 10<sup>4</sup> as the correlation &#x003C1; did not suffer as much as when trying to learn the square from the sine wave input.</p>
<p>In the [100 neurons, sine, <italic>f</italic> (<bold><italic>x</italic></bold>) &#x0003D; <bold><italic>x</italic></bold><sup>2</sup>] instance the best MSE-to-&#x003C1; ratio was found for &#x003B3; &#x0003D; 10<sup>3</sup> but, given that the result was very close to the one obtained with &#x003B3; &#x0003D; 10<sup>4</sup>, the latter was chosen for consistency with all other cases.</p>
<p>The magnitude of &#x003B3; was crucial to enable learning as it brought the normalized conductances calculated in Equation (2) to a scale compatible with the model and the input signal. The need to precisely tune the learning rate when using memristors presenting non-linear and asymmetric response has already been recognized (Burr et al., <xref ref-type="bibr" rid="B6">2015</xref>) and this effect is somewhat confirmed here, as a too small or too large &#x003B3; completely disabled the learning capacity of the model, while a sub-optimal value hindered the learning performance. Having to tune hyperparameters in order to achieve better learning performance is, unfortunately, the norm in Machine Learning so it is not surprising that we ran into the same requirement. The search was not fine-grained, but gave a good indication of the magnitude of &#x003B3; we could expect to lead to reasonable performance. It could be argued that, in a neuromorphic setting, it is more advantageous to have a &#x0201C;rough&#x0201D; estimate for the hyperparameter&#x02014;&#x003B3; &#x0003D; 10<sup>4</sup> in our case&#x02014;leading to &#x0201C;robust&#x0201D; learning in a variety of situations, rather than focusing on finding the optimal value for a specific setup. Future work should focus on establishing a theoretical link between the model setup, including input signal characteristics and magnitude, and the expected range for finding a &#x003B3; leading to sufficiently robust learning performance.</p>
<p>The memristive response of our device had notable implications on its use as a substrate for learning (Burr et al., <xref ref-type="bibr" rid="B6">2015</xref>; Sidler et al., <xref ref-type="bibr" rid="B42">2016</xref>). There is contention regarding the best characteristics that devices&#x00027; memristance should have in order to effectively support learning. Recent works highlight how there is currently no consensus on if a linear response (Krishnaprasad et al., <xref ref-type="bibr" rid="B21">2019</xref>) or a non-linear (Brivio et al., <xref ref-type="bibr" rid="B5">2018</xref>; Frascaroli et al., <xref ref-type="bibr" rid="B10">2018</xref>) behavior of memristive synapses is more advantageous. On our side, we can add to the discourse by pointing out that our learning experiments (results in <xref ref-type="table" rid="T2">Table 2</xref>) showed that our mPES algorithm, modulating the resistance of non-linear Nb:STO memristors, was competitive with the original PES learning rule, which operated on linear, ideal synaptic weights. <xref ref-type="fig" rid="F3">Figure 3</xref> adds some intuition to why a power-law update would be beneficial for learning compared to a linear synaptic response: the decreasing effect of each training pulse effectively mimics the cooling in simulated annealing and therefore helps the weights converge to an optimal value.</p>
<p>In our current work we only used SET pulses of &#x0002B;0.1 V while negative RESET pulses were largely ignored as the effect of sequential negative pulses was seen to quickly diminish with pulse number. Our initial choice to apply positive learning pulses of &#x0002B;0.1 V implied having an exponent <italic>c</italic> &#x0003D; &#x02212;0.146 for the power law governing the memristor updates, which put the model close to the region exhibiting best learning performance. From a physical point of view, the magnitude of the SET pulses could be set very low as the current-voltage characteristics of our memristors are continuous, without any step-like features reminiscent of a switching threshold voltage. Hence, in principle we expect even small pulse magnitudes to influence the resistive state of the device. In addition, by utilizing a read voltage of a different polarity than that of the SET pulses, we created an asymmetry between the writing and reading processes that made it possible to use very small voltage amplitudes for the SET pulses. Thus it should be possible, in principle, to use physical voltage pulses as small as needed to guarantee the best learning performance. Different mechanisms govern charge transport in forward and reverse bias; this leads to asymmetries in current-voltage characteristics and may also result in differences between the SET and RESET processes.</p>
<p>The disadvantage of only focusing on the forward bias is that long training regimes could potentially lead to the memristors&#x00027; resistances to saturate. That is, using only positive pulses progressively brings the devices to a low resistance state with no way to backtrack. This issue could be alleviated by a careful pulsing scheme where memristor close to saturating were &#x0201C;re-initialized&#x0201D; to a high resistance state by supplying RESET voltage pulses, at the cost of losing some precision in the represented network weights (Burr et al., <xref ref-type="bibr" rid="B6">2015</xref>). This could be done by re-initializing both memristors in a pair to their initial resistances with RESET pulses and then supplying a number of SET pulses proportional to the magnitude of the weight before the reset, on either the positive of negative memristor depending on the polarity of the weight. After the resetting, a highly positive weight would thus see its memristor <italic>M</italic><sup>&#x0002B;</sup> receiving more pulses than a lightly positive one, as a moderately negative weight might have its memristor <italic>M</italic><sup>&#x02212;</sup> receive fewer SET pulses than a highly negative one. This approach could have the disadvantage of requiring quite a complex meta-architecture, but it is possible that the current learning approach may already be robust enough to deal gracefully with the resetting of a small percentage of its synapses.</p>
<p>Another path that could improve the learning performance could be to grade the number, the duration, or the magnitude of pulses applied to each memristor, based on the participation of its pre- and post-synaptic neurons to the global error. This could prove to be a less demanding undertaking than shaping the pulses based on the memristors&#x00027; current state, while still resulting in positive gains to learning performance.</p></sec>
<sec sec-type="conclusions" id="s5">
<title>5. Conclusions</title>
<p>In this work we fabricated memristive devices based on Ni/Nb-doped SrTiO<sub>3</sub> and found that their memristance followed a power law. These memristive devices were used as the synaptic weight element in a spiking neural network to simulate, to our knowledge, one of the first models of this kind capable of learning to be a universal function approximator. The performance was tested in the Nengo Brain Builder framework by defining a simple network topology capable of learning transformations from multi-dimensional, time-varying signals. The network demonstrated good learning performance with robustness to moderate noise levels of up to &#x02248; 15%, showing that this class of memristive devices is apt to being used as component of a neuromorphic architecture. It is worth restating that the network weights were found using only discrete updates to the memristors, based on knowledge local to each pre- and post-synaptic neuron pair; this means that our learning model presents many more neuromorphic characteristics than, for example, previous works where memristors are used as mere hardware implementations for artificial neural network weights (for example, see Li et al., <xref ref-type="bibr" rid="B25">2019</xref>).</p>
<p>Using memristive devices as weights can enable efficient computing&#x02014;which is also one of the cornerstones of the neuromorphic approach&#x02014;but not pairing them with a neuromorphic learning algorithm and a spiking neural network imposes quite stringent requirements on the physical characteristics of the device. For example, a memristor simply used as a physical implementation of a network weight works best if it exhibits reliable, linear, and symmetric conductance response in order to approximate the idealized weight it stands in for Li et al. (<xref ref-type="bibr" rid="B24">2018</xref>). Present-day machine learning models suffer from &#x0201C;brittleness&#x0201D; (i.e., small changes in input can give rise to large errors) and do not seem well-positioned in being able to match human adaptability across a wide variety of tasks. It is becoming accepted that stochasticity is itself a computational resource (Xia and Yang, <xref ref-type="bibr" rid="B51">2019</xref>)&#x02014;even though it is still not formally proven as such&#x02014;and the fact that our model seems to perform best with a moderate amount of noise could be a result of this effect. It had already been proposed that networks using memristors as synapses could match the learning performance of traditional artificial neural networks (Burr et al., <xref ref-type="bibr" rid="B6">2015</xref>) and our results are in line with this conjecture.</p></sec>
<sec id="s6">
<title>Code Availability</title>
<p>All code used in this study is publicly available on GitHub at <ext-link ext-link-type="uri" xlink:href="https://github.com/Tioz90/Learning-to-approximate-functions-using-niobium-doped-strontium-titanate-memristors">https://github.com/Tioz90/Learning-to-approximate-functions-using-niobium-doped-strontium-titanate-memristors</ext-link>.</p></sec>
<sec sec-type="data-availability-statement" id="s7">
<title>Data Availability Statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p></sec>
<sec id="s8">
<title>Author Contributions</title>
<p>TT, AG, JB, TB, and NT developed the ideas and wrote the paper. AG conducted the experimental work. TT, AG, and NT derived the mathematical results. TT designed and ran the simulations. 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>The authors declare 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>
</body>
<back>
<ack><p>This manuscript has been released as a pre-print at <ext-link ext-link-type="uri" xlink:href="https://arxiv.org/abs/2011.02794v1">arXiv.org</ext-link> (arXiv:2011.02794) (Tiotto et al., <xref ref-type="bibr" rid="B46">2020</xref>).</p>
<p>AG and TB would like to thank all members of the Spintronics of Functional Materials group at the University of Groningen, in particular Arijit Das for help with device fabrication. Device fabrication was realized using NanoLab NL facilities. AG and TB acknowledge technical support from J. G. Holstein, H. H. de Vries, T. Schouten, and H. Adema. AG and TT were supported by the CogniGron Center, University of Groningen.</p>
</ack><sec sec-type="supplementary-material" id="s9">
<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/fnins.2020.627276/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fnins.2020.627276/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>Ambrogio</surname> <given-names>S.</given-names></name> <name><surname>Ciocchini</surname> <given-names>N.</given-names></name> <name><surname>Laudato</surname> <given-names>M.</given-names></name> <name><surname>Milo</surname> <given-names>V.</given-names></name> <name><surname>Pirovano</surname> <given-names>A.</given-names></name> <name><surname>Fantini</surname> <given-names>P.</given-names></name> <etal/></person-group>. (<year>2016</year>). <article-title>Unsupervised learning by spike timing dependent plasticity in phase change memory (PCM) synapses</article-title>. <source>Front. Neurosci</source>. <volume>10</volume>:<fpage>56</fpage>. <pub-id pub-id-type="doi">10.3389/fnins.2016.00056</pub-id></citation>
</ref>
<ref id="B2">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Amer</surname> <given-names>S.</given-names></name> <name><surname>Rose</surname> <given-names>G. S.</given-names></name> <name><surname>Beckmann</surname> <given-names>K.</given-names></name> <name><surname>Cady</surname> <given-names>N. C.</given-names></name></person-group> (<year>2017</year>). <article-title>Design techniques for in-field memristor forming circuits</article-title>, in <source>2017 IEEE 60th International Midwest Symposium on Circuits and Systems (MWSCAS)</source> (<publisher-loc>Boston, MA</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1224</fpage>&#x02013;<lpage>1227</lpage>. <pub-id pub-id-type="doi">10.1109/MWSCAS.2017.8053150</pub-id></citation></ref>
<ref id="B3">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Bekolay</surname> <given-names>T.</given-names></name></person-group> (<year>2010</year>). <source>Learning Nonlinear Functions on Vectors: Examples and Predictions</source>. Technical report, CTN-TR-20101217-010, Centre for Theoretical Neuroscience, Waterloo.</citation></ref>
<ref id="B4">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bekolay</surname> <given-names>T.</given-names></name> <name><surname>Bergstra</surname> <given-names>J.</given-names></name> <name><surname>Hunsberger</surname> <given-names>E.</given-names></name> <name><surname>DeWolf</surname> <given-names>T.</given-names></name> <name><surname>Stewart</surname> <given-names>T. C.</given-names></name> <name><surname>Rasmussen</surname> <given-names>D.</given-names></name> <etal/></person-group>. (<year>2014</year>). <article-title>Nengo: a python tool for building large-scale functional brain models</article-title>. <source>Front. Neuroinform</source>. <volume>7</volume>:<fpage>48</fpage>. <pub-id pub-id-type="doi">10.3389/fninf.2013.00048</pub-id><pub-id pub-id-type="pmid">24431999</pub-id></citation></ref>
<ref id="B5">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Brivio</surname> <given-names>S.</given-names></name> <name><surname>Conti</surname> <given-names>D.</given-names></name> <name><surname>Nair</surname> <given-names>M. V.</given-names></name> <name><surname>Frascaroli</surname> <given-names>J.</given-names></name> <name><surname>Covi</surname> <given-names>E.</given-names></name> <name><surname>Ricciardi</surname> <given-names>C.</given-names></name> <etal/></person-group>. (<year>2018</year>). <article-title>Extended memory lifetime in spiking neural networks employing memristive synapses with nonlinear conductance dynamics</article-title>. <source>Nanotechnology</source> <volume>30</volume>:<fpage>015102</fpage>. <pub-id pub-id-type="doi">10.1088/1361-6528/aae81c</pub-id><pub-id pub-id-type="pmid">30378572</pub-id></citation></ref>
<ref id="B6">
<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>Nolfo</surname> <given-names>C. d</given-names></name><name><surname>Jang</surname> <given-names>J.</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="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Davies</surname> <given-names>M.</given-names></name> <name><surname>Srinivasa</surname> <given-names>N.</given-names></name> <name><surname>Lin</surname> <given-names>T.-H.</given-names></name> <name><surname>Chinya</surname> <given-names>G.</given-names></name> <name><surname>Cao</surname> <given-names>Y.</given-names></name> <name><surname>Choday</surname> <given-names>S. H.</given-names></name> <etal/></person-group>. (<year>2018</year>). <article-title>Loihi: a neuromorphic manycore processor with on-chip learning</article-title>. <source>IEEE Micro</source> <volume>38</volume>, <fpage>82</fpage>&#x02013;<lpage>99</lpage>. <pub-id pub-id-type="doi">10.1109/MM.2018.112130359</pub-id></citation></ref>
<ref id="B8">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Du</surname> <given-names>C.</given-names></name> <name><surname>Cai</surname> <given-names>F.</given-names></name> <name><surname>Zidan</surname> <given-names>M. A.</given-names></name> <name><surname>Ma</surname> <given-names>W.</given-names></name> <name><surname>Lee</surname> <given-names>S. H.</given-names></name> <name><surname>Lu</surname> <given-names>W. D.</given-names></name></person-group> (<year>2017</year>). <article-title>Reservoir computing using dynamic memristors for temporal information processing</article-title>. <source>Nat. Commun</source>. <volume>8</volume>:<fpage>2204</fpage>. <pub-id pub-id-type="doi">10.1038/s41467-017-02337-y</pub-id><pub-id pub-id-type="pmid">29259188</pub-id></citation></ref>
<ref id="B9">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Eliasmith</surname> <given-names>C.</given-names></name> <name><surname>Anderson</surname> <given-names>C. H.</given-names></name></person-group> (<year>2003</year>). <source>Neural engineering: Computation, Representation, and Dynamics in Neurobiological Systems</source>. <publisher-loc>Cambridge, MA; London</publisher-loc>: <publisher-name>MIT Press</publisher-name>. <pub-id pub-id-type="pmid">21573688</pub-id></citation></ref>
<ref id="B10">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Frascaroli</surname> <given-names>J.</given-names></name> <name><surname>Brivio</surname> <given-names>S.</given-names></name> <name><surname>Covi</surname> <given-names>E.</given-names></name> <name><surname>Spiga</surname> <given-names>S.</given-names></name></person-group> (<year>2018</year>). <article-title>Evidence of soft bound behaviour in analogue memristive devices for neuromorphic computing</article-title>. <source>Sci. Rep</source>. <volume>8</volume>:<fpage>7178</fpage>. <pub-id pub-id-type="doi">10.1038/s41598-018-25376-x</pub-id><pub-id pub-id-type="pmid">29740004</pub-id></citation></ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Furber</surname> <given-names>S. B.</given-names></name> <name><surname>Galluppi</surname> <given-names>F.</given-names></name> <name><surname>Temple</surname> <given-names>S.</given-names></name> <name><surname>Plana</surname> <given-names>L. A.</given-names></name></person-group> (<year>2014</year>). <article-title>The SpiNNaker project</article-title>. <source>Proc. IEEE</source> <volume>102</volume>, <fpage>652</fpage>&#x02013;<lpage>665</lpage>. <pub-id pub-id-type="doi">10.1109/JPROC.2014.2304638</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Goossens</surname> <given-names>A. S.</given-names></name> <name><surname>Das</surname> <given-names>A.</given-names></name> <name><surname>Banerjee</surname> <given-names>T.</given-names></name></person-group> (<year>2018</year>). <article-title>Electric field driven memristive behavior at the Schottky interface of Nb-doped SrTiO<sub>3</sub></article-title>. <source>J. Appl. Phys</source>. <volume>124</volume>:<fpage>152102</fpage>. <pub-id pub-id-type="doi">10.1063/1.5037965</pub-id></citation></ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hill</surname> <given-names>L. B.</given-names></name> <name><surname>Rejall</surname> <given-names>A. E.</given-names></name> <name><surname>Thorndike</surname> <given-names>E. L.</given-names></name></person-group> (<year>1991</year>). <article-title>Practice in the case of typewriting</article-title>. <source>J. Genet. Psychol</source>. <volume>152</volume>, <fpage>448</fpage>&#x02013;<lpage>461</lpage>. <pub-id pub-id-type="doi">10.1080/00221325.1991.9914706</pub-id></citation></ref>
<ref id="B14">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hu</surname> <given-names>M.</given-names></name> <name><surname>Li</surname> <given-names>H.</given-names></name> <name><surname>Chen</surname> <given-names>Y.</given-names></name> <name><surname>Wu</surname> <given-names>Q.</given-names></name> <name><surname>Rose</surname> <given-names>G. S.</given-names></name> <name><surname>Linderman</surname> <given-names>R. W.</given-names></name></person-group> (<year>2014</year>). <article-title>Memristor crossbar-based neuromorphic computing system: a case study</article-title>. <source>IEEE Trans. Neural Netw. Learn. Syst</source>. <volume>25</volume>, <fpage>1864</fpage>&#x02013;<lpage>1878</lpage>. <pub-id pub-id-type="doi">10.1109/TNNLS.2013.2296777</pub-id><pub-id pub-id-type="pmid">25291739</pub-id></citation></ref>
<ref id="B15">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hu</surname> <given-names>P.</given-names></name> <name><surname>Wu</surname> <given-names>S.</given-names></name> <name><surname>Li</surname> <given-names>S.</given-names></name></person-group> (<year>2018</year>). <article-title>Synaptic behavior in metal oxide-based memristors</article-title>, in <source>Advances in Memristor Neural Networks-Modeling and Applications</source> (<publisher-loc>London</publisher-loc>: <publisher-name>IntechOpen</publisher-name>). <pub-id pub-id-type="doi">10.5772/intechopen.78408</pub-id></citation></ref>
<ref id="B16">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jang</surname> <given-names>J. T.</given-names></name> <name><surname>Ko</surname> <given-names>D.</given-names></name> <name><surname>Ahn</surname> <given-names>G.</given-names></name> <name><surname>Yu</surname> <given-names>H. R.</given-names></name> <name><surname>Jung</surname> <given-names>H.</given-names></name> <name><surname>Kim</surname> <given-names>Y. S.</given-names></name> <etal/></person-group>. (<year>2018</year>). <article-title>Effect of oxygen content of the LaAlO<sub>3</sub> layer on the synaptic behavior of Pt/LaAlO<sub>3</sub>/Nb-doped SrTiO<sub>3</sub> memristors for neuromorphic applications</article-title>. <source>Solid State Electron</source>. <volume>140</volume>, <fpage>139</fpage>&#x02013;<lpage>143</lpage>. <pub-id pub-id-type="doi">10.1016/j.sse.2017.10.032</pub-id></citation></ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>G. S.</given-names></name> <name><surname>Song</surname> <given-names>H.</given-names></name> <name><surname>Lee</surname> <given-names>Y. K.</given-names></name> <name><surname>Kim</surname> <given-names>J. H.</given-names></name> <name><surname>Kim</surname> <given-names>W.</given-names></name> <name><surname>Park</surname> <given-names>T. H.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>Defect-engineered electroforming-free analog HfO<sub><italic>x</italic></sub> memristor and its application to the neural network</article-title>. <source>ACS Appl. Mater. Interfaces</source> <volume>11</volume>, <fpage>47063</fpage>&#x02013;<lpage>47072</lpage>. <pub-id pub-id-type="doi">10.1021/acsami.9b16499</pub-id><pub-id pub-id-type="pmid">31741373</pub-id></citation></ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>M. K.</given-names></name> <name><surname>Lee</surname> <given-names>J. S.</given-names></name></person-group> (<year>2019</year>). <article-title>Ferroelectric analog synaptic transistors</article-title>. <source>Nano Lett</source>. <volume>19</volume>, <fpage>2044</fpage>&#x02013;<lpage>2050</lpage>. <pub-id pub-id-type="doi">10.1021/acs.nanolett.9b00180</pub-id><pub-id pub-id-type="pmid">30698976</pub-id></citation></ref>
<ref id="B19">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>S.</given-names></name> <name><surname>Du</surname> <given-names>C.</given-names></name> <name><surname>Sheridan</surname> <given-names>P.</given-names></name> <name><surname>Ma</surname> <given-names>W.</given-names></name> <name><surname>Choi</surname> <given-names>S.</given-names></name> <name><surname>Lu</surname> <given-names>W. D.</given-names></name></person-group> (<year>2015</year>). <article-title>Experimental demonstration of a second-order memristor and its ability to biorealistically implement synaptic plasticity</article-title>. <source>Nano Lett</source>. <volume>15</volume>, <fpage>2203</fpage>&#x02013;<lpage>2211</lpage>. <pub-id pub-id-type="doi">10.1021/acs.nanolett.5b00697</pub-id><pub-id pub-id-type="pmid">25710872</pub-id></citation></ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kirkpatrick</surname> <given-names>S.</given-names></name> <name><surname>Gelatt</surname> <given-names>C. D.</given-names></name> <name><surname>Vecchi</surname> <given-names>M. P.</given-names></name></person-group> (<year>1983</year>). <article-title>Optimization by simulated annealing</article-title>. <source>Science</source> <volume>220</volume>, <fpage>671</fpage>&#x02013;<lpage>680</lpage>. <pub-id pub-id-type="doi">10.1126/science.220.4598.671</pub-id><pub-id pub-id-type="pmid">17813860</pub-id></citation></ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Krishnaprasad</surname> <given-names>A.</given-names></name> <name><surname>Choudhary</surname> <given-names>N.</given-names></name> <name><surname>Das</surname> <given-names>S.</given-names></name> <name><surname>Dev</surname> <given-names>D.</given-names></name> <name><surname>Kalita</surname> <given-names>H.</given-names></name> <name><surname>Chung</surname> <given-names>H.-S.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>Electronic synapses with near-linear weight update using MoS<sub>2</sub>/graphene memristors</article-title>. <source>Appl. Phys. Lett</source>. <volume>115</volume>:<fpage>103104</fpage>. <pub-id pub-id-type="doi">10.1063/1.5108899</pub-id></citation></ref>
<ref id="B22">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kuzum</surname> <given-names>D.</given-names></name> <name><surname>Jeyasingh</surname> <given-names>R. G. D.</given-names></name> <name><surname>Lee</surname> <given-names>B.</given-names></name> <name><surname>Wong</surname> <given-names>H. S. P.</given-names></name></person-group> (<year>2012</year>). <article-title>Nanoelectronic programmable synapses based on phase change materials for brain-inspired computing</article-title>. <source>Nano Lett</source>. <volume>12</volume>, <fpage>2179</fpage>&#x02013;<lpage>2186</lpage>. <pub-id pub-id-type="doi">10.1021/nl201040y</pub-id><pub-id pub-id-type="pmid">21668029</pub-id></citation></ref>
<ref id="B23">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Le Cun</surname> <given-names>Y.</given-names></name></person-group> (<year>1986</year>). <article-title>Learning process in an asymmetric threshold network</article-title>, in <source>Disordered Systems and Biological Organization</source> (<publisher-loc>Berlin; Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>), <fpage>233</fpage>&#x02013;<lpage>240</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-642-82657-3_24</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>Belkin</surname> <given-names>D.</given-names></name> <name><surname>Li</surname> <given-names>Y.</given-names></name> <name><surname>Yan</surname> <given-names>P.</given-names></name> <name><surname>Hu</surname> <given-names>M.</given-names></name> <name><surname>Ge</surname> <given-names>N.</given-names></name> <etal/></person-group>. (<year>2018</year>). <article-title>Efficient and self-adaptive <italic>in-situ</italic> learning in multilayer memristor neural networks</article-title>. <source>Nat. Commun</source>. <volume>9</volume>:<fpage>2385</fpage>. <pub-id pub-id-type="doi">10.1038/s41467-018-04484-2</pub-id><pub-id pub-id-type="pmid">29921923</pub-id></citation></ref>
<ref id="B25">
<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="B26">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Luko&#x00161;evi&#x0010D;ius</surname> <given-names>M.</given-names></name> <name><surname>Jaeger</surname> <given-names>H.</given-names></name></person-group> (<year>2009</year>). <article-title>Reservoir computing approaches to recurrent neural network training</article-title>. <source>Comput. Sci. Rev</source>. <volume>3</volume>, <fpage>127</fpage>&#x02013;<lpage>149</lpage>. <pub-id pub-id-type="doi">10.1016/j.cosrev.2009.03.005</pub-id></citation></ref>
<ref id="B27">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>MacNeil</surname> <given-names>D.</given-names></name> <name><surname>Eliasmith</surname> <given-names>C.</given-names></name></person-group> (<year>2011</year>). <article-title>Fine-tuning and the stability of recurrent neural networks</article-title>. <source>PLoS ONE</source> <volume>6</volume>:<fpage>e22885</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0022885</pub-id><pub-id pub-id-type="pmid">21980334</pub-id></citation></ref>
<ref id="B28">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Midya</surname> <given-names>R.</given-names></name> <name><surname>Wang</surname> <given-names>Z.</given-names></name> <name><surname>Asapu</surname> <given-names>S.</given-names></name> <name><surname>Zhang</surname> <given-names>X.</given-names></name> <name><surname>Rao</surname> <given-names>M.</given-names></name> <name><surname>Song</surname> <given-names>W.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>Reservoir computing using diffusive memristors</article-title>. <source>Adv. Intell. Syst</source>. <volume>1</volume>:<fpage>1900084</fpage>. <pub-id pub-id-type="doi">10.1002/aisy.201900084</pub-id></citation></ref>
<ref id="B29">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mikheev</surname> <given-names>E.</given-names></name> <name><surname>Hoskins</surname> <given-names>B. D.</given-names></name> <name><surname>Strukov</surname> <given-names>D. B.</given-names></name> <name><surname>Stemmer</surname> <given-names>S.</given-names></name></person-group> (<year>2014</year>). <article-title>Resistive switching and its suppression in Pt/Nb:SrTiO<sub>3</sub> junctions</article-title>. <source>Nat. Commun</source>. <volume>5</volume>:<fpage>3990</fpage>. <pub-id pub-id-type="doi">10.1038/ncomms4990</pub-id><pub-id pub-id-type="pmid">24886761</pub-id></citation></ref>
<ref id="B30">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Moon</surname> <given-names>J.</given-names></name> <name><surname>Ma</surname> <given-names>W.</given-names></name> <name><surname>Shin</surname> <given-names>J. H.</given-names></name> <name><surname>Cai</surname> <given-names>F.</given-names></name> <name><surname>Du</surname> <given-names>C.</given-names></name> <name><surname>Lee</surname> <given-names>S. H.</given-names></name> <etal/></person-group>. (<year>2019</year>). <article-title>Temporal data classification and forecasting using a memristor-based reservoir computing system</article-title>. <source>Nat. Electron</source>. <volume>2</volume>, <fpage>480</fpage>&#x02013;<lpage>487</lpage>. <pub-id pub-id-type="doi">10.1038/s41928-019-0313-3</pub-id></citation></ref>
<ref id="B31">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Moon</surname> <given-names>K.</given-names></name> <name><surname>Lim</surname> <given-names>S.</given-names></name> <name><surname>Park</surname> <given-names>J.</given-names></name> <name><surname>Sung</surname> <given-names>C.</given-names></name> <name><surname>Oh</surname> <given-names>S.</given-names></name> <name><surname>Woo</surname> <given-names>J.</given-names></name> <etal/></person-group>. (<year>2018</year>). <article-title>RRAM-based synapse devices for neuromorphic systems</article-title>. <source>Faraday Discuss</source>. <volume>213</volume>, <fpage>421</fpage>&#x02013;<lpage>451</lpage>. <pub-id pub-id-type="doi">10.1039/C8FD00127H</pub-id><pub-id pub-id-type="pmid">30426118</pub-id></citation></ref>
<ref id="B32">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mostafa</surname> <given-names>H.</given-names></name> <name><surname>Ramesh</surname> <given-names>V.</given-names></name> <name><surname>Cauwenberghs</surname> <given-names>G.</given-names></name></person-group> (<year>2018</year>). <article-title>Deep supervised learning using local errors</article-title>. <source>Front. Neurosci</source>. <volume>12</volume>:<fpage>608</fpage>. <pub-id pub-id-type="doi">10.3389/fnins.2018.00608</pub-id><pub-id pub-id-type="pmid">30233295</pub-id></citation></ref>
<ref id="B33">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Newell</surname> <given-names>A.</given-names></name> <name><surname>Rosenbloom</surname> <given-names>P. S.</given-names></name></person-group> (<year>1981</year>). <article-title>Mechanisms of skill acquisition and the law of practice</article-title>. <source>Cogn. Skills Acquisit</source>. <volume>1</volume>, <fpage>1</fpage>&#x02013;<lpage>55</lpage>.</citation></ref>
<ref id="B34">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nishitani</surname> <given-names>Y.</given-names></name> <name><surname>Kaneko</surname> <given-names>Y.</given-names></name> <name><surname>Ueda</surname> <given-names>M.</given-names></name> <name><surname>Morie</surname> <given-names>T.</given-names></name> <name><surname>Fujii</surname> <given-names>E.</given-names></name></person-group> (<year>2012</year>). <article-title>Three-terminal ferroelectric synapse device with concurrent learning function for artificial neural networks</article-title>. <source>J. Appl. Phys</source>. <volume>111</volume>:<fpage>124108</fpage>. <pub-id pub-id-type="doi">10.1063/1.4729915</pub-id></citation></ref>
<ref id="B35">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Oh</surname> <given-names>S.</given-names></name> <name><surname>Hwang</surname> <given-names>H.</given-names></name> <name><surname>Yoo</surname> <given-names>I. K.</given-names></name></person-group> (<year>2019</year>). <article-title>Ferroelectric materials for neuromorphic computing</article-title>. <source>APL Mater</source>. <volume>7</volume>:<fpage>091109</fpage>. <pub-id pub-id-type="doi">10.1063/1.5108562</pub-id></citation></ref>
<ref id="B36">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Querlioz</surname> <given-names>D.</given-names></name> <name><surname>Bichler</surname> <given-names>O.</given-names></name> <name><surname>Dollfus</surname> <given-names>P.</given-names></name> <name><surname>Gamrat</surname> <given-names>C.</given-names></name></person-group> (<year>2013</year>). <article-title>Immunity to device variations in a spiking neural network with memristive nanodevices</article-title>. <source>IEEE Trans. Nanotechnol</source>. <volume>12</volume>, <fpage>288</fpage>&#x02013;<lpage>295</lpage>. <pub-id pub-id-type="doi">10.1109/TNANO.2013.2250995</pub-id></citation></ref>
<ref id="B37">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rodenb&#x000FC;cher</surname> <given-names>C.</given-names></name> <name><surname>Speier</surname> <given-names>W.</given-names></name> <name><surname>Bihlmayer</surname> <given-names>G.</given-names></name> <name><surname>Breuer</surname> <given-names>U.</given-names></name> <name><surname>Waser</surname> <given-names>R.</given-names></name> <name><surname>Szot</surname> <given-names>K.</given-names></name></person-group> (<year>2013</year>). <article-title>Cluster-like resistive switching of SrTiO<sub>3</sub>:Nb surface layers</article-title>. <source>New J. Phys</source>. <volume>15</volume>:<fpage>103017</fpage>. <pub-id pub-id-type="doi">10.1088/1367-2630/15/10/103017</pub-id></citation></ref>
<ref id="B38">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sawa</surname> <given-names>A.</given-names></name></person-group> (<year>2008</year>). <article-title>Resistive switching in transition metal oxides</article-title>. <source>Mater. Today</source> <volume>11</volume>, <fpage>28</fpage>&#x02013;<lpage>36</lpage>. <pub-id pub-id-type="doi">10.1016/S1369-7021(08)70119-6</pub-id></citation></ref>
<ref id="B39">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Seo</surname> <given-names>K.</given-names></name> <name><surname>Kim</surname> <given-names>I.</given-names></name> <name><surname>Jung</surname> <given-names>S.</given-names></name> <name><surname>Jo</surname> <given-names>M.</given-names></name> <name><surname>Park</surname> <given-names>S.</given-names></name> <name><surname>Park</surname> <given-names>J.</given-names></name> <etal/></person-group>. (<year>2011</year>). <article-title>Analog memory and spike-timing-dependent plasticity characteristics of a nanoscale titanium oxide bilayer resistive switching device</article-title>. <source>Nanotechnology</source> <volume>22</volume>:<fpage>254023</fpage>. <pub-id pub-id-type="doi">10.1088/0957-4484/22/25/254023</pub-id><pub-id pub-id-type="pmid">21572200</pub-id></citation></ref>
<ref id="B40">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Seong</surname> <given-names>D.</given-names></name> <name><surname>Jo</surname> <given-names>M.</given-names></name> <name><surname>Lee</surname> <given-names>D.</given-names></name> <name><surname>Hwang</surname> <given-names>H.</given-names></name></person-group> (<year>2007</year>). <article-title>HPHA effect on reversible resistive switching of Pt/Nb-doped SrTiO<sub>3</sub> Schottky junction for nonvolatile memory application</article-title>. <source>Electrochem. Solid State Lett</source>. <volume>10</volume>:<fpage>H168</fpage>. <pub-id pub-id-type="doi">10.1149/1.2718396</pub-id></citation></ref>
<ref id="B41">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Serrano-Gotarredona</surname> <given-names>T.</given-names></name> <name><surname>Masquelier</surname> <given-names>T.</given-names></name> <name><surname>Prodromakis</surname> <given-names>T.</given-names></name> <name><surname>Indiveri</surname> <given-names>G.</given-names></name> <name><surname>Linares-Barranco</surname> <given-names>B.</given-names></name></person-group> (<year>2013</year>). <article-title>STDP and STDP variations with memristors for spiking neuromorphic learning systems</article-title>. <source>Front. Neurosci</source>. <volume>7</volume>:<fpage>2</fpage>. <pub-id pub-id-type="doi">10.3389/fnins.2013.00002</pub-id><pub-id pub-id-type="pmid">23423540</pub-id></citation></ref>
<ref id="B42">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Sidler</surname> <given-names>S.</given-names></name> <name><surname>Boybat</surname> <given-names>I.</given-names></name> <name><surname>Shelby</surname> <given-names>R. M.</given-names></name> <name><surname>Narayanan</surname> <given-names>P.</given-names></name> <name><surname>Jang</surname> <given-names>J.</given-names></name> <name><surname>Fumarola</surname> <given-names>A.</given-names></name> <etal/></person-group>. (<year>2016</year>). <article-title>Large-scale neural networks implemented with non-volatile memory as the synaptic weight element: impact of conductance response</article-title>, in <source>2016 46th European Solid-State Device Research Conference (ESSDERC)</source> (<publisher-loc>Lausanne</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>440</fpage>&#x02013;<lpage>443</lpage>. <pub-id pub-id-type="doi">10.1109/ESSDERC.2016.7599680</pub-id></citation></ref>
<ref id="B43">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Sim</surname> <given-names>H.</given-names></name> <name><surname>Choi</surname> <given-names>H.</given-names></name> <name><surname>Chang</surname> <given-names>D. L. M.</given-names></name> <name><surname>Choi</surname> <given-names>D.</given-names></name> <name><surname>Son</surname> <given-names>Y.</given-names></name> <name><surname>Lee</surname> <given-names>E. H.</given-names></name> <etal/></person-group>. (<year>2005</year>). <source>Excellent Resistance Switching Characteristics of Pt/SrTiO<sub>3</sub> Schottky Junction for Multi-bit Nonvolatile Memory Application</source>. <publisher-loc>Washington, DC</publisher-loc>: <publisher-name>Technical Digest-International Electron Devices Meeting, IEDM</publisher-name>.</citation></ref>
<ref id="B44">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Strukov</surname> <given-names>D. B.</given-names></name> <name><surname>Snider</surname> <given-names>G. S.</given-names></name> <name><surname>Stewart</surname> <given-names>D. R.</given-names></name> <name><surname>Williams</surname> <given-names>R. S.</given-names></name></person-group> (<year>2008</year>). <article-title>The missing memristor found</article-title>. <source>Nature</source> <volume>453</volume>, <fpage>80</fpage>&#x02013;<lpage>83</lpage>. <pub-id pub-id-type="doi">10.1038/nature06932</pub-id><pub-id pub-id-type="pmid">18451858</pub-id></citation></ref>
<ref id="B45">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Susaki</surname> <given-names>T.</given-names></name> <name><surname>Kozuka</surname> <given-names>Y.</given-names></name> <name><surname>Tateyama</surname> <given-names>Y.</given-names></name> <name><surname>Hwang</surname> <given-names>H. Y.</given-names></name></person-group> (<year>2007</year>). <article-title>Temperature-dependent polarity reversal in Au/Nb:SrTiO<sub>3</sub> Schottky junctions</article-title>. <source>Phys. Rev. B</source> <volume>76</volume>:<fpage>155110</fpage>. <pub-id pub-id-type="doi">10.1103/PhysRevB.76.155110</pub-id></citation></ref>
<ref id="B46">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Tiotto</surname> <given-names>T. F.</given-names></name> <name><surname>Goossens</surname> <given-names>A. S.</given-names></name> <name><surname>Borst</surname> <given-names>J. P.</given-names></name> <name><surname>Banerjee</surname> <given-names>T.</given-names></name> <name><surname>Taatgen</surname> <given-names>N. A.</given-names></name></person-group> (<year>2020</year>). <article-title>Learning to approximate functions using Nb-doped SrTiO<sub>3</sub> memristors</article-title>. <source>arXiv</source> 2011.02794.</citation></ref>
<ref id="B47">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>L.</given-names></name> <name><surname>Lu</surname> <given-names>S.-R.</given-names></name> <name><surname>Wen</surname> <given-names>J.</given-names></name></person-group> (<year>2017a</year>). <article-title>Recent advances on neuromorphic systems using phase-change materials</article-title>. <source>Nanoscale Res. Lett</source>. <volume>12</volume>:<fpage>347</fpage>. <pub-id pub-id-type="doi">10.1186/s11671-017-2114-9</pub-id><pub-id pub-id-type="pmid">28499334</pub-id></citation></ref>
<ref id="B48">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>W.</given-names></name> <name><surname>Pedretti</surname> <given-names>G.</given-names></name> <name><surname>Milo</surname> <given-names>V.</given-names></name> <name><surname>Carboni</surname> <given-names>R.</given-names></name> <name><surname>Calderoni</surname> <given-names>A.</given-names></name> <name><surname>Ramaswamy</surname> <given-names>N.</given-names></name> <etal/></person-group>. (<year>2018a</year>). <article-title>Computing of temporal information in spiking neural networks with ReRAM synapses</article-title>. <source>Faraday Discuss</source>. <volume>213</volume>, <fpage>453</fpage>&#x02013;<lpage>469</lpage>. <pub-id pub-id-type="doi">10.1039/C8FD00097B</pub-id><pub-id pub-id-type="pmid">30361729</pub-id></citation></ref>
<ref id="B49">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>Z.</given-names></name> <name><surname>Joshi</surname> <given-names>S.</given-names></name> <name><surname>Savel&#x00027;ev</surname> <given-names>S.</given-names></name> <name><surname>Song</surname> <given-names>W.</given-names></name> <name><surname>Midya</surname> <given-names>R.</given-names></name> <name><surname>Li</surname> <given-names>Y.</given-names></name> <etal/></person-group>. (<year>2018b</year>). <article-title>Fully memristive neural networks for pattern classification with unsupervised learning</article-title>. <source>Nat. Electron</source>. <volume>1</volume>, <fpage>137</fpage>&#x02013;<lpage>145</lpage>. <pub-id pub-id-type="doi">10.1038/s41928-018-0023-2</pub-id></citation></ref>
<ref id="B50">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>Z.</given-names></name> <name><surname>Joshi</surname> <given-names>S.</given-names></name> <name><surname>Savel&#x00027;ev</surname> <given-names>S. E.</given-names></name> <name><surname>Jiang</surname> <given-names>H.</given-names></name> <name><surname>Midya</surname> <given-names>R.</given-names></name> <name><surname>Lin</surname> <given-names>P.</given-names></name> <etal/></person-group>. (<year>2017b</year>). <article-title>Memristors with diffusive dynamics as synaptic emulators for neuromorphic computing</article-title>. <source>Nat. Mater</source>. <volume>16</volume>, <fpage>101</fpage>&#x02013;<lpage>108</lpage>. <pub-id pub-id-type="doi">10.1038/nmat4756</pub-id><pub-id pub-id-type="pmid">27669052</pub-id></citation></ref>
<ref id="B51">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xia</surname> <given-names>Q.</given-names></name> <name><surname>Yang</surname> <given-names>J. J.</given-names></name></person-group> (<year>2019</year>). <article-title>Memristive crossbar arrays for brain-inspired computing</article-title>. <source>Nat. Mater</source>. <volume>18</volume>, <fpage>309</fpage>&#x02013;<lpage>323</lpage>. <pub-id pub-id-type="doi">10.1038/s41563-019-0291-x</pub-id></citation></ref>
<ref id="B52">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yin</surname> <given-names>X. B.</given-names></name> <name><surname>Yang</surname> <given-names>R.</given-names></name> <name><surname>Xue</surname> <given-names>K. H.</given-names></name> <name><surname>Tan</surname> <given-names>Z. H.</given-names></name> <name><surname>Zhang</surname> <given-names>X. D.</given-names></name> <name><surname>Miao</surname> <given-names>X. S.</given-names></name> <etal/></person-group>. (<year>2016</year>). <article-title>Mimicking the brain functions of learning, forgetting and explicit/implicit memories with SrTiO<sub>3</sub>-based memristive devices</article-title>. <source>Phys. Chem. Chem. Phys</source>. <volume>18</volume>, <fpage>31796</fpage>&#x02013;<lpage>31802</lpage>. <pub-id pub-id-type="doi">10.1039/C6CP06049H</pub-id><pub-id pub-id-type="pmid">27841389</pub-id></citation></ref>
<ref id="B53">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhao</surname> <given-names>L.</given-names></name> <name><surname>Xu</surname> <given-names>J.</given-names></name> <name><surname>Shang</surname> <given-names>X.</given-names></name> <name><surname>Li</surname> <given-names>X.</given-names></name> <name><surname>Li</surname> <given-names>Q.</given-names></name> <name><surname>Li</surname> <given-names>S.</given-names></name></person-group> (<year>2019</year>). <article-title>Synaptic memory devices from CoO/Nb:SrTiO<sub>3</sub> junction</article-title>. <source>R. Soc. Open Sci</source>. <volume>6</volume>:<fpage>181098</fpage>. <pub-id pub-id-type="doi">10.1098/rsos.181098</pub-id><pub-id pub-id-type="pmid">31183114</pub-id></citation></ref>
</ref-list>
<glossary>
<def-list>
<title>Abbreviations</title>
<def-item><term>LIF</term>
<def><p>leaky integrate-and-fire (neurons)</p></def></def-item>
<def-item><term>mPES</term>
<def><p>memristor prescribed error sensitivity</p></def></def-item>
<def-item><term>MSE</term>
<def><p>mean squared error</p></def></def-item>
<def-item><term>Nb</term>
<def><p>Niobium</p></def></def-item>
<def-item><term>Nb:STO</term>
<def><p>Nb-doped SrTiO<sub>3</sub></p></def></def-item>
<def-item><term>NEF</term>
<def><p>neural engineering framework</p></def></def-item>
<def-item><term>SNN</term>
<def><p>spiking neural network</p></def></def-item>
<def-item><term>SrTiO<sub>3</sub></term>
<def><p>strontium titanate</p></def></def-item>
<def-item><term>&#x003C1;</term>
<def><p>Spearman correlation coefficient.</p></def></def-item>
</def-list>
</glossary>
</back>
</article>