Muzero 논문을 읽을 때 끝부분에 성능비교를 하는데 그동안 보지 못했던 알고리즘들이 등장을 했다. Rainbow는 다른 논문에서 봐서 알고 있었는데 IMPALA라는 것은 처음 보았다. 그래서 다음에 읽을 논문으로 이 IMPALA로 결정했다. 참고로 이번 논문인 DeepMind에서 발표한 논문이다.
이전 연구들
이전 연구들은 deep reinforcement-learning의 scale을 키우기 위해서 distributed asynchronous SGD에 의존했다. 대표적인 예시가 A3C와 Gorilla 그리고 Distributed 방법으로 구현된 DQN이 있다.
batched A2C
그리고 GPU를 사용하는 활용하고자 하는 연구들도 있었다. 대표적으로 batched A2C가 있다. 매 step마다 액션을 진행하고 데이터를 모은 뒤, batch에 도달하면 모인 데이터를 학습한다. 그렇기 때문에 각 batch에서 가장 느린 환경이 전체 단계의 학습 속도를 결정한다. 모든 환경이 데이터를 수집해 완료하기 전까지는 다음 배치로 넘어갈 수 없다. 그래서 환경의 고른 속도가 굉장히 중요한 학습 방법이다.
그래서 Atari같은 단순한 환경에서는 좋은 성능을 유지하지만 복잡한 환경이 들어오게 되면 분산이 커져서 속도가 느려질 수 있다.
각 trajectory의 시작 시, Actor는 Learner의 최신 정책으로 자신의 로컬 정책을 업데이트하고 환경에서 𝑛단계 동안 실행한다.
𝑛단계가 지나면 Actor는 상태, 행동, 보상의 trajectory와 정책 분포
π(a∣x) 및 초기 LSTM 상태를 큐(queue)를 통해 Learner에게 보낸다.
Learner는 여러 Actor로부터 수집된 trajectory를 배치로 받아, 지속적으로 정책을 업데이트한다.
위 과정은 A3C와 굉장히 비슷하지만 A3C의 경우에는 병렬로 액션을 진행하고 각자 학습해서 중앙에 보내는 방식이었다면 Actor Learner는 액션을 진행하고 거기서 나온 데이터만 중앙에 보내는 방식이기 때문에 조금 더 통신 비용을 적게 사용할 수 있다.
Learner는 데이터를 받아서 학습을 진행하는데 그 사이에 actor들은 다른 데이터를 수집중이다. 즉, 지금 actor가 진행하는 액션과 학습에 사용되는 액션이 다르기 때문에 off-policy라고 볼 수 있다.
Actor는 최신 데이터를 수집하지만 Learner는 구형 데이터를 사용하기 때문에 이것의 격차를 줄여주기 위해서 V-trace를 사용한다. V-trace는 Actor가 선택한 행동의 확률과 Learner의 최신 정책에서 그 행동을 선택할 확률의 비율(중요도 비율)을 계산하여, 학습에 필요한 보상을 조정한다.
이런 V-trace를 사용하여 off-policy에서도 정책 차이로 인한 편향을 줄이고 안정감 있는 학습을 진행할 수 있다. 전부 이해는 안되지만 V-trace에서 핵심이 되는 중요도 비율에 관한 수식을 아래에 정리했다.
상태 에서의 가치 함수 에 대한 n-step V-trace 타깃을 다음과 같이 정의한다.
여기서 는 Temporal Difference (TD) 오류로 아래와 같이 정의한다. TD 오류는 예측된 보상과 실제 보상의 차이를 의미하며 이는 정책 업데이트의 기초가 된다.
중요도 비율은 아래와 같이 클리핑해서 사용한다. 즉 actor의 액션과 learner의 액션의 비율을 사용하는 것이다.
여기서 는 목표 정책(target policy), 는 행동 정책(behavior policy), 와 는 중요도 비율의 클리핑 값이다.
Single-Machine 환경
IMPALA는 A3C와 batched A2C보다 초당 프레임 처리량이 높아, 1개의 GPU에서 최대 24,000프레임까지 처리했다. V-trace 보정을 통해 다양한 하이퍼파라미터에서도 안정적으로 학습이 가능했다.
Distributed Multi-Machine 환경
IMPALA는 500개의 CPU와 1개의 GPU를 사용하는 멀티머신 환경에서 최대 250,000프레임을 처리해, A3C보다 더 빠르고 효율적인 학습을 제공했다.
DMLab-30 및 Atari-57 결과
DMLab-30 환경에서는 IMPALA가 49.4%의 인간 표준 점수를 기록하며, A3C보다 2배 이상의 성능을 보였다.
Atari-57 환경에서도 IMPALA는 57개 게임의 평균에서 인간 표준 점수 191.8%를 달성했고 대규모 멀티태스크 학습에서의 안정성과 데이터 효율성을 입증했다.
A3C를 먼저 읽고 읽어서 그런가 내용이 비슷해서 그런지 이해하기가 좀 편했던 것 같다. 물론 수식 부분은 아직도 힘들다...