layout: post
title: "RL"
categories: RL
tags: MBRL
comments: true
[CS294 - 112 정리] Lecture4 - Supervised Learning and Imitation
Table of Contents
{:.no_toc}
this unordered seed list will be replaced by toc as unordered list
{:toc}
Today’s Lecture
순차적 의사결정 문제(sequential decision problem) 정의
Imitation learning: 의사결정을 위한 supervised learning.
직접 모방하는 작업?
더욱 잘, 자주 동작하는 방법?
(Deep) imitation learning에서 최근 연구의 case studies.
Imitation learning에서 빠진 부분?
Reward 함수가 다음주부터 다뤄지는 이유
목표:
정의 및 표기법 이해.
기초적인 imitation learning 알고리즘 이해.
강점 및 약점 이해.
Terminology & notation
일반적인 지도학습(supervised learning) 은 다음과 같다:
입력: image
출력: category
중간: 학습하고자 하는 model, probability distribution(확률 분포)을 파라미터화하는 것 - conditional probability distribution(조건부확률분포).
입력: image(observation)
출력: categorical variable(label)
Theta: parameterized distribution의 파라미터
순차적 의사결정(Sequential decision making)문제 로 변경하기 위해 decision, sequential things를 추가
Sequential 부분: t, time step
decision 부분: a, 출력을 action으로 변경.
\pi$$가 discrete할 수도 있고, continous할 수도 있음.
* Discrete: real-value number
* Continous: Gaussian distribution(mean, variance)
observation: $$\sigma_t$$
action: $$a_t$$
policy: $$\pi_\theta (a_t \bar o_t)$$, conditional distribution
일반적으로는 parially observed하기에 $$o_t$$로 주어진다
만약 fully observed, $$o_t$$를 $$s_t$$로 대체.
state: $$s_t$$
State와 observation의 관계
Observation: state의 lossy consequence(손실된 결과)
State: 특성을 간단히 요약한 것이며 미래를 예측하는데 sufficient kind.
Fully obserbability: 컴퓨터는 입력을 pixel의 값으로만 구성, 물리적 특성을 가진 모멘텀 및 치타와 가젤의 위치를 알 수는 없다 - hidden
Partial obserbability : 치타가 차에 가려져 있다. state는 추론할 수 없더라도 위 상황과 동일(치타, 가젤의 물리적 특성은 존재하기 때문).
이러한 관계를 graph(모델, dynamic Bayesian network)로 그리면 다음과 같다:
각 시간에 따라 분리
policy($$\pi _ \theta$$) : o에서 a로 매핑, conditional probability distribution.
p($$s_{t+1} \bar s_t, a_t$$) : transition function, 현재의 state, action이 다음 state에 어떻게 영향을 끼치는 지 나타냄.
observation: state로부터 생성됨
State $$s_3$$는 $$s_1$$과는 독립적.
즉, 현재의 state만 있다면 추가적인(과거) 정보는 필요가 없다.
Imitation Learning
Behavior cloning
드라이버가 운전을 하며, 카메라 녹화 및 steering wheel을 encoding = data set.
이를 이용하여 supervised learning 을 통해 training(stochastic gradient descent 이용)하여 policy 도출.
잘 동작? 일반적으로 No!!!!!!
주어진 data set을 이용하여 진행하게 되면, 초반에는 잘 동작하지만 작은 차이가 발생해도 점점 차이가 커지며 발산하게 된다.
잘 동작하기 위해서 차량 앞에 추가적인 카메라를 설치하여 안정성 확보(수렴).
각 카메라에서 결정되는 action을 서로 보상하여 steering - policy를 stabilize.
노이즈를 추가(각 카메라)하고 이를 서로 보완하여 distribution 생성.
학습을 stabilizing controller(LQR)으로 모방 학습
더욱 잘 동작하게 만드는 방법:
문제점: 아래 사진과 같은 방법으로 모방 학습을 진행
p_{data}$$: 사람의 data set
해결책: $$p_{data} = p_{\pi_\theta}$$ 만들 수 있을까?
DAgger: Dataset Aggregation
목표: $$p_{data}$$ 대신에 $$p_{\pi_\theta}$$에서 training data를 수집
방법: $$\pi_\theta$$실행, 그러나 label $$a_t$$가 필요.
사람의 데이터 $$D={o_1,a_1, …, o_N, a_N}$$을 모아서(사람이 직접 운전을 해서) $$\pi_\theta (a_t \bar o_t)$$를 학습.
\pi_\theta(a_t \bar o_t)$$를 기반으로 실행하고, $$D_\pi = {o_1, …, o_M}$$ 을 얻는다.
D \leftarrow D \cup D_\pi$$ , 원래의 데이터셋과 합쳐준다(aggregate).
문제점 : 사람의 노동력(a lot of effort, right action)이 너무 많이 들어간다.
DAgger 문제점
많은 데이터(외부개입)없이 성능향상 할 수 있는 방법은 무엇인가?
DAgger는 distributional “drift”의 문제 를 다뤘다.
만약 우리의 모델이 좋다면, ”drift”가 발생하지 않을까?
전문가의 행동을 매우 정확하게 정확하게 모방해야 하지만, overfit은 안된다(generalization이 필요)
왜 전문가와 매칭하는 것이 실패할까?
Non-Markovian behavior
같은 경우라도, 이전에 무슨 일이 일어났는지 관계없이 똑같은 행동을 두번 할까?
인간의 시연들이 종종 부자연스럽다.
(Markov property를 이용한다면 과거의 상태에 독립적으로 현재상태에서 최적의 선택을 해야하는데, 사람은 그렇지 못하다) 과거의 state, 경험이 현재의 선택에 영향을 끼친다.
해결방법: 전체 history를 사용하는 방법(RNN, LSTM)
Multimodel behavior
같은 state가 주어지더라도 다양한 행동이 존재할 수 있다.
(사람은 가끔 왼손으로 운전했다가, 오른손으로 운전했다가, 슬펐다가 기뻤다가 등등 데이터에 영향을 주는 많은 (예측할 수 없는) 요인을 갖고 있다. 따라서 같은 상황에서도 다른 선택을 한다.)
해결책:
Output Mixture of Gaussians : 최종 행동을 뽑을때 하나의 Gaussian에서 뽑는 것이 아니라 여러개의 Gaussian을 합쳐서 뽑는다. 단순한 방법이다.
Latent variable model : 일반적으로 사용되긴 하지만 다소 복잡하다. Output은 하나의 Gaussian을 내뱉도록 그대로 두고, 중간에 random noise를 더하여 학습 시킨다.
Conditional variational autoencoder
Normalizing flow/realNVP
Stein variational gradient descent
Autoregressive discretization : setup이 약간 지저분하지만 Latent variable model보다는 단순하다. softmax를 통해 이산화된 확률분포 를 뽑아낸다. 이 확률분포를 통해 샘플링을 한다. 또다른 네트워크에 입력으로 넣어주고 다시한번 확률분포를 뽑아낸다. (첫번째 뽑아준 값을 condition으로 하여 두번째 값을 뽑아내는 셈이다.) 이 과정을 n번 반복하여 n dimension의 출력을 뽑아내게 된다.
Imitation learning: recap
종종(항상은 아니고) 이 방법만으로는 불충분.
문제: 분포 불일치.
다음과 같은 방법을 사용하여 잘 동작하게 할 수 있다.
Hacks (e.g. left/right images) - 꼼수를 사용한다
State trajectory 분포로부터 sampling
더 많은 On-policy 데이터를 추가(e.g. Dagger 사용)
더욱 정확하게 모델링
Case study
Trail following as classification
A Machine Learning Approach to Visual Perception of Forest Trails for Mobile Robots, Giusti et al., ‘16 논문에서는 Quadrotor을 모방 학습을 통해 숲속길을 따라 주행할 수 있게 하였다.
input으로는 Monocular RGB 카메라만을 사용하면서도 Distributional drift문제를 개선하였다. 이를 CNN을 통해 처리하였고, output은 왼쪽, 오른쪽, 앞 세가지의 label을 사용하였다.
해결 포인트는 End to End Learning for Self-Driving Cars에서 언급한것중 하나대로 카메라를 왼쪽, 앞, 오른쪽 세개를 사용하는 것이다. 사람이 머리에 카메라를 달고 숲속을 걸어다니며 약 20k 장의 학습데이터를 모았다.
Imitation with LSTMs
From virtual demonstration to real-world manipulation using LSTM and MDN, Rahmatizadeh et al., ‘16 논문에서는 박스 옮기는 로봇을 학습시키는 연구를 소개한다. 가상세계에서 로봇을 학습시킨 후 현실세계에서 테스트한다.
Non-Markovian behavior를 LSTM으로 다루었다. 또한 Mixture Density Network(MDN)을 사용하여 Multimodal behavior문제 또한 개선하였다.
Multi-Task manipulation with inexpensive robots
Vision-Based Multi-Task Manipulation for Inexpensive Robots Using End-To-End Learning from Demonstration, Rahmatizadeh et al., ‘17 논문은 바로 위에 언급한 논문의 저자와 본 강의의 교수가 함께 작성한 논문이다.
일단 제목에서도 나타내듯이 비교적 저렴한 비용으로 장비 셋팅을 하였다. 집게가 달린 6-axis Lynxmotion AL5D robot을 사용하였고, 로봇팔에 카메라를 달아 input으로 사용하였다.
Leap motion, Playstation controller까지 합쳐서 총 500달러가 들었다고 한다. 코드까지 공개하며 독자들에게 실험셋팅을 해볼 것을 권유하고 있다. 이러한 셋팅을 이용하여 사람이 로봇을 컨트롤 한 것을 학습하였다. 시도한 테스크는 물건을 집고 옮기고, 밀고, 닦고 등 다섯가지이다. 윗 논문과 마찬가지로 LSTM을 사용하였고, One-hot vector을 함께 넣어줌으로써 multi task를 제어하였다. 또한 VAE-GAN구조를 결합하여 좀더 안정적인 학습을 한다.
Other topics in imitation learning
Structured prediction:
번역 task에서, where are you?라는 질문에 I'm in work라는 대답은 적절치 않다. 따라서 work를 지우고 I'm in school로 바꾸어준다. 요점은, output간의 관계를 고려해서 의사결정에 도움을 준다는 것이다. DAgger을 이용해 더 적절한 답안을 찾아내도록 보완가능하다.