【阅读笔记】Falsification of Cyber-Physical Systems Using Deep Reinforcement Learning

FM2018 Falsification of Cyber-Physical Systems Using Deep Reinforcement Learning
(International Symposium on Formal Methods)

摘要

随着软件和分布式计算的迅速发展,信息物理系统(CPS)被广泛应用于许多领域,如智能电网,自动驾驶汽车等。由于软件和物理系统的复杂性,检测CPS模型中的缺陷是困难的,传统的系统验证技术,如模型检验或定理证明,由于物理部件具有无穷多个状态,很难应用于CPS。为了有效地发现CPS模型中的缺陷,引入了以鲁棒性为导向CPS模型性质falsification方法。现有方法使用全局优化技术来生成违反了CPS模型性质的反例。然而,这些方法可能需要大量的模拟运行才能找到反例,往往超出了实际可行性。本文探索最先进的深度强化学习(DRL)技术,以减少查找此类反例所需的模拟运行次数,并讨论了具体方法和初步评估结果。
个人理解就是,如果做图片和文本的对抗样本的话,只需要很直观的添加扰动就可以了,但是做系统的话,需要仿真出一系列的轨迹,就很麻烦,如果用RL的话,可以很自动化的仿真出这样一条轨迹,并且这个轨迹还是能够检测系统缺陷的。

Introduction

传统的用于保证CPS模型正确性的测试方法很难保证测试的高覆盖率,因为状态空间是无限的。可以用测试软件系统的形式化方法诸如模型检测和理论证明来缜密的验证这个系统,但model check是不确定的,因为CPS的状态空间是无限的;而理论证明又非常困难。 因此,引入了鲁棒引导证伪[2]、[3]方法来有效地检测CPS中的缺陷。
使用Metric Temporal Logic(MTL)和它的 Signal Temporal Logic (STL)常被用于表示CPS模型应该满足的(鲁棒性)性质,从而数字化度量一个CPS模型的鲁棒性程度,然后通过在CPS模型的状态空间中探索,确定鲁棒性最小的系统参数作为测试的输入参数。通过这种方式,鲁棒性引导的证伪有助于生成缺陷引导系统参数(即反例),从而能够更高效、更自动地检测缺陷。尽管稳健性引导证伪的不终止并不意味着没有反例,这在一定程度上说明了CPS模型的正确性。
现有随机全局优化方法如模拟退火、交叉熵的方法来最小化时序逻辑公式的值。(loss函数?)为了测试CPS,我们需要生成一系列能够使这些系统失败的输入。现有的鲁棒性指导的证伪通常被表示为参数生成问题。 输入分为几个控制点,在这些点的输入被视为系统参数。但是这些输入和系统响应之间的时序关系是被丢掉了的,并且代表输入的控制点形成高维空间,在高维空间中进行优化是非常困难的。
在DRL在无功非线性系统(如游戏)上的成功应用的启发下,本文提出将伪造问题作为一个强化学习问题并进行解释,利用DRL的交互学习能力寻找反例。 我们关注的是reactive的CPS,即实时从环境中获取输入的CPS。 我们采用了两种最先进的强化学习(D RL)技术,即Asynchronous Advanced Actor Critic(A3C)和Double Deep-Q Network(D DQN),来解决CPS上的鲁棒性引导伪造问题。
本文的主要贡献有:
(1)展示了怎样将找到违反CPS模型鲁棒性性质的行为序列的问题转化为深度强化学习(DRL)问题;
(2)实现提出的方法并进行初步评估,结果证明利用DRL技术可以减少寻找CPS模型致错输入需要的模拟运行次数,进而减少模拟运行的总时间。
(3)提出基于强化学习技术的CPS模型鲁棒性性质falsification问题的测试框架,为进一步探索该问题提供了保障。

Related work

鲁棒性指导的方法分为黑盒方法和灰盒方法。 黑盒方法可以进一步分为将鲁棒性伪造问题转化为全局优化问题的方法和基于统计建模的方法。 采用全局优化技术的方法包括采用模拟退火的方法、 采用遗传算法的方法、Tabu search(禁忌搜索)、梯度下降等。 基于统计建模的方法包括交叉熵法、高斯回归。
在控制器合成领域也有采用强化学习(RL)来满足MTL性质的方法。 这项任务的挑战之一是如何从给定的公式设计RL中的奖励。 一种策略是探索基于自动机的奖励塑造[31]、[32]、[33]。 这些方法将MTL公式转换为相应的自动机,并根据自动机的当前状态决定奖励。 另一种方法使用MTL的健壮性。控制器生成方法是要将系统一直保持在安全的状态中,但证伪方法是找出系统的漏洞,不同的目的对应了不同的奖励函数设置。

基础定义

  • 我们关注的是能够实时输入并且输出的系统,并且假设输入和输出是发生在一瞬间的离散的时刻。连续的系统可以通过采样来适应离散的系统。这个系统就是一个函数f :X* -> Y X*是输入的集合,Y是输出。f(x 1 _1 1, . . . , x i _i i) = y i + 1 _{i+1} i+1 ,意思是连续输入i次,输出的结果记为y i + 1 _{i+1}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值