Deep Learning/RL

[paper review] Asynchronous Methods for Deep RL

zooyeonii 2021. 5. 21. 16:26

요약

비동기식 deep RL gradient descent 방법론 제안.
value-based, policy-based, on-policy, off-policy 구분없이 적용 가능.
가장 성능 좋은 것이 A2C+비동기식.
multi-core CPU, multi-threads 사용하여 학습 가능. 학습속도 개선.

on-line RL 의 문제점은, 데이터간의 상관성이 매우 높아서(현 state, action 으로 인해 다음 state가 결정되므로) 학습이 어렵다는 문제점이 있다. 이를 해결하기 위한 기존 접근이 Experience Replay.

Experience Replay 는 agent의 경험을 모아놓고, 여기서 랜덤으로 샘플링하여 학습에 사용한다. 각 데이터간의 상관성이 줄어들고, 예전 경험을 사용할 수 있다.
하지만 메모리가 많이 필요하고, 계산복잡도도 더 높다. 그리고 예전 policy를 사용하므로, off-policy 방법에서만 사용 가능하다.
Experience Replay 의 한계점을 해결하면서, on-line RL 문제점을 해결하기 위한 새로운 접근이 바로 해당 논문에서 제시하는 Asynchronous Method이다.
구조도를 보면, Federated learning과 굉장히 유사함을 알 수 있다..(> <)

Idea

하나의 컴퓨터에서, 여러 thread가 동시에 실행되고 있다. (A single machine, multi-threads) 각 thread를 actor-learner thread라 한다. 이는 environment+agent pair를 의미하며, 각각 독립적인 agent라고 이해해도 좋다.

하나의 global network가 있고, 여러개의 agent들이 있다. 각 agent들은 Global network에서 gradient를 가져와 초기화하고, 각자의 policy를 따라 행동하며 경험을 쌓는다. RL방법론에 따라 gradient update를 하는데, 이 gradient를 쌓아놨다가 정해진 주기마다 global network를 해당 gradient를 통해 업데이트한다.

해당 과정은 비동기식으로 일어나므로, A agent가 global network를 업데이트하고, B가 그 후에 global network를 업데이트하는 등...agent들이 독립적으로 global network와 gradient를 주고받는다.

그림에서처럼, agent들이 같은 아타리게임을 하는데, 스냅샷을 찍어봤을 때, 각자 state, action이 다르기 때문에 게임화면이 모두 다를 것이라 예상할 수 있다. 이는 on-line learning, on-policy도 가능하면서, 각자 agent가 독립적이므로 데이터간의 상관성도 없다! 따라서 Experience Replay를 대체 가능한 방법이다.

 

A3C

A2C (Advantage Actor-Critic)

on-policy, policy-based method

advantage function

A2C 는 Q함수를 advantage 함수로 대체한다. advantage 는 Q-V의 형태이다. V를 빼주는 이유는, Q value값의 분산이 크기 때문에 V를 baseline으로 사용하는 것이다. 그리고 Q-V를 모두 V form으로 바꿔주면 위와 같이 advantage 함수 델타를 얻을 수 있다.

Actor-Critic은 Value와 Policy 모두 NN으로 approximate한다. Actor는 정책을 업데이트하고, Critic은 가치함수를 평가한다. 따라서 A2C의 구조도는 위와 같다. Value network를 통해 가치함수 값이 에측되고, 이는 advantage 함수(TD error형태)를 loss function으로 하여 학습 가능하다. Policy network는 cross entropy x TD error 를 loss로 하여 update한다.

Experiment

A3C가 위 5개의 환경에서 모두 좋은 성능을 보여줌.

thread를 늘려도(parallel agent) 속도의 개선이 유지됨. 심지어 1-step Q-learning, SARSA는 thread가 2배 늘어날 때 속도가 2배 이상 개선되는 모습을 보여줌.

Contribution

  • Multi-core CPU (instead of GPU)
  • Scale up (Q-learning, Sarsa, A3C 모두에서)
  • Decorrelation without Experience Replay
  • 모든 Deep RL방법론에 적용가능 (value-based, policy-based, on-policy, off-policy)

'Deep Learning > RL' 카테고리의 다른 글

RL) Hindsight Experience Replay  (0) 2021.08.27
Multi-task RL  (0) 2021.08.22
RL) 03. Monte-Carlo Prediction  (0) 2021.03.30
RL) 02. Dynamic Programming  (0) 2021.03.30
RL) 01. MDP  (0) 2021.03.19