관심있는 주제/강화학습

Diversity is all you need: Learning skills without a reward function

Lynn123 2020. 10. 1. 23:56
반응형

 

Abstract

  • 지적인, 또는 똑똑한 생물(intelligent creatures)은 감독관(Supervision)의 도움없이도 이런 저런 시도들을(exploration; 탐험) 통하여 스스로 useful skills를 학습한다.
  • 본 논문에서도 이런 점에서 착안하여, reward function없이도 useful skills를 배워서 학습하는 방법을 제안하고 있다.
    • 다시 말하자면, maximum entropy policy를 이용하여 information theoretic objective를 최대화하는 방법을 통해 skills를 학습하는 방법론이다.
  • 또한 본 논문에서는 pretrained skills가 어떻게 downstream tasks에 대해 좋은 parameter initalization을 제공할 수 있는지와, complex하고 sparse reward tasks를 풀기위해 계층적으로 구성하는 것을 보여주고 있다.
  • 결론적으로 강화학습에서 데이터 효율성탐험의 challenges를 극복하기 위한 효과적인 pretraining mechanism으로서 skills의 unsupervised discovery를 제안한다.

 

Introduction

  • 강화학습은 playing games, controlling robots, navigating complex environmentf를 포함, 다양한 reward driven skills를 효율적으로 학습하는 방법론이다.
    • 하지만 intelligent creatures는 supervision없이도 useful skills를 잘 학습하고 환경을 explore할 수 있다.
    • 따라서 intelligent creatures는 이후에 다른 goal이 생겼을 때, skills를 활용하여 빠르고 효율적으로 학습할 수 있다.
  • reward없이 skills를 학습하는 practical applicatons이 있다.
    • sparse rewards가 존재하는 환경에서 agent가 goal state에 무작위로 도달할 때까지는 보상이 없다.
    • supervision없이 useful skills를 학습하는 경우 exploration의 어려움을 해결하는데에 도움을 준다.
    • 등등…
  • 보상을 설계하는 것으로 사람을 out of loop할 수 있지만(모델이 학습하게 할 수 있지만?) , agent로부터 원하는 행동을 유도하는 reward function을 디자인하는 것은 어렵다.
  • 그렇기 때문에 익숙하지 않은 환경이 주어졌을 때, agent가 어떤 tasks를 학습할 수 있는지 결정하는 것이 challenging이다.
    • 그리고 보상없이 useful skills를 학습하는 것 또한 매우 어려운 문제이다.
    • 어쨌든, 위에서 하고 싶은 말들은 보상을 디자인하는 것은 매우 어렵지만 보상없이 학습하는 것이 매우 어려운 문제다 라는 것을 의미하는 것 같다.

 

  • 위에서 계속 언급하는 Skill이란 환경의 state를 consistent way(일관된 방식)으로 변화시키는 latent conditioned policy이다.
    • reward function을 모를 때도 'set’의 utility를 최대화하여 skills의 set을 학습하고 싶다.
    • 본 논문에서 말하는 set이 정확하게 어떤 의미인지는 모르겠으나 일단 그냥 집합의 개념으로 접근해 보고자 한다.
  • 어쨌든 상호 정보(mutual information)에 기반한 간단한 목표를 통해 강화학습 agent가 이런 skills를 자율적으로 발견할 수 있는 방법을 볼 수 있다고 한다.
    • 이런 skills는 hierarchical reinforcement learning이나 imitation learning등에 활용되어지고 있다.

 

  • 본 논문에서는 useful skills를 얻기 위해, 가능한 행동의 set들을 최대한 커버할 수 있도록 skills를 훈련해야 한다고 가정한다.
    • Key idea는 objective로서의 skills 사이의 차별성 (discriminability)을 이용하는 것이다.
  • 문제를 해결하기 위해서는 구분가능하면서 다양한 skills를 학습해야 한다.
  • 본 논문에서는 총 5가지의 contributions이 있다.
    • Maximum entropy policy로 정보이론의 목표를 극대화하는 것으로 차별된 goal을 공식화한다.
    • 즉 여러 강화학습 연구에서 bench mark로 사용하는 환경들에서도 true reward를 받지 않고 잘 학습하는 것을 보여준다.
    • 어떠한 보상없이 useful skills를 학습하는 방법
    • 달리기, 점핑과 같은 다양한 skills의 unsupervised emergence( 비지도 출현? )에서 간단한 탐험 목표의 결과를 보여준다.
    • Hierarchical RL에 대해 학습된 skills를 사용하기 위한 간단한 방법을 제안하고 이런 방법들이 challenging tasks를 해결함을 보이고 있다.
    • Skills가 얼마나 빨리 새로운 task에 잘 적응하는지를 보여준다.
    • 발견된 skills가 imitation learning에 어떻게 사용될 수 있는지를 보여준다.

Related Work

  • Hierarchical Reinforcement Learning(HRL)
    • 이전의 HRL은 skills의 set과 meta-controller를 공동으로 학습하여 단일의 reward function을 최대화하는 skills를 학습하였다.
    • 이렇게 학습하는 것에 한가지 문제점이 있었다면, meta-policy는 “bad” options를 선택하지 않는 것이다. 따라서 이런 options는 어떠한 reward signal을 받지 않는다.
    • 본 논문에서는 이러한 한계를 극복하기 위해 unsupervised skill-leatning하며 random meta-policy를 이용하기 때문에 skills도 meta-policy도 single task를 해결하는 것을 목표로 하지 않는다.

 

  • Information theory(정보이론)
    • 이때 action spcae가 skills의 set인 agent의 empowerment를 최대화하는 것으로 해석될 수 있다.
    • 그래서 본 논문에서 latent skill z를 이용하는건가..?
    • 최근 RL은 skill를 발견하기 위해 information theory를 이용하기도 한다.
    • 몇몇 논문에서는 states와 actions 사이의 상호적 정보를 본질적으로 동기부여된(intrinsically motivated)에 대한 empowerment(권한 부여?) 개념으로서 이용한다. 
    • 본 논문의 방법은 states와 skills 사이의 상호적 정보를 최대화한다.
    • 몇몇 논문에서는 discriminability(차별성) objective가 latent skill z와 해당 trajectory의 some aspect 사이의 상호적 정보와 동일시하기도 한다.

 

  • 본 논문의 특징 (Important distinctions)은 아래와 같으며,  아래의 세 가지 중요 포인트 덕분에 복잡한 환경에서도 useful skills를 학습할 수 있다.
    • 정확하게 해석이 될지는 모르겠지만, skills의 분포를 학습하기 보다는 fix 하여 사용한다.
    • skills이 다양해지도록 하기 위해 maximum entropy policies를 이용
    • we fix the prior distribution over skills, rather than learning it
    • Discriminator가 마지막 state만을 보는 다른 논문과는 다르게, 본 논문에서는 discriminator가 모든 state를 보고 추가적인 reward signal을 전달한다.

Diversity is all you need

  • 본 논문은 unsupervised RL 패러다임을 agent가 unsupervised “exploration” stage에 이어서 supervised stage도 허용된 work에서 고려한다. 
  • Unsupervised stage의 목적은 궁극적으로 supervised stage의 task reward를 쉽게 최대화하는 skills를 학습하는 것이다.
  • 편리하게도 이러한 skills는 tasks에 대한 사전 지식없이 skills를 학습하기 때문에 많은 다른 tasks에서 사용될 수 있다.

How it woks

  • unsupervised skill의 발견을 위한 방법은 세 가지 아이디어로 구성된다.
    • Agent가 visit하는 state에 영항을 주는 skill이 있어야 한다. ( for skills to be useful )
      • 다른 skills는 서로 다른 states에 방문해야만 하며, 그래서 구분될 수 있다.
    • Skills를 구분하기 위해 action이 아닌 state를 이용한다.
      • 환경에 영향을 주지 않는 actions은 outside observer에게 보이지 않기 때문이다.
      • 예를 들어, outside observer는 컵이 움직이지 않으면 컵을 잡을 때 로봇 팔이 얼마나 많은 힘을 가하는지 알 수 없다.
    • 마지막으로, 가능한 한 랜덤하게 행동하는 skills을 학습하는 것을 통해 skills이 가능한 다양해지도록 한다.
      • 구분 가능한 높은 entropy를 가진 skills는 다른 skills로부터 멀리 떨어진 state space의 일부를 꼭 exploration해서 action의 랜덤성이 구별할 수 없는 state로 이끌지 않도록 한다.

 

  • Objective를 위한 notation은 정보이론으로부터 가져와 사용한다.
    • 고정된 Z를 조건으로 하는 policy를 skill이라고 한다.
    • I와 H는 상호 정보(mutual information)와 Shannon entropy의 개념에서 착안하였으며, 둘 다 base e로 계산된다.
    • S와 A는 각각 States, Actions에 대한 임의의 변수이다.
    • Z ~ p(z)는 latent 변수이다.
    • 본 논문의 objective는, skill이 agent가 visit하는 state를 제어해야만 하는 아이디어를 인코딩하기 위해 skills와 states간의 상호 정보( I(A;Z) )를 최대화한다.
    • 편리하게도, 이 상호 정보는 agent가 visit한 state에서 skill을 추론할 수 있음을 나타낸다.
    • actions이 아닌 states가 skills를 구분하는데 사용되도록 하기 위해, 주어진 state의 skill과 action간의 상호 정보( I(A;Z | S) )를 최소화한다.
  • Policies의 mixture로 p(z)와 함께 모든 skills를 볼 때 이 mixture policy의 엔트로피 H[A | S]를 최대화한다.
  • 요약하자면, 아래의 g(theta)를 최대화하는 것이다.

Implementation

  • 본 논문에서는 SAC(Soft Actor Critic)을 이용하였고, latent 변수 z를 조건으로 하는 정책을 학습한다.
  • SAC는 actions에 대한 policy’s entropy를 최대화하여 object g에서 엔트로피 텀을 처리한다.
  • task reward를 대체하는 방법으로 skill reward로는 g의 expection을 이용한다.
    • 위 그림에서 logq - logp에 해당하는 부분
    • p(z) 위해 categorical distribution 이용하였다.
  • Unsupervised learning동안 각 에피소드의 시작부분에서 skill z ~ p(z)를 샘플링하고 에피소드내내 해당 skill을 따라 행동한다.
  • Agent는 구분하기 쉬운 states를 방문하면 보상을 받는 반면에, discriminator는 방문한 states로부터 skill z를 더 잘 추론하기 위하여 업데이트 된다.
  • 그리고 SAC 업데이트의 일부로서 엔트로피 정규화가 진행된다.

 

  • [추가] 만약 모든 tasks와 연관되어 있는 주어진 latent variable z~p(z)가 있다고 가정했을 때, 해당 값을 이용하여 reward function을 정의할 수 있다.
    • reward function = logD(z|s), 여기서 D는 discriminator 함수인데 state로부터 latent variable을 뽑는데 사용한다.
    • D(z|s) = q(z|s)
  • [추가] 한번 discriminator function이 학습되면, training을 위한 새로운 MDP를 sampling하는 것은 매우 직관적이 된다. 우선 latent variable z~p(z)를 샘플링하고 이를 이용해서 reward function r(s) =logD(z|s)를 만들어낸다.

(위 추가내용 출처 : talkingaboutme.tistory.com/entry/RL-Meta-Reinforcement-Learning)

Experiments

  • 생략

Conclusion

  • 본 논문에서는 reward function없이 skills를 학습하는 방법으로서 DIAYN을 제안하고 있다.
  • DIAYN은 복잡한 tasks에 대해 다양한 skills를 학습하고, 실제로 task reward를 받는 과정없이 bench mark tasks를 해결하였다.
  • 게다가 1) 빠르게 새로운 task에 적용하는 방법 2) HRL을 이용하여 복잡한 tasks를 해결하는 방법 3) 전문가를 모방하여 학습하는 방법과 같은 방법들을 제안하고 있다.
  • 일반적으로 DIAYN은 task의 복잡한 action space를 useful skills의 set으로 대제하여 task를 더 쉽게 학습할 수 있도록 한다.
  • DIAYN은 observation space와 reward functio을 증가시키기 위한 방법들과 결합될 수 있다. (이건 이해가 잘 안 감)

Reward function없이 어떻게 학습하는지 궁금해서 한번 읽어봤는데, 결론적으로 task reward function을 skill reward function으로 대체하여 사용한다는 얘기같다.

자세하게는 조금 더 공부해보면서 요약 및 정리가 필요할 거 같고, 그래도 가닥은 조금 잡힌 거 같다.

 

의문점

- unsupervised RL이라 데이터에서 알아서 skills를 잘 뽑아내 학습하는 걸로 상상을 했었는데,

  본 논문에서는 초반에 skills을 샘플링한다고 한다.

- skills가 학습 초에 어떻게 정의되고 있는지는 아직 잘 모르겠다. 정리해서 찾으면 본 게시글 업데이트 예정.

 

 

아래는 깃헙

https://github.com/p-christ/Deep-Reinforcement-Learning-Algorithms-with-PyTorch/blob/master/agents/hierarchical_agents/DIAYN.py

반응형