상세 컨텐츠

본문 제목

[Advanced ML & DL Week1] World Models

심화 스터디/Advanced ML & DL paper review

by avril22 2022. 9. 15. 18:20

본문

작성자: 15기 우명진

 

논문: World Models

저자: David Ha, Jurgen Schmidhuber

논문 링크: https://s3.us-west-2.amazonaws.com/secure.notion-static.com/fdacfa12-f2d3-4b69-9550-35ecf93503e3/1803.10122.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20220914%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20220914T044303Z&X-Amz-Expires=86400&X-Amz-Signature=fe95db6aa23a94bb088bf7252d379e636e09fd3be7fd7636f0f6d6b3b1dd81a6&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%221803.10122.pdf%22&x-id=GetObject 

 

 

 

 


요약

📍뇌인지과학 개념을 적용하여 강화학습 과제를 해결

📍VAE를 거쳐 저차원으로 압축된 latent vector z를 사용 
   Vision(V) / Memory(M) / Controller(C)

📍가상 environment인 dream이라는 방식 사용

 

 


1. Introduction

뇌는 세상을 이해할 때, 추상화된 컨셉과 관계를 통해서 이해한다.
실제 사물을 바라볼 때 시공간적인, 추상적인 부분을 이용한다. 
이렇게 학습한 정보들을 통해 세상을 이해하는 것 뿐만 아니라 어떤 action을 취할 것인지도 예측 가능하다.

 

 

위험에 처해있을 때 즉각적으로 반응하게 됨

선수들이 짧은 시간 안에 공을 칠 수 있는 것은 무의식적으로 공이 어디로 갈지 예측하기 때문이다.

선수들의 근육이 내부 모델 예측에 따라 적절한 시간과 위치에 따라 방망이를 휘두름

 


large RNN-based agents는 bottleneck(병목 현상)credit assignment problem(신용 할당 문제)이 있음

  • bottleneck: 한번에 처리할 있는 데이터의 양보다 처리할 있는 능력이 충분하지 않을 경우에 발생하는 문제
  • credit assignment problem: 강화학습에서는 가장 적절한 action 고려하는 것이 아니라 reward 통해서만 agent action 결정한다. 그렇기 때문에 agent reward 받았을 어떤 action 때문인지 없음

따라서 agent를 1) Large World Model2) Small Controller Model로 나눔 

1) Large World Model : agent's world model(unsupervised learning)

2) Small Controller Model : world model를 이용해서 수행할 task 선택

 

 

 


2. Agent Model

 

1) VAE(V) Model

 

- input: 연속적인 영상의 프레임

- 역할: 추상적이고 compressed된 input frame을 학습하는 것 

- 모델: simple Variational Autoencoder

  • 이미지 프레임을 small latent vector z로 바꿈 
  • small latent vector z로 학습하는 이유? 입력 데이터가 영상의 프레임이고 고차원이기 때문. 병목현상을 줄이기 위해서 특성을 잘 담고 있는 저차원으로 축소된 latent vector z를 사용하는 것이 효과적 

 

-ConvVAE

  • 특징: 기존 모델(input를 gray scale, 물체의 움직임을 표현하기 위해 여러 프레임 쌓음) 과 다르게 rgb를 그대로 이용, 하나의 프레임을 사용함
  • V모델을 통해 압축된 latent vector를 원본 이미지로 재구성이 가능함
  • latent vector를 조정하여 원본 이미지의 재구성에 미치는 영향력을 확인할 수 있음

 

 

 

 

2) MDN-RNN(M) Model

 

 

- 역할: 시간이 지남에 따라 어떤 상황이 발생하는 지를 예측함. 즉 미래 예측 

- 모델: Mixture Density Network combined with a RNN(MDN-RNN)

  • input: latent vector z, t단계에서 action a를 할 때 걸린 시간 , t단계에서 RNN의 hidden state h
  • output: t+1 단계에서의 latent vector z의 확률 분포

      P(zt+1 | at, zt, ht)

  • RNN의 결과값을 그대로 이용하는 것이 아니라, Mixture Density Network 단계를 거치는 이유? RNN의 output을 그대로 이용하면 deterministic한 z 값이 나옴. 그러나 실제 observation은 복잡하기 때문에 예측할 때는 stochastic하게 예측하는 것이 좋음.
  • MDN를 통해 probability distribution을 사용함
  • Temperature parameter(τ): 모델의 불확실성을 조정함
    • 높을수록 예측할 frame의 변동성이 커지는 것임 
    • parameter를 조정하여 좀 더 어려운 observation을 생성할 수 있으며, 이를 학습할 경우 더 어려운 문제를 풀어내는 agent를 학습할 수 있음

 

 

- 활용: sequence generation problems

  • generating handwriting & sketches : input이 주어지면 단일 값이 아니라 확률적으로 구성 

sketchRNN

 

 

 

 

3) Controller(C) Model 

 

- 역할: rollout of the environmnet에서 agent의 보상을 최대로 하기 위한 action을 선택하는 것 

- 모델: Controller Model

  • V와 M에 비해서 심플하고 작은 모델
  • V와 M과 분리해서 훈련을 함
  • 단일 layer 선형 모델 
  • V 모델에서 생성한 latent vector v와 M모델의 hidden state h를 연결하여 가중치를 곱한 후 bias를 더하여 action을 도출해내는 방식 

        at = Wc [zt ht] + bc

 

 

 

 

4) Putting V, M and C together

  • parameter가 많은 V와 M 모델은 GPU accelerator를 이용한 역전파 알고리즘으로 효율적으로 학습
  • C 모델은 parameter가 적기 때문에 이를 최적화 하기 위해 Covariance-Matrix Adaptation Evolution Strategy를 사용하였음.
    • 최대 수천 parameter가 존재하는 solution spaces에서 작동을 잘함
    • 다수의 CPU로 다수의 rollouts를 작동하며 단일 machine에 있는 parameter 조정 
def rollout(controller):
’’’ env, rnn, vae are ’’’
’’’ global variables ’’’
obs = env.reset()
h = rnn.initial_state()
done = False
cumulative_reward = 0
while not done:
z = vae.encode(obs)
a = controller.action([z, h])
obs, reward, done = env.step(a)
cumulative_reward += reward
h = rnn.forward([a, z, h]

 


3. Car Racing Experiment

 

1) World Model for Feature Extraction

- 목표: 자동차를 도로 밖으로 나가지 않고 얼마나 잘 나가는가

- 보상: agent가 최소한의 시간으로 최대의 타일을 방문할 때 

- track은 무작위 생성

- action의 종류: steering left/right, acceleration, brake -> 모두 continuous action

 

 

2) Procedure

 

latent vector를 조정하면서 원래 이미지에 어떻게 영향을 미치는지 확인할 수 있음

 

 

 

3) Experiment Results

 

3-1) V 모델만 사용했을 때

  • observation에 대한 representation만 잘했더라도 V모델로 agent가 운전을 잘하는 좋은 성능을 보임 (632 ± 251)
  • input: latent vector z만을 사용 
  • Controller를 추가하였을 때 성능이 개선됨  (788 ± 141)
  • 트랙을 비교적 잘 따라가지만, 왔다갔다함 

 

 

3-2) V 모델과 M 모델을 모두 사용했을 때

  • 다음 모델 예측하여(h) agent가 취해야할 다음 액션을 잘 예측함
  • V 단일 모델보다 더 부드럽게 주행함 

 

 

 

 

4) Car Racing Dreams 

 

Dream

: World Model이 미래를 modeling할 수 있기 때문에 가상의 시나리오를 생성

 

  • sample zt+1, use it as the real observation
  • 모델을 통해 가상의 시나리오 구축한 후, Controller에 태워서 가상 환경에서 주행함 

 

 


4. VizDoom Experiment

1) Learning Inside of a Dream

 

- 목표: agent가 몬스터들의 불덩이를 피해서 최대한 오래 살아남는 것 

- 보상이 없이 오래 살아남는 것이 포인트

- 각 rollout 환경: 최대 2100 time steps(~60 seconds)

   -> task solved : 100개의 rollouts의 평균적인 survival time이 750 time steps(~20 seconds) 이상일 때

 

 

 

2) Procedure

- car racing environment와 차이점

  -> M의 역할다음 observation 예측 & 게임이 끝났는지 유무(binary event)를 추가로 예측

 

 

3) Training Inside of the Dream

  • C(Controller): dream environment에서 M으로 생성된 불덩이를 피하는 방법을 학습함

    - virtual environment에서 ~900 time steps를 기록 

 

 

  • M(RNN-based model): 불덩이를 쏘는 몬스터를 생성하는 것을 학습 

    - random의 raw image를 통해서 게임의 필수인 시뮬레이션 하는 방법을 학습함 

     ex) agent가 멀리 이동하려고 한다면, 벽 너머로 가지 않도록 차단하는 학습 

     ex) 불덩이의 위치 추적 

     ex) agent가 불덩이에 의해서 죽었는지의 여부

 

 

  • 가상 환경에서 불확실성을 늘릴 수 있어서 dream에서 환경을 더 어렵게 만듦. 

     - Temperature Parameter(τ)를 이용하여 불확실성이 증가하여 더 어려운 environment

     - 더 어려운 환경에서 학습할수록 더 좋은 성능의 agent (불덩이가 비교적 예측가능해짐)

 

 

 

4) Transfer Policy to Actual Environment

 

3) Dream RNN에서 학습한 agent를 실제 ViZDoom environment에 적용

 

      - ViZDomm environment에서 ~1100 time steps를 기록 (> 가상 환경의 ~900 time steps)

 

    -> 불확실성이 더 많은 가상 환경에서 잘 버텼기 때문에 실제 환경에서는 더 좋은 성능을 낼 수 있음 

 

 

 

5) Cheating the World Model 

M model의 Temperature parameter τ를 조정하여 실제 환경에서 스코어 비교  가능

  • temperature τ가 커질수록 불확실성이 커진다는 의미
  • 불확실성이 커질수록 C model이 예측하는 것이 점점 어려워짐 
    • 불확실성이 너무 커지면 agent가 학습을 거의 못하는 문제가 발생할 수 있음 
  • 그러나 어려운 환경에서 학습하여 실제 스코어는 점점 높아지는 것을 확인 가능 

 

 


5. Iterative Training Procedure

 

더 복잡한 환경에서 iterative training procedure이 필요함

  •  step 2에서 Controller가 world model를 개선할 수 있는 환경을 찾기 위해 필요함 
  • M은 MDN-RNN이기 때문에, 즉 다음 프레임을 위해서 확률 분포를 modeling하기 때문에, poor job을 하면 training loss function을 이용할 수 있음 
  • iterative training procedure은 다음 단계의 observation xdone 뿐만 아니라 actionreward도 예측하도록 요구됨
  • 이는 M model에게 어려운 task를 요구할 수 있음
    • ex) M model이 motor skill를 타는 방법을 배우게 된다면, C model은 학습하지 않더라도 walking skill을 알 수 있음
    • walking skill ⊂ motor skill 
    • world model에서 motor skill를 이미 학습하였기 때문에, C model은 방향을 바꾸는 등의 고차원적인 skill 학습 가능 

 

Iterative Training은 C-M model이 자연적인 계층적 방법으로 학습하게 함 

 

 


결론

 

📍 뇌인지과학 개념을 적용하여 강화학습 과제를 해결

📍 VAE Model를 통해 저차원으로 축소시킨 latent vector z를 사용하여 controller의 모델 크기를 줄였다

📍 MRN-RNN을 통해서 미래의 observation을 예측할 수 있다

📍 Dream이라는 가상 environment를 통해 학습할 수 있다

관련글 더보기

댓글 영역