CN109783412B - 一种深度强化学习加速训练的方法 - Google Patents

一种深度强化学习加速训练的方法 Download PDF

Info

Publication number
CN109783412B
CN109783412B CN201910048075.XA CN201910048075A CN109783412B CN 109783412 B CN109783412 B CN 109783412B CN 201910048075 A CN201910048075 A CN 201910048075A CN 109783412 B CN109783412 B CN 109783412B
Authority
CN
China
Prior art keywords
network
fpga
cpu
training
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910048075.XA
Other languages
English (en)
Other versions
CN109783412A (zh
Inventor
秦亮
阮爱武
史傲凯
向蔺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201910048075.XA priority Critical patent/CN109783412B/zh
Publication of CN109783412A publication Critical patent/CN109783412A/zh
Application granted granted Critical
Publication of CN109783412B publication Critical patent/CN109783412B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Advance Control (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

一种深度强化学习加速训练的方法
技术领域
本发明属于计算机领域,特别涉及一种基于CPU+FPGA平台的深度强化学习训练加速方法。
背景技术
深度强化学习算法,是一种将深度学习的感知能力和强化学习的决策能力相结合的算法,通过端对端的学习方式实现从原始输入到输出的控制。该算法在工业制造、仿真模拟、机器人控制、优化与调度、游戏博弈等领域有广泛应用。
文献(Mnih V,Kavukcuoglu K,Silver D,et al.Playing Atari with deepreinforcement learning//Proceedings of Workshops at the 26th NeuralInformation Processing Systems 2013.Lake Tahoe,USA,2013:201-220)首次提出深度强化学习(Deep reinforcement learning)的概念,并发明了首个深度强化学习算法DQN。随着使用深度强化学习技术的AlphaGo在围棋领域大杀四方,越来越多的研究被投入到该领域中,许多优异的深度强化学习算法被陆续提出,算法的复杂度也与日俱增,需要强大的计算能力的支持。
在DQN算法中,Q网络为深度神经网络用于评价状态S下的动作Q值,Q值即评价该动作的值,通过ε-贪婪策略与环境交互产生数据放入经验池中,从中随机抽取数据进行训练,可以打破数据间的关联;设置目标网络计算TD值来训练评价网络,提升了算法的稳定性。
目前,业界普遍使用CPU+GPU的硬件架构完成深度学习和深度强化学习的训练与部署,CPU用于数据的传输控制,GPU用于大吞吐量的并行计算,但是GPU存在能耗高的缺点,且难以在终端设备中部署。越来越多的研究投入到低功耗、高效率的计算设备中。
FPGA(Field Programmable Gate Arrays),即现场可编程门阵列,是一种高性能、低功耗、可编程的数字电路芯片。FPGA既有像专用集成电路(ASIC)的高速稳定的优势,又有可重复定制电路结构的灵活性。FPGA内部含有大量可编程逻辑块(CLB)和金属互连线,此外还包含数字信号处理单元(DSP)、块随机存储器(BRAM)等模块。FPGA作为一种新兴的加速设备,拥有低功耗、可重配置等优点,特别适合用于深度强化学习的加速训练。
文献(J.Su,J.Liu,D.B.Thomas,and P.Y.Cheung.Neural Network BasedReinforcement Learning Acceleration on FPGA Platforms//ACM SIGARCH ComputerArchitecture News,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-connected network,FC)、卷积神经网络(convolutional neural network,CNN)、循环神经网络(recurrent neural network,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中计算出
Figure BDA0001949862780000041
作为训练评价网络的数据标签,将batch规模的S作为输入,进行运行于FPGA的评价网络进行训练,CPU、FPGA、内存之间的数据交互如图3所示,CPU与FPGA内的神经网络的数据交互如图5所示;
4)每训练达到预定的次数,将内存中的参数ω-更新为ω,参数ω为动作网络和评价网络所使用,目标网络使用的参数为ω-,图4所示为内存的分配方式,参数ω和ω-使用固定位置,FPGA可以直接通过数据传输总线进行参数的读写;
5)达到指定的训练次数或交互环境返回的奖励值达到预期,则任务结束。
对于一些在FPGA内部无法完成的操作,如神经网络的初始化、从经验池选取数据,均需要产生随机数,因此将这部分操作放在CPU上进行。此外,对于位于内存固定位置的参数ω-的更新,通过FPGA可编程逻辑电路完成。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (4)

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规模的数据,将下一状态S’输入运行于FPGA上的目标网络产生数据标签, 然后将数据标签和当前状态S放入运行于FPGA上的评价网络进行神经网络的反向传播训练;
6)根据训练的次数来更新参数ω-,系统达到指定要求后,训练完成。
2.按照权利要求1所述的一种深度强化学习加速训练的方法,其特征在于,数据采集与策略的训练通过CPU控制两个进程来并行执行。
3.按照权利要求1所述的一种深度强化学习加速训练的方法,其特征在于,在FPGA上运行动作网络、评价网络、目标网络,其中动作网络用于数据采集的策略,其输入大小为一个状态S,评价网络、目标网络用于训练,输入大小都为batch规模的状态,其中目标网络做前向计算,评价网络做前向和反向的计算用于更新网络参数。
4.按照权利要求1所述的一种深度强化学习加速训练的方法,其特征在于,内存的固定位置分配参数,FPGA能够通过数据传输总线直接读写参数,通过CPU进行参数的初始化和读写经验池数据,并传输相应的数据输入和数据标签至FPGA中的神经网络。
CN201910048075.XA 2019-01-18 2019-01-18 一种深度强化学习加速训练的方法 Active CN109783412B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910048075.XA CN109783412B (zh) 2019-01-18 2019-01-18 一种深度强化学习加速训练的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910048075.XA CN109783412B (zh) 2019-01-18 2019-01-18 一种深度强化学习加速训练的方法

Publications (2)

Publication Number Publication Date
CN109783412A CN109783412A (zh) 2019-05-21
CN109783412B true CN109783412B (zh) 2022-04-22

Family

ID=66501769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910048075.XA Active CN109783412B (zh) 2019-01-18 2019-01-18 一种深度强化学习加速训练的方法

Country Status (1)

Country Link
CN (1) CN109783412B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955535B (zh) * 2019-11-07 2022-03-22 浪潮(北京)电子信息产业有限公司 一种多业务请求进程调用fpga设备的方法及相关装置
CN110850877A (zh) * 2019-11-19 2020-02-28 北方工业大学 基于虚拟环境和深度双q网络的自动驾驶小车训练方法
CN111652365B (zh) * 2020-04-30 2022-05-17 哈尔滨工业大学 一种用于加速Deep Q-Network算法的硬件架构及其设计空间探索方法
CN111562837B (zh) * 2020-05-02 2023-05-05 桂林理工大学 一种多cpu/gpu异构服务器的功耗控制方法
CN112327821A (zh) * 2020-07-08 2021-02-05 东莞市均谊视觉科技有限公司 一种基于深度强化学习的智能清洁机器人路径规划方法
CN112060075B (zh) * 2020-07-21 2022-01-04 深圳先进技术研究院 步态生成网络的训练方法、训练设备以及存储介质
CN111832720B (zh) * 2020-09-21 2020-12-29 电子科技大学 一种可配置神经网络推理与在线学习融合计算电路
CN112732436B (zh) * 2020-12-15 2022-04-22 电子科技大学 一种多核处理器-单图形处理器的深度强化学习加速方法
CN112434755B (zh) * 2020-12-15 2023-04-07 电子科技大学 一种基于异构系统的数据异常感知方法
CN112734048A (zh) * 2021-01-26 2021-04-30 天津飞腾信息技术有限公司 一种强化学习方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778910A (zh) * 2017-01-12 2017-05-31 张亮 基于本地训练的深度学习系统和方法
CN108090565A (zh) * 2018-01-16 2018-05-29 电子科技大学 一种卷积神经网络并行化训练加速方法
CN108446534A (zh) * 2018-03-13 2018-08-24 腾讯科技(深圳)有限公司 选择神经网络超参数的方法、装置和计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150324690A1 (en) * 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US10699189B2 (en) * 2017-02-23 2020-06-30 Cerebras Systems Inc. Accelerated deep learning
US11138494B2 (en) * 2017-05-02 2021-10-05 International Business Machines Corporation Storage controller acceleration for neural network training and inference
US20180322386A1 (en) * 2017-05-05 2018-11-08 Intel Corporation Fine-grain compute communication execution for deep learning frameworks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778910A (zh) * 2017-01-12 2017-05-31 张亮 基于本地训练的深度学习系统和方法
CN108090565A (zh) * 2018-01-16 2018-05-29 电子科技大学 一种卷积神经网络并行化训练加速方法
CN108446534A (zh) * 2018-03-13 2018-08-24 腾讯科技(深圳)有限公司 选择神经网络超参数的方法、装置和计算机可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"A high performance FPGA-based accelerator for large-scale convolutional neuralnetworks";Huimin Li等;《2016 26th International Conference on Field Programmable Logic and Applications (FPL)》;20161231;1-9 *
"Throughput-Optimized FPGA Accelerator for Deep Convolutional Neural Networks";Zhiqiang Liu等;《ACM Transactions on Reconfigurable Technology and Systems (TRETS)》;20171231;第10卷(第3期);1-23 *
"面向深度学习的FPGA硬件加速平台的研究";洪启飞;《中国优秀硕士论文全文数据库 信息科技辑》;20180915(第09(2018)期);I135-285 *

Also Published As

Publication number Publication date
CN109783412A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
CN109783412B (zh) 一种深度强化学习加速训练的方法
CN107341544B (zh) 一种基于可分割阵列的可重构加速器及其实现方法
US20190286972A1 (en) Hardware accelerated neural network subgraphs
CN110352435A (zh) 利用链接指令的神经网络处理
CN109409510B (zh) 神经元电路、芯片、系统及其方法、存储介质
CN110998570A (zh) 具有带有块浮点处理的矩阵矢量单元的硬件节点
EP3566185B1 (en) Area-efficient, reconfigurable, energy-efficient, speed-efficient neural network substrate
CN107025317A (zh) 用于实施卷积神经网络加速器上的层的方法和装置
CN108764466A (zh) 基于现场可编程门阵列的卷积神经网络硬件及其加速方法
JP5922203B2 (ja) 半導体装置
CN109472356A (zh) 一种可重构神经网络算法的加速装置及方法
Engelhardt et al. GraVF: A vertex-centric distributed graph processing framework on FPGAs
CN106528357A (zh) 基于拟牛顿法在线训练神经网络的fpga系统及实现方法
Petrica et al. Memory-efficient dataflow inference for deep CNNs on FPGA
CN112732436B (zh) 一种多核处理器-单图形处理器的深度强化学习加速方法
Fan et al. Algorithm and hardware co-design for reconfigurable cnn accelerator
Hofmann Multi-Chip Dataflow Architecture for Massive Scale Biophyscially Accurate Neuron Simulation
Faniadis et al. Deep learning inference at the edge for mobile and aerial robotics
CN111985626B (zh) 一种加速rnn网络的系统、方法及存储介质
CN111783966A (zh) 一种深度卷积神经网络硬件并行加速器的硬件装置及方法
Anis FPGA implementation of parallel particle swarm optimization algorithm and compared with genetic algorithm
Madadum et al. Fpga-based optimized convolutional neural network framework for handwritten digit recognition
Liu et al. A cloud server oriented FPGA accelerator for LSTM recurrent neural network
CN114662286A (zh) 卫星平台参数化建模方法、装置、电子设备及存储介质
CN109086537B (zh) 基于fpga的粒子群算法加速方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant