本发明属于智能体控制领域,涉及一种基于分层强化学习的智能体的避障和寻找目标点等复杂行为控制。
背景技术:
随着人工智能的兴起,机器学习方法越来越多地应用在机器人小车和无人飞行器领域,特别是涉及导航和路径规划等方面。卷积神经网络(convolutionalneuralnetworks,cnns)的发明将传感器数据作为输入,通过训练神经网络,来使机器人小车或无人飞行器来感知周围的环境。从而避免了传统路径规划算法实时性不强,前期需要复杂的环境建模和精准的定位等缺点。
其中,强化学习(reinforcementlearning,rl)作为机器学习的重要组成方面,不同于神经网络“黑箱”难以调整网络结构和超参数性质,主要通过与环境的不断交互来建立从状态到动作的映射来使自己获得的累计奖励最大,因此拥有更好的自适应能力和对复杂非线性系统的自我学习能力。
作为一种端对端的学习模型,优点是不需要考虑中间复杂的建模计算过程,缺点是如果直接将传感器数据作为输入,全靠神经网络来进行状态特征的提取和决策,对于不同状态下不同障碍物的躲避方式不一,对于其行为评价方式也不同,因此很难用一个奖励函数来涵盖所有情况,而且,这样训练得到结果往往时间代价过大,可移植性较差。基于此,提出利用分层强化学习的方法来将导航的主任务分成多个不同的子任务分别进行训练,近年来广泛应用于机器人小车和无人飞行器的导航领域研究中。
强化学习是一个算法更新迭代迅速的领域,其主要算法分类可以分为基于模型(model-based)的和无模型(model-free)两大类。其中,无模型又分为策略梯度优化(policyoptimization)和值优化(valueoptimization)两大类。值优化经典算法包括q-learning,dqn和per等;策略梯度优化经典算法包括a2c/a3c、ppo等;基于策略梯度优化和值优化提出的actor-critic框架,分别用两个网络——值网络和策略网络,来对动作进行评分和优化。值优化算法在状态空间上计算每个状态的状态值或状态动作值来指导动作的选择,对于无人机输出动作为连续值,如角速度和线速度等,计算开销过大;策略梯度优化则是在策略空间中寻找最优策略,省去了复杂的值计算过程,相比与基于值优化算法,搜索算法适用范围更广,但也存在容易收敛到局部最小值,方差较大等缺点。因此,本发明在分层训练时,可以适用深度确定性策略梯度ddpg、td3等诸多强化学习算法,具体实际具体分析,本发明采用深度确定性策略梯度算法ddpg。
ddpg算法基于actor-critic算法框架,如图1所示。分为两个网络:q网络和策略网络μ;q网络主要用来拟合q函数,记为θq,表示对actor在每个时间步长的评价;策略网络μ用来拟合确定性行为策略μ函数,每一时间步长的行为可以通过at=μ(st)获得,记为θμ。ddpg采用了经验回放机制(experiencereplay)和单独的目标网络来使训练过程高效化,减少数据之间的关联性,提高算法的稳定性和鲁棒性。具体是为q网络和策略网络μ各自创建两个神经网络,记为目标网络θq′和θμ′,ddpg网络参数更新根据回合数以较慢的方式进行更新,而不是简单的复制参数,这种方式称为soft-update。整个框架尽可能使actor朝着获得更大q值的方向更新网络。为了实现尽可能的地多探索,增加动作的随机性,ddpg作为一种离策略算法,前期需要尽可能丰富的样本作为后期的训练,因此增加一个噪声n来构建行动策略μ′。
分层强化学习用来智能体路径规划主要是充分利用分而治之的思想,将导航的主任务分为多个不同的子任务,在规模较小的范围内进行求解,各自训练,从而实现状态空间的降维,最后通过某种融合机制进行子任务的选择。基于分层强化学习思想在智能体的应用主要分为两类,第一类不指定确定的子任务,借鉴基于option的分层强化学习机制让网络自己学习和生成相应的子任务,分阶段地完成主任务目标;第二类是确定明确的子任务功能,譬如将导航任务分为避障和寻找目标点两个子任务,分别设置奖励函数充分训练后,再基于某种融合规则来进行动作的选择。
第一类方法则是让智能体通过环境的交互来学习子策略,实现自动的分层结果。其经典算法主要是元学习共享分层(meta-learningsharedhierarchies,mlsh)算法,主要框图如图2所示。
φ是一个向量集合φ1,φ2,…φk,其中,
mlsh学习一个分层策略,其中主策略在多个子策略之间进行切换。主策略在每n个时间步上选择一个动作,那个n个时间步执行的子策略就构成了一个高级动作,对于机器人小车或无人机导航领域,子策略就对应于智能体在四个方向的动作。从元学习角度上分析,自动分层可在新的未知环境中较快的获得最高奖励,即mlsh算法在未知任务上共享子策略,只要学习新的主策略就可以自动适应新的环境,这样避免了重复学习,减少了训练的代价。
第一类方法主要特点在于让智能体自行学习形成子策略,但在mlsh算法中,子策略需要在大量不同的环境下经过较长时间的训练才能形成,而且在训练过程中还需要分别训练主策略(masterpolicy)和子策略(subpolicy),分为warmup阶段和jointupdate阶段。在warmup阶段,得到一个近似最优的masterpolicy;只有在masterpolicy近似最优时,才能保证subpolicy得到正确的更新。此外,mlsh自动分层的子策略,譬如通过利用“enemy”的反弹进而更快达到目的地的“新奇”策略对于机器人小车或无人机的实际应用并不可取。
第二类方法因为已经明确了各自子任务的功能,因此融合网络实质上属于一种“硬融合”,即明确地表示了当前状态的动作选择原则。常用的方法是利用优势函数,如下所示:
其中,θ是状态值网络和优势值网络的共享参数部分,α和β是各自网络的权重参数,
网络整体框图如图3所示。避障网络和目标网络设置不同的环境和奖励函数,各自训练学习;其中,每个网络分为值函数和优势函数的训练,值函数代表着智能体处在当前状态的价值,优势函数代表当前状态采取各个动作的价值,用来指导下一步的决策;根据训练的结果,最后通过一个f(x)融合函数,结合当前状态值函数和优势函数来进行评价,最后选取评价值较大的那个动作作为下一步的决策,即判断智能体在当前状态应该采取避障还是寻找目标点。
分层强化学习能够较快地,有针对性地对智能车或无人机进行路径规划,实现导航的目的,但是在第二类方法中,明确子任务的目标,利用优势函数来进行动作的选择只能在离散动作区间上进行,因为动作的选择需要比对当前状态下每个动作的优势函数,最后选取最大的优势函数的动作值作为决策;这种离散动作输出的基于值的方法明显不适用力求最优路径的规划,因为只有输出动作是连续值,如角速度和线速度等,得到的路径才是最短的。第二,第二类融合网路动作的选择,往往需要引入复杂的自定义函数和超参数进行修正,时间代价较高,且可移植性不强。
技术实现要素:
本发明基于现有mlsh算法框架上,利用ddpg算法分别训练智能体在不同环境下各自追寻目标点和避障的能力,最后通过主策略网络来进行动作选择的融合。本发明的主要特点是不同于mlsh算法自动分层形成的子任务,而是明确将导航任务分成追寻目标点和避障两个子任务,这样主要是减少训练时间以及方便实际应用。
本发明的分层强化学习的智能体控制方法包括如下步骤:
s01:将智能体导航任务分成追寻目标点和避障两个子任务;利用ddpg算法训练智能体在第一仿真环境下追寻目标点的能力,得到经训练的目标网络;利用ddpg算法训练智能体在第二仿真环境下的避障能力,得到经训练的避障网络;
s02:训练融合网络,融合网络的输入为感知环境状态变化的特征量和目标点的位置数据,输出为融合系数lamda;通过输出的lamda来得到最终动作,然后通过与环境交换得到的奖励reward来逐步修正融合网络;
s03:将目标点信息和环境状态特征信息作为融合网络的输入,对经过预训练的避障网络和目标网络输出进行动作选择,并根据融合系数lamda来执行最终动作。
与现有技术相比,本发明具有的有益效果是:相对于基于传统融合规则的算法而言,网络自动选择动作的融合不存在死区问题,譬如当判断距离等于阈值时,智能体会认为两种动作都是最优解,这样会产生两种不同的结果;其次,融合规则的阈值距离的选择主要基于经验尝试,可能在不同环境下就会失效。第二相对于mlsh算法自动分层形成的子任务,本发明明确将导航任务分成追寻目标点和避障两个子任务,并事先进行了预训练,子任务不需要再更新学习;同时相对于mlsh算法每隔n个时间步进行子任务的的选择,本发明时间步为1,这样减少了训练时间,但同时吸收了mlsh算法在未知任务提升样本效率,快速解决新任务的优点,具有较好的迁移能力。
附图说明
图1为ddpg算法框图;
图2为第一类方法的网络整体框图;
图3为第二类方法的网络整体框图;
图4为第一仿真环境的示意图;
图5为第二仿真环境的示意图;
图6为本发明方法的整个网络框架图;
图7为实施例中的初步仿真实验结果。
具体实施方式
下面结合说明书附图和实施例对本发明做进一步说明。
本发明基于现有mlsh算法框架上,利用ddpg算法分别训练智能体在不同环境下各自追寻目标点和避障的能力,最后通过主策略网络来进行动作选择的融合。
4.1分层训练
智能体用来学习追寻目标点和避障能力的仿真环境分别如下所示。其中,环境1主要是用来训练小车追寻目标点的能力。由图4可知,在环境1中红色圆圈代表的是随机出现的目标点位置,当小车到达目标点后,即立刻出现下一个目标点位置。环境1主要由正方形的外边界和目标点组成,外边界主要是为了限制智能体的活动范围,整个环境排除了障碍物对智能体训练追寻目标点的干扰。目标网络的奖励函数如下:
式中,p代表当前位置,g代表目标点位置,o代表障碍物位置;dr-t(t)为智能体在t时刻相距目标点的距离;ar-t(t)为智能体在t时刻相距目标点的角度。
目标网络的输入为目标点相对于智能体坐标系的直线距离和倾斜角度,网络输出为智能体的角速度和线速度;奖励函数主要由距离奖励和角度奖励两部分组成,这样促使智能体向目标点靠近,避免了在原地打转无法学习等现象。
避障网络的输入为感知状态变化的特征量,如激光雷达数据或摄像头图像数据。环境2主要是智能体用来训练学习如何避障的能力。由图5可知,环境2中排除了目标点对避障能力学习的干扰。其中,为了充分学习智能体的避障能力,整个环境包括拐弯避障、正面避障和直角避障等三部分。为了使智能体充分探索环境而不是停留在原地,避障网络的奖励函数如下所示。
式中,robstacle为碰到障碍物的惩罚,d为判断是否碰到障碍物的阈值;lin_cmd,ang_cmd分别为智能体线速度和角速度。m(t)为t时刻智能体与障碍物最小状态数据。
4.2融合网络
整个网络框架如图6所示。其中,融合网络的输入为感知环境状态变化的特征量和目标点的位置数据,输出为lamda,lamda取值范围为(0,1),主要是用来对当前状态下避障和追寻目标点动作的权衡。融合网络的训练是通过输出的lamda来得到最终动作,然后通过与环境交换得到的奖励reward来逐步修正网络。
具体实现过程下:
1)首先分别在环境1和环境2下分别训练追寻目标点和避障学习,输入分别为目标点位置信息和环境状态信息,输出为智能体角速度和线速度;
2)在目标网络中,初始化actor/critic神经网络参数;
3)将online网络的参数拷贝给对应的target网络参数;
4)初始化记忆回放库(experiencereplaybuffer);
5)在每一个回合中,actor根据行动策略选择动作a,执行后,返回奖励r和下一个状态st+1,将状态转换四元数储存至记忆回放库中,作为online网络的数据集;
6)记忆回放库储存一定数量后,从中随机采样n个样本进行训练;
7)先后计算qonline和策略网络的梯度并进行更新;
8)至一定回合数后,对目标网络q和目标策略网络进行soft-update;
9)避障网络训练方法与目标网络训练方法一致;
10)将目标点信息和环境状态特征信息作为融合网络的输入,在经过预训练的避障网络和目标网络输出进行动作选择,执行后将状态转换四元数存储至新的记忆回放库,作为融合网络的数据集。
融合网络的训练与目标网络训练方法一致;为了融合网络更快更好地训练,可以选择基于dqn等简单算法。
图7所示为本发明的仿真实验结果如下,其中,左图a为根据激光雷达距离小于某个阈值作为规则的仿真结果,右图b为本发明分层强化学习的智能体控制训练得到的结果,由图7可知若根据激光雷达距离小于某个阈值等规则,会出现两条不同的路径,如左图中下部小方框所示。这主要是因为当前状态所获得的最小距离恰好等于阈值情况,属于既可以避障或者追寻目标点的情况。但从右图可知,根据本发明的方法,此时将目标点信息和环境状态特征信息作为融合网络的输入,对经过预训练的避障网络和目标网络输出进行动作选择,并根据融合系数lamda来执行最终动作,得到此时追寻目标点是当前状态的最佳选择,即本发明方法得到的路径不会出现矛盾的情况。
另外,相对于mlsh算法自动分层形成的子任务,本发明明确将导航任务分成追寻目标点和避障两个子任务,并事先进行了预训练,子任务不需要再更新学习;同时相对于mlsh算法每隔n个时间步进行子任务的的选择,本发明时间步为1,这样减少了训练时间,但同时吸收了mlsh算法在未知任务提升样本效率,快速解决新任务的优点,具有较好的迁移能力。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。