https://www.nature.com/articles/s41586-020-03051-4
서론에서는 MuZero의 도입 계기에 대해 간략히 설명한다.
간단히 요약하자면, 지금까지는 Model-based RL (Reinforcement Learning)을 이용하여 좋은 결과를 내었지만 아타리 게임처럼 과거의 행동이 현재에 영향을 줄 경우 model-free RL로 주로 성공해왔다.
model-free RL은 환경으로부터 policy와 value function을 얻어내지만, 체스나 바둑과 같이 정교하게 미래를 예측하는것은 조금 힘들었다.
MuZero는 model-base RL로, 시각적으로 복잡한 환경을 가지는 아타리 게임에서 좋은 보여주며, 미래를 예측해야하는 체스, 쇼기, 바둑들을 인간 수준을 능가하는 정도로 올리는데 성공하였다.
<출처: Mastering Atari, Go, chess and shogi by planning with a learned model>
a.는 어떻게 MuZero가 model을 plan에 사용하는지를 보여준다.
model은 3개의 연결된 component로 구성되어있다.
재현, dynamic, 예측 순서로 이루어진다.
s는 hidden state를 의미하고, a는 action, v는 value function, f는 p와 v를 만들어 내는 예측함수이다.
r은 즉각적인 reward로, dynamic function인 g를 통하여 생성된다.
h는 재현 함수로, 초기값 s0 을 관측을 통한 값을 이용하여 생성한다. 즉, MuZero는 a에 있는 바둑판을 관측하여, 해당 관측값을 이용해 hidden state s0 를 만들어낸다. (재현)(a는 그림의 a를 의미한다.)
dynamic function인 g는 hidden state인 s0와 취할수 있는 action중 선택한 action을 통해 다음 hidden state인 s1을 만들어내고, 즉각적인 reward를 생성한다. (dynamic)
그리고 s0를 이용하여 예측함수 f를 사용해 policy와 value를 생성한다. (예측)
b.는 환경에서 MuZero가 어떻게 동작하는지를 보여준다.
dynamic function g는 이후 모든 s들에 대해 위 방법을 반복하여 트리를 신장해 나가면, MCTS처럼 현재 행동이 다음 환경에 미치는것 결과처럼 나타난다.
실제 환경에서 a를 이용하여 트리를 만들었다면, MCTS를 이용하여 가장 적절한 action을 선택한다. (at-1)
적절한 action을 선택하기 위해 search policy πt를 사용하는데, 루트 노드(아마 그림 a에서의 s0일 것이다)에서 가장 많이 선택된 (방문된) action을 선택하는것 같다.
환경은 선택된 action인 at-1을 행하고, 해당 action을 수행하여 변화한 환경인 new observation(새로운 관측) ot+1과 reward인 ut+1를 생성한다. 이후 각 t마다 반복하여 다음 환경을 갱신하고, 한 episode가 끝나면 환경의 변화들 o0,o1,...ot를 replay buffer에 저장한다.
c.는 어떻게 MuZero가 model을 학습하는지를 나타낸다.
replay buffer에서 어떤 궤적이 샘플링된다.
(궤적은 한 episode당 변화한 환경들을 의미하는것 같기에, 이하 한 에피소드라고 지칭한다.)
MuZero는 결국 두가지를 학습하여야 한다.
첫번째는 dynamic function인 g를 학습해야하고, 두번째로 예측함수 f를 학습해야한다.
다시 학습 방법으로 돌아와서, 우선 재현함수 h를 이용하여 s0 를 만들어 내고, 해당 에피소드에서 사용된 action을 이용하여 s1, s2, ...를 만들어 낸다.
논문에서는 dynamic function g와 예측함수 f가 backpropagation through time으로 공동으로, end to end로 학습된다고 말하고 있다. 이는 마치 RNN (Recurrent Neural Network)와 같이 time series로 동작함을 알 수 있다.
현재까지 읽은 바에서 개인적인 이해로는 학습에 있어서 결국에는 target과 predict가 있을 것이라고 생각하여, 한 에피소드에서 존재하는 o1, o2, ...들과 재현함수를 이용하여 현재 상태의 실제 s값인 s'1, s'2, ... 들을 만들어 이들을 이용해서 dynamic function g를 학습 하고, 실제 s'1, s'2, ... 들에 예측함수 f를 사용하여 나온 policy와 value를 이용하여 예측함수 f를 학습하지 않을까 생각이 든다.
'논문리뷰' 카테고리의 다른 글
MoMask: Generative Masked Modeling of 3D Human Motions (0) | 2024.11.01 |
---|---|
MotionGPT: Human Motion as a Foreign Language (2) | 2024.10.23 |
PET (Point quEry Transformer) 코드 (0) | 2024.03.14 |
IONN: Incremental Offloading of Neural Network Computations from Mobile Devices to Edge Servers 리뷰 (0) | 2023.06.28 |
Adaptive Parallel Execution of Deep Neural Networks on Heterogeneous Edge Devices (0) | 2023.02.15 |