计算机模拟空战

蒙特卡洛树搜索

大多数深度强化学习算法只依据神经网络输出的动作价值或者动作的概率分布直接进行动作选择。仅仅依赖网络学习决策模型,缺乏策略增强的方法,导致策略生成质量不高,训练难以收敛。并且,对于存在高纬度问题的场景,由于动作与状态空间巨大,导致训练及决策缓慢。同步解耦树搜索在deepmiad提出的asnchronous policy and value MCTS algorithm(APV-MCTS)的基础上,在动作空间巨大且耦合的问题中,对动作进行同步解耦,大大缩小了蒙特卡洛树搜索的搜索空间,大幅减少蒙特卡洛树搜索的消耗的时间和计算资源。基于同步解耦树搜索的空战机动决策算法,设计动作选择算法和空战态势价值评估模型,最后获得训练出能在足够仿真的空战环境中进行空战智能决策的模型。

在已有的同步解耦树搜索智能空战机动决策的算法上,设计动作选择算法和空战态势评估模型。通过对比不同的动作选择算法和空战态势评估模型的训练和仿真效果,得到合适的空战智能决策模型,训练出能够进行智能空战机动决策的智能体。最后与传统深度强化学习方法训练的智能体进行对抗实验。

网络输入

网络输入内容可包括飞机的状态信息和环境信息。

飞机的状态信息包括:

位置信息:飞机在地图上的位置坐标信息。

速度信息:飞机的速度信息。

姿态信息:飞机的姿态信息,包括滚转角、俯仰角、偏航角等。

燃油信息:飞机的燃油状态信息,包括当前剩余燃油量和燃油消耗率等。

武器状态信息:飞机装备的武器状态信息,包括武器类型和库存情况等。

环境信息包括:

敌机信息:敌机在地图上的位置坐标和速度等信息。

友机信息:友机在地图上的位置坐标和速度等信息。

防御设施信息:地面防御设施在地图上的位置坐标和攻击能力等信息。

地形信息:包括山脉、海洋、沙漠、平原和城市等地形信息。

气象信息:飞机所处位置的当地气象信息,包括温度、湿度、风速和风向等信息。

以上信息是正常贴合实际情况下,计算机模拟空战中需要输入给神经网络的基本信息,网络可以通过学习和推理来预测和决策。本文采用三自由度模型,输入模型较为简单,包括飞机的姿态,位置,和敌机姿态和位置。

网络结构

本文借黄明民学长的网络框架进行引述,该框架引用计算机围棋领域的牧零思想,由表征编码器神经网络h(Representation Network),预测器神经网络f(Prediction Network),动力学神经网络g(Dynamics Network)三部分组成。表征网络由256个3×3步长为一的卷积核,批归一化层和线性整流函数构成主体,此外还添加了通道注意力残差块和自注意力模块。预测神经网络相对表征网络多了策略端和价值端,且使用1×1步长为1的卷积核,通过全连接层将输入映射成向量,进而再将向量变成标量,使用tanh函数将标量压缩[-1,1]区间。动力学网络恢复使用3×3步长的卷积核,通过残差块和通道注意力模块对结果进行输出。

网络训练框架

结合飞机模型、奖励设计和mcts算法,提出了一种基于mcts的空战agent训练框架。智能体训练框架由六个部分组成: actor, experience pool, learner, player pool, evaluator and recorder。该框架如图2所示。

在每次迭代中,参与者首先在空战环境中生成自我游戏数据,并将这些数据存储在经验池中。之后,经验池计算每个样本的奖励评估和所有数据的平均收益,并将平均收益存储在记录仪中。然后,根据奖励评估策略从经验池中抽取一批样本,大小为1024,发送给learner。learner使用这些接收到的样本训练当前的agent,然后将训练好的agent存储在玩家池中。然后,玩家池随机选择36个过去的代理人,并将这些代理人发送给评估者,其中每个过去的代理人与当前代理人进行3次比较。空战的初始角度、速度和距离在一定范围内随机选取。在模拟之后,赢、输和平局的数量被存储在记录器中。根据评价结果,可以看出agent经过训练后的决策能力是否有所提高。最后,玩家池将当前代理发送给参与者以开始下一次迭代。

显然,赢的越多,代理的决策能力越强。应该指出的是,更多的损失也意味着更有效的智能体训练,因为智能体是与自己的过去版本进行比较的。因此,更多的损失意味着当前代理的过去版本更强,这可以表明代理的训练是有效的。相反,大量的抽签意味着代理的训练可能是无效的(抽签的agent未找到目标或模拟超时)。在训练开始时,通常会有大量的抽签;此时,agent的机动往往是随机的,因此它可能找不到目标,从而导致大量的平局。

网络输入输出

输入为飞机的动作参数(60个);

第一层 输入state 60参数,经过全连接层,输出变为120个参数,激活层为ReLU;

第二层 输入120参数,经过全连接层,输出变为60个参数,激活层为ReLU;

第三层 输入60参数,经过全连接层,输出变为30个参数,激活层为ReLU;

第四层 输入30参数,经过全连接层,输出变为60个参数,激活层为ReLU;

第五层 输入60参数,经过全连接层,输出变为120个参数,激活层为ReLU;

第六层第一部分 输入第五层120参数,经过全连接层,输出变为80个参数,激活层为ReLU;

第六层第二部分 输入第五层120参数,经过最大池化层,输出变为80个参数

第七层 输入为第六层第一部分加第六层第二部分,80参数,经过全连接层,输出变为61个参数,激活层为ReLU;

将输出61个参数分为两部分:第一部为态势价值U,用来评估飞机的态势价值;第二部分动作价值V,即飞机每个动作的V

2.2.4 残差块

Reset是15年提出的经典网络,深度学习模型在输入和基本网络参数相同的前提下,模型层数越深,能够提取的特征信息越多,模型效果越好。之后的实验发现,当层数增加到一定程度时,继续增加层数,不能提升模型效果,也就是说准确率已经趋于饱和,在此基础上,继续增加网络深度,只会导致更高的训练误差,导致准确率下滑。研究表明,这是网络深度增加到限度之上产生的退化现象。何凯明在论文中验证了此现象并非由于梯度消失和过拟合引起的,只能说明深度网络难以训练,于是引出残差块,以提升深度网络的训练效果。本文引入残差块,是为了防止因网络深度过深,引起准确率过早饱和,使训练效果不理想。残差块结构如下:

  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值