张立宪 卢生奥 韩铭昊 姜芊鹏 李云鹏 徐恺鑫
哈尔滨工业大学航天学院,哈尔滨 150001
强化学习(Reinforcement learning, RL)作为一种解决非线性随机系统最优决策问题的有效方法,被认为是最有可能通往通用型人工智能的方向之一。近年来,随着理论研究的深入和计算机算力的提高,策略梯度(Policy gradient)[1]、演员-评论家(Actor-Critic)[2]等强化学习算法开始越来越多地应用于自动控制中,在围棋、电子游戏等领域已经能够达到甚至超越人类水平[3-4]。
然而,作为一种黑盒学习方法,强化学习完全通过与环境交互试错积累经验,但训练环境与实际环境存在差异(Reality gap),可能存在过拟合(Overfitting)现象,难以保证智能体学得的控制策略的鲁棒性[5];此外,智能体和工作环境参数的变化也可能导致任务失败,这些因素都限制了其在具有高鲁棒性要求场景中的应用。随着应用领域的日渐增多,特别是在航天控制中,航天器的姿态控制、轨迹优化等任务具有风险性高、复杂度高、不允许失败等特点,这对强化学习的鲁棒性提出了挑战。
2005年,Morimoto等[6]提出了鲁棒强化学习(Robust RL, RRL)的概念,自此,越来越多的学者开始将目光投向强化学习算法的鲁棒性保障上。本文将对鲁棒强化学习的最新研究进行分类和总结。第1节简要介绍了强化学习的基本概念,阐释了何为强化学习中的鲁棒性;第2节从引入H∞控制理论的鲁棒强化学习、域随机化方法、鲁棒对抗强化学习3个类别系统地对鲁棒强化学习进行综述;第3节分析并展望了鲁棒强化学习在航天控制中的应用;第4节对全文总结,并提出了进一步研究的思路。
强化学习是一种通过“试错”(Trial-and-Error)方式进行学习的算法。以马尔可夫决策过程(Markov decision process, MDP)为例,在强化学习中,智能体t时刻的信息用
图1 强化学习算法示意图
经过数十年的发展,强化学习已经成为了一个庞大的研究领域,产生了动态规划、时间差分、Q-learning、Sarsa、策略梯度、演员-评论家、Deep-Q-Network等诸多传统算法,并已在自动控制领域被广泛应用。
在强化学习的训练中,为了优化策略(即状态-动作函数),智能体需要在环境中进行大量采样,即不断探索(Exploration),并利用探索到的信息来优化自身在利用(Exploitation)时的决策,通过不断迭代和试错来进行学习。
但是,在航天工程、军事国防等失败代价较高的实际任务中,不允许智能体的决策存在失败的情况,即要求不能试错。因此,必须通过建立仿真环境进行训练,离线生成策略,并迁移到实际环境中。然而,实际环境和仿真环境间存在差异,如空间机器人遥操作问题中关节的阻尼无法准确测量,地外行星探测问题中星表摩擦力未知等,一旦仿真环境和实际环境无法完全匹配,或是存在轻微扰动,在仿真环境中离线生成的策略将无法在实际环境中进行控制,即会出现过拟合现象,在一定程度上限制了强化学习在实际环境中的应用。
在自动控制中,如果某种强化学习算法能够在输入存在小范围偏差,或是模型存在小范围不确定性的情况下,仍然保持良好的控制效果,那么这一算法就是鲁棒的。文献[7]指出,建模的误差可以看作是系统中额外的输入扰动,因此本文只考虑在输入存在小范围偏差的情况下强化学习算法的鲁棒性。
为了打破仿真环境和实际环境间的壁垒,越来越多的鲁棒强化学习算法被提出。本节将对鲁棒强化学习的最新研究进行分类和总结,并从引入H∞控制理论的鲁棒强化学习、域随机化方法、鲁棒对抗强化学习3个方面分别分析鲁棒强化学习的研究进展,如图2所示。
图2 鲁棒强化学习的分类
一种常见的方法是在强化学习中引入H∞控制。H∞控制理论给出了鲁棒控制系统的设计方法,不仅能保证控制系统的鲁棒性,而且能优化部分性能指标。如图3所示,以一般控制系统为例,G为系统的传递函数,K为控制器,u为系统输入的控制量,y为系统的测量输出,w为输入扰动,z为被控输出。
图3 H∞控制示意图
H∞控制的目的是即使存在一定的输入扰动,系统的输出误差仍然很小,即w到z的传递函数尽可能的小,用H∞范数表示为
(1)
式中:‖·‖2为L2范数;γ为设置的阈值。
(2)
通过进一步变换[8],可以将式(2)变化为寻找最优解
(3)
其条件为
(4)
式(4)即为哈密顿-雅可比-艾萨克方程(Hamilton-Jacobi-Isaacs equation, HJI equation)。
根据这一思想,在强化学习算法中,在奖赏r(t)外增加干扰奖励,得到增强型奖励函数
q(t)=r(s(t),a(t))+ω(w(t))
(5)
式中:w(t)为干扰;ω(w(t))为用来减少干扰输入的附加奖赏。
此时价值函数为
(6)
式中:τ为时间常数。
HJI方程为
(7)
式中:T(·)为状态转移函数。
针对基于模型的强化学习问题,可以利用价值梯度(Value gradient)理论,将鲁棒控制要求转化为微分对策,将连续时间强化学习控制问题转化为含有增强型奖励函数的最大最小准则优化问题。其最优解可以直接通过求解HJI方程确定,这种方法在倒立摆的控制仿真中取得了比传统强化学习更好的结果[9]。
针对无模型强化学习问题,一种名为行动者-干扰者-评论家(Actor-Disturber-Critic)的算法被提出,算法框架如图4所示。行动者和干扰者的策略分别为
图4 行动者-干扰者-评论家框架[6]
a(t)=ga(Aa(s(t);va)+na(t))
(8)
w(t)=gw(Aw(s(t);vw)+nw(t))
(9)
式中:A(·)为参数v的函数逼近器;n(·)为噪声。
定义TD error
(10)
则算法的更新策略为
(11)
(12)
式中:η为学习率。
通过使用这种框架,可以解决大多数非线性系统最优策略不可解释的问题。在此基础上,文献[10]通过信赖域策略优化(Trust region policy optimization, TRPO)的方法,引入深度神经网络作为函数逼近器,利用深度强化学习(Deep RL, DRL)的思想拓展了无模型鲁棒强化学习算法,并在很多复杂非线性机器人的仿真中验证了鲁棒性。文献[11]进一步提出了一种具有鲁棒稳定性保证的强化学习算法,利用最大熵算法搜索李雅普诺夫函数,保证闭环系统的H∞性能和稳定性,实现了目前最优的鲁棒性能。
引入H∞控制理论的鲁棒强化学习可拓展性强、适用方法多,能够在很大程度上提升算法的鲁棒性,但算法依然是有限制的、概率意义下的鲁棒,因此,如何更大范围地提升算法的鲁棒性,成为引入H∞控制理论鲁棒强化学习的研究方向之一。
与引入H∞控制理论的鲁棒强化学习算法不同,另一种思路是在智能体的训练过程中引入多个仿真环境,增强训练得到的策略适应不同环境的能力,以减弱实际环境中模型不确定性带来的影响,这类方法被称为域随机化(Domain randomization)方法,算法框架如图5所示。
图5 域随机化方法框架
域随机化方法最早可追溯至1995年,Jakobi等[12]将传感器和执行器参数进行随机化处理,一定程度上减小了噪声和模型不确定性带来的影响。
在强化学习中,以MDP问题为例,系统模型可以用状态转移函数表示为
st+1=T(st,at)
(13)
通过引入模型参数μ,得到一组模型
st+1=T(st,at;μ)
(14)
μ~ρμ
(15)
式中:ρμ为参数μ的概率分布。
此时,问题即转化为最大化目标函数
(16)
可以使用策略梯度等算法进行求解。
文献[13]通过增加扰动,进而改变名义模型的参数,得到一组仿真模型进行训练,实现了有限模型集上的策略优化,但由于算力限制,其模型集中最多存在10个模型,在一定程度上限制了算法鲁棒性的提高,且没有将算法迁移到实际环境中进行测试。文献[14]将算法应用于基于视觉的物体定位问题中,得到的物体探测器的定位精度达到1.5cm,且在干扰物和部分遮挡物存在的情况下依然有着良好的检测性能,第一次将仅在模拟RGB图像上进行训练的深度神经网络成功转移到实际环境中,证明了算法的鲁棒性。文献[15]在训练时随机初始化摩擦系数和动作延迟,训练机器人旋转夹持器中的工具,利用算法控制机械臂推动物体,将随机放置的随机物体有效地移动到目标位置,进一步在实际任务中证明了算法的鲁棒性。
域随机化方法逻辑简单、实现方便,但其弊端也相对明显:在增加仿真环境个数的同时,算法的计算量会成倍增加;增加仿真环境只能在一定程度上提高算法的鲁棒性,当实际环境不在仿真环境的包络集合中时,训练的策略很大程度上也不会取得良好的控制效果。因此,域随机化方法虽然能够在一定程度上提高强化学习算法的鲁棒性,但其提升程度有限,智能性相对较弱。
受引入H∞控制理论的鲁棒强化学习算法和域随机化方法的启发,2017年,Pinto等[16]提出了鲁棒对抗强化学习(Robust Adversarial RL, RARL)的概念。与一般的鲁棒强化学习算法直接由智能体与环境进行交互不同,鲁棒对抗强化学习引入对手(Adversary)帮助主角(Protagonist)学习。对手的目的是产生扰动,进而影响主角学习;主角的目的是在对手的扰动下,仍然能够完成给定任务,进而实现鲁棒的控制性能。
一种自然的想法是让对手模拟在实际环境中所有可能出现的情况[17]。但是,增强鲁棒性的本质是即使存在能够让系统输出偏差最大的输入扰动,系统依然能够保持良好的控制性能,这意味着模拟所有的输入扰动的计算效率极低,且在大多数任务中,无法获得实际环境的所有可能情况。鲁棒对抗强化学习将主角的学习特性同样赋予对手,即同时训练主角与对手两个智能体,以优化主角的决策,其算法示意图如图6所示。
图6 鲁棒对抗强化学习算法示意图
对于主角和对手,其决策分别为
(17)
(18)
系统的状态转移函数和环境反馈的奖赏分别为
(19)
(20)
为了使对手对主角产生的影响最大,采用零和博弈的思想,规定主角和对手获得的奖赏分别为
(21)
(22)
主角和对手的奖赏函数分别为
(23)
(24)
式中:T为预测时域。
最优解条件为
(25)
即找出在对手影响最大的情况下奖赏的最大值。
根据这一思想,一些其他方法也可以归入鲁棒对抗强化学习的框架中来。引入H∞控制理论的鲁棒强化学习可以在某种程度上被认为是智能体与环境之间进行连续动态的零和博弈,其中环境即为输入、状态转移函数、模型不确定性等。域随机化方法可以被认为是智能体与一系列训练环境之间的对抗,通过随机化模型参数的方式,建立一系列固定的仿真环境,智能体通过与仿真环境之间的博弈进而优化自身的控制策略,从而提高算法的鲁棒性。在此基础上,文献[18]引入深度学习(Deep learning)的思想,使用深度双Q学习(Deep double Q-learning)算法和深度确定性策略梯度(Deep deterministic policy gradient, DDPG)算法,大幅度提升了算法在倒立摆等常见应用中的鲁棒性。
鲁棒对抗强化学习能够胜任实际的控制任务,有效地解决了当仿真环境和实际环境间存在差异时的控制问题。然而,关于对抗与鲁棒性之间关系的理论研究尚处于起步阶段,如何从理论上证明算法的鲁棒性保障,或对算法的可解释性进行研究,成为了鲁棒对抗强化学习的发展方向之一。
随着航天工程逐渐向复杂化、智能化的方向发展,任务场景的非结构化和高交互性的日渐增强,对控制算法提出了更高要求[19]。近年来,计算机算力的不断提高让强化学习这类智能控制算法在航天控制中的应用成为了可能。空间在轨维护、小行星勘探、星球表面着陆、行星基地建造、空天飞行器控制[20]等典型场景也对控制算法的鲁棒性提出了新的挑战。本节将分析鲁棒强化学习在航天控制中的应用现状,并对其应用前景进行展望。
作为一种端到端的智能控制方法,强化学习能够适应日益复杂的航天控制任务。文献[21]提出单网络积分型强化学习(SNIRL)算法,并将其应用在再入飞行器姿态控制问题中。求得最优控制律只需要采用评价网络估计值函数,证明了闭环系统的稳定性。但由于实际的航天任务中存在不确定性,当实际环境与仿真环境不匹配时,算法很大程度上不能实现控制,即传统的强化学习算法没有专门解决鲁棒性这一问题。
近年来,越来越多的学者将目光集中到了航天控制中的鲁棒性问题上,我国载人运载火箭CZ-2F即利用基于参数裕度的鲁棒设计方法提高控制系统的可靠性[22]。对于航天控制任务,由于太空环境复杂恶劣,为了提高空间飞行器芯片的可靠性,其计算单元的密度通常被控制得很低,导致其计算能力下降,无法进行大规模的训练。因此,要实现鲁棒强化学习在航天控制中的应用,需要解决的一个重要问题即为:在空间飞行器星载芯片算力有限的条件下,如何满足鲁棒强化学习训练的高计算量消耗需求。
根据鲁棒强化学习算法的训练过程是否在线,可以将应用分为3类,即在线训练的鲁棒性策略、离线训练的鲁棒性策略、离线训练与在线更新相结合的鲁棒性策略,如图7所示。本部分将分别对这3类应用方法进行分析,并总结各类方法的适用场景。
图7 鲁棒强化学习在航天控制中的应用分类
在少部分航天控制任务中,鲁棒强化学习算法可以直接进行在线训练,如图8所示。如在大型航天器的在轨制造/装配任务中,虽然环境特性未知,无法完全由人直接参与决策制定,但是环境在较长时间内变化缓慢,留给机械臂进行精细操作的时间比较充裕,对星载计算单元的算力要求不高,可以在线进行充分的鲁棒强化学习训练,实现自主、鲁棒的任务规划和决策的优势[23]。
图8 在线训练的鲁棒性策略
然而,完全在星载计算单元上进行训练在大多数情况下是不可行的,一个常见的思路是训练与应用分离,即在地面站预先做离线训练,并将训练好的鲁棒性策略迁移至空间飞行器的控制单元中,在实际的航天工程任务中直接应用该策略,如图9所示。
图9 离线训练的鲁棒性策略
这一离线训练方法常用于星表着陆等在线训练计算量大的任务中,通过端到端的优化学习方法,可以解决类似航天器软着陆这样的复杂非线性系统[24]。文献[25]首次将强化学习算法应用于行星表面自主着陆问题中,提出了一种基于强化学习的制导算法,通过设计一种自适应制导算法,能够克服一定的环境不确定性,可以实现鲁棒、省油、准确的着陆。算法将训练过程预先放在地面站进行,尽管训练阶段的计算量很大,但是一旦训练完毕,网络输出就由矩阵乘法和函数求值确定,其计算量少,且神经元的权重可以很容易地存储在星载内存中,能够实现100 Hz的高频控制。仿真结果表明,该算法能够自主跟踪逼近最优的燃料消耗轨迹,其精度已经超出目前火星探测任务的需求。
在文献[25]的基础上,文献[26]使用策略梯度中的近端策略优化(Proximal policy optimization)方法来学习策略,将着陆器估计的状态直接映射到每个引擎的推力指令策略中,能够在实际部署的轨道上产生准确且几乎最佳的燃料轨迹,并能够在6自由度仿真环境中抵抗噪声和系统不确定性影响,进一步增强了系统的鲁棒性,同时通过使用不同的衰减因子来获得奖励,显著提高了系统的优化性能。
文献[27]提出了一种自适应降落算法,从经验中学习如何利用着陆器下方的图像和高度计数据,并将此数据作为输入,计算月球表面精确着陆问题中的最佳推力,利用卷积递归神经网络和元学习算法实现基于图像和实时的导航,证明了算法在月球着陆任务中控制性能的鲁棒性。
离线训练的鲁棒强化学习方法虽然能很大程度上减轻星载计算单元的计算压力,但也和其他离线算法一样存在明显的缺点:控制策略离线生成,导致其无法实时在线更新优化,难以适应新的不同环境,在一定程度上限制了其鲁棒性的进一步提升。
除了在线训练和离线训练的鲁棒强化学习应用方法,还有一种折衷的思路是离线训练与在线更新相结合,即先在地面站的计算中心进行大规模训练,得到初始的鲁棒性策略,再将初始策略迁移至空间飞行器中,根据实际任务环境在线更新,以实现策略对未知环境的控制效果,如图10所示。
图10 离线训练与在线更新相结合的鲁棒性策略
受限于星载计算单元的算力,这种离线训练与在线更新相结合的方法目前只适用于空间机械臂在轨操作等计算资源消耗少、采样周期长的任务。文献[23]针对目标特性未知的在轨操作环境,除了上文提到的在线训练方法,还提出了离线训练与在线更新相结合的方法:首先在地面站进行离线训练,训练出初始的鲁棒策略,之后在实际的在轨操作任务中只需根据环境的变化做少量的探索更新,并针对目标特性未知的在轨操作环境研究了典型空间操作机械臂的路径规划策略,采用Sarsa(λ)强化学习方法实现目标跟踪及避障的自主路径规划与智能决策。该方法将机械臂的每一节视为一个决策智能体,通过感知由目标偏差和障碍距离程度组成的二维状态,设计了符合人工经验的拟合奖赏函数,进行各机械臂转动动作的强化训练,最终形成各智能体的状态-动作值函数表,即可作为机械臂在线路径规划的决策依据。通过将本方法应用于多自由度空间机械臂路径规划任务,仿真结果表明,算法能在有限训练次数内实现对移动目标的稳定跟踪与避障,同时各智能体通过学习所得的状态-动作值函数表具备较强的在线自主调整能力,从而验证了算法具有较强的智能性和鲁棒性。
文献[28]针对空间机器人的控制问题展开进一步研究。自由飘浮的空间机器人在实际的空间环境中运动非常缓慢,对系统实时性的要求比地面固定基座的机器人低,这为神经网络的在线学习提供了充分的时间。针对自由漂浮空间机器人,文章利用RBF神经网络来逼近其动力学模型,设计了鲁棒控制器对逼近误差和外部干扰进行抑制,建立了新的神经网络参数和连接权值的在线学习算法,利用耗散理论设计鲁棒控制器,在保证系统实时性和稳定性的前提下,进一步提升算法的控制精度。可以认为其提出的鲁棒强化学习算法是能够在线更新的。
文献[29]针对空间机械臂从地面装调到空间应用过程中重力项的变化问题,利用RBF神经网络在线建模,实时逼近重力项。其不依赖于系统的模型,不需要对系统的动力学方程进行参数线性化,提出了一种神经网络自适应鲁棒补偿控制策略,通过神经网络在线建模逼近系统模型中变化的重力项,逼近误差及系统的不确定性通过自适应鲁棒控制器来补偿,进而控制空间机械臂的末端,实现了地面环境与空间环境重力不匹配时的在轨操控任务。
综上,鲁棒强化学习在航天控制中的应用已初步显现,国内外多名学者均针对此展开相关研究。依据任务的复杂程度,目前鲁棒强化学习在航天控制中的应用主要分为在线训练、离线训练、离线训练与在线更新相结合3种方法。其中在线训练无需任何先验知识,可以在完全未知的环境中在线生成鲁棒性控制策略,但只适用于任务相对简单的航天控制场景;离线训练主要针对任务复杂度高、不可能在太空的星载计算单元上训练的场景,不占用过多的星载计算资源,但需要事先获取大量的训练数据,且无法在实际环境中在线更新,一定程度上限制了其鲁棒性;用离线训练与在线更新相结合的方法对前两种方法进行融合,既不过多地占用星载计算资源,又能够实现策略的实时更新,但当任务相对复杂、采样周期过短时,算法的计算消耗即会显著增加,无法实现鲁棒性策略的实时在线更新。
作为一种智能控制算法,鲁棒强化学习打破了仿真训练和实际任务之间的壁垒,在航天器的在轨服务与操作、地外行星探测、军事国防等领域都有着十分开阔的应用前景,如图11所示。
图11 鲁棒强化学习在航天控制中的部分展望
在航天器的在轨服务与操作方面,航天工程对航天器的结构和功能提出了复杂化和智能化的要求,使得航天器在轨维修、模块更换等需求日益增加,增强航天器的可靠性、降低维护成本、提高航天器的寿命等对于保障航天器的安全稳定运行具有重要意义[30],同时也对控制算法的鲁棒性提出了巨大挑战。由于存在天地大回路信号传输时延、获取信息有限、不同人决策经验的相异性等因素,由地面人员手动进行卫星控制显然不切实际。鲁棒强化学习算法可以很好地解决这一问题,首先通过仿真环境离线训练“粗”的初始策略,接着在实际环境中在线学习“细”的策略,使用鲁棒强化学习算法保证策略从仿真环境迁移到实际环境中的鲁棒性,即可实现故障实时自动检测、精细化故障维修等功能,在无需人为控制的情况下完成航天器的在轨服务与操作。
在地外行星探测方面,由于行星表面环境复杂,需要用离线训练算法对探测器进行控制,以避免因未知地形造成的倾倒、空转、卡堵等情况。但由于无法准确获得摩擦力等星表环境参数,仿真环境与实际环境间必定存在差异,可用鲁棒强化学习算法解决这一问题。通过训练鲁棒性策略,探测器由仿真环境迁移至实际的星表时依然能够取得很好的控制性能,可以在多种地形上安全前行,适应不同的未知情况,实现可靠作业。
此外,在同样具有航天背景的军事国防应用中,鲁棒强化学习可以更加可靠地完成作战任务。如在战场的洲际弹道导弹拦截任务中,使用鲁棒强化学习算法能够更加快速、准确地完成导弹本体和敌方迷惑性目标的识别。我方拦截导弹可以利用鲁棒性策略,优化拦截方案的规划和设计,在提高拦截成功率的同时降低弹药损耗,同时保护我方主要军事目标的安全。这种拦截导弹在某种程度上可以被认为是一种“会学习”的导弹[31],如图12所示。
图12 使用鲁棒强化学习完成洲际弹道导弹拦截任务
目前,受限于理论水平、硬件设备等因素,鲁棒强化学习算法在航天控制中的应用正处于起步阶段,且算法的鲁棒性有待进一步提高。但是,随着理论研究的深入和计算水平的提高,鲁棒强化学习算法必将越来越多地应用于航天控制中,在提高航天器自主性的同时,充分保证算法的鲁棒性。
鲁棒强化学习是一种具有广阔应用前景的机器学习方法,能够为具有不确定模型的优化控制问题提供有力的分析手段。本文通过对国内外研究进行总结与评述,从引入H∞控制理论的鲁棒强化学习、域随机化方法、鲁棒对抗强化学习3个类别综述了鲁棒强化学习,分析总结了其在航天控制中的应用,并对未来应用前景进行了展望。
鲁棒强化学习是强化学习迈向航天控制等实际应用的重要一步。目前,针对鲁棒强化学习的研究尚未形成成熟的理论体系,因此算法在航天控制中的应用大多处于仿真阶段,鲜有在实际航天任务中使用。此外,太空环境复杂恶劣,为了提高航天器芯片的可靠性,计算单元的密度被控制得很低,导致计算能力相对变差,无法进行大规模的训练,对算法的学习效率、采样效率以及计算速度都提出了挑战。随着理论研究和硬件性能的不断发展,鲁棒强化学习的研究必定会进一步深入,在航天控制等实际任务中具有广阔的应用前景。