Author: Seunghyun Lee*, Jiwon Kim , Sung Woon Park , Sang-Man Jin, and Sung-Min Park
Paper Link: doi.org/10.1109/JBHI.2020.3002022 (Selected as a featured article)

 

 

제 1형 당뇨병은 인슐린 분비능이 결핍된 만성질환으로, 외부의 인슐린 주입이 필수적이다. 1920년대 동물의 인슐린을 피하로 주사하는 인슐린 치료법이 등장한 이 후, 줄곧 주사를 통한 주입이 이루어지다 1980년부터 휴대형 인슐린 펌프가 개발되어 주사의 고통이 줄어들기 시작했다. 또한 혈당 측정 역시 채혈기반에서 반침습형 센서로 진화하면서 2000년대 들어서는 바늘로부터의 고통이 많이 줄어들었다.

 

 

이 때부터 더 나은 인슐린 주입을 위한 알고리즘이 주목받기 시작했으며, 사람의 췌장 기능을 모사하는 '인공췌장 (Artificial Pancreas)'의 개념이 등장했다. 인공췌장 알고리즘은 기본적으로 자율주행과 매우 비슷하다. 자율주행이 사람의 개입 없이도 운전을 잘하는것이 목표라면 인공췌장은 마찬가지로 사람의 개입없이 혈당조절을 잘 하는것을 목표로 한다. 자율주행이 단계가 있듯이 인공췌장 역시 단계별로 6단계가 정의되어 있으며, 최종적으로 사람의 췌장과 같이 식사량의 수동 입력이 없으며 혈당 상승호르몬 (글루카곤) 과 강하호르몬 (인슐린) 의 상호 조절되는것을 완성단계 (level6)로 본다.

 

인공췌장의 6단계 (JDRF, Springer "Handbook of Insulin Therapies")

 

2020년 현재 상용화된 Medtronic사와 Tendom사의 인공췌장 시스템은 level 4 의 인슐린 단일 시스템으로 Hybrid closed loop 시스템이라 불린다. 인슐린은 공복시 분비되는 기저인슐린 (basal) 과 식사시 분비되는 식사인슐린 (bolus) 으로 목적에 따라 분류될 수 있는데, level4는 기저인슐린을 자동화하는 인공췌장 시스템을 말하며 식사량은 여전히 환자가 직접 입력을 해주어야한다. 이 점은 당뇨병 환자들에 있어 매우 불편한 점으로, 본인이 어느정도의 식사를 할지와 그 안에 탄수화물이 얼마나 있을지를 미리 예상하고 식사 전에 인슐린을 주입해야하여 식사 과정이 상당히 제한된다.

 

 

level4 이상의 인공췌장의 개발에는 근본적인 한계가 있다.

첫째로, 피하에 주입된 인슐린은 실제 췌장에서 분비되는 인슐린과 달리 약 30~60분 뒤에 약효의 peak를 보여준다. 이러한 큰 delay는 PID 제어 알고리즘과 같은 보편적인 제어만으로는 빠른 대응이 어렵게한다. 특히 식후 혈당은 약 1시간 후까지 상승하므로 이러한 인슐린의 delay를 예측못하고 현재의 혈당 상태에만 의존하여 인슐린을 계속 주입했다가는 인슐린이 혈액에 과다하게 쌓이는 'Insulin stacking (Irl B. Hirsch, NEJM, 2005)' 의 위험이 있을 수 있다. 과다한 인슐린은 저혈당을 유발하며 쇼크사의 위험이 커진다. 이에 최근에는 Model predictive contol (MPC)의 모델기반 예측 알고리즘이 효용성을 보여주었고 사실상 최초의 인공췌장이라 할 수 있는 level4 인공췌장의 상용화를 가능하게 하였다.

 

식전20분/식사직후/식후20분 인슐린 주입시점에 따른 식후 혈당의 양상. 20분 전에 미리 주입하는 경우의 혈당이 가장 안정적이다. (Erin Cobry et al., DTT, 2010)  

하지만, MPC의 model이 환자의 식사시간과 양을 예측하진 못한다. 그렇다고 식후 혈당상승을 disturbance로 보기에는 그 정도가 너무 크다. 때문에 vanilla MPC는 식사정보를 환자가 매번 직접 입력해야하는 level4 인공췌장의 한계를 가지며, MPC로 식사량 입력도 필요없는 level5를 구현하려면 추가적인 예측 알고리즘이 필요하다.

 

 

둘째로, 당뇨병의 배경인 혈당대사는 개인별 편차가 매우 심하다는 점이 문제다. 사람마다 같은 음식을 먹어도 혈당이 상승하는 속도와 정도가 다르며, 같은 인슐린을 넣어도 혈당을 낮추는 속도와 정도가 다르다. 더 큰 어려움은 동일한 사람 내에서도 인슐린의 약효과 시간에 따라, 스트레스에 따라, 운동에 따라, 컨디션에 따라 등등 여러 이유로 계속 바뀐다는 점이다. 때문에 고정된 알고리즘만으론 췌장과 같이 개인에 맞춰 혈당을 조절하는 기능을 갖는 진정한 인공췌장을 구현하기 어렵다. 

A&B: 아침, 점심, 저녁에 따라 바뀌는 개인의 인슐린 반응성 (Hinshow et al., Diabetes, 2013), C: 동일한 빵을 먹었을때 사람마다 다른 식후 혈당 곡선 (David Zeevi et al., Cell, 2015)

 

 

이 논문에서 우리는 이러한 본질적인 두가지 문제를 생체모사형 강화학습 설계 (Bio-Inspired Reinforcement Learning Desing; BIRLD) 방법으로 해결하였으며, BIRLD로 학습된 AI agent는 아무런 식사 정보 없이도 자동화된 인슐린 주입을 보여주는 동시에 저혈당의 발생빈도가 낮았다. 또한 환자의 인슐린 반응성을 바꿔가며 실험을 해도 모두 유사한 혈당 조절을 보여주어 강화학습 알고리즘이 학습을 통해 자동화 및 개인화된 치료가 가능한것을 확인할 수 있었다. 

 

 

개인적으로 재밌는 부분은, 저혈당이 오기 전에 AI가 알아서 인슐린 주입량을 낮추는 것을 배운다는 것이다.  이러한 판단의 근거를 분석하기위해 Explainable AI 기법인 Layer-wised Relevance Propagation (LRP) anlysis 를 적용한 결과, AI가 체내 인슐린 축적량을 가장 중요한 인자로 보고 인슐린 주입속도를 낮추는것을 확인할 수 있었다.

 

 

 

Comment:

  • 이번 연구는 미국 FDA의 동물실험 대체 승인을 받은 가상환자 시뮬레이션 benchmark에서 알고리즘의 검증을 수행한 것으로, 지금은 스마트폰에서 Pytorch Mobile을 사용하여 policy network를 inference하고 실제 동물에 대해 알고리즘이 얼마나 잘 동작하는지를 후속 연구로 진행 중이다.
  • IEEE JBHI 2021 2월호에 Featured article로 선정되었다.

Featured article image

 

당뇨병 관리, 이제는 인공지능으로 한다

강화학습에 약리학 개념을 추가해 완전 자동으로 인슐린이 주입...

news.imaeil.com

  • 당뇨병 환우회 환자분들의 기대가 크시다. 더 힘내야겠다.

Author: Sung Woon Park* Seunghyun Lee* Won Chul Cha, Kyu Yeon Hur, Jae Hyeon Kim, Moon-Kyu Lee, Sung-Min Park, and Sang-Man Jin
Paper Link: https://doi.org/10.4093/dmj.2018.0227

 

 

수술 전 환자 혹은 중환자실의 환자의 혈당 안정화는 환자의 이 후 생존율에 큰 영향을 미친다. 이 논문은 삼성서울 병원과 공동 진행한 연구로, 혈당안정화를 위한 insulin infusion protocol을 개선하는 연구이다.

 

기존은 수기식 Insulin infusion porotocol에서는 의료진의 24시간 정확하고 빠른 대응이 힘들 뿐더러, 인슐린의 적정량을 찾는데 많은 시간이 소요된다. 이에 삼성병원은 protocol을 전자건강기록(electronic health record; EHR)과 통합하여 Computerize 하고 그 임상 결과를 여기서 비교 분석하였으며, 결과 적으로 computerized insulin infusion(CII)이 환자의 혈당을 보다 빠르고 안정하게 정상화 시키고 저혈당 빈도가 낮추는것을 확인할 수 있었다.

 

더 나아가 이 연구에서는 기존의 protocol을 개선하기 위해 환자 치료 데이터로부터 가상 환자 (digital twin) 시뮬레이터를 만들었다. 늦은 혈당 안정화가 예상될 경우 조금 더 적극적으로 protocol을 수정하여 가상환자에서 시뮬레이션 한 결과 protocol 불응성환자에서 확실한 개선을 확인할 수 잇었으며 저혈당은 발생하지 않았다.

 

 

Comment: 

이 연구에선 protocol을 의료진과 함께 직관적, 경험적으로 수정하였다. 이 과정은 사람마다 판단이 많이 들어갈 뿐더러 임상적 경험이 많이 필요하다. 이에, 치료 protocol의 개선에 AI를 적용하여 personalize하고 automate하면 좋겠다는 생각이 많이 들었다. 이 후 부터 연구 방향을 digital twin modeling에서 강화학습을 사용한 AI based medical decision making으로 바꾸어 시작하였다.

Author : Sehoon Ha*, Peng Xu, Zhenyu Tan, Sergey Levine, and Jie Tan
Paper Link : https://arxiv.org/abs/2002.08550

Video Link: youtu.be/cwyiq6dCgOc

 

0. ABSTRACT

  • 사람의 최소한의 개입만으로 4족 보행로봇의 locomotion을 RL로 학습가능한 on-robot learning 시스템을 개발함
  • Real-world RL은 학습과정에서의 자동화된 데이터 수집과 안전성의 문제가 근본적으로 있음
  • 이를 극복하기 위해 1.multi-task learning/ 2. automatic reset controller/ 3. safety-contrained RL 의 세 가지 방법을 도입함
  • 제안된 방법을 4족보행 로봇에 적용한 결과, 서로 다른 지형에서 사람의 개입없이도 단 몇시간 만에 지형에 특화된locomotion을 학습 하는것이 검증됨

세가지 다른 지형에서의 on-robot learning system

 

 

1. INTRODUCTION

  • 기존의 hand-engineered controller와 달리 RL은 자동화된 학습을 scratch부터 가능하게 만들었으나, 아직 simulation 환경에서만 주로 검증 됨
  • 하지만 simulation으론 로봇이 실제로 마주할 환경을 충분히 구현하기 어렵다는 한계가 있으므로, 이 연구에서는 real world에서 자동적으로 학습이 되는 on-robot RL의 개발을 목적으로 함
  • Real-world RL은 stable, efficient, safe, automated 의 조건을 필요로함
  • 이 중 여기서는 특히 automation과 safety문제를 다루기 위해 robot의 반경을 재한하고, 위험하게 넘어지는 일을 줄이며, episode간 리셋을 자동화 하는 방법을 모색
  • 결과적으로 저자의 지난 논문에선 Soft Actor-Critic을 사용한 로봇 locomotion 학습과정에 있어 수 백번의 수동 리셋을 한 반면, 이번 시스템에서는 단 한번의 리셋을 하지 않음

 

 

2. RELATED WORK

  • 기존의 보행 로봇제어는 다층의 모듈설계로 구현됨 (ex. state estimation, foot-step planning, trajectory optimization, model predictive control)
  • 하지만 로봇 플랫폼 및 task가 복잡할땐 prior knowledge를 알기 어려움
  • 반면 RL기반의 보행 로봇 제어는 end-to-end training system으로 prior knowledge없이도 실제 경험을 통해 자동으로 locomotion을 학습 가능
  • RL을 사용한 로봇제어는 많이 연구되었지만 대부분 simulation 환경에서 이루어짐
  • Simulation에서 학습된 policy를 real-world 로봇으로 transfer하는데엔 두 환경 사이이 불일치(discrepancy)한다는 큰 한계가 있어, on-robot training system을 위한 많은 시도 (ex. system id, domain randomization, meta-learning) 가 현재 진행중이나 여전히 문제로 남아있음
  • RL을 보행로봇에 적용하는데는 다음 두 가지 challenge가 있음
    1. Episode가 끝날때마다 로봇의 적절한 initial state로의 reset
    2. 학습 프로세스에서 로봇의 안전성 보장
  • 특히 2번은 "Safety in RL"로 지칭되는 contrained Markov Decision Process (cMDP) 문제로서 주로 Lagrangian relaxation으로 접근하며, 이 외에도 다양한 방법들이 시도되고 있음 (ex. additional safety layer, safe boundary classifier, progressive safe region identification, alongside reset policy)

 

 

3. OVERVIEW

  • 이 연구의 목적은 real world에서의 locomation을 학습하기위해 사람의 개입을 최소화 하는 자동화된 시스템을 개발하는 것
  • 시스템의 구현에 있어 존재하는 3가지 challenge와 그 해결방법은 다음과 같음
  • 1. 로봇은 training area (workspace) 안에 있어야 함
    $\therefore$  보행 방향을 각각 하나의 task로보고 로봇이 workspace를 벗어나지 않도록 적절한 task를 선택해 학습하는, multi-task learning 활용
  • 2. 로봇의 넘어짐 학습시간을 더디게 하거나 기체를 파손시키므로 그 횟수가 최소화 되어야 함
    $\therefore$  SAC 수식에 로봇의 종축(roll)과 횡축(pitch)에 대한 safety constraint를 추가해 cMDP 문제를 품
  • 3. 넘어짐을 피할 수 없을경우, 자동화된 자세 복구가 되어야 함
    $\therefore$  직접 하드코딩한 stand-up controller를 추가함
  • 이를 요약한 전체 automated on-robot learning system은 다음과 같음

 

 

4. PRELIMINARY: REINFORCEMENT LEARNING

  • RL의 기본 내용이므로 생략

 

 

5. AUTOMATED LEARNING IN THE REAL WORLD

A. Multi-Task Learning

  • multi-task learning을 위해서 보행 방향을 전/후 2가지, 혹은 전/후/좌회전/우회전의 4가지를 task로 설정

  • Task scheduler를 두고, episode 시작 시 workplace의 중앙이 로봇의 방향구획 중 어디에 속하는지에 따라 scheduler가 task를 결정
  • Task vetor는 $\textbf{w}=[\omega_{1}, \omega_{2}, \omega_{3}]^T$으로 정의되며, 이 방향과 일치할 경우 가장 큰 reward를 받도록 task reward $r$을 다음과 같이 정의

  • $\ddot{a}$는 motor 가속도로서 action을 부드럽게 하는 역할 
  • 이러한 multi-task를 사용한 학습 자동화는 policy가 불완전한 초기 상황에서도 해당 task의 방향으로 조금이나마 움직인다는 가정 1 과, 한 task의 방향과 반대 방향의 task가 존재한다는 가정 2를 내포
  • 가정 1의 경우, 중앙으로부터 멀어지려는 task가 없기때문에 가능하며 실제로 약 10~20 roll-out 이후엔 1cm라도 움직이기 시작
  • 다만 task마다 별개의 다른 네트워크로 별도의 학습을 진행하며, shared achitecture에선 성능이 안나옴
  • 이는 task가 discrete하게 설정 된 점과, 각 task간의 경험이 서로의 학습에 이점이 없기 때문으로 추정
  • Task는 episode 처음에 정해지면 episode 동안은 고정되어 있으므로 roll-out이 길어질 경우 원치 않게 boundary를 벗어날 수 있으므로, 이 같은 상황에선 early termization 수행

 

 

B. RL with Safety Constraints

  • MDP문제를 cMDP문제로 만들기위해 기존의 RL objective에 safety constraints $f_{s}$를 추가하면 다음과 같음

  • 여기서는 로봇의 넘어짐을 제한하기 위해 본체의 pitch와 roll에 bound를 주고 이를 다음과 같이 constraint로 정의

  • $p_{t}$와 $r_{t}$는 각각 pitch와 roll의 각도이며, $hat{p}$와 $hat{r}$는 각각의 최대 bound로서, $\pi/12$ 와 $\pi/6$으로 설정함
  • Constrained optimization엔 여러 해법이 있는데, 여기서는 Lagrangian 방법을 사용하여 constrained prior problem을 unconstrained dual problem을 바꿔 gradient descent로 최적화 (Lagrangian은 간단히는 CS287, 자세히는 '모두를 위한 컨벡스 최적화'를 참고)
  • Lagrangian multiplier $\lambda$ 를 도입하여 위 constrained objective를 다시 쓰면 다음과 같음

  • 이 목적함수의 최적화를 위해 policy $\pi$와 Lagrangian multiplier $\lambda$를 번갈아 최적화 하는 dual grdient decent 방법을 사용함
  • 먼저 기본 reward에 대한 Q함수와 safety term에 대한 Q함수를 각각 $\theta$와 $\psi$로 parameterize한 $Q_{\theta}$와 $Q^s_{\psi}$를 학습
  • 여기서는 SAC를 알고리즘으로 사용하므로, SAC논문에서의 actor loss에 safety term을 추가한 다음 식을 actor loss로 설정 (SAC에 대한 내용은 블로그의 정리 포스팅 참고)

  • 그리고 Lagrangian multiplier $\lambda$에 대한 loss는 constrained objective에서 $\lambda$ term만 남아 다음과 같음

  • 위 두 loss에 대해 번갈아 gradient descent를 시행하여 constrained optimization 수행 

 

 

C. Additional System Designs for Autonomous Training

  • Multi-task와 constrained optimization의 방법은 학습과정을 자동화했으나 디테일한 부분에서의 몇가지 보완이 필요함
  • 특히 RL의 근간이 실패를 통해서 배우는 알고리즘이므로 넘어짐을 완전히 없애긴 어려워, manually-engineered된 stand-up controller를 개발해 추가함 
  • 외에도 로봇이 일어날 공간 및 줄꼬임 방지 등의 물리적인 부분을 위한 보조 도구들이 사용 

  • 또한 random exploration으로 인한 너무 급격한 변화로 인해 모터가 마모하는것을 완화하고자 first-order low-pass Butterworth filter를 사용하여 action을 post-processing   

 

 

6. EXPERIMENTS

  • 실험은 flat terrain에서 전후 2가지 task와, 전후회전의 4가지 task에 대해 각각 진행되었으며, challenging terrain에서 전후 2가지 task로 진행됨
  • 실험 결과, 사람의 개입이 전혀 없이도 모든 terrain에서 모든 task를 잘 학습함
  • 사람의 무개입과 효율적인 학습 알고리즘으로 wall clock기준 80분만에 task를 학습함
  • 특히 SAC의 저자의 연구인 지난 state-of-the-art on-robot locomotion learning 실험에선 수백번 직접 reset한 것과 비교하면 매우 현실적인 학습과정이라 볼 수 있음

Flat terrain에서의 전후 2가지 task 학습
Soft mattress와 doormat의 challenging terraing에서의 전후 2가지 task 학습
학습된 전후회전의 4가지 task를 game controller를 사용하여 실행

 

  • Episode 시작 위치와 움직이는 방향을 관측 해 본 결과, task scheduler에 의해 workspace를 벗어나지 않고 중앙으로 향하도록 적절히 학습이 진행된 것을 아래 plot에서 확인 할 수 있음

 

  • 의도한 자동화 시스템 설계 (1.multi-task, 2. safety-constrained SAC) 가 정말로 유의미한 효과가 있는지 확인하고자 ablation 학습을 추가적으로 진행했으며, parameter의 수정이 매우 많이 필요한 점을 고려해 현실적으로 real world가 아닌 Pybullet simulation으로 진행

  • Multi-task learning을 한 경우와 안한 경우, workspace를 벗어나는 빈도의 차이가 확연히 발생함을 위와 같이 확인함

  • Safety-constrained term을 사용한 경우 (위 파란색)엔 안한 경우 (위 주황색) 보다 약간의 성능의 향상됨을 확인했으며, 특히 넘어짐이 확연히 줄어드는것을 확인
  • 단 fine tuning으로 찾은 최적의 Lagrangian muliplier (위 보라색)보단 낮은 성능 및 잦은 넘어짐을 확인
  • 하지만 보통의 경우 성능과 constraint는 상호 반비례 관계를 가지는 경우가 많으며 (위 갈색), 이러한 fine tunning을 real world에서 반복적으로 수행하기란 너무 큰 cost로 인해 사실상 불가능함
  • 따라서 본 연구에서 제안된 시스템이 가장 현실적인 자동화된 on-robot training 방법임
  • 지금까지의 결과를 종합한 영상

 

 

7. CONCLUSION AND FUTURE WORK

  • 어쩔 수 없이 넘어진 경우 manually engineered stan-up controller를 사용하였는데, 이는 로봇의 구조가 간단하여 쉽게 설계 가능
  • 추후 더 복잡한 로봇에선 locomotion을 학습함과 동시에 recovery policy 또한 동시에 RL로 학습하는 시스템 필요
  • Task가 discrete하여 어쩔 수 없이 unshared network architecture를 사용함
  • task 자체를 연속적인 목표 선형속도 및 각속도로 parameterize 한다면 shared architecture도 가능할 것으로 예상됨

 

 

 

개인적인 의견

  • 사람의 개입이 없는 locomotion 학습이라는 점이 아주 재밌다. RL의 구현은 사실상 Agent보다 사람이 더 많이 움직이며 인내심이 학습되는 과정인데, 이 논문을 통해 한 발짝 더 실제 동물과 같은 학습을 향한 로망에 커지는듯 하다.
  • 하나의 shared architecture가 아닌, task 별로 서로 네트워크가 분리되어 완전히 독립적으로 학습되었다.
  • 논문에서도 언급됐다시피 task가 discrete하고 task 사이의 공유되는 학습이점이 없는게 shared architecture에서 multi-task learning이 잘 안된 이유인듯 하다.
  • 개인적으로는 이는 사용된 로봇(Ghost Minitaur)이 전후회전 움직임을 할때 actuator가 다 다르게 움직이는 구조라서 더욱 그런게 아닐까 싶다.
  • 다리를 움직임에 있어 low level에서는 공통적인 feature를 가지는 로봇이라면 어땠을까 궁금하다.
  • 물론 사람의 다리 구조도 앞뒤 걷는 task 둘 사이엔 공통으로 사용되는 근육이 많진 않아보인다.
  • 대신 좌우 방향으로 회전 하는건 어느정도 직진과 움직임에서 공통점이 있는것 같다.
  • 동물과 같은 다리구조의 로봇이라면 이러한 부분을 고려하여 task를 설계한다면 shared architecture의 성능이 잘 나오려나? DeepMind의 Virtual Rodent 논문 (정리 포스팅) 을 보면 서로다른 task를 수행함에 있어 공통된 locomotion feature가 사용되는걸 보면 그럴수도 있겠다 싶다.
  • Spot Buddy 프로젝트에서 실험해보면 좋을 부분이 생겼다.

 

Author : Nichole S. Tyler*, Clara M. Mosquera-Lopez, Leah M. Wilson, Robert H. Dodier, Deborah L. Branigan, Virginia B. Gabo, Florian H. Guillot, Wade W. Hilts, Joseph El Youssef, Jessica R. Castle & Peter G. Jacobs  
Paper Link : https://www.nature.com/articles/s42255-020-0212-y

 

Author : Josh Merel*, Diego Aldarondo* , Jesse Marshall*, Yuval Tassa, Greg Wayne, Bence Olveczky 
Paper Link : https://openreview.net/pdf?id=SyxrxR4KPS

 

0. ABSTRACT

  • 신경과학과 딥러닝은 감각과 인지시스템에 대한 실제 신경망과 인공신경망의 이해를 도우며 상호 생산적인 발전을 해옴
  • 이 연구에선, embodied control에 대한 운동신경의 활성을 연구하기위한 플랫폼으로서 인공신경망을 내제한 가상의 Rat을 개발함
  • 가상의 rat은 강화학습을 통해 여러 task를 학습
  • 학습된 인공신경망에 신경과학에서의 사용되는 신경행동학적 분석을 통해 목적과 행동에 따른 운동신경의 활성의 연관성을 설명함
  • 학습된 모델은 task 특화된 행동전략과 공통된 행동전략의 두가지 class로 구분되는것을 발견했으며, 이는 실제 신경의 sequential activity와 subpopulation에 해당한다고 볼 수 있음 
  • 이 가상 rat모델은 Deep RL과 motor neuroscience을 결합하는 연구를 위한 토대가 됨

 

1. INTRODUCTION

  • 포유류는  동일한 general neural network를 사용해서 넓고 다양한 task를 해결가능한 generalist
  • 동물이 생물학적 지능으로 푸는 문제를 연구자들이 인공 모델로 해결하고자 할때, 신경생물학적 회로의 기능에서 많은 영감을 받음 (ex. vision, audition, navigation, locomotion, reaching movement)
  • 하지만 지금까지 동물의 복잡한 embodied control을 모두 고려하여 물리적 환경에서의 문제를 풀려한 시도는 전무
  • Embodied control 모델을 개발하는것은 motor neuroscience의 이해와 AI연구 모두에 가치 있음
  • 이에, 이 연구에서는 체성 감각/운동 기능이 내제된 가상 rat을 개발하고 행동심리학 기반 인공지능인 RL을 적용하여 multi-task를 학습시킴
  • 이를통해 multi-task의 context에 따른 행동의 연속적 변화를 확인하고 이를 신경과학자들이 이해할 수 있는지의 관점에서 접근하고자 함

 

2. APROACH

 

2.1 VIRTUAL RODENT BODY

  • Virtual rat은 실제 rat을 토대로 만들어짐
  • 2마리의 rat을 해부하여 31개의 구획으로 나누어 그 질량을 측정하고, 7마리를 마취해 34가지 사지 부위의 길이를 측정하여 평균값을 도출
  • 최종적으로 만들어진 virtual rat은 다수의 기관 및 관절과 이를 움직이는 근육으로 구성되며, 38개의 degrees of freedom을 가짐
  • 머리에 RGB카메라(64x64 pixels)이 있어 1인칭 시야를 가지며, input으로서의 체성 감각으로는 다음과 같은 다양한 요소가 있음
    • Internal joint angles and angular velocities, the positions and velocities of the tendons that provide actuation, egocentric vectors from the root (pelvis) of the body to the positions of the head and paws, a vestibular-like upright orientation vector, touch or contact sensors in the paws, as well as egocentric acceleration, velocity, and 3D angular velocity of the root.
  • 모델은 MuJoCo를 사용해 구현됐으며, DeepMind Control Suit에서 확인 가능 (https://github.com/deepmind/dm_control)

2.2 VIRTUAL RODENT TASKS

  • Virtual rat이 학습할 4가지 multi-task는 다음과 같음
    (1) 앞으로 달리며 gap을 뛰어넘기 (Reward: target velocity)
    (2) 미로에서 파란구슬 모으기 (Reward: sparse target)
    (3) 언덕지형을 가로질러 구렁 탈출하기 (Reward: distance from center)
    (4) 정해진 시간 간격으로 노란공 두번 터치하기 (Reward: sparse targets)
  • 강화학습을 적용함에 따라, rat은 reward를 최대화 하는 방향으로 task 학습

 

2.3 TRAINING A MULTI-TASK POLICY

  • Multi-task를 수행하기위해 분산학습 RL알고리즘인 IMPALA setup (Espeholt et al., 2018)을 사용
  • Actor를 학습하기위한 RL알고리즘으론 MPO (Abdolmaleki et al., 2018)를 사용
  • Virtual rat agent의 neural netwrok 아키텍쳐는 다음과 같음

  • 시각정보와 체성감각을 압축해주는 encoder가 있고, 압축된 정보를 LSTM을 거쳐 value function과 policy를위한 hidden state 도출
  • Policy는 hidden state와 압축된 정보, 그리고 체성감각신호를 입력으로 받아 stochastic motor action 결정
  • 단, 구렁탈출 task는 multi-task에선 학습이 잘 되지 않아 따로 teacher agent를 학습 시킨후 Kickstarting (Schmitt et al., 2018)으로 다시 multi-task를 학습시는 knowledge transfer 접근을 사용
  • 학습 결과 4가지 task를 해결가능한 단일 neural network가 구해짐
  • 각 task에 대한 학습된 rat의 움직임 영상 (video 1, 2, 3, 4)

 

3. ANALYSIS (본격적인 Neuroscience 파트)

  • Virtual rat의 학습된 인공 신경망의 활성이 multi-task를 풀때 어떻게 나타나는지를 neuroscience에서 사용되는 방식으로 분석
  • 생물학적 신경망이 어떻게 단일 운동을 조절하고 선택지의 메커니즘은 근력 및 행동요소 측면이나 내제된 신경역학적인 측면으로 분석되어 왔으나, multi-task을 위한 일반화에 대한 분석은 없음
  • 이에, 가상 rat과 실제 rat의 운동에 내제된 매커니즘에 대한 통찰을 얻기위해, 가상의 쥐가 다른 행동을 할때 인공신경망의 각 레이어가 어떻게 인코딩되고 생성되는지를 실험함
  • task마다 25번씩 반복시행하며, 가상 rat의 운동/관절각도/힘/체성감삭/LSTM 단일cell 활성도/policy 레이어별 활성도를 측정

 

3.1 VIRTUAL RODENTS EXHIBIT BEHAVIORAL FLEXIBILITY

  • 전신 자세를 설명하기위해서 관절각 15개, 관절위치 15개의 총 30개 dimension의 top priciple component (eigenposture) 정의
  • 전신 움직임을 설명하기 위해서 각 eigenposture에 대해 Morlet wavelet transform 수행 후 총 30개 dimension의 top priciple component 정의
  • 움직임의 속도를 구분하고자 Wavelet frequency는 1. Intermediate (1~25 Hz), 2. Slow (0.3~5 Hz), 3. Fast (5~25 Hz)의 3가지 set을 사용
  • Behavioral embedding에서의 효과적인 구분을 위해 자세와 움직임의 component를 합쳐 총 60개의 feature에 대해 tSNE 분석 수행
  • 이 feature들에 대한 top 2 principle component에 대해 4개 task의 각 cluster가 어떻게 이루어 지나 확인한 결과 low level의 feature는 모든 task의 구분 없이 유사하게 나타났고 high level의 feature는 task에 따라 구분이 되는것을 확인
  • tSNE 분석결과, rat의 행동에 따라 tSNE map에서 서로 잘 구분되는것을 확인 

 

  • 이 분석 결과로부터 인공신경망이 서로 다른 task에 대해 선택적으로 공통된 움직임과 차별되는 움직임을 선택하는 행동의 유연성을 학습하는것을 확인함

 

 

3.2 NETWORKS PRIMARILY REFELCT BEHAVIORS, NOT FORCES

  • Rat의 행동에 따른 인공신경망의 활성 패턴을 분석함
  • 학습된 신경망 layer에 대한 Welch's Power Spectrum Estimation 결과 core network는 task context와 reward를 나타내는 1~10초의 timescale을 보여준 반면, policy network는 행동의 feature를 나타내는 1초 이하의 timescale을 보여줌
  • 각각의 layer가 행동의 어떤 feature를 representation으로 encoding하는지 정량화하기위해 Representational similarity analysis (RSA) 사용
  • RSA는 서로 다른 자극에 대한 neural population이 보여주는 representation을 비교하는 방법으로, Khaligh-Razavi & Kriegeskorte (2014) 에서는 CNN이 실제 시각신경과 거의 유사한 RSA 패턴을 보여주는것으로 인공신경망이 실제 신경과 기능적으로 비슷하게 동작하는것을 보여준 바 있음 (자세한 것은 RSA 저자 강의 참고)
  • RSA 분석 결과 policy는 layer에 걸처 빠른 주기의 움직임을 많이 encoding하는 반면, core는 움직임 정보는 다소 낮게 가지고 포함하면서도 그 중 느린 주기의 움직임을 상대적으로 높게 encoding하는 등, 서로 다르게 행동 정보를 representation하는것을 확인
  • 결과적으로 policy와 core 모두 force와 joint angle과 같은 low-level motor feature보다 행동 자체를 encoding함.

 

 

3.3 BEHAVIORAL REPRESENTATIONS ARE SHARED ACROSS TASKS

  • 학습된 neural network가 task에 따라 행동을 생성함에 있어 어떻게 neural representation을 사용하는지를 테스트
  • Core와 policy network의 활성을 2-dim multidimensional scaling (MDS) 으로 embedding한 결과 policy는 task에 걸쳐 latent activity가 겹치는 부분이 있는 반면 core는 task에 따라 완전히 분리된 latent activity를 보여줌
  • 이는 행동의 특정 representation은 task에 걸쳐 재사용되는것을 의미
  • 공통적으로 재사용되는 행동을 task에 대해 RSA한 결과 task사이에 사용하는 행동의 유사성이 서로 다르게 나타남
  • 또한 policy의 레이어 개수가 작을수록 computational capacity가 줄어들어 rat이 공통된 행동에 대한 의존성이 올라가는것을 확인

 

 

3.4 NEURAL POPULATION DYNAMICS ARE SYNCHRONIZED WITH BEHAVIOR

  • RSA가 task에 따른 core와 policy의 활성을 representation 측면에서 분석했다면, 이번엔 시간축에서 각 네트워크가 어떻게 활성화 되는지를 확인
  • Two-tap task에서 준비자세부터 두 번째 탭핑에 이르는 동안의 각 layer의 활성을 정규화한 결과 시간에 따른 연속된 뉴런의 활성화를 확인함 (video)

 

 

  • Task를 수행하는 동안 core network와 policy network 뉴런의 활성을 구조적으로 정량화 하기위해, PCA를 사용하여 차원을 축소한 뒤 각 bin에 해당하는 뉴런 활성의 gradient를 계산하여 vector field로 표현
  • Core와 policy 모두의 vector field에서 회전하는 특성이 관측됨에 따라, 회전 패턴을 추출하기위해 jPCA 적용
  • jPCA는 (Churchland et al., Nature, 2020) 에서 동물의 motor cortex가 reaching task를 할때 뉴런의 활성이 진동하는 특징을 발견하고, 이를 분석하고자 뉴런 활성에서의 latent rotational dynamics를 추출하도록 고안된 방법  
  • 분석 결과 core network와 policy network 모두 다른 행동에 따라 다른 주파수를 가진 뚜렷한 회전 특성을 나타냄
  • 앞서 분석한바와 같이 core가 policy보다 더 낮은 느린 주파수를 가지는것 또환 일관되게 확인됨 
  • 회전의 속도특성은 core에서는 reward와, policy에서는 행동 phase에 연관됨 (task 예시: gap, maze, escape, two-tap

 

3.5 NEURAL PERTURBATIONS CORROBORATE DISTINCT ROLES ACROSS LAYERS

  • 지금까지 분석을 바탕으로 도출된 core network와 policy network의 역할을 검증하고자 신경을 ablation 및 stimuatation 하는 실험을 수행
  • poilicy와 core의 뉴런중 평균 이하의 활성화를 나타내는것을 각각 비활성화
  • task의 수행 결과 policy를 비활성화 할 경우 목표를 향한 행동의 이상 (ex. 잘못된 점프) 을 보였고, core를 비활성화 할 경우 목표에 이상이 생긴듯한 행동 (ex. 목표를 놓침) 을 때때로 보임  
  • 반대로 task수행시 발생하는 신호로 policy를 자극할 경우 tapping을 위해 하는 회전을 불필요하게 한번 더 하는것을 보였으며, core를 자극할 경우 공을 찾는 듯한 행동을 산발적으로 보임

 

 

4. DISCUSSION

  • 신경을 reverse enigeering 하는 것은 많은 신경과학자 및 인공지능 연구자들의 목표
  • 본 연구와 같이 가상 신경망을 사용할 경우 기존 neurosceince에선 어려웠던 정확한 신경 활성화의 관찰이 가능해지며, 이론에 대한 시험이 보다 용이해짐
  • 연구를 통해 발견한 몇 특징은 기존의 실제 동물실험에서 관측된 것과 일치
  • 행동발생의 신경 매커니즘을 이해하기위한 가상 모델을 향한은 긍적적인 초기 단계이긴 하지만, 실제 rat에 비해 매우 단순한 운동 및 감각 신경의 구조를 가지는 한계를 지니며 인지에 기반한 행동이 아니라는 한계가 있음
  • 신경 아키텍처와 훈련 과정이 biologically-inspired design이라면 실제 신경망과의 비교가 더욱 용이할 것
  • 이는 현재로선 파악하기 어려운 행동 생성의 요소를 돕는 한편 더욱 현실적인 움직임을 같은 인공 신경 아키텍쳐의 개발을 가능하게 할 것임

 

개인적인 의견

  • 마지막 discussion처럼 인공신경망의 구조가 실제 신경망의 구조를 반영하지 않은게 아쉬움
  • Neuroscience의 분석방법을 사용하여 학습된 neural network를 해석 하고자 한다면, multi-task를 단순히 enginieering측면의 RNN의 blackbox타입이 아니라 실제 생물의 multi-task learning 접근을 좀더 반영하면 어땠을까.
  • 마지막 비활성화/자극 실험은 영상을 봐도 논문의 설명처럼 두 network의 역할이 구분 되는건지 잘 모르겠다.
  • 그래도 재밌는 부분이 많고 현재로선 미지의 영역인 많은 신경 아키텍쳐에 대한 연구에 도움을 줄 가능성이 보이는 논문

 

Author : Kate Rakelly*, Aurick Zhou*, Deirdre Quillen,  Chelsea Finn, Sergey Levine
Paper Link : https://arxiv.org/abs/1903.08254

Talk in NeurIPS2020 Workshop: slideslive.com/38938215

 

0. Abstract

  • 기존의 meta-RL (meta-Reinforcement Learning)은 on-policy 기반으로 샘플링이 비효율적이거나, task의 불활실성에 대한 구조적인 탐색이 불가능함
  • 이에 policy와 별개로 task inference가 가능한 off-policy 기반의 meta-RL 알고리즘을 제안함
  • 제안된 방법은 gradient step없이 task의 확률이 online으로 도출 가능하며, 기존의 meta-RL 알고리즘 대비 20~100배의 샘플 효율성을 보여줌

1. Introduction

  • 현재 대부분의 meta-RL은 meta-training과 adaptation에서 모두 on-policy data를 필요로 함
  • Adaptation은 새로운 task에대한 빠른 학습을 특징으로 하여 on-policy가 큰 문제는 아니나, meta-training에서의 on-policy training은 매우 낮은 샘플 효율성을 야기하므로 off-policy RL을 meta-training에 적용할 필요가 있음
  • 하지만 meta-training과 meta-test의 adaptation 데이터 구조가 일치해야하는 근본적 제약으로인해 off-policy meta-RL은 근본적으로 어려움
  • 이에 이 연구에서는 meta-RL을 context connoted blackbox 나 bi-level optimization의 adaptation과 policy가 결합된 구조로 보는 기존의 접근과 달리, inference problem으로 해석
  • 즉, meta-training동안 데이터의 posterior를 먼저 inference하도록 probabilistic encoder를 학습하며 이를 토대로 policy가 task를 수행
  • 마찬가지로 Meta-testing에선 학습된 encoder에 의해 새로운 task의 latent variable을 inference한 뒤 이를 바탕으로 policy의 구조적인 탐험 및 빠른 adaptation을 수행
  • 이와같이 task inference가 policy로부터 분리된 구조는 meta-policy의 exploration 및 optimization 과정 없이도 online task inference를 가능하게 함
  • 또한 분리된 학습으로 인해 meta-training의 데이터 구조와 meta-test 데이터 구조가 달라도 돼 off-policy meta-RL을 가능하게 함
  • 즉, policy는 off-policy RL로 효율적으로 최적화 되는 반면, encoder는 on-policy data를 사용해 task inference를 학습하고 수행함으로써 meta-training과 meta-test사이의 불일치성을 최소화
  • 저자 Kate Rakelly는 이 알고리즘을 probabilistic embedding for actor-critic RL (PEARL)이라 명명 
    (github도 이름을 oyster 로 지은걸 보면 재밌는 이름이긴 하나 사실 와닿진 않는듯 하다)

 

2. Related Work

a) Meta-learning:

  • 새로운 task를 빠르게 학습하는것을 목표로 하는 meta-RL은 크게 context-based meta-RL과 gradient-based meta-RL로 나눌 수 있음
  • Context-based 방법은 수집된 데이터로 부터 task의 latent representation을 학습하고 이를 policy의 condition으로 사용하는것으로, 주로 RNN을 사용
  • Gradient-based 방법은 빠른 초기 학습을 학습하는 bi-level optimization으로, on-policy 데이터 기반의 policy gradient를 사용
  • PEARL은 context-based 기법이나 RNN대신 encoder를 사용했으며, gradient-based 기법과 달리 off-policy 데이터를 사용하는 차이가 있음

b) Probabilistic meta-learning:

  • Probabilistic model을 supervised learning혹은 reinforcement learning 에 적용하는 연구는 많이 있어옴
  • PEARL은 특히 task의 uncertainty를 확률분포로 표현하는 probabilistic latent task variable을 활용

c) Posterior sampling:

  • RL에서의 posterior sampling은 측정한 MDPs 데이터에 대한 posterior을 샘플링하고 시간적으로 과거의 경험과 겹치지 않는 최적의 행동을 새롭게 탐색하는것을 의미
  • PEARL은 이 posterior samping을 meta-learning의 관점으로 해석하여, 과거 경험한 task의 uncertainty를 확인하고 새로운 task를 구조적으로 탐색하는데 활용 

d) Partially observed MDPs:

  • Task를 state에 포함된 개념으로 본다면, uncertanty가 높은 task를 기본 배경으로 하는 Meta-RL은 일종의 partially observed MDPs (POMDP)로 볼 수 있음
  • PEARL은 새로운 task에 대한 probabilistic belief inference를 위해, POMDP 문제에 사용되는 variational 접근을 활용.

3. Problem Statement

  • Meta-RL은 기존의 task들로 부터 meta-policy를 학습하는 meta-training과, 학습된 meta-policy로부터 빠르게 새로운 task에 적응하는 adaptation 의 두가지 반복 loop로 구성됨
  • Adaptation의 샘플링 효율은 meta-RL의 본질과 부합하므로 큰 문제 없으나, meta-training에서의 샘플링 효율은 기존의 RNN, policy gradient 방식의 on-policy기반 알고리즘으론 매우 낮음 
  • 이는 Real world에 meta-RL을 적용하는데 있어서도 큰 장애물이 됨 
  • 이에 저자는 off-policy meta-training 알고리즘을 제안함
  • Task의 정의는 다음과 같음

각각 {initial state distribution, transition distribution, reward fuction}

  • 이 3가지 요소 중 어느 하나라도 다르면 다른 task로 간주
  • 실직적으로 task를 바탕으로 수집된 데이터는 그 task를 상징하는 context $c$라는 추상적 개념을 가지고 있다고 보며 명시적으로는 하나의 MDP transition으로서 다음과 같이 표현

n번째 step의 (state, action, reward, next state)

  • 이때, Meta-RL은 transition distribution과 reward function을 모르는 상황에서 training task들을 학습하여 새로운 task를 마주했을때 빠르게 policy를 찾는 문제

 

4. Probabilistic Latent Context

  • task의 최근 context로 task에 대한 latent probabilistic context variable $Z$를 추론 했을때, 이 latent variable을 조건으로한 policy $\pi_{\theta}(a\mid s,z)$ 를 최적화 하면서 얼마나 성능이 좋은지를 바탕으로 $z$가 적절히 추론되었는지를 판단

4.1. Modeling and Leanring Latent Contexts

  • Inference $Z$ 를 학습하기위해 variational auto encoder (VAE)의 구조를 사용
    (VAE는 유재준 박사님의 포스팅이나, 이기창님의 포스팅 참고)
  • Context $c$가 주어졌을 때 poeterior $p(z \mid c)$를 추정하는 inference network $q_{\phi}(z \mid c)$ (encoder)를 학습
  • Decoder의 generative 기능에 따라, $q_{\phi}(z \mid c)$는 $z$로부터 MDP의 복원을 목적으로 최적화할 수 있음
  • 유사한 변형으로서, model-based RL개념의 MDP복원이 아니라 model-free RL의 개념을 차용하여 Q나 Return을 최대화 하도록 $q_{\phi}(z \mid c)$를 최적화 가능
  • VAE의 개념을 가져왔으므로, PEARL의 목적함수 역시 VAE의 목적함수(ELBO)와 유사하며 다음과 같음

  • ELBO의 형태에 따라 첫번째 항은 reconstruction term이며, 두번째 항은 variational prior에 대한 regularization term
  • $R(\tau, z)$는 위에 언급한 대로 model-based 혹은 model-free 접근에 따라 다양한 reconstruction objective를 선택 가능
  • PEARL에서는 $p(z)$를 z에대한 unit Gaussian 형태의 prior로 가정하며, regularization term에 따라 information bottleneck의 역할을 하여 현재 task에 대한 meta-overfitting을 완화함
  • Meta-test에서는 추가적인 gradient step 없이 encoder를 사용한 새로운 task에 대한 latent context의 단순한 online inference만 필요함
  • 만약 task가 fully observed MDP라면 단일 transition만으로도 context를 충분히 내포하고 있으며 따라서 transition sample간의 순서는 관계 없는 permuation invariant 성질을 만족함
  • 이에, posterior는 각각의 단일 transiton을 inference한 posterior의 distribution multiplication으로 modeling됨

  • 실제 구현에서는 encoder의 output으로 mean과 standard deviation을 inference한 후, 이를 파라메터로 갖는 normal distribution을 posterior로서 도출함

  • 지금까지의 inference network 구조를 그림으로 표현하면 다음과 같음

4.2. Posterior Sampling and Exploration via Latent Contexts

  • Posterior sampling, 즉 현재 task에 대한 belief에 따른 optimal acting은 동일한 분포의 랜덤한 행동을 반복해서 하는것이 아니므로 시간적으로 구조화된 탐색을 하는 장점을 가짐
  • 단, 기존의 RL에서의 posterior sampling과 달리 PEARL에서는 VAE를 썼기때문에 MDP/Return/value 등 다양한 최적화를 위한 poterior를 직접inference 가능
  • 새로운 task에 대해서는 prior에서 $z$를 샘플링 한 후 이에 대한 acting을 하며, 그 결과로 얻어진 context에 따라 현재 task의 posterior를 다시금 inference함
  • 이 과정을 반복하면 현재 task 에 대한 belief가 범위가 좁혀지고, 따라서 더 적절한 optimal action을 취할 수 있음
  • 이러한 posterior sampling을 통한 acting 구조는 그림으로 다음과 같이 표현 됨

 

 

5. Off-Policy Meta-Reinforcement Learning

  • 현대 meta-RL에선 adaptation에 사용되는 데이터의 구조가 meta-training과 meta-test 둘 사이에 일치(in distribution) 해야한다고 가정함
  • 때문에 RL의 특성상 meta-test의 adaptation이 on-policy 로 이루어짐에 있어, meta-training도 샘플 효율이 낮은 on-policy를 사용해야하는 제약이 생김
  • 또한 경험을 바탕으로 task distribution을 추론하는 stochastic 탐색을 배우는것은 meta-RL을 더욱 효율적으로 만드는데, 이는 policy가 stochastic distribution을 바탕으로 행동을 조작할 수 있어야 가능함
  • 따라서 이는 단순히 true value function을 근사하는 off-policy RL은 불가능한 반면, policy 자체를 근사하는 on-policy RL은 가능함
  • 이러한 두가지 종합적 이유로, off-policy RL을 meta-RL에 접목하는것은 필요하지만 쉽지 않음
  •  논문의 contribution으로서, PEARL 알고리즘은 위 한계점을 해결하기위해 task distribution inference 구조는 encoder가 하도록 분리하고 poilicy의 학습과 encoder의 학습이 다른 데이터를 사용해도 되도록 설계
  • 이로서 encoder가 on-policy data로 학습을 하여도, policy는 off-policy RL loop의 일부로서 $z$를 다룰 수 있게 됨
  • 또한 탐색을 위해 필요한 stochasticity 역시 encoder $q(z \mid c)$ 로 추가할 수 있음
  • 구체적으로, Actor와 Critic은 replay buffer $B$로부터 off-policy 데이터를 샘플링하여 학습을 진행
  • Encoder는 샘플러 $S_{c}$에 의해 샘플링된 context batch를 학습
  • 이때 $S_{c}$가 전체 버퍼에서 샘플링을 할 경우 off-poicy 가 되어 on-policy meta-test와의 너무 큰 차이가 생김
  • 하지만 encoder를 사용할 경우 strict on-policy를 지키지 않아도 된다는 장점이 있는데, on-policy와 off-policy 중간 정도 되는 접근으로서 최근 수집된 데이터를 통해 inference를 하는것은 on-policy 데이터를 사용하는것과 성능의 차이가 없다는 것을 저자는 확인함
  • 지금까지의 PEARL을 알고리즘으로 정리하면, meta-training 및 meta-test는 각각 다음과 같음

 

5.1. Implementation

  • PEARL은 model-free off-policy RL알고리즘인 soft actor-critic (SAC)기반으로 구현 (SAC의 자세한 설명은 이전 포스팅 Soft Actor-Critic (Haarnoja, 2018) 정리 참고)
  •  SAC는 off-policy 알고리즘으로서 효율적인 데이터 샘플링 및 안정성을 보여주며 poilicy자체가 probabilistic하게 표현돼 probilistic latent context와의 결합이 용이
  • PEARL의 구현에선 inference network $q(z \mid c)$의 파라메터를 actor  $\pi_{theta}(a \mid s, z)$와 critic $Q_{theta}(s,a,z)$의 파라메터와 결합하여 한번에 backprobagation으로 학습하기위해 reparameterization trick을 사용
  • 이는 샘플링을 포함하는 연산그래프에서 랜덤노드를 분리해주는 것으로, 자세한것은 유재준 박사님의 블로그를 참조
  • 이 같은 학습구조로 crtic의 학습으로서 $Q$의 복원값을 Bellman update와 LMS로 학습면서 한번에 gradient가 inference network까지 전달되어 학습 가능 (Chapter4에서 reconstruction은 여러가지가 가능하다고 했으나 MDP 의 복원보다 $Q$의 복원이 더 나은 성능을 보여주는것을 저자는 확인)
  • 따라서 critic의 loss fuction은 다음과 같음

  • Actor의 loss function은 SAC 원 알고리즘과 거의 동일하며 $\overline{z}$만 input에 추가되어 다음과 같음

  • $\overline{V}$은 target value network. $\overline{z}$는 reparameterization trick으로 gradient가 encoder의 파라메터로 전달 되지 않음을 의미
  • 여기서 주의할 점은 critic loss에 사용되는 data와 latent variable를 추론하는 $q_{\phi}(z \mid c)$ context가 다르다는 것
  • Context 샘플러 $S_{c}$는 완화된 on-policy로서 최근 수집된 데이터에서 uniformly 샘플링 하며, meta-training 을 n번 진행할때마다 한번 context를 inference함
  • 한편, actor-critic은 off-policy 샘플링을 위해 전체 replay buffer에서 uniformly 샘플링

 

6. Experiments

 

6.1. Sample Efficiency and Performance

  • 실험은 총 6개의 Mujoco continuous control 환경에서 수행

  • 이 중 5개는 제어 목적이 다른(=reward가 다른) task
    • 각각 전진/후진을 목표로 하는 Half-Cheetah
    • 각각 전진/후진을 목표로 하는 Ant
    • 걷는 방향이 서로 다른 Humanoid
    • 서로 다른 속도를 목표로 하는 Half-Cheetah
    • 목표 도착 지점이 서로 다른 Ant
  • 나머지 1개는 dynamic가 다른 (=transition probability가 다른) task
    • 랜덤하게 dynamics 파라메터가 정해지는 2D-Walker

  • 비교를 위한 meta-RL 알고리즘은 총 3개 수행
  • 이 중 2개는 Policy gradient 기반 (optimization기반)의 알고리즘
  • 나머지 1개는 Recurrent 기반 (black-box 기반)의 알고리즘
  • 실험결과 PEARL이 기존 meta-RL알고리즘보다 20~100배 더 향상된 meta-traning 샘플링 효율을 보여줌
  • 또한 기존 알고리즘 보다 50~100% 향상된 성능을 점근선으로 확인 가능 함

6.2. Posterior Sampling For Exploration

  • Posterior sampling이 얼마나 효과적으로 task 탐색을 진행하는지를 검증하는 실험을 함
  • 이를 위한 환경으로는 reward가 sparse하게 주어지는게 보통 사용되며, 여기서도 마찬가지로 타원을따라 나타나는 파란 원에 도달시에만 reward를 받는 2D navigation 실험을 함
  • 비교 알고리즘으로는 기존의 meta-RL 알고리즘 중 PEARL과 같이 구조적인 탐색이 가능한 MAESN (Gupta et al.m, 2018)을 사용

  • 실험 결과, optimazation 기반 meta-RL알고리즘과 달리 sparse reward 문제도 해결 가능함을 보여줌
  • 또한 같은 구조적 탐색이 가능한 MAESN에 비해 meta-training에서 약 100배 빠른 샘플링 효율성을 보여줌
  • (6.3 Ablations는 알고리즘의 구현에 대한 추가적인 검증으로 생략)

 

8. Limits of Posterior Sampling

  • Posterior sampling으로 sparse reward 환경에서도 구조적인 탐색이 가능하지만, 이게 optimal exploration을 의미하는것은 아님 

  • 실제로 반원을 따라 target이 생긴다면, optimal은 반원을 따라 탐색을 하는것이 가장 효율적인 전략
  • 이는 task에 대한 adaptation과 postrior regularization의 순서에 따라 생기는 문제로, task inference를 통해 $z$를 도출 한 후 Normal distribution prior로 posterior를 regularize하면 task의 latent space가 normal distibution으로 제한 됨

  • 즉, adaptation은 task간에 그 평균에 해당하는 공통점이 존재하는 경우에 한하여 성능이 좋을것을 예상 가능
  • 이러한 문제는 실제로 meta-RL에 대한 벤치마크인 Meta-world (Finn et al., 2019)에서 10개의 task만으로 meta-RL을 진행했을땐 meta-policy의 학습이 실패했으나, 45개의 task를 사용하여 공통점이 충분해 졌을땐 다른 알고리즘 보다 나은 성능을 보여준것에서 확인됨

다양한 task에 대한 meta-test의 성공률

  • 하지만, 전반적으로 meta-RL 알고리즘들의 성능이 나쁨. 이는 탐색이 부족한 문제도 데이터가 부족한 문제도 모델의 capacity가 부족한 문제도 아닌 최적화 기법의 문제인것으로 추측 됨 (스탠포드 Fall19 CS330 lecture10)
  • 즉, 다양한 out of distribution인 task familly들에 대해 더 나은 최적화를 가능하게 하는 meta-RL 알고리즘으로의 여지가 아직 많이 남아 있음 

 

 

 

 

캐나다 연구그룹이 어제 이종호르몬 인공췌장 연구를 ‘Diabetes care (IF=13.4)’ publish 했다.

https://doi.org/10.2337/dc19-1922

 

A Novel Dual-Hormone Insulin-and-Pramlintide Artificial Pancreas for Type 1 Diabetes: A Randomized Controlled Crossover Trial

OBJECTIVE The rapid insulin-alone artificial pancreas improves glycemia in type 1 diabetes but daytime control remains suboptimal. We propose two novel dual-hormone artificial pancreas systems. RESEARCH DESIGN AND METHODS We conducted a randomized crossove

care.diabetesjournals.org

 

이종호르몬이라는 타이틀이긴 하지만 흔히 아는 insulin-glucagon (ex, Betabionics https://www.betabionics.com/) 이 아닌 (rapid) insulin-pramlintide의 이종호르몬이다.

Randomized crossover inpatient study로 단일 인슐린만 사용했을 때 대비 time-in-range74%->84%로 증가했다. 다만 저혈당 빈도도 같이 상승했다는 점과 위장 쪽 증상을 동반한다는 점이 아쉽다.

 

Pramlintide는 베타세포에서 인슐린과 함께 분비되는 amylin anlogue로서 제 1형 당뇨병환자에선 분비되지 않는다. 효능으로는

Ÿ   소화흡수 속도 제한 & 포만감 형성 & 체중감량

Ÿ   식후 과도한 글루카곤 분비의 억제

Ÿ   식후 1st phase 분비에 대한 반응 threshold 증가

정도가 있다.

 

식후 혈당조절에 있어 Glucagon 외의 약물을 사용한 이종호르몬 치료라 색다르며, 당뇨병 치료에 있어 다양한 약물 및 intervention 방법을 고려해야한다는 생각이 든다.

https://jamanetwork.com/journals/jamainternalmedicine/fullarticle/2751944

 

JAMA Internal Medicine (IF=20.768)는 20년 1월호에서 미국 Medicare 프로그램 약물처방 파트 (Part D) 의 2012년~2017년 사이의 고혈당 치료에 대한 동향을 발표하였다.

 

  • 2017년엔 당뇨병관련 지출이 총 220억 달러로 2012년 보다 144% 증가
  • 6년간의 당뇨병 치료 비용으로 총 $940억 지출. 이중 인슐린 비용은 $600억 (analog $550억, human $50억)
  • 2015년 이후엔 지속성 인슐린의 사용이 줄어들어 전체 analog 인슐린 증가세 감소
  • 비인슐린 치료법은 2017년에 $87억으로 2012년의 $31억 대비 135% 증가
  • 가장 지출이 큰 비인슐린 요법은 dipeptidyl peptidase-4 inhibitors (DPP-4i) 로 $15억에서 $39억로 156% 증가
  • 두번째 지출이 큰 비인슐린 요법은 glucagon-like peptide-1 receptor agonists (GLP-1RA) 과 the sodium-glucose cotransporter-2 inhibitors (SGLT2i)
  • 특히 GLP-1RA는 $3억7400만 에서 $26억 으로 증가
  • SGLT2i는 2014년 $1억4천5백만 에서 $12억 으로 증가 

 

  • 6년간 anlog 인슐린 처방은 36% 증가했으나 human 인슐린 처방은 17% 감소
  • 6년간 가장 일반적으로 처방된 요법은 metaformin (1억6천3백만 건, 처방 당 $17)
  • Sulfonylureas 는 9천5백만 건, 처방당 $14
  • Amylin anlog는 가장 적게 처방됐지만 처방당 비용은 가장 높음
  • Thiazolidinediones의 지출의 경우 처방당 비용이 낮아져 6년간 총 지출이 93% 감소

 

Discussion & Conclusion

당뇨병 관련 메디케어 지출이 급속히 증가하고 있으며, 주 요인은 인슐린 비용이다. 

인슐린 증가세는 둔화되는 반면 새로운 DPP-4i, GLP-1RA, and SGLT2i 와 같은 새로운 치료법이 증가 중에 있다.

DPP-4i는 혈당조절에만 효능이 있을 뿐 아직 심혈관계에 대한 이점은 밝혀지지 않았음에도 가장 지출이 큰 항목이다.

 

문제는 지출이 늘어났음에도 불구하고 혈당조절 수준은 향상되지 않았다는 점이다 (Dennis  JM et al. 2019)

또한 심혈관계에도 이익인 SGLT2i 나 GLP-1RA와 같은 치료의 증가가 합병증을 막아주고 지출을 줄여줄진 불분명하다.

 

미국 내 당뇨병 유병률이 높게 유지될것으로 전망됨에 따라, 당뇨병 치료제의 비용은 치료법의 제공과 준수에  영향을 미칠것으로 예상된다. 추후의 연구에서는 당뇨병 관리 관련 health system의 비용을 고려하여 현재의 지출에 대한 더 세분화화된 조사가 필요하다.

 

 

 

 

 

Tandem Diabetes Care

Control-IQ: 작년 연말에 FDA 승인을 받은 가장 진보된 closed-loop 인공췌장 시스템이 2020년 1월 중에 출시 되었으며 미국 내 몇몇 환자들은 사용중에 있습니다. 현재 모든 기능이 다 오픈된건 아니며 2020년 중반부터 하나씩 추가 공개를 하여 스마트폰 앱으로 완전히 제어가능한 t:slim X2 펌프 시스템을 제공할 계획이라 합니다. 기존에 t:slim X2 펌프로 Basal-IQ를 사용하는 환자라면 새로운 펌프의 구매없이 소프트웨어 업데이트 만으로도 사용이 가능합니다.

t:sport mini-pump: Tandem의 새로운 패치형 펌프에 대한 FDA 신청을 2020년 중순에 신청할 예정입니다. 기존 펌프에서 화면을 빼 1/2의 크기이며 튜브가 짧아 이름에 걸맞는 sporty한 형태입니다. Control-IQ의 승인으로 탄력받아 긍정적인 결과가 예상됩니다.

 

Insulet OmpiPod

Omnipod Horizon: Omnipod 기반의 공식적인 closed-loop 인공췌장 시스템이 출시됩니다. 이미 작년에 스마트폰 기반의 Omnipod DASH 앱을 출시한바 있으며, Do-It-Yourself 로 비영리 인공췌장 시스템의 사용에도 협력한 Insulet인 만큼 올해는 공식적인 제품으로서 Omnipod Horizon의 출시가 더욱 기대됩니다.

 

Medtronic Diabetes

Advanced Hybrid Closed Loop (AHCL, 혹은 Minimed 780G): Medtronic의 최신 하이브리드 인공췌장 시스템인 670G에 이어 차세대 인공췌장인 Minimed 780G를 지난해 미국 당뇨병 학회 (ADA)에서 발표한 바 있습니다. 기존 670G의 목표혈당값이 120mg/dl에 71% 정상혈당이 었다면 780G는 100mg/dl 목표에 80% 라는 파격적인 목표를 내세웠습니다. 다른 특이점으론 블루투스(BLE)를 탑재하여 소프트웨어 업데이트가 쉬워진다는 점입니다. 회사가 2020년 4월에 목표했던 출시는 pivotal 임상시험의 종료가 올해 중반에도 어려울듯하여 더 연기 되겠지만, 여전히 연말까진 기대해 볼만 합니다.

 

Abbott Diabetes Care

FreeStyle Libre 2.0 FGM: 획기적인 크기와 calibration가 필요없어 빠른 상승세를 보이고 있는 FreeStyle Libre가 두번째 버전을 출시 예정입니다. 이번 버전은 블루투스(BLE)로 혈당 범위를 벗어나면 경고를 주는 기능이 추가된다고 하여 좀더 편리한 사용이 예상됩니다. 현재 FDA가 이 제품을 타사 펌프 제품과 호환 가능한 iCGM으로 지정할지 여부를 고려중이라는 이야기가 있습니다. 하지만 기존 iCGM 제품들 처럼 실제 혈당값을 알려주는게 아니라서 쉽지는 않을것으로 보입니다.

 

Dexcom 

G7 CGM: 명불허전 CGM 모델인 Dexcom의 G#의 차세대 제품이 2020년에 출시예정입니다. 구글 Verily와의 수년간의 협업으로 더욱 기대가 되는데, 알려진 기능은 다음과 같습니다.

1) 사용기간 10일에서 14-15일로 연장 및 G6와 마찬가지로 calibration 필요 없음, 2)트렌스 미터가 통합되어 한번쓰고 완전히 쓰고 버릴수 있는 구조, 3) 기존에 비해 훨씬 얇아진 디자인, 4) Dexcom이 알고리즘 회사인 TypeZero를 인수함에 따라 예상되는 인슐린 주입 보조 기능

아직 FDA에 제출되진 않았지만 회사는 G7을 늦은 2020년엔 출시하고 2021년엔 본격적으로 제품을 상용화 하겠다고 밝혔습니다.

 

Eversense

이식형 CGM: 유일한 이식형 연속혈당측정기 제조사로서 현재 90일의 사용기간을 가진 제품이 출시된 상태입니다. 올해는 calibration시간이 자유로운 새로운 모바일 앱이 출시될 예정입니다. 또한 2020년엔 사용기간이 180일로 2배 연장된 제품의 출시가 기대됩니다. 

 

Afrezza

BluHale Pro: 흡입형 인슐린 제조사인 Afrezza에서 의료진들이 환자의 치료 교육을 더욱 쉽게 해줄 블루투스 기반의 어뎁터를 출시합니다. 이로서 환자의 인슐린 흡입 상태와 기록을 의료진이 포괄적으로 그리고 세밀하게 확인하능해진다고 합니다. 또한 소아를 대상으로한 3상 시험을 현재 계획중이라고 밝힌바 있습니다.

 

Xeris

Gvoke HypoPen: 2019년 가을 Xeris는 세계 최초의 '안정한 액상형 응급 글루카곤 펜'을 FDA 승인받았습니다. 2020년 7월에 1회용 펜이 출시될 예정이며, 그 전에 주사기형태로 먼저 출시가 된다고 합니다.

 

Lilly

일회용 디지털 인슐린펜: 2019년 12월 FDA는 Lilly의 1회용 인슐린 펜을 승인했습니다. 이 제품은 Dexcom CGM과 통합되는 디지털 플랫폼에 연결되는것을 목표로 개발됐으며, Lilly와 Dexcom 모두 서명을 했기에 FDA가 플랫폼에 대한 승인만 한다면 바로 출시가 될 예정입니다. Lilly는 또한 오는 2020년 2월의 당뇨병기술학회 (ATTD)에서 디지털 플랫폼을 바탕으로 예방가능한 포괄적 관레 프로그램에 대한 발표를 할것으로 예고했습니다. 이번 학회에 참석 예정인데 기대가 되네요.

초속효성 Lispro 인슐린 (URLi): 새로운 식사 인슐린이 출시될 예정입니다. 기존의 Humalog와 같은 제품이 작용하는데 까지 27분 정도가 걸리는데 반해, 이 새로운 인슐린은 13분 밖에 걸리지 않는다고 하며 식후 혈당 스파이크를 획기적으로 줄일 수 있다고 합니다. Lilly는 URLi를 2019년에 미국 유럽 일본의 규제기관에 승인 요청을 제출했으며 2020년엔 모두 승인이 될것으로 예상됩니다.

Hybrid closed-loop 패치 펌프: Lilly가 여전히 독자적인 hybrid closed-loop 인공췌장형 패치펌프를 개발중이라고 합니다. 물론 2020년에 출시는 어렵겠지만 올핸 중간 현황의 공개 정도를 기대합니다.

 

 

 

*본 글은 아래 healthline의 기사를 토대로 작성되었습니다.

https://www.healthline.com/diabetesmine/diabetes-tech-spectations-2020?fbclid=IwAR2Cm5FmARVb6fdjaVZWEmKmwVma8-ErUP8dqFnbONmiKTvwEouM2XbsqcI

Author : Tuomas Haarnoja*, Aurick Zhou*, Kristian Hartikainen*, George Turker, Sehoon Ha, Jie Tan, Vikash Kumar, Henry Zhu, Abhishek Gupta, Piter Abbeel, Sergey Levine 
Paper Link : https://arxiv.org/abs/1812.05905

0. Abstract

  • Model free deep RL은 샘플링 효율이 매우 낮고, 수렴이 불안정함.
  • 이를 극복하고자 maximum-entropy (MaxEnt) RL 프레임워크에 기반한 Off-poliy actor-critic 알고리즘을 제안함

1. Introduction

  • Real-world 에서의 model free RL의 단점
    1. 샘플링 비효율
    2. Hyperparameter에 민감
  • On-policy는 샘플을 업데이트 할때마다 버리므로 샘플 효율이 높은 off-policy가 좋으나,
  • Q-learning기반 알고리즘의 단점 존재
    1. 고차원 NN 썼을때 불안정하며 수렴이 잘 안됨
    2. Continuous space에서 악화
  • "어떻게 하면 Continuous space에서도 샘플 효율적이고 안정하게 만들까?"
  • MaxEnt를 RL에 적용 (MaxEnt RL) 하면 탐색과 강건성을 향상시키나 여전히 on/off policy문제 존재
  • Soft actor-critic (SAC): off-policy MaxEnt actor-critic 알고리즘 고안
  • 샘플 효율적이면서도 안정하며 Continuous space에서도 잘 동작

2. Related Work

  • Actor-critic (AC)는 actor와 critic모두 수렴 보장이 안되며 동시에 최적화 필요
  • 기존의 AC에도 Entropy (Ent)를 추가한 접근들이 있으나 Ent를 regularizer로 사용 (=Policy의 잘못된 학습 억제)
  • On-policy이므로 샘플 효율에 있어 한계
  • 이에 DDPG (https://arxiv.org/abs/1509.02971) 와 같은 off-policy 등장
  • But! 한계 존재
    1. Deterministic + Q-function은 안정화 어려움
    2. 복잡한 task에선 성능 낮음
  • Off-policy이면서도 stochastic하고 MaxEnt RL프레임을 사용하는 알고리즘 필요
  • 저자의 이전 논문 Soft Q-learning (https://arxiv.org/abs/1702.08165) 에선 MaxEnt RL + Q-function의 soft-Q function을 도입하고 이를 따르는 (아래 그림의 오른쪽), $expQ$를 energy function으로 하여 energy based model 분포를 policy로 사용하는 알고리즘을 제안

  • Entropy의 도입으로 강건하고 안정하나, DDPG의 성능을 넘지 못하며, policy의 수렴이 posterior를 얼마나 잘 근사 했는가에 의존하며, continuous space에서 별도의 샘플링 기법이 필요하다는 한계 존재
  • 제안한 SAC는 policy의 parameterization에 관계없이 policy가 항상 optimal에 수렴하며 성능도 DDPG를 큰 차이로 앞서며 continuous space에서도 쉽게 사용 가능

3. Preliminaries

  • 기존 RL의 목적은 reward expection의 합을 최대화 하는 policy를 찾는 것

  • MaxEnt RL의 목적함수와 policy

Entropy term이 추가. alpha는 기존 RL term과 entropy term간의 조절 위한 temperature parameter

  • MaxEnt RL의 장점
    1. policy의 탐험을 하면서도 동시에 보상을 최대화
    2. 하나의 optimal이 아니라 near optimal을 여러개 배울 수 있어 강건함

4. From Soft Policy Iteration to Soft Actor-Critic

4.1. Soft Policy Iteration (Tabular case)

  • Policy iteration: policy evaluation과 policy improvement를 번갈아 진행하여 Q-function의 수렴과 policy의 수렴을 반복해 학습하는 방법
  • Soft Bellam euation: policy를 evaluation하는 기존의 Bellam equation에 policy entropy의 개념을 추가

  • 행동이 유한하다는 가정하에, 위 soft Bellam backup을 반복하면 soft Q-function으로 수렴

  • 이 step을 통해 어떠한 policy에 대해서도 Soft Q-function을 구할 수 있음
  • policy improvement에선 Energy based model 의 개념을 도입 (Envergy based model에 대해선 Yann Lecun 교수님의 저서 참조, http://yann.lecun.com/exdb/publis/pdf/lecun-06.pdf)
  • KL Divergence를 사용하여 exp(Q)를 parameterized된 policy set에 information projection을 하여 새로운 policy 도출

  • 일반적으로 intractable한 partition function Z는 추후 설명할 SAC의 목적함수에서 KL Divergence를 최소화 하는 gradient descent 과정에서 무시됨
  • 이때, 행동이 유한하다는 가정 하에, 위 최적화를 만족하는 새로운 policy는 이전 policy에 비해 항상 높은 기대보상을 가짐

  • Soft policy iteration: 위 soft policy evaluation과 soft policy improvement의 과정을 parameterized policy set 내의 임의의 policy에 대해 번갈아 진행하면 policy set 내의 optimal MaxEnt policy로 수렴

  • 위 Lemma와 Theorem은 tabular space에서 증명됨
  • continuous space에서 적용하려면 NN과 같은 function approximator가 필요하지만 수렴에 너무 큰 계산량을 요구하는 한계 존재

4.2. Soft Actor-Critic (function approximator)

  • Soft policy iteration는 수렴을 위해 evaluation과 improvement를 반복하는것이 continuous space에선 비현실적
  • 따라서 같은 프레임워크에서, Soft Q-function(evaluation)과 policy(improvement)를 NN으로 근사하고 두 network를 Stochastic gradient descent 하는것으로 대체
  • 첫번째 SAC 논문(https://arxiv.org/abs/1801.01290) 에서는 Soft Value function, Soft Q-function, policy 셋을 모두 parameterize했으나, 이 두번째 SAC 논문에서는 Soft Q-function와 policy만 근사
  • Replay buffer (~D)에 저장된 (state, action) pair 데이터를 가져와 Soft Q-function와 Target soft Q-function 을 계산하고, 이 차이(Bellman residual)를 최소화 하는것이 objective function

  • 이때  은 Target Soft Q-function
  • 위 objective의 Soft value function V 는 Soft Q-function으로 풀어 쓸수 있으며, 최적화로 Stochastic gradient descent(SGD)를 사용하기 위해 objective function의 gradient를 구하면 다음과 같음

SGD를 사용하므로 Expectation은 제거 가능하다

  • 여기서 S,A,R,S'까지는 Replay buffer(D)에서 추출한 값이며, Soft Target에서의 A'는 현재의 policy에 따름
  • policy의 objective function은 위 tabular policy improvement단계에서의 KL divergence 에 Replay buffer (D)에서 추출한 State 와 현재 policy를 사용

  • KL-divergence는 다음과 같이 expectation 꼴로 다시 쓸 수 잇음

출처 https://medium.com/activating-robotic-minds/demystifying-kl-divergence-7ebe4317ee68

  • 이를 다시 policy의 loss function에 적용하면 아래와 같이 쓸 수 있음

log partition function은 상수이므로 생략하고 alpha 추가. Q의 S_t는 오타 -> a_t

  • Expectation은 intractable하므로 보통 이를 위해 Monte Carlo Sampling을 사용 
  • 하지만 gradient와 두번째 Expectation 모두 policy의 파라메터에 의존하므로 Monte Carlo sampling을 하면 연산 그래프가 끊어져 back-propagation이 불가능. 이에 reparameterization trick을 사용

 

Sampling이 NN 파라메터와 무관해져 gradient를 계산 가능

  • 최종적으로 policy objective의 gradient는 다음과 같음

 

 

5. Automating Entropy Adjustment for Maximum Entropy RL

  • Entropy에 대한 temperature를 H.P. 로 두기엔 학습에 따라 바뀌는 reward에 상응하는 적절한 값을 찾기가 어려움
  • 또한 optimal이든 아니든 동일하게 entropy를 최대화 하므로 exploration에도 부적합
  • "temperature alpha를 H.P.가 아닌 dual optimization contraint로 하여 autotunning 되도록 바꾸자"
  • MaxEnt RL을 contrainted optimization 문제로 바꿔쓰면 다음과 같음

H 는 엔트로피의 lower bound. Policy가 deterministic하여 upper bound는 필요 없음

  • 이를 Lagrangian을 사용하여 dual problem으로 나타내면 다음과 같으며, 이때 Lagrangian multiplier인 alpha는 temperature parameter에 해당함

  • 이를 dynamic programing으로 policy가 최적이라 가정하고 alpha를 최적화하는 step과 alpha가 최적이라 가정하고 policy를 최적화 하는 step을 반복할때, alpha의 optimal problem은 step에 관계 없이 항상 다음과 같음

증명: https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html#sac-with-automatically-adjusted-temperature

 

6. Practical Algorithm

  • 알고리즘의 실제 적용에선 TD3에서 value기반 알고리즘들의 policy improvement 단계의 positive bias문제를 해결하기 위해 사용한 것과 같은 맥락으로, 2개의 soft Q-function을 독립적으로 학습하여 더 작은 Q를 사용하며 이는 복잡한 task에서의 성능과 학습속도를 향상시킴
  • Duality 적용한 접근은 convexity를 가정했을때 수렴성을 보여줌 (Boyd & Vandenberghe, 2004)
  • 이 가정은 NN과 같은 비선형 근사함수에는 해당하지 않지만 실질적으론 사용 가능함
  • 이에 alpha의 목적함수는 다음과 같음

  • 지금까지의 SAC 알고리즘의 pseudocode는 다음과 같음
  • SAC는 policy를 바로 gradient로 업데이트 하는 방법이지만, 기존 actor-critic기반 on-policy learning과 달리 replay buffer의 상태 데이터로 학습이 가능하여 off-policy learning에 해당함

 

7. Experiment

  • 실험 결과 거의 모든 continuous action space의 환경에서 기존 off-policy 및 on-policy 알고리즘들보다 빠른 학습속도와 높은 성능을 보임
  • 특히 환경이 복잡할수록, 큰 batch를 사용하는 on-policy 방법에 비해 SAC가 빠른 초기 학습속도를 보여줌

  • SAC 학습의 효율성 덕분에 model-free RL 알고리즘임에도 불구하고 real-world환경 (locomotion & dexterous manipulation) 에서도 바로 학습가능한것을 실험으로 증명함

[22.6.25 수정] 최근 Google Deepmind에서 Mujoco를 인수하여 무료로 배포하였고 몇달이 지난 지금 기대했던대로 python 바인딩을 해주었다. 이에 맞게 포스팅을 업데이트하였다. (이전 설치방법들은 포스팅의 아래쪽에 그대로 있음) 

 

현재 집필중인 meta-learning 도서의 코드 마무리를 위해, 윈도우, 리눅스, 맥 모두에서 알고리즘들이 잘 동작하는지 테스트 하던 중, 몇달 사이 딥마인드에서 mujoco의 python binding을 해두었단 사실을 알게되었다.

항상 mujoco-py 때문에 번거로웠는데 이젠 라이센스조차 필요없이 심플하게 사용가능한 python 패키지가 되었다.

 

 1. OpenAI gym & MuJoCo 설치

pip install gym==0.24.1
pip install mujoco==2.2.0

(윈도우)

윈도우는 다음 패키지를 추가로 설치해준다.

pip install imageio>=2.1.2

 

2. mujoco 패키지 설치 확인

프롬프트에서 python을 입력해 python을 실행 한 후, 아래 코드를 실행시킨다.

import random
from gym.envs.mujoco.half_cheetah_v4 import HalfCheetahEnv
env = HalfCheetahEnv()

for _ in range(100):
	env.render()
	action = [random.randint(0,1) for _ in range(env.action_space.shape[0])]
	_, _, _, _ = env.step(action)

env.close()

 

잘 설치가 되었으면, 랜덤하게 생성된 action에 의해 100step 동안 치타가 꿈틀거리는것을 볼 수 있다.

 

 

 


아래는 예전 포스팅

2년쯤 전에 어떻게 설치해서 사용하던 MuJoCo인데 최근 새로나온 Meta RL 알고리즘을 구현 해보고자 실행하니 사용기한이 만료됐다고 하여 새로 설치를 해야했다. 작년엔 연구실에서 만든 가상환자 gym 환경을 써온터라 잊고 있었는데 mujoco student licence는 1년마다 갱신을 해줘야 한다. 사실 DQN A2C 가 나올 시기만 해도 cartpole이나 간단한 Atari 환경에서 알고리즘 테스트가 주로 이루어졌다면, 불과 1~2년 사이에 RL이 크게 발전해서 이젠 복잡한 3D 환경에서의 알고리즘 검증이 필수가 되고 있다.

 

[21.12.02 수정] 최근 Google Deepmind에서 Mujoco를 인수하여 무료로 배포하였고 이에 맞게 포스팅을 업데이트하였다. (이전 설치방법은 포스팅의 아래쪽에 그대로 있음) 

 

1. 무료 라이센스 발급

https://www.roboti.us/license.html에 접속해서 파란색 Activation key 링크를 눌러 무료 라이센스파일 'mjkey.txt'를 다운 받는다

 

License

Free license DeepMind has granted Roboti LLC license to provide an unlocked activation key for legacy versions of MuJoCo (2.0 and earlier). This key is available to everyone on the terms of the free license below. It expires on October 18, 2031. Activation

www.roboti.us

 

2. MuJoCo 다운로드

이번엔 https://mujoco.org/download 이 링크로 들어가 파란색 Windows 버튼을 눌러 MuJoCo 파일을 다운받는다.

 

MuJoCo — Download

Free, unrestricted, precompiled binaries are available under the Apache 2.0 license. The latest version of MuJoCo is 2.1.0. Binaries for platforms other than x86-64 are not yet available. If you require these, please let us know by filing an issue on GitHu

mujoco.org

 

3. MuJoCo 엔진 설치

받은 파일의 압축을 풀면 mujoco210이란 폴더가 생긴다. 이 폴더를 C:\Users\[본인계정] 에 ".mujoco" 란 새폴더를 만들고 그 안에다 옮긴다. 다운받은 무료라이센스 키 mjkey.txt 를 C:\Users\[본인계정]\.mujoco 에 옮긴다.

 

잘 설치 됐는지, 그리고 라이센스가 정확한지를 확인하기 위해 프롬프트에서 해당폴더로 이동하여

C:\Users\[본인계정]\.mujoco\mujoco210\bin> simulate ../model/humanoid.xml

를 실행해본다. 설치가 잘 됐으면 MuJoCo 실행과 함께 힘없이 쓰러지는 humanoid를 볼 수 있다.

 

4. mujoco-py 설치

MuJoCo를 python에서 실행하려면 OpenAI에서 만든 mujoco-py를 설치해주어야 한다.

우선 프롬프트 창에 SET PATH=C:\Users\[본인계정]\.mujoco\mujoco210\bin;%PATH%; 를 입력해 path를 설정해준다.

프롬프트 창에서 pip install mujoco-py를 입력해 설치한다.

 

4. mujoco-py 동작 확인

프롬프트에서 python을 입력해 python을 실행 한 후, 아래 코드를 한줄 씩 실행시킨다.

import mujoco_py
import os
mj_path = mujoco_py.utils.discover_mujoco()
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)

print(sim.data.qpos)
# [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

sim.step()
print(sim.data.qpos)
# [-2.09531783e-19  2.72130735e-05  6.14480786e-22 -3.45474715e-06
#   7.42993721e-06 -1.40711141e-04 -3.04253586e-04 -2.07559344e-04
#   8.50646247e-05 -3.45474715e-06  7.42993721e-06 -1.40711141e-04
#  -3.04253586e-04 -2.07559344e-04 -8.50646247e-05  1.11317030e-04
#  -7.03465386e-05 -2.22862221e-05 -1.11317030e-04  7.03465386e-05
#  -2.22862221e-05]

잘 설치가 되었으면, 위와같이 전부 0이던 휴머노이드의 state가 sim.step() 이 후엔 바껴있는것을 확인가능하다. 

 


아래는 더 예전 포스팅

1. 무료 라이센스 발급

https://www.roboti.us/license.html에 접속해서 MuJoCo Personal License:1 year의 파란색 창에 개인 정보를 입력하고 license를 요청한다.

 

MuJoCo

License types:     Trial     Personal     Institutional MuJoCo Trial License: 30 days We invite you to register for a free trial of MuJoCo. Trials are limited to one per user per year. After registration you will receive an email with your activation key a

www.roboti.us

그럼 하루 안에 personal account가 메일로 발급된다.

이를 가지고 다시 위 링크에 접속해 MuJoCo Personal License:1 year의 빨간색 창에 발급된 account number와 computer id를 입력하며 register computer를 클릭해 본인의 컴퓨터를 등록한다. computer id는 빨간색 창에서 win64 를 클릭해 프로그램을 다운받아 실행하면 알 수 있다.

 

그럼 메일로 라이센스 파일인 mjkey.txt 가 바로 발급된다. (1년짜리 이므로 발급일을 대충 기억해 두자)

 

2. MuJoCo 다운로드

이번엔 https://www.roboti.us/index.html 이 링크로 들어가 빨간색의 MuJoCo 창에서 mjpro 150 win64를 다운받는다.

 

MuJoCo

MuJoCo 2.0 was released on October 1, 2018. The list of changes is below. MuJoCo    (formerly MuJoCo Pro) MuJoCo is a dynamic library with C/C++ API. It is intended for researchers and developers with computational background. It includes an XML parser, mo

www.roboti.us

2.0.0의 최신 버전도 있지만, 아쉽게도 MuJoCo는 더이상 윈도우를 지원 안해 1.5.0 를 받아야 한다. (사용엔 큰 문제 없다.)

 

3. MuJoCo 엔진 설치

받을 파일의 압축을 풀면 mjpro150이란 폴더가 생긴다. 이 폴더를 C:\Users\[본인계정] 에 ".mujoco" 란 새폴더를 만들고 그 안에다 옮긴다. 또한 메일로 발급받은 mjkey.txt 를 C:\Users\[본인계정]\.mujoco\mjpro150\bin 안에다 옮긴다.

그리고 C:\Users\[본인계정]\.mujoco 에도 복사한다.

 

잘 설치 됐는지, 그리고 라이센스가 정확한지를 확인하기 위해 프롬프트에서

C:\Users\[본인계정]\.mujoco\mjpro150\bin> simulate ../model/humanoid.xml

를 실행해본다. 설치가 잘 됐으면 힘없이 쓰러지는 humanoid를 볼 수 있다.

 

4. MuJoCo-py 설치

프롬프트 창에 SET PATH=C:\Users\[본인계정]\.mujoco\mjpro150\bin;%PATH%; 를 입력해 path를 설정해준다.

https://github.com/openai/mujoco-py/archive/1.50.1.0.zip 이 링크에서 설치 파일을 받아 C:\Users\[본인계정]\.mujoco 에 압축을 풀어준다. 설치를 위해 프롬프트에서

C:\Users\[본인계정]\.mujoco\mujoco-py-1.50.1.0> python setup.py install

을 실행해 설치를 마무리 한다.

 

4. MuJoCo-py 동작 확인

프롬프트에서

C:\Users\[본인계정]\.mujoco\mujoco-py-1.50.1.0> python examples\body_interaction.py

을 실행해 mujoco 화면이 정상적으로 팝업되는지를 확인한다.

 

 

+ Recent posts