앎을 경계하기

Machine Learning/Reinforcement Learning

차근차근 Spinning Up 톺아보기 3 - Part 2:Kinds of RL Algorithms

양갱맨 2019. 11. 6. 02:30

RL 알고리즘 분류

../_images/rl_algorithms_9_15.svg

Model-Free vs Model-Based RL

강화학습 알고리즘을 분류하는 기준 중 가장 중요한 것 중 하나가 바로 에이전트가 환경의 모델에 접근 가능한지 아닌지 이다.

여기서 환경의 모델이라는 것은 상태전이와 보상을 예측하는 함수를 말한다.

모델을 가지고 있을 때 주요 장점은 에이전트가 미리 생각을 하고 가능한 액션들마다 어떤 일이 발생하는지를 확인하고 선택들 사이에서 명시적으로 결정함으로써 plan, 계획을 세울 수 있다.

에이전트는 미리 계획된 결과를 학습된 정책으로 정리할 수 있다. 유명한 접근법으로 AlphaZero가 있다.

모델을 가지지 않은 방법보다 샘플 효율성이 크게 개선된다.

그러나 주요 단점은 환경 모델의 ground-truth가 일반적으로 에이전트가 사용할 수 없다는 것이다.

만약 에이전트가 모델을 사용하길 원한다면, 순수하게 경험으로부터 모델을 학습하게 되는데 이 때 몇가지 문제점이 발생한다.

가장 큰 문제는 에이전트가 모델의 bais때문에 학습된 모델과 관련되어선 성능이 좋지만 실제로 적용해보면 차선책을 택하거나 아니면 최악의 동작을 하는(optimal하지 않은) 경우가 있을 수 있다.

모델을 학습하는 것은 일단 기본적으로 어렵다. 그리고 노력과 시간 대비 성능이 안 좋을 수 도 있다.

이런 모델이 있는 경우를 model-based, 없는 경우를 model-free라고한다.

model-free의 경우 model-based에 비해 샘플 효율성도 좋지 않고 하지만 구현이나 튜닝이 쉽다.

그래서인지 아직까지는 model-free 방법들이 model-based에 비해 훨씬 많이 개발되고있다.

What to Learn

또 다른 중요 분류 기준으로는 무엇을 학습하는지이다.

  • policies, either stochastic or deterministic
  • action-value functions(Q-functions)
  • value functions
  • and/or environment models.

정책을 학습할 수도 있고 가치함수를 학습할 수 있고 환경 모델일 수도 있다.

What to Learn in Model-Free RL

모델을 가지지 않은 model-free 방법론에서는 크게 두 가지로 나뉜다.

Policy OptimizationQ-Learning

흔히들 말하는 PG계열과 Q러닝계열인 것이다.

Policy Optimization

PG계열 알고리즘들은 말그대로 policy를 $$\pi_\theta(a|s)$$로 명시적으로 나타낸다.

그리고 $$\pi$$의 파라미터인 $$\theta$$를 직접 목적함수 J를 gradient ascent해서 최적화하던가, 아니면 간접적으로 목적함수 J의 local approximations를 최대화하여 최적화한다.

optimization은 거의 대부분은 on-policy이다.

on-policy는 학습하는 정책과 샘플링하는 정책이 같은 학습방법을 말한다.

즉 샘플링을 계속 학습하느라 바뀌는 정책으로부터 하는 것이다. 굉장히 샘플효율성이 떨어진다.

policy optimization에서 일반적으로 사용하는 approximator는 $$V_\phi(s)$$이다. 이 approximator는 정책을 어떻게 업데이트할 것인지 판단할 가치함수를 위한 approximator이다.

대표적인 알고리즘으로 A2C/A3C, PPO가 있다.

Q-Learning

Q-Learning은 최적화된 Q function을 위해서 approximator인 $$Q_\theta(s,a)$$를 학습하는 방법이다.

일반적으로 벨만방정식에 기초한 목적함수를 사용한다. 그리고 최적화가 거의 off-policy로 수행된다.

off-policy는 on-policy와 다르게 학습하는 정책과 샘플링하는 정책이 다르다.

Q-learning 에이전트는 주어진 함수 $$ a(s) = argmax_a Q_\theta(s,a) $$를 통해서 액션을 한다.

대표적인 알고리즘으로는 DQN, C51 이 있다.

Policy Optimization과 Q-Learning 간의 Trade-offs

PG계열은 직접 사용자가 원하는 것을 optimize한다는 것이다. 우리는 강화학습 성공을 위해서 목적함수를 최대화시켜야하고 이것을 최적화시키는 것이 바로 PG 계열의 특징이었다. 이렇게 직접 원하는 것을 최적화하는 것은 학습을 안정적이고 신뢰하도록 한다.

그에 비해 Q러닝계열은 간접적으로 approximator를 훈련해서 어떤 방정식을 충족시켜서 에이전트의 성능을 최적화시킨다. Q러닝은 실패하는 경우도 많고 안정성도 떨어진다. 하지만 Q러닝계열의 방법들은 PG계열보다 훨씬 효율적으로 데이터를 재사용 할 수 있기 때문에 sample efficient가 좋은 것이 장점이다.

PG계열과 Q러닝계열 간에는 호환이 되지 않는다. PG와 Q러닝이라는 두 극단 사이에 존재하는 알고리즘들도 있다. 양 극단의 알고리즘들의 장단점을 고려해서 설계된 알고리즘들로는 DDPG, SAC가 있다.

What to Learn in Model-Based RL

위에선 Model-free RL이 무엇을 학습하는지 봤다.

Model-based 에선 무엇을 학습할까?

안타깝게도 Model-Based는 뭔가 이렇다할 기준이 없다. 다들 교차되는 부분들이 있어서 특정한 기준보다는 예시들을 들어서 설명한다.

Background: Pure Planning

액션을 선택하기 위해서 정책을 명시적으로 나타내는 것 대신에 model predictive control과 같은 pure planning 기술을 사용한다.

MPC에서 각 시간에 에이전트는 환경을 관찰한다. 그러고서 모델에서 최적의 계획을 계산한다. 그러고서 계산했던 계획에서 첫번째 액션을하고 바로 나머지를 버린다. 왜냐하면 짧게 계획한 액션을 사용하는것을 피하기 위해서이다. 버리고 나서 다시 각 시간의 새로운 계획을 계산한다.

Expert Iteration

pure planning에 이어서 정책을 학습한다. 정책을 명시적으로 $$\pi_\theta(a|s)$$로 나타내고 학습한다.

에이전트는 모델에서 계획알고리즘인 MCTS같은 것을 사용해서 현재 정책에서 샘플링해서 계획에 대한 후보 액션들을 생성한다. MCTS같은 계획 알고리즘은 정책만 가지고 액션을 선택하는 것 보다 더 나은 선택을 한다. 즉 계획 알고리즘이 정책보다는 전문가라는 것이다. 이후에 계획 알고리즘의 결과와 같은 액션을 수행하도록 정책을 업데이트한다.

Data Augmentation for Model-Free Methods

model-free알고리즘을 사용해서 policy나 Q-function을 훈련시킨다.

하지만 에이전트 업데이트에서 가상 경험과 함께 실제 경험을 늘리거나 그냥 가상 경험만 사용해서 에이전트를 업데이트한다.

Embedding Planning Loops into Policies

planning 절차를 서브 루틴으로 policy에 포함시켜서 완전한 모델이 정책에 대한 정보가 되게하고 model-free 알고리즘을 사용해서 정책의 출력을 훈련한다.

핵심 개념은 프레임워크에서 정책이 계획을 사용할 때 어떻게 사용할지 방법과 시기를 선택하는 방법을 학습한다는 것이다.

일부 모델에서 planning이 어려운 모델인 경우 정책은 심플하게 모델을 무시하는 것을 학습할 수 있다.모델의 bias는 이런 문제를 덜 발생시킨다.