CN114819128B - 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置 - Google Patents
基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置 Download PDFInfo
- Publication number
- CN114819128B CN114819128B CN202210497666.7A CN202210497666A CN114819128B CN 114819128 B CN114819128 B CN 114819128B CN 202210497666 A CN202210497666 A CN 202210497666A CN 114819128 B CN114819128 B CN 114819128B
- Authority
- CN
- China
- Prior art keywords
- weight
- neural network
- memristor
- bayesian neural
- memristor array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Micromachines (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
一种基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置。忆阻器阵列包括多个忆阻器,贝叶斯神经网络的经训练得到的权重矩阵被映射至忆阻器阵列中,该方法包括:对于被映射后的忆阻器阵列,获得当前忆阻器阵列的多个忆阻器的电导态;获取对于贝叶斯神经网络的权重矩阵的每个权重的多个权重采样样本,并使用忆阻器阵列进行多次前向传播以得到多个输出结果;基于每个权重的多个权重采样样本和多个输出结果,获取贝叶斯神经网络的损失函数的损失值;对损失函数进行反向传播,得到忆阻器阵列中用于贝叶斯神经网络的权重矩阵的每个权重的忆阻器的电导态的梯度;根据梯度更新忆阻器阵列中用于贝叶斯神经网络的权重矩阵的忆阻器的电导态。
Description
技术领域
本公开的实施例涉及一种基于忆阻器阵列的贝叶斯神经网络的变分推理方法和变分推理装置。
背景技术
变分推理是一种确定式的(deterministic)近似推理(approximate inference)方法。近似推理简单地说是一种用来近似一个计算复杂的分布或者至少获得目标分布的一些统计量(statistics)的方法。在贝叶斯统计中,所有的对于未知量的推断问题可以看作是对后验概率(posterior)的计算,而这一概率通常难以计算,可以利用马尔科夫链蒙特卡洛算法做近似,但是对于大量数据,马尔科夫链蒙特卡洛算法计算较慢,变分推理为人们提供了一种更快更简单的适用于大量数据的近似推理方法。
发明内容
本公开至少一个实施例提供一种基于忆阻器阵列的贝叶斯神经网络的变分推理方法,忆阻器阵列包括阵列排布的多个忆阻器,贝叶斯神经网络的经训练得到的权重矩阵被映射至忆阻器阵列中,该方法包括:对于根据贝叶斯神经网络的权重矩阵被映射后的忆阻器阵列,获得当前忆阻器阵列的多个忆阻器的电导态;获取对于贝叶斯神经网络的权重矩阵的每个权重的多个权重采样样本,并使用忆阻器阵列进行多次前向传播以得到多个输出结果;基于每个权重的多个权重采样样本和多个输出结果,获取贝叶斯神经网络的损失函数的损失值;对损失函数进行反向传播,得到忆阻器阵列中用于贝叶斯神经网络的权重矩阵的每个权重的忆阻器的电导态的梯度;根据梯度更新忆阻器阵列中用于贝叶斯神经网络的权重矩阵的忆阻器的电导态。
例如,本公开至少一个实施例提供的变分推理方法,还包括:响应于需要继续训练,则使用忆阻器阵列的用于贝叶斯神经网络的权重矩阵的忆阻器更新后的电导态继续训练,否则停止训练。
例如,在本公开至少一个实施例提供的变分推理方法中,在忆阻器阵列中利用N个忆阻器对应贝叶斯神经网络中层与层之间的权重矩阵的每个权重,N为大于或等于2的整数,每个权重的多个权重采样样本中的每个权重采样样本为offset和scale均为超参数,Currentn为对N个忆阻器中的第n个忆阻器进行读采样获得的电流值,1≤n≤N。
例如,在本公开至少一个实施例提供的变分推理方法中,在忆阻器阵列中利用N个忆阻器对应贝叶斯神经网络中层与层之间的权重矩阵的每个权重,包括:对每个权重使用N个忆阻器实现与权重对应的分布,针对权重的对应的随机概率分布,计算得到N个电导值,将N个电导值分别映射到N个忆阻器中。
例如,在本公开至少一个实施例提供的变分推理方法中,对目标忆阻器进行读采样获得的电流值服从以目标忆阻器的电导态θ为均值且尺度因子为S的概率分布。
例如,在本公开至少一个实施例提供的变分推理方法中,损失函数包括KL损失项和似然损失项,由每个权重的多个权重采样样本得到KL损失项,以及由多个输出结果计算得到似然损失项。
例如,在本公开至少一个实施例提供的变分推理方法中,通过计算每个权重的多个权重采样样本的均值和标准差来计算KL损失项。
例如,在本公开至少一个实施例提供的变分推理方法中,损失函数的表达为:F(D,θ)=KL[q(w|θ)||P(w)]-Eq(w|θ)[logP(D|w)],KL[q(w|θ)||P(w)]为KL损失项,Eq(w|θ)[logP(D|w)]为似然损失项。
本公开至少一个实施例还提供一种基于忆阻器阵列的贝叶斯神经网络的变分推理装置,忆阻器阵列包括阵列排布的多个忆阻器,贝叶斯神经网络的经训练得到的权重矩阵被映射至忆阻器阵列中,该装置包括:获取单元,配置为对于根据贝叶斯神经网络的权重矩阵被映射后的忆阻器阵列,获得当前忆阻器阵列的多个忆阻器的电导态;前向传播单元,配置为获取对于贝叶斯神经网络的每个权重的多个权重采样样本,并使用贝叶斯神经网络进行多次前向传播以得到多个输出结果;计算单元,配置为基于每个权重的多个权重采样样本和多个输出结果,获取贝叶斯神经网络的损失函数;对损失函数进行反向传播,得到忆阻器阵列中用于贝叶斯神经网络每个权重的忆阻器的电导态的梯度;更新单元,配置为根据梯度更新忆阻器阵列中用于贝叶斯神经网络的忆阻器的电导态。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了本公开至少一个实施例提供的一种基于忆阻器阵列的贝叶斯神经网络的变分推理方法的示意性流程图;
图2A示出了一种忆阻器阵列的示意性结构;
图2B为一种忆阻器装置的示意图;
图2C为另一种忆阻器装置的示意图;
图2D示出了将贝叶斯神经网络的权重矩阵映射到忆阻器阵列的示意图;
图3示出了本公开至少一个实施例提供的变分推理方法的示意性流程图;
图4示出了本公开至少一个实施例提供的一种基于忆阻器阵列的贝叶斯神经网络的变分推理装置的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
目前基于忆阻器阵列的神经网络的训练学习算法无法与忆阻器的内在非理想特性(例如,器件间波动、器件电导卡滞、电导状态漂移等)相协调。训练这种基于忆阻器的模型的主要方法是基于梯度的学习算法,其中损失度量根据模型的当前参数进行区分。但是,忆阻器的内在随机特性,使得这类训练方法不能提供足够的计算精度,从而使得对于神经网络的训练极具挑战性。此外,在这种确定式的(deterministic)建模方法中,每个参数都由单个值描述,并且不能考虑参数的不确定性。在大多数的人工智能系统中,捕获参数中的不确定性非常重要。概率模型为解决不确定性问题提供了一种方法,这些概率模型使人们能够利用模型的预测做出明智的决定,同时对这些预测的不确定性持谨慎态度。
贝叶斯神经网络(Bayesian Neural Network,BNN)是一种将神经网络置于贝叶斯框架中的概率模型,可以描述复杂的随机模式。为了考虑参数的不确定性,最好能够构建贝叶斯模型。在贝叶斯模型下,参数不是由单个值表示,而是由概率分布表示。给定观测数据,贝叶斯模型所有参数的分布称为后验分布。作为通过基于梯度的更新推导最佳确定性模型的类似物,贝叶斯机器学习的目标是学习后验分布的近似值。为此,发明人在在先的中国专利申请公开CN110956256A中描述了利用忆阻器本征噪声实现贝叶斯神经网络的方法及装置,在此全文引用以作为本申请的一部分。
本公开至少一个实施例提供一种基于忆阻器阵列的贝叶斯神经网络的变分推理方法,忆阻器阵列包括阵列排布的多个忆阻器,贝叶斯神经网络的经训练得到的权重矩阵被映射至忆阻器阵列中,该方法包括:对于根据贝叶斯神经网络的权重矩阵被映射后的忆阻器阵列,获得当前忆阻器阵列的多个忆阻器的电导态;获取对于贝叶斯神经网络的权重矩阵的每个权重的多个权重采样样本,并使用忆阻器阵列进行多次前向传播以得到多个输出结果;基于每个权重的多个权重采样样本和多个输出结果,获取贝叶斯神经网络的损失函数的损失值;对损失函数进行反向传播,得到忆阻器阵列中用于贝叶斯神经网络的权重矩阵的每个权重的忆阻器的电导态的梯度;根据梯度更新忆阻器阵列中用于贝叶斯神经网络的权重矩阵的忆阻器的电导态。
本公开的上述实施例提供的变分推理方法利用忆阻器的随机特性,学习后验分布的近似值,使得在贝叶斯框架下的神经网络具有不确定性估计的能力,提高了训练学习算法的计算精度。
本公开至少一个实施例还提供了一种对应于上述变分推理方法的变分推理装置。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
首先说明提出本公开实施例的变分推理方法的整体构思。
给定训练数据D的权重w的后验分布为P(W|D)可以通过贝叶斯神经网络推断计算。通过在权重的后验分布下取期望可以得到一个测试数据的未知标签均预测分布:
对于每个可能的权重w,根据后验分布P(w|D)进行加权,从而实现对给定测试数据的未知标签进行预测。因此,在权重w的后验分布下取期望等价于使用一个无限数量的神经网络的集合。这对于任何实际规模的神经网络都是棘手的。但是,可以用变分的方法来近似贝叶斯神经网络的权重的后验分布。变分学习是寻找贝叶斯神经网络的权重的分布q(w|θ)的参数θ,使得这个分布与真实的后验分布之间的KL(Kullback-Leibler)散度最小。KL散度又被称为相对熵或信息散度,是两个概率分布间差异的非对称性度量。此处,参数θ是忆阻器的电导态(例如,呈现拉普拉斯分布)的均值参数,也即是寻找忆阻器的电导态θ使得KL散度最小,即:
成本函数也被称为变分自由能或预期下界,将其记为:
F(D,θ)=KL[q(w|θ)||P(w)]-Eq(w|θ)[logP(D|w)] (1)
式(1)中的成本函数是一个依赖于数据的项(似然成本)和一个依赖先验的项(复杂度成本)的加和,因此,它体现出在满足数据的复杂性和满足先验的简单性之间的权衡。精确地计算出这个成本函数的最小值是不可能的,而是用梯度下降或一些近似方法来进行计算。在一定条件下,期望的导数可以表示为导数的期望,式(1)可以写为:
对于使用忆阻器阵列来映射神经网络的情形,可以使用忆阻器的读噪声采样来估计期望,这样就可以把求期望的梯度问题转化为求梯度之后用忆阻器的读噪声采样求解,得到了类似向后传播的基于忆阻器阵列的贝叶斯神经网络的变分推断算法。在式(2)中,w(i)表示第i次根据后验分布q(w(i)|θ)的忆阻器的权重的采样值。这样就可以用式(1)的成本函数的梯度的无偏估计来找到忆阻器的电导态θ。
根据上述构思,发明人提出了本公开实施例的基于忆阻器阵列的贝叶斯神经网络的变分推理方法。
图1示出了本公开至少一个实施例提供的一种基于忆阻器阵列的贝叶斯神经网络的变分推理方法的示意性流程图。
例如,忆阻器阵列包括阵列排布的多个忆阻器;例如,贝叶斯神经网络的经训练得到的权重矩阵被映射至忆阻器阵列中。
例如,贝叶斯神经网络的结构包括全连接结构或卷积神经网络结构等。该贝叶斯神经网络的每个权重是随机变量。例如,在该贝叶斯神经网络经训练完成后,每一个权重都是一个分布,例如高斯分布或者拉普拉斯分布。
例如,可以对贝叶斯神经网络进行离线(offline)训练得到权重矩阵,对贝叶斯神经网络进行训练的方法可以参考常规方法,例如可以采用中央处理单元(CPU)、图像处理单元(GPU)、神经网络处理单元(NPU)、神经网络加速器等进行训练,在此不再赘述。
例如,关于忆阻器阵列的结构可以参考图2A。
图2A示出了一种忆阻器阵列的示意性结构,该忆阻器阵列例如由多个忆阻器单元构成,该多个忆阻器单元构成一个M行N列的阵列,M和N均为正整数。每个忆阻器单元包括开关元件和一个或多个忆阻器。在图2A中,WL<1>、WL<2>......WL<M>分别表示第一行、第二行......第M行的字线,每一行的忆阻器单元电路中的开关元件的控制极(例如晶体管的栅极)和该行对应的字线连接;BL<1>、BL<2>......BL<N>分别表示第一列、第二列......第N列的位线,每列的忆阻器单元电路中的忆阻器和该列对应的位线连接;SL<1>、SL<2>……SL<M>分别表示第一行、第二行……第M行的源线,每一行的忆阻器单元电路中的晶体管的源极和该行对应的源线连接。根据基尔霍夫定律,通过设置忆阻器单元的状态(例如阻值)并且在字线与位线施加相应的字线信号与位线信号,上述忆阻器阵列可以并行地完成乘累加计算。
图2B为一种忆阻器装置的示意图,该忆阻器装置包括忆阻器阵列及其外围驱动电路。例如,如图2B所示,该忆阻器装置包括信号获取装置、字线驱动电路、位线驱动电路、源线驱动电路、忆阻器阵列以及数据输出电路。
例如,信号获取装置配置为将数字信号通过数字模拟转换器(Digital to Analogconverter,简称DAC)转换为多个模拟信号,以输入至忆阻器阵列的多个列信号输入端。
例如,忆阻器阵列包括M条源线、M条字线和N条位线,以及阵列排布为M行N列的多个忆阻器单元。
例如,通过字线驱动电路、位线驱动电路和源线驱动电路实现对于忆阻器阵列的操作。
例如,字线驱动电路包括多个多路选择器(Multiplexer,简称Mux),用于切换字线输入电压;位线驱动电路包括多个多路选择器,用于切换位线输入电压;源线驱动电路也包括多个多路选择器(Mux),用于切换源线输入电压。例如,源线驱动电路还包括多个ADC,用于将模拟信号转换为数字信号。此外,在源线驱动电路中的Mux和ADC之间还可以进一步设置跨阻放大器(Trans-Impedance Amplifier,简称TIA)(图中未示出)以完成电流到电压的转换,以便于ADC处理。
例如,忆阻器阵列包括操作模式和计算模式。当忆阻器阵列处于操作模式时,忆阻器单元处于初始化状态,可以将参数矩阵中的参数元素的数值写入忆阻器阵列中。例如,将忆阻器的源线输入电压、位线输入电压和字线输入电压通过多路选择器切换至对应的预设电压区间。
例如,通过图2B中的字线驱动电路中的多路选择器的控制信号WL_sw[1:M]将字线输入电压切换至相应的电压区间。例如在对忆阻器进行置位操作时,将字线输入电压设置为2V(伏特),例如在对忆阻器进行复位操作时,将字线输入电压设置为5V,例如,字线输入电压可以通过图2B中的电压信号V_WL[1:M]得到。
例如,通过图2B中的源线驱动电路中的多路选择器的控制信号SL_sw[1:M]将源线输入电压切换至相应的电压区间。例如在对忆阻器进行置位操作时,将源线输入电压设置为0V,例如在对忆阻器进行复位操作时,将源线输入电压设置为2V,例如,源线输入电压可以通过图2B中的电压信号V_SL[1:M]得到。
例如,通过图2B中的位线驱动电路中的多路选择器的控制信号BL_sw[1:N]将位线输入电压切换至相应的电压区间。例如在对忆阻器进行置位操作时,将位线输入电压设置为2V,例如在对忆阻器进行复位操作时,将位线输入电压设置为0V,例如,位线输入电压可以通过图2B中DAC得到。
例如,当忆阻器阵列处于计算模式时,忆阻器阵列中的忆阻器处于可用于计算的导电状态,列信号输入端输入的位线输入电压不会改变忆阻器的电导值,例如,可以通过忆阻器阵列执行乘加运算完成计算。例如,通过图2B中的字线驱动电路中的多路选择器的控制信号WL_sw[1:M]将字线输入电压切换至相应的电压区间,例如施加开启信号时,相应行的字线输入电压设置为5V,例如不施加开启信号时,相应行的字线输入电压设置为0V,例如接通GND信号;通过图2B中的源线驱动电路中的多路选择器的控制信号SL_sw[1:M]将源线输入电压切换至相应的电压区间,例如将源线输入电压设置为0V,从而使得多个行信号输出端的电流信号可以流入数据输出电路,通过图2B中的位线驱动电路中的多路选择器的控制信号BL_sw[1:N]将位线输入电压切换至相应的电压区间,例如将位线输入电压设置为0.1V-0.3V,从而利用忆阻器阵列进行乘加运算。
例如,数据输出电路可以包括多个跨阻放大器(TIA)、ADC,可以将多个行信号输出端的电流信号转换为电压信号,而后转换为数字信号,以用于后续处理。
图2C为另一种忆阻器装置的示意图。图2C所示的忆阻器装置与图2B所示的忆阻器装置的结构基本相同,也包括忆阻器阵列及其外围驱动电路。例如,如图2C所示,该忆阻器装置信号获取装置、字线驱动电路、位线驱动电路、源线驱动电路、忆阻器阵列以及数据输出电路。
例如,忆阻器阵列包括M条源线、2M条字线和2N条位线,以及阵列排布为M行N列的多个忆阻器单元。例如,每个忆阻器单元为2T2R结构,通过该2T2R结构可以实现对于正值以及负值的映射。将用于变换处理的参数矩阵映射于忆阻器阵列中不同的多个忆阻器单元的操作,这里不再赘述。需要说明的是,忆阻器阵列也可以包括M条源线、M条字线和2N条位线,以及阵列排布为M行N列的多个忆阻器单元。
关于信号获取装置、控制驱动电路以及数据输出电路的描述可以参照之前的描述,这里不再赘述。
例如,关于将贝叶斯神经网络的权重矩阵映射到忆阻器阵列的过程可以参考图2D。
图2D示出了将贝叶斯神经网络的权重矩阵映射到忆阻器阵列的过程。利用忆阻器阵列实现贝叶斯神经网络中层与层之间的权重矩阵,对每个权重使用N个忆阻器实现与该权重对应的分布,N为大于等于2的整数,针对该权重的对应的随机概率分布,计算得到N个电导值,将该N个电导值分布映射到该N个忆阻器中。如此,将贝叶斯神经网络中的权重矩阵转换为目标电导值映射到忆阻器阵列的交叉序列中。
如图2D所示,图中的左侧是一个三层贝叶斯神经网络,该贝叶斯神经网络包括逐一连接的3层神经元层。例如,输入层包括第1层神经元层,隐含层包括第2层神经元层,输出层包括第3层神经元层。例如,输入层将接收的输入数据传递到隐含层,隐含层对该输入数据进行计算转换发送至输出层,输出层输出贝叶斯神经网络的输出结构。
如图2D所示,输入层、隐含层以及输出层均包括多个神经元节点,各层的神经元节点的个数可以根据不同的应用情况设定。例如,输入层的神经元个数为2(包括N1和N2),中间隐藏层的神经元个数为3(包括N3、N4和N5),输出层的神经元个数为1(包括N6)。
如图2D所示,贝叶斯神经网络的相邻两层神经元层之间通过权重矩阵连接。例如,权重矩阵由如图2D右侧的忆阻器阵列实现。例如,可以将权重参数直接编程为忆阻器阵列的电导。例如,也可以将权重参数按照某一规则映射到忆阻器阵列的电导。例如,也可以利用两个忆阻器的电导的差值来代表一个权重参数。虽然本公开以将权重参数直接编程为忆阻器阵列的电导或将权重参数按照某一规则映射到忆阻器阵列的电导的方式对本公开的技术方案进行了描述,但其仅是示例性的,而不是对本公开的限制。
图2D中的右侧的忆阻器阵列的结构例如如图2A所示,该忆阻器阵列可以包括阵列排布的多个忆阻器。如图2D所示的示例中,连接输入N1与输出N3之间的权重由3个忆阻器(G11、G12、G13)实现,权重矩阵中的其他权重可以相同地实现。更具体而言,源线SL1对应神经元N3,源线SL2对应神经元N4,源线SL5对应神经元N5,位线BL1、BL2和BL3对应神经元N1,输入层和隐藏层之间的一个权重(神经元N1和神经元N3之间的权重)按照分布被转换为三个目标电导值,并分布映射到忆阻器阵列的交叉序列中,这里目标电导值分别为G11、G12和G13,在忆阻器阵列中用虚线框框出。
返回到图1,如图1所示,该变分推理方法包括如下的步骤S101~S105。
步骤S101:对于根据贝叶斯神经网络的权重矩阵被映射后的忆阻器阵列,获得当前忆阻器阵列的多个忆阻器的电导态。
步骤S102:获取对于贝叶斯神经网络的权重矩阵的每个权重的多个权重采样样本,并使用忆阻器阵列进行多次前向传播以得到多个输出结果。
例如,在本公开的一些实施例中,在忆阻器阵列中利用N个忆阻器对应贝叶斯神经网络中层与层之间的权重矩阵的每个权重,N为大于或等于2的整数,每个权重的多个权重采样样本中的每个权重采样样本如下式所示:
其中,Currentn为对N个忆阻器中的第n个忆阻器进行读采样获得的电流值,1≤n≤N,offset和scale均为超参数,scale是尺度超参数,可以改变电流的标准差,offset是偏置超参数,可以改变电流的平均值;scale参数可以被默认设置为scale=1,offset参数可以被默认设置为offset=忆阻器电流窗口的中值*N。对于前述超参数可以在开始训练过程之前设置;如果需要,还可以对这些超参数进行优化,由此得到最优的超参数,以提高学习的性能和效果,是否对这两个超参数的进行改进和优化可以根据具体任务的复杂程度来决定,对此本公开不再赘述。
例如,在本公开的一些实施例中,在忆阻器阵列中利用N个忆阻器对应贝叶斯神经网络中层与层之间的权重矩阵的每个权重可以包括:对每个权重使用N个忆阻器实现与权重对应的分布,针对权重的对应的随机概率分布,计算得到N个电导值,将N个电导值分别映射到N个忆阻器中。
例如,在图2D中,利用3个忆阻器对应输入N1与输出N3之间的权重,该权重按照随机概率分布被转换为三个电导值,这里三个电导值分别为G11、G12和G13,将三个电导值分别映射到3个忆阻器中。对3个忆阻器中的第1个忆阻器进行读采样获得电流值Current1,对3个忆阻器中的第2个忆阻器进行读采样获得电流值Current2,对3个忆阻器中的第3个忆阻器进行读采样获得电流值Currtnt3,通过上述公式获取该权重的多个权重采样样本,并使用忆阻器阵列进行多次前向传播以得到多个输出结果。
需要说明的是,在Currentn可正负的情况下,offset可以为0。Currentn的正负可以由忆阻器阵列的输入信号的正负确定。
对于忆阻器阵列,输入信号为电压信号,输出信号为电流信号,读取输出信号并将输出信号进行模数转换以用于后续处理。例如,对忆阻器阵列中的忆阻器进行读采样获得电流值的过程为:将输入序列以电压脉冲的方式施加在BL(Bit-line,位线)上,然后采集从SL(Source-line,源线)流出的输出电流。例如,对于如图2B或2C所示的忆阻器装置,可以通过DAC将输入序列转换为模拟电压信号,模拟电压信号通过多路选择器施加位线BL上。对应地,从源线SL获取输出电流,该电流可通过跨阻放大器转换成电压信号,通过ADC转换成数字信号,该数字信号可以用于后续处理。N个忆阻器在读电流且N比较大时,输出的总电流呈现一定的分布,例如类似于高斯分布或拉普拉斯分布等分布。所有电压脉冲的输出总电流就是输入向量与权重矩阵相乘的结果。在忆阻器交叉阵列中,这样的一次并行读操作就相当于实现了采样和向量矩阵乘法的两个操作。
例如,在本公开的一些实施例中,对目标忆阻器进行读采样获得的电流值服从以目标忆阻器的电导态θ为均值且尺度因子为S的概率分布。
步骤S103:基于每个权重的多个权重采样样本和多个输出结果,获取贝叶斯神经网络的损失函数的损失值。
损失函数(loss function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在应用中,损失函数通常作为学习准则与优化问题相联系。
例如,在本公开的一些实施例中,损失函数包括KL损失项和似然损失项。例如,损失函数的表达为下式:
F(D,θ)=KL[q(w|θ)||P(w)]-Eq(w|θ)[logP(D|w)],
其中,KL[q(w|θ)||P(w)]为KL损失项,Eq(w|θ)[logP(D|w)]为似然损失项。
例如,在本公开的一些实施例中,由每个权重的多个权重采样样本得到KL损失项,以及由多个输出结果计算得到似然损失项。
例如,在本公开的一些实施例中,通过计算每个权重的多个权重采样样本的均值和标准差来计算KL损失项。
步骤S104:对损失函数进行反向传播,得到忆阻器阵列中用于贝叶斯神经网络的权重矩阵的每个权重的忆阻器的电导态的梯度。
例如,在利用梯度下降法对神经网络的权重等参数进行训练时,需要利用反向传播去计算损失函数对权重的偏导数,从而得到用于贝叶斯神经网络的权重矩阵的每个权重的忆阻器的电导态的梯度。在几何上,沿梯度的方向是函数增加最快的地方,沿梯度的反方向是函数减小最快的地方,更容易找到最小值。
步骤S105:根据梯度更新忆阻器阵列中用于贝叶斯神经网络的权重矩阵的忆阻器的电导态。
当通过反向传播计算出梯度后,梯度就可以用于进行参数更新。通过利用梯度信息,以此不断更新参数(例如,电导态)来寻找使损失函数最小的最优解。在此实施例中,例如,对用于贝叶斯神经网络的权重矩阵的忆阻器的电导态进行更新。进行更新的方法有许多种,最简单的是沿着负梯度方向逐渐改变参数。在本公开的实施例中,可以使用的更新方法例如包括:随机梯度下降方法、动量更新(Momentum Update)方法、自适应梯度(Adagrad)方法、均方根传递(RMSProp)方法、自适应动量(Adam)方法等。
例如,本公开至少一个实施例提供的变分推理方法,还可以包括:响应于需要继续训练,则使用忆阻器阵列的用于贝叶斯神经网络的权重矩阵的忆阻器更新后的电导态继续训练,否则停止训练。
例如,当达到停止条件时停止继续训练以及对电导态的继续更新,否则继续训练以及继续更新电导态。例如,当梯度的模长小于一个预设阈值(例如,预设阈值为1e-4)时,则停止继续训练以及对电导态的继续更新。又例如,设置一个更新次数,当达到该更新次数时,则停止继续训练以及对电导态的继续更新。
图3示出了本公开至少一个实施例提供的变分推理方法的示意性流程图。
如图3所示,首先,对于一个根据贝叶斯神经网络的权重矩阵被映射后的忆阻器阵列,获得该忆阻器阵列的多个忆阻器的电导态θ。然后,对忆阻器进行读采样获得电流值,并根据电流值计算贝叶斯神经网络的权重矩阵的每个权重的多个权重采样样本。然后,通过计算该多个权重采样样本的均值和标准差来计算KL损失项,并使用忆阻器阵列进行多次前向传播以得到多个输出结果,基于多个输出结果计算似然损失项。基于计算出的KL损失项和似然损失项,获取贝叶斯神经网络的损失函数的损失值(损失函数为KL损失项加上似然损失项)。然后,对损失函数进行反向传播,得到忆阻器阵列中用于贝叶斯神经网络的权重矩阵的每个权重的忆阻器的电导态的梯度。最后,根据梯度更新忆阻器阵列中用于贝叶斯神经网络的权重矩阵的忆阻器的电导态。如果没有达到停止条件,则继续训练以及对电导态继续更新,否则停止继续训练以及对电导态的继续更新。
图4示出了本公开至少一个实施例提供的一种基于忆阻器阵列的贝叶斯神经网络的变分推理装置400的示意框图,该变分推理装置400可以用于执行图1所示的变分推理方法。例如,忆阻器阵列包括阵列排布的多个忆阻器,贝叶斯神经网络的经训练得到的权重矩阵被映射至忆阻器阵列中。
如图4所示,变分推理装置400包括获取单元401、前向传播单元402、计算单元403以及更新单元404。
获取单元401被配置为对于根据所述贝叶斯神经网络的权重矩阵被映射后的所述忆阻器阵列,获得当前所述忆阻器阵列的多个忆阻器的电导态。
前向传播单元402被配置为,获取对于贝叶斯神经网络的每个权重的多个权重采样样本,并使用贝叶斯神经网络进行多次前向传播以得到多个输出结果。
计算单元403被配置为,基于每个权重的多个权重采样样本和多个输出结果,获取贝叶斯神经网络的损失函数;对损失函数进行反向传播,得到忆阻器阵列中用于贝叶斯神经网络每个权重的忆阻器的电导态的梯度。
更新单元404被配置为,根据梯度更新忆阻器阵列中用于贝叶斯神经网络的忆阻器的电导态。
例如,上述变分推理装置400可以采用硬件、软件、固件以及它们的任意可行的组合实现,本公开对此不作限制。
在本公开的实施例中,变分推理装置400还可以包括一个或多个忆阻器阵列,用于映射贝叶斯神经网络的权重矩阵。
上述变分推理装置的技术效果与图1所示的变分推理方法的技术效果相同,在此不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种基于忆阻器阵列的贝叶斯神经网络的变分推理方法,所述忆阻器阵列包括阵列排布的多个忆阻器,所述贝叶斯神经网络的经训练得到的权重矩阵被映射至所述忆阻器阵列中,所述方法包括:
对于根据所述贝叶斯神经网络的权重矩阵被映射后的所述忆阻器阵列,获得当前所述忆阻器阵列的多个忆阻器的电导态;
获取对于所述贝叶斯神经网络的权重矩阵的每个权重的多个权重采样样本,并使用所述忆阻器阵列进行多次前向传播以得到多个输出结果;
基于每个权重的所述多个权重采样样本和所述多个输出结果,获取所述贝叶斯神经网络的损失函数的损失值;
对所述损失函数进行反向传播,得到所述忆阻器阵列中用于所述贝叶斯神经网络的权重矩阵的每个权重的忆阻器的电导态的梯度;
根据所述梯度更新所述忆阻器阵列中用于所述贝叶斯神经网络的权重矩阵的忆阻器的电导态。
2.根据权利要求1所述的变分推理方法,还包括:响应于需要继续训练,则使用所述忆阻器阵列的用于所述贝叶斯神经网络的权重矩阵的忆阻器更新后的电导态继续训练,否则停止训练。
3.根据权利要求2所述的变分推理方法,其中,在所述忆阻器阵列中利用N个忆阻器对应所述贝叶斯神经网络中层与层之间的权重矩阵的每个权重,N为大于或等于2的整数,
所述每个权重的所述多个权重采样样本中的每个权重采样样本为
其中,offset和scale均为超参数,Currentn为对N个忆阻器中的第n个忆阻器进行读采样获得的电流值,1≤n≤N。
4.根据权利要求3所述的变分推理方法,其中,在所述忆阻器阵列中利用N个忆阻器对应所述贝叶斯神经网络中层与层之间的权重矩阵的每个权重,包括:
对每个权重使用N个忆阻器实现与所述权重对应的分布,针对所述权重的对应的随机概率分布,计算得到N个电导值,将所述N个电导值分别映射到所述N个忆阻器中。
5.根据权利要求3所述的变分推理方法,其中,对目标忆阻器进行读采样获得的电流值服从以所述目标忆阻器的电导态θ为均值且尺度因子为S的概率分布。
6.根据权利要求1-5中的任一项所述的变分推理方法,其中,所述损失函数包括KL损失项和似然损失项,由每个权重的所述多个权重采样样本得到所述KL损失项,以及由所述多个输出结果计算得到所述似然损失项。
7.根据权利要求6所述的变分推理方法,其中,通过计算每个权重的所述多个权重采样样本的均值和标准差来计算所述KL损失项。
8.根据权利要求7所述的变分推理方法,其中,所述损失函数的表达为:
F(D,θ)=KL[q(w|θ)||P(w)]-Eq(w|θ)[logP(D|w)],
其中,KL[q(w|θ)||P(w)]为所述KL损失项,Eq(w|θ)[logP(D|w)]为所述似然损失项。
9.一种基于忆阻器阵列的贝叶斯神经网络的变分推理装置,所述忆阻器阵列包括阵列排布的多个忆阻器,所述贝叶斯神经网络的经训练得到的权重矩阵被映射至所述忆阻器阵列中,所述装置包括:
获取单元,配置为对于根据所述贝叶斯神经网络的权重矩阵被映射后的所述忆阻器阵列,获得当前所述忆阻器阵列的多个忆阻器的电导态;
前向传播单元,配置为获取对于所述贝叶斯神经网络的每个权重的多个权重采样样本,并使用所述贝叶斯神经网络进行多次前向传播以得到多个输出结果;
计算单元,配置为基于每个权重的所述多个权重采样样本和所述多个输出结果,获取所述贝叶斯神经网络的损失函数;对所述损失函数进行反向传播,得到所述忆阻器阵列中用于所述贝叶斯神经网络每个权重的忆阻器的电导态的梯度;
更新单元,配置为根据所述梯度更新所述忆阻器阵列中用于所述贝叶斯神经网络的忆阻器的电导态。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210497666.7A CN114819128B (zh) | 2022-05-09 | 2022-05-09 | 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置 |
| PCT/CN2023/092447 WO2023217017A1 (zh) | 2022-05-09 | 2023-05-06 | 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210497666.7A CN114819128B (zh) | 2022-05-09 | 2022-05-09 | 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114819128A CN114819128A (zh) | 2022-07-29 |
| CN114819128B true CN114819128B (zh) | 2025-06-03 |
Family
ID=82514021
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210497666.7A Active CN114819128B (zh) | 2022-05-09 | 2022-05-09 | 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN114819128B (zh) |
| WO (1) | WO2023217017A1 (zh) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114819128B (zh) * | 2022-05-09 | 2025-06-03 | 清华大学 | 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置 |
| CN116128035A (zh) * | 2022-11-25 | 2023-05-16 | 清华大学 | 训练方法及装置、电子设备和计算机存储介质 |
| CN115796252B (zh) * | 2022-11-25 | 2025-11-11 | 清华大学 | 权重写入方法及装置、电子设备和存储介质 |
| CN116130046B (zh) * | 2023-03-02 | 2024-03-08 | 广东技术师范大学 | 一种用于血压分级量化的模糊忆阻计算方法及系统 |
| CN117151176B (zh) * | 2023-08-02 | 2025-10-03 | 华中科技大学 | 用于神经网络学习的突触阵列、运算电路及操作方法 |
| CN118193298B (zh) * | 2023-12-29 | 2024-10-22 | 深圳芯瑞华声科技有限公司 | 存算一体化芯片的测试方法、装置、电子设备及存储介质 |
| CN120123634B (zh) * | 2025-02-25 | 2025-11-04 | 华中科技大学 | 一种基于忆阻器阵列的隐马尔可夫模型前向算法分类器及其操控方法 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110956256A (zh) * | 2019-12-09 | 2020-04-03 | 清华大学 | 利用忆阻器本征噪声实现贝叶斯神经网络的方法及装置 |
| CN110991633A (zh) * | 2019-12-04 | 2020-04-10 | 电子科技大学 | 一种基于忆阻网络的残差神经网络模型及其应用方法 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9152827B2 (en) * | 2012-12-19 | 2015-10-06 | The United States Of America As Represented By The Secretary Of The Air Force | Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices |
| WO2020102421A1 (en) * | 2018-11-13 | 2020-05-22 | The Board Of Trustees Of The University Of Illinois | Integrated memory system for high performance bayesian and classical inference of neural networks |
| CN109902801B (zh) * | 2019-01-22 | 2020-11-17 | 华中科技大学 | 一种基于变分推理贝叶斯神经网络的洪水集合预报方法 |
| CN113191402B (zh) * | 2021-04-14 | 2022-05-20 | 华中科技大学 | 基于忆阻器的朴素贝叶斯分类器设计方法、系统及分类器 |
| CN113505887B (zh) * | 2021-09-12 | 2022-01-04 | 浙江大学 | 一种针对忆阻器误差的忆阻器存储器神经网络训练方法 |
| CN114186667B (zh) * | 2021-12-07 | 2024-08-23 | 华中科技大学 | 一种循环神经网络权重矩阵向忆阻阵列的映射方法 |
| CN114819128B (zh) * | 2022-05-09 | 2025-06-03 | 清华大学 | 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置 |
-
2022
- 2022-05-09 CN CN202210497666.7A patent/CN114819128B/zh active Active
-
2023
- 2023-05-06 WO PCT/CN2023/092447 patent/WO2023217017A1/zh not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110991633A (zh) * | 2019-12-04 | 2020-04-10 | 电子科技大学 | 一种基于忆阻网络的残差神经网络模型及其应用方法 |
| CN110956256A (zh) * | 2019-12-09 | 2020-04-03 | 清华大学 | 利用忆阻器本征噪声实现贝叶斯神经网络的方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114819128A (zh) | 2022-07-29 |
| WO2023217017A1 (zh) | 2023-11-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114819128B (zh) | 基于忆阻器阵列的贝叶斯神经网络的变分推理方法和装置 | |
| US11348002B2 (en) | Training of artificial neural networks | |
| JP7711879B2 (ja) | インメモリプロセシングを行う装置、及びそれを含むコンピューティング装置 | |
| JP6995131B2 (ja) | 抵抗型処理ユニットアレイ、抵抗型処理ユニットアレイを形成する方法およびヒステリシス動作のための方法 | |
| CN110796241B (zh) | 基于忆阻器的神经网络的训练方法及其训练装置 | |
| US11386319B2 (en) | Training of artificial neural networks | |
| CN108009640B (zh) | 基于忆阻器的神经网络的训练装置及其训练方法 | |
| JP7427030B2 (ja) | 人工ニューラル・ネットワークのトレーニング方法、装置、プログラム | |
| US11188825B2 (en) | Mixed-precision deep-learning with multi-memristive devices | |
| US20200053299A1 (en) | Image sensor with analog sample and hold circuit control for analog neural networks | |
| WO2018228424A1 (zh) | 一种神经网络训练方法和装置 | |
| US20230113627A1 (en) | Electronic device and method of operating the same | |
| US11556770B2 (en) | Auto weight scaling for RPUs | |
| CN115699028A (zh) | 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射 | |
| US12229680B2 (en) | Neural network accelerators resilient to conductance drift | |
| CN114819093B (zh) | 利用基于忆阻器阵列的环境模型的策略优化方法和装置 | |
| CN115796252B (zh) | 权重写入方法及装置、电子设备和存储介质 | |
| CN114861902B (zh) | 处理单元及其操作方法、计算芯片 | |
| US12417803B2 (en) | Neural network based method and device | |
| WO2023217021A1 (zh) | 基于忆阻器阵列的数据处理方法和数据处理装置 | |
| CN114742218B (zh) | 基于忆阻器阵列的数据处理方法和数据处理装置 | |
| CN117610636A (zh) | 一种存内计算存储器人工神经网络的片上训练方法 | |
| Ghongade et al. | Spiking neural network architectures with memristive synapses for energy-efficient edge intelligence: A hardware-software co-design framework | |
| CN116128035A (zh) | 训练方法及装置、电子设备和计算机存储介质 | |
| CN115796250A (zh) | 权重部署方法及装置、电子设备和存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |