[논문] Asynchronous Methods for Deep Reinforcement Learning

Date:     Updated:

카테고리:

태그:

1. Introduction

Experience replay memory에 agent의 데이터를 저장해 사용하는 방식인 Experience replay는 non-stationarity를 줄이고 업데이트의 상관관계를 없애주지만 이 방식은 off-policy RL에서만 가능하다는 한계가 있었다.

Experience replay기반 Deep RL algorithm은 Atari 2600에서 놀라운 성과를 냈다.

하지만 이것에도 몇가지 단점이 있었다.

  1. 많은 메모리와 계산이 필요하다.
  2. 오래된 정책에 의해 생성되는 데이터로 업데이트해야한다.

이 논문은 experience replay 대신에 비동기적으로 여러개의 환경에서 여러개의 agents를 동시에 실행하는 방식을 제안한다.

이 방식도 parallel agent가 다양한 state를 경험하기 때문에 experience replay처럼 데이터의 상관관계를 없애고 더 stationary 하게 할수 있다.

이 간단한 아이디어는 on-policy (Sarsa, n-step methods, actor-critic methods)에 적용 가능하고, off-policy(Q-learning)에도 가능하다.

또한 기존의 GPU를 사용해야 했던 알고리즘과 다르게 이 방식은 CPU를 통해서 동작이 가능하다.


2. Reinforcement Learning Background

앞의 논문에 충분히 설명이 되어 있는 부분이라 간단하게 설명하면

standard RL setting과 action value에 대해서 설명하고 value-based model-free RL에서 사용하는 function approximator를 사용해 loss function을 줄이는 \(\theta\)를 최적화하는 것으로 바꾸는 내용이다.

Image

어쨋든 agent의 최종 목표는 각 time-step의 state에서 기대되는 return을 최대화 하는 것이다.

2.1 n-step methods

위에서 사용한 one-step Q-learning은 action value Q(s,a)를 one-step return인 \(r + \gamma max_{a'}Q(s',a';\theta)\)방향으로 업데이트를 한다.

하지만 one-step 방식의 한가지 단점은 보상을 얻는게 state-action에 직접적으로 영향을 받는다는 것이다.
즉, 이것은 학습 과정을 느리게하고 많은 업데이트를 필요로한다.

위 단점을 해결하는 방법으로 보상을 빠르게 propagating하는 n-step returns가 있다.

n-step Q-learning에서는 Q(s,a)가 n-step return인 \(r_t + \gamma r_{t+1} + ... + \gamma^{n-1}r_{t+n-1} + max_a\gamma^nQ(s_{t+n},a)\)방향으로 업데이트 된다. 이를 통해 보상의 propagting을 더 효율적으로 할 수 있다.

2.2 policy-based model-free methods

value-based methods랑 다르게 policy-based model-free methods는 정책을 파라미터화 \(\pi(a∣s;\theta)\)한다. 그리고 \(\theta\)를 업데이트한다.


3. Asynchronous RL Framework

이 방식을 설계하는 목적은 deep NN Policy를 신뢰성있게 하고 많은 자원 없이도 학습할 수 있는 RL 알고리즘을 찾는 것이다.

actor-critic : on-policy policy seacrh method
Q-learning : off-policy value-based method

이 두 아이디어를 활용해 우리의 목적을 달성할 수 있는 4개의 알고리즘을 만든다.

첫째, asychronous actor-learner를 사용한다. Golrila framework랑 비슷하지만 이것은 하나의 machine에 여러개의 CPU thread를 사용한다. 이를 통해 gradients와 파라미터를 보내는 통신 비용을 줄여 학습하는데 사용할 수 있다.

둘째, 환경의 다른 부분을 exploring하는 여러개의 actors-learners를 parallel하게 사용한다. 다양성을 극대화하기 위해서 각 actor-learner은 다른 exploration 정책을 사용한다. 이것은 single agent가 업데이트 하는 것 보다 multiple actor-learners를 통해 업데이트의 상관관계를 줄일 수 있다.또한 성능의 안정화 역할을 하는 replay memory를 사용하지 않기 때문에 성능 안정화 역할도 할 수 있다.

여러 parallel한 actor-learners를 사용해 학습을 안정화하는 것은 여러 효과가 있다.

첫째, 사용하는 actor-learners수에 비례해서 학습시간이 준다.

둘째, 학습의 안정화를 위한 experience replay를 사용하지 않기 때문에 NN을 학습하는데 Sarsa나 actor-critic같은 on-policy RL methods를 사용할 수 있다.

3.1 Asynchronous one-step Q-learning

각 Thread는 각자의 환경과 상호작용하고 각 step에서 Q-learning loss의 gradient 를 계산한다.

Q-learning loss를 계산하는 target network를 천천히 변경한다. (DQN method)

그리고 gradient가 적용되기전에 여러 timesteps 동안 축적한다. (minibatches 방식과 비슷)

이것은 여러 actor learners가 서로의 업데이트를 덮어쓰는 것을 줄인다.

여러 단계동안 업데이트를 축적하는 것은 또한 계산 효율성과 데이터 효율성과 tradeoff 관계이다.

다른 exploration 정책을 만드는 여러 방법이 있지만, \(\epsilon\)-greedy에서 \(\epsilon\)을 어떤 분포에서 sampling 하는 방식으로 차이를 주었다.

최종적으로 다른 exploration 정책 사용을 통해 알아낸 것은 2가지가 있다.

  1. 각 Thread는 robustness를 향상시킨다.
  2. 일반적으로 성능을 향상시킨다.

3.2 Asynchronous one-step Sarsa

Asynchronous one-step Sarsa는 Asynchronous one-step Q-learning과 다른 target value를 사용한다는 것 빼고는 모두 같다. (max를 사용하는 Q-learning)

Image

\(a'\) : state \(s'\)에서 하는 action

마찬가지로 target network를 사용하고 여러 timestep동안 업데이트를 축적해 학습을 안정화한다.

3.3 Asynchronous n-step Q-learning

이 알고리즘은 n-step return을 계산하는데 forward view를 사용하기 때문에 익숙하지 않다고 생각할 수 있다. 왜냐하면 대부분은 eligibility traces같은 기술을 통해 backward view를 사용하기 때문이다.

이 논문은 momemtum-based methods와 backpropagation through time을 사용하는 NN을 학습할 때는 forward view를 사용하는 것이 더 쉽다고 말한다.

single update를 계산하기 위해서 action을 \(t_{max}\)steps 또는 terminal state가 나올 때까지 고르고 n-step update를 진행한다.
n-step update를 할 때는 제일 긴 n-step update를 사용한다. 즉, 마지막 state는 one-step update를 진행하고 마지막에서 두번째 state는 two-step update 하는 방식으로 n-step까지 계산한 후 모아서 한 번에 single gradient update를 진행한다.

3.4 Asynchronous advantage actor-critic(A3C)

asynchronous advantage actor-critic (A3C)는 policy \(\pi(a_t∣s_t;\theta)\)를 사용하고 value function \(V(s_t; \theta_v)\)를 estimate한다.

A3C는 forward view처럼 n-step returns를 섞어 사용해 policy와 value-function을 업데이트한다.

policy와 value function은 \(t_{max}\) actions나 terminal state에 도착을 하면 아래 식을 통해 업데이트가 된다.

Image

policy 파라미터 \(\theta\) 와 value function 파라미터 \(\theta_v\)는 분리된것처럼 보이지만 항상 어느정도는 공유를 한다. 또한 목적함수에 policy \(\pi\)의 entropy를 더하는 것은 exploration을 개선한다. 왜냐하면 suboptimal한 determinsitic policy로 너무 빨리 수렴하는 것을 막아주기 때문이다.

3.5 Optimization

SGD with momentum, RMSProp without shared statistics, RMSProp with shared statistics 이 세가지 optimization algorithms에 대해 조사를 한 후 최종적으로 아래와 같이 업데이트 되는 standard non-centered RMSProp를 사용한다.

Image


4. Experiments

Arcade Learning Environment, TORSC 3D car racing simulator, Mujoco, Labyrinth이 네개의 다른 플랫폼을 통해 제안된 framework를 평가한다. (Mujoco, Labyrinth는 A3C만)

4.1 Atari 2600 Games

Image

Asychronous methods는 CPU로도 대체로 DQN보다 빠르게 학습했고, 어떤 게임에서는 더 빠르게 학습했다. 게다가 n-step methods는 one-step methods보다 어떤 게임에서 빠르게 학습했다. policy based인 A3C는 3가지의 value-based methods보다 상당히 좋은 성능을 냈다.

4.2 TORCS Car Racing Simulator

Image

A3C가 가장 좋은 결과를 냈고 Multi-step algorithms이 one-step algorithms보다 더 나은 policy를 더 빠르게 학습한다.

Image

(실험 영상 및 이미지는 Deepmind 유튜브에 올라와있다.)

4.3 Continuous Action Control Using the MuJoCo Physics Simulator

Image

MuJoCo에서 A3C만을 평가했다. 왜냐하면 value-based method와 다르게 쉽게 continuous actions로 확장할 수 있기 때문이다.

A3C는 학습 24시간 내에 좋은 솔루션을 찾아냈다.

4.4 Labyrinth

Image

A3C을 3D 환경인 Labyrinth에서도 실험했다. agent는 미로에서 랜덤하게 발생하는 reward를 얻는 것을 학습해야한다.

이것은 agent가 매 에피소드의 시작마다 새로운 위치로 이동하고, 그때마다 새로운 미로에 대한 전략을 학습해야하기 때문에 TORCS driving보다 더 어려운 상황이다.

4.5 Scalability and Data Efficiency

Image

parallel actor-learners수에 따른 학습 시간과 데이터 효율성의 변화를 분석했다.

여러 workes가 parallel하게 동작하면서 공유된 model 업데이트 하는 경우, 이상적인 상황에서는 특정 작업과 알고리즘에 대해 특정 점수에 도달하는 데 필요한 학습 step 수가 작업자 수에 관계없이 일정하게 유지될 것으로 예상할 수 있다.

따라서 성능 향상의 이점은 동일한 시간 내에 더 많은 데이터를 소비할 수 있는 능력과 향상된 exploration때문이라고 판단한다.

위 4가지 방법 모두 multiple worker threads 일때 성능 향상을 달성했고, 특히 16 thread일 때 효과적이었다.
이를 통해 논문에서 제안한 framework이 parallel workers 수에 따라 scalable 하고 자원을 효과적으로 사용할 수 있다는 것을 확인할 수 있다.

asynchronous one-step Q-learning과 Sarsa 알고리즘은 단순 계산으로는 설명이 안되는 엄청난 성능향상이 일어났다.

one-step methods는 종종 parallel actor-learners를 많이 사용할 수록 특정 점수를 도달하는데 데이터를 덜 필요로했다.
즉, parallel한 actor-learner가 많아질 수록 적은 데이터로도 학습이 가능하다.

4.6 Robustness and Stability

4가지 asynchronous algorithms의 안정성과 robustness를 분석한다.

Image

각 알고리즘과 게임의 조합마다 좋은 성능을 내는 Learning rate 범위가 존재한다는 것을 확인했다.

또한 학습이 시작된 이후 적절한 learning rate로 설정된 영역에서 점수가 0인 경우가 거의 없다는 것은 methods가 붕괴하거나 발산하지 않고 안정적으로 학습이 진행된다는 것을 보여준다.


5. Conclusions and Discussion

4가지 standard RL algorithms의 asychronous 버전을 확인하고 어떻게 다양한 영역에서 안정적인 방식으로 학습하는지 확인했다.

그 결과로 제안된 framework는 NN을 안정적으로 학습할 수 있다. 그리고 RL은 value-based/policy-based methods, off-policy/on-policy, discrete/continuous domain 모두에서 다 적용이 가능하다.

여러 발견 중 가장 중요한 것은 parallel actor-learners를 사용해 공유 모델을 업데이트 하는 것은 3개의 value-based methods에서 안정적인 효과를 보여준다는 것이다.

즉 online Q-learning을 experience replay없이도 안정적으로 할수있다.

asychronous RL framework에 experience replay를 통합하면 오래된 데이터를 재사용해 데이터 효율성을 높일 수 있다. 또한 기존의 RL methods와 최근의 Deep RL의 발전을 asychronous RL framework에 결합하면 methods를 즉각적으로 개선할 수 있는 다양한 가능성이 생긴다.

n-step methods : forward view을 기반으로 corrected n-step reutrns를 target으로 한다.

A3C method : advantage function의 추정을 다른 방식으로 해 성능을 개선할 수 있다.

All of the value-based methods : Q-values의 overestimation bias를 줄일 수 있다.

Temporal difference methods과 non-linear function approximation을 결합하는 것이 가능할 수도 있다.

이러한 Algorithmic 개선외에도 dueling architecture이나 spatial softmax 같은 NN 아키텍쳐를 개선할수도 있다.

맨 위로 이동하기

Papers 카테고리 내 다른 글 보러가기

댓글남기기