Data Science

[강화학습-14]Sutton 교과서 챕터 13: Policy Gradient Methods

Author
Irealist
Date
2020-06-21 20:55
Views
1599

이제까지 배운 거의 모든 방법은 행동-가치(action-value) 방법이었습니다. 각 행동들의 가치값을 배운 후 그 추정치에 따라 행동을 선택해왔습니다. 이번 챕터에서는 가치를 추정하는 것 없이 바로 parameterized policy를 배우는 방법을 알아봅니다.

위와 같이 정책의 파라미터는 \(\theta\)로 표기합니다. 그리고 우리는 정책의 성능을 측정하는 scalar값인 \(J(\theta)\)를 정의한 후, 그에 대한 gradient로 파라미터 \(\theta\)를 업데이트 합니다.

이러한 방식을 따르는 방법들을 policy gradient method라고 하고, policy와 동시에 가치 함수(value function)도 같이 근사하는 방식을 actor-critic method라고 합니다. 여기서 actor는 정책을 의미하고 critic은 가치 함수를 의미합니다.


13.1 Policy Approximation and its Advantages

Policy gradient 방법에서, \(\pi(a|s, \theta)\)가 파라미터에 대해 미분가능하기만 하다면 - 즉 \(\nabla\pi(a|s, \theta)\)가 존재하기만 한다면 - 어떤 형태로든 정책을 파라미터화할 수 있습니다. 실제 현업에서 사용할 때는, 탐색을 보장하기 위해 정책이 deterministic되는 일이 없어야한다는 조건이 추가됩니다.

만약 action space가 이산(discrete)적이고 너무 크지 않다면, 각 state-action pair에 대한 선호를 나타내는 어떠한 파라미터화된 수치 \(h(s, a, \theta) \in R\) 을 정의하고, 여기에 아래와 같이 soft-max 분포를 적용하는 것이 많이 쓰입니다.

각 행동에 대한 선호 h는 어떤 방식으로든 파라미터화되면 됩니다. 뉴럴 네트워크를 사용해도 되고, 아니면 아래와 같이 간단한 선형 함수여도 됩니다.

행동에 대한 선호도에 soft-max를 적용하는 방식으로 정책을 파라미터화하는 것에는 여러 가지 장점이 있는데, 그 중 하나는 근사된 정책이 deterministic 정책에 가까워질 수 있다는 것입니다. 이전의 \(\epsilon\)-greedy 정책 같은 경우에는 수렴하더라도 \(\epsilon\)의 확률로 랜덤한 행동을 하는 부분이 남아 있어야만 했습니다. 두번째 장점은 각 행동에 임의적(arbitrary)인 확률을 배정할 수 있다는 것입니다. 함수 근사가 많이 필요한 문제에 있어, 최고의 근사 정책은 stochastic한 정책일 수 있습니다. Action-value 방법들은 이러한 stochastic optimal policy를 자연스럽게 찾는 것이 불가능하지만 policy approximating methods는 할 수 있습니다. 세번째 장점은, 단순히 가치 함수를 찾고 근사하는 것보다 정책을 찾고 근사하는 것이 더 쉬운 경우가 있기 떄문입니다. 마지막으로, 해당 강화학습 문제에 관해서 정책이 어떤 형태여야한다는 도메인 지식을 가졌을 경우, 이를 인풋할 수 있다는 장점도 있습니다.


13.2 The Policy Gradient Theorem

이론적으로도 큰 장점이 하나 있는데, \(\epsilon\)-greedy 정책의 경우 행동 가치 함수의 추정값이 변함에 따라 각 행동에 배정되는 확률이 급격히 변할 수 있다는 부분이 있습니다. 이 섹션에서는 episodic 문제를 살펴보는데, 여기서 performance는 아래와 같이 정의합니다. 즉, 어떤 파라미터 \(\theta\)로 결정되는 정책 \(\pi_{\theta}\)에 대한 가치함수에서, 가장 초기 상태의 참값입니다. 이를 극대화하는 것이 목표입니다.

함수 근사를 할 때, J값이 개선되는 것을 보장하는 방향으로 파라미터 \(\theta\)를 움직이는 것은 쉬운 일은 아닙니다. 문제는, 성능은 1) 행동을 선택하는 부분과 2) 행동을 선택하게 되는 상태(state)들의 분포, 두 가지에 영향을 받는데, 파라미터를 조정하면 두 가지가 동시에 변하기 때문입니다. 어떠한 상태가 이미 주어졌다는 가정 하에서, \(\theta\)를 변화시키는 것이 행동과 그에 따른 보상에 어떠한 영향을 주는지 계산하는 것은 파라미터화된 과정을 보면 간단합니다. 그러나 \(\theta\)의 변화가 방문하는 상태의 분포(state distribution)에 어떠한 영향을 미치는지는 환경에 달려 있고 이는 많은 경우에 알지 못합니다. Gradient가 우리가 알지 못하는 state distribution의 변화에 영향을 받는다면 이를 어떻게 추정할까요?

다행스럽게도, policy gradient theorem이라는 정리를 이용해서, state distribution의 derivative에 의존하지 않고서 gradient를 아래와 같이 계산하는 것이 가능합니다. 여기서 \(\mu\)는 정책 \(\pi\) 하의 on-policy distribution입니다. 여기서 등식 대신에 "비례한다"는 기호가 있는데, episodic 문제의 경우 에피소드의 평균 길이만큼 비례하고, continuing case는 1대1로 비례해서 등식이 성립됩니다.

이를 도출하는 것은 기초적인 미분으로 가능한데, episodic 문제에 대한 도출 과정이 아래에 전개되어 있습니다.


13.3 REINFORCE: Monte Carlo Policy Gradient

Stochastic Gradient Descent(SGD) 방식에서는, 한 샘플의 gradient의 기대값이 실제 performance measure J의 gradient의 기대값이 같으면 됩니다. 개별 샘플의 방향은 제각각일 수 있어도, 기대값이 올바르다면 gradient descent 방법이 통하게 됩니다.

우리의 performance measure J에서 우변의 \(\mu\)는, 현재 따르고 있는 타겟 정책 \(\pi\) 하에서 각 상태(state)들이 얼마나 방문되느냐를 말해주고, 이를 가중평균한 것은 결국 \(\pi\) 하에서의 기대값과 같습니다.

여기서 멈추고 위의 식으로만 SGD 알고리즘을 행하는 것을 all-actions method이라고 하는데, 이 방법은 연구 중에 있습니다.

이 섹션에서는 유명한 REINFORCE 알고리즘에 대해 알아보도록 합니다. 아까의 식에서, \(\pi(a|S_t, \theta)\)를 분모와 분자에 동일하게 곱해주면 아래의 첫번째 식이 됩니다. 아까전의 \(\mu\)를 이용한 것과 마찬가지로, \(\pi(a|S_t, \theta)\)는 행동 a들의 분포를 나타내주므로, 어떤 특정한 행동 \(A_t\)을 샘플하는 것과 기대값이 동일하게 됩니다.

그러면 REINFORCE 알고리즘의 업데이트는 아래와 같이 됩니다.

이 업데이트 식은 매우 직관적인데, gradient부분은 결국 업데이트가 해당 행동 \(A_t\)을 선택할 확률을 높이는 쪽으로 움직이는 것을 말하고, 수익(return) \(G_t\)가 높을수록 이 업데이트의 크기는 커지며, 현재의 확률인 분모값이 클수록 업데이트의 크기는 작아집니다. 수익과 비례하는 건, 수익이 높아지는 쪽으로 정책을 변경시켜야하므로 말이 되고, 현재 해당 행동의 확률과 반비례하는 건, 그렇지 않을 경우 현재 확률이 높아서 자주 선택되는 행동들이 유리할 것이기 때문에 말이 됩니다. 즉, 수익이 높지 않더라도 단순히 확률이 높아서 자주 조금씩 확률이 상승해버리는 것을 방지해 줍니다.

여기서 REINFORCE는 에피소드 끝까지의 수익을 사용하기 때문에, Monte Carlo 알고리즘의 부류라 할 수 있으며, episodic case에서만 잘 정의되고, episode가 끝나고 나서야 업데이트가 진행됩니다.

위는 REINFORCE 알고리즘의 pseudocode인데, 여기서 한 가지 차이는 \(\nabla ln \pi(A_t|S_t, \theta)\) 부분입니다. 이는 단순히 \(\nabla ln x = \frac{\nabla x}{x}\)의 공식을 사용해서 치환한 것입니다.이 \(\nabla ln\pi(A_t|S_t, \theta)\) 부분의 벡터는 eligibility vector라고 불리기도 하며, policy parameterization이 등장하는 유일한 부분입니다. 또 한가지 코드에서의 차이점은 \(\gamma\)값인데, 위에서 알고리즘 설명할 때는 non-discounted case 즉 \(\gamma = 1\)을 가정했지만, 코드에서는 이를 일반화한 것입니다.


13.4 REINFORCE with Baseline

Policy gradient theorem은, 아래와 같이 임의적인 baseline b(s)를 행동값(action value)에서 빼더라도 성립합니다.

그것이 성립하는 이유는 아래와 같이, \(b(s)\)부분을 빼내면 0이 되기 때문입니다.

그러면 업데이트 식은 아래와 같이 됩니다.

이 baseline은 a와 함께 움직이지 않는 한 어떤 함수여도 되며, random variable이어도 됩니다. Baseline이 0의 값을 가지면 REINFORCE 알고리즘이 되므로, 이 알고리즘은 REINFORCE를 더 일반화(generalize)한 알고리즘이라 할 수 있습니다. 지난 번 bandit 알고리즘에서 (챕터 2.8) 이러한 baseline이 variance를 줄여서 learning을 가속할 수 있다는 것을 보였습니다.

Baseline의 선택 중에 자연스러운 값은, 상태 가치(state value)인 \(\hat{v}(S_t, w)\)를 사용하는 것입니다. REINFORCE가 Monte Carlo 방식이므로, 상태 가치 함수의 파라미터 \(w\) 또한 Monte Carlo 방식으로 추정하는 것이 자연스러울 것입니다. 아래는 pseudocode입니다.

이 알고리즘은 \(\alpha^{\theta}\)와 \(\alpha^{w}\) 두 개의 step size 파라미터를 가지는데, \(\alpha^w\)를 정하는 것은 상대적으로 쉬운데, 예를 들어 선형 함수의 경우 챕터 9.6에 나온 것처럼 어림 잡아 \(\alpha^w = 0.1 / E[||\nabla\hat{v}(S_t, w)||_{\mu}^2]\)를 사용할 수 있습니다. 그러나 \(\alpha^{\theta}\)값을 정하는 것은 아직 잘 정립이 되어 있지는 않습니다.

아래는 이 알고리즘과 REINFORCE 알고리즘의 성능 비교입니다.


13.5 Actor-Critic Methods

바로 전 섹션에서의 REINFORCE-with-baseline 방법은 정책과 함께 상태-가치 함수를 동시에 배우기는 하지만, 상태-가치 함수는 baseline에만 사용되기 때문에 actor-critic 방법에 속하지는 않습니다. Actor-critic은 이를 bootstrapping에 사용할 경우를 지칭합니다. REINFORCE나 REINFORCE-with-baseline은 unbiased이며, 극한에서 local minimum으로 수렴하지만 모든 Monte Carlo 방법과 마찬가지로 배움이 느리고 online 혹은 continuing 문제에서 구현하기 까다롭습니다. 그 반면 TD 방법과 같은 bootstrapping 방법들은 bias가 생기지만 variance를 줄이고 learning을 가속시킵니다.

먼저 one-step actor-critic 방법을 살펴보면, REINFORCE에서 사용하는 full return을 one-step return으로 아래와 같이 bootstrap합니다.

이것과 함께 상태 가치 함수를 배울 방법으로 짝을 맞추기 자연스러운 것은 semi-gradient TD(0)입니다. 아래는 pseudocode입니다. 이제 이 알고리즘은 online이면서 incremental합니다.

이제 이 one-step 알고리즘을 n-step 방법으로 확장하고, 더 나아가 \(\lambda\)-return으로 일반화하는 건 간단합니다. One-step return을 각각 \(G_{t:t+n}\)과 \(G_t^\lambda\)로 대체하면 됩니다. Backward view \(\lambda\)-return으로 확장하는 것도 actor와 critic 각각 다른 eligibility trace를 사용하면 됩니다. 아래는 pseudocode입니다.


13.6 Policy Gradient for Continuing Problems

Episode로 단절되지 않은 continuing 문제로 이를 확장하는 것은, performance J값을 time step 당 평균 보상(average rate of return per time step)으로 정의하는 것을 요합니다.

여기서 \(\mu\)는 정책 \(\pi\)하의 steady-state distribution, 즉

인데, 이것이 존재하여야 하며 \(S_0\)과 독립이어야 합니다. (ergodicity assumption) 이는 정책 \(\pi\)에 따라 행동하면, 동일한 분포가 유지되는 특별한 분포입니다.

Continuing case에서의 actor-critic 알고리즘의 pseudocode는 아래에 있습니다.

자연스럽게, continuing 문제에서는 가치를 수익 차이(differential return)을 통해 정의합니다.

위의 정의를 이용해 Policy Gradient Theorem을 증명하는 것은 아래에 있습니다.


13.7 Policy Parameterization for Continuous Actions

Policy-based 방법들은 아주 큰 action space, 심지어 무한히 많은 행동 가지수가 있는 continuous space도 다룰 수 있습니다. 각 행동별 확률을 배우기보다는, 확률분포 자체를 배우는 것입니다. 예를 들어, 행동이 실수라고 하면 정규 분포를 따라 행동을 선택할 수 있습니다.

Policy parameterization는 아래와 같이, \(\mu\)와 \(\sigma\)값을 각 상태(state) s에 의존하게 하면 됩니다.

그리고 그 의존은 함수 근사를 통해 성립되는데, 선형 함수를 사용할 경우 아래처럼 두면 됩니다.

Total 0

Total 38
Number Title Author Date Votes Views
Notice
[공지]Data Science 게시판의 운영에 관하여
Irealist | 2020.05.18 | Votes 0 | Views 1234
Irealist 2020.05.18 0 1234
37
[통계분석-3]Statistical Concepts(작성중)
Irealist | 2020.08.23 | Votes 0 | Views 1000
Irealist 2020.08.23 0 1000
36
[통계분석-2]Statistical Data
Irealist | 2020.08.04 | Votes 0 | Views 1328
Irealist 2020.08.04 0 1328
35
[통계분석-1]통계 분석 시리즈를 시작하며 / Introduction
Irealist | 2020.08.04 | Votes 0 | Views 1170
Irealist 2020.08.04 0 1170
34
[강화학습-14]Sutton 교과서 챕터 13: Policy Gradient Methods
Irealist | 2020.06.21 | Votes 0 | Views 1599
Irealist 2020.06.21 0 1599
33
[강화학습-13]Sutton 교과서 챕터 11: Off-policy Methods with Approximation
Irealist | 2020.06.17 | Votes 0 | Views 942
Irealist 2020.06.17 0 942
32
[강화학습-12]Sutton 교과서 챕터 10: On-policy Control with Approximation
Irealist | 2020.06.17 | Votes 0 | Views 1063
Irealist 2020.06.17 0 1063
31
[강화학습-11]Sutton 교과서 챕터 9: On-Policy Prediction with Approximation
Irealist | 2020.06.15 | Votes 0 | Views 1000
Irealist 2020.06.15 0 1000
30
[강화학습-10]Sutton 교과서 챕터 2: Multi-armed Bandits
Irealist | 2020.06.04 | Votes 0 | Views 1310
Irealist 2020.06.04 0 1310
29
[강화학습-9]Sutton 교과서 챕터 17.4: Designing Reward Signals
Irealist | 2020.06.04 | Votes 0 | Views 977
Irealist 2020.06.04 0 977
28
[강화학습-8]Sutton 교과서 챕터 12: Eligibility Traces
Irealist | 2020.05.28 | Votes 0 | Views 1830
Irealist 2020.05.28 0 1830
27
[강화학습-7]Sutton 교과서 챕터 7: n-step Bootstrapping
Irealist | 2020.05.28 | Votes 0 | Views 2074
Irealist 2020.05.28 0 2074
26
[강화학습-6]Sutton 교과서 챕터 8: Tabular Methods
Irealist | 2020.05.27 | Votes 0 | Views 723
Irealist 2020.05.27 0 723
25
[강화학습-5]Sutton 교과서 챕터 6: Temporal-Difference Learning
Irealist | 2020.05.23 | Votes 0 | Views 1051
Irealist 2020.05.23 0 1051
24
[강화학습-4]Sutton 교과서 챕터 5: Monte Carlo Methods
Irealist | 2020.05.19 | Votes 0 | Views 1413
Irealist 2020.05.19 0 1413
23
[강화학습-3]Sutton 교과서 챕터 4: Dynamic Programming
Irealist | 2020.05.19 | Votes 0 | Views 1230
Irealist 2020.05.19 0 1230