CN113421345B - 基于深度强化学习技术的仿生机器鱼群集导航模拟方法 - Google Patents
基于深度强化学习技术的仿生机器鱼群集导航模拟方法 Download PDFInfo
- Publication number
- CN113421345B CN113421345B CN202110687099.7A CN202110687099A CN113421345B CN 113421345 B CN113421345 B CN 113421345B CN 202110687099 A CN202110687099 A CN 202110687099A CN 113421345 B CN113421345 B CN 113421345B
- Authority
- CN
- China
- Prior art keywords
- agent
- fish
- intelligent
- strategy
- intelligent body
- 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
Links
- 241000251468 Actinopterygii Species 0.000 title claims abstract description 175
- 239000011664 nicotinic acid Substances 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004088 simulation Methods 0.000 title claims abstract description 23
- 230000002787 reinforcement Effects 0.000 title claims abstract description 22
- 238000005516 engineering process Methods 0.000 title claims abstract description 14
- 239000003795 chemical substances by application Substances 0.000 claims abstract description 130
- 230000006870 function Effects 0.000 claims abstract description 34
- 230000006399 behavior Effects 0.000 claims abstract description 33
- 238000012549 training Methods 0.000 claims abstract description 29
- 230000007246 mechanism Effects 0.000 claims abstract description 25
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 19
- 101001091423 Agaricus bisporus Polyphenol oxidase 2 Proteins 0.000 claims abstract description 7
- 101000611523 Arabidopsis thaliana Protoporphyrinogen oxidase 2, chloroplastic/mitochondrial Proteins 0.000 claims abstract description 7
- 230000008447 perception Effects 0.000 claims abstract description 7
- 230000009471 action Effects 0.000 claims description 46
- 235000013305 food Nutrition 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 12
- 238000000605 extraction Methods 0.000 claims description 12
- 238000012876 topography Methods 0.000 claims description 12
- 230000009182 swimming Effects 0.000 claims description 11
- 238000013528 artificial neural network Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 9
- 230000007613 environmental effect Effects 0.000 claims description 8
- 238000013459 approach Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 7
- 230000001276 controlling effect Effects 0.000 claims description 7
- 230000000007 visual effect Effects 0.000 claims description 6
- 238000007667 floating Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 claims description 4
- 241001113556 Elodea Species 0.000 claims description 3
- 230000008901 benefit Effects 0.000 claims description 3
- 239000002775 capsule Substances 0.000 claims description 3
- 230000002596 correlated effect Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 238000003062 neural network model Methods 0.000 claims description 3
- 239000002344 surface layer Substances 0.000 claims description 3
- 238000002474 experimental method Methods 0.000 description 5
- 230000003592 biomimetic effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000004083 survival effect Effects 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000002431 foraging effect Effects 0.000 description 3
- 108020001991 Protoporphyrinogen Oxidase Proteins 0.000 description 2
- 238000010835 comparative analysis Methods 0.000 description 2
- 230000019637 foraging behavior Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 235000016709 nutrition Nutrition 0.000 description 2
- 230000035764 nutrition Effects 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000015097 nutrients Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/003—Navigation within 3D models or images
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A40/00—Adaptation technologies in agriculture, forestry, livestock or agroalimentary production
- Y02A40/80—Adaptation technologies in agriculture, forestry, livestock or agroalimentary production in fisheries management
- Y02A40/81—Aquaculture, e.g. of fish
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Radar, Positioning & Navigation (AREA)
- Computer Hardware Design (AREA)
- Remote Sensing (AREA)
- Computer Graphics (AREA)
- Feedback Control In General (AREA)
Abstract
本发明提供一种基于深度强化学习技术的仿生机器鱼群集导航模拟方法,涉及多智能体路径导航规划技术领域。该方法首先构建3D鱼群群集环境模型,然后在3D鱼群群集环境中构建仿生机器鱼群集的智能体模型;该智能体模型包括感知模型、运动模型和决策模型三部分;再构建鱼群群集的奖励函数,并在在奖励函数中引入好奇心机制;基于好奇心机制和PPO2算法构建智能体模型的分布式训练框架,让智能体以学习的方式获得行为策略;最后基于构建的分布式训练框架训练智能体模型,实现仿生机器鱼群集的导航模拟。该方法可以使虚拟鱼群在3D环境下学习到合理的鱼群行为,并应用到真实世界的仿生机器鱼群导航行为当中。
Description
技术领域
本发明涉及多智能体路径导航规划技术领域,尤其涉及一种基于深度强化学习技术的仿生机器鱼群集导航模拟方法。
背景技术
鱼类的群集行为是典型的自组织现象。鱼在游动的过程中为了保证自身的生存会自然的聚集成群,并展示出复杂的集群行为。而每条鱼的游泳仅需遵循两个基本规则便可实现:跟随旁边的鱼;持续移动。如果只基于这两个简单规则去模拟自然鱼群行为,实现仿生机器鱼群集导航,目前大部分人造群体系统是很难实现的。
用来模拟鱼群群集行为实现仿生机器鱼群集导航的常用方法是人工鱼群算法(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算法更好的策略,实现了更好的群集导航效果。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (4)
1.一种基于深度强化学习技术的仿生机器鱼群集导航模拟方法,其特征在于:
构建3D鱼群群集环境模型;
构建仿生机器鱼群集的智能体模型;所述智能体模型包括感知模型、运动模型和决策模型三部分;
所述感知模型的构建方法为:
设定每条仿生机器鱼代表一个智能体,每条鱼能感知到以其当前位置为中心,半径大小为r的球形领域内的所有环境状态信息,其中r为鱼的视距,可手动调整;当其它智能体进入到某仿生机器鱼的视域范围内,该智能体能够感知到其它智能体的位置信息和当前状态;当仿生机器鱼的视域接触到目标区域后,能够感知到目标的方位与距离;
此外,每个智能体的表层包裹有一个Unity3D引擎中的胶囊碰撞体,当智能体与其它智能体或障碍物发生碰撞时,智能体会感知到碰撞信息;注意Unity3D引擎中的碰撞原理是边界框的相交性检测,当碰撞体表层相交时触发碰撞;
所述运动模型的构建方法为:
在虚拟的3D场景中,构建具有连续性动作的智能体运动模型;设定智能体有三个连续动作,分别为向前移动、左右旋转和上下旋转;智能体通过观测信息→神经网络模型→动作决策输出集合的方式控制动作选择;其中,动作决策输出集合是一个浮点类型的决策动作数组vectorAction,每个元素的大小为-1~1的连续值,vectorAction[0]指的是智能体前进的动作,vectorAction[1]表示左右转向动作,vectorAction[2]表示上下转向动作;
所述决策模型的构建方法为:
设定智能体每m个时间步会给出一个决策,输入3D场景中以驱动智能体运动;根据动作模型控制智能体的前进和转向;其中,每个智能体的决策都由一个神经网络拟合得出;
构建鱼群群集的奖励函数,并在奖励函数中引入好奇心机制;
构建智能体模型的分布式训练框架,让智能体以学习的方式获得行为策略;
基于构建的分布式训练框架训练智能体模型,实现仿生机器鱼群集的导航模拟;
所述构建鱼群群集的奖励函数,并在奖励函数中引入好奇心机制的具体方法为:
设定当食物在智能体的观测范围内,智能体会收到奖励信号,为了驱动智能体向食物靠近,给予其奖励的大小与其距离食物的距离正相关;同时为了给智能体更明确的训练目标,针对智能体距离食物的距离设置距离阈值,在阈值内智能体收到正向奖励,反之智能体收到负向奖励,如下公式所示:
reward_dis=-0.05*(distanceToFood-threshold) (6)
其中,reward_dis为智能体收到的奖励值,distanceToFood为智能体距离食物的距离,threshold为距离阈值;
在奖励函数中加一个内在的好奇心奖励,当智能体探索未知状态时给予其正向奖励反馈;同时设置一个平衡参数来平衡好奇心奖励与其他奖励的占比;
所述基于构建的分布式训练框架训练智能体模型,实现仿生机器鱼群集的导航模拟的具体方法为:
训练开始时初始化随机策略θ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代表环境正常的反馈奖励。
2.根据权利要求1所述的基于深度强化学习技术的仿生机器鱼群集导航模拟方法,其特征在于:所述构建3D鱼群群集环境模型的具体方法为:
一、构建鱼群群集环境;
以一个仿生机器鱼的长度为1单位,在Unity3D引擎系统中构建一个3D场景;3D场景的四周和顶部设置为透明的空气墙,3D场景底部模拟真实海洋地形,由凹凸不平的地面和水草组成;顶部和四周空气墙与底部地形通过碰撞体组成了一个密闭空间;
二、构建鱼群运动世界的坐标系;
设定3D场景的底部地形与四周空气墙交接的其中一个顶点为坐标原点;设定3D场景中有n条仿生机器鱼组成的鱼群,用F={f1,f2,...,fn}表示,则第i条仿生机器鱼fi的坐标被表示为pi(xi,yi,zi),i=1,2,…,n;在3D场景中,随机初始化一片区域为目标区域,作为奖励信号驱动鱼群群集行为。
3.根据权利要求2所述的基于深度强化学习技术的仿生机器鱼群集导航模拟方法,其特征在于:所述向前移动具体为:通过对智能体施加一个方向与智能体朝向相同的力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是智能体左右和上下转向的速度。
4.根据权利要求3所述的基于深度强化学习技术的仿生机器鱼群集导航模拟方法,其特征在于:所述方法基于好奇心机制和PPO2算法构建智能体模型的分布式训练框架,具体方法为:
由n个独立的策略组合成鱼群游动的策略,每个智能体私有一个带好奇心机制的神经网络作为策略网络;在智能体学习阶段,设置一个共有的中央网络,每个智能体更新自身神经网络参数后,将各自学习的策略发送到中央网络,中央网络收到智能体发送的策略参数后更新全局参数,并将更新后的全局参数返回给对应智能体的策略网络;更新完成后,智能体使用最新的策略采集数据进行学习。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110687099.7A CN113421345B (zh) | 2021-06-21 | 2021-06-21 | 基于深度强化学习技术的仿生机器鱼群集导航模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110687099.7A CN113421345B (zh) | 2021-06-21 | 2021-06-21 | 基于深度强化学习技术的仿生机器鱼群集导航模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113421345A CN113421345A (zh) | 2021-09-21 |
CN113421345B true CN113421345B (zh) | 2023-10-17 |
Family
ID=77789577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110687099.7A Active CN113421345B (zh) | 2021-06-21 | 2021-06-21 | 基于深度强化学习技术的仿生机器鱼群集导航模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113421345B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114141028B (zh) * | 2021-11-19 | 2023-05-12 | 哈尔滨工业大学(深圳) | 智能红绿灯车流调控系统 |
CN114559439B (zh) * | 2022-04-27 | 2022-07-26 | 南通科美自动化科技有限公司 | 一种移动机器人智能避障控制方法、装置和电子设备 |
CN116892932B (zh) * | 2023-05-31 | 2024-04-30 | 三峡大学 | 一种结合好奇心机制与自模仿学习的导航决策方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007048143A (ja) * | 2005-08-11 | 2007-02-22 | Tokyo Institute Of Technology | 3次元物体モデルの動作生成方法 |
CN110758689A (zh) * | 2019-11-22 | 2020-02-07 | 中国科学院自动化研究所 | 仿生机器鱼 |
JP2020166795A (ja) * | 2019-03-31 | 2020-10-08 | 国立大学法人神戸大学 | 効率的に学習を行う強化学習方法、強化学習装置及び強化学習プログラム |
CN111931943A (zh) * | 2020-05-20 | 2020-11-13 | 浙江大学 | 一种统一的基于好奇心驱动的强化学习方法 |
CN112348285A (zh) * | 2020-11-27 | 2021-02-09 | 中国科学院空天信息创新研究院 | 一种基于深度强化学习的动态环境下人群疏散模拟方法 |
CN112469103A (zh) * | 2020-11-26 | 2021-03-09 | 厦门大学 | 基于强化学习Sarsa算法的水声协作通信路由方法 |
-
2021
- 2021-06-21 CN CN202110687099.7A patent/CN113421345B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007048143A (ja) * | 2005-08-11 | 2007-02-22 | Tokyo Institute Of Technology | 3次元物体モデルの動作生成方法 |
JP2020166795A (ja) * | 2019-03-31 | 2020-10-08 | 国立大学法人神戸大学 | 効率的に学習を行う強化学習方法、強化学習装置及び強化学習プログラム |
CN110758689A (zh) * | 2019-11-22 | 2020-02-07 | 中国科学院自动化研究所 | 仿生机器鱼 |
CN111931943A (zh) * | 2020-05-20 | 2020-11-13 | 浙江大学 | 一种统一的基于好奇心驱动的强化学习方法 |
CN112469103A (zh) * | 2020-11-26 | 2021-03-09 | 厦门大学 | 基于强化学习Sarsa算法的水声协作通信路由方法 |
CN112348285A (zh) * | 2020-11-27 | 2021-02-09 | 中国科学院空天信息创新研究院 | 一种基于深度强化学习的动态环境下人群疏散模拟方法 |
Non-Patent Citations (2)
Title |
---|
A numerical simulation method for bionic fish self-propelled swimming under control based on deep reinforcement learning;Lang Yan等;Proc IMechE Part C: J Mechanical Engineering Science;第234卷(第17期);第1-19页 * |
Autonomous Navigation of Swarms in 3D Environments Using Deep Reinforcement Learning;Muhammad Shahbaz等;2020 International Symposium on Recent Advances in Electrical Engineering & Computer Science;第1-6页第1-5节 * |
Also Published As
Publication number | Publication date |
---|---|
CN113421345A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113421345B (zh) | 基于深度强化学习技术的仿生机器鱼群集导航模拟方法 | |
Terzopoulos et al. | Artificial fishes: Autonomous locomotion, perception, behavior, and learning in a simulated physical world | |
CN113495578B (zh) | 一种基于数字孪生式训练的集群航迹规划强化学习方法 | |
CN110471444A (zh) | 基于自主学习的无人机智能避障方法 | |
Cao et al. | Target search control of AUV in underwater environment with deep reinforcement learning | |
Bajec et al. | Organized flight in birds | |
Mura et al. | Visual control of altitude and speed in a flying agent | |
CN109669475A (zh) | 基于人工蜂群算法的多无人机三维编队重构方法 | |
CN112016660B (zh) | 一种物理力和数据联合驱动的三维集群行为模拟方法 | |
CN106022471A (zh) | 基于粒子群优化算法的小波神经网络模型船舶横摇实时预测方法 | |
Lan et al. | Path planning for underwater gliders in time-varying ocean current using deep reinforcement learning | |
Chang et al. | Accuracy improvement of autonomous straight take-off, flying forward, and landing of a drone with deep reinforcement learning | |
CN112469050A (zh) | 一种基于改进灰狼优化器的wsn三维覆盖增强方法 | |
CN117214904A (zh) | 一种基于多传感器数据的鱼类智能识别监测方法和系统 | |
Liu et al. | A swarm of unmanned vehicles in the shallow ocean: A survey | |
CN111811532B (zh) | 基于脉冲神经网络的路径规划方法和装置 | |
CN114609925B (zh) | 水下探索策略模型的训练方法及仿生机器鱼水下探索方法 | |
Zhou et al. | Proactivity of fish and leadership of self-propelled robotic fish during interaction | |
CN115373415A (zh) | 一种基于深度强化学习的无人机智能导航方法 | |
Xue et al. | Monocular vision obstacle avoidance UAV: A deep reinforcement learning method | |
CN113589810B (zh) | 智能体动态自主避障运动方法、装置、服务器及存储介质 | |
CN112947421B (zh) | 一种基于强化学习的auv自主避障方法 | |
Zheng et al. | Policy-based monocular vision autonomous quadrotor obstacle avoidance method | |
van der Veen | Optimizing artificial force fields for autonomous drones in the pylon challenge using reinforcement learning | |
Eccles et al. | Evolving a virtual ecosystem with genetic algorithms |
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 |