一种用于执行AdaGrad梯度下降训练算法的装置和方法制造方法及图纸

技术编号:16546736 阅读:65 留言:0更新日期:2017-11-11 11:37
一种用于执行AdaGrad梯度下降算法的装置和方法,该装置包括控制器单元、数据缓存单元和数据处理模块;该装置首先读取梯度向量以及待更新值向量,同时用当前梯度值更新缓存区中的历史梯度值;每次迭代时,利用当前梯度值及历史梯度值计算更新量,并对待更新向量进行更新操作;持续训练直至待更新参数向量收敛。本发明专利技术通过采用专门用于执行AdaGrad梯度下降算法的设备,可以解决通用处理器运算性能不足,前段译码开销大的问题,加速相关应用的执行速度;同时,对数据缓存单元的应用,避免了反复向内存读取数据,降低了内存访问的带宽。

A device and method for performing AdaGrad gradient descent training algorithm

An apparatus and method for performing AdaGrad gradient descent algorithm, the device includes a controller unit, a data cache unit and a data processing module; the device first reads the gradient vector to be updated and at the same time with the current value vector gradient update history buffer in ladder value; each iteration, using the gradient value and history gradient value calculation and update, and to update vector updates; continuous training to be updated until the convergence parameter vector. The invention is designed to perform AdaGrad equipment by using gradient descent algorithm, can solve the problem of general processor performance, a decoding overhead problem, accelerate the application execution speed; at the same time, the application of the data cache unit, to avoid repeated memory to read data, reduces memory access bandwidth.

【技术实现步骤摘要】
一种用于执行AdaGrad梯度下降训练算法的装置和方法
本专利技术涉及AdaGrad算法应用
,更具体地涉及一种用于执行AdaGrad梯度下降训练算法的装置和方法。
技术介绍
梯度下降优化算法在函数逼近、优化计算、模式识别和图像处理等领域被广泛应用,AdaGrad算法由于其易于实现,计算量小,所需存储空间小以及能够自适应地为各个参数分配学习率等特征被广泛的使用。采用专用装置实现AdaGrad算法可以显著提高其执行的速度。目前,一种执行AdaGrad梯度下降算法的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把AdaGrad梯度下降算法对应的相关运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销。另一种执行AdaGrad梯度下降算法的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运本文档来自技高网...
一种用于执行AdaGrad梯度下降训练算法的装置和方法

【技术保护点】
一种用于执行AdaGrad梯度下降算法的装置,其特征在于,包括:控制器单元,用于将读取的指令译码为控制相应模块的微指令,并将其发送给相应模块;数据缓存单元,用于存储运算过程中的中间变量,并对所述中间变量执行初始化及更新操作;数据处理模块,用于在所述控制器单元的控制下执行运算操作,包括向量加法运算、向量乘法运算、向量除法运算、向量平方根运算及基本运算,并将中间变量存储于所述数据缓存单元中。

【技术特征摘要】
1.一种用于执行AdaGrad梯度下降算法的装置,其特征在于,包括:控制器单元,用于将读取的指令译码为控制相应模块的微指令,并将其发送给相应模块;数据缓存单元,用于存储运算过程中的中间变量,并对所述中间变量执行初始化及更新操作;数据处理模块,用于在所述控制器单元的控制下执行运算操作,包括向量加法运算、向量乘法运算、向量除法运算、向量平方根运算及基本运算,并将中间变量存储于所述数据缓存单元中。2.如权利要求1所述的用于执行AdaGrad梯度下降算法的装置,其特征在于,所述数据处理模块包括运算控制子模块、并行向量加法运算单元、并行向量乘法运算单元、并行向量乘法运算单元、并行向量平方根运算单元以及基本运算子模块。3.如权利要求2所述的用于执行AdaGrad梯度下降算法的装置,其特征在于,所述数据处理模块针对同一向量执行运算时,不同位置元素能够并行执行运算。4.如权利要求1所述的用于执行AdaGrad梯度下降算法的装置,其特征在于,所述数据缓存单元在装置初始化时,初始化历史梯度值的平方和将其值置为0,同时开辟两个空间存储常数α,ε,此二个常数空间一直保持,直至整个梯度下降算法执行完毕。5.如权利要求1所述的用于执行AdaGrad梯度下降算法的装置,其特征在于,所述数据缓存单元在每次数据更新过程中,将历史梯度值的平方和读到数据处理模块中,在数据处理模块中更新其值,即加入当前梯度值的平方和,然后再写入到所述数据缓存单元中;所述数据处理模块从所述数据缓存单元中读取历史梯度值的平方和和常数α,ε,更新的值并送回所述数据缓存单元,利用及常数α,ε计算自适应学习率最后利用当前梯度值及自适应学习率更新待更新向量。6.一种执行AdaGrad梯度下降算法的方法,其特征在于,包括以下步骤:步骤(1),对数据缓存单元进行初始化,包括对常数α,ε设置初值以及对历史梯度平方和置零操作,其中,常数α为自适应学习率增益系数,用于调节控制自适应学习率的范围,常数ε为一个常数,用于保证自适应学习率计算中的分母非零,t为当前迭代次数,Wt′为第i次迭代运算时的待更新参数,ΔL(Wt′)为第i次迭代运算时待更新参数的梯度值,∑表示求和操作,其求和范围从i=1至i=t,即对初始至当前的梯度平方值(ΔL(W1))2,(ΔL(W2))2,...,(ΔL(Wt))2求和;步骤(2),从外部空间读取待更新参数向量和对应的梯度向量;步骤(3),数据处理模块读取并计算更新数据缓存单元中的历史梯度平方和并通过数据缓存单元中的常数α,ε和历史梯度平方和计算自适应学习率步骤(4),数据处理模块利用自适应学习率及当前梯度值完成对待更新向量的更新操作,更新操作计算公式如下:其中,Wt表示当前,即第t次的待更新参数,ΔL(Wt)表示当前待更新参数的梯度值,Wt+1表示更新后的参数,也是下一次,即t+1次迭代运算的待更新参...

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

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

1