KR20210060519A - 디바이스 제어를 위한 태스크 임베딩 - Google Patents
디바이스 제어를 위한 태스크 임베딩 Download PDFInfo
- Publication number
- KR20210060519A KR20210060519A KR1020217010651A KR20217010651A KR20210060519A KR 20210060519 A KR20210060519 A KR 20210060519A KR 1020217010651 A KR1020217010651 A KR 1020217010651A KR 20217010651 A KR20217010651 A KR 20217010651A KR 20210060519 A KR20210060519 A KR 20210060519A
- Authority
- KR
- South Korea
- Prior art keywords
- task
- embedding
- network
- training
- control
- Prior art date
Links
- 238000012549 training Methods 0.000 claims description 186
- 238000000034 method Methods 0.000 claims description 54
- 230000009471 action Effects 0.000 claims description 41
- 230000001953 sensory effect Effects 0.000 claims description 33
- 230000033001 locomotion Effects 0.000 claims description 30
- 230000000875 corresponding effect Effects 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 17
- 238000011524 similarity measure Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 14
- 238000004088 simulation Methods 0.000 claims description 10
- 230000001276 controlling effect Effects 0.000 claims description 7
- 238000005070 sampling Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 63
- 239000013598 vector Substances 0.000 description 27
- 238000012360 testing method Methods 0.000 description 14
- 238000013528 artificial neural network Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000013527 convolutional neural network Methods 0.000 description 12
- 239000012636 effector Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 230000003278 mimic effect Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/008—Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G06N3/0454—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39376—Hierarchical, learning, recognition and skill level and adaptation servo level
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Fuzzy Systems (AREA)
- Manipulator (AREA)
Abstract
태스크의 하나 이상의 데모들을 수신하고 태스크 임베딩을 생성하기 위한 태스크 임베딩 네트워크를 포함한 로봇 디바이스를 위한 제어 시스템. 태스크 임베딩은 태스크의 표현을 포함하며, 각각의 데모는 태스크의 수행에 대한 하나 이상의 관찰들을 포함한다. 제어 시스템은 태스크 임베딩 네트워크로부터 태스크 임베딩을 수신하며 로봇 디바이스에 대한 각각의 제어 지시들에 로봇 디바이스의 복수의 연속적인 관찰들을 매핑하기 위한 정책을 이용하기 위해 제어 네트워크를 포함한다. 제어 네트워크에 의해 이용된 정책은 태스크 임베딩 네트워크로부터의 태스크 임베딩을 사용하여 로봇 디바이스의 복수의 연속적인 관찰들에 걸쳐 조절된다.
Description
본 발명은 여기에서 태스크 임베딩으로 불리우는, 태스크의 표현을 사용하여, 로봇 디바이스와 같은, 디바이스의 제어에 관한 것이다. 특정한 실시예들에서, 본 발명은 태스크가 디바이스에 의해 수행될 수 있게 하는 방식으로 태스크의 데모에 대한 적어도 하나의 관찰을 프로세싱하는 것에 관한 것이다. 본 발명은, 전적으로는 아니지만, 모방 학습 및 퓨-샷 학습의 분야에 특히 관련이 있다.
인간들 및 동물들은 매우 적은 예들로부터 새로운 정보를 빠르게 학습할 수 있으며, 겉보기엔 그들의 삶들 전체에 걸쳐 '배우기 위한 방법을 배우기' 위한 그들의 능력을 개선한다. 유사한 능력을 가진 로봇들과 같은 디바이스들을 부여하는 것은 큰 범위의 기술들이 효율적으로 획득되며, 기존의 지식이 새로운 환경들 및 태스크들에 적응되도록 허용할 것이다.
인간들 및 동물들의 학습 능력을 에뮬레이션하려고 시도하는 두 개의 영역들은 모방 학습 및 메타-학습이다. 모방 학습은 시연기(demonstrator)를 관찰함으로써 태스크들을 학습하는 것을 목표로 한다. 메타-학습은 배우기 위해 배우는 방법을 기계들에 가르치는 것을 목표로 한다. 이미지 인식에서 많은 원-샷 및 퓨-샷 학습 방법들은 메타-학습의 형태이며, 여기에서 적은 수의 예들로부터 학습하는 것이 요구된다(예컨대, 테스트 시간에). 이들 경우들에서, 시스템들은, 단일 태스크에 대해 트레이닝하고 상기 태스크의 보이지 않은 예들에 대해 테스트하는 보통의 접근법보다는, 새로운 태스크들을 학습하기 위한 그들의 능력에 대해 테스트된다. 메타-학습의 일반적인 형태들은 되풀이, 메트릭 학습, 최적화기를 학습하는 것, 및 모델-애그노스틱 메타-학습(MAML)을 포함한다. 또 다른 접근법은 역 강화 학습이며, 여기에서 에이전트는 주어진 데모들을 기술하는 보상 함수를 추정하려고 시도한다.
모방 학습에서의 일반적인 이슈는 이러한 시스템들을 트레이닝하기 위해 요구된 많은 양의 데이터이다. 퓨-샷 학습은 실제로 달성하기 어렵다. 종종 태스크들이 독립적으로 학습되는 이슈가 있으며, 여기에서 하나의 태스크를 학습하는 것은 또 다른 것의 학습을 가속시키지 않는다.
로봇 공학에서의 최신 경향은 단-대-단 방식으로 원래 센서 데이터로부터 직접 제어를 학습하는 것이다. 이러한 접근법들은 넓은 범위의 태스크들을 학습하기에 충분히 일반적일 가능성이 있으며, 그것들은 비전 및 제어 사이에서의 조정과 같은, 로봇 공학들에서, 또는 동적 환경들을 가진 태스크들에서, 더 오래된 방법들이 어렵다고 발견하여 온 태스크들을 수행할 수 있는 것으로 보여져 왔다. 그러나, 이들 솔루션들은 종종 스크래치로부터 그들의 기술들을 학습하며 많은 양의 트레이닝 데이터를 요구한다. 이를 고려해보면, 데이터 효율을 개선하는 방법들을 개발하는 것이 요구된다.
2017년 로봇 학습에 대한 컨퍼런스에서 공개된 C. Finn, T. Yu, T. Zhang, P. Abbeel, 및 S. Levine에 의한 논문 "메타-학습을 통한 원-샷 시각적 모방 학습"에서, 로봇이 배우는 방법을 학습할 수 있게 하여, 로봇이 단일 시각적 데모로부터, 단-대-단으로, 새로운 태스크들을 학습할 수 있게 하는, 메타-모방 학습 방법이 제공된다. 다수의 다른 태스크들로부터의 데모 데이터는 새로운 태스크들의 효율적인 학습을 가능하게 하기 위해 재-사용된다. 예측된 동작들에 관찰들을 매핑하는 정책이 트레이닝된다. 모델-애그노스틱 메타-학습(MAML)의 확장은 모방 학습을 제공하기 위해 제공된다. 이 경우에, 메타-트레이닝 동안, 데모들의 쌍들은 트레이닝-검증 쌍들로서 사용된다. 메타-테스트 시간에, 새로운 태스크에 대한 하나의 데모가 제공되며 모델은 새로운 태스크에 대한 정책을 획득하기 위해 업데이트된다. 정책은 그 후 새로운 태스크에 대한 관찰들에 기초하여 출력들이 예측될 수 있게 한다. 정책의 파라미터들은 신경망 아키텍처에 대한 파라미터들이다. 신경망 아키텍처는 RGB 이미지를 이미지 피처들에 매핑한다. 이들 이미지 피처들은 로봇 동작들에 매핑되기 전에, 로봇 구성 벡터 및 바이어스 파라미터들과 연쇄된다.
모델-애그노스틱 메타-학습은, 앞으로의 유용한 단계 동안, 로봇 시스템들에 대하여 다수의 제한들을 가진다. 예를 들어, 일단 정책이 트레이닝되면, 테스트 시예를 다시 제공받지 않는다면, 그것은 트레이닝 동안 보여진 태스크들 중 임의의 것을 성취할 수 없다. 또한, 일단 특정 태스크가 학습되면, 방법은 메타-학습하기 위한 그것의 능력을 잃을 수 있으며 단지 상기 하나의 태스크를 위해 사용될 수 있는 가중치들의 세트를 강요당할 수 있다. 한 가지 방법은 각각의 태스크에 대해 요구된 가중치들의 사본을 만드는 것이지만, 이것은 확장 가능성 우려들을 일으킨다.
기존의 기술들을 고려해보면, 새로운 태스크들을 학습하기 위해 로봇 디바이스를 가르치기 위한 효율적인 방식들에 대한 바람이 있다.
본 발명의 제 1 양상에 따르면, 로봇 디바이스를 위한 제어 시스템이 제공되고 있으며, 상기 제어 시스템은: 태스크의 하나 이상의 데모들을 수신하며 태스크 임베딩을 생성하기 위한 태스크 임베딩 네트워크로서, 상기 태스크 임베딩은 상기 태스크의 표현을 포함하고, 각각의 데모는 상기 태스크의 수행에 대한 하나 이상의 관찰들을 포함하는, 상기 태스크 임베딩 네트워크; 및 상기 태스크 임베딩 네트워크로부터 상기 태스크 임베딩을 수신하며 상기 로봇 디바이스에 대한 각각의 제어 지시들에 상기 로봇 디바이스의 복수의 연속적인 관찰들을 매핑하도록 정책을 적용하기 위한 제어 네트워크로서, 상기 제어 네트워크에 의해 적용된 정책은 상기 태스크 임베딩 네트워크로부터의 상기 태스크 임베딩을 사용하여 로봇 디바이스의 복수의 연속적인 관찰들에 걸쳐 조절되는, 상기 제어 네트워크를 포함한다.
특정한 예들에서, 상기 태스크 임베딩 네트워크 및 상기 제어 네트워크 각각은 적어도 하나의 환경에서 적어도 하나의 트레이닝 태스크의 트레이닝 샘플들을 포함한 트레이닝 세트 상에서의 공동 트레이닝으로부터 기인한 각각의 파라미터들을 포함하며, 각각의 트레이닝 샘플은 주어진 환경에서 주어진 트레이닝 태스크의 하나 이상의 관찰들 및 주어진 환경에서 로봇 디바이스에 의해 수행된 대응 동작들을 포함한다.
특정한 예들에서, 태스크 임베딩 네트워크 및 제어 네트워크 중 적어도 하나는 적어도 하나의 트레이닝 태스크의 트레이닝 샘플들을 포함한 트레이닝 세트에 대해 트레이닝되고; 상기 적어도 하나의 트레이닝 태스크는 제 1 태스크를 포함하며; 상기 태스크 임베딩 네트워크에 의해 수신된 태스크는, 상기 제 1 태스크와 상이한 제 2 태스크이고, 따라서 상기 제어 네트워크는 상기 제 2 태스크를 수행하기 위해 상기 로봇 디바이스에 대한 각각의 제어 지시들에 상기 로봇 디바이스의 복수의 연속적인 관찰들을 매핑하기 위해 상기 정책을 적용하도록 구성된다.
특정한 예들에서, 상기 태스크의 하나 이상의 데모들은 제 1 환경에서 태스크의 수행에 대한 하나 이상의 관찰들을 포함하고, 상기 제어 지시들은 상기 로봇 디바이스가 제 2 환경에서 태스크를 수행하기 위한 제어 지시들을 포함하고, 상기 제 1 및 제 2 환경들은 적어도 상이한 구성들을 가지며, 상기 로봇 디바이스의 복수의 연속적인 관찰들은 제 2 환경에서 로봇 디바이스의 관찰들을 포함한다.
특정한 예들에서, 상기 태스크의 수행에 대한 하나 이상의 관찰들은 태스크를 수행하는 로봇 디바이스의 적어도 하나의 이미지를 나타내는 이미지 데이터를 포함하며 상기 제어 지시들은 로봇 디바이스의 하나 이상의 모터들에 대한 모터 제어 지시들을 포함한다.
특정한 예들에서, 상기 태스크 임베딩 네트워크 및 상기 제어 네트워크 각각은 적어도 하나의 시뮬레이션된 환경에서 적어도 하나의 트레이닝 태스크의 트레이닝 샘플들을 포함한 트레이닝 세트에 대한 공동 트레이닝에서 기인한 각각의 파라미터들을 포함하고, 각각의 트레이닝 샘플은 주어진 시뮬레이션된 환경에서 주어진 트레이닝 태스크에 대한 하나 이상의 관찰들 및 주어진 시뮬레이션된 환경에서 로봇 디바이스의 시뮬레이션에 의해 수행된 대응 동작들을 포함한다.
제 1 양상의 제어 시스템은 이하에서 설명되는, 본 발명의 제 2 양상의 임의의 특징들을 갖고 구성될 수 있다.
본 발명의 제 2 양상에 따르면, 로봇 디바이스를 제어하는 방법이 제공되고 있으며, 상기 방법은: 제 1 콘텍스트에서 수행되는 태스크의 적어도 하나의 관찰을 수신하는 것; 상기 적어도 하나의 관찰에 기초하여 태스크 임베딩을 생성하는 것; 및 제 2 콘텍스트에서 상기 로봇 디바이스에 의해 수행될 연속적인 동작들에 대해: 주어진 동작에 앞선 시간에 제 2 콘텍스트에서 로봇 디바이스와 연관된 감각 데이터를 수신하는 것; 상기 주어진 동작에 대한 로봇 디바이스에 대한 제어 지시들에 상기 태스크 임베딩 및 상기 감각 데이터를 매핑하는 것; 및 상기 제어 지시들을 사용하여 상기 주어진 동작을 수행하도록 상기 로봇 디바이스에 지시하는 것을 포함한다.
특정한 예들에서, 태스크에 대한 상기 적어도 하나의 관찰은 적어도 두 개의 시간 스텝들에 대한 이미지 데이터를 포함하고, 상기 적어도 두 개의 시간 스텝들은 상기 태스크가 제 1 콘텍스트에서 수행되는 시간 기간을 커버하고, 상기 이미지 데이터는 상기 제 1 콘텍스트에서 상기 태스크를 수행하는 로봇 디바이스를 보여주는 적어도 하나의 이미지를 나타낸다.
특정한 예들에서, 상기 로봇 디바이스와 연관된 감각 데이터는 제 2 콘텍스트에서 상기 태스크를 수행하는 로봇 디바이스를 보여주는 적어도 하나의 이미지를 나타내는 이미지 데이터 및 상기 로봇 디바이스에 대한 상태 데이터 중 적어도 하나를 포함하며, 상기 제어 지시들은 상기 제 2 콘텍스트에서 로봇 디바이스의 움직임을 가능하게 하기 위해 로봇 디바이스의 하나 이상의 작동기들에 대한 지시들을 포함한다.
특정한 예들에서, 상기 방법은, 상기 적어도 하나의 관찰을 수신하기 전에: 태스크 임베딩 네트워크 및 제어 네트워크를 구성하기 위해 각각의 파라미터들을 로딩하는 것을 포함하며, 상기 태스크 임베딩 네트워크는 상기 태스크 임베딩을 생성하기 위해 사용되며 상기 제어 네트워크는 상기 태스크 임베딩 및 상기 감각 데이터를 로봇 디바이스에 대한 제어 지시들에 매핑하기 위해 사용되고, 상기 파라미터들은 복수의 트레이닝 태스크들의 트레이닝 샘플들을 포함한 트레이닝 데이터에 대한 태스크 임베딩 네트워크 및 제어 네트워크의 공동 트레이닝으로부터 기인하고, 상기 트레이닝 샘플들은 수행되는 복수의 트레이닝 태스크들에 대한 하나 이상의 관찰들 및 상기 트레이닝 태스크를 수행하기 위해 취해진 대응 동작들을 포함한다.
특정한 예들에서, 상기 방법은, 적어도 하나의 관찰을 수신하기 전에, 태스크 임베딩을 수행하기 위한 태스크 임베딩 네트워크 및 태스크 임베딩 및 감각 데이터로부터 로봇 디바이스에 대한 제어 지시들로의 매핑을 수행하도록 정책을 적용하기 위한 제어 네트워크를 공동으로 트레이닝하는 것을 포함한다. 이들 예들에서, 태스크 임베딩 네트워크 및 제어 네트워크를 공동으로 트레이닝하는 것은, 트레이닝 반복 동안: 트레이닝 데이터의 세트로부터 트레이닝 태스크들의 세트를 샘플링하는 것; 상기 트레이닝 태스크들의 세트에서의 각각의 주어진 태스크에 대해: 상기 태스크를 수행한 로봇 디바이스의 제 1 세트의 관찰들을 포함한 주어진 태스크에 대한 지원 세트를 결정하는 것; 상기 태스크를 수행한 로봇 디바이스의 제 2 세트의 관찰들을 포함한 주어진 태스크에 대한 질의 세트를 결정하는 것으로서, 상기 제 1 및 제 2 세트의 관찰들은 서로소(disjoint)인, 상기 질의 세트를 결정하는 것; 상기 지원 세트를 위한 태스크 임베딩 및 상기 질의 세트를 위한 태스크 임베딩을 계산하기 위해 태스크 임베딩 네트워크를 사용하는 것; 상기 태스크 임베딩 네트워크 및 상기 제어 네트워크에 대한 손실 함수를 초기화하는 것; 및 트레이닝 태스크들의 세트에서의 각각의 주어진 태스크에 대해: 상기 태스크 임베딩 네트워크에 대한 손실 함수 항을 계산하는 것으로서, 상기 손실 함수 항은 상기 주어진 태스크에 대한 질의 세트를 위한 태스크 임베딩 및 상기 주어진 태스크에 대한 지원 세트를 위한 태스크 임베딩 사이에서의 제 1 유사성 척도를 상기 주어진 태스크에 대한 질의 세트를 위한 태스크 임베딩 및 상기 주어진 태스크가 아닌 태스크들에 대한 지원 세트들을 위한 태스크 임베딩들의 세트로부터의 태스크 임베딩 사이에서의 제 2 유사성 척도와 비교하는 힌지 손실 함수를 포함하는, 상기 손실 함수 항을 계산하는 것을 포함한다. 트레이닝 반복은 태스크 임베딩 네트워크 및 제어 네트워크에 대한 파라미터 값들을 결정하도록 손실 함수를 최적화하기 위해 반복될 수 있다. 태스크 임베딩 네트워크 및 제어 네트워크를 공동으로 트레이닝하는 것은, 트레이닝 반복 동안: 트레이닝 태스크들의 세트에서의 각각의 주어진 태스크에 대해: 제어 네트워크에 대한 적어도 하나의 손실 함수 항을 계산하는 것으로서, 상기 적어도 하나의 손실 함수 항은 주어진 태스크를 수행하기 위해 취해진 동작들에 대한 제어 지시들과 제어 네트워크를 사용한 예측된 제어 지시들의 비교를 포함하는, 상기 적어도 하나의 손실 함수 항을 계산하는 것을 포함할 수 있다. 상기 제어 네트워크에 대한 적어도 하나의 손실 함수 항은 주어진 태스크에 대한 지원 세트를 위한 정책 손실 항 및 주어진 태스크에 대한 질의 세트를 위한 정책 손실 항을 포함할 수 있다. 이들 예들에서, 태스크 임베딩은 태스크의 표현을 제공할 수 있다. 공유 세트의 특성들을 가진 두 개의 태스크들에 대한 태스크 임베딩들은 상이한 세트의 특성들을 가진 두 개의 태스크들에 대한 태스크 임베딩들보다 임베딩 공간에서 더 가까울 수 있다. 이들 예들에서, 태스크 임베딩 네트워크 및 제어 네트워크에 대한 파라미터들의 세트는 시뮬레이션된 로봇 디바이스를 사용하여 시뮬레이션된 환경에서 학습될 수 있다.
본 발명의 제 3 양상에 따르면, 컴퓨터-실행 가능한 지시들을 포함한 비-일시적 컴퓨터-판독 가능한 저장 매체가 제공되고 있으며, 상기 컴퓨터-실행 가능한 지시들은 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금: 적어도 태스크 임베딩 네트워크를 포함한 제어 시스템에 대한 트레이닝 데이터를 획득하게 하는 것으로서, 상기 태스크 임베딩 네트워크는 태스크 임베딩에 입력 데이터를 매핑하도록 구성되고, 상기 트레이닝 데이터는 제어 가능한 디바이스에 의해 하나 이상의 콘텍스트들에서 수행되는 하나 이상의 태스크들에 대한 관찰-동작 데이터 쌍들을 포함하는, 상기 트레이닝 데이터를 획득하게 하고; 트레이닝 데이터 내에 표현된 트레이닝 태스크들의 세트의 각각에 대한 지원 세트 및 질의 세트를 생성하게 하는 것으로서, 트레이닝 태스크들의 세트에서 주어진 태스크에 대해: 지원 세트 태스크 임베딩을 생성하기 위해 주어진 태스크에 대한 제 1 세트의 관찰-동작 쌍들에 태스크 임베딩 네트워크를 적용하며 질의 세트 태스크 임베딩을 생성하기 위해 주어진 태스크에 대한 제 2 세트의 관찰-동작 쌍들에 태스크 임베딩 네트워크를 적용하는 것을 포함하는 것으로서, 상기 제 1 및 제 2 세트의 관찰-동작 쌍들은 서로소인, 상기 지원 세트 및 질의 세트를 생성하게 하며; 상기 제어 시스템에 대한 트레이닝 가능한 파라미터들에 대한 값들을 결정하기 위해 상기 제어 시스템에 대한 손실 함수를 최적화하게 하는 것으로서, 상기 제어 시스템에 대한 손실 함수는 태스크 임베딩 네트워크를 위한 손실 함수의 함수이고, 상기 태스크 임베딩 네트워크에 대한 손실 함수는 상기 지원 세트 및 상기 질의 세트를 위한 유사성 척도들의 비교에 기초하고, 주어진 태스크에 대한 상기 질의 세트 태스크 임베딩 및 상기 주어진 태스크에 대한 지원 세트 태스크 임베딩 사이에서의 유사성 척도는 상기 주어진 태스크에 대한 질의 세트 태스크 임베딩 및 상기 주어진 태스크가 아닌 태스크에 대한 지원 세트 태스크 임베딩 사이에서의 유사성 척도에 비교되는, 상기 손실 함수를 최적화하게 한다.
특정한 예들에서, 상기 제어 시스템은 상기 제어 가능한 디바이스에 대한 동작 데이터에 입력 데이터 및 태스크 임베딩 네트워크로부터의 태스크 임베딩을 매핑하기 위한 정책을 적용하기 위해 제어 네트워크를 포함하고; 상기 제어 시스템에 대한 손실 함수는 상기 제어 네트워크에 대한 손실 함수의 함수이며; 상기 주어진 태스크에 대한 상기 제어 네트워크에 대한 손실 함수는 상기 지원 세트에 대한 정책 손실 및 상기 질의 세트에 대한 정책 손실을 포함한다.
특정한 예들에서, 관찰-동작 데이터 쌍들의 각각 내에서의 관찰 데이터는 각각, 상기 관찰-동작 데이터 쌍과 연관된 동작 이전에 캡처되는 제어 가능한 디바이스를 특징으로 하는 적어도 하나의 이미지를 나타내는 이미지 데이터를 포함하며, 상기 관찰 데이터는 태스크의 수행 동안 캡처된다.
특정한 예들에서, 상기 태스크 임베딩 네트워크에 대한 손실 함수는 힌지 손실 함수를 포함하며 상기 유사성 척도는 내적(dot-product) 유사성을 포함한다.
특정한 예들에서, 지시들은, 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금: 제 1 콘텍스트에서 로봇 디바이스에 의해 수행되는 태스크를 보여주는 관찰 데이터를 수신하게 하고; 트레이닝 후, 태스크 임베딩을 생성하기 위해 상기 관찰 데이터에 제어 시스템의 태스크 임베딩 네트워크를 적용하게 하며; 상기 로봇 디바이스에 대한 제어 동작들의 시퀀스에 상기 제 2 콘텍스트에서 로봇 디바이스에 대한 태스크 임베딩 및 감각 데이터를 반복적으로 매핑하게 하며, 상기 감각 데이터는 제 2 콘텍스트에서 제어 동작의 수행에 이어 업데이트되고 재매핑된다.
비-일시적 컴퓨터-판독 가능한 저장 매체는 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 여기에서 설명된 방법들 중 임의의 것을 수행하게 하는 컴퓨터-실행 가능한 지시들을 포함할 수 있다.
본 발명의 제 4 양상에 따르면, 로봇 디바이스에 대한 제어 네트워크가 제공되고 있으며, 상기 제어 네트워크는: 태스크의 하나 이상의 데모들로부터 생성된 태스크의 표현을 포함한 태스크 임베딩을 수신하며; 상기 로봇 디바이스에 대한 각각의 제어 지시들에 상기 로봇 디바이스의 복수의 연속적인 관찰들을 매핑하기 위한 정책을 적용하도록 구성되며, 상기 제어 네트워크에 의해 적용된 정책은 상기 태스크 임베딩을 사용하여 로봇 디바이스의 복수의 연속적인 관찰들에 걸쳐 조절된다.
특정한 예들에서, 상기 제어 지시들은 모터 제어 지시들을 포함하며 상기 제어 네트워크는 상기 모터 제어 지시들을 사용하여 로봇 디바이스의 하나 이상의 모터들을 제어하도록 구성된다.
추가 특징들 및 이점들은 단지 예로서 고려된, 다음의 설명으로부터 명백해지며, 이것은 수반된 도면들을 참조하여 이루어진다.
도 1은 예에 따른 로봇 디바이스에 대한 제어 시스템을 도시한 개략도이다;
도 2는 예에 따른 로봇 디바이스를 도시한 개략도이다;
도 3a, 도 3b, 도 3c 및 도 3d는 예들에서 관찰되고 및/또는 수행될 수 있는 상이한 유형들의 태스크들을 예시한 개략도들이다;
도 4는 예에 따른 제어 시스템의 트레이닝을 도시한 개략도이다;
도 5a는 예에 따른 태스크 임베딩의 생성을 도시한 개략도이다;
도 5b는 도 5a의 예에서 생성된 태스크 임베딩을 사용하여 로봇 디바이스의 제어를 도시한 개략도이다;
도 6은 예에 따른 태스크 임베딩 네트워크의 동작을 예시한 개략도이다;
도 7은 예에 따른 로봇 디바이스를 제어하기 위한 방법을 도시한 흐름도이다;
도 8은 예에 따른 제어 시스템을 트레이닝하기 위한 방법을 도시한 흐름도이다; 및
도 9는 예에 따른 컴퓨터 프로그램 지시들을 포함한 비-일시적 컴퓨터 판독 가능한 매체를 도시한 개략적인 예시이다.
도 2는 예에 따른 로봇 디바이스를 도시한 개략도이다;
도 3a, 도 3b, 도 3c 및 도 3d는 예들에서 관찰되고 및/또는 수행될 수 있는 상이한 유형들의 태스크들을 예시한 개략도들이다;
도 4는 예에 따른 제어 시스템의 트레이닝을 도시한 개략도이다;
도 5a는 예에 따른 태스크 임베딩의 생성을 도시한 개략도이다;
도 5b는 도 5a의 예에서 생성된 태스크 임베딩을 사용하여 로봇 디바이스의 제어를 도시한 개략도이다;
도 6은 예에 따른 태스크 임베딩 네트워크의 동작을 예시한 개략도이다;
도 7은 예에 따른 로봇 디바이스를 제어하기 위한 방법을 도시한 흐름도이다;
도 8은 예에 따른 제어 시스템을 트레이닝하기 위한 방법을 도시한 흐름도이다; 및
도 9는 예에 따른 컴퓨터 프로그램 지시들을 포함한 비-일시적 컴퓨터 판독 가능한 매체를 도시한 개략적인 예시이다.
여기에서 설명된 특정한 예들은 수행될 태스크의 임베딩(여기에서 "태스크 임베딩"으로 불리운다)을 통합하는 제어 시스템 및 디바이스 제어 지시들을 생성하는 제어 시스템을 제공한다. 이들 예들은 태스크들을 임베딩하며, 여기에서 예컨대, 시각적 및/또는 제어 양상들에서 유사한 태스크들은 임베딩 공간에서 매우 가깝게 배열되는 반면, 유사하지 않은 태스크들은 서로로부터 거리를 두고 배열된다. 이러한 태스크 임베딩 공간은 다-차원일 수 있다(예컨대, 10 내지 128의 차원수를 가진). 태스크 임베딩을 사용하는 것은, 새로운 태스크가 이전에 보여진 것에 얼마나 유사한지와 같은, 제로-샷 방식으로 새롭고 친숙하지 않은 태스크들로부터 정보를 추론하는 가능성을 열어두면서, 퓨-샷 학습을 허용한다.
여기에서 설명된 특정한 예들은 하나 이상의 데모들을 고려하여, 보이지 않는 태스크의 새로운 변화들을 수행하려고 시도하기 위해 동작들(예컨대, 모터 속도들)을 출력하도록 공동으로 트레이닝되는 태스크-임베딩 네트워크 및 제어 네트워크를 포함한다. 태스크-임베딩 네트워크는, 디바이스 제어 지시들의 형태로 동작들을 출력하기 위해, 환경(예컨대, 실제 또는 가상 세계)의 연속하여 수신된 관찰들과 함께, 제어 네트워크에 의해 사용되는, 태스크의 간편한 표현을 학습하도록 구성될 수 있다. 이들 예들은 학습될 수 있는 태스크들의 수에 대한 엄격한 제한을 피하며, 메타-트레이닝 동안 또는 후에 이전-학습된 태스크들을 쉽게 잊지 않는다. 특정한 예들에서, 태스크 임베딩 네트워크는 테스트 시간 동안 시연기로부터 시각적 정보를 수신할 수 있다. 이것은 태스크를 수행하는 로봇 디바이스의 비디오의 프레임들의 형태로 있을 수 있다. 시각적 정보를 사용하는 것은 예들을 인간 데모들로부터의 학습에 적합하게 한다.
여기에서 설명된 특정한 예들은 원 또는 퓨-샷 방식으로, 예컨대, 시각적-유도 조작 태스크들로 시각운동성 제어를 학습하기 위한 능력을 제공한다. 특정한 예들은 비교식 접근법들에 비교할 때 더 높은 성공률을 달성한다.
특정한 예들은 또한 예컨대, 실 세계에서 태스크들을 수행할 때 사용될 시뮬레이션된 환경에서의 트레이닝을 가능하게 하기 위해, 시뮬레이션된 및 실-세계 데이터 포인트들의 혼합을 가능하게 하여, 대규모 일반화를 위한 경로를 제공한다. 이것은 실-세계 관찰들로부터 단-대-단 시스템들에서 요구된 다수의 트레이닝 예들을 획득하는 것이 어려울 수 있기 때문에 바람직하다. 여기에서 설명된 특정한 예들은 시뮬레이션된 환경에서 메타-학습하기 위해 트레이닝됨에도 불구하고, 로봇이 실-세계에서 단일 데모로부터 새로운 태스크들을 학습할 수 있게 한다.
여기에서 설명된 특정한 예들은 모터 제어를 학습하는 콘텍스트에서 거동적 클로닝(cloning)을 제공한다. 거동적 클로닝은 모방 학습의 형태로서 보여질 수 있으며, 여기에서 에이전트는 지도형 학습 방식으로, 데모들을 고려하여 관찰들로부터 동작들로의 매핑을 학습한다. 특정한 경우들에서, 모터 제어 지시들은 학습된 임베딩 또는 메트릭 공간에 기초하여 픽셀들로부터 직접 학습될 수 있다.
도 1은 예에 따른 로봇 디바이스를 위한 제어 시스템(110)의 예(100)를 개략적으로 도시한다. 도 1의 제어 시스템(110)은 태스크 임베딩 네트워크(120) 및 제어 네트워크(130)를 포함한다. 태스크 임베딩 네트워크(120)는 태스크의 데모(140)를 수신한다. 태스크의 데모(140)는 태스크의 수행에 대한 하나 이상의 관찰들을 포함할 수 있다. 도 1의 예에서, 단일 데모(140)가 수신된다. 그러나, 그 외 도 1과 유사할 수 있는 다른 예들에서, 태스크의 복수의 데모들이 태스크 임베딩 네트워크(120)에 의해 수신될 수 있다. 태스크는 예를 들어, 수행되는 행동 또는 일이다. 예를 들어, 태스크는 특정한 목표 또는 목적이 달성되었을 때 성공적으로 완료된 것으로 고려될 수 있다. 태스크는 그러므로 미리 정의된 목표 또는 목적을 달성하기 위해 수행될 동작들의 세트로서 정의될 수 있다. 예를 들어, 태스크는 리셉터클 Y에 오브젝트 X를 두는 것, 또는 오브젝트 X를 위치 Y로 이동시키는 것과 같은, 특정한 방식으로 환경에서 이용 가능한 오브젝트를 조작하는 것을 포함할 수 있다. 동작들의 세트는, 로봇 디바이스의 콘텍스트에서, 태스크를 수행하는 움직임들의 세트 및/또는 작동기 활성화들을 포함할 수 있다. 태스크 임베딩 네트워크(120)는 하나 이상의 데모들(140)에 기초하여, 태스크의 표현을 포함한 태스크 임베딩(150)을 생성하도록 구성된다.
도 1의 제어 네트워크(130)는 태스크 임베딩 네트워크(120)로부터 태스크 임베딩(150)을 수신한다. 다른 예들에서, 도 1의 제어 네트워크(130)와 유사하거나 또는 그 외 동일한 제어 네트워크는 대신에 예컨대, 적절한 네트워크를 통해, 저장장치로부터 또는 컴퓨터 디바이스 또는 서버 디바이스와 같은, 추가 전자 디바이스로부터와 같은, 태스크 임베딩 네트워크(120)와 상이한 구성요소로부터 태스크 임베딩(150)을 수신할 수 있다.
도 1의 제어 네트워크(130)는 또한 로봇 디바이스의 복수의 연속적인 관찰들(160)을 수신하며 로봇 디바이스에 대한 각각의 제어 지시들(170)에 로봇 디바이스의 복수의 연속적인 관찰들(160)을 매핑하기 위해 정책을 적용한다. 제어 네트워크(130)에 의해 적용된 정책은 태스크 임베딩 네트워크(120)로부터의 태스크 임베딩(150)을 사용하여 로봇 디바이스의 복수의 연속적인 관찰들(160)에 걸쳐 조절된다. 제어 네트워크(130)에 의해 생성된 제어 지시들(170)은 그 후 태스크를 수행하도록 로봇 디바이스를 제어하기 위해 사용될 수 있다. 이 경우에 조절은 입력으로서 태스크 임베딩(150) 및 복수의 연속적인 관찰들(160)의 각각을 취하는 함수로서 정책을 적용하는 것을 포함할 수 있으며, 여기에서 주어진 관찰에 대해, 출력은 상이한 태스크 임베딩들과 상이할 수 있다. 도면의 제어 네트워크(130)로서 사용될 수 있는 예시적인 제어 네트워크들에 대한 추가 설명은 도 4, 도 5a 및 도 5b를 참조하여 제공된다.
도 2는 로봇 디바이스(210)의 예(200)를 개략적으로 도시한다. 로봇 디바이스는 예를 들어 일련의 동작들을 수행하도록 제어될 수 있는 기계이다. 로봇 디바이스는 특정한 세트의 움직임들 또는 동작들을 수행하도록, 제어 지시들에 기초하여, 자율적으로 동작할 수 있을 것이다. 로봇 디바이스들(때때로, 로봇들로 불리운다)은 다양한 상이한 형태들을 취할 수 있다. 예를 들어, 로봇은 로봇이 수행하도록 의도되는 태스크에 의존하여 상이한 형태 또는 구조를 갖고 제작될 수 있다.
도 2의 예에서, 로봇 디바이스(210)는 3-차원(3D) 공간 내에서 정적으로 장착된다. 이 경우에, 로봇 디바이스(210)의 베이스(230)는 표면(220)에 부착된다. 그러나, 로봇 디바이스(200)의 일 부분(이 경우에, 로봇 디바이스(200)의 팔)은 3D 공간과 함께 이동하며 공간 내에서의 오브젝트들과 상호작용할 수 있다. 베이스(230)는 표면(220)의 최상부 상에서 로봇 디바이스(210)의 회전을 허용하거나 또는 허용하지 않을 수 있다. 로봇 디바이스(200)의 팔은 4개의 관절들(232, 234, 236, 238)을 통해 단-대-단 방식으로 연결된 5개의 요소들(231, 233, 235, 237, 240)을 포함한다. 관절들(232, 234, 236, 238)은 회전 움직임, 병진 움직임, 회전 움직임 또는 병진 움직임 양쪽 모두, 또는 팔의 요소들(231, 233, 235, 237, 240)의 다른 유형들의 움직임을 허용할 수 있다. 이 예에서 베이스(230)로부터 가장 먼 로봇 팔의 요소(240)는 로봇 손이며, 이것은 엔드 이펙터(end effector)로서 불리울 수 있다. 로봇 손(240)은 오브젝트들 등의 그리핑, 리프팅 또는 이동과 같은, 다양한 상이한 태스크들을 수행하기 위해 사용될 수 있다. 로봇 디바이스의 엔드 이펙터의 유형은 로봇 디바이스가 수행하도록 의도되는 태스크들에 의존할 수 있으며, 그러므로 다른 예들에서 로봇 손과 상이할 수 있다. 예를 들어, 엔드 이펙터는 청소 태스크들을 수행하도록 의도되는 로봇 디바이스에 대한 진공 노즐 또는 표면 닦기 엔드 이펙터일 수 있다.
도 2에 도시된 예시적인 3D 공간은 표면(220)에 의해 지지된 제 1 오브젝트(222) 및 제 2 오브젝트(224)를 포함한다. 여기에서, "오브젝트들"은 예컨대, 로봇 디바이스가 상호작용할 수 있는, 재료 존재를 가진 임의의 가시적인 사물 또는 엔티티를 나타낼 수 있다. "오브젝트"는 인간이 라벨링할 수 있는 물질의 모음들에 대응할 수 있다. 여기에서 오브젝트는 광범위하게 고려되며 많은 다른 것들 중에서, 벽들, 도어들, 바닥들 및 사람뿐만 아니라 가구, 다른 디바이스들, 및 집, 사무실 및/또는 외부 공간에서의 종래의 오브젝트들과 같은 엔티티들을 포함한다. 도 2에서의 3D 공간은 표면(220)을 갖고 도시되지만, 이것은 모든 구현들에서 그럴 필요는 없다. 예를 들어, 환경은 공중이거나 또는 외계 공간 내에 있을 수 있다.
도 2의 로봇 디바이스(210)는 단지 예이며 다른 예들이 고려된다는 것이 이해될 것이다. 예를 들어, 로봇 디바이스는 제자리에 고정되지 않을 수 있다. 이러한 로봇 디바이스는 그 자체가 이동 가능할 수 있다. 로봇 디바이스의 움직임을 가능하게 하기 위해, 이러한 디바이스는 로봇 디바이스가 3-차원(3D) 공간을 내비게이션할 수 있게 하기 위한 작동기들을 포함할 수 있다. 이들 작동기들은 휠들, 굴파기 메커니즘들, 회전자들 등을 포함할 수 있다. 예를 들어, 로봇 디바이스는 자율적 공중 및/또는 지상파 이동 디바이스이거나 또는 이를 포함할 수 있다. 다른 경우들에서, 베이스가 아닌 로봇 디바이스의 상이한 부분은 표면 또는 다른 오브젝트에 대하여 고정될 수 있으며, 및/또는 로봇 디바이스는 도 2에 도시된 것과 상이한 구조 또는 배열을 가질 수 있다.
도 3a, 도 3b, 도 3c 및 도 3d는 예들에서 관찰되고 및/또는 수행될 수 있는 상이한 유형들의 태스크들을 예시한 개략도들이다.
도 3a 및 도 3b는 각각 뻗기(reaching) 태스크의 예를 제공한다. 도 3a 및 도 3b의 뻗기 태스크는 로봇 디바이스(310)가 제 3 오브젝트(326)에 대해 뻗는 것을 수반한다. 이 예에서 로봇 디바이스(310)는 도 2의 로봇 디바이스(210)와 유사한, 로봇 팔이다. 그러나, 도 3a 및 도 3b의 로봇 디바이스(310)는 베이스(312), 관절(316)을 통해 연결된 두 개의 요소들(314, 318), 및 로봇 손(320)을 포함하며, 그러므로 도 2의 로봇 디바이스(210)보다 적은 구성요소들을 포함한다. 로봇 디바이스(310)의 구성요소들의 라벨링은 명료함을 위해, 도 3b에서 생략된다는 것을 주의하자.
이 예에서 제 3 오브젝트(326)는 특정한 컬럼의 오브젝트이다(도 3a 및 도 3b에서 제 3 오브젝트(326) 내에서 대각선 패턴을 통해 개략적으로 도시됨). 제 3 오브젝트(326)는 로봇 디바이스(310)의 베이스(312)가 부착되는, 표면(300)에 의해 지지된다. 제 1 오브젝트(322) 및 제 2 오브젝트(324)는 또한 도 3a 및 도 3b에서의 표면(300) 상에 있다. 도 3b는 부가적으로 표면(300) 상에 제 4 오브젝트(328)를 포함한다. 제 1, 제 2 및 제 4 오브젝트들(322, 324, 328)은 제 3 오브젝트(326)와 상이한 컬러들이다. 이것은 도 3a 및 도 3b에서 제 1 오브젝트(322) 내에서의 점으로 된 패턴, 제 2 오브젝트(324) 내에서 수평선 패턴 및 제 4 오브젝트(328) 내에서 패턴의 부재로 표시된다.
이 예에서, 태스크는 그러므로 특정한 컬러의 오브젝트(이 경우에, 제 3 오브젝트(326))에 대해 뻗는 것에 대응하는 것으로 고려될 수 있다. 이 경우에, 뻗기 태스크는 다른 컬러들의 오브젝트들(도 3a에서 제 1 및 제 2 오브젝트들(322, 324) 및 제 1, 제 2 및 제 4 오브젝트들(322, 324, 328))의 존재 시 수행되며, 이것은, 그것들이 로봇 디바이스(310)를 정확한 오브젝트에 뻗는 것으로부터 멀어지게 하므로, 혼란으로 고려될 수 있다.
제 1, 제 2 및 제 3 오브젝트들(322, 324, 326)의 배열은 도 3a 및 도 3b에서 상이하며, 도 3b는 또한 제 4 오브젝트(328)를 포함한다. 그러나, 도 3a 및 도 3b의 각각은 로봇 디바이스(310)가 다른 오브젝트들 중 임의의 것보다는 제 3 오브젝트(326) 쪽에 뻗는 것을 도시한다. 그러므로, 도 3a 및 도 3b의 각각은 상이한 배열에도 불구하고, 동일한 태스크의 각각의 관찰들에 대응하는 것으로 고려될 수 있다. 예를 들어, 도 3a 및 도 3b는, 이들 예들의 각각에서 다양한 오브젝트들의 상이한 위치로 인해, 상이한 콘텍스트들 또는 상이한 환경들에서 동일한 태스크의 관찰에 대응하는 것으로 고려될 수 있다.
태스크의 데모는 예를 들어, 도 3a 및 도 3b에 도시된 관찰과 같은, 하나 이상의 관찰들을 포함한다. 관찰은 예를 들어, 태스크의 수행을 캡처한 레코드 또는 다른 데이터에 대응한다. 특정한 경우들에서, 관찰은 태스크를 수행한 엔티티의 환경에 위치된 캡처 디바이스로부터의 이미지(예컨대, 비디오 프레임)를 포함할 수 있다. 그렇지만, 몇몇 경우들에서, 관찰은 시뮬레이션된 태스크의 가상 관찰일 수 있으며, 이것은 그럼에도 불구하고 태스크의 시뮬레이션된 수행을 캡처한다. 가상 관찰은 미리 정의된 카메라 자세 또는 구성으로부터 캡처되는 시뮬레이션된 3D 환경의 렌더링된 이미지를 포함할 수 있다. 가상 관찰은 또한, 또는 대안적으로, 하나 이상의 요소들 및 관절들 또는 시뮬레이션된 로봇 디바이스에 대한 위치 및/또는 배향 데이터를 포함할 수 있다. 데모에서, 태스크는 인간 또는 다른 동물과 같은, 임의의 적절한 엔티티에 의해, 또는 로봇 디바이스(예컨대, 도 3a 및 도 3b의 로봇 디바이스(310))와 같은 무생물 또는 사람이 만든 오브젝트 또는 디바이스에 의해, 또는 임의의 이러한 엔티티의 시뮬레이션에 의해 수행될 수 있다. 태스크를 시연하는 엔티티는 태스크를 수행하는 엔티티와 상이할 수 있다. 통상적으로, 관찰은 태스크를 수행하는 엔티티의 관찰을 포함한다. 예를 들어, 도 3a 및 도 3b에서, 관찰(이 예에서 이미지이다)은 로봇 디바이스(310)를 포함한다. 관찰은 일반적으로 또한 태스크의 부분으로서 조작되는 오브젝트와 같은, 태스크의 수행에 수반된 다른 엔티티들 또는 오브젝트들에 관한 데이터를 포함한다. 예를 들어, 도 3a 및 도 3b에서, 관찰은 태스크를 수행하기 위해 뻗은 오브젝트인, 제 3 오브젝트(326)를 포함한다. 관찰은 또한 태스크 자체의 부분을 형성하지 않지만 그럼에도 불구하고 태스크의 데모가 수행될 때 존재할 수 있는 다른 엔티티들 또는 오브젝트들을 나타내는 데이터를 포함할 수 있다. 이러한 오브젝트들은 태스크가 시연되는 환경의 배경에 오브젝트들을 포함할 수 있으며, 이것은 태스크의 수행 동안 조작되지 않는다. 예를 들어, 도 3a 및 도 3b의 관찰들 각각은 표면(300) 및 다른 오브젝트들(도 3a에서의 제 1 및 제 2 오브젝트들(322, 324) 및 도 3b에서의 제 1, 제 2 및 제 4 오브젝트들(322, 324, 328))을 포함한다.
관찰은 태스크 임베딩 네트워크(120)와 호환 가능한 임의의 적절한 포맷에 있을 수 있으며, 따라서 태스크 임베딩 네트워크(120)는 관찰에 기초하여 태스크를 나타내는 태스크 임베딩을 생성할 수 있다. 예를 들어, 태스크의 관찰은 태스크를 수행하는 엔티티의 적어도 하나의 이미지를 나타내는 이미지 데이터를 포함할 수 있다. 적어도 하나의 이미지는 엔티티의 2-차원 이미지일 수 있으며, 이것은 임의의 적절한 포맷으로 있을 수 있다. 예를 들어, 이미지 데이터는 이미지의 각각의 픽셀의 강도 값들을 포함할 수 있으며, 이것은 예를 들어, 컬러 밴드 또는 컬러 채널(8-비트 데이터에 대해) 당 0에서 255까지의 그레이스케일 또는 밝기 레벨을 갖고 저장될 수 있다. 이미지가 컬러 이미지일 때, 강도 또는 밝기의 픽셀 값 또는 각각의 픽셀은 각각의 컬러 채널에 대해 별도로 저장될 수 있다. 픽셀이 예를 들어, RGB(적색, 녹색, 청색)에서와 같은 3원색들 또는 YUV 컬러 공간들(여기에서 Y는 컬러의 루마를 나타내고, U는 컬러의 청색 구성요소와 루마 간의 차이를 나타내며 V는 컬러의 적색 구성요소와 루마 간의 차이를 나타낸다)에 의해 표현된다면, 각각의 픽셀의 시각적 외형은 각각의 원색에 대한 것인, 3개의 강도 값들로 표현될 수 있다. 이러한 경우들에서, 이미지 데이터는 각각이 태스크의 수행 동안(또는 태스크의 수행 직전 또는 직후) 상이한 각각의 시간들에서 엔티티를 캡처하는 일련의 이미지들을 포함할 수 있다. 예를 들어, 이미지 데이터는 엔티티가 태스크를 수행하기 시작하기 전에 엔티티의 제 1 이미지를 나타내는 데이터를 포함할 수 있다. 이러한 경우들에서 이미지 데이터는 또한 태스크의 수행 후 엔티티의 제 2 이미지를 나타내는 데이터를 포함할 수 있다. 두 개의 이미지들을 비교함으로써, 엔티티에 의해 시연된 태스크가 결정될 수 있다. 다른 경우들에서, 이미지 데이터는 태스크의 결과의 이미지를 포함할 수 있다. 예를 들어, 도 3a 및 도 3b에 대해서, 관찰들은 도 3a 및 도 3b에서 제시된 씬들의 이미지의 형태로 있을 수 있다. 도 3a 및 도 3b는 태스크의 수행 동안 로봇 디바이스(310)의 위치를 도시하며, 상기 로봇 디바이스(310)는 제 3 오브젝트(326)에 이른다.
다른 예들에서, 이미지 데이터는 비디오 데이터로부터 도출될 수 있다. 비디오 데이터는 시간에 따라 달라지는 이미지 데이터를 포함하는 것으로 고려될 수 있다. 이러한 경우들에서, 이미지 데이터는 비디오의 복수의 프레임들을 포함할 수 있다. 각각의 프레임은 3D 공간의 이미지들이 캡처되는 시간 기간에서 특정한 시간 t와 관련될 수 있다. 프레임은 일반적으로 측정된 데이터의 2D 표현으로 이루어진다. 예를 들어, 프레임은 시간 t에서 기록된 픽셀 값들의 2D 어레이 또는 매트릭스를 포함할 수 있으며, 그러므로 시간 t에서 기록된 스틸 이미지와 같을 수 있다.
추가 예들에서, 이미지 데이터는 예컨대, 컬러 또는 강도 값들을 나타내는, 광도 데이터 외에 깊이 데이터를 포함할 수 있다. 깊이 데이터는 깊이 데이터를 획득하기 위해 사용된 캡처 디바이스로부터의 거리의 표시를 포함할 수 있으며, 예컨대 각각의 픽셀 또는 이미지 요소 값은 캡처 디바이스로부터 3D 공간의 일 부분의 거리를 나타낼 수 있다. 도 3c 및 도 3d는 로봇 디바이스(360)의 이미지들(350 및 355)을 도시한다. 이들 이미지들은 비디오 데이터의 프레임들을 포함할 수 있다. 일 경우에, 로봇 디바이스(360)는 도 2에 도시된 로봇 디바이스(210)를 포함할 수 있다. 또 다른 경우에, 로봇 디바이스(360)는 예컨대, 가상 환경 내에서 동작하는, 로봇 디바이스(210)의 시뮬레이션된 버전을 포함할 수 있다. 이러한 후자의 경우에, 이미지들(350 및 355)은 가상 환경으로부터의 렌더링된 이미지를 포함할 수 있다. 도 3c의 이미지(350)는 로봇 디바이스(360)가 두 개의 리셉터클들(362 및 364)과 같은 장소에 배치되는 환경 또는 콘텍스트를 도시한다. 이미지(350)는 태스크의 완료에 이은 환경을 도시한다. 이 경우에 태스크는 리셉터클(362)에 오브젝트(370)를 두는 것이다. 도 3d의 이미지(355)는 태스크가 수행되기 전 로봇 디바이스(360)를 도시한다. 이 경우에, 이미지(355)는 두 개의 상이하게 성형된 리셉터클들(366 및 368) 및 상이하게 성형된 오브젝트(372)를 가진 환경 또는 콘텍스트를 도시한다. 특정한 구성들에서, 이미지(355)는 이미지(350)로부터 상이한 태스크를 도시하기 위해 취해질 수 있다(예컨대, 오브젝트(372)가 오브젝트(370)와 상이하므로). 이미지들(350 및 355)의 환경들은 또한 상이한 것으로 말하여질 수 있다. 다른 구성들에서, 이미지들(350 및 355)은 두 개의 상이한 환경들 또는 콘텍스트들에서 공통 태스크(예컨대, 리셉터클에 오브젝트를 두는 것)를 도시한다고 말하여질 수 있다. 특정한 구현을 위해 선택된 구성은 트레이닝, 데모 및 테스트 시간 동안 데이터가 어떻게 배열되는지에 영향을 준다.
도 4는 제어 시스템(410)의 트레이닝의 예(400)를 도시한 개략도이다. 도 4의 제어 시스템(410)은 도 1의 제어 시스템(110)과 유사하다. 도 1의 대응 요소들과 유사한 도 4의 요소들은 300만큼 증분된 동일한 참조 숫자들을 갖고 라벨링되며; 대응 설명들이 적용을 위해 취해질 것이다.
도 4는 태스크 임베딩 네트워크(420) 및 제어 네트워크(430)가 적어도 하나의 환경에서 적어도 하나의 트레이닝 태스크의 트레이닝 샘플들을 포함한 트레이닝 세트(441) 상에서 공동으로 트레이닝되는 예를 예시한다. 도 4에서, 트레이닝 세트(441)는 N개의 트레이닝 태스크들(Ф1 … Фn)을 포함한다 - 각각의 태스크는 도 4에서 442로서 도시된다. 태스크 임베딩 네트워크(420) 및 제어 네트워크(430)를 공동으로 트레이닝하는 것은 제어 네트워크(430)에 더 의미 있는 태스크 임베딩들이 획득되도록 허용하며, 이것은 결과적으로 주어진 태스크를 성공적으로 수행하도록 로봇 디바이스를 제어하기 위해 제어 지시들을 출력하기 위한 제어 네트워크(430)의 능력을 개선할 수 있다.
도 4에서, N개의 트레이닝 태스크들에 대한 복수의 트레이닝 샘플들이 있다. 각각의 트레이닝 태스크(Ф)에 대한 상이한 수의 트레이닝 샘플들(s)이 있을 수 있다. 도 4에서, 제 1 태스크(Ф1)는 K1 트레이닝 샘플들을 갖고, 제 2 태스크(Ф2)는 K2 트레이닝 샘플들을 가지며 제 N 트레이닝 태스크(ФN)는 일련의 KN 샘플(s1 … sKN)을 포함한다. 각각의 트레이닝 샘플(sx)은 궤적인 것으로 고려될 수 있으며, 이것은 t = 1에서 t = Tx까지, 일련의 시간 스텝들에 걸쳐 일련의 관찰-동작 쌍들을 나타낸다. 각각의 샘플은 다음과 같이 수학적으로 표현될 수 있다:
Sx = {(o1, α1), …, (oTx, αTx)}
여기에서 s는 궤적을 나타내고, o는 관찰을 나타내며, α는 동작을 나타낸다. 각각의 샘플은 상이한 수의 시간 스텝들을 가질 수 있다. 트레이닝 세트(441)는 관찰들을 나타내는 데이터 및 대응하는 동작들을 나타내는 데이터를 포함한 튜플(tuple)을 포함할 수 있다. 이러한 경우들에서, 관찰들 및 동작들은 수치적으로, 예를 들어 적어도 하나의 벡터, 텐서 또는 다른 다차원 어레이를 사용하여 나타내어질 수 있다.
도 4에서, 제 1 트레이닝 태스크(442), Ф1은 제 1 일련의 샘플들(444)과 연관된다. 제 1 일련의 샘플들(444)의 제 1 샘플(446), s1은 제 1 시간(t = 1)에, 관찰(448), o1 및 동작(452), α1을 포함한 관찰-동작 쌍들을 포함한다. 제 1 샘플(446)은 다른 시간들에서(t = 2에서, t = T1까지) 부가적인 관찰-동작 쌍들을 추가로 포함한다. 관찰은 예컨대, 도 3a 내지 도 3d를 참조하여 설명된 바와 같이, 이미지로부터 도출된 수치 데이터를 포함할 수 있다. 동작은 원하는 또는 영향을 받은 모터 운동 데이터와 같은, 로봇 디바이스에 대한 모터 명령들로부터 도출된 수치 데이터를 포함할 수 있다. 특정한 경우들에서, 관찰은 로봇 디바이스의 이미지가 캡처되는 시간에 모터 각들 및/또는 위치들과 같은, 로봇 디바이스 상태 데이터를 포함할 수 있다. 로봇 디바이스 상태 데이터는 태스크 임베딩 네트워크(420)를 트레이닝하기 위해 사용되지 않지만 제어 네트워크(430)를 트레이닝하기 위해 포함될 수 있다.
이러한 방식으로, 각각의 트레이닝 샘플은 주어진 환경에서 주어진 트레이닝 태스크의 하나 이상의 관찰들 및 주어진 환경에서 로봇 디바이스에 의해 수행된 대응 동작들을 포함할 수 있다. 각각의 트레이닝 샘플은 그러므로 특정한 태스크의 주어진 관찰들에 응답하여 로봇 디바이스에 의해 수행된 동작들을 학습하기 위해 제어 시스템(410)에 대한 기회를 제공한다. 이것은 제어 시스템이 주어진 태스크에 대한 정책을 학습하도록 허용한다. 이러한 정책은 예를 들어 태스크-특정 정책을 제공하도록 태스크 임베딩 네트워크(420)에 의해 획득된 태스크 임베딩에 의존한다. 제어 시스템(410)은 주어진 태스크에 대한 정책이 상기 태스크에 대한 소위 "전문가" 정책을 에뮬레이팅하거나 또는 그것에 가깝게 매칭하거나 또는 이를 따르도록 트레이닝될 수 있다. 전문가 정책은 예를 들어 이상적인 정책이며, 여기에서 원하는 태스크의 관찰의 입력(또는 일련의 관찰들)은 원하는 태스크를 수행하도록 로봇 디바이스에 지시하기 위한 제어 지시들의 생성을 야기한다. 그러나, 제어 시스템(410)에 의해 학습된 정책은 몇몇 경우들에서, 제어 시스템(410)에 의해 출력된 제어 지시들이 의도된 것(및 관찰 또는 관찰들에서의 데모)과 상이한 태스크를 수행하도록 로봇 디바이스를 제어할 수 있다는 점에서 전문가 정책과 어느 정도 상이할 수 있다. 일반적으로, 그렇지만, 제어 시스템(410)의 트레이닝은 학습된 정책 및 전문가 정책 사이에서의 차이들을 최소화하도록 의도된다. 실제로, 전문가 정책의 출력을 나타내는 데이터는 트레이닝 샘플들로부터의 동작 데이터로서 취해질 수 있으며, 예컨대 이들 동작들은 "전문가" 동작들을 나타낸다.
제어 시스템(410)을 트레이닝하는데 사용된 관찰들은 도 3a 및 도 3b를 참조하여 설명된 것들과 유사할 수 있다. 그러므로, 관찰들은 실제 환경에서 실-세계 로봇 디바이스에 의한 태스크의 수행의 관찰들일 수 있다. 대안적으로, 트레이닝 샘플들은 적어도 하나의 시뮬레이션된 환경에서의 적어도 하나의 트레이닝 태스크를 포함할 수 있다. 이러한 경우들에서, 각각의 트레이닝 샘플은 주어진 시뮬레이션된 환경에서 주어진 트레이닝 태스크의 하나 이상의 관찰들 및 주어진 시뮬레이션된 환경에서 로봇 디바이스의 시뮬레이션에 의해 수행된 대응 동작들을 포함할 수 있다. 이것은, 주어진 태스크를 수행하도록 로봇 디바이스를 수동으로 제어함으로써 트레이닝 샘플들을 생성하기보다는 시뮬레이션된 트레이닝 샘플들을 생성하는 것이 더 쉽거나 또는 더 빠를 수 있으므로, 트레이닝 프로세스의 확장 가능성을 개선할 수 있다. 트레이닝 샘플들은 인간에 의한 태스크의 수행 동안, 또는 결정적 제어하에서 캡처된 데이터에 기초하여 생성될 수 있다. 예를 들어, 트레이닝 샘플들은 로봇 디바이스를 제어함으로써 정의된 태스크를 완료한 인간의 레코딩을 나타낼 수 있으며 및/또는 명시적으로 프로그램된 태스크를 수행한 로봇 디바이스의 레코딩을 나타낼 수 있다. 트레이닝 샘플들은 그 후 수행되는 상이한 태스크들의 레코딩들의 혼합을 포함할 수 있다.
도 4의 제어 시스템(410)과 같은 제어 시스템을 트레이닝한 예는 도 8을 참조하여 추가로 설명된다.
도 5a는 태스크 임베딩(550)의 생성의 예(500)를 도시한 개략도이다. 도 5a에서의 태스크 임베딩(550)은 태스크 임베딩 네트워크(520) 및 제어 네트워크(530)를 포함한 제어 시스템(510)에 의해 생성된다. 도 5a의 제어 시스템(510)은 예를 들어, 도 1 및 도 4의 제어 시스템들(110, 410)과 유사할 수 있다. 그러나, 다른 예들에서, 도 5a의 태스크 임베딩(550)과 유사한 태스크 임베딩은 도 5a의 제어 네트워크(530)와 상이하거나 또는 별개의 시스템인 제어 시스템의 부분을 형성하는, 태스크 임베딩 네트워크(520)와 같은 태스크 임베딩 네트워크에 의해 생성될 수 있다.
태스크 임베딩 네트워크(520)는 입력으로서 태스크의 데모(540)(d)를 수신한다. 도 5a에서의 데모(540)는 수동 컨트롤러(585)를 사용하여 태스크를 수행하도록 로봇 디바이스(580)를 제어함으로써 획득된다. 수동 컨트롤러(585)는 가상 및/또는 증강 현실 컨트롤러를 포함할 수 있다. 그러나, 다른 예들에서, 데모는 상이하게 획득될 수 있다. 예를 들어, 데모는 태스크를 수행한 로봇 디바이스의 시뮬레이션의 가상 데모일 수 있다. 다른 경우들에서, 로봇 디바이스(580)는 수동 컨트롤러(585)를 사용하기보다는, 전자 제어 시스템을 사용하여, 예를 들어 미리 정의된 세트의 제어 지시들을 사용하여 태스크를 수행하도록 제어될 수 있다.
로봇 디바이스(580)에 의한 태스크의 수행은, 이 예에서 비디오 카메라인, 캡처 디바이스(590)에 의해 캡처된다. 비디오 카메라는 태스크의 수행 동안 로봇 디바이스(580)의 일련의 프레임들을 획득한다. 이로부터, 태스크의 데모(540)는, 도 3a 및 도 3b를 참조하여 설명된 바와 같이, 획득될 수 있다. 도 5a의 예에서, 데모(540)는 로봇 디바이스(540)의 T개 관찰들로부터 적어도 제 1 및 마지막 관찰을 포함한다(도면에서 이미지들 {i1, iT}로서 도시됨). 특정한 경우들에서, 태스크의 수행은 t = 1에서 t = T까지의 일련의 시간 스텝들에서 연속하여 캡처될 수 있으며 및/또는 스틸 프레임들은 t = 1 및 t = T의 시간들에서 캡처될 수 있다. 양쪽 경우들 모두에서, 태스크의 수행 "전" 및 "후"의 시간들을 나타내는 두 개의 프레임들이 제공될 수 있다. 특정한 경우들에서, 복수의 관찰들, 예컨대 t = 1 내지 t = T의 모든 프레임들이 제공될 수 있다. 각각의 관찰은 캡처 디바이스(590)에 의해 캡처된 비디오의 프레임에 대응할 수 있다. 다른 예들에서, 그렇지만, 데모(540)는 태스크를 수행한 로봇 디바이스(540)의 단일 관찰을 포함하며 및/또는 캡처 디바이스(590)로부터의 비디오 데이터의 프레임들(예컨대, 모터 및/또는 오브젝트 위치 데이터를 포함한) 외에 데이터를 포함할 수 있다.
데모(540)는 태스크 임베딩(550)을 생성하기 위해 태스크 임베딩 네트워크(520)에 의해 프로세싱된다. 태스크 임베딩 네트워크(520)는 도 6을 참조하여 추가로 설명되는 바와 같이, 태스크의 표현에 데모(540)를 매핑한다.
도 5a에서, 제어 네트워크(530)와 같은 특정한 구성요소들은 사용되지 않는다. 도 5a는 동작의 "데모" 단계를 나타낼 수 있으며, 여기에서 도 4는 동작의 "트레이닝" 단계를 나타내며 도 5b는 동작의 "테스트" 또는 "수행" 단계를 나타낸다. 제어 네트워크(530)가 "데모" 단계에서 사용되지 않으므로, 특정한 경우들에서, 제어 네트워크(530)는 이러한 단계를 위해 존재하지 않을 수 있다. 예를 들어, 단지 태스크 임베딩 네트워크(520)만이 제공될 필요가 있으며 및/또는 태스크 임베딩 네트워크(520)는 제어 네트워크(530)에 떨어져 위치되는 컴퓨팅 디바이스에 의해 구현될 수 있다. 예를 들어, "데모" 단계는 "테스트" 단계로부터 원격으로 발생하여, 텔레프레즌스(telepresence)의 형태를 가능하게 할 수 있다.
도 5b는 도 5a의 예(500)에서 생성된 태스크 임베딩(550)을 사용하여 로봇 디바이스(590)의 제어의 예(555)를 도시한 개략도이다. 도 5a 및 도 5b의 예에서, 태스크 임베딩(550)은 태스크 임베딩 네트워크(520)로부터 제어 네트워크(530)로 전송된다. 그러나, 다른 예들에서, 태스크 임베딩 네트워크(520)에 의해 생성된 태스크 임베딩(550)은 저장장치에 저장되며, 그 다음에 제어 네트워크(530)에 의해 저장장치로부터 검색되거나, 또는 그 외 제어 네트워크(530)에 의해 수신될 수 있다. 저장장치는 제어 네트워크(530)의 로컬 저장장치, 또는 제어 네트워크(530)의 외부에 있는 저장장치일 수 있다.
제어 네트워크(530)는 일련의 시간 스텝들(t)에 걸쳐 로봇 디바이스(580)의 복수의 연속적인 관찰들(560), ot를 수신한다. 관찰들(560)은 태스크의 데모들(540) 동안 로봇 디바이스(580)의 환경과 상이할 수 있는, 로봇 디바이스(580)를 둘러싼 현재 환경 내에서의 로봇 디바이스(580)를 도시한다. 도 5b에서의 관찰들은 캡처 디바이스(590)로부터의 이미지 데이터(it), 로봇 디바이스(580)의 각도 데이터(θt) 및 로봇 디바이스(580)로부터의 위치 데이터(pt)를 포함한다. 각도 데이터(θt)는 예를 들어 로봇 디바이스의 적어도 하나의 관절의 각각의 각도를 나타내며, 이것은 수평 평면과 같은 고정된 또는 공통 기준 평면에 대하여 취해진 절대 각, 또는 로봇 디바이스의 두 개의 서로 접한 요소들 사이에 취해진 상대 각일 수 있다. 위치 데이터(pt)는 로봇 디바이스의 엔드-이펙터 또는 다른 요소의 위치를 나타낼 수 있다. 위치는 기준 좌표 시스템을 사용하여 측정될 수 있으며, 따라서 위치는 기준 좌표 시스템 내에서의 좌표들을 사용하여 표현될 수 있다. 다른 예들에서, 위치는 로봇 디바이스의 베이스에 대한 로봇 디바이스의 엔드-이펙터의 위치와 같은, 로봇 디바이스의 상이한 요소에 대한 로봇 디바이스의 주어진 요소의 상대적인 위치일 수 있다. 각도 데이터(θt) 및 위치 데이터(pt)를 포함함으로써, 제어 시스템은 관찰된 태스크를 수행하기 위해 로봇 디바이스를 더 정확하게 제어할 수 있다. 그러나, 몇몇 경우들에서, 각도 데이터(θt) 및/또는 위치 데이터(pt)는 로봇 디바이스의 관찰들로부터 생략될 수 있다. 각각의 데이터 아이템은 텐서, 예컨대 데이터의 벡터 표현을 포함할 수 있다. 도 5b에서의 제어 네트워크(530)에 의해 수신된 각각의 관찰(560)은 따라서 이미지, 각도 및 위치 데이터의 융합(예컨대, 연쇄 벡터 또는 다-차원 어레이)을 포함할 수 있거나, 또는 관찰은 별개의 이미지, 각도 및 위치 데이터를 포함할 수 있으며, 이것은 그 다음에 제어 네트워크(530)에 의해 융합될 수 있다. 다른 예들에서, 제어 네트워크(530)는 캡처 디바이스로부터 이미지 데이터(it)를 수신할 수 있다.
제어 네트워크(530)는 태스크 임베딩(550)을 사용하여 로봇 디바이스(590)의 관찰들(560)을 매핑하기 위한 정책을 적용한다. 이것은 도 4 및 도 8을 참조하여 설명된 "트레이닝" 절차와 대조적으로, "테스트" 절차로서 불리울 수 있다. 이 프로세스는 다음과 같이 의사-코드로 표현될 수 있다:
여기에서 E는 도 5a를 참조하여 설명된 바와 같이 태스크 임베딩 네트워크(520)에 의해 생성된 태스크 임베딩(550)을 나타내고, Env는 로봇 디바이스(580)를 둘러싼 환경을 나타내고, o는 로봇 디바이스(580)의 관찰(560)을 나타내며 π는 로봇 디바이스(580)에 의해 수행될 동작(α)에 관찰(o)을 매핑시키기 위해 제어 네트워크(530)에 의해 적용된 정책을 나타낸다. 제어 네트워크(530)에 의해 적용된 정책은 컨볼루션 신경망(CNN)과 같은, 신경망에 의해 표현될 수 있다. 예를 들어, 주어진 관찰(560)의 이미지 데이터(it)는 텐서로서, 예컨대, 벡터 또는 다-차원 어레이로서 표현될 수 있는, 이미지 특징들을 추출하기 위해 CNN의 컨볼루션 층들에 의해 프로세싱될 수 있다. 예를 들어, CNN의 컨볼루션 층들은 이미지 특징 벡터를 출력할 수 있다. 관찰(560)을 나타내는 관찰 데이터가 이미지 데이터 외에 각도 데이터 및 위치 데이터를 포함하는 경우에, 각도 데이터 및 위치 데이터는 각각 각도 벡터 및 위치 벡터의 형태일 수 있다. 이러한 경우들에서, 이미지, 각도 및 위치 데이터는 연쇄 벡터를 획득하기 위해, 이미지 특징 벡터, 각도 벡터 및 위치 벡터를 연쇄시킴으로써 융합될 수 있다. 연쇄 벡터는 그 후, 정책을 구현하기 위해, CNN의 적어도 하나의 완전 연결 층과 같은, CNN의 남아있는 부분에 의해 프로세싱될 수 있다. 관찰 데이터가 각도 데이터 및/또는 위치 데이터가 없는 다른 예들에서, 이미지 특징 벡터 자체는 정책을 구현하기 위해 CNN의 남아있는 부분에 의해 프로세싱될 수 있다.
이러한 경우들에서, 태스크 임베딩(550)은 정책(π)에 따라 로봇 디바이스(580)에 의해 수행될 동작(a)을 생성하기 위해 관찰(560)과 조합되고, 융합되거나, 또는 그 외 그것을 갖고 프로세싱될 수 있다. 예를 들어, 태스크 임베딩 벡터의 형태에서의 태스크 임베딩(550)은 제어 네트워크(530)에 의해 프로세싱되기 전에 관찰(560)(또한 벡터의 형태일 수 있는)과 연쇄될 수 있다. 예를 들어, 연쇄 벡터는 CNN의 컨볼루션 층들을 사용하여 이미지 데이터를 프로세싱함으로써 획득된 이미지 특징 벡터와 태스크 임베딩(550)을 나타내는 태스크 임베딩 벡터를 연쇄시킴으로써 생성될 수 있다. 연쇄 벡터는 그 후, 로봇 디바이스(580)에 의해 수행될 동작(α)을 생성하기 위해, CNN의 적어도 하나의 완전 연결 층과 같은, CNN의 나머지에 의해 프로세싱될 수 있다. 상기 설명된 바와 같이, 몇몇 경우들에서, 태스크 임베딩 벡터 및 이미지 특징 벡터는 또한, 연쇄 벡터가 CNN의 나머지에 의해 프로세싱되기 전에, 연쇄 벡터를 생성하기 위해 각도 벡터 및/또는 위치 벡터와 연쇄될 수 있다(관찰(560)의 부분이면).
이러한 절차는 태스크를 구현하기 위해 로봇 디바이스(580)에 의해 수행될 일련의 동작들을 생성하기 위해, 로봇 디바이스(580)의 일련의 관찰들(560)에 대해, 반복적으로 수행될 수 있다. 각각의 반복에 대해, 그렇지만, 로봇 디바이스(580)에 의해 수행될 태스크는 동일한 채로 있지만(예컨대, 주어진 태스크 임베딩(550)은 일정하다), 관찰들은 일반적으로 시간에 대해 변할 것이다(예컨대, 로봇 디바이스(580)가 태스크를 수행하기 위해 이동하므로).
도 5b의 제어 네트워크(530)는 일련의 제어 지시들로서 로봇 디바이스(580)에 의해 수행될 동작들(α)을 생성한다. 이 예에서, 제어 지시들은 모터 제어 지시들(570)(연속적인 시간 스텝들(t)에 걸쳐 일련의 모터 제어 지시들(570)을 나타내기 위해, 도 5b에서 mt로서 도시됨)을 포함한다. 모터 제어 지시들(570)은 일련의 모터 동작들을 수행하도록 로봇 디바이스(580)를 제어하기 위해 사용된다. 예를 들어, 모터 제어 지시들(570)은 예컨대, 로봇 디바이스(580)의 하나 이상의 모터들을 제어함으로써, 특정한 팔 관절 각들, 엔드-이펙터 위치들, 관절 속도들, 자세 측정들, 위치들 등을 채택하도록 로봇 디바이스(580)에 지시할 수 있다. 이러한 방식으로, 로봇 디바이스(580)는, 수동 컨트롤러(585)를 통한 인간 입력을 요구하지 않고, 제어 네트워크(530)에 의해 태스크를 수행하도록 제어될 수 있다.
도 5a 및 도 5b의 예에서, 태스크 임베딩 네트워크(520) 및 제어 네트워크(530) 중 적어도 하나는 제 1 태스크를 포함하는, 적어도 하나의 트레이닝 태스크의 트레이닝 샘플들을 포함한 트레이닝 세트에 대해 트레이닝될 수 있다. 그러나, 태스크 임베딩(550)을 생성하기 위해 태스크 임베딩 네트워크(520)에 의해 수신된 태스크는 제 2 태스크일 수 있으며, 이것은 제 1 태스크와 상이하다. 다시 말해서, 태스크 임베딩 네트워크(520)는 테스트 시간에 사용된 것들과 상이한 태스크들에 대해 트레이닝될 수 있다. 예를 들어, 제 1 태스크는 적색 오브젝트에 도달하는 태스크일 수 있으며 제 2 태스크는 청색 오브젝트로 뻗는 태스크일 수 있다. 그럼에도 불구하고, 태스크 임베딩 네트워크(520)를 사용함으로써, 제어 시스템(510)은 제 2 태스크가 어떻게 제 1 태스크와 상이한지를 캡처하는 태스크 임베딩(550)에 제 2 태스크를 적절하게 매핑시킬 수 있을 것이다. 이것은, 결과적으로, 제어 네트워크(530)가 제 1 태스크보다는, 제 2 태스크를 수행하기 위한 제어 지시들을 더 정확하게 결정하도록 허용할 수 있다. 이러한 방식으로, 제어 시스템(510)은 예를 들어, 태스크 임베딩 네트워크(520) 및/또는 제어 네트워크(530)를 재트레이닝하지 않고, 새로운 태스크들을 더 양호하게 학습하거나 또는 그 외 그것에 적응할 수 있다. 그러므로, 로봇 디바이스(580)는 효율적인 방식으로 새로운 태스크의 하나 이상의 데모들로부터 새로운 태스크를 학습할 수 있다.
몇몇 경우들에서, 태스크 임베딩(550)을 획득하기 위해 사용된 태스크의 데모들(540)은 제 1 환경에서 태스크의 수행에 대한 관찰들을 포함할 수 있다. 그러나, 제 2 환경에서 태스크를 수행하는 것이 바람직할 수 있으며, 따라서 로봇 디바이스(580)의 복수의 관찰들(560)은 제 2 환경에서 태스크의 수행에 대한 관찰들을 포함할 수 있다. 제 1 및 제 2 환경들은 적어도 서로 상이한 구성들을 가질 수 있다. 예를 들어, 동일한 오브젝트들이 제 1 및 제 2 환경들에 존재할 수 있다. 그러나, 제 1 및 제 2 환경들에서 오브젝트들의 상대적 위치는 서로 상이할 수 있다. 그렇지만, 다른 경우들에서, 제 1 및 제 2 환경들은 상이한 위치들에 대응할 수 있다. 예를 들어, 제 1 환경은 실내 환경일 수 있으며 제 2 환경은 바깥쪽일 수 있다. 그럼에도 불구하고, 제 1 및 제 2 환경들 간의 차이들에도 불구하고, 예들에서 제어 시스템(510)은 제 2 환경에서의 로봇 디바이스(580)의 관찰들(560)에 기초하여, 제 2 환경에서 태스크를 수행하기 위해 로봇 디바이스(580)에 대한 제어 지시들을 생성할 수 있다. 예를 들어, 태스크 임베딩 네트워크(520)는 태스크의 표현이 획득되도록 허용하며, 이것은 예를 들어, 환경에서의 변화들에 대해 비교적 불변이다. 태스크 임베딩 네트워크(520)에 의해 획득된 태스크 임베딩(550)의 강력함은 그러므로, 태스크를 수행하기 위한 로봇 디바이스의 관찰된 환경이 태스크가 시연되는 환경과 상이할지라도, 태스크의 주어진 데모에 대한 적절한 동작을 정확하게 예측하기 위한 제어 네트워크(530)의 능력을 개선한다.
도 6은 태스크 임베딩 네트워크(620)의 동작의 예(600)를 예시한 개략도이다. 태스크 임베딩 네트워크(620)는 제 1 태스크의 샘플들(610) 및 제 2 태스크의 샘플들(615)을 수신한다. 샘플들의 각각의 세트는 특정한 태스크에 대한 "지원 세트"인 것으로 고려될 수 있다. 제 1 태스크의 샘플들(610)은 제 1 태스크의 4개의 관찰들을 포함하며, 그 중 하나는 도면에서 참조 번호(612)를 갖고 라벨링된다. 제 2 태스크의 샘플들(615)은 제 2 태스크의 두 개의 관찰들을 포함하며, 그 중 하나는 도면에서 참조 번호(616)를 갖고 라벨링된다.
태스크 임베딩 네트워크(620)를 트레이닝하는 것은 예를 들어 트레이닝 샘플들로서 샘플들(610, 615)의 각각을 사용하는 것을 수반한다. 태스크 임베딩 네트워크(620)는 샘플들(610, 615)을 임베딩하거나 또는 그 외 그것을, 태스크의 간편한 표현일 수 있는, 각각의 태스크의 표현에 매핑한다. 이러한 표현은 문장으로 불리울 수 있다. 태스크의 표현은 잠재 표현일 수 있다. 잠재 표현은 예를 들어, 태스크의 관찰들에 기초한 추론된 표현이며, 이것은 예를 들어, 태스크 임베딩 네트워크(620)에 의해 추론된다. 태스크는 수치로, 통상적으로 텐서 또는 벡터와 같은 다-차원 수치 표현을 사용하여 표현될 수 있다. 태스크 임베딩은, 임베딩 공간에서 태스크의 위치가 상기 태스크의 유형에 대한 정보를 제공할 수 있으므로(예컨대, 그것이 푸싱 태스크인지, 리프팅 태스크 등인지), 샘플들(610, 615) 자체보다 의미 있을 수 있다. 반대로, 데모의 관찰의 픽셀 값들은 상기 관찰에서 수행되는 태스크의 유형, 및 그것이 태스크의 상이한 관찰과 유사한지 또는 상이한지에 관한 제한된 정보를 제공할 수 있다.
도 6은 단순화된 임베딩 공간(640)에서 샘플들(610, 615)의 각각의 임베딩을 도시한다. 보여질 수 있는 바와 같이, 제 1 태스크의 샘플들(610)은 임베딩 공간(640)에 비교적 서로 가까우며 임베딩 공간(640)에서 제 2 태스크의 샘플들(615)보다 서로에 더 가깝다. 주어진 태스크에 대한 임베딩 네트워크(620)에 의해 생성된 임베딩들은 평균치 또는 평균 함수일 수 있는, 집계 함수를 사용하여 종합될 수 있다. 이러한 방식으로, 제 1 태스크를 나타내는 제 1 임베딩(642) 및 제 2 태스크를 나타내는 제 2 임베딩(646)이 획득될 수 있다.
그 다음에, 태스크의 추가 샘플(630)은 태스크 임베딩 네트워크(620)를 사용하여 프로세싱될 수 있다. 추가 샘플(630)은 "질의 세트"인 것으로 고려될 수 있다. 손실 함수는 태스크 임베딩 네트워크(620)에 대한 이상적인 또는 최적의 임베딩을 학습하기 위해 산출될 수 있다. 도 8을 참조하여 추가로 설명되는 바와 같이, 손실 함수는 상이한 태스크들의 예들과 특정한 태스크의 예들의 비교를 수반한, 태스크 임베딩 손실일 수 있으며, 따라서 태스크 임베딩 네트워크(620)는 임베딩 공간(640)의 상이한 영역들에 상이한 요청들을 매핑하도록 학습한다.
예를 들어, 트레이닝 동안, 손실 함수 항은 제 1 임베딩(642) 및 제 2 임베딩(646)(예컨대, 지원 세트들의 각각에 대한 태스크 임베딩들)과 비교될 수 있는 추가 샘플(630)(질의 세트)에 대응하는 태스크의 태스크 임베딩(654)을 비교할 수 있다. 예를 들어, 구성 가능한 마진을 가진 힌지 손실 함수가 사용될 수 있다. 이러한 손실 함수는 제 1 태스크를 나타내는 제 1 임베딩(642)을 향해 제 1 태스크의 샘플들을 매핑하며 제 1 태스크의 샘플들로부터 멀리 제 2 태스크를 나타내는 제 2 임베딩(646)을 이동하도록 태스크 임베딩 네트워크(620)를 가르치기 위해 사용될 수 있다.
이러한 방식으로, 태스크 임베딩 네트워크(620)는 공유 세트의 특성들을 가진 두 개의 태스크들에 대한 태스크 임베딩들이 상이한 세트의 특성들을 가진 두 개의 태스크들에 대한 태스크 임베딩들보다 임베딩 공간(640)에 더 가깝도록 태스크 임베딩들을 생성하기 위해 사용될 수 있다. 예를 들어, 도 6에서, 추가 태스크(630)는 제 1 샘플 세트(610)보다 제 2 샘플 세트(615)에 더 가까운 것으로 간주된다. 이것은 태스크들 간의 유사성이 임베딩 공간(640)에서의 그것들의 거리에 기초하여 식별되도록 허용한다. 더욱이, 보이지 않는 태스크들이 임베딩 공간(640)에서 적절한 위치에 매핑될 수 있으며, 이것은 태스크 임베딩 네트워크(620)가 트레이닝된 다른 태스크들에 대한 그것들의 유사성을 나타낼 수 있다. 이러한 방식으로 태스크들을 매핑함으로써, 제어 네트워크는 태스크 임베딩 네트워크(620) 또는 제어 네트워크를 재트레이닝하지 않고, 보이지 않는 태스크들을 수행하도록 로봇 디바이스에 지시하기 위한 제어 지시들의 적절한 세트를 더 쉽게 식별할 수 있을 것이다. 도 6에서, 화살표들(652, 654 및 656)은 임베딩 공간에 샘플을 매핑하는 동작을 나타낼 수 있다. 힌지 랭크 손실은 두 개의 다른 태스크 세트들 간의 차이(라인(660)으로 표현됨)가 적어도 마진(각도(665)로 표현됨)만큼 크도록 추가 샘플(630)의 내적을 이끌 수 있다. 태스크 임베딩 네트워크의 트레이닝은 주어진 태스크에 대한 질의 세트에 더 가깝도록 주어진 태스크에 대한 지원 세트에 대한 총 태스크 임베딩을 이동시키도록 동작하며 또한 주어진 태스크에 대한 질의 세트로부터 더 멀리 상이한 태스크들(소위 "부정 문장들")에 대한 총 태스크 임베딩들을 이동시키도록 동작할 수 있다.
도 7은 예에 따라 로봇 디바이스를 제어하는 방법(700)을 도시한다. 로봇 디바이스는 각각의 실제 또는 시뮬레이션된 환경에서 동작들을 수행할 수 있는 임의의 실제 또는 시뮬레이션된 디바이스를 포함할 수 있다. 예를 들어, 로봇 디바이스는 이전 도면들 중 임의의 것에서 도시된 바와 같이 로봇 디바이스를 포함할 수 있다.
블록 710에서, 제 1 콘텍스트에서 수행되는 태스크의 적어도 하나의 관찰이 수신된다. 이전에 논의된 바와 같이, 태스크는 미리 정의된 목표 또는 목적을 달성하기 위해 수행될 동작들의 세트로서 정의될 수 있다. 용어 "콘텍스트"는 태스크에 대한 환경 구성을 나타낸다. 예를 들어, 제 1 콘텍스트는 특정한 공간에 배열된 특정한 세트의 오브젝트들을 포함한 제 1 환경 구성과 관련될 수 있다. 태스크의 관찰은 태스크와 연관된 동작들이 수행되는 하나 이상의 시간 기간들에 걸친 감각 데이터를 포함한다. 예를 들어, 관찰은 환경에서의 특정한 위치에 환경에서의 특정한 오브젝트를 두는 로봇 또는 인간과 같은, 태스크를 수행하는 엔티티의 비디오 데이터를 포함할 수 있다. 비디오 데이터는 태스크가 수행될 때의 시간을 커버하는 적어도 두 개의 프레임들을 포함할 수 있다. 태스크의 관찰은 태스크의 데모인 것으로 취해질 수 있다. 감각 데이터는 태스크가 수행되고 있는 환경에 위치된 임의의 센서로부터 캡처될 수 있다. 예를 들어, 비디오 데이터뿐만 아니라, 또는 그 대신에, 관찰은 자세 데이터, 위치 데이터, 모터 제어 데이터, 환경 내에서의 오브젝트들로부터의 데이터, 터치 또는 접촉 데이터, 오디오 데이터 등을 포함할 수 있다.
블록 720에서, 태스크 임베딩은 적어도 하나의 관찰에 기초하여 생성된다. 이것은 관찰로부터의 감각 데이터를 프로세싱하는 것을 포함할 수 있다. 이러한 프로세싱은 트레이닝된 신경망 구조에 의해 수행될 수 있다. 이러한 아키텍처는 이전에 설명된 바와 같이 태스크 임베딩 네트워크를 포함할 수 있다. 감각 데이터가 프로세싱되며 수치 형태로, 예컨대 하나 이상의 n 차원 어레이들로서 트레이닝된 신경망 아키텍처로 공급될 수 있고, 여기에서 n은 1 이상이다. 비디오 데이터의 프레임을 표현한 이미지는 값들의 1 또는 2차원 어레이로서 공급될 수 있으며, 예컨대, 비디오 데이터는 각각의 프레임이 크기 x*y*c의 어레이도록 프로세싱될 수 있고, 여기에서 x는 이미지 폭이고, y는 이미지 높이이며, c는 컬러 채널들의 수이다. 태스크 임베딩은 미리 정의된 크기의 수치 값들(예컨대, 10 내지 128)의 어레이를 포함할 수 있다. 태스크 임베딩의 크기는 구현에 따라 달라질 수 있으며 구성 가능한 파라미터로서 설정될 수 있다. 이미지 데이터 프로세싱에 대해, 트레이닝된 신경망 아키텍처는 컨볼루션 신경망 아키텍처를 포함할 수 있다.
블록 710 및 블록 720은 태스크 임베딩이 태스크에 대해 생성되는 소위 "데모" 단계를 나타낸다. 이것은 블록 730 내지 블록 750에 대해 상이한 시간에 수행될 수 있다. 하나의 경우에서, 블록 730 내지 블록 750은 획득된 태스크 임베딩에 적용될 수 있다. 예를 들어, 태스크 임베딩은 메모리로부터 로딩되며 블록들(730 내지 750)을 수행하기 위해 공급될 수 있다. 블록들(730 내지 750)은 "테스트" 또는 "수행" 단계를 나타내며, 여기에서 로봇 디바이스는 태스크 임베딩에 의해 표현되는 태스크를 수행하도록 지시된다. 수행 단계는 제 2 콘텍스트에서 수행된다. 제 2 콘텍스트는 제 1 콘텍스트와 상이할 수 있다. 예를 들어, 태스크는 오브젝트들의 제 1 위치 및 구성을 가진 제 1 환경에서 시연될 수 있으며 오브젝트들의 제 2 위치 및 구성을 가진 제 2 환경에서 이러한 태스크를 수행하는 것이 요구될 수 있다. 특정한 경우들에서, 제 1 및 제 2 콘텍스트들은 상이한 시간들에서, 및/또는 환경에 존재하는 상이한 세트들의 오브젝트들을 갖고, 공통 환경, 예컨대, 공통 위치를 포함할 수 있다. 이러한 의미에서 "오브젝트들"은 살아있는 및 살아있지 않은 엔티티들, 및 정적 및 동적 오브젝트들 모두를 나타낼 수 있다.
데모 단계에서 시연되며 그 후 수행 단계에서 모방되는 태스크의 몇몇 비-제한적인 예들은: 두 개의 상이한 환경들에서 도어를 개방하는 것(예컨대, 로봇 팔을 사용하여), 테스트 설정 및 제조 설정에서 두 개의 부분들을 어셈블리하는 것, 제 1 설정에서 특정한 리셉터클에 특정한 오브젝트를 두며 상이한 설정에서 동일한 리셉터클에 동일한 오브젝트를 두는 것, 상이한 환경들에서 특정한 오브젝트(예컨대, 적색 십자)로 이동하는 것, 시뮬레이션된 환경에서 일련의 모터 동작들을 수행하며 실-세계 환경에서 동일한 시퀀스의 모터 동작들을 수행하는 것 등을 포함한다.
도 7에서의 블록들(730 내지 750)은 제 2 콘텍스트에서 로봇 디바이스에 의해 수행될 연속적인 동작들에 대해 반복되도록 구성된다. 로봇 디바이스는 블록(710)에서 수신된 관찰에서 특징으로 하는 동일한 엔티티일 수 있거나, 또는 그것은 상이한 엔티티일 수 있다. 예를 들어, 블록들(730 내지 750)에 관하여 사용되는 로봇 디바이스는 실-세계 디바이스를 포함할 수 있는 반면, 관찰의 엔티티는 동일한 디바이스의 시뮬레이션을 포함할 수 있거나; 또는 블록들(730 내지 750)에 관하여 사용되는 로봇 디바이스는 관찰에서 특징으로 하는 인간에 의해 수행된 동작들을 모방하려고 시도할 수 있다.
블록 730에서, 제 2 콘텍스트에서 로봇 디바이스와 연관된 감각 데이터는 주어진 동작에 앞선 시간에 수신된다. 감각 데이터는 도 2에서 도시된 로봇 디바이스에 대한 팔 관절 각도들, 엔드-이펙터 위치들, 관절 속도들, 자세 측정들 등과 같은, 모터 운동 데이터 및 로봇 디바이스를 특징으로 하는 비디오 데이터의 프레임을 포함할 수 있다. 블록들(730 내지 750)의 초기 런에서, 감각 데이터는 제 2 콘텍스트에서 로봇 디바이스의 관찰 및 로봇 디바이스에 대한 초기 모터 구성을 포함할 수 있다.
블록 740에서, 태스크 임베딩 및 감각 데이터는 주어진 동작을 위해 로봇 디바이스에 대한 제어 지시들에 매핑된다. 이러한 매핑은 입력으로서, 예컨대 수치 값들의 어레이들의 형태로 태스크 임베딩 및 감각 데이터를 취하는 트레이닝된 신경망 아키텍처에 의해 수행될 수 있다. 태스크 임베딩은 블록(740)의 각각의 반복에 대한 동일한 값을 가질 수 있지만, 감각 데이터는 로봇 디바이스가 환경과 상호작용하므로 및/또는 환경이 시간에 따라 변하므로 변할 수 있다. 제어 지시들은 원하는 모터 또는 관절 각도들, 원하는 모터 또는 관절 속도들, 원하는 키-포인트 또는 관절 위치들, 및 원하는 자세 구성들 중 하나 이상과 같은, 로봇 디바이스를 구동하기 위해 사용되는 수치 값들의 어레이를 포함할 수 있다. 제어 지시들은 블록(730)에서 수신된 임의의 모터 운동 데이터와 동일한 포맷으로 있거나 또는 있지 않을 수 있다. 매핑을 수행하기 위해 사용된 신경망 아키텍처는 구현에 의존하여 다수의 구성들을 가질 수 있다. 예를 들어, 감각 데이터가 이미지 데이터를 포함한다면, 트레이닝된 신경망 아키텍처는 컨볼루션 층들을 포함할 수 있으며, 여기에서 하나 이상의 층들의 출력, 더하기 임의의 비-선형성들은 모터 운동 데이터와 같은 다른 감각 데이터에 적용된, 피드-포워드 층들의 하나 이상의 출력들, 더하기 임의의 비-선형성들과 조합될 수 있다.
블록 750에서, 로봇 디바이스는 제어 지시들을 사용하여 주어진 동작을 수행하도록 지시된다. 이것은 수치 값들의 1- 또는 다-차원 어레이에 표현된 모터 구성을 시행하는 것을 포함할 수 있다. 블록들(730 내지 750)은 동기식으로 또는 비동기식으로 수행될 수 있다. 전자의 경우에, 시스템 클록은 감각 데이터가 수신될 때 및 동작이 수행될 때 지시할 수 있다. 후자의 경우에, 블록들은 프로세싱이 완료되자마자 순차적으로 수행될 수 있으며, 예컨대, 일단 모터 피드백이 제어 지시들이 작동되었음을 나타내면, 감각 데이터에 대한 요청이 전송되며 블록(730)이 수행될 수 있다.
특정한 경우들에서, 태스크의 적어도 하나의 관찰은 적어도 두 개의 시간 스텝들에 대한 이미지 데이터를 포함한다. 적어도 두 개의 시간 스텝들은 태스크가 제 1 콘텍스트에서 수행되는 시간 기간을 커버한다. 예를 들어, 두 개의 시간 스텝들은 t=0 및 t=T를 포함할 수 있으며, 여기에서 태스크는 T 시간 유닛들에서 수행된다. 이미지 데이터는 로봇 디바이스가 제 1 콘텍스트에서 태스크를 수행하는 것을 도시한 적어도 하나의 이미지를 나타낼 수 있다. 예를 들어, 그것은 주어진 시간에 비디오 데이터의 프레임을 포함할 수 있으며, 여기에서 비디오 캡처 디바이스는 로봇 디바이스를 관찰하도록 위치된다. 로봇 디바이스와 연관된 감각 데이터는 로봇 디바이스가 제 2 콘텍스트에서 태스크를 수행하는 것을 도시한 적어도 하나의 이미지를 나타내는 이미지 데이터 및 로봇 디바이스에 대한 상태 데이터 중 적어도 하나를 포함할 수 있다. 상기 논의된 바와 같이, 상태 데이터는 모터 구성 및/또는 운동 데이터를 포함할 수 있다. 제어 지시들은 제 2 콘텍스트에서 로봇 디바이스의 움직임을 가능하게 하기 위해 로봇 디바이스의 하나 이상의 작동기들에 대한 지시들을 포함할 수 있다. 움직임은 도 2에서 로봇 팔의 관절들과 같은, 로봇 디바이스의 하나 이상의 부분들의 움직임, 및/또는 제 2 콘텍스트의 환경 내에서 로봇 디바이스의 위치의 변화를 포함할 수 있다.
도 7의 방법(700)은 예컨대, 블록들(720 및 740) 중 하나 이상을 수행하기 위해, 트레이닝된 신경망 아키텍처를 사용하여 수행될 수 있다. 하나의 경우에서, 트레이닝된 신경망 아키텍처들은 블록(720)에서 태스크 임베딩을 생성하기 위한 태스크 임베딩 네트워크 및 블록(740)에서 로봇 디바이스에 대한 제어 지시들에 태스크 임베딩 및 감각 데이터를 매핑하기 위한 제어 네트워크를 포함한다. 이들 네트워크들은 이전에 설명된 태스크 임베딩 네트워크 및 제어 네트워크의 구현들을 포함할 수 있다. 제어 네트워크는 예컨대, 강화 학습 접근법들에서 사용된 바와 같이, 이러한 매핑을 수행하기 위해 정책을 사용할 수 있다.
트레이닝된 신경망 아키텍처는 태스크 임베딩 네트워크 및 제어 네트워크의 각각에 대한 파라미터들을 로딩함으로써 방법(700)을 수행하도록 초기화될 수 있다. 이들 파라미터들은 트레이닝 절차를 통해 설정되는 값들을 가질 수 있다. 트레이닝 절차는 적어도 하나의 관찰을 수신하기 전 시점에서 국소적으로 또는 원격으로 수행될 수 있다. 예를 들어, 트레이닝은 트레이닝 세트를 국소적으로 프로세싱함으로써 또는 원격 위치에서 트레이닝 세트를 프로세싱하고 파라미터 값들을 트레이닝된 신경망 아키텍처의 로컬 구현에 전송함으로써 수행될 수 있다. 파라미터들은 복수의 트레이닝 태스크들의 트레이닝 샘플들을 포함한 트레이닝 데이터에 대한 태스크 임베딩 네트워크 및 제어 네트워크의 공동 트레이닝으로부터 기인한 값들을 가질 수 있다. 각각의 트레이닝 샘플은 수행되는 주어진 트레이닝 태스크의 하나 이상의 관찰들 및 트레이닝 태스크를 수행하기 위해 취해진 대응 동작들을 포함할 수 있다. 예를 들어, 복수의 트레이닝 샘플들은 복수의 태스크들의 각각에 대해 공급될 수 있다. 각각의 트레이닝 샘플은 관찰 데이터 및 동작 데이터를 포함한 튜플을 포함할 수 있으며, 여기에서 관찰 데이터 및 동작 데이터는 수치 표현(예컨대, 값들의 다차원 어레이)을 포함할 수 있다. 관찰 데이터는 블록(710) 및/또는 블록(730)에서 수신되는 관찰 데이터와 동일한 형태일 수 있다. 동작 데이터는 블록(730)에서 수신된 감각 데이터 및/또는 블록(740)에서 생성된 제어 지시들과 형태를 공유할 수 있다. 각각의 트레이닝 샘플은 주어진 환경에서 연관된 태스크를 수행하는 엔티티(예컨대, 인간 또는 프로그램된 로봇 디바이스)를 기록함으로써 생성될 수 있다. 각각의 트레이닝 샘플은 관찰 및 동작 데이터의 궤적, 예컨대, 태스크가 수행되는 시간(예컨대, 시간 스텝들 0 내지 T)에 걸쳐 확장되는 일련의 튜플들을 포함할 수 있다.
하나의 경우에서, 태스크 임베딩 네트워크 및 제어 네트워크의 트레이닝은 공동으로 수행되며, 즉 양쪽 네트워크들 모두에 대한 파라미터들은 하나의 네트워크에 대한 에러들이 다른 네트워크에 대한 손실 함수에서 사용될 수 있는 공동 또는 공유된 트레이닝 절차에서 최적화된다. 네트워크들을 공동으로 트레이닝하는 것은 더 풍부하고 더 의미 있는 태스크 임베딩을 가능하게 하며, 예컨대 태스크 임베딩은 태스크 임베딩 네트워크에 대한 트레이닝에서 제어 네트워크에 대한 제어 손실을 사용함으로써 제어 네트워크에 대한 더 큰 활용을 갖도록 최적화될 수 있다.
도 8은 태스크 임베딩 네트워크 및 제어 네트워크의 공동 트레이닝을 위한 트레이닝 반복(800)을 도시한다. 트레이닝 반복은 태스크 임베딩 네트워크 및 제어 네트워크에 대한 파라미터들의 최적화를 가능하게 하기 위해 손실 값(Li)을 생성한다. 예를 들어, 트레이닝의 목표는 손실 값을 최소화하는 것일 수 있으며 트레이닝으로부터의 에러들은, 예컨대 손실 값을 계산하는 손실 함수의 구배에 기초하여, 트레이닝 반복 동안 파라미터들의 값들을 업데이트하기 위해, 구별 가능한, 두 개의 네트워크를 통해 역-전파된다. 도 8은 예로서 제공되는 트레이닝 반복을 수행하기 위한 방법을 도시하며; 다양한 다른 방법들이 대안적으로 사용될 수 있고 도 8의 방법으로부터의 변화들이 고려된다. 도 8에 도시된 트레이닝 반복(800)은 도 4에 도시된 트레이닝을 구현하기 위해 사용될 수 있다.
블록 810에서, 트레이닝 데이터의 세트로부터의 트레이닝 태스크들의 세트가 샘플링된다. 예를 들어, 트레이닝 데이터가, 각각의 태스크가 다수의 궤적들에 관한 트레이닝 데이터를 갖는, 복수의 태스크들에 대한 궤적들을 포함한다면, 블록(810)은 태스크들의 서브세트를 선택하는 것을 포함할 수 있다. 샘플링은 태스크들의 랜덤 샘플을 취하는 것을 포함할 수 있다(예컨대, 각각의 태스크는 트레이닝 태스크들의 세트에 대해 선택될 동일한 가능성을 갖는다). 배치 크기는 트레이닝 태스크들의 세트에 있는 태스크들의 수를 설정하기 위해 정의될 수 있다. 태스크들을 샘플링하는 것은 관리 가능한 트레이닝 반복을 가능하게 하지만 특정한 예들에서 생략될 수 있으며, 예컨대 트레이닝 태스크들의 세트는 트레이닝 데이터에서의 모든 태스크들을 포함할 수 있다.
본 예에서, 블록들(820 내지 840)은 트레이닝 태스크들의 세트에서 각각의 주어진 태스크에 대해 반복된다. 블록 820에서, 주어진 태스크에 대한 지원 세트가 결정된다. 지원 세트는 태스크를 수행하는 로봇 디바이스의 제 1 세트의 관찰들을 포함한다. 관찰들은 태스크에 대한 예시적인 관찰들의 세트로부터 샘플링될 수 있다. 예를 들어, 지원 세트는 적어도 궤적들의 랜덤하게 샘플링된 서브세트로부터 관찰 데이터를 획득함으로써 생성될 수 있다. 지원 세트의 크기는 구성 가능한 파라미터일 수 있다. 주어진 태스크에 대한 지원 세트는 주어진 태스크의 예들의 그룹을 나타내며, 예컨대 그것들은 태스크를 "기술하는" 것으로 취해질 수 있다. 태스크의 각각의 예는 상이할 수 있다(예컨대, 상이한 환경 구성들을 가질 수 있고, 상이한 시간들에서 수행된 태스크를 나타낼 수 있으며, 및/또는 공통 태스크를 수행할 때 상이한 시도들을 나타낼 수 있다). 블록 830에서, 주어진 태스크에 대한 질의 세트가 결정된다. 질의 세트는 주어진 태스크를 수행하는 로봇 디바이스의 제 2 세트의 관찰들을 포함하며, 여기에서 제 1 및 제 2 세트의 관찰들은 서로소이다(즉, 태스크에 대한 지원 세트 및 질의 세트는 서로소이다). 질의 세트의 샘플링은 지원 세트에 대한 샘플링과 유사할 수 있으며, 서로소 제약이 적용된다. 질의 세트는 태스크의 하나 이상의 예들을 나타내며, 예컨대 질의 세트는 태스크를 수행하기 위한 네트워크의 능력을 테스트하기 위해 사용된다. 블록 840에서, 태스크 임베딩 네트워크는 지원 세트에 대한 태스크 임베딩 및 질의 세트에 대한 태스크 임베딩을 계산하기 위해 사용된다. 이것은 도 7에서 블록 720과 유사한 동작을 포함할 수 있다. 다수의 예들에 대해, 예컨대, 지원 세트에서, 각각의 예에 대한 태스크 임베딩들(예컨대, 예로부터 비디오 데이터의 초기 및 최종 프레임을 사용하여 계산된 바와 같이)은 집계 함수를 사용하여 조합될 수 있다. 집계 함수는 평균치 또는 평균 함수일 수 있으며, 예컨대, 따라서 지원 세트에 대한 총 태스크 임베딩은 지원 세트에서의 각각의 개개의 예에 대한 태스크 임베딩들의 평균을 포함한다.
일단 블록들(820 내지 840)이 트레이닝 태스크들의 세트에서 태스크들 모두에 대해 반복되었다면, 블록 850은 태스크 임베딩 네트워크 및 제어 네트워크에 대한 손실 함수를 초기화하기 위해 수행된다. 이것은 손실 값, 또는 손실 값의 구성요소들을 0으로 설정하는 것을 포함할 수 있다. 블록들(860 내지 880)은 그 후 블록들(820 및 830)로부터의 지원 세트 및 질의 세트 및 블록(840)으로부터의 태스크 임베딩들을 사용하여 트레이닝 태스크들의 세트에서 각각의 태스크에 대해 반복된다.
블록 860에서, 태스크 임베딩 손실이 결정된다. 태스크 임베딩 손실은 태스크 임베딩 네트워크에 대한 손실 함수 항으로부터 기인한다. 태스크 임베딩 네트워크에 대한 손실 함수 항은 상이한 태스크들의 예들과 특정한 태스크의 예들을 비교하며, 따라서 손실 값의 최적화는 태스크 임베딩 공간에서의 상이한 태스크들을 분리한다. 하나의 경우에서, 태스크 임베딩 네트워크에 대한 손실 함수 항은 주어진 태스크에 대한 지원 세트 및 상이한 태스크들에 대한 지원 세트들 모두의 총 태스크 임베딩들과 질의 세트에서의 하나 이상의 예들의 태스크 임베딩들을 비교한다. 예를 들어, 구성 가능한 마진을 가진 힌지 손실 함수가 사용될 수 있다. 힌지 손실 함수는 도 6을 참조하여 설명된 바와 같이 임베딩 공간에서 태스크 구별을 가능하게 할 수 있다. 힌지 손실 함수는 주어진 태스크에 대한 질의 세트를 위한 태스크 임베딩과 주어진 태스크에 대한 지원 세트를 위한 태스크 임베딩 사이에서의 제 1 유사성 척도를 주어진 태스크에 대한 질의 세트를 위한 태스크 임베딩과 주어진 태스크가 아닌 태스크들에 대한 지원 세트들을 위한 태스크 임베딩들의 세트로부터의 태스크 임베딩 사이에서의 제 2 유사성 척도와 비교할 수 있다. 합산들이 질의 세트에서의 예들에 걸쳐 및 상이한 태스크들의 지원 세트들에 대해 수행될 수 있다. 하나의 경우에서, 질의 세트 태스크 임베딩은 주어진 태스크가 아닌 트레이닝 태스크들의 세트에서 모든 태스크들에 대한 각각의 지원 세트 태스크 임베딩과 비교될 수 있으며, 이것은 질의 세트에서의 각각의 예에 대해 반복될 수 있다. 유사성 척도는 두 개의 태스크 임베딩들 사이에서의 코사인 거리를 포함할 수 있다.
블록 870에서, 제어 손실이 지원 세트에 대해 결정된다. 제어 손실은 제어 네트워크에 대한 적어도 하나의 손실 함수 항을 계산하는 것에서 비롯된다. 이 경우에, 두 개의 손실 함수 항들이 있다. 적어도 하나의 손실 함수 항은 실제로 주어진 태스크를 수행하기 위해 취해진 동작들에 대한 제어 지시들과 제어 네트워크에 의해 예측된 제어 지시들을 비교한다. 블록 870에서, 손실 함수 항은 주어진 태스크에 대한 지원 세트를 위한 정책 손실 항을 포함한다. 이것은, 예를 들어, 지원 세트에서, 예에서 지원 세트 태스크 임베딩 및 특정한 시간 스텝(예컨대, 특정한 관찰-동작 쌍)에 적용된 바와 같은 정책 및 예에서 동일한 시간 스텝에 적용된 바와 같이 "전문가" 또는 이상적인 정책 사이에서의 차이를 계산하는 것을 포함할 수 있다. 실제로, 후자의 전문가 정책은 특정한 관찰-동작 쌍에서 동작의 값에 의해 표현될 수 있다. 그러므로, 블록(870)은 예들로부터 지원 세트 태스크 임베딩 및 관찰들에 제어 네트워크를 적용하는 것 및 예들로부터의 동작들과 이것의 출력을 비교하는 것을 포함할 수 있다. 손실 값은 지원 세트에서 각각의 예 또는 궤적에 대한 L2 거리로서 계산될 수 있다. 하나 이상의 시간 스텝들이 비교될 수 있다. 블록 880에서, 유사한 산출이 질의 세트에 대한 제어 손실을 결정하기 위해 수행된다. 이것은 질의 세트의 예들에 동일한 동작들을 적용하는 것을 포함할 수 있다. 블록(880)은 주어진 태스크에 대한 질의 세트를 위한 정책 손실 항을 계산하는 것을 포함할 수 있다. 지원 세트 및 질의 세트 모두에 대한 제어 손실을 계산하는 것은 이점들을 갖는다: 지원 세트 제어 손실은 질의 세트 손실을 사용한 학습을 보완하며(지원 세트 손실을 최소화하는 것은 예시적인 의존 정보가 임베딩 공간을 통해 통과될 수 있으므로 질의 세트 손실을 최소화한 더 용이한 버전으로서 보여질 수 있다); 그것은 주어진 예들을 반복할 수 있는 원하는 속성을 제공한다(예컨대, 지원 세트는 질의 세트에 관하여 수행된 학습을 확인한다).
블록들(860 내지 880)의 각각의 반복, 및 각각의 블록으로부터의 결과들은 손실 값(Li)을 계산하기 위해 합산될 수 있다. 특정한 경우들에서, 가중은 블록들(860 내지 880)의 각각으로부터의 결과들에 적용될 수 있으며, 여기에서 가중들은 네트워크들에 대한 하이퍼파라미터들이다. 트레이닝 반복의 출력(Li)은 태스크 임베딩 네트워크 및 제어 네트워크에 대한 파라미터 값들을 결정하도록 손실 함수를 반복적으로 최적화하기 위해 사용될 수 있다.
여기에서 설명된 예시적인 방법들에서, 태스크 임베딩은 태스크의 표현을 제공한다. 예를 들어, 태스크 임베딩은 수치 형태로 표현되는(예컨대, 부동 값들) 태스크의 특성들의 학습된 잠재 표현인 것으로 보여질 수 있다. 트레이닝은 상이한 세트의 특성들을 가진 두 개의 태스크들에 대한 태스크 임베딩들보다 임베딩 공간에 더 가까운 공유 세트의 특성들을 가진 두 개의 태스크들에 대한 태스크 임베딩들을 야기한다. 트레이닝은 배치에서 고유 태스크들의 세트를 샘플링하는 것을 수반할 수 있으며, "부정" 임베딩들 또는 문장들은 배치에서 다른 태스크들 모두로부터 생성될 수 있고, 예컨대, 배치에서의 각각의 태스크는 배치에서의 모든 다른 태스크에 비교될 수 있다. 임의의 힌지 손실에 대해, 마진은 구성 가능한 파라미터(예컨대, 0.01 내지 1의 범위에서의)로서 설정될 수 있다. 특정한 경우들에서, 트레이닝된 태스크 임베딩 네트워크는 태스크들을 분류하기 위해 사용될 수 있다. 이러한 분류의 정확도는 배치에서 다른 태스크들에 대해 임베딩 공간 내에서의 가장 가까운-이웃 탐색을 수행함으로써 추정될 수 있다. 힌지 손실이 이 예에서, 예컨대, 내적 유사성 척도를 갖고 사용되지만, L2 손실 등과 같은, 다른 손실 함수들이 다른 예들에서 사용될 수 있다.
도 9는 프로세서(910) 및 컴퓨터-실행 가능한 지시들(930)을 포함한 비-일시적 컴퓨터-판독 가능한 저장 매체(920)의 예(900)를 도시한다. 컴퓨터-실행 가능한 지시들은, 프로세서(910)에 의해 실행될 때, 프로세서(910)를 포함한 컴퓨팅 디바이스와 같은, 컴퓨팅 디바이스로 하여금 태스크 임베딩 네트워크를 트레이닝하게 한다. 지시들은 상기 설명된 예시적인 방법들과 유사한 방법이 수행되는 것을 야기할 수 있다.
지시(935)를 통해, 트레이닝 데이터는 적어도 태스크 임베딩 네트워크를 포함한 제어 시스템을 위해 획득된다. 태스크 임베딩 네트워크는 태스크 임베딩에 입력 데이터를 매핑하도록 구성된다. 태스크 임베딩 네트워크는 이전 예들 중 임의의 것에서 설명된 바와 같이 태스크 임베딩 네트워크를 포함할 수 있다. 트레이닝 데이터는 제어 가능한 디바이스에 의해 하나 이상의 콘텍스트들에서 수행되는 하나 이상의 태스크들에 대한 관찰-동작 데이터 쌍들을 포함할 수 있다. 제어 가능한 디바이스는 로봇 디바이스를 포함할 수 있고 앞서 언급한 컴퓨팅 디바이스와 동일한 디바이스이거나 또는 아닐 수 있으며, 예컨대 프로세서(910)를 포함한 컴퓨팅 디바이스는 통신적으로 결합된 로봇 디바이스를 제어하기 위해, 또는 하나 이상의 원격 디바이스들을 제어하도록 태스크들을 임베딩하기 위해 사용될 수 있는 트레이닝된 태스크 임베딩 네트워크를 생성하기 위해 지시들(930)을 실행할 수 있다.
지시들(940)을 통해, 지원 세트 및 질의 세트가 트레이닝 데이터 내에서 표현된 트레이닝 태스크들의 세트의 각각에 대해 생성된다. 지원 세트 및 질의 세트는 도 8의 블록들(820 및 830)을 참조하여 설명된 바와 같이 생성될 수 있다. 지시들(940)은 트레이닝 태스크들의 세트에서 주어진 태스크에 대해, 지원 세트 태스크 임베딩을 생성하기 위해 주어진 태스크에 대한 제 1 세트의 관찰-동작 쌍들에 태스크 임베딩 네트워크를 적용하며, 질의 세트 태스크 임베딩을 생성하기 위해 주어진 태스크에 대한 제 2 세트의 관찰-동작 쌍들에 태스크 임베딩 네트워크를 적용하도록 프로세서에 지시하는 것일 수 있으며, 상기 제 1 및 제 2 세트의 관찰-동작 쌍들은 서로소이다. 관찰-동작 쌍들은 태스크 궤적에 대한 시간 스텝들을 포함할 수 있다. 특정한 경우에서, 단지 관찰 데이터만이 태스크 임베딩을 계산하기 위해 사용될 수 있다. 지원 세트 태스크 임베딩 및/또는 질의 세트 태스크 임베딩은 상기 설명된 바와 같이 총 태스크 임베딩을 포함할 수 있다.
지시들(950)을 통해, 제어 시스템에 대한 손실 함수가 제어 시스템에 대한 트레이닝 가능한 파라미터들을 위한 값들을 결정하기 위해 최적화된다. 이 경우에 제어 시스템에 대한 손실 함수는 태스크 임베딩 네트워크에 대한 손실 함수의 함수이며, 여기에서 태스크 임베딩 네트워크에 대한 손실 함수는 지원 세트 및 질의 세트에 대한 유사성 척도의 비교에 기초한다. 손실 함수는 도 8에서 블록(860)에서 계산된 것과 유사한 손실 함수일 수 있다. 주어진 태스크에 대한 질의 세트 태스크 임베딩 및 주어진 세트에 대한 지원 세트 태스크 임베딩 간의 유사성 척도는 주어진 태스크에 대한 질의 세트 태스크 임베딩 및 주어진 태스크가 아닌 태스크에 대한 지원 세트 태스크 임베딩 간의 유사성 척도에 비교될 수 있다. 태스크 임베딩 네트워크에 대한 손실 함수는 힌지 손실 함수를 포함할 수 있으며 유사성 척도는 내적 유사성을 포함할 수 있다.
특정한 경우들에서, 제어 시스템은 입력 데이터 및 태스크 임베딩 네트워크로부터의 태스크 임베딩을 제어 가능한 디바이스에 대한 동작 데이터에 매핑하기 위한 정책을 적용하기 위해 제어 네트워크를 포함한다. 이 경우에, 제어 시스템에 대한 손실 함수는 제어 네트워크에 대한 손실 함수의 함수이며 주어진 태스크를 위한 제어 네트워크에 대한 손실 함수는 지원 세트를 위한 정책 손실 및 질의 세트를 위한 정책 손실을 포함한다. 예를 들어, 제어 시스템에 대한 손실 함수는 도 8에서 블록들(870 및 880)을 참조하여 설명된 바와 같이 계산될 수 있다.
특정한 경우들에서, 관찰-동작 데이터 쌍들의 각각 내에서의 관찰 데이터는 각각, 관찰-동작 데이터 쌍과 연관된 동작 이전에 캡처되는 제어 가능한 디바이스를 특징으로 하는 적어도 하나의 이미지를 나타내는 이미지 데이터를 포함한다. 이 경우에, 관찰 데이터는 태스크의 수행 동안 캡처된다.
지시들(930)은 적어도 태스크 임베딩 네트워크에 대한 트레이닝된 파라미터들의 세트를 야기한다. 태스크 임베딩 네트워크는 그 후 태스크가 태스크에 대한 태스크 임베딩을 생성하기 위해 제 1 콘텍스트에서 로봇 디바이스에 의해 수행되는 것을 도시하는 관찰 데이터에 적용될 수 있다. 태스크 임베딩은 제 1 콘텍스트에서 추출한, 예컨대 다른 콘텍스트들에서 변할 수 있는 제 1 콘텍스트의 특정한 특징들에 의해 강하게 영향을 받지 않은 잠재 표현을 제공하는 방식으로 태스크를 나타낼 수 있다. 태스크 임베딩은 로봇 디바이스에 대한 고-레벨 지시의 형태로서 보여질 수 있으며, 예컨대 그것은 제어 네트워크가 태스크를 수행하기 위해 로봇 디바이스를 제어할 수 있게 하기 위해 제어 네트워크에 공급될 수 있다. 제어 네트워크는 로봇 디바이스에 대한 일련의 제어 동작들에 제 2 콘텍스트에서의 로봇 디바이스에 대한 태스크 임베딩 및 감각 데이터를 반복적으로 매핑함으로써 로봇 디바이스를 제어할 수 있다. 이들 경우들에서, 감각 데이터는 제 2 콘텍스트에서의 제어 동작의 수행에 이어 업데이트되고 재매핑된다.
특정한 경우들에서, 여기에서 설명된 바와 같이 예들은 시뮬레이션-대-실제 콘텍스트에서 사용될 수 있으며, 여기에서 목적은 시뮬레이션 내에서 제어 네트워크에 대한 정책들을 학습하고 그 후 적은 부가적인 트레이닝을 갖고나 또는 그것 없이 실-세계 환경으로 이것들을 전달하는 것이다. 이것은 실 세계에서 다루기 힘들고 시간-소모적인 데이터 수집에 대한 요구를 감소시킬 수 있다. 시뮬레이션 동안, 랜덤화가, 예컨대 조명 위치, 카메라 위치, 오브젝트 텍스처, 오브젝트 크기들 및 오브젝트 형태들과 같은 인자들을 변경하기 위해 적용될 수 있다. 이것은 의미 있는 추상형 태스크 임베딩이 학습될 수 있게 하는 트레이닝 데이터를 제공한다.
여기에서 설명된 특정한 예들은 단-대-단 원-샷(또는 적어도 퓨-샷) 모방 학습을 가능하게 하는 메타-학습에 대한 접근법을 제공한다. 여기에서 설명된 특정한 예들은, 동일한 태스크의 상이한 예에 대한 동작을 예측하도록 제어 네트워크를 조절하기 위해 사용될 수 있는, 임베딩 네트워크를 통해 태스크에 대한 간편한 설명을 학습한다. 예시적인 제어 시스템들은 시뮬레이션에서 트레이닝되며 그 후 실-세계에서 배치될 수 있다. 일단 배치되면, 로봇 디바이스는 단일 또는 다수의 데모들로부터 새로운 태스크들을 계속해서 학습할 수 있다. 트레이닝 세트에 포함되는 태스크들을 구성함으로써, 태스크 임베딩 네트워크는 넓은 범위의 태스크들에 걸쳐 일반화할 수 있다. 특정한 예들에서, 새로운 태스크들은 시각 데이터에 기초하여 학습될 수 있다. 이것은 로봇 디바이스들로 하여금, 테스트 또는 수행 시간에 존재할 전문가 동작들 또는 상태들에 대한 요구 없이, 인간 조작자들에 의해 수동적으로 수행된 태스크들을 모방하도록 학습할 수 있게 한다.
상기 예들은 예시적인 것으로 이해될 것이다. 추가 예들이 고려된다. 임의의 하나의 예에 관하여 설명된 임의의 특징은 단독으로, 또는 설명된 다른 특징들과 조합하여 사용될 수 있으며, 또한 예들 중 임의의 다른 것의 하나 이상의 특징들과 조합하여, 또는 예들 중 임의의 다른 것의 임의의 조합으로 사용될 수 있다는 것이 이해될 것이다. 더욱이, 상기 설명되지 않은 등가물들 및 수정들이 또한 첨부된 청구항들의 범위에서 벗어나지 않고 이용될 수 있다.
Claims (22)
- 로봇 디바이스를 위한 제어 시스템에 있어서,
상기 제어 시스템은,
태스크의 하나 이상의 데모들을 수신하고 태스크 임베딩을 생성하기 위한 태스크 임베딩 네트워크 - 상기 태스크 임베딩은 상기 태스크의 표현을 포함하며, 각각의 데모는 상기 태스크의 수행의 하나 이상의 관찰들을 포함함 -; 및
상기 태스크 임베딩 네트워크로부터 상기 태스크 임베딩을 수신하고 상기 로봇 디바이스의 복수의 연속적인 관찰들을 상기 로봇 디바이스에 대한 대응하는 제어 지시들에 매핑하도록 정책을 적용하기 위한 제어 네트워크;
를 포함하며,
상기 제어 네트워크에 의해 적용된 상기 정책은 상기 태스크 임베딩 네트워크로부터의 상기 태스크 임베딩을 사용하여 상기 로봇 디바이스의 복수의 연속적인 관찰들에 걸쳐 조절되는, 제어 시스템. - 청구항 1에 있어서,
상기 태스크 임베딩 네트워크 및 상기 제어 네트워크는 각각 적어도 하나의 환경에서 적어도 하나의 트레이닝 태스크의 트레이닝 샘플들을 포함한 트레이닝 세트에 대한 공동 트레이닝으로부터 기인한 대응하는 파라미터들을 포함하며, 각각의 트레이닝 샘플은 주어진 환경에서 주어진 트레이닝 태스크의 하나 이상의 관찰들 및 상기 주어진 환경에서 상기 로봇 디바이스에 의해 수행된 해당 동작들을 포함하는, 제어 시스템. - 청구항 1 또는 청구항 2에 있어서,
상기 태스크 임베딩 네트워크 및 상기 제어 네트워크 중 적어도 하나는 적어도 하나의 트레이닝 태스크의 트레이닝 샘플들을 포함한 트레이닝 세트에 대해 트레이닝되고;
상기 적어도 하나의 트레이닝 태스크는 제 1 태스크를 포함하며;
상기 태스크 임베딩 네트워크에 의해 수신된 상기 태스크는 상기 제 1 태스크와는 상이한, 제 2 태스크이고 그럼으로써 상기 제어 네트워크는 상기 제 2 태스크를 수행하기 위해 상기 로봇 디바이스의 상기 복수의 연속적인 관찰들을 상기 로봇 디바이스에 대한 상기 대응하는 제어 지시들에 매핑하게 상기 정책을 적용하도록 구성되는, 제어 시스템. - 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
상기 태스크의 상기 하나 이상의 데모들은 제 1 환경에서 상기 태스크의 상기 수행의 하나 이상의 관찰들을 포함하고,
상기 제어 지시들은 상기 로봇 디바이스가 제 2 환경에서 상기 태스크를 수행하게 하는 제어 지시들을 포함하고, 상기 제 1 및 제 2 환경들은 적어도 상이한 구성들을 가지며,
상기 로봇 디바이스의 상기 복수의 연속적인 관찰들은 상기 제 2 환경에서 상기 로봇 디바이스의 관찰들을 포함하는, 제어 시스템. - 청구항 1 내지 청구항 4 중 어느 한 항에 있어서,
상기 태스크의 상기 수행의 상기 하나 이상의 관찰들은 상기 태스크를 수행하는 상기 로봇 디바이스의 적어도 하나의 이미지를 나타내는 이미지 데이터를 포함하며 상기 제어 지시들은 상기 로봇 디바이스의 하나 이상의 모터들에 대한 모터 제어 지시들을 포함하는, 제어 시스템. - 청구항 1 내지 청구항 5 중 어느 한 항에 있어서,
상기 태스크 임베딩 네트워크 및 상기 제어 네트워크는 각각 적어도 하나의 시뮬레이션된 환경에서 적어도 하나의 트레이닝 태스크의 트레이닝 샘플들을 포함한 트레이닝 세트에 대한 공동 트레이닝으로부터 기인한 대응하는 파라미터들을 포함하며, 각각의 트레이닝 샘플은 주어진 시뮬레이션된 환경에서 주어진 트레이닝 태스크의 하나 이상의 관찰들 및 상기 주어진 시뮬레이션된 환경에서 상기 로봇 디바이스의 시뮬레이션에 의해 수행된 해당 동작들을 포함하는, 제어 시스템. - 로봇 디바이스를 제어하는 방법에 있어서, 상기 제어 방법은,
제 1 콘텍스트에서 수행되는 태스크의 적어도 하나의 관찰을 수신하는 단계;
상기 적어도 하나의 관찰에 기초하여 태스크 임베딩을 생성하는 단계; 및
제 2 콘텍스트에서 상기 로봇 디바이스에 의해 수행될 연속적인 동작들에 대해,
주어진 동작에 앞선 시간에 상기 제 2 콘텍스트에서 상기 로봇 디바이스와 연관된 감각 데이터를 수신하는 단계;
상기 주어진 동작에 대해 상기 로봇 디바이스에 대한 제어 지시들에 상기 태스크 임베딩 및 상기 감각 데이터를 매핑하는 단계; 및
상기 제어 지시들을 사용하여 상기 주어진 동작을 수행하도록 상기 로봇 디바이스에 지시하는 단계;
를 포함하는, 제어 방법. - 청구항 7에 있어서,
태스크의 상기 적어도 하나의 관찰은 적어도 2개의 시간 스텝들에 대한 이미지 데이터를 포함하고, 상기 적어도 2개의 시간 스텝들은 상기 태스크가 상기 제 1 콘텍스트에서 수행되는 시간 기간을 커버하고, 상기 이미지 데이터는 상기 로봇 디바이스가 상기 제 1 콘텍스트에서 상기 태스크를 수행하는 것을 보여주는 적어도 하나의 이미지를 나타내는, 제어 방법. - 청구항 7 또는 청구항 8에 있어서,
상기 로봇 디바이스와 연관된 상기 감각 데이터는 상기 로봇 디바이스가 상기 제 2 콘텍스트에서 상기 태스크를 수행하는 것을 보여주는 적어도 하나의 이미지를 나타내는 이미지 데이터 및 상기 로봇 디바이스에 대한 상태 데이터 중 적어도 하나를 포함하며, 상기 제어 지시들은 상기 로봇 디바이스의 하나 이상의 작동기들이 상기 제 2 콘텍스트에서 상기 로봇 디바이스의 움직임을 가능하게 하는 지시들을 포함하는, 제어 방법. - 청구항 7 내지 청구항 9 중 어느 한 항에 있어서,
상기 적어도 하나의 관찰을 수신하기 전에,
태스크 임베딩 네트워크 및 제어 네트워크를 구성하기 위해 대응하는 파라미터들을 로딩하는 단계 - 상기 태스크 임베딩 네트워크는 상기 태스크 임베딩을 생성하는 데 사용되며 상기 제어 네트워크는 상기 로봇 디바이스에 대한 상기 제어 지시들에 상기 태스크 임베딩 및 상기 감각 데이터를 매핑하는 데 사용되고, 상기 파라미터들은 복수의 트레이닝 태스크들의 트레이닝 샘플들을 포함한 트레이닝 데이터에 대한 상기 태스크 임베딩 네트워크 및 상기 제어 네트워크의 공동 트레이닝으로부터 기인하고, 상기 트레이닝 샘플들은 수행되는 상기 복수의 트레이닝 태스크들의 하나 이상의 관찰들 및 상기 트레이닝 태스크를 수행하기 위해 취해진 해당 동작들을 포함함;
를 포함하는, 제어 방법. - 청구항 7 내지 청구항 10 중 어느 한 항에 있어서,
상기 적어도 하나의 관찰을 수신하기 전에, 상기 태스크 임베딩을 수행하기 위한 태스크 임베딩 네트워크와 및 상기 태스크 임베딩 및 상기 감각 데이터로부터 상기 로봇 디바이스에 대한 상기 제어 지시들로의 매핑을 수행하게 정책을 적용하기 위한 제어 네트워크를 공동으로 트레이닝하는 단계를 포함하는, 제어 방법. - 청구항 11에 있어서,
상기 태스크 임베딩 네트워크와 상기 제어 네트워크를 공동으로 트레이닝하는 단계는, 트레이닝 반복 동안,
트레이닝 데이터의 세트로부터 트레이닝 태스크들의 세트를 샘플링하는 단계;
상기 트레이닝 태스크들의 세트 내 각각의 주어진 태스크에 대해,
상기 태스크를 수행한 상기 로봇 디바이스의 제 1 세트의 관찰들을 포함한 상기 주어진 태스크에 대한 지원 세트를 결정하고,
상기 태스크를 수행한 상기 로봇 디바이스의 제 2 세트의 관찰들을 포함한 상기 주어진 태스크에 대한 질의 세트를 결정하며 - 상기 제 1 및 제 2 세트의 관찰들은 서로소(disjoint)임 -,
상기 지원 세트에 대한 태스크 임베딩 및 상기 질의 세트에 대한 태스크 임베딩을 계산하기 위해 상기 태스크 임베딩 네트워크를 사용하는, 단계;
상기 태스크 임베딩 네트워크 및 상기 제어 네트워크에 대한 손실 함수를 초기화하는 단계; 및
상기 트레이닝 태스크들의 세트 내 각각의 주어진 태스크에 대해,
상기 태스크 임베딩 네트워크에 대한 손실 함수 항을 계산하는 단계 - 상기 손실 함수 항은 상기 주어진 태스크에 대한 상기 질의 세트를 위한 태스크 임베딩 및 상기 주어진 태스크에 대한 상기 지원 세트를 위한 태스크 임베딩 간의 제 1 유사성 척도를 상기 주어진 태스크에 대한 상기 질의 세트를 위한 태스크 임베딩 및 상기 주어진 태스크가 아닌 태스크들에 대한 지원 세트들을 위한 태스크 임베딩들의 세트로부터의 태스크 임베딩 간의 제 2 유사성 척도와 비교하는 힌지 손실 함수를 포함함 -;
를 포함하며;
상기 트레이닝 반복은 상기 태스크 임베딩 네트워크 및 상기 제어 네트워크에 대한 파라미터 값들을 결정하도록 상기 손실 함수를 최적화하기 위해 반복되는, 제어 방법. - 청구항 12에 있어서,
상기 태스크 임베딩 네트워크와 상기 제어 네트워크를 공동으로 트레이닝하는 단계는, 트레이닝 반복 동안,
상기 트레이닝 태스크들의 세트 내 각각의 주어진 태스크에 대해,
상기 제어 네트워크에 대한 적어도 하나의 손실 함수 항을 계산하는 단계 - 상기 적어도 하나의 손실 함수 항은 상기 주어진 태스크를 수행하기 위해 취해진 동작들에 대한 제어 지시들과 상기 제어 네트워크를 사용한 예측된 제어 지시들의 비교를 포함함 -;
를 포함하며,
상기 제어 네트워크에 대한 상기 적어도 하나의 손실 함수 항은 주어진 태스크에 대한 상기 지원 세트를 위한 정책 손실 항 및 상기 주어진 태스크에 대한 상기 질의 세트를 위한 정책 손실 항을 포함하는, 제어 방법. - 청구항 10 내지 청구항 13 중 어느 한 항에 있어서,
상기 태스크 임베딩은 상기 태스크의 표현을 제공하며, 공유 세트의 특성들을 가진 2개의 태스크들에 대한 태스크 임베딩들은 상이한 세트의 특성들을 가진 2개의 태스크들에 대한 태스크 임베딩들보다 임베딩 공간에서 더 가까운, 제어 방법. - 청구항 10 내지 청구항 14 중 어느 한 항에 있어서,
상기 태스크 임베딩 네트워크 및 상기 제어 네트워크에 대한 파라미터들의 세트는 시뮬레이션된 로봇 디바이스를 사용하여 시뮬레이션된 환경에서 학습되는, 제어 방법. - 비-일시적 컴퓨터-판독 가능한 저장 매체로서,
프로세서에 의해 실행될 때, 컴퓨팅 디바이스가,
적어도 태스크 임베딩 네트워크를 포함한 제어 시스템에 대한 트레이닝 데이터를 획득하는 단계 - 상기 태스크 임베딩 네트워크는 태스크 임베딩에 입력 데이터를 매핑하도록 구성되고, 상기 트레이닝 데이터는 제어 가능한 디바이스에 의해 하나 이상의 콘텍스트들에서 수행되는 하나 이상의 태스크들에 대한 관찰-동작 데이터 쌍들을 포함함 -;
상기 트레이닝 데이터 내에 표현된 트레이닝 태스크들의 세트의 각각의 트레이닝 태스크에 대한 지원 세트 및 질의 세트를 생성하는 단계 - 상기 생성하는 것은, 상기 트레이닝 태스크들의 세트에서 주어진 태스크에 대해,
지원 세트 태스크 임베딩을 생성하기 위해 상기 주어진 태스크에 대한 제 1 세트의 관찰-동작 쌍들에 상기 태스크 임베딩 네트워크를 적용하는 것과,
질의 세트 태스크 임베딩을 생성하기 위해 상기 주어진 태스크에 대한 제 2 세트의 관찰-동작 쌍들에 상기 태스크 임베딩 네트워크를 적용하는 것
을 포함하고, 상기 제 1 및 제 2 세트의 관찰-동작 쌍들은 서로소임 -; 및
상기 제어 시스템에 대한 트레이닝 가능한 파라미터들에 대한 값들을 결정하기 위해 상기 제어 시스템에 대한 손실 함수를 최적화하는 단계 - 상기 제어 시스템에 대한 상기 손실 함수는 상기 태스크 임베딩 네트워크에 대한 손실 함수의 함수이고, 상기 태스크 임베딩 네트워크에 대한 손실 함수는 상기 지원 세트 및 상기 질의 세트에 대한 유사성 척도의 비교에 기초하여 이루어짐-;
를 수행하게 하는 컴퓨터-실행 가능한 지시들이 저장되어 있으며,
주어진 태스크에 대한 상기 질의 세트 태스크 임베딩 및 상기 주어진 태스크에 대한 지원 세트 태스크 임베딩 간의 유사성 척도는 상기 주어진 태스크에 대한 상기 질의 세트 태스크 임베딩 및 상기 주어진 태스크가 아닌 태스크에 대한 지원 세트 태스크 임베딩 간의 유사성 척도에 비교되는, 비-일시적 컴퓨터-판독 가능한 저장 매체. - 청구항 16에 있어서,
상기 제어 시스템은 상기 입력 데이터 및 상기 태스크 임베딩 네트워크로부터의 태스크 임베딩을 상기 제어 가능한 디바이스에 대한 동작 데이터에 매핑하기 위한 정책을 적용하기 위한 제어 네트워크를 포함하고;
상기 제어 시스템에 대한 손실 함수는 상기 제어 네트워크에 대한 손실 함수의 함수이고;
주어진 태스크를 위한 상기 제어 네트워크에 대한 손실 함수는 상기 지원 세트를 위한 정책 손실 및 상기 질의 세트를 위한 정책 손실을 포함하는, 비-일시적 컴퓨터-판독 가능한 저장 매체. - 청구항 16 또는 청구항 17에 있어서,
상기 관찰-동작 데이터 쌍들의 각각 내에서의 관찰 데이터는 각각, 상기 관찰-동작 데이터 쌍과 연관된 동작 이전에 캡처되는 상기 제어 가능한 디바이스를 특징으로 하는 적어도 하나의 이미지를 나타내는 이미지 데이터를 포함하고, 상기 관찰 데이터는 태스크의 수행 동안 캡처되는, 비-일시적 컴퓨터-판독 가능한 저장 매체. - 청구항 16 내지 청구항 18 중 어느 한 항에 있어서,
상기 태스크 임베딩 네트워크에 대한 손실 함수는 힌지 손실 함수를 포함하며 상기 유사성 척도는 내적 유사성을 포함하는, 비-일시적 컴퓨터-판독 가능한 저장 매체. - 청구항 16 내지 청구항 19 중 어느 한 항에 있어서,
상기 지시들은, 프로세서에 의해 실행될 때, 상기 컴퓨팅 디바이스가,
제 1 콘텍스트에서 로봇 디바이스에 의해 수행되는 태스크를 보여주는 관찰 데이터를 수신하는 단계;
태스크 임베딩을 생성하기 위해 트레이닝 후 상기 관찰 데이터에 상기 제어 시스템의 태스크 임베딩 네트워크를 적용하는 단계; 및
상기 제 2 콘텍스트에서 상기 태스크 임베딩 및 상기 로봇 디바이스에 대한 감각 데이터를 상기 로봇 디바이스에 대한 제어 동작들의 시퀀스에 반복적으로 매핑하는 단계 - 상기 감각 데이터는 상기 제 2 콘텍스트에서 제어 동작의 수행에 이어 업데이트되고 재매핑됨 -;
를 수행하게 하는, 비-일시적 컴퓨터-판독 가능한 저장 매체. - 로봇 디바이스를 위한 제어 네트워크에 있어서,
상기 제어 네트워크는,
태스크의 하나 이상의 데모들로부터 생성된 상기 태스크의 표현을 포함한 태스크 임베딩을 수신하도록 구성되고,
상기 로봇 디바이스의 복수의 연속적인 관찰들을 상기 로봇 디바이스에 대한 대응하는 제어 지시들에 매핑하게 정책을 적용하도록 구성되며,
상기 제어 네트워크에 의해 적용된 상기 정책은 상기 태스크 임베딩을 사용하여 상기 로봇 디바이스의 복수의 연속적인 관찰들에 걸쳐 조절되는, 제어 네트워크. - 청구항 21에 있어서,
상기 제어 지시들은 모터 제어 지시들을 포함하며 상기 제어 네트워크는 상기 모터 제어 지시들을 사용하여 상기 로봇 디바이스의 하나 이상의 모터들을 제어하도록 구성되는, 제어 네트워크.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1815431.0A GB2577312B (en) | 2018-09-21 | 2018-09-21 | Task embedding for device control |
GB1815431.0 | 2018-09-21 | ||
PCT/GB2019/052520 WO2020058669A1 (en) | 2018-09-21 | 2019-09-10 | Task embedding for device control |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210060519A true KR20210060519A (ko) | 2021-05-26 |
Family
ID=64024252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217010651A KR20210060519A (ko) | 2018-09-21 | 2019-09-10 | 디바이스 제어를 위한 태스크 임베딩 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12053886B2 (ko) |
JP (1) | JP2022501725A (ko) |
KR (1) | KR20210060519A (ko) |
CN (1) | CN112771540A (ko) |
GB (1) | GB2577312B (ko) |
WO (1) | WO2020058669A1 (ko) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113168553A (zh) * | 2018-09-28 | 2021-07-23 | 英特尔公司 | 机器人移动设备及相关方法 |
EP3753684B1 (en) * | 2019-06-21 | 2022-08-10 | Robert Bosch GmbH | Method and system for robot manipulation planning |
JP7505555B2 (ja) | 2020-06-08 | 2024-06-25 | 日本電信電話株式会社 | 学習装置、学習方法及びプログラム |
JP7452657B2 (ja) | 2020-07-14 | 2024-03-19 | 日本電気株式会社 | 制御装置、制御方法及びプログラム |
US20220068445A1 (en) * | 2020-08-31 | 2022-03-03 | Nec Laboratories America, Inc. | Robust forecasting system on irregular time series in dialysis medical records |
US20220161423A1 (en) * | 2020-11-20 | 2022-05-26 | Naver Corporation | Transformer-Based Meta-Imitation Learning Of Robots |
EP4102405A1 (en) * | 2021-06-10 | 2022-12-14 | Naver Corporation | Demonstration-conditioned reinforcement learning for few-shot imitation |
CN113674324B (zh) * | 2021-08-27 | 2024-10-18 | 常州唯实智能物联创新中心有限公司 | 基于元学习的类级别6d位姿追踪方法、系统及装置 |
US20230153607A1 (en) * | 2021-11-17 | 2023-05-18 | Tata Consultancy Services Limited | Method and system for attentive one shot meta imitation learning from visual demonstration |
US20230191605A1 (en) | 2021-12-17 | 2023-06-22 | Nvidia Corporation | Neural networks to generate robotic task demonstrations |
US20230191596A1 (en) | 2021-12-17 | 2023-06-22 | Nvidia Corporation | Neural networks to generate robotic task demonstrations |
CN114454176B (zh) * | 2022-03-11 | 2024-03-12 | 深圳鹏行智能研究有限公司 | 机器人的控制方法、控制装置、机器人和存储介质 |
US20240028949A1 (en) | 2022-07-20 | 2024-01-25 | Hitachi, Ltd. | Reward feedback for learning control policies using natural language and vision data |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843236B2 (en) * | 2012-03-15 | 2014-09-23 | GM Global Technology Operations LLC | Method and system for training a robot using human-assisted task demonstration |
US9403273B2 (en) * | 2014-05-23 | 2016-08-02 | GM Global Technology Operations LLC | Rapid robotic imitation learning of force-torque tasks |
US9630318B2 (en) * | 2014-10-02 | 2017-04-25 | Brain Corporation | Feature detection apparatus and methods for training of robotic navigation |
US20170249561A1 (en) * | 2016-02-29 | 2017-08-31 | GM Global Technology Operations LLC | Robot learning via human-demonstration of tasks with force and position objectives |
CN115338859A (zh) * | 2016-09-15 | 2022-11-15 | 谷歌有限责任公司 | 机器人操纵的深度强化学习 |
US20180261131A1 (en) * | 2017-03-07 | 2018-09-13 | Boston Incubator Center, LLC | Robotic Instructor And Demonstrator To Train Humans As Automation Specialists |
EP3616129A1 (en) * | 2017-09-20 | 2020-03-04 | Google LLC | Optimizing policy controllers for robotic agents using image embeddings |
-
2018
- 2018-09-21 GB GB1815431.0A patent/GB2577312B/en active Active
-
2019
- 2019-09-10 JP JP2021515620A patent/JP2022501725A/ja not_active Withdrawn
- 2019-09-10 CN CN201980061818.5A patent/CN112771540A/zh active Pending
- 2019-09-10 KR KR1020217010651A patent/KR20210060519A/ko not_active Application Discontinuation
- 2019-09-10 WO PCT/GB2019/052520 patent/WO2020058669A1/en active Application Filing
-
2021
- 2021-03-19 US US17/207,281 patent/US12053886B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB2577312B (en) | 2022-07-20 |
WO2020058669A1 (en) | 2020-03-26 |
CN112771540A (zh) | 2021-05-07 |
GB2577312A (en) | 2020-03-25 |
US20210205988A1 (en) | 2021-07-08 |
JP2022501725A (ja) | 2022-01-06 |
US12053886B2 (en) | 2024-08-06 |
GB201815431D0 (en) | 2018-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12053886B2 (en) | Device control using policy training based on task embeddings | |
Zhu et al. | Reinforcement and imitation learning for diverse visuomotor skills | |
Bonardi et al. | Learning one-shot imitation from humans without humans | |
US20220063089A1 (en) | Machine learning methods and apparatus related to predicting motion(s) of object(s) in a robot's environment based on image(s) capturing the object(s) and based on parameter(s) for future robot movement in the environment | |
US20240017405A1 (en) | Viewpoint invariant visual servoing of robot end effector using recurrent neural network | |
Zeng et al. | Learning synergies between pushing and grasping with self-supervised deep reinforcement learning | |
KR102023588B1 (ko) | 로봇 파지용 심층 기계 학습 방법 및 장치 | |
Kumar et al. | Learning dexterous manipulation policies from experience and imitation | |
US11823048B1 (en) | Generating simulated training examples for training of machine learning model used for robot control | |
JP7458741B2 (ja) | ロボット制御装置及びその制御方法及びプログラム | |
CN108284436B (zh) | 具有模仿学习机制的远程机械双臂系统及方法 | |
Bahl et al. | Hierarchical neural dynamic policies | |
Huang et al. | Grasping novel objects with a dexterous robotic hand through neuroevolution | |
CN113076615A (zh) | 基于对抗式深度强化学习的高鲁棒性机械臂操作方法及系统 | |
Inoue et al. | Transfer learning from synthetic to real images using variational autoencoders for robotic applications | |
CN114585487A (zh) | 通过使用基于视觉的机器人任务模型训练模拟到真实模型来减轻现实差距 | |
Vacaro et al. | Sim-to-real in reinforcement learning for everyone | |
Kim et al. | Giving robots a hand: Learning generalizable manipulation with eye-in-hand human video demonstrations | |
CN117769724A (zh) | 使用深度学习的对象检测和分类的合成数据集创建 | |
Chen et al. | A simple method for complex in-hand manipulation | |
Sun et al. | Learning from Few Demonstrations with Frame–Weighted Motion Generation | |
US11921492B2 (en) | Transfer between tasks in different domains | |
JP7205752B2 (ja) | ロボット制御装置、ロボット制御方法、及びロボット制御プログラム | |
Tekden et al. | Neural field movement primitives for joint modelling of scenes and motions | |
CN116719409A (zh) | 一种基于智能体主动交互的操作技能学习方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
WITB | Written withdrawal of application |