CN117114088A - 一种基于统一ai框架的深度强化学习智能决策平台 - Google Patents
一种基于统一ai框架的深度强化学习智能决策平台 Download PDFInfo
- Publication number
- CN117114088A CN117114088A CN202311338634.3A CN202311338634A CN117114088A CN 117114088 A CN117114088 A CN 117114088A CN 202311338634 A CN202311338634 A CN 202311338634A CN 117114088 A CN117114088 A CN 117114088A
- Authority
- CN
- China
- Prior art keywords
- environment
- module
- reinforcement learning
- parameters
- deep reinforcement
- 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.)
- Granted
Links
- 230000002787 reinforcement Effects 0.000 title claims abstract description 90
- 230000006870 function Effects 0.000 claims abstract description 111
- 239000003795 chemical substances by application Substances 0.000 claims abstract description 89
- 230000009471 action Effects 0.000 claims abstract description 67
- 239000013598 vector Substances 0.000 claims abstract description 40
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 80
- 238000012549 training Methods 0.000 claims description 35
- 238000012360 testing method Methods 0.000 claims description 27
- 238000004088 simulation Methods 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000003993 interaction Effects 0.000 claims description 14
- 238000009826 distribution Methods 0.000 claims description 7
- 230000006399 behavior Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000009877 rendering Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 9
- 238000013528 artificial neural network Methods 0.000 description 20
- 230000004913 activation Effects 0.000 description 12
- 238000011423 initialization method Methods 0.000 description 12
- 238000010606 normalization Methods 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 12
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 238000013100 final test Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于统一AI框架的深度强化学习智能决策平台,通过参数配置模块选定深度强化学习模型的参数,利用通用模块对选定的参数进行读取,根据读取到的参数,从模型库中调取并创建相应的表征器、策略模块、学习器以及智能体,在创建策略和学习器的过程中,从数学工具中调取必要的函数定义以及优化器;同时,根据读取到的参数,在原始环境基础上创建向量环境,并实例化环境,将实例化环境和智能体输入运行器中计算动作输出,并在环境中执行动作,实现智能决策。该智能决策平台对不同功能和结构的深度强化学习模型进行模块化设计,从而兼容多种AI框架。
Description
技术领域
本发明属于人工智能技术领域,具体地,涉及一种基于统一AI框架的深度强化学习智能决策平台。
背景技术
近年来,深度强化学习(Deep Reinforcement Learning, DRL)在围棋游戏、视频游戏、推荐算法等决策任务中表现出了惊人的效果,是人工智能领域的一门重要技术,因此受到学术界和工业界的广泛关注。在此背景下,大量针对不同任务、基于深度强化学习的智能决策算法不断涌出。然而,这些算法通常是基于不同的AI编程框架实现,且使用的软件版本存在互不兼容的现象,从而导致技术人员难以快速、高效地进行二次开发。此外,深度强化学习发展到今天其种类繁多,各种算法结构层出不穷,因此如何建立一个统一的框架使其能够尽可能全面地包含主流强化学习算法,是一个极富挑战的难题。
为了解决以上问题,国内外相关研究机构曾推出包含多个算法的深度强化学习决策平台,例如加州大学伯克利分校推出的Rllib,日本Preferred Networks公司和东京大学联合发布的ChainerRL,以及清华大学推出的Tianshou等。这些决策平台均提供了数十种深度强化学习算法的实现案例,将常见的功能进行了底层封装,一定程度上提高了开发者的效率。然而,它们的不足之处也较为明显。例如,RLlib将各个模块进行了高度封装,且不够模块化,使用户难以快速灵活地定制化设计决策任务和算法结构;ChainerRL是专为Chainer框架设计的强化学习决策平台,但是由于该平台仅支持Chainer框架且官方已宣布停止开发,因此受众范围非常有限;Tianshou是一种高度模块化设计的开源强化学习平台,但是同样仅支持PyTorch一种AI框架,不能满足其他AI框架使用者的需求。总体而言,目前还没有一种深度强化学习决策平台,在保证算法数量和功能多样性的同时兼容多个AI编程框架。因此,如何设计一种基于统一AI框架的深度强化学习决策平台,是该技术领域需要解决的关键问题。
发明内容
针对现有技术中存在的问题,本发明提供了一种基于统一AI框架的深度强化学习智能决策平台,对不同功能和结构的深度强化学习模型进行合理分类并完成了统一的模块化设计,从而便于兼容多种AI框架。
为实现上述技术目的,本发明采用如下技术方案:一种基于统一AI框架的深度强化学习智能决策平台,包括:参数配置模块、通用模块、原始环境、向量环境、实例化环境、数学工具、模型库和运行器,所述参数配置模块与通用模块连接,所述通用模块分别与模型库、原始环境、运行器连接,所述原始环境、向量环境、实例化环境依次连接,所述实例化环境与运行器连接,所述数学工具与模型库连接;
通过参数配置模块选定深度强化学习模型的参数,包括:智能体名称、表征器名称、策略名称、学习器名称、算法参数、环境名称、系统参数,利用通用模块对选定的参数进行读取,根据读取到的参数,从模型库中调取并创建相应的表征器、策略模块、学习器以及智能体,在创建策略和学习器的过程中,从数学工具中调取必要的函数定义以及优化器;同时,根据读取到的参数,在原始环境基础上创建向量环境,并实例化环境,将实例化环境和智能体输入运行器中计算动作输出,并在环境中执行动作,实现智能决策。
进一步地,所述参数配置模块负责将决策算法和任务所涉及的各种参数采用YAML文件格式进行配置,并将配置的参数传递给通用模块。
进一步地,所述通用模块用于存储不同决策算法解决不同决策问题所需要的编程模块;所述通用模块中设有YAML参数文件读取工具模块、终端指令读取工具模块和经验数据池,所述YAML参数文件读取工具模块负责读取参数配置模块中的YAML文件,将从YAML文件中读取到的参数传递给智能体和运行器,并通过智能体依次传递给学习器、策略模块和表征器,通过运行器传递给实例化环境、向量环境和原始环境;所述终端指令读取工具模块用于读取终端指令,支持用户与深度强化学习智能决策平台的交互;所述经验数据池用于存储和管理来自环境交互的经验数据,所述经验数据池通过智能体与学习器关联,支持学习器的经验回放训练和优化过程。
进一步地,所述模型库为用户提供了丰富的深度强化学习模型选择,允许用户根据不同的场景和任务需求,自由搭配和选择深度强化学习模型,定制和优化深度强化学习模型。
进一步地,所述模型库由表征器、策略模块、学习器和智能体构成,所述表征器通过YAML参数文件读取工具模块读取的representation参数来确定表征器的选择,将环境中的原始观测数据转换为适用于深度强化学习模型处理的特征表示;所述策略模块通过YAML参数文件读取工具模块读取的policy参数来确定策略的选择,将表征器计算得到的特征表示作为输入,制定出智能体在环境中采取的决策行为,包括:动作选择策略和环境互动方式;所述学习器通过YAML参数文件读取工具模块读取的learner参数来确定学习器的选择,利用经验数据和策略模块的动作选择策略,制定学习规则,获得更好的策略;所述智能体通过YAML参数文件读取工具模块读取的agent参数来确定智能体的选择,利用学习器优化后的策略输出动作并执行决策行为,与仿真环境进行交互。
进一步地,所述原始环境针对不同仿真环境,存放原始环境定义,包括:环境的参数获取、环境重置、动作执行、环境渲染和全局状态获取功能,为向量环境、实例化环境、智能体、策略模块提供仿真环境交互的基本工具和参数。
进一步地,所述向量环境根据原始环境随机实例化多个环境并行运行,与智能体交互。
进一步地,所述实例化环境根据不同的仿真场景和任务需求,实例化特定的仿真环境,与智能体交互。
进一步地,所述数学工具将各种深度强化学习模型涉及的非线性函数、优化器、滤波器统一封装,负责策略模块中有关概率分布的计算、学习器模块中涉及优化器的相关功能。
进一步地,所述运行器中设有训练模式和测试模式,所述训练模式通过run方法运行实例化后的向量环境和智能体,得出深度强化学习智能决策结果;所述测试模式通过benchmark方法运行实例化后的向量环境和智能体,得出深度强化学习智能决策结果。
与现有技术相比,本发明具有如下有益效果:本发明基于统一AI框架的深度强化学习智能决策平台通过对深度强化学习模型涉及的各种功能进行模块化设计,便于对不同AI框架的兼容,且本发明同时兼容PyTorch,TensorFlow和MindSpore三种AI框架,在该深度强化学习智能决策平台上可以继续扩充新的深度强化学习模型和新的任务,目前本发明已支持的深度强化学习模型数量超过三十种,决策任务超过一百种。同时,本发明将决策平台中和AI框架无关的模型库单独提取,对决策场景和任务、常用的工具、参数读取等进行了规范化封装,使得用户能在该平台中快速建立自己的场景任务,并自由设计深度强化学习模型结构,进而能够极大地提升深度强化学习模型开发效率。
附图说明
图1为本发明基于统一AI框架的深度强化学习智能决策平台的框架图。
具体实施方式
下面结合附图对本发明的技术方案作进一步地解释说明。
如图1为本发明基于统一AI框架的深度强化学习智能决策平台的框架图,该深度强化学习智能决策平台包括:参数配置模块、通用模块、原始环境、向量环境、实例化环境、数学工具、模型库和运行器,所述参数配置模块与通用模块连接,所述通用模块分别与模型库、原始环境、运行器连接,所述原始环境、向量环境、实例化环境依次连接,所述实例化环境与运行器连接,所述数学工具与模型库连接;过参数配置模块选定深度强化学习模型的参数,包括:智能体名称、表征器名称、策略名称、学习器名称、算法参数、环境名称、系统参数,系统参数包括CPU/GPU的选择、模型存储地址、日志文件存储地址,利用通用模块对选定的参数进行读取,根据读取到的参数,从模型库中调取并创建相应的表征器、策略模块、学习器以及智能体,在创建策略和学习器的过程中,从数学工具中调取必要的函数定义以及优化器;同时,根据读取到的参数,在原始环境基础上创建向量环境,并实例化环境,将实例化环境和智能体输入运行器中计算动作输出,并在环境中执行动作,实现智能决策。本发明通过对不同功能和结构的深度强化学习模型进行了合理分类并完成了统一的模块化设计,从而便于兼容多种AI框架。此外,本发明将决策平台中和AI框架无关的模型库单独提取,对决策场景和任务、常用的工具、参数读取等进行了规范化封装,使得用户能在该平台中快速建立自己的场景任务,并自由设计深度强化学习模型的结构,进而能够极大地提升深度强化学习模型的开发效率。
本发明中参数配置模块负责将决策算法和任务所涉及的各种参数采用YAML文件格式进行配置,并将配置的参数传递给通用模块,便于技术人员调试参数,并且不同决策算法、不同任务的参数调试相互不受影响。为了进一步方便技术人员调试,参数配置模块中配置的参数分为基础参数和算法参数,基础参数主要通过通用模块影响运行器,包括CPU/GPU选择、AI框架选择、训练模式及可视化模式配置;算法参数影响智能体模块、学习器模块、策略模块和表征器模块,所述算法参数包括任务选择、模型选择、学习率、折扣因子以及学习步长参数的配置,其中模型选择包括智能体选择、学习器选择、策略选择、表征器选择。
本发明中通用模块用于支持其它模块的正常运行,与参数配置模块协同工作,以确保所需的工具和资源在模块之间共享,用于存储不同决策算法解决不同决策问题所需要的编程模块,从而降低代码复写率。通用模块中设有YAML参数文件读取工具模块、终端指令读取工具模块和经验数据池,YAML参数文件读取工具模块负责读取参数配置模块中的YAML文件,将从YAML文件中读取到的参数传递给智能体和运行器,并通过智能体依次传递给学习器、策略模块和表征器,通过运行器传递给实例化环境、向量环境和原始环境,以确保该智能决策平台中参数的设置保持一致;终端指令读取工具模块用于读取终端指令,支持用户与深度强化学习智能决策平台的交互,与运行器关联,允许用户通过终端指令设置运行器中的参数,从而影响决策和深度强化学习模型的行为;经验数据池用于存储和管理来自环境交互的经验数据,经验数据池通过智能体与学习器关联,支持数据采集和经验回放,智能体将经验回放数据提供给学习器用于训练和优化过程。本发明通用模块的实现不涉及具体的AI框架,因此对PyTorch、TensorFlow和MindSpore三种框架下的其他模块均共享,有效降低了整体代码规模。
本发明中模型库为用户提供了丰富的深度强化学习模型选择,允许用户根据不同的场景和任务需求,自由搭配和选择深度强化学习模型,定制和优化深度强化学习模型。模型库由表征器、策略模块、学习器和智能体构成。
表征器通过YAML参数文件读取工具模块读取的representation参数来确定表征器的选择,将环境中的原始观测数据转换为适用于深度强化学习模型处理的特征表示。表征器可以处理不同形式的原始观测数据,包括但不限于图像、一维向量和序列观测输入。本发明中的表征器包含等价表征(原始观测不作处理)、多层感知器(MLP)、卷积神经网络(CNN)、循环神经网络(RNN)四种,其中RNN又分为LSTM和GRU两种实现方式,如表1,MLP适用于一维向量输入、CNN适用于图像输入、RNN适用于序列观测输入。此外,RNN需结合MLP、CNN搭配使用,例如MLP+RNN、CNN+RNN,用户需根据任务需求自定义RNN表征器。本发明在PyTorch、TensorFlow和MindSpore三种AI框架下均实现了表征器。
表1 representation参数与表征器的对应关系
策略模块通过YAML参数文件读取工具模块读取的policy参数来确定策略的选择,将表征器计算得到的特征表示作为输入,制定出智能体在环境中采取的决策行为,包括:动作选择策略和环境互动方式。策略模块包括多种类型的策略,根据智能体个数、动作输出形式以及任务的性质进行分类,在本发明中,策略模块按照智能体个数分为单智能体策略和多智能体策略,分别应用于单智能体深度强化学习和多智能体强化学习;按照动作输出形式分为确定性策略、离散概率分布策略和高斯策略,其中确定性策略根据表征器输出结果直接输出动作值,离散概率分布策略则输出每个动作的概率值,高斯策略则输出一个概率分布,智能体将从该分布中随机采样动作。策略的选择需根据深度强化学习模型本身的特点和任务性质,可通过指定policy参数来选择策略名称。本发明在PyTorch、TensorFlow和MindSpore三种AI框架下均实现了策略模块。
学习器通过YAML参数文件读取工具模块读取的learner参数来确定学习器的选择,利用经验数据和策略模块的动作选择策略,制定学习规则,获得更好的策略,传递给智能体。策略的选择和执行方式直接影响到学习器的训练和优化过程,同时学习器通过接收智能体提供的经验数据和环境的反馈信息,计算损失函数和更新模型参数。通过学习器模块的有效管理和与策略模块、智能体的协同工作,深度强化学习模型能够不断优化智能体的策略,适应各种任务和环境的需求,提高决策平台的性能和鲁棒性。本发明将每种深度强化学习模型的策略更新方式体现在学习器中,在学习器中根据智能体模块提供的经验回放数据来计算神经网络输出。学习器是一个深度强化学习模型能否成功运行的核心环节,在本发明中为每一种强化学习模型配置一个学习器。本发明在PyTorch、TensorFlow和MindSpore三种AI框架下均实现了学习器。
智能体通过YAML参数文件读取工具模块读取的agent参数来确定智能体的选择,利用学习器优化后的策略输出动作并执行决策行为,与仿真环境进行交互。在该模块的初始化程序中,将表征器、策略、学习器和经验回放池关键部分均进行了实例化,本发明通过运行器将该模块与实例化环境关联,从而和实例化的仿真环境进行交互,在本发明中,为每个深度强化学习模型实现了一个智能体模块。本发明在PyTorch、TensorFlow和MindSpore三种AI框架下均实现了智能体。如表2给出了策略、学习器和智能体的参数的一一对应关系。
表2 策略、学习器和智能体的参数对应关系
本发明原始环境针对不同仿真环境,存放原始环境定义,包括:环境的参数获取、环境重置、动作执行、环境渲染和全局状态获取功能,为向量环境、实例化环境、智能体、策略模块提供仿真环境交互的基本工具和参数。考虑到一些仿真环境的特殊性,用户需在原始环境中额外添加一些特定环境所需的额外功能,以此规范化每个原始环境的成员变量定义,保证成员函数的输入输出接口保持一致,原始环境与向量环境之间存在协同关系,为向量环境模块提供了仿真任务所需的基本工具和参数。
为了提高智能体的采样效率,传统的单个环境运行方式采样速度较慢。在该智能决策平台中,用户可以选择采用向量化环境,向量环境根据原始环境随机实例化多个环境并行运行,以保证经验数据的多样性,向量环境封装确保了各个环境之间格式和接口的一致性,以保证相同深度强化学习模型在不同环境或任务中的兼容性。允许智能体同时与多个环境交互。
本发明中实例化环境根据不同的仿真场景和任务需求,实例化特定的仿真环境,以便智能体能够与之交互并收集经验数据。由于不同的仿真环境下对应不同的地图、场景或任务,将一个仿真场景的实例化参数分为两个部分:环境名称和场景名称。在参数配置模块,通过指定env和env_id两个参数分别确定环境名称和场景名称,各深度强化学习模型在各任务下的参数文件也将以这种分类方法存放,从而便于开发人员快速定位到参数位置,避免参数误调。如表3所示,在每个深度强化学习模型的参数配置文件中,用户都需要指定环境名称(env_name)和场景名称(env_id)。这种命名方式和环境实例化方式对大部分仿真环境均兼容,具有一定的普适性。
表3 环境名称和场景名称命名方式举例
本发明中数学工具将各种深度强化学习模型涉及的非线性函数、优化器、滤波器统一封装,根据各AI框架单独编写,但是由该AI框架下的各个模块共用,主要负责策略模块中有关概率分布的计算、学习器模块中涉及优化器的相关功能。
本发明中运行器通过控制智能体与环境的交互来推动训练和测试过程,运行器设有训练模式和测试模式,训练模式通过run方法运行实例化后的向量环境和智能体,得出深度强化学习智能决策结果;测试模式通过benchmark方法运行实例化后的向量环境和智能体,得出深度强化学习智能决策结果。本发明在PyTorch、TensorFlow和MindSpore三种AI框架下均能实现运行器。
本发明智能决策平台包含35种主流深度强化学习模型,其各种模型的变种则超过40余种,并且同时支持三种主流深度学习框架:PyTorch、TensorFlow、MindSpore,表4是本发明智能决策平台同国内外其它深度强化学习决策平台的技术对比情况:
表4 本发明智能决策平台同国内外平台对比情况
本发明对深度强化学习的复现方法进行了优化,其表征器+策略+学习器+智能体架构方式使得深度强化学习模型的实现方式变得更加灵活,充分考虑了深度强化学习的各种训练技巧,极大地提升了算法性能。因此,本发明智能决策平台支持的算法均性能可靠,在一些主流的仿真环境如MuJoCo、Atari游戏中表现良好,大部分深度强化学习模型性能超过国内外平台的基准。
表5和表6分别列举了本发明智能决策平台在MuJoCo、Atari环境中的部分场景性能表现。在表5中,选择DDPG、TD3、A2C、PPO四种深度强化学习模型算法,分别对MuJoCo环境中的Ant、HalfCheetah、Hopper、Walker2D、Swimmer、Reacher、Ipendulum、IDPendulum八种场景进行了测试。每个算法经过1000,000步训练后,记录智能体策略与环境进行交互过程中,平均每个回合的累积奖励值,并将该奖励值作为最终测试结果。根据表5中的最终测试结果,在MuJoCo环境的8种场景下,本发明智能决策平台中的DDPG算法性能均达到甚至超过基准性能、TD3算法有5种场景达到或超过基准性能、A2C算法有7种场景达到或超过基准性能、PPO算法有7种场景达到或超过基准性能。因此可以得出结论,本发明智能决策平台在MuJoCo环境中的训练结果和现有技术的训练结果相比,具有更大的优势。测试结果的具体计算公式如下:
,
其中,N表示回合数,i表示N的索引,G表示每个回合的平均累积励,是第i个回合的长度,t表示时刻,表示第i个回合中t时刻下环境反馈给智能体的奖励值。
表6的测试结果计算方法和表5中的相同,不同的是表6中的每个算法均进行了10,000,000步训练,选择了DQN和PPO两种算法,对Atari环境中的AirRaid、Alien、Bowling、Breakout、Feeway、Pong、Qbert七种场景进行了测试。根据表6的最终测试结果,在Atari环境的7种场景下,本发明智能决策平台中的DQN算法有6种场景超过基准性能、PPO算法均超过了基准性能。因此可以得出结论,本发明智能决策平台在Atari环境中的训练结果和现有技术的训练结果相比,具有更大的优势。其中表5和表6中的基准性能,均参考自现有技术中的训练结果。
表5 本发明在MuJoCo环境中的性能表现
表6 本发明在Atari环境中的部分性能表现
实施例1 DQN算法在Atari游戏中的实现步骤
步骤1:配置参数文件,并存放于xuanpolicy/configs/dqn/atari.yaml路径下。参数配置符合YAML文件格式,即“变量名:取值”的形式,取值只能是字符串或数字。表7是各参数的名称、解释及具体取值;
表7 DQN算法在Atari游戏中的参数设置
步骤2:利用通用模块读取步骤1中的参数文件,获得字典类型变量,再通过types工具将字典类型变量转换为SimpleNamespace类,原字典变量的key、value分别作为该类的成员变量名称和变量取值;
步骤3:创建原始环境类Gym_Env,该类继承自gym.Wrapper类。在该类中,定义env(环境),observation_space(状态空间),action_space(动作空间),reward_range(奖励取值范围),_episode_step(回合长度)和_episode_score(回合累积奖励)成员变量,同时定义close(关闭环境),render(渲染当前环境),reset(重置当前环境)和step(执行环境)成员函数;
步骤4:在步骤3中的原始环境类Gym_Env基础上创建向量环境类DummyVecEnv_Gym。在该类中,同时实例化多个环境,定义envs(环境列表),obs_shape(状态维度),buf_obs(状态缓存区),buf_dones(终止缓存区),buf_trunctions(截断缓存区),buf_rews(奖励缓存区),buf_infos(环境信息缓存区),actions(动作)和max_episode_length(最大回合长度)成员变量,定义reset(批量重置),step_async(同步执行)和step_wait(同步等待)成员函数。成员函数中均需对所有的实例化环境进行相应的操作;
步骤5:将步骤4中向量环境类的状态维度作为输入维度,创建表征器。根据环境的观测输入选择合适的表征器。以多层感知器为例,需指定模块的输入数据维度、隐层节点个数、归一化方法、初始化方法、激活函数、计算硬件选择,然后建立神经网络模块。该模块以最后一个隐层作为输出,因此输出的维度和最后一个隐层的节点个数相同;
步骤6:获取步骤5中表征器输出的特征表示,作为输入创建策略。策略是将表征器输出的隐层状态作为输入,通过建立相应的神经网络结构输出动作、值函数等信息。因此,该模块中需要指定动作空间、表征器、执行器隐层节点个数、评价器隐层节点个数、归一化方法、初始化方法、激活函数选择和计算硬件选择。在此基础上,建立执行器、评价器。执行器用于输出动作,评价器用于输出值函数;
步骤7:创建学习器,DQN_Learner类。建立该模块之前需准备好步骤6中的策略,从数学工具模块中选择并创建优化器,确定模型存储路径参数。该模块的核心环节是update(模型更新)成员函数,该函数主要负责计算模型损失、目标函数,并以此为依据更新模型参数;
步骤8:创建智能体,DQN_Agent类。该模块包含步骤7创建的学习器,获取学习器优化后的策略,并利用该策略与环境进行交互。在该模块中,需定义render(是否渲染画面)、parallels(并行环境个数)、running_steps(运行总步数)和batch_size(批次采样大小)成员变量。此外,还需实例化步骤7中的学习器,建立经验回放池。在此基础上,定义_action(obs)成员函数,将观测obs作为输入,输出动作;定义train(train_steps)成员函数,指定训练步数后,实现交互-存储-采样-训练的循环操作,不断迭代模型参数。与此对应的还需定义test成员函数,用于测试模型的性能;
步骤9:定义运行器,如Runner_DRL类。该模块首先接收步骤2中获取的变量参数,确定agent_name、env_id等信息并实例化步骤4中的向量化环境;实例化步骤5中的表征器并传入策略中,从而进一步实例化步骤6中的策略类;定义optimizer用于神经网络参数的更新,并将其传入步骤8中的智能体类,从而实例化步骤8中的智能体类,最后,定义运行器中的run和benchmark成员函数,分别用于训练/测试模型、获得模型基准性能。
在Atari环境下使用该平台中的DQN算法具有如下优点:
在步骤1中统一配置参数,方便观察不同参数对算法性能的影响;
模块选择更加独立,便于调试算法的各个功能,同时便于选择最好的参数;
各个模块之间逻辑清晰,任务部署更加快捷;
案例实施步骤简单统一,每个实施案例都能够作为参考,用于实施其它案例。
针对其它的AI框架,通过重复以上9个步骤即可实现DQN算法在该框架下的兼容。以上就是建立一个包含DQN算法的决策平台步骤,可通过重复该步骤扩充其他深度强化学习算法及其仿真环境。
实施例2 PPO算法在Atari游戏中的实现步骤
步骤1:配置参数文件,并存放于xuanpolicy/configs/ppo/atari.yaml路径下。参数配置符合YAML文件格式,即“变量名:取值”的形式,取值只能是字符串或数字。表8是各参数的名称、解释及具体取值;
表8 DQN算法在Atari游戏中的参数设置
步骤2:利用通用模块读取步骤1中的参数文件,获得字典类型变量,再通过types工具将字典类型变量转换为SimpleNamespace类,原字典变量的key、value分别作为该类的成员变量名称和变量取值;
步骤3:根据步骤2中读取的env_name和env_id参数创建原始环境Gym_Env,该类继承自gym.Wrapper类。在该类中,定义env(环境),observation_space(状态空间),action_space(动作空间),reward_range(奖励取值范围),_episode_step(回合长度)和_episode_score(回合累积奖励)成员变量,同时定义close(关闭环境),render(渲染当前环境),reset(重置当前环境)和step(执行环境)成员函数;
步骤4:在步骤3中的原始环境类Gym_Env基础上创建向量环境类DummyVecEnv_Gym。在该类中,同时实例化多个环境,定义envs(环境列表),obs_shape(状态维度),buf_obs(状态缓存区),buf_dones(终止缓存区),buf_trunctions(截断缓存区),buf_rews(奖励缓存区),buf_infos(环境信息缓存区),actions(动作)和max_episode_length(最大回合长度)成员变量,定义reset(批量重置),step_async(同步执行)和step_wait(同步等待)成员函数。成员函数中均需对所有的实例化环境进行相应的操作;
步骤5:将步骤4中向量环境类的状态维度作为输入维度,创建表征器。根据环境的观测输入选择合适的表征器。以多层感知器为例,需指定模块的输入数据维度、隐层节点个数、归一化方法、初始化方法、激活函数、计算硬件选择,然后建立神经网络模块。该模块以最后一个隐层作为输出,因此输出的维度和最后一个隐层的节点个数相同;
步骤6:获取步骤5中表征器输出的特征表示,作为输入创建策略。策略是将表征器输出的隐层状态作为输入,通过建立相应的神经网络结构输出动作、值函数等信息。因此,该模块中需要指定动作空间、表征器、执行器隐层节点个数、评价器隐层节点个数、归一化方法、初始化方法、激活函数选择和计算硬件选择。在此基础上,建立执行器、评价器。执行器用于输出动作,评价器用于输出值函数;
步骤7:创建学习器,PPO_Learner类。建立该模块之前需准备好步骤6中的策略,从数学工具模块中选择并创建优化器,确定模型存储路径参数。该模块的核心环节是update(模型更新)成员函数,该函数主要负责计算模型损失、目标函数,并以此为依据更新模型参数;
步骤8:创建智能体,PPO_Agent类。该模块包含步骤7创建的学习器,获取学习器优化后的策略,并利用该策略与环境进行交互。在该模块中,需定义render(是否渲染画面)、parallels(并行环境个数)、running_steps(运行总步数)和n_minibatch(批次采样次数)成员变量。此外,还需实例化步骤7中的学习器,建立经验回放池。在此基础上,定义_action(obs)成员函数,将观测obs作为输入,输出动作;定义train(train_steps)成员函数,指定训练步数后,实现交互-存储-采样-训练的循环操作,不断迭代模型参数。与此对应的还需定义test成员函数,用于测试模型的性能;
步骤9:定义运行器,如Runner_DRL类。该模块首先接收步骤2中获取的变量参数,确定agent_name、env_id等信息并实例化步骤4中的向量化环境;实例化步骤5中的表征器并传入策略中,从而进一步实例化步骤6中的策略类;定义optimizer用于神经网络参数的更新,并将其传入步骤8中的智能体类,从而实例化步骤8中的智能体类。最后,定义运行器中的run和benchmark成员函数,分别用于训练/测试模型、获得模型基准性能。
在Atari环境下使用该平台中的PPO算法具有如下优点:
在步骤1中统一配置参数,方便观察不同参数对算法性能的影响;
模块选择更加独立,便于调试算法的各个功能,同时便于选择最好的参数;
各个模块之间逻辑清晰,任务部署更加快捷;
案例实施步骤简单统一,每个实施案例都能够作为参考,用于实施其它案例。
针对其它的AI框架,通过重复以上9个步骤即可实现DQN算法在该框架下的兼容。以上就是建立一个包含PPO算法的决策平台步骤,可通过重复该步骤扩充其他深度强化学习算法及其仿真环境。
实施例3 DDPG算法在MuJoCo环境中的实现步骤
步骤1:配置参数文件,并存放于xuanpolicy/configs/ddpg/mujoco.yaml路径下。参数配置符合YAML文件格式,即“变量名:取值”的形式,取值只能是字符串或数字。表9是各参数的名称、解释及具体取值。
表9 DDPG算法在MuJoCo环境中的参数设置
步骤2:利用通用模块读取步骤1中的参数文件,获得字典类型变量,再通过types工具将字典类型变量转换为SimpleNamespace类,原字典变量的key、value分别作为该类的成员变量名称和变量取值;
步骤3:根据步骤2中读取的env_name和env_id参数创建原始环境Gym_Env,该类继承自gym.Wrapper类。在该类中,定义env(环境),observation_space(状态空间),action_space(动作空间),reward_range(奖励取值范围),_episode_step(回合长度)和_episode_score(回合累积奖励)成员变量,同时定义close(关闭环境),render(渲染当前环境),reset(重置当前环境)和step(执行环境)成员函数;
步骤4:在步骤3中的原始环境类Gym_Env基础上创建向量环境类DummyVecEnv_Gym。在该类中,同时实例化多个环境,定义envs(环境列表),obs_shape(状态维度),buf_obs(状态缓存区),buf_dones(终止缓存区),buf_trunctions(截断缓存区),buf_rews(奖励缓存区),buf_infos(环境信息缓存区),actions(动作)和max_episode_length(最大回合长度)成员变量,定义reset(批量重置),step_async(同步执行)和step_wait(同步等待)成员函数。成员函数中均需对所有的实例化环境进行相应的操作;
步骤5:将步骤4中向量环境类的状态维度作为输入维度,创建表征器。根据环境的观测输入选择合适的表征器。以多层感知器为例,需指定模块的输入数据维度、隐层节点个数、归一化方法、初始化方法、激活函数、计算硬件选择,然后建立神经网络模块。该模块以最后一个隐层作为输出,因此输出的维度和最后一个隐层的节点个数相同;
步骤6:获取步骤5中表征器输出的特征表示,作为输入创建策略。策略类是将表征器输出的隐层状态作为输入,通过建立相应的神经网络结构输出动作、值函数等信息。因此,该模块中需要指定动作空间、表征器、执行器隐层节点个数、评价器隐层节点个数、归一化方法、初始化方法、激活函数选择和计算硬件选择。在此基础上,建立执行器、评价器。执行器用于输出动作,评价器用于输出值函数;
步骤7:创建学习器,DDPG_Learner类。建立该模块之前需准备好步骤6中的策略、从数学工具模块中选择并创建优化器、确定模型存储路径参数。该模块的核心环节是update成员函数,该函数主要负责计算模型损失、目标函数,并以此为依据更新模型参数;
步骤8:创建智能体,DDPG_Agent类。该模块包含步骤7创建的学习器,获取学习器优化后的策略,并利用该策略与环境进行交互。在该模块中,需定义render(是否渲染画面)、n_envs(并行环境个数)、n_steps(运行总步数)和n_minibatch(批次采样次数)成员变量。此外,还需实例化步骤7中的学习器,建立经验回放池。在此基础上,定义_action(obs)成员函数,将观测obs作为输入,输出动作;定义train(train_steps)成员函数,指定训练步数后,实现交互-存储-采样-训练的循环操作,不断迭代模型参数。与此对应的还需定义test成员函数,用于测试模型的性能;
步骤9:定义运行器,如Runner_DRL类。该模块首先接收步骤2中获取的变量参数,确定agent_name、env_id等信息并实例化步骤4中的向量化环境;实例化步骤5中的表征器并传入策略中,从而进一步实例化步骤6中的策略类;定义optimizer用于神经网络参数的更新,并将其传入步骤8中的智能体类,从而实例化步骤8中的智能体类。最后,定义运行器中的run和benchmark成员函数,分别用于训练/测试模型、获得模型基准性能。
在MuJoCo环境下使用该平台中的DDPG算法具有如下优点:
在步骤1中统一配置参数,方便观察不同参数对算法性能的影响;
模块选择更加独立,便于调试算法的各个功能,同时便于选择最好的参数;
各个模块之间逻辑清晰,任务部署更加快捷;
案例实施步骤简单统一,每个实施案例都能够作为参考,用于实施其它案例。
针对其它的AI框架,通过重复以上9个步骤即可实现DDPG算法在该框架下的兼容。以上就是建立一个包含DDPG算法的决策平台步骤,可通过重复该步骤扩充其他深度强化学习算法及其仿真环境。
实施例4 TD3算法在MuJoCo环境中的实现步骤
步骤1:配置参数文件,并存放于xuanpolicy/configs/td3/mujoco.yaml路径下。参数配置符合YAML文件格式,即“变量名:取值”的形式,取值只能是字符串或数字。表10是各参数的名称、解释及具体取值;
表10 TD3算法在MuJoCo环境中的参数设置
步骤2:利用通用模块读取步骤1中的参数文件,获得字典类型变量,再通过types工具将字典类型变量转换为SimpleNamespace类,原字典变量的key、value分别作为该类的成员变量名称和变量取值;
步骤3:根据步骤2中读取的env_name和env_id参数创建原始环境Gym_Env,该类继承自gym.Wrapper类。在该类中,定义env(环境),observation_space(状态空间),action_space(动作空间),reward_range(奖励取值范围),_episode_step(回合长度)和_episode_score(回合累积奖励)成员变量,同时定义close(关闭环境),render(渲染当前环境),reset(重置当前环境)和step(执行环境)成员函数;
步骤4:在步骤3中的原始环境类Gym_Env基础上创建向量环境类DummyVecEnv_Gym。在该类中,同时实例化多个环境,定义envs(环境列表),obs_shape(状态维度),buf_obs(状态缓存区),buf_dones(终止缓存区),buf_trunctions(截断缓存区),buf_rews(奖励缓存区),buf_infos(环境信息缓存区),actions(动作)和max_episode_length(最大回合长度)成员变量,定义reset(批量重置),step_async(同步执行)和step_wait(同步等待)成员函数。成员函数中均需对所有的实例化环境进行相应的操作;
步骤5:将步骤4中向量环境类的状态维度作为输入维度,创建表征器。根据环境的观测输入选择合适的表征器。以多层感知器为例,需指定模块的输入数据维度、隐层节点个数、归一化方法、初始化方法、激活函数、计算硬件选择,然后建立神经网络模块。该模块以最后一个隐层作为输出,因此输出的维度和最后一个隐层的节点个数相同;
步骤6:获取步骤5中表征器输出的特征表示,作为输入创建策略。策略类是将表征器输出的隐层状态作为输入,通过建立相应的神经网络结构输出动作、值函数等信息。因此,该模块中需要指定动作空间、表征器、执行器隐层节点个数、评价器隐层节点个数、归一化方法、初始化方法、激活函数选择和计算硬件选择。在此基础上,建立执行器、评价器。执行器用于输出动作,评价器用于输出值函数;
步骤7:创建学习器,TD3_Learner类。建立该模块之前需准备好步骤6中的策略、从数学工具模块中选择并创建优化器、确定模型存储路径参数。该模块的核心环节是update成员函数,该函数主要负责计算模型损失、目标函数,并以此为依据更新模型参数;
步骤8:创建智能体,TD3_Agent类。该模块包含步骤7创建的学习器,获取学习器优化后的策略,并利用该策略与环境进行交互。在该模块中,需定义render(是否渲染画面)、n_envs(并行环境个数)、n_steps(运行总步数)和n_minibatch(批次采样次数)成员变量。此外,还需实例化步骤7中的学习器,建立经验回放池。在此基础上,定义_action(obs)成员函数,将观测obs作为输入,输出动作;定义train(train_steps)成员函数,指定训练步数后,实现交互-存储-采样-训练的循环操作,不断迭代模型参数。与此对应的还需定义test成员函数,用于测试模型的性能;
步骤9:定义运行器,如Runner_DRL类。该模块首先接收步骤2中获取的变量参数,确定agent_name、env_id等信息并实例化步骤4中的向量化环境;实例化步骤5中的表征器并传入策略中,从而进一步实例化步骤6中的策略类;定义optimizer用于神经网络参数的更新,并将其传入步骤8中的智能体类,从而实例化步骤8中的智能体类。最后,定义运行器中的run和benchmark成员函数,分别用于训练/测试模型、获得模型基准性能。
在MuJoCo环境下使用该平台中的TD3算法具有如下优点:
在步骤1中统一配置参数,方便观察不同参数对算法性能的影响;
模块选择更加独立,便于调试算法的各个功能,同时便于选择最好的参数;
各个模块之间逻辑清晰,任务部署更加快捷;
案例实施步骤简单统一,每个实施案例都能够作为参考,用于实施其它案例。
针对其它的AI框架,通过重复以上9个步骤即可实现TD3算法在该框架下的兼容。以上就是建立一个包含TD3算法的决策平台步骤,可通过重复该步骤扩充其他深度强化学习算法及其仿真环境。
实施例5 A2C算法在MuJoCo环境中的实现步骤
步骤1:配置参数文件,并存放于xuanpolicy/configs/a2c/mujoco.yaml路径下。参数配置符合YAML文件格式,即“变量名:取值”的形式,取值只能是字符串或数字。表11是各参数的名称、解释及具体取值。
表11 A2C算法在MuJoCo环境中的参数设置
步骤2:利用通用模块读取步骤1中的参数文件,获得字典类型变量,再通过types工具将字典类型变量转换为SimpleNamespace类,原字典变量的key、value分别作为该类的成员变量名称和变量取值;
步骤3:根据步骤2中读取的env_name和env_id参数创建原始环境Gym_Env,该类继承自gym.Wrapper类。在该类中,定义env(环境),observation_space(状态空间),action_space(动作空间),reward_range(奖励取值范围),_episode_step(回合长度)和_episode_score(回合累积奖励)成员变量,同时定义close(关闭环境),render(渲染当前环境),reset(重置当前环境)和step(执行环境)成员函数;
步骤4:在步骤3中的原始环境类Gym_Env基础上创建向量环境类DummyVecEnv_Gym。在该类中,同时实例化多个环境,定义envs(环境列表),obs_shape(状态维度),buf_obs(状态缓存区),buf_dones(终止缓存区),buf_trunctions(截断缓存区),buf_rews(奖励缓存区),buf_infos(环境信息缓存区),actions(动作)和max_episode_length(最大回合长度)成员变量,定义reset(批量重置),step_async(同步执行)和step_wait(同步等待)成员函数。成员函数中均需对所有的实例化环境进行相应的操作;
步骤5:将步骤4中向量环境类的状态维度作为输入维度,创建表征器。根据环境的观测输入选择合适的表征器。以多层感知器为例,需指定模块的输入数据维度、隐层节点个数、归一化方法、初始化方法、激活函数、计算硬件选择,然后建立神经网络模块。该模块以最后一个隐层作为输出,因此输出的维度和最后一个隐层的节点个数相同;
步骤6:获取步骤5中表征器输出的特征表示,作为输入创建策略。策略类是将表征器输出的隐层状态作为输入,通过建立相应的神经网络结构输出动作、值函数等信息。因此,该模块中需要指定动作空间、表征器、执行器隐层节点个数、评价器隐层节点个数、归一化方法、初始化方法、激活函数选择和计算硬件选择。在此基础上,建立执行器、评价器。执行器用于输出动作,评价器用于输出值函数;
步骤7:创建学习器,A2C_Learner类。建立该模块之前需准备好步骤6中的策略、从数学工具模块中选择并创建优化器、确定模型存储路径参数。该模块的核心环节是update成员函数,该函数主要负责计算模型损失、目标函数,并以此为依据更新模型参数;
步骤8:创建智能体,A2C_Agent类。该模块包含步骤7创建的学习器,获取学习器优化后的策略,并利用该策略与环境进行交互。在该模块中,需定义render(是否渲染画面)、n_envs(并行环境个数)、n_steps(运行总步数)和n_minibatch(批次采样次数)成员变量。此外,还需实例化步骤7中的学习器,建立经验回放池。在此基础上,定义_action(obs)成员函数,将观测obs作为输入,输出动作;定义train(train_steps)成员函数,指定训练步数后,实现交互-存储-采样-训练的循环操作,不断迭代模型参数。与此对应的还需定义test成员函数,用于测试模型的性能;
步骤9:定义运行器,如Runner_DRL类。该模块首先接收步骤2中获取的变量参数,确定agent_name、env_id等信息并实例化步骤4中的向量化环境;实例化步骤5中的表征器并传入策略中,从而进一步实例化步骤6中的策略类;定义optimizer用于神经网络参数的更新,并将其传入步骤8中的智能体类,从而实例化步骤8中的智能体类。最后,定义运行器中的run和benchmark成员函数,分别用于训练/测试模型、获得模型基准性能。
在MuJoCo环境下使用该平台中的A2C算法具有如下优点:
在步骤1中统一配置参数,方便观察不同参数对算法性能的影响;
模块选择更加独立,便于调试算法的各个功能,同时便于选择最好的参数;
各个模块之间逻辑清晰,任务部署更加快捷;
案例实施步骤简单统一,每个实施案例都能够作为参考,用于实施其它案例。
针对其它的AI框架,通过重复以上9个步骤即可实现A2C算法在该框架下的兼容。以上就是建立一个包含A2C算法的决策平台步骤,可通过重复该步骤扩充其他深度强化学习算法及其仿真环境。
实施例6 PPO算法在MuJoCo环境中的实现步骤
步骤1:配置参数文件,并存放于xuanpolicy/configs/ppo/mujoco.yaml路径下。参数配置符合YAML文件格式,即“变量名:取值”的形式,取值只能是字符串或数字。表12是各参数的名称、解释及具体取值;
表12 PPO算法在MuJoCo环境中的参数设置
步骤2:利用通用模块读取步骤1中的参数文件,获得字典类型变量,再通过types工具将字典类型变量转换为SimpleNamespace类,原字典变量的key、value分别作为该类的成员变量名称和变量取值;
步骤3:根据步骤2中读取的env_name和env_id参数创建原始环境Gym_Env,该类继承自gym.Wrapper类。在该类中,定义env,observation_space,action_space,reward_range,_episode_step和_episode_score成员变量,同时定义close(),render(mode),reset()和step(actions)成员函数;
步骤4:在步骤3中的原始环境类Gym_Env基础上创建向量环境类DummyVecEnv_Gym。在该类中,同时实例化多个环境,定义envs(环境列表),obs_shape(状态维度),buf_obs(状态缓存区),buf_dones(终止缓存区),buf_trunctions(截断缓存区),buf_rews(奖励缓存区),buf_infos(环境信息缓存区),actions(动作)和max_episode_length(最大回合长度)成员变量,定义reset(批量重置),step_async(同步执行)和step_wait(同步等待)成员函数。成员函数中均需对所有的实例化环境进行相应的操作;
步骤5:将步骤4中向量环境类的状态维度作为输入维度,创建表征器。根据环境的观测输入选择合适的表征器。以多层感知器为例,需指定模块的输入数据维度、隐层节点个数、归一化方法、初始化方法、激活函数、计算硬件选择,然后建立神经网络模块。该模块以最后一个隐层作为输出,因此输出的维度和最后一个隐层的节点个数相同;
步骤6:获取步骤5中表征器输出的特征表示,作为输入创建策略。策略类是将表征器输出的隐层状态作为输入,通过建立相应的神经网络结构输出动作、值函数等信息。因此,该模块中需要指定动作空间、表征器、执行器隐层节点个数、评价器隐层节点个数、归一化方法、初始化方法、激活函数选择和计算硬件选择。在此基础上,建立执行器、评价器。执行器用于输出动作,评价器用于输出值函数;
步骤7:创建学习器,PPO_Learner类。建立该模块之前需准备好步骤6中的策略、从数学工具模块中选择并创建优化器、确定模型存储路径参数。该模块的核心环节是update成员函数,该函数主要负责计算模型损失、目标函数,并以此为依据更新模型参数;
步骤8:创建智能体,PPO_Agent类。该模块包含步骤7创建的学习器,获取学习器优化后的策略,并利用该策略与环境进行交互。在该模块中,需定义render(是否渲染画面)、n_envs(并行环境个数)、n_steps(运行总步数)和n_minibatch(批次采样次数)成员变量。此外,还需实例化步骤7中的学习器,建立经验回放池。在此基础上,定义_action(obs)成员函数,将观测obs作为输入,输出动作;定义train(train_steps)成员函数,指定训练步数后,实现交互-存储-采样-训练的循环操作,不断迭代模型参数。与此对应的还需定义test成员函数,用于测试模型的性能;
步骤9:定义运行器,如Runner_DRL类。该模块首先接收步骤2中获取的变量参数,确定agent_name、env_id等信息并实例化步骤4中的向量化环境;实例化步骤5中的表征器并传入策略中,从而进一步实例化步骤6中的策略类;定义optimizer用于神经网络参数的更新,并将其传入步骤8中的智能体类,从而实例化步骤8中的智能体类。最后,定义运行器中的run和benchmark成员函数,分别用于训练/测试模型、获得模型基准性能。
在MuJoCo环境下使用该平台中的PPO算法具有如下优点:
在步骤1中统一配置参数,方便观察不同参数对算法性能的影响;
模块选择更加独立,便于调试算法的各个功能,同时便于选择最好的参数;
各个模块之间逻辑清晰,任务部署更加快捷;
案例实施步骤简单统一,每个实施案例都能够作为参考,用于实施其它案例。
针对其它的AI框架,通过重复以上9个步骤即可实现PPO算法在该框架下的兼容。以上就是建立一个包含PPO算法的决策平台步骤,可通过重复该步骤扩充其他深度强化学习算法及其仿真环境。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (10)
1.一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,包括:参数配置模块、通用模块、原始环境、向量环境、实例化环境、数学工具、模型库和运行器,所述参数配置模块与通用模块连接,所述通用模块分别与模型库、原始环境、运行器连接,所述原始环境、向量环境、实例化环境依次连接,所述实例化环境与运行器连接,所述数学工具与模型库连接;
通过参数配置模块选定深度强化学习模型的参数,包括:智能体名称、表征器名称、策略名称、学习器名称、算法参数、环境名称、系统参数,利用通用模块对选定的参数进行读取,根据读取到的参数,从模型库中调取并创建相应的表征器、策略模块、学习器以及智能体,在创建策略和学习器的过程中,从数学工具中调取必要的函数定义以及优化器;同时,根据读取到的参数,在原始环境基础上创建向量环境,并实例化环境,将实例化环境和智能体输入运行器中计算动作输出,并在环境中执行动作,实现智能决策。
2.根据权利要求1所述的一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,所述参数配置模块负责将决策算法和任务所涉及的各种参数采用YAML文件格式进行配置,并将配置的参数传递给通用模块。
3.根据权利要求2所述的一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,所述通用模块用于存储不同决策算法解决不同决策问题所需要的编程模块;所述通用模块中设有YAML参数文件读取工具模块、终端指令读取工具模块和经验数据池,所述YAML参数文件读取工具模块负责读取参数配置模块中的YAML文件,将从YAML文件中读取到的参数传递给智能体和运行器,并通过智能体依次传递给学习器、策略模块和表征器,通过运行器传递给实例化环境、向量环境和原始环境;所述终端指令读取工具模块用于读取终端指令,支持用户与深度强化学习智能决策平台的交互;所述经验数据池用于存储和管理来自环境交互的经验数据,所述经验数据池通过智能体与学习器关联,支持学习器的经验回放训练和优化过程。
4.根据权利要求3所述的一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,所述模型库为用户提供了丰富的深度强化学习模型选择,允许用户根据不同的场景和任务需求,自由搭配和选择深度强化学习模型,定制和优化深度强化学习模型。
5.根据权利要求4所述的一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,所述模型库由表征器、策略模块、学习器和智能体构成,所述表征器通过YAML参数文件读取工具模块读取的representation参数来确定表征器的选择,将环境中的原始观测数据转换为适用于深度强化学习模型处理的特征表示;所述策略模块通过YAML参数文件读取工具模块读取的policy参数来确定策略的选择,将表征器计算得到的特征表示作为输入,制定出智能体在环境中采取的决策行为,包括:动作选择策略和环境互动方式;所述学习器通过YAML参数文件读取工具模块读取的learner参数来确定学习器的选择,利用经验数据和策略模块的动作选择策略,制定学习规则,获得更好的策略;所述智能体通过YAML参数文件读取工具模块读取的agent参数来确定智能体的选择,利用学习器优化后的策略输出动作并执行决策行为,与仿真环境进行交互。
6.根据权利要求5所述的一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,所述原始环境针对不同仿真环境,存放原始环境定义,包括:环境的参数获取、环境重置、动作执行、环境渲染和全局状态获取功能,为向量环境、实例化环境、智能体、策略模块提供仿真环境交互的基本工具和参数。
7.根据权利要求6所述的一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,所述向量环境根据原始环境随机实例化多个环境并行运行,与智能体交互。
8.根据权利要求7所述的一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,所述实例化环境根据不同的仿真场景和任务需求,实例化特定的仿真环境,与智能体交互。
9.根据权利要求8所述的一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,所述数学工具将各种深度强化学习模型涉及的非线性函数、优化器、滤波器统一封装,负责策略模块中有关概率分布的计算、学习器模块中涉及优化器的相关功能。
10.根据权利要求9所述的一种基于统一AI框架的深度强化学习智能决策平台,其特征在于,所述运行器中设有训练模式和测试模式,所述训练模式通过run方法运行实例化后的向量环境和智能体,得出深度强化学习智能决策结果;所述测试模式通过benchmark方法运行实例化后的向量环境和智能体,得出深度强化学习智能决策结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311338634.3A CN117114088B (zh) | 2023-10-17 | 2023-10-17 | 一种基于统一ai框架的深度强化学习智能决策平台 |
US18/747,561 US20240338570A1 (en) | 2023-10-17 | 2024-06-19 | Deep reinforcement learning intelligent decision-making platform based on unified artificial intelligence framework |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311338634.3A CN117114088B (zh) | 2023-10-17 | 2023-10-17 | 一种基于统一ai框架的深度强化学习智能决策平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117114088A true CN117114088A (zh) | 2023-11-24 |
CN117114088B CN117114088B (zh) | 2024-01-19 |
Family
ID=88796760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311338634.3A Active CN117114088B (zh) | 2023-10-17 | 2023-10-17 | 一种基于统一ai框架的深度强化学习智能决策平台 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240338570A1 (zh) |
CN (1) | CN117114088B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180357552A1 (en) * | 2016-01-27 | 2018-12-13 | Bonsai AI, Inc. | Artificial Intelligence Engine Having Various Algorithms to Build Different Concepts Contained Within a Same AI Model |
CN111178545A (zh) * | 2019-12-31 | 2020-05-19 | 中国电子科技集团公司信息科学研究院 | 一种动态强化学习决策训练系统 |
US20200167686A1 (en) * | 2018-11-27 | 2020-05-28 | Amazon Technologies, Inc. | Reinforcement learning model training through simulation |
CN111427549A (zh) * | 2020-03-30 | 2020-07-17 | 中国科学院计算机网络信息中心 | 一种人工智能强化学习服务平台 |
CN111857107A (zh) * | 2020-06-10 | 2020-10-30 | 同济大学 | 基于学习组件库的辅助型移动机器人导航控制系统和方法 |
CN113377355A (zh) * | 2021-06-07 | 2021-09-10 | 深圳市优服网技术服务有限公司 | 一种人工智能强化学习服务系统 |
CN113633994A (zh) * | 2021-07-16 | 2021-11-12 | 中国科学院自动化研究所 | 人机智能博弈系统 |
CN115099124A (zh) * | 2022-05-20 | 2022-09-23 | 北京仿真中心 | 一种多智能体分布协同训练仿真方法 |
US20220413455A1 (en) * | 2020-11-13 | 2022-12-29 | Zhejiang University | Adaptive-learning intelligent scheduling unified computing frame and system for industrial personalized customized production |
CN116224799A (zh) * | 2023-03-16 | 2023-06-06 | 中国电子科技集团公司电子科学研究院 | 一种多智能体博弈的控制策略优化方法及装置 |
CN116263335A (zh) * | 2023-02-07 | 2023-06-16 | 浙江大学 | 一种基于视觉与雷达信息融合与强化学习的室内导航方法 |
CN116720571A (zh) * | 2023-05-19 | 2023-09-08 | 北京航空航天大学 | 一种基于n版本编程的深度强化学习软件容错方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11900244B1 (en) * | 2019-09-30 | 2024-02-13 | Amazon Technologies, Inc. | Attention-based deep reinforcement learning for autonomous agents |
US11379748B2 (en) * | 2020-06-15 | 2022-07-05 | Bank Of America Corporation | System for threshold detection using learning reinforcement |
-
2023
- 2023-10-17 CN CN202311338634.3A patent/CN117114088B/zh active Active
-
2024
- 2024-06-19 US US18/747,561 patent/US20240338570A1/en active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180357552A1 (en) * | 2016-01-27 | 2018-12-13 | Bonsai AI, Inc. | Artificial Intelligence Engine Having Various Algorithms to Build Different Concepts Contained Within a Same AI Model |
US20200167686A1 (en) * | 2018-11-27 | 2020-05-28 | Amazon Technologies, Inc. | Reinforcement learning model training through simulation |
CN111178545A (zh) * | 2019-12-31 | 2020-05-19 | 中国电子科技集团公司信息科学研究院 | 一种动态强化学习决策训练系统 |
CN111427549A (zh) * | 2020-03-30 | 2020-07-17 | 中国科学院计算机网络信息中心 | 一种人工智能强化学习服务平台 |
CN111857107A (zh) * | 2020-06-10 | 2020-10-30 | 同济大学 | 基于学习组件库的辅助型移动机器人导航控制系统和方法 |
US20220413455A1 (en) * | 2020-11-13 | 2022-12-29 | Zhejiang University | Adaptive-learning intelligent scheduling unified computing frame and system for industrial personalized customized production |
CN113377355A (zh) * | 2021-06-07 | 2021-09-10 | 深圳市优服网技术服务有限公司 | 一种人工智能强化学习服务系统 |
CN113633994A (zh) * | 2021-07-16 | 2021-11-12 | 中国科学院自动化研究所 | 人机智能博弈系统 |
CN115099124A (zh) * | 2022-05-20 | 2022-09-23 | 北京仿真中心 | 一种多智能体分布协同训练仿真方法 |
CN116263335A (zh) * | 2023-02-07 | 2023-06-16 | 浙江大学 | 一种基于视觉与雷达信息融合与强化学习的室内导航方法 |
CN116224799A (zh) * | 2023-03-16 | 2023-06-06 | 中国电子科技集团公司电子科学研究院 | 一种多智能体博弈的控制策略优化方法及装置 |
CN116720571A (zh) * | 2023-05-19 | 2023-09-08 | 北京航空航天大学 | 一种基于n版本编程的深度强化学习软件容错方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117114088B (zh) | 2024-01-19 |
US20240338570A1 (en) | 2024-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190197402A1 (en) | Adding deep learning based ai control | |
CN104102522B (zh) | 交互式游戏中智能非玩家角色的人工情感驱动方法 | |
CN110134375B (zh) | 游戏角色行为的控制方法、装置及可读存储介质 | |
CN105867932B (zh) | 基于元数据反射链的游戏云设计方法 | |
Marcotte et al. | Behavior trees for modelling artificial intelligence in games: A tutorial | |
CN114404977A (zh) | 行为模型的训练方法、结构扩容模型的训练方法 | |
Roberts et al. | Steps towards prompt-based creation of virtual worlds | |
CN117114088B (zh) | 一种基于统一ai框架的深度强化学习智能决策平台 | |
CN112860579B (zh) | 业务测试方法、装置、存储介质及设备 | |
CN116977661A (zh) | 一种数据处理方法、装置、设备、存储介质及程序产品 | |
US11704980B2 (en) | Method, apparatus, and computer storage medium for outputting virtual application object | |
CN112717408A (zh) | 动作确定方法、装置、设备及计算机可读存储介质 | |
Laaksolahti et al. | Anticipatory guidance of plot | |
Araùjo et al. | URNAI: A Multi-Game Toolkit for Experimenting Deep Reinforcement Learning Algorithms | |
CN111443806A (zh) | 交互任务的控制方法、装置、电子设备及存储介质 | |
CN109799975A (zh) | 一种基于神经网络的动作游戏制作方法和系统 | |
JP7530496B1 (ja) | プログラム | |
Yamagishi et al. | Hardware-oriented deep reinforcement learning for edge computing | |
CN115545213B (zh) | 一种基于图形化行为树和强化学习的建模方法及装置 | |
CN117648585B (zh) | 基于任务相似度的智能决策模型泛化方法和装置 | |
CN116808590B (zh) | 一种数据处理方法和相关装置 | |
CN112870716B (zh) | 游戏数据处理方法、装置、存储介质与电子设备 | |
Sulaiman et al. | Object Constraint Language for Modelling Computer Games | |
CN115779436B (zh) | 动画切换方法、装置、设备及计算机可读存储介质 | |
CN118718399A (zh) | 游戏中虚拟对象的控制方法、装置、电子设备及存储介质 |
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 |