1.本发明涉及深度强化学习领域,特别是涉及基于模型的深度强化学习方法。
背景技术:
2.深度强化学习是一种解决顺序决策问题的通用学习框架,在许多领域都取得了显著的进展。一般来说,根据是否学习用于策略训练的世界模型,强化学习方法分为两类包括无模型深度的强化学习方法和基于模型的深度强化学习方法。基于模型的深度强化学习方法目的在于利用收集的经验数据来对环境建模,以帮助策略的学习;可以以较少的训练数据,学习到较好的策略。环境建模提高了样本效率,但往往具有有限的渐近性能,且存在模型误差。在环境建模过程中存在的模型误差使得基于模型的强化学习效果受到限制。
3.现有的基于模型的强化学习算法按照其遵循的范式可分为四类:第一类通过世界模型生成假想数据,并通过无模型强化学习算法使用这些数据进行策略训练;第二类利用世界模型的可微性,生成策略优化的可微轨迹;第三类得到一个精确的值函数,使用环境模型,产生多条轨迹,并基于这些轨迹计算时序差分目标值;第四类通过将最优控制算法(如mpc)与已有的世界模型相结合,来直接生成有效的策略。无论哪种范式,基于模型的强化学习算法的训练效果取决于世界模型的准确性,即得到的世界模型越准确,生成的数据就越可靠,最终可以获得更好的策略效果。因此,提高世界模型的精度是基于模型的强化学习算法的关键。为此,现有的方法采用了各种技术来提高模型的精度。例如,有些方法不是直接预测下一个状态,而是构建一个环境模型来预测状态的变化。有些方法使用模型集成来建模环境,并且通过模型集成的方式来估计建模的不确定性。还有些方法是直接优化多步预测误差来降低长轨迹生成中的模型误差。然而,这些方法都是以黑盒的方式改进了环境建模,忽略了环境动态的内部结构。
4.因此,本发明希望通过设计分解预测的网络结构,来对环境进行更准确的建模。本发明亟待解决的技术问题是如何对环境的动态进行分解。
技术实现要素:
5.针对基于模型的深度强化学习建模质量较低的问题,本发明旨在提出了一种基于环境动态分解模型的深度强化学习方法,通过聚类算法分解动态环境模型并结合强化学习方法进行策略优化,实现了高效的强化学习方法。
6.本发明利用以下技术方案实现:
7.一种基于环境动态分解模型的深度强化学习方法,具体包括以下步骤:
8.步骤1:进行环境动态分解,包括:首先对每个动作维度进行特征值的提取,这一特征值为每个动作维度与所有状态维度之间的皮尔逊相关系数;随后依据特征向量进行动作维度的聚类,将相似的动作维度聚类到一起,相异的分到不同的簇中;最后将聚类的结果作为对环境动态的分解结果;
9.步骤2:建立环境动态分解模型,包括:首先确定以多个环境模型建模环境的底层
框架,模型模型的数量将对应于环境分解过程中所发现的子动态的数量,使用每一个模型分别预测每一个子动态;每一个子动态对应的子模型都输入当前的状态以及相对应的动作空间中的动作,来预测一个相应的变量,输出一个隐空间变量;随后用子模型来预测一个隐空间变量;在所有的子模型预测完毕后,把所有子模型的预测结果融合起来,通过一个融合神经网络,最后输出一个预测结果;从这个预测结果中,使用解码网络来解码出下一个时刻的状态s,以及这一过程的奖励r;
10.步骤3:实现环境动态分解模型与深度强化学习的结合,优化非基于模型的深度强化学习方法。
11.所述步骤1进一步包括以下处理:
12.步骤1.1:确定环境动态与动作之间的关系;
13.步骤1.2:对动作维度进行特征提取;
14.对动作维度进行分解相当于对环境动态进行分解,首先对每个动作维度进行相关特征值的提取,具体每个动作维度与所有状态维度之间的皮尔逊相关系数来作为该动作维度的特征向量;动作维度的特征向量表达式如下:
15.fi=《|f
i,1
,...,f
i,n
|》
16.f
i,j
表达式如下:
[0017][0018]
其中,n为状态维度大小,a为动作向量,δs为由于执行动作a而产生的状态变化量,i,j为对应的维度,cov()为协方差,为第i维度的动作向量的标准差,为第j维度的状态变化量的标准差,f
i,j
为动作维度i与状态维度j的变化量之间的皮尔逊相关系数数值;
[0019]
步骤1.3:根据动作维度的特征向量使用聚类算法进行动作空间的环境动态分解;
[0020]
以每个动作维度的特征向量作为是否与其他动作维度进行聚类的依据;同时会设置一个阈值,当同一个簇内的动作维度的相似性较高,不同簇间的动作维度间的差异性较高时,将终止聚类过程,并且使用当前的聚类结果作为分解方案。
[0021]
所述隐空间变量如下式所示:
[0022][0023]
其中,h为空间变量,s为上一时间步t-1的状态,为上一时间步t-1在gm空间下的动作值,k为环境动态分解为子动态的个数,为对环境动态分解后的第m个环境子动态的建模。
[0024]
所述步骤3采用dyna-style类方法,具体包括:使用建模的环境模型来产生更多的训练数据,来进行策略优化。
[0025]
所述步骤3采用analytical gradient方法,具体包括:首先使用环境模型产生很多条轨迹,随后使用一种收益的计算方式来计算每条轨迹上面的收益,最后直接最大化这些计算出来的收益,直接优化模型产生的轨迹,来进行策略优化。
[0026]
与现有技术相比,本发明能够达成以下有益技术效果:
[0027]
1)提高基于模型的强化学习的策略训练表现;
[0028]
2)实现了分解模型与一般强化学习方法的结合,通过提出新的分解网络结构,极大地提高了环境建模的准确性,从而提高了基于模型的深度强化学习方法的学习效果。
附图说明
[0029]
图1为本发明的基于环境动态分解模型的深度强化学习方法整体流程图;
[0030]
图2为本发明的基于环境动态分解模型的深度强化学习方法建模示意图;(a)猎豹环境,(b)多种子动态方案,(c)动作空间分解方案,(d)模型误差;
[0031]
图3为分解模型建模图;
[0032]
在最左侧的部分完成对动作维度特征的提取,以及动作维度的聚类,得到动态的分解方案,随后,右侧部分使用该分解方案来进行环境动态的分解预测。
具体实施方式
[0033]
以下结合附图和具体实施例对本发明的技术方案进行详细说明。
[0034]
例如,对于一个猎豹奔跑环境的建模,其中环境动态可以以各种方式分解。根据每个子动态的作用,我们可以将其分解为三个子动态:大腿处的动态,胫骨处的动态,脚的动态;或者根据每个子动态的位置,可以将其分解为两个子动态:前部动态和后部动态。
[0035]
如图1所示,为本发明的基于环境动态分解模型的深度强化学习方法整体流程图;本发明中基于分解动态模型的强化学习方法可以分解为环境分解方式的确定,环境分解模型的建立,与深度强化学习结合三个部分。
[0036]
本发明的具体流程如下:
[0037]
步骤1:进行环境动态分解,对动作空间进行分解就相当于对环境动态进行分解。在这一基础上,首先对每个动作维度进行特征值的提取,这一特征值为每个动作维度与所有状态维度之间的皮尔逊相关系数;随后依据特征向量进行动作维度的聚类,将相似的动作维度聚类到一起,相异的分到不同的簇中;最后将聚类的结果作为对环境动态的分解结果。
[0038]
步骤1.1:确定环境动态与动作之间的关系;
[0039]
在绝大多数环境中,环境的动态都是由于动作对环境造成了影响而产生,因此对环境动态的分解需要从对动作进行分解开始,因此,环境动态的分解问题转换成了对动作空间进行分解的问题。
[0040]
步骤1.2:对动作维度进行特征提取;
[0041]
对动作维度进行分解相当于对环境动态进行分解,首先对每个动作维度进行相关特征值的提取,具体每个动作维度与所有状态维度之间的皮尔逊相关系数来作为该动作维度的特征向量。该特征描述了相应的动作维度与环境的动态之间的联系,帮助对动作空间进行良好的分解。
[0042]
动作维度的特征向量表达式如下:
[0043]fi
=《|f
i,1
,...,f
i,n
|》
[0044]fi,j
表达式如下:
[0045][0046]
其中,n为状态维度大小,a为动作向量,δs为由于执行动作a而产生的状态变化量,i,j为对应的维度,cov()为协方差,为第i维度的动作向量的标准差,为第j维度的状态变化量的标准差,f
i,j
为动作维度i与状态维度j的变化量之间的皮尔逊相关系数数值;
[0047]
步骤1.3:根据动作维度的特征向量使用聚类算法进行动作空间的环境动态分解;
[0048]
分解目标是将相似的动作维度放在一起,将不相似的动作维度分开。为了实现这一目标,使用聚类的方法。以每个动作维度的特征向量作为是否与其他动作维度进行聚类的依据。同时会设置一个阈值,当同一个簇内的动作维度的相似性较高,不同簇间的动作维度间的差异性较高时,将终止聚类过程,并且使用当前的聚类结果作为分解方案。
[0049]
步骤2:环境动态分解模型的建立:一般的环境模型的建立方式是:使用一个神经网络,这个神经网络的输入是当前的状态s与当前的动作a,输出是下一时刻的状态s
′
与这一过程所收集到的奖励r。
[0050]
本步骤中,首先确定以多个环境模型建模环境的底层框架,模型模型的数量将对应于环境分解过程中所发现的子动态的数量,使用每一个模型分别预测每一个子动态;每一个子动态对应的子模型都输入当前的状态以及相对应的动作空间中的动作,来预测一个相应的变量,输出一个隐空间变量;随后用子模型来预测一个隐空间变量;在所有的子模型预测完毕后,把所有子模型的预测结果融合起来,通过一个融合神经网络,最后输出一个预测结果;从这个预测结果中,使用解码网络来解码出下一个时刻的状态s,以及这一过程的奖励r。
[0051]
隐空间变量如下式所示:
[0052][0053]
其中,h为空间变量,s为上一时间步t-1的状态,为上一时间步t-1在gm空间下的动作值,k为环境动态分解为子动态的个数,为对环境动态分解后的第m个环境子动态的建模;
[0054]
步骤3:与深度强化学习的结合:
[0055]
对于与深度强化学习结合,尝试了与两种主流的基于模型的深度强化学习方法进行结合:dyna-style方法和analytical类方法。前者使用模型产生训练数据,并使用无模型的强化学习方法来进行策略优化。后者利用了模型产生的轨迹中的可微性,直接优化整条轨迹。这两类方法的共同点在于,策略的质量都受限于模型的准确性,当提高了模型的准确性后,策略的质量也将会提高。
[0056]
步骤3.1:dyna-style方法
[0057]
dyna-style方法的主要目标是:优化过程仍然使用非基于模型的深度强化学习方法,但是使用建模的环境模型来产生更多的训练数据,来帮助非基于模型的强化学习方法进行学习。
[0058]
步骤3.2:analytical gradient方法
[0059]
analytical gradient方法的主要目标是:由于所建立的环境模型是由神经网络构成的,所以当使用这一环境模型产生一条长的序列时,这一序列上的各个元素之间是保留梯度的,因此可以直接进行策略的优化。首先使用环境模型产生很多条轨迹,随后使用一种收益的计算方式来计算每条轨迹上面的收益,最后直接最大化这些计算出来的收益即可达到策略优化的效果。
[0060]
如图2所示,为本发明的基于环境动态分解模型的深度强化学习方法建模示意图。对于如图(a)猎豹环境,将其分成(b)中的多种子动态方案,每种子动态方案对应于(c)中的动作空间分解方案,最后在与当前的基于模型的强化学习方法dreamer结合时,可以降低(d)中的模型误差。
[0061]
如图3所示,为分解模型建模图。在最左侧的部分完成对动作维度特征的提取,以及动作维度的聚类,得到动态的分解方案,随后,右侧部分使用该分解方案来进行环境动态的分解预测。本发明提出了一个新的世界模型构建框架:环境动态分解建模框架。以分解的方式建模环境动态,并包含两个主要组成部分:子动态发现和动态分解预测。前者用于发现子动态,通过分析环境动态和动作之间的关系,采用聚类方法对动作进行合理分解,得到子动态。后者根据分解的结果,进行分解动态预测建模。不需要先验知识,并且环境动态分解是完全自动的。此外,正交于现有的基于模型的强化学习算法,可以作为主干与任何基于模型的强化学习算法结合。实验表明,本法发明可以显著提高模型的精度和渐近性能。
[0062]
以上对本发明做了示例性的描述,应该说明的是,在不脱离本发明的核心的情况下,任何简单的变形、修改或者其他本领域技术人员能够不花费创造性劳动的等同替换均落入本发明的保护范围。
技术特征:
1.一种基于环境动态分解模型的深度强化学习方法,其特征在于,该方法具体包括以下步骤:步骤1:进行环境动态分解,包括:首先对每个动作维度进行特征值的提取,这一特征值为每个动作维度与所有状态维度之间的皮尔逊相关系数;随后依据特征向量进行动作维度的聚类,将相似的动作维度聚类到一起,相异的分到不同的簇中;最后将聚类的结果作为对环境动态的分解结果;步骤2:建立环境动态分解模型,包括:首先确定以多个环境动态模型建模环境动态的底层框架,模型的数量将对应于环境分解过程中所发现的子动态的数量,使用每一个模型分别预测每一个子动态;每一个子动态对应的子模型都输入当前的状态以及相对应的动作空间中的动作,来预测一个相应的变量,输出一个隐空间变量;随后用子模型来预测一个隐空间变量;在所有的子模型预测完毕后,把所有子模型的预测结果融合起来,通过一个融合神经网络,最后输出一个预测结果;从这个预测结果中,使用解码网络来解码出下一个时刻的状态s以及这一过程的奖励r;步骤3:实现环境动态分解模型与深度强化学习的结合,优化非基于模型的深度强化学习方法。2.如权利要求1所述的基于环境动态分解模型的深度强化学习方法,其特征在于,所述步骤1进一步包括以下处理:步骤1.1:确定环境动态与动作之间的关系;步骤1.2:对动作维度进行特征提取;对动作维度进行分解相当于对环境动态进行分解,首先对每个动作维度进行相关特征值的提取,具体每个动作维度与所有状态维度之间的皮尔逊相关系数来作为该动作维度的特征向量;动作维度的特征向量表达式如下:f
i
=<|f
i,1
,...,f
i,n
|>f
i,j
表达式如下:其中,n为状态维度大小,a为动作向量,δs为由于执行动作a而产生的状态变化量,i,j为对应的维度,cov()为协方差,为第i维度的动作向量的标准差,为第j维度的状态变化量的标准差,f
i,j
为动作维度i与状态维度j的变化量之间的皮尔逊相关系数数值;步骤1.3:根据动作维度的特征向量使用聚类算法进行动作空间的环境动态分解;以每个动作维度的特征向量作为是否与其他动作维度进行聚类的依据;同时会设置一个阈值,当同一个簇内的动作维度的相似性较高,不同簇间的动作维度间的差异性较高时,将终止聚类过程,并且使用当前的聚类结果作为分解方案。3.如权利要求1所述的基于环境动态分解模型的深度强化学习方法,其特征在于,所述隐空间变量如下式所示:
其中,h为空间变量,s为上一时间步t-1的状态,为上一时间步t-1在g
m
空间下的动作值,k为环境动态分解为子动态的个数,为对环境动态分解后的第m个环境子动态的建模。4.如权利要求1所述的基于环境动态分解模型的深度强化学习方法,其特征在于,所述步骤3采用dyna-style类方法,具体包括:使用建模的环境模型来产生更多的训练数据,来进行策略优化。5.如权利要求1所述的基于环境动态分解模型的深度强化学习方法,其特征在于,所述步骤3采用analytical gradient方法的,具体包括:首先使用环境模型产生很多条轨迹,随后使用一种收益的计算方式来计算每条轨迹上面的收益,最后直接最大化这些计算出来的收益,直接优化模型产生的轨迹,来进行策略优化。
技术总结
本发明公开了一种本发明的基于环境动态分解模型的深度强化学习方法,包括环境分解方式的确定、环境分解模型的建立和与深度强化学习结合,优化非基于模型的深度强化学习方法三个部分,动态进行分解建模来提高环境建模质量,最后我们结合基于模型的深度强化学习方法,来生成策略。与现有技术相比,本发明实现了分解模型与一般强化学习方法的结合,通过提出新的分解网络结构,极大地提高了环境建模的准确性,从而提高了基于模型的深度强化学习方法的学习效果。的学习效果。的学习效果。
技术研发人员:王聪 杨天培 郝建业 郑岩 马亿
受保护的技术使用者:天津大学
技术研发日:2021.12.06
技术公布日:2022/3/8