|
课程学习及选题开题阶段,在导师指导下从事研究工作总结(不少于2000字)
1.1理论知识学习与实践
在研究生一年级这一整年里,本人主要进行了基础理论知识的学习,包括数学理论基础和专业理论基础的学习,通过学习加深了对于相关数学概念和专业概念的理解,对于所研究方向有了进一步的了解,了解了所研究方向的基础方法、确立了未来的研究方向,理论知识学习阶段的研究工作总结如下:
对于未来科研所要用到的数学理论知识进行了学习,在选课时选择了矩阵分析与数值分析两门主要数学课程。在数值分析课程中复习了以往接触过的插值方法,拉格朗日插值法、牛顿插值法、切比雪夫插值法,学习了线性方程组与非线性方程组的解法,通过对题目的练习,深刻掌握了相关理论的使用方法;在矩阵分析课程中学习了矩阵分析的基本理论、方法和应用,主要包括线性空间、内积空间、线性变换等基本概念和性质、范数理论和应用、矩阵的分解理论、矩阵函数的理论和应用以及特征值的估计等内容。通过对这些数学理论知识的学习,提高了自己的数学能力,在阅读研究领域相关论文时,能够理解其中的数学模型及其推导过程,有充分的理论知识储备。
在专业课程方向,本人学习了人工智能与机器学习、深度学习基础、智能无人系统基础、多机器人协同控制技术等课程,通过对这些课程的学习,让我对神经网络相关的算法有了很深入的了解,学习了决策树、动态贝叶斯网络、随机森林(Random Forest, RF)、LSTM网络等机器学习算法,同时基于项目也学习了关于空战的相关专业知识,了解了Deep Q-Networks(DQN)算法、Deep Deterministic Policy Gradient(DDPG)算法、Proximal Policy Optimization(PPO)算法等强化学习相关算法,并且基于课题组内现有仿真环境对于未来研究方向做了一些研究,对于多无人机空战决策有了充分的理解,为将来课题的研究工作打下了一定的基础。
在编程语言的学习上,在项目中充分实践了C++编程语言,跟随程序员学习C++语言规范并且提高自身编程能力,在进行课题研究时学习了python编程语言,并且基于现有仿真对于典型算法进行了一定程度的复现。具备了进行课题研究仿真的实践经验。
1.2研究工作总结
1.2.1课题相关算法学习
(1)马尔科夫决策过程:马尔科夫决策过程(Markov Decision Process, MDP)强化学习的任务通常使用马尔科夫决策过程来描述,马尔科夫决策过程为,智能体处于一个环境当中,通过对环境的感知获取自身状态与环境状态,智能体通过做一些特定动作来与环境进行交互,当智能体执行一个动作后,环境会根据智能体所做的动作,按照某种设定好的概率从当前状态转移到下一状态,同时环境会根据提前设定好的奖励函数对智能体做的动作做出奖励。一个标准的马尔科夫决策过程可以由一个五元组 构成,其中 是指马尔科夫决策过程中的有限状态空间集,集合内包含了所有可能出现的状态; 是指马尔科夫决策过程中的动作集合空间,包括当前状态下智能体可以执行到的所有动作,通常在离散动作空间中集合 的动作是有限的; 是指马尔科夫决策过程中的状态转移概率矩阵,如公式中的状态转移概率矩阵 ,元素 表示在某个状态 下执行动作 使得环境状态由 转移到 的概率; 是指在马尔科夫决策过程中的奖励函数 ,表示的是在某个状态 下,智能体执行动作 之后转移到状态 所获得的奖励反馈,也就是当前动作的一个实时评价。如果智能体的动作是合理的,环境会反馈一个数值较高的奖励;如果智能体的动作不合理,环境会给出一个数值较低的奖励,对不合理的行为做出惩罚。通常不同的算法奖励设计方法不一致,有的算法多设置奖励会带来较好的训练效果,而有的算法多设置惩罚会带来较好的训练效果; 指马尔科夫决策过程中的折扣因子,取值在0-1之间, 值越大,表明智能体在当前时刻的动作越重视长期动作的奖励,取值越小则代表短时间内的奖励对智能体的影响更大。根据折扣因子可以计算马尔科夫决策过程中从 时刻开始的后续累积折扣奖励 ,如公式所示, 表示的是在第 时刻获得的实时奖励。折扣因子的使用可以避免智能体进入循环马尔科夫过程从而带来无穷大的累计奖励。

马尔科夫决策过程中,算法的目的在于找到一种策略 ,使得智能体在与环境进行交互时获得更高的累计奖励,使其能够做出更为适当的动作,这里所说的策略实际上是状态空间内某个状态到动作空间的一个映射,当确定了策略 之后,智能体与环境的交互轨迹就可以被表示为一个包含 的序列。策略的类型一般分为确定性策略与随机性策略,当一个策略是确定性策略(deterministic policy)时,它在每一个状态只输出一个确定性的动作,其他动作的概率为0;当一个策略是随机性策略(stochastic policy)时,他在每个状态的输出是关于动作的概率分布,然后根据该分布随机采样获得一个动作。我们使用状态价值函数和动作价值函数来衡量策略的优劣,状态价值函数使用 来表示,定义为从状态 出发遵循策略 所能获得的期望回报,数学表达为 , 表示使用策略 时,对累计折扣奖励求的期望, 为上述公式定义的从t时刻开始的累计折扣奖励。动作价值函数使用
 表示MDP遵守策略 时,对当前状态 执行动作 得到的期望回报,期望回报的公式为:

而状态价值函数则是在策略π下,采取所有动作的概率与相应的价值相乘再求和的结果:

(2)强化学习相关算法学习:DQN深度Q网络算法,是强化学习的基础算法,也是深度神经网络与强化学习相结合的经典算法,DQN算法是一种将深度神经网络与Q-Learning是算法相结合的基于价值的深度强化学习算法,DQN算法使用神经网络来近似Q-Learning算法构建的Q值表,Q值表是指,在当前状态下做出动作a的价值,这个表格一般人为构建,且仅适用于维数较少的场景,如果状态数量较大,则Q表难以构建,因此想到了使用神经网络来近似Q函数,用以预测Q值。这一神经网络可以将所有的状态映射到可从该状态执行的所有动作的Q值,只要输出一个状态,这个网络就可以给出所有动作对应的Q值。DQN体系结构主要包含Q网络,目标网络以及经验回放组件。Q网络是经过训练用以生成最佳状态-动作值的智能体agent,经验回放单元的作用是与环境进行交互,用以生成数据训练Q网络,目标网络与Q网络是同一个网络,Q网络要进行两次传递,首先是输出一个预测Q值,然后在输出目标Q值,而Q网络的权重在每个时间步长上都会更新,从而导致了预测Q值发生变化,并且由于二者公用一套网络参数,因此目标Q值的方向也会随之偏移,这样就导致网络在每次更新后会有些波动,类似于一直追逐一个移动着的目标。
Policy Gradients策略梯度算法,DQN算法具有一定的不足之处,虽然可以较好的处理大规模离散动作空间的任务,但是针对于连续任务,就难以利用神经网络实现对状态-动作的Q值函数近似表达;其次无法处理环境中状态受到限制的问题, 在基于值函数深度强化学习更新网络参数时,损失函数会依赖当前状态和下一个状态的值函数,当智能体在环境中观察的状态有限或建模受到限制时,就会导致实际环境中两个不同的状态有相同的价值函数,进而导致损失函数为零,出现梯度消失的问题;再次是会导致智能体在环境中的探索性能降低,基于值函数的深度强化学习方法中,目标值都是从动作空间中选取一个最大价值的动作,导致智能体训练后的策略具有确定性,而面对一些需要随机策略进行探索的问题时,该方法就无法较好地解决。为了解决上述问题,对策略进行建模,然后通过梯度上升更新策略网络的参数 ,Policy Gradients无法使用策略的误差来构建损失函数,因为策略网络的目的在于最大化累计奖励,所以策略更新的依据是某一动作对于累计奖励的影响,也就是增大使累积回报变大的动作的概率,减小使累积回报变小的动作的概率。智能体在环境中执行策略 后状态转移概率为:

上式简化为:
 
回合累计回报的期望为状态转移的概率与奖励的乘积:

通过微分公式可以得到累积回报的梯度为:

之后就可以利用累计回报的梯度对策略网络的参数进行更新:

为梯度系数,通过上式可知,如果智能体在某个状态下采取动作使得累积回报增加,网络参数就会呈现梯度上升趋势,该动作的概率就会增加,反之如果智能体在某个状态下采取动作使得累计回报减小,网络参数则会呈现梯度下降趋势,该动作的概率就会减小,这样就完成了动作概率的更新。
Actor-Critic行动者-评论家方法,DQN算法是基于值函数的方法,也就是这里的Critic方法,通过值函获得的策略与环境进行交互,交互得到的奖励用来优化当前值函数;而上述提到的Policy-Gradients策略梯度算法则是这里的Actor方法,Actor方法不会对值函数进行估计,而是直接与环境进行交互,根据交互后的奖励直接优化策略。Actor-Critic方法实质上是上述两种方法的结合,Actor用于选择动作并做用于环境,Critic根据环境的改变、奖励的大小来评价动作的好坏,Actor仍是依据储存的策略选择动作,以当前的状态作为输入,输出动作的概率分布或者连续动作值,再由Critic网络来评级该动作的好坏从而调整策略。Critic一般采用时间差分误差的形式,时间差分误差是根据当前的值函数计算获得的。时间差分误差是是评论家的唯一输出,并且驱动了行动者和评论家之间的所有学习。当输入为环境状态时,Critic网络可以评估当前状态的价值,当输入为环境状态和采取的动作时,Critic网络可以评估当前状态下采取该动作的价值。Actor-Critic算法将动作价值评估和策略更新过程分开,Actor 可以对当前环境进行充分探索并缓慢进行策略更新,Critic 只需要负责评价策略的好坏,所以这种集成算法有相对较好的性能。如果Critic网络为状态价值的评价网络,即输入仅为环境状态,Critic网络的损失函数计算公式采用均方误差损失函数,也就是TD误差值的累计平方差均值,如下式所示:

Actor网络的优化目标如下所示:

表示最优策略,当TD误差值大于零时,增大该动作的选择概率,当TD误差小于零时,减小该动作的选择概率,目标为最小化损失函数 。如果Critic网络的动作价值的评价网络,即输入为环境状态以及动作,则Critic网络的损失函数为:

的表达式为:

DDPG深度确定性策略梯度算法,DDPG 算法使用行动者-评论家(Actor-Critic)算法作为其基本框架,采用深度神经网络作为策略网络和动作值函数的近似,使用随机梯度法训练策略网络和价值网络模型中的参数。DDPG 算法架构中使用双重神经网络架构,对于策略函数和价值函数均使用双重神经网络模型架构(即 Online 网络和 Target 网络),使得算法的学习过程更加稳定,收敛的速度加快。同时该算法引入经验回放机制,Actor 与环境交互产生的经验数据样本存储到经验池中,抽取批量数据样本进行训练,即类似于 DQN 的经验回放机制,去除样本的相关性和依赖性,使得算法更加容易收敛。 DDPG算法共包括四个神经网络,用于对Q值函数以及策略的近似表示,Critic训练网络用于输出当前时刻状态-动作的Q值函数 ,表示对当前策略的评价;Critic目标网络用于近似估计下一时刻的状态-动作的Q值函数 ,表示对下一时刻策略的评价。当前状态下Q值函数的目标值为:

Critic网络的目标定义为:

通过最小化损失值来更新Critic网络的参数,Critic网路更新时的损失函数为:

Actor目标网络用于提供下一个状态的策略,Actor训练网络则是提供当前状态的策略,结合 Critic 训练网络的 Q 值函数可以得到 Actor 在参数更新时的策略梯度:

对于目标网络参数 和 ,DDPG网络通过软更新机制,即每次更新时跟新部分参数,保证参数可以缓慢更新,从而提高学习的稳定性:


PPO近端策略优化算法,PPO算法来源TRPO置信域策略梯度算法但是超脱于TRPO算法,TRPO算法利用了重要性采样(Important-sampling)、共轭梯度法提升了样本效率、训练速度,但是在处理函数的二阶近似时都会面临计算量过大、实现复杂以及兼容性差的问题。Policy Gradient 在处理连续动作空间时 Learning rate 取值抉择困难,Learning rate 取值过小,就会导致深度强化学习收敛性较差,陷入完不成训练的局面,取值过大则导致新旧策略迭代时数据不一致,造成学习波动较大或局部震荡。除此之外,Policy Gradient 因为在线学习的性质,进行迭代策略时原先的采样数据无法被重复利用,每次迭代都需要重新采样。PPO算法具有上述两种方法部分优点,算法在迭代时,观察当前策略在 t 时刻智能体处于状态 s 所采取的行为概率 ,与之前策略所采取行为概率 ,计算概率的比值来控制新策略更新幅度,比值 记作:

优势函数表示在状态s下,动作a相对于均值的偏差,优势函数 使用GAE(generalized advantage estimation)来计算:

PPO算法可依据Actor网络的更新方式细化为含有自适应 KL-散度(KL Penalty)的 PPO-Penalty 和含有 Clipped Surrogate Objective 函数的 PPO-Clip,通常PPO-Clip算法总会有更好的效果,PPO-Clip 直接对新旧策略比例进行一定程度的 Clip 操作,以约束变化幅度。其目标函数的计算方式如下:

代表截断超参数,clip表示截断函数,用以限制比例 处在 区间内,以保证训练的收敛性,之后通过min函数选取最小值,形成目标下限, 函数可以分为优势函数为正和负的情况,如果优势函数为正数,需要增大新旧策略比值 ,然而当 时,将不提供额外的激励;如果优势函数是负数,需要减少新旧策略比值 ,但在 时,不提供额外的激励,这使得新旧策略的差异被限制在合理范围内。
(3)OODA循环理论,OODA是观察(Observe)、调整(Orient)、决策(Decide)以及行动(Act)的英文缩写,它是信息战领域的一个概念。OODA循环理论的基本观点是:武装冲突可以看作是敌对双方互相较量谁能更快更好地完成“观察—调整—决策—行动”的循环程序。双方都要从观察开始,观察自己、观察环境和敌人。基于观察,获取相关的外部信息,根据感知到的外部威胁,及时调整系统,做出应对决策,并采取相应行动。
O:观察(Observe),观察是指收集和分析有关当前局势和环境的信息。这包括了识别和理解关键的数据、情报、趋势和模式,以及评估对手的行动和意图。观察是一个持续的过程,用来获取所需的信息。
O:调整(Orientation),调整是指在观察的基础上进行分析和解释,以形成对当前情况的理解。这包括了识别模式、生成假设、评估可能的解决方案,并进行决策。定位帮助个体或组织快速理解局势,并确定下一步行动的方向。
D:决策(Decide),决策是指根据定位阶段的分析结果,选择最佳的行动方案。这包括了制定具体的目标、制定行动计划、优化资源分配,并进行风险评估。决策是一种有目的和有意识的选择,旨在实现特定的目标。
A:行动(Act),行动是指根据已经做出的决策,采取具体的行动来实现这些决策。这包括了执行计划、调整行动、收集反馈信息,并根据情况进行相应的调整。行动是将策略转化为实际结果的关键阶段。
(4)杀伤链,自20世纪90年代末以来,美国空军一直使用F2T2EA,即“发现、定位、跟踪、瞄准、交战、评估”来描述杀伤链。这一术语解释了杀伤链的各个环节,以及这些环节如何与物理传感器、平台或其他能力相关联。杀伤链的首个环节是发现,具体包括侦察、监视和识别潜在目标。发现环节所用的传感器需与目标的特性、暴露窗口和环境相匹配。一旦发现潜在目标,就需通过数据链将信息传递给可以“定位”目标的其他传感器。定位环节包含两个步骤,一是使用传感器来获取目标位置的准确信息,做好攻击准备,二是准确地将其识别为预期目标,以便进行武器攻击。第二个环节较为重要,因为要识别目标是友方飞机还是敌方飞机。跟踪环节需要作战人员持续跟踪目标,实时更新目标位置和身份信息。如果失去目标跟踪,杀伤链就会中断,不得不重新回到上一个环节。例如,即使雷达只是短暂丢失机动目标,也得重新识别雷达信号。瞄准环节需要为攻击分配最合适的武器投送平台。指挥官或战斗管理人员在决策中应综合考虑多个变量,如可用平台和武器、武器射程、预期攻击效果、交战时间和暴露窗口、攻击环境内的其他威胁、成功概率以及后续行动的可能性。交战环节指做出决策并对目标发起动能或非动能攻击。这一环节并不只是简单地发送目标数据并发射武器。无论是动能还是非动能,配对武器都必须处于适当的攻击区域才能完成攻击。武器击中目标后,杀伤链并没有结束。传感器必须评估交战结果,确定是否需要再次发动攻击,或是否需要采取其他后续行动。如果交战结果评估没有反馈到当前任务线程执行或指挥官规划周期中,那么杀伤链就是不完整的。
1.2.2研究工作积累基础
通过参与老师的项目,以及对空战知识的相关学习,目前形成了基于杀伤链以及OODA环的一套1v1循环作战方案,将原有杀伤链简化,形成了基于搜索、攻击、中制导、躲避、迂回五种模式循环作战方案,通过阅读大量文献,发现多数文献没有对完整的空战对局进行改进,而是局限于优化空战中的某一处问题,并且大部分的文献中都使用了强化学习,但是在使用强化学习时往往都忽略掉了飞机的安全问题,也只局限在仿真环节,由于强化学习的不可解释性,强化学习时常输出一些从人的角度看来无法理解的行为,而强化学习又需要采取动作与环境进行交互,否则就没办法构成马尔科夫决策过程,无法实现算法中部分参数的更新。目前已取得的成果为基于专家经验的单机循环空战方法。基于专家经验的程序架构如下图所示:

图1.1(a) 有目标模式判断图

图1.1(b) 无目标模式判断图
目前每个模式的选择是基于专家经验进行选择,然而专家经验的适配性较差,如果敌方型号发生改变或者某些参数有了细微的变化,专家经验可能就会给出一个错误的判断,导致飞机的胜率大打折扣,因此想到了将专家经验与强化学习相结合的办法,使用分层强化学习的方式进行训练,将强化学习分为两层,上层只做决策,而底层使用目前归类出来的五种模式,这样既能保证飞机飞行的安全性,也能够通过强化学习优化进入每个模式的参数,单机分层强化学习的结构图如下:

图1.2 分层强化学习结构图
|