강화학습 입문— SUTTON & BARTO
CHAPTER 13 · 정책 경사 방법 — POLICY GRADIENT METHODS

가치를 거치지 마라. 정책을 직접 빚어라.

이 책의 거의 모든 장은 가치 함수를 배우고 그것으로 행동을 골랐다. 이 장은 다른 길을 택한다 — 가치를 참조하지 않고, 정책 그 자체 π(a|s,θ)를 파라미터화해 경사 상승으로 직접 끌어올린다. 그 경사를 정확히 계산하는 법이 정책 경사 정리다.

제 II 부 · 마지막 패러다임 정책 경사 정리 · REINFORCE 액터-크리틱 · 연속 행동

§ 1정책을 직접 파라미터화한다 — 가치 없는 행동

지금까지 우리는 행동 가치 q(s,a)를 배우고, 그 추정치를 보고 행동을 골랐다. 이 장에서는 가치 추정치를 참조하지 않고도 행동을 선택할 수 있도록 정책 자체를 파라미터화한다. 정책을 매개변수 벡터 θ ∈ ℝd′로 쓴 것이 π(a|s,θ) = Pr{At=a | St=s, θt=θ}다.

가치 함수는 여전히 보조로 쓰일 수 있다 — 그러나 행동을 선택하는 데는 필요하지 않다. 우리는 정책의 성과를 재는 스칼라 척도 J(θ)를 정의하고, 그 경사를 따라 경사 상승(gradient ascent)으로 매개변수를 끌어올린다.

정책 경사 — 경사 상승의 기본형
θt+1  =  θt  +  α  ∇J(θt)
J(θ) 정책 성과 척도 — 에피소드형이면 시작 상태의 가치 vπθ(s0) · ∇J(θt) 매개변수에 대한 성과의 경사(의 추정치) · α 단계 크기. 가치가 아니라 정책을 직접 좋은 방향으로 민다.

이산 행동 공간에서는 각 상태-행동 쌍에 수치 선호도 h(s,a,θ)를 두고, 소프트맥스(soft-max)로 확률을 만든다 — π(a|s,θ) ∝ eh(s,a,θ). 선호도는 신경망이든 선형 함수 h(s,a,θ)=θx(s,a)든 무엇이든 될 수 있다.

왜 정책을 직접?정책 파라미터화의 세 가지 장점

1 · 결정론적 정책에 다가갈 수 있다. ε-탐욕은 늘 ε의 확률로 무작위 행동을 남기지만, 소프트맥스 정책은 선호도 차이를 키워 점근적으로 결정론적 정책에 접근할 수 있다.

2 · 임의의 행동 확률을 배운다. 가위바위보처럼 최적 정책이 본질적으로 확률적인 문제에서, 행동-가치 방법은 확률적 정책을 자연스럽게 표현하지 못한다. 정책 파라미터화는 어떤 확률이든 학습한다.

3 · 연속 행동 공간을 자연스럽게 다룬다. 무한히 많은 행동마다 가치를 계산하는 대신, 행동 분포의 통계량(평균·표준편차)을 배운다.

또한 — 정책이 매개변수에 연속적으로 의존하므로, 정책 경사 방법은 행동-가치 방법보다 더 강한 수렴 보장을 갖는다. ε-탐욕은 추정 가치의 작은 변화가 최댓값 행동을 바꿔 정책을 급격히 흔들 수 있다.

그림 13·A — θ가 경사 상승으로 좋은 행동의 확률을 높인다 STEP 01 / 5
space 재생 · ← → 단계 · R 리셋

§ 2정책 경사 정리 — 상태 분포를 미분하지 않고도

경사 상승을 하려면 ∇J(θ)를 알아야 한다. 그런데 여기 깊은 어려움이 있다. 성과 J(θ)는 두 가지에 의존한다 — (1) 각 상태에서의 행동 선택, (2) 그 선택이 이루어지는 상태 분포. 그리고 둘 다 정책 매개변수의 영향을 받는다.

주어진 상태에서 매개변수가 행동에 미치는 영향은 파라미터화로부터 비교적 쉽게 계산된다. 그러나 매개변수가 상태 분포에 미치는 영향은 환경의 함수이며 일반적으로 알 수 없다. 알 수 없는 양에 의존하는 경사를 어떻게 추정한단 말인가?

이 장의 심장정책 경사 정리 — Policy Gradient Theorem

놀라운 답이 있다. 정책 경사 정리는 성과의 경사에 대한 해석적 표현을 제공하는데 — 상태 분포에 대한 미분을 전혀 포함하지 않는다. 이것이 모든 정책 경사 방법의 이론적 기초다.

정책 경사 정리 (에피소드 경우)
∇J(θ)  ∝  Σs μ(s) Σa qπ(s,a)  ∇π(a|s,θ)
μ(s) 정책 π 하의 정책 내 분포(on-policy distribution) · qπ(s,a) 행동 가치 · ∇π(a|s,θ) 행동 확률의 매개변수 경사 — 상태 분포의 경사는 없다 · 비례. 에피소드 경우 비례 상수는 에피소드 평균 길이, 지속 경우엔 1이라 등식.

증명은 기초 미적분과 항의 재배열만으로 된다. 상태 가치의 경사 ∇vπ(s)를 곱 규칙으로 펼치고, 그것을 한 단계 더 펼쳐 ∇vπ(s′)로 — 이렇게 반복 전개(unrolling)하면, 에피소드 한 번에 상태 s를 방문하는 기대 횟수 η(s)가 자연스럽게 떠오른다. 정규화하면 μ(s) = η(s) / Σ η(s′)가 되어 위 식이 나온다.

왜 이것이 결정적인가 정책 경사 정리의 우변은 경험으로부터 표본을 뽑을 수 있는 형태다 — 환경 모델 없이도. 정책 π를 따라 행동하면 상태가 정확히 μ(s) 비율로 나타나므로, 그 표본 평균이 곧 경사의 추정치가 된다. 알 수 없는 상태 분포의 미분이라는 장벽이 사라진 것이다.

§ 3REINFORCE — 몬테카를로 정책 경사

이제 첫 정책 경사 알고리즘을 유도한다. 정책 경사 정리의 우변은 상태에 대한 합이다. π를 따르면 상태가 μ 비율로 나타나므로, 이를 π 하의 기대값으로 다시 쓴다 — ∇J(θ) = 𝔼π[ Σa qπ(St,a) ∇π(a|St,θ) ].

이 식의 행동 합 Σa를 없애려면 — 각 항에 π(a|St,θ)를 곱하고 나눈다. 그러면 실제로 취한 행동 At 하나에 대한 기대값으로 바뀌고, qπ(St,At)는 표본 반환값 Gt로 대체된다.

REINFORCE 갱신 (Williams, 1992)
θt+1  =  θt  +  α  Gt   ∇π(At|Stt) / π(At|Stt)  =  θt + α  Gt  ∇ln π(At|Stt)
Gt 시간 t부터의 완전한 반환값 — 모든 미래 보상 포함 · ∇π / π = ∇ln π 적격도 벡터(eligibility vector) — 행동 At의 확률을 가장 크게 높이는 방향 · 반환값에 비례해 그 방향으로 θ를 민다.

이 갱신은 직관적이다. 증분은 반환값 Gt적격도 벡터의 곱에 비례한다. 적격도 벡터는 미래에 St를 다시 방문했을 때 At를 반복할 확률을 가장 크게 높이는 방향이다. 확률로 나누는 까닭은 — 그러지 않으면 자주 선택되는 행동이 단지 자주 갱신된다는 이유만으로 부당하게 유리해지기 때문이다.

REINFORCE는 완전한 반환값을 쓰므로 몬테카를로 알고리즘이다 — 에피소드형 경우에만 정의되고, 모든 갱신은 에피소드가 끝난 뒤 회고적으로 이루어진다. 좋은 이론적 수렴 특성을 갖지만, 몬테카를로 특유의 높은 분산 때문에 학습이 느릴 수 있다.

알고리즘 — REINFORCE: 몬테카를로 정책 경사 (에피소드 경우)
# 입력: 미분 가능한 정책 파라미터화 π(a|s,θ)
# 매개변수: 단계 크기 α > 0
초기화 정책 매개변수 θ ∈ ℝd' (예: 0)

각 에피소드에 대해 반복:
    π(·|·,θ) 를 따라 에피소드 생성:  S₀, A₀, R₁, …, ST-1, AT-1, RT
    에피소드의 각 단계 t = 0, 1, …, T−1 에 대해:
        G  Σk=t+1T γk-t-1 Rk          # t부터의 반환값
        θ  θ + α · γt · G · ∇ln π(At|St, θ)
# 구성상, 에피소드에 대한 기대 갱신은 성과 경사와 같은 방향이다.

§ 4기준선이 있는 REINFORCE — 분산을 잠재우다

정책 경사 정리는 행동 가치를 임의의 기준선(baseline) b(s)와 비교하도록 일반화할 수 있다 — ∇J(θ) ∝ Σs μ(s) Σa [qπ(s,a) − b(s)] ∇π(a|s,θ).

기준선은 행동 a에 따라 변하지만 않으면 어떤 함수든 될 수 있다. 빼낸 양이 0이기 때문이다 — Σa b(s)∇π(a|s,θ) = b(s)∇1 = 0. 따라서 기준선은 갱신의 기대값을 바꾸지 않는다. 그러나 그 분산에는 큰 영향을 줄 수 있다.

기준선이 있는 REINFORCE 갱신
θt+1  =  θt  +  α  [ Gt − b(St) ]  ∇ln π(At|Stt)
b(St) 상태에 따라 변하는 기준선 — 자연스러운 선택은 상태 가치 추정치 v̂(St,w) · Gt − b(St) 반환값이 기준선보다 얼마나 좋은가 · b ≡ 0 이면 평범한 REINFORCE — 즉 이것은 엄격한 일반화다.

왜 상태마다 다른 기준선이 필요한가? 어떤 상태에서는 모든 행동의 가치가 높아, 더 좋은 행동을 가려내려면 높은 기준선이 필요하다. 다른 상태에서는 모두 낮으니 낮은 기준선이 맞다. 자연스러운 선택은 상태 가치 추정치 v̂(St,w)다. REINFORCE가 정책을 위한 몬테카를로 방법이므로, 가중치 w도 몬테카를로로 배우는 것이 자연스럽다.

직관 반환값 Gt가 "100점"이라 해도, 그 상태에서 어차피 평균 95점이 나온다면 그 행동이 특별히 좋았던 게 아니다. Gt − b(St)는 "기대 이상으로 얼마나 좋았나"만 본다 — 절대 점수의 출렁임을 걷어내, 같은 기대 갱신을 훨씬 잠잠한 분산으로 따라간다. 기준선을 더하면 REINFORCE는 눈에 띄게 빨라진다.

§ 5액터-크리틱 — 행위자와 비평자의 협업

기준선 REINFORCE는 정책과 상태 가치를 모두 배운다. 그런데 우리는 이것을 액터-크리틱이라 부르지 않는다. 까닭이 미묘하다 — 거기서 상태 가치는 기준선으로만 쓰일 뿐, 부트스트래핑(한 상태의 가치 추정을 후속 상태의 추정값으로부터 갱신)에는 쓰이지 않기 때문이다.

이 구분이 중요한 것은 — 편향(bias)과 함수 근사 품질에 대한 점근적 의존성은 오직 부트스트래핑을 통해서만 들어오기 때문이다. 그러나 부트스트래핑이 가져오는 편향은 종종 유리하다. 분산이 줄고 학습이 빨라진다. 액터-크리틱(actor-critic) 방법은 부트스트래핑하는 크리틱을 둠으로써 그 이점을 취한다.

1단계 액터-크리틱 — TD 오차가 액터를 이끈다
δt = Rt+1 + γv̂(St+1,w) − v̂(St,w)
w ← w + αw δt ∇v̂(St,w)  ·  θ ← θ + αθ δt ∇ln π(At|St,θ)
δt TD 오차 — 완전 반환값 Gt 대신 1단계 반환값을 쓴다 · 크리틱(critic) 가중치 w 를 갱신해 가치를 평가 · 액터(actor) 매개변수 θ 를 갱신해 정책을 개선 — 둘 다 같은 δt 로 움직인다.

핵심 통찰 — 기준선 REINFORCE의 Gt − v̂(St,w)에서 완전 반환값 Gt를 1단계 반환값 Rt+1 + γv̂(St+1,w)로 바꾸면, 그 차이가 정확히 TD 오차 δt가 된다. 이 한 번의 대체로 알고리즘은 완전히 온라인·증분적이 된다 — 상태·행동·보상이 발생할 때마다 즉시 처리하고 다시 방문하지 않는다.

크리틱은 가치를 평가해 액터의 행동 선택을 "비평"하고, 액터는 그 비평(δt의 부호와 크기)에 따라 정책을 다듬는다. δt>0이면 "예상보다 좋았다" — 그 행동의 확률을 높인다. δt<0이면 낮춘다.

그림 13·B — 액터와 크리틱의 협업 루프 STEP 01 / 6
space 재생 · ← → 단계 · R 리셋
알고리즘 — 적격 흔적을 갖는 액터-크리틱 (에피소드 경우)
# 입력: 미분 가능한 π(a|s,θ) 와 v̂(s,w)
# 매개변수: 흔적 감쇠율 λθ, λw ∈ [0,1];  단계 크기 αθ, αw > 0
초기화 θ ∈ ℝd',  w ∈ ℝd

각 에피소드에 대해 반복:
    S  시작 상태
    zθ  0;   zw  0           # 액터·크리틱 각각의 흔적
    I  1
    각 단계에 대해 반복 (S 가 종료 상태가 아닌 동안):
        A  π(·|S, θ) 로부터 선택
        행동 A 를 취하고  R, S' 관찰
        δ  R + γ · v̂(S', w) − v̂(S, w)   # S' 가 종료면 v̂(S',w)=0
        zw  γ · λw · zw + ∇v̂(S, w)        # 크리틱 흔적
        zθ  γ · λθ · zθ + I · ∇ln π(A|S, θ)  # 액터 흔적
        w  w + αw · δ · zw             # 크리틱 갱신
        θ  θ + αθ · δ · zθ             # 액터 갱신
        I  γ · I
        S  S'
# 12장의 흔적 패턴을 액터와 크리틱 각각에 적용한 λ-반환값 알고리즘의 역방향 보기.

§ 6연속 행동과 지속 문제 — 마지막 일반화

연속 행동. 정책 기반 방법의 가장 실용적인 미덕은, 무한히 많은 행동을 가진 연속 공간을 자연스럽게 다룬다는 것이다. 각 행동의 확률을 따로 계산하는 대신, 확률 분포의 통계량을 배운다. 행동이 실수이고 정규(가우시안) 분포에서 뽑힌다고 하자.

연속 행동을 위한 가우시안 정책
π(a|s,θ) = (1 / (σ(s,θ)√2π))  exp( −(a−μ(s,θ))2 / (2σ(s,θ)2) )
μ(s,θ) = θμxμ(s) 행동 분포의 평균 — 선형 함수로 근사 · σ(s,θ) = exp(θσxσ(s)) 표준편차 — 항상 양수여야 하므로 지수 형태 · 매개변수를 θμ·θσ 두 부분으로 나눠 평균과 산포를 따로 배운다.

이렇게 정의하면, 이 장의 모든 알고리즘 — REINFORCE, 기준선 REINFORCE, 액터-크리틱 — 을 그대로 실수값 행동 선택을 배우는 데 쓸 수 있다. 정책이 탐색의 정도(σ)까지 스스로 배운다는 점이 특히 우아하다.

지속 문제. 에피소드 경계가 없는 지속(continuing) 문제에서는 성과를 평균 보상률로 정의한다 — J(θ) = r(π) = limh→∞ (1/h) Σ 𝔼[Rt]. 가치는 미분 반환값(differential return)으로 정의하고, TD 오차에 평균 보상 추정치 를 빼는 항을 둔다. 놀랍게도, 이 대체 정의 아래에서도 정책 경사 정리는 그대로 성립한다 — 전개 보기와 역방향 보기 방정식도 동일하다.

이 장이 — 그리고 이 책의 제 II 부가 — 남긴 것 이 장 이전까지 이 책은 행동-가치 방법에 초점을 맞췄다. 이 장은 마지막 패러다임 — 정책 매개변수를 직접 배우는 길 — 을 열었다. 정책 경사 정리는 모든 정책 경사 방법의 이론적 기초이며, 상태 분포의 미분이라는 장벽을 우회한다. REINFORCE는 그 정리에서 곧장 나오고, 기준선은 편향 없이 분산을 줄이며, 액터-크리틱은 부트스트래핑 크리틱으로 편향을 감수하는 대신 분산을 더 크게 줄이고 온라인 학습을 가능하게 한다. 정책 경사 방법은 행동-가치 방법과는 사뭇 다른 강점·약점을 지닌, 여전히 진행 중인 흥미로운 연구 영역이다.