이 글은 현재 활동중인 팀블로그에 함께 작성 되었습니다.

https://ropiens.tistory.com/215

 

editor, Seungeon Baek(백승언)

Reinforcement learning Research Engineer


 

[Kor]

안녕하세요, 오랜만에 블로그를 쓰게 되네요! 이번 글은 논문 리뷰가 아닌, 강화학습 관련한 저의 첫 포스팅 글입니다.

 

 이번에 작성하는 글에서 다루고자 하는 내용은 "강화학습은 어떤 문제를 풀 수 있는가?"입니다. 이와 관련하여, 비슷한 글이 있는지 여러 키워드로 검색을 해 보았는데 강화학습이 어떤 문제를 풀 수 있는지에 대한 내용보다는, 강화학습이 현재 적용되고 있는 분야와 관련된 블로그들이 대부분임을 알 수 있었습니다. (Application of RL, Usage of RL,... etc)

 

 그렇기에, 부족하지만, 제가 한 번 강화학습이 어떤 문제를 풀 수 있는지에 대한 것을 주제로 글을 작성해보자 하는 생각이 들어, 해당 주제를 선정하였습니다. (요즘 핫한 ChatGPT도 슬쩍 끼워 넣어 보았습니다 :D)

 

그럼, 본격적인 포스팅 시작 하겠습니다!

 

[Eng]

 Hello, it's been a while since I wrote a blog post! This post is not a review of a paper but rather my first post on the topic of reinforcement learning.

 

 In this post, I want to cover the topic of "What problems can reinforcement learning solve?". In researching this topic, I searched for various keywords to see if there were any similar articles. Still, I found that most of the blogs related to reinforcement learning were focused on the current fields where it is being applied(Application of RL, Usage of RL,..., etc.) rather than what problems reinforcement learning can solve. (I also sneakily inserted ChatGPT, which is trendy these days :D)

 

Therefore, even though it may be lacking, I have decided to write a post on what RL can do.

 

So without further ado, let's get started with the post!

 

제목

[Kor]

 이번 포스팅 자료의 제목은 What can RL do?로 선정하였습니다. 최근 들어, 유명한 ChatGPT에도 강화학습(RLhf)이 적용 되며, 강화학습에 대한 관심이 늘었지만, 과연 "내 문제에도 강화학습을 적용할 수 있을까?"를 고민하고 계시는 분들께 도움이 될만한 자료라고 생각해주시면 될 것 같습니다.

 

[Eng]

 The title of this post is "What can RL do?". Recently, reinforcement learning(RL) has been applied to famous models like ChatGPT, which has increased interest in RL. However, for those who are wondering, "Can RL be applied to my problem?" this post can be a helpful resource

 

목차

[Kor]

 발표 순서는 다음과 같습니다. 먼저 도입부에서 강화학습이 무엇인지에 대해 간단히 설명을 드리고, 강화학습이 집중해서 풀어온 문제들에 대해, 알고 있는 지식 하에서, 8가지 범주로 나누어 설명을 드리고자 합니다. 흐흐 이렇게나 많은 문제를 풀 수 있다니!

  • Control problem
  • Multi-armed bandit problem
  • Combinatorial optimization
  • Cooperative behavior learning
  • Competitive behavior learning
  • Mixed behavior learning
  • Learning from human experts
  • Learning from human feedback

 

[Eng]

 The presentation order is as follows. First, in the introduction, I will briefly explain what RL is. Then, based on existing knowledge, I will explain the problems that reinforcement learning has been focused on solving, divided into eight categories. Wow, RL can solve so many problems!

  • Control problem
  • Multi-armed bandit problem
  • Combinatorial optimization
  • Cooperative behavior learning
  • Competitive behavior learning
  • Mixed behavior learning
  • Learning from human experts
  • Learning from human feedback

 

[Kor]

먼저, 도입부입니다.

 

[Eng]

First, let's begin with the introduction

 

Basics of RL

[Kor]

이 장과 다음 장에서는, 강화학습의 정의, 목적, 강화학습의 몇몇 중요 요소들에 대해서 말씀을 드리고자 합니다.

 

 강화학습의 정의는 다음과 같습니다.

  • "agent와 환경이 상호 작용을 하며, 이를 통해 얻은 행동에 대한 피드백과 경험들을 토대로 agent를 학습할 수 있게 하는 머신러닝 기법의 종류 중 하나".

 

 또한, 강화학습의 목적은 다음과 같습니다.

  • "에피소드의 끝까지 agent가 받는 보상의 총 합(sum of reward)를 최대화하는 것"
  • 혹은 "최대화 할 수 있게끔 하는 정책(policy)을 학습하는 것" 

 

 강화학습의 중요 요소들은 다음과 같습니다. 이 장에서는, 공학적인 용어보다는 중요한 용어들을 위주로 준비해 두었습니다.

  • Agent: 강화학습 내에서 학습을 수행하는 것 혹은 의사 결정자
  • Environemnt: 에이전트를 제외한 모든 것들을 포함하는 것
  • Step: 환경과 에이전트의 단위 상호작용
  • Episode: 시스템이 끝나거나, 종료 상태에 도달 할 때까지의 스텝의 길이

 

[Eng]

In this slide and the next, I would like to discuss the definition, purpose, and some important components of RL.

 

The definition of RL is as follows:

  • "Type of machine learning technique that enables an agent to learn in an interactive environment by trial and error using feedback from its action and experience"

 

In addition, the purpose of RL is as follows:

  • "To maximise the total sum of rewards(return) received by the environment until the end of the episode"
  • Or "To learn a ppolicy that can maximise the reward"

 

The important elements of RL are as follows. In this chapter, I have prepared important terms rather than mathematical terms.

  • Agent: What performs learning and decision-making in RL
  • Environment: Everything outside the agent
  • Step: Unit interaction between the agent and the environment
  • Episode: The length of steps until the system ends or reaches a terminal condition(state)

 

Basics of RL

[Kor]

강화학습의 중요 요소들은 다음과 같습니다.

  • Action: Agent가 실행 가능한 모든 가능한 움직임들
  • State: 환경으로 부터 받은 현재 상황
  • Reward: 마지막 행동에 대한 평가로써, 환경으로 부터 받은 순시 반환 값피드백
  • Policy: 현재 상황을 기반으로, 다음 액션을 정의함에 있어서, 에이전트가 활용하는 전략
    •  정책 policy는 state space S로부터 action space A로의 사상이며(정의역이 상태 공간, 치역이 행동 공간인 함수!) 보통 theta라고 하는 파라미터로 모수화 되어 있음.

 

 이러한 사전 지식을 활용하여, 장애물을 모두 피해서 도착 지점에 잘 도착하는 슈퍼 마리오(agent)를 학습시키는 예제에 대해서 설명해 보겠습니다.

 

 슈퍼 마리오(RL agent)는 방향키와 대쉬, 점프 키(action) 등을 활용하여, 도착 지점(terminal state)에 도착하기 위해 스테이지 내에서(environment) 이런저런 시도를 해보며(trial and error), 환경으로 부터 점수(feedback)를 받고(굼바를 못 피하면 -10, 거북이를 못 피하면 -10, 금화를 먹으면 +1, 도착점에 도착하면 + 200 등), 이를 통해 특정 상황(state)에서, 어떤 방향키(action) 및 특수 키를 눌러야 하는지에 대한 승리 전략(policy)을 수립하게 된다!

 

어지럽다고요? 죄송합니다. 필력이 좋지가 않네요ㅎ

 

[Eng]

The important elements of reinforcement learning are as follows.

  • Action: All the possible moves that the agent can exert
  • State: Current situation returned by the environment
  • Reward: An immediate return sent back from the environment to evaluate the last action
  • Policy: The strategy that the agent employs to determine the next action based on the current state
    • Policy, parameterized with \theta is a mappping from state space S to action space A

 Using this prior knowledge, let me explain an example of training Super Mario(agent) to arrive at the destination point by avoiding all obstacles.

 The Super Mario(reinforcement learning agent) uses directional keys, dash, jump key(action), etc., to try various approaches(trial and error) to reach the destination point(terminal state) in certain stage(environment). The Super Mario receives score(feedback) from the environment(such as -10 if it fails to dodge a Goomba, -10 for failing to dodge a Koopa Troopa, +1 for collecting a coin, and +200 for arriving at the destination point). Through this, the agent establishes a 쟈ㅜwinning strategy(policy) for which direction key(action) and special key to press in a specific situation(state).

 

Confusing? I'm sorry. My writing skills are not that great.

 

[Kor]

 이 장부터는 본격적으로 강화학습이 집중해서 풀어온 문제들에 대해, 각각의 카테고리 별로 간단한 설명과, 예제 문제들을 소개해 드리도록 하겠습니다.

 

[Eng]

 Starting from this slide, I will focus on the problems RL has been tackling and introduce summaries and examples for each category.

 

Control problem

[Kor]

 먼저, 강화학습 agent는 control problem을 해결할 수 있습니다. Control problem이란, 특정 환경 내에서, 강화학습 agent가 object를 제어하는 문제라고 말씀드릴 수 있을 것 같습니다.

 

 이때, 강화학습 agent는 해당 문제를 다양한 레벨로 다룰 수 있습니다. 인지 - 의사결정 - 제어의 모든 과정을 end-to-end로 다룰 수가 있고, 이러한 연구는 한정된 환경에서 학습을 수행하는 로봇 연구에서 많이 채택됩니다. 또한, 의사결정 - 제어의 부분만 강화학습 agent가 다룰 수 있습니다. 이는 인지 기술이 많이 발달한 자율주행자동차 연구에서 주로 행해지는 것 같습니다. 뿐만 아니라, 강화학습은 시스템의 일부를 제어만 할 수도 있습니다.

 

 이러한 강화학습을 이용해 control problem을 해결 해온 연구의 예시로는, 로봇 팔 도메인에서 블록 쌓기 등의 복잡한 task를 end-to-end로 학습하는 사례들이 있으며, 또한, 자율주행 자동차 도메인에서 decision and control problem을 학습하는 사례 등이 있을 것 같습니다.

 

[Eng]

 First, an RL agent can solve control problems. Control problems can be described as problems where the RL agent controls an object in a particular environment.

 

The RL agent can handle the problem at various levels in this case. It can handle the entire perception, decision-making, and control process end-to-end. This type of research is often adopted in a robot domain where learning is performed in a limited environment. In addition, the agent can only handle decision-making and control as part of the process. This is mainly done in autonomous driving research, where perception technology has advanced. Furthermore, RL can also control only part of the system.

 

 Examples of research that have solved control problems using RL include learning complex tasks such as block stacking in the robot arm domain through end-to-end learning and learning decision and control problems in the autonomous driving domain.

 

Multi-armed bandit problem

[Kor]

 두 번째로, 강화학습 agent는 multi-armed bandit problem을 해결할 수 있습니다. Multi-armed bandit problem이란 특정 집합에서 행동을 선택하는 문제라고 말씀드릴 수 있을 것 같습니다.

 

 이때, 강화학습 agent는 해당 문제를 다양한 horizon으로 다룰 수 있습니다. 유한한 길이의 문제 뿐만 아니라, 무한한 길이의 문제도 잘 다룰 수 있다는 것이 근본 책, 논문 등에서 수학적으로 다루어져 왔습니다.

 

 이러한 강화학습을 이용해 multi-armed bandit problem을 해결해온 연구의 예시로는, 보드 게임 도메인에서의 연구가 있을 것 같습니다. 바둑 같은 경우, 매 스텝 빈칸 중 승률이 높아 보이는 칸을 선택하는 문제로 해석할 수 있지요! 또한, 추천 시스템 도메인 역시 매 트리거 타임마다 user에게 item set 중 아이템을 선택하여 유저에게 추천해 주기 때문에, 많은 연구가 수행되고 있는 것으로 알고 있습니다. 또한, CS 도메인에서는 매 스텝 머신에게 job을 할당하는 문제인 job-shop scheduling 문제에서 강화학습이 이러한 관점으로 적용이 되고 있다고 알고 있습니다.

 

[Eng]

 Secondly, an RL agent can solve the multi-armed bandit problem, which can be described as a problem of selecting actions from a specific set.

 

 In this case, the RL agent can handle this problem from various horizons. It has been mathematically treated in the literature as well as in papers, not only for finite-length problems.

 

 Examples of research that have solved the multi-armed bandit problem using RL include studies in board game domains. For example, in the game of Go, the problem can be interpreted as selecting a blank space with a high winning probability at each step. In addition, in the domain of recommendation systems, many studies have been conducted as the system recommends an item to a user by selecting an item from an item set at each trigger time. Also, in the computer science domain, RL is being applied from this perspective in job-shop scheduling problems where a machine is assigned a job at each step.

 

Combinatorial optimization problem

[Kor]

 다음으로, 강화학습 agent는 combinatorial optimization problem을 해결 할 수 있습니다. Combinatorial optimization problem이란 주어진 특정 집합 내에서 최적의 결정들(결정들의 조합)을 내리는 문제라고 말씀드릴 수 있을 것 같습니다.

 

 이때, 강화학습 agent는 이를 1 step MDP로 간주 하여, 해당의 조합 최적화 문제를 해결해 낼 수 있다는 것이 최근 들어 많은 연구 사례들이 보여주고 있습니다.

 

 이러한 강화학습을 이용해 combinatorial optimization problem을 해결 해 온 연구의 예시로는, 웨이퍼 상에 칩들을 배치하는, chip placement도메인에서의 연구가 있을 것 같습니다. 또한, routing problem 분야에서도, 단일 차량 혹은 다중 차량의 운행 순서를 정해주는 등 강화학습을 이용하여 여러 연구들이 진행되고 있는 것으로 알고 있습니다.

 뿐만 아니라, 강화학습은 수학 문제를 해결할 수 있는데, 지도학습에서 특정 task를 학습하기 위해 어떤 loss 식이 좋은지를 graph 혹은 symbolic으로 표현된 term들의 최적의 조합을 찾는 방식으로 해당 문제를 해결하는 것이 가능합니다.

 

[Eng]

 Next, an RL agent can solve combinatorial optimization problems. Combinatorial optimization problems refer to problems of making optimal decisions(combination of decision) witn a certain set.

 

 In this case, the reinforcement learning agent can consider it as a 1-step MDP and solve the combinatorial optimization problem, as many recent reserach cases have shown.

 

 Examples of research that has used reinforcement learning to solve combinatorial optimization problems include chip placement domains, where chips are placed on a wafer, and the routing problem field, where reinforcement learning is used to determine the operating order of single or multiple vehicles.

In addition, reinforcement learning can solve mathematical problems. In supervised learning, it is possible to solve problmes by finding the optimal combination of graph or symbolically expressed terms that are good for a given loss function used to learn a specific task.

 

Cooperative behavior learning problem

[Kor]

 또한, 강화학습 agent는 cooperative behavior learning problem을 해결할 수 있습니다. 협력적인 행위를 학습한다는 것은, 주어진 특정 환경 내에서 여러 객체들이 하나의 목표를 달성하기 위한 행위들을 학습한다는 것으로 말씀드릴 수 있을 것 같습니다.

 

 이때, 강화학습은 해당 문제를 individual reward만을 줘서 해결 할지, team reward를 주어 credit assignment까지 풀어낼지를 세팅하여 해결할 수 있습니다.

 

 강화학습을 이용해 cooperative behavior를 학습해온 연구의 예시로는, 통신 도메인에서 기지국이 모든 사용자들을 고려해 편익이 최대로 하는 방향으로 resource를 분배하는 등의 연구가 있을 것 같습니다.

또한, 게임 분야에서도, 이러한 협력적인 행위를 학습하기 위한 연구들이 많이 수행되고 있으며, 대표적으로 SMAC이라고 하는, 3s vs 5z 등 다중 유닛이 협력하여 상대방을 쓰러뜨리는 행위를 학습하는 환경에서 여러 연구들이 수행되고 있는 것으로 알고 있습니다.

 

[Eng]

 Moreover, an RL agent can solve cooperative behavior learning problems. Learning cooperative behavior menas learning actions by multiple objects within a given environment to archive a team goal.

 

 In this case, RL can solve the problem by setting wheter to give individual rewards or team rewards, and solving the credit assignment when giving team rewards.

 

 Examples of research that has used RL to learn cooperative behavior include studies in the communication domain, such as the dstribution of resource by base stations considering all users for maximum benefit.

In addition, in the game domain, many studies are being conducted to learn such cooperative behavior, and there are several studies carried out in environments where multiple units cooperate to take doooown opponents, such as 3s vs 5z, known as SMAC envrionment.

 

Competitive behavior learning problem

[Kor]

 더욱이, 강화학습 agent는 competitive behavior learning problem을 해결 할 수 있습니다. 경쟁적인 행위를 학습한다는 것은, 주어진 특정 환경 내에서 여러 객체들이 zero-sum game을 수행하고, 각자가 상대에 대응해 이기기 위한 전략을 학습한다는 것으로 말씀드릴 수 있을 것 같습니다.

 

 강화학습을 이용해 competitive behavior를 학습해온 연구의 예시로는, 가장 유명한 AlphaGo, AlphaStar 등이 있을 것 같습니다. 워낙 유명한 연구들이지요.

 

[Eng]

 In addition, an RL agent can solve competitive behavior learning problems. Learning competitive behavior menas that multiple objects perform a zero-sum game in a given environment and learn strategies to truimph against each other.

 

 Examples of studies that have used RL to learn competitive behavior include the famous AlphaGo and AlphaStar. Theses studies are very well known!

 

Mixed behavior learning problem

[Kor]

 이 뿐만 아니라, 강화학습 agent는 cooperative behavior와 competitive behavior가 혼합된, mixed behavior를 학습할 수 있습니다. 예시로 슬라이드에 첨부한 Predetor-Prey game 환경처럼, 동일 그룹 내에서는 협력적인 행위를, 타 그룹과는 경쟁적인 행위를 동시에 학습할 수 있는 것이죠.

 

 이러한 강화학습의 능력에 힘입어, game domain에서는 11 vs 11 축구를 관제하는 big brother와 같은 centralized agent를 학습할 수 있었고(Google Research Football Environment), 자율주행 자동차 도메인 내에서는 Mixed autonomy 하에서 일반 차량들과 조화를 이루는 자율주행 자동차의 제어 방법이 연구되고 있습니다.

 

[Eng]

 Furthermore, an RL agent can learn mixed behaviors, which combine cooperative and competitive behaviors. For example, in an environment such as Predetor-Prey game figured to the slides, agents can learn both cooperative behavior within the same group and competitive behavior with other groups.

 

 Thanks to this ability of RL, centralized agents like the big brother controlling 11 vs 11 soccer games in the game domain(Google Research Football Environment) have been developed, and in the autonomous vehicle domain, research is being conducted on controlling autonomous vehicles that harmonize with human vehicles under mixed autonomy. 

 

Learning from human experts problem

[Kor]

 그리고, 강화학습 agent는 learning from human experts(demonstration)컨셉으로 학습할 수 있습니다. 해당 방법론을 이용하는 강화학습 기법들은 인간(전문가)의 시연데이터를 통해 학습을 수행하기 때문에, 밑바닥부터 학습하는 기존의 강화학습들에 비하여 복잡한 task를 상대적으로 쉽게 학습해 낼 수 있다고 말씀드릴 수 있을 것 같습니다.

 

 이러한 방식을 통해 학습한 강화학습 연구의 예시로는, 자율주행 자동차 도메인 내에서 복잡한 시나리오(회전 교차로, 신호 교차로, 도심부 주행 등) 에서의 계획 및 제어를 수행하는 연구가 있을 것 같습니다. 또한, 금융 분야에서 복잡한 시장 상황을 고려하여 주식을 사고파는 트레이딩 봇 같은 경우도 이러한 RLfD(Reinforcement Learning from Demonstration) 컨셉의 연구들이 있는 것으로 알고 있습니다.

뿐만 아니라, 최근 DeepMind의 GATO라고 하는 agent는 실제 사람처럼 "여러 개"의 게임을 사람 이상의 실력으로 클리어하는 괴물과 같은 모습도 보여주었습니다. 해당 agent는 human experts의 demonstration을 통해 학습이 이루어졌답니다.

 

[Eng]

 And then, an RL agent can learn from human experts(demonstration). RL techniques that use this concpet can leaern complex tasks relatively easily compared to traditional RL methods, as they leveraging the knowledge through human demonstration data rather than starting from scratch.

 

 Examples of RL research learned through this approach, there are studies that perform planning and control in complex scenarios(such as turning intersections, signal intersections, and urban driving) in the autonomous vehicle domain. Also, in the finantial sector, there are studies on trading bots that buy and sell stocks considering complex market situations based on the RLfD(Reinforcement Learning from Demonstration) concept.

Moreover, DeepMind's recent agent called GATO showed a monstrous capability to clear "multiple games" with human-level proficiency. The agent learned through demonstration from human experts.

 

Learning from human feedback(preference) problem

[Kor]

 마지막으로, 강화학습 agent는 learning from human feedback(preference)컨셉으로 학습할 수 있습니다. 해당 방법론을 이용하는 강화학습 기법들은 인간의 직접적인 feedback을 받아 학습을 수행하기 때문에, 자연스러운 action을 생성해 낼 수 있다는 것이 장점으로 생각됩니다.

 

 이를 실현하기 위해, 기존의 강화학습과는 조금 다르게, 환경은 reward를 제공하지 않게 됩니다. 대신에, 사람이 observation을 보고 feedback을 주면, 특별한 모델인 reward predictor가 사람의 feedback을 통해 reward 함수를 모델링, 해당 reward 모델과 함께 강화학습 agent가 학습되는 방식인 것 같습니다.

 

 이러한 방식을 통해 학습한 강화학습 연구의 예시로는, 유명한 Open AI의 로봇 "손" 큐브 풀기 연구(DAgger)가 있을 것 같습니다. 사실은 reward predictor를 이용해 학습이 되지는 않았지만, 계속하여 사람이 더 좋은 행위를 개입해서 알려주는 DAgger의 방식이 RLhf(RL frorm human preference)와 철학적으로는 비슷하다고 생각하여 넣어 보았습니다.

더욱이, 해당 방식은 LLM(Large Language Model)과 결합하여, 최근 돌풍을 일으키고 있는 ChatGPT!!를 가능하게 한 기술이기도 합니다. RLhf 덕분에 ChatGPT는 조금 더 친절하고, 조금 더 자연스럽고, 또한 혐오 발언 등을 자제할 수 있었다고 합니다.

 

[Eng]

 Finally, an RL agent can also learn from human feedback(preference). The RL techniques that use human feedback can generate natural actions as they receive direct feedback from humans.

 

 To achieve this, the environment does not provide rewards as in traditional RL. Instead, humans give feedback based on observations, and a special model called the reward predictor models the reward function based on the human feedback. The RL agent is trained with this reward model.

 

 An example of RL research using this approach is the famous OpenAI's robot hand solving a Rubik's cube using the DAgger algorithm. Although not trained using the reward predictor, the DAgger approach continuously incorporates better behaviores informed by human feedback, which is similaar philosophically to RLhf(Reinforcement Learning from human preference)

Moreover, this approach can be combined with LLM(Large Language Model) technology, which has recently gained popularity in the form of ChatGPT. Thanks to RLhf, ChatGPT can be more friendly, natural, and also avoid hate speech.

 

Thank you!!

[Kor]

 정말로 오랜만에 블로그 글을 쓰게 되었는데, 여기까지 읽어 주신 모든 분들께, 짧지 않은 글을 읽어 주셔서 감사하다는 말씀을 드립니다. 궁금하신 점들은 댓글을 통해 질문을 주시면 가끔씩이라도 들러 답변을 드릴 수 있도록 하겠습니다.

 

[Eng]

 This is my first time writing a blog post in Eng, and I would like to thank those who have read this lengthy post. If you have any question, please feel free to leave a comment and I will try to drop by and provide answers whenever possible.

강화학습 논문 리뷰 연재 여섯 번째 입니다.

 

현재 감사하게도 함께 하고있는, '로봇이 아닙니다' 팀블로그에 합류한 이후 처음으로 쓰는 연재글이다 보니 퀄리티에 신경을 쓰려고 노력했고, 그러다 보니 예상 기간보다 일주일 이상!? 늦게 글을 올리게 되었습니다.

 

강화학습, 로보틱스, 딥러닝 관련 포스팅에 관심 많으신 분들은 밑의 블로그도 한 번 들러주세요 ^^

https://ropiens.tistory.com/

 

로봇이 아닙니다.

당황했습니까? 휴먼

ropiens.tistory.com

 

 본론으로 돌아와, 이번 논문 리뷰글은 Multi-goal 강화학습, 희소 보상 환경 문제와 관련된 Hindsight Experience Replay(이하 HER)에 대한 내용으로 이루어져 있습니다. HER의 컨셉을 간단히 말씀 드리면, 사람처럼 실패를 통해 학습하여, 목표에 도달할 수 있는 agent를 설계하고 싶다! 입니다.

 

그럼, 본격적인 리뷰 시작하겠습니다!

 

 논문의 제목은 상당히 아리송 합니다. 'Hind'라는 단어에는 뒤라는 뜻이 있고, 'sight'은 보다인 see의 과거형이죠. 그래서, 'Hindsight' 이란 단순하게는 뒤를 본다 라는 뜻이라고 합니다. 다른 뜻으로는 뒤를 보아 깨닫는다라는 뜻도 있다고 합니다.

 

 그리하여, 제목의 뜻하는 바는, '경험 메모리를 통해 뒤를 보고 깨닫는 컨셉의 알고리즘' 정도로 의역할 수 있을 것 같습니다. 댓글을 통해 더욱 좋은 번역에 대해 토의를 나누길 기대합니다!

 

 목차는 다음과 같습니다.

가장 먼저, 도입부에서는, 강화학습에서 중요한 문제인 탐험과 이용의 딜레마 문제와, HER에서 해결하고자 했던 희소 보상 문제 등을 몇 몇 환경을 예시로 들어 설명드리려고 합니다.

 

 그 후, 본론에서는, HER을 더욱 잘 이해하기 위한 배경에 대해(on policy vs off policy, UVFA) 설명 드리고, HER에 대한 본 설명을 진행하도록 하겠습니다.

 

 마지막으로, HER 논문에서 소개된 실험 환경과, 실험 결과 등을 같이 확인해 보는 시간으로, 리뷰를 마무리 짓겠습니다.

 

 강화학습의 최종적인 목표는, 주어진 문제를 해결하기 위해 agent가 최적의 가치 함수 및 정책을 학습 하는 것입니다. 이를 위해서, agent는 탐험과 이용을 적절히 배분할 필요가 있습니다. 각각의 역할과 특성은 다음과 같습니다.

    1) Agent는 탐험을 통해서, 최고의 의사선택을 내리기 위한 정보들을 모을 수 있습니다.

        (1) 탐험은 새로운 지식을 만들어 내는 것과 같습니다.

        (2) 탐험은 agent가 새로운 방법으로 생각할 수 있게 해줍니다. 

 

    2) Agent는 이용 혹은 착취를 통해서, 현재 주어진 정보들을 기반으로 최고의 의사선택을 내릴 수 있습니다.

        (1) 이용은 이미 알고 있는 지식을 사용하는 것과 같습니다.

        (2) 이용은 (탐험으로 얻은)경험을 통해 최고의 방법을 선택할 수 있게 해줍니다.

 

 이러한 탐험과 이용의 균형을 어떻게 맞출 것이냐는 강화학습에서 가장 중요한 문제 중 하나입니다. 충분한 탐험이 수행되지 않으면, local optimal 해에 빠져버리거나, 문제를 해결 할 수 없을 수 있기 때문입니다. 이를 해결하기 위해, 기존의 Q-learning 계열 알고리즘들은 epsilon - greedy algorithm을 통해 탐험과 이용의 균형을 조절하며, PG 계열 알고리즘은 entropy term을 통해 탐험과 이용의 균형을 조절해오곤 했습니다.

 

 앞서 말씀드린 충분한 탐험의 문제는, 특히 희소 보상(sparse reward) 환경에서 더욱 중요한 문제로 떠올랐습니다. 희소 보상 환경이란, 환경 자체가 non-zero reward signal을 굉장희 희소하게 제공하는 경우를 뜻합니다.

 

 이러한 환경에서, non-zero reward signal을 얻기 전까지 agent의 이용(exploitation)은 크게 의미 없는 행동이 되버리며, 결국 탐험만을 통해서 non-zero signal을 얻는 것이 필요한, 탐험이 굉장히 어려운(Hard explora tion) 문제가 되어버립니다.

 

 이 장에서 저는, 이해를 돕기 위해, 유명한 sparse reward environment의 예시를 두 가지 소개해 드리도록 하겠습니다.

 

    (1) 몬테수마의 복수(Montezuma's revenge)

 첫 번째는, ALE 환경에서 학습 가능한 몬테수마의 복수 게임입니다. sparse reward 문제로 가장 유명한 환경이며,그림의 캐릭터가 이미지만을 보고 사다리를 내려가서, 해골을 뛰어넘고, 다시 사다리를 올라가서 키를 얻어야지만 보상이 발생합니다.... 유명한 DQN, DDQN 등은 이 문제를 해결하지 못 했으며, SIL, NGU 등 탐험을 고려한 알고리즘이 나온 후에야 이 문제를 해결할 수 있었습니다.

 

    (2) FetchPush

 두 번째는, OpenAI에서 goal-based task를 학습하기 위해 제작한 gym Robotics 환경 중 하나인 FetchPush입니다. 이 환경에서 agent는 검정색의 puck을 밀어 빨간색의 공을 밀어내야 하며, reward는 말씀드린 task를 성공적으로 수행했을 때만 발생합니다. 하지만, 이 환경의 경우 reward level을 조절할 수 있으며, 사용자의 의도에 따라 dense reward를 제공하기도 합니다.

 

 (소개해 드리고자 하는 HER은 바로 이 문제를 잘 해결 하였으며, FetchPush 뿐만 아니라 gym Robotics 환경의 여러 문제를 sparse rewrad setting으로 해결해 낸  알고리즘입니다.)

 

 이러한 sparse reard 환경을 해결하기 위한 접근들은 굉장히 많지만, 이 장에서는 몇몇 개념에 대한 소개와, 몬테수마 복수를 예시로 든 설명을 드리고자 합니다.

 

    (1) Reward shaping

 먼저, 성공, 실패에 따라서만 제공되는 reward이외에도, 문제 해결에 도움이 되는 행동을 권장하는 방향으로 reward engineering(혹은 reward shaping)을 수행하는 것입니다. 이 방법의 경우, 해결하고자 하는 문제의 domain knowledge가 요구된다는 어려움이 존재합니다.

 

 이러한 접근법을 몬테수마의 복수를 예로 들어 설명드리면, 사다리를 내려갈때 (+1), 해골에게 죽었을 때(-1) 등등 으로 보상을 설계하여 환경에서 주도록 하는 것입니다.

 

    (2) Learning from demonstration

 두 번째로, 사람 혹은 기존의 제어기등으로 부터 demonstration sample을 얻은 후, 그 sample과 탐험을 통해 얻는 sample 모두로 학습을 수행하는 접근 방법이 존재합니다. 이 방법의 경우, reward shaping을 해주지 않아도 된다는 장점이 있지만, 충분한 demonstration을 얻는 과정에서 어려움이 존재할 수 있습니다.

 

 이러한 접근법을 몬테수마의 복수를 예로 들어 설명드리면, 고수인 사람이 플레이한 게임의 trajectory를 replay buffer에 저장한 뒤, 이를 학습에 직접적으로 이용하는 것입니다. (DQfD, DDPGfD 등의 알고리즘)

 

    (3) Curiosity-driven exploration

 세 번째로, 호기심 기반의 탐험을 통해 agent가 충분한 탐험을 할 수 있게 해주는 접근 방법이 있습니다. 이는 새로운 상태와 행동을 agent가 마주칠 경우, 내적 동기 보상을 발생시키는 방법으로 구현되며, 이 방법의 경우도 reward shaping을 해주지 않아도 된다는 장점이 있습니다.

 

 이러한 접근법을 몬테수마의 복수를 예로 들어 설명드리면 목표인 키를 얻기 위해, 호기심을 가지고 적극적으로, 가보지 않은 장소로 가거나, 해보지 않은 행동 들을 하는 것입니다.

 

    (4) HER

 이번 리뷰에서 다루는 HER입니다. HER에서는 agent가 goal에 도착해 non-zero reward signal을 발생시키는 것에 실패 하더라도, 실패한 trajectory로부터 pseudo reward를 발생시키는 방법 통해, agent가 결국 goal에 도착할 수 있도록 했습니다.

 

 이러한 접근법을 몬테수마의 복수를 예로 들어 설명드리면, 해골의 움직임을 점프를 통해 피하진 못 했지만, 어쨌든 해골 앞까지는 이동했다는 것을 학습하며, 이러한 시도를 반복해 숙련도를 높여가는 것입니다.

 

 (1)을 제외한 (2~4)는 사람이 학습하는 방법과 비슷한 방법이죠? 강화학습이 수치 계산적으로 발전하는 것도 멋지고, 새로운 신경망을 적용하여 발전하는것도 멋질 수 있지만, 가장 재미있다고 느껴질 때는 역시나 이런 사람의 학습 방법을 적용할 때가 아닌가 싶습니다. ^^

 

 서론이 너무 길어진 느낌이 있네요ㅠㅠ 다음 슬라이드 부터는 HER에 대해 본격적으로 다루도록 하겠습니다.

 

 그녀가 떠오르는 제목입니다.. 저만 그런게 아니겠죠?

 

 이 장에서는, HER을 잘 이해하기 위한 배경들에 대해서 먼저 말씀드리도록 하겠습니다. 

 

    (1) On policy vs Off policy algorithms

 먼저, 강화학습을 공부하다 보면 자주 마주치는 단어인 on policy, off policy의 차이 대해서 간단히 소개하겠습니다.

 

On-policy algorithm의 경우, agent가 학습에 사용할 sample을 얻는 behavioral policy와, 실제 학습이 수행되며 개선될 target policy가 같거나, 유사한 알고리즘들을 통칭합니다. 유명한 A2C, TRPO, PPO 등이 이러한 알고리즘군에 속합니다.

 

Off-policy algorithm의 경우, behavioral policy와 target policy가 같지 않아도 되는 알고리즘을 통칭합니다. 그렇기 때문에, 학습이 수행되면서 얻은 sample들을 replay buffer에 저장하여 두고두고 학습에 사용할 수 있으며, 그덕분에 sample efficiency가 on-policy algorithm에 비해 높습니다. 유명한 DQN, DDPG, SAC 등이 이러한 알고리즘군에 속합니다.

 

    (2) Universal value function approximation (UVFA)

 두 번째로, HER이 아이디어를 차용한 논문인 UVFA에 대해서 소게하겠습니다. (무려 david silver님의 논문이었습니다...)

 

UVFA에서는, 1) 하나의 agent가 여러 goal에 대해서 학습 할 수 있도록, 가치함수를 goal 별로 따로 계산 했습니다. 뿐만 아니라, goal 별로 reward function을 따로 계산하였으며, 이를 pseudo reward Rg라고 정의하였습니다.

 

또한, 2) 이를 조건부 확률 등의 개념을 차용하는 것이 아니라. 단순히 state와 goal을 concatenate한 것을 가치함수의 입력으로 넣어주는 방식을 제안했습니다. 높은 성능의 approximator(NN 등)라면, 이를 잘 분간해 낼 것이라는 기대를 가지고 실험을 수행했으며, 좋은 결과를 얻었습니다.

 

 HER은 replay buffer와 관련있는 알고리즘이다 보니 DQN, DDPG등의 off-policy algorithm에만 적용 할 수 있는 알고리즘이며, 별도의 언급은 없지만, UVFA에서 제시한 pseudo reward개념을 통해 실패한 trajectory의 achieved goal을 desired goal로 치환하여 reward signal을 발생시키는 접근법을 취하고 있습니다. 자세한 내용은 이어서 설명하도록 하겠습니다.

 

 본격적인 방법론 설명에 앞서, 저자들이 제안한 algorithm에 대해 어떤 평을 했는지에 대해 소개해드리겠습니다.

 

    (1) Goal g를 달성하지 못한 임의의 실패한 trajectory를 해당 trajectory의 종단 상태 등에 다다르는 정보를 줄 수 있는 trajectory로써 재 평가하여 학습에 이용하는, 마치 사람처럼 학습하는 컨셉을 제시

    (2) Sparse reward 환경에서 샘플 효율적인 학습이 가능한 알고리즘이라는 것을 실험을 통해 증명

    (3) 동일한 환경에서 dense reward보다 sparse reward setting에서 더 좋은 성능을 보임으로써, 복잡한 reward engineering이 필요 없을 수 있음을 보여줌

    (4) 기존의 off-policy algorithm과 결합하는 것이 매우 쉽다는 것을  강조

 

 다음 슬라이드 부터는, 이러한 평가를 내린 HER 알고리즘에 대해 본격적으로 다루도록 하겠습니다.

 

 먼저, HER의 의사 코드 입니다. 임의의 off-policy algorithm이 주어져 있다고 가정하며, 뒤이어 설명드릴 HER의 strategy S와, sparse reward function R을 정의해줍니다.

 

 이후 에피소드 별로 step을 밟는 과정에서는, 정책을 통해 행동을 고르는 과정에서, 정책의 입력으로 state가 아닌 state와 goal을 concatenate한 s||g를 활용해주고 있습니다. 이는 UVFA에서 차용한 개념으로 보입니다.

 

 그 후, 학습을 수행하기 전, replay buffer에서 transition을 sampling 하는 것과 함께, strategy S에 따라 additional goal g'을 sampling 하는 모습을 볼 수 있습니다. 이는, 문제를 관통하는 original goal g가 있긴 하지만, g에 도달하지 못한 trajectory의 경우 rg는 항상 near-zero reward일 것이기 때문에, additinal goal g'에 대해 새로 non-zero reward signal을 계산하기 위함입니다.

 

 그리하여, additional goal g'에 대해 발생한 non-zero reward signal rg'과 s||g'으로 치환된 sample을 통해 agent는 학습을 수행합니다. 이러한 과정을 통해 original goal g에 도달하는 것을 실패한 trajectory로 부터도 정책이 개선될 수 있는 것입니다.

 

 다음 슬라이드 부터는, HER에서 additional goal을 sampling할 때 사용한 strategy(전략) S 에 대해 설명드리겠습니다.

 

 HER의 저자들은, additional goal을 sampling 하는 방법에 여러가지 전략이 있을 수 있다는 것을 시인하며, 자신들이 고안한 4가지의 전략에 대해서 설명을 수행했습니다. 논문에는 너무 간단하게 설명이 되어 있어, 실제 구현된 code를 참고하여 전략별로 설명을 재구성 해보았습니다.

 

    (1) Final

 가장 직관적으로 이해가 쉬운 전략입니다. 임의의 3개(roll_out_batch)의 trajectory를 선택 후, 2개(step_batch)의 sample transition들을 학습에 사용한다고 했을 때, Final 전략 사용시 1개(replay_k)의 goal을 실제 그 trajectory의 종단 상태 s_T로 재평가합니다. 그리하여, 첫 번째 그림의 sampled state s의 경우, s||g의 g를 g_origin이 아닌 g_desired,1로 치환 했음을 알 수있으며, 이 trajectory에서 여러 개의 sample transition을 선택할 경우, non-zero reward가 발생할 수 있습니다.

 

    (2) Future

 가장 직관적으로 이해하기 어려운 전략입니다.. 선택한 trajectory의 종단 상태를 goal로 사용하는 Final 전략과 달리, 선택한 trajectory의 선택된 sampled state를 기준으로, 임의의 step time 이후 도달하는 state를 g_origin 대신 goal로써 사용합니다. 그리하여, Final의 g_desired,1과 위치를 비교해 보면 조금 더 앞쪽에 goal이 위치함을 알 수 있습니다.

 

    (3) Episode

 Future와 비슷한 전략입니다. Episode 전략의 경우, 선택한 trajectory의 선택된 sampled state의 위치와 상관없이, 그 trajectory 내부의 임의의 state를 goal로써 사용합니다.

 

    (4) Random

 말 그대로 Random 전략입니다. sample transition을 얻기 위한 trajectory와 관계 없는, 전체 훈련 과정 중에 거쳐온 state중 임의의 state를 goal로써 사용합니다.

 

 기존의 논문에 서술된 내용이 조금 부족하여, 열심히 자료를 만들어 봤지만... 이럼에도 완벽한 설명은 힘든 것 같습니다. 실제로 구현 및 사용을 원하시는 분들의 경우에는 원 저자들의 코드를 보는 것이 가장 좋을 것 같다는 생각이 듭니다. 운이 좋게도 원 저자들이 OpenAI이기 때문에, 밑의 링크인 stable baseline에 깔끔한 구현체가 존재합니다.

 

https://github.com/openai/baselines

 

openai/baselines

OpenAI Baselines: high-quality implementations of reinforcement learning algorithms - openai/baselines

github.com

 

 저자들은 이러한 goal sampling 전략에 따른 HER의 성능을 테스트하는 것을 포함하여, 여러 실험을 수행 하였으며, 다음 슬라이드부터는 실험 결과에 대해 설명 드리도록 하겠습니다.

 

 먼저, 저자들이 실험을 수행한 환경에 대해 간단히 소개해드리고 넘어가도록 하겠습니다. 저자들은, 앞서 도입부에서 설명드렸던 FetchPush을 포함하여 gym robotics의 세개의 환경을 사용했습니다. 각각의 환경에 대한 소개는 슬라이드에 기술되어 있는 문장을 참고하시면 될 것 같습니다.

 

 각각의 환경에서의 MDP formulation은 다음과 같습니다. 특이한 점은, Reward의 level을 sparse reward, shaped reward로 선택할 수 있다는 것이며, HER 사용시 strategy S 또한 선택하도록 되어 있습니다.

 

 이 장에서는, 실험 결과를 설명드리도록 하겠습니다. 저자들은 논문에서 크게 다섯 가지의 실험 결과를 제공하고 있으며, 이 장에서는 먼저 두 가지 결과에 대해 공유드리겠습니다.

 

    (1) Multi-goal 문제에 대해, HER 적용 유무에 따른 성능 비교

 하단 왼쪽의 그래프는 multi-goal 문제를 학습했을 때의 success rate를 보여줍니다. HER을 적용한 빨간색과 파란색 그래프의 경우, 모든 문제에 대해 상당한 성능을 보이고 있지만, HER이 적용되지 않은 DDPG와, count-based exploration 기법이 추가된 DDPG의 경우에는 그에 미치지 못하는 성능을 보인다는 것을 알 수 있습니다.

 

    (2) Single-goal 문제에 대해, HER 적용 유무에 따른 성능 비교

 하단 오른쪽의 그래프는 보다 간단한, single-goal 문제를 학습했을 때의 success rate를 보여줍니다. HER을 적용한 파란색 그래프의 경우, 기존의 multi-goal 문제에서 보였던 압도적인 성능을 보여주지는 못 하는 것을 알 수 있습니다. UFVA 특성 상 unseen goal에 유리하도록 설계가 되어 있는데, 그 장점이 single-goal 문제에선 퇴색됬던 것 같습니다. 하지만, pushing과 pick-and-place 문제에서는 DDPG, DDPG with count-based exploration보다 뛰어난 성능을 보인다는 것을 알 수 있었습니다.

 

 이 장에서는, 나머지 세 가지 중 두 가지의 실험 결과에 대해서 공유드릴 수 있도록 하겠습니다.

(남은 하나는, sparse reward와 dense reward setting시 sparse reward 환경에서 HER이 더 좋은 결과를 냈다는 결과입니다. 완벽한 이해가 되지 않아서, 스킵 하였으며, 궁금하신 분들은 밑의 원 저자의 논문을 참고해주시길 바랍니다.)

 

    (3) Strategy S와, additional goal의 개수인 replay_k에 따른 HER의 성능 비교

 앞서 방법론 쪽에서 설명드렸던 Strategy S와, sampling된 additional goal의 개수에 따른 성능을 세 개의 환경에서 비교한 실험입니다. 하단 왼쪽 그림이 실험의 결과 그래프 이며, 그래프의 x축은 additional goal의 개수를 의미하며, 그래프의 색과 형상에 따라 noHER과 4개의 전략을 적용한 HER들의 성능을 확인할 수 있습니다. 결론만 말씀 드리면, 4개 혹은 8개의 goal을 sampling한 future strategy가 가장 좋은 성능을 보였다고 합니다.

 

* 하지만, 이 문제의 경우, time step이 50으로 길지 않은 episode로 알고 있기 때문에, 이 replay_k의 개수는 문제별로 크게 다르지 않을까 하는 생각이 듭니다.

 

    (4) Deployment on a real world

 역시나 OpenAI의 클래스에 맞게, 저자들은 시뮬레이터를 통해 학습된 정책을 실제 로봇에 적용하는 실험을 추가적으로 수행하였습니다. 그리하여, 바로 적용한 정책의 경우에는 시뮬레이터에서 얻은 결과에 비해 낮은, 40%의 success rate를 보였다는 것과, 학습 시 observation에 noise를 부여하는 과정을 포함해 학습한 정책의 경우에는 시뮬레이터에서 얻은 결과와 동일한, 100%의 success rate를 보였다는 결과를 공유했습니다.

 

 논문을 리뷰하다 보니, 코드 분석에 꽤나 많은 시간을 소모했는데, 그 시간이 아까워서 HER도 구현해야 하나 고민이 많습니다. 어찌 되었든... 오랜만에 글을 쓰게 되었는데, 길고 긴 글을 읽어주신 독자분께 진심으로 감사를 표합니다.

 

수학적인 난이도가 높았던 논문은 아니었던 것 같아서, 쭉 읽으시면 저와 동일한 이해를 얻지 않을까 싶습니다. 하지만, 이해가 어려운 점이 있으셨다면, 댓글을 통해 질문을 주시면 성의껏 답변을 해 드리도록 하겠습니다.

 

논문의 링크와, 전체 슬라이드는 밑에 준비되어 있습니다.

 

https://arxiv.org/abs/1707.01495

 

Hindsight Experience Replay

Dealing with sparse rewards is one of the biggest challenges in Reinforcement Learning (RL). We present a novel technique called Hindsight Experience Replay which allows sample-efficient learning from rewards which are sparse and binary and therefore avoid

arxiv.org

 

01234567891011121314

 이 글에서는, 강화학습 논문 리뷰 다섯 번째 연재글에서 리뷰했던 MADDPG의 성능을 확인하기 위해, 기존의 TD3, DDPG와 비교한 결과를 공유하려 합니다.

 

 구현은 RL_Korea의 옥찬호님이 주도하시는 RL 논문 리뷰 스터디 (4기)에 참여하며 수행하였습니다. 저 뿐만 아니라, 다른 분들의 논문 리뷰 자료들까지 포함되어 있는 깃허브 주소는 다음과 같습니다.  github.com/utilForever/rl-paper-study

 

utilForever/rl-paper-study

Reinforcement Learning paper review study. Contribute to utilForever/rl-paper-study development by creating an account on GitHub.

github.com

 

그럼 본격적인 리뷰 시작하겠습니다!

 

 논문의 제목은 다시 보아도 직관적입니다. 협력적이거나, 경쟁적인 행위들이 섞여있는 혼합 환경에서의 Multi-agent actor-critic 알고리즘에 대해 다룰 것만 같은 이 느낌.. 넘어 가겠습니다!

 

 목차는 다음과 같습니다.

이번 리뷰에서는, 기존의 기법인 DDPG, TD3와 MADDPG 모두 간단한 설명만을 드린 뒤, 적용한 환경에 대한 간단한 소개를, 마지막으로 각 기법들의 시뮬레이션 결과를 공유하고자 합니다.

 

방법론입니다. 기존의 기법인 DDPG, TD3, 그리고 MADDPG에 대해 한장의 슬라이드로 슥슥 넘어가겠습니다.

 

 먼저, DDPG 입니다. DDPG의 경우, 제어 등의 continuous control problem에서 좋은 성능을 보였다고 알려져 있는 알고리즘입니다.

 

 이 알고리즘의 경우, DQN의 성공 이후 DQN의 여러 특성들을 기존의 DPG 알고리즘에 차용해서 좋은 성능을 보여주었습니다.

  1) Experience replay

     DQN에서 크게 성공을 거둔 이유 중 하나인, 경험 리플레이를 사용

  2) Delayed weight update of target network

     DQN과 같이 n step 고정시키는 방식이 아닌, first order delay를 통해 매 스텝 delayed 업데이트

  3) Deep neural network

     Actor network와 Critic network를 모두 심층 신경망으로 구성

 

 DDPG의 전신이 되는 DPG 알고리즘의 경우는 다음과 같이 이루어져 있습니다.

  1) Deterministic policy

     특정 상태에 따라, action이 확정적으로 정해지는 정책

  2) Objective function J

     theta로 파라미터화 된 정책의, theta에 따른 목적함수 J를 정의

  3) Deterministic policy gradient

     replay buffer로부터 sample을 꺼내와 업데이트 해도 수학적으로 문제가 없는, policy gradient 식을 정의

 

 다음은, TD3 입니다. TD3의 경우, DDPG가 쓰이는 여러 도메인에서 DDPG에 비해 안정적인 수렴 성능을 보여준다고 알려져 있습니다.

 

 이 알고리즘의 경우, DDPG에서 발생했던 여러 문제점 중 하나인 Q value의 overestimate 문제를 완화시킬 수 있는 여러 트릭을 사용함으로써 DDPG의 성능을 개선한 알고리즘으로 알려져 있습니다. 그 트릭들은 다음과 같습니다.

  1) Clipped double Q-learning

  2) Delayed policy update

 

 TD3의 자세한 내용은 제 블로그의 TD3 리뷰 혹은 제가 속해 있는 팀 블로그의 글을 봐주시면 감사할 것 같습니다.

https://seungeonbaek.tistory.com/14

 

Paper review of RL (4) Addressing Function Approximation Error in Actor-Critic Methods (TD3)

강화학습 논문 리뷰 연재 네번째입니다. 이번 논문 리뷰는, 기존의 DeepMind control suite, 상용 동역학 시뮬레이션 프로그램 등의 continuous control 환경에서 좋은 성과를 거둬온 DDPG(Deep Deterministic Pol..

seungeonbaek.tistory.com

https://ropiens.tistory.com/89

 

TD3 리뷰 : Addressing Function Approximation Error in Actor-Critic Methods

editor, Junyeob Baek Robotics Software Engineer /RL, Motion Planning and Control, SLAM, Vision ​- 해당 글은 기존 markdown형식으로 적어오던 리뷰 글을 블로그형식으로 다듬고 재구성한 글입니다 - ​ ori..

ropiens.tistory.com

 

 유사한 이유로, MADDPG도 이번 글에선 생략하고 넘어가도록 하겠습니다.

 

 시뮬레이션 결과 단락은, 학습이 수행될 환경, 학습 결과의 간단한 분석으로 구성하였습니다.

 

 먼저, MADDPG를 구현할 환경으로써 저는 SISL환경 내의 multi-walker를 선정하였습니다. 이 환경의 경우, n개의 bipedal walker가 위에 짊어진 꾸러미를 떨어뜨리지 않은 채로 다 같이 전진하는 것을 목적으로 하고 있습니다.

 

 이 환경의 인수들은 다음과 같습니다.

  1) walker의 대수 (default 3 대)

  2) 위치/자세의 noise 정도 (default 0.5)

  3) episode 내 max_cycle (default 500 step)

  4) rewards

     전진 시 10 점, 넘어질 시 -10 점, 꾸러미를 떨어 뜨릴시 -100점

     (-100 점이라니, 협업을 하지 않을 경우 굉장히 가혹한 페널티가 존재하는 무시무시한 환경입니다..)

 

 이 환경의 행동 / 관측 정보의 요약은 다음과 같습니다.

  1) Action: 두 다리에 존재하는 두 joint에 가해지는 외력

  2) Observation: 에이전트의 각 축 별 속도, 각, 센서 관측치, 주변 객체들의 상대 위치 .... 등등

 

 기존의 bipedal walker 문제만 하더라도, 상당히 난이도 있는 continouos control 문제인 것으로 알고 있는데, multi-agent간의 협업을 연구하기 위해 스탠포드가 우물에 독을 푼 것이 아닌가 하는 생각이 들게끔 하는 환경입니다.

 

 앞서 설명드린 환경에서의 학습 성능은 다음과 같습니다. 총 500 episode 정도 학습을 수행하였으며, 결과만 말씀드리면, MADDPG를 제외하고 두 알고리즘은 학습이 되지 않았습니다.

 

 그 이유를 저는 다음과 같이 분석하였습니다.

  1) DDPG의 경우: reward 편차가 큰 이러한 환경에서, 개별 agent만을 제어할 수 있는 알고리즘이기 때문에 학습에 어려움을 겪은 것으로 사료됩니다.

 

  2) TD3의 경우: reward 편차가 크더라도, DDPG보다 안정적인 학습이 가능한 TD3이지만, 개별 agent만을 제어할 수 있다는 한계점으로 인해, 모든 agent가 500 step 동안 가만히 있다가 끝나는 방식으로 학습이 수행 되었습니다.

 

  3) MADDPG의 경우: 모든 agent의 정보를 받아서 학습을 수행할 수 있으므로, 50 episode 이내로 pacakge를 떨어뜨리지 않는 채로 3 대의 agent가 협력하여 전진하는 것을 확인할 수 있었습니다. (reward > 0)

 

 

 사실은 더 많은 step을, 더 많은 agent에 대해 1M, 2M 만큼의 episode를 학습 시켜보면서 결과를 봐야하지만, 노트북이 울부짖는 소리에 마음이 아파 default setting을 해결하는 것 정도에서 학습을 마무리 짓고자 합니다.

 

 논문 리뷰를 하고 시간이 꽤나 지난 후에 구현 및 결과 분석 글을 쓰니 회사일이 바빴던 건지 제가 게을렀던 건지 아무튼 성찰의 시간을 가져야 할 것 같다는 생각이 듭니다. 오랜만에, 두서 없이 쓴 글이지만, 읽어 주셨다면 정말 감사합니다!!

 

 논문의 링크와, 전체 슬라이드는 생략하도록 하겠습니다.

강화학습 논문 리뷰 연재 다섯 번째입니다.

 

 TMI이긴 하지만, 요즘 혼자서 블로그에 논문 리뷰를 쓰다 보니 진도가 지지부진해지던 참에, RL_Korea의 옥찬호 님께서 RL 논문 리뷰 스터디원을 모집하는 것을 보고 참여를 하게 되었습니다. 이번 논문은 제가 4월 19일에 실제로 스터디 내에서 발표하게 될 내용을 담고 있습니다. 저뿐만 아니라, 다른 분들의 논문 리뷰 자료들까지 포함되어 있는 깃허브 주소는 다음과 같습니다. => github.com/utilForever/rl-paper-study <=

 

 이번 논문 리뷰는, 멀티 에이전트 강화 학습에서 다른 에이전트를 고려하는 것을 시작한 논문인 Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments(이하 MADDPG)에 대한 내용으로 이루어져 있습니다. 이전에 리뷰를 진행했던 TD3와 유사하게, 이 녀석도 DDPG의 친구인 것 같습니다.

 

그럼, 본격적인 리뷰 시작하겠습니다!

 

 논문의 제목은 상당히 직관적입니다. 협력적이거나, 경쟁적인 행위들이 섞여있는 혼합 환경에서의 Multi-agent actor-critic 알고리즘에 대해 다룰 것만 같은 제목입니다. 실제 논문의 내용도 그러하긴 하지만, 알고리즘이 MADDPG로 불리는 것을 생각했을 때, DDPG 혹은 off-policy 내용이 들어가 있으면 어땠을까 하는 느낌?이 듭니다.

 

 목차는 다음과 같습니다.

가장 먼저, 도입부에서는, 강화학습이 진보해온 과정에 대해서 먼저 간단히 설명을 드린 뒤, MARL에 대한 간단한 소개를, 추가적으로 제가 MADDPG를 적용해본 환경인 pettingZoo environment에 대해서도 소개를 드리도록 하겠습니다.

 

 그 후, 본론에서는, multi-agent domain에서 기존의 기법들이 가지는 한계에 대해서 저자들이 논한 내용에 대해 소개를 드리고, MADDPG를 이해하기 위한 background와, MADDPG에 대한 본 설명을 진행하도록 하겠습니다. 마지막으로, 실험 결과를 같이 한 번 확인해보는 시간을 가지겠습니다!

 

(이미 MARL에 대한 지식이 있으신 분들과, MARL용 환경이 구성되어 있으신 분들은 도입부를 뛰어넘으셔도 됩니다.)

 

 강화학습이 풀고자 하는 문제는 sequential decision-making problem. 즉, 순차적 의사결정 문제입니다. 이러한 순차적 의사결정 문제들에서 강화학습은 굉장한 성과를 보여왔습니다. 슬라이드를 보시게 되면, 강화학습은 1992년 TD lambda 알고리즘을 이용하여 backgammon을 푼 것을 시작으로, 2016년에는 알파고가 바둑(Go) 세계 챔피언인 이세돌을 꺾는 것을 전 세계 시청자들이 보기도 하였습니다. 최근에 얻은 성과 중 괄목할만한 성과로는, 2019년 DOTA2라는 5 vs 5 multi-player game에서 Open AI의 Five가 세계 챔피언을 이기는 성과를 거둔 것이 있습니다. (스타 2도 있습니다!!)

 

 그런데, 바둑에서 DOTA2로 문제가 어려워짐에 있어서, 단순히 게임 내 경우의 수가 증가한 것뿐만 아니라, player 자체가 늘어났다는 것을 눈치채신 분이 계실 겁니다. 맞습니다..! 강화학습의 연구가 알고리즘의 개선뿐만 아니라, single agent에서 multi-agent로 나아가고 있다는 것입니다. 이어지는 장에서 multi-agent 관련 내용을 말씀드리겠습니다.

 

 multi-agent RL은 도타와 같은, multi-agent가 동작하는 공통의 혹은 공유하는 환경 내에서 multi-agent들의 순차적 의사 결정 문제를 푸는 것을 목표로 하고 있습니다.

 

 그림 (a)를 보시면, 기존의 강화학습(single-agent RL)의 경우, agent와 environment 사이 상호작용만을 고려하여, agent가 받을 보상을 최대로 하는 것을 목적으로 합니다. 그런데 (b)와 같은 multi-agent setting의 경우, k개의 agent들이 환경과 상호작용하며, 각각의 s a r s'을 주고받는 것을 볼 수 있습니다.

 

 이러한 MARL의 경우, 기존의 SARL과는 여러 면에서 다른 접근을 해서 문제를 해결해야 하며, 이번에 리뷰할 MADDPG 알고리즘이 그것과 관련된 첫 단추를 끼운 논문이라고 생각해주시면 될 것 같습니다.

 

 또한, MARL이 중요한 이유는, 실제 세상에서 해결해야 하는 많은 문제들(자율 주행 자동차, 금융, 기지국의 통신 분배?, 사회 과학 등)이 multi-agent로 구성되어 있기 때문입니다.

 

 

 이러한 multi-agent RL은 다음과 같은 세 그룹의 문제를 해결할 수 있어야 합니다.

    (1) Cooperative setting: 그림의 multi-walker와 같은 협동 게임에서, common long-term return을 최대화하는 문제

    (2) Competitive setting: 그림의 multi-player pong, boxing처럼 return의 합이 0인 게임에서, 각기 다른 전략으로 상대를 압도하는 문제

    (3) Mix of cooperative and competitive setting: 그림의 군집 전투와 같은 게임에서, 팀 agent끼리는 협동을, 적대적인 agent는 이길 수 있도록 agent를 학습시키는 문제

 

 일반적으로, MARL을 테스트할 수 있는 환경들은 이러한 세 종류의 에이전트를 학습시킬 수 있는 여러 환경들을 포함하고 있습니다. 이번에 참여한 RL 논문 리뷰 스터디가 구현까지가 목적이기 때문에, 저는 어떤 환경에서 MADDPG를 구현해야 할지 조사를 진행하였고, 관련 내용을 다음 슬라이드에서 설명드리겠습니다.

 

 이번 슬라이드에서는 제가 어떤 환경을 테스트 환경으로 골랐는지에 대해서 설명드리겠습니다. 저는 다음과 같은 특징들을 가지는, pettingZoo라고 하는 환경을 선택하였습니다.

 

 먼저, pettingZoo 환경의 경우, 입문자 및 중급자들에게 정말 익숙한, OpenAI의 Gym library와 API가 유사하다는 장점을 가지고 있습니다. pettingZoo 논문의 저자들은, 더 이상 환경마다 다른 세팅에 연구자들이 고통받을 필요가 없다는(이렇게 말하지는 않았습니다.) 문장과 함께, pettingZoo의 API를 설명했습니다.

 

 자세한 사항은, 추후 pettingZoo에 대해 리뷰를 할 때 말씀드리도록 하고, 간단히 언급만 드리면, env.reset(), env.render()등의 친숙한 method들을 포함하고 있으며, env.step()과 유사한 env.last()의 경우, 우리가 알고 있는 (obs, reward, done , info)의 tuple을 출력해 주는 것을 볼 수 있습니다. 저 또한 이 특징 때문에 이 환경을 선택하게 되었습니다.

 

 두 번째 특징으로는, pettingZoo package만 설치하여도, 기존에 연구되던 환경들을 pettingZoo API에 맞게 사용할 수 있도록 저자들이 많은 노력을 들였다는 것입니다. 덕분에 저는 이것저것 여러 환경들을 테스트해 볼 수 있었습니다.

 

돌고 돌아, 본론인 MADDPG에 대한 설명을 진행하겠습니다.

 

 먼저, 논문에 기술되어 있던, multi-agent domain에서의 기존 기법들의 한계점들에 대해 말씀드리도록 하겠습니다. 논문의 저자들은, 기존의 Q-learning 등 value-based algorithm을 multi-agent domain에 적용하는 경우, multi-agent가 존재하는 환경 자체의 non-stationarity로 인해 학습이 어렵다는 것을 지적했습니다.

 

 그 이유는, 오른쪽 그림을 통해 설명드리도록 하겠습니다. multi-agent가 존재하는 환경에서, agentA는 여타 agent인 agentB ~ agentH(웃고 지나가시면 됩니다.)가 존재하는 환경과 상호작용을 하며 sample을 쌓습니다. 그런데, 각 agent가 훈련을 통해 바뀌는 경우, agentA 입장에서는 기존에 sample을 쌓았던 환경이 변하는 것 과 같습니다.(non-stationary) 이전의 연구들은 이를 효과적으로 해결하지 못했다고 지적합니다. (이는 기존의 policy gradient-based algorithm 또한 마찬가지로 겪는 문제인 것 같습니다.)

 

 또한, policy-gradient 기반의 알고리즘의 경우 agent의 숫자가 증가할 경우, high-variance 문제가 발생한다고 서술이 되어 있었습니다. 자세한 내용이 서술되어 있지 않아 구글링을 해 본 결과, 정규열 님의 블로그에서 다음과 같은 사실을 알 수 있었습니다. (blog.naver.com/jk96491/222271152952)

    (1) PG 계열 알고리즘은 multi-agent 환경에서 학습 함에 있어서, 일반적으로 off-policy 학습이 가능한 value 계열 알고리즘에 비해 샘플 효율이 낮음

    (2) off-policy 기법을 PG 계열 알고리즘에 적용할 경우, importance sampling 등 비싼 연산이 필요

 

 이번 장에서는, 원문에도 있던, 제안된 방법론을 이해하기 위한 배경 지식에 대해 다루고 넘어가도록 하겠습니다.

Multi-agent RL의 경우, MDP를 수학적 framework로 사용하는 SARL과 달리, Markov games를 수학적 framework로써 사용하고 그 안에서 문제를 해결합니다. 이는 간단히 말해 MDP의 multi-agent로의 extension이며, 게임 이론에 그 근간을 두고 있습니다.

 

 Markov Games는 <S, A1, A2, ... AN, OT, R1, R2, ... , RN>의 tuple로 구성이 되어 있으며, MDP와 유사하면서도 조금 다릅니다.

    (1) 전체 agent의 state space S

    (2) agent별로 수행 가능한 action space Ai

    (3) agent별로 관측 가능한 observation space O

    (4) Transition function T

    (5) 각 agent 별로 받을 수 있는 reward Ri

 

 또한, 이 논문은 DDPG의 multi-agent extension의 느낌이므로, deterministic policy(확정적 정책)와 deterministic policy gradient 등도 본격적인 방법론 설명 이전에 설명을 하고 있습니다. 확정적 정책의 경우, 확률적(stochastic) 정책과 달리, mu라는 notation으로 표현하며, 상태 변수 값이 정해질 경우 행동 변수의 값이 확정적으로 정해지는 정책을 의미합니다.

 

 또한, log probability가 포함되어 있던 확률적 정책의 정책 기울기 값과 달리, 확정적 정책 기울기는 수학적으로 조금 더 단순하게 표현되고, off-policy learning을 단순 적용함에 있어 수학적으로 문제가 없게 됩니다. MADDPG는 이러한 기존의 DPG, DDPG의 개념을 차용하였습니다.

 

 본격적인 방법론에 대한 설명에 앞서, 저자들이 자신들이 제안한 algorithm에 대해 어떤 평을 했는지에 대해 소개해드리겠습니다.

    (1) 제안된 multi-agent algorithm은 학습 시에는 global한 정보를 이용해 학습하며, 실행(action 추론) 시에는 local한 정보만을 이용함

    (2) 몇몇 이전 연구와 달리 multi-agent environment의 dynamics를 학습하려는 시도를 수행하지 않음

    (3) agent가 global한 정보를 이용해 학습할 시 문제가 되는 '통신'이슈에 대해 특정한 가정을 첨가하지 않음

    (4) 제안하는 알고리즘의 경우, 협력적인 행위, 경쟁적인 행위, 혼합 행위 모두 학습이 가능한 알고리즘이며, 저자들 자신이 general multi-agent learning algorithm이라고 평함

 

 다음 슬라이드부터는 이러한 평가를 내린, MADDPG 알고리즘에 대해 본격적으로 다루도록 하겠습니다.

 

 MADDPG가 기존의 RL method와 가장 큰 차이를 가지는 점은 바로, centralized training with decentralized execution(CTDE) 컨셉입니다. 이는, 학습 시에는 다른 agent의 observation을 포함하여 더욱 많은 정보를 통해 학습 하고, action 추론시에는 local information만으로 추론을 하겠다는 컨셉입니다.

 

 이러한 컨셉을 가져가게 될 경우, 각 agent가 상호작용하는 환경의 dynamics인 P가 MDP에서의 P(si' | si, ai)가 아닌, Markov games의 T(s' | s, a1, ... , ai, ..., aN)임을 의미하며, 확정적 정책에 따라, T안에 정책이 포함되어도 문제가 없습니다. 이는, policy changing에 따른 non-stationary 문제가 다소 완화될 수 있음을 의미합니다.

 

 오른쪽 하단의 그림을 보시게 되면, training 시에는 각 agent의 Q_1, ... Q_N이 모든 observation을 사용하여 학습되고, agent i는 Q_i 값을 pi_i 값을 update에 사용하지만, 실제로 action을 추론하는 pi_i는 local information만을 이용하는 구조임을 알 수 있습니다.

 

 이러한 컨셉을 적용할 경우 Critic target, loss와 Deterministic policy gradient는 슬라이드에 도시되어 있습니다.

 

 또한, 저자들은 이전 슬라이드의 핵심 개념과 더불어, MADDPG를 실제 문제에 적용함에 있어 생길 수 있는 여러 문제들에 대한 고민도 추가로 수행하였습니다.

 

 그중 첫 번째 문제는 다음과 같습니다. MADDPG의 경우, centralized Q를 학습하기 위해 사용되는 target Q(y_i)식에서, 다른 agent의 정책을 필요로 하게 되는 문제가 있습니다. 실제 세상에선 이를 항상 알 수는 없기에, 저자들은 다른 agent들의 정책을 approximation하여 target Q 계산 시 사용할 수 있는 방안에 대해서 설명합니다.

 

 그 방법은, agent i가 agent j의 true policy를 parameter phi를 이용해 근사하는 것이며, phi에 따른 approximate policy of agent j의 loss식 또한 슬라이드에 도시된 식으로써 제안하였습니다. loss 식은 일반적인 policy gradient 식으로 되어 있으며, entropy regularizer term이 추가되어 있는 것을 볼 수 있습니다.

 

 저자들은, 이와 같이 추론된 policy를 target Q 계산 시 사용할 수 있으며, target Q 계산 이전, 그러니까 centralized Q function의 업데이트 이전에 approximate policy 업데이트를 수행하는 방법을 통해, 다른 agent의 정책을 모르는 상태에서도 제안한 알고리즘의 활용을 가능케 하였습니다.

 

 두 번째로, 저자들은 경쟁적인 행위를 학습함에 있어, 상대의 현재 전략(정책의 뉘앙스)을 이기기 위해 나의 전략이 매몰되지 않도록(오버 피팅의 뉘앙스), agent별로 K개의 sub-policy를 두어, 이를 ensemble하여 사용할 수 있도록 하는 트릭을 제안하였습니다.

 

 이는 DeepMind의 Alpha star에서 league training을 하는 것과 유사한 컨셉을 조금 더 낮은 레벨에서 구현한 것 같다는 느낌이 들었습니다. (league training은 agent 자체를 여러 개 두어 학습을 수행하는 컨셉)

 

 이러한 두 가지의 추가적인 고민에 대한 실험도 실험 결과에 포함되어 있으며, 다음 슬라이드부터는 실험 결과에 대해 설명 드리도록 하겠습니다.

 

 먼저, 저자들이 실험을 수행한 환경에 대해 간단히 소개해드리고 넘어가도록 하겠습니다. 저자들은 multi-agent particle environment라고 하는 환경에서 실험을 수행하였습니다. 저자들은 이 환경 내의 여러 게임들에 대해 학습을 수행하였는데, 그중 그림이 포함되어 있는 4개의 환경에 대해 간단한 소개가 슬라이드에 기술되어 있습니다.

 

 Physical deception은 해석은 하였으나 지면이 부족하여 생략... 이 장에서는 각 게임이 협동 게임인지, 경쟁 게임인지만 보시고 넘어가면 될 것 같습니다.

 

 이 장에서는, 실험 결과를 설명드리도록 하겠습니다. 저자들은 논문에서 크게 3가지 실험 결과를 제공하고 있습니다. 각각은 다음과 같습니다.

 

    (1) MARL 기법인 MADDPG와 SARL 기법인 TRPO, DDPG 등 기존의 기법들의 비교

 하단 가장 왼쪽의 그래프는 cooperative communication(cooperative setting)문제를 학습했을 때의 success rate를 보여줍니다. 기존 SARL 기법은 25000 episode를 학습하는 동안 좋은 결과를 보이지 못하지만, MADDPG의 경우 압도적으로 좋은 결과를 보인다는 것을 알 수 있습니다.

 

    (2) approximate policy 사용 유무에 따른 성능 차이 분석

 하단 중앙의 두 번째 그래프(Figure 7 - (a))는 다른 agent의 정책을 완벽히 아는 경우(파란색)와 그렇지 못한 경우(빨간색) MADDPG의 success rate 성능을 보여줍니다. 그래프를 보면 알 수 있듯, approximate policy 사용 시에 성능 하락이 거의 일어나지 않음을 알 수 있습니다.

 

 하단 중앙의 세 번째 그래프(Figure 7 - (b))는 실제 agent의 정책과 approximate policy 사이 차이를 KL-divergence를 이용하여 보여주고 있습니다. 빨간색(listener)과 파란색(speaker)의 차이는 존재하지만, true policy와 approximate policy가 점점 가까워진다는 것을 이 그래프를 통해 보여주고 있습니다.

 

    (3) Policy ensemble 적용 유무에 따른 효과 분석

 하단 가장 우측의 그래프는, 경쟁적 행위에서 policy ensemble 사용 시 효과를 비교하는 그래프입니다. agent와 적대적 agent에 대해 ensemble policy 사용 유무에 따라 4가지 case를 실험한 결과, agent가 ensemble policy를 사용하고, adversary가 single policy를 사용할 때 normalized score가 가장 높았음을 지적하며, ensemble policy의 효과를 보여주고 있습니다. 

 

*현재 MADDPG는 구현이 완료 되었으며, 며칠 안으로 대조군인 DDPG 등을 테스트 한 후 결과도 올릴 수 있도록 하겠습니다.

 

오랜만에 글을 쓰게 되었는데, 길고 긴 이 글 읽어주신 분이 계시다면 정말 감사드립니다.

최근 리뷰했던 논문들 중 난이도가 가장 높았기에, 어려운 점이 있으시면 댓글로 질문 부탁드립니다.

 

논문의 링크와, 전체 슬라이드는 밑에 준비되어 있습니다.

 

arxiv.org/abs/1706.02275

 

Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments

We explore deep reinforcement learning methods for multi-agent domains. We begin by analyzing the difficulty of traditional algorithms in the multi-agent case: Q-learning is challenged by an inherent non-stationarity of the environment, while policy gradie

arxiv.org

 

01234567891011121314

 

강화학습 논문 리뷰 연재 네번째입니다.

 

이번 논문 리뷰는, 기존의 DeepMind control suite, 상용 동역학 시뮬레이션 프로그램 등의 continuous control 환경에서 좋은 성과를 거둬온 DDPG(Deep Deterministic Policy gradient) 알고리즘을 한단계 진보시킨, TD3(Twin Delayed DDPG)라고 하는 off-policy actor-critic algorithm에 대한 내용을 포함하고 있습니다.

 

작년과 재작년, 연구실에서 차량의 Adaptive Cruise Control과 관련된 연구를 수행할 때, DDPG를 성공적으로 활용한 논문이 여럿 있는 것을 보고 놀랐던 기억이 있는데, TD3의 경우, 이러한 DDPG에서 발생한 문제를 해결한 알고리즘이라고 하니, 제어 문제에 굉장히 좋은 성능을 낼 수 있는 알고리즘이 아닐까 하는 생각이 듭니다.

 

그럼, 본격적인 리뷰 시작하겠습니다!

 

 

논문의 제목은 직관적이지는 않습니다. "Actor-Critic Methods 에서 발생하는 function approximation error를 다스리기"이지요.

제목이 크게 와닿지는 않지만, 이어지는 내용을 읽으면, 저자들의 의도를 충분히 느낄 수 있는 제목이였던 것 같습니다.

 

목차는 다음과 같습니다.

가장 먼저, TD3가 포함된, Open AI의 model RL algorithm 분류표를 보며 TD3와 TD3의 전신인 DDPG가 어떤 알고리즘으로 분류되는지 먼저 설명 드리고, DDPG 꼭지에서 핵심 개념인 deterministic policy와 DDPG에 대해 간단히 설명드리겠습니다.

 

그후, 본론에서는 TD3가 어떠한 이유로 출현하게 되었는지 설명드리기 위해 기존의 DDPG에서 발생한 문제에 대한 설명 드리고, TD3가 어떤 방법으로 이러한 문제를 해결하였는지, 그리고 어떤 환경에 적용하여 TD3의 성능을 검증하였는지에 대해 설명을 드리는 것으로 자료를 준비했습니다.

 

OpenAI spinningup 사이트를 들어가보면, openAI에서 baseline으로써 제공하는 유명한 알고리즘들 몇몇과 함께, moden RL algorithm을 자체적으로 분류한 사진을 다음과 같이 확인할 수 있습니다.

 

DDPG와 TD3의 경우, 그림에서 볼 수 있듯이 model-free RL 알고리즘으로 분류할 수 있으며, 세부 계열로는 policy optimization과 Q-learning 계열의 중간 단계로 분류되어 있다는 것을 확인할 수 있습니다.

 

Policy optimization 계열(PG계열) 알고리즘 중 유명한 A2C/A3C, PPO, TRPO와 DDPG, TD3가 다른 카테고리로 분류가되는 이유는 이 알고리즘들은 policy gradient 계산시 Q-value가 아닌 Advantage function을 활용하고, DDPG와 TD3는 'deterministic policy gradient'계산시 Q-value가 활용되기 때문입니다.

 

이후의 page에서 DDPG와 TD3에 대한 설명을 이어나가겠습니다.

 

먼저, DDPG입니다.

 

DDPG에 대한 본격적인 설명 이전에, deterministic policy와 stochastic policy에 대해 먼저 다루도록 하겠습니다. deterministic policy란, 특정한 state에 대해 action이 확정적으로 정해지는 정책을 뜻합니다. deterministic policy의 경우, 기존에 정책에 사용하던 notation인 pi가 아닌 mu를 notation으로 사용합니다.

 

Stochastic policy의 경우, 기존에 강화학습 알고리즘들이 다루던 정책이라고 보면 되며, 특정한 state에 대해 action이 확률적으로 정해지는 정책을 뜻합니다. 기존의 PG계열 알고리즘은 이 stochastic policy를 정책으로써 활용하며, 이러한 policy 종류에 따라서, 비단 action을 뽑는 방법 뿐만 아니라 policy gradient 계산식도 달라지는데 이 식은 뒤 슬라이드에서 확인하실 수 있습니다.

 

이 장에서 추가적으로 알고 넘어가야할 지식은, 상식적으로 생각할 수 있는 사실과는 다르게도 제어, planning등과 같은continuous control problem문제에서 stochastic policy 기반 알고리즘에 비해 deterministic policy 기반의 알고리즘이 성공적인 성과를 이뤄왔다는 것입니다. (주로 DDPG알고리즘과 LSTM등의 RNN 네트워크를 활용하여 많은 성공을 얻어왔습니다.)

 

그에 대해 논문에서 제공하는 지식과 더불어, 제가 분석한 이유는 다음과 같습니다.

1) continuous control problem의 경우, 필연적으로 high dimensional action space를 가지게 되는데, 이러한 환경에서 stochastic policy에 비해 deterministic policy mu(s)를 활용할 경우, 비교적으로 탐색할 공간이 적어지고, 그에 따라 빠른 수렴이 일어난다는 것입니다.

 

2) 또한, stochastic policy를 사용하는 PG 계열의 여타 알고리즘과는 달리, off policy 학습이 가능하다는 장점이 있기 때문에, 많은 sample들을 replay memory에 담아서 학습을 할 수 있다는 장점이 있기 때문입니다. 물론, PPO, A3C등의 알고리즘들의 경우, V-trace를 이용한 semi-off policy 학습이 가능하지만, 이에는 컨셉과 수식의 태생적인 한계가 존재합니다. 

 

3) 기존의 stochastic policy를 사용하는 PG 계열의 여타 알고리즘의 경우 탐험을 종용하는데 있어서 entropy term을 이용하게 되는데, DDPG와 TD3의 경우, 이러한 복잡하고 튜닝이 어려운 방법을 사용할 필요 없이, action에 미리 정의된 의사 noise를 사용할 수 있다는 것에서 큰 장점을 가진다고 생각합니다.

 

이어서 2장에 걸쳐 DDPG에 대한 간단한 설명을 진행하겠습니다.

 

DDPG의 경우, Actor-Critic algorithm과 DQN algorithm의 특징을 모두 담고 있는 알고리즘입니다. 그리하여, 슬라이드 하단 주석된 논문에서 참고한 DDPG arcthitecture를 보시게 되면,

1) Actor network와 Critic network를 통해 각각 Q와 action을 예측하는 것을 확인할 수 있으며,

2) DQN 계열에서 사용한 experience replay memory를 사용하는 것을 확인할 수 있습니다.

3) 또한, 학습된 Q-value를 policy gradient 계산시 직접적으로 사용한다는 것을 확인할 수 있습니다.

 

추가적으로, 그림에 표현은 되어있지 않지만,

4) 안정적인 update를 위해 target network update시 main network의 weight을 정확히 전달해 주는것이 아니라, delay를 주어 update 시켜준다는 것을 알 수 있습니다.

5) 마지막으로, 미리 정의된 의사 noise를 사용합니다.

 

이장에서는 OpenAI에서 제공하는 DDPG의 pseudo code를 확인할 수 있습니다. 12, 13 line에서 Q-value가 업데이트 되며, 14 line을 통해 deterministic policy gradient를 예측된 Q-value를 이용해 계산한다는 것을 알 수 있습니다.

 

또한,  target network의 weight update시 미리 정의된 rho값을 이용해 지연을 가한다는 것을 알 수 있습니다.

 

이어서, 본론인 TD3에 대한 설명을 진행하겠습니다.

 

TD3는 다음과 같은 DDPG의 문제점으로 인해 출현했습니다.

1) DDPG는 성능을 내기 위해서, hyperparameter 및 여러 종류의 parameter들의 튜닝 과정을 거쳐야하는 민감한 알고리즘이라고 TD3의 저자들은 얘기하고 있습니다.

 

2) 그 이유는, DDPG에서 deterministic policy gradient (policy loss)계산 시 Q-value가 직접적으로 사용되는데, 이러한 Q-value가 vanilla DQN에서 사용한 main, target Q-network만으로 학습함에 있어서 overestimate와 같은 문제들이 발생했다는 것입니다. 이부분은 Advantage function을 policy loss 계산시 사용하는 여타 PG계열 알고리즘에 비해 자주 발생하는 문제였다고 합니다.

 

이러한 문제를 해결하기 위해 TD3 알고리즘이 제안되었으며, 이때 DQN에서 이문제를 해결하기 위해 적용한 방식들에서 영감을 얻은 것 같습니다.

 

이 장부터는 TD3에 대한 설명을 진행하도록 하겠습니다.

 

밑의 주석의 논문에서 참고한 TD3 arthictecture를 통해 설명을 드리도록 하겠습니다. TD3의 경우, 몇가지 trick을 통해 DDPG에서 치명적인 Q-value overestimate 문제를 잠재웠습니다.

 

1) 먼저, vanilla Q-learning에 비해 안정적인 학습을 한다는 것이 증명된 Double Q-learning컨셉을 활용하였습니다. DDQN과는 사뭇 다르게 사용되었으며, target network update시 더 작은 값의 Q-value를 학습에 활용하는 방법을 통해 overestimate를 방지하려고 노력하였습니다.

 

2) 또한, critic과 actor entwork를 번갈아 업데이트 하던 DDPG와 달리, policy update를 critic network update보다 더욱 적은 빈도로 업데이트 하여, 안정된 Q-value를 policy loss 계산시 사용할 수 있도록 하였습니다.

 

이 두가지 방법을 통해 DDPG에 비해 hyperparameter에 둔감한 알고리즘을 설계하였으며, 제가 test 해본 결과, MDP parameter인 distcount rate gamma와, weight delay parameter인 tau를 제외하면 batch size, neural network의 hyperparameter등을 수정하여도, 정책이 강건하게 수렴한다는 것을 확인할 수 있었습니다.

 

OpenAI에서 제공하는 TD3의 psudo code에서는 이러한 과정들이 어떻게 적용되었는지 확인할 수 있습니다. 이 pseudo code에서 아쉬운점은 더 작은 Q-value를 policy gradient 계산시 사용한다는 것이 명시적으로 드러나지 않았다는 것이지만, 그래도 보기좋게, 깔끔하게 서술이 되어 있어 사용하게 되었습니다.

 

이 장에서는, TD3의 저자들이 TD3를 MuJoCo physice engine에서 다른 PG 계열 SOTA 알고리즘과 비교한 그래프 및 표를 보여드리겠습니다. 저자들은 여러 scenario를 학습 시켰으며, 그중 HalfCheetah, Hopper, Walker, Ant의 그래프를 ppt에 도시해 두었습니다.

 

결과를 비교해보면,

1) TD3가 다른 PG계열 알고리즘에 비해 월등한 수렴성능을 보여준다는 것과,

2) 수렴한 average return의 값이 다른 알고리즘들에 비해 굉장히 높다는 것을 알 수 있습니다.

 

물론, ppt에 도시하지 않은 reacher, inverted pendulum, inverted double pendulum의 경우에도 미미하지만 더 높은 성능을 보여준다는 것을 밑에 도시한 표와, 원문에서 확인하실 수 있습니다.

 

이번에도 긴 글을 읽어주신 점 감사드립니다.

 

논문의 링크와, 전체 슬라이드는 밑에 준비되어 있습니다.

 

https://arxiv.org/pdf/1802.09477.pdf

 

0123456789101112

 6장 강화학습 심화 2: 카트폴은 김응현 학생이 스터디를 리딩하였습니다. 밑의 자료는 김응현 학생이 직접 공부하고 제작한 발표자료 입니다.

 

***주의***

1) 책에서 설명을 위해 사용한 그림을 발표 당시에 설명을 위해 촬영하였으며, 블로그에 업로드하는 과정에서 저작권 문제가 발생할 수 있음을 고려하여, 그림은 가린 상태로 업로드 하게 되었습니다.

2) 책에서 사용한 코드의 경우, Github를 통해 이미 공유가 되어있기 때문에, 문제가 되지 않으리라고 생각하여 그대로 올리게 되었습니다. 문제가 생길 경우, 삭제 혹은 수정을 하도록 하겠습니다.

 

파이썬과 케라스로 배우는 강화학습 교재 내 코드는 github.com/rlcode/reinforcement-learning-kr 에 모두 존재합니다.

 

 제가 대학생일때보다 지금의 제 후배들이 더욱 잘하고 열심히 하는 것 같아 비록 학번 차이는 얼마 안나지만, 선배로서 굉장히 뿌듯했습니다.

 

 

 5장 강화학습 심화 1: 그리드월드와 근사함수는 제가 스터디를 리딩하였습니다. 밑의 자료는 제가 교재를 직접 공부하고 제작한 발표자료 입니다.

 

***주의***

1) 책에서 설명을 위해 사용한 그림을 발표 당시에 설명을 위해 촬영하였으며, 블로그에 업로드하는 과정에서 저작권 문제가 발생할 수 있음을 고려하여, 그림은 가린 상태로 업로드 하게 되었습니다.

2) 책에서 사용한 코드의 경우, Github를 통해 이미 공유가 되어있기 때문에, 문제가 되지 않으리라고 생각하여 그대로 올리게 되었습니다. 문제가 생길 경우, 삭제 혹은 수정을 하도록 하겠습니다.

 

파이썬과 케라스로 배우는 강화학습 교재 내 코드는 github.com/rlcode/reinforcement-learning-kr 에 모두 존재합니다.

 

 5장의 발표를 준비하면서, 교재에 생략되어 있거나, 조금 더 나누고 싶은 내용을 준비하다 보니 새롭게 알게된 점들이 보이고, 설명을 위해 준비하면서 다시금 내용을 다지게 되는 좋은 기회를 얻은 것 같습니다.

 

 4장 강화학습 기초 3: 그리드월드와 큐러닝은 권우진 학생이 스터디를 리딩하였습니다. 밑의 자료는 권우진 학생이 직접 공부하고 제작한 발표자료 입니다.

 

***주의***

1) 책에서 설명을 위해 사용한 그림을 발표 당시에 설명을 위해 촬영하였으며, 블로그에 업로드하는 과정에서 저작권 문제가 발생할 수 있음을 고려하여, 그림은 가린 상태로 업로드 하게 되었습니다.

2) 책에서 사용한 코드의 경우, Github를 통해 이미 공유가 되어있기 때문에, 문제가 되지 않으리라고 생각하여 그대로 올리게 되었습니다. 문제가 생길 경우, 삭제 혹은 수정을 하도록 하겠습니다.

 

파이썬과 케라스로 배우는 강화학습 교재 내 코드는 github.com/rlcode/reinforcement-learning-kr 에 모두 존재합니다.

 

 

 

+ Recent posts