CN110659731B - 一种神经网络训练方法及装置 - Google Patents

一种神经网络训练方法及装置 Download PDF

Info

Publication number
CN110659731B
CN110659731B CN201810702883.9A CN201810702883A CN110659731B CN 110659731 B CN110659731 B CN 110659731B CN 201810702883 A CN201810702883 A CN 201810702883A CN 110659731 B CN110659731 B CN 110659731B
Authority
CN
China
Prior art keywords
weight matrix
neural network
matrix
network training
noise
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
Application number
CN201810702883.9A
Other languages
English (en)
Other versions
CN110659731A (zh
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.)
Tsinghua University
Huawei Technologies Co Ltd
Original Assignee
Tsinghua University
Huawei Technologies Co Ltd
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 Tsinghua University, Huawei Technologies Co Ltd filed Critical Tsinghua University
Priority to CN201810702883.9A priority Critical patent/CN110659731B/zh
Publication of CN110659731A publication Critical patent/CN110659731A/zh
Application granted granted Critical
Publication of CN110659731B publication Critical patent/CN110659731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

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)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Complex Calculations (AREA)

Abstract

本申请实施例公开了一种神经网络训练方法及装置,涉及神经网络领域。能够在保证神经网络精度的情况下,压缩网络模型,减小忆阻器器件噪音对神经网络的准确性的影响。该方法可以包括:将第一权重矩阵中绝对值小于或者等于预设门限的元素进行剪枝操作获取第二权重矩阵;对于第二权重矩阵的每个元素加噪音获取第三权重矩阵;将根据第三权重矩阵进行前向传播的结果与目标值进行比较,获得损失值;根据损失值与第一权重矩阵进行反向传播获取目标权重矩阵;其中第一权重矩阵为预设权重矩阵。

Description

一种神经网络训练方法及装置
技术领域
本申请涉及神经网络领域,尤其涉及一种神经网络训练方法及装置。
背景技术
近年来,神经网络(neural network,NN)计算取得了突破性进展,在图像识别、语言识别、自然语言处理等诸多领域均取得了很高的准确率。然而神经网络需要海量计算资源,传统的通用处理器已经很难满足深度学习的计算需求,设计专用芯片已经成为了一个重要的发展方向。忆阻器具有高密度、非易失、低功耗、存算合一、易于3D等优点,为神经网络芯片设计提供了一种高效的解决方案。忆阻器阵列作为神经网络加速芯片,以加速矩阵乘法运算为主要的设计目标,整个过程在模拟电路下实现,具有速度快,面积小的优点。
但是,忆阻器器件在实际应用中,存在噪音的问题,即设置的忆阻器电导值并不精确的等于所需要的值,而是落在期望值附近的一个分布中。噪声的来源有几个方面,比如,器件本身的特性,模拟计算自身的噪音以及设置忆阻器电导值至期望值过程中的局限性。如何降低忆阻器器件噪声对神经网络的准确性的影响,是亟待解决的问题。
发明内容
本申请实施例提供一种神经网络训练方法及装置,能够在保证神经网络精度的情况下,压缩网络模型,减小忆阻器器件噪音对神经网络的准确性的影响。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供了一种神经网络训练方法及装置。
在一种可能的设计中,该方法可以包括:将第一权重矩阵中绝对值小于或者等于预设门限的元素进行剪枝操作获取第二权重矩阵;对于第二权重矩阵的每个元素加噪音获取第三权重矩阵;将根据第三权重矩阵进行前向传播的结果与目标值进行比较,获得损失值;根据损失值与第一权重矩阵进行反向传播获取目标权重矩阵;其中第一权重矩阵为预设权重矩阵。在该方法中,对权重矩阵进行剪枝操作和加噪音处理,通过剪枝操作改变了神经网络权重分布,使得大部分权重值落在噪音值相对较小的表示区间,从而可以减小神经网络的整体噪音,提升神经网络的准确度。
在一种可能的设计中,设置与第一权重矩阵对应的第一覆盖矩阵,第一覆盖矩阵与第一权重矩阵的维度相同且第一覆盖矩阵为全1矩阵;将第一覆盖矩阵中与第一权重矩阵中被剪枝的元素相同位置的元素进行剪枝操作获取第二覆盖矩阵;将目标权重矩阵与第二覆盖矩阵相乘的结果作为下一次神经网络训练的预设权重矩阵。这样可以保证被剪枝的元素在多次训练过程中保持为0,即保证噪音较大的表示区间被剪枝。
在一种可能的设计中,第二权重矩阵的每个元素对应的噪音的分布为正态分布,正态分布的标准差为:y=-0.0006034*x*x+0.06184*x+0.7240;其中,x表示第二权重矩阵的每个元素的值,y表示正态分布的标准差。
在一种可能的设计中,预设门限是根据剪枝率确定的。
在一种可能的设计中,剪枝操作包括:将需要剪枝的元素设置为0。
相应的,本申请还提供了一种神经网络训练装置,该装置可以实现第一方面所述的神经网络训练方法。例如,该装置可以是神经网络或应用于神经网络中的装置,还可以是其他能够实现上述神经网络训练方法的装置,其可以通过软件、硬件、或者通过硬件执行相应的软件实现上述方法。
在一种可能的设计中,该装置可以包括:剪枝模块、加噪模块、前向传播模块和反向传播模块。其中,剪枝模块用于将第一权重矩阵中绝对值小于或者等于预设门限的元素进行剪枝操作获取第二权重矩阵,其中第一权重矩阵为预设权重矩阵;加噪模块用于对于第二权重矩阵的每个元素加噪音获取第三权重矩阵;前向传播模块用于将根据第三权重矩阵进行前向传播的结果与目标值进行比较,获得损失值;反向传播模块用于根据损失值与第一权重矩阵进行反向传播获取目标权重矩阵。
在一种可能的设计中,该装置还可以包括:设置模块。设置模块用于设置与第一权重矩阵对应的第一覆盖矩阵,其中,第一覆盖矩阵与第一权重矩阵的维度相同且第一覆盖矩阵为全1矩阵;剪枝模块还用于将第一覆盖矩阵中与第一权重矩阵中被剪枝的元素相同位置的元素进行剪枝操作获取第二覆盖矩阵;设置模块还用于将目标权重矩阵与第二覆盖矩阵相乘的结果作为下一次神经网络训练的预设权重矩阵。
在一种可能的设计中,第二权重矩阵的每个元素对应的噪音的分布为正态分布,正态分布的标准差为:y=-0.0006034*x*x+0.06184*x+0.7240;其中,x表示第二权重矩阵的每个元素的值,y表示正态分布的标准差。
在一种可能的设计中,预设门限是根据剪枝率确定的。
在一种可能的设计中,剪枝操作包括:将需要剪枝的元素设置为0。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一方面所述的方法。
本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一方面所述的方法。
本申请还提供了一种芯片系统,该芯片系统中包括处理器,还可以包括存储器,用于实现上述任一方面所述的方法。
上述提供的任一种装置或计算机存储介质或计算机程序产品或芯片系统均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文提供的对应的方法中对应方案的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的技术方案所适用的一种神经网络的示意图;
图2为本申请实施例提供的技术方案所适用的一种神经网络的示意图二;
图3为本申请实施例提供的技术方案所适用的一种神经网络中权重矩阵示意图;
图4为本申请实施例提供的一种神经网络训练方法的示意图;
图5a为本申请实施例提供的技术方案所适用的一种神经网络中权重矩阵示意图二;
图5b为本申请实施例提供的技术方案所适用的一种神经网络中权重矩阵示意图三;
图6为本申请实施例提供的技术方案所适用的一种忆阻器的噪声分布示意图;
图7为本申请实施例提供的技术方案所适用的一种神经网络中权重矩阵示意图四;
图8a为本申请实施例提供的技术方案所适用的一种神经网络中覆盖矩阵示意图;
图8b为本申请实施例提供的技术方案所适用的一种神经网络中覆盖矩阵示意图二;
图9为本申请实施例提供的一种装置的结构示意图;
图10为本申请实施例提供的一种装置的结构示意图二。
具体实施方式
下面结合附图对本申请实施例提供的神经网络训练方法及装置进行详细描述。
神经网络组成单元为神经元,由大量神经元相互连接成网络。神经元之间的连接可以看作带权重的有向边,每个神经元的输出会被神经元之间的连接所加权,然后传递给每个神经元所连到的神经元;而每个神经元接收到的所有输入会被累加起来进行进一步处理,产生神经元的输出。神经网络的建模通常以若干神经元为一层,层与层之间相互连接来构建,如图1所示,是一种链状的神经网络示意图。图1中每一个圆表示一个神经元,每一个箭头表示神经元之间的连接,每个连接均有权重。当然,本申请实施例可以应用于任意形状的神经网络,图1所示链状的神经网络仅为一种示意,不是用于限制本申请提供的神经网络训练方法的应用场景。
示例性的,神经网络中包含n个神经元的层L_n与包含m个神经元的层L_m全相联(即层L_n中每个神经元与层L_m中每个神经元分别连接),层L_n产生的输出经过有权重的连接后输入到层L_m。层L_n产生的输出可以用长度为n的向量V_n表示,连接权重可以表示成矩阵M_(n×m),矩阵大小为n行m列,其中,每个矩阵元素表示一个连接的权重;则加权之后输入到层L_m的向量为M_(n×m)V_n。这样的矩阵向量乘法运算是神经网络最核心的计算。
在神经网络的应用中,矩阵向量乘运算是常见的操作,可以利用忆阻器交叉开关阵列具有的存储和计算在同一个物理位置的特性,用忆阻器交叉开关阵列来进行矩阵向量乘运算来提高神经网络的计算效率。本申请实施例提供的神经网络训练方法可以应用于如图2所示的忆阻器开关阵列,如图2所示,输入向量为不同的电压值V0-Vn,可以表示为向量V,经过忆阻器交叉开关阵列计算后,输出为新的电压值V'0-V'm,可以表示为向量V'。其中,V'=VGRs,向量Rs包括元素
Figure BDA0001714854280000031
其中
Figure BDA0001714854280000032
表示第j列的接地电阻值,图2所示的忆阻器开关阵列的电导值G可以表示为如图3所示的权重矩阵G_((n+1)×(m+1)),为(n+1)行(m+1)列的矩阵,矩阵元素Gij表示第i行第j列的电导值。示例性的,
Figure BDA0001714854280000033
实际应用中,忆阻器器件存在噪音的问题,即设置的忆阻器电导值并不精确的等于所需要的值,而是落在期望值附近的一个分布中。也就是说,权重矩阵G_((n+1)×(m+1))中每个元素Gij的值并不精确的等于需要的忆阻器开关阵列中每个电导值。
该噪音对基于忆阻器的神经网络的表达能力是有负面影响的,为了消除噪音对于实际神经网络性能的影响,可以在神经网络训练时引入噪音,通过将底层器件噪音暴露给软件训练层面,来抵消一部分硬件层面的噪音所带来的精度影响。示例性的,在神经网络的训练过程中,在进行输入与权重矩阵乘运算时,给权重矩阵的每个元素附加一个噪音,该噪音可以为一个正态分布噪音,用于模拟忆阻器器件噪音。这样,可以使得神经网络的训练能够适应有噪音存在的情况,而不仅仅是精确的权重表示。但是,上述方法只能够在一定程度上抵抗噪声,对于实际忆阻器器件上产生的较大噪声,其效果很小,而且没有降低功耗的效果。
本申请实施例提供了一种神经网络训练方法,利用剪枝操作对权重矩阵进行处理来消除噪声。可以在保证神经网络精度的情况下,压缩网络模型,减小噪音的影响,同时能够降低忆阻器器件功耗。执行该神经网络训练方法的可以为神经网络或者神经网络训练装置,该神经网络训练装置可以嵌入该神经网络或者连接在神经网络外部,比如,神经网络训练装置可以是芯片或者芯片系统;神经网络训练装置也可以是一种计算机可读存储介质;神经网络训练装置也可以是一种计算机程序产品;本申请实施例对此不进行限定。
应注意,图1和图2所示的神经网络架构仅用于举例,并非用于限制本申请的技术方案。本领域的技术人员应当明白,在具体实现过程中,神经网络架构还可以是其他的形式,也可以包括其他器件,同时也可根据具体需要来配置忆阻器的数量。
下面对本申请中涉及的部分术语进行解释说明:
1、剪枝操作、剪枝率
在神经网络的权重矩阵中,将一部分元素置为无效的值,即为剪枝操作。在一种实现方式中,可以将需要剪枝的元素设置为零。比如,将权重矩阵中绝对值小于或者等于一定门限的权重值设置为零。
剪枝率用于表示权重矩阵中被剪枝的元素与权重矩阵中总的元素个数的比值。比如,剪枝率为70%,表示将权重矩阵中70%的元素进行剪枝,示例性的,将权重矩阵中70%的元素的值设置为0。
2、本文中的术语“多个”是指两个或两个以上。本文中的术语“第一”和“第二”是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一权重矩阵和第二权重矩阵仅仅是为了区分不同的权重矩阵,并不对其先后顺序进行限定。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例提供一种神经网络训练方法,应用于图1或图2所示的神经网络。如图4所示,该方法可以包括S101-S105:
S101、将第一权重矩阵中绝对值小于或者等于预设门限的元素进行剪枝操作获取第二权重矩阵。
第一权重矩阵为预设权重矩阵,可以将神经网络中需要进行训练的权重矩阵设置为预设权重矩阵。比如,预设权重矩阵可以为图3的权重矩阵G_((n+1)×(m+1))。示例性的,第一权重矩阵可以具体为图5a所示的矩阵。
在一种实现方式中,预设门限可以根据剪枝率来确定。比如,第一权重矩阵中有n×m个元素,将第一权重矩阵中的元素按照绝对值从小到大的顺序进行排序,若剪枝率为70%,则将处于第(n×m)*70%个位置处的元素的绝对值设置为预设门限。
将第一权重矩阵中绝对值小于或者等于预设门限的元素进行剪枝操作。示例性的,图5a所示的权重矩阵中预设门限为1,则将权重矩阵中绝对值小于或者等于1的元素设置为0。剪枝操作后的权重矩阵如图5b所示。
将第一权重矩阵中的元素进行剪枝操作获取到第二权重矩阵,示例性的,第二权重矩阵为图5b所示的矩阵。
S102、对于第二权重矩阵的每个元素加噪音获取第三权重矩阵。
具体的,为第二权重矩阵的每个元素附加一个噪音,该噪音用于模拟忆阻器器件噪音。示例性的,忆阻器器件噪音分布(忆阻器电导值误差分布)如图6所示,图6中横坐标为等级为16的归一化电导值,纵坐标上半部分表示每个等级误差分布,下半部分表示该电导值出现的个数。其中,电导值的等级取决于编程电路或算法设计,例如,目前可以做到128级,且互不重合。由图6可以看出,归一化电导值两头的值(最小的值和最大的值)对应的误差分布的范围小,即误差满足正态分布的情况下,方差小。
在一种实现方式中,第二权重矩阵的每个元素对应的噪音的分布为正态分布,该正态分布的标准差为:y=-0.0006034*x*x+0.06184*x+0.7240;其中,x表示第二权重矩阵的每个元素的值,即忆阻器电导值,y表示正态分布的标准差。
示例性的,对于第二权重矩阵的每个元素加噪音后获取的第三权重矩阵如图7所示,其中图7的ei,j表示的是第i行第j列的元素对应的器件噪音分布值。
进一步的,由图6可以看出,归一化电导值为0对应的器件噪音的方差小,峰值高,也就是说,归一化电导值为0(电导值的绝对值最小)对应的器件噪音小,设置目标电导值的准确度高。在S101中,将第一权重矩阵中绝对值小于或者等于预设门限的元素进行剪枝操作,即可以减弱大噪音对于神经网络的影响。
S103、根据第三权重矩阵进行前向传播。
具体的,将输入与第三权重矩阵进行乘运算,进行前向传播。示例性的,输入可以为图2中的向量V,其中向量V为5维向量,将向量V与图7所示的矩阵进行乘运算,进行前向传播。
S104、将根据第三权重矩阵进行前向传播的结果与目标值进行比较,获得损失值。
示例性的,根据图7所示的矩阵进行前向传播的结果为向量V”,目标值为向量V”’。将V”与V”’进行比较,二者之间的差值即为损失值。
S105、根据损失值与第一权重矩阵进行反向传播获取目标权重矩阵。
具体的,将损失值作为输入进行反向传播,来修正第一权重矩阵中每个元素的值。修正后的权重矩阵即为目标权重矩阵,即完成了一次神经网络训练过程。
在一种实现方式中,可以将每次训练S105中获取到的目标权重矩阵作为下一次训练S101中预设权重矩阵,循环执行S101-S105,多次执行神经网络训练过程,直至损失值小于预设的阈值或者执行神经网络训练的次数达到预设的迭代周期数。
在一种实现方式中,进一步的,该方法还可以包括S106-S107:
S106、设置与第一权重矩阵对应的第一覆盖矩阵。
具体的,可以根据第一权重矩阵设置第一覆盖矩阵,第一覆盖矩阵与第一权重矩阵的维度相同且第一覆盖矩阵为全1矩阵。
示例性的,第一权重矩阵如图5a所示,第一权重矩阵为5行5列的矩阵,则设置第一覆盖矩阵为5行5列的全1矩阵,如图8a所示。
S107、将第一覆盖矩阵进行剪枝操作获取第二覆盖矩阵。
将第一覆盖矩阵中与第一权重矩阵中被剪枝的元素相同位置的元素进行剪枝操作获取第二覆盖矩阵。
示例性的,将如图8a所示的第一覆盖矩阵中与图5a中被剪枝的元素相同位置的元素设置为0,获取到的第二覆盖矩阵如图8b所示。
需要说明的是,本申请实施例不限定S106-S107与S102-S105的先后顺序,即可以先对第二权重矩阵进行处理获取目标权重矩阵,也可以先获取第二覆盖矩阵,其先后顺序不影响本申请实施例效果。
在一种实现方式中,每次训练过程中获取到第二覆盖矩阵之后,可以将在S105中获取到的目标权重矩阵与S107中获取到的第二覆盖矩阵相乘的结果作为下一次神经网络训练的预设权重矩阵,这样可以保证被剪枝的元素在多次训练过程中保持为0,即保证噪音较大的表示区间被剪枝。循环执行S101-S107,多次执行神经网络训练过程,直至损失值小于预设的阈值或者执行神经网络训练的次数达到预设的迭代周期数。
这样,经过多次执行神经网络训练过程,即获得了期望的权重矩阵,该权重矩阵每个元素的值即为训练后图2所示忆阻器开关阵列中忆阻器单个器件的电导值。
本申请实施例提供的神经网络训练方法,通过剪枝操作改变了神经网络权重分布,使得大部分权重值落在电导值较小的表示区间,同时该区间噪音值相对较小,从而可以减小神经网络的整体噪音,提升神经网络的准确度;同时能够压缩网络模型,降低器件功耗。并且,根据剪枝率来确定剪枝操作的预设门限,可以保证神经网络的精度。
示例性的,如表1所示为,针对CNN for CIFAR-10型号的忆阻器器件,每个忆阻器器件设为8-256等级下的进行剪枝操作后与不剪枝的神经网络准确度对比。其中,神经网络准确度为神经网络计算所得的结果值与目标值比较,其中结果值符合目标值的个数与目标值总数的比值。
表1
Figure BDA0001714854280000061
如表2所示为,针对VGG-16型号的忆阻器器件,每个忆阻器器件设为64或128等级下的进行剪枝操作后与不剪枝的神经网络准确度对比。其中,“/”两侧的数据分别表示多次试验下第一位及前五位的准确度数据,表示为“第一位/前五位”,其中,“第一位”表示神经网络的计算结果值就是目标值,“前五位”表示神经网络的计算结果值排名前五的值中包括目标值。
表2
Figure BDA0001714854280000062
由表1和表2两组数据可以看出,在无噪音情况下,剪枝操作会对神经网络的准确度产生负面影响;比如表2中,忆阻器单个器件等级64下,无噪音时,剪枝率0.7神经网络准确度第一位的为65.82,而不进行剪枝的神经网络准确度第一位的为66.99,剪枝操作对神经网络的准确度产生了负面影响。但是在考虑噪音情况下,剪枝操作对于神经网络的准确度有提升的效果,而且忆阻器单个器件等级越小,剪枝操作的有益效果越明显;比如表1中,忆阻器单个器件等级256下,剪枝率0.7的神经网络准确度为83.75,而不进行剪枝的神经网络准确度为83.67,剪枝操作对于神经网络的准确度有提升的效果,提升了0.08;而忆阻器单个器件等级8下,剪枝率0.7的神经网络准确度为73.42,不进行剪枝的神经网络准确度为44.34,剪枝操作对于神经网络的准确度提升了29.08。
在实际的神经网络中,忆阻器器件是存在噪音的,所以表1和表2的数据中,有噪音的情况更接近实际的神经网络。可以看出,在实际的神经网络中,本申请实施例提供的神经网络训练方法可以有效提升神经网络的准确度。
上述主要对本申请实施例提供的方案进行了介绍。可以理解的是,神经网络或神经网络训练装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对神经网络或神经网络训练装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。
图9是本申请实施例提供的装置900的逻辑结构示意图,装置900可以是神经网络或神经网络训练装置,能够实现本申请实施例提供的方法。装置900可以是硬件结构、软件模块、或硬件结构加软件模块。如图9所示,装置900包括剪枝模块901、加噪模块902、前向传播模块903和反向传播模块904。剪枝模块901可以用于执行图4中的S101,和/或用于执行S107,和/或执行本申请中描述的其他步骤。加噪模块902可以用于执行图4中的S102,和/或执行本申请中描述的其他步骤。前向传播模块903可以用于执行图4中的S103和/或S104,和/或执行本申请中描述的其他步骤。反向传播模块904可以用于执行图4中的S105,和/或执行本申请中描述的其他步骤。
结合图9,如图10所示,装置900还可以包括设置模块905,设置模块905可以用于执行S106,和/或执行本申请中描述的其他步骤。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本领域普通技术人员可知,上述方法中的全部或部分步骤可以通过程序指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质如ROM、RAM和光盘等。
本申请实施例还提供一种存储介质,该存储介质可以包括存储器。
上述提供的任一种装置中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (12)

1.一种神经网络训练方法,应用于忆阻器开关阵列,其特征在于,所述方法包括:
获取第一权重矩阵;所述第一权重矩阵的元素Gij为所述忆阻器开关阵列中第i行第j列的忆阻器开关的电导值;
将所述第一权重矩阵中绝对值小于或者等于预设门限的元素进行剪枝操作获取第二权重矩阵;
对于所述第二权重矩阵的每个元素加噪音获取第三权重矩阵;所述第二权重矩阵的第i行第j列元素的噪音为所述忆阻器开关阵列中第i行第j列的忆阻器开关的器件噪音分布值;
根据输入向量与所述第三权重矩阵进行前向传播获取第一向量;所述输入向量为所述忆阻器开关阵列的输入电压向量;
将所述第一向量与目标向量进行比较,获得损失值;
根据所述损失值与所述第一权重矩阵进行反向传播,修正所述第一权重矩阵中每个元素的值,获取目标权重矩阵。
2.根据权利要求1所述的神经网络训练方法,其特征在于,所述方法还包括:
设置与所述第一权重矩阵对应的第一覆盖矩阵,所述第一覆盖矩阵与所述第一权重矩阵的维度相同且所述第一覆盖矩阵为全1矩阵;
将所述第一覆盖矩阵中与所述第一权重矩阵中被剪枝的元素相同位置的元素进行剪枝操作获取第二覆盖矩阵;
将所述目标权重矩阵与所述第二覆盖矩阵相乘的结果作为下一次神经网络训练的预设权重矩阵。
3.根据权利要求1或2所述的神经网络训练方法,其特征在于,所述第二权重矩阵的每个元素对应的噪音的分布为正态分布,所述正态分布的标准差为:
y=-0.0006034*x*x+0.06184*x+0.7240;其中,x表示所述第二权重矩阵的每个元素对应的忆阻器开关的电导值,y表示所述正态分布的标准差。
4.根据权利要求1-3任意一项所述的神经网络训练方法,其特征在于,所述预设门限是根据剪枝率确定的。
5.根据权利要求1-4任意一项所述的神经网络训练方法,其特征在于,所述剪枝操作包括:将需要剪枝的元素设置为0。
6.一种神经网络训练装置,其特征在于,包括:
获取模块,用于获取第一权重矩阵;所述第一权重矩阵的元素Gij为忆阻器开关阵列中第i行第j列的忆阻器开关的电导值;
剪枝模块,用于将所述第一权重矩阵中绝对值小于或者等于预设门限的元素进行剪枝操作获取第二权重矩阵;
加噪模块,用于对于所述第二权重矩阵的每个元素加噪音获取第三权重矩阵;所述第二权重矩阵的第i行第j列元素的噪音为所述忆阻器开关阵列中第i行第j列的忆阻器开关的器件噪音分布值;
前向传播模块,用于根据输入向量与所述第三权重矩阵进行前向传播获取第一向量;所述输入向量为所述忆阻器开关阵列的输入电压向量;
前向传播模块,还用于将所述第一向量与目标向量进行比较,获得损失值;
反向传播模块,用于根据所述损失值与所述第一权重矩阵进行反向传播,修正所述第一权重矩阵中每个元素的值,获取目标权重矩阵。
7.根据权利要求6所述的神经网络训练装置,其特征在于,所述装置还包括设置模块:
所述设置模块,用于设置与所述第一权重矩阵对应的第一覆盖矩阵,所述第一覆盖矩阵与所述第一权重矩阵的维度相同且所述第一覆盖矩阵为全1矩阵;
所述剪枝模块,还用于将所述第一覆盖矩阵中与所述第一权重矩阵中被剪枝的元素相同位置的元素进行剪枝操作获取第二覆盖矩阵;
所述设置模块,还用于将所述目标权重矩阵与所述第二覆盖矩阵相乘的结果作为下一次神经网络训练的预设权重矩阵。
8.根据权利要求6或7所述的神经网络训练装置,其特征在于,所述第二权重矩阵的每个元素对应的噪音的分布为正态分布,所述正态分布的标准差为:
y=-0.0006034*x*x+0.06184*x+0.7240;其中,x表示所述第二权重矩阵的每个元素对应的忆阻器开关的电导值,y表示所述正态分布的标准差。
9.根据权利要求6-8任意一项所述的神经网络训练装置,其特征在于,所述预设门限是根据剪枝率确定的。
10.根据权利要求6-9任意一项所述的神经网络训练装置,其特征在于,所述剪枝操作包括:将需要剪枝的元素设置为0。
11.一种计算机程序产品,包括:至少一个处理器,以及存储器;其特征在于,
所述存储器用于存储计算机程序,使得所述计算机程序被所述至少一个处理器执行时实现如权利要求1-5任意一项所述的神经网络训练方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任意一项所述的神经网络训练方法。
CN201810702883.9A 2018-06-30 2018-06-30 一种神经网络训练方法及装置 Active CN110659731B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810702883.9A CN110659731B (zh) 2018-06-30 2018-06-30 一种神经网络训练方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810702883.9A CN110659731B (zh) 2018-06-30 2018-06-30 一种神经网络训练方法及装置

Publications (2)

Publication Number Publication Date
CN110659731A CN110659731A (zh) 2020-01-07
CN110659731B true CN110659731B (zh) 2022-05-17

Family

ID=69026942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810702883.9A Active CN110659731B (zh) 2018-06-30 2018-06-30 一种神经网络训练方法及装置

Country Status (1)

Country Link
CN (1) CN110659731B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114067157B (zh) * 2021-11-17 2024-03-26 中国人民解放军国防科技大学 基于忆阻器的神经网络优化方法、装置及忆阻器阵列

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997046929A2 (en) * 1996-06-04 1997-12-11 Werbos Paul J 3-brain architecture for an intelligent decision and control system
CN106779068A (zh) * 2016-12-05 2017-05-31 北京深鉴智能科技有限公司 调整人工神经网络的方法和装置
CN107257996A (zh) * 2015-03-26 2017-10-17 英特尔公司 环境敏感自动语音识别的方法和系统
CN107368752A (zh) * 2017-07-25 2017-11-21 北京工商大学 一种基于生成式对抗网络的深度差分隐私保护方法
CN107645393A (zh) * 2016-07-20 2018-01-30 中兴通讯股份有限公司 确定黑盒系统输入输出关联度的方法、装置以及系统
CN107689224A (zh) * 2016-08-22 2018-02-13 北京深鉴科技有限公司 合理使用掩码的深度神经网络压缩方法
CN108009640A (zh) * 2017-12-25 2018-05-08 清华大学 基于忆阻器的神经网络的训练装置及其训练方法
CN109791628A (zh) * 2017-12-29 2019-05-21 清华大学 神经网络模型分块压缩方法、训练方法、计算装置及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997046929A2 (en) * 1996-06-04 1997-12-11 Werbos Paul J 3-brain architecture for an intelligent decision and control system
CN107257996A (zh) * 2015-03-26 2017-10-17 英特尔公司 环境敏感自动语音识别的方法和系统
CN107645393A (zh) * 2016-07-20 2018-01-30 中兴通讯股份有限公司 确定黑盒系统输入输出关联度的方法、装置以及系统
CN107689224A (zh) * 2016-08-22 2018-02-13 北京深鉴科技有限公司 合理使用掩码的深度神经网络压缩方法
CN106779068A (zh) * 2016-12-05 2017-05-31 北京深鉴智能科技有限公司 调整人工神经网络的方法和装置
CN107368752A (zh) * 2017-07-25 2017-11-21 北京工商大学 一种基于生成式对抗网络的深度差分隐私保护方法
CN108009640A (zh) * 2017-12-25 2018-05-08 清华大学 基于忆阻器的神经网络的训练装置及其训练方法
CN109791628A (zh) * 2017-12-29 2019-05-21 清华大学 神经网络模型分块压缩方法、训练方法、计算装置及系统

Also Published As

Publication number Publication date
CN110659731A (zh) 2020-01-07

Similar Documents

Publication Publication Date Title
US11907831B2 (en) Analog neuromorphic circuit implemented using resistive memories
US11645529B2 (en) Sparsifying neural network models
US11409438B2 (en) Peripheral circuit and system supporting RRAM-based neural network training
KR20190035556A (ko) 신경 네트워크의 파라미터들을 적응시키기 위한 방법 및 장치
CN107766935B (zh) 多层人造神经网络
CN109145342B (zh) 自动布线系统及方法
CN209231976U (zh) 一种可重构神经网络算法的加速装置
CN108304926B (zh) 一种适用于神经网络的池化计算装置及方法
CN111563589A (zh) 一种神经网络模型的量化方法及装置
CN110163350A (zh) 一种计算装置及方法
CN110647974A (zh) 深度神经网络中的网络层运算方法及装置
Gopalakrishnan et al. Hfnet: A cnn architecture co-designed for neuromorphic hardware with a crossbar array of synapses
CN111461335A (zh) 基于mpi多进程的含噪声单量子逻辑门实现方法及装置
CN108320019B (zh) 用于深度卷积神经网络的卷积计算方法及装置
CN110659731B (zh) 一种神经网络训练方法及装置
KR102432809B1 (ko) 자원 효율적 추론을 위한 인공 신경망 장치
CN109711543B (zh) 一种可重构的深度置信网络实现系统
WO2023050807A1 (zh) 一种数据处理方法、装置、系统、电子设备及存储介质
CN115983366A (zh) 面向联邦学习的模型剪枝方法及系统
Yang et al. APQ: Automated DNN pruning and quantization for ReRAM-based accelerators
KR20220061835A (ko) 하드웨어 가속 장치 및 방법
CN115699028A (zh) 模拟人工智能网络推理的逐行卷积神经网络映射的高效瓦片映射
Oniga et al. FPGA implementation of feed-forward neural networks for smart devices development
CN112651492A (zh) 一种自连接宽度图卷积神经网络模型及其训练方法
Liou et al. Ambiguous binary representation in multilayer neural networks

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