티스토리 뷰

keep9oing

강화학습과 latent space

HTS3 2020. 2. 14. 00:50

#

요즘 자주 읽는 논문들이 대체로 로봇 주변의 상황을 LSTM같은 신경망으로 인코딩 한 후에 그 latent space에서 강화학습을 하게되는 방식을 사용하는 것들이었다. 나는 왜 raw 데이터를 바로 쓰지않고 encoding 과정을 거치는지, 그리고 그게 어떻게 상황을 encoding 할 수 있는 것인지에 대해 잘 와닿지 않았는데, CS 285의 Model based learning에 관한 강의를 들으면서 많은 이해를 할 수 있었다. state encoding이 필요한 이유를 처음부터 설명하려면 강의 전체를 완전히 복기해도 모자를 정도로 길어지고, 강의 정리를 위한 시리즈는 현재 준비 중이기 때문에 오늘 포스팅은 결론적인 측면, 그리고 추상적 이해 관점에서 많이 서술하게 될 것 이다. 해당 강의가 궁금하다면 링크를 참조. CS285:Model-based reinforcement learning

 

대략적인 흐름

#

이런 작업을 거치는 가장 큰 이유는 2가지가 있다.

 

1. image이상의 복잡도를 가진 input이 들어오면 처리해야하는 차원의 수가 너무 크다.

2. 일반적으로 로봇은 자기 주변의 state를 완벽히 observe할 수 없다.(partially observable)

 

[1]

영상이나 이미지에있는 모든 정보가 필요하지 않기 때문에 강화학습에서 사용할 Model의 uncertainty를 너무 커져버리게 한다. 여기서 가장 필요한 정보를 가지는 데이터 축에 전체데이터들을 투영거나(PCA) 주된 특성 자체를 신경망을 통해 추출해 내는 feature extraction을 통해 좀 더 저차원의 필요한 sate dimension을 가지고 강화학습을 하겠다는 취지가 된다. 논문들에서는 이런 내용이 딱히 없기 때문에 좀 뇌피셜로 하는것 아닌가란 생각이 들었는데 강의를 들으면 수학적 관점에서 논리적으로 서술해주기 때문에 궁금하면 위 링크를 참조.

 

 [2]

로봇은 주변의 상황 전체를 절대 알 수 없다고 봐도 무방하다. 사람조차 우리 주변에서 일어나는 일은 사람이 인지할 수 있는 감각기관으로만 감지할 수 있기때문에 partially observable한 agent라고 취급할 수 도있다. 그런데 그런 사람이 어떻게 주변상황에 맞춰 보행을하고 스포츠같은 굉장히 복잡한 행위를 할 수 있을까. 주변의 변화를 감각기관을 통해 받아들이고 그 observation을 머리속에서 일정한 상황에 대한 space로 옮겨와 내 행동을 결정하게 된다. 예를 들면 사람이 길을가다가 뛰어오는 앞사람을 보고 빈자리로 피하는 것도, 머리속에서 모든 정보를 단위별로 처리하여 의사 결정을 하는 것이 아닌 길을 걸어다니며 발생할 수 있는 상황들에 대한 space에서 내가 할 행동을 머리속으로 도출해 낸 것 과 같은 일이라고 볼 수 있다. 이는 전체 상황에서 앞으로 일어날 일을 예측하는데 사용할 뿐만아니라 서로 다른 센서의 인풋간의 관계를 뉴럴넷으로 표현해내는 데에도 좋은 효과가 있다.

 

복잡한 상황을 좀 더 작은 space인 latent space로 인코딩하여 상황에 대한 판단을 수행

#

이런 latent space를 강화학습에 사용할 때 지금까지 배우고 또 논문에서 읽은 바로는 3가지가 있다.

 

1. raw sensor data에 대한 generative model(eg. Auto encoder)을 만들어 encoder 부분만을 가져와 강화학습에 사용하는 법

2. encoding을 담당할 네트워크를 따로 구성하고 그 자체를 value estimator로써 사용해 한번에 학습을 진행하는 법

3. PCA나 baysian metod  혹은 Maximum likelihood estimation같은 방법으로 Model을 표현하여 강화학습을 진행하는 법

 

#

강의에서 소개해준 논문 이다. raw image만을 가지고 컨트롤을 위한 latent space를 구성하는 것에 대한 논문인데 비쥬얼라이징을 진짜 예쁘게 해서 보고싶게 만든다. 시간나면 주말에 한 번 보려고 작정 중이다.

 

 

 

논문의 영상, latent space에 대한 시각화 뿐만아니라 latent space를 바탕으로 다음 space가 어떻게 될지까지 예측하는 것또한 보여준다.

 

 

#

앞으로 논문을 읽거나 강화학습으로 제어하는 논리를 진행할 때 많은 도움이 될 수 있던 강의였다.

'keep9oing' 카테고리의 다른 글

Vimrc  (0) 2020.04.12
RVO2 Library - 1 - 개요  (8) 2020.03.03
깃허브 gist 실험  (1) 2020.02.06
Control Bootcamp(1): Overview  (2) 2019.08.04
Motion planning - 3. 알고리즘들  (3) 2019.04.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30