【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study

硕士论文题目:SAFE REINFORCEMENT LEARNING: AN OVERVIEW, A HYBRID SYSTEMS PERSPECTIVE, AND A CASE STUDY
HSCC:Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study

{Hybrid Systems: Computation and Control
HSCC 2019

文章目录

    • 摘要
    • Introduction
    • 基于学习控制系统的形式化模型
    • Shield护盾的实现
    • 具体实现、实验与评估
      • 实现 the shield, environment, agent and learner
      • 实验评估
    • 案例速览

摘要

RL在游戏方面取得的成就主要用于具有离散环境和主体的系统。在安全-计算机-物理系统应用中使用RL的一个关键问题是 在确保他们安全的同时还要使他们能够学习是很困难的。本文提出了一种用于学习非线性连续动力学控制系统安全策略的框架 FoRShield。建立了基于在线RL的控制系统的通用混合系统模型,该模型被用于形式化护盾的概念,该护盾可以过滤不安全的操作选择并向学习系统提供反馈。Present了一种利用现有混合可达性分析工具计算屏蔽层的具体方法。最后,为了说明这种方法的可行性,使用了一个无人机灭火的动态消防案例。

Introduction

我们的问题设置涉及分层控制系统:低层控制器将系统驱动到近期目标或航路点,一个高级的控制者或规划者选择一系列的目标来完成一个长期的任务。
低层控制器:现有的控制设计技术(如PID、LQR、MPC等)足以设计低级控制器。
高层规划器:规划者在完成任务时必须为多个目标进行优化,同时满足低级规划者施加的约束。人们可以使用自适应控制技术来设计这种规划器,但强化学习(RL)提供了另一个有利的方向,因为它不需要完整的环境模型,也不需要明确的目标函数规范。
通常的RL算法很少对可以探索和学习的策略类型设置任何限制。
所以引入了一种护盾的方法,能够将主体可以执行的操作集限制为仅安全的操作集。尽管护盾的方法是直观的,但如何开发模型来限制特定的操作集是模糊的。本文的工作通过可达性分析克服了这种模糊性。
提出的框架 FORShield: 利用带护盾的RL的有效策略探索来同时验证具有连续动态的agent在特定环境中的行为。
为了处理连续agent在状态空间中的复杂性和爆炸性,本文框架中的学习算法还利用了连续agent的离散抽象。离散主体用于驱动离散环境中RL算法的探索过程,而护盾则使用连续主体的动力学来验证所选择的操作对于连续主体是安全的
我们还提出了一种对具有平移不变动力学的主体重用可达性分析计算的方法。(这个没太明白作用是什么)
主要贡献如下:
(a)将基于RL的控制系统形式化为一个混合系统的框架;
(b)利用现有的混合验证技术对非线性对象模型和基于NN的RL算法的护盾提出适度的建议;
(c)在一个案例研究中对该方法进行了实验可行性测试。

基于学习控制系统的形式化模型

【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第1张图片

  • Agent
    Sa,主体的连续状态空间,由(低级控制器决定的)微分方程确定:
    【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第2张图片
    Oa ,the set of observable states of the agent。当前时刻,能够观察到的主体的状态。
    Obs,Sa → Oa 主体的状态到能够观察到的当前场景的映射。以案例为例就是 :Sa → Oa := [n] × {Emp, Full},意思就是无人机本来是连续的一个9维状态,但是要把它转换到这个2维地图中来,就只用关心它在哪一个格子,水箱是否有水就可以了。

  • Environment
    Se,离散的环境状态。在无人机这个案例中就是这个二维的地图。
    O, O = Oa ×Se 环境+主体的状态集合。

  • Planner
    P,所有可能planners 的集合。
    Planner function Pl : O × G → G ,由当前观察到的状态和当前的目标,得到下一个目标。这就是计划者的职责。

  • Learner
    Le : P×O×G ⊥ _⊥ → P , 学习者根据当前观察到的状态(主体和环境)和当前目标,用一个新的计划更新当前的计划器,目的是在任务完成的同时实现任务目标确保安全

  • Goal
    G,可能被计划指定的目标。案例中,就是地图上每个格子的坐标(r,c)表示,要去到这个目的地。

  • 混成系统的状态空间
    Q = Sa × Se × G ⊥ _⊥ × P,

  • 系统中的轨迹
    ξ,指的是[0,T]这一段时间的轨迹。

  • Shield 护盾
    Sh : O × G → {safe, unsafe}.输入当前观察到的状态和当前的目标,输出到达这个目标是轨迹是否安全。

  • 所以整个流程应该是,随机初始化策略。然后learner把当前策略告诉Planner,Planner使用这个策略,再根据当前环境和主体的状态输出一个小目标。这个时候,我们有了主体状态,环境状态以及目标,就可以利用已有的可达集计算方法结合低级控制器的微分方程来检查:在(Sa,Se)这个状态使用一个固定的随机策略p,确立一个g这样的目标,是不是安全的。–这个过程就是shield护盾。 如果不安全就使用负reward对Learner反馈,令其使用新策略来重复刚才的事情。如果安全,那么就更新状态,继续前进。就这样根据反馈来不断更新策略,直到完成消防任务,获得最佳策略。

  • 所以我们的目标就是,设计一个好的Learner和shield,使得系统H在安全的情况下,环境Se达到Se*这个目标状态。

  • 整个混成系统的定义1: 四元组 H = ⟨Q, Θ, D, T ⟩

    • Q = Sa × Se × G⊥ × P is the state space of the automaton.
    • Θ ⊆ Q is the set of initial states
    • T is a set of trajectories for Q
    • D ⊆ Q × {env, pln,repln} × Q the set of discrete transitions
      • (ℓ =evn 并且时间到达了t ( 每 过 t 时 间 都 会 发 生 一 次 ) (每过t时间都会发生一次) (t))environment transition:q′.Se ∈ En(q.Se ),all other components, remain unchanged
      • (ℓ =pln & 当前状态的小目标q.G是合法的 & q.Sa的状态已经到达了 ∈ Grd(q.G))planner transition:(q′.Sa,q′.Se ) = AE(q.Sa,q.Se ,q.G). q′.Pl = Le(q.Pl, Obs(q.Sa),q.Se ,q.G) 主体和环境都更新,同时策略也得到学习,然后指定一个新的目标g = q′.Pl(o′ a _a a,q′.Se ,q.G),如果这个新的目标是安全的,那么当前系统状态的小目标就是这个新目标,否则就设置为⊥,意思是不安全,就会进入下一个转换。
      • (ℓ =repln 并且当前小目标为⊥,不合法)re-plan transition: q.G =⊥,o a _a a = Obs(q.Sa),q′.Pl = Le(q.Pl, o a _a a,q.Se , ⊥) , 主体和环境都保持不变q’的主体环境状态和q一样,但是学习者还是会学习到这个结果,然后重新选择一个小目标 g = q′.Pl(o a _a a,q.Se , ⊥). 如果新目标安全那么就更新当前状态,并把q’目标定为新目标,否则q’ = ⊥。
      • 要注意的是,以上三种转换只要一激活就会立刻发生,在一个系统状态中,只会有一个转换发生。并且在一瞬间可以同时发生很多次转换,比如pln之后可能会连续好几个持续时间为0的轨迹来repln。
  • 定义2:我们定义的混成系统是goal-tracking的,因此对于每一个可以被planner选择的目标g,每一条目标为g的轨迹能够在某个T*时间到达g。这个规定是为了保证,低级控制器一定能把主体驱动到相应的目标点。

Shield护盾的实现

【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第3张图片
Reach H _H H(Q 0 _0 0,T) 表示从Q 0 _0 0这个状态出发,T时间内能够到达的所有状态。
如果初始状态的Sa之间非常的靠近,那么从Q 0 _0 0 出发,一定有个时间T,这个时候所有状态都都能到达它们第一个执行pln转换。也就是都只走很小一个范围,因为初始状态是安全的,所以这个范围内的状态都安全。那么
GoalReach H _H H(Q 0 _0 0)表示的是从Q0这个状态出发,在第一次到达pln转换的时候,目标为g的,那些状态。
我们的目标就是计算出这个GoalReach H _H H(Q 0 _0 0) 的过近似。如果这个过近似里面的状态都安全,那么就能保证,对于当前状态(Sa,Se)制定一个g目标很安全。
以上就是这篇文章中shield的实现方式。
此外,作者还对比了另外两种shield的算法,来说明他的方法更加安全:

  • sim。就是提前模拟的方法,从状态Q 0 _0 0出发,随机选一个主体当前所在方格的点作为主体的初始状态arbitrary sa ∈ Obs − 1 ^{-1} 1(Oa),因为当前的主体、环境状态以及目标都是已知的,可以用解微分方程的方法,来模拟这个轨迹。只要到达了目标或者到达了不安全状态就停止,返回safe或者unsafe。(显然这种方法不安全的缺陷很大,因为无法验证所有的初始区域,你这次模拟他是安全的,但是无法保证实际运行的时候是安全的)
  • line。就是直接连线。如果你选择了目标g,就直接在当前主体Sa所在的点和目标g的方格里面随机选一个点连线,作为轨迹,如果与U相交就不安全。(这个方法更加直白,缺陷也就更大)

然后作者简要的证明了一下连续动力系统的平移不变性,并且如果动力系统具有平移不变性那么它的可达集也具有平移不变性,这个结论在本实验中并没有被用到,可作为以后的研究方向。
大概意思就是,如果两个主体的初始状态相差一个常量,并且他们的目标状态也相差同样的常量,那么他们的轨迹的状况其实是一样的,主体A的可达集和主体B的可达集也可以同样的平移,不需要做二次计算可以节省计算时间。(似乎是很有道理,但是实际应用中应该还是要考虑环境的变化因素,所以应该只能部分重用?)
【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第4张图片

具体实现、实验与评估

实现 the shield, environment, agent and learner

  • FoRShield和sim使用 DryVR 来模拟无人机的连续动力学模型。(我的理解是用这个DryVR 方法来解微分方程模拟得到轨迹,对于FoRShield还要计算可达集。然后把计算的结果,就是所有的可达集,保存下来)。Line使用简单的交叉算法(就两个点连线,和U判断交集)。Shield放置的位置可以有三种情况:
  • FoRShield使用的是预验证:也就是提前把所有(O(sa),se,g)的可达集计算好了,然后再开始训练,验证的时候只用查询一下就知道是否安全;[Figure6.7]
  • Sim 和 Line 使用时事验证:一边训练,一边用DryVR计算(O(sa),se,g)的可达集每次计算是否安全;[Figure6.8]
  • 以及后验证:整个训练完成之后,已经得到了一个完整的策略(就是这个actor网络),然后从初始状态出发,运行这个actor,actor会根据已学习到策略采取一系列的动作,然后DryVR一一验证这些动作,如果有不安全的就记录到缓存中,然后加到训练集中,重新训练策略。[Figure6.9]
  • Learner和planner的部分使用 actor-critic算法的DNN来实现,把原先的DQN中的一个Q网络分解成了两个:actor和critic。
    • critic就相当于DQN中用来拟合值函数的那个Q网络用来计算累计回报的功能:它接受到状态S t t t,S t + 1 _{t+1} t+1,行为a t _t t和环境返回的立即回报 r,输出一个累计回报 y,用来计算损失函数从而更新actor和critic网络。这个案例中,critic网络的输出层就是一个值。
    • 而actor就负责根据当前状态S t t t输出要采取的动作到环境中。本案例中,actor网络的输出就是[r+c]个结点,表示应该前往的目标点。
      预验证:
      【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第5张图片
      时事验证:
      【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第6张图片
      后验证:
      【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第7张图片

实验评估

【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第8张图片

  • 三种方法都找到了最优解,如果不是最优解就尽量输出最短时间灭火的方案。
  • 时间上看,大部分情况 FSh的训练时间都是最长的,可以解释为,FSh的选择策略时受到更多的限制。但FoRShield验证时间不会随着案例变复杂而增加,甚至越来越快。因为FSh提前缓存了可达集计算运行的结果,只需要简单的查询,并且随着案例变复杂,不同算法和各自验证所需的验证次数和时间的差异就会变得明显。
    【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第9张图片
  • 从验证次数上看,每个例子中,Fsh总是执行最小次数的验证,并且遇到的不安全验证次数也是最少的(我的理解是因为地图是固定的,所以可达集的结果基本上是差不多的每次需要缓存的都是 O(Sa) X Se X g)。因为Line和Sim只能用在线的方法来验证,采取的每一个行动都需要验证,所以需要大量的验证。但只有FSh能够在训练期间完全规避掉不安全的操作。

案例速览

【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第10张图片
【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第11张图片
【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第12张图片
【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第13张图片
【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第14张图片

  • 主体(无人机)状态空间:Sa = R 9 ^9 9 × {Emp, Full}.就是无人机自身的物理状态(质量、速度、加速角速度,俯仰角等,这些变量用于低级控制器通过动力学方程将无人机驱动到目标位置)和水箱的状态。
  • 主体在环境中的状态:Oa = 可能着火的区域数 5 ^5 5 X 地图维数 X [full,empty]
  • 环境状态:Se = [8] n ^n n 因为每个格子会有8种状态,但其中只有5种需要无人机处理, n表示地图维数 【阅读笔记】Safe Reinforcement Learning for Control Systems: A Hybrid Systems Perspective and Case Study_第15张图片

你可能感兴趣的:(强化学习,系统分析与验证,阅读笔记)