一种深度强化学习加速训练的方法技术

技术编号:21184383 阅读:59 留言:0更新日期:2019-05-22 15:02
本发明专利技术提出一种在CPU+FPGA平台下进行深度强化学习算法训练的加速方法。本加速方法能够适用多种深度强化学习算法加速,实现了经验池和目标网络方法,方法包括如下步骤:在内存固定地址分配评价网络参数、目标网络参数和经验池,通过CPU进行初始化,在FPGA运行动作网络、评价网络和目标网络,同时运行两个进程,进程一进行数据采集,通过动作网络与运行于CPU上的强化学习环境交互,将采集到的数据存入经验池中;进程二进行神经网络的训练,CPU从经验池中抽取数据,通过目标网络产生标签,训练评价网络参数,并根据训练次数更新目标网络参数。本发明专利技术利用FPGA低功耗、可重配置的优点,对深度强化学习算法的训练进行加速和优化。

A method of intensive learning and accelerated training

The invention provides an acceleration method for deep reinforcement learning algorithm training under CPU+FPGA platform. This acceleration method can be applied to various deep reinforcement learning algorithms to accelerate the implementation of experience pool and target network methods. The method includes the following steps: assigning evaluation network parameters, target network parameters and experience pool in fixed address memory, initializing them through CPU, running action network, evaluation network and target network in FPGA, and running two processes simultaneously. The first process carries out data. Collection, through interaction between action network and reinforcement learning environment running on CPU, the collected data are stored in the experience pool; process 2 is trained by neural network, CPU extracts data from the experience pool, generates labels through target network, trains and evaluates network parameters, and updates target network parameters according to training times. The invention utilizes the advantages of low power consumption and reconfigurable of the FPGA to accelerate and optimize the training of the deep reinforcement learning algorithm.

【技术实现步骤摘要】
一种深度强化学习加速训练的方法
本专利技术属于计算机领域,特别涉及一种基于CPU+FPGA平台的深度强化学习训练加速方法。
技术介绍
深度强化学习算法,是一种将深度学习的感知能力和强化学习的决策能力相结合的算法,通过端对端的学习方式实现从原始输入到输出的控制。该算法在工业制造、仿真模拟、机器人控制、优化与调度、游戏博弈等领域有广泛应用。文献(MnihV,KavukcuogluK,SilverD,etal.PlayingAtariwithdeepreinforcementlearning//ProceedingsofWorkshopsatthe26thNeuralInformationProcessingSystems2013.LakeTahoe,USA,2013:201-220)首次提出深度强化学习(Deepreinforcementlearning)的概念,并专利技术了首个深度强化学习算法DQN。随着使用深度强化学习技术的AlphaGo在围棋领域大杀四方,越来越多的研究被投入到该领域中,许多优异的深度强化学习算法被陆续提出,算法的复杂度也与日俱增,需要强大的计算能力的支持。在DQN算法中,Q网络为深度神经网络用于评价状态S下的动作Q值,Q值即评价该动作的值,通过ε-贪婪策略与环境交互产生数据放入经验池中,从中随机抽取数据进行训练,可以打破数据间的关联;设置目标网络计算TD值来训练评价网络,提升了算法的稳定性。目前,业界普遍使用CPU+GPU的硬件架构完成深度学习和深度强化学习的训练与部署,CPU用于数据的传输控制,GPU用于大吞吐量的并行计算,但是GPU存在能耗高的缺点,且难以在终端设备中部署。越来越多的研究投入到低功耗、高效率的计算设备中。FPGA(FieldProgrammableGateArrays),即现场可编程门阵列,是一种高性能、低功耗、可编程的数字电路芯片。FPGA既有像专用集成电路(ASIC)的高速稳定的优势,又有可重复定制电路结构的灵活性。FPGA内部含有大量可编程逻辑块(CLB)和金属互连线,此外还包含数字信号处理单元(DSP)、块随机存储器(BRAM)等模块。FPGA作为一种新兴的加速设备,拥有低功耗、可重配置等优点,特别适合用于深度强化学习的加速训练。文献(J.Su,J.Liu,D.B.Thomas,andP.Y.Cheung.NeuralNetworkBasedReinforcementLearningAccelerationonFPGAPlatforms//ACMSIGARCHComputerArchitectureNews,vol.44,no.4,pp.68-73,2017)提出了一种用于神经网络Q学习的FPGA加速系统设计,通过神经演化算法动态地重构网络,该系统只针对FPGA平台,将网络参数和梯度存放在BRAM中,限制了网络的深度,且没有使用目标网络。文献(梁明兰,王峥,陈名松.基于可重构阵列架构的强化学习计算引擎//集成技术,vol.7,No.6,Nov.2018)提出了基于粗粒度可重构阵列架构的强化学习神经网络计算引擎,具有功耗低、处理速度快的优点,但是没有涉及对经验池的优化加速和使用目标网络。
技术实现思路
本专利技术的目的在于针对上述现有问题,提出一种深度强化学习的训练方法,能够在CPU+FPGA的异构计算平台上,完成对深度强化学习算法的训练以及验证,同时加入经验池和目标网络的方法。本专利技术提供一种深度强化学习算法在CPU+FPGA平台下的训练方法,所述方法包括:1)在CPU+FPGA平台下,CPU运行强化学习交互环境同时作为控制设备,FPGA作为计算设备,分别运行评价网络、目标网络以及为采集数据使用的动作网络,FPGA通过数据传输总线与CPU和内存进行通信。2)分配CPU和FPGA都可以访问的共享内存,内存中包括网络参数和经验池数据,其中FPGA读写网络参数,CPU读写经验池数据。3)其中FPGA包含三种网络,动作网络只用来做前向计算,评价网络用于前向计算和反向传播计算,评价网络的输入为batch规模的状态(S),batch规模指多个样本组成一个batch,动作网络的输入为单个状态,评价网络与动作网络共享相同的权重参数(ω),动作网络仅读取该参数,评价网络需读写该参数。目标网络与评价网络结构相同,输入为batch规模数据,用于前向计算,需要读取内存中的权重(ω-)。4)CPU同时运行两个进程,进程一用于环境交互与数据采集,进程二用于神经网络的训练,两个进程可以完全并行执行。5)进程一运行强化学习的交互环境,将当前状态输入至动作网络,返回动作Q值选择动作(A),输入动作至交互环境返回新状态值(S’)和奖励值(R),将数据以<S,A,R,S’>保存至内存中的经验池。6)进程二从内存中抽取batch规模的数据,输入状态S’至目标网络返回目标Q值,通过贝尔曼方程计算目标TD值,将状态S作为输入,目标TD值作为标签去训练评价网络参数,其中目标Q值的计算和评价网络的训练均在FPGA上进行实现。7)在FPGA上运行的神经网络可以为多种形式的神经网络,如全连接神经网络(fully-connectednetwork,FC)、卷积神经网络(convolutionalneuralnetwork,CNN)、循环神经网络(recurrentneuralnetwork,RNN),根据不同网络的前向和反向传播计算方式,通过硬件语言描述或者通过高级综合工具使用高级语言进行描述,这些描述方法不在本专利技术的范围内。本专利技术的优点主要包括:1.本专利技术方法具备通用性,能够适用多种基于DQN的深度强化学习算法的加速;2.本专利技术能高效利用内存,能够运行于低功耗终端设备;3.本专利技术将采集数据与训练并行执行,实现了经验池和目标网络方法。附图说明图1为本专利技术的技术方案实施流程图;图2为FPGA中运行的网络结构示意图;图3为CPU、FPGA、内存的数据交互示意图;图4为内存的分配示意图;图5为CPU与FPGA内的神经网络数据交互示意图;具体实施方式以下结合附图对本专利技术的方法做进一步说明:图1所示为本专利技术实施的基于CPU+FPGA平台的深度强化学习训练方法实现流程,包括以下步骤:1)首先,在内存中固定位置开辟空间存放参数ω、ω-以及经验池,使用CPU产生随机数对内存中的神经网络参数ω和ω-进行初始化,然后对运行在CPU中的交互环境初始化,产生初始状态S为当前状态;2)然后,计算平台运行两个进程并行进行,图2为运行于FPGA的网络结构示意图。进程一用于强化学习中的探索与利用进行数据集的采集,将当前状态输入到运行于FPGA的动作网络,根据返回的动作Q值,使用ε-贪婪策略(ε-greedy)选取动作A输入至交互环境,交互环境返回奖励值R及下一状态S’,将数据<S,A,R,S’>的顺序为一个样本存入内存中的经验池中;3)进程二进行对评价网络参数的训练,当经验池中的数据量大于预定的阈值时,CPU从经验池中随机抽取出batch规模数据,将状态S’输入至运行于FPGA的目标网络,返回目标Q值,根据贝尔曼方程在CPU中计算出作为训练评价网络的数据标签,将batch规模的S作为输入,进行运行于FPGA的评价网络进本文档来自技高网
...

【技术保护点】
1.一种深度强化学习加速训练的方法,其特征在于,包括如下步骤:1)在CPU+FPGA平台下运行该方法,CPU作为控制设备同时运行强化学习交互环境,FPGA作为计算设备进行神经网络前向和反向的计算;2)在内存的固定位置分配参数ω、ω

【技术特征摘要】
1.一种深度强化学习加速训练的方法,其特征在于,包括如下步骤:1)在CPU+FPGA平台下运行该方法,CPU作为控制设备同时运行强化学习交互环境,FPGA作为计算设备进行神经网络前向和反向的计算;2)在内存的固定位置分配参数ω、ω-和经验池,ω为动作网络和评价网络的参数,ω-为目标网络的参数,由CPU完成初始化,FPGA和CPU可以通过数据传输总线直接访问;3)利用CPU的多进程机制同时进行两个进程,进程一进行策略与环境的交互来完成数据采集,进程二利用采集的数据进行神经网络的训练;4)进程一中的策略为运行与FPGA上的动作网络,输入为状态S,输出为动作Q值,CPU通过选择的Q值产生奖励值R和下一状态S’,将数据以形式为<S,A,R,S’>存入经验池中;5)进程二通过CPU抽取batch规模的数据,放入运行于FPGA上的目标网络产生数据标签,最后放入运...

【专利技术属性】
技术研发人员:秦亮阮爱武史傲凯向蔺
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

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

1