딥러닝

[논문 리뷰] OpenAI Learning to Play Minecraft with Video PreTraining (VPT)

Rudi 2022. 6. 29. 00:19

 

2022-06-23 일 OpenAI 블로그에 새로운 글이 올라왔다.  Learning to Play Minecraft with Video PreTraining 라는 논문으로, MineCraft 를 비디오를 Pretraining 시켰다고 한다. 보통 Pretraining 하면 NLP의 텍스트 Language Modeling 으로 주로 사용되는데, 이번에 강화학습 분야에서 Pretraining을 시켰다고 한다. 그동안 강화학습에서는 Pretraining 자체를 할 수 없었는데, 그 이유는 환경에 대한 Universal Representation이 없기 때문이다. 예를 들어서, 지금 적고 있는 글은 다른 곳에서도 동일하게 사용될 수 있지만, 강화학습에서는, 로봇의 각도의 각도가 일반적으로 쓰이지 않기 때문에, Pretraining 자체에 대해서 크게 연구가 진행된 게 없었다. 

 

이번에 MineCraft Pretraining 의 핵심은 Inverse Dynamics Model (ICM) Pretraining으로, 연속된 두 개의 States 에 대한 Action 을 예측하는 방식으로 Video Frame Feature 를 학습시킨다.  이게 가능한 이유는 Image 는 Universal Representation 이기 때문이다. 

Main Training 

가장 주요한 부분은 아래 그림으로 학습시키는 방법을 묘사한다. 

 

1. 파란색 박스 : 마인크래프트 비디오를 무작정 많이 모은다. 그 중에서 Filter 를 이용하여 깨끗한 영상만 추출한다. 

2. 빨간색 박스 : Contractor 는 게임을 플레이하면서 State-Action-Next State Pair 를 기록한다. 그리고 ICM 모듈을 학습하여, 두 개의 연속된 관찰을 유도하는 행동을 딥러닝으로 찾는다. 

3. 초록색 박스: 학습된 ICM으로 파란색 박스에서 구한 데이터에 대해서 검증하고, 사용한다. 추가적으로 FineTuning 하면된다. 

여기서 해당 논문의 핵심인 ICM 을 이용한 Pretraining 이 나온다.

 

키보드와 마우스 Accuracy 

빨간색 박스의 Contractor의 데이터 사이즈에 따라서, 파란색 박스의 데이터에 대한 Accurary 를 키보드와 마우스 각각에 대해서 구한 것은 흥미롭다. 당연히 Contractor의 데이터 사이즈가 증가한다면 성능은 향상된다. 아래 플롯은 필요한 정도를 나타내는데, 1000 시간의 데이터로 90%의 성능을 낼 수 있음을 보인다. 

 

학습 경과에 따른 물건 생성

또 다른 흥미로운 그림은 Collection 하는 대상과 이로부터 만드는 물품이다. 학습에서 해당 물품이 만들어지는 시간을 표시한 게  흥미롭다. 마인크래프트를 제대로 해보지 않아서, 저걸 만드는 게 얼마나 어려운 건지 모르겠지만, 아무튼 학습을 진행하면서 해당 물품을 만들 수 있다고 한다. 

 

Pretraining의 중요성

강화학습을 진행하면서, 해당 방식으로 배운 Feature Space는 놀랍도록 좋은 성능을 보인다. RL을 random 한 상태에서 진행했을 때, 어떠한 Task 도 성공하지 못한것과, 이와 반대로 다이아몬드 물품 (2.5%) 까지 만든 Pretrained model 의 성능은 신기할 정도이다. 이건 Pretraining 과정에서 나타는 Sequence 가 강화학습에 도움이 되기 때문으로 보인다. Search Space를 줄인 것으로 보인다. 

결론

갈수록 강화학습에 대한 사용이 증가하고 있다. 그동안 강화학습은 학습 시간과 리소스가 많이 들기 때문에, 다른 분야에 비해서 연구가 늦은 것 같다. 어쨌든 이제 Pretraining 단계까지 온 거 같다. 높은 성능과 재사용을 위해서 Pretraining은 반드시 필요한 작업인데, 모델을 랜덤한 상태로부터 학습하는 것은 언제나 비효율적이기 때문이다. 해당 연구는 일반 강화학습에 모두 적용할 수는 없지만, 게임과 같이 특화된 부분에 있어서는 앞으로 Baseline 학습이 되지 않을까 싶다. 막 리니지 Agent Bot을 만드는데 쓰이지 않을까 싶다. 

 

All pictures are captured at paper [https://openai.com/blog/vpt/]