본문 바로가기

논문 리뷰

(번역) One-shot Imitation Learning

--------Abstract----------

모방학습은 일반적으로 고립된 상태에서 다른 과제를 해결하기 위해 적용되어 왔다.

이것은 섬세한 특징공학을 요구하거나, 매우 많은 양의 샘플 개수를 요구한다.

이건 우리의 의도와 매우 멀다 : 이상적으로 로봇은 주어진 어떠한 태스크에도 적은 시연에서 학습할 수 있어야 하며, 같은 태스크내에서 새로운 상황에 대해 바로 일반화 시킬 수 있어야 한다 이 때, 태스크에 한정적인 엔지니어링 없이도 가능해야 한다.

이 논문에서, 우리는 그러한 능력을 얻기위해, 메타러닝 프레임워크를 제안하며,  그것의 이름은 one-shot imitation learning 이다.

특히, 우리는 매우 많은 태스크가 있고, 각 태스크에는 많은 인스턴화 가 있다는 것을 가정한다.

예를 들어, 태스크는 '모든 블록을 쌓아서 하나의 타워를 만드는 것' 일 수도 있고, 다른 태스크는 '모든 블록을 2개의 블록 타워에 놓는 것' 일 수도 있습니다.

각 경우, 태스크의 다른 인스턴스는들은 서로 다른 초기상태를 지닌 다른 블록 셋으로 구성됩니다.

 

훈련 시, 우리의 알고리즘은 모든 태스크에 대한 하위 집합의 시연 쌍과 함께 제시됩니다.

A neural net is trained such that when it takes as input the first demonstration demonstration and a state sampled from the second demonstration, it should predict the action corresponding to the sampled state.

테스트 때, 새로운 태스크에 대한 단일 인스턴스의 완전한 시연이 제공되며, 신경망은 새로운 태스크의 새로운 인스턴스들에 잘 수행될 것으로 예상된다. 우리의 실험은 soft attention 이 모델에게 훈련데이터에서 보지 못한 조건과 태스크를 일반화 할 수 있게 해주는 것을 보여준다. 우리는 이 모델을 훨씬 다양한 태스크와 설정들 위에서 훈련함으로써, 우리는 어떠한 시연도 (막대한 양의 태스크도 해낼 수 있는) 로버스트한 정책으로 바꿀 수 있는 일반적인 시스템을 얻을 것으로 기대한다.

 

--------소개---------

우리는 다양한 복잡한 유용한 태스크들을 할 수 있는 로보틱 시스템에 흥미를 느꼈다. 예를 들어, 집을 정리하거나 식사를 준비하는 것과 같은.  로봇은 긴 시스템 상호작용 시간 없이 새로운 태스크를 배울 수 있어야 합니다.  

이를 위해, 우리는 두가지 광범위한 문제를 풀어야 합니다. 

첫번째 문제는 손재주입니다. : 로봇들은 어떻게 다가갈것인지, 어떻게 복잡한 물건을 집을 것인지, 그리고 어떻게 놓고, 원하는 형태로 정렬할 것인지 배워야 합니다. 

두번째 문제는 통신입니다 : 어떻게 직면한 태스크의 의도에 대해 전달할 것인지, 그래서 로봇이 그것을 "광범위한 초기 조건의 집합으로 복제를 할 것인지" 이다.. 

 

시연은 매우 편리한 형태의 정보로, 우리가 로봇을 가르칠 수 있게 함으로써 이러한 두가지 도전과제에 대해 이겨낼 수 있게 해줍니다.

시연을 사용하여, 우리는 어떠한 태스크도 명확히 전달할 수 있습니다, 그리고 태스크를 수행하는데 필요한 특정한 운동 기술에 대해서도 단서를 제공할 수 있습니다.

우리는 이것을 자연언어라고 칭해지는 다른 형태의 의사소통과 비교할 수 있다.

언어는 매우 다재다능하며, 효과적이고, 효율적이지만, 자연어 처리 시스템은 언어를 쉽게 사용하여, 로봇에게 복잡한 태스크를 자세하게 묘사할 수준은 아니다.

언어와 비교하여, 시연(demonstrations)을 이용하는 것은 두가지 기본적인 이점이 있습니다 :

1. 언어를 알 필요가 없다. 예로 이것은 하나의 언어로 설명하기 어려운 복잡한 태스크를 소통할 수 있다. 

2. 세상에는 우리가 아무리 언어실력이 좋아도 단어들로(언어로) 설명하기 어려운 수많은 태스크들이 있다. 예를 들면, 시범과 경험 없이 수영하는 방법을 설명하는 것은 매우 어려운 태스크이다.

 

실제로, 시연으로부터 배우는 것은 많은 성공 사례들이 있다. 그러나, 지금까지 이러한 사례들에는 신중한 특성공학, 그리고 상당한 양의 상호작용 시간이 요구되었다. 이건 우리가 원하는 것과는 거리가 멀다. 이상적으로, 우리는 특정 작업을 로봇에게 한번 또는 몇번만 시연하고, 

개별 작업에 대한 긴 시스템 상호작용 시간이나 도메인 지식없이 동일한 작업의 새로운 상황에 즉시 일반화하기를 바란다.

 

이 논문에서, 우리는 그림1에 설명된 one-shot imitation Learning 설정을 살펴본다. 여기서 목표는 이전에 볼 수 없었던 새로운 작업에 직면했을 때, 학습된 정책의 기대성능을 최대화하고, 해당 작업에 대한 하나의 설명만 입력 받는 것이다. 우리가 고려한 태스크는, 시연을 받은 후에, 정책이 추가적인 시스템 상호작용없이 좋은 성능을 얻을 것으로 예상된다.

 

우리는 작업 수가 잠재적으로 무한한 작업에 대한 광범위한 배포에 대한 정책을 훈련한다. 각 훈련 과제에 대해 우리는 일련의 성공적인 시연의 가용성을 가정한다. 학습된 정책은 (i) 현재 관찰과 (ii) 동일한 작업의 다른 인스턴스를 성공적으로 해결하는 하나의 데모로 간주한다. (이 데모는 에피소드 기간 동안 수정된다.) 정책이 현재 컨트롤을 출력합니다. 우리는 동일한 작업에 대한 모든 시연 쌍이 신경망 정책에 대한 감독된 훈련 예를 제공한다는 점에 주목한다. 여기서 한 시연은 입력으로 처리되고 다른 시연은 출력으로 처리된다.

 

이 모델이 작동하도록 하기 위해, 우리는 시연에 해당하는 (잠재적으로 긴) 상태의 순서와 동작을 모두 처리하고, 환경 내 다양한 블록의 위치를 지정하는 벡터의 구성 요소를 처리하기 위해 소프트 어텐션[6]을 필수적으로 사용했다. 두 가지 유형의 입력에 부드러운 주의를 기울임으로써 강력한 일반화가 가능해졌다. 특히 블록 쌓기 작업 계열에서, 우리의 신경망 정책은 어떤 훈련 데이터에도 없는 새로운 블록 구성에서 잘 수행할 수 있었다. 실험 영상은 http://bit.ly/nips2017-oneshot 에서 확인할 수 있다.

 

--

Related Work (skip)

--

 

---------3. One Shot Imitation Learning-----------

3.1 문제 정의

우리는 T에 의한 작업 분포, t~T에 의한 개별 작업, Dt에 의한 작업에 대한 시연 분포를 나타낸다. 정책은 ➡로 상징되는데, 여기서 a는 행동, o는 관찰, d는 데모, ➡는 정책의 매개 변수이다. 시연 d➡D는 관측치 및 동작의 순서입니다. d=o,a,o2,a2,aT,oT,aT.우리는 작업 T의 분포가 주어지고 각 작업에 대한 성공적인 데모를 얻을 수 있다고 가정한다.훈련 중에 필요하지 않지만 각 작업에 대해 일부 scal 값 평가 함수 Rtd(예: 성공을 나타내는 이진 값)가 있다고 가정한다. 목표는 기대치가 과제 t2T에 대해 취해지고 2D t를 시연하는 정책의 기대 성과를 극대화하는 것이다. ==

3.2 블록 쌓기 태스크

문제 설정을 명확히 하기 위해 블록 쌓기 작업의 분포에 대한 구체적인 예를 설명하며, 나중에 실험에서도 이를 연구할 것이다. 이러한 작업 간에 공유되는 구성 구조를 통해 눈에 보이지 않는 작업에 대한 사소한 일반화를 조사할 수 있다. 각 작업의 목표는 7-DOF Fetch 로봇 암을 제어하여 사용자가 지정한 특정 구성에 다양한 수의 큐브 모양의 블록을 쌓는 것이다. 각 구성은 서로 다른 높이의 타워로 배열된 블록 목록으로 구성되며 문자열로 식별할 수 있습니다. 예를 들어, ab cd ef gh는 각각 2개의 블록을 가진 4개의 타워를 쌓고, 우리는 블록 A를 블록 B 위에, 블록 D 위에 블록 C를, 블록 E를 블록 F 위에, 그리고 블록 H 위에 블록 G를 쌓기를 원한다. 이러한 구성은 각각 다른 작업에 해당한다. 또한 각 에피소드에서 블록의 시작 위치는 다를 수 있으며, 이는 학습된 정책이 훈련 과제 내에서조차 일반화되어야 한다. 일반적인 작업에서, 관찰은 그리퍼에 상대적인 x, y, z 객체 위치와 그리퍼가 열리거나 닫힐 경우 정보를 나열한 것이다. 개체 수는 작업 인스턴스마다 다를 수 있습니다. 우리는 한 블록을 다른 블록 위에 쌓는 단일 작업으로 정의한다. 예를 들어, 태스크 ab cd ef gh 에는 4개의 단계가 있습니다.