본문 바로가기

> Reinforcement Learning/> Basic

[강화학습 기초지식] Part 2: Kinds of RL Algorithms

본 포스트는 OpenAI에서 공개한 강화학습 교육자료인 Spinning Up의 도움을 받아, 강화학습(Reinforcement Learning, RL)에 대한 기초개념을 정리해보고자 제작한 시리즈의 일환입니다.

1)기초 지식 2)주요 논문, 3)최신 논문 의 순서로 시리즈를 정리하고자 합니다.

아래 링크에서 더 상세한 내용을 찾아볼 수 있습니다.

Part 2: Kinds of RL Algorithms - Spinning Up documentation
Now that we've gone through the basics of RL terminology and notation, we can cover a little bit of the richer material: the landscape of algorithms in modern RL, and a description of the kinds of trade-offs that go into algorithm design.
https://spinningup.openai.com/en/latest/spinningup/rl_intro2.html#what-to-learn

A Taxonomy of RL Algorithm

지난 part를 통해, 우리는 기본적인 강화학습의 용어들을 익힐 수 있었습니다. 이제 현대 강화학습 알고리즘의 종류와 장단점을 개괄적으로 알아보는 시간을 갖도록 하겠습니다.

다양한 강화학습의 알고리즘들을 위 그림처럼 정형화된 tree구조로 나타내긴 어렵습니다. 또한 exploration vs exploitation problem, transfer learning, meta learning 등 심도깊은 내용들은 초심자입장에선 생략할 수 밖에 없지요. 해당 내용들은 차후에 차근차근 다뤄보도록 하겠습니다. 우리는 여기서 가장 기본적인 강화학습 알고리즘의 갈래들과 어떻게 그것들을 데이터기반으로 학습시킬 수 있는지 다뤄볼 것입니다. 위 그림의 노란 블럭까지만 살펴본다고 생각하시면 되겠습니다.

Model-Free vs Model-Based RL

수많은 강화학습 알고리즘들을 분류할 수 있는 기준 중 가장 중요한 기준은 agent가 environment의 정보(model)에 접근할 수 있냐는 것입니다. 여기서 environment의 model은 대개 reward와 state transition probability를 의미합니다.

Model-based methods: Model에 접근할 수 있는 알고리즘을 일컫습니다. Agent는 model의 정보를 이용해 가능한 선택의 가짓수와 선택의 결과에 대해 미리 생각하고 계획을 세울 수 있습니다. Dynamic programming을 통해 value/Q-function을 구하고 optimal policy를 구하면 그만이죠. 그렇게 학습된 policy를 통해 agent는 결론을 내릴 수 있습니다. 더 나아가 Model이 주어지지 않았을 때에 비해 sample을 효율적으로 사용할 수 있는 장점이 있습니다. AlphaZero와 같은 알고리즘이 여기에 속하겠습니다.

Model-free methods: 하지만 대다수의 경우, agent가 model에 대한 정보를 얻는 것은 거의 불가능에 가깝습니다. 부족한 정보를 채우기 위해, 우리는 여러 차례의 시행착오를 거친 경험으로부터 agent를 학습시킵니다. 당연히 sample도 많이 많이 필요하겠죠. 이 경우 생길 수 있는 가장 큰 문제는 agent가 학습된 model에서만 우수한 성능을 보이고, 그 외 environment에선 뒤떨어진 성능을 보이는 것입니다(overfitting). 그럼에도 불구하고 적용과 튜닝이 쉬워 model-based method보다 널리 사용되고 있습니다.

What to Learn

강화학습을 분류할 수 있는 또 하나의 기준은 무엇을 학습시키느냐입니다. 대개 policy, Q-function, value function, environment model 등이 후보군입니다.

What to Learn in Model-Free RL

Model-free RL은 크게 policy optimization계열의 알고리즘과 Q-learning계열의 알고리즘으로 나눌 수 있습니다.

Policy optimization: 본 방법에선 policy π\pi를 parameter θ\theta를 이용하여 πθ(as)\pi_\theta(a|s)로 표현합니다. Parameter θ\theta를 사용하였단 이야기는 θ\theta를 학습시켜 최적의 policy를 찾는다는 의미겠네요. 성능을 나타내는 cost function J(πθ)J(\pi_\theta)θ\theta에 대한 기울기를 구하고, gradient ascent를 통해 θ\theta를 최적화시킵니다. 최적화의 매 과정마다 J(πθ)\nabla J(\pi_\theta)를 구해줘야 하므로 계산과정에 매 순간의 πθ\pi_\theta가 쓰이겠죠? 이처럼 θ\theta의 최적화과정에 가장 최신 버전의 policy가 필요한 방식을 on-policy라고 합니다. Policy를 직접 최적화하는게 아닌, on-policy value function Vπ(s)V^\pi(s)와 parametrized approximator Vϕ(s)V_\phi(s)가 같아지도록 ϕ\phi를 학습시키는 방법도 존재합니다. 주요 예시: A2C, A3C, PPO, etc.

Q-learning: Optimal Q-function Q(s,a)Q^*(s,a)에 approximator Qθ(s,a)Q_\theta(s,a)를 근사시키는 방법입니다. 이 과정에서 지난 포스트에 배웠던 Bellman equation을 주로 사용하게 됩니다. 이 방법의 가장 큰 특징은 policy optimization계열과 다르게 off-policy라는 점입니다. 그말인즉슨 θ\theta의 최적화과정에 policy가 관여하지 않고, 아무 시점의 sample을 사용해도 된다는 뜻입니다. Sample의 재활용이 가능하다는 점에서 효율적이겠네요. 최종적으로, Qθ(s,a)Q_\theta(s,a)를 학습시킨 후, 우리는 a(s)=arg maxaQθ(s,a)a(s)= \argmax_a Q_\theta(s,a) 를 통해 policy를 구축할 수 있습니다. 주요 예시: DQN, C51, etc.

Trade-offs between policy optimization and Q-learning: 강화학습의 최종 목적은 최적의 policy를 얻어내는 것입니다. 그런 관점에서 policy optimization은 우리의 목적 policy를 직접 최적화시킨다는 측면에서 큰 장점이 있습니다. 하지만 학습에 쓸 sample의 유용성이 떨어진다는 단점이 있죠. 반면에 Q-learning은 Qθ(s,a)Q_\theta(s,a)를 간접적으로 학습시킴으로서 sample의 재활용을 용이하게 한다는 장점이 있지만, 최적화의 안정성이 상대적으로 낮다는 단점이 있습니다. 그렇다면 이 두 학습방법의 장단점을 절충시킬 수는 없을까요?

Interpolating between policy optimization and Q-learning: 그에 대한 해답이 여기에 존재합니다. 두 알고리즘을 적절히 섞어 만든 해법들이 존재합니다. 이는 이후 포스트에서 논문과 함께 좀 더 상세히 살펴보겠습니다. 주요 예시: DDPG, SAC, etc.

What to Learn in Model-Based RL

Model-based RL의 경우 각 알고리즘을 나눌 명확한 기준이 있진 않습니다. 각기 다른 개성을 가지고 있는 알고리즘들을 몇가지 소개하겠습니다. 이들에게 model의 정보가 100% 제공되지는 않습니다. 이에 model을 예측(predict)하는 과정들이 포함됩니다.

Background: Pure planning: 이 방법은, action을 선택하는 과정에 policy가 절대 등장하지 않습니다. 대신 model predictive control(MPC)과 같은 planning기법을 사용합니다. MPC는 현재부터 몇 step 미래(finite horizon)까지 model(environment)을 예측(predict)하고, 그에 해당하는 임시 plan을 짭니다. 그리고 그 임시 plan에 기대어 agent의 다음 action을 선택하지만, 그다지 신뢰할만한 plan은 아니기에 다다음 action까지 선택하진 않습니다. 주요 예시: MBMF, etc.

Expert iteration: 이 방법은 policy πθ(as)\pi_\theta(a|s)를 학습시킵니다. Monte Carlo tree search와 같은 planning algorithm을 이용해 전문성이 보장된 plan을 짜고, policy πθ(as)\pi_\theta(a|s)가 plan과 같이 전문가가 될 때까지 학습을 반복하지요. Plan을 짜고 policy를 이에 맞추어 학습시킨다는 측면에서 위의 pure planning과 유사합니다. 주요 예시: ExIt, AlphaZero, etc.

Data augmentation for model-free methods: 위에서 설명한 model-free RL처럼 policy optimization이나 Q-learning을 사용하되, 학습과정에서 1) 실제경험+가상경험 혹은 2) 가상경험 을 이용합니다. 전통적인 policy optimization이나 Q-learning을 보완하는 것이죠. 주요 예시: MBVE, World models, etc.

Embedding planning loops into policies: 이 방법은 policy 안에 model planning loop을 subroutine으로 포함시킵니다. 매 policy의 계산동안 꾸준히 model planning loop가 돌고 있는 것이죠. 이렇게 하면 policy의 계산에 완전한 plan이 사용되게 되고, 성능이 개선됩니다. Policy가 subroutine 내의 plan을 언제 어떻게 사용할지가 학습의 관건이 됩니다. 이 방법은 굉장한 정확도를 자랑합니다(low bias) Model planning이 이상하게 되었다 싶으면 policy는 이를 무시하는 방향으로 학습될테니까요. 주요 예시: I2A, etc.

지금까지 개괄적인 RL 알고리즘들의 분류를 알아보았습니다. 다음 포스트에선 policy optimization에 대해 좀 더 상세히 살펴보겠습니다.

Reference

[1] R. S. Sutton, A. G. Barto, et al., Introduction to reinforcement learning, vol. 135. MIT press Cambridge, 1998.

[2] OpenAI. Spinning Up, [Online]. Available: https://spinningup.openai.com/