Skip to main content
QUICK REVIEW

[论文解读] Scenic: A Language for Scenario Specification and Data Generation

Daniel J. Fremont, Edward Kim|arXiv (Cornell University)|Oct 13, 2020
Autonomous Vehicle Technology and Safety被引用 14
一句话总结

Scenic 是一种概率编程语言,旨在为网络物理系统中的物理场景和智能体行为指定概率分布,从而实现对真实、多样且罕见场景的针对性生成,用于训练和测试基于机器学习的系统。通过生成质量更高的合成数据,该方法在自动驾驶系统中显著提升了模型鲁棒性,其性能超越了现有最先进方法。

ABSTRACT

We propose a new probabilistic programming language for the design and analysis of cyber-physical systems, especially those based on machine learning. Specifically, we consider the problems of training a system to be robust to rare events, testing its performance under different conditions, and debugging failures. We show how a probabilistic programming language can help address these problems by specifying distributions encoding interesting types of inputs, then sampling these to generate specialized training and test data. More generally, such languages can be used to write environment models, an essential prerequisite to any formal analysis. In this paper, we focus on systems like autonomous cars and robots, whose environment at any point in time is a 'scene', a configuration of physical objects and agents. We design a domain-specific language, Scenic, for describing scenarios that are distributions over scenes and the behaviors of their agents over time. As a probabilistic programming language, Scenic allows assigning distributions to features of the scene, as well as declaratively imposing hard and soft constraints over the scene. We develop specialized techniques for sampling from the resulting distribution, taking advantage of the structure provided by Scenic's domain-specific syntax. Finally, we apply Scenic in a case study on a convolutional neural network designed to detect cars in road images, improving its performance beyond that achieved by state-of-the-art synthetic data generation methods.

研究动机与目标

  • 为解决在自动驾驶等安全关键领域中,基于机器学习的网络物理系统在训练和测试中生成真实、多样且罕见数据的挑战。
  • 在保持真实性和物理合理性的同时,支持对具有几何和行为约束的复杂环境分布进行建模。
  • 通过聚焦于困难或引发故障的场景(如罕见交通场景或遮挡情况)生成数据,提升系统鲁棒性和测试覆盖率。
  • 提供一种领域特定语言,结合声明式约束、概率分布和类似命令式语法,实现直观的场景编写。
  • 通过从单个故障案例推广至更广泛的系统性测试场景,实现自动化调试与可 falsification( falsification 指验证系统缺陷的能力)

提出的方法

  • Scenic 使用领域特定语言将场景定义为物理对象和动态智能体的概率分布,支持位置、方向和行为等属性。
  • 支持声明式硬约束与软约束,以确保几何与物理合理性,例如物体不重叠、车辆轨迹符合实际。
  • 语言集成了场景参数(如物体位置、速度)上的概率分布,以建模多样的环境状态。
  • 采用专门的采样技术,高效生成同时满足概率条件与约束条件的场景。
  • 通过可重用组件和用户自定义规范支持场景的组合式构建,提升模块化与复用性。
  • 支持与仿真环境及机器学习流水线的集成,实现感知系统端到端的训练、测试与调试。

实验结果

研究问题

  • RQ1概率编程语言能否有效用于生成用于训练和测试基于机器学习的网络物理系统的逼真、多样且罕见的场景?
  • RQ2在场景采样过程中,如何声明式地表达并高效强制执行几何与动态约束?
  • RQ3与以往的数据合成方法相比,Scenic 生成的合成数据在多大程度上能提升神经网络的鲁棒性与泛化能力?
  • RQ4Scenic 是否可用于系统性地识别并从故障案例中推广,以生成具有 falsification 潜力的测试用例?
  • RQ5将概率建模与场景生成相结合,如何提升自动化测试与调试的效率与覆盖率?

主要发现

  • Scenic 生成的合成数据显著提升了汽车检测神经网络的性能,超越了以往非概率合成数据生成方法的上限。
  • 该方法实现了对困难案例(如被遮挡或距离较远的车辆)的针对性训练,显著提升了在复杂条件下的检测准确率。
  • Scenic 编码复杂几何与行为约束的能力,确保了生成场景的物理合理性,避免了如车辆相交或不可能朝向等伪影。
  • 语言的声明式语法与约束系统使得场景描述简洁明了、易于阅读,降低了场景编写时的认知负担。
  • 该方法能够自动从单个故障案例推广至更广泛、系统性的测试场景,显著提升了 falsification 与调试的有效性。
  • Scenic 已成功应用于自动驾驶之外的领域,包括飞机与水下航行器系统,证明了其更广泛的应用潜力。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。