강화학습/강화학습 이론

[RL 이론] 1-1. Introduction

changyun 2022. 4. 29. 01:03

개요

대학생때부터 강화학습에 관심을 가지고 공부를 했었지만, 실질적으로 강화학습을 적용할 분야를 찾기가 어려웠고 그렇게 3년의 시간이 흘렀습니다. 정리를 하지 않다보니 공부할때마다 뭔가 새로운 기분이 들었는데, 이번에 마인즈앤컴퍼니 회사에서 강화학습으로 내부 연구를 진행하기로 하여 이 참에 블로그도 운영할 겸 내용을 정리해보고자 합니다. 이 강화학습 글들은 마인즈앤컴퍼니의 Tistory 에도 게시가 될 예정입니다.  

 

본 시리즈는 강화학습의 아버지라고 불리는 Sutton의 Reinforcement Learning An Introduction 2nd Edition 책을 기반으로 작성할 예정입니다. 책 이름은 Introduction 이지만 상당히 분량도 많고 자세해서 처음 접하는 사람에게는 어려울 수 있으나, 이론 뿐 아니라 중간중간에 코드를 이용한 실습을 포함해서 보다 쉽게 이해할 수 있는 글을 작성하는 것을 목표로 하였습니다. 

 

이 책 이외에도 Deepmind의 David Silver 강의와 여러 자료들을 참고하였으며, 관련 자료는 글 마지막의 Reference에 기재하겠습니다. 

 

강화학습이란? 

우리가 자연적인 학습에 대해 생각해보면 주변의 환경과 상호작용을 통해 학습합니다. 태어난지 얼마 안된 애기가 명시적인 가르침 없이 팔을 흔들거나 움직이는 사물을 보고 시선을 고정할 수 있는 것은 주변의 환경을 인식하고 몸을 제어할 수 있기 때문이죠. 이렇듯, 모든 Learning, Intelligence와 같은 이론의 근본적인 아이디어는 상호작용을 통한 학습 에서 유래되었습니다. 이 중 우리가 학습할 강화학습은 목표 지향(goal-directed learning)에 초점을 둔 학습 방법입니다.

강화학습은 Machine Learning의 한 종류로, 행동을 수행하는 학습자가 어떤 행동을 해야하는 지 알지 못하는 상태에서 행동에 대한 보상을 극대화하기 위해 어떻게 행동해야 할 지 방향을 찾는 학습 방법입니다. Wikipedia에서는 강화학습을 다음과 같이 정의하고 있습니다.

 

Reinforcement learning is an area of machine learning concerned with how intelligent agents ought to take actions in an environment in order to maximize the notion of cumulative reward.

 

 

Machine Learning의 분류

데이터에 대한 라벨의 여부로 분류되는 Supervised / Unsupervised Learning 과는 다르게, 강화학습은 그 자체의 독특한 특징들을 가지고 있습니다.

 

대표적인 특징들을 살펴보면,

 

Trial and Error

강화학습은 어떤 Action을 해야 하는 지 전달받지 않고 많은 시도와 실패를 통해 가장 높은 Reward를 받을 수 있는 Action을 발견합니다.

 

Delayed Reward

Reward Signal은 객체 (Agent)가 수행한 행동(Action)을 평가하는 값인데, 특정 행동에 대한 Reward Feedback이 시간적으로 지연될 수 있으며 즉각적이지 않습니다. 즉, 지금 한 행동의 보상이 어느 시점의 미래에 돌아올 지 모르는 것이죠.

 

 

강화학습 문제의 예시

Boston Dynamics 사의 Atlas 보행 영상. https://www.youtube.com/watch?v=tF4DML7FIWk

 

보행 로봇 연구 개발로 유명한 Boston Dynamics 는 다양한 상황에서 사람의 보행을 그대로 따라할 수 있는 로봇을 만들었습니다. 이 로봇은 단순히 걷기라는 하나의 동작만을 수행한다고 가정해도 다양한 환경에 놓여질 수 있으며, 상황에 따라 걷는 방식이 달라져야 합니다. 길의 경사가 갑작스럽게 변화하면 경사에 따라 걷는 자세를 변경해야 하며, 계단이 앞에 있으면 계단의 높이를 인식하고 올라가야 합니다. 이러한 문제를 Supervised Learning과 Unsupervised Learning으로 해결하려고 하면 라벨은 어떻게 정의해야 할 지, 걷는다는 연속적인 행위를 어느 단위에서 끊어서 하나의 데이터로 만드는 것이 좋을 지 정하기가 어렵습니다.

 

그러면 강화학습으로 풀 수 있는 문제는 무엇이 있을까요?

 

강화학습으로 풀린 대표적인 예시들은 딥마인드의 알파고 (바둑)와 보스턴 다이내믹스의 아틀라스 (보행), DQN 논문에서 수행한 Atari 게임 (벽돌깨기) 등이 있습니다. David Silver는 강화학습의 예시를 다음과 같이 설명하였습니다.

 

  • Fly stunt manoeuvres in a helicopter
  • Defeat the world champion at Backgammon
  • Manage an investment portfolio
  • Control a power station
  • Make a humanoid robot walk
  • Play many different Atari games better than humans

 

강화학습 프로세스

강화학습은 Agent가 주어진 Environment에서 누적된 Reward를 최대화하기 위한 Action을 하는 것입니다. 즉, 어떤 문제를 강화학습으로 풀기 위해서는 해당 문제에 적합한 Agent, Environment, Reward를 정의할 수 있어야 합니다.

 

아래 그림은 강화학습에서 Agent와 Environment간의 상호작용을 나타낸 것으로 뇌는 Agent, 지구는 Environment를 의미합니다. Agent가 어떤 Action을 Environment 에게 전달하면 Environment는 뇌에게 다시 Observation과 Reward를 전달합니다.

 

강화학습에서 Agent와 Environment 간의 상호 작용

 

 

위의 프로세스를 정리하면 다음과 같습니다. 

 

 

본 포스팅에서는 강화학습의 개념과 강화학습 프로세스가 진행되면서 Agent와 Environment 간의 상호작용이 어떤 방식으로 이루어지는 지 간략히 살펴보았습니다.

다음 포스팅에서는 Agent와 Environment, Reward과 강화학습에 필요한 다른 개념들을 살펴보겠습니다.


Reference