CN114514524A - 多智能体模拟 - Google Patents

多智能体模拟 Download PDF

Info

Publication number
CN114514524A
CN114514524A CN202080070475.1A CN202080070475A CN114514524A CN 114514524 A CN114514524 A CN 114514524A CN 202080070475 A CN202080070475 A CN 202080070475A CN 114514524 A CN114514524 A CN 114514524A
Authority
CN
China
Prior art keywords
agent
simulation
state
time step
candidate next
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080070475.1A
Other languages
English (en)
Inventor
B.A.怀特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Waymo LLC
Original Assignee
Waymo LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Waymo LLC filed Critical Waymo LLC
Publication of CN114514524A publication Critical patent/CN114514524A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes
    • G09B9/02Simulators for teaching or training purposes for teaching control of vehicles or other craft
    • G09B9/04Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles
    • G09B9/042Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles providing simulation in a real vehicle
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes
    • G09B9/02Simulators for teaching or training purposes for teaching control of vehicles or other craft
    • G09B9/04Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles
    • G09B9/048Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles a model being viewed and manoeuvred from a remote point
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes
    • G09B9/02Simulators for teaching or training purposes for teaching control of vehicles or other craft
    • G09B9/04Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles
    • G09B9/05Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles the view from a vehicle being simulated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks

Abstract

方法、系统和装置,包括编码在计算机存储介质上的计算机程序,用于生成多个智能体在多个时间步长上与之交互的环境的模拟,其中该模拟包括每个时间步长的相应模拟状态,所述相应模拟状态指定每个智能体在该时间步长的相应状态。在一个方面,一种方法包括,对于每个时间步长:获得当前时间步长的当前模拟状态;生成下一时间步长的多个候选下一模拟状态;对于每个候选下一模拟状态,确定表征该候选下一模拟状态是真实模拟状态的可能性的鉴别分数;基于候选下一模拟状态的鉴别分数,选择候选下一模拟状态作为下一时间步长的模拟状态。

Description

多智能体模拟
技术领域
背景技术
本说明书涉及使用机器学习模型来模拟环境。
机器学习模型接收输入并基于接收到的输入生成输出,例如预测输出。一些机器学习模型是参数模型,并基于接收到的输入和基于模型的参数值生成输出。
一些机器学习模型是深度模型,其采用多层模型来为接收到的输入生成输出。例如,深度神经网络是一种深度机器学习模型,其包括一个输出层和一个或多个隐藏层,每个隐藏层将非线性变换应用于接收到的输入以生成输出。
发明内容
本说明书描述了实现为在一个或多个位置的一个或多个计算机上的计算机程序的模拟系统,该模拟系统可以学习控制与模拟环境交互的一组智能体,以使它们的行为真实地模拟真实世界智能体的行为。
根据第一方面,提供了一种由一个或多个数据处理装置执行的用于生成一组智能体在时间步长的序列上与之交互的环境的模拟的方法。所述模拟包括每个时间步长的相应模拟状态,所述相应模拟状态指定每个智能体在所述时间步长的相应状态。所述方法包括,对于每个时间步长,获得当前时间步长的当前模拟状态。基于当前模拟状态生成下一时间步长的一组候选下一模拟状态。生成每个候选下一模拟状态包括,对于每个智能体,从能够由所述智能体执行的一组可能动作中采样相应动作。对于每个智能体,确定如果智能体在当前时间步长执行对应的采样动作,则所述智能体在下一时间步长的相应下一状态。对于每个候选下一模拟状态,确定表征所述候选下一模拟状态是真实模拟状态的可能性的鉴别分数。基于候选下一模拟状态的鉴别分数,选择候选下一模拟状态作为下一时间步长的模拟状态。
在一些实现方式中,智能体是环境中的载具。
在一些实现方式中,能够由智能体执行的一组可能动作包括调整智能体的转向角的动作。
在一些实现方式中,能够由智能体执行的一组可能动作包括调整智能体的加速度的动作。
在一些实现方式中,智能体在一时间步长的状态包括:(i)智能体在该时间步长的位置,和(ii)智能体在该时间步长的运动。
在一些实现方式中,智能体的位置包括:(i)智能体在环境中的空间位置,以及(ii)智能体在环境中的航向。
在一些实现方式中,智能体的运动包括:(i)智能体的速度,和(ii)智能体的加速度。
在一些实现方式中,该方法还包括,对于每个智能体,获得环境中智能体的当前状态的表示,以及使用策略神经网络处理环境中智能体的当前状态的表示以生成在智能体的一组可能动作上的对应概率分布。对于每个智能体,从一组可能动作中采样相应动作可以包括,对于每个智能体,根据在智能体的一组可能动作上的概率分布,从该组可能动作中采样动作。
在一些实现方式中,对于每个智能体,确定如果智能体在当前时间步长执行对应采样动作,则智能体在下一时间步长的相应下一状态包括,对于每个智能体,使用运动模型处理表征(i)智能体的当前状态以及(ii)智能体的采样动作的数据,以生成智能体在下一时间步长的下一状态。
在一些实现方式中,确定表征候选下一模拟状态是真实模拟状态的可能性的鉴别分数包括获得候选下一模拟状态的表示。可以使用鉴别器神经网络处理候选下一模拟状态的表示,以生成表征候选下一模拟状态是真实模拟状态的可能性的鉴别分数。
在一些实现方式中,获得候选下一模拟状态的表示包括:对于每个智能体,获得智能体在对应于候选下一模拟状态的下一时间步长的下一状态的表示。使用鉴别器神经网络处理候选下一模拟状态的表示可以包括,对于每个智能体,使用鉴别器神经网络处理智能体在对应于候选下一模拟状态的下一时间步长的下一状态的表示以生成表征智能体的下一状态是真实智能体状态的可能性的智能体特定鉴别分数。可以基于智能体特定鉴别分数来生成表征候选下一模拟状态是真实模拟状态的可能性的鉴别分数。
在一些实现方式中,基于智能体特定鉴别分数生成表征候选下一模拟状态是真实模拟状态的可能性的鉴别分数包括计算智能体特定鉴别分数的最小值。
在一些实现方式中,鉴别器神经网络被训练以生成鉴别分数,如果环境状态是真实世界环境状态,则鉴别分数将该环境状态表征为真实的。
在一些实现方式中,基于候选下一模拟状态的鉴别分数来选择候选下一模拟状态作为下一时间步长的模拟状态包括选择具有最高鉴别分数的候选下一模拟状态作为下一时间步长的模拟状态。
根据第二方面,提供了一种系统,所述系统包括一个或多个计算机和一个或多个存储设备,该一个或多个存储设备通信地耦合到一个或多个计算机,其中,一个或多个存储设备存储指令,这些指令在由一个或多个计算机执行时,使一个或多个计算机执行第一方面的方法的操作。
根据第三方面,提供了一种或多种存储指令的非暂时性计算机存储介质,所述指令在由一个或多个计算机执行时,使所述一个或多个计算机执行第一方面的方法的操作。
可以实现本说明书中描述的主题的特定实施例以实现以下优点中的一个或多个。
本说明书描述了一种模拟系统,该模拟系统可以控制与环境交互的一组多个模拟智能体(例如,载具),以使其行为真实地模拟真实世界智能体(例如,由人类驾驶员控制的载具)的行为。模拟系统可用于改进规划系统的操作,该规划系统选择要由部分或完全自主载具执行的动作。例如,模拟系统可用于生成大量模拟,其中规划系统控制一个载具,而其余载具由模拟系统控制。在规划系统用于控制真实世界环境中的载具之前,这些模拟可用于识别和解决规划系统中的潜在“故障”(例如,其中规划系统选择导致载具不安全地操作的动作)。作为另一个示例,载具的规划系统可以使用模拟系统来预测环境中其他载具的可能未来行为,然后使用这些行为预测来更安全且有效地控制载具的操作。作为另一个示例,模拟系统可用于训练规划系统以选择使载具能够在同时被其他载具占用的环境中安全、高效和舒适地操作的动作。
以前,为了测试规划系统的性能,可以生成模拟,其中规划系统将控制一个载具,而其余载具将简单地重演(replay)真实世界载具的记录行为。这样的模拟可能是不真实的,因为遵循预定轨迹的载具无法调整它们的行为来考虑由规划系统控制的载具的行为。相比之下,本说明书中描述的模拟系统可以在每个时间步长动态地选择要由在其控制下的每个载具执行的动作,同时考虑到每个其他载具的行为,即包括由规划系统控制的载具。因此,本说明书中描述的模拟系统可以生成更真实的模拟,该模拟可用于改进规划系统的操作。
本说明书中描述的模拟系统可以“采样”(即,随机地生成)从环境的给定初始条件开始的该环境的大数量的可能模拟。对不同可能的模拟进行采样使模拟系统能够模拟许多不同的场景,例如,其中由模拟系统控制的载具在规划系统控制的载具后面并入,以及其中由模拟系统控制的载具在由规划系统控制的载具之前并入。相比之下,载具重演(replay)真实世界载具的记录行为的替代模拟系统将无法模拟从给定初始条件开始的多个场景。对不同可能的模拟场景进行采样的能力使得本说明书中描述的模拟系统被用于,例如,在比使用某些替代模拟系统会可能的更全面的一组真实场景下测试规划系统。
本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。本主题的其他特征、方面和优点将从描述、附图和权利要求中变得显而易见。
附图说明
图1图示了被多个智能体与之交互的示例环境。
图2图示了已在4个时间步长上展开的模拟的示例。
图3是示例模拟系统的框图。
图4提供了一组占用图的图示。
图5是示例观察嵌入系统的框图。
图6是载具的示例机载系统的框图。
图7是用于生成多个智能体与之交互的环境的模拟的示例过程的流程图。
各种附图中的相同附图标记和名称指示相同的元件。
具体实施方式
本说明书描述了一种模拟系统,该模拟系统可以学习控制与模拟环境交互的一组智能体(例如,载具),以使它们的行为(例如,加速度和转向)模拟真实世界智能体(例如,由人类驾驶员控制的汽车)的行为。模拟系统联合地控制智能体,以使每个智能体真实地表现,无论是单独地还是相对于环境中的每个其他智能体。以图1图示的模拟多智能体环境100为例,其中五个智能体(102-A-E)联合地在道路上导航。模拟系统可以使智能体102-C在交叉路口处停止,并避免进入由智能体102-E占用的车道,直到智能体102-E(其也由模拟系统控制)已经经过该交叉路口之后。当智能体102-C确实进入交叉路口时,模拟系统可以控制其转向和加速度以使其遵循真实轨迹,例如,使得其停留在道路上并且不与任何其他智能体碰撞。
在整个文档中,如果智能体的行为模拟真实世界智能体的行为(即,具有与真实世界智能体的行为相似的属性),则称该智能体的行为是“真实的”。例如,可以基于智能体是否与环境中的其他对象碰撞、智能体如何处理交通控制灯和标志(例如,全程停止优先(all-way stop precedence))以及智能体(例如,在换道和并入期间)如何处理与其他智能体的交互而认为该智能体真实地表现。类似地,如果环境(或智能体)的状态模拟真实世界环境(或智能体)的状态,则称其为真实的。换句话说,如果模拟指定具有与从记录的数据导出的真实世界环境状态相似特性的模拟状态,使得观察者(例如,鉴别器神经网络或人)可能难以从真实世界环境状态区分模拟状态,那么就可以称该模拟是真实的。
模拟系统通过选择要由每个智能体在多个时间步长中的每一个执行的相应动作来控制智能体。特别地,对于每个智能体,系统可以使用“策略”神经网络生成一组可能动作上的概率分布,并且然后使用该概率分布选择要由智能体执行的动作。能够由智能体执行的动作可以包括控制智能体的运动的动作,例如转向和加速动作,以及以其他方式(例如,通过激活或停用转向信号)影响智能体的状态的动作。由智能体在给定时间步长执行的动作确定在下一时间步长的模拟状态(特别是每个智能体的相应状态)。如整个文档中所使用的,在一时间步长的“模拟状态”是指表征每个智能体在该时间步长的状态的数据。
从在第一时间步长的给定初始模拟状态开始,模拟系统生成针对下一时间步长的一组多个“候选”下一模拟状态。每个候选下一模拟状态是智能体执行相应动作的结果,这些相应动作是从策略神经网络在第一时间步长生成的每个智能体动作概率分布中采样的。模拟系统通过使用“鉴别器”神经网络生成候选下一模拟状态的相应“鉴别分数”来评估每个候选下一模拟状态是否是真实的。模拟系统可以使用鉴别分数来过滤(即,从进一步考虑中去除)一个或多个候选下一模拟状态,例如,通过仅维持具有最高鉴别分数的候选下一模拟状态,或具有满足阈值的鉴别分数的候选下一模拟状态。
模拟系统通过在每个时间步长基于当前时间步长的(一个或多个)模拟状态生成下一时间步长的候选下一模拟状态,并基于鉴别分数过滤不真实的候选下一模拟状态,来在多个时间步长上“展开”模拟。维持多个候选下一模拟状态(即,其中的每个都被识别为真实的)可以使模拟系统能够并行展开多个模拟。
图2图示了从初始时间步长(T=0)开始已经在4个时间步长(T=1、2、3、4)上展开的模拟200的示例。每个圆圈202-A-I表示由模拟系统生成的相应模拟状态。在T=0处,模拟系统从初始模拟系统202-A生成两个候选下一模拟状态202-B和202-C。模拟系统生成候选模拟状态202-B和202-C的鉴别分数,并且在该示例中,过滤候选模拟状态202-B。在图2中,未填充的圆圈(例如,202-B)表示已被过滤的模拟状态,而填充的圆圈(例如,202-C)表示已由模拟系统维持的模拟状态。模拟系统继续从候选模拟状态202-C生成候选模拟状态202-D和202-E,过滤候选模拟状态202-D,生成候选模拟状态202-F和202-G,过滤候选模拟状态202-G,并生成候选模拟状态202-H和202-1(都不过滤)。在这个示例中,模拟系统生成环境中智能体的两种可能的模拟,对应于模拟状态的序列:[A,C,D,F,H]和[A,C,D,F,I]。
本说明书中描述的模拟系统可以用于多种目的中的任一种。在一个示例中,模拟系统可用于评价载具的规划系统(即,被配置为做出控制载具的操作的驾驶决策的规划系统)是否能够安全且有效地控制载具,例如,在变道和并入交互期间。在另一个示例中,载具的规划系统可以在载具的操作期间使用模拟系统,例如,来预测载具附近的其他智能体的行为。
下面更详细地描述这些特征和其他特征。
图3是示例模拟系统300的框图。模拟系统300是实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实现了下述系统、组件和技术。
模拟系统300被配置为生成正在被一个或多个智能体(例如,载具)在多个时间步长上与之交互的环境(例如,道路)的一个或多个模拟。环境的每个模拟指定了模拟状态的序列,其中每个模拟状态对应于相应时间步长,并且针对一时间步长的模拟状态表征每个智能体在该时间步长的状态。智能体在一时间步长的状态可以指定,例如,智能体在该时间步长的位置和运动。智能体的位置可以指定智能体在环境中的空间位置(例如,由一组x-y坐标表示)和智能体的航向(行进的方向)(例如,由[0,2π]弧度范围内的角度表示)。智能体的运动可以指定智能体的速度(例如,以英里每小时为单位)和智能体的加速度(例如,以英尺每平方秒为单位)。智能体在一时间步长的状态也可以表征智能体的其他方面,例如,智能体在该时间步长的转向信号状态。每个模拟可以指定表征正在被智能体与之交互的环境的进一步信息,例如,指示环境的各种静态特征(例如,车道)的位置的道路图数据,以及指示在不同的时间点环境中的对象(例如,交通灯)的状态的数据。
在多个时间步长中的每一个时间步长,模拟系统300处理当前时间步长的一个或多个当前模拟状态302以生成下一时间步长的一个或多个下一模拟状态304,其中每个下一模拟状态扩展当前模拟状态。如果下一模拟状态是由每个智能体在当前模拟状态中执行相应动作而产生的,那么该下一模拟状态被称为“扩展”当前模拟状态。在图2中图示的示例中,模拟状态202-B和202-C扩展模拟状态202-A。在最后时间步长之后,模拟系统300从生成的模拟状态中识别环境的一个或多个模拟。每个模拟指定生成的模拟状态的序列,该序列具有序列中的每个模拟状态扩展该序列中的先前模拟状态的属性。
模拟系统300可以使用:观察嵌入系统500、策略神经网络306、运动模型308、鉴别器神经网络310和过滤引擎312来处理当前时间步长的当前模拟状态302以生成下一时间步长的一个或多个下一模拟状态304,如下面将更详细描述的。
观察嵌入系统500生成每个智能体的相应当前观察嵌入314。智能体的当前观察嵌入314是数值的有序集合(例如,数值的向量或矩阵),其表征智能体的当前状态和环境的当前状态。例如,给定智能体的当前观察嵌入可以从给定智能体的视角表征环境的当前状态(包括其他智能体的当前状态),如将参考图5更详细描述的。观察嵌入系统500可以生成具有固定(预定)维度的智能体的观察嵌入314,例如,每个智能体的观察嵌入314可以是256维向量。
观察嵌入系统500可以通过处理当前模拟状态302和表征环境的当前状态的一组环境数据316来生成智能体的当前观察嵌入314。环境数据316可以包括例如指示智能体正在行进的道路的结构(例如,车道的位置和类型、道路标志、人行横道等)的道路图,环境中的对象(例如,交通灯)的状态,直到当前时间点智能体的轨迹,以及智能体的预测未来轨迹(如下面将更详细描述的)。参考图5更详细地描述示例观察嵌入系统500。
对于每个智能体,策略神经网络306处理智能体的观察嵌入314以生成能够由智能体执行的一组可能动作上的概率分布318。该组可能动作可以包括控制智能体的运动的动作和以其他方式影响智能体的状态的动作。在一个示例中,该组可能动作可以由下式给出:
A={(Ai,Sj):i=1,...,N,j=1,...,M} (1)
其中每个Ai表示调整智能体的加速度的动作,并且每个Sj表示调整智能体的转向角的动作。策略神经网络可以具有使其能够执行其描述的功能的任何适当的神经网络架构。在一个示例中,策略神经网络可以包括输入层,然后是多个全连接层的序列,然后是soft-max输出层,其中soft-max输出层的每个神经元对应于该组可能动作中的相应动作。
模拟系统300使用动作概率分布318来生成扩展当前模拟状态302的一个或多个候选下一模拟状态320。为了生成候选下一模拟状态320,模拟系统300从每个智能体的对应动作概率分布318采样该智能体的相应动作。模拟系统300然后使用运动模型308来计算如果智能体在当前时间步长执行对应的采样动作,智能体在下一时间步长的状态。计算的下一智能体状态共同指定候选下一模拟状态320。运动模型308,也可以称为“动力学模型”、“过渡(transition)模型”或“物理模型”,可以使用适当的运动学和几何关系基于智能体的当前状态和由智能体执行的动作来计算智能体的下一状态。
模拟系统300使用鉴别器神经网络310生成每个候选下一模拟状态320的相应鉴别分数322。候选下一模拟状态320的鉴别分数322表征候选下一模拟320状态为真实的可能性。候选下一模拟状态的鉴别分数322可以表示为数值,例如,范围[0,1]内的数值,例如,其中鉴别分数的较高值(即,更接近一)指示候选下一模拟状态更真实。
通常,模拟系统300可以通过使用鉴别器神经网络310处理候选下一模拟状态320的表示来生成候选下一模拟状态320的鉴别分数322。在一个示例中,模拟系统300可以通过使用观察嵌入系统500生成与候选下一模拟状态320相对应的每个智能体的相应观察嵌入来生成候选下一模拟状态的表示。在该示例中,对应于候选下一模拟状态320的智能体观察嵌入共同指定候选下一模拟状态的表示。模拟系统300可以使用鉴别器神经网络310处理每个智能体观察嵌入,来生成表征智能体的状态是真实的可能性的每个智能体的相应智能体特定鉴别分数。模拟系统300然后可以组合智能体特定鉴别分数以生成候选下一模拟状态的总体鉴别分数。例如,模拟系统可以将候选下一模拟状态的鉴别分数D生成为:
Figure BDA0003584157000000091
Di=fθ(Oi) (3)
其中N是智能体的数量,Di是智能体i的智能体特定鉴别分数,Oi是与候选下一模拟状态相对应的智能体i的观察嵌入,并且fθ(·)表示由鉴别器神经网络执行的操作。将模拟状态的鉴别分数确定为智能体特定鉴别分数的最小值(即,如等式(2)所示)反映了这样一种直觉,即任何智能体的行为不真实都会导致整个模拟状态不真实。
可选地,鉴别器神经网络310可以处理除了候选下一模拟状态320的表示之外的其他输入。例如,鉴别器可以处理除了候选下一模拟状态320的表示之外的当前模拟状态302的表示(以及可能地,处理一个或多个先前模拟状态的表示)。处理这些附加输入可以使鉴别器神经网络能够更准确地表征候选下一模拟状态是否是真实的。
通常,鉴别器神经网络310可以具有使其能够执行其描述的功能的任何适当的神经网络架构。例如,鉴别器神经网络架构可以包括全连接层的序列,然后是具有单个神经元的输出层,即,其中输出层神经元的激活指定鉴别分数。输出层可以使用例如sigmoid(S型)激活函数来使鉴别分数落入[0,1]范围内。
模拟系统300使用过滤引擎312基于候选下一模拟状态304的鉴别分数322从候选下一模拟状态304中选择一个或多个下一模拟状态304。通常,如果候选下一模拟状态的鉴别分数322指示它不是真实状态,即是不太可能在真实世界环境中出现的状态,则过滤引擎312更可能过滤(即从进一步的考虑中去除)该候选下一模拟状态320。在一个示例中,过滤引擎312可以过滤具有不满足预定阈值的鉴别分数322的每个候选下一模拟状态320。在另一示例中,过滤引擎312可以过滤除具有最高鉴别分数的预定数量的候选下一模拟状态304之外的每个候选下一模拟状态320。
在一些情况下,特别是在模拟系统300的训练期间(即,当模拟系统300尚未学会有效地选择要由智能体执行的动作时),许多候选下一模拟状态可能满足用于被过滤引擎312过滤的标准。为了在下一时间步长继续展开模拟,模拟系统300必须选择至少一个下一模拟状态用于下一时间步长。因此,模拟系统300可以连续生成候选下一模拟状态304(即,扩展当前模拟状态302的候选下一模拟状态304),直到过滤引擎312已经选择了至少预定义数量作为下一时间步长的可接受下一模拟状态304。
在识别下一时间步长的模拟状态304之后,模拟系统300可以进行到下一时间步长。如果当前时间步长是最后时间步长,则模拟系统300可以从针对每个时间步长生成的模拟状态中识别环境的一个或多个模拟。如果模拟已经展开了预定义最大数量的时间步长,则模拟系统300可以确定当前时间步长是最后时间步长。
通常,为了选择使智能体真实地表现的动作,模拟系统300(特别是策略神经网络306)可以考虑智能体的预测未来行为。模拟系统300可以以纯隐式的方式(例如,在策略神经网络306的参数值中隐式地学习和编码)考虑智能体的预测未来行为。然而,为了提高模拟系统300的性能并且为了促进策略神经网络306的训练,模拟系统300还可以基于对智能体的未来行为的显式预测来选择要由智能体执行的动作。可以通过一个或多个先前生成的环境的模拟来提供对智能体的未来行为的显式预测。例如,模拟系统300可以迭代地生成环境的模拟,其中在每次迭代时,模拟系统300生成考虑到在先前迭代生成的模拟的一个或多个环境的模拟。也就是说,为了在给定的迭代中生成模拟,模拟系统可以观察由在先前迭代生成的模拟表示的预测智能体行为。
模拟系统300可以以多种方式中的任一种在生成当前迭代的模拟时使用先前迭代生成的模拟。例如,对于每个时间点,模拟系统300可以生成相应的“占用图”,其指示环境中的每个空间位置在先前迭代的任何模拟中的时间点是否被智能体占用。更具体地,时间点的占用图可以表示为数值的二维(2D)阵列,其中阵列的每个分量对应于环境中的相应空间位置。阵列的每个分量的值指示环境中的对应空间位置在先前迭代的任何模拟中在该时间点是否被智能体占用。在每次迭代中,模拟系统300可以提供对应于先前迭代的占用图作为对观察嵌入系统500的附加输入,作为生成当前观察嵌入314的一部分。在第一次迭代(对于其没有先前迭代),模拟系统300可以使用默认占用图,即具有预定义默认值。图4提供了时间点T=1、2、3的一组占用图400的图示,其中占用图的分量被加阴影以指示环境中的对应空间位置在先前迭代的一个或多个模拟中被智能体占用。
模拟系统300可以基于记录的环境数据联合地训练策略神经网络306和鉴别器神经网络310,所述记录的环境数据表征与真实世界环境交互的真实世界智能体的行为。记录的环境数据的部分可以从由在真实世界环境中导航的载具的传感器(例如,相机传感器、激光雷达传感器、雷达传感器等)生成的传感器数据中导出。在一些情况下,记录的环境数据可以从同时在同一环境中导航的多个载具的传感器数据中导出。使用从多个载具的传感器导出的传感器数据可以使记录的传感器数据能够更全面、更准确地表征环境,例如,在环境的一部分从载具之一的视角被遮挡但从另一个载具的视角不被遮挡的情形下。模拟系统300处理记录的环境数据以生成“真实世界”环境状态的表示。
记录的环境数据可以存储在例如地理位置特定快照数据库或地理位置特定轨迹数据库中。地理位置特定快照数据库可以对真实世界中每个特定地理位置的日志数据进行分组,使得由不同载具在不同时间在同一地理位置收集的日志数据在同一地理位置特定分组中。地理位置特定快照数据库可以被针对给定地理位置查询,并提供在给定地理位置中生成的所有日志数据。地理位置特定轨迹数据库可以类似地对记录的轨迹数据(即,表征智能体轨迹的记录的轨迹数据)进行分组,使得该数据库可以被针对给定地理位置查询并提供包括该给定地理位置的所有轨迹。参考美国专利申请第62/911,183号进一步描述了地理位置特定快照和轨迹数据库,该专利申请通过引用并入本文。将记录的数据存储在地理位置特定快照数据库和地理位置特定轨迹数据库中可以促进记录的环境数据的有效检索,以用于在训练策略神经网络和鉴别器神经网络时使用。例如,地理位置特定数据库可以使得能够有效检索由同时在同一附近的多个载具生成的记录数据。如上所述,可以组合这些数据以更全面、更准确地表征环境,例如,在环境的一部分从一个载具的视角被遮挡但从另一个载具的视角不被遮挡的情形下。
模拟系统300训练鉴别器神经网络以分类环境状态的表示是:(i)由模拟系统根据策略网络参数的当前值生成的模拟状态,还是(ii)从记录的环境数据导出的真实世界环境状态。例如,模拟系统300可以训练鉴别器神经网络以针对从记录的环境数据导出的真实世界环境状态生成鉴别分数值“1”,并且针对由模拟系统生成的模拟状态生成鉴别分数值“0”。
模拟系统300训练策略神经网络306以生成动作概率分布318,该动作概率分布318导致被鉴别器神经网络310分类为真实的模拟状态,即,真实世界环境状态。例如,模拟系统300可以使用策略神经网络306来生成扩展当前模拟状态的一个或多个候选下一模拟状态,并使用鉴别器神经网络处理生成的候选下一模拟状态的表示以生成对应鉴别分数。然后模拟系统300可以基于取决于鉴别分数的目标函数来调整策略神经网络参数的当前值。
模拟系统300可以在以下之间交替:(i)使用基于策略网络参数的最新值生成的模拟状态来训练鉴别器神经网络,和(ii)使用基于鉴别器网络参数的最新值生成的鉴别分数来训练策略神经网络。这样做会鼓励策略神经网络在选择导致真实模拟状态的动作方面逐步变得更好,并鼓励鉴别器神经网络不断适应以识别使用策略神经网络生成的模拟状态的不真实方面。参考J.Ho,S.Ermon:“Generative adversarial imitation learning(生成对抗模仿学习)”,30th Conference on Neural Information Processing Systems(关于神经信息处理系统的第30次会议)(NeurlPS),2016年描述了用于联合地训练策略神经网络和鉴别器神经网络的示例方法。参考J.Fu,K.Luo,S.Levine:“Learning robust reward withadversarial inverse enhancement learning(用对抗性逆增强学习来学习稳健的奖励)”,International Conference on Learning Representations(关于学习表示的国际会议)(ICLR),2018年描述了用于联合地训练策略神经网络和鉴别器神经网络的另一示例方法。
在一些情况下,能够由真实世界智能体执行的一组可能动作不同于能够由模拟智能体(即,由模拟系统控制的模拟智能体)执行的一组可能动作。例如,真实世界智能体可以做出从连续范围(例如,范围[0,2π]弧度)中提取的转向角调整,而模拟智能体可被限制为做出从有限集(例如,将范围[0,2π]弧度离散化为有限数量的直条(bin))中提取的转向角调整。能够由真实世界智能体和由模拟智能体执行的相应组的可能动作之间的差异可能会损害鉴别器神经网络的训练。例如,鉴别器神经网络可以通过隐式地识别由智能体执行的动作是从连续集还是有限集提取来学习区分模拟状态和真实世界环境状态。为了避免这种结果,模拟可以预处理记录的环境数据,以将由真实世界智能体执行的每个动作映射到来自能够由模拟智能体执行的一组可能动作的最接近动作。
图5是示例观察嵌入系统500的框图。观察嵌入系统500是实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中实现了下述系统、组件和技术。
观察嵌入系统500被配置为处理表征环境的一组环境数据502和表征与该环境交互的多个智能体中的每一个的当前状态的当前模拟状态504,以生成每个智能体的相应观察嵌入506。
观察嵌入系统500使用嵌入神经网络508处理环境数据502以生成环境嵌入510,即,环境数据502的替代表示。环境数据502可以包括指示智能体正在行进的道路的结构的道路图、环境中的对象的状态(例如,交通灯状态)、直到当前时间点智能体的轨迹、智能体的当前状态以及智能体的预测未来轨迹。环境嵌入510可以表示为点嵌入的集合,其中每个点嵌入是与环境中的相应空间位置相对应的数值的有序集合。例如,环境嵌入510可以表示为嵌入的阵列(例如,256维嵌入),其中每个嵌入对应于环境中的相应2D或3D空间位置(例如,分别由(x,y)或(x,y,z)坐标表示)。嵌入神经网络可以具有使其能够执行其描述的功能的任何适当的神经网络架构(例如,卷积神经网络架构)。
嵌入神经网络508可以与(参考图3描述的)模拟系统的策略神经网络和鉴别器神经网络联合地训练,例如通过将梯度通过策略神经网络和鉴别器神经网络反向传播到嵌入神经网络508中。嵌入神经网络508也可以使用直接取决于环境嵌入510的目标函数来训练,例如,该目标函数测量通过处理环境嵌入510可以多准确地重建环境数据502。
对于每个智能体,观察嵌入系统500使用坐标变换引擎512将与环境嵌入510的每个点嵌入相关联的相应空间位置的坐标从预定义“全局”坐标系变换到“以智能体为中心”的坐标系。以智能体为中心的坐标系是相对于智能体的状态定义的。例如,坐标变换引擎512可以对点嵌入的空间坐标应用平移操作,以使它们以智能体的空间位置为中心。作为另一示例,坐标变换引擎512可以应用旋转操作以将智能体的航向映射到以智能体为中心的坐标系中的预定义方向。该组点嵌入及其在以智能体为中心的坐标系中的相关联的空间位置被称为“以智能体为中心的嵌入”514。基于以智能体为中心的嵌入514而不是环境嵌入510生成智能体的观察嵌入506,促进模拟系统的策略神经网络和鉴别器神经网络的训练。
观察嵌入系统500基于对应于智能体的以智能体为中心的嵌入514生成每个智能体的相应观察嵌入506。例如,为了生成智能体的观察嵌入506,观察嵌入系统500可以将空间池化操作应用于对应的以智能体为中心的嵌入514,然后使用一个或多个神经网络层处理经池化的以智能体为中心的嵌入以生成观察嵌入506。
在一些情况下,环境的某些区域可能对智能体不可见。例如,作为环境的区域被另一个智能体或环境中的静态对象(例如,安全屏障或树)遮挡的结果,该区域可能对智能体不可见。可选地,观察嵌入系统500可以从智能体的以智能体为中心的嵌入514中剪除与对智能体不可见的环境的区域相对应的点嵌入,例如,通过用默认(预定义)嵌入替换所述点嵌入。例如,如果智能体到环境的区域的视线被阻挡(例如,被另一个智能体或被环境中的静态对象阻挡),则观察嵌入系统500可以确定环境的区域对该智能体不可见。仅基于来自对智能体可见的环境的区域的数据生成观察嵌入506可以使模拟系统的策略神经网络能够更真实地模拟真实世界智能体的行为。
在一些实施方式中,不是使用嵌入神经网络508来生成环境嵌入510,而是观察嵌入系统500可以使用一组手动定义的规则从环境数据502生成环境嵌入数据510。
图6是载具600的示例机载系统602的框图。机载系统602由硬件和软件组件组成,其中一些或全部物理地位于载具600上。机载系统602使用规划系统604来规划载具的未来轨迹并选择要由载具执行的动作。本说明书中描述的模拟系统可用于训练和测试规划系统604,如下文将更详细描述的。
机载系统602包括传感器系统606,该传感器系统606生成传感器数据608,传感器数据608使机载系统602能够“看到”载具600附近的环境。更具体地,传感器系统606包括一个或多个传感器,其中一些被配置为接收来自载具600附近环境的电磁辐射的反射。例如,传感器系统606可以包括一个或多个激光传感器(例如,激光雷达激光传感器),其被配置为检测激光的反射。作为另一示例,传感器系统606可以包括一个或多个雷达传感器,其被配置为检测无线电波的反射。作为另一示例,传感器系统606可以包括一个或多个相机传感器,其被配置为检测可见光的反射。
传感器系统606连续地(即,在多个时间点中的每一个时间点)捕获传感器数据,这些传感器数据可以指示反射的辐射的方向、强度和行进的距离。例如,传感器系统606中的传感器可以在特定方向上发射一个或多个电磁辐射脉冲,并且可以测量任何反射的强度以及接收到反射的时间。
规划系统604被配置为使用传感器数据608(除了其他数据,例如,道路图数据之外)来生成规划载具的未来轨迹的规划决策,并且具体地,选择要由载具执行的动作。由规划系统604选择的动作610可以提供给载具600的控制系统612。载具的控制系统612可以通过实现由规划系统选择的动作610来控制载具的一些或全部操作。例如,响应于规划系统604选择指定载具的速度应该降低的动作,控制系统612可以将电子信号发送到载具的制动控制单元。响应于接收到该电子信号,制动控制单元可以机械地应用载具的制动器。
在被训练之后,模拟系统300可以用于安全且有效地测试规划系统604的有效性。例如,规划系统604可以用于控制模拟环境中的智能体,而模拟环境中的一个或多个其他智能体由模拟系统300控制(使用如较早所述的策略神经网络和鉴别器神经网络)。可以通过展开大数量的模拟并识别规划系统失败的地方来识别规划系统中的潜在故障(例如,其中规划系统选择导致模拟智能体不安全地操作的动作)。
可以使用机器学习技术与模拟系统300联合地训练规划系统604。例如,规划系统604和模拟系统300可以通过展开大数量的模拟来联合地训练,在模拟中规划系统604控制模拟环境中的一个智能体,而模拟系统300控制其余智能体(如较早所述)。可以训练规划系统604以优化目标函数,该目标函数表征由规划系统604控制的载具是否在安全操作的同时有效地实现其目标(例如,从点A导航到点B)。如较早所述,可以基于一组记录的真实世界数据训练模拟系统300(特别是策略神经网络和鉴别器神经网络)以真实地模拟其他智能体的行为。与模拟系统300一起联合地训练规划系统604可以使规划系统604能够学习更安全且有效地控制载具600。
模拟系统300也可以由载具的机载系统602实现并且由载具的规划系统604使用以执行对载具附近的其他智能体的行为预测。例如,在选择要由载具在一时间点执行的动作之前,规划系统604可以使用模拟系统300来展开模拟,该模拟预测载具附近的其他智能体在一持续时间(例如,5秒)内的未来行为。当选择要由载具执行的动作时,规划系统604可以将其他智能体的预测未来行为考虑在内。
图7是用于生成多个智能体与之交互的环境的模拟的示例过程700的流程图。为方便起见,过程700将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的模拟系统,例如图3的模拟系统300,可以执行过程700。
系统获得当前时间步长的一个或多个当前模拟状态(702)。如果当前时间步长是第一个时间步长,则系统可以从表征真实世界环境的状态的一组记录的环境数据获得当前模拟状态。如果当前时间步长在第一个时间步长之后,则系统可以获得在先前时间步长为当前时间步长生成的模拟状态。通常,一时间步长的模拟状态指定每个智能体在该时间步长的相应状态。在一个示例中,智能体是载具,并且智能体在一时间步长的状态指定在该时间步长智能体的位置(例如,空间位置和航向)以及智能体的运动(例如,速度和加速度)。
系统基于当前模拟状态生成下一时间步长的一组候选下一模拟状态(704)。为了生成扩展当前模拟状态的候选下一模拟状态,系统生成每个智能体的一组可能动作上的相应概率分布。该系统可以通过使用策略神经网络处理环境中智能体的当前状态的表示(有时称为“观察嵌入”)来生成智能体的动作概率分布。然后,系统使用对应于每个智能体的概率分布对该智能体的相应动作进行采样,并且使用运动模型确定如果智能体在当前时间步长执行采样的动作,则智能体在下一时间步长的下一状态。该组可能动作可以包括例如调整智能体的转向角的动作和调整智能体的加速度的动作。
系统生成每个候选下一模拟状态的相应鉴别分数(706)。候选下一模拟状态的鉴别分数表征该候选下一模拟状态是真实模拟状态的可能性。该系统可以通过使用鉴别器神经网络处理候选下一模拟状态的表示来生成该候选下一模拟状态的鉴别分数。鉴别器神经网络经训练以生成鉴别分数,如果环境状态是真实世界环境状态,则该鉴别分数将该环境状态表征为真实的。系统可以通过对于每个智能体获得该智能体在与候选下一模拟状态相对应的下一时间步长的下一状态的表示来生成候选下一模拟状态的表示。为了生成候选下一模拟状态的鉴别分数,系统可以通过使用鉴别器神经网络处理与候选下一模拟状态相对应的智能体的下一状态的表示来生成每个智能体的智能体特定鉴别分数。智能体的智能体特定鉴别分数表征智能体的下一阶段是真实智能体状态的可能性。然后,系统可以基于候选下一模拟状态的智能体特定鉴别分数,例如,基于智能体特定鉴别分数的最小值,生成候选下一模拟状态的总体鉴别分数。
系统基于鉴别分数选择候选下一模拟状态中的一个或多个作为下一时间步长的模拟状态(708)。例如,系统可以选择具有最高鉴别分数的预定义数量的候选下一模拟状态作为下一时间步长的模拟状态。如果当前时间步长不是最后时间步长,则系统可以前进到下一时间步长并返回到步骤702。如果当前时间步长是最后时间步长,则系统可以基于针对每个时间步长生成的模拟状态输出环境的一个或多个模拟。
本说明书与系统和计算机程序组件有关地使用术语“被配置”。对于一个或多个计算机的系统被配置为执行特定操作或动作意味着该系统在其上安装有软件、固件、硬件或它们的组合,在操作时,软件、固件、硬件或它们的组合使系统执行操作或动作。对于一个或多个计算机程序被配置为执行特定操作或动作意味着一个或多个程序包括指令,当指令在由数据处理装置执行时使装置执行操作或动作。
本说明书中描述的主题的实施例和功能操作可以在数字电子电路中、在有形地实现的计算机软件或固件中、在计算机硬件(包括本说明书中公开的结构以及其结构等效物)中或在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非暂时性存储介质上以供数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基片、随机或串行存取存储器设备或它们中的一个或多个的组合。可替代地或额外地,程序指令可以编码在人工生成的传播的信号(例如,机器生成的电、光或电磁信号)上,该信号被生成为编码信息以传输到合适的接收器装置以供数据处理装置执行。
术语“数据处理装置”指数据处理硬件并且涵盖用于处理数据的所有种类的装置、设备和机器,举例来说,包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或者进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(其也可以被称为或被描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释性语言、或者声明性或过程语言;并且计算机程序可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或其他适于在计算环境中使用的单元。程序可以但不必与文件系统中的文件对应。程序可以存储在保持其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、在专用于所针对的单个文件中或在多个协作的文件(例如,存储一个或多个模块、子程序或代码的一些部分的文件)中。计算机程序可以部署为在一个或多个计算机上执行,所述多个计算机位于一个站点或跨多个站点分布并通过数据通信网络互连。
在本说明书中,术语“引擎”被用于广义地指基于软件的系统、子系统或被编程为执行一个或多个特定功能的过程。通常,引擎将被实现为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,多个引擎可以安装在相同的计算机或多个计算机上并在其上运行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,从而通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流程也可以由专用逻辑电路(例如FPGA或ASIC)执行,或者由专用逻辑电路和一个或多个经编程计算机的组合来执行。
适用于执行计算机程序的计算机可以基于通用或专用微处理器或二者,或者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或二者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路来补充或可以结合到其中。一般来说,计算机也将包括用于存储数据的一个或多个大容量存储设备(例如、磁盘、磁光盘或光盘)或可操作地耦合一个或多个大容量存储设备以从其接收数据或将数据传送到其处或者接收和传送二者。然而,计算机不必具有这样的设备。另外,计算机可以嵌入到另一设备(例如,仅举几个示例,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如通用串行总线(USB)快闪驱动器))中。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说,包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以实现在具有用于向用户显示信息的显示设备和键盘及指向设备的计算机上,显示设备例如为CRT(阴极射线管)或LCD(液晶显示器)监视器,用户可以通过键盘和指向设备(例如为鼠标或轨迹球)向计算机提供输入。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向由用户使用的设备发送文档和接收来自该设备的文档与用户交互;例如,通过响应于从web浏览器接收的请求而将网页发送到用户的设备上的web浏览器。另外,计算机可以通过将文本消息或其他形式的消息发送到个人设备(例如,运行消息传递应用的智能电话)并且作为回应从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如用于处理机器学习训练或产生的一般和计算密集部分(即,推断、工作负荷)的专用硬件加速器单元。
机器学习模型可以使用机器学习框架(例如,TensorFlow框架、微软认知工具包框架、Apache Singa框架或Apache MXNet框架)来实现和部署。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如作为数据服务器)或包括中间件组件(例如应用服务器)或包括前端组件(例如具有图形用户界面、web浏览器或app的客户端计算机,用户可通过其与本说明书中描述的主题的实现方式进行交互),或者一个或多个这样的后端组合、中间件或前端组件的任意组合。可以通过任意形式或媒介的数字数据通信(例如通信网络)将系统的组件互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络交互。通过运行在相应计算机上并且彼此具有客户端-服务器关系的计算机程序而形成客户端和服务器的关系。在一些实施例中,服务器向充当客户端的用户设备传输数据(例如,HTML页面)(例如,用于向与设备交互的用户显示数据和从其接收用户输入的目的)。在用户设备处生成的数据(例如,用户交互的结果)可以在服务器处从该设备接收。
尽管本说明书包含许多具体的实现细节,但是这些细节不应当被解释为对任何发明的范围或对可能请求保护的范围进行限制,而应该被解释为可能特定于特定发明的特定实施例的特征的描述。在本说明书中在分开的实施例的背景下描述的某些特征也可以以组合方式实现在单个实施例中。相反,在单个实施例的背景下描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合实施。此外,尽管特征可以如上所述描述为以某些组合起作用并且甚至最初也这样地请求保护,但在一些情况下,来自所请求保护的组合的一个或多个特征可以从组合中删除,并且所请求保护的组合可以指向子组合或子组合的变体。
类似地,尽管在附图中以特定顺序描绘了操作并且在权利要求中以特定顺序记载了操作,但是这不应当被理解为要求以示出的特定顺序或以相继的顺序来执行这样的操作或者要求执行所有示意的操作来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。另外,在上述实施例中各种系统模块和组件的分离不应当被理解为在所有实施例中要求这样的分离,而是应当要理解,所描述的程序组件和系统可一般地在单个软件产品中被集成在一起或者被封装成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,记载在权利要求中的动作可以以不同的顺序执行而仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定要求所示出的特定顺序或者相继的顺序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

Claims (16)

1.一种由一个或多个数据处理装置执行的用于生成多个智能体在多个时间步长上与之交互的环境的模拟的方法,其中,所述模拟包括每个时间步长的相应模拟状态,所述相应模拟状态指定每个智能体在所述时间步长的相应状态,所述方法包括,对于每个时间步长:
获得当前时间步长的当前模拟状态;
基于当前模拟状态生成下一时间步长的多个候选下一模拟状态,其中,生成每个候选下一模拟状态包括:
对于每个智能体,从能够由所述智能体执行的一组可能动作中采样相应动作;以及
对于每个智能体,如果智能体在当前时间步长执行对应的采样动作,则确定所述智能体在下一时间步长的相应下一状态;
对于每个候选下一模拟状态,确定表征所述候选下一模拟状态是真实模拟状态的可能性的鉴别分数;以及
基于候选下一模拟状态的鉴别分数,选择候选下一模拟状态作为下一时间步长的模拟状态。
2.如权利要求1所述的方法,其中,所述智能体是环境中的载具。
3.如权利要求2所述的方法,其中,能够由智能体执行的所述一组可能动作包括调整所述智能体的转向角的动作。
4.如权利要求2-3中任一项所述的方法,其中,能够由智能体执行的所述一组可能动作包括调整所述智能体的加速度的动作。
5.如前述权利要求中任一项所述的方法,其中,智能体在一时间步长的状态包括:(i)所述智能体在所述时间步长的位置,和(ii)所述智能体在所述时间步长的运动。
6.如权利要求5所述的方法,其中,所述智能体的位置包括:(i)所述智能体在所述环境中的空间位置,以及(ii)所述智能体在所述环境中的航向。
7.如权利要求5-6中任一项所述的方法,其中,所述智能体的运动包括:(i)所述智能体的速度,和(ii)所述智能体的加速度。
8.如前述权利要求中任一项所述的方法,还包括,对于每个智能体:
获得环境中智能体的当前状态的表示;以及
使用策略神经网络处理环境中智能体的当前状态的表示,以生成智能体的所述一组可能动作上的对应概率分布;
其中,对于每个智能体,从所述一组可能动作中采样相应动作包括,对于每个智能体:
根据智能体的所述一组可能动作上的概率分布,从所述一组可能动作中采样动作。
9.如前述权利要求中任一项所述的方法,其中,对于每个智能体,如果智能体在当前时间步长执行对应的采样动作,则确定所述智能体在下一时间步长的相应下一状态包括,对于每个智能体:
使用运动模型处理表征如下两者的数据:(i)所述智能体的当前状态,以及(ii)所述智能体的采样动作,以生成所述智能体在下一时间步长的下一状态。
10.如前述权利要求中任一项所述的方法,其中,确定表征候选下一模拟状态是真实模拟状态的可能性的鉴别分数包括:
获得所述候选下一模拟状态的表示;以及
使用鉴别器神经网络处理所述候选下一模拟状态的表示,以生成表征所述候选下一模拟状态是真实模拟状态的可能性的鉴别分数。
11.如权利要求10所述的方法,其中:
获得所述候选下一模拟状态的表示包括:
对于每个智能体,获得所述智能体在所述候选下一模拟状态所对应的下一时间步长的下一状态的表示;以及
使用鉴别器神经网络处理所述候选下一模拟状态的表示以生成表征所述候选下一模拟状态是真实模拟状态的可能性的鉴别分数,包括:
对于每个智能体,使用鉴别器神经网络处理所述智能体在与候选下一模拟状态相对应的下一时间步长的下一状态的表示,以生成表征所述智能体的下一状态是真实智能体状态的可能性的智能体特定鉴别分数;以及
基于智能体特定鉴别分数生成表征候选下一模拟状态是真实模拟状态的可能性的鉴别分数。
12.如权利要求11所述的方法,其中,基于智能体特定鉴别分数生成表征候选下一模拟状态是真实模拟状态的可能性的鉴别分数包括:
计算所述智能体特定鉴别分数的最小值。
13.如权利要求10-12中任一项所述的方法,其中,所述鉴别器神经网络被训练以生成鉴别分数,如果环境状态是真实世界环境状态,则所述鉴别分数将所述环境状态表征为真实的。
14.如前述权利要求中任一项所述的方法,其中,基于候选下一模拟状态的鉴别分数选择候选下一模拟状态作为下一时间步长的模拟状态包括:
选择具有最高鉴别分数的候选下一模拟状态作为下一时间步长的模拟状态。
15.一种系统,包括:
一个或多个计算机;以及
一个或多个存储设备,通信地耦合到所述一个或多个计算机,其中,所述一个或多个存储设备存储指令,当所述指令由所述一个或多个计算机执行时,使所述一个或多个计算机执行权利要求1-14中任一项的相应方法的操作。
16.一种或多种非暂时性计算机存储介质,存储指令,当所述指令由一个或多个计算机执行时,使所述一个或多个计算机执行权利要求1-14中任一项的相应方法的操作。
CN202080070475.1A 2019-10-07 2020-10-05 多智能体模拟 Pending CN114514524A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962911623P 2019-10-07 2019-10-07
US62/911,623 2019-10-07
US16/668,905 US11645518B2 (en) 2019-10-07 2019-10-30 Multi-agent simulations
US16/668,905 2019-10-30
PCT/US2020/054227 WO2021071772A1 (en) 2019-10-07 2020-10-05 Multi-agent simulations

Publications (1)

Publication Number Publication Date
CN114514524A true CN114514524A (zh) 2022-05-17

Family

ID=75273612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080070475.1A Pending CN114514524A (zh) 2019-10-07 2020-10-05 多智能体模拟

Country Status (6)

Country Link
US (2) US11645518B2 (zh)
EP (1) EP4022514A4 (zh)
JP (1) JP7345639B2 (zh)
KR (1) KR20220058598A (zh)
CN (1) CN114514524A (zh)
WO (1) WO2021071772A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018083667A1 (en) * 2016-11-04 2018-05-11 Deepmind Technologies Limited Reinforcement learning systems
EP3951673A1 (en) * 2020-08-04 2022-02-09 Aptiv Technologies Limited Method and system of collecting training data suitable for training an autonomous driving system of a vehicle
DE102020210376A1 (de) * 2020-08-14 2022-02-17 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Steuern eines Hardware-Agenten in einer Steuersituation mit mehreren Hardware-Agenten
US11810225B2 (en) * 2021-03-30 2023-11-07 Zoox, Inc. Top-down scene generation
US11858514B2 (en) 2021-03-30 2024-01-02 Zoox, Inc. Top-down scene discrimination
JP2022187780A (ja) * 2021-06-08 2022-12-20 トヨタ自動車株式会社 マルチエージェントシミュレーションシステム及びマルチエージェントシミュレーション方法
JP2022187777A (ja) * 2021-06-08 2022-12-20 トヨタ自動車株式会社 マルチエージェントシミュレーションシステム
CN113848703B (zh) * 2021-08-28 2023-12-08 同济大学 一种多智能体系统状态估计方法
CN116991084B (zh) * 2023-09-28 2023-12-19 北京斯年智驾科技有限公司 一种无人驾驶模拟仿真系统、方法、装置和存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753441B2 (en) 2013-05-13 2017-09-05 Massachusetts Institute Of Technology Controlling dynamical systems with bounded probability of failure
JP6127932B2 (ja) * 2013-11-18 2017-05-17 トヨタ自動車株式会社 原動機モジュールの動作範囲のシミュレーション方法
US11080587B2 (en) 2015-02-06 2021-08-03 Deepmind Technologies Limited Recurrent neural networks for data item generation
US20190019087A1 (en) * 2016-03-25 2019-01-17 Sony Corporation Information processing apparatus
DE202016004628U1 (de) 2016-07-27 2016-09-23 Google Inc. Durchqueren einer Umgebungsstatusstruktur unter Verwendung neuronaler Netze
EP3523761B1 (en) 2016-11-04 2023-09-20 DeepMind Technologies Limited Recurrent environment predictors
US10410440B2 (en) 2016-12-09 2019-09-10 Traffilog Ltd. Distributed system and method for monitoring vehicle operation
US10254759B1 (en) * 2017-09-14 2019-04-09 Waymo Llc Interactive autonomous vehicle agent
US11169536B2 (en) * 2018-04-09 2021-11-09 SafeAI, Inc. Analysis of scenarios for controlling vehicle operations
US11568207B2 (en) * 2018-09-27 2023-01-31 Deepmind Technologies Limited Learning observation representations by predicting the future in latent space
WO2020065024A1 (en) * 2018-09-27 2020-04-02 Deepmind Technologies Limited Stacked convolutional long short-term memory for model-free reinforcement learning
US11667301B2 (en) * 2018-12-10 2023-06-06 Perceptive Automata, Inc. Symbolic modeling and simulation of non-stationary traffic objects for testing and development of autonomous vehicle systems
KR20210134635A (ko) * 2019-03-29 2021-11-10 인텔 코포레이션 자율 주행 차량 시스템
US11554785B2 (en) * 2019-05-07 2023-01-17 Foresight Ai Inc. Driving scenario machine learning network and driving environment simulation
US11242054B2 (en) * 2019-06-12 2022-02-08 Honda Motor Co., Ltd. Autonomous vehicle interactive decision making

Also Published As

Publication number Publication date
US11645518B2 (en) 2023-05-09
US20210104171A1 (en) 2021-04-08
JP7345639B2 (ja) 2023-09-15
WO2021071772A1 (en) 2021-04-15
EP4022514A1 (en) 2022-07-06
EP4022514A4 (en) 2023-07-12
KR20220058598A (ko) 2022-05-09
US20230409903A1 (en) 2023-12-21
JP2022550512A (ja) 2022-12-02

Similar Documents

Publication Publication Date Title
US11645518B2 (en) Multi-agent simulations
US11618481B2 (en) Agent trajectory prediction using anchor trajectories
JP7214873B2 (ja) 自律型車両のセンサデータリポジトリの検索
JP7367183B2 (ja) 占有予測ニューラルネットワーク
JP7239703B2 (ja) 領域外コンテキストを用いたオブジェクト分類
US20210148727A1 (en) Simulating diverse long-term future trajectories in road scenes
JP7203224B2 (ja) 開放された車両ドアを検出するための分類器のトレーニング
CN114830138A (zh) 训练轨迹评分神经网络以准确分配分数
US20230150550A1 (en) Pedestrian behavior prediction with 3d human keypoints
US20220169244A1 (en) Multi-modal multi-agent trajectory prediction
EP4060626A1 (en) Agent trajectory prediction using context-sensitive fusion
CN116194351A (zh) 使用目标位置的代理轨迹预测
US20230082079A1 (en) Training agent trajectory prediction neural networks using distillation
JP7446416B2 (ja) 時空間ポーズ/オブジェクトデータベース
US20230082365A1 (en) Generating simulated agent trajectories using parallel beam search
US20220289209A1 (en) Evaluating multi-modal trajectory predictions for autonomous driving
US20230041501A1 (en) Policy neural network training using a privileged expert policy
CN114139697A (zh) 自主载具的知识蒸馏

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination