The invention discloses a method and a device for performing self-learning algorithm of artificial neural network, the device includes an instruction storage unit, controller unit, data access unit, interconnection module, operation module, operation module and a plurality of from. The invention of the multilayer neural network self-learning pre training according to the layer training mode for each layer network, the invention after several iterative operations until the weight update is less than a certain threshold after completion of the pre training self-learning network layer. Each iteration process can be divided into four stages, the first three stages are calculated to generate the intermediate first-order hidden layer value, middle value order and two order visible layer hidden layer middle value, the last stage is the use of the first three stages of the intermediate value to update the weights.
【技术实现步骤摘要】
用于执行人工神经网络自学习运算的装置和方法
本专利技术涉及人工神经网络技术,具体地涉及一种用于执行人工神经网络自学习运算的装置和方法。
技术介绍
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。典型的多层人工神经网络训练方法为反向传播(BP)算法。此方法是监督学习的代表类型,在训练过程中需要大量的带标签的训练样本,然而样本的收集所需的成本代价很高。同时,此方法的训练过程中,误差校正信号随着传播层数的增加而减小,训练容易收敛于局部最小值而且收敛速度较慢。因此,先采用收敛速度快且不需带标签训练样本的自学习算法对网络参数预训练,然后再采用反向传播训练进行微调多层神经网络成为一个新的热点。其中,作为预训练的自学习运算尤为重要。一种支持多层人工神经网络自学习运算的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把多层人工神经网络预训练运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销另一种支持多层人工神经网络预训练的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对多层人工神经网 ...
【技术保护点】
一种用于执行人工神经网络自学习运算的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块,其中:所述指令存储单元用于通过数据访问单元读入指令并缓存读入的指令;所述控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及从运算模块行为的控制信号,然后将各自的控制信号分发至各个模块;所述数据访问单元用于访问外部地址空间,完成数据的加载和存储;所述互连模块具有不同拓扑实现,用于将所述主运算模块的输入向量分发给所述多个从运算模块,以及将各从运算模块的计算结果合并后返回给主运算模块;所述主运算模块用于对所述互连模块返回的中间值进行激活函数、吉布斯采样,以及对激活函数的偏置的更新;所述从运算模块用于输入向量和相应权重矩阵的点积运算,输入向量中的相应分量标量和对应权重矩阵的乘积运算,以及权重矩阵的更新。
【技术特征摘要】
1.一种用于执行人工神经网络自学习运算的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块,其中:所述指令存储单元用于通过数据访问单元读入指令并缓存读入的指令;所述控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及从运算模块行为的控制信号,然后将各自的控制信号分发至各个模块;所述数据访问单元用于访问外部地址空间,完成数据的加载和存储;所述互连模块具有不同拓扑实现,用于将所述主运算模块的输入向量分发给所述多个从运算模块,以及将各从运算模块的计算结果合并后返回给主运算模块;所述主运算模块用于对所述互连模块返回的中间值进行激活函数、吉布斯采样,以及对激活函数的偏置的更新;所述从运算模块用于输入向量和相应权重矩阵的点积运算,输入向量中的相应分量标量和对应权重矩阵的乘积运算,以及权重矩阵的更新。2.如权利要求1所述的用于执行人工神经网络自学习运算的装置,其特征在于,所述主运算模块包括运算单元、数据依赖关系判断单元和存储单元,其中,所述存储单元用于缓存主运算模块在计算过程中用到的输入数据和输出数据,所述运算单元用于完成主运算模块的运算;所述数据依赖关系判断单元是所述运算单元和读写存储单元的端口,用于保证存储单元中数据的读写一致性。3.如权利要求2所述的用于执行人工神经网络自学习运算的装置,其特征在于,所述数据依赖关系判断单元用于判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许该组控制信号立即发射,否则需要等到该条控制信号所依赖的所有控制信号全部执行完成后该组控制信号才允许被发射。4.如权利要求3所述的用于执行人工神经网络自学习运算的装置,其特征在于,所述数据依赖关系判断单元还用于将读取数据通过互连模块发送给从计算模块。5.如权利要求1所述的用于执行人工神经网络自学习运算的装置,其特征在于,每个所述从运算模块包括运算单元、数据依赖关系判断单元、第一存储单元、第二存储单元和第三存储单元,其中,所述运算单元用于接收控制器单元发出的控制信号并进...
【专利技术属性】
技术研发人员:李震,郭崎,陈云霁,陈天石,
申请(专利权)人:北京中科寒武纪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。