작성자: 15기 우명진
논문: World Models
저자: David Ha, Jurgen Schmidhuber
📍뇌인지과학 개념을 적용하여 강화학습 과제를 해결
📍VAE를 거쳐 저차원으로 압축된 latent vector z를 사용
Vision(V) / Memory(M) / Controller(C)
📍가상 environment인 dream이라는 방식 사용
뇌는 세상을 이해할 때, 추상화된 컨셉과 관계를 통해서 이해한다.
실제 사물을 바라볼 때 시공간적인, 추상적인 부분을 이용한다.
이렇게 학습한 정보들을 통해 세상을 이해하는 것 뿐만 아니라 어떤 action을 취할 것인지도 예측 가능하다.
위험에 처해있을 때 즉각적으로 반응하게 됨
선수들이 짧은 시간 안에 공을 칠 수 있는 것은 무의식적으로 공이 어디로 갈지 예측하기 때문이다.
선수들의 근육이 내부 모델 예측에 따라 적절한 시간과 위치에 따라 방망이를 휘두름
large RNN-based agents는 bottleneck(병목 현상)과 credit assignment problem(신용 할당 문제)이 있음
따라서 agent를 1) Large World Model과 2) Small Controller Model로 나눔
1) Large World Model : agent's world model(unsupervised learning)
2) Small Controller Model : world model를 이용해서 수행할 task 선택
1) VAE(V) Model
- input: 연속적인 영상의 프레임
- 역할: 추상적이고 compressed된 input frame을 학습하는 것
- 모델: simple Variational Autoencoder
-ConvVAE
2) MDN-RNN(M) Model
- 역할: 시간이 지남에 따라 어떤 상황이 발생하는 지를 예측함. 즉 미래 예측
- 모델: Mixture Density Network combined with a RNN(MDN-RNN)
P(zt+1 | at, zt, ht)
- 활용: sequence generation problems
3) Controller(C) Model
- 역할: rollout of the environmnet에서 agent의 보상을 최대로 하기 위한 action을 선택하는 것
- 모델: Controller Model
at = Wc [zt ht] + bc
4) Putting V, M and C together
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]
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 모델만 사용했을 때
3-2) V 모델과 M 모델을 모두 사용했을 때
4) Car Racing Dreams
Dream
: World Model이 미래를 modeling할 수 있기 때문에 가상의 시나리오를 생성
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
- virtual environment에서 ~900 time steps를 기록
- random의 raw image를 통해서 게임의 필수인 시뮬레이션 하는 방법을 학습함
ex) agent가 멀리 이동하려고 한다면, 벽 너머로 가지 않도록 차단하는 학습
ex) 불덩이의 위치 추적
ex) agent가 불덩이에 의해서 죽었는지의 여부
- 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 τ를 조정하여 실제 환경에서 스코어 비교 가능
더 복잡한 환경에서 iterative training procedure이 필요함
Iterative Training은 C-M model이 자연적인 계층적 방법으로 학습하게 함
📍 뇌인지과학 개념을 적용하여 강화학습 과제를 해결
📍 VAE Model를 통해 저차원으로 축소시킨 latent vector z를 사용하여 controller의 모델 크기를 줄였다
📍 MRN-RNN을 통해서 미래의 observation을 예측할 수 있다
📍 Dream이라는 가상 environment를 통해 학습할 수 있다
댓글 영역