一种基于课程式强化学习的单机空战决策方法

未命名 07-15 阅读:376 评论:0


1.本发明属于多智能体强化学习和空战决策领域,涉及一种基于课程式强化学习的单机空战决策方法。


背景技术:

2.深度强化学习是强化学习与深度学习结合的前沿研究领域,是人工智能学术界重点研究方向。强化学习非常适用于解决序列决策问题,其算法训练出的智能体让顶尖人类专家在决策问题上屡屡受败。上世纪90年代,ibm公司所研发的“深蓝”计算机就战胜了超一流国际象棋专家,再后来强化学习算法与深度学习结合,尤其是加入了深度神经网络作为决策机构后,人类在电子游戏领域很难打败由智能体操控的对手。号称最强棋类的围棋,有非常多的棋局对弈情况,被人类认为是最不可能被智能体击败的领域,然而在2017年,alphago以3:0的战绩横扫了当时代表人类最高水平的棋手。在空战领域,由美国国防高级研究计划局(defense advanced research projects agency,darpa)组织的空战演进项目(air combat evolution,ace)中,由深度强化学习训练出的冠军智能体以大比分在近距离空战领域击败了人类专家飞行员。足以见得深度强化学习在解决高时效决策问题上的有效性,其奖励函数设置受人类专家经验引导,训练结果却超越人类能力。
3.然而在单机空战环境下,如何破除零和冲突带来的强化学习训练难的问题,以及突破稠密奖励值带来的人类专家经验限制,成为决策研究的重中之重。


技术实现要素:

4.要解决的技术问题
5.为了避免现有技术的不足之处,本发明提出一种基于课程式强化学习的单机空战决策方法,在全维观测单机空战背景下设计了决策算法,实现在零和冲突较强的空战对抗环境下,智能体能力仍然表现出稳步提升。
6.技术方案
7.一种基于课程式强化学习的单机空战决策方法,其特征在于步骤如下:
8.步骤1:以全维观测环境作为空战环境,动作网络和评价网络采用全连接神经网络结构,使用ppo强化学习算法,以敌我双方的两架战机的仿真数据,在动作网络和评价网络两个网络之间实施神经网络的梯度反向传播算法;
9.所述动作网络的全连接神经网络结构包括4层神经元组成,其中包含1层输入层、2层隐藏层和1层输出层;x1-x12表示神经网络输入状态,a1-a7表示神经网络输出的机动动作;
10.所述输入层所接收的状态量为空战态势,其中:滚转角切向过载n
x
以及法向过载nz作为控制输入三元组并进行编码;双方战机的状态信息各为[v x y z θ ψ],表示速度、三维坐标、姿态角;
[0011]
敌我双方的战机状态为[v
r x
r y
r z
r θ
r ψ
r v
b x
b y
b z
b θ
b ψb],下标表示为r表示
红方战机状态,下标为b表示蓝方战机状态,所以输入层的神经元个数为固定值12个;
[0012]
所述中间2层为隐藏层,采用64个神经元组成每个隐藏层,采取relu激活函数;
[0013]
所述输出层为softmax层,输出是7个基本机动动作,分别是定常、加速、减速、左转弯、右转弯、拉起、俯冲;
[0014]
所述评价网络采用全连接神经网络,在结构上输出层只有一个神经元,其他与动作网络一致;
[0015]
所述ppo强化学习算法的目标函数为:
[0016][0017]
其中表示期望值,min(a,b)表示在参数a和b之间选择一个最小值,表示优势函数的估计,r
t
(θ)是比例函数,表示在当前状态s
t
和当前策略参数θ下执行动作a
t
的概率与在当前状态s
t
和前一个策略参数θ
old
下执行动作a
t
的概率比值;
[0018]
步骤2:建立课程式奖励函数模块:ri=ω1·
rf+ω2·ra_i
+ω3·rw_i
,且
[0019]
(1)基本飞行奖励函数模块:rf=tanh(rh+rv)
[0020]
(2)专家经验奖励函数模块:
[0021]
(3)输/赢判定奖励函数模块:r
w_i
=50
×hi
[0022]
其中,rh表示高度奖励函数,rv表示速度奖励函数,vi表示战机编号为i的速度矢量,d
ij
表示当前编号为i的己方战机指向编号为j的敌机的距离向量,d
ij
是距离向量的模长,hi表示战机编号为i的己方战机击中敌机次数,hit
ij
表示当前编号为i的己方战机是否击中编号为j的敌机,如果击中则值为1,被击中则值为-1,而当前双方没有处于对方的航炮武器范围内则值为0;
[0023]
(4)阶段式权值设计:奖励函数的权值满足条件
[0024]
n1<n2,ω1+ω2+ω3=1
[0025][0026][0027]
[0028]
步骤3:采用self-play与强化学习算法相结合的框架对步骤1和步骤2设计的网络进行训练,
[0029]
步骤4:当动作网络和评价网络的智能体动作网络训练完毕,以动作网络作为决策网络,将空战环境平台中的空战态势作为决策网络的输入相关信息,在网络输出端得到机动动作,完成一步决策。
[0030]
所述敌我双方的两架战机的仿真数据来源于空战训练平台,训练平台中空战态势的三维地面坐标系中的战机动力学模型:
[0031][0032][0033][0034][0035][0036][0037]
每个微分方程左边分别是战机飞行速率、偏航角、俯仰角、三维位置的一阶导数;
[0038]
所述训练平台中机动动作包含定常、减速、加速、左转弯、右转弯、拉起与俯冲七种基本机动动作。
[0039]
所述训练平台中的平台状态转移模块的状态更新方程:
[0040]st+1
=f(s
t
,u
m1
,u
m2
,

,u
mi
,

,u
mn
,t)
[0041]
f表示建立微分方程组构成的状态更新函数,u
mi
表示第i架战机采取的基本机动动作,t表示仿真时间步长。
[0042]
所述切向过载n
x
变化的范围为[-2,2],法向过载nz变化的范围为[-5,5],滚转角变化的范围为[-π/3,π/3]。
[0043]
所述全连接神经网络的相关超参数定义如下:神经网络批处理样本数为batch_siz,神经网络中间2个隐含层的神经元个数分别为n1、n2;每层神经网络的权重系数分别为w1,w2,w3,网络偏置系数分别为b1,b2,b3,每层计算出的传递量分别为l1,l2,out。则全连接神经网络的整个计算过程:
[0044]
l1=relu(batch_samples*w1+b1)
[0045]
l2=relu(l1*w2+b2)
[0046]
out=relu(l2*w3+b3)
[0047]
其中,batch_samples为神经网络一次处理的经验样本,一条经验样本就是12维向量,所以batch_samples是二维矩阵,其维度为[batch_size,12],l1,l2,out分别在批量处理下也是二维矩阵,分别的维度是[batch_size,n1]、[batch_size,n2]和[batch_size,7],其中12和7分别表示空战状态的维数以及机动动作的个数。
[0048]
所述当r
t
(θ)>1,表示在当前策略下当前状态s
t
执行动作a
t
的概率比前一个策略的可能性要大,当0<r
t
(θ)<1,表示在当前策略下当前状态s
t
执行动作a
t
的概率比前一个策略的可能性要小。
[0049]
所述步骤3中的训练时神经网络参数分别为paramr,paramb,智能体经验回放池为aerb,其容量为c,具体表达为:
[0050][0051]
决策神经网络的存放和采样周期分别是为mr和mb个episode,己方智能体神经网络的存放模型:
[0052][0053]
敌方智能体神经网络的采样模型:
[0054][0055]
其中:表示第i个被存入经验回放池的神经网络参数;∪表示两个集合元素的并操作,t表示第t个episode,表示整数,aerb
t
<<1表示删除第1个被存放入智能体的神经网络参数;表示第t个episode的敌方智能体神经网络参数,sample表示对集合进行采样,average表示采样方式为均匀采样。
[0056]
有益效果
[0057]
本发明提出的一种基于课程式强化学习的单机空战决策方法,建立战机在三维空间下的动力学模型,进而设计平台状态转移模块,选取战机的状态空间向量,设计空战训练平台,后续智能体训练和决策算法验证都将会在此平台进行。针对全维观测环境,基于全连接神经网络设计了动作网络和评价网络,并使用ppo强化学习算法设计神经网络的梯度反向传播算法。针对传统奖励函数无法突破人类经验问题,建立课程式奖励函数模块,由易到难逐渐学习空战策略,克服了稀疏奖励信息下学习难的问题。空战过程中存在高对抗性,使得用常规的“集中式训练,分布式执行”的学习方法己方智能体无法在智能体此消彼长的竞争中学到可用的策略,引入智能体经验回放机制,让智能体始终与自身过去版本对抗训练,削弱空战对抗中的零和博弈冲突。当智能体动作网络训练完毕,直接将其作为决策网络,输入相关信息,可输出机动动作,完成一步决策。
[0058]
本发明提出的方法下,课程式奖励结构能够在稀疏奖励信息环境中获取有用的学习信息,比一般的加权奖励结构学到了更好的空战策略,表现为更高的胜率,并且智能体经验回放机制能够有效缓解零和博弈的冲突性。
附图说明
[0059]
图1为七种机动动作示意图
[0060]
图2为状态更新模块示意图
[0061]
图3为动作神经网络结构示意图
[0062]
图4为评价神经网络结构示意图。
[0063]
图5为裁剪函数clip示意图。
[0064]
图6为min函数示意图。
[0065]
图7为基于ppo算法的智能体优化流程图。
[0066]
图8为课程式奖励函数权值示意图。
[0067]
图9为智能体经验回放机制流程图。
[0068]
图10为本发明方法下智能体训练结果
[0069]
图11为智能体经验回放机制vs集中训练机制的奖励值
[0070]
图12为课程式奖励函数结构vs稀疏奖励结构的奖励值
[0071]
图13为课程式奖励函数结构vs常规加权奖励函数结构的奖励值
具体实施方式
[0072]
现结合实施例、附图对本发明作进一步描述:
[0073]
实施例中,步骤1和步骤2完成了如下步骤:
[0074]
步骤一:建立战机在三维空间下的动力学模型,进而设计平台状态转移模块,选取战机的状态空间向量,设计空战训练平台,后续智能体训练和决策算法验证都将会在此平台进行。
[0075]
步骤二:针对全维观测环境,基于全连接神经网络设计了动作网络和评价网络,并使用ppo强化学习算法设计神经网络的梯度反向传播算法。
[0076]
其中步骤一的实施方式如下:
[0077]
(1)战机数学模型设计
[0078]
空战本质上是序列决策问题,仿真平台需要根据仿真步长推算出下一时刻的状态,反映空战状态动态变化过程,状态变化的数学描述为微分方程组,本文研究的对象为固定翼战机,这一类航空器一般在大气层内飞行,其飞行高度受限且空战对抗时空跨度较小,为了简化研究的空战问题,有必要做出如下的合理假设:
[0079]
(1)忽略地球曲率,即采用“平板地球假设”;
[0080]
(2)忽略地球自转和公转,认为地面坐标系为惯性坐标系;
[0081]
(3)忽略战机由油耗等因素带来的质量损失,即战机质点的质量恒定;
[0082]
(4)忽略空气中的摩擦阻力等;
[0083]
(5)忽略空气的流动速度,即空速为0,飞行器的空速为飞行器在地面坐标系中的速度;
[0084]
(6)忽略战机的侧滑角。
[0085]
基于以上假设,在三维地面坐标系中可得如式(1)的战机动力学模型。
[0086][0087]
上述公式中,每个微分方程左边分别是战机飞行速率、偏航角、俯仰角、三维位置的一阶导数。有些固定翼飞机采用的是方向舵控制航向,但是转弯效率过低。这里假定无侧滑角,采取滚转角控制战机的协调转弯,所以这里滚转角不作为状态,认为其为控制输入之一,控制战机的转弯。除滚转角之外,还有另外两个控制输入n
x
,nz,n
x
表示切向过载,可由战机沿轴线推力与重力的比值计算得到,其主要控制战机的加减速,nz表示法向过载,可由战机机身平面垂直向上的升力与重力的比值得到,其主要控制战机的抬头低头。
[0088]
(2)机动动作设计
[0089]
为了应对空战过程中的复杂环境,战机需要根据不同的空战态势做出相应的空战机动动作,在占优空战态势下保持追击空战机动动作以扩大优势位势,在不占优空战态势下改变机动动作以削弱劣势,甚至扭转空战态势由防转攻。所以在空战对抗中合理运用机动动作将为空战过程带来巨大优势。
[0090]
传统的基本空战机动动作有后置滚转、高强势回旋、低强势回旋、筋斗、滚转剪切机动等,战机驾驶员可根据当前空战态势选择。但这些机动动作都是根据人为经验得来的,理论上讲具有一定的局限性,在使用智能体决策时,应该选择更基本的机动动作,由智能体学习获取高级的机动动作,后面的实验证明,智能体能在学习过程中学到更高级的机动动作,本文选取nasa提出的战机基本机动动作集合(basic fight maneuvering,bfm),其中包含定常、减速、加速、左转弯、右转弯、拉起与俯冲。在空战过程中智能体可以通过组合这七种基本机动形成更高级的机动动作。如图1为七种基本机动动作的示意图。
[0091]
图1中1号机动是定常,2号机动是加速,3号机动是减速,4号机动是左转弯,5号机动是右转弯,6号机动是拉起,7号机动是俯冲。结合3.3.1小节建立的战机数学模型,可将基本机动动作映射到战机的控制输入上,在一定的时间内,保持相应的控制输入即可做出相应的基本机动动作。对控制输入三元组进行编码,由于实际战机的物理特性限制,所以能提供的控制输入是有限的。根据某型号战机的特性,这里设置切向过载n
x
变化的范围为[-2,2],法向过载nz变化的范围为[-5,5],滚转角变化的范围为[-π/3,π/3]。在有限的机动动作下,最大化提高机动效率,所以每个控制输入都选取边界值和中间值来离散化,即切向过载n
x
选取-2、0和2,法向过载nz选取-5、1和5,滚转角选取-π/3、0和π/3。表1为具体的控制输入编码与基本机动动作之间的映射关系。
[0092]
表1控制输入编码与基本机动动作映射关系
[0093][0094]
(3)状态转移模块设计
[0095]
基于控制输入编码和建立的战机微分方程组模型(1),仿真平台的状态更新方程可以由式(2)计算。
[0096]st+1
=f(s
t
,u
m1
,u
m2
,

,u
mi
,

,u
mn
,t)(2)
[0097]
上式中,f表示建立微分方程组构成的状态更新函数,u
mi
表示第i架战机采取的基本机动动作,t表示仿真时间步长。使用一定的微分数值计算方法,可以根据当前所有战机状态和基本机动动作输入求得下一仿真时刻的所有战机状态。具体状态更新示意图如图2所示。
[0098]
在实际仿真实验中,可以根据需要选取不同的数值求解方法,本发明中以四阶龙格库塔方法作为求解工具。
[0099]
步骤二的实施方式如下:
[0100]
(1)设计动作和评价网络
[0101]
设计的动作网络为全连接神经网络,全连接神经网络结构是由4层神经元组成,其中包含1层输入层、2层隐藏层和1层输出层,其神经网络结构如图3所示,x1-x12表示神经网络输入状态,a1-a7表示神经网络输出的机动动作。
[0102]
其中输入层所接收的状态量为空战态势,由于本章的空战环境为战机1v1格斗,所以空战态势所涉及的变量只有两架战机的状态。滚转角被作为控制输入,不是状态信息,所以双方战机的状态为[vxyzθψ],分别表示速度、三维坐标、姿态角;综合敌我(红蓝)双方的战机状态为[vrxryrzrθrψrvbxbybzbθbψb],所以输入层的神经元个数为固定值12个。
[0103]
中间2层为隐藏层,需要根据环境复杂度及训练计算条件综合决定每层神经元个数,本文采用64个神经元组成每个隐藏层。为了实现高度非线性映射关系,需要添加非线性激活函数(activationfunction),只有结合非线性激活函数,才能将神经元权值与偏置的线性组合变成非线性映射。本文中所有涉及到神经网络的地方都采取relu激活函数,不采用sigmoid激活函数。求导后可以发现sigmoid激活函数的导数最大值为0.25,在进行误差反向传播过程中,误差量每经过一层神经元都会因为激活函数而衰减一部分,导致传播到后面层数的神经元时,梯度值很小,造成所谓的梯度消失(相反为梯度爆炸)。最终导致一部分神经元的权值更新缓慢甚至不更新了,而梯度爆炸将会使得神经元的权值更新波动变大从而训练不稳定,两者都是不利于神经网络训练的因素,所以这里采用relu激活函数。
[0104]
动作网络为空战智能体的决策机构,其输出是7个机动动作。这里为了保证探索与利用的平衡,所以最后加上一个softmax层,使得输出变成概率,根据概率选择机动动作,保证所有的机动动作都有一定被选择到的概率,从而达到探索目的。
[0105]
其中网络的相关超参数定义如下:神经网络批处理样本数为batch_size,神经网络中间2个隐含层的神经元个数分别为n1、n2。假设每层神经网络的权重系数分别为w1,w2,w3,网络偏置系数分别为b1,b2,b3,每层计算出的传递量分别为l1,l2,out。则全连接神经网络的整个计算过程如式(3)所示。
[0106][0107]
其中,batch_samples为神经网络一次处理的经验样本,一条经验样本就是12维向量,所以batch_samples是二维矩阵,其维度为[batch_size,12],l1,l2,out分别在批量处理下也是二维矩阵,分别的维度是[batch_size,n1]、[batch_size,n2]和[batch_size,7],其中12和7分别表示空战状态的维数以及机动动作的个数。
[0108]
(2)评价网络设计
[0109]
评价网络设计基本与动作网络一致,均采用全连接神经网络。评价网络为了评估当前空战态势的优劣程度,在结构上输出层只有一个神经元,其他都与动作网络一致,这里不再赘述。具体的神经网络结构如图4所示。
[0110]
(3)网络模型优化方法设计
[0111]
设计了动作和评价网络后,需要根据智能体与环境交互的经验样本对网络参数优化。由于在本章节中需要多轮迭代优化智能体,对强化学习算法的稳定性要求较高,所以采用ppo算法作为基础的强化学习算法。ppo算法避免较大的策略更新提高训练的稳定性,从深度学习角度解释,主要有两个原因:
[0112]
(1)在训练中更小的策略参数迭代更有可能收敛到最优解;
[0113]
(2)在训练中发生一次较大的策略更新会导致“offthecliff”,即策略瞬间得到较差的参数,通常会耗费较长时间恢复或根本无法恢复到原来较好的参数。
[0114]
带优势函数的强化学习目标函数如式(4)所示。
[0115]
l
pg
(θ)=e
t
[logπ
θ
(a
t
|s
t
)*a
t
](4)
[0116]
其中a
t
是优势函数,a
t
=q(s
t
,a
t
)-v(s
t
),引入优势函数可以减少训练时的方差,减小方差过大所造成的训练波动,从而削弱过拟合问题,其值大于0表示在当前状态动作a
t
比其他可选的动作更好,logπ(a
t
|s
t
)是在s
t
状态下采取a
t
动作的概率对数。模型采取梯度下降策略,在梯度方向改变策略模型参数,使智能体在未来决策时采取回报更高的动作。在梯度下降的参数更新中,如果每步策略参数更新幅度太小那么训练时间将会很长,幅度太大则会导致训练波动很大,甚至造成训练不稳定。
[0117]
ppo算法中的策略更新较为保守,首先需计算出当前策略相对于过去策略的变化大小,即定义一个新策略与旧策略之间的比值,通过限制比值到[1-ε,1+ε]区间来实现稳定的策略更新,最终达到新旧策略参数变化平稳的目的。在算法实现上,需要使用裁剪技术约束每步的策略参数更新,采用如式(5)的概率比例约束前后策略的更新。
[0118][0119]
形成新的带策略更新约束的目标函数,如式(6)计算。
[0120][0121]
其中表示期望值,min(a,b)表示在参数a和b之间选择一个最小值,表示优势函数的估计,可以使用蒙特卡罗等方法得到优势函数的估计值。r
t
(θ)是比例函数(ratio function),表示在当前状态s
t
和当前策略参数θ下执行动作a
t
的概率与在当前状态s
t
和前一个策略参数θ
old
下执行动作a
t
的概率比值,反映两个策略之间的差异大小。当r
t
(θ)>1,表示在当前策略下当前状态s
t
执行动作a
t
的概率比前一个策略的可能性要大,当0<r
t
(θ)<1,表示在当前策略下当前状态s
t
执行动作a
t
的概率比前一个策略的可能性要小。所以概率比值可以估计新旧策略之间的差异。
[0122]
其中min函数内包含两个部分,是未裁剪的部分,这一项仅限于新旧策略变化较小的时候起作用,当两个策略变化较大时会导致较大的策略梯度更新。裁剪函数clip(

)加入到目标函数中约束概率比值远离1的情况,而这种约束方式相比于trpo(trust region policy optimization)方法使用目标函数之外的kl散度约束限制策略参数变化更为简单和有效。
[0123]
clip(r
t
(θ),1-ε,1+ε)表示限制比例函数,r
t
(θ)的取值范围在(1-ε,1+ε),即当r
t
(θ)在(1-ε,1+ε)范围之内时裁剪函数输出比例函数本身,当r
t
(θ)≤1-ε时,输出1-ε,当r
t
(θ)≥1+ε时,输出1+ε。如图5为clip裁剪函数示意图。
[0124]
结合全式来看,如图4是min函数的示意图,其中分为优势函数两种情况分别讨论,绿色虚线表示min函数前一项不带clip裁剪项,蓝色虚线表示min函数后一项带clip裁剪项,综合得到的红色部分就是最终min函数的输出。
[0125]
有了上述的约束限制,可以保证每步策略更新幅度不会过大,这里采用的是动作-评价网络(actor-critic)结构,其中评价网络的目标函数采用平方差形式,如式(7)所示。
[0126][0127]
在梯度更新时可以将动作和评价网络的目标函数整合到一起训练,并在目标函数中添加熵项,提高智能体的探索能力。式(8)为整体的目标函数的表达式。
[0128][0129]
上式中c1,c2是常值系数,是评价网络与其目标网络的平方误差,s[π
θ
](s
t
)表示当前策略的熵,其计算方式如式(9)所示。
[0130][0131]
策略的熵值越大表示选择各个动作的概率越平均,策略的探索能力越强,一般在设置其系数c2=0.01。策略模型参数需要向目标函数的最大值方向改变,如式(10)。
[0132][0133]
整个算法的训练流程如图7所示。
[0134]
步骤三:针对传统奖励函数无法突破人类经验问题,建立课程式奖励函数模块,由易到难逐渐学习空战策略,克服了稀疏奖励信息下学习难的问题。
[0135]
其实施方式如下:
[0136]
课程式奖励函数结构受启发于课程学习,即先从简单任务学习,慢慢过渡到复杂任务。在多智能体强化学习训练中,简单任务是在智能体之间获取正奖励信息不产生冲突且信号为稠密的,而复杂任务是在智能体之间获取正奖励信息产生冲突且信号为稀疏的。本节提出的课程式奖励结构,从基本飞行奖励开始,到专家经验奖励,再到稀疏胜负奖励,多个阶段逐渐加大智能体的学习难度。本文认为,智能体应该先学会基本飞行技能,之后才能学习更加复杂的机动动作。只有先由人类专家经验引导,智能体在稀疏奖励环境中才能学习到更好的策略。下面对基本奖励函数再整理,形成课程式奖励结构。
[0137]
(1)基本飞行奖励
[0138]
首先,考虑战机飞行的安全性,需进一步约束战机触地报警高度,当战机的飞行高度小于500m时,仿真平台反馈给智能体负奖励信息,约束飞行高度的奖励函数计算式如式(11)。
[0139][0140]
其次,为了保证飞行安全和战机的机动限制,同样速度不应该过高或者过低。对于战机速度约束的奖励函数计算式如式(12)。
[0141][0142]
最后,为了使训练过程更加稳定,反馈的奖励值应该被归一化到(-1,1)之间,本文采用tanh函数进行归一化,所以最终基本飞行奖励如式(13)。
[0143]
rf=tanh(rh+rv) (13)
[0144]
理论上,经过这个阶段的学习,智能体将具备控制速度和高度的基本飞行技能。
[0145]
(2)专家经验奖励
[0146]
在这个阶段,专家经验奖励可以看成最终阶段稀疏输/赢判定奖励的稠密版本,引导智能体学习占据优势的角度态势。在空战过程中,最佳的攻击区域是敌机后半球,当战机飞到这个攻击区域就称之为“咬尾”。本节中将能量态势去除,将其归纳为专家经验奖励阶段需要智能体自由试错的部分,专家经验奖励函数计算式如(14)所示。
[0147]
分别表示三个阶段的训练轮数分割点,所以奖励函数的权值满足条件(21)~(24)。
[0167]
n1<n2,ω1+ω2+ω3=1(21)
[0168][0169][0170][0171]
其中i表示第i轮训练,图8中展示的训练轮数是1000,n1,n2分别是300和600的权值变化图。在仿真实验中前两个阶段的占比应不超过整个训练轮数的20%,避免前两个阶段对智能体策略影响过大,从而影响最后稀疏奖励阶段的探索。
[0172]
步骤四:空战过程中存在高对抗性,使得用常规的“集中式训练,分布式执行”的学习方法己方智能体无法在智能体此消彼长的竞争中学到可用的策略,引入智能体经验回放机制,让智能体始终与自身过去版本对抗训练,削弱空战对抗中的零和博弈冲突。
[0173]
其实施方式如下:
[0174]
1v1空战对抗场景是零和博弈,己方的损失(收益)等于敌方的收益(损失)。与单智能体强化学习任务不同,敌方和己方智能体同时学习,双方奖励函数对立。常规的智能体学习方法在训练过程中会出现敌我双方智能体过拟合,训练结果一边倒甚至所有智能体的决策模型都无法收敛。考虑到空战本身高强度实时决策的环境,本章采用self-play与强化学习算法相结合的框架进行训练。
[0175]
为了实现智能体的稳定博弈,本章不对敌方智能体进行训练。敌方智能体神经网络参数均从己方智能体神经网络经验池采样得到,每隔一定的episode就从经验池中均匀采样神经网络参数复制到敌方智能体神经网络结构上,即智能体一直与自身过去版本对抗,从而不断提升空战技能。敌方智能体采样时间间隔越大则训练进程越稳定,但是智能体进化缓慢,反之采样时间间隔越小则训练进度越快,但是会造成一定程度的不稳定。
[0176]
假设参与空战的己方和敌方智能体的当前神经网络参数分别为paramr,paramb,神经网络经验池为aerb,其容量为c,具体表达为式(25),决策神经网络的存放和采样周期分别是为mr和mb个episode,己方智能体神经网络的存放模型如式(26),敌方智能体神经网络的采样模型如式(27)。
[0177]
[0178]
式(25)中,param
ri
表示第i个被存入经验回放池的神经网络参数。
[0179][0180]
式(26)中,∪表示两个集合元素的并操作,t表示第t个episode,表示整数,aerb
t
<<1表示删除第1个被存放入智能体的神经网络参数。
[0181][0182]
式(27)中,表示第t个episode的敌方智能体神经网络参数,sample表示对集合进行采样,average表示采样方式为均匀采样。
[0183]
采取这样的训练机制,敌方智能体的空战水平能够接近或弱于当前己方智能体,所以不会出现敌方智能体空战水平过高造成己方智能体无法学习到有用的空战策略。敌方智能体在经验回放池中进行采样可以大大增加智能体训练版本的利用率,最终削弱零和博弈场景带来的不稳定性。
[0184]
学习流程框架流程如图9所示。在图9中,可以发现本章节算法和单智能体强化学习算法非常类似,红蓝双方智能体交互得到样本数据只对红方智能体进行训练,而蓝方智能体的神经网络并没有训练,所以很容易和单智能体强化学习算法混淆。但是本文认为这仍然是多智能体强化学习算法环境,有两点原因:其一是蓝方智能体也存在神经网络,并且参数不是固定的,整个训练流程中存在两个参数变化的神经网络;其二是红方智能体所处环境会因为蓝方智能体参数采样而不断变化,这在一般的单智能体强化学习算法环境中是不存在的。
[0185]
步骤五:当智能体动作网络训练完毕,直接将其作为决策网络,输入相关信息,可输出机动动作,完成一步决策。
[0186]
其实施方式如下:
[0187]
当训练算法已经收敛,提取作为动作网络作为决策网络,输入空战态势状态向量,经过网络可输出机动动作,完成一步决策。
[0188]
【实验验证】
[0189]
本实验使用的硬件环境:cpu是intel i5-12600k@3.7ghz,内存是32g@3200mhz,gpu是nvidia geforce rtx 3070ti性能图像处理器,操作系统是ubuntu20.04lts,采用深度学习框架pytorch1.9.0,编程语言python3.7。
[0190]
在仿真平台中设置观测量为全维观测,即仿真时输入智能体的动作和评价网络为12维空战态势向量。仿真平台采用四阶龙格库塔方法求解微分方程组,重力加速度为10m/s2,求解步长为0.01s,设置战机决策周期为0.1s,战机判定坠毁的条件为高度小于10或被累计击中20个决策周期,一次空战最长交战时间设置为100s,即红蓝双方如果在1000个仿真周期没有分出胜负会被强制结束本回合并强制初始化状态。
[0191]
本章节仿真设置两架战机的初始状态如表2。
[0192]
表2战机双方初始状态
[0193][0194]
飞机航炮模型参数:α=2
°
,武器有效攻击长度
[0195]
ppo算法参数:折扣因子γ=0.995,动作网络和评价神经网络的学习率均为0.0003,clip参数为0.2,总的训练为1
×
107个最小步长,损失函数中常数系数c1,c2分别为0.5和0.01。
[0196]
己方智能体每隔2
×
104个最小步长训练一次神经网络,由于ppo算法设置了clip限制,所以在每次训练中可以对同一个采集的样本重复训练,即在本实验中每次训练进行重复更新40次,损失函数采用adam优化器。
[0197]
为了尽量让人类专家经验少影响智能体最后自由探索阶段,所以课程式奖励函数的前两个阶段占用整个训练阶段的20%,即n1=n2=1
×
106。
[0198]
从图10(a)奖励值曲线可以看出,在整个训练进程的10%内,也就是基本飞行技能训练阶段,智能体学习速度非常快,在训练过程中奖励值能保持单调上升,一方面与第一阶段的学习任务较简单有关,另一方面说明强化学习算法本身的效果不错。从第一个阶段结束,训练进程的10%到20%为人类专家经验训练阶段,有明显的奖励值下降,这是因为从此阶段开始,需要根据敌方智能体的动态运动轨迹决策,抢占优势态势,在这个过程中智能体获取的奖励值波动较大,说明学习任务变难,但实际上智能体学习到了与定常飞行敌机的交战策略,至少学会抢占优势态势,并进攻敌机。从训练进程的20%到25%可以看出,已经有奖励值上升的趋势,第二个阶段学到的人类专家经验为第三个阶段的输/赢判定奖励阶段做铺垫。训练进程的20%到训练结束是输/赢判定奖励阶段,此阶段的智能体有前面阶段学到的技能作为基础,可以稳步提升奖励值,最终收敛稳定,学习到最优策略。需要注意的是,ppo算法是采用的随机策略,在训练过程中的原始曲线会有较大波动,所以这里对仿真曲线进行平滑处理,绘制出的浅色的线条为实际的奖励曲线,深红色为附近奖励值的均值曲线,奖励值的大体趋势是上升的,这也验证了算法在单智能体环境之中的有效性。
[0199]
从图10(b)敌我双方战机的交战整个回合的轨迹图,从图中可以发现,两机的策略基本一致,都是最开始首先提高自身的重力势能,准备随时俯冲获取动能优势从而击败对方,但是显然敌方的势能转化较慢,所以己方战机最先抢占到优势位势从而对敌发起进攻,最后敌机为了逃脱,被迫将势能转化为更多的动能获取速度优势,不幸的是己方战机在俯冲的过程中连续对敌打击获取空战胜利。
[0200]
图11中红色曲线是智能体经验回放机制,蓝色曲线是集中式训练。可以发现智能体经验回放机制优于一般的集中式训练机制。在训练的早期阶段,智能体奖励值能保持一定的上升,因为在课程式奖励函数结构中有互相不冲突的基本飞行奖励。但在训练后期,奖励值出现正负交替,波动逐渐增大,双方智能体的能力呈现此消彼长形式。可以看出,训练过程非常不稳定,以至于在专家经验奖励阶段几乎不可能学习到有效的策略。在最后的稀疏奖励阶段,很难连续获得正奖励,最终智能体无法学习到任何好的策略。可见,智能体经验回放机制能有效提高智能体的决策能力。
[0201]
图12中红色曲线是课程式奖励函数结构,蓝色曲线是稀疏奖励函数结构。可以发现在稀疏奖励结构下,智能体所能获取的奖励信息过少,很难学到有效的空战策略,奖励值在0附近波动,最终训练失败。而课程式奖励函数结构能够在前面奖励函数阶段的训练基础上,进一步在最后稀疏奖励阶段有很好的表现。可见,课程式奖励函数结构能够阶段式提高智能体能力来应对稀疏奖励环境,从而最终学习到突破人类经验的技能。
[0202]
图13奖励值对比中可以发现课程式奖励函数结构在训练过程中获取比常规加权奖励函数结构更高的平均奖励值,说明课程式奖励函数结构在空战环境中具有比一般强化学习奖励函数模式有更好的效果。
[0203]
综上所述,在本发明提出的方法下,课程式奖励结构能够在稀疏奖励信息环境中获取有用的学习信息,比一般的加权奖励结构学到了更好的空战策略,表现为更高的胜率,并且智能体经验回放机制能够有效缓解零和博弈的冲突性。

技术特征:
1.一种基于课程式强化学习的单机空战决策方法,其特征在于步骤如下:步骤1:以全维观测环境作为空战环境,动作网络和评价网络采用全连接神经网络结构,使用ppo强化学习算法,以敌我双方的两架战机的仿真数据,在动作网络和评价网络两个网络之间实施神经网络的梯度反向传播算法;所述动作网络的全连接神经网络结构包括4层神经元组成,其中包含1层输入层、2层隐藏层和1层输出层;x1-x12表示神经网络输入状态,a1-a7表示神经网络输出的机动动作;所述输入层所接收的状态量为空战态势,其中:滚转角切向过载n
x
以及法向过载n
z
作为控制输入三元组并进行编码;双方战机的状态信息各为[v x y z θ ψ],表示速度、三维坐标、姿态角;敌我双方的战机状态为[v
r x
r y
r z
r θ
r ψ
r v
b x
b y
b z
b θ
b ψ
b
],下标表示为r表示红方战机状态,下标为b表示蓝方战机状态,所以输入层的神经元个数为固定值12个;所述中间2层为隐藏层,采用64个神经元组成每个隐藏层,采取relu激活函数;所述输出层为softmax层,输出是7个基本机动动作,分别是定常、加速、减速、左转弯、右转弯、拉起、俯冲;所述评价网络采用全连接神经网络,在结构上输出层只有一个神经元,其他与动作网络一致;所述ppo强化学习算法的目标函数为:其中表示期望值,min(a,b)表示在参数a和b之间选择一个最小值,表示优势函数的估计,r
t
(θ)是比例函数,表示在当前状态s
t
和当前策略参数θ下执行动作a
t
的概率与在当前状态s
t
和前一个策略参数θ
old
下执行动作a
t
的概率比值;步骤2:建立课程式奖励函数模块:r
i
=ω1·
r
f
+ω2·
r
a_i
+ω3·
r
w_i
,且(1)基本飞行奖励函数模块:r
f
=tanh(r
h
+r
v
)(2)专家经验奖励函数模块:(3)输/赢判定奖励函数模块:r
w_i
=50
×
h
i
其中,r
h
表示高度奖励函数,r
v
表示速度奖励函数,v
i
表示战机编号为i的速度矢量,d
ij
表示当前编号为i的己方战机指向编号为j的敌机的距离向量,d
ij
是距离向量的模长,h
i
表示战机编号为i的己方战机击中敌机次数,hit
ij
表示当前编号为i的己方战机是否击中编号为j的敌机,如果击中则值为1,被击中则值为-1,而当前双方没有处于对方的航炮武器范围内则值为0;(4)阶段式权值设计:奖励函数的权值满足条件n1<n2,ω1+ω2+ω3=1
步骤3:采用self-play与强化学习算法相结合的框架对步骤1和步骤2设计的网络进行训练,步骤4:当动作网络和评价网络的智能体动作网络训练完毕,以动作网络作为决策网络,将空战环境平台中的空战态势作为决策网络的输入相关信息,在网络输出端得到机动动作,完成一步决策。2.根据权利要求1所述基于课程式强化学习的单机空战决策方法,其特征在于:所述敌我双方的两架战机的仿真数据来源于空战训练平台,训练平台中空战态势的三维地面坐标系中的战机动力学模型:系中的战机动力学模型:系中的战机动力学模型:系中的战机动力学模型:系中的战机动力学模型:系中的战机动力学模型:每个微分方程左边分别是战机飞行速率、偏航角、俯仰角、三维位置的一阶导数。3.根据权利要求2所述基于课程式强化学习的单机空战决策方法,其特征在于:所述训练平台中机动动作包含定常、减速、加速、左转弯、右转弯、拉起与俯冲七种基本机动动作。4.根据权利要求2所述基于课程式强化学习的单机空战决策方法,其特征在于:所述训练平台中的平台状态转移模块的状态更新方程:s
t+1
=f(s
t
,u
m1
,u
m2
,

,u
mi
,

,u
mn
,t)f表示建立微分方程组构成的状态更新函数,u
mi
表示第i架战机采取的基本机动动作,t表示仿真时间步长。
5.根据权利要求1或2所述基于课程式强化学习的单机空战决策方法,其特征在于:所述切向过载n
x
变化的范围为[-2,2],法向过载n
z
变化的范围为[-5,5],滚转角变化的范围为[-π/3,π/3]。6.根据权利要求1或2所述基于课程式强化学习的单机空战决策方法,其特征在于:所述全连接神经网络的相关超参数定义如下:神经网络批处理样本数为batch_size,神经网络中间2个隐含层的神经元个数分别为n1、n2;每层神经网络的权重系数分别为w1,w2,w3,网络偏置系数分别为b1,b2,b3,每层计算出的传递量分别为l1,l2,out。则全连接神经网络的整个计算过程:l1=relu(batch_samples*w1+b1)l2=relu(l1*w2+b2)out=relu(l2*w3+b3)其中,batch_samples为神经网络一次处理的经验样本,一条经验样本就是12维向量,所以batch_samples是二维矩阵,其维度为[batch_size,12],l1,l2,out分别在批量处理下也是二维矩阵,分别的维度是[batch_size,n1]、[batch_size,n2]和[batch_size,7],其中12和7分别表示空战状态的维数以及机动动作的个数。7.根据权利要求1所述基于课程式强化学习的单机空战决策方法,其特征在于:所述当r
t
(θ)>1,表示在当前策略下当前状态s
t
执行动作a
t
的概率比前一个策略的可能性要大,当0<r
t
(θ)<1,表示在当前策略下当前状态s
t
执行动作a
t
的概率比前一个策略的可能性要小。8.根据权利要求1或2所述基于课程式强化学习的单机空战决策方法,其特征在于:所述步骤3中的训练时神经网络参数分别为param
r
,param
b
,智能体经验回放池为aerb,其容量为c,具体表达为:决策神经网络的存放和采样周期分别是为m
r
和m
b
个episode,己方智能体神经网络的存放模型:敌方智能体神经网络的采样模型:其中:表示第i个被存入经验回放池的神经网络参数;∪表示两个集合元素的并操作,t表示第t个episode,表示整数,aerb
t
<<1表示删除第1个被存放入智能体的神经网络参数;表示第t个episode的敌方智能体神经网络参数,sample表示对集合进行采样,average表示采样方式为均匀采样。

技术总结
本发明涉及一种基于课程式强化学习的单机空战决策方法,建立战机在三维空间下的动力学模型,选取战机的状态空间向量;针对全维观测环境,基于全连接神经网络设计了动作网络和评价网络,并使用PPO强化学习算法设计神经网络的梯度反向传播算法。针对传统奖励函数无法突破人类经验问题,建立课程式奖励函数模块,由易到难逐渐学习空战策略,克服了稀疏奖励信息下学习难的问题。空战过程中引入智能体经验回放机制,让智能体始终与自身过去版本对抗训练。网络训练完毕直接将其作为决策网络,输出机动动作,完成一步决策。本发明比一般的加权奖励结构学到了更好的空战策略,表现为更高的胜率,并且智能体经验回放机制能够有效缓解零和博弈的冲突性。和博弈的冲突性。和博弈的冲突性。


技术研发人员:何宇航 王重 李俨
受保护的技术使用者:西北工业大学
技术研发日:2023.03.12
技术公布日:2023/7/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐