앎을 경계하기

Machine Learning/Reinforcement Learning

차근차근 Spinning Up 톺아보기 Key Paper : A3C

양갱맨 2020. 6. 15. 15:29

이번에 볼 논문은 Asynchronous Advantage Actor-Critic (A3C)이다.

A3C가 소개된 논문은 Asynchronous Methods for Deep Reinforcement Learning 이다.
ICML에 Google DeepMind에서 발표하였다.
논문 전체가 A3C에 대한 이야기는 아니고 소개된 여러 비동기적 방법들 중에 RL Task에서 SOTA를 차지했었던 A3C가 포함되어 있다.

A3C의 가장 큰 특징은 다음과 같다.

  • Global Network/actor-learner
  • Global Network : 각 Actor threads의 Gradient를 받아서 학습된 Network, Actors에게 parameter를 공유해준다.
  • Actor threads : 주어진 Environment에서 action하고 learning하는 thread. 각 thread는 환경에서 경험을 통해 배운 gradient를 global network에 전달한다.

출처 : Youtube - 팡요랩 [쉽게읽는 강화학습 논문 4화] A3C 논문 리뷰

Asynchronous인 이유는 일정 step만큼 각 thread는 각자의 경험을 시작한다.
예를 들어서, 슈퍼마리오 게임을 생각해보자.
A라는 actor-critic thread는 바로 앞에 있는 구멍에 빠져 죽는 경험을 했고 B actor-critic thread는 버섯을 피해 코인을 먹는 경험을 하고 있다.
즉, 각 thread들이 경험하고 있는 상태가 다 다를 것이고 선택한 액션도 다를 것이다.
actor-critic thread들은 특정 시점에 다같이 업데이트하지 않고 각자 경험하고 계산한 Gradient를 그때 그때 일정 step이 경과되면 global network에 전달한다.
이러한 과정으로 동작하기 때문에 비동기가 되는 것이다.

A3C는 어떠한 RL 알고리즘 환경에서도 안정적인 성능을 보이며 SOTA를 기록하게 된다.

Actor-Critic

  • Critic은 말 그대로 평가자이다. Value function을 토대로 state의 가치를 평가한다.
  • Actor는 critic이 평가한 값에 따라 policy gradient를 통해 parameter를 업데이트한다.

그리고 병렬적으로 움직이는 Actor thread들이 각자의 경험을 비동기적으로 업데이트하기 때문에 DQN에서 등장했던 Experience Replay가 없어도 data 간 correlation을 없애준다.