基于深度强化学习技术的仿生机器鱼群集导航模拟方法

文档序号:21347 发布日期:2021-09-21 浏览:30次 >En<

阅读说明:本技术 基于深度强化学习技术的仿生机器鱼群集导航模拟方法 (Bionic robot fish cluster navigation simulation method based on deep reinforcement learning technology ) 是由 高天寒 张岩 于 2021-06-21 设计创作,主要内容包括:本发明提供一种基于深度强化学习技术的仿生机器鱼群集导航模拟方法,涉及多智能体路径导航规划技术领域。该方法首先构建3D鱼群群集环境模型,然后在3D鱼群群集环境中构建仿生机器鱼群集的智能体模型;该智能体模型包括感知模型、运动模型和决策模型三部分;再构建鱼群群集的奖励函数,并在在奖励函数中引入好奇心机制;基于好奇心机制和PPO2算法构建智能体模型的分布式训练框架,让智能体以学习的方式获得行为策略;最后基于构建的分布式训练框架训练智能体模型,实现仿生机器鱼群集的导航模拟。该方法可以使虚拟鱼群在3D环境下学习到合理的鱼群行为,并应用到真实世界的仿生机器鱼群导航行为当中。(The invention provides a bionic robot fish clustering navigation simulation method based on a deep reinforcement learning technology, and relates to the technical field of multi-agent path navigation planning. Firstly, constructing a 3D fish swarm environment model, and then constructing an intelligent model of a bionic robot fish swarm in the 3D fish swarm environment; the intelligent agent model comprises a perception model, a motion model and a decision model; then constructing a reward function of the fish swarm cluster, and introducing a curiosity mechanism into the reward function; constructing a distributed training framework of an intelligent agent model based on a curiosity mechanism and a PPO2 algorithm, and enabling the intelligent agent to obtain a behavior strategy in a learning mode; and finally, training an intelligent body model based on the constructed distributed training framework to realize navigation simulation of the bionic robot fish cluster. The method can enable the virtual fish school to learn reasonable fish school behaviors in a 3D environment, and can be applied to the bionic robot fish school navigation behaviors of the real world.)

基于深度强化学习技术的仿生机器鱼群集导航模拟方法

技术领域

本发明涉及多智能体路径导航规划

技术领域

,尤其涉及一种基于深度强化学习技术的仿生机器鱼群集导航模拟方法。

背景技术

鱼类的群集行为是典型的自组织现象。鱼在游动的过程中为了保证自身的生存会自然的聚集成群,并展示出复杂的集群行为。而每条鱼的游泳仅需遵循两个基本规则便可实现:跟随旁边的鱼;持续移动。如果只基于这两个简单规则去模拟自然鱼群行为,实现仿生机器鱼群集导航,目前大部分人造群体系统是很难实现的。

用来模拟鱼群群集行为实现仿生机器鱼群集导航的常用方法是人工鱼群算法(AFSA)。人工鱼群算法是一种基于模拟鱼群行为的优化算法,是由李晓磊等在2002年提出的一种新型的寻优算法。在一片水域中,鱼生存的数目最多的地方就是本水域中富含营养物质最多的地方,依据这一特点来模仿鱼群的觅食等行为,从而实现全局寻优,这就是鱼群算法的基本思想。

另一种较先进的方法是使用深度强化学习来模拟鱼群聚集行为实现仿生机器鱼群集导航。通过构建环境模型,智能体模型和奖励,使用深度强化学习算法训练鱼群智能体,来实现鱼群自组织行为模拟,然后将训练模型、传感模型直接部署到仿生机器鱼中即可。使用深度强化学习模拟鱼群自组织行为不仅为实现仿生机器鱼群集导航提供了新思路,也推动了深度强化学习在多智能体方向的发展。

人工鱼群算法(AFSA)存在收敛精度低、易陷入局部最优、后期收敛速度慢等问题。该算法对各个超参数十分敏感,容易受步长、种群规模和拥挤度因子的影响,因此具有很大局限性。

目前使用深度强化学习来模拟鱼群群集行为的方法为了简化训练,其仿真大都是简单的2D环境,动作空间与状态空间较小,不能真实地反应鱼群在自然界的群集行为。对实际应用如水下机器人、潜艇导航等意义较小,对研究自然界真实群集行为帮助也很小。

发明内容

本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于深度强化学习技术的仿生机器鱼群集导航模拟方法,实现对仿生机器鱼群集的导航模拟。

为解决上述技术问题,本发明所采取的技术方案是:基于深度强化学习技术的仿生机器鱼群集导航模拟方法,具体包括:

构建3D鱼群群集环境模型;

构建仿生机器鱼群集的智能体模型;所述智能体模型包括感知模型、运动模型和决策模型三部分;

构建鱼群群集的奖励函数,并在奖励函数中引入好奇心机制;

构建智能体模型的分布式训练框架,让智能体以学习的方式获得行为策略;

基于构建的分布式训练框架训练智能体模型,实现仿生机器鱼群集的导航模拟。

进一步地,所述构建3D鱼群群集环境模型的具体方法为:

一、构建鱼群群集环境;

以一个仿生机器鱼的长度为1单位,在Unity3D引擎系统中构建一个3D场景;3D场景的四周和顶部设置为透明的空气墙,3D场景底部模拟真实海洋地形,由凹凸不平的地面和水草组成;顶部和四周空气墙与底部地形通过碰撞体组成了一个密闭空间;

二、构建鱼群运动世界的坐标系;

设定3D场景的底部地形与四周空气墙交接的其中一个顶点为坐标原点;设定3D场景中有n条仿生机器鱼组成的鱼群,用F={f1,f2,…,fn}表示,则第i条仿生机器鱼fi的坐标被表示为pi(xi,yi,zi),i=1,2,…,n;在3D场景中,随机初始化一片区域为目标区域,作为奖励信号驱动鱼群群集行为。

进一步地,所述感知模型的构建方法为:

设定每条仿生机器鱼代表一个智能体,每条鱼能感知到以其当前位置为中心,半径大小为r的球形领域内的所有环境状态信息,其中r为鱼的视距,可手动调整;当其它智能体进入到某仿生机器鱼的视域范围内,该智能体能够感知到其它智能体的位置信息和当前状态;当仿生机器鱼的视域接触到目标区域后,能够感知到目标的方位与距离;

此外,每个智能体的表层包裹有一个Unity3D引擎中的胶囊碰撞体,当智能体与其它智能体或障碍物发生碰撞时,智能体会感知到碰撞信息;注意Unity3D引擎中的碰撞原理是边界框的相交性检测,当碰撞体表层相交时触发碰撞;

所述运动模型的构建方法为:

在虚拟的3D场景中,构建具有连续性动作的智能体运动模型;设定智能体有三个连续动作,分别为向前移动、左右旋转和上下旋转;智能体通过观测信息→神经网络模型→动作决策输出集合的方式控制动作选择;其中,动作决策输出集合是一个浮点类型的决策动作数组vectorAction,每个元素的大小为-1~1的连续值,vectorAction[0]指的是智能体前进的动作,vectorAction[1]表示左右转向动作,vectorAction[2]表示上下转向动作;

所述决策模型的构建方法为:

设定智能体每m个时间步会给出一个决策,输入3D场景中以驱动智能体运动;根据动作模型控制智能体的前进和转向;其中,每个智能体的决策都由一个神经网络拟合得出。

进一步地,所述向前移动具体为:通过对智能体施加一个方向与智能体朝向相同的力M来控制智能体向前移动,其中施加的力M如下公式所示:

M=|vectorAction[0]*fishMaxMoveSpeed| (1)

其中,fishMaxMoveSpeed是智能体的最大移动速度;

所述左右旋转和上下旋转的动作输出分别对应决策动作数组中的第二个元素和第三个元素,代表了旋转角度变化大小的目标值;

计算智能体左右和上下轴向的变化量的平滑值smoothPitchChange、smoothYawChang,如下公式所示:

smoothPitchChange=Mathf.MoveTowards(smoothPitchChange,pitchChange,2*Time.fixedDeltaTime) (2)

smoothYawChange=Mathf.MoveTowards(smoothYawChange,yawChange,2*Time.fixedDeltaTime) (3)

其中,函数Mathf.MoveTowards()返回一个变化量,用于改变智能体从当前值向目标值靠近,pitchChange和yawChange分别对应智能体左右和上下轴向的变化的目标值,Time.fixedDeltaTime是unity3D引擎系统每帧的时间;

然后根据公式4和公式5,得到智能体每帧时间内横轴和纵轴的角度变化量pitch和yaw:

pitch=smoothPitchChange*Time.fixedDeltaTime*pitchSpeed (4)

yaw=smoothYawChange*Time.fixedDeltaTime*yawSpeed (5)

其中,yawSpeed和pitchSpeed是智能体左右和上下转向的速度。

进一步地,所述构建鱼群群集的奖励函数,并在在奖励函数中引入好奇心机制的具体方法为:

设定当食物在智能体的观测范围内,智能体会收到奖励信号,为了驱动智能体向食物靠近,给予其奖励的大小与其距离食物的距离正相关;同时为了给智能体更明确的训练目标,针对智能体距离食物的距离设置距离阈值,在阈值内智能体收到正向奖励,反之智能体收到负向奖励,如下公式所示:

reward_dis=-0.05*(distanceToFood-threshold) (6)

其中,reward_dis为智能体收到的奖励值,distanceToFood为智能体距离食物的距离,threshold为距离阈值;

在奖励函数中加一个内在的好奇心奖励,当智能体探索未知状态时给予其正向奖励反馈;同时设置一个平衡参数来平衡好奇心奖励与其他奖励的占比。

进一步地,所述方法基于好奇心机制和PPO2算法构建智能体模型的分布式训练框架,具体方法为:

由n个独立的策略组合成鱼群游动的策略,每个智能体私有一个带好奇心机制的神经网络作为策略网络;在智能体学习阶段,设置一个共有的中央网络,每个智能体更新自身神经网络参数后,将各自学习的策略发送到中央网络,中央网络收到智能体发送的策略参数后更新全局参数,并将更新后的全局参数返回给对应智能体的策略网络;更新完成后,智能体使用最新的策略采集数据进行学习。

进一步地,所述基于构建的分布式训练框架训练智能体模型,实现仿生机器鱼群集的导航模拟的具体方法为:

训练开始时初始化随机策略θ0和截断阈值∈;设定学习过程一共持续Kmax回合,每个回合中,智能体都会依照当前策略θk收集策略轨迹Dk(s0,a0,r0,s1,a1,r1,s2...sT),其中,θk代表第k次更新后的策略;st,at,rt,st+1分别代表该策略轨迹第t步收集的环境状态、动作、奖励和下一个状态,其中t∈[0,T];T代表这一策略轨迹的最大步数;然后结合内置的好奇心机制计算当前回合的好奇心奖励,根据策略轨迹Dk中的交互数据计算带有好奇心奖励的损失函数值;每个智能体根据损失函数值进行梯度下降,通过反向传播更新策略学习的网络参数;智能体策略更新完成后,将自身策略传递到中央网络更新全局策略,中央网络每次更新后,将更新完成的全局策略发送给传递策略的智能体。

进一步地,所述带有好奇心奖励的损失函数值的具体计算方式如下:

Aθ′(st,at)=δt+(γλ)δt+1+...+(γλ)T-t+1δT-1 (8)

其中,J(θ)代表PPO2算法的策略梯度损失函数;函数clip(a,amin,amax)将a的值限制在amin与amax之间,若a大于amax返回amax,若a小于amin返回amin,否则返回a;pθ(at|st)是在策略θ,状态st下动作at的概率分布;Aθ′(at|st)是在策略θ′,状态st下的动作优势估计;∈截断阈值;γ是折扣因子;V(st)是状态st的价值;δt为时间步t下的时序差分误差;代表时间步t下的好奇心奖励,rt代表环境正常的反馈奖励。

采用上述技术方案所产生的有益效果在于:一种基于深度强化学习技术的仿生机器鱼群集导航模拟方法,基于深度强化学习技术,以近端策略优化算法与好奇心机制为核心,训练出一种基于深度强化学习技术的仿生机器鱼群集导航模拟方法。模拟实验表明,基于深度强化学习和好奇心机制的训练方法可以使虚拟鱼群在3D环境下学习到合理的鱼群行为,并应用到真实世界的仿生机器鱼群导航行为当中。经过训练的鱼群自主地学习到了“鱼群风暴”的行为。经过学习的虚拟鱼,实现了从随机游动到逐渐聚集的行为,每条鱼在模拟开始后会随机探索,在发现其他鱼后会主动与最近的鱼靠拢,在鱼群发现营养丰富的区域后会停止探索,聚集觅食。本方法通过控制部分鱼的速度参数,观察了鱼群的群集行为,通过对比分析,发现与自然鱼群群集现象惊人的一致性。

当所有鱼最大速度相同时,每条鱼会根据鱼群规模自动调整自身速度与方向,且与整个鱼群移动方向保持一致性。当把鱼群中超过百分之三十比例的鱼最大速度减半时,为了避免碰撞,其余的鱼会自动调整减慢自身移动速度。此时整个鱼群的移动速度会放慢,这种现象体现了鱼个体之间对鱼群整体活动的适应性。但当只有个别鱼的最大速度被限制时,鱼群不会为它们减缓游动速度,这也就导致了这些游动缓慢的鱼只能在鱼群最外围活动,且获得食物的几率大大降低。这种现象在自然界也很常见,是一种典型的优胜劣汰现象,这些被鱼群抛弃的个体,其生存概率将会降低。根据这个现象可以通过控制仿生机器鱼的速度控制仿生鱼群的群集导航行为。

附图说明

图1为本发明实施例提供的一种基于深度强化学习技术的仿生机器鱼群集导航模拟方法的流程图;

图2为本发明实施例提供的具体环境场景效果图;

图3为本发明实施例提供的单个智能体模型结构图;

图4为本发明实施例提供的

具体实施方式

的好奇心机制模型示意图;

图5为本发明实施例提供的鱼群风暴效果图;

图6为本发明实施例提供的初始化的混乱鱼群效果图;

图7为本发明实施例提供的有好奇心和无好奇心的实验结果对比图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

本实施例中,基于深度强化学习技术的仿生机器鱼群集导航模拟方法,如图1所示,包括以下步骤:

步骤1、构建3D鱼群群集环境模型;

步骤1.1、构建鱼群群集环境;

为了模拟真实世界的鱼群群集环境,以一个仿生机器鱼的长度为1单位,在Unity3D引擎系统中构建一个3D场景;3D场景的四周和顶部设置为透明的空气墙,3D场景底部模拟真实海洋地形,由凹凸不平的地面和水草组成;顶部和四周空气墙与底部地形通过碰撞体组成了一个密闭空间,以限制鱼群的移动;

步骤1.2、构建鱼群运动世界的坐标系;

设3D场景的底部地形与四周空气墙交接的其中一个顶点为坐标原点;设定3D场景中有n条仿生机器鱼组成的鱼群,用F={f1,f2,…,fn}表示,则第i条仿生机器鱼fi的坐标被表示为pi(xi,yi,zi),i=1,2,…,n;为了模拟自然界鱼群觅食的行为,在3D场景中,随机初始化一片区域为目标区域,作为奖励信号驱动鱼群群集行为;

本实施例为了模拟真实世界的鱼群群集环境,以一个仿生机器鱼的长度为1单位,在Unity3D引擎中构建了一个长宽高为100×100×50的3D场景,如图2所示,环境的四周和顶部都有透明的空气墙,环境底部模拟真实海洋地形,由凹凸不平的地面和水草组成。顶部和四周空气墙与底部地形通过碰撞体组成了一个密闭空间,以限制鱼群的移动。设底部地形与四周空气墙交接的其中一个顶点为坐标原点(0,0,0)。假设有n条鱼组成的鱼群,用F={f1,f2,…,fn}表示,则鱼fi的坐标可以被表示为pi(xi,yi,zi)。在该场景中,为了模拟自然界鱼群觅食的行为,会随机初始化一片区域为目标区域,即营养物质丰富区域,作为奖励信号驱动鱼群群集行为。

步骤2、构建仿生机器鱼群集的智能体模型;所述智能体模型包括感知模型、运动模型和决策模型三部分;

步骤2.1、构建感知模型;

设定每条仿生机器鱼代表一个智能体,每条鱼能感知到以其当前位置为中心,半径大小为r的球形领域内的所有环境状态信息,其中r为鱼的视距,可手动调整;当其它智能体进入到某仿生机器鱼的视域范围内,该智能体能够感知到其它智能体的位置信息和当前状态;当仿生机器鱼的视域接触到目标区域后,能够感知到目标的方位与距离;

此外,每个智能体的表层包裹有一个Unity3D引擎中的胶囊碰撞体,当智能体与其它智能体或障碍物发生碰撞时,智能体会感知到碰撞信息;注意Unity3D引擎中的碰撞原理是边界框的相交性检测,当碰撞体表层相交时触发碰撞。

本实施例中,构建的仿生机器鱼群集的智能体模型如图3所示,在图3中可以看到智能体相对于环境的比例以及观测范围大小。根据仿生机器鱼的实际条件,模拟其感知环境的能力,仿生机器鱼的感知能力模仿了自然界中的鱼类视觉,鱼类主要通过鱼眼来感知周围环境,由于鱼的生理结构特殊(鱼眼长在两侧,且单眼视野在垂直和水平面上都接近或超过180°),加上在游动过程中鱼头可以灵活变向,鱼的视域几乎无死角。因此,本发明使用一个球形区域作为智能体的观测范围,即智能体可感知到以其当前位置为中心,半径大小为r的球形领域内的所有环境状态信息,例如其它智能体的位置方向、食物的方位与距离等,其中r为鱼的视距,可手动调整。

步骤2.2、构建运动模型;

在虚拟的3D环境中,构建具有连续性动作的智能体运动模型;设定智能体有三个连续动作,分别为向前移动、左右旋转和上下旋转;智能体通过观测信息→神经网络模型→动作决策输出集合的方式控制动作选择;其中,动作决策输出集合是一个浮点类型的决策动作数组vectorAction,每个元素的大小为-1~1的连续值,vectorAction[0]指的是智能体前进的动作,vectorAction[1]表示左右转向动作,vectorAction[2]表示上下转向动作;

所述向前移动具体为:通过对智能体施加一个方向与智能体朝向相同的力M来控制智能体向前移动,其中施加的力M如下公式所示:

M=|vectorAction[0]*fishMaxMoveSpeed| (1)

其中,fishMaxMoveSpeed是智能体的最大移动速度,即智能体的移动速度在0~fishMaxMoveSpeed之间;

所述左右旋转和上下旋转的动作输出分别对应决策动作数组中的第二个元素和第三个元素,代表了旋转角度变化大小的目标值;

智能体会修正当前轴向到目标值,为了让这个过程表现更加平滑,需要先计算智能体左右和上下轴向的变化量的平滑值smoothPitchChange、smoothYawChang,即每0.02s由当前角度值到目标值的变化量,具体公式如下:

smoothPitchChange=Mathf.MoveTowards(smoothPitchChange,pitchChange,2*Time.fixedDeltaTime) (2)

smoothYawChange=Mathf.MoveTowards(smoothYawChange,yawChange,2*Time.fixedDeltaTime) (3)

其中,函数Mathf.MoveTowards()返回一个变化量,用于改变智能体从当前值向目标值靠近,pitchChange和yawChange分别对应智能体左右和上下轴向的变化的目标值,Time.fixedDeltaTime是unity3D引擎系统每帧的时间,在这里作为改变速度限制,即在角度变化过程中最大速度不会超过2*Time.fixedDeltaTime;

然后根据公式4和公式5,得到智能体每帧时间内横轴和纵轴的角度变化量pitch和yaw:

pitch=smoothPitchChange*Time.fixedDeltaTime*pitchSpeed (4)

yaw=smoothYawChange*Time.fixedDeltaTime*yawSpeed (5)

其中,yawSpeed和pitchSpeed是智能体左右和上下转向的速度;

步骤2.3、构建决策模型;

设定智能体每m个时间步会给出一个决策,输入3D场景中以驱动智能体运动;根据动作模型控制智能体的前进和转向,即每0.1s每个智能体的决策策略都会给出一个-1~1之间的浮点数来控制智能体的前进和转向;其中,每个智能体的决策都由一个神经网络拟合得出;

在虚拟的3D环境中,为了较真实地模拟自然界鱼在水中游动的过程,本发明构建具有连续性动作的智能体运动模型;智能体的移动速度与角度除了受其本身的动作决策输出集合影响,智能体在移动的过程中还可能会与其它智能体或障碍物产生刚性碰撞,从而改变智能体自身的移动速度与角度,这一特性的实现是依赖Unity3D引擎中的物理系统实现的;

在Unity3D引擎中每个时间步是0.02s。本实施例中,设定智能体每5个时间步会给出一个决策动作,即每0.1s每个智能体的决策都会给出一个-1~1之间的浮点数来控制智能体的前进和转向;

步骤3、构建鱼群群集的奖励函数;

设定当食物在智能体的观测范围内,智能体会收到奖励信号,为了驱动智能体向食物靠近,给予其奖励的大小与其距离食物的距离正相关;同时为了给智能体更明确的训练目标,针对智能体距离食物的距离设置距离阈值,在阈值内智能体收到正向奖励,反之智能体收到负向奖励,具体如公式6所示:

reward-dis=-0.05*(distanceToFood-threshold) (6)

其中,reward_dis为智能体收到的奖励值,distanceToFood为智能体距离食物的距离,threshold为距离阈值;

本实施例中,当智能体吃到食物时会获得0.5的正向奖励,食物消失,当智能体间发生碰撞或智能体与障碍物发生碰撞,则给予智能体-0.5的负向奖励;

步骤4、在奖励函数中引入好奇心机制;

在奖励函数中加一个内在的好奇心奖励,当智能体探索未知状态时给予其正向奖励反馈;同时设置一个平衡参数来平衡好奇心奖励与其他奖励的占比;

步骤5、基于好奇心机制和PPO2算法构建智能体模型的分布式训练框架,让智能体以学习的方式获得行为策略;

由n个独立的策略组合成鱼群游动的策略,每个智能体私有一个带好奇心机制的神经网络作为策略网络;在智能体学习阶段,设置一个共有的中央网络,每个智能体更新自身神经网络参数后,将各自学习的策略发送到中央网络,中央网络收到智能体发送的策略参数后更新全局参数,并将更新后的全局参数返回给对应智能体的策略网络;更新完成后,智能体使用最新的策略采集数据进行学习;

步骤6、基于步骤5构建的分布式训练框架训练智能体模型,实现仿生机器鱼群集的导航模拟;

训练开始时初始化随机策略θ0和截断阈值∈;设定学习过程一共持续Kmax回合,每个回合中,智能体都会依照当前策略θk收集策略轨迹Dk(s0,a0,r0,s1,a1,r1,s2...sT),其中,θk代表第k次更新后的策略;st,at,rt,st+1分别代表该策略轨迹第t步收集的环境状态、动作、奖励和下一个状态,其中t∈[0,T];T代表这一策略轨迹的最大步数;然后结合内置的好奇心机制计算当前回合的好奇心奖励,根据策略轨迹Dk中的交互数据s0,a0,r0,s1,a1,r1,s2...sT计算带有好奇心奖励的损失函数值;每个智能体根据损失函数值进行梯度下降,通过反向传播更新策略学习的网络参数;智能体策略更新完成后,将自身策略传递到中央网络更新全局策略,中央网络每次更新后,将更新完成的全局策略发送给传递策略的智能体;

所述带有好奇心奖励的损失函数值的具体计算方式如下:

Aθ′(st,at)=δt+(γλ)δt+1+...+(γλ)T-t+1δT-1 (8)

其中,J(θ)代表PPO2算法的策略梯度损失函数;函数clip(a,amin,amax)将a的值限制在amin与amax之间,若a大于amax返回amax,若a小于amin返回amin,否则返回a;函数min(x,y)会返回x和y中较小的那个值;pθ(at|st)是在策略θ,状态st下动作at的概率分布;Aθ′(at|st)是在策略θ′,状态st下的动作优势估计;∈是截断阈值;γ是折扣因子;V(st)是状态st的价值;δt为时间步t下的时序差分误差;代表时间步t下的好奇心奖励,rt代表环境正常的反馈奖励。

本发明构建好奇心机制,促进智能体的探索能力,避免智能体陷入局部最优策略。在这里通过引入一个内在的好奇心奖励来实现,具体实现过程如图4,通过输入当前状态st和动作at预测下一状态然后与st+1对比,通过与st+1构建好奇心奖励 与st+1差异越大奖励越大。同时设置一个平衡参数来平衡好奇心奖励与其他奖励的占比,这个参数需要通过实验不断调整,通常在0.001到0.1之间。此外随着时间推移,未探索的状态会越来越少,好奇心奖励也会越来越低。

本实施例中,基于深度强化学习和好奇心机制的训练方法可以使鱼群在3D环境下学习到合理的鱼群行为,经过训练的鱼群自主地学习到了“鱼群风暴”的行为,如图5所示。而经过训练的智能体模型可保存为pb文件部署到仿生机器鱼中,应用在真实环境。

本实施例中,经过学习的仿生机器鱼,实现了从随机游动到逐渐聚集的行为。实验开始前会初始化每条鱼的位置与角度,如图6所示,每条鱼在实验开始后会随机探索,在发现其他鱼后会主动与最近的鱼靠拢,在鱼群发现营养丰富的区域后会停止探索,聚集觅食,整个过程中仿生机器鱼会避免与周围环境和其他仿生机器鱼发生碰撞。本实施例通过控制部分鱼的速度参数,观察了鱼群的群集行为,通过对比分析,发现仿生机器鱼与自然鱼群群集现象具有一致性。

本实施例中,当所有仿生机器鱼最大速度相同时,每条鱼会根据鱼群规模自动调整自身速度与方向,且与整个鱼群移动方向保持一致性。当把鱼群中超过百分之三十比例的鱼最大速度减半时,会发现为了避免碰撞,其余的鱼会自动调整减慢自身移动速度。此时整个鱼群的移动速度会放慢,这种现象体现了鱼个体之间对鱼群整体活动的适应性。但当只有个别鱼的最大速度被限制时,鱼群不会为它们减缓游动速度,这也就导致了这些游动缓慢的鱼只能在鱼群最外围活动,且获得食物的几率大大降低。这种现象在自然界也很常见,是一种典型的优胜劣汰现象,这些被鱼群抛弃的个体,其生存概率将会降低。根据这个现象我们可以通过控制仿生机器鱼的速度控制仿生鱼群的群集导航行为。

为了证明好奇心机制所带来的影响,本实施例进行了多次对比实验。每次实验训练次数上限设置为500w轮,在相同的实验环境下,可以明显看到在训练次数大约达到70w次后,结合好奇心机制的深度强化学习方法收敛速度明显优于未使用好奇心机制的方法,如图7所示。好奇心机制与PPO算法结合后,训练得到的决策策略规避了局部最优解,得到比普通PPO算法更好的策略,实现了更好的群集导航效果。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种增强驾驶感的AR-HUD抬头显示界面的设计方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!