KR20190040506A - 로봇 조작을 위한 심층 강화 학습 - Google Patents

로봇 조작을 위한 심층 강화 학습 Download PDF

Info

Publication number
KR20190040506A
KR20190040506A KR1020197009013A KR20197009013A KR20190040506A KR 20190040506 A KR20190040506 A KR 20190040506A KR 1020197009013 A KR1020197009013 A KR 1020197009013A KR 20197009013 A KR20197009013 A KR 20197009013A KR 20190040506 A KR20190040506 A KR 20190040506A
Authority
KR
South Korea
Prior art keywords
robot
policy
episode
given
experience data
Prior art date
Application number
KR1020197009013A
Other languages
English (en)
Other versions
KR102211012B1 (ko
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 KR20190040506A publication Critical patent/KR20190040506A/ko
Application granted granted Critical
Publication of KR102211012B1 publication Critical patent/KR102211012B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • 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/008Artificial 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32335Use of ann, neural network
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33033Identification neural controller copies weight to system neural controller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33034Online learning, training
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39001Robot, manipulator control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39298Trajectory learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40499Reinforcement learning algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Fuzzy Systems (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Abstract

구현예들은 현재의 상태에 기초하여 로봇 액션을 결정하기 위한 정책을 파라미터화하는 정책 신경망을 트레이닝하기 위해 심층 강화 학습을 활용한다. 이러한 구현예들 중 일부는 동시에 작동하는 다수의 로봇으로부터 경험 데이터를 수집한다. 각 로봇은 각각의 태스크를 수행하는 탐색이고, 상기 에피소드 동안 상기 정책망 및 상기 정책망에 대한 현재의 정책 파라미터에 기초하여 각각 가이드되는 에피소드들의 반복적 수행중에 경험 데이터의 인스턴스를 생성한다. 상기 수집된 경험 데이터는 상기 에피소드들 동안 생성되어, 수집된 경험 데이터의 배치(batch)에 기초하여 상기 정책망의 정책 파라미터를 반복적으로 업데이트함으로써 상기 정책망를 트레이닝하는데 사용된다. 게다가, 상기 로봇들에 의해 수행된 복수의 에피소드 각각의 수행 전에, 상기 현재의 업데이트된 정책 파라미터는 에피소드의 실행에 이용하기 위해 제공(또는 검색)될 수 있다.

Description

로봇 조작을 위한 심층 강화 학습
많은 로봇은 하나 이상의 엔드 이펙터(end effector)를 사용하여 하나 이상의 객체(object)를 조작하도록 프로그래밍된다. 예를 들어, 로봇은 엔드 이펙터를 사용하여 객체에 힘을 가하여 해당 객체를 움직임일 수 있다. 예를 들어, 로봇은 객체를 반드시 파지하지 않고 객체를 이동시키기 위해 파지용 엔드 엔드 이펙터 또는 다른 엔드 이펙터를 이용할 수 있다. 또한, 예를 들어, 로봇은 "충격식" 그리퍼 또는 "진입식" 그리퍼(예를 들어, 핀, 바늘 등을 사용하여 객체를 물리적으로 관통하는)와 같은 파지용 엔드 이펙터를 이용하여 제1위치에서 객체를 픽업하고, 그 객체를 제2 위치로 이동시켜, 제2 위치에 객체를 내려놓을 수 있다.
이하에서 기술되는 구현예들은 하나 이상의 태스크(task)를 수행할 때 하나 이상이 로봇의 동작 성능을 향상시킨다. 하나 이상의 로봇의 성능은 하나 이상의 로봇을 사용하여 특정 물리적 태스크를 수행하기 위한 최적의 접근법 또는 정책의 신속한 학습을 용이하게 하는 본 명세서에 기술된 강화 학습 프로세스를 사용하여 향상된다. 로봇은 학습된 정책을 사용하여 태스크 수행의 효율성을 높일 수 있다. 기술된 강화 학습 프로세스가 수행됨에 따라 물리적 태스크는 예를 들어 로봇에 의해 더 빨리 및/또는 적은 전력 소비로 수행될 수 있다. 이러한 물리적 태스크는 부가적으로 또는 대안적으로 로봇의 성능의 다른 양태가 학습 프로세스에 따라 향상됨에 따라 보다 안전하게 수행되거나 정의된 안전 파라미터 내에서 계속 수행될 수 있다.
다음의 개시로부터 명백한 바와 같이, 학습 프로세스는 반복적일 수 있다. 하나 이상의 로봇은 새로운 반복이 로봇의 물리적 액션을 제어하는 컴퓨팅 장치(들)로 전달됨에 따라 특정 태스크에 대한 정책/접근법의 새로운 개량된 반복 각각에 따라 수행할 수 있다. 이와 같이, 학습 프로세스가 진행됨에 따라, 로봇에 의해 수행되는 물리적 액션의 관점에서, 위에서 언급된 효율성 향상이 빈번하게 발생할 수 있다. 결과적으로, 효율성 향상과 함께 로봇의 성능이 향상되는 속도가 특히 빨라 로봇은 다른 학습 기법보다 짧은 시간 안에 최적의 방식으로 물리적 태스크를 수행할 수 있다. 이는 로봇에서의 전력 소모 개선과 같은 앞서 언급한 이점이 초기 단계에서 경험됨을 알 수 있다. 이는 예를 들어 다른 컴퓨터 프로세서에 있는 하나 이상의 로봇에 대한 트레이닝 스레드와 경험 스레드 간의 분리에 대한 설명의 일부로서 아래에 설명되어 있다. 특히 정책 업데이트를 비동기식으로 풀링하는 다수의 로봇에 대해 트레이닝 알고리즘을 병렬화하면 주어진 수의 트레이닝 반복 후에 정책 신경망이 보다 정확하고 및/또는 견고해질 수 있다고 설명한다.
강화 학습의 목표는, 로봇 기술(본 명세서에서 태스크라고도 함)의 맥락에서, 로봇이 달성하려고 시도해야 하는 것의 사용자-제공 정의를 나타내는 보상 함수를 최대화하려고 시도하는 에이전트를 제어하는 것이다. 시간(t)의 상태(
Figure pct00001
)에서, 에이전트는 정책
Figure pct00002
에 따라 액션(
Figure pct00003
)을 선택하고 실행하며, 로봇의 동력학
Figure pct00004
에 따라 새로운 상태(
Figure pct00005
)로 전환하여, 보상(
Figure pct00006
)을 받는다. 강화 학습의 목표는 초기 상태 분포에서 보상의 기대 총액을 최대화하는 최적 정책(π*)을 찾는 것이다. 상기 보상은 전술한 바와 같이 성취될 로봇 태스크에 의존하는 보상 함수에 기초하여 결정된다. 따라서, 로봇 공학에서의 강화 학습은 주어진 로봇 태스크의 수행을 위한 최적의 정책을 학습하고자 한다.
본 명세서에 개시된 구현예는 현재 상태에 기초하여 로봇 액션을 결정하는 정책을 파라미터화하는 정책망을 트레이닝하기 위한 심층 강화 학습을 이용한다. 현재 상태는 로봇의 상태(예를 들어, 로봇의 관절 각도, 로봇의 엔드 이펙터(들)의 위치 및/또는 시간 도함수(미분계수) 및/또는 로봇 환경내의 하나 이상의 컴포넌트의 현재 상태(예를 들어, 로봇 환경내의 센서(들)의 현재 상태, 로봇 환경내의 타겟 객체(들)의 현재 자세(들))를 포함할 수 있다. 정책망은 심층 신경망과 같은 신경망일 수 있다. 예를 들어, 정책망은 현재 상태를 입력으로 받아들여, 신경망의 입력 및 학습된 정책 파라미터에 기초하여, 구현될 액션을 나타내는 출력을 생성하는 신경망일 수 있다. 예를 들어, 출력은 로봇의 각 액추에이터에 제공될 속도 명령 또는 로봇의 각 액츄에이터에 적용될 토크를 나타낼 수 있다. 로봇은 로봇의 각 제어 사이클에서 현재 상태를 정책 신경망에 적용하고, 상기 정책 신경망을 이용하여 현재 상태를 처리하여 출력을 생성하고, 상기 출력에 의해 지시된 액션을 수행하기 위한 제어 명령을 구현함으로써 정책 신경망을 이용할 수 있다. 제어 명령의 실행에 이어지는 상태는 다음 제어 사이클에서 현재 상태로서 사용될 수 있다.
본 명세서에 개시된 구현예는 동시에 작동하는 다수의 로봇으로부터 경험 데이터를 수집한다. 각 로봇은 태스크를 수행하는 각각의 탐색(explorations, 탐구)이고, 에피소드 동안 정책망 및 정책망에 대한 현재 정책 파라미터에 기초하여 각각 가이드되는 에피소드들의 반복적인 수행 중에 경험 데이터의 인스턴스들을 생성한다. 예를 들어, 에피소드 중에, 로봇은 에피소드 동안 로봇의 복수의 제어 사이클 중 각각의 제어 사이클에서 경험 데이터의 인스턴스를 생성할 수 있다. 경험 데이터의 각 인스턴스는 대응하는: 현재/초기(beginning) 상태, 초기 상태로부터 전환된 후속 상태, 초기 상태에서 후속 상태로 전환하기 위해 실행되는 로봇 액션(액션이 정책망 및 그의 현재 정책망 파라미터에 대한 초기 상태의 적용에 기초하는 경우), 및 선택적으로 액션에 대한 보상(보상 함수에 기초하여 결정된)을 나타낼 수 있다. 수집된 경험 데이터는 에피소드 동안 생성되며, 수집된 경험 데이터의 배치(batch)에 기초하여 정책망의 정책 파라미터를 반복적으로 업데이트함으로써 정책망를 트레이닝하는데 사용된다. 또한, 로봇들에 의해 수행된 복수의 에피소드 각각의 수행 이전에, 현재의 업데이트된 정책 파라미터들은 에피소드의 수행에 이용하기 위해 제공(또는 검색)될 수 있다. 예를 들어, 각 로봇은 각 에피소드의 수행 전에 가장 최근의 트레이닝 반복으로부터 상기 업데이트된 정책 파라미터를 획득하여, 에피소드의 수행에 상기 업데이트된 정책 파라미터를 사용할 수 있다. 따라서, 각 에피소드의 경험 데이터는 가장 최근의(에피소드의 시작과 관련하여) 트레이닝반복으로부터의 업데이트된 정책 파라미터를 갖는 정책망에 기초한다.
많은 구현예에서, 정책망의 트레이닝은 다수 로봇의 경험 데이터 생성 및 수집과 관련하여 비동기적이다. 즉, 정책망를 트레이닝/업데이트하는 스레드(들)는 다수 로봇의 경험 데이터를 생성 및/또는 수집하는 스레드(들)와 분리된다. 예를 들어, 트레이닝/업데이트 스레드들은 하나 이상의 프로세서상에서 동작할 수 있고, 경험 스레드들은 상기 트레이닝/업데이트 스레드들을 동작시키는 하나 이상의 프로세서와 별개인 하나 이상의 부가 프로세서상에서 동작할 수 있다. 트레이닝 스레드와 경험 스레드 간의 분리(decoupling)는 트레이닝 속도와 경험 수집 속도의 차이가 종종 고정 주파수로 컨트롤을 보내는데 필요한 경험 데이터를 생성하는 로봇들의 제어 프로그램을 중단시키지 않도록 보장할 수 있다. 즉, 분리는 트레이닝 목적으로 해당 스레드를 중지하지 않고 대응하는 경험 스레드를 통해 경험 데이터 수집을 계속 수행할 수 있게 한다. 게다가, 분리는 트레이닝 스레드가 경험 스레드와 병렬로 작동하여, 정책망에 대한 정책 파라미터를 비동기적으로 그리고 반복적으로업데이트하고, 에피소드에 대한 업데이트된 정책 파라미터를 반복적으로 제공할 수 있게 한다. 또한, 많은 구현예에서 트레이닝 스레드(들)는 로봇들의 제어 주파수들 중 하나 이상(예컨대, 모두)(예를 들어, 20 Hz)보다 큰 주파수(예를 들어, 60 Hz)를 동작시킬 수 있다. 이들 구현예에서, 병렬로 작동하는 여러 로봇의 경험 데이터를 획득하여 별도의 스레드(들)에서 비동기적으로 트레이닝을 수행함으로써 실제 (예컨대, 벽 시계) 트레이닝 시간을 (여러 로봇의 경험 데이터를 이용하지 않는 기술과 비교하여) 감소시킬 수 있다. 예를 들어, 트레이닝은 버퍼에서 새로운 경험 데이터를 사용할 수 없기 때문에 임의의 지연(또는 덜 지연) 없이 발생할 수 있다. 또한, 예를 들어, 별도의 스레드는 경험 데이터 수집을 중지시켜 트레이닝을 가능하게 하거나 그 반대일 수 있다.
게다가, 다수 로봇의 경험 데이터의 활용 및 상기 트레이닝 스레드와 경험 수집 스레드의 분리는 그러한 기술을 이용하지 않는 경우보다 주어된 수의 트레이닝 반복 후에 더 정확하고 및/또는 견고한 모델을 산출할 수 있다. 이는 예를 들어, 로봇의 경험 데이터의 과거 인스턴스와 병렬로 동작하는 다른 로봇(들)의 경험 데이터의 과거 인스턴스를 기반으로 업데이트되는 정책 파라미터에 기초하여 소정 에피소드에서 로봇에 의해 생성된 경험 데이터 때문일 수 있다. 예를 들어, 로봇의 제3 에피소드에서, 제3 에피소드에서 사용된 정책 파라미터는 로봇의 제1 및/또는 제2 에피소드의 경험 데이터뿐만 아니라 병렬로 동작하는 로봇(들)의 제1 및/또는 제2 에피소드의 경험 데이터에 기초할 수 있다. 이러한 방식으로, 제3 에피소드에서 생성된 경험 데이터는 2개 이상의 이전 에피소드의 경험 데이터를 고려하여 트레이닝된 업데이트된 정책 파라미터를 갖는 정책망에 기초하며, 이는 업데이트된 정책 파라미터가 2개의 이전 에피소드의 경험 데이터만을 고려하여 트레이닝된 경우보다 신속한 수렴을 유도하는 경험 데이터가 제3 에피소드에서 생성될 수 있도록 할 수 있다.
본 명세서에 설명된 다양한 구현예에서, 경험 데이터를 생성하는 하나 이상의 다중 로봇은 서로에 대해 비동기적으로 동작할 수 있고 및/또는 상기 업데이트된 정책 파라미터는 에피소드 수행 이전에 비동기적으로 로봇에 제공(또는 검색)될 수 있다. 이러한 방식으로, 다수의 로봇 각각에 제공된 업데이트된 정책 파라미터는 서로 상대적으로 다를 수 있다. 예를 들어, 제1 시간에서 제1 로봇은 제1 로봇에 의해 수행될 에피소드에서 사용하기 위한 업데이트된 정책 파라미터를 획득할 수 있다. 제1 시간에서, 제2 로봇은 여전히 이전 에피소드를 수행하고 있을 수 있다. 제1 시간 다음의 제2 시간에서, 제2 로봇은 제2 로봇에 의해 수행되고 이전 에피소드에 바로 후속하는 에피소드에서 사용하기 위한 추가 업데이트된 정책 파라미터를 획득할 수 있다. 제2 시간에서, 획득된 추가 업데이트된 정책 파라미터는 (제1 및 제2 시간 사이에서 일어난 추가 트레이닝으로 인해) 제1 시간에서 제1 로봇에 의해 획득된 업데이트된 정책 파라미터와 다를 수 있다. 이러한 방식으로, 제1 시간에 제1 로봇에 의해 획득된 업데이트된 정책 파라미터는 이용을 위해 제2 로봇으로 제공되지 않는다. 오히려, 보다 최신의 추가 업데이트된 정책 파라미터가 획득된다.
일부 구현예에서, 방법은 각 에피소드가 태스크에 대한 강화 학습 정책을 나타내는 정책 신경망에 기초하여 태스크를 수행하는 탐색인 복수의 에피소드에 대한 복수의 로봇 각각의 에피소드 수행 중에: 상기 로봇들에 의해 상기 에피소드 동안 생성된 로봇 경험 데이터의 인스턴스를 버퍼에 저장하는 단계와, 상기 로봇 경험 데이터의 각 인스턴스는 에피소드들 중 대응하는 하나의 에피소드 동안 생성되고, 상기 대응하는 에피소드에 대한 정책 신경망을 위한 대응 정책 파라미터를 갖는 정책 신경망을 사용하여 생성된 대응 출력에 적어도 부분적으로 기초하여 생성되고; 상기 정책 신경망의 업데이트된 정책 파라미터를 반복적으로 생성하는 단계와, 상기 반복적으로 생성하는 단계의 반복들 각각은 상기 반복 동안 상기 버퍼내의 로봇 경험 데이터의 하나 이상의 인스턴스의 그룹을 사용하여 상기 업데이트된 정책 파라미터를 생성하는 단계를 포함하고; 그리고 상기 로봇에 의해 수행된 복수의 에피소드 각각의 시작과 연동하여 각각의 로봇에 의해, 상기 에피소드에서 로봇에 의해 사용될 상기 정책 신경망을 업데이트하는 단계를 포함하며, 상기 정책 신경망을 업데이트하는 단계는 상기 업데이트된 정책 파라미터를 반복적으로 생성하는 단계의 가장 최근 반복의 상기 업데이트된 정책 파라미터들을 사용하는 단계를 포함하도록 제공된다.
본 명세서에 개시된 이들 및 다른 구현예들은 다음 특징들 중 하나 이상을 포함할 수 있다.
상기 업데이트된 정책 파라미터들 각각은 상기 정책 신경망의 대응하는 계층의 대응하는 노드에 대한 대응하는 값을 정의할 수 있다.
상기 로봇들의 주어진 로봇에 대한 로봇 경험 데이터의 인스턴스는 상기 업데이트된 정책 파라미터를 반복적으로 생성하는 생성 빈도보다 낮은 빈도인 제1 빈도로 버퍼에 저장될 수 있다.
상기 로봇들 각각에 대한 로봇 경험 데이터의 인스턴스는 상기 업데이트된 정책 파라미터를 반복적으로 생성하는 생성 빈도보다 낮은 대응 빈도로 버퍼에 저장될 수 있다.
상기 로봇 경험 데이터의 인스턴스를 버퍼에 저장하는 단계는 제1 스레드에서 하나 이상의 프로세서에 의해 수행되고, 상기 반복적으로 생성하는 단계는 상기 제1 스레드와 분리된 제2 스레드에서 하나 이상의 프로세서에 의해 수행될 수 있다. 예를 들어, 제1 스레드는 하나 이상의 프로세서의 제1 그룹에 의해 수행되고, 제2 스레드는 하나 이상의 프로세서의 제2 그룹에 의해 수행되며, 제2 그룹은 제1 그룹과 중첩되지 않는다.
상기 반복적으로 생성하는 단계의 각각의 반복은 상기 반복 생성 동안 버퍼 내의 로봇 경험 데이터의 하나 이상의 인스턴스의 그룹을 고려하여 손실 함수를 최소화하는 것에 기초하여 상기 업데이트된 정책 파라미터를 생성하는 단계를 포함할 수 있다.
상기 반복적으로 생성하는 단계의 각각의 반복은 상기 반복 생성하는 동안 버퍼 내의 로봇 경험 데이터의 하나 이상의 인스턴스의 그룹을 고려하여 오프-정책(off-policy) 학습하는 단계를 포함할 수 있다. 예를 들어, 상기 오프-정책 학습은 NAF(normalized advantage function) 알고리즘 또는 DDPG(deep deterministic policy gradient) 알고리즘을 이용하는 Q-러닝과 같은 Q-러닝일 수 있다.
상기 경험 데이터의 각각의 인스턴스는 대응하는, 초기 로봇 상태, 초기 로봇 상태에서 전환된 후속 로봇 상태, 초기 로봇 상태에서 후속 로봇 상태로 전환하기 위해 실행된 액션 및 상기 액션에 대한 보상을 나타낼 수 있다. 상기 초기 로봇 상태에서 후속 로봇 상태로 전환하기 위해 실행되는 액션은 상기 대응하는 에피소드에 대한 상기 업데이트된 정책 파라미터를 갖는 상기 정책 신경망을 사용하여 상기 초기 로봇 상태의 프로세싱에 기초하여 생성될 수 있다. 상기 액션에 대한 보상은 강화 학습 정책에 대한 보상 함수에 기초하여 생성될 수 있다.
상기 방법은 하나 이상의 기준에 기초하여, 상기 복수의 에피소드의 수행 중단하고 상기 반복적으로 생성을 단계를 중단하는 단계와; 하나 이상의 추가 로봇에 의한 사용을 위해, 가장 최근에 생성된 버전의 상기 업데이트된 정책 파라미터를 갖는 정책 신경망을 제공하는 단계를 더 포함할 수 잇다.
일부 구현예에서, 방법은 주어진 로봇의 하나 이상의 프로세서에 의해: 제1 그룹의 정책 파라미터를 갖는 정책망에 기초하여 태스크를 수행하는 탐색의 주어진 에피소드를 수행하는 단계와; 상기 주어진 에피소드 동안 상기 정책망에 기초하여 생성된 로봇 경험 데이터의 제1 인스턴스를 제공하는 단계와; 상기 주어진 로봇에 의해, 상기 정책망에 기초하여 상기 태스크를 수행하는 후속 에피소드를 수행하기 전에: 상기 제1 그룹의 하나 이상의 정책 파라미터를 업데이트된 정책 파라미터로 대체하는 단계와, 상기 업데이트된 정책 파라미터는 추가 로봇에 의해 태스크를 수행하는 탐색의 추가 로봇 에피소드 동안 추가 로봇에 의해 생성된 로봇 경험 데이터의 추가 인스턴스에 기초하여 생성되고; 상기 후속 에피소드는 제1 에피소드 바로 다음에 이어지고, 상기 후속 에피소드에서 상기 정책망에 기초하여 태스크를 수행하는 단계는 상기 대체된 정책 파라미터 대신에 상기 업데이트된 정책 파라미터를 사용하는 단계를 포함하도록 제공된다.
본 명세서에 개시된 이들 및 다른 구현예들은 다음 특징들 중 하나 이상을 포함할 수 있다.
일부 구현예에서, 상기 방법은 하나 이상의 추가 프로세서에 의해 그리고 상기 후속 에피소드의 수행 중에, 상기 제1 에피소드 동안 생성된 로봇 경험 데이터의 하나 이상의 제1 인스턴스에 기초하여 추가 업데이트된 정책 파라미터를 생성하는 단계를 더 포함할 수 있다. 상기 방법은 추가 로봇에 의한 대응하는 에피소드의 수행시 추가 로봇에 의한 사용을 위해 상기 추가 업데이트된 정책 파라미터를 제공하는 단계를 더 포함할 수 있다.
이러한 구현예들 중 일부에서, 상기 추가 로봇은 상기 주어진 로봇에 의한 후속 에피소드의 수행 중에 대응하는 에피소드의 수행을 시작하고 및/또는 상기 추가 업데이트된 정책 파라미터는 주어진 로봇에 의한 임의의 에피소드의 수행시 상기 주어진 로봇에 의해 이용되지 않는다.
이러한 구현예들 중 일부에서, 상기 방법은 하나 이상의 추가 프로세서에 의해, 또 다른 추가 업데이트된 정책 파라미터를 생성하는 단계와, 상기 또 다른 추가 업데이트된 정책 파라미터는 후속 에피소드의 수행 중에 생성되고 상기 추가 업데이트된 정책 파라미터의 생성에 후속하여 생성되며; 그리고 상기 주어진 로봇에 의해, 정책망에 기초하여 태스크를 수행하는 추가 후속 에피소드의 수행시 상기 주어진 로봇에 의한 사용을 위한 상기 또 다른 추가 업데이트된 정책 파라미터를 제공하는 단계를 더 포함할 수 있다. 상기 추가 후속 에피소드는 상기 후속 에피소드 바로 다음에 이어진다. 이러한 구현예들의 일부 버전에서, 상기 주어진 로봇은 상기 추가의 로봇에 의해 대응하는 에피소드의 수행 중에 상기 추가 후속 에피소드의 수행을 시작하고, 상기 업데이트된 정책 파라미터 및 상기 또 다른 추가 업데이트된 정책 파라미터는 상기 추가 로봇에 의한 임의의 에피소드의 수행시 상기 추가 로봇에 의해 이용되지 않는다.
상기 정책망은 신경망 모델을 포함하거나 구성할 수 있고, 상기 업데이트된 정책 파라미터들 각각은 신경망 모델의 대응하는 계층의 대응하는 노드에 대한 대응하는 값을 정의할 수 있다.
일부 구현예에서, 상기 방법은 상기 태스크를 수행하는 상기 주어진 에피소드의 수행 중에: 상기 정책망로부터의 출력의 주어진 반복에서, 상기 주어진 로봇에 대한 하나 이상의 기준의 위반을 결정하는 단계와; 상기 하나 이상의 기준이 더 이상 위반되지 않도록 상기 주어진 반복의 출력을 수정하는 단계와; 그리고 상기 수정된 출력에 기초하여 상기 경험 데이터의 인스턴스들의 주어진 인스턴스를 생성하는 단계를 더 포함할 수 있다. 상기 기준은 관절 위치 제한, 관절 속도 제한 및 엔드 이펙터 위치 제한 중 하나 이상을 포함할 수 있다.
일부 구현예에서, 상기 방법은 상기 정책망의 입력으로서 현재의 상태 표현을 적용하는 단계와, 상기 현재의 상태 표현은 적어도 상기 주어진 로봇의 현재 상태를 나타내고, 상기 정책망를 사용하여 상기 입력을 처리하여 출력을 생성하는 단계와; 그리고 상기 출력에 기초하여 상기 주어진 로봇의 하나 이상의 액추에이터로 제어 명령을 제공하는 단계에 의해, 상기 주어진 에피소드 동안 상기 탐색들의 주어진 탐색을 생성하는 단계를 더 포함할 수 있다. 상기 출력에 기초하여 상기 액추에이터들로 제어 명령을 제공하는 단계는 상기 출력에 노이즈를 부가함으로써 수정된 출력을 생성하는 단계; 및 상기 수정된 출력에 기초하여 상기 제어 명령을 제공하는 단계를 포함할 수 있다. 상기 출력은 로봇의 복수의 액츄에이터 각각에 대한 속도 또는 토크를 포함할 수 있고, 상기 제어 명령을 제공하는 단계는 상기 액추에이터들이 속도 또는 토크를 적용하도록 제어 명령을 제공하는 단계를 포함할 수 있다.
상기 경험 데이터의 제1 인스턴스들 각각은 대응하는: 초기 로봇 상태, 초기 로봇 상태에서 전환된 후속 로봇 상태, 초기 로봇 상태에서 후속 로봇 상태로 전환하기 위해 실행된 액션 및 상기 액션에 대한 보상을 나타낼 수 있다.
일부 구현예에서, 방법은 복수의 로봇 중 주어진 로봇에 의해 생성된 주어진 로봇 경험 데이터의 주어진 인스턴스를 수신하는 단계를 포함하여 제공될 수 있다. 상기 로봇 경험 데이터의 주어진 인스턴스는 상기 주어진 인스턴스 생성시 상기 주어진 로봇에 의해 이용되는 정책망의 정책 파라미터들의 주어진 버전에 기초하여 태스크를 수행하는 탐색의 주어진 에피소드 동안 생성된다. 상기 방법은 복수의 로봇의 추가 로봇들로부터 로봇 경험 데이터의 추가 인스턴스를 수신하는 단계를 더 포함한다. 상기 추가 인스턴스는 추가 로봇에 의해, 상기 정책망에 기초하여 상기 태스크를 수행하는 탐색의 에피소드 동안 생성된다. 상기 방법은 상기 주어진 로봇 및 추가 로봇들이 상기 태스크를 수행하는 탐색의 에피소드를 계속하면서, 상기 주어진 인스턴스 및 추가 인스턴스에 적어도 부분적으로 기초하여 상기 정책망의 트레이닝에 기초한 정책망의 정책 파라미터의 새로운 버전을 생성하는 단계를 더 포함한다. 상기 방법은 정책 파라미터의 새로운 버전에 기초하여 상기 주어진 로봇에 의해 태스크를 수행하는 탐색의 바로 후속 에피소드를 수행하기 위해 상기 주어진 로봇으로 상기 정책 파라미터의 새로운 버전을 제공하는 단계를 더 포함한다.
본 명세서에 개시된 이들 및 다른 구현예들은 다음 특징들 중 하나 이상을 포함할 수 있다.
상기 주어진 인스턴스를 수신하는 단계는 상기 주어진 로봇으로부터 경험 데이터의 인스턴스를 수신하는 복수의 경험 데이터 반복의 한 번의 반복에서 발생할 수 있고, 상기 복수의 경험 데이터 반복은 제1 빈도로 발생한다. 상기 업데이트된 파라미터를 생성하도록 강화 모델을 트레이닝하는 단계는 상기 주어진 인스턴스 및 상기 추가 인스턴스에 적어도 부분적으로 기초하여 상기 정책망의 트레이닝의 제1 트레이닝 반복과; 그리고 복수의 로봇으로부터 경험 데이터의 또 다른 추가 인스턴스에 기초하여 상기 정책망의 트레이닝의 하나 이상의 추가 트레이닝 반복을 포함하는 복수의 트레이닝 반복을 수행하는 단계를 포함할 수 있고, 상기 트레이닝 반복은 상기 경험 데이터 반복보다 큰 빈도인 제2 빈도에서 발생할 수 있다.
일부 구현예에서, 방법은 비동기적으로 동시에 동작하는 복수의 로봇에 의해 생성된 경험 데이터의 인스턴스를 반복적으로 수신하는 단계를 포함하여 제공될 수 있다. 상기 경험 데이터의 인스턴스들 각각은 정책 신경망에 기초한 태스크 탐색의 대응하는 에피소드 동안 상기 복수의 로봇들 중 대응하는 로봇에 의해 생성된다. 상기 방법은 각각의 트레이닝 반복에서 상기 정책망의 하나 이상의 업데이트된 파라미터를 생성하도록 상기 복수의 로봇으로부터 수신된 경험 데이터에 기초하여 상기 정책망를 반복적으로 트레이닝하는 단계를 더 포함한다. 상기 방법은 상기 경험 데이터의 인스턴스가 기반으로 하는 태스크 탐색들의 에피소드 이전에 상기 로봇들의 정책 신경망를 업데이트하기 위해 상기 업데이트된 파라미터들의 인스턴스를 상기 로봇들로 반복적이고 비동기적으로 제공하는 단계를 더 포함한다.
다른 구현예는 전술한 방법 및/또는 본 명세서의 다른 곳에서 기술한 방법들 중 하나 이상과 같은 방법을 수행하도록 하나 이상의 프로세서(예를 들어, 하나 이상의 중앙 처리 장치(CPU), 하나 이상의 그래픽 처리 장치(GPU) 및/또는 하나 이상의 텐서 처리 장치(TPU)에 의해 실행 가능한 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 또 다른 구현예는 전술한 방법 및/또는 본 명세서의 다른 곳에서 기술한 방법들 중 하나 이상과 같은 방법을 수행하기 위해 저장된 명령들을 실행하도록 동작 가능한 하나 이상의 프로세서를 포함하는 하나 이상의 컴퓨터 및/또는 하나 이상의 로봇의 시스템을 포함할 수 있다.
본 명세서에서 보다 상세히 기술된 전술한 개념 및 추가적인 개념의 모든 조합은 본 명세서에 개시된 주제의 일부로서 고려될 수 있음을 이해해야 한다. 예를 들어, 본 명세서의 끝 부분에 나타나는 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 일부로서 고려된다.
도 1은 본 명세서에 개시된 구현예들이 구현될 수 있는 예시적인 환경을 도시한다.
도 2는 도 1의 로봇들 중 하나 및 경로를 따르는 로봇의 파지용 엔드 이펙터의 이동의 예를 도시한다.
도 3은 로봇에 의해 에피소드를 수행하는 예를 도시한 흐름도이다.
도 4는 경험 데이터의 인스턴스를 저장하는 예시적인 방법을 도시하는 흐름도이다.
도 5는 정책망의 파라미터들을 업데이트하기 위한 트레이닝의 예시적인 방법을 나타내는 흐름도이다.
도 6은 로봇의 예시적인 아키텍처를 개략적으로 도시한다.
도 7은 컴퓨터 시스템의 예시적인 아키텍처를 개략적으로 도시한다.
강화 학습의 로봇 애플리케이션은 종종 실제 물리적 시스템에 실용적인 트레이닝 시간을 달성하기 위해 학습 프로세스의 자율성을 손상시킨다. 강화 학습 프로세스의 이러한 타협은 수작업으로 설계된 정책 표현 및/또는 인간이 제공한 시연 (demonstrations)을 도입한 것이 원인일 수 있다.
본 설명의 구현예들은 하나 이상의 로봇의 동작 성능을 향상시키기 위한 심층(적) 학습 방법의 확장에 관한 것이다. 전술한 바와 같이, 상기 구현예들은 로봇에 의해 수행되는 물리적 액션의 효율성 향상과 같은 작동 이점을 제공하고, 강화 학습의 이전 로봇 애플리케이션의 단점을 또한 완화시킨다. 여기에는 수작업으로 설계된 정책 표현(예를 들어, "모델 기반" 정책 표현)에 대한 필요성 완화 및/또는 인간-제공의 시연에 대한 필요성 완화가 포함될 수 있다. 본 명세서에 기술된 일부 구현예에서, 정책을 파라미터화하는 정책 신경망은 심층 강화 학습을 통해 트레이닝되어 수작업으로 설계된 정책 표현의 필요성을 완화시킨다. 더욱이, 정책 신경망은 로봇 환경의 모델을 명시적으로 학습하지 않는다는 점에서 "비모델식(model-free)"일 수 있다. 하나의 특정 예로서, 일부 구현에서 심층 Q-함수의 오프(off) 정책 트레이닝을 기반으로 하는 심층 강화 학습 알고리즘은 복잡한 3D 조작 태스크 (작업)로 확장될 수 있고, 실제 물리적 로봇에 의해 생성된 경험 데이터를 기반으로 트레이닝할 수 있도록 충분히 심층 신경망 정책을 학습할 수 있다. 이러한 구현예들 중 일부에서, 실제 시간(예컨대, 벽 시계) 트레이닝 시간은 정책 업데이트를 비동기식으로 풀링하는 다수의 로봇에 걸쳐 알고리즘을 병렬화하여 감소시킬 수 있다. 이러한 구현예들 중 일부에서, 정책 업데이트를 비동기적으로 풀링하는 다수의 로봇에 걸쳐 알고리즘을 병렬화하는 것은 부가적으로 및/또는 대안으로, 그러한 병렬화가 활용되지 않는 경우보다, 주어진 수의 트레이닝 반복 후에 더 정확하고 및/또는 견고한 정책 신경망을 생성할 수 있다. 이것은 예를 들어 주어진 인스턴스에서 로봇에 의해 생성된 경험 데이터가 로봇의 경험 데이터의 과거 인스턴스와 병렬로 동작하는 다른 로봇(들)의 경험 데이터의 과거 인스턴스에 기초하여 업데이트되는 정책 파라미터를 기반으로 할 수 있기 때도어이다. 게다가, 본 명세서에 개시된 기술의 일부 구현예는 임의의 종래의 시연 또는 수작업으로 설계된(예를 들어, "모델 기반의") 정책 표현을 필요로 하지 않고 실제 로봇상에서 3차원("3D") 로봇 조작 태스크(예를 들어, 도어 개방 태스크, 픽 앤 플레이스 태스크)을 학습할 수 있게 한다.
아래에서 보다 상세하게 설명되는 바와 같이, 다양한 구현예에서 오프-정책 강화 학습 방법(예를 들어, 심층 Q-함수의 오프-정책 트레이닝에 기초한 Q-러닝)은 확장되어 처음부터 복잡한 조작 정책(manipulation policies)을 학습한다. 이러한 다양한 구현예 중 일부에서, 복잡한 조작 정책은 사용자가 제공한 시연 없이 학습되고 및/또는 태스크-특정(task-specific) 도메인 지식이 필요 없는 신경망 표현을 사용하여 학습된다. 또한 이러한 다양한 구현예 중 일부에서, 정책들은 DDPG(Deep Deterministic Policy Gradient) 알고리즘 또는 NAF(Normalized Advantage Function) 알고리즘과 같은 오프-정책(off-policy) 심층 Q-함수 알고리즘을 사용하여 학습된다. 예를 들어, 복수의 실제 물리적 로봇에 대해 병렬 NAF 알고리즘을 사용하는 비동기 심층 강화 학습과 같은 비동기 심층 강화 학습이 이용될 수 있다. 이를 통해 실제 로봇 플랫폼상에서 샘플-효율적인 트레이닝을 가능하게 하고, 다수의 로봇의 경험을 공유함으로써 트레이닝의 시간-효율성을 더 높일 수 있고 및/또는 다수의 로봇 및/또는 그들의 환경 사이의 변화로 인해 보다 견고한 훈련을 가능하게 할 수 있다. 상기 트레이닝의 개선된 시간-효율성은 예를 들어 초기에 물리적 태스크를 수행하도록 상기 개선된 정책을 사용하여 실제 물리적 로봇을 생성한다. 이는 예를 들어 초기 단계에서 로봇의 전력 소비 개선 및/또는 예를 들어 정책의 초기 개선 및 그에 따른 로봇의 물리적 액션으로 인한 로봇 관절(joint)에 대한 전반적인 마모율 감소와 같은 기술적 이점을 가져온다.
다수의 로봇(집단 로봇 학습)의 경험을 풀링하는 과거의 일부 애플리케이션에서, 이들 애플리케이션은 시뮬레이션 시간이 비용이 적게 들고 트레이닝이 신경망 역전파에 의해 주도된다는 가정하에 전체 트레이닝 시간을 줄이려고 한다. 대조적으로, 본 설명의 일부 구현예는 경험에는 비용이 많이 들고 신경망 역전파는 비교적 비용이 적게 드는 실제 물리적 로봇의 데이터에 기초하여 트레이닝할 때 트레이닝 시간을 최소화하려고 한다. 예를 들어, 본 명세서에 개시된 다양한 구현예는 서로 비동기적으로 동작하는 다수의 로봇으로부터 경험 데이터를 수집한다. 더욱이, 다양한 구현예는 수집된 경험 데이터를 다수의 로봇의 동작과 비동기적으로(그러나 동시에) 정책 신경망을 트레이닝시키는데 사용한다. 예를 들어, 로봇들 중 하나의 에피소드로부터의 수집된 경험 데이터의 버퍼는 정책 신경망을 업데이트하는데 이용될 수 있고, 업데이트된 정책 신경망으로부터의 업데이트된 정책 파라미터들은 대응하는 다음 에피소드의 수행 전에 하나 이상의 다중 로봇에 의한 구현을 위해 제공된다. 이러한 방식으로, 경험 데이터의 수집은 다수의 로봇 사이에서 비동기적일 수 있고 정책 신경망의 업데이트와 비동기적일 수 있다. 그러나, 다수의 로봇은 각 에피소에서 업데이트된 정책 파라미터를 이용할 수 있는데, 여기서 업데이트된 정책 파라미터는 로봇의 과거 에피소드들과 다른 로봇들의 과거 에피소드의 경험 데이터에 기초한다. 이러한 비동기 실행 및 신경망 트레이닝은 다수의 로봇 플랫폼에 걸쳐 경험을 동시에 수집한 결과 전체 트레이닝 시간을 단축시킬 수 있다.
실제 로봇 환경, 특히 접촉 이벤트가 있는 로봇 환경에서, 환경 역학은 종종 이용 가능하지 않거나 정확하게 모델링될 수 없다. 이를 고려하여, 본 명세서에 개시된 구현예들은 정책 검색 방법 및 가치(value)-반복 방법을 포함하는 비모델식 강화 학습에 중점을 둔다. 정책 검색 방법은 진정한 목적을 최적화하기 위한 직접적인 방법을 제공하지만, 정책에 따른 학습으로 인해 가치 반복 방법보다 훨씬 더 많은 데이터를 필요로 하는 경우가 있다. 따라서, 본 명세서에 개시된 일부 구현예들은 함수 근사를 이용한 Q-러닝에 기초한 가치 반복 방법과 같은 가치 반복 방법에 특히 중점을 둔다. 가치 반복 방법의 두 가지 예는 DDPG 및 NAF이며, 이것은 심층 Q-러닝을 연속 액션 공간으로 확장하고 예를 들어 재생 버퍼를 통한 오프-정책 학습으로 인해 경쟁의 정책 검색 방법보다 샘플 효율이 높다.
강화 학습의 목표는, 로봇 기술(본 명세서에서 태스크라고도 함)의 맥락에서, 로봇이 달성하려고 시도해야 하는 것의 사용자-제공 정의를 나타내는 보상 함수를 최대화하려고 시도하는 에이전트를 제어하는 것이다. 시간 t의 상태(
Figure pct00007
)에서, 에이전트는 정책
Figure pct00008
에 따라 액션(
Figure pct00009
)을 선택하고 실행하고, 동력학
Figure pct00010
에 따라 새로운 상태(
Figure pct00011
)로 전환하여, 보상(
Figure pct00012
)을 받는다. 본 명세서에 개시된 구현에에서, 무한-수평적 할인 수익 문제(infinite-horizon discounted return problems)가 고려된다. 상기 무한 수평적 할인 수익 문제의 목적은
Figure pct00013
로 주어진, 시간 t로부터 T까지의 γ-할인된 미래 수익이다. 상기 목표는
Figure pct00014
로 주어진 초기 상태 분포에서수익의 기대 총액을 최대화하는 최적 정책(π*)을 찾는 것이다.
강화 학습 방법 중에서 Q-러닝과 같은 오프-정책 방법은 온-정책 변형에 비해 데이터 효율성 향상을 제공할 수 있다. 이는 로봇 애플리케이션에 유익할 수 있다. Q-러닝은 정책의 Q-함수
Figure pct00015
를 학습하는 단계와 Q-함수
Figure pct00016
Figure pct00017
를 적극적으로 최대화함으로써 정책을 업데이트하는 단계사이를 반복함으로써 적극적인 결정론적 정책
Figure pct00018
을 학습한다.
Figure pct00019
는 액션-가치 함수를 파라미터화하고, β는 임의의 탐색 정책이며,
Figure pct00020
는 β에 의해 유도된 상태 방문(state visitation)이고, 학습 목표는 타겟(
Figure pct00021
)이 다음과 같이 고정된 벨만 오차를 최소화하는 것이다.
Figure pct00022
지속적인 액션 문제의 경우, 정책 업데이트 단계는 심층 신경망에 의해 파라미터화된 Q-함수에 대해 다루기 어려울 수 있다. 따라서, 함수 근사를 이용한 Q-러닝의 확장이 본 명세서에 기술된 다양한 구현예에서 이용될 수 있다. 함수 근사를 통한 Q-러닝의 확장의 두 가지 예는 DDPG와 NAF이다. DDPG는 액터-크리틱(actor-critic) 방법을 채택하여 다루기 힘든 문제를 우회하는 반면, NAF는 Q-함수의 클래스를 이산 액션의 경우처럼 폐쇄형(closed-form)으로 업데이트할 수 있도록 아래의 표현식으로 제한한다. 탐색 동안, 시간-상관된 노이즈가 선택적으로 정책망 출력에 추가될 수 있다.
Figure pct00023
이 강화 학습 공식은 보상 함수에 의해 정의된 다양한 로봇 기술을 학습하기 위해 로봇 시스템상에 적용될 수 있다. 그러나, 학습 프로세스는 전형적으로 많은 시간이 소요된다. 따라서, 본 명세서에 기술된 구현예에서, NAF의 병렬화된 변형 또는 DDPG의 병렬화된 버전이 이들 관심사들 중 하나 또는 둘 모두를 완화하기 위해 이용될 수 있다. 이것은 복잡한 실제 로봇 태스크에서 신경망 파라미터화된 Q- 함수를 처음부터 학습하는 것을 가능하게 한다. 실용적인 심층 로봇 학습 애플리케이션에서, 학습 시간은 네트워크 트레이닝 속도(speed)보다는 실시간으로 제한되는 실제 로봇의 데이터 수집 속도(collection rate)에 의해 제한된다. 따라서, 본 명세서에 개시된 다양한 구현예는 데이터 수집을 위해 다수의 실제 로봇을 효과적으로 사용하고 학습의 실제 속도를 증가시키기 위해 비동기 NAF의 사용을 제안한다. 물론 이것은 학습된 정책들이 물리적 태스크를 실행하는 로봇들에 의해 구현될 때, 이전에 논의된 바와같이 대응하는 효율성 향상과 함께 실제 로봇 성능의 보다 빠른 향상을 달성한다. 게다가, 본 명세서에 개시된 다양한 구현예는 Q-러닝 동안 (예를 들어, 탐색 정도를 증가시키기 위해 정책망 출력에 큰 시간-상관 잡음을 추가함으로써) 적극적인 탐색을 달성하는데, 이것은 처음(scratch)부터 학습할 때 유익하고 필요할 수 있다. 이들 구현예 중 일부에서, 탐색을 수행하는 로봇의 하나 이상의 기준(예를 들어, 안전 기준 및/또는 다른 기준)의 위반을 최소화하거나 방지하면서 적극적인 탐사를 달성하기 위한 기술들이 또한 사용될 수 있다.
본 명세서에 개시된 비동기 NAF의 구현예에서, (정책 신경망을 업데이트/트레이닝하는) 트레이너 스레드(들)는 (탐색 중에 하나 이상의 로봇으로부터 경험 데이터를 각각 수집하는) 경험 컬렉터 스레드(들)와 분리된다. 이들 구현예 중 일부에서, 상기 트레이닝 및 컬렉터 스레드간의 분리는 트레이닝 속도의 차이가, 종종 고정 주파수로 컨트롤들을 전송하는데 필요한, 경험 데이터를 생성하는 로봇의 제어 프로그램을 정지시키지 않도록 보장할 수 있다. 상기 트레이너 스레드(들)가 (경험 컬렉터 스레드(들)에 의해 채워진) 재생 버퍼에서 계속 학습하는 동안, 경험 컬렉터 스레드(들)은 각 에피소드의 시작시에 자신의 정책 파라미터들을 트레이너 스레드(들)와 각각 동기화(예를 들어, 트레이닝 스레드의 가장 최근 반복에서 생성된 업데이트된 파라미터로 자신의 정책 신경망 업데이트)하고, 로봇에 명령을 실행하고, 그리고 경험 데이터의 인스턴스를 재생 버퍼로 푸시할 수 있다.
N개의 컬렉터 스레드 및 하나의 트레이닝 스레드를 이용하여 비동기 NAF를 수행하기 위한 하나의 예시적인 알고리즘의 개요가 이하에서 도시된다. 예시적인 알고리즘이 하나의 트레이닝 스레드로 제공되었지만, 일부 구현예에서는 다수의 트레이닝 스레드가 제공될 수 있다(예를 들어, 다수의 스레드에 걸쳐 분산된 트레이닝).
Figure pct00024
Figure pct00025
본 명세서에 설명된 바와 같이, 다양한 구현에서, 신경망은 액션-가치 함수 및 정책들을 파라미터화할 수 있다. 이들 구현예 중 일부에서, 다양한 상태 표현(state representations)이 상기 정책들에 기초하여 구현될 액션을 나타내는 출력을 생성할 때 모델의 입력으로 이용될 수 있다. 상태 표현은 로봇의 상태 및 선택적으로 하나 이상의 환경 객체의 상태를 나타낼 수 있다. 일예로서, 로봇 상태 표현은 그들의 도함수(미분계수)뿐만 아니라 관절 각과 엔드 이펙터 위치를 포함할 수 있다. 일부 구현예에서, 성공 신호(예를 들어, 타겟 위치)가 로봇 상태 표현에 첨부될 수 있다. 본 명세서에 설명된 바와 같이, 성공 신호는 액션에 대한 보상을 결정하는데 및/또는 다른 목적을 위해 이용될 수 있다. 특정 성공 신호는 강화 학습이 일어나고 있는 태스크에 의존한다. 예를 들어, 도달 태스크의 경우, 성공 신호는 엔드 이펙터의 목표/타겟 위치일 수 있다. 다른 예로서, 도어 개방 태스크의 경우, 성공 신호는 도어가 닫혀있을 때 손잡이 위치 및 도어 프레임에 부착된 센서(예를 들어, 도어 프레임에 부착된 관성 측정 유닛)의 쿼터니언 측정을 포함할 수 있다. 다양한 구현예에서, 표준 피드-포워드(feed-forward) 네트워크는 액션-가치 함수 및 정책들을 파라미터화하기 위한 정책 신경망으로서 이용될 수 있다. 하나의 예로서, 크기가 100 유닛인 2개의 히든 계층 네트워크는 NAF의 m(x), L(x)(P(x)의 콜레스키 분해) 및 V(x)를 파라미터화하고, DDPG의 m(x) 및 Q(x;u)를 파라미터화하는데 각각 사용될 수 있다. DDPG의 Q(x; u)에 대해, 액션 벡터(u)는 선형 프로젝션에 뒤 이은 두 번째 히든 계층에 대한 다른 입력으로서 추가될 수 있다. ReLU는 히든 활성화로서 사용될 수 있고 쌍곡선 탄젠트(Tanh)는 액션 척도 (action scale)를 제한(bound)하기 위해 정책망 m(x)에서만 최종 계층 활성화를 위해 사용될 수 있다.
본 명세서에 기술된 바와 같이, 일부 구현예에서, 탐색을 수행하는 로봇의 하나 이상의 기준(예를 들어, 안전 기준 및/또는 다른 기준)의 위반을 최소화하거나 방지하면서 적극적인 탐색을 수행하기 위한 기술들이 구현될 수 있다. 이러한 구현예 중 일부에서, 기준은 로봇의 각 관절에 대한 속도 제한, 로봇의 각 관절의 위치 제한, 및/또는 로봇의 다른 운동학적 및/또는 동적 제한을 포함할 수 있다. 예를 들어, 로봇에 의한 탐색 중에 (예를 들어, 이용되고 있는 정책망에 의해) 지령된 출력이 속도 한계를 초과하는 관절의 속도를 나타내면, 해당 속도는 출력 구현 이전에 수정(예를 들어, 속도 제한으로 다시 스케일링)될 수 있거나, 또는 대안적으로 오류가 발생하여 탐사의 새로운 에피소드가 시작될 수 있다.
일부 구현예에서, 엔드 이펙터 위치에 대한 경계 구(bounding sphere, 바운딩 스피어)(또는 다른 경계 형상(들))가 기준으로 이용될 수 있다. 로봇에 의한 탐색 중에 지령된 출력이 로봇의 엔드 이펙터를 상기 경계 구의 외부로 보내면, 로봇의 순 기구학(forward kinematics)이 상기 구의 표면에 지령된 속도와 일부 보정 속도를 투사하는데 이용될 수 있다. 부가적인 및/또는 대안적인 기준이 이용될 수 있다. 예를 들어, 도어 개/폐와 같은 특정 태스크를 학습하기 위해 탐색이 수행될 때, 로봇이 특정 객체(예컨대, 도어)에 대해 너무 세게 밀리는 것을 방지하기 위한 기준이 제공될 수 있다. 예를 들어, 추가 경계면(bounding plane)이 도어 닫힌 위치 앞에 몇 센티미터 추가될 수 있고 및/또는 (도어 또는 손잡이와의 접촉으로 인해 지령된 속도가 달성될 수 없는 경우, 로봇이 과도한 양의 토크를 가하지 않도록) 로봇의 하나 이상의 관절에 토크 제한이 추가될 수 있다.
이제 도면을 참조하면, 상기 구현예 및 추가 구현예의 부가적인 설명이 제공된다. 도 1은 본 명세서에 개시된 구현예가 구현될 수 있는 예시적인 환경을 도시한다. 예시적인 로봇(180A 및 180B)은 도 1에 포함된다. 로봇(180A 및 180B)은 로봇의 이동을 통해 복수의 잠재적 경로 중 임의의 경로를 따라 파지용 엔드 이펙터(182A 및 182B)의 횡단을 가능하게 하여 원하는 위치에 파지용 엔드 이펙터(182A 및 182B)를 위치시키는 다수의 자유도를 갖는 "로봇 암"이다. 예를 들어, 도 2를 참조하면, 경로(201)를 따라 엔드 이펙터를 가로지르는 로봇(180A)의 예가 도시되어 있다. 도 2는 경로(201)를 따라 횡단할 때 로봇(180A) 및 그의 엔드 이펙터에 의해 부딪힌 한 세트의 자세의 2개의 상이한 자세를 도시하는 로봇(180A)의 팬텀 (phantom) 및 비-팬텀 이미지를 포함한다. 도 1을 다시 참조하면, 로봇(180A 및 180B)은 각각 대응하는 파지용 엔드 이펙터(182A 및 182B)의 2개의 대향하는 "집게발(claws)"을 더 제어하여 적어도 개방 위치와 폐쇄 위치(및/또는 선택적으로 복수의 "부분적으로 폐쇄된" 위치)사이에서 집게발을 작동시킨다.
예시적인 비전 센서(184A 및 184B)가 또한 도 1에 도시되어 있다. 도 1에서, 비전 센서(184A)는 로봇(180A)의 베이스 또는 다른 고정 기준점에 대해 고정된 자세로 장착된다. 또한, 비전 센서(184B)는 로봇(180B)의 베이스 또는 다른 고정 기준점에 대해 고정된 자세로 장착된다. 도 1에 도시된 바와 같이, 로봇(180A)에 대한 비전 센서(184A)의 자세는 로봇(180B)에 대한 비전 센서(184B)의 자세와 상이하다. 본 명세서에 설명된 바와 같이, 일부 구현예에서, 이것은 (경험 데이터가 비전 센서(184A 및 184B)의 센서 데이터에 적어도 부분적으로 의해 영향을 받는 경우) 로봇(180A 및/또는 180B)의 각각에 의해 생성된 경험 데이터의 다양성을 제공하는데 유익할 수 있다. 비전 센서(184A, 184B)는 센서의 시선에 있는 객체(들)의 형상, 색, 깊이 및/또는 다른 특징과 관련된 이미지 또는 다른 비전 데이터를 생성할 수 있는 센서이다. 비전 센서(184A 및 184B)는 예를 들어, 모노그래프 카메라, 스테레오 그래픽 카메라 및/또는 3D 레이저 스캐너일 수 있다. 3D 레이저 스캐너는 광을 방출하는 하나 이상의 레이저 및 방출된 광의 반사와 관련된 데이터를 수집하는 하나 이상의 센서를 포함한다. 3D 레이저 스캐너는 예를 들어, ToF(time-of-flight) 3D 레이저 스캐너 또는 삼각 측량 기반의 3D 레이저 스캐너 일 수 있으며, PSD(position sensitive detector) 또는 다른 광학 위치 센서를 포함할 수 있다.
비전 센서(184A)는 예시적인 스파츌러(spatula, 스파츌러)(191A)를 포함하는 작업 공간의 일부와 같은, 로봇(180A)의 작업 공간의 적어도 일부분의 시야를 갖는다. 스파츌러(191A)를 위한 안착면(resting surface, 휴계면)이 도 1에 도시되지 않았지만, 테이블, 빈(bin) 및/또는 다른 표면(들)상에 놓일(rest) 수 있다. 다른 구현예에서, 본 명세서에서 기술된 바와 같이 로봇(180A)에 의해 수행되는 하나 이상의 에피소드 동안 더 많은 객체, 적은 객체, 추가 객체 및/또는 대안 객체가 제공될 수 있다. 각각의 에피소드는 (예를 들어, 객체를 터치하여 객체를 "픽 앤 플레이스(집기 및 놓기)"하는) 스파츌러(191A)와 스테이플러(191B) 중 상응하는 것을 포함하는 태스크를 수행하는 것을 탐색할 수 있다. 추가적인 및/또는 대안적인 객체들이 제공될 수 있다. 예를 들어, "도어 열기" 태스크를 위해, 로봇(180A 및 180B)의 각각의 환경에 도어가 제공될 수 있다. 비전 센서(184B)는 예시적인 스테이플러(191B)를 포함하는 작업 공간의 일부와 같은, 로봇(180B)의 작업 공간의 적어도 일부분의 시야를 갖는다. 스테이플러(191B)를 위한 안착 표면이 도 1에 도시되어 있지 않지만, 스테이플러(191B)는 테이블, 빈 및/또는 다른 표면(들)상에 놓일 수 있다. 다른 구현예에서, 본 명세서에 기술된 바와 같이 로봇(180B)에 의해 수행되는 하나 이상의 에피소드 동안 더 많은 객체, 적은 객체, 추가 객체 및/또는 대안 객체가 제공될 수 있다.
특정 로봇(180A 및 180B)이 도 1에 도시되어 있지만, 로봇(180A 및 180B)과 유사한 부가적인 로봇 아암, 다른 로봇 아암 형태를 갖는 로봇, 휴머노이드 형태를 갖는 로봇, 동물 형태를 갖는 로봇, 하나 이상의 바퀴(예를 들어, 자체 밸런싱 로봇)를 통해 이동하는 로봇, 잠수정 로봇, 무인 항공기("UAV)등을 포함하여, 추가적인 및/또는 대안적인 로봇들이 이용될 수 있다. 또한, 특정 파지용 엔드 이펙터가도 1에 도시되어 있지만, 부가적인 및/또는 대안적인 엔드 이펙터가 이용될 수도 있다. 예를 들어, 파지될 수 없는 엔드 이펙터가 이용될 수 있다. 부가적으로, 비전 센서(184A 및 184B)의 특정 장착부가 도 1에 도시되어 있지만, 부가적인 및/또는 대안적인 장착부가 이용될 수 있거나, 또는 비전 센서가 생략될 수 있다. 예를 들어, 일부 구현예에서, 비전 센서는 로봇의 비-작동가능(non-actuable) 컴포넌트상에 또는 로봇의 작동 가능 컴포넌트(예컨대, 엔드 이펙터상 또는 엔드 이펙터에 가까운 컴포넌트)상과 같이 로봇에 직접 장착될 수 있다. 또한, 예를 들어, 일부 구현예에서, 비전 센서는 관련 로봇과 별개인 비-고정식 구조물 상에 장착될 수 있고 및/또는 로봇과 별개인 구조물상에 비-고정식 방식으로 장착될 수 있다.
로봇(180A, 180B) 및/또는 다른 로봇들은 비모델식(model-free) 강화 학습 망에 기초하여 태스크를 수행하기 위한 각각의 탐색인 복수의 에피소드를 수행하는데 이용될 수 있다. 예를 들어, 로봇(180A) 및 로봇(180B)은 각각 결정론적 정책 기능을 나타내는 심층 신경망와 같은 정책망을 포함할 수 있다. 에피소드의 시작 부분에서, 로봇의 현재 상태(예를 들어, 의사-랜덤하게 선택된 시작 상태)는 성공 신호(예를 들어, 도달 작업을 위한 엔드 이펙터의 타겟 위치)와 함께 정책망에 대한 입력 및 그 입력에 기초하여 정책망을 통해 생성된 출력으로 적용될 수 있다. 정책망 출력은 로봇의 다음 제어 사이클에서 수행할 태스크를 나타낸다. 예를 들어, 정책망 출력은 로봇의 로봇의 액츄에이터 각각에 대한 관절 공간에서의 속도 명령일 수 있다. 다른 예로서, 정책망 출력은 로봇의 액츄에이터 각각에 대한 모터 토크일 수 있다. 액션은 로봇에 의해 구현된다. 그런 다음 액션을 구현한 후 로봇의 상태는 성공 신호와 함께 정책망에 대한 입력 및 그 입력에 기초하여 네트워크를 통해 생성된 추가 출력으로 제공될 수 있다. 이것은 성공 신호가 달성될 때까지(예를 들어, 기준을 만족하는 보상에 기초하여 결정된 바와 같이) 및/또는 다른 기준이 만족될 때까지 반복적으로(예를 들어, 로봇의 각각의 제어 사이클에서) 계속 수행될 수 있다. 다른 기준은 예를 들어, 에피소드의 일시적인 지속 기간이 임계값(예를 들어, X 초)을 만족시키거나 제어 사이클의 임계량이 발생했다는 것일 수 있다. 새로운 에피소드는 성공 신호 및/또는 다른 기준이 만족된 후에 시작될 수 있다.
도 1에 도시되고 본 명세서에서 보다 상세하게 설명된 바와 같이, 경험 수집 엔진(112)은 그들이 에피소드를 수행하는 동안 로봇(180A) 및 로봇(180B)(및 선택적으로 추가 로봇(들))에 의해 생성된 경험 데이터의 인스턴스를 수신한다. 예를 들어, 로봇(180A)은 에피소드를 수행하는 동안 자신의 제어 사이클마다 경험 수집 엔진(112)으로 경험 데이터의 새로운 인스턴스를 제공할 수 있다. 다른 예로서, 로봇(180A)은 에피소드 동안 생성된 경험 데이터의 모든 인스턴스를 에피소드의 끝에서 경험 수집 엔진(112)으로 제공할 수 있다. 또 다른 예로서, 로봇(180A)은 0.2 초마다 또는 다른 규칙적 또는 비규칙적 간격(들)에서 경험 데이터의 새로운 인스턴스를 제공할 수 있다. 경험 데이터의 각각의 인스턴스는 대응하는 반복에서 로봇의 정책망에 인가된 입력 및/또는 로봇의 정책망을 통해 생성된 출력에 기초하여 대응하는 로봇에 의해 생성된다. 예를 들어, 경험 데이터의 각각의 인스턴스는 로봇의 현재 상태, 정책망의 출력에 기초하여 수행될 액션, 액션 구현 후의 로봇의 상태, 및/또는 액션에 대한 보상(정책망을 통해 생성된 출력 및/또는 별도의 보상 함수로 표시된)을 나타낼 수 있다.
경험 수집 엔진(112)은 수신된 경험 데이터의 인스턴스를 재생 버퍼(122)에 저장한다. 재생 버퍼(122)는 트레이닝 엔진(114)에 액세스 가능한 메모리 및/또는데이터베이스를 포함할 수 있다. 단일 경험 수집 엔진(112)이 도시되어 있지만, 다수의 경험 수집 엔진(112)이 제공될 수 있음을 이해할 것이다. 예를 들어, 각 로봇은 자신의 경험 수집 엔진을 포함하거나 이와 연관될 수 있고, 엔진은 경험 데이터의 인스턴스를 재생 버퍼(122)에 모두 저장할 수 있다.
트레이닝 엔진(114)은 본 명세서에 기재된 것과 같은 기술(예를 들어, NAF 및/또는 DDPG 변형과 같은 Q-러닝과 관련된 기술)을 이용하여 정책망(124)의 하나 이상의 파라미터를 반복적으로 트레이닝한다. 각각의 트레이닝 반복에서, 트레이닝 엔진(114)은 재생 버퍼(122)의 경험 데이터의 하나 이상의 인스턴스의 그룹을 이용하여 업데이트된 정책 파라미터를 생성할 수 있다. 트레이닝 엔진(114)은 재생 버퍼(122)로부터 상기 이용된 인스턴스(들)을 선택적으로 클리어할 수 있고 및/또는이들은 (예를 들어, 선입 선출 방식에 기초하여) 클리어될 수 있다.
로봇(180A 및 180B) 중 어느 하나에 의한 새로운 에피소드의 각각의 실행 전에, 로봇은 트레이닝 엔진(114)에 의해 가장 최근에 생성된 정책 파라미터로 그의 정책망를 업데이트할 수 있다. 일부 구현예에서, 정책 파라미터는 트레이닝 엔진(114)에 의해 로봇(180A 및 180B)으로 "푸시(push)"될 수 있다. 일부 다른 구현예에서, 정책 파라미터는 로봇(180A 및 180B)에 의해 "풀(pull)"될 수 있다. 따라서, 도 1의 구현예에서, 로봇(180A), 로봇(180B) 및 선택적으로 부가적인 로봇은 각각이 동일한 비모델식 강화 정책망에 기초하여 복수의 에피소드를 수행하는 동안 병렬로 동작할 수 있다. 그러나, 하나 이상의 로봇에 의해 이용되는 정책 파라미터는 하나 이상의 시간에서 하나 이상의 다른 로봇과 다를 수 있다. 예를 들어, 시간 T1에서 그리고 소정(given) 에피소드의 시작 이전에, 로봇(180A)은 그의 정책 파라미터를 가장 최근에 업데이트된 정책 파라미터와 동기화할 수 있다. 그러나, 시간 T1에서, 로봇(180B)은 에피소드에 있을 수 있고, 트레이닝 엔진(114)의 이전 반복(직전 또는 이전의 다수의 반복)으로부터 덜 업데이트된 정책 파라미터 하에서 여전히 동작할 수 있다. 시간 T2에서, 로봇(180B)은 그의 정책 파라미터를 또 다른 업데이트된 정책 파라미터와 동기화할 수 있지만, 로봇(180A)은 여전히 시간 T2에서 소정 에피소드에 있을 수 있고 시간(T1)의 (덜) 업데이트된 정책 파라미터 하에서 여전히 동작하고 있을 수 있다.
본 명세서에 기술된 바와 같이, 경험 데이터의 인스턴스가 로봇들의 병렬 동작 동안 생성되기 때도어에, 각각의 로봇(180A, 180B) 및/또는 다른 로봇의 경험 데이터의 인스턴스는 경험 수집 엔진(112)에 의해 재생 버퍼(122)에 부가될 수 있다. 일부 구현예에서, 각 로봇의 경험 데이터는 (예를 들어, 로봇들의 제어 사이클 주파수에서) 대응하는(그리고 선택적으로는 동일한) 로봇 주파수에서 재생 버퍼(122)에 부가될 수 있다. 예를 들어, 로봇은 60Hz의 제어 주파수를 가질 수 있고 60Hz에서 경험 데이터를 제공할 수 있다(즉, 초당 60개의 경험 데이터의 잇느턴스를 제공한다). 이러한 구현예 중 일부에서, 트레이닝 엔진(114)은 하나 이상의(예를 들어, 모든) 로봇의 주파수보다 큰 주파수에서 트레이닝 반복을 수행할 수 있고, 로봇들이 병렬로 계속 동작하는 동안 이들 반복을 수행하여 에피소드들에 기초한 경험 데이터를 생성할 수 있다. 이러한 기술들 중 하나 이상은 이러한 기술을 사용하지 않은 경우 보다 정책망의 수렴이 보다 빠르게 일어 나도록 할 수 있다.
경험 수집 엔진(112), 재생 버퍼(122), 트레이닝 엔진(114) 및 정책망(124)은 로봇(180A 및 180B)과 별개인 것으로 도 1에 도시되어 있다. 그러나, 일부 구현예에서, 이들 컴포넌트의 전부 또는 하나 이상의 양태는 (예를 들어, 로봇(180A 및 180B)의 하나 이상의 프로세서를 통해) 로봇(180A) 및/또는 로봇(180B) 상에 구현될 수 있다. 예를 들어, 로봇(180A 및 180B)은 각각 경험 수집 엔진(112)의 인스턴스를 포함할 수 있다. 일부 구현예에서, 이들 컴포넌트의 전부 또는 하나 이상의 양태는 로봇(180A 및 180B)과 분리되어 있지만 상기 로봇(180A 및 180B)과 네트워크 통신하는 하나 이상의 컴퓨터 시스템 상에 구현될 수 있다. 이러한 구현예들 중 일부에서, 경험 데이터는 하나 이상의 네트워크를 통해 로봇으로부터 컴포넌트로 전송될 수 있으며, 업데이트된 정책 파라미터는 하나 이상의 네트워크를 통해 컴포넌트로부터 로봇으로 전송될 수 있다.
도 3은 객체 모션 시도를 수행하여 객체 모션 시도와 관련된 데이터를 저장하는 예시적인 방법(300)을 도시한 흐름도이다. 편의상, 흐름도의 동작들은 해당 동작을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 로봇(180A, 180B, 640) 및/또는 다른 로봇의 프로세서 및/또는 로봇 제어 시스템과 같은 하나 이상의 로봇 컴포넌트를 포함할 수 있다. 또한, 방법(300)의 동작들이 특정 순서로 도시되어 있지만, 이는 제한하려는 것이 아니다. 하나 이상의 동작은 재정렬, 생략 또는 추가될 수 있다.
블록(352)에서, 에피소드가 태스크를 수행하기 시작한다.
블록(354)에서, 시스템은 임의의 업데이트된 파라미터가 이용 가능한 경우, 업데이트된 파라미터에 기초하여 시스템에 의해 사용되는 정책망의 정책 파라미터를 동기화한다. 예를 들어, 시스템은 정책망의 하나 이상의 정책 파라미터를 도 5의 방법(500)에 기초하여 생성된 하나 이상의 최근에 업데이트된 정책 파라미터로 대체할 수 있다. 일부 구현예에서, 정책 파라 미터를 다른 정책 파라미터로 대체하는 것은 신경망 모델의 노드의 값을 다른 값으로 대체하는 것을 포함한다.
블록(356)에서, 시스템은 태스크 탐색을 위한 랜덤 프로세스를 초기화한다. 본 명세서에서 이용되는 바와같이, 랜덤은 실제 랜덤뿐만 아니라 의사 랜덤 (pseudo-random)도 포함한다. 하나의 예로서, 시스템은 로봇의 엔드 이펙터가 랜덤(임의의) 시작 위치로 이동하게 할 수 있다. 다른 예로서, 시스템은 로봇의 각각의 관절가 특정 모션 상태(예를 들어, 특정 위치, 속도 및/또는 가속도)를 취하게 할 수 있다.
블록(358)에서, 시스템은 현재 상태를 식별한다. 현재 상태는 현재 로봇 상태 및/또는 하나 이상의 환경 객체의 현재 상태를 포함할 수 있다. 환경 객체의 현재 상태는 환경 객체들에 부착된 센서에 기초하고 및/또는 로봇의 센서 데이터에 기초하여 결정될 수 있다. 예를 들어, 환경 객체의 현재 상태는 태스크가 도어를 여는 것일 때 도어에 부착된 관성 측정 유닛("IMU")과 같은 하나 이상의 센서의 센서 데이터에 기초한 것일 수 있다. 또한, 예를 들어, 환경 객체의 현재 상태는 로봇의 비전 센서에 의해 포착된 비전 센서 데이터에 기초한 것일 수 있다(예를 들어, 객체의 현재 위치는 로봇의 비전 센서의 비전 센서 데이터에 기초하여 결정될 수 있다). 블록(358)의 제1 반복에서, 현재의 로봇 상태는 블록(356)의 초기화 후에 초기 로봇 상태가 될 것이다. 예를 들어, 초기 로봇 상태는 각 관절 및/또는 엔드 이펙터의 위치, 속도 및/또는 가속도와 같은 상기 로봇의 하나 이상의 컴포넌트의 현재 상태를 포함할 수 있다.
블록(360)에서, 시스템은 현재 상태 및 정책망에 기초하여 구현할 액션을 택한다. 예를 들어, 시스템은 현재 상태를 강화 학습 정책 모델의 입력으로 적용하여, 상기 입력에 기초한 모델을 통해, 구현할 액션을 나타내는 출력을 생성할 수 있다. 시스템은 출력에 기초하여 액션을 선택할 수 있다. 일부 구현예에서, 상기 출력은 로봇의 액츄에이터에 적용되는 토크값 및/또는 다른 값을 포함하고, 상기 액션을 선택하는 것은 상기 액션으로서 이들 값을 선택하는 것을 포함할 수 있다. 부가적인 및/또는 대안적인 현재 관찰값이 블록(358)에서 식별되는 구현예에서, 이들은 또한 정책망에 대한 입력으로 적용될 수 있다.
블록(362)에서, 시스템은 액션을 실행하고 상기 액션으로 인한 보상 및 후속 상태를 관찰한다. 예를 들어, 시스템은 하나 이상의 모션 명령을 생성하여 하나 이상의 액추에이터로 하여금 움직여서 액션을 수행하도록 할 수 있다. 시스템은 보상 함수 및 선택적으로 시스템에 제공된 성공 신호에 기초하여 보상을 관찰할 수 있다. 예를 들어, 타겟 자세에 도달하는 엔드 이펙터의 태스크에 대한 보상 함수는 액션으로부터 야기된 엔드 이펙터의 자세와 타겟 자세(여기서 타겟 자세는 성공 신호로서 제공됨)사이의 차이에 기초할 수 있다. 후속 상태는 후속 로봇 상태 및/또는 하나 이상의 환경 객체의 후속 상태를 포함할 수 있다. 예를 들어, 후속 로봇 상태는 각각의 관절 및/또는 엔드 이펙터의 위치, 속도 및/또는 가속도와 같은 상기 액션의 결과로서 상기 로봇의 하나 이상의 컴포넌트의 상태를 포함할 수 있다. 일부 구현예에서, 블록(362)에서 시스템은 액션의 구현 후에 로봇의 비전 센서 및/또는 액션의 구현 후에 다른 센서(들)의 다른 센서 데이터에 의해 캡처된 비전 센서 데이터와 같은 상기 액션의 결과로서 다른 관찰값을 부가적으로 또는 대안적으로 식별한다.
블록(364)에서, 시스템은 경험 데이터의 인스턴스를 재생 버퍼로 전송한다. 예를 들어, 시스템 자체적으로 인스턴스를 재생 버퍼에 저장하거나 인스턴스를 재생 버퍼에 저장하는 별도의 컴포넌트로 인스턴스를 제공할 수 있다. 도 5의 방법(500)과 관련하여 기술된 바와 같이, 다른 로봇의 인스턴스 및 다른 인스턴스가 트레이닝 중에 정책 파라미터들을 업데이트하는데 사용될 수 있다. 일부 구현예에서, 경험 데이터는 블록(358)의 현재 상태, 블록(360)의 액션, 및/또는 관찰된 보상 및/또는 블록(362)의 후속 상태를 나타내는 데이터를 포함할 수 있다.
블록(366)에서, 시스템은 성공 또는 다른 기준이 충족되었는지 여부를 결정한다. 예를 들어, 시스템은 블록(362)에서 관찰된 보상이 임계값을 만족하면 성공을 결정할 수 있다. 또한, 예를 들어, 다른 기준은 블록(358, 360, 362 및 364)의 반복의 임계 시간 및/또는 임계 횟수를 만족시키는 것일 수 있다.
시스템이 성공 또는 다른 기준이 충족되었다고 결정하면, 시스템은 블록 (352)으로 진행하여 새로운 에피소드를 시작한다. 새로운 에피소드에서, 시스템은 새로운 에피소드의 블록(354)에서, 정책 파라미터를 (도 5의 방법 (500) 및/또는 다른 방법에 따라 이들 파라미터를 동시에 업데이트한 결과로서) 직전의 에피소드내의 것들에 관련하여 업데이트되는 하나 이상의 업데이트된 파라미터와 동기화할 수 있음을 주목한다. 예를 들어, 업데이트된 파라미터는 도 3의 방법(300)에 따라 비동기적으로 경험 데이터를 생성하는 하나 이상의 다른 로봇의 경험 데이터를 이용하여 도 5의 방법(500)에 따라 업데이트될 수 있다. 이들 및 다른 방식에서, 도 3의 각 에피소드는 다른 로봇(들)의 경험 데이터에 기초하여 업데이트되는 정책 파라미터들을 이용할 수 있다. 이로 인해 각 에피소드에서 보다 효율적인 트레이닝을 가능하게 하는 경험 데이터를 생성할 수 있다. 다수의 에피소드는 트레이닝(도 5의 방법(500) 및/또는 다른 방법)이 완료될 때까지 및/또는 어떤 다른 신호가 수신될 때까지(예를 들어, 에러가 발생될 때까지) 방법(300)을 이용하는 시스템에 의해 수행될 수 있다.
시스템이 성공 또는 다른 기준이 충족되지 않았다고 결정하면, 시스템은 블록(358)으로 진행하여 블록(358, 360, 362 및 364)의 추가 반복을 수행한다.
도 3에서, 블록(370, 372 및 374)이 또한 도시되어, 블록(360)의 임의의 액션이 로봇에 대한 하나 이상의 기준을 위반하는지 여부를 결정하고, 그런 경우 블록(362)에서 액션의 실행 이전에 정정 액션을 취하도록 구현될 수 있는 선택적인 블록을 나타낸다. 블록(370)에서, 시스템은 블록(360)의 액션이 하나 이상의 로봇 기준을 위반하는지 여부를 결정한다. 그렇지 않응 경우, 시스템은 블록(362)으로 진행하여 액션을 실행한다.
시스템이 블록(360)의 액션이 하나 이상의 로봇 기준에 위배된다고 결정하면, 시스템은 블록(372) 또는 블록(374)으로 진행한다. 블록(372)에서, 시스템은 더 이상 기준을 위반하지 않도록 액션을 수정하고 상기 액션 대신에 블록(362)에서 실행을 위해 수정된 액션을 제공할 수 있다. 예를 들어, 상기 위반이 속도 제한의 위반인 경우, 액션은 속도 제한이 더 이상 위반되지 않도록 수정될 수 있다. 수정된 액션은 수정되지 않은 액션 대신에 경험 데이터의 인스턴스에서 제공될 수 있다.
블록(374)에서, 시스템은 로봇 기준의 소정 위반에 응답하여 에피소드를 선택적으로 중단할 수 있다. 시스템이 블록(374)에서 에피소드를 중단하면, 시스템은 블록(352)으로 복귀할 수 있고 및/또는 개입(예를 들어, 인간 개입)을 기다릴 수 있다.
본 명세서에 기술된 바와 같이, 많은 구현예에서, 도 3의 방법(300)은 방법(300)의 각각의 반복들 중 하나 이상의(예를 들어, 모두) 반복 동안에 병렬로 작동하는 복수의 로봇 각각에서 구현될 수 있다. 예를 들어, 제1 로봇의 하나 이상의 프로세서는 방법(300)의 인스턴스화를 수행할 수 있고, 제2 로봇의 하나 이상의 프로세서는 방법(300)의 인스턴스화를 수행할 수 있다. 이것은 단지 하나의 로봇이 방법(300)을 동작시키는 것보다 소정 시간 내에 경험 데이터의 더 많은 인스턴스가 생성될 수 있게 한다. 이는 정책 신경망의 트레이닝이 소정 로봇에 의한 경험 데이터의 생성보다 더 큰 빈도로 발생하는 구현예들에서 정책 신경망의 시간-효율적인 트레이닝을 유발할 수 있다. 또한, 이것은 소정 로봇에 의한 방법(300)의 각 에피소드가 다른 로봇(들)의 경험 데이터에 기초하여 업데이트된 경험 데이터를 이용할 수 있게 할 수 있다. 이는 비동기 경험 데이터에 기초한 비동기 트레이닝을 이용하지 않은 경우보다 적은 반복으로 수렴되는 정책 신경망을 트레이닝할 수 있다. 게다가, 엔드 이펙터, 센서, 액츄에이터 및/또는 복수의 로봇의 다른 하드웨어 컴포넌트가 다양하고 및/또는 상이하게 장착(wear)되는 구현예에서 및/또는 상이한 로봇이 상이한 객체(대상)와 및/또는 상이한 환경에서 상호 작용하는 구현예에서, 트레이닝 시 복수의 로봇에 의해 생성된 경험 데이터의 이용은 트레이닝된 정책망에서 다양한 로봇 구성 및/또는 환경 구성에 대한 견고성을 제공할 수 있다.
도 4는 경험 데이터의 인스턴스를 저장하는 예시적인 방법(400)을 나타내는 흐름도이다. 편의상, 흐름도의 동작들은 해당 동작을 수행하는 시스템을 참조하여 기술된다. 이 시스템은 프로세서와 같은 하나 이상의 컴퓨터 시스템의 하나 이상의 컴포넌트를 포함할 수 있고 및/또는 로봇의 프로세서 및/또는 로봇 제어 시스템과 같은 하나 이상의 로봇의 하나 이상의 컴포넌트를 포함할 수 있다. 더욱이, 방법(400)의 동작들이 특정 순서로 도시되어 있지만, 이는 제한하려는 것이 아니다. 하나 이상의 동작은 재정렬, 생략 또는 추가될 수 있다.
블록(452)에서, 경험 데이터 수집이 시작된다.
블록(454)에서, 시스템은 로봇에 대한 경험 데이터의 인스턴스를 수신한다. 로봇은 경험 데이터를 시스템 및/또는 다른 시스템에 병렬로(그러나 선택적으로 다른 주파수로) 제공하는 다수의 로봇 중 하나이다. 예를 들어, 로봇들은 각각 도 3의 방법(300)을 구현할 수 있고, 블록(454)은 방법(300)의 블록(364)의 수행의 각 인스턴스에 응답하여 수행될 수 있다.
블록(456)에서, 시스템은 경험 데이터의 인스턴스를 재생 버퍼에 저장한다. 블록(458)에서, 시스템은 트레이닝이 완료되었는지 여부를 결정한다. 시스템은 재생 버퍼에 저장된 경험 데이터에 기초하여 정책 파라미터를 업데이트하는 선택적으로 별도의 트레이닝 시스템의 신호에 응답하여 트레이닝이 완료된 것으로 결정할 수 있다.
시스템이 블록(458)에서 트레이닝이 완료되지 않았다고 결정하면, 시스템은 블록(454)으로 되돌아가서 (동일한 로봇 또는 다른 로봇으로부터) 경험 데이터의 추가 인스턴스를 수신한다. 방법(400)의 하나 이상의 블록의 다수의 스레드가 다수의 로봇으로부터 동시에 경험 데이터를 수신할 수 있도록 구현될 수 있음을 이해할 수 있다.
시스템이 블록(458)에서 트레이닝이 완료되었다고 결정하면, 경험 데이터 수집은 블록(460)에서 종료한다.
명료함을 위해 방법(300) 및 방법(400)이 본 명세서에서 개별 도면에 도시되어 있지만, 방법(400)의 하나 이상의 블록은 방법(300)의 하나 이상의 블록을 수행하는 동일한 컴포넌트(들)에 의해 수행될 수 있는 것으로 이해된다. 예를 들어, 방법(300)과 방법(400)의 블록들 중 하나 이상(예를 들어, 전부)은 로봇의 프로세서(들)에 의해 수행될 수 있다. 또한, 방법(400)의 하나 이상의 블럭은 방법(300)의 하나 이상의 블럭과 조합하여 또는 그 이전 또는 이후에 수행될 수 있는 것으로 이해된다.
도 5는 정책망의 파라미터들을 업데이트하기 위한 트레이닝의 예시적인 방법(500)을 나타내는 흐름도이다. 편의상, 흐름도의 동작들은 해당 동작을 수행하는 시스템을 참조하여 설명된다. 이 시스템은 트레이닝 엔진(114) 및/또는 다른 컴퓨터 시스템의 프로세서(예컨대, GPU 및/또는 CPU)와 같은 컴퓨터 시스템의 하나 이상의 컴포넌트를 포함할 수 있다. 게다가, 방법(500)의 동작들이 특정 순서로 도시되어 있지만, 이는 제한하려는 것이 아니다. 하나 이상의 동작은 재정렬, 생략 또는 추가될 수 있다.
블록(552)에서, 트레이닝이 시작된다.
블록(554)에서, 시스템은 랜덤하게 초기화된 Q-함수 추정치를 파라미터화하는 정규화된 Q-네트워크와 같은 정규화된 Q-네트워크를 초기화한다. 예를 들어, 시스템은 정규화된 Q 네트워크
Figure pct00026
(여기서
Figure pct00027
이다)를 초기화 할 수 있다.
블록(556)에서, 시스템은 블록(554)에서 초기화된 정규화된 Q 네트워크에 대한 입력인 액션들을 출력하는 타겟 정책망를 초기화한다. 예를 들어, 시스템은 가중치(
Figure pct00028
)로 타겟 정책망(Q')을 초기화할 수 있다.
블록(558)에서, 시스템은 재생 버퍼로부터 경험 데이터의 배치(batch)를 샘플링한다. 예를 들어, 시스템은 도 3의 방법(300) 및/또는 도 4의 방법(400)에 기초하여 재생 버퍼에 저장된 경험 데이터의 하나 이상의 인스턴스의 배치를 샘플링 할 수 있다.
일부 구현예에서, 경험 데이터에 대해, 시스템은 다음을 설정한다.
Figure pct00029
블록(560)에서, 시스템은 블록(558)에서 샘플링된 경험 데이터에 기초하여 정규화된 Q 네트워크를 업데이트한다. 예를 들어, 시스템은 손실 함수에 기초하여 Q 네트워크상에서 역전파 및/또는 다른 기술을 수행할 수 있다. 예를 들어, 시스템은 손실
Figure pct00030
Figure pct00031
을 최소화함으로써 Q 네트워크의 가중치를 업데이트할 수 있다.
블록(562)에서, 시스템은 정규화된 Q 네트워크에 대한 업데이트에 기초하여 타겟 정책망를 업데이트한다. 예를 들어, 시스템은 네트워크 파라미터에 관한 손실 함수의 기울기(gradient)에 기초하여 타겟 정책망를 업데이트할 수 있다. 예를 들어, 시스템은
Figure pct00032
에 기초하여 타겟 정책망를 업데이트할 수 있다.
블록(564)에서, 시스템은 다음 에피소드에서 로봇이 사용하기 위한 업데이트를 제공한다. 예를 들어, 시스템은 다음 에피소드들에서 로봇들에 의해 사용되는 업데이트된 정책 파라미터 및/또는 다른 파라미터를 제공할 수 있다.
블록(566)에서, 시스템은 트레이닝이 완료되었는지 여부를 결정한다. 일부 구현예에서, 트레이닝이 완료되었는지를 결정하는 것은, 수렴이 이루어졌는지, 블록(558-564)의 반복 임계량이 발생했는지, 모든 이용 가능한 경험 데이터가 처리되었는지, 임계 시간이 경과했는지 및/또는 다른 기준이 충족되었는지를 결정하는 것에 기초할 수 있다.
시스템이 트레이닝이 완료되었다고 결정하면, 트레이닝은 블록(568)에서 종료된다. 시스템이 트레이닝이 완료되지 않았다고 결정하면, 시스템은 블록(558)으로 되돌아 간다. 본 명세서에 기술된 바와 같이, 방법(500)은 본 명세서에 개시된 방법들(300 및 400)과 동시에 수행될 수 있다. 이러한 구현예 중 일부에서, 방법(500)의 반복 수행의 빈도는 방법(300 및/또는 400)의 반복 수행의 빈도보다 클 수 있다. 하나의 비-제한적인 예로서, 방법(500)은 100Hz의 레이트(rate)로 수행될 수 있고, 방법(300)은 20Hz의 레이트로 수행될 수 있다. 일부 구현예에서, 방법(300), 방법(400) 및/또는 방법(500)은 경험 데이터가 하나 이상의 실제 로봇에 의해 연속적으로 생성되고 타겟 정책망를 연속적으로 업데이트하는데 이용된다는 점에서 "연속적으로" 수행될 수 있음에 유의해야 한다.
본 명세서에 기술된 구현예에 대한 몇가지 추가 세부 사항을 제공하기 위해, 본 명세서에 기술된 강화 학습 기술을 통해 학습될 수 있는 몇 가지 예시적인 태스크가 보다 자세히 기술된다. 태스크들의 몇가지 예는 랜덤-타겟 도달, 도어 밀기 (pushing) 및/또는 당기기(pulling) 및 잡기 및 놓기(pick and place)를 포함할 수 있다. 예를 들어, 도달 태스크에서 로봇 암은 고정된 초기 구성으로부터 영역 (space)내의 랜덤 타겟에 도달하려고 시도할 수 있다. 랜덤 타겟은 한 지점을 중심으로 0.2m 크기의 입방체(cube)로부터 균일하게 지점들을 샘플링함으로써 에피소드 별로 생성된다. 상기 랜덤 타겟은 성공 신호로서 제공될 수 있다. 엔드 이펙터 위치(e)와 타겟 위치(y)가 주어지면, 보상 함수는
Figure pct00033
Figure pct00034
일 수 있다.
또한, 예를 들어, 도어 밀기 및 당기기 태스크에서, 로봇 암은 도어의 손잡이를 밀거나 당김으로써 도어를 열려고 시도할 수 있다. 손잡이는 90도까지 아래쪽으로 돌려질 수 있고 도어는 양방향으로 90도까지 열려질 수 있다. 도어에는 힘이 가해지지 않을 때 점차적으로 닫히는 스프링이 있다. 도어에는 손잡이가 약 60도 이상 돌려질 때만 도어를 열 수 있는 래치가 있다. 도어에 부착된 IMU 센서는 도어각 측정에 사용될 수 있으며, IMU 센서의 쿼터니언 판독값(quaternion readings)은손실을 계산하는데 사용될 수 있다. 예를 들어, 보상 함수는 두 부분, 즉 손잡이에 대한 엔드 이펙터의 근접도(closeness) 및 도어가 올바른 방향으로 얼마나 열렸는지의 척도(measure)로 구성될 수 있다. 보상 함수의 첫 번째 부분은 엔드 이펙터 위치(e)와 중립 상태의 손잡이 위치(h) 사이의 거리에 의존한다. 보상 함수의 두 번째 부분은 손잡이(q)의 쿼터니언과 상기 손잡이가 돌려져 도어가 열린(
Figure pct00035
) 때의 값 사이의 거리에 의존한다. 상태 특징(features)은 로봇 암의 관절 각도와 그의 시간 도함수, 엔드 이펙터 위치, 휴계 도어 손잡이 위치, 도어 프레임 위치, 도어 각도 및 손잡이 각도를 포함할 수 있다.
도 6은 로봇(640)의 예시적인 아키텍처를 개략적으로 도시한다. 로봇(640)은 로봇 제어 시스템(660), 하나 이상의 동작 컴포넌트(640a-640n) 및 하나 이상의 센서(642a-642m)를 포함한다. 센서(642a-642m)는 예를 들어 비전 센서, 광 센서, 압력 센서, 압력 파 센서(예를 들어, 마이크로폰), 근접 센서, 가속도계, 자이로스코프, 온도계, 기압계 등을 포함할 수 있다. 센서(642a-m)는 로봇(620)과 일체로 도시되어 있지만, 이것에 제한하려는 것이 아니다. 일부 구현예에서, 센서(642a-m)는 예를 들어 독립형 유닛으로서 로봇(620) 외부에 위치될 수 있다.
동작 컴포넌트(640a-640n)는 예를 들어 하나 이상의 엔드 이펙터들 및/또는 하나 이상의 서보 모터 또는 다른 액추에이터들을 포함하여 로봇의 하나 이상의 컴포넌트들의 이동을 수행할 수 있다. 예를 들어, 로봇(620)은 다수의 자유도를 가질 수 있고, 각각의 액추에이터는 제어 명령에 응답하여 하나 이상의 자유도 내에서 로봇(620)의 작동(actuation)을 제어할 수 있다. 본 명세서에서 사용된 바와 같이, 액추에이터라는 용어는 액추에이터와 관련될 수 있고 수신된 제어 명령을 액추에이터를 구동하기 위한 하나 이상의 신호로 변환시킬 수 있는 임의의 드라이버(들) 이외에, 모션(예를 들어, 모터)을 생성하는 기계적 또는 전기적 디바이스를 포함한다. 따라서, 액추에이터에 제어 명령을 제공하는 것은 원하는 모션을 생성하기 위해 상기 제어 명령을 전기적 또는 기계적 디바이스를 구동하기 위한 적절한 신호로 변환하는 드라이버로 상기 제어 명령을 제공하는 것을 포함할 수 있다.
로봇 제어 시스템(660)은 로봇(620)의 CPU, GPU 및/또는 다른 컨트롤러(들)와 같은 하나 이상의 프로세서로 구현될 수 있다. 일부 구현예에서, 로봇(620)은 제어 시스템(660)의 전부 또는 양태를 포함할 수 있는 "브레인 박스(brain box)"를 포함할 수 있다. 예를 들어, 브레인 박스는 동작 컴포넌트(640a-n)에 실시간 데이터 버스트(data bursts)를 제공할 수 있으며, 실시간 버스트들 각각은, 특히 하나 이상의 동작 컴포넌트(640a-n) 각각에 대한 모션 파라미터(존재하는 경우)를 지시하는 하나 이상의 제어 명령들의 세트를 포함한다. 일부 구현예에서, 로봇 제어 시스템(660)은 본 명세서에 기술된 방법(300, 400 및/또는 500)의 하나 이상의 양태를 수행할 수 있다.
본 명세서에 기술된 바와 같이, 일부 구현에에서, 로봇의 하나 이상의 컴포넌트를 움직일 때 제어 시스템(660)에 의해 생성된 제어 명령의 전부 및 양태는 현재의 로봇 상태 및/또는 다른 관찰값에 기초하여 정책망를 통해 생성된 출력에 기초할 수 있다. 도 6에는 제어 시스템(660)이 로봇의 필수 부분으로 도시되어 있지만, 일부 구현예에서, 제어 시스템(660)의 전부 또는 양태는 로봇(620)과 별개이지만 로봇(620)과 통신하는 컴포넌트로 구현될 수 있다. 예를 들어, 제어 시스템 (660)의 전부 또는 양태는 컴퓨팅 디바이스(710)와 같은 로봇(620)과 유선 및/또는 무선 통신하는 하나 이상의 컴퓨팅 디바이스 상에 구현될 수 있다.
도 7은 본 명세서에 기술된 기술들의 하나 이상의 양태를 수행하기 위해 선택적으로 이용될 수 있는 예시적인 컴퓨팅 디바이스(710)의 블록도이다. 컴퓨팅 디바이스(710)는 전형적으로 버스 서브 시스템(712)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(714)를 포함한다. 이러한 주변 디바이스들은 예를 들어 메모리 서브 시스템(725) 및 파일 저장 서브 시스템(726), 사용자 인터페이스 출력 디바이스(720), 사용자 인터페이스 입력 디바이스(722) 및 네트워크 인터페이스 서브 시스템(716)을 포함하는 저장 서브 시스템(724)을 포함할 수 있다. 입력 및 출력 디바이스는 사용자가 컴퓨팅 디바이스(710)와 상호 작용하는 것을 허용한다. 네트워크 인터페이스 서브 시스템(716)은 외부 네트워크에 인터페이스를 제공하고 다른 컴퓨팅 디바이스내의 대응하는 인터페이스 디바이스에 연결된다.
사용자 인터페이스 입력 디바이스(722)는 키보드, 포인팅 디바이스(예컨대, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿), 스캐너, 디스플레이에 통합된 터치 스크린, 음성 인식 시스템과 같은 오디오 입력 디바이스, 마이크로폰 및/또는 다른 유형의 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(710) 또는 통신 네트워크 상에 정보를 입력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(720)는 디스플레이 서브 시스템, 프린터, 팩스 기계, 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브 시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 일부 다른 메커니즘을 포함할 수 있다. 디스플레이 서브 시스템은 또한 오디오 출력 디바이스를 통한 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(710)로부터 사용자 또는 다른 기계 또는 컴퓨팅 디바이스로 정보를 출력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장 서브 시스템(724)은 본 명세서에 기술된 모듈들의 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브 시스템(724)은 도 3, 도 4 및/또는 도 5의 방법의 선택된 양태들을 수행하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 단독으로 또는 다른 프로세서와 조합하여 프로세서(714)에 의해 실행된다. 저장 서브 시스템(724)에서 사용되는 메모리(725)는 프로그램 실행 중에 명령 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(RAM)(730) 및 고정 명령이 저장되는 판독 전용 메모리(ROM)(732)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브 시스템(726)은 프로그램 및 데이터 파일을 위한 영구 저장 장치를 제공할 수 있으며, 하드 디스크 드라이브, 플로피 디스크 드라이브 및 관련 이동식 매체, CD-ROM 드라이브, 광 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 소정 구현예의 기능을 구현하는 모듈은 저장 서브 시스템(724)내의 파일 저장 서브 시스템(726)에 의해 저장되거나 프로세서(들)(714)에 의해 액세스 가능한 다른 머신에 저장될 수 있다.
버스 서브 시스템(712)은 컴퓨팅 디바이스(710)의 다양한 컴포넌트 및 서브 시스템들이 의도된 바와 같이 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브 시스템(712)은 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브 시스템의 다른 구현예는 다수의 버스를 사용할 수 있다.
컴퓨팅 디바이스(710)는 워크 스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 7에 도시된 컴퓨팅 디바이스(710)의 설명은 단지 일부 구현예를 설명하기 위한 특정 예로서만 의도된다. 도 7에 도시된 컴퓨팅 디바이스보다 더 많거나 적은 컴포넌트를 갖는 컴퓨팅 디바이스(710)의 많은 다른 구성이 가능하다.
몇몇 구현예가 본 명세서에 기술되고 도시되었지만, 기능을 수행하고 및/또는 본 명세서에 기술된 결과 및/또는 하나 이상의 이점을 얻기 위한 다양한 다른 수단 및/또는 구조가 이용될 수 있으며, 그러한 변형 및/또는 수정 각각은 본 명세서에 기술된 구현예의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 기술된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것이며, 실제 파라미터, 치수, 재료 및/또는 구성은 특정 용도 또는 그 교시가 사용되는 용도에 따라 좌우될 것이다. 당업자는 일상적인 실험만을 사용하여 본 명세서에 기술된 특정 구현예에 대한 다수의 등가 구현예를 인식할 수 있거나 또는 확인할 수 있을 것이다. 따라서, 전술한 구현예는 단지 예로서 제시되고, 첨부된 청구항 및 그 등가 청구항의 범위 내에서 구현은 구체적으로 기술되고 청구된 것과 다르게 실시될 수 있음을 이해해야 한다. 본 발명의 구현은 본 명세서에 기술된 각각의 개별적인 특징, 시스템, 항목, 재료, 키트 및/또는 방법에 관한 것이다. 게다가, 2개 이상의 특징, 시스템, 항목, 재료, 키트 및/또는 방법의 임의의 조합은, 그러한 시스템, 항목, 재료, 키트 및/또는 방법이 서로 불일치하지 않는 경우, 본 발명의 범위 내에 포함된다.

Claims (37)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    복수의 로봇 각각에 의해, 각 에피소드가 태스크에 대한 강화 학습 정책을 나타내는 정책 신경망에 기초하여 태스크를 수행하는 탐색인, 복수의 에피소드의 수행 중에:
    상기 로봇들에 의해 상기 에피소드 동안 생성된 로봇 경험 데이터의 인스턴스를 버퍼에 저장하는 단계와, 상기 로봇 경험 데이터의 각 인스턴스는 에피소드들 중 대응하는 하나의 에피소드 동안 생성되고, 상기 대응하는 에피소드에 대한 정책 신경망을 위한 대응 정책 파라미터를 갖는 정책 신경망을 사용하여 생성된 대응 출력에 적어도 부분적으로 기초하여 생성되고;
    상기 정책 신경망의 업데이트된 정책 파라미터를 반복적으로 생성하는 단계와, 상기 반복적으로 생성하는 단계의 반복들 각각은 상기 반복 동안 버퍼내의 로봇 경험 데이터의 하나 이상의 인스턴스의 그룹을 사용하여 상기 업데이트된 정책 파라미터를 생성하는 단계를 포함하고; 그리고
    상기 로봇에 의해 수행된 복수의 에피소드 각각의 시작과 연동하여 각각의 로봇에 의해, 상기 에피소드에서 로봇에 의해 사용될 정책 신경망을 업데이트하는 단계를 포함하며, 상기 정책 신경망을 업데이트하는 단계는 업데이트된 정책 파라미터를 반복적으로 생성하는 단계의 가장 최근 반복의 상기 업데이트된 정책 파라미터들을 사용하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 업데이트된 정책 파라미터들 각각은,
    상기 정책 신경망의 대응하는 계층의 대응하는 노드에 대한 대응하는 값을 정의하는 것을 특징으로 하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 로봇들의 주어진 로봇에 대한 로봇 경험 데이터의 인스턴스는,
    상기 업데이트된 정책 파라미터를 반복적으로 생성하는 생성 빈도보다 낮은 빈도인 제1 빈도로 버퍼에 저장되는 것을 특징으로 하는 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 로봇들 각각에 대한 로봇 경험 데이터의 인스턴스는,
    상기 업데이트된 정책 파라미터를 반복적으로 생성하는 생성 빈도보다 낮은 대응 빈도로 버퍼에 저장되는 것을 특징으로 하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 로봇 경험 데이터의 인스턴스를 버퍼에 저장하는 단계는 제1 스레드에서 하나 이상의 프로세서에 의해 수행되고,
    상기 반복적으로 생성하는 단계는 상기 제1 스레드와 분리된 제2 스레드에서 하나 이상의 프로세서에 의해 수행되는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 제1 스레드는 하나 이상의 프로세서의 제1 그룹에 의해 수행되고,
    상기 제2 스레드는 하나 이상의 프로세서의 제2 그룹에 의해 수행되며, 상기 제2 그룹은 제1 그룹과 중첩되지 않는 것을 특징으로 하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 반복적으로 생성하는 단계의 각각의 반복은,
    상기 반복 생성 동안 버퍼 내의 로봇 경험 데이터의 하나 이상의 인스턴스의 그룹을 고려하여 손실 함수를 최소화하는 것에 기초하여 상기 업데이트된 정책 파라미터를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 반복적으로 생성하는 단계의 각각의 반복은,
    상기 반복 생성하는 동안 버퍼 내의 로봇 경험 데이터의 하나 이상의 인스턴스의 그룹을 고려하여 오프-정책(off-policy) 학습하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 오프-정책 학습은 Q-러닝인 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 Q-러닝은 NAF(normalized advantage function) 알고리즘 또는 DDPG (deep deterministic policy gradient) 알고리즘을 이용하는 것을 특징으로 하는 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 경험 데이터의 각각의 인스턴스는 대응하는:
    초기 로봇 상태, 초기 로봇 상태에서 전환된 후속 로봇 상태, 초기 로봇 상태에서 후속 로봇 상태로 전환하기 위해 실행된 액션 및 상기 액션에 대한 보상을 나타내고,
    상기 초기 로봇 상태에서 후속 로봇 상태로 전환하기 위해 실행되는 액션은 상기 대응하는 에피소드에 대한 상기 업데이트된 정책 파라미터를 갖는 정책 신경망을 사용하여 상기 초기 로봇 상태의 프로세싱에 기초하여 생성되고, 상기 액션에 대한 보상은 강화 학습 정책에 대한 보상 함수에 기초하여 생성되는 것을 특징으로 하는 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    하나 이상의 기준에 기초하여, 상기 복수의 에피소드의 수행 중단하고 상기 반복적으로 생성을 단계를 중단하는 단계;
    하나 이상의 추가 로봇에 의한 사용을 위해, 가장 최근에 생성된 버전의 상기 업데이트된 정책 파라미터를 갖는 정책 신경망을 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 방법으로서,
    주어진 로봇의 하나 이상의 프로세서에 의해:
    제1 그룹의 정책 파라미터를 갖는 정책망에 기초하여 태스크를 수행하는 탐색의 주어진 에피소드를 수행하는 단계와;
    상기 주어진 에피소드 동안 상기 정책망에 기초하여 생성된 로봇 경험 데이터의 제1 인스턴스를 제공하는 단계와;
    상기 주어진 로봇에 의해, 상기 정책망에 기초하여 상기 태스크를 수행하는 후속 에피소드를 수행하기 전에:
    상기 제1 그룹의 하나 이상의 정책 파라미터를 업데이트된 정책 파라미터로 대체하는 단계와, 상기 업데이트된 정책 파라미터는 추가 로봇에 의해 태스크를 수행하는 탐색의 추가 로봇 에피소드 동안 추가 로봇에 의해 생성된 로봇 경험 데이터의 추가 인스턴스에 기초하여 생성되고;
    상기 후속 에피소드는 제1 에피소드 바로 다음에 이어지고, 상기 후속 에피소드에서 상기 정책망에 기초하여 태스크를 수행하는 단계는 상기 대체된 정책 파라미터 대신에 상기 업데이트된 정책 파라미터를 사용하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제13항에 있어서,
    하나 이상의 추가 프로세서에 의해 그리고 상기 후속 에피소드의 수행 중에, 추가 업데이트된 정책 파라미터를 생성하는 단계와, 상기 추가 업데이트된 정책 파라미터를 생성하는 단계는 상기 제1 에피소드 동안 생성된 로봇 경험 데이터의 하나 이상의 제1 인스턴스에 기초하고; 그리고
    상기 추가 로봇에 의한 대응하는 에피소드의 수행시 추가 로봇에 의한 사용을 위해 상기 추가 업데이트된 정책 파라미터를 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    상기 추가 로봇은,
    상기 주어진 로봇에 의한 후속 에피소드의 수행 중에 대응하는 에피소드의 수행을 시작하는 것을 특징으로 하는 방법.
  16. 제14항에 있어서, 상기 추가 업데이트된 정책 파라미터는,
    상기 주어진 로봇에 의한 임의의 에피소드의 수행시 상기 주어진 로봇에 의해 이용되지 않는 것을 특징으로 하는 방법.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서,
    하나 이상의 추가 프로세서에 의해, 또 다른 추가 업데이트된 정책 파라미터를 생성하는 단계와, 상기 또 다른 추가 업데이트된 정책 파라미터는 후속 에피소드의 수행 중에 생성되고 상기 추가 업데이트된 정책 파라미터의 생성에 후속하여 생성되며; 그리고
    상기 주어진 로봇에 의해, 정책망에 기초하여 태스크를 수행하는 추가 후속 에피소드의 수행시 상기 주어진 로봇에 의한 사용을 위한 상기 또 다른 추가 업데이트된 정책 파라미터를 제공하는 단계를 더 포함하고, 상기 추가 후속 에피소드는 상기 후속 에피소드 바로 다음에 이어지는 것을 특징으로 하는 방법.
  18. 제17항에 있어서,
    상기 주어진 로봇은,
    상기 추가의 로봇에 의해 대응하는 에피소드의 수행 중에 추가 후속 에피소드의 수행을 시작하는 것을 특징으로 하는 방법.
  19. 제17항에 있어서,
    상기 업데이트된 정책 파라미터 및 상기 또 다른 추가 업데이트된 정책 파라미터는 상기 추가 로봇에 의한 임의의 에피소드의 수행시 추가 로봇에 의해 이용되지 않는 것을 특징으로 하는 방법.
  20. 제13항 내지 제18항 중 어느 한 항에 있어서,
    상기 업데이트된 정책 파라미터는,
    상기 추가 로봇에 의한 임의의 에피소드의 수행시 상기 추가의 로봇에 의해 이용되지 않는 것을 특징으로 하는 방법.
  21. 제13항 내지 제20항 중 어느 한 항에 있어서,
    상기 정책망는 신경망 모델을 포함하는 것을 특징으로 하는 방법.
  22. 제21항에 있어서,
    상기 업데이트된 정책 파라미터들 각각은,
    상기 신경망 모델의 대응하는 계층의 대응 노드에 대한 대응 값을 정의하는 것을 특징으로 하는 방법.
  23. 제13항에 있어서,
    상기 태스크를 수행하는 상기 주어진 에피소드의 수행 중에:
    상기 정책망로부터의 출력의 주어진 반복에서, 상기 주어진 로봇에 대한 하나 이상의 기준의 위반을 결정하는 단계와;
    상기 하나 이상의 기준이 더 이상 위반되지 않도록 상기 주어진 반복의 출력을 수정하는 단계와; 그리고
    상기 수정된 출력에 기초하여 상기 경험 데이터의 인스턴스들의 주어진 인스턴스를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  24. 제23항에 있어서,
    상기 기준은 관절 위치 제한, 관절 속도 제한 및 엔드 이펙터 위치 제한 중 하나 이상을 포함하는 것을 특징으로 하는 방법.
  25. 제13항 내지 제24항 중 어느 한 항에 있어서,
    상기 정책망의 입력으로서 현재의 상태 표현을 적용하는 단계와, 상기 현재의 상태 표현은 적어도 상기 주어진 로봇의 현재 상태를 나타내고;
    상기 정책망를 사용하여 입력을 처리함으로써 출력을 생성하는 단계와; 그리고
    상기 출력에 기초하여 상기 주어진 로봇의 하나 이상의 액추에이터로 제어 명령을 제공하는 단계에 의해,
    상기 주어진 에피소드 동안 상기 탐색들의 주어진 탐색을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  26. 제25항에 있어서,
    상기 출력에 기초하여 상기 액추에이터들로 제어 명령을 제공하는 단계는,
    상기 출력에 노이즈를 부가함으로써 수정된 출력을 생성하는 단계와; 그리고
    상기 수정된 출력에 기초하여 제어 명령을 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  27. 제25항에 있어서,
    상기 출력은 로봇의 복수의 액츄에이터 각각에 대한 속도 또는 토크를 포함하고, 상기 제어 명령을 제공하는 단계는 상기 액추에이터들이 속도 또는 토크를 적용하도록 제어 명령을 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  28. 제13항 내지 제27항 중 어느 한 항에 있어서,
    상기 경험 데이터의 제1 인스턴스들 각각은 대응하는:
    초기 로봇 상태, 초기 로봇 상태에서 전환된 후속 로봇 상태, 초기 로봇 상태에서 후속 로봇 상태로 전환하기 위해 실행된 액션 및 상기 액션에 대한 보상을 나타내는 것을 특징으로 하는 방법.
  29. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    복수의 로봇 중 주어진 로봇에 의해 생성된 주어진 로봇 경험 데이터의 주어진 인스턴스를 수신하는 단계와, 상기 로봇 경험 데이터의 주어진 인스턴스는 상기 주어진 인스턴스 생성시 상기 주어진 로봇에 의해 이용되는 정책망의 정책 파라미터들의 주어진 버전에 기초하여 태스크를 수행하는 탐색의 주어진 에피소드 동안 생성되고;
    상기 복수의 로봇의 추가 로봇들로부터 로봇 경험 데이터의 추가 인스턴스를 수신하는 단계와, 상기 추가 인스턴스는 추가 로봇들에 의해, 상기 정책망에 기초하여 태스크를 수행하는 탐색의 에피소드 동안 생성되고;
    상기 주어진 로봇 및 추가 로봇들이 태스크를 수행하는 탐색의 에피소드를 계속하는 동안, 상기 주어진 인스턴스 및 추가 인스턴스에 적어도 부분적으로 기초하여 정책망의 트레이닝에 기초한 정책망의 정책 파라미터의 새로운 버전을 생성하는 단계와;
    상기 정책 파라미터의 새로운 버전에 기초하여 상기 주어진 로봇에 의해 태스크를 수행하는 탐색의 바로 후속 에피소드를 수행하기 위해 상기 주어진 로봇으로 정책 파라미터의 새로운 버전을 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  30. 제30항에 있어서,
    상기 주어진 인스턴스를 수신하는 단계는,
    상기 주어진 로봇으로부터 경험 데이터의 인스턴스를 수신하는 복수의 경험 데이터 반복의 하나의 반복에서 발생하고, 상기 복수의 경험 데이터 반복은 제1 빈도로 발생하는 것을 특징으로 하는 방법.
  31. 제30항에 있어서,
    상기 업데이트된 파라미터를 생성하도록 강화 모델을 트레이닝하는 단계는,
    상기 주어진 인스턴스 및 상기 추가 인스턴스에 적어도 부분적으로 기초하여 상기 정책망의 트레이닝의 제1 트레이닝 반복과; 그리고
    복수의 로봇으로부터 경험 데이터의 또 다른 추가 인스턴스에 기초하여 정책망의 트레이닝의 하나 이상의 추가 트레이닝 반복을 포함하는 복수의 트레이닝 반복을 수행하는 단계를 포함하고,
    상기 트레이닝 반복은 경험 데이터 반복보다 큰 빈도인 제2 빈도에서 발생하는 것을 특징으로 하는 방법.
  32. 하나 이상의 프로세서에 의해 구현되는 방법으로서,
    비동기적으로 동시에 동작하는 복수의 로봇에 의해 생성된 경험 데이터의 인스턴스를 반복적으로 수신하는 단계와, 상기 경험 데이터의 인스턴스들 각각은 정책 신경망에 기초한 태스크 탐색의 대응하는 에피소드 동안 상기 복수의 로봇들 중 대응하는 로봇에 의해 생성되고;
    각각의 트레이닝 반복에서 상기 정책망의 하나 이상의 업데이트된 파라미터를 생성하도록 상기 복수의 로봇으로부터 수신된 경험 데이터에 기초하여 정책망를 반복적으로 트레이닝하는 단계와; 그리고
    상기 경험 데이터의 인스턴스가 기반으로 하는 태스크 탐색들의 에피소드 이전에 상기 로봇들의 정책 신경망를 업데이트하기 위해 상기 업데이트된 파라미터들의 인스턴스를 로봇들로 반복적이고 비동기적으로 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  33. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 업데이트된 정책 파라미터를 반복적으로 생성하는 가장 최근 반복의 상기 업데이트된 정책 파라미터를 사용하여, 상기 복수의 로봇들 중 적어도 하나의 로봇의 하나 이상의 액추에이터가 이동하여 액션을 수행하도록 하는 하나 이상의 모션 명령을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  34. 제29항 내지 제31항 중 어느 한 항에 있어서,
    상기 주어진 로봇에 의해, 상기 정책 파라미터의 새로운 버전에 기초하여 상기 주어진 로봇에 의해 태스크를 수행하는 탐색의 바로 후속 에피소드를 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  35. 제32항에 있어서,
    상기 경험 데이터의 인스턴스가 기반으로 하는 태스크 탐색의 상기 에피소드를 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  36. 컴퓨팅 장치에 의해 실행될 때, 선행하는 청구항들 중 어느 한 항의 방법이 수행되게 하는 컴퓨터 판독 가능 명령들.
  37. 선행하는 청구항들 중 어느 한 항의 방법을 수행하도록 구성된 장치.
KR1020197009013A 2016-09-15 2017-09-14 로봇 조작을 위한 심층 강화 학습 KR102211012B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662395340P 2016-09-15 2016-09-15
US62/395,340 2016-09-15
PCT/US2017/051646 WO2018053187A1 (en) 2016-09-15 2017-09-14 Deep reinforcement learning for robotic manipulation

Publications (2)

Publication Number Publication Date
KR20190040506A true KR20190040506A (ko) 2019-04-18
KR102211012B1 KR102211012B1 (ko) 2021-02-03

Family

ID=59966886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197009013A KR102211012B1 (ko) 2016-09-15 2017-09-14 로봇 조작을 위한 심층 강화 학습

Country Status (7)

Country Link
US (3) US11400587B2 (ko)
EP (1) EP3504034A1 (ko)
JP (1) JP6721785B2 (ko)
KR (1) KR102211012B1 (ko)
CN (2) CN109906132B (ko)
DE (1) DE202017105598U1 (ko)
WO (1) WO2018053187A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102143757B1 (ko) * 2019-05-07 2020-08-12 오토시맨틱스 주식회사 딥러닝을 포함한 인공지능을 적용시킨 풍력 발전장치
KR102233739B1 (ko) 2019-09-24 2021-03-31 한국생산기술연구원 강화학습과 인공신경망을 이용한 보행 로봇 자세 제어방법
KR20210065738A (ko) 2019-11-27 2021-06-04 한국생산기술연구원 강화학습을 이용한 7축 로봇 제어 방법
KR20230093933A (ko) 2021-12-20 2023-06-27 주식회사 현대케피코 가속도센서를 이용한 보행 로봇의 강화 학습 방법
KR20230122443A (ko) * 2022-02-14 2023-08-22 경희대학교 산학협력단 사람형 로봇 손의 처리 시스템

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733532B2 (en) 2016-01-27 2020-08-04 Bonsai AI, Inc. Multiple user interfaces of an artificial intelligence system to accommodate different types of users solving different types of problems with artificial intelligence
US11775850B2 (en) * 2016-01-27 2023-10-03 Microsoft Technology Licensing, Llc Artificial intelligence engine having various algorithms to build different concepts contained within a same AI model
US11841789B2 (en) 2016-01-27 2023-12-12 Microsoft Technology Licensing, Llc Visual aids for debugging
US11836650B2 (en) 2016-01-27 2023-12-05 Microsoft Technology Licensing, Llc Artificial intelligence engine for mixing and enhancing features from one or more trained pre-existing machine-learning models
US11868896B2 (en) 2016-01-27 2024-01-09 Microsoft Technology Licensing, Llc Interface for working with simulations on premises
JP6721785B2 (ja) * 2016-09-15 2020-07-15 グーグル エルエルシー ロボット操作のための深層強化学習
JP6728495B2 (ja) * 2016-11-04 2020-07-22 ディープマインド テクノロジーズ リミテッド 強化学習を用いた環境予測
US11062207B2 (en) * 2016-11-04 2021-07-13 Raytheon Technologies Corporation Control systems using deep reinforcement learning
CN110520871B (zh) * 2017-02-24 2023-11-07 渊慧科技有限公司 使用学习进度测量训练机器学习模型
EP3602419B1 (en) * 2017-04-28 2023-09-20 Google LLC Neural network optimizer search
JP2019057093A (ja) * 2017-09-20 2019-04-11 富士ゼロックス株式会社 情報処理装置及びプログラム
US10754308B2 (en) * 2017-11-09 2020-08-25 International Business Machines Corporation Decomposed perturbation approach using memory based learning for compliant assembly tasks
JP6680748B2 (ja) * 2017-11-17 2020-04-15 ファナック株式会社 制御装置及び機械学習装置
US11494632B1 (en) * 2017-12-07 2022-11-08 X Development Llc Generating simulated training examples for training of machine learning model used for robot control
JP6810087B2 (ja) * 2018-03-29 2021-01-06 ファナック株式会社 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法
JP7035734B2 (ja) * 2018-03-30 2022-03-15 富士通株式会社 強化学習プログラム、強化学習方法、および強化学習装置
JP7087632B2 (ja) * 2018-04-26 2022-06-21 セイコーエプソン株式会社 ロボット制御装置
WO2018172593A2 (es) * 2018-05-25 2018-09-27 Erle Robotics, S.L Método para integrar nuevos módulos en robots modulares, y un componente de robot del mismo
CN108481328B (zh) * 2018-06-04 2020-10-09 浙江工业大学 六关节工业机器人关节空间轨迹跟踪柔性迭代学习控制方法
US20190385091A1 (en) * 2018-06-15 2019-12-19 International Business Machines Corporation Reinforcement learning exploration by exploiting past experiences for critical events
CN112313044A (zh) * 2018-06-15 2021-02-02 谷歌有限责任公司 用于机器人操纵的深度强化学习
JP7398373B2 (ja) * 2018-07-04 2023-12-14 株式会社Preferred Networks 制御装置、システム、制御方法、及びプログラム
US11285607B2 (en) 2018-07-13 2022-03-29 Massachusetts Institute Of Technology Systems and methods for distributed training and management of AI-powered robots using teleoperation via virtual spaces
WO2020029095A1 (zh) * 2018-08-07 2020-02-13 中国科学院深圳先进技术研究院 强化学习网络的训练方法、装置、训练设备及存储介质
US11823039B2 (en) 2018-08-24 2023-11-21 International Business Machines Corporation Safe and fast exploration for reinforcement learning using constrained action manifolds
EP3824358A4 (en) * 2018-09-04 2022-04-13 Kindred Systems Inc. REAL-TIME-REAL-WORLD REINFORCEMENT LEARNING SYSTEMS AND METHODS
US10821603B2 (en) * 2018-09-05 2020-11-03 The Boeing Company Methods and apparatus for robot control
CN109212476B (zh) * 2018-09-18 2023-03-14 广西大学 一种基于ddpg的rfid室内定位算法
GB2577312B (en) * 2018-09-21 2022-07-20 Imperial College Innovations Ltd Task embedding for device control
US11292133B2 (en) 2018-09-28 2022-04-05 Intel Corporation Methods and apparatus to train interdependent autonomous machines
DE102019006725B4 (de) * 2018-10-02 2023-06-01 Fanuc Corporation Steuereinrichtung und Steuersystem
JP6508691B1 (ja) 2018-10-15 2019-05-08 株式会社Mujin 制御装置、作業ロボット、プログラム、及び、制御方法
KR102611952B1 (ko) * 2018-10-30 2023-12-11 삼성전자주식회사 로봇의 행동을 제어하는 정책을 갱신하는 방법 및 그 방법을 수행하는 전자 장치
US11292129B2 (en) * 2018-11-21 2022-04-05 Aivot, Llc Performance recreation system
CN111178099B (zh) * 2018-11-28 2023-03-10 腾讯科技(深圳)有限公司 一种文本翻译的方法以及相关装置
CN109657800A (zh) * 2018-11-30 2019-04-19 清华大学深圳研究生院 基于参数噪声的强化学习模型优化方法及装置
KR102619004B1 (ko) 2018-12-14 2023-12-29 삼성전자 주식회사 로봇 장치 및 로봇의 작업 기술을 학습하는 방법
KR102559552B1 (ko) * 2018-12-17 2023-07-26 한국전자통신연구원 다매체 다중경로 네트워크의 최적 경로 선택 시스템 및 그 방법
CN109760046A (zh) * 2018-12-27 2019-05-17 西北工业大学 基于强化学习的空间机器人捕获翻滚目标运动规划方法
CN109693239A (zh) * 2018-12-29 2019-04-30 深圳市越疆科技有限公司 一种基于深度强化学习的机器人抓取方法
US11787050B1 (en) * 2019-01-01 2023-10-17 Sanctuary Cognitive Systems Corporation Artificial intelligence-actuated robot
WO2020154542A1 (en) * 2019-01-23 2020-07-30 Google Llc Efficient adaption of robot control policy for new task using meta-learning based on meta-imitation learning and meta-reinforcement learning
WO2020170304A1 (ja) * 2019-02-18 2020-08-27 日本電気株式会社 学習装置及び方法、予測装置及び方法、並びにコンピュータ可読媒体
US11410023B2 (en) 2019-03-01 2022-08-09 International Business Machines Corporation Lexicographic deep reinforcement learning using state constraints and conditional policies
US11308362B2 (en) * 2019-03-26 2022-04-19 Shenzhen Keya Medical Technology Corporation Method and system for generating a centerline for an object, and computer readable medium
DE102019205359B4 (de) * 2019-04-12 2022-05-05 Robert Bosch Gmbh Verfahren und Vorrichtung zum Ansteuern einer technischen Einrichtung
US11345030B2 (en) * 2019-05-28 2022-05-31 Intel Corporation Methods and apparatus for complex assembly via autonomous robots using reinforcement learning action primitives
EP3748551A1 (de) * 2019-06-07 2020-12-09 Robert Bosch GmbH Verfahren, vorrichtung und computerprogramm zum einstellen eines hyperparameters
WO2020256738A1 (en) * 2019-06-21 2020-12-24 Schlumberger Technology Corporation Field development planning based on deep reinforcement learning
CN110400345B (zh) * 2019-07-24 2021-06-15 西南科技大学 基于深度强化学习的放射性废物推抓协同分拣方法
KR20210012730A (ko) 2019-07-26 2021-02-03 삼성전자주식회사 인공지능 모델의 학습 방법 및 전자 장치
CA3088674A1 (en) * 2019-07-31 2021-01-31 Royal Bank Of Canada Devices and methods for reinforcement learning visualization using immersive environments
US11676064B2 (en) * 2019-08-16 2023-06-13 Mitsubishi Electric Research Laboratories, Inc. Constraint adaptor for reinforcement learning control
US11400592B2 (en) * 2019-08-19 2022-08-02 Wipro Limited Method and system for task execution in dynamic heterogeneous robotic environment
CN110333739B (zh) * 2019-08-21 2020-07-31 哈尔滨工程大学 一种基于强化学习的auv行为规划及动作控制方法
CN110394804B (zh) * 2019-08-26 2022-08-12 山东大学 一种基于分层线程框架的机器人控制方法、控制器及系统
JP7263980B2 (ja) * 2019-08-27 2023-04-25 富士通株式会社 強化学習方法、強化学習プログラム、および強化学習装置
CN110502034B (zh) * 2019-09-04 2022-08-09 中国人民解放军国防科技大学 一种基于深度强化学习的固定翼无人机群集控制方法
US11685045B1 (en) * 2019-09-09 2023-06-27 X Development Llc Asynchronous robotic control using most recently selected robotic action data
DE102019213676B3 (de) * 2019-09-10 2020-09-17 Kuka Deutschland Gmbh Robotersteuerung
EP4003665A1 (en) * 2019-09-15 2022-06-01 Google LLC Determining environment-conditioned action sequences for robotic tasks
DE102019214400A1 (de) * 2019-09-20 2021-03-25 Robert Bosch Gmbh Verfahren und Vorrichtung zum Trainieren eines künstlichen neuronalen Netzwerks
US11389957B2 (en) 2019-09-30 2022-07-19 Mitsubishi Electric Research Laboratories, Inc. System and design of derivative-free model learning for robotic systems
US20210125052A1 (en) * 2019-10-24 2021-04-29 Nvidia Corporation Reinforcement learning of tactile grasp policies
CN110728368B (zh) * 2019-10-25 2022-03-15 中国人民解放军国防科技大学 一种仿真机器人深度强化学习的加速方法
CN110930379B (zh) * 2019-11-18 2023-04-07 湖北工业大学 基于ddpg-ram算法的复杂光照条件下织物缺陷检测方法
US20210146531A1 (en) * 2019-11-20 2021-05-20 Nvidia Corporation Guided uncertainty-aware policy optimization: combining model-free and model-based strategies for sample-efficient learning
CN110929532B (zh) * 2019-11-21 2023-03-21 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质
CN110909859B (zh) * 2019-11-29 2023-03-24 中国科学院自动化研究所 基于对抗结构化控制的仿生机器鱼运动控制方法、系统
CN111191399B (zh) * 2019-12-24 2021-11-05 北京航空航天大学 机器鱼的控制方法、装置、设备及存储介质
DE102019135810B3 (de) * 2019-12-27 2020-10-29 Franka Emika Gmbh Erzeugung eines Steuerprogramms für einen Robotermanipulator
CN111223141B (zh) * 2019-12-31 2023-10-24 东华大学 基于强化学习的自动化流水线作业效率优化系统及方法
CN111263332A (zh) * 2020-03-02 2020-06-09 湖北工业大学 基于深度强化学习的无人机轨迹及功率联合优化方法
KR20210121790A (ko) 2020-03-31 2021-10-08 한국외국어대학교 연구산학협력단 강화학습 기반의 분류기 학습 장치 및 방법
DE102020204388A1 (de) 2020-04-03 2021-10-07 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Ansteuern eines Agenten
CN111716352B (zh) * 2020-05-13 2022-04-29 中国电力科学研究院有限公司 一种配电网带电作业机械臂导航避障方法及系统
CN111552183B (zh) * 2020-05-17 2021-04-23 南京大学 一种基于自适应权重强化学习的六足机器人避障方法
CN111633647B (zh) * 2020-05-26 2021-06-22 山东大学 一种基于深度强化学习的多模融合机器人缝制方法及系统
CN112327821A (zh) * 2020-07-08 2021-02-05 东莞市均谊视觉科技有限公司 一种基于深度强化学习的智能清洁机器人路径规划方法
DE102020209685B4 (de) 2020-07-31 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern einer robotervorrichtung und robotervorrichtungssteuerung
CN112171660B (zh) * 2020-08-18 2021-11-23 南京航空航天大学 一种基于深度强化学习的空间双臂系统约束运动规划方法
DE102020210823A1 (de) 2020-08-27 2022-03-03 Robert Bosch Gesellschaft mit beschränkter Haftung Maschinen-Steueranordnung
TWI739604B (zh) * 2020-09-18 2021-09-11 英業達股份有限公司 訓練機器動物的運動控制器的方法
US20220105626A1 (en) * 2020-10-05 2022-04-07 Autodesk, Inc. Techniques for force and torque-guided robotic assembly
US20220134537A1 (en) * 2020-10-29 2022-05-05 Nvidia Corporation Transformation of joint space coordinates using machine learning
US11992945B2 (en) * 2020-11-10 2024-05-28 Google Llc System and methods for training robot policies in the real world
CN112356031B (zh) * 2020-11-11 2022-04-01 福州大学 一种基于Kernel采样策略在不确定性环境下的在线规划方法
DE102020214231A1 (de) 2020-11-12 2022-05-12 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern einer robotervorrichtung und robotersteuereinrichtung
CN112338921A (zh) * 2020-11-16 2021-02-09 西华师范大学 一种基于深度强化学习的机械臂智能控制快速训练方法
CN112498334B (zh) * 2020-12-15 2022-03-11 清华大学 智能网联混合动力汽车的鲁棒能量管理方法及系统
CN114684293B (zh) * 2020-12-28 2023-07-25 成都启源西普科技有限公司 一种机器人行走仿真算法
CN112801149A (zh) * 2021-01-15 2021-05-14 江苏大学 一种基于深度强化学习的多车队列控制方法
CN112801290B (zh) * 2021-02-26 2021-11-05 中国人民解放军陆军工程大学 一种多智能体深度强化学习方法、系统及应用
CN112975977B (zh) * 2021-03-05 2022-08-09 西北大学 一种高效的机械臂抓取深度强化学习奖励训练方法及系统
CN113093727B (zh) * 2021-03-08 2023-03-28 哈尔滨工业大学(深圳) 一种基于深度安全强化学习的机器人无地图导航方法
CN113128699B (zh) * 2021-03-12 2022-11-15 合肥工业大学 快速收敛的多无人机协同对抗强化学习方法
EP4075337A1 (en) * 2021-03-15 2022-10-19 Honeywell Limited Process controller with meta-reinforcement learning
US20220305649A1 (en) * 2021-03-25 2022-09-29 Naver Corporation Reachable manifold and inverse mapping training for robots
CN112990361B (zh) * 2021-04-20 2021-07-27 北京动亮健康科技有限公司 基于Q-Learning算法的调整运动速度的方法、跑步机及提示装置
DE102021204846B4 (de) 2021-05-12 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung
CN113135532B (zh) * 2021-05-12 2022-03-11 吉林大学 一种自平衡高空作业台及其控制方法
DE102021204961B4 (de) 2021-05-17 2023-06-07 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zur Steuerung einer Robotervorrichtung
CN113326872A (zh) * 2021-05-19 2021-08-31 广州中国科学院先进技术研究所 一种多机器人轨迹规划方法
CN113290557A (zh) * 2021-05-21 2021-08-24 南京信息工程大学 一种基于数据驱动的蛇形机器人控制方法
CN113340324B (zh) * 2021-05-27 2022-04-29 东南大学 一种基于深度确定性策略梯度的视觉惯性自校准方法
US11845190B1 (en) * 2021-06-02 2023-12-19 Google Llc Injecting noise into robot simulation
CN113467248A (zh) * 2021-07-22 2021-10-01 南京大学 基于强化学习的无人机传感器故障时容错控制方法
KR102346900B1 (ko) 2021-08-05 2022-01-04 주식회사 애자일소다 픽 앤 플레이스 시스템을 위한 심층 강화학습 장치 및 방법
CN113524196A (zh) * 2021-08-10 2021-10-22 南京深一科技有限公司 一种基于平面视觉深度强化学习的机械臂抓取控制方法
CN113459109B (zh) * 2021-09-03 2021-11-26 季华实验室 机械臂路径规划方法、装置、电子设备及存储介质
CN113967909B (zh) * 2021-09-13 2023-05-16 中国人民解放军军事科学院国防科技创新研究院 基于方向奖励的机械臂智能控制方法
US20230109398A1 (en) * 2021-10-06 2023-04-06 Giant.Ai, Inc. Expedited robot teach-through initialization from previously trained system
KR20230061612A (ko) 2021-10-28 2023-05-09 아이둡 주식회사 머신 러닝을 이용한 물체의 피킹 자동화 시스템 및 그 제어 방법
DE102021212494A1 (de) 2021-11-05 2023-05-11 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung
CN114089633B (zh) * 2021-11-19 2024-04-26 江苏科技大学 一种水下机器人多电机耦合驱动控制装置及方法
CN114454160B (zh) * 2021-12-31 2024-04-16 中国人民解放军国防科技大学 基于核最小二乘软贝尔曼残差强化学习的机械臂抓取控制方法及系统
CN114734443B (zh) * 2022-04-27 2023-08-04 东南大学 基于生成对抗模仿学习的人机协作机器人技能识别方法
CN114905510B (zh) * 2022-04-29 2023-07-28 南京邮电大学 基于自适应近端优化的机器人动作方法
CN114721409B (zh) * 2022-06-08 2022-09-20 山东大学 一种基于强化学习的水下航行器对接控制方法
CN115366099B (zh) * 2022-08-18 2024-05-28 江苏科技大学 基于正向运动学的机械臂深度确定性策略梯度训练方法
CN115674191B (zh) * 2022-10-08 2024-05-10 广东工业大学 一种基于数字孪生的机械臂控制方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005238422A (ja) * 2004-02-27 2005-09-08 Sony Corp ロボット装置、並びにその状態遷移モデル構築方法及び行動制御方法
JP2011204036A (ja) * 2010-03-25 2011-10-13 Institute Of National Colleges Of Technology Japan 経験強化型強化学習システム、経験強化型強化学習方法および経験強化型強化学習プログラム
US20150100530A1 (en) * 2013-10-08 2015-04-09 Google Inc. Methods and apparatus for reinforcement learning

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE392656T1 (de) * 2004-06-15 2008-05-15 Abb Ab Verfahren und system zur off-line-programmierung von mehreren interagierenden robotern
WO2006062948A2 (en) * 2004-12-06 2006-06-15 Honda Motor Co., Ltd. Interface for robot motion control
WO2006122030A2 (en) 2005-05-07 2006-11-16 Thaler Stephen L Device for the autonomous bootstrapping of useful information
US11159909B2 (en) * 2008-02-05 2021-10-26 Victor Thomas Anderson Wireless location establishing device
US8805110B2 (en) * 2008-08-19 2014-08-12 Digimarc Corporation Methods and systems for content processing
CN102402712B (zh) * 2011-08-31 2014-03-05 山东大学 基于神经网络的机器人强化学习初始化方法
US8788439B2 (en) * 2012-12-21 2014-07-22 InsideSales.com, Inc. Instance weighted learning machine learning model
US9056396B1 (en) * 2013-03-05 2015-06-16 Autofuss Programming of a robotic arm using a motion capture system
US9776325B1 (en) * 2013-03-13 2017-10-03 Hrl Laboratories, Llc Method for tele-robotic operations over time-delayed communication links
WO2014190208A2 (en) * 2013-05-22 2014-11-27 Neurala, Inc. Methods and apparatus for early sensory integration and robust acquisition of real world knowledge
US9186795B1 (en) * 2013-06-24 2015-11-17 Redwood Robotics, Inc. Programming and execution of force-based tasks with torque-controlled robot arms
US9533413B2 (en) * 2014-03-13 2017-01-03 Brain Corporation Trainable modular robotic apparatus and methods
US9302393B1 (en) * 2014-04-15 2016-04-05 Alan Rosen Intelligent auditory humanoid robot and computerized verbalization system programmed to perform auditory and verbal artificial intelligence processes
US10445641B2 (en) * 2015-02-06 2019-10-15 Deepmind Technologies Limited Distributed training of reinforcement learning systems
US9855658B2 (en) * 2015-03-19 2018-01-02 Rahul Babu Drone assisted adaptive robot control
US9676098B2 (en) * 2015-07-31 2017-06-13 Heinz Hemken Data collection from living subjects and controlling an autonomous robot using the data
US9981381B1 (en) * 2016-06-08 2018-05-29 X Development Llc Real time generation of phase synchronized trajectories
JP6721785B2 (ja) 2016-09-15 2020-07-15 グーグル エルエルシー ロボット操作のための深層強化学習
EP3566824B1 (en) * 2018-05-11 2023-06-28 Siemens Aktiengesellschaft Method, apparatus, computer-readable storage media and a computer program for robotic programming
US11554482B2 (en) * 2020-07-16 2023-01-17 Hitachi, Ltd. Self-learning industrial robotic system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005238422A (ja) * 2004-02-27 2005-09-08 Sony Corp ロボット装置、並びにその状態遷移モデル構築方法及び行動制御方法
JP2011204036A (ja) * 2010-03-25 2011-10-13 Institute Of National Colleges Of Technology Japan 経験強化型強化学習システム、経験強化型強化学習方法および経験強化型強化学習プログラム
US20150100530A1 (en) * 2013-10-08 2015-04-09 Google Inc. Methods and apparatus for reinforcement learning

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102143757B1 (ko) * 2019-05-07 2020-08-12 오토시맨틱스 주식회사 딥러닝을 포함한 인공지능을 적용시킨 풍력 발전장치
KR102233739B1 (ko) 2019-09-24 2021-03-31 한국생산기술연구원 강화학습과 인공신경망을 이용한 보행 로봇 자세 제어방법
KR20210065738A (ko) 2019-11-27 2021-06-04 한국생산기술연구원 강화학습을 이용한 7축 로봇 제어 방법
KR20230093933A (ko) 2021-12-20 2023-06-27 주식회사 현대케피코 가속도센서를 이용한 보행 로봇의 강화 학습 방법
KR20230122443A (ko) * 2022-02-14 2023-08-22 경희대학교 산학협력단 사람형 로봇 손의 처리 시스템

Also Published As

Publication number Publication date
US20190232488A1 (en) 2019-08-01
EP3504034A1 (en) 2019-07-03
CN115338859A (zh) 2022-11-15
JP6721785B2 (ja) 2020-07-15
KR102211012B1 (ko) 2021-02-03
US11400587B2 (en) 2022-08-02
US20240131695A1 (en) 2024-04-25
CN109906132A (zh) 2019-06-18
US11897133B2 (en) 2024-02-13
CN109906132B (zh) 2022-08-09
JP2019529135A (ja) 2019-10-17
US20220388159A1 (en) 2022-12-08
DE202017105598U1 (de) 2018-05-24
WO2018053187A1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
KR102211012B1 (ko) 로봇 조작을 위한 심층 강화 학습
US20220105624A1 (en) Efficient adaption of robot control policy for new task using meta-learning based on meta-imitation learning and meta-reinforcement learning
EP3621773B1 (en) Viewpoint invariant visual servoing of robot end effector using recurrent neural network
US11724398B2 (en) Efficient robot control based on inputs from remote client devices
JP6586532B2 (ja) ロボットの把持のための深層機械学習方法および装置
US10166676B1 (en) Kinesthetic teaching of grasp parameters for grasping of objects by a grasping end effector of a robot
EP3784451A1 (en) Deep reinforcement learning for robotic manipulation
US11823048B1 (en) Generating simulated training examples for training of machine learning model used for robot control
CN112135716A (zh) 数据高效的分层强化学习
US11790042B1 (en) Mitigating reality gap through modification of simulated state data of robotic simulator
CN114516060A (zh) 用于控制机器人装置的设备和方法
US11685045B1 (en) Asynchronous robotic control using most recently selected robotic action data
WO2022192132A1 (en) Controlling multiple simulated robots with a single robot controller
US11610153B1 (en) Generating reinforcement learning data that is compatible with reinforcement learning for a robotic task
CN117863185A (zh) 以高保真度模拟和高速低保真度模拟进行训练

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant