본 논문의 링크는 아래에 있습니다.
https://arxiv.org/abs/1709.04905
Abstract
다양한 일에 대해서 로봇이 수행할 수 있게끔 하기 위해서는 일반화가 잘 되어야 합니다.
이를 위해서는 다양한 범위의 일에 대해서 빠르게 배울 수 있어야 하고, 복잡환 환경에서 효율적이어야 합니다.
Deep Neural Network는 로봇이 복잡한 기술을 수행할 수 있게끔 했지만, 각각의 기술들을 처음부터 배우는 건 어렵습니다.
이 논문에서는 단지 하나의 데모만을 이용하여 새로운 기술을 습득하는 효율적인 방법인 meta-imitation learning method를 소개합니다.
이전의 one-shot imitation과는 다르게, 이 방법은 raw pixel input을 사용하며, 이전에 배웠던 기술을 새로운 기술을 배우기 위해 효율적으로 사용합니다.
시뮬레이션과 실제 환경에서의 실험을 통해 하나의 visual demo만을 이용하여 새로운 기술을 end-to-end로 학습할 수 있다는 점을 증명할 것입니다.
* one-shot visual demo로 어떻게 학습을 시킬 수 있을까요?
보통 사용되는 state-action의 one-shot demo를 이용한다면 어느정도 납득할 수 있겠지만, 어떻게 하면 visual state에서 어떤 액션과 상태인지 파악할 수 있을까요?
1. Introduction
Deep Neural Network를 사용하여 복잡한 task 하나를 학습시키기 위해선 많은 양의 supervised 데이터, 혹은 경험이 필요합니다.
그러면서도, 다음으로 배울 task의 좀 더 빠른 학습을 위해서 이전에 배운 task를 활용하는 방법은 사용되질 않았습니다.
위 방법을 사용하면 데이터를 효율적으로 학습할 수 있고, 각 task에 대해 최소한의 supervision만 주어지면 됩니다.
그렇다면, 어떻게 하면 이전의 task에서 정보를 탐색하여 새로운 task에 대해 빠르게 학습할 수 있을까요?
이 논문은 로봇이 이전의 경험을 재사용하여 결과적으로 새로운 기술을 단 하나의 데모를 통해서 배울 수 있는 meta-learning with imitation 방법을 제안합니다.
이 논문에서의 접근 방법은 parameterized policy 입니다.
위 policy는 기울기 업데이트를 통해 다른 task들에 적용될 수 있고, 효과적으로 imitation learning이 가능하게 합니다.
* 모델과 하나의 중앙 파라미터가 존재하고, 이를 데모를 통해 gradient를 계산하고 바꿔서 모델이 task를 할 수 있게끔 합니다.
그러므로 어떤 task를 하려면 그 task에 대한 데모가 하나 무조건 필요한 것으로 보입니다.
3. Meta-Imitation Learning Problem Formulation
<MAML>
위 모델과 관련된 논문은 아래 링크입니다.
https://arxiv.org/pdf/1703.03400.pdf
Model-Agnostic Meta-Learning, 본 논문은 위 모델을 기반으로 하여 사용했다고 합니다.
MAML을 간단히 설명드리면 하나의 뉴럴 네트워크가 있고, 가중치가 있습니다.
이 가중치를 특정 task에 쓸 수 있게끔 조금씩 바꿔서 다양한 도메인에 적용할 수 있게끔 하는 개념입니다.
그림은 대략적인 흐름을 보여주는 것으로 각각의 task 1, 2, 3에 대해 코어 가중치인 세타가 각각의 로스로 인해 세타* 1, 2, 3으로 변하는 것을 볼 수 있습니다.
알고리즘으로 표현을 해보자면, 각각의 task에 대해 로스를 이용하여 특화된 세타를 만들어내고 이렇게 만들어낸 세타에 대해 로스를 계산하여 코어 가중치를 다시 한번 수정합니다(meta update). 대략적인 개념이 이해되면 어떤 식으로 이 논문이 MAML을 적용하였는지 파악해보겠습니다.
imitation learning, 즉 데모를 보고 따라하게끔 코어 가중치를 수정해야 합니다.
1) 가중치를 얼마나 수정할지에 대해 로스 함수를 통해 구하고, 이를 이용하여 가중치를 수정합니다.
2) 수정된 가중치에 대해 로스를 구하고, 이를 이용하여 코어 가중치를 수정합니다.(meta-update)
이를 살펴보면 코어 가중치가 각 task들에 대한 가중치에 대하여 접근할 수 있는 pretrain 가중치라고 볼 수 있을 것 같습니다.
그렇다면, 로스는 어떤 식으로 설정하였는지 알아보겠습니다.
* Pretrain이 되어있으면 학습이 좀 더 빠르듯이, MAML 개념은 모든 task에 접근할 수 있는 pretrain 가중치를 미리 설정해두는 느낌입니다.
4. Meta-Imitation Learning with MAML
코어 가중치가 향하는 방향은 각각 만들어낸 가중치들에 대한 로스를 더했을때 최소가 되게끔 하는 것입니다.
로스 함수는 Observation o가 나올 때 예측한 Action a와 ground-truth를 비교한 mean squared error를 사용합니다.
여기서의 a는 로봇 환경이므로 각 joint에 가하는 힘이라고 생각하시면 됩니다.
학습을 위해서는 각 task별로 두 개의 demo를 이용합니다.
첫 번째 데모를 이용하여 특정 가중치로 코어 가중치를 업데이트합니다.
두 번째 데모를 이용하여 특정 가중치와의 로스를 계산하고, 이를 이용하여 코어 가중치를 업데이트합니다.
테스트 단계에서는 각 task별로 하나의 demo가 존재하며 이를 이용해 특정 가중치로 업데이트하고, 테스트합니다.
<Two-Head Architecture : Meta-Learning a Loss for Fast Adaptation>
코어 가중치로부터 나오는 폴리시를 최종적인 출력 레이어 직전에서 두 개로 구분합니다.
pre-updated, post-updated : 이를 Two-Head라고 이 논문에서는 말하고 있습니다.
pre-updated는 최종적인 가중치에 영향을 끼치지 않습니다.
post-updated는 데모를 이용하여 업데이트되지 않습니다.
알고리즘에서도 살펴보았듯이 코어 가중치를 이용해서 특정 가중치를 만들고, 특정 가중치를 이용해서 코어 가중치를 수정하는 2단계로 이루어져 있습니다.
이렇게 구분하는 이유는 각 단계별 로스를 조금 더 명확히 구분함으로써 학습에 도움을 주기 위함으로 보입니다.
이 개념으로 접근하여 로스 함수를 다시 정의할 수 있습니다.
y는 가장 마지막의 hidden layer의 출력이며, W는 output layer의 가중치, b는 bias입니다.
사실 로스함수까지만 보면 이전의 로스 함수를 풀어썼다고 볼 수 있습니다.
이를 통해 모델의 목적 함수도 새로이 정의될 수 있습니다.
눈여겨 볼 점은 목적 함수가 코어 가중치 세타만을 찾는 것이 아니라 로스를 줄여줄 최종 레이어의 적절한 W, b 값 또한 찾습니다.
<Learning to Imitate without Expert Actions>
위의 로스함수를 보시면 데모는 지금까지 액션과 스테이트의 페어가 저장되어 있는 것으로 했었습니다.
하지만 visual demo를 통해 task를 배우기 위해서는 위 사항들이 없다고 봐야합니다.
학습 과정에서는 액션이 있다고 해서 그대로 사용할 수 있습니다.
그렇다면 test 시에 1단계, 특정 가중치를 로스를 이용해 찾을 때 어떻게 로스를 계산할 수 있을까요?
본 논문에서는 위 식, 단순히 기존 로스 함수에서 액션 a를 식에서 제거한 식을 사용합니다.
이렇게 할 수 있는 이유는 위에서 W, b가 포함된 마지막 레이어가 로스 함수를 meta-learn하기 때문이라고 합니다.
* pre-updated post-updated 의미를 정확히 파악하지 못했습니다.
5. Model Architectures for Meta-Imitation Learning
policy network로 CNN 구조를 사용했습니다.
모델에게 들어오는 입력은 카메라로부터의 영상과 로봇의 현재 configuration입니다.
아래는 대략적인 순서도입니다.
1) 영상으로부터 feature를 추출합니다.
2) image feature와 robot configuration을 concat합니다.
3) FC layer를 통해 결과(액션)를 출력합니다.
이 모델은 추가적으로 bias transformation이라는 입력과 상관없는 상수 벡터를 사용합니다.
이는 간단히 소개하면, bias 역할을 해 줄 벡터를 입력에 concat하는 것입니다.
이를 통해서 좀 더 gradient의 표현력을 높일 수 있다고 합니다. (제 생각에는 Z로 인해 파라미터의 갯수가 늘어난 것 때문으로 보입니다.)
* 편향을 적극적으로 활용할 수 있다는 점은 좋은 아이디어인 거 같습니다.
6. Experiments
위 논문은 세 가지 환경에서 실험을 진행합니다.
각각의 환경에서 비교 대상이 될 모델은 아래와 같습니다.
1) random policy : 정규 분포에 따른 랜덤한 액션을 사용합니다.
2) contextual policy : feedforward policy로 task의 골을 가리키기 위한 데모의 최종 이미지와 현재의 이미지를 입력으로 주어 액션을 출력합니다.
3) LSTM : RNN으로, 데모와 현재의 observation을 주면 액션을 출력합니다.
4) LSTM+attention : attention 구조가 추가되었습니다.
<Simulated Reaching>
시뮬레이터 환경에서 3가지 색깔 중 특정 색깔에 닿아야 하는 task입니다.
<Simulated Pushing>
시뮬레이터 환경에서 특정 물체를 타겟 위치에 놓아야 하는 task입니다.
MIL은 본 논문에서 제안한 Meta Imitation Learning을 의미합니다.
전체적인 성공률이 MIL이 높은 것을 확인할 수 있습니다.
데모가 어떠한 정보를 포함하는가에 따른 성능 비교 실험입니다.
LSTM은 순차적인 모델이기에 순차적인 액션 나열이 주어질 때는 나름 강력한 능력을 보여주지만, 액션이 데모 정보에서 빠져버리면 contextual보다도 낮은 성능을 보이는 점이 인상깊습니다.
이 실험 또한 MIL의 학습 능력을 보여줍니다.
<Real-World Placing>
현 세계에서의 작업입니다.
특정한 물체를 특정한 받침대 위에 놓아야 합니다.
로봇이 테스트 시에 학습 시 나오지 않았던 unseen object에 대해서도 잘 작업을 수행할 수 있는지도 테스트할 수 있습니다.
LSTM과 contextual 모델은 unseen 물체에 대해 굉장히 약한 모습을 보여주는 것에 반해 MIL은 90%라는 놀라운 성공률을 보여줍니다.
이는 어쩌면 1300개의 데모 훈련 데이터가 부족하여 그런 것일수도 있습니다.
이는 one-shot demo learning을 하기 위해 MIL이 필요한 데이터도 더 적다는 점을 보여줍니다.
* 실험 자체는 딱히 평범해보입니다. MIL의 성능이 굉장히 좋은 것 같습니다. 원리를 좀 더 이해하면 좋았을 거 같은데 아쉽네요.. 특히 Visual demo가 어떤식으로 반영이 되는건지에 대한 설명이 없는 것 같아 의문이네요..