WHAT MATTERS FOR ON-POLICY DEEP ACTOR-CRITIC METHODS? A LARGE-SCALE STUDY

2021. 6. 16. 01:35AI Paper Review/Deep RL Papers [EN]

<openreview> https://openreview.net/pdf?id=nIAxjsniDzg 

 

We train over 250’000 agents in five continuous control environments of different complexity and provide insights and practical recommendations for the training of on-policy deep actor-critic RL agents.




0. Deep Actor-Critic Methods

Policy-Based 계열의 Deep Actor-Critic Method들은 Hopper, Humanoid와 같은 D4RL 벤치마크에 있는 continuous task에서 아주 좋은 성능을 냈다. REINFORCE, TRPO, A3C, PPO, DDPG, SAC 등 Deep Actor-Critic 알고리즘들은 많은 형태의 변형이 존재한다. Advantage Function을 다루는 방법도 V-trace, GAE 등등 아주 많다. Deep Actor-Critic 알고리즘들이 진보됨에 따라 매니퓰레이터 제어, 자율주행까지 적용가능한 영역은 무궁무진하며 매일 확장되어 나가고 있다.

 

1. What Really Matters in Deep Actor-Critic Methods?

그렇다면 우리는 한가지 질문을 던질 수 있다. "What Really Matters?" 이 구글 브레인 연구진들은 온세상 TPU를 자기것처럼 쓸수 있는 사람들이다. What Really Matters? 에 25만개의 에이전트를 훈련시켜 답할 수 있는 어쩌면 지구상에 있는 유일한 집단일 것이다.

 

1.1 Method

연구 방법은 "구글브레인이 구글브레인했다"

 

(1) 50> 개의 액터크리틱 알고리즘 선택 사항 (Loss, 모델 구조, etc) 을 구현한다.

(2) 그 조합 중에 25만개 가량을 돌린다.

(3) 돌려서 나온 결과를 조사한다.

 

1.2 Contributions

1.2.1 Generalized Actor-Critic Framework

강화학습을 구현하는 방법은 연구자나 개발자마다 정말 갖가지다. 같은 PPO를 구현하더라도 누구는 Importance Sampling Ratio를 그냥 나눠서 계산하고, 누구는 수학적 안전성을 위해 exp를 이용해 연산한다. 이렇게 강화학습 구현들은 대부분 파편화되어있고 틀이 잡혀있지 않은데 이 논문을 쓰느라 50> 개의 초이스를 쓸 수 있는 일반화된 액터 크리틱 프레임워크가 하나 탄생했다.(https://github.com/google-research/seed_rl)

 

1.2.2 Large Insights Comes From Large Scale Experiments

본 논문은 큰 사이즈의 리서치를 했다. 자주 쓰이고 잘 쓰이는 Actor-Critic 알고리즘을 구현하는 초이스들의 조합을 매우 많이 실험했고, 이것은 강화학습을 어플리케이션에 이용하는 사람들에게 실로 많은 인사이트를 줄 수 있다. 필자는 개인적으로 이러한 Large-Scale Study의 메리트가 여기에서 나온다고 생각한다. 우리가 놓치고 있던 것, 컨벤셔널한 관점에선 생각지 못한 부분들을 무식한 그리드 서치는 찾아낼 수 있다.

 

2. Methods

본 논문에서는 On-Policy Deep Actor-Critic 알고리즘을 Gym에 있는 Continuous Control Task (Hopper-v1, Walker2d-v1, HalfCheetah-v1, Ant-v1, and Humanoid-v1) 에 적용한다. 

 

2.1 How To Create A "Unified" Framework for deep actor-critic gradient algorithms?

1. 많은 강화학습 구현체 중에 자주 쓰이는 것들에 사용된 휴리스틱, policy initialization method, 하이퍼파라미터들에 대해 조사했다.

2. 그 구현체들에 포함된 요쇼들을 하나의 초이스로서 활용할 수 있는 SEED RL 코드베이스를 만들었다.

3. PPO 구현체를 이용해 논문과 비슷한 성적을 냄을 확인했다 (PPO가 제일 흔하게 쓰여서 PPO로 검증했다)

 

2.2 Difficulty Of investigating choices

정말 수많은 하이퍼파라미터, 휴리스틱 방법, 로스, 모델 조합이 있을 것인데, 이것을 어떻게 정해야 할 지에 대한 고민이 아주 어려웠다고 한다. 하이퍼파라미터 세팅 같은 경우 아예 사용불가능한 값에 대해 학습을 돌릴 가능성이 있었고, 몇몇 하이퍼파라미터는 서로 상호작용 하는데 이것을 컨프롤하기가 어려웠다고 한다.

 

2.3 Groups of Choices

초이스를 하는 8가지 그룹을 만들어 실험을 진행한다. (Policy Losses, Networks architecture, Normalization & clipping, Advantage estimation, Training setup, Timesteps handling, Optimizers, Regularization) 

 

3. Experimental Results

3.1 Policy Losses

 

사람들이 괜히 PPO를 많이 쓰는게 아니라는 생각이 든다. 필자도 무슨 알고리즘을 적용할지 잘 모르겠거나, 아무거나 써도 상관없는 시뮬레이션 가능한 환경에서는 PPO를 가장 먼저 적용해보는 편이다. 다른 알고리즘들에 비해 훌륭한 성적을 내는 것을 볼 수 있다. PG와 V-trace는 원래 이런 한스텝만에 off-policy가 되는 태스크에 안 좋으니 실험 결과가 그리 놀랍지 않다.

 

3.2 Networks Architecture

(1) 구현 시 Value Network와 Policy Network에 공유 레이어를 주지 않는 것이 더 좋은 성능을 낸다.

(2) MLP의 사이즈는 환경의 복잡도에 비례해 올라가야 한다.

(3) 몇몇 환경에서는 Value Network를 Policy Network보다 크게 하는 것이 효용성이 있었다

(4) 활성화 함수로는 tanh가 가장 좋고 relu가 가장 별로였다.

 

3.2.1 policy initialization

많은 논문들에서 초기 action distribution을 어떻게 세팅해야 하는지에 대한 내용은 잘 다루지 않고 있다. 하지만 이것은 매우 중요하다는 것이 이 연구에 의해 밝혀졌고, 필자는 이것이 중요한 시사점이 있다고 생각한다. 참고로 action distribution을 작거나 크게 하는 방법은 마지막 레이어의 weight들의 초기값을 크거나 작게 해주면 된다. 참고로 Value Network에서는 별 상관없는 방법이다.

논문에서 이 발견을 통해 추천하는 점은

(1) policy network 마지막 층의 가중치를 100배정도 작게 설정

(2) output을 action standard deviation으로 만들기 위해 softplus 사용, negative offset 사용

 

3.3 Normalization and Clipping

Observation을 Normalization하는 방법론, value function을 normalization 하는 방법론, per-minibatch당 advantage를 normalization하는 방법론, gradient, observation의 클리핑 방법론 등 데이터/로스 전처리에 관련된 내용에 대해 테스트를 진행했다.

 

(1) Hopper 빼고 모든 환경에서 Observation Normalization은 좋은 성과를 냈다

(2) Value Function normalization은 별로 중요하게 생각되는 부분이 아니지만 성능에 큰 영향을 미친다

(3) advantage normalization은 별로 영향을 미치지 않는다

(4) gradient clipping은 조금의 성능 향상을 일으킨다

(5) observation normalization 또한 조금의 성능 향상을 일으킨다.

 

3.4 Advantage Estimation

여기서는 가장 많이 쓰이는 Advantage Estimation 방법론을 다룬다. N-step, GAE, V-trace, PPO-style pessimistic clipping을 Value Function Loss에 적용, MSE 대신 Huber Loss를 Value Loss에 적용하는것과 같은 것이다.

 

(1) GAE와 V-trace는 N-step보다 좋다. 이것은 여러 스텝의 value function 값을 함께 사용하는것이 효용성이 있음을 시사한다.

(2) GAE와 V-trace의 성능상 차이점은 찾지 못했다

(3) PPO-style value loss clipping은 하이퍼파라미터를 뭘 써도 오히려 성능이 나빠졌다.

(4) Huber Loss 또한 Hyperparameter 설정에 관계없이 MSE보다 나빴다.

 

사실 Value Loss Clipping이나 Huber Loss가 성능을 향상시킬 수 있는 메서드라고 개인적으로 믿어왔는데, 조금 충격이다. Simple is best 인 것 같다.

 

3.5 Training Setups

실제로 Policy와 Value를 어떻게 업데이트 할 지에 대한 내용이다. parallel environment의 수, iteration당 얻은 transition 수, 데이터를 넘기는 개수, 미니배치 사이즈, 미니배치에 넣는 방법 등이다.

 

(1) experience 한번 가지고 여러번 업데이트 하는 것은 효용성이 있다

(2) 병렬 환경의 수를 높이는 것은 몇몇 환경에서 그리 좋지 않았다. 아마도 experience chunk가 짧아지는 문제 때문으로 예상한다

(3) minibatch 사이즈는 성능에 크게 영향을 미치지 않으므로 빠른 학습을 위해 크면 대체로 좋다

(4) 이터레이션당 가져오는 transition 수는 성능에 꽤 큰 영향을 미쳤다. 이것은 불량한 어드밴티지, 곧 길지 않은 시퀀스에서 만들어진 어드밴티지가 성능에 악영향을 줄 수 있음을 보여준다.

 

위와 같은 점들을 통해 본 논문에서 추천하는 점은

(1) experience를 여러 epoch 재사용하라

(2) 미니배치 셔플링은 중요하다

(3) 업데이트 이터레이션마다 어드밴티지를 다시 계산하라

(4) 이터레이션당 transition의 개수를 조절가능하다면 조절해라

 

3.6 Timesteps handling

RL에서 시퀀스를 조절하는 것은 중요한 일이다. 가령 Frame Skip를 사용하거나, 모든 RL 알고리즘에 사용되는 discount factor를 조절하는 방법이 있겠다.

 

(1) Frame Skip은 대체로 좋았다

(2) discount factor는 강화학습의 성능을 결정하는 매우 중요한 요소이니 환경에 따라 적절히 튜닝되어야 한다

 

3.7 Optimizers

옵티마이저를 어떤 것을 어떻게 사용할지에 대한 것은 뉴럴넷이 사용되는 모든 연구에서 중요하다. RMSProp와 Adam이 RL 연구에서는 주로 사용된다.

 

(1) 러닝레이트는 매우 중요하다. 0.0003 정도가 모든 태스크에서 잘 됐다.

(2) Adam과 RMSProp는 압도적인 차이는 관찰하지 못했다.

(3) Adam + Momentum은 RMSProp + Momentum보다 더 강력했다.

(4) 두 옵티마이저의 epsilon 파라미터는 별 영향이 없었다.

(5) Learning rate의 선형적인 decaying은 4개의 태스크에서 초과 성능을 냈다.

 

위와 같은 점들을 통해 본 논문에서 추천하는 점은

(1) Adam optimizer를 모멘텀과 함께 사용할 것

(2) Learning rate의 선형적인 decaying은 도움이 될 수도 있음

 

3.8 regularization 

강화학습에는 많은 regularizer들이 있다. 예를 들어 exploration을 장려하기 위해 entropy bonus를 준다거나, KL Divergence를 패널티 텀으로 준다던가 하는 것들이다.

 

(1) 크게 regularization이 본 논문에서 사용한 태스크에서는 효용성을 얻지 못했다.

(2) PPO Policy loss는 이미 Trust region의 개념을 포함하고 있고, safe policy initialization을 사용하므로 본 논문에서 중요도가 떨어졌을 수 있다

 

4. Discussion

필자는 본 논문을 매우 재미있게 읽었다. 맨날 했던 고민들은 25만번의 실험과 엄청난 탄소 배출량이면 시원하게 해결될 수 있는 문제임을 아주 잘 보여준 논문이었다고 생각한다. 저자들의 추천사항과 실험 결과를 실제 강화학습 연구를 진행하는 데에 있어 잘 결합한다면 분명 좋은 성과가 있을 것으로 예상한다.

 

5. Materials to Understand this post:

0. Reinforcement Learning: An introduction (Richard Sutton)

1. A survey of Actor-Critic reinforcement learning: standard and natural policy gradient (Grondman et al)

2. Proximal Policy Optimization (Schulman et al)

3. Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor (Haarnoja et al)