The invention provides a device for carrying out artificial neural network to connect all the layers back training, including the instruction storage unit, control unit, data access unit, interconnection module, operation module, operation module and a plurality of from. Using this device, the reverse training of the whole connection layer of the artificial neural network can be realized. For each layer, the sum of the input gradient vectors is weighted and the output gradient vector is calculated. The output gradient vector is multiplied by the conduction value of the activation function of the next layer in the forward operation, and the input gradient vector of the next layer can be obtained. The input neurons multiplied by the gradient vector and the positive operation on the gradient of the layer, then you can update the weights according to the gradient of the layer weights.
【技术实现步骤摘要】
一种用于执行全连接层神经网络训练的装置和方法
本专利技术总体上涉及人工神经网络,具体地涉及一种用于执行人工神经网络全连接层的反向训练的装置和方法。
技术介绍
人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。人工神经网络全连接层是一种常见的人工神经网络类型,就像大脑里的神经网络一样,人工神经网络全连接层由一些互相连接的节点组成,如图1所示,每个圆圈表示一个神经元,每个箭头表示两个神经元之间的连接又被称为权值,所有的输入与输出之间互相都有连接。神经元的计算公式可以简单的描述成:其中,x表示所有和输出神经元相连接的输入神经元,w表示x和输出神经元之间对应的权值,b是一个常数。f(x)是一个非线性函数,通常称作激活函数,常用的函数如:等。一种支持人工神经网络全连接层反向训练的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的人工神经网络全连接层反向训练的性 ...
【技术保护点】
一种用于执行人工神经网络全连接层反向训练的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、多个从运算模块,其中:指令存储单元用于存储指令;控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及所述多个从运算模块行为的控制信号;数据访问单元执行外部地址空间与所述装置之间的数据或指令读写操作;在每层人工神经网络全连接层反向训练开始计算的阶段,主运算模块通过互连模块向所有的从运算模块传输本层的输入梯度向量;每个从运算模块计算输入梯度向量中相应的部分标量元素与权值矩阵的对应列的乘积,得到输出梯度向量部分和;在从运算模块的计算过程 ...
【技术特征摘要】
1.一种用于执行人工神经网络全连接层反向训练的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、多个从运算模块,其中:指令存储单元用于存储指令;控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及所述多个从运算模块行为的控制信号;数据访问单元执行外部地址空间与所述装置之间的数据或指令读写操作;在每层人工神经网络全连接层反向训练开始计算的阶段,主运算模块通过互连模块向所有的从运算模块传输本层的输入梯度向量;每个从运算模块计算输入梯度向量中相应的部分标量元素与权值矩阵的对应列的乘积,得到输出梯度向量部分和;在从运算模块的计算过程完成后,互连模块逐级将各从运算模块的输出梯度向量部分和拼接得到本层的输出梯度向量;主运算模块在每一层的计算过程中,利用本层的输出梯度向量完成后续计算。2.根据权利要求1所述的装置,其中,主运算模块将每一层的输出梯度向量与下一层的激活函数求导值对位相乘,作为下一层的输入梯度向量。3.根据权利要求1所述的装置,其中,主运算模块包括第一运算单元、第一数据依赖关系判断单元和第一神经元存储单元,其中:第一神经元存储单元用于存储主运算模块在计算过程中用到的输入数据和输出数据;第一运算单元完成主运算模块的各种运算功能;第一数据依赖关系判断单元是第一运算单元读写第一神经元存储单元的端口,保证对第一神经元存储单元中离散或连续的数据读写不存在一致性冲突,并且负责从第一神经元存储单元读取输入梯度向量通过互连模块发送给各从运算模块;以及来自互连模块的输出梯度向量被发送到第一运算单元。4.根据权利要求1所述的装置,其中,每个从运算模块包括第二运算单元、第二数据依赖关系判定单元、第二神经元存储单元、权值存储单元和权值更新梯度存储单元,其中:第二运算单元接收控制器单元发出的控制信号并进行算数逻辑运算;第二数据依赖关系判断单元负责计算过程中对第二神经元存储单元、权值存储单元和权值更新梯度存储单元的读写操作,保证对第二神经元存储单元、权值存储单元和权值更新梯度存储单元的读写不存在一致性冲突;第二神经元存储单元存储输入梯度向量数据中与该从运算模块相对应的标量数据以及该从运算模块计算得到的输出梯度向量部分和;权值存储单元存储权值矩阵中与该从运算模块所存储的所述标量数据相对应的列;以及权值更新梯度存储单元存储该从运算模块在更新权值过程中需要的权值更新梯度数据,每个从运算模块存储的权值更新梯度数据与其存储的权值数据相对应。5.根据权利要求1所述的装置,其中:计算权值更新梯度的过程如下:设x是第n层的输出神经元向量,主运算模块将该输出神经元向量通过互连模块传送给各个从运算模块,主运算模块还将第n+1层的输出梯度向量in_gradient通过互连模块传送到各个从运算模块;每个从运算模块将输出梯度向量in_gradient中与该从运算模块相对应的标量数据与输出神经元向量x相乘,得到本从运算模块的第n层的原始权值更新梯度向量dw_original。6.根据权利要求5所述的装置,其中:在算出所有层的原始权值更新梯度向量之后,主运算模块对原始权值更新梯度进行处理,首先设定一个正的常数clip_gradient;然后计算所有层的原始权值更新梯度的平方和sumsq_diff,然后对sumsq_diff进行开方得到l2norm_diff;如果l2norm_diff大于clip_gradient,则得到一个缩放因子scale_factor=clip_gradient/l2norm_diff,所有的原始权值更新梯度dw_original都分别乘以这个缩放因子scal...
【专利技术属性】
技术研发人员:郭崎,张士锦,陈云霁,陈天石,
申请(专利权)人:北京中科寒武纪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。