用于执行人工神经网络自学习运算的装置和方法制造方法及图纸

技术编号:16501039 阅读:17 留言:0更新日期:2017-11-04 11:45
本发明专利技术公开了一种用于执行人工神经网络自学习运算的装置和方法,所述装置包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块。本发明专利技术可对多层神经网络的自学习预训练按照逐层训练的训练方式,对于每一层网络,本发明专利技术经过多次运算迭代直至权重更新小于一定阈值后,该层网络的自学习预训练完成。每次迭代过程可分为四个阶段,前三个阶段分别计算生成一阶隐层中间值、一阶可见层中间值和二阶隐层中间值,最后一阶段则利用前三个阶段的中间值更新权重。

For the implementation of self-learning device and method of operation of artificial neural network

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是专门用来执行图形图像运算以及科学计算的设备,没有对多层人工神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行多层人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈。另外,GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈,同时带来了巨大的功耗开销。
技术实现思路
本专利技术所要解决的是现有技术中通用处理器(GPU、CPU)进行多层神经网络预训练需要一系列的简单运算以及访存运算,前端译码功耗开销较大以及现有的通用处理器数据访存开销大、单个通用处理器运算性能低等问题。本专利技术提出一种用于执行人工神经网络自学习运算的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块,其中:所述指令存储单元用于通过数据访问单元读入指令并缓存读入的指令;所述控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及从运算模块行为的控制信号,然后将各自的控制信号分发至各个模块;所述数据访问单元用于访问外部地址空间,完成数据的加载和存储;所述互连模块具有不同拓扑实现,用于将所述主运算模块的输入向量分发给所述多个从运算模块,以及将各从运算模块的计算结果合并后返回给主运算模块;所述主运算模块用于对所述互连模块返回的中间值进行激活函数、吉布斯采样,以及对激活函数的偏置的更新;所述从运算模块用于输入向量和相应权重矩阵的点积运算,输入向量中的相应分量标量和对应权重矩阵的乘积运算,以及权重矩阵的更新。根据本专利技术的具体实施方式,所述主运算模块包括运算单元、数据依赖关系判断单元和存储单元,其中,所述存储单元用于缓存主运算模块在计算过程中用到的输入数据和输出数据,所述运算单元用于完成主运算模块的运算;所述数据依赖关系判断单元是所述运算单元和读写存储单元的端口,用于保证存储单元中数据的读写一致性。根据本专利技术的具体实施方式,所述数据依赖关系判断单元用于判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许该组控制信号立即发射,否则需要等到该组控制信号所依赖的所有控制信号全部执行完成后该条控制信号才允许被发射。根据本专利技术的具体实施方式,所述数据依赖关系判断单元还用于将读取数据通过互连模块发送给从计算模块。根据本专利技术的具体实施方式,每个所述从运算模块包括运算单元、数据依赖关系判断单元、第一存储单元、第二存储单元和第三存储单元,其中,所述运算单元用于接收控制器单元发出的控制信号并进行算数逻辑运算;所述数据依赖关系判断单元用于对缓存单元的读写操作进行监控,以保证对缓存单元的读写不存在一致性冲突;所述第一存储单元用于缓存神经元的输入向量和计算结果;所述第二存储单元用于缓存所述从运算模块在计算过程中需要的权值数据;所述第三存储单元用于缓存相应从运算模块在更新权值过程中需要的权值梯度数据。本专利技术还提出一种执行人工神经网络逐层自学习运算的方法,所述人工神经网络包括两层或者两层以上的多个神经元,人工神经网络的自学习预训练采用逐层训练,对于每一层来说,所述预训练分为四个阶段:第一阶段,输入神经元向量和权值向量矩阵进行点积运算得到局部诱导域,局部诱导域经过激活函数非线性变换后再采用吉布斯(Gibbs)采样计算得到一阶隐层中间值第二阶段,先将权值向量矩阵的转置和一阶隐层中间值的转置进行点积运算,其局部诱导域经过激活函数非线性变换后再采用Gibbs采样得到一阶可见层中间值第三阶段,输入一阶可见层中间值和权值向量矩阵进行点积运算得到局部诱导域,局部诱导域经过激活函数非线性变换后得到第二隐层中间值第四阶段,根据如下公式更新权重:其中,向量为上述第一、三阶段进行激活函数之前向量和权重矩阵点积部分和加的偏置,向量则为第二阶段时的偏置;公式中“×”表示向量的叉乘,∈则是学习率。相比于现有技术,本专利技术对多层神经网络预训练指令进行优化,处理器可仅用一条指令完成神经网络一层的预训练学习,精简了通用处理器指令的前端译码开销;同时,本专利技术包含一个主运算模块、多个从运算模块以及大量分布式片上存储缓解访存开销,可并行执行神经网络预训练运算而不需进行频繁的片外数据访存。总而言之,本专利技术的性能功耗比远高于通用处理器。本专利技术可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。附图说明为了更完整地理解本专利技术及其优势,现在将参考结合附图的以下描述,其中:图1示出了根据本专利技术实施例的用于执行人工神经网络自学习预训练的装置的整体结构的示例框图。图2示意性示出了根据本专利技术实施例的用于执行人工神经网络自学习预训练的装置中互连模块的H树型结构实现。图3示出了根据本专利技术实施例的用于执行人工神经网络自学习预训练的装置中主运算模块结构的示例框图。图4示出了根据本专利技术实施例的用于执行人工神经网络自学习预训练的装置中从运算模块结构的示例框图。图5示出了根据本专利技术实施例的神经网络自学习预训练过程第一、三阶段的示例框图。图6示出了根据本专利技术实施例的神经网络自学习预训练过程第二阶段的示例框图。图7示出了根据本专利技术实施例的神经网络自学习预训练本文档来自技高网
...
用于执行人工神经网络自学习运算的装置和方法

【技术保护点】
一种用于执行人工神经网络自学习运算的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块,其中:所述指令存储单元用于通过数据访问单元读入指令并缓存读入的指令;所述控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及从运算模块行为的控制信号,然后将各自的控制信号分发至各个模块;所述数据访问单元用于访问外部地址空间,完成数据的加载和存储;所述互连模块具有不同拓扑实现,用于将所述主运算模块的输入向量分发给所述多个从运算模块,以及将各从运算模块的计算结果合并后返回给主运算模块;所述主运算模块用于对所述互连模块返回的中间值进行激活函数、吉布斯采样,以及对激活函数的偏置的更新;所述从运算模块用于输入向量和相应权重矩阵的点积运算,输入向量中的相应分量标量和对应权重矩阵的乘积运算,以及权重矩阵的更新。

【技术特征摘要】
1.一种用于执行人工神经网络自学习运算的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块,其中:所述指令存储单元用于通过数据访问单元读入指令并缓存读入的指令;所述控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及从运算模块行为的控制信号,然后将各自的控制信号分发至各个模块;所述数据访问单元用于访问外部地址空间,完成数据的加载和存储;所述互连模块具有不同拓扑实现,用于将所述主运算模块的输入向量分发给所述多个从运算模块,以及将各从运算模块的计算结果合并后返回给主运算模块;所述主运算模块用于对所述互连模块返回的中间值进行激活函数、吉布斯采样,以及对激活函数的偏置的更新;所述从运算模块用于输入向量和相应权重矩阵的点积运算,输入向量中的相应分量标量和对应权重矩阵的乘积运算,以及权重矩阵的更新。2.如权利要求1所述的用于执行人工神经网络自学习运算的装置,其特征在于,所述主运算模块包括运算单元、数据依赖关系判断单元和存储单元,其中,所述存储单元用于缓存主运算模块在计算过程中用到的输入数据和输出数据,所述运算单元用于完成主运算模块的运算;所述数据依赖关系判断单元是所述运算单元和读写存储单元的端口,用于保证存储单元中数据的读写一致性。3.如权利要求2所述的用于执行人工神经网络自学习运算的装置,其特征在于,所述数据依赖关系判断单元用于判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许该组控制信号立即发射,否则需要等到该条控制信号所依赖的所有控制信号全部执行完成后该组控制信号才允许被发射。4.如权利要求3所述的用于执行人工神经网络自学习运算的装置,其特征在于,所述数据依赖关系判断单元还用于将读取数据通过互连模块发送给从计算模块。5.如权利要求1所述的用于执行人工神经网络自学习运算的装置,其特征在于,每个所述从运算模块包括运算单元、数据依赖关系判断单元、第一存储单元、第二存储单元和第三存储单元,其中,所述运算单元用于接收控制器单元发出的控制信号并进...

【专利技术属性】
技术研发人员:李震郭崎陈云霁陈天石
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1