掌桥专利:专业的专利平台
掌桥专利
首页

一种混合式神经网络训练方法、系统、设备及存储介质

文献发布时间:2023-06-19 11:29:13


一种混合式神经网络训练方法、系统、设备及存储介质

技术领域

本发明属于机器学习算法领域,具体涉及一种混合式神经网络训练方法、系统、设备及存储介质。

背景技术

基于新型非易失型存储器件的神经网络计算电路,如基于电阻式随机存取存储器ReRAM的神经网络计算电路,由于采用基于电阻式随机存取存储器ReRAM阵列的存算一体架构,相比于基于传统的CMOS(Complementary Metal-Oxide-Semiconductor)神经网络计算电路,具有更快的计算速度、更高的集成密度、更高的能效等优势。但是,现有的电阻式随机存取存储器ReRAM,即使通过反复的SET/RESET操作(SET指对电阻式随机存取存储器ReRAM施加一个正的写电压脉冲,使器件阻值减小;RESET指对电阻式随机存取存储器ReRAM施加一个负的写电压脉冲,使器件阻值增加。不同的电压脉冲对器件阻值改变的大小不同)写入以及读出并进行验证的方式,其代表网络权重的器件阻值也不能精确地调制到目标值,同时由于目前工艺并不成熟,阵列中存在部分的电阻式随机存取存储器ReRAM的器件阻值不可调(开路/短路故障)、器件阻值随环境温度改变以及电路噪声,网络权重将存在较大的误差,神经网络计算出现较大误差,最终使得神经网络的识别准确率偏低。本申请的发明人在实现本申请的技术方案时发现:通过在神经网络计算电路中引入闭环的神经网络训练算法,通过分析神经网络识别误差,自适应调整神经网络的权值即电阻式随机存取存储器ReRAM的器件阻值,对器件阻值进行自动修正,可有效提高识别准确率。

发明内容

本发明实施例提供了一种合式神经网络训练方法、系统、设备及存储介质,可用于提升神经网络的训练收敛速度,以及提高神经网络的预测准确率。

一方面,本发明实施例提供了一种混合式神经网络训练方法,包括下列步骤:

步骤1,获取待训练的神经网络模型;

步骤2,获取训练数据集,其中训练数据集的各训练数据包括训练样本的数据向量和样本标签,所述训练数据为图像数据或音频数据或文本数据;

步骤3,从训练数据集中读取当前的批数据,所述批数据包括至少一个训练数据;

步骤4,将批数据的各训练样本的数据向量分别输入神经网络模型,进行神经网络的前向推理运算,输出分类任务中每个类别的预测概率,从而得到当前批数据中的各训练样本的预测值;

步骤5,基于预设的损失函数计算当前批数据的训练样本的预测值与样本标签之间的损失值,若损失值大于或等于预设的损失阈值,则执行步骤6和7;否则执行步骤9;

步骤6,基于随机梯度下降法,计算神经模型的各网络层的权重梯度,若所述权重梯度小于预设的梯度阈值,则直接执行步骤9;若所述权重梯度大于或等于预设的梯度阈值,则基于各网络层的权重梯度的正负符号确定对应权重的梯度更新方向;

步骤7,确定当前的权重更新的步进值:

判断权重更新的步进值的更新间隔是否达到预设的间隔阈值,若否,则权重更新的步进值保持不变;若是,则将当前损失值与预设的至少两个损失取值段进行匹配,确定当前损失值所对应的损失取值段,并基于该损失取值段所对应的步进值,确定当前的权重更新的步进值;

步骤8,按照步骤6得到的权重的梯度更新方向和步骤7得到的权重更新的步进值对神经模型的各网络层的权重进行更新:权重的梯度更新方向的符号为正,则权重增加一个步进值,若为负,则权重减小一个步进值,更新完成后执行步骤9;

步骤9,确定是否达到预设的训练结束条件,若是,则训练结束,否则,返回执行步骤3。

在一种可能的实现方式中,步骤9中,所述训练结束条件为:预测准确率达到第一指定值或训练次数达到预设的最大训练次数或当前得到的损失值达到第二指定值。

另一方面,本发明实施例还提供了一种用于基于电阻式随机存取存储器ReRAM的神经网络计算电路的混合式神经网络训练方法,包括下列步骤:

步骤S1,获取待训练的神经网络模型,基于神经网络模型的网络结构确定网络的各层间权重矩阵,随机初始化各权重矩阵的元素,再将各层间权重矩阵存入基于电阻式随机存取存储器ReRAM的神经网络计算电路的权重数据存储单元;

步骤S2,获取训练数据集,其中训练数据集的各训练数据包括训练样本的数据向量和样本标签;

步骤S3,从训练数据集中读取当前的批数据,所述批数据包括至少一个训练数据;

步骤S4,将批数据中的各训练样本的数据向量存入基于电阻式随机存取存储器ReRAM的神经网络计算电路的特征图数据存储单元,基于电阻式随机存取存储器ReRAM的神经网络计算电路的计算单元读取特征图数据存储单元和权重数据存储单元中的数据,进行神经网络的前向推理运算,得到前向推理运算结果并存入基于电阻式随机存取存储器ReRAM的神经网络计算电路的结果数据存储单元中;并基于结果数据存储单元中的前向推理运算结果得到当前批数据中的各训练样本的预测值;

步骤S5,基于预设的损失函数计算当前批数据的训练样本的预测值与样本标签之间的损失值,若损失值大于或等于预设的损失阈值,则执行步骤S6和S7;否则执行步骤S9;

步骤S6,基于随机梯度下降法,计算神经模型的各网络层的权重梯度,若所述权重梯度小于预设的梯度阈值,则直接执行步骤S9;若所述权重梯度大于或等于预设的梯度阈值,则基于各网络层的权重梯度的正负符号确定对应权重的梯度更新方向;

步骤S7,确定当前的权重更新的步进值:

判断权重更新的步进值的更新间隔是否达到预设的间隔阈值,若否,则权重更新的步进值保持不变;若是,则将当前损失值与预设的至少两个损失取值段进行匹配,确定当前损失值所对应的损失取值段,并基于该损失取值段所对应的步进值,确定当前的权重更新的步进值;

步骤S8,基于电阻式随机存取存储器ReRAM的神经网络计算电路的权值更新单元按照步骤S6得到的权重的梯度更新方向和步骤S7得到的权重更新的步进值对权重数据存储单元中的各权重值进行更新,更新完成后执行步骤S9;

其中,权值更新单元对权重数据存储单元中的各权重值进行更新为:若梯度更新方向的符号为正,则执行SET操作;若梯度更新方向的符号为负,则执行RESET操作,其中SET操作或RESET操作执行的次数取决于步进值所对应的器件阻值;

步骤S9,确定是否达到预设的训练结束条件,若是,则训练结束,否则,返回执行步骤S3。

另一方面,本发明实施例还提供了一种混合式神经网络训练系统,包括:第一处理设备和第二处理设备;

其中,第一处理设备包括控制处理单元和和固定步进值选择单元;

第二处理设备包括第一、第二和第三存储单元,以及计算单元和权值更新单元;

所述第一处理设备的控制处理单元,用于:

获取待训练的神经网络模型,并基于神经网络模型的网络结构确定网络的各层间权重矩阵,随机初始化各权重矩阵的元素,再将各层间权重矩阵存入第二处理设备的第一存储单元;

获取训练数据集,其中训练数据集的各训练数据包括训练样本的数据向量和样本标签;

从训练数据集中读取当前的批数据,所述批数据包括至少一个训练数据,并将当前的批数据的各训练样本的数据向量存入第二处理设备的第二存储单元;

所述第二处理设备的计算单元,用于基于批数据中的每个训练样本的数据向量和层间权重矩阵进行神经网络的前向推理运算,得到前向推理运算结果并存入第三存储单元;

所述第一处理设备的控制处理单元还用于:

从第二处理设备的第三存储单元中读取前向推理运算结果,并基于该前向推理运算结果得到训练样本的预测值;

基于预设的损失函数计算当前批数据的训练样本的预测值与样本标签之间的损失值,当损失值小于预设的损失阈值时,执行训练收敛检测;当损失值大于或等于预设的损失阈值时,将损失值发送至固定步进值选择单元,同时基于随机梯度下降法,计算神经模型的各网络层的权重梯度;当权重梯度大于或等于预设的梯度阈值时,则基于各网络层的权重梯度的正负符号确定对应权重的梯度更新方向;当权重梯度小于预设的梯度阈值时,执行训练收敛检测;

所述固定步进值选择单元用于确定当前的权重更新的步进值并发送至第一处理设备的控制处理单元,其中确定当前的权重更新的步进值为:判断权重更新的步进值的更新间隔是否达到预设的间隔阈值,若否,则权重更新的步进值保持不变;若是,则将当前损失值与预设的至少两个损失取值段进行匹配,确定当前损失值所对应的损失取值段,并基于该损失取值段所对应的步进值,确定当前的权重更新的步进值;

第一处理设备的控制处理单元基于当前的权重的梯度更新方向和权重更新的步进值生成权重更新策略并发送至第二处理设备的权值更新单元,所述权重更新策略为:若权重的梯度更新方向的符号为正,则权重增加一个步进值,若权重的梯度更新方向的符号为负,则权重减小一个步进值;

第二处理设备的权值更新单元基于当前收到的权重更新策略对第一存储单元中的层间权重矩阵进行更新,并向第一处理设备的控制处理单元反馈更新完成消息,当收到更新完成消息时,控制处理单元执行训练收敛检测;

所述训练收敛检测为:确定是否达到预设的训练结束条件,若是,则结束训练,否则,继续从训练数据集中读取当前的批数据,并将当前的批数据的各训练样本的数据向量存入第二处理设备的第二存储单元,以使得第二处理设备的计算单元进行下一批次的前向推理运算。

进一步的,所述第二处理设备为基于电阻式随机存取存储器ReRAM的神经网络计算电路,且权值更新单元基于当前收到的权重更新策略对第一存储单元中的层间权重矩阵进行更新的方式为:若梯度更新方向的符号为正,则执行SET操作;若梯度更新方向的符号为负,则执行RESET操作,其中SET操作或RESET操作执行的次数取决于步进值所对应的器件阻值。

另一方面,本发明实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现上述任一所述的混合式神经网络训练方法。

另一方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现上述任一所述的混合式神经网络训练方法。

本发明实施例提供的技术方案至少带来如下有益效果:

本发明实施例所提供的混合式神经网络训练方法,使用基于梯度下降的训练方法的梯度计算方法以及误差传递方法,同时采用训练过程中自适应可变步长的基于曼哈顿规则的训练方法更新网络权重,兼顾网络的预测准确率(如识别准确率等)以及收敛速度,可达到相比于基于曼哈顿的神经网络训练算法的较快收敛速度以及基于随机梯度下降的训练算法的较高准确率。

同时结合随机梯度下降和曼哈顿规则的混合式神经网络训练方法的复杂度低于基于随机梯度下降的训练算法,适合于基于电阻式随机存取存储器ReRAM的神经网络计算电路的在线训练,即本发明实施例所提供的适用于基于电阻式随机存取存储器ReRAM的神经网络计算电路的混合式神经网络训练方法的复杂度低,收敛速度快,且能保证所训练的神经网络的网络预测准确率,更能适用于基于电阻式随机存取存储器ReRAM的神经网络计算电路的在线训练。

本发明实施例所提供的混合式神经网络训练系统,其第一处理设备用于获取待训练的神经网络模型相关信息(权值向量和训练数据向量),以及周期自适应设置对应的步进值和生成神经网络模型的权值更新策略,并通过第二处理设备完成对待训练的神经网络模型的前向传播计算并反馈给第一处理设备生成权值更新策略,从而使得第二处理设备基于该权值更新策略对本地存储的权重进行更新处理,进而实现使用基于梯度下降的训练方法的梯度计算方法以及误差传递方法,同时采用训练过程中自适应可变步长的基于曼哈顿规则的训练方法更新网络权重,兼顾网络的预测准确率(如识别准确率等)以及收敛速度,可达到相比于基于曼哈顿的神经网络训练算法的较快收敛速度以及基于随机梯度下降的训练算法的较高准确率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的混合式神经网络训练方法的处理流程图。

图2为本发明实施例提供的混合式神经网络训练系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。

一般地,神经网络各层参数(权重和偏置)的训练算法包括参数初始化、神经网络前向推理、误差(损失)反向传播、网络权重更新四个步骤。网络权重首先在某一限定分布范围内进行随机初始化,接着输入训练集的一部分数据(批数据,该批数据可以为单个训练样本也可以为多个训练样本),网络完成前向推理,输出每一个类别概率,即得到输入网络的数据向量的预测值(类别预测值),利用特定的损失函数计算预测值和真实标签的误差,误差逐层反向传播,最后根据特定的权重更新的策略来修改网络参数,经过多次的批数据输入、前向推理、反向传播、权重更新的迭代,网络将达到较高的识别准确率。而当需要进行类别识别任务时,再基于训练好的神经网络,输入待识别对象的数据向量(与训练样本的数据向量的获取方式相同),再基于得到的各类别概率,将最大概率所对应的类别作为待识别对象的类别识别结果。

目前有两种常用的神经网络训练算法:基于随机梯度下降的训练算法,采用交叉熵或者均方误差等损失函数,计算出预测值和真实标签的损失值,通过求导的链式法则,对损失进行逐层反向传播,得到神经网络每层的输出值相对于损失值的梯度,再利用每层输出值的梯度对网络各层权重进行求导,精确地算出损失函数值对每层权重的梯度值,得到权重相对当前于损失函数值的最速下降方向,该梯度值乘以学习率得到的变化值,当前权重减去该变化值即完成一次权重更新。而基于曼哈顿规则的训练算法,设定一个固定的权重步进值,在权重更新阶段,仅根据每层权重的梯度值的正负号,当前权重加上或者减去该步进值,完成一次权重迭代。

对于基于随机梯度下降的训练算法,在权重更新阶段,当前权重减去梯度值与学习率的乘积,进行精确的权重更新,收敛速度快,准确率高。但是该算法需要对每层的权重梯度以及权重变化值进行计算,运算量较多,算法复杂度高。另一方面,对于基于电阻式随机存取存储器ReRAM的神经网络计算电路,使用该算法对神经网络的权重进行训练,需要使用写入、读出验证的方式对器件阻值进行反复的调整,由于器件本身由于不成熟的工艺导致的器件与器件间差异性、每次调制的差异性、器件短路断路故障,器件阻值较难调制到目标值,另外多次写验证的器件阻值调制方式,所需时间长,能耗较高。而基于曼哈顿规则的训练算法,根据梯度值的正负号,对当前权重增减固定步长值,对于基于电阻式随机存取存储器ReRAM的神经网络计算电路的器件取值的调制方式为根据梯度正负号,进行单次的SET/RESET操作,不需要再读出器件阻值进行多次写验证操作,复杂度较低,能耗较小。但存在网络预测准确率(如识别准确率等)与收敛速度的矛盾,即训练时间/训练所需样本数量与网络预测准确率的矛盾。在固定步长值的一定范围内,该步进值越大,网络在训练过程中预测准确率上升越快,收敛速度快,但最终的网络预测准确率较低且存在较大波动;缩小该步进值,网络的收敛速度慢,但最终的网络预测准确率较高且波动较小。

本发明实施例提供了的一种混合式神经网络训练方法,在该训练方法中,使用基于梯度下降的训练方法的梯度计算方法以及误差传递方法,同时采用训练过程中自适应可变步长的基于曼哈顿规则的训练方法更新网络权重,兼顾网络的预测准确率(如识别准确率)以及收敛速度,可达到相比于基于曼哈顿的神经网络训练算法的较快收敛速度以及基于随机梯度下降的训练算法的较高准确率,同时本发明实施所提供的结合随机梯度下降和曼哈顿规则的混合式神经网络训练方法的复杂度低于基于随机梯度下降的训练算法,适合于基于电阻式随机存取存储器ReRAM的神经网络计算电路的在线训练。

参见图1,本发明实施例的混合式神经网络训练方法包括下列步骤:

步骤1,获取待训练的神经网络模型;

步骤2,获取训练数据集,其中训练数据集的各训练数据包括训练样本的数据向量和样本标签(即样本的类别标签);

所述训练数据为图像数据、音频数据或文本数据;

步骤3,读取批数据,即从训练数据集中读取当前的批数据,其中,批数据包括的训练样本数取决于预设的批数据大小,即批数据包括至少一个训练数据

步骤4,将批数据中的各训练样本的数据向量分别输入神经网络模型:

即将当前批数据中的各训练样本的数据向量分别输入神经网络模型,以进行神经网络的前向推理运算,输出分类任务中每个类别的预测概率,从而得到当前批数据中的各训练样本的预测值;

步骤5,计算当前批数据的损失值:

基于神经网络模型的输出得到训练样本的预测值,并基于预设的损失函数计算当前批数据的训练样本的预测值与样本标签之间的损失值L,若损失值大于或等于预设的损失阈值L

步骤6,计算权重梯度,若大于权重或等于梯度阈值则确定权重的梯度更新方向:

基于随机梯度下降法,计算神经模型的各网络层的权重梯度dw,若所述权重梯度dw大于或等于预设的梯度阈值△w

步骤7,确定当前的权重更新的步进值:

判断权重更新的步进值的更新间隔是否达到预设的间隔阈值,若否,则权重更新的步进值保持不变;若是,则将当前损失值L与预设的至少两个损失取值段进行匹配,确定的当前损失值L所对应的损失取值段,并基于损失取值段所对应的步进值,确定当前的权重更新的步进值;

步骤8,对神经模型的各网络层的权重进行更新:

按照步骤6确定的权重的梯度更新方向和步骤7确定的权重更新的步进值对神经模型的各网络层的权重进行更新,若权重的梯度更新方向的符号为正,则权重增加一个步进值,若为负,则权重减小一个步进值,更新完成后执行步骤9;

步骤9,确定是否达到预设的训练结束条件(即判断网络是否收敛),若是,则训练结束,否则,返回执行步骤3。

需要说明的是,本发明实施例对神经网络模型的具体网络结构不做限定,可以是用于指定对象的分类任务,则对应的神经网络模型输出为:为各类别的预测概率。也可以是用于对图像的标注(可将各标注对象视为不同的识别对象)等等。

同时,本发明实施例中,损失取值段是预置的,例如预先配置k+1个损失取值段(即损失值区间):[0,L

此外,训练神经网络模型的损失函数可基于应用场景进行选择,例如可以是交叉熵损失函数、均方损失函数、绝对误差极大值函数等,本发明实施例对此不做具体限定。

在一种可能的实现方式中,步骤9中的训练结束条件可以是预测准确率达到指定值,训练次数达到预设的最大训练次数,亦或是当前得到的损失值L达到某个指定值等。

此外,基于本发明实施例所提供的混合式神经网络训练方法所训练得到的神经网络模型,可以用于图像识别、目标跟踪、音频识别、音频中的声音事件识别或者文本的检索查重等应用。

例如,对于图像识别,输入为预处理后的图像数据,其中预处理包括图像大小归一化、格式转换等,神经网路模型的输出可以是该图片中是否包括制定对象的二分识别,也可以是对多个目标对象的识别,识别结果包括:识别对象及其图像中的位置。

在音频识别领域,首先对训练数据所对应的音频数据进行音频数据预处理,包括对音频进行预加重,分帧,加窗后进行滤波,最后对结果进行特征提取(例如MFCC,梅尔频率的倒谱系数),即可生成可输入神经网络模型的向量,即得到与神经网络模型的输入相匹配的音频表征数据。再基于指定的识别目标设置各训练样本的样本标签,进而训练样本基于神经网络模型的输出(前向推理)获取其对应的目标识别预测值,基于预测值与样本标签的损失逐层反向传播,基于本发明实施例所提供的权重更新的迭代完成用于音频识别的神经网络模型的训练;然后将当前的待识别音频数据进行音频数据预处理后,输入至训练好的用于音频识别的神经网络模型中,基于其输出获取待识别音频数据的音频识别结果。

对于自然语言处理(即训练数据为文本数据),首先对训练样本进行文本预处理,包括分词(对文本的语句经词袋模型进行预处理)、基于词频获取语句或文本的关键词,基于词向量转换获取语句或文本的向量表达,再将文本预处理后的向量表达输入神经网络模型中,以完成用于指定文本任务处理的神经网络模型的训练。

在一种可能的实现方式中,将本发明实施例所提供的混合式神经网络训练方法用于基于电阻式随机存取存储器ReRAM的神经网络计算电路,即本发实施例还提供了一种用于基于电阻式随机存取存储器ReRAM的神经网络计算电路的混合式神经网络训练方法,包括:

步骤S1,获取待训练的神经网络模型,基于神经网络模型的网络结构确定网络的各层间权重矩阵,随机初始化各权重矩阵的元素,再将各层间权重矩阵存入基于电阻式随机存取存储器ReRAM的神经网络计算电路的权重数据存储单元;

步骤S2,获取训练数据集,其中训练数据集的各训练数据包括训练样本的数据向量和样本标签。其中,训练数据可以是图像数据或音频数据或文本数据;

步骤S3,从训练数据集中读取当前的批数据,该批数据包括至少一个训练数据;

步骤S4,将批数据中的各训练样本的数据向量存入基于电阻式随机存取存储器ReRAM的神经网络计算电路的特征图数据存储单元,基于电阻式随机存取存储器ReRAM的神经网络计算电路的计算单元读取特征图数据存储单元和权重数据存储单元中的数据,进行神经网络的前向推理运算,得到前向推理运算结果并存入基于电阻式随机存取存储器ReRAM的神经网络计算电路的结果数据存储单元中;并基于结果数据存储单元中的前向推理运算结果得到当前批数据中的各训练样本的预测值;

步骤S5,基于预设的损失函数计算当前批数据的训练样本的预测值与样本标签之间的损失值L,若损失值大于或等于预设的损失阈值L

步骤S6,基于随机梯度下降法,计算神经模型的各网络层的权重梯度dw,若所述权重梯度小于预设的梯度阈值,则直接执行步骤S9,即权重保持不变;若所述权重梯度dw大于或等于预设的梯度阈值△w

步骤S7,确定当前的权重更新的步进值:

判断权重更新的步进值的更新间隔是否达到预设的间隔阈值,若否,则权重更新的步进值保持不变;若是,则将当前损失值L与预设的至少两个损失取值段进行匹配,确定的当前损失值L所对应的损失取值段,并基于损失取值段所对应的步进值,确定当前的权重更新的步进值;

步骤S8,基于电阻式随机存取存储器ReRAM的神经网络计算电路的权值更新单元按照权重的梯度更新方向和权重更新的步进值对权重数据存储单元中的各权重值进行更新,更新完成后执行步骤S9;

其中,权值更新单元对权重数据存储单元中的各权重值进行更新为:若梯度更新方向的符号为正,则执行SET操作;若梯度更新方向的符号为负,则执行RESET操作,其中,SET操作指施加一个正的写电压脉冲,RESET指施加一个负的写电压脉冲,且SET操作或RESET操作执行的次数取决于步进值所对应的器件阻值。

需要说明的是,例如当前步进值所对应的器件阻值为R1,而在当前的基于电阻式随机存取存储器ReRAM的神经网络计算电路中,器件阻值R1对应的SET和RESET操作次数为6次,则基于若梯度更新方向的符号,确定是执行SET还是RESET操作,且操作次数均为6。

步骤S9,确定是否达到预设的训练结束条件,若是,则训练结束,否则,返回执行步骤S3。

另一方面,本发明实施例还提供了一种混合式神经网络训练系统,参见图2,包括:第一处理设备100和第二处理设备200;

其中,第一处理设备100包括控制处理单元101和固定步进值选择单元102;第二处理设备包括第一存储单元201、第二存储单元202、计算单元203、第三存储单元204和权值更新单元205。

该第一处理设备100的控制处理单元101,用于:

获取待训练的神经网络模型,并基于神经网络模型的网络结构确定网络的各层间权重矩阵,随机初始化各权重矩阵的元素,再将各层间权重矩阵存入第二处理设备200的第一存储单元201;

获取训练数据集,其中训练数据集的各训练数据包括训练样本的数据向量和样本标签;

从训练数据集中读取当前的批数据(包括至少一个训练数据),并将当前的批数据的各训练样本的数据向量存入第二处理设备200的第二存储单元202;其中,训练数据可以是图像数据或音频数据或文本数据等;

第二处理设备200的计算单元203,用于基于批数据中的每个训练样本的数据向量和层间权重矩阵进行神经网络的前向推理运算,得到前向推理运算结果并存入第三存储单元204,即计算单元203从第一存储单元201中读取每个训练样本的数据向量,以及从第二存储单元202中读取每一层的层间权重矩阵进行神经网络的前向推理运算,输出分类任务中每个类别的预测概率(前向推理运算结果)并存入第三存储单元204;

所述第一处理设备100的控制处理单元101还用于:

从第二处理设备200的第三存储单元204中读取前向推理运算结果,并基于该前向推理运算结果得到训练样本的预测值;

基于预设的损失函数计算当前批数据的训练样本的预测值与样本标签之间的损失值L,当损失值L小于预设的损失阈值L

该固定步进值选择单元102用于确定当前的权重更新的步进值并反馈给控制处理单元101,其中确定当前的权重更新的步进值为:判断权重更新的步进值的更新间隔是否达到预设的间隔阈值,若否,则权重更新的步进值保持不变;若是,则将当前损失值L与预设的至少两个损失取值段进行匹配,确定当前损失值L所对应的损失取值段,并基于该损失取值段所对应的步进值,确定当前的权重更新的步进值;

所述控制处理单元101再基于当前的权重的梯度更新方向和权重更新的步进值生成权重更新策略并发送至第二处理设备200的权值更新单元205,其中,权重更新策略为:若权重的梯度更新方向的符号为正,则权重增加一个步进值,若权重的梯度更新方向的符号为负,则权重减小一个步进值;

第二处理设备200的权值更新单元205基于当前收到的权重更新策略对第一存储单元201中的层间权重矩阵进行更新,并向第一处理设备100的控制处理单元101反馈更新完成消息,当收到更新完成消息时,控制处理单元101执行训练收敛检测;

所述训练收敛检测为:确定是否达到预设的训练结束条件,若是,则结束训练,否则,继续从训练数据集中读取当前的批数据,并将当前的批数据的各训练样本的数据向量存入第二处理设备200的第二存储单元201,以使得第二处理设备200的计算单元203进行下一批次的前向推理运算。

进一步的,所述第二处理设备200为基于电阻式随机存取存储器ReRAM的神经网络计算电路,且权值更新单元205根据接收的更新策略对层间权重矩阵的更新为:若梯度更新方向的符号为正,则执行SET操作;若梯度更新方向的符号为负,则执行RESET操作,其中SET操作或RESET操作执行的次数取决于步进值所对应的器件阻值。

需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述个功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

为了进一步验证本发明实施例提供的训练方式的性能,结合图像识别方向的一个具体实例进行仿真实验,在该实施例中,待训练的神经网络模型为单层全连接神经网络,结构为784输入神经元和10个输出神经元,分类任务为标准数字手写体数据集MNIST,输入图片为单通道的28×28的灰度图,即图像的尺寸大小为28×28,输出为10种数字类别的预测概率。将图像向量化后输入网络,设置一次训练的批数据大小为64,损失函数为均方误差函数,损失阈值L

在示例性实施例中,还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条计算机程序。该至少一条计算机程序由一个或者一个以上处理器加载并执行,以实现上述任一种的混合式神经网络训练方法。

在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由计算机设备的处理器加载并执行,以实现上述任一种的混合式神经网络训练方法。

在一种可能实现方式中,上述计算机可读存储介质可以是只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact DiscRead-Only Memory,CD-ROMD)、磁带和光数据存储设备等。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

相关技术
  • 一种混合式神经网络训练方法、系统、设备及存储介质
  • 一种光神经网络训练方法、系统、存储介质及设备
技术分类

06120112940105