论文阅读笔记-Safe Reinforcement Learning via Online Shielding
本文提出了一种基于保护性策略的强化学习算法,用于验证已知动力模型的控制策略在动态环境中安全性的保障。现有方法在高维状态空间和动态环境下存在局限性,本文通过引入保护性策略和恢复策略,确保在新的环境下仍能保证安全性。算法通过在线 shielding 策略动态选择当前策略或候补策略,确保系统状态始终处于可保护范围内。实验表明,该方法在 cart-pole 和 bicycle 模型上表现良好,适用于动态机器人系统的安全性验证。
文章目录
-
-
Abstract
-
Introduction
-
Preliminaries
-
Online Shielding Algorithm
-
算法细节
-
- LQR Control
- LQR Verification
- Summary
- Recovery policy
- Shield policy
-
Experiments
-
Abstract
本文聚焦于已知动力模型的情况,其目标是验证仿真学到的控制策略是否符合一个给定的安全约束。现有方法受到诸多限制,例如难以扩展到高维状态空间,且仅适用于固定环境的安全性验证。本文提出了一种基于Shielding的方法,当需要时采用候补策略替代当前策略以确保安全性。本文所提出的策略是一种在线策略,在确保高效计算的同时,能在新的环境下依然保持其安全性。
Introduction
在机器人任务中,强化学习是一种具有巨大潜力的自动策略生成方法,但其在实际应用中面临主要挑战,即无法对学到的策略进行安全性保证。
现有的安全强化学习方法依赖于对安全属性的先验验证,如验证策略的安全性或构建护盾学习等。主要局限性包括:一是计算复杂度急剧增加,随着状态空间维度的增加呈指数级增长。二是现有方法集中处理固定环境的安全属性,若遇到新环境,则要么需提前验证所有可能的环境,要么每次遇到新环境就需重新验证。最后,现有方法主要侧重于稳定性,即机器人保持在状态空间的某个约束区域,但实际中机器人可能包含更多动态行为。
贡献:
Preliminaries
给定任一控制策略\hat{\pi},本文的目标是实现最小的修改\hat{\pi},从而生成一个能确保安全性的控制策略\pi_{\text{shield}}。
LQR目标
对于状态-动作对(\tilde{x},\tilde{u})\in X*U,本文在(\tilde{x},\tilde{u})附近采用线性二次型调节器(LQR)来稳定系统。通过LQR验证技术,本文计算出保证安全的控制器区域。
为了更好地应用该技术,本文算法需要引入一个LQR目标映射\rho(x) = (\tilde{x},\tilde{u}),即给定一个状态x,我们将在(\tilde{x},\tilde{u})附近稳定系统。以本文采用的Cart-pole系统为例,其状态空间为x=(z,v,\theta,w)\in R^4,其中z表示小车位置,v表示小车速度,\theta表示木杆角度,w表示木杆角速度。因此,可以使用\rho((z,v,\theta,w))=((z,0,0,0),0)来实现目标映射。
Online Shielding Algorithm
Overview :
在每一步中,算法设计的护盾策略π_shield通过判断给定策略π_hat是否安全来决定策略的采用。如果π_hat是安全的,则直接采用;否则,π_shield(x)将采用备用策略π_backup(x)。
其中,π_backup是一个确保系统安全的备用策略,由两部分组成:(i)恢复策略π_rec,用于将机器的状态转换到一个可以稳定运行的状态;(ii)LQR控制策略π_LQR,当机器处于可稳定状态时,采用LQR方法进行控制。
定义为:如果一个状态可以被LQR方法稳定,则称该状态为可稳定状态。
主要挑战在于,无法保证恢复策略π_rec的安全性(因为π_shield可以采用任何恢复策略)。为此,主要解决方法是,如果一个状态x可以被恢复策略π_rec恢复,则称该状态为可恢复状态。在判断给定策略π_hat是否安全时,护盾策略会检查x' = f^π_hat(x)是否为可恢复状态:通过使用恢复策略π_rec对x'进行仿真。如果x'是可恢复状态,则直接采用π_hat是安全的;否则,由于x是可恢复状态,因此采用备用策略π_backup是安全的(因为要么x是可稳定状态,此时采用LQR控制;要么x是可恢复状态,此时采用恢复策略π_rec)。
因此,该算法能够保证:只要从任何一个可恢复状态出发,π_shield总是安全的。
注意:这种保证依赖于恢复策略π_rec的选择,即任何可稳定状态都是可恢复状态,而π_rec的引入扩展了可恢复状态的集合。

算法细节
LQR Control
给定一个LQR目标\rho(x) = (\tilde x, \tilde u),LQR控制器对函数f在点(\tilde x, \tilde u)附近进行线性化处理,得到\tilde f。由于LQR方法专为线性系统设计,而f可能具有非线性特性,因此需要进行局部线性化处理。此时,原状态x可能已经超出了该LQR策略的有效范围,因此在算法中可能出现x \notin G的情况。这是一个标准的LQR算法流程,因此本文不做详细展开(见引文[22,23])。
LQR Verification
本文采用LQR验证方法推导LQR策略函数π_{LQR}(x) = Kx,以确保安全区域的存在。
不变性(invariant):对于一个策略π,若对所有起始状态x_0 ∈ G,其轨迹均在G内,则称G ⊆ X为该策略π的不变性。
定理3.2.

我们称V为一个Lyapunov函数。对于任意给定的Lyapunov函数V,可以使用优化方法来确定一个\epsilon,使得G_\epsilon成为一个不变式。即:对于任意给定的函数集F:X→R,控制策略π和候选Lyapunov函数V,考虑以下优化问题:

第一个式子表示,当V(x)\leq\epsilon'时,V(x)\geq V(f^{\pi}(x))。第二个式子表明,当V(x)\leq\epsilon'时,b_{safe}-A_{safe}x\geq 0,即A_{safe}x \leq b_{safe},同时G_\epsilon不变式满足安全约束。
Theorem 3.3**
上述优化问题由于其高度复杂性,直接求解较为困难。因此,本文将候选Lyapunov函数限定在x的多项式类,其中函数F被限定为最高次数为d'的多项式集合。通过设定π=π_{LQR},左边的表达式也随之呈现多项式形式。
在此基础上,我们采用更严格的SOS约束来替代原约束条件,从而将原问题转化为一个SOS规划问题。
在候选Lyapunov函数的选择方面,一个标准的方法是采用代价函数(cost-to-go function)作为构建Lyapunov函数的基础,例如选取π_{LQR}的负值函数,这在LQR算法中被用作核心组件。这种形式的Lyapunov函数V(x)定义为V(x) = x^TPx,同样是一个多项式。由于V(x)是基于线性逼近系统\tilde f对π_{LQR}的Lyapunov函数,因此它也被用作真实系统f的候选Lyapunov函数。
Summary
LQRVerify通过计算得到\pi_{LQR} = Kx和候选Lyapunov函数的SOS不变式,并得到一个安全区域G_\epsilon。即,若x \in G,则称x \in X为(\tilde x, \tilde u)-_稳定_的点。
G = LQRVerify(\tilde x, \tilde u, \pi_{LQR}, V),其中\pi_{LQR},V由LQR控制律和Lyapunov函数V计算得到。
如果x是\rho(x)-稳定的,则称x为\rho(x)-稳定的点。
Remark 3.4 在实际操作中,通过利用系统的对称性,可以提前计算出所有可能的LQR目标的不变式。例如,在cart-pole系统中,LQR目标仅与变量z相关,由于变换的等价性,因此可以先计算出z=0时的不变式,其余的则可通过z变换直接获得。
Recovery policy
本文算法需要一个\pi_{rec}作为输入,该recovery policy理想地应该能够将系统转换到一个稳定的状态。虽然本文算法可以用任意的恢复策略,但最终的累积奖赏函数依赖\pi_{rec}的质量。因为\pi_{rec}质量高的话最终\pi_{shield}会更多的使用\hat\pi.
recoverable :
给定一个\pi_{rec}和一个时间域T,如果存在一个时间t' < T满足x_0,x_1,...,x_{t'} \in X_{safe}且x_t是 stable 的,其中
\begin{aligned} &x_0 = x\\ &x_{t+1}=f^{\pi_{rec}}(x_t) \end{aligned}
train \pi_{rec}:
随机采样一个初始状态x_0 \sim d_0,然后采样一个随机的时间域t \in N.然后使用\hat\pi对x_0仿真t步得到x_t,如果x_t \notin X_{safe},则丢弃x_t.
通过这种方式,可以得到一个X上的分布d_{rec},最后,使用奖励函数R_{rec}(x)=I[x\ is\ stable]用强化学习方法来训练一个策略\pi_{rec}。也可以使用R(x) = ||x-\tilde x||^2,其中(\tilde x, \tilde u) = \rho(x),即假定越靠近\tilde x的状态越稳定。
Shield policy
直观上来说,当系统处于(\tilde x, \tilde u)-stable状态时,若其无法 unify 到 recoverable 的不变式内,则采用\hat\pi策略;若能,则采用\pi_{rec}策略。当系统使用\pi_{rec}恢复到一个 stable 的状态x后,原则上,因为x已经是 stable 的了,可以使用\pi_{LQR}来稳定这个系统了。一个微妙之处在于,必须继续使用与当前状态一致的LQR策略\pi_{LQR},因为只有当轨迹位于不变式G内时,其安全性才得以保证。然而,随着x的变换,(\tilde x, \tilde u) = \rho(x)也会随之变化,从而导致对应的\pi_{LQR}和G也随之改变。因此,必须保证使用的是同一个\pi_{LQR},否则在算法中,如果使用\pi_{LQR}的话,返回的(\tilde x, \tilde u)就会发生变化。
Theorem 3.5.
Experiments
略
