CN117610636A - 一种存内计算存储器人工神经网络的片上训练方法 - Google Patents

一种存内计算存储器人工神经网络的片上训练方法 Download PDF

Info

Publication number
CN117610636A
CN117610636A CN202311579810.2A CN202311579810A CN117610636A CN 117610636 A CN117610636 A CN 117610636A CN 202311579810 A CN202311579810 A CN 202311579810A CN 117610636 A CN117610636 A CN 117610636A
Authority
CN
China
Prior art keywords
memory
weight
random number
neural network
updating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311579810.2A
Other languages
English (en)
Inventor
蔡一茂
高一
王宗巍
喻志臻
黄如
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
North Ic Technology Innovation Center Beijing Co ltd
Peking University
Original Assignee
North Ic Technology Innovation Center Beijing Co ltd
Peking University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by North Ic Technology Innovation Center Beijing Co ltd, Peking University filed Critical North Ic Technology Innovation Center Beijing Co ltd
Priority to CN202311579810.2A priority Critical patent/CN117610636A/zh
Publication of CN117610636A publication Critical patent/CN117610636A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种存内计算存储器人工神经网络的片上训练方法,属于人工神经网络算法优化领域。本发明遵循曼哈顿规则的思路,提出引入基于概率的三值更新规则,将理想经典误差反向传播算法BP算法中的高精度权重更新转化为三值的权重更新,在每个训练批次只对一个器件施加最多一个编程脉冲,减少了操作次数,训练方法收敛快且稳定,训练后识别精度高,对原BP算法改动小,从算法角度超过曼哈顿及阈值‑曼哈顿规则的表现;本发明可以高效实现片上随机梯度下降SGD和小批量梯度下降MBGD,不需要额外存储高精度的权重更新值,减少了额外的硬件开销,优化了推理电路的设计。

Description

一种存内计算存储器人工神经网络的片上训练方法
技术领域
本发明属于人工神经网络算法优化领域,具体涉及一种存内计算存储器人工神经网络的片上训练方法。
背景技术
随着信息化与智能化已经成为世界发展的趋势。以人工神经网络为代表的人工智能在数据分析方面展现出了惊人的潜力,并在各行各业迎来爆发式的增长。经过多年演化,人工神经网络已经由最简单的MP神经元发展成为包括感知机、自组织特征映射、霍普菲尔德网络等神经网络的庞大家族。如今,基于经典的误差反向传播算法,以多层感知机和卷积神经网络为代表的各类深度学习算法在多个领域中发挥着巨大的作用。
人工神经网络算法通过对神经元、突触和人脑神经网络连接结构的高度抽象,利用数学统计方法简化生物大脑的信息处理过程,并模仿训练和推理功能。在人工神经网络中,生物神经元被抽象成了节点,其复杂的整合与发放功能被抽象成了非线性激活函数;而突触被抽象成了连接,其连接强度被抽象成权重。每个神经元节点通过权重与其他神经元节点相连,并将其它神经元的输入通过权重加权、求和,再通过激活函数转化为输出,当人工神经网络对某样本的输出结果和目标输出的误差越小时,对该样本的推理也就越准确,正确识别的样本个数与样本总个数的比值成为衡量一个人工神经网络识别能力的重要指标。
为了提高推理能力及识别率,人工神经网络可以通过训练减小误差。训练过程中需要构造误差函数,并通过经典的误差反向传播算法(BP算法)使权重向着误差函数负梯度方向更新,根据选择样本数量以计算误差函数梯度的不同,可以细分为随机梯度下降(SGD),小批量梯度下降(MBGD),和批量梯度下降(BGD)算法。其中小批量梯度下降算法因兼顾了神经网络的收敛速度和泛化性能,很适合用于CPU或GPU的多核加速。
但是当误差函数较为病态的时候,计算出来的梯度随着训练时快时慢,网络收敛不稳定,权重更新进度容易停留在误差函数梯度较小的鞍点,使得学习停滞。采用曼哈顿学习规则,让权重与梯度分量的符号成比例的更新,限定每个权重更新的幅度,让权重在权重空间内“沿方格运动”,从而有利于算法收敛。进一步优化有已经提出的阈值-曼哈顿规则。
虽然上述提到的两种规则可以帮助提高SGD算法和MBGD算法的学习效率,但仍存在一定的问题:每个批次等效权重更新的平均值相对较小,会造成网络收敛性下降,并最终造成精度损失;上述两种规则对搭建人工神经网络的阻变存储器件的缓变中间状态数有较高要求;此外,在部分应用中需要额外存储高精度的权重更新值,对训练带来额外的硬件压力,特别是片上训练。因此,针对相关领域的优化和改进以提高人工神经网络训练的效率和准确性具有重要意义。
发明内容
针对以上现有技术中存在的问题,本发明提出了一种存内计算存储器人工神经网络的片上训练方法。本发明对基于存内计算存储器的人工神经网络进行更进一步优化:遵循曼哈顿规则的思路,提出引入基于概率的三值更新规则(Probability-Based TernaryLearning,PBTL),将理想经典误差反向传播算法BP算法中的高精度权重更新转化为三值的权重更新,权重更新的概率和方向与BP算法中高精度权重的值和方向对应,提高了片上训练效率和准确性。
本发明的技术方案如下:
一种存内计算存储器人工神经网络的片上训练方法,其特征在于,训练架构包括用来存储权重的存内计算存储器阵列、外围AD/DA电路、用来存储高精度中间参数的缓存结构及用于以特定概率生成随机数的随机数发生器,其在一次权重更新内的具体步骤如下:
1)利用存内计算存储器权重阵列的差分电导Gl+和Gl-计算出高精度的中间参数和/>其中l和l-1表示神经网络的层号,/>是神经网络第l-1层的第i个神经元输出,表示第l层的第j个神经元反向传播的局部误差;
2)将中间参数和/>与随机数发生器生成的随机数比较,生成概率化的三值随机数/>和/>
其中,p是随机数发生器生成的均匀分布随机数,比例系数A、B满足:
其中,sign表示取符号操作,αl是第l层的学习率,dW表示曼哈顿规则下每次权重更新的步长;
3)利用和/>更新权重矩阵/> 是连接第l层的第i个神经元输出/>和第l-1层的第j个神经元输出/>之间的突触权重,/>表示权重/>的变化量:
公式的向量外积形式:
将生成的和/>转化为写入电压信号,分别施加在存内计算存储器权重阵列Gl+和Gl-上进行并行的权重更新,实现基于概率三值的权重更新。
进一步,按照所述的训练方法,将一个批次内每个样本独立生成更新值再将其相加来算出总的权重更新量/>其训练架构额外增加了用来存储三值更新信息的数字存内计算存储器阵列,用于存储正负权重的更新量Gs和Gr,在一批次权重更新前将Gs和Gr均置为高阻态,对于批次内的第k个样本,具体训练步骤如下:
1)利用存内计算存储器权重阵列的差分电导Gl+和Gl-计算出高精度的中间参数和/>
2)将中间参数和/>与随机数发生器生成的随机数比较,生成概率化的三值随机数/>和/>
其中,sign表示取符号操作,p是随机数发生器生成的均匀分布随机数,比例系数A、B满足:
其中,αl是第l层的学习率,dW表示曼哈顿规则下每次权重更新的步长;
3)利用和/>生成针对当前样本的临时权重更新/>
根据生成的调节权重更新矩阵Gs和Gr的电导状态,即将生成的/>和/>转化为写入电压信号,分别施加在存内计算存储器权重阵列Gl+和Gl-上进行权重更新矩阵Gs和Gr的写入,实现基于概率三值的权重更新。
进一步,在一个批次的K个样本都参与计算后,Gs和Gr中所存储的信息就是最终的权重更新信息,当Gs和Gr中的存储值分别为1,0和-1时,分别给对应的权重矩阵施加一次置位/无/复位操作;同时给/>施加复位/无/置位操作,采用逐行写入的方式更新Gl+和Gl-
进一步,所述存内计算存储器为阻变存储器、相变存储器、磁阻存储器或者铁电存储器。
本发明一种存内计算存储器人工神经网络的片上训练方法,遵循曼哈顿规则的思路,提出引入基于概率的三值更新规则,将理想经典误差反向传播算法(BP算法)中的高精度权重更新转化为三值的权重更新,在每个训练批次只对一个器件施加最多一个编程脉冲,减少了操作次数;训练方法收敛快且稳定,训练后识别精度高,对原BP算法改动小,从算法角度超过曼哈顿及阈值-曼哈顿规则的表现;本发明可以高效实现片上随机梯度下降SGD和小批量梯度下降MBGD,不需要额外存储高精度的权重更新值,减少了额外的硬件开销,优化了推理电路的设计。
附图说明
图1为本发明具体实施例中针对随机梯度下降SGD的片上训练架构示意图;
图2为本发明具体实施例中针对随机梯度下降SGD片上训练方法中(a)和/>转化成的电压信号波形图;(b)施加在RRAM上的等效偏压;
图3为本发明具体实施例中针对小批量梯度下降MBGD的片上训练架构示意图;
图4为本发明具体实施例中针对小批量梯度下降MBGD的片上训练方法中(a)和/>转化成的电压信号波形图;(b)施加在RRAM权重更新矩阵Gs上的等效偏压。
具体实施方式
下面结合附图,通过具体实施例,进一步清楚、完整地阐述本发明。
如图1所示为本发明针对随机梯度下降SGD的片上训练架构示意图,以784×200×100×10的小型多层感知机(MLP)的第二层为例,目前的推理电路设计除了核心的RRAM阵列以外(用来存储权重的200×100×2=40000个RRAM器件),需要外围的AD/DA电路若干(AD/DA数量和用法取决于复用程度)以及用来存储高精度中间变量的缓存结构(以16比特为例,用来存储/>的200×16=3600个缓存器件);本发明针对SGD的片上训练架构新增了反向传播需要的AD/DA电路若干(AD/DA数量和推理电流需求一致),用来存储高精度中间变量的缓存结构(以16比特为例,用来存储/>的100×16=1600个缓存器件)以及用于以特定概率生成随机数的随机数发生器若干(随机数发生器的数量和用法取决于概率精度和复用程度)。
本发明针对随机梯度下降SGD的片上训练方法,其在一次权重更新内的步骤如下:
1、利用RRAM权重阵列的差分电导Gl+和Gl-计算出高精度的中间参数和/>
2、将中间参数和/>与随机数发生器生成的随机数比较,生成概率化的三值随机数/>和/>
其中,p是随机数发生器生成的均匀分布随机数,比例系数A、B满足:
其中,sign表示取符号操作,αl是第l层的学习率,dW表示曼哈顿规则下每次权重更新的步长,依据测试器件的有效中间状态数计算得出。
3)利用和/>更新权重矩阵/>
这个公式可以写成向量的外积形式:
将生成的和/>转化为写入电压信号,分别施加在RRAM权重阵列Gl+和Gl-上进行并行的权重更新,实现基于概率三值的权重更新。
如图2中展示了给Gl+阵列施加的电压波形。其中,Vwrite表示使得RRAM缓变以更新权重所要用到的写入电压;而当器件被施加的电压为Vwrite/2的时候,器件阻值变化幅度忽略不计。
如图2(a)所示,分别给出了和/>对应在器件上施加的电压波形,此时施加电压的最大值为Vwrite/2,利用更新权重矩阵公式
进行电压波形叠加施加,得到如图2(b)所示总计四种情况下施加在器件上的电压波形,最大值为两个Vwrite/2叠加得到Vwrite的总电压。因此只有当且/>且/>的时候,对应的电压信号波形最大值为Vwrite,会给器件施加一个正向的Vwrite使器件电导变大,最小值为-Vwrite/2,对器件的影响可以忽略;反之,只有当且/>或/>且/>的时候,会给器件施加一个负向的Vwrite使器件电导变小,正向的Vwrite/2对器件的影响忽略不计。而Gl-阵列施加的电压波形与此理类似但方向相反。
如图3所示为本发明针对小批量梯度下降MBGD的片上训练架构示意图,由于MBGD需要将一个批次内每个单样本独立生成更新值相加,来算出总的权重更新量因此需要额外增加了用来存储三值更新信息的数字RRAM阵列。依然是以784×200×100×10的MLP的第二层为例,需要增加用来存储权重/>的二值RRAM器件200×100×2=40000个(Gs和Gr作为正负权重更新量)。如果需要在同一批次下进行流水作业,那么需要存储多个样本的二值中间变量/>和/>对与第二层而言需要(200+100)×(5+2)×2=4200的缓存。
在一批次权重更新前将Gs和Gr均置为高阻态,对于批次内的第k个样本,具体步骤如下:
1、利用RRAM权重阵列的差分电导Gl+和Gl-计算出高精度的中间参数和/>
2、将中间参数和/>与随机数发生器生成的随机数比较,生成概率化的三值随机数/>和/>
其中,sign表示取符号操作,p是随机数发生器生成的均匀分布随机数,比例系数A、B满足:
其中,αl是第l层的学习率,dW表示曼哈顿规则下每次权重更新的步长,依据测试器件的有效中间状态数计算得出;
3、利用和/>生成针对当前样本的临时权重更新/>
根据生成的调节权重更新矩阵Gs和Gr的电导状态,即将生成的和/>转化为写入电压信号,分别施加在RRAM权重阵列Gl+和Gl-上进行权重更新矩阵Gs和Gr的写入。
图4中展示了给Gs阵列施加的电压波形。其中,Vwrite表示使二值RRAM置位/复位所需要的写入电压;而当器件被施加的电压为Vwrite/2的时候,器件阻值状态不会发生改变。如图4(a)所示,分别给出了和/>对应在器件上施加的电压波形,此时施加电压的最大值为Vwrite/2,利用更新权重矩阵公式
进行电压波形叠加施加,得到如图4(b)所示总计四种情况下施加在器件上的电压波形,最大值为两个Vwrite/2叠加得到Vwrite的总电压。因此只有当且/>或/>且/>的时候,叠加波形的最大值为Vwrite,会给器件施加一个正向的Vwrite使器件置位;其余情况下最大值为Vwrite/2,保持器件阻值不变。而Gr阵列施加的电压波形与此原理类似但方向相反。
在一个批次的K个样本都参与计算后,Gs和Gr中所存储的信息就是最终的权重更新信息,当Gs和Gr中的存储值分别为1,0和-1时,分别给对应的权重矩阵/>施加一次置位/无/复位操作;同时给/>施加复位/无/置位操作。由于不能写成两个向量的外积形式,因此需要采用逐行写入的方式更新Gl+和Gw-
综上所述,本发明提出引入基于概率的三值更新规则(Probability-BasedTernary Learning,PBTL):将理想BP算法中的高精度权重更新转化为三值的权重更新,权重更新的概率和方向与BP算法中高精度权重的值和方向对应。对于单次更新本发明是对理想梯度的粗犷近似,对于多次更新,从统计的角度出发,本发明训练方法引起权重的更新方向将和理想梯度一致。本发明提出引入基于概率的三值更新规则PBTL是进一步面向有限缓变精度问题、针对曼哈顿更新规则的优化,因此一次更新的更新信号仅为1位随机数。
最后,需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (4)

1.一种存内计算存储器人工神经网络的片上训练方法,其特征在于,训练架构包括用于存储权重的存内计算存储器阵列、外围AD/DA电路、用于存储高精度中间参数的缓存结构及用于以特定概率生成随机数的随机数发生器,其在一次权重更新内的具体步骤如下:
1)利用存内计算存储器权重阵列的差分电导Gl+和Gl-计算出高精度的中间参数其中l和l-1表示神经网络的层号,/>是神经网络第l-1层的第i个神经元输出,/>表示第l层的第j个神经元反向传播的局部误差;
2)将中间参数和/>与随机数发生器生成的随机数比较,生成概率化的三值随机数和/>
其中,p是随机数发生器生成的均匀分布随机数,比例系数A、B满足:
其中,sign表示取符号操作,αl是第l层的学习率,dW表示曼哈顿规则下每次权重更新的步长;
3)利用和/>更新权重矩阵/> 是连接第l层的第i个神经元输出/>和第l-1层的第j个神经元输出/>之间的突触权重,/>表示权重/>的变化量:
公式的向量外积形式:
将生成的和/>转化为写入电压信号,分别施加在存内计算存储器权重阵列Gl+和Gl-上进行并行的权重更新,实现基于概率三值的权重更新。
2.如权利要求1所述的一种存内计算存储器人工神经网络的片上训练方法,其特征在于,将一个批次内每个样本独立生成更新值再将其相加来算出总的权重更新量其训练架构额外增加了用于存储三值更新信息的数字存内计算存储器阵列,用于存储正负权重的更新量Gs和Gr,在一批次权重更新前将Gs和Gr均置为高阻态,对于批次内的第k个样本,具体训练步骤如下:
1)利用存内计算存储器权重阵列的差分电导Gl+和Gl-计算出高精度的中间参数
2)将中间参数和/>与随机数发生器生成的随机数比较,生成概率化的三值随机数和/>
其中,sign表示取符号操作,p是随机数发生器生成的均匀分布随机数,比例系数A、B满足:
其中,αl是第l层的学习率,dW表示曼哈顿规则下每次权重更新的步长;
3)利用和/>生成针对当前样本的临时权重更新/>
根据生成的调节权重更新矩阵Gs和Gr的电导状态,即将生成的/>和/>转化为写入电压信号,分别施加在存内计算存储器权重阵列Gl+和Gl-上进行权重更新矩阵Gs和Gr的写入,实现基于概率三值的权重更新。
3.如权利要求2所述的一种存内计算存储器人工神经网络的片上训练方法,其特征在于,在一个批次的K个样本都参与计算后,Gs和Gr中所存储的信息就是最终的权重更新信息,当Gs和Gr中的存储值分别为1,0和-1时,分别给对应的权重矩阵/>施加一次置位/无/复位操作;同时给/>施加复位/无/置位操作,采用逐行写入的方式更新Gl+和Gl-
4.如权利要求1所述的一种存内计算存储器人工神经网络的片上训练方法,其特征在于,所述存内计算存储器为阻变存储器、相变存储器、磁阻存储器或者铁电存储器。
CN202311579810.2A 2023-11-24 2023-11-24 一种存内计算存储器人工神经网络的片上训练方法 Pending CN117610636A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311579810.2A CN117610636A (zh) 2023-11-24 2023-11-24 一种存内计算存储器人工神经网络的片上训练方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311579810.2A CN117610636A (zh) 2023-11-24 2023-11-24 一种存内计算存储器人工神经网络的片上训练方法

Publications (1)

Publication Number Publication Date
CN117610636A true CN117610636A (zh) 2024-02-27

Family

ID=89957466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311579810.2A Pending CN117610636A (zh) 2023-11-24 2023-11-24 一种存内计算存储器人工神经网络的片上训练方法

Country Status (1)

Country Link
CN (1) CN117610636A (zh)

Similar Documents

Publication Publication Date Title
CN111279366B (zh) 人工神经网络的训练
US10740671B2 (en) Convolutional neural networks using resistive processing unit array
US5479579A (en) Cascaded VLSI neural network architecture for on-line learning
WO2018228424A1 (zh) 一种神经网络训练方法和装置
US11531871B2 (en) Stacked neuromorphic devices and neuromorphic computing systems
AU2020274862B2 (en) Training of artificial neural networks
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
CN111507464B (zh) 一种基于忆阻器阵列的方程求解器及其操作方法
Agrawal et al. X-CHANGR: Changing memristive crossbar mapping for mitigating line-resistance induced accuracy degradation in deep neural networks
CN113837371A (zh) 用于实现神经网络的神经形态装置和方法
CN117610636A (zh) 一种存内计算存储器人工神经网络的片上训练方法
US11443171B2 (en) Pulse generation for updating crossbar arrays
Doevenspeck et al. Noise tolerant ternary weight deep neural networks for analog in-memory inference
CN115699028A (zh) 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射
Kendall et al. Deep learning in memristive nanowire networks
Wu et al. Beyond weights adaptation: a new neuron model with trainable activation function and its supervised learning
Zhang et al. Quantization considerations of dense layers in convolutional neural Networks for resistive crossbar implementation
CN116523011B (zh) 基于忆阻的二值神经网络层电路及二值神经网络训练方法
Li Research on the construction method of neural network model based on memristors
KR102672586B1 (ko) 인공신경망의 훈련 방법 및 장치
CN116451761A (zh) 基于忆阻器阵列的循环神经网络的训练方法以及装置
CN116451760A (zh) 基于忆阻器阵列的循环神经网络的训练方法以及装置
CN114186667A (zh) 一种循环神经网络权重矩阵向忆阻阵列的映射方法
Hasan et al. A reconfigurable low power high throughput architecture for deep network training
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