时间:2024-05-04
沈贤杰
(中国电子科技南湖研究院JS 大脑实验室, 杭州 314000)
博弈对抗算法在现实生活中应用场景非常广泛,例如棋类、商业投标、作战等。 对于棋类等存在大量的融合人类专家先验知识的局内数据作为训练数据的场景,即使不采用强化学习,只采用监督学习即可获得接近甚至超越普通人类的表现。 然而,对于其它一些难以获得大量实际数据的场景,现有表现较好的解决方案,是使用结合先验知识的强化学习模型进行自博弈对抗。
PSA-Air 模型首先针对空中博弈对抗的场景,设计了多阶段的强化学习模型训练,并将原先朴素的行动策略方案改进为一种更稳定有效的基于相对位置的行动方案;针对不同阶段的模型训练设计不同的群落学习机制,来解决模型训练的冷启动、过拟合等问题。 此外,该模型利用Transformer中的自注意力机制,对多智能体环境状态进行编码,实验证明相比LSTM具有更高的性能。
本文算法模型解决的问题环境为态势完全透明的5V5 空战问题。 双方均由1 架有人机与4 架无人机组成,双方性能完全对等;可行动空域长宽均为300 km,高度约为10 km 的矩形。 初始状态双方各从空域俯视图的正方形一对顶角,同一高度同时出发,每架飞机各携2 枚导弹。 在限制时间20 min 内,若一方无人机被击落或者全部导弹已被发射则判负;若超过限制时间,当前剩于战力(飞机总架数、导弹剩余总数量)多者获胜;若剩余战力相等,则占据对战空域中间部分时间较长的一方获胜。 对战过程中,内部机群之间的机载雷达可以互相提供制导功能。
群落学习技术最初由DeepMind 提出,用于挑选神经网络最优超参数。 具体地说,多个被随机赋予超参数的神经网络模型并行地训练。 类似于遗传学习,在每轮训练中获得较好表现的网络超参数组合,会被用于改进现有的超参数组合,表现较差的超参数组合则会被放弃。 在AlphaGo中同样存在类似的思想,在自博弈阶段会初始化一系列不同参数的对手用于对抗学习,来防止训练阶段的过拟合问题。
Transformer 在自然语言处理等多个领域取得了非常优秀的成绩,其主要归功于其对于自注意力机制的应用。 假设输入为[,]维的矩阵,则需要3个均为[,]维的矩阵、、, 分别代表、与,将输入矩阵转换成[,]维的矩阵。 输入矩阵经过矩阵得到其矩阵,将该矩阵与经过矩阵得到的矩阵进行内积,再与经过矩阵转换后的矩阵相乘后,得到处理后的输入。 该机制主要意义在于将输入视为个维的向量,使向量之间进行交互,挖掘输入之间的关系,凸显更重要的输入维度。 具体公式如式(1) 所示,分母中的用于防止矩阵内积结果过大。
PSA-Air 模型主要由Critic 和Actor组成,并遵循MADDPG集中式评价、分布式训练的原则,使用经验回放池以及目标网络机制。 其中,Critic 接收整体环境的输入、编码得到当前环境的嵌入向量,并输出衡量当前优劣情况的值;Actor 接收各个行动体的局部环境,并输出对应的行动策略。
每架飞机的状态由一个10 维的向量表示, 分别为、、轴方向的方位,表示飞机飞行角度的航向角、俯仰角、横滚角,以及纵向加速度、 切向加速度、导弹的剩余量等。 以上参数均被标准化到0 ~1之间,使训练过程更为高效稳定。 若该飞机已被击落则全设为0。 每一架飞机由一个独立的Actor 控制,以往模型对于Actor 会直接输出三维空间下各个角度的偏转角以及加速度,但采用这种方式,在训练期间会有较多的不稳定性,且由于在训练初期飞机容易飞离指定空域,所以训练效率较低。
Actor 和Critic 接收输入后,都会经过全连接层连接的若干个自注意力层,将不同行动体的状态向量进行交互,再经过带非线性激活函数的全连接层进行编码。 同时该模型避免了使用LSTM 对历史数据进行编码存储,主要考虑到LSTM 的训练速度慢且对于强化学习模型训练难度较高。 为了利用历史数据,模型的输入会同时得到该时刻以及上一时刻的数据,虽然输入层维度会翻倍,但大大降低了对计算资源的需求以及训练难度。
对于一局对战,主要分为开局阶段以及开火阶段。 开局阶段定义为:双方机群之间,两架飞机之间距离大于3 倍最大开火范围时,认为处于开局阶段。该阶段的主要任务是机群内部组成一个良好的队形,使其能够在很大程度上保护有人机,并且利于攻击敌方。 经过开局阶段后,会进入对战开火阶段。主要表现为无人机之间的短兵相接以及有人机的适当介入。 在两个阶段分别会使用不同的策略网络。
PSA-Air 模型主要使用如下3 种奖励函数。
第一种:使用最终对战结果的胜负奖励。 胜平负分别对应+1、0、-1。 然而一场对局往往需要经过上百次行动决策,仅有终局奖励太过稀疏。
第二种:对于当前战力的消耗进行评估。 若某一时刻无人机被击落,则会给予负向奖励0.5;若导弹发射,但并未击落目标,也会给予负向奖励0.16;反之,对另一方则会进行正向奖励。
第三种:奖励用于指导保护己方有人机以及攻击敌方无人机。 具体来说,对每一个时刻都会记录一个环境值,其值为己方有人机距对方最近无人机距离与对方有人机距己方最近无人机距离的比值。 若该比值较大,则说明己方有人机处在相对更安全的位置(只考虑仍然携带剩余导弹的无人机),反之则说明己方有人机有被击落的风险。时刻的该奖励为时刻的比值与1 时刻比值的变化值。
PSA-Air 模型的训练主要分为预热阶段与自博弈训练阶段。 预热阶段包括整个模型群落的预热训练,自博弈训练为群落内的不同智能体之间进行对抗训练。
3.4.1 预热训练
模型预热训练阶段对战的是基于规则的模型。规则模型在开局阶段会让有人机在原地打转一定时间,其余无人机往敌方有人机飞行,这样可让有人机处在相对安全的位置又不至于脱离集群太远。 当敌方有人机进入攻击范围,则会使用贪心法让最近距离的不在攻击状态的飞机攻击。 若被敌方飞机攻击,则有一定概率放弃攻击,自主进行绕圈飞行躲避攻击。 同时在每一步的行为中增加一定的随机性以提升鲁棒性。
3.4.2 融合群落学习的自博弈训练
模型自博弈阶段,会使用群落学习的概念,随机初始化一组策略网络,用于和经过预热训练的模型进行自博弈训练,并同时训练两边对战的模型。 在以往使用群落学习的强化学习模型中,每一轮的对手策略网络都会被随机选择,然而这样训练的效率较低,会浪费许多训练资源。 PopAir 模型提出运用上限置信区间公式(Upper Confidence Bound,UCB)对策略网络群落进行采样。 UCB 公式常被用于蒙特卡洛搜索树中的节点采样,以提升搜索效率。 具体如式(2)所示:
式中,表示每轮被挑选的概率; v为该网络的对战胜率;T表示各网络的对战次数。 若该策略网络的对战胜率较高或参与对战的次数较少,则被挑选的概率越大。
3.4.3 训练细节
模型在预热及自博弈训练阶段,都使用时间差分误差(TD error)版本的策略梯度下降法,TD error的具体定义如式(3)所示:
其中,是立即回报;是折扣系数;v是价值网络的输出。
策略网络和价值网络更新如式(4)、式(5)所示。
其中,代表经验存储池。
本文实验在Ubuntu 20.04 系统上进行,模型由Pytorch 实现,训练流程使用单张Quadro P4000 显卡。
实验比较了本文基于UCB 公式采样训练出来的模型与使用平均采样概率种群学习训练出来的模型之间的优劣,训练时间统一控制为前者自博弈训练3 000 轮次后。 共进行了3 次训练,每次训练完的两个模型之间进行100 局对战,综合胜负情况展示见表1。 当使用UCB 公式对对手智能体进行采样时,训练所得的模型明显有更高的胜率。 由表1 中数据分析可知,由于UCB 公式在有限的时间内能够更好的平衡各个对手智能体的对战权重,若当前模型对战某个随机初始化训练的模型胜率较低时,该公式则会鼓励当前模型多与该模型进行对战,尽快弥补缺点,因此提升了训练的效率。
表1 对战平均采样群落学习100 局表现Tab.1 Results of 100 games against average sampling PBL
尝试将LSTM 以及自注意力层进行替换,来验证在该问题中是否自注意力比LSTM 更快地收敛并得到更优的解。 如图1 所示,使用LSTM 的变体模型在训练时Actor loss 的波动情况更加明显、更不稳定,且收敛速度更慢,最终收敛的loss 值略大于使用自注意力层的模型。
图1 不同算法收敛速度比较Fig.1 Comparison of convergence rate with different algorithm
经分析得出,导致该问题的原因:一是LSTM 结构的网络,在强化学习训练中训练难度较大,表现不稳定;二是在空战问题中,由于有较明显的开局、交火等不同阶段,行动策略有明显变化,而LSTM 无法直接屏蔽上一阶段策略数据的影响,并且LSTM 的训练速度明显慢于使用近段数据进行自注意力机制交互对历史数据进行建模的方法。
本文针对空战博弈对抗问题提出了一种训练性能效率高,且性能优秀的强化学习模型PSA-Air。该模型首先提出了一种基于智能体相对位置的行动方式,在处理环境输入时借鉴Transformer 中的叠层自注意力机制,来进行各个智能体状态的交互解析。实验证明,PSA-Air 比直接使用LSTM 进行解析有更快的收敛速度以及更好的表现。 实验中,结合UCB 公式的群落学习算法相比平均采样的变体更加适合于训练深度强化模型。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!