brunch

강화학습 학습하기 - [1] Dive into RL

[1] What is the Reinforcement Learning?

by 설규을
"강화학습 학습하기"시리즈는 KAIST 신하용 교수님의 수업 IE540 "DP and RL"수업 내용을 제가 제 방식대로 요약 및 정리한 것입니다. 퍼가실때는 미리 물어봐주시고, 내용은 제가 변형하고 추가하되 렉쳐노트에 쓰인 그림은 사용해도 된다고 교수님께 허락 받았습니다.
There are no stupid Questions, only stupid Answers.
(세상에 이상한 질문은 없다, 오직 이상한 대답만이 있을뿐이다.)
질문은 언제나 환영입니다.


0. Introduction to DP and RL


현재 많은 과학 분야에서는 AI가 트렌드이다. 솔직히 트렌드라고 말하기 민망할정도로 상용화된 상황이다. 기존의 많은 문제들을 AI의 기술로 해결하는 사례가 수두룩하고 AI를 이용해서 새로운 문제까지 정의해서 푸는 상황이다. 기존의 다른 과학 분야와는 다르게 쉽게 적용하고 개념적으로도 어렵지 않다. 물리나 공학을 몰라도 적용가능하고 많이 사용하는 파이썬 언어는 쉽고 High level이어서 널리 상용화되는 좋은 조건을 갖췄다. 나도 마찬가지이며 좀 더 제대로 배우기 위해 KAIST 신하용 교수님의 수업을 수강해서 듣고있다. AI 시대에서 AI분야 중 하나인 강화학습이라는 분야는 개념적으로도 재밌고, 적용가능한 수많은 사례가 있다.


1. Motivation of Machine Learning


기계학습(Machine learning)이란 말은 기계가 스스로 배운다는 것이다. 기존에는 문제를 풀기 위해서 솔루션이 필요했고 솔루션을 적용해서 데이터가 나왔다. 하지만 기계학습은 이러한 관계를 뒤집어서 문제를 풀기 위해서 데이터를 집어넣어서 솔루션을 만들어내는 것이다. 예를 들어 우리가 강아지와 고양이를 구별하기 위한 문제를 풀기 위해서 고양이의 특징과 강아지의 특징을 하나하나 정해서 집어넣는다고 가정한다. 그렇다면 사진 구도나 밝기에 따른 현실적인 noise를 따지기 어려울 것이다. 그리고 강아지와 고양이의 종이 각각 다른 새로운 개체가 나타난다면 또 다시 솔루션을 정해야할 것이다.

그러나 기계학습은 다르다. 솔루션을 먼저 정해주는 것이 아니라 기존의 우리가 가지고 있는 정답을 기계한테 줘서 기계가 그 정답을 잘 익히는 것이다. 이 방법론의 장점은 확장성에 있다. 기계가 많은 수의 변수를 다룸으로써 학습을 해서 범용 솔루션을 찾아내면 다른 데이터가 들어와도 우린 범용 솔루션이 있으니 그걸 기반으로 답을 만들어낼 수 있다. 예를 들어 강아지와 고양이를 비교하는 예시에서 우리가 강아지의 특징, 고양이의 특징을 정해주는 것이 아니라, 고양이 사진 만개와 강아지 사진 만개를 기계한테 줘서 학습을 한 후 기계가 자체적으로 학습을 한다. 학습된 결과가 솔루션이 되고 물론 이는 수량적으로 나타낼 수 있다. 새로운 데이터가 들어왔을 때 기계가 가지고 있는 솔루션이 제대로 판단한다면 우린 적절한 혹은 범용 솔루션을 가진 것이다. 물론 이는 공짜가 아니다.


2. Types of Machine learning

download.png Blank: Categorical values. group 1과 group 2는 단순히 그룹 1과 2를 구분하기 위한 수이지, group2가 group1의 두배라는 뜻이 아니다.

기계학습 중에서 지도학습, 비지도학습, 그리고 이 두개가 적절히 섞인 Semi-supervised learning이 있다. 지도학습이란 정답(혹은 label)을 가지고 있고 이것을 알맞게 분류하는 문제에 풀기 좋다. 대표적으로 강아지와 고양이의 사진 만장씩을 각각 학습하여 강아지와 고양이를 분류하는 문제이다(Categorical values). 가장 흔히 쓰이는 학습으로 예제들도 간단하기 때문에 이걸로 많이 입문하는 것 같다. 또한 데이터가 산발적으로 있을 때 이를 표현하는 정확한 추세선을 그리는 regression 문제로도 많이 푼다. (양을 나타내는 수:cardinal values).

스크린샷 2022-05-21 오후 2.55.55.png 지도학습(Supervised learning), 비지도학습(Unsupervised learning), Semi-supervised learning

비지도학습은 데이터가 분류되는 것은 같지만, 이때 분류되는 데이터가 이루는 그룹이 어떠한 정보도 없는게 특징이다. 즉 분류보단 grouping이다. group으로만 나누고, group에 대해서는 중요하지 않다(No labels, group 1, 2 이런식으로 나눠지지만, group 1이 group 2이고, group 2가 group 1으로 뒤바뀌여도 상관없다. 그러나 supervised learning에서는 고양이 <-> 강아지 로 label이 있기때문에 바뀌면 안 된다. supervised learning은 label이 있는 group인 categorical values이다.). 그리고 semi-supervised 학습은 두 가지가 적절히 섞인 것으로 label이 있는 데이터와 없는 데이터가 서로 섞인 상태에서 적절하게 group을 만드는 것이다. 그리고 이때 label이 있는 데이터가 어떤 class인지 분류하는 것이다.


3. 강화학습 (Reinforcement Learning)



강화학습의 개념. 쥐가 action을 하고 이에 대한 환경에 대해서 reward를 받는다.

강화학습은 처음에는 개를 훈련시키는 방법에서 왔다. 개가 우리가 원하는 행동을 할 경우에는 먹이를 주는 보상을 주면서 개가 점차적으로 보상을 많이 받는 쪽으로 행동하게 만든다. 여기서 "Reinforcement learning"이라는 개념이 나왔고, 현대식 컴퓨터의 아버지인 앨런 튜링도 "어른처럼 모든 걸 아는 컴퓨터보단 아이처럼 배워가는 컴퓨터"의 개념을 말하기도 했다. 지도학습은 label이 있는 데이터로부터 solution을 찾아나가는 학습을 하지만(Data - driven learning), 강화학습은 이와 살짝 다르다(No-supervisor!!). 강화학습에는 label이 있는 데이터가 없다. 미리 주어져있는 데이터에서 배우는 것이 아니라, 환경과 상호작용하면서 생기는 reward를 가지고 학습한다. 그래서 강화학습은 policy라는 것을 배운다. 여기서 policy란 특정 state에서 특정 action을 하는 행위이다. 여기서의 state는 environment에서 agent(강화학습을 하는 주체)가 어떤 상태인지를 말하는 용어이고, action은 environment를 향해 상화작용하는 것이다. 예를 들어서 내가 자율주행 자동차를 설계한다고 생각해보자. 차가 지금 갈림길에 있고, 오른쪽으로 가면 reward를 +10만큼 받고, 왼쪽으로 가면 -10을 받는다고 생각하면, 차는 오른쪽으로 가서 reward를 +10받는 행동을 할 것이다. 이때 차는 갈림길에 있고(state), reward는 +10이고, 오른쪽으로 가는 행동(action)을 했다. 이게 바로 강화학습의 대표적인 예시이다.


즉, 강화학습은 현재 state에서 -> action을 하고-> 선택에 따른 결과를 관찰한다. (reward, next state)
이 과정을 계속 반복하는 것이다.

이때 현재 state에서 어떤 action을 택하는 것이 좋을까? 여기서 value function과 exploration vs exploitation에 대해서 알아보자.


3-1. Value function , Exploration vs Exploitation


policy는 현재 상태에서 어떤 action을 택할지에 대한 것이라고 했는데, 모호한 표현일 수도 있어서 추가적인 설명이 필요하다. 그전에 value function을 알아보면, value function이란 기본적으로 현재 상태 혹은 현재 상태와 그에 따른 action이 얼마나 좋은지를 숫자로 나타낸 것이다. 예를 들어 우리가 어디가 좋은지, 혹은 어디가 나쁜지를 나타날때 기분에 따라서 혹은 애매한 형용사로 표현하기 보다는 구글에서의 별점이 이렇고, 리뷰는 몇개더라 라고 나타낸다면 객관적으로 좋고 나쁘고가 명확할 것이다. 객관적으로 나타내기 위해서 value function이라는게 있다. Value function 중 state value function( V로 표현)은 현재 상태가 얼마나 좋은지, action value function(Q로 표현)은 현재 상태에서 현재 내가 내리는 action이 얼마나 좋은지를 숫자로 나타낸 것이다.


Value function은 얼마나 좋은지에 대해서 나타낸다고 했다. 그런데 좋은지에 대한 기준은 무엇일까? 강화학습에 좋다 나쁘다 판별하는 것은 매우 중요하다. 학습의 방향성이 달라지기 때문이다. 좋은지에 대한 기준이 만약 내가 다음 행동에 대한 reward만을 고려한다면, 근시안적인 학습일 것이다. 눈앞에 보이는 이득만 쫓는 것이다. 그리고 내가 너무 먼 미래만 고려한다면, 이는 전혀 학습이 안 될 것이다. 그래서 내가 다음 행동을 하면 즉시 받을 수 있는 reward(immediate)와 나중에 받을 수 있는 reward(future reward)를 합친 값이 커야지 좋은 방향이다. 이때 immediate reward와 future reward를 같이 고려한 것이 바로 return이다. reward의 적절한 총합이 바로 return이고, agent는 return이 큰 방향으로 policy를 갖는다.( 조금 더 정확히 말하면 expected return이다. 전부 다 확률로 표현하기 때문이다.)


이때 return을 max하는 방향으로 가는 것이 exploitation이다. 지금 보기에 가장 좋아보이는 쪽으로 결정한다는 의미로, return을 max하는 쪽으로 계속 결정하는 것을 greedy, 탐욕스럽다고 해서 greedy policy라고 한다. 그리고 내가 아직 environment를 전부 다 아는 것도 아닌데, 처음부터 아무정보도 없는데 greedy policy를 하게 된다면, 별로 좋지도 않은 방향으로 수렴할 수도 있다. 그래서 탐험을 하여 environment의 정보를 수집하는데 이 과정이 용어 그대로 exploration과정이다. Exploration은 현재의 greedy action을 택하는 exploitation과 다르게 더 좋은 선택지가 있나 하고 찾아보는 과정이다. 너무 exploration만 한다면 학습의 방향성이 없는 것이니 좋지 않다(random하게 계속 움직인다고 생각해보자). 그래서 이 두가지를 적절히 섞는 것이 중요하다.


3-2. RL의 여러가지 적용사례


download.png RL의 적용사례들. Pole을 세우는 cartpole 문제부터 게임이나 다양한 전략적인 문제에 적용된다.

RL은 전략적인 문제를 푸는 것이나 기존에 하기 어려웠던 제어 문제에 쉽게 쓰인다. 그리고 엄청난 성과를 이뤘고, 대표적으로 구글 Deepmind에서 발표한 atari 게임이 있다.

download.png 2015 무려 네이쳐에 실린 논문. 발표 이후에 강화학습이 boom이 됐다. 이후에 구글 딥마인드에서 바둑에도 적용한 알파고가 만들어지고 이세돌과 대국을 2016년에 치룬다.

대부분의 경우에서 사람보다 월등히 좋은 성과를 보였고, 2016년에 구글 딥마인드가 설계한 알파고가 바둑마저 인간을 꺾음으로써 대부분의 사람들에게 큰 충격을 주게 된다.


4. Dynamic system, Sequential Decision Making


앞으로 이 단어들은 많이 나오지는 않지만, 강화학습에 기본이 되는 개념이기 때문에 설명하려고 한다. 첫 번째로 "Dynamic system"은 시간에 따라서 변화하는 시스템을 말한다. 예를 들어, 바둑의 경우는 대표적인 다이나믹 시스템이다. 왜냐면 시간에 따라서 플레이어가 바둑알을 두게 되면서 바둑판위에 있는 바둑알의 구성이나 배치가 달리지기 때문이다. 일명 형세가 바뀌는데, 이 형세가 시스템이 된다. 덧붙이면, 알파고는 바둑알의 배치에 따른 승리확률이 달랐는데, 여기서 플레이어와 알파고가 바둑을 둘 수록 바둑알의 위치에 따른 승리확률이 시간에 따라서 변할 것이다. 이런 시스템이 동적시스템, dynamic system이다. 이에 반면에 룰렛처럼 시간에 따라서 고정적인 시스템은 static system이라고 한다. 오늘 룰렛을 돌리나 내일 돌리나 변하는 게 없는 심심한 시스템이 예시이다.


Sequential decision making은 시간에 지나감에 따라서 차례 차례 결정을 내리는 것이다. 이때 시스템은 agent와 environment 둘 다 합친 말이다.

download.png Sequential decision making

시스템은 agent가 어떻게 결정내리는지에 따라서 달라진다. agent가 처한 환경이 달리지고, reward도 동시에 받기 때문에 매우 동적인 시스템이다. 그리고 기본적으로 agent는 미래에 받은 reward를 고려한 return이 최대가 되도록 action을 할 것이다. 이것이 바로 sequential decision making이고, 어떤 environment냐, 어떤 state냐, 어떤 action이냐에 따라서 수 많은 문제들과 그걸 해결하기 위한 수 많은 알고리즘들이 탄생했다. 다른 것은 몰라도 이 그림만 이해한다면 강화학습을 시작하기 충분하다.


5. MDP vs DP vs RL


이제 본격적으로 강화학습을 시작하기 전에 MDP,DP에 대해서 알아봐야한다. MDP로 구성된 문제를 DP 혹은 RL로 푼다고 생각하면 된다. RL보다 훨씬 이전의 개념으로 이러한 토대 위에서 RL이 시작됐다고 보면 적절하다. 먼저 MDP는 Markov Decision Process이라는 뜻으로 동적 시스템(dynamic system)에서 sequential decision making하는 것이다. 이때 다루는 시스템은 Markov propety를 가지고 있다.

download.png

Markov property를 가진다면 agent가 현재 있는 상태는 이전의 시간들의 상태와 action의 결과물이다. 이러한 문제를 MDP 문제라고 한다.


그리고 DP는 dynamic programming이라는 뜻으로 문제를 쪼개어 작은 문제를 먼저 풀고 이 결과를 이용해서 더 큰 문제를 해결하는 방식이다. 보통 recursive하게 정의된 문제를 dp로 많이 푼다. 지름길 찾는 문제나 피보나치 수열 문제를 풀 때 사용한다. 피보나치 수열을 계산할때도 만약 102번째 수를 계산하기 위해서 처음부터 더하는 것보다는 101번째와 100번째 수를 기억해서 그 둘을 더하는게 더 빠른 것처럼 DP는 효율적인 문제 풀이 방식이다. DP를 MDP에 적용하면, Value iteration, Policy iteration라는 것이 있는데 DP는 강화학습 학습하기 3편에서 제대로 소개하려고 한다.


마지막으로 RL은 DP와 거의 비슷하다. 차이점이 있다면 DP는 model에 대해서 정확히 알고 있는 상황이지만, RL은 모델과 환경에 대해서 정확히 모르는 상황에서 문제를 푼다. 환경과의 상호작용을 통한 경험으로부터 학습이 진행된다.


6. Major Components of RL

RL의 중요한 부분에 대해서 추가적으로 설명하려고 한다. 앞에서 언급한 부분도 있지만 중요하기 때문에 다시 설명하려고 한다.

6-1. Rewards

Reward란 "scalar feedback signal"이다. 모든 RL은 agent가 maximization of expected cumulative reward(=return)을 하려고 움직인다. RL은 max한 결과를 만들어내기 위해서 어떻게 우리가 알고리즘을 짜는가에 대한 분야인 것이다. 예를 들어, 개는 먹이를 최대화하기 위해 움직인다 혹은 사람은 돈을 최대화하기 위해 움직인다 라는 방식으로 움직이는 것이다.

6-2. Model

Agent가 환경을 어떻게 보느냐가 바로 model이라고 한다. Reward와 next state에 대한 예측, 분포를 말한다. 예를 들어서, 주어진 상태 s, action a를 한다면 next state s'으로 가는 state transition model도 있다. 그리고 주어진 상태와 주어진 action에서 reward를 얼마나 받을 지에 대한 것도 reward model로 있다. 정확히 말하면 reward에 대한 기댓값을 예측하는 것이다.

(기대값에 대한 notation을 정리하면, E는 기댓값, expectation을 말한다. E의 아랫첨자에는 random variables를 밝히고, random varaibles가 어떤 분포를 갖는지까지 표현하는 것이 좋다. 예를 들어 아래의 그림의 경우는 random varaible R이 P(r|s,a)의 분포를 가질때의 R의 기댓값이 expected reward이다.)

download.png Model

6-3. Policy

=>"action을 선택하기 위해 agent가 하는 행동 함수이다". Deterministic policy가 있고, stochastic policy 이렇게 두 개가 있다.

인생으로 비유하면 "처세술" - 신하용 교수님

6-4. Value function

얼마나 S_t가 좋은지에 대한 것이다. State에 대한 value function인 state value function, action에 대한 고려도 있는 action value function 이렇게 두 가지가 있다.

인생으로 비유하면 "가치관" - 신하용 교수님
download.png Blank: Q-factor
download.png Grid world에서의 DP 예시. State와 value function, reward가 보이고, 푸른색 화살표로 policy를 따르는 action이 있다.

7. Taxonomy of Dynamic System

7-1. Discrete vs Continous

download.png Discrete/ action {State space, Action space, Time}

상태나 행동이나 시간이나 discrete으로 한 것으로 볼수도 있고, continous한 것으로 볼 수도 있다.

7-2. Time horizon T ( ending time)

Finite horizon의 경우는 T가 유한하고 알려져 있다. 그래서 현재 시각도 중요하다. 왜냐면 T에 가까워질 수록 action이 바뀌기 때문이다.

No-horizon 의 경우는 T가 알려져있지 않거나(Indefinite), T가 무한대(infinite)인 continous 경우이다. 그래서 시간 t에 대해서 영향을 별로 받지 않고, 변하지 않는다.

7-3. Online and Offline

Online learning은 "learn from real environment"이고, off line learning은 "learn from simulated environment"이다. 즉, 학습도중에 받는 reward가 중요한 것이 online learning이고, offline learning은 학습 도중에 reward는 필요없고, 학습이 끝나고 난 후에 더 좋은 policy로 update되어야한다. Off - line과on-line 모두 exploration과 exploitation은 둘 다 사용한다. 그리고 on-line policy는 behavior policy와 learning target policy가 같다. 반면에 off-line policy는 behaviour policy 와 target policy가 다르기 때문에 더 많은 탐험의 결과를 이용하여 최적의 solution을 찾을 수 있다.

Online learning과 offline learning은 나중에도 계속 설명되니 지금은 이해가 안되도 괜찮을 것 같다. 지속적으로 반복하면서 설명할 것 같다.


다음 편에는 강화학습 학습하기 2편 - MDP에 대해서 설명하겠습니다.
keyword
매거진의 이전글강화학습 학습하기 - [2] MDP