KR20220058598A - 멀티-에이전트 시뮬레이션들 - Google Patents

멀티-에이전트 시뮬레이션들 Download PDF

Info

Publication number
KR20220058598A
KR20220058598A KR1020227011126A KR20227011126A KR20220058598A KR 20220058598 A KR20220058598 A KR 20220058598A KR 1020227011126 A KR1020227011126 A KR 1020227011126A KR 20227011126 A KR20227011126 A KR 20227011126A KR 20220058598 A KR20220058598 A KR 20220058598A
Authority
KR
South Korea
Prior art keywords
agent
state
simulation
subsequent
time step
Prior art date
Application number
KR1020227011126A
Other languages
English (en)
Inventor
브랜딘 알렌 화이트
Original Assignee
웨이모 엘엘씨
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 웨이모 엘엘씨 filed Critical 웨이모 엘엘씨
Publication of KR20220058598A publication Critical patent/KR20220058598A/ko

Links

Images

Classifications

    • 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
    • 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
    • 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
    • G06N3/0454
    • G06N3/0472
    • 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
    • G06N3/0481
    • 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
    • G06N7/005
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Business, Economics & Management (AREA)
  • Educational Technology (AREA)
  • Educational Administration (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Abstract

복수의 시간 스텝에 걸쳐 복수의 에이전트에 의해 상호작용되고 있는 환경의 시뮬레이션을 생성하기 위해 컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램들을 포함하는 방법들, 시스템들 및 장치들에서, 시뮬레이션은 각각의 시간 스텝에 대해 시간 스텝에서의 각각의 에이전트의 개별 상태를 지정하는 개별 시뮬레이션 상태를 포함한다. 일 양태에서, 방법은 각각의 시간 스텝에 대해: 현재 시간 스텝에 대한 현재 시뮬레이션 상태를 획득하는 단계; 후속 시간 스텝에 대한 복수의 후보 후속 시뮬레이션 상태를 생성하는 단계; 각각의 후보 후속 시뮬레이션 상태에 대해, 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어를 결정하는 단계; 및 후보 후속 시뮬레이션 상태들에 대한 판별 스코어들에 기초하여, 후속 시간 스텝에 대한 시뮬레이션 상태로서 후보 후속 시뮬레이션 상태를 선택하는 단계를 포함한다.

Description

멀티-에이전트 시뮬레이션들
본 명세서는 머신 러닝 모델들을 사용하여 환경을 시뮬레이션하는 것에 관한 것이다.
머신 러닝 모델들은 입력을 수신하고, 수신된 입력에 기초하여 출력, 예를 들어 예측된 출력을 생성한다. 일부 머신 러닝 모델들은 파라미터 모델이며, 수신된 입력 및 모델의 파라미터들의 값들에 기초하여 출력을 생성한다.
일부 머신 러닝 모델들은 여러 계층의 모델을 사용하여 수신된 입력에 대한 출력을 생성하는 심층 모델들이다. 예를 들어, 심층 신경망은 출력 계층, 및 각각 수신된 입력에 비선형 변환을 적용하여 출력을 생성하는 하나 이상의 은닉 계층을 포함하는 심층 머신 러닝 모델이다.
본 명세서는 시뮬레이션된 환경과 상호작용하는 에이전트들의 세트를 제어하여 그들의 거동이 실세계 에이전트들의 거동을 현실적으로 시뮬레이션하게 하도록 학습할 수 있는, 하나 이상의 위치에 있는 하나 이상의 컴퓨터 상의 컴퓨터 프로그램으로서 구현된 시뮬레이션 시스템을 설명한다.
제1 양태에 따르면, 시간 스텝들의 시퀀스에 걸쳐 에이전트들의 세트에 의해 상호작용되고 있는 환경의 시뮬레이션을 생성하기 위해 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법이 제공된다. 시뮬레이션은 각각의 시간 스텝에 대해 시간 스텝에서의 각각의 에이전트의 개별 상태를 지정하는 개별 시뮬레이션 상태를 포함한다. 방법은 각각의 시간 스텝에 대해, 현재 시간 스텝에 대한 현재 시뮬레이션 상태를 획득하는 단계를 포함한다. 후속 시간 스텝에 대한 후보 후속 시뮬레이션 상태들의 세트는 현재 시뮬레이션 상태에 기초하여 생성된다. 각각의 후보 후속 시뮬레이션 상태를 생성하는 단계는 각각의 에이전트에 대해, 에이전트에 의해 수행될 수 있는 가능한 액션들의 세트로부터 개별 액션을 샘플링하는 단계를 포함한다. 각각의 에이전트에 대해, 에이전트가 현재 시간 스텝에서 대응하는 샘플링된 액션을 수행하는 경우, 후속 시간 스텝에서 에이전트의 개별 후속 상태가 결정된다. 각각의 후보 후속 시뮬레이션 상태에 대해, 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태(realistic simulation state)일 가능성을 특징화하는 판별 스코어가 결정된다. 후보 후속 시뮬레이션 상태들에 대한 판별 스코어들에 기초하여, 후속 시간 스텝에 대한 시뮬레이션 상태로서 후보 후속 시뮬레이션 상태가 선택된다.
일부 구현들에서, 에이전트들은 환경 내의 차량들이다.
일부 구현들에서, 에이전트에 의해 수행될 수 있는 가능한 액션들의 세트는 에이전트의 조향 각도를 조절하는 액션들을 포함한다.
일부 구현들에서, 에이전트에 의해 수행될 수 있는 가능한 액션들의 세트는 에이전트의 가속도를 조절하는 액션들을 포함한다.
일부 구현들에서, 시간 스텝에서의 에이전트의 상태는 (i) 시간 스텝에서 에이전트의 위치, 및 (ⅱ) 시간 스텝에서의 에이전트의 모션을 포함한다.
일부 구현들에서, 에이전트의 위치는 (i) 환경에서의 에이전트의 공간 위치, 및 (ⅱ) 환경에서의 에이전트의 진로방향(heading)을 포함한다.
일부 구현들에서, 에이전트의 모션은 (i) 에이전트의 속도, 및 (ⅱ) 에이전트의 가속도를 포함한다.
일부 구현들에서, 방법은, 각각의 에이전트에 대해, 환경에서의 에이전트의 현재 상태의 표현을 획득하는 단계; 및 에이전트에 대한 가능한 액션들의 세트에 걸친 대응하는 확률 분포를 생성하기 위해, 정책 신경망(policy neural network)을 사용하여 환경에서 에이전트의 현재 상태의 표현을 프로세싱하는 단계를 더 포함한다. 각각의 에이전트에 대해, 가능한 액션들의 세트로부터 개별 액션을 샘플링하는 단계는, 각각의 에이전트에 대해, 에이전트에 대한 가능한 액션들의 세트에 걸친 확률 분포에 따라, 가능한 액션들의 세트로부터 액션을 샘플링하는 단계를 포함할 수 있다.
일부 구현들에서, 각각의 에이전트에 대해, 에이전트가 현재 시간 스텝에서 대응하는 샘플링된 액션을 수행하는 경우, 후속 시간 스텝에서 에이전트의 개별 후속 상태를 결정하는 단계는, 각각의 에이전트에 대해, 후속 시간 스텝에서의 에이전트의 후속 상태를 생성하기 위해, 모션 모델을 사용하여 (i) 에이전트의 현재 상태 및 (ⅱ) 에이전트에 대한 샘플링된 액션을 특징화하는 데이터를 프로세싱하는 단계를 포함한다.
일부 구현들에서, 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어를 결정하는 단계는 후보 후속 시뮬레이션 상태의 표현을 획득하는 단계를 포함한다. 후보 후속 시뮬레이션 상태의 표현은 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어를 생성하기 위해, 판별기 신경망을 사용하여 프로세싱될 수 있다.
일부 구현들에서, 후보 후속 시뮬레이션 상태의 표현을 획득하는 단계는: 각각의 에이전트에 대해, 후보 후속 시뮬레이션 상태에 대응하는 후속 시간 스텝에서의 에이전트의 후속 상태의 표현을 획득하는 단계를 포함한다. 판별기 신경망을 사용하여 후보 후속 시뮬레이션 상태의 표현을 프로세싱하는 단계는, 각각의 에이전트에 대해, 에이전트의 후속 상태가 현실적인 에이전트 상태일 가능성을 특징화하는 에이전트-특정 판별 스코어를 생성하기 위해, 판별기 신경망을 사용하여 후보 후속 시뮬레이션 상태에 대응하는 후속 시간 스텝에서의 에이전트의 후속 상태의 표현을 프로세싱하는 단계를 포함할 수 있다. 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어는 에이전트-특정 판별 스코어들에 기초하여 생성될 수 있다.
일부 구현들에서, 에이전트-특정 판별 스코어들에 기초하여 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어를 생성하는 단계는 에이전트-특정 판별 스코어들의 최소값을 계산하는 단계를 포함한다.
일부 구현들에서, 판별기 신경망은 환경 상태가 실세계 환경 상태인 경우 환경 상태를 현실적이라고 특징화하는 판별 스코어들을 생성하도록 훈련된다.
일부 구현들에서, 후보 후속 시뮬레이션 상태들에 대한 판별 스코어들에 기초하여, 후속 시간 스텝에 대한 시뮬레이션 상태로서 후보 후속 시뮬레이션 상태를 선택하는 단계는 가장 높은 판별 스코어를 갖는 후보 후속 시뮬레이션 상태를 후속 시간 스텝을 위한 시뮬레이션 상태로서 선택하는 단계를 포함한다.
제2 양태에 따르면, 하나 이상의 컴퓨터; 및 하나 이상의 컴퓨터에 통신가능하게 결합된 하나 이상의 저장 디바이스를 포함하는 시스템이 제공되고, 하나 이상의 저장 디바이스는 하나 이상의 컴퓨터에 의해 실행될 때, 하나 이상의 컴퓨터로 하여금, 제1 양태의 방법의 동작들을 수행하게 하는 명령어들을 저장한다.
제3 양태에 따르면, 명령어들을 저장하는 하나 이상의 비-일시적 컴퓨터 저장 매체가 제공되고, 명령어들은 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 제1 양태의 방법의 동작들을 수행하게 한다.
본 명세서에 설명된 주제의 특정 실시예들은 이하의 이점들 중 하나 이상을 실현하도록 구현될 수 있다.
본 명세서는 환경과 상호작용하는 복수의 시뮬레이션된 에이전트(예를 들어, 차량)의 세트를 제어하여 그들의 거동이 실세계 에이전트들(예를 들어, 인간 운전자에 의해 제어되는 차량들)의 거동을 현실적으로 시뮬레이션하게 할 수 있는 시뮬레이션 시스템을 설명한다. 시뮬레이션 시스템은 부분 또는 완전 자율 차량에 의해 수행될 액션들을 선택하는 계획 시스템의 동작을 개선하기 위해 사용될 수 있다. 예를 들어, 시뮬레이션 시스템은 계획 시스템이 하나의 차량을 제어하는 동안 나머지 차량들은 시뮬레이션 시스템에 의해 제어되는, 다수의 시뮬레이션을 생성하기 위해 사용될 수 있다. 이러한 시뮬레이션들은 계획 시스템이 실세계 환경에서 차량을 제어하기 위해 사용되기 전에, 계획 시스템 내의 잠재적인 "버그들"(예를 들어, 계획 시스템이 차량이 안전하지 않게 동작하도록 하는 액션들을 선택하는 경우)을 식별하고 해결하기 위해 사용할 수 있다. 다른 예로서, 차량의 계획 시스템은 환경에서 다른 차량들의 가능한 미래 거동들을 예측하기 위해 시뮬레이션 시스템을 사용할 수 있고, 이후에 이러한 거동 예측들을 사용하여 차량의 동작을 더 안전하고 효과적으로 제어할 수 있다. 다른 예로서, 시뮬레이션 시스템은 다른 차량들에 의해 동시에 점유되는 환경들에서 차량이 안전하고 효율적이며 편안하게 동작할 수 있도록 하는 액션들을 선택하도록 계획 시스템을 훈련하기 위해 사용될 수 있다.
이전에는 계획 시스템의 성능을 테스트하기 위해, 계획 시스템이 하나의 차량을 제어하고 나머지 차량들이 실세계 차량들의 기록된 거동을 단순히 재생하는 시뮬레이션이 생성될 수 있었다. 미리 결정된 궤적들을 따르는 차량들은 계획 시스템에 의해 제어되는 차량의 거동을 고려하기 위해 자신들의 거동을 조절할 수 없기 때문에, 이러한 시뮬레이션들은 비현실적일 수 있다. 대조적으로, 본 명세서에 설명된 시뮬레이션 시스템은, 즉 계획 시스템에 의해 제어되는 차량을 포함하는 서로 다른 차량의 거동을 고려하면서 각각의 시간 스텝에서 그것의 제어 하에 있는 각각의 차량에 의해 수행될 액션들을 동적으로 선택할 수 있다. 따라서, 본 명세서에서 설명되는 시뮬레이션 시스템은 계획 시스템의 동작을 개선하기 위해 사용될 수 있는 더 현실적인 시뮬레이션들을 생성할 수 있다.
본 명세서에 설명된 시뮬레이션 시스템은 환경의 주어진 초기 조건에서 시작하여 환경의 다수의 가능한 시뮬레이션을 "샘플링"(즉, 확률적으로 생성)할 수 있다. 상이한 가능한 시뮬레이션들을 샘플링하면, 시뮬레이션 시스템은 다수의 상이한 시나리오, 예를 들어 시뮬레이션 시스템에 의해 제어되는 차량이 계획 시스템에 의해 제어되는 차량 뒤에서 합류하는 경우, 및 시뮬레이션 시스템에 의해 제어되는 차량이 계획 시스템에 의해 제어되는 차량 앞에서 합류하는 경우를 시뮬레이션할 수 있다. 대조적으로, 차량들이 실세계 차량들의 기록된 거동을 재생하는 대안적인 시뮬레이션 시스템은 주어진 초기 조건으로부터 시작하는 복수의 시나리오를 시뮬레이션할 수 없다. 상이한 가능한 시뮬레이션 시나리오들을 샘플링할 수 있는 능력은, 본 명세서에 설명된 시뮬레이션 시스템이 예를 들어 일부 대안적인 시뮬레이션 시스템들을 사용하여 가능한 것보다 더 포괄적인 현실적인 시나리오들의 세트 하에서 계획 시스템을 테스트하기 위해 사용될 수 있도록 한다.
본 명세서의 주제의 하나 이상의 실시예의 세부사항은 첨부 도면들 및 이하의 설명에서 제시된다. 주제의 다른 특징들, 양태들 및 이점들은 설명, 도면들 및 청구항들로부터 명백해질 것이다.
도 1은 복수의 에이전트에 의해 상호작용되고 있는 예시적인 환경을 도시한다.
도 2는 4개의 시간 스텝에 걸쳐 롤아웃된 시뮬레이션의 예를 도시한다.
도 3은 예시적인 시뮬레이션 시스템의 블록도이다.
도 4는 점유 맵들의 세트의 도시를 제공한다.
도 5는 예시적인 관찰 임베딩 시스템의 블록도이다.
도 6은 차량의 예시적인 온보드 시스템의 블록도이다.
도 7은 복수의 에이전트에 의해 상호작용되고 있는 환경의 시뮬레이션을 생성하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면들에서 유사한 참조 번호들 및 지정들은 유사한 요소들을 나타낸다.
본 명세서는 시뮬레이션된 환경과 상호작용하는 에이전트들(예를 들어, 차량들)의 세트를 제어하여 그들의 거동(예를 들어, 가속도 및 조향)이 실세계 에이전트들(예를 들어, 인간 운전자들에 의해 제어되는 차량들)의 거동을 시뮬레이션하게 하도록 학습할 수 있는 시뮬레이션 시스템을 설명한다. 시뮬레이션 시스템은 에이전트들을 공동으로 제어하여, 각각의 에이전트가 개별적으로, 그리고 환경 내의 다른 에이전트들 각각에 대해 모두 현실적으로 거동하게 한다. 5개의 에이전트(102-A-E)가 공동으로 도로를 내비게이트하고 있는, 도 1에 도시된 시뮬레이션된 멀티-에이전트 환경(100)을 예로 들어보자. 시뮬레이션 시스템은 에이전트(102-C)로 하여금, 교차로에서 멈추고, 에이전트(102-E)(이 역시 시뮬레이션 시스템에 의해 제어됨)가 교차로를 지나갈 때까지 에이전트(102-E)에 의해 점유된 차로에 진입하는 것을 억제하게 할 수 있다. 에이전트(102-C)가 교차로에 진입할 때, 시뮬레이션 시스템은 그것이 현실 궤적을 따르도록, 예를 들어 도로에 머물고 다른 에이전트들 중 임의의 것과 충돌하지 않도록 그것의 조향 및 가속도를 제어할 수 있다.
본 문서 전체에서, 에이전트의 거동은 실세계 에이전트들의 거동을 시뮬레이션하는 경우(즉, 유사한 속성들을 가짐) "현실적"이라고 언급된다. 예를 들어, 에이전트는 그것이 환경 내의 다른 객체들과 충돌하는지 여부, 그것이 교통 신호등 및 표지판을 처리하는 방법(예를 들어, 전방향 정지 우선(all-way stop precedence)), 및 그것이 (예를 들어, 차로 병합들 및 합류들 동안) 다른 에이전트들과의 상호작용들을 처리하는 방법에 기초하여 현실적으로 거동하는 것으로 고려될 수 있다. 마찬가지로, 환경(또는 에이전트)의 상태는 그것이 실세계 환경(또는 에이전트)의 상태를 시뮬레이션하는 경우 현실적이라고 언급된다. 달리 말하면, 시뮬레이션이 기록된 데이터로부터 도출된 실세계 환경 상태들과 유사한 특성을 갖는 시뮬레이션 상태를 지정하여, 관찰자(예를 들어, 판별기 신경망 또는 사람)가 시뮬레이션 상태들을 실세계 환경 상태들로부터 구별하기 어려울 수 있는 경우, 그것은 현실적이라고 언급된다.
시뮬레이션 시스템은 복수의 시간 스텝 각각에서 각각의 에이전트에 의해 수행될 개별 액션을 선택함으로써 에이전트들을 제어한다. 특히, 각각의 에이전트에 대해, 시스템은 "정책" 신경망을 사용하여 가능한 액션들의 세트에 걸친 확률 분포를 생성한 다음, 확률 분포를 사용하여 에이전트에 의해 수행될 액션을 선택할 수 있다. 에이전트에 의해 수행될 수 있는 액션들은 에이전트의 모션을 제어하는 액션들, 예를 들어 조향 및 가속 액션들, 및 예를 들어 방향전환 신호를 활성화 또는 비활성화함으로써 에이전트의 상태에 달리 영향을 미치는 액션들을 포함할 수 있다. 주어진 시간 스텝에서 에이전트들에 의해 수행되는 액션들은 후속 시간 스텝에서 시뮬레이션의 상태(특히 각각의 에이전트의 개별 상태)를 결정한다. 본 문서 전체에서 사용될 때, 시간 스텝에서의 "시뮬레이션 상태"는 시간 스텝에서 각각의 에이전트의 상태를 특징화하는 데이터를 지칭한다.
제1 시간 스텝에서 주어진 초기 시뮬레이션 상태에서 시작하여, 시뮬레이션 시스템은 후속 시간 스텝에 대한 복수의 "후보" 후속 시뮬레이션 상태들의 세트를 생성한다. 각각의 후보 후속 시뮬레이션 상태는 제1 시간 스텝에서 정책 신경망에 의해 생성된 에이전트별 거동 확률 분포들로부터 샘플링된 개별 액션들을 에이전트들이 수행한 결과이다. 시뮬레이션 시스템은 "판별기" 신경망을 사용하여 후보 후속 시뮬레이션 상태에 대한 개별 "판별 스코어"를 생성함으로써 각각의 후보 후속 시뮬레이션 상태가 현실적인지를 평가한다. 시뮬레이션 시스템은, 예를 들어, 가장 높은 판별 스코어를 갖는 후보 후속 시뮬레이션 상태 또는 임계값을 만족하는 판별 스코어들을 갖는 후보 후속 시뮬레이션 상태들만을 유지함으로써, 하나 이상의 후보 후속 시뮬레이션 상태를 필터링(즉, 추가 고려들로부터 제거)하기 위해 판별 스코어를 사용할 수 있다.
시뮬레이션 시스템은 각각의 시간 스텝에서, 현재 시간 스텝에 대한 시뮬레이션 상태에 기초하여 후속 시간 스텝에 대한 후보 후속 시뮬레이션 상태를 생성하고, 판별 스코어들에 기초하여 비현실적인 후보 후속 시뮬레이션 상태들을 필터링함으로써 복수의 시간 스텝에 걸쳐 시뮬레이션을 "롤아웃"한다. 복수의 후보 후속 시뮬레이션 상태들(즉, 각각이 현실적인 것으로 식별됨)을 유지하면, 시뮬레이션 시스템이 복수의 시뮬레이션을 병렬로 롤아웃할 수 있다.
도 2는 초기 시간 스텝(T=0)으로부터 시작하여 4개의 시간 스텝(T=1, 2, 3, 4)에 걸쳐 롤아웃된 시뮬레이션(200)의 예를 도시한다. 원들(202-A-I) 각각은 시뮬레이션 시스템에 의해 생성된 개별 시뮬레이션 상태를 나타낸다. T=0에서, 시뮬레이션 시스템은 초기 시뮬레이션 시스템(202-A)으로부터 2개의 후보 후속 시뮬레이션 상태(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-I)을 생성한다(둘 다 필터링하지 않음). 이 예에서, 시뮬레이션 시스템은 시뮬레이션 상태들의 시퀀스들 [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)을 사용하여, 후속 시간 스텝을 위한 하나 이상의 후속 시뮬레이션 상태(304)를 생성하기 위해, 현재 시간 스텝에 대한 현재 시뮬레이션 상태(302)를 프로세싱할 수 있다.
관찰 임베딩 시스템(500)은 각각의 에이전트에 대한 개별 현재 관찰 임베딩(314)을 생성한다. 에이전트에 대한 현재 관찰 임베딩(314)은 에이전트의 현재 상태 및 환경의 현재 상태를 특징화하는 숫자 값들(예를 들어, 숫자 값들의 벡터 또는 행렬)의 정렬된 컬렉션이다. 예를 들어, 주어진 에이전트에 대한 현재 관찰 임베딩은 도 5를 참조하여 더 상세히 설명되는 바와 같이, 주어진 에이전트의 관점에서 환경의 현재 상태(다른 에이전트들의 현재 상태들을 포함함)를 특징화할 수 있다. 관찰 임베딩 시스템(500)은 고정된(미리 결정된) 차원을 갖는 에이전트들에 대한 관찰 임베딩(314)을 생성할 수 있으며, 예를 들어 각각의 에이전트에 대한 관찰 임베딩(314)은 256-차원 벡터일 수 있다.
관찰 임베딩 시스템(500)은 현재 시뮬레이션 상태(302), 및 환경의 현재 상태를 특징화하는 환경 데이터(316)의 세트를 프로세싱함으로써 에이전트들에 대한 현재 관찰 임베딩들(314)을 생성할 수 있다. 환경 데이터(316)는 예를 들어 에이전트들에 의해 이동되는 도로의 구조(예를 들어, 차로들의 위치들 및 유형들, 도로 표지판들, 횡단 보도들 및 그와 유사한 것), 환경 내의 객체들(예를 들어, 신호등)의 상태들, 현재 시점까지의 에이전트들의 궤적들, 에이전트들의 예측된 미래 궤적들을 나타내는 도로 그래프를 포함할 수 있다(이하에 더 상세하게 논의됨). 예시적인 관찰 임베딩 시스템(500)은 도 5를 참조하여 더 상세하게 설명된다.
각각의 에이전트에 대해, 정책 신경망(306)은 에이전트에 의해 수행될 수 있는 가능한 액션들의 세트에 걸친 확률 분포(318)를 생성하기 위해 에이전트에 대한 관찰 임베딩(314)을 프로세싱한다. 가능한 액션들의 세트는 에이전트의 모션을 제어하는 액션들, 및 에이전트의 상태에 달리 영향을 주는 액션들을 포함할 수 있다. 일례에서, 가능한 액션들의 세트는 이하에 의해 주어질 수 있다:
Figure pct00001
여기서, 각각의 Ai는 에이전트의 가속도를 조절하는 액션을 나타내고, Sj는 각각은 에이전트의 조향 각도를 조절하는 액션을 나타낸다. 정책 신경망은 그것이 설명된 기능을 수행할 수 있게 하는 임의의 적절한 신경망 아키텍처를 가질 수 있다. 일례에서, 정책 신경망은 입력 계층, 및 그에 후속하는 복수의 완전 연결 계층들의 시퀀스, 및 그에 후속하는 소프트맥스 출력 계층을 포함할 수 있으며, 여기서 소프트맥스 출력 계층의 각각의 뉴런은 가능한 액션들의 세트 내의 각각의 액션에 대응한다.
시뮬레이션 시스템(300)은 현재 시뮬레이션 상태(302)를 확장하는 하나 이상의 후보 후속 시뮬레이션 상태(320)를 생성하기 위해 액션 확률 분포들(318)을 사용한다. 후보 후속 시뮬레이션 상태(320)를 생성하기 위해, 시뮬레이션 시스템(300)은 에이전트에 대한 대응하는 액션 확률 분포(318)로부터 각각의 에이전트에 대한 개별 액션을 샘플링한다. 다음으로, 시뮬레이션 시스템(300)은 에이전트가 현재 시간 스텝에서 대응하는 샘플링된 액션을 수행하는 경우의 후속 시간 스텝에서의 에이전트의 상태를 계산하기 위해 모션 모델(308)을 사용한다. 계산된 후속 에이전트 상태들은 후보 후속 시뮬레이션 상태(320)를 집합적으로 지정한다. "역학 모델", "전이 모델" 또는 "물리 모델"이라고도 지칭될 수 있는 모션 모델(308)은 적절한 운동학적 및 기하학적 관계들을 사용하여, 에이전트의 현재 상태 및 에이전트에 의해 수행되는 액션에 기초하여, 에이전트의 후속 상태를 계산할 수 있다.
시뮬레이션 시스템(300)은 각각의 후보 후속 시뮬레이션 상태(320)에 대한 개별 판별 스코어(322)를 생성하기 위해 판별기 신경망(310)을 사용한다. 후보 후속 시뮬레이션 상태(320)에 대한 판별 스코어(322)는 후보 후속 시뮬레이션(320) 상태가 현실적일 가능성을 특징화한다. 후보 후속 시뮬레이션 상태에 대한 판별 스코어(322)는 숫자 값, 예를 들어 [0, 1] 범위의 숫자 값으로서 표현될 수 있고, 여기서 판별 스코어의 더 높은 값들(즉, 1에 가까움)은 후보 후속 시뮬레이션 상태가 더 현실적임을 나타낸다.
일반적으로, 시뮬레이션 시스템(300)은 판별기 신경망(310)을 사용하여 후보 후속 시뮬레이션 상태(320)의 표현을 프로세싱함으로써 후보 후속 시뮬레이션 상태(320)에 대한 판별 스코어(322)를 생성할 수 있다. 일례에서, 시뮬레이션 시스템(300)은 관찰 임베딩 시스템(500)을 사용하여 후보 후속 시뮬레이션 상태(320)에 대응하는 개별 에이전트에 대한 각각의 관찰 임베딩을 생성함으로써 후보 후속 시뮬레이션 상태의 표현을 생성할 수 있다. 이러한 예에서, 후보 후속 시뮬레이션 상태(320)에 대응하는 에이전트 관찰 임베딩들은 집합적으로 후보 후속 시뮬레이션 상태의 표현을 지정한다. 시뮬레이션 시스템(300)은 에이전트의 상태가 현실적일 가능성을 특징화하는, 각각의 에이전트에 대한 개별 에이전트-특정 판별 스코어를 생성하도록 각각의 에이전트 관찰 임베딩을 프로세싱하기 위해 판별기 신경망(310)을 사용할 수 있다. 다음으로, 시뮬레이션 시스템(300)은 그 다음 후보 후속 시뮬레이션 상태에 대한 전체 판별 스코어를 생성하기 위해 에이전트-특정 판별 스코어들을 결합할 수 있다. 예를 들어, 시뮬레이션 시스템은 후보 후속 시뮬레이션 상태에 대한 판별 스코어 D를 다음과 같이 생성할 수 있다:
Figure pct00002
Figure pct00003
여기서, N는 에이전트들의 수이고, Di는 에이전트 i에 대한 에이전트-특정 판별 스코어이고, Oi는 후보 후속 시뮬레이션 상태에 대응하는 에이전트 i에 대한 관찰 임베딩이고, fθ(·)는 판별기 신경망에 의해 수행된 동작들을 나타낸다. 시뮬레이션 상태에 대한 판별 스코어를 에이전트-특정 판별 스코어의 최소값으로 결정하는 것은(즉, 수학식 2에서와 같이), 임의의 에이전트의 거동이 비현실적이면 전체 시뮬레이션 상태가 비현실적이게 된다는 직관을 반영한다.
임의로, 판별기 신경망(310)은 후보 후속 시뮬레이션 상태(320)의 표현에 더하여 다른 입력들을 프로세싱할 수 있다. 예를 들어, 판별기는 후보 후속 시뮬레이션 상태(320)의 표현에 추가하여, 현재 시뮬레이션 상태(302)의 표현(및 가능하면 하나 이상의 선행 시뮬레이션 상태의 표현)을 프로세싱할 수 있다. 이러한 추가 입력들을 프로세싱하면, 판별기 신경망은 후보 후속 시뮬레이션 상태가 현실적인지를 더 정확하게 특징화할 수 있다.
일반적으로, 판별기 신경망(310)은 그것이 설명된 기능을 수행할 수 있게 하는 임의의 적절한 신경망 아키텍처를 가질 수 있다. 예를 들어, 판별기 신경망 아키텍처는 완전 연결 계층들의 시퀀스, 및 그에 후속하는 단일 뉴런을 갖는 출력 계층을 포함할 수 있으며, 즉, 여기서 출력 계층 뉴런의 활성화는 판별 스코어를 지정한다. 출력 계층은 예를 들어 시그모이드 활성화 함수를 사용하여 판별 스코어들이 [0,1] 범위에 속하게 할 수 있다.
시뮬레이션 시스템(300)은 필터링 엔진(312)을 사용하여, 후보 후속 시뮬레이션 상태들(304)에 대한 판별 스코어들(322)에 기초하여 후보 후속 시뮬레이션 상태들(304)로부터 하나 이상의 후속 시뮬레이션 상태(304)를 선택한다. 일반적으로, 필터링 엔진(312)은, 후보 후속 시뮬레이션 상태에 대한 판별 스코어(322)가 그것이 현실적 상태가 아님을 나타내는 경우, 즉 실세계 환경에서 발생할 것 같지 않은 상태임을 나타내는 경우, 후보 후속 시뮬레이션 상태(320)를 필터링(즉, 추가 고려로부터 제거)할 가능성이 더 높다. 일례에서, 필터링 엔진(312)은 미리 결정된 임계값을 충족하지 않는 판별 스코어(322)를 갖는 각각의 후보 후속 시뮬레이션 상태(320)를 필터링할 수 있다. 다른 예에서, 필터링 엔진(312)은 가장 높은 판별 스코어들을 갖는 미리 정의된 수의 후보 후속 시뮬레이션 상태(304)를 제외하고 모든 후보 후속 시뮬레이션 상태(320)를 필터링할 수 있다.
일부 경우들에서, 특히 시뮬레이션 시스템(300)의 훈련 동안(즉, 시뮬레이션 시스템(300)이 에이전트들에 의해 수행될 액션을 효과적으로 선택하는 것을 아직 학습하지 않은 때), 후보 후속 시뮬레이션 상태들 중 다수가 필터링 엔진(312)에 의해 필터링되기 위한 기준을 충족할 수 있다. 후속 시간 스텝에서 시뮬레이션들을 계속 롤아웃하기 위해, 시뮬레이션 시스템(300)은 후속 시간 스텝에 대해 적어도 하나의 후속 시뮬레이션 상태를 선택해야 한다. 따라서, 시뮬레이션 시스템(300)은 적어도 미리 정의된 개수가 필터링 엔진(312)에 의해 후속 시간 스텝에 대해 수용가능한 후속 시뮬레이션 상태(304)로서 선택될 때까지, 후보 후속 시뮬레이션 상태들(304)(즉, 현재 시뮬레이션 상태(302)를 확장함)을 계속해서 생성할 수 있다.
후속 시간 스텝에 대한 시뮬레이션 상태들(304)을 식별한 후, 시뮬레이션 시스템(300)은 후속 시간 스텝으로 진행할 수 있다. 현재 시간 스텝이 최종 시간 스텝인 경우, 시뮬레이션 시스템(300)은 각각의 시간 스텝에 대해 생성된 시뮬레이션 상태들로부터 환경의 하나 이상의 시뮬레이션을 식별할 수 있다. 시뮬레이션들이 미리 정의된 최대 수의 시간 스텝 동안 롤아웃된 경우, 시뮬레이션 시스템(300)은 현재 시간 스텝이 최종 시간 스텝이라고 결정할 수 있다.
일반적으로, 에이전트들이 현실적으로 거동하게 하는 액션들을 선택하기 위해, 시뮬레이션 시스템(300)(특히, 정책 신경망(306))은 에이전트들의 예측된 미래 거동을 고려할 수 있다. 시뮬레이션 시스템(300)은 예를 들어 정책 신경망(306)의 파라미터 값들에서 암시적으로 학습되고 인코딩되는 순수한 암시적 방식으로, 에이전트들의 예측된 미래 거동을 고려할 수 있다. 그러나, 시뮬레이션 시스템(300)의 성능을 개선하고 정책 신경망(306)의 훈련을 용이하게 하기 위해, 시뮬레이션 시스템(300)은 또한 에이전트들의 미래 거동에 대한 명시적 예측들에 기초하여 에이전트들에 의해 수행될 액션들을 선택할 수 있다. 에이전트들의 미래 거동에 대한 명시적 예측들은 환경의 하나 이상의 이전에 생성된 시뮬레이션에 의해 제공될 수 있다. 예를 들어, 시뮬레이션 시스템(300)은 환경의 시뮬레이션들을 반복적으로 생성할 수 있고, 각각의 반복에서, 시뮬레이션 시스템(300)은 선행 반복에서 생성된 시뮬레이션들을 고려하는 환경의 하나 이상의 시뮬레이션을 생성한다. 즉, 주어진 반복에서 시뮬레이션들을 생성하기 위해, 시뮬레이션 시스템은 선행 반복에서 생성된 시뮬레이션들에 의해 표현되는 예측된 에이전트 거동들을 관찰할 수 있다.
시뮬레이션 시스템(300)은 다양한 방식들 중 임의의 것으로 현재 반복에 대한 시뮬레이션을 생성하는 데에 있어서, 선행 반복에서 생성된 시뮬레이션들을 사용할 수 있다. 예를 들어, 각각의 시점에 대해, 시뮬레이션 시스템(300)은 환경 내의 각각의 공간 위치가 선행 반복의 시뮬레이션들 중 임의의 것의 시점에서 에이전트에 의해 점유되었는지를 나타내는 개별 "점유 맵"을 생성할 수 있다. 보다 구체적으로, 시점에 대한 점유 맵은 숫자 값들의 2차원(2D) 어레이로서 표현될 수 있으며, 여기서 어레이의 각각의 컴포넌트는 환경 내의 개별 공간 위치에 대응한다. 어레이의 각각의 컴포넌트의 값은 환경 내의 대응하는 공간 위치가 선행 반복의 시뮬레이션들 중 임의의 것의 시점에서 에이전트에 의해 점유되었는지를 나타낸다. 각각의 반복에서, 시뮬레이션 시스템(300)은 현재 관찰 임베딩들(314)을 생성하는 것의 일부로서, 선행 반복에 대응하는 점유 맵들을 관찰 임베딩 시스템(500)에 대한 추가 입력으로서 제공할 수 있다. 최초 반복(선행 반복이 없음)에서, 시뮬레이션 시스템(300)은 디폴트 점유 맵들, 즉 미리 정의된 디폴트 값들을 갖는 맵들을 사용할 수 있다. 도 4는 시점 T=1, 2, 3에 대한 점유 맵들(400)의 세트의 도시를 제공하며, 여기서 점유 맵들의 컴포넌트들은 환경 내의 대응하는 공간 위치가 선행 반복의 시뮬레이션들 중 하나 이상에서 에이전트에 의해 점유되었음을 나타내기 위해 음영 처리되어 있다.
시뮬레이션 시스템(300)은 실세계 환경과 상호작용하는 실세계 에이전트들의 거동을 특징화하는 기록된 환경 데이터에 기초하여 정책 신경망(306) 및 판별기 신경망(310)을 공동으로 훈련할 수 있다. 기록된 환경 데이터의 일부는 실세계 환경들을 내비게이트하는 차량들의 센서들(예를 들어, 카메라 센서, 라이더 센서, 레이더 센서 및 그와 유사한 것)에 의해 생성된 센서 데이터로부터 도출될 수 있다. 일부 경우들에서, 기록된 환경 데이터는 동일한 환경을 동시에 내비게이트하는 복수의 차량의 센서 데이터로부터 도출될 수 있다. 복수의 차량의 센서들로부터 도출된 센서 데이터를 사용하는 것은, 예를 들어 환경의 일부가 차량들 중 하나의 관점으로부터는 가려지지만 다른 것의 관점으로부터는 가려지지 않는 상황들에서, 기록된 센서 데이터가 환경을 더 포괄적이고 정확하게 특징화하게 할 수 있다. 시뮬레이션 시스템(300)은 "실세계" 환경 상태들의 표현을 생성하기 위해, 기록된 환경 데이터를 프로세싱한다.
기록된 환경 데이터는 예를 들어 지리위치-특정 스냅샷 데이터베이스 또는 지리위치-특정 궤적 데이터베이스에 저장될 수 있다. 지리위치-특정 스냅샷 데이터베이스는 실세계의 특정 지리위치별로 로그 데이터를 그룹화할 수 있고, 그에 의해 동일한 지리위치에서 상이한 시간들에 상이한 차량들에 의해 수집된 로그 데이터는 동일한 지리위치-특정 그룹화 내에 있다. 지리위치-특정 스냅샷 데이터베이스는 주어진 지리위치에 대해 쿼리될 수 있고, 주어진 지리위치에서 생성된 모든 로그 데이터를 제공할 수 있다. 지리위치-특정 궤적 데이터베이스는 기록된 궤적 데이터(즉, 에이전트 궤적들을 특징화함)를 마찬가지로 그룹화하고, 그에 의해 데이터베이스는 주어진 지리위치에 대해 쿼리되고, 주어진 지리위치를 포함하는 모든 궤적을 제공할 수 있다. 지리위치-특정 스냅샷 및 궤적 데이터베이스는 본 명세서에 참조로 포함된 미국 특허 출원 제62/911,183호를 참조하여 더 설명된다. 기록된 데이터를 지리위치-특정 스냅샷 데이터베이스 및 지리위치-특정 궤적 데이터베이스에 저장하면, 정책 신경망 및 판별기 신경망을 훈련하는 데에 사용하기 위한 기록된 환경 데이터의 효율적인 검색을 용이하게 할 수 있다. 예를 들어, 지리위치-특정 데이터베이스들은 동시에 동일 부근에 있던 복수의 차량에 의해 생성된 기록 데이터의 효율적인 검색을 가능하게 할 수 있다. 위에서 설명된 바와 같이, 그러한 데이터는 예를 들어 환경의 일부가 하나의 차량의 관점으로부터는 가려지지만 다른 것의 관점으로부터는 가려지지 않는 상황들에서, 환경을 더 포괄적이고 정확하게 특징화하도록 결합될 수 있다.
시뮬레이션 시스템(300)은 환경 상태들의 표현들이 (i) 정책 네트워크 파라미터들의 현재 값들에 따라 시뮬레이션 시스템에 의해 생성된 시뮬레이션 상태들인지, 또는 (ⅱ) 기록된 환경 데이터로부터 도출된 실세계 환경 상태들인지를 분류하도록 판별기 신경망을 훈련한다. 예를 들어, 시뮬레이션 시스템(300)은 기록된 환경 데이터로부터 도출된 실세계 환경 상태들에 대해 판별 스코어 값 "1"을 생성하고 시뮬레이션 시스템에 의해 생성된 시뮬레이션 상태들에 대해 판별 스코어 값 "0"을 생성하도록 판별기 신경망을 훈련할 수 있다.
시뮬레이션 시스템(300)은 판별기 신경망(310)에 의해 현실적인 것으로, 즉 실세계 환경 상태들로 분류되는 시뮬레이션 상태들을 초래하는 액션 확률 분포들(318)을 생성하도록 정책 신경망(306)을 훈련한다. 예를 들어, 시뮬레이션 시스템(300)은 정책 신경망(306)을 사용하여 현재 시뮬레이션 상태를 확장하는 하나 이상의 후보 후속 시뮬레이션 상태를 생성하고, 판별기 신경망을 사용하여 생성된 후보 후속 시뮬레이션 상태들의 표현들을 프로세싱하여, 대응하는 판별 스코어들을 생성할 수 있다. 다음으로, 시뮬레이션 시스템(300)은 판별 스코어들에 의존하는 목적 함수에 기초하여 정책 신경망 파라미터들의 현재 값들을 조절할 수 있다.
시뮬레이션 시스템(300)은 (i) 정책 네트워크 파라미터들의 최신 값들에 기초하여 생성된 시뮬레이션 상태들을 사용하여 판별기 신경망을 훈련하는 것과, (ⅱ) 판별기 네트워크 파라미터들의 최신 값들에 기초하여 생성된 판별 스코어를 사용하여 정책 신경망을 훈련하는 것 사이에서 교대할 수 있다. 그렇게 하는 것은, 정책 신경망이 현실적인 시뮬레이션 상태들을 초래하는 액션들을 선택하는 것에서 점진적으로 향상되도록 장려하고, 판별기 신경망이 정책 신경망을 사용하여 생성되는 시뮬레이션 상태들의 비현실적인 양태들을 식별하게끔 지속적으로 적응하도록 장려한다. 정책 신경망과 판별기 신경망을 공동으로 훈련하기 위한 예시적인 방법은 J. Ho, S. Ermon: "Generative adversarial imitation learning", 30th Conference on Neural Information Processing Systems (NeurIPS), 2016을 참조하여 설명된다. 정책 신경망과 판별기 신경망을 공동으로 훈련하기 위한 다른 예시적인 방법은 J. Fu, K. Luo, S. Levine: "Learning robust rewards with adversarial inverse reinforcement learning", International Conference on Learning Representations (ICLR), 2018을 참조하여 설명된다.
일부 경우들에서, 실세계 에이전트들에 의해 수행될 수 있는 가능한 액션들의 세트는 시뮬레이션된 에이전트들(즉, 시뮬레이션 시스템에 의해 제어됨)에 의해 수행될 수 있는 가능한 액션들의 세트와 다르다. 예를 들어, 실세계 에이전트들은 연속 범위(예를 들어, [0,2π] 라디안 범위)로부터 가져온 조향 각도 조절들을 수행할 수 있는 한편, 시뮬레이션된 에이전트들은 유한 세트(예를 들어, [0,2π] 라디안 범위를 유한 수의 빈들(bins)로 이산화)로부터 가져온 조향 각도 조절들을 수행하는 것으로 제한될 수 있다. 실세계 에이전트들에 의해 수행될 수 있는 가능한 액션들의 개별 세트들과 시뮬레이션 에이전트들에 의해 수행될 수 있는 가능한 액션들의 개별 세트들 간의 차이는 판별기 신경망의 훈련을 손상시킬 수 있다. 예를 들어, 판별기 신경망은 에이전트들에 의해 수행된 액션들이 연속 또는 유한 세트들로부터 온 것인지를 암시적으로 식별함으로써, 시뮬레이션된 상태들과 실세계 환경 상태들을 판별하도록 학습할 수 있다. 이러한 결과를 피하기 위해, 시뮬레이션은 기록된 환경 데이터를 미리 프로세싱하여, 실세계 에이전트들에 의해 수행된 액션들 각각을 시뮬레이션된 에이전트들에 의해 수행될 수 있는 가능한 액션들의 세트로부터의 가장 가까운 액션들에 매핑할 수 있다.
도 5는 예시적인 관찰 임베딩 시스템(500)의 블록도이다. 관찰 임베딩 시스템(500)은 아래에 설명된 시스템들, 컴포넌트들 및 기술들이 구현되는 하나 이상의 위치에서의 하나 이상의 컴퓨터 상의 컴퓨터 프로그램들로서 구현되는 시스템의 예이다.
관찰 임베딩 시스템(500)은 환경을 특징화하는 환경 데이터의 세트(502), 및 환경과 상호작용하는 복수의 에이전트 각각의 현재 상태를 특징화하는 현재 시뮬레이션 상태(504)를 프로세싱하여, 각각의 에이전트에 대한 개별 관찰 임베딩(506)을 생성하도록 구성된다.
관찰 임베딩 시스템(500)은 임베딩 신경망(508)을 사용하여 환경 데이터(502)를 프로세싱하여 환경 임베딩(510), 즉 환경 데이터(502)의 대안적인 표현을 생성한다. 환경 데이터(502)는 에이전트들에 의해 이동된 도로의 구조를 나타내는 도로 그래프, 환경 내의 객체들의 상태들(예를 들어, 신호등 상태들), 현재 시점까지의 에이전트들의 궤적들, 에이전트들의 현재 상태들, 및 에이전트들의 예측된 미래 궤적들을 포함할 수 있다. 환경 임베딩(510)은 포인트 임베딩들의 컬렉션으로 표현될 수 있으며, 여기서 각각의 포인트 임베딩은 환경 내의 개별 공간 위치에 대응하는 숫자 값들의 정렬된 컬렉션이다. 예를 들어, 환경 임베딩(510)은 임베딩들의 어레이(예를 들어, 256-차원 임베딩)로서 표현될 수 있고, 여기서 각각의 임베딩은 환경 내의 개별 2D 또는 3D 공간 위치(예를 들어, (x,y) 또는 (x,y,z) 좌표들에 의해 각각 표현됨)에 대응한다. 임베딩 신경망은 그것이 설명된 기능을 수행할 수 있게 하는 임의의 적절한 신경망 아키텍처(예를 들어, 컨볼루션 신경망 아키텍처)를 가질 수 있다.
임베딩 신경망(508)은, 예를 들어 정책 및 판별기 신경망들을 통해 그래디언트들을 임베딩 신경망(508)으로 역전파함으로써, 시뮬레이션 시스템(도 3을 참조하여 설명됨)의 정책 신경망 및 판별기 신경망과 함께 공동으로 훈련될 수 있다. 임베딩 신경망(508)은 또한 예를 들어 환경 임베딩(510)을 프로세싱함으로써 환경 데이터(502)가 얼마나 정확하게 재구성될 수 있는지를 측정하는, 환경 임베딩(510)에 직접적으로 의존하는 목적 함수를 사용하여 훈련될 수 있다.
각각의 에이전트에 대해, 관찰 임베딩 시스템(500)은 환경 임베딩(510)의 각각의 포인트 임베딩에 연관된 개별 공간 위치의 좌표들을 미리 정의된 "전역적" 좌표계로부터 "에이전트 중심" 좌표계로 변환하기 위해 좌표 변환 엔진(512)을 사용한다. 에이전트 중심 좌표계는 에이전트의 상태를 기준으로 정의된다. 예를 들어, 좌표 변환 엔진(512)은 포인트 임베딩들의 공간 좌표들이 에이전트의 공간 위치의 중심이 되도록 그것들에 병진 동작을 적용할 수 있다. 다른 예로서, 좌표 변환 엔진(512)은 회전 동작을 적용하여, 에이전트의 진로방향을 에이전트 중심 좌표계에서의 미리 정의된 방향에 매핑할 수 있다. 에이전트 중심 좌표계에서 포인트 임베딩들의 세트 및 이들의 연관된 공간 위치는 "에이전트 중심 임베딩"(514)으로서 지칭된다. 환경 임베딩(510)이 아니라 에이전트 중심 임베딩(514)에 기초하여 에이전트에 대한 관찰 임베딩(506)을 생성하는 것은 시뮬레이션 시스템의 정책 신경망 및 판별기 신경망의 훈련을 용이하게 한다.
관찰 임베딩 시스템(500)은 에이전트에 대응하는 에이전트 중심 임베딩(514)에 기초하여 각각의 에이전트에 대한 개별 관찰 임베딩(506)을 생성한다. 예를 들어, 에이전트에 대한 관찰 임베딩(506)을 생성하기 위해, 관찰 임베딩 시스템(500)은 대응하는 에이전트 중심 임베딩(514)에 공간 풀링 동작(spatial pooling operation)을 적용한 다음, 하나 이상의 신경망 계층을 사용하여 풀링된 에이전트 중심 임베딩을 프로세싱하여 관찰 임베딩(506)을 생성할 수 있다.
일부 경우들에서, 환경의 특정 영역들이 에이전트에게 보이지 않을 수 있다. 예를 들어, 환경의 영역은, 그 영역이 다른 에이전트 또는 환경 내의 정적 객체(예를 들어, 안전 장벽 또는 나무)에 의해 가려진 결과로서 에이전트에게 보이지 않을 수 있다. 임의로, 관찰 임베딩 시스템(500)은, 예를 들어 포인트 임베딩들을 디폴트(미리 정의된) 임베딩들로 대체함으로써, 에이전트에게 보이지 않는 환경의 영역들에 대응하는 포인트 임베딩들을 에이전트에 대한 에이전트 중심 임베딩(514)으로부터 제거할 수 있다. 관찰 임베딩 시스템(500)은, 예를 들어, 환경의 영역에 대한 에이전트의 시선이 (예를 들어, 다른 에이전트에 의해 또는 환경 내의 정적 객체에 의해) 차단된 경우, 환경의 영역이 에이전트에게 보이지 않는다고 결정할 수 있다. 에이전트에게 보이는 환경의 영역들로부터의 데이터에만 기초하여 관찰 임베딩들(506)을 생성하면, 시뮬레이션 시스템의 정책 신경망은 실세계 에이전트들의 거동을 더 현실적으로 시뮬레이션할 수 있다.
일부 구현들에서, 관찰 임베딩 시스템(500)은 환경 임베딩(510)을 생성하기 위해 임베딩 신경망(508)을 사용하는 것이 아니라, 수동으로 정의된 규칙들의 세트를 사용하여 환경 데이터(502)로부터 환경 임베딩 데이터(510)를 생성할 수 있다.
도 6은 차량(600)의 예시적인 온보드 시스템(602)의 블록도이다. 온보드 시스템(602)은 하드웨어 및 소프트웨어 컴포넌트들로 구성되며, 이들 중 일부 또는 전부는 물리적으로 차량(600)에 탑재되어 위치된다. 온보드 시스템(602)은 차량의 미래 궤적을 계획하고 차량에 의해 수행될 액션들을 선택하기 위해 계획 시스템(604)을 사용한다. 본 명세서에 설명된 시뮬레이션 시스템은 아래에서 더 상세히 설명되는 바와 같이 계획 시스템(604)을 훈련하고 테스트하는 데 사용될 수 있다.
온보드 시스템(602)은 온보드 시스템(602)이 차량(600) 부근의 환경을 "볼" 수 있게 하는 센서 데이터(608)를 생성하는 센서 시스템(606)을 포함한다. 더 구체적으로, 센서 시스템(606)은 하나 이상의 센서를 포함하고, 이들 중 일부는 차량(600) 부근의 환경으로부터의 전자기 복사의 반사들을 수신하도록 구성된다. 예를 들어, 센서 시스템(606)은 레이저 광의 반사들을 검출하도록 구성된 하나 이상의 레이저 센서(예를 들어, 라이더 레이저 센서)를 포함할 수 있다. 다른 예로서, 센서 시스템(606)은 전파의 반사들을 검출하도록 구성된 하나 이상의 레이더 센서를 포함할 수 있다. 다른 예로서, 센서 시스템(606)은 가시광의 반사들을 검출하도록 구성된 하나 이상의 카메라 센서를 포함할 수 있다.
센서 시스템(606)은 반사된 복사에 의해 이동된 거리들, 방향들 및 각도들을 나타낼 수 있는 센서 데이터를 지속적으로(즉, 복수의 시점 각각에서) 캡처한다. 예를 들어, 센서 시스템(606) 내의 센서는 전자기 복사의 하나 이상의 펄스를 특정 방향으로 전송할 수 있고, 임의의 반사들의 강도는 물론, 반사가 수신된 시간을 측정할 수 있다.
계획 시스템(604)은 (다른 데이터, 예를 들어 도로 그래프 데이터에 더하여) 센서 데이터(608)를 사용하여 차량의 미래 궤적을 계획하는 계획 결정을 생성하고, 특히, 차량에 의해 수행될 액션들을 선택하도록 구성된다. 계획 시스템(604)에 의해 선택된 액션들(610)은 차량(600)의 제어 시스템(612)에 제공될 수 있다. 차량의 제어 시스템(612)은 계획 시스템에 의해 선택된 액션들(610)을 구현함으로써 차량의 동작의 일부 또는 전부를 제어할 수 있다. 예를 들어, 계획 시스템(604)이 차량의 속도가 감소되어야 한다고 지정하는 액션을 선택하는 것에 응답하여, 제어 시스템(612)은 전자 신호를 차량의 제동 제어 유닛에 전송할 수 있다. 전자 신호를 수신하는 것에 응답하여, 제동 제어 유닛은 차량의 제동을 기계적으로 적용할 수 있다.
훈련된 후, 시뮬레이션 시스템(300)은 계획 시스템(604)의 효율성을 안전하고 효율적으로 테스트하는 데 사용될 수 있다. 예를 들어, 계획 시스템(604)은 시뮬레이션된 환경에서 에이전트를 제어하는 데 사용될 수 있는 한편, 시뮬레이션된 환경 내의 하나 이상의 다른 에이전트는 (앞에서 설명된 바와 같이 정책 및 판별기 신경망들을 사용하여) 시뮬레이션 시스템(300)에 의해 제어된다. 계획 시스템 내의 잠재적 버그들(예를 들어, 계획 시스템이 시뮬레이션된 에이전트가 안전하지 않게 동작하도록 하는 액션들을 선택하는 경우)은 많은 수의 시뮬레이션을 롤아웃하고 계획 시스템이 실패한 위치를 식별함으로써 식별될 수 있다.
계획 시스템(604)은 머신 러닝 기술을 사용하여 시뮬레이션 시스템(300)과 공동으로 훈련될 수 있다. 예를 들어, 계획 시스템(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). 현재 시간 스텝이 제1 시간 스텝인 경우, 시스템은 실세계 환경의 상태를 특징화하는 기록된 환경 데이터의 세트로부터 현재 시뮬레이션 상태를 획득할 수 있다. 현재 시간 스텝이 제1 시간 스텝 이후인 경우, 시스템은 선행 시간 스텝에서 현재 시간 스텝에 대해 생성된 시뮬레이션 상태들을 획득할 수 있다. 일반적으로, 시간 스텝에 대한 시뮬레이션 상태는 시간 스텝에서의 각각의 에이전트의 개별 상태를 지정한다. 일례에서, 에이전트들은 차량들이고, 시간 스텝에서의 에이전트의 상태는 시간 스텝에서의 에이전트의 위치(예를 들어, 공간 위치 및 진로방향)와 에이전트의 모션(예를 들어, 속도 및 가속도)을 지정한다.
시스템은 현재 시뮬레이션 상태들에 기초하여 후속 시간 스텝에 대한 후보 후속 시뮬레이션 상태들의 세트를 생성한다(704). 현재 시뮬레이션 상태를 확장하는 후보 후속 시뮬레이션 상태를 생성하기 위해, 시스템은 각각의 에이전트에 대한 가능한 액션들의 세트에 걸친 개별 확률 분포를 생성한다. 시스템은 정책 신경망을 사용하여 환경에서의 에이전트의 현재 상태의 표현(때로는 "관찰 임베딩"이라고 지칭됨)을 프로세싱함으로써, 에이전트에 대한 액션 확률 분포를 생성할 수 있다. 다음으로, 시스템은 에이전트에 대응하는 확률 분포를 사용하여 각각의 에이전트에 대한 개별 액션을 샘플링하고, 에이전트가 모션 모델을 사용하여 현재 시간 스텝에서 샘플링된 액션을 수행하는 경우 후속 시간 스텝에서의 에이전트의 후속 상태를 결정한다. 가능한 액션들의 세트는 예를 들어 에이전트의 조향 각도를 조절하는 액션들 및 에이전트의 가속도를 조절하는 액션들을 포함할 수 있다.
시스템은 각각의 후보 후속 시뮬레이션 상태에 대한 개별 판별 스코어를 생성한다(706). 후보 후속 시뮬레이션 상태에 대한 판별 스코어는 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화한다. 시스템은 판별기 신경망을 사용하여 후보 후속 시뮬레이션 상태의 표현을 프로세싱함으로써 후보 후속 시뮬레이션 상태에 대한 판별 스코어를 생성할 수 있다. 판별기 신경망은 환경 상태가 실세계 환경 상태인 경우 환경 상태를 현실적인 것으로 특징화하는 판별 스코어들을 생성하도록 훈련된다. 시스템은 각각의 에이전트에 대해 후보 후속 시뮬레이션 상태에 대응하는 후속 시간 스텝에서의 에이전트의 후속 상태의 표현을 획득함으로써 후보 후속 시뮬레이션 상태의 표현을 생성할 수 있다. 후보 후속 시뮬레이션 상태에 대한 판별 스코어를 생성하기 위해, 시스템은 판별기 신경망을 사용하여 후보 후속 시뮬레이션 상태에 대응하는 에이전트의 후속 상태의 표현을 프로세싱함으로써 각각의 에이전트에 대한 에이전트-특정 판별 스코어를 생성할 수 있다. 에이전트에 대한 에이전트-특정 판별 스코어는 에이전트의 후속 스테이지가 현실적인 에이전트 상태일 가능성을 특징화한다. 다음으로, 시스템은 후보 후속 시뮬레이션 상태에 대한 에이전트-특정 판별 스코어에 기초하여, 예를 들어 에이전트-특정 판별 스코어의 최소값들에 기초하여 후보 후속 시뮬레이션 상태에 대한 전체 판별 스코어들을 생성할 수 있다.
시스템은 판별 스코어들에 기초하여 후속 시간 스텝에 대한 시뮬레이션 상태들로서 후보 후속 시뮬레이션 상태들 중 하나 이상을 선택한다(708). 예를 들어, 시스템은 후속 시간 스텝에 대한 시뮬레이션 상태들로서 가장 높은 판별 스코어들을 갖는 미리 정의된 수의 후보 후속 시뮬레이션 상태들을 선택할 수 있다. 현재 시간 스텝이 최종 시간 스텝이 아닌 경우, 시스템은 후속 시간 스텝으로 진행하고 단계(702)로 돌아갈 수 있다. 현재 시간 스텝이 최종 시간 스텝인 경우, 시스템은 각각의 시간 스텝에 대해 생성된 시뮬레이션 상태들에 기초하여 환경의 하나 이상의 시뮬레이션을 출력할 수 있다.
본 명세서는 시스템들 및 컴퓨터 프로그램 컴포넌트들과 관련하여 "구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터의 시스템이 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은, 동작 시에 시스템으로 하여금 동작들 또는 액션들을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 시스템에 설치되었음을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 프로세싱 장치에 의해 실행될 때 장치로 하여금 동작들 또는 액션들을 수행하게 하는 명령어들을 포함한다는 것을 의미한다.
본 명세서에 설명된 주제 및 기능적 동작들의 실시예들은 디지털 전자 회로, 유형으로(tangibly) 구현된 컴퓨터 소프트웨어 또는 펌웨어, 본 명세서에 개시된 구조물들 및 그 구조적 등가물을 포함하는 컴퓨터 하드웨어, 또는 그것들의 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 설명된 주제의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉, 데이터 프로세싱 장치에 의한 실행을 위해 또는 그것의 동작을 제어하기 위해 유형의 비-일시적 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 저장 매체는 머신 판독가능한 저장 디바이스, 머신 판독가능한 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령어들은, 인공적으로 생성된 전파 신호, 예를 들어 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 장치에 전송할 정보를 인코딩하도록 생성되는 머신 생성된 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있다.
용어 "데이터 프로세싱 장치"는 데이터 프로세싱 하드웨어를 지칭하고, 예로서 프로그래밍가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함하는, 데이터를 프로세싱하기 위한 모든 종류들의 장치, 디바이스들, 및 머신들을 포괄한다. 장치는 또한, 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)일 수 있거나 또는 이들을 더 포함할 수 있다. 장치는 임의로, 하드웨어에 부가적으로, 컴퓨터 프로그램들을 위한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 것의 조합을 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 스크립트, 또는 코드로도 지칭되거나 설명될 수 있는 컴퓨터 프로그램은 컴파일링된 또는 해석된 언어들, 또는 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 그것은 독립형 프로그램으로서 배치하는 것, 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적합한 다른 유닛으로서 배치하는 것을 포함하는 임의의 형태로 배치될 수 있다. 프로그램은 파일 시스템 내의 파일에 대응할 수도 있지만, 그러할 필요가 없을 수도 있다. 프로그램은 다른 프로그램들 또는 데이터, 예를 들어, 마크업 언어 문서에 저장되는 하나 이상의 스크립트들을 보유하는 파일의 일 부분에, 대상 프로그램에 전용되는 단일 파일에, 또는 복수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램들, 또는 코드의 부분들을 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치되거나 또는 다수의 사이트들에 걸쳐 분산되고 데이터 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들 상에서 또는 하나의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에서 "엔진"이라는 용어는 하나 이상의 특정 기능을 수행하도록 프로그래밍된 소프트웨어 기반 시스템, 서브시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로, 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 컴포넌트로 구현될 것이다. 일부 경우들에서, 하나 이상의 컴퓨터가 특정 엔진 전용일 것이고; 다른 경우들에서, 복수의 엔진이 동일한 컴퓨터 또는 컴퓨터들에 설치되어 실행될 수 있다.
본 명세서에서 설명되는 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능 컴퓨터에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한, 특수 목적 로직 회로, 예를 들어, FPGA 또는 ASIC에 의해, 또는 특수 목적 로직 회로와 하나 이상의 프로그래밍된 컴퓨터들의 조합에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 범용 또는 특수 목적 마이크로프로세서들 또는 이들 양측 모두, 또는 임의의 다른 종류의 중앙 프로세싱 유닛에 기초할 수 있다. 일반적으로, 중앙 프로세싱 유닛은 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이들 양측 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은, 명령어들을 수행 또는 실행하기 위한 중앙 프로세싱 유닛, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 중앙 프로세싱 유닛 및 메모리는 특수 목적 로직 회로에 의해 보충되거나 또는 그에 포함될 수 있다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어, 자기, 광자기 디스크들, 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 또는 이들로 데이터를 전송하기 위해 동작적으로 결합되거나, 또는 이들 양측 모두로 될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요가 없다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 예로 들자면, 모바일 전화기, 개인 휴대 정보 단말기(personal digital assistant)(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(Global Positioning System)(GPS) 수신기, 또는 휴대용 저장 디바이스, 예를 들어, 범용 직렬 버스(universal serial bus)(USB) 플래시 드라이브에 내장될 수 있다.
컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체들은, 예로서 반도체 메모리 디바이스들, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에서 설명되는 주제의 실시예들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스, 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들이 또한 사용자와의 상호작용을 제공하는 데 사용될 수 있고; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어, 시각 피드백, 청각 피드백, 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성, 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 부가적으로, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 전송하고 디바이스로부터 문서들을 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써 사용자와 상호작용할 수 있다. 또한, 컴퓨터는, 텍스트 메시지들 또는 다른 형태들의 메시지를, 메시징 애플리케이션을 실행하고 있는 개인용 디바이스, 예를 들어, 스마트폰에 전송하고, 그에 대한 답으로, 사용자로부터 응답 메시지들을 수신함으로써 사용자와 상호작용할 수 있다.
머신 러닝 모델들을 구현하기 위한 데이터 프로세싱 장치는 또한 예를 들어 머신 러닝 훈련 또는 생산, 즉 추론, 워크로드의 공통 및 계산 집약적 부분들을 프로세싱하기 위한 특수 목적 하드웨어 가속기 유닛들을 포함할 수 있다.
머신 러닝 모델들은 머신 러닝 프레임워크, 예를 들어 TensorFlow 프레임워크, Microsoft Cognitive Toolkit 프레임워크, Apache Singa 프레임워크, 또는 Apache MXNet 프레임워크를 사용하여 구현 및 배포될 수 있다.
본 명세서에 설명된 주제의 실시예들은 예를 들어 데이터 서버로서의 백엔드 컴포넌트를 포함하거나, 미들웨어 컴포넌트, 예를 들어 애플리케이션 서버를 포함하거나, 프론트 엔드 컴포넌트, 예를 들어 그래픽 사용자 인터페이스, 웹 브라우저, 또는 사용자가 이를 통해 본 명세서에 설명된 주제의 구현과 상호작용할 수 있는 앱을 갖는 클라이언트 컴퓨터를 포함하거나, 하나 이상의 이러한 백엔드, 미들웨어 또는 프론트엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 데이터 통신, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예들은 근거리 네트워크(LAN) 및 광역 네트워크(WAN), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 멀리 떨어져 있으며, 전형적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들 덕분에 발생한다. 일부 실시예들에서, 서버는 예를 들어, 클라이언트로서 작용하는 디바이스와 상호작용하는 사용자에게 데이터를 디스플레이하고 그러한 사용자로부터 사용자 입력을 수신하기 위해, 데이터, 예를 들어 HTML 페이지를 사용자 디바이스에 전송한다. 사용자 디바이스에서 생성된 데이터, 예를 들어 사용자 상호작용의 결과는 디바이스로부터 서버에서 수신될 수 있다.
본 명세서는 많은 특정 구현 세부사항들을 포함하지만, 이들은 임의의 발명의 범주에 대한 또는 청구될 수도 있는 것의 범주에 대한 제한들로서 해석되어서는 안 되고, 오히려 특정 발명들의 특정 실시예들에 특정될 수도 있는 특징들의 설명들로서 해석되어야 한다. 별개의 실시예들의 맥락에서 본 명세서에서 설명되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명되는 다양한 특징들은 또한 다수의 실시예들에서 별개로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합들로 작용하는 것으로서 상술되고 심지어 초기에는 그와 같이 청구될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우들에서 그 조합으로부터 삭제될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
마찬가지로, 동작들이 특정 순서로 도면들에 도시되고 청구항들에 기재되어 있지만, 이것은, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되는 것, 또는 예시된 모든 동작들이 수행되는 것을 요구하는 것으로서 이해되어서는 안 된다. 특정 상황들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수도 있다. 더욱이, 상술된 실시예들에서의 다양한 시스템 모듈들 및 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로서 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 또는 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다.
발명의 주제의 특정 실시예들이 설명되었다. 다른 실시예들이 이하의 청구항들의 범주 내에 있다. 예를 들어, 청구항들에서 열거된 액션들은 상이한 순서로 수행되고 여전히 바람직한 결과들을 달성할 수 있다. 일례로서, 첨부 도면들에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해 도시된 특정 순서, 또는 순차적인 순서를 반드시 요구하지는 않는다. 일부 경우들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수도 있다.

Claims (16)

  1. 복수의 시간 스텝에 걸쳐 복수의 에이전트에 의해 상호작용되고 있는 환경의 시뮬레이션을 생성하기 위해 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법으로서,
    상기 시뮬레이션은 각각의 시간 스텝에 대해 시간 스텝에서의 각각의 에이전트의 개별 상태를 지정하는 개별 시뮬레이션 상태를 포함하며, 상기 방법은 각각의 시간 스텝에 대해:
    현재 시간 스텝에 대한 현재 시뮬레이션 상태를 획득하는 단계;
    상기 현재 시뮬레이션 상태에 기초하여 후속 시간 스텝에 대한 복수의 후보 후속 시뮬레이션 상태를 생성하는 단계 - 각각의 후보 후속 시뮬레이션 상태를 생성하는 단계는:
    각각의 에이전트에 대해, 에이전트에 의해 수행될 수 있는 가능한 액션들의 세트로부터 개별 액션을 샘플링하는 단계, 및
    각각의 에이전트에 대해, 에이전트가 상기 현재 시간 스텝에서 대응하는 샘플링된 액션을 수행하는 경우, 상기 후속 시간 스텝에서 상기 에이전트의 개별 후속 상태를 결정하는 단계
    를 포함함 -;
    각각의 후보 후속 시뮬레이션 상태에 대해, 상기 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태(realistic simulation state)일 가능성을 특징화하는 판별 스코어를 결정하는 단계; 및
    상기 후보 후속 시뮬레이션 상태들에 대한 판별 스코어들에 기초하여, 상기 후속 시간 스텝에 대한 시뮬레이션 상태로서 후보 후속 시뮬레이션 상태를 선택하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 에이전트들은 상기 환경 내의 차량들인, 방법.
  3. 제2항에 있어서, 상기 에이전트에 의해 수행될 수 있는 가능한 액션들의 세트는 상기 에이전트의 조향 각도를 조절하는 액션들을 포함하는, 방법.
  4. 제2항 또는 제3항에 있어서, 상기 에이전트에 의해 수행될 수 있는 가능한 액션들의 세트는 상기 에이전트의 가속도를 조절하는 액션들을 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 시간 스텝에서의 에이전트의 상태는 (i) 상기 시간 스텝에서 상기 에이전트의 위치, 및 (ⅱ) 상기 시간 스텝에서의 상기 에이전트의 모션을 포함하는, 방법.
  6. 제5항에 있어서, 상기 에이전트의 위치는 (i) 상기 환경에서의 상기 에이전트의 공간 위치, 및 (ⅱ) 상기 환경에서의 상기 에이전트의 진로방향(heading)을 포함하는, 방법.
  7. 제5항 또는 제6항에 있어서, 상기 에이전트의 모션은 (i) 상기 에이전트의 속도, 및 (ⅱ) 상기 에이전트의 가속도를 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 각각의 에이전트에 대해:
    상기 환경에서의 에이전트의 현재 상태의 표현을 획득하는 단계; 및
    상기 에이전트에 대한 가능한 액션들의 세트에 걸친 대응하는 확률 분포를 생성하기 위해, 정책 신경망(policy neural network)을 사용하여 상기 환경에서 에이전트의 현재 상태의 표현을 프로세싱하는 단계
    를 더 포함하고, 각각의 에이전트에 대해, 가능한 액션들의 세트로부터 개별 액션을 샘플링하는 단계는, 각각의 에이전트에 대해:
    상기 에이전트에 대한 가능한 액션들의 세트에 걸친 확률 분포에 따라, 상기 가능한 액션들의 세트로부터 액션을 샘플링하는 단계를 포함하는, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 각각의 에이전트에 대해, 상기 에이전트가 상기 현재 시간 스텝에서 대응하는 샘플링된 액션을 수행하는 경우, 상기 후속 시간 스텝에서 상기 에이전트의 개별 후속 상태를 결정하는 단계는, 각각의 에이전트에 대해:
    상기 후속 시간 스텝에서의 상기 에이전트의 후속 상태를 생성하기 위해, 모션 모델을 사용하여 (i) 상기 에이전트의 현재 상태 및 (ⅱ) 상기 에이전트에 대한 샘플링된 액션을 특징화하는 데이터를 프로세싱하는 단계를 포함하는, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어를 결정하는 단계는:
    상기 후보 후속 시뮬레이션 상태의 표현을 획득하는 단계; 및
    상기 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어를 생성하기 위해, 판별기 신경망을 사용하여 상기 후보 후속 시뮬레이션 상태의 표현을 프로세싱하는 단계
    를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 후보 후속 시뮬레이션 상태의 표현을 획득하는 단계는:
    각각의 에이전트에 대해, 상기 후보 후속 시뮬레이션 상태에 대응하는 상기 후속 시간 스텝에서의 상기 에이전트의 후속 상태의 표현을 획득하는 단계를 포함하고,
    상기 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어를 결정하기 위해, 판별기 신경망을 사용하여 상기 후보 후속 시뮬레이션 상태의 표현을 프로세싱하는 단계는:
    각각의 에이전트에 대해, 상기 에이전트의 후속 상태가 현실적인 에이전트 상태일 가능성을 특징화하는 에이전트-특정 판별 스코어를 생성하기 위해, 상기 판별기 신경망을 사용하여 상기 후보 후속 시뮬레이션 상태에 대응하는 상기 후속 시간 스텝에서의 상기 에이전트의 후속 상태의 표현을 프로세싱하는 단계; 및
    상기 에이전트-특정 판별 스코어들에 기초하여 상기 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어를 생성하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서, 상기 에이전트-특정 판별 스코어들에 기초하여 상기 후보 후속 시뮬레이션 상태가 현실적인 시뮬레이션 상태일 가능성을 특징화하는 판별 스코어를 생성하는 단계는:
    상기 에이전트-특정 판별 스코어들의 최소값을 계산하는 단계를 포함하는, 방법.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서, 상기 판별기 신경망은 환경 상태가 실세계 환경 상태인 경우 상기 환경 상태를 현실적이라고 특징화하는 판별 스코어들을 생성하도록 훈련되는, 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 후보 후속 시뮬레이션 상태들에 대한 판별 스코어들에 기초하여, 상기 후속 시간 스텝에 대한 시뮬레이션 상태로서 후보 후속 시뮬레이션 상태를 선택하는 단계는:
    가장 높은 판별 스코어를 갖는 후보 후속 시뮬레이션 상태를 상기 후속 시간 스텝을 위한 시뮬레이션 상태로서 선택하는 단계를 포함하는, 방법.
  15. 시스템으로서,
    하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터에 통신가능하게 결합된 하나 이상의 저장 디바이스
    를 포함하고, 상기 하나 이상의 저장 디바이스는 상기 하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금, 제1항 내지 제14항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는 명령어들을 저장하는, 시스템.
  16. 명령어들을 저장하는 하나 이상의 비-일시적 컴퓨터 저장 매체로서,
    상기 명령어들은 하나 이상의 컴퓨터에 의해 실행될 때 상기 하나 이상의 컴퓨터로 하여금 제1항 내지 제14항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는, 하나 이상의 비-일시적 컴퓨터 저장 매체.
KR1020227011126A 2019-10-07 2020-10-05 멀티-에이전트 시뮬레이션들 KR20220058598A (ko)

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
KR20220058598A true KR20220058598A (ko) 2022-05-09

Family

ID=75273612

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227011126A KR20220058598A (ko) 2019-10-07 2020-10-05 멀티-에이전트 시뮬레이션들

Country Status (6)

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

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117521725A (zh) * 2016-11-04 2024-02-06 渊慧科技有限公司 加强学习系统
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
US11858514B2 (en) 2021-03-30 2024-01-02 Zoox, Inc. Top-down scene discrimination
US11810225B2 (en) * 2021-03-30 2023-11-07 Zoox, Inc. Top-down scene generation
JP2022187780A (ja) * 2021-06-08 2022-12-20 トヨタ自動車株式会社 マルチエージェントシミュレーションシステム及びマルチエージェントシミュレーション方法
JP7491269B2 (ja) * 2021-06-08 2024-05-28 トヨタ自動車株式会社 マルチエージェントシミュレーションシステム
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
CN108885722A (zh) * 2016-03-25 2018-11-23 索尼公司 信息处理设备
DE202016004628U1 (de) 2016-07-27 2016-09-23 Google Inc. Durchqueren einer Umgebungsstatusstruktur unter Verwendung neuronaler Netze
WO2018083669A1 (en) 2016-11-04 2018-05-11 Deepmind Technologies Limited Recurrent neural networks
US10665039B2 (en) 2016-12-09 2020-05-26 Traffilog Ltd. Distributed monitoring and control of a vehicle
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
JP7160957B2 (ja) * 2018-09-27 2022-10-25 ディープマインド テクノロジーズ リミテッド モデルフリー強化学習のためのスタック型畳み込み長/短期メモリ
US11772663B2 (en) * 2018-12-10 2023-10-03 Perceptive Automata, Inc. Neural network based modeling and simulation of non-stationary traffic objects for testing and development of autonomous vehicle systems
DE112020001642T5 (de) * 2019-03-29 2022-03-10 Intel Corporation Autonomes Fahrzeugsystem
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
EP4022514A1 (en) 2022-07-06
WO2021071772A1 (en) 2021-04-15
US11645518B2 (en) 2023-05-09
CN114514524A (zh) 2022-05-17
JP2022550512A (ja) 2022-12-02
US20230409903A1 (en) 2023-12-21
JP7345639B2 (ja) 2023-09-15
US20210104171A1 (en) 2021-04-08
EP4022514A4 (en) 2023-07-12

Similar Documents

Publication Publication Date Title
JP7345639B2 (ja) マルチエージェントシミュレーション
US11618481B2 (en) Agent trajectory prediction using anchor trajectories
JP7239703B2 (ja) 領域外コンテキストを用いたオブジェクト分類
CN112771542B (zh) 以学习的视觉实体为基础的强化学习神经网络
WO2021096776A1 (en) Simulating diverse long-term future trajectories in road scenes
KR20220054358A (ko) 점유 예측 뉴럴 네트워크들
CN114830138A (zh) 训练轨迹评分神经网络以准确分配分数
JP2022511968A (ja) 開放された車両ドアを検出するための分類器のトレーニング
US20230150550A1 (en) Pedestrian behavior prediction with 3d human keypoints
US20210150199A1 (en) Spatio-temporal-interactive networks
CN114580702A (zh) 多模态多代理轨迹预测
EP4060626A1 (en) Agent trajectory prediction using context-sensitive fusion
US20230082079A1 (en) Training agent trajectory prediction neural networks using distillation
JP7446416B2 (ja) 時空間ポーズ/オブジェクトデータベース
US20230082365A1 (en) Generating simulated agent trajectories using parallel beam search
US11834070B2 (en) Probabilistic simulation sampling from agent data
US20220289209A1 (en) Evaluating multi-modal trajectory predictions for autonomous driving
US12030523B2 (en) Agent trajectory planning using neural networks
US20230041501A1 (en) Policy neural network training using a privileged expert policy
US20230040006A1 (en) Agent trajectory planning using neural networks
US20220073085A1 (en) Knowledge distillation for autonomous vehicles
Sandsjö et al. Edge Case searching for Autonomous Vehicles
WO2024059354A1 (en) Safety evaluation system for intelligent vehicle