강화학습/Reinforcement Learning An Introduction

Reinforcement Learning 책 읽고 공부하기(3-2)

APinCan 2020. 3. 9. 23:43

sutton 교수의 Reinforcement Learning An Introduction을 읽고 공부하기

3.2 Goals and Rewards

강화학습에서 에이전트의 목적(목표)는 reward라는 환경을 거쳐 에이전트에게 가는 특별한 신호로 공식화한다. 각 타임스텝에서 reward는 실수범위 내의 간단한 숫자이다. 비공식적으로 에이전트의 목표는 이 reward들의 총합을 최대화하는 것이다. 즉각적인 reward가 아닌 긴 시간에 걸쳐 쌓인 reward를 최대화하겠다는 의미다. 이 아이디어를 reward hypothesis라 한다: 목표와 목적에 의해 reward라 불리는 스칼라 신호의 누적 합의 기대값(expected value)의 최대화

목표의 아이디어를 공식화하기 위해 reward signal의 사용은 강화학습의 가장 구분되는 특징이다.

  reward signal을 목표(goal)로 공식화하는 것은 제한적으로 보일 수 있지만, 실제로는 유연하고 광범위하게 적용가능하다. 예를 들어 로봇이 걷는 것을 학습할 때, 연구자들은 각 타임스텝마다 로봇이 앞으로 걸어간 것에 비례해 reward를 준다. 미로를 탈출하는 로봇에게는 탈출하기 전 매 타임스텝마다 -1을 reward로 준다.

  이런 예제들에서 에이전트는 항상 reward를 최대화 하는법을 학습한다. 우리가 원하는데로 학습을 시키기 위해선 달성하기 원하는 방향으로 reward를 설정하는게 매우 중요하다. reward signal은 우리가 원하는 것을 달성하는 방법에 대한 사전 지식을 전달하는 장소가 아니다. 이런 사전 지식을 전달하기 더 좋은 장소는 initial policy 또는 initial value function 등이 있다. 예를 들어 체스 에이전트는 상대방의 말을 먹었을 때나 중앙을 선점하는 것 같은 부가 목표가 아닌 실제로 이겼을 때만 reward를 받아야한다. 이러한 부가 목표에 도달했을 때 reward를 받으면 에이전트는 실제 목표가 아닌 부가 목표를 달성하는 법을 찾으려고 할 것이다. reward signal로 로봇이 어떻게(how) 목표를 달성하기 원하는 지가 이닌 무엇(what)을 달성하기 원하는지를 알려준다.

Reward signal의 중요성에 대해 말함.
에이전트의 목표는 reward의 총합을 최대화하는 것임. 그리고 이 목표를 달성하기 위해 reward의 누적기대값을 공식화한 reward signal을 사용.
우리는 에이전트가 어떻게 목표를 달성하는지가 아닌 무엇을 달성해야하는지를 reward signal로 알려줌.

3.3 Returns and Episodes

학습의 목표를 비공식적으로 얘기해왔었다. 에이전트의 목표는 긴 시간동안 받은 누적 reward를 최대화하는 것이라고 얘기했었다. 이걸 어떻게 공식화할 수 있을까? 타임스텝 t후에 받은 reward들의 sequence를 \( {R}_{t+1},{R}_{t+2},{R}_{t+3},..., \) 이렇게 표시하면 이 sequence를 최대화하기 위한 정확한 방법은 무엇일까? 보통 우리는 expected return을 최대화하는 방법을 찾는다. 이 return을 \( {G}_{t} \)라 표시하고 reward sequence의 구체적인 함수로 정의한다.

$$ {G}_{t} \doteq {R}_{t+1} + {R}_{t+2} + {R}_{t+3} + \cdots + {R}_{T} \, \, \, (3.7) $$

여기서 \( T \)는 마지막 타임스텝이다. 에이전트-환경의 상호작용이 이렇게 자연스러운 subsequence로 나뉘어 이걸 episode라 부른다. episode는 'trials'라 부르기도 한다. 게임 플레이, 미로 탐색 등의 반복적인 상호작용 종류를 episode라 부른다. 각 episode는 terminal state로 끝이 나고 다시 starting state로 리셋된다. episode가 이기거나 지거나 다른 방법으로 끝나도 다음 episode는 이전과 독립적으로 시작한다. episode들은 모두 다른 결과와 다른 reward를 주지만 동일한 terminal state로 끝나는 것으로 간주한다. 이런 종류의 episode가 있는 작업을 episodic task라 한다. episodic task에서는 때때로 nonterminal state의 집합(\( S \))과 terminal state의 집합(\( S^{+} \))을 구분해야 한다. 끝나는 시간 T는 랜덤 변수로 episode마다 다양하다.

  다른 한편으로는 에이전트-환경 상호작용의 다양한 경우들이 자연스럽게 에피소드로 나눠지진 않는다. 예를 들어 수명이 긴 로봇에 대한 응용프로그램같은 것은 continuing tasks로 부를 수 있다. return 공식(3.7)은 continuing task에서는 \( T= \infty \)이기 때문에 적합하지 않다. 이 공식을 최대화 시키는게 목표인데 무한대일때는 너무 쉽게 최대화된다.

  그래서 discounting에 대한 추가적인 개념이 필요하다. 이 방법에서 에이전트는 discounted reward의 합이 최대가 되는 action을 선택하려고 한다. 즉 \( {A}_{t} \)를 고르는데 expected discounted return이 최대가 되는 것을 고르려고 한다. \( \gamma \)는 \( 0 \leq \gamma \leq 1 \)이 범위에 있으며 disount rate라 부른다.

$$ {G}_{t} \doteq {R}_{t+1} + \gamma{R}_{t+2} + \gamma^{2}{R}_{t+3} + \cdots = \sum_{k=0}^{\infty} \gamma^{k} {R}_{t+k+1} \,\,\,(3.8) $$

  Discount rate는 미래에 받을 reward의 현재 value를 결정한다. k 타임스텝 후에 받을 reward를 즉시 계산할 때는 \( \gamma^{k-1} \)이 곱해져야 한다. \( \gamma < 1\)이면 (3.8)은 한정된 값을 갖는다. \( \gamma=0 \)이면 에이전트는 "myopic"으로 즉각적인 reward를 최대화하려고 한다. 이 경우 오직 \( {R}_{t+1} \)을 최대화 하기 위해 \( {A}_{t} \)을 선택한다.  \( \gamma \)가 1에 가까워질수록, return 목표는 미래의 보상을 더 강력하게 고려해 에이전트는 더 먼 미래를 고려한다.

  연속적인 타임스텝의 return들은 서로 연관되어 있는데 이 알고리즘은 강화학습에서 중요하다.

(3.9)

\( {G}_{T}=0 \)을 정의하면 t+1에서 끝나더라도 모든 타임스텝 \( t<T \)에 대해 성립한다는걸 유의한다. 이는 reward sequence에서 return을 계산하기 쉽게 만들어준다.

  Return (3.8)이 무한하게 reward를 더한 것이지만 reward가 0이 아니고 상수이면(\( \gamma<1 \)) 여전히 유한하다. 예를 들어 reward가 상수 +1이면 그 return은 다음과 같다.

$$ {G}_{t} = \sum_{k=0}^{\infty} \gamma^{k} = \frac{1}{1-\gamma} $$

reward를 최대화하기 위한 return을 공식으로 표현.
에이전트-환경의 상호작용은 episodic task와 continuing task가 있음. episode는 미로 탐색이나 게임플레이 등이고 하나의 episode는 모두 이전의 episode와 독립적임. episode로 자연스럽게 나눠지지 않는 수명이 긴 로봇같은 것들은 continuing task가 적합함. 여기서 discount rate라는 개념이 등장하는데 continuing task에서는 return이 너무나 쉽게 무한이 되므로 discount를 적용하는 것임.

Example 3.4: Pole-Balancing

이 문제의 목표는 트랙을 따라 움직이는 카트가 떨어지지 않도록 힘을 주는 것이다. 폴이 수직에서 일정 각도를 넘어서거나 카트가 트랙에서 떨어지면 실패다. 폴은 각 실패 후에 다시 수직으로 리셋된다. 이 문제는 episodic으로 간주할 수 있으며 폴의 균형을 잡기 위해 반복 시도를 한다. reward는 실패하지 않는한 매 타임스텝마다 +1을 받는다. 이 경우 성공적으로 균형을 잡는데 성공해 쓰러지지 않으면 return은 무한대일 것이다.

  양자택일로 폴-균형 문제를 discounting을 사용해 continuning task로 생각할 수도 있다. 이 경우 reward는 각 실패마다 -1이고 다른 타임스텝에서는 모두 0이다. 각 타임에서 return은 \( -\gamma^{K} \)이고 \( K \)는 실패하기 전까지의 타임스텝 수다. 두 케이스 모두 폴의  균형을 유지하면 할수록 return은 최대화 된다.

 

3.4 Unified Notation for Episodic and Continuing Tasks

이전 섹션에서 두 가지 종류의 강화학습 task에 대해서 설명했다. 에이전트-환경이 자연스럽게 에피소드들로 나눠지는 episodic task와 그렇지 않은 continuing task에 대해서 봤다. 앞의 경우가 수학적으로 더 쉬운데 왜냐하면 각 action이 episode동안 유한한 reward에 영향을 주기 때문이다. 이러나 저러나 두 경우를 다루기 때문에 두 경우를 모두 동시에 정확하게 알기 위해 하나의 표기법을 사용한다.

  Episodic task를 더 정확하게 표현하기 위해 추가적인 표기가 필요하다. 타임스텝의 긴 sequence 대신 유한 타임스텝을 가진 에피소드의 series로 생각한다. 각 에피소드의 타임스텝은 0부터 새로 시작한다. 따라서 time t 에서 state인 \( {S}_{t} \)뿐만 아니라 time t에서 episode i를 나타낸 \( {S}_{t,i} \)를 알아야한다.(그리고 \( {A}_{t,i}, {R}_{t,i}, {\pi}_{t,i}, {T}_{i}\)등 모두 비슷하다.) 근데 episodic task에서는 다른 에피소드를 구분할 필요가 없다. 우리는 거의 항상 특정 단일 에피소드에 대해서만 고민한다. 따라서 표기를 할때 몇번째 에피소드인지 숫자를 표기하지 않는다. 그래서 결국 \( {S}_{t,i} \)를 지칭하기 위해 \( {S}_{t} \)로 쓴다.

  우리는 episodic과 continuing task 둘다 표현하는 단일 표기법을 사용하기 위해 다른 규칙이 필요하다. 앞의 (3.7)에서는 유한한 숫자들의 총합을 더한 return을 정의했고 (3.8)에서는 무한한 숫자들의 총합을 더하는 return에 대해 정의했다. 이 두가지는 에피소드의 종료를 transition을 자기 자신한테만 하고 오직 0의 reward만 주는 특별한 absorbing state에 들어가는 것으로 간주해 통합할 수 있다(These two can be unified by considering episode termination to be the entering of a special absorbing state that transitions only to itself and that generates only rewards of zero). 예를 들어 state trasition 다이어그램을 보자.

여기서 사각형이 특별한 absorbing state로 에피소드의 끝이다. \( {S}_{0} \)에서 시작해 +1, +1, +1, 0, 0, 0, ...의 reward sequence를 얻고 이것들을 더하면 T(여기서 T=3)까지 더하든 아니면 그걸 넘는 무한의 sequence를 더하든 동일한 return을 얻는다. 이거는 discounting을 적용해도 똑같다. 그래서 보통 return은 (3.8)로 정의하고 몇번째 에피소드인지는 필요하지 않으면 뺀다. 대안적으로 \( T=\infty \) 또는 \( \gamma=1 \)인 가능성을 포함하게 다음과 같이 공식을 쓴다.

$$ {G}_{t} \doteq \sum_{k=t+1}^{T} \gamma^{k-t-1} {R}_{k} $$

책의 나머지 부분에서 이 공식은 episodic과 continuing task 간의 밀접한 유사점을 단순하게 표현한다. 

앞에서 본 공식 (3.7)은 epsidodic을, (3.8)은 continuing에 적합한데 이 둘에 같은 표기법을 사용하기 위해 새로운 공식을 도입했음. 그게 바로 이 섹션의 마지막 부분에 나오는 공식인데 T가  무한일때와 감마값이 1일때 둘다 적용은 안된다고 함
왜냐하면 T가 무한일때는 continuing이고 감마가 1일때는 episodic이라 그런듯

 

 

Reference : Reinforcement Learning : An Introduction