§ 1정책을 직접 파라미터화한다 — 가치 없는 행동
지금까지 우리는 행동 가치 q(s,a)를 배우고, 그 추정치를 보고 행동을 골랐다. 이 장에서는 가치 추정치를 참조하지 않고도 행동을 선택할 수 있도록 정책 자체를 파라미터화한다. 정책을 매개변수 벡터 θ ∈ ℝd′로 쓴 것이 π(a|s,θ) = Pr{At=a | St=s, θt=θ}다.
가치 함수는 여전히 보조로 쓰일 수 있다 — 그러나 행동을 선택하는 데는 필요하지 않다. 우리는 정책의 성과를 재는 스칼라 척도 J(θ)를 정의하고, 그 경사를 따라 경사 상승(gradient ascent)으로 매개변수를 끌어올린다.
이산 행동 공간에서는 각 상태-행동 쌍에 수치 선호도 h(s,a,θ)를 두고, 소프트맥스(soft-max)로 확률을 만든다 — π(a|s,θ) ∝ eh(s,a,θ). 선호도는 신경망이든 선형 함수 h(s,a,θ)=θ⊤x(s,a)든 무엇이든 될 수 있다.
1 · 결정론적 정책에 다가갈 수 있다. ε-탐욕은 늘 ε의 확률로 무작위 행동을 남기지만, 소프트맥스 정책은 선호도 차이를 키워 점근적으로 결정론적 정책에 접근할 수 있다.
2 · 임의의 행동 확률을 배운다. 가위바위보처럼 최적 정책이 본질적으로 확률적인 문제에서, 행동-가치 방법은 확률적 정책을 자연스럽게 표현하지 못한다. 정책 파라미터화는 어떤 확률이든 학습한다.
3 · 연속 행동 공간을 자연스럽게 다룬다. 무한히 많은 행동마다 가치를 계산하는 대신, 행동 분포의 통계량(평균·표준편차)을 배운다.
또한 — 정책이 매개변수에 연속적으로 의존하므로, 정책 경사 방법은 행동-가치 방법보다 더 강한 수렴 보장을 갖는다. ε-탐욕은 추정 가치의 작은 변화가 최댓값 행동을 바꿔 정책을 급격히 흔들 수 있다.
§ 2정책 경사 정리 — 상태 분포를 미분하지 않고도
경사 상승을 하려면 ∇J(θ)를 알아야 한다. 그런데 여기 깊은 어려움이 있다. 성과 J(θ)는 두 가지에 의존한다 — (1) 각 상태에서의 행동 선택, (2) 그 선택이 이루어지는 상태 분포. 그리고 둘 다 정책 매개변수의 영향을 받는다.
주어진 상태에서 매개변수가 행동에 미치는 영향은 파라미터화로부터 비교적 쉽게 계산된다. 그러나 매개변수가 상태 분포에 미치는 영향은 환경의 함수이며 일반적으로 알 수 없다. 알 수 없는 양에 의존하는 경사를 어떻게 추정한단 말인가?
놀라운 답이 있다. 정책 경사 정리는 성과의 경사에 대한 해석적 표현을 제공하는데 — 상태 분포에 대한 미분을 전혀 포함하지 않는다. 이것이 모든 정책 경사 방법의 이론적 기초다.
증명은 기초 미적분과 항의 재배열만으로 된다. 상태 가치의 경사 ∇vπ(s)를 곱 규칙으로 펼치고, 그것을 한 단계 더 펼쳐 ∇vπ(s′)로 — 이렇게 반복 전개(unrolling)하면, 에피소드 한 번에 상태 s를 방문하는 기대 횟수 η(s)가 자연스럽게 떠오른다. 정규화하면 μ(s) = η(s) / Σ η(s′)가 되어 위 식이 나온다.
§ 3REINFORCE — 몬테카를로 정책 경사
이제 첫 정책 경사 알고리즘을 유도한다. 정책 경사 정리의 우변은 상태에 대한 합이다. π를 따르면 상태가 μ 비율로 나타나므로, 이를 π 하의 기대값으로 다시 쓴다 — ∇J(θ) = 𝔼π[ Σa qπ(St,a) ∇π(a|St,θ) ].
이 식의 행동 합 Σa를 없애려면 — 각 항에 π(a|St,θ)를 곱하고 나눈다. 그러면 실제로 취한 행동 At 하나에 대한 기대값으로 바뀌고, qπ(St,At)는 표본 반환값 Gt로 대체된다.
이 갱신은 직관적이다. 증분은 반환값 Gt와 적격도 벡터의 곱에 비례한다. 적격도 벡터는 미래에 St를 다시 방문했을 때 At를 반복할 확률을 가장 크게 높이는 방향이다. 확률로 나누는 까닭은 — 그러지 않으면 자주 선택되는 행동이 단지 자주 갱신된다는 이유만으로 부당하게 유리해지기 때문이다.
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. 따라서 기준선은 갱신의 기대값을 바꾸지 않는다. 그러나 그 분산에는 큰 영향을 줄 수 있다.
왜 상태마다 다른 기준선이 필요한가? 어떤 상태에서는 모든 행동의 가치가 높아, 더 좋은 행동을 가려내려면 높은 기준선이 필요하다. 다른 상태에서는 모두 낮으니 낮은 기준선이 맞다. 자연스러운 선택은 상태 가치 추정치 v̂(St,w)다. REINFORCE가 정책을 위한 몬테카를로 방법이므로, 가중치 w도 몬테카를로로 배우는 것이 자연스럽다.
§ 5액터-크리틱 — 행위자와 비평자의 협업
기준선 REINFORCE는 정책과 상태 가치를 모두 배운다. 그런데 우리는 이것을 액터-크리틱이라 부르지 않는다. 까닭이 미묘하다 — 거기서 상태 가치는 기준선으로만 쓰일 뿐, 부트스트래핑(한 상태의 가치 추정을 후속 상태의 추정값으로부터 갱신)에는 쓰이지 않기 때문이다.
이 구분이 중요한 것은 — 편향(bias)과 함수 근사 품질에 대한 점근적 의존성은 오직 부트스트래핑을 통해서만 들어오기 때문이다. 그러나 부트스트래핑이 가져오는 편향은 종종 유리하다. 분산이 줄고 학습이 빨라진다. 액터-크리틱(actor-critic) 방법은 부트스트래핑하는 크리틱을 둠으로써 그 이점을 취한다.
w ← w + αw δt ∇v̂(St,w) · θ ← θ + αθ δt ∇ln π(At|St,θ)
핵심 통찰 — 기준선 REINFORCE의 Gt − v̂(St,w)에서 완전 반환값 Gt를 1단계 반환값 Rt+1 + γv̂(St+1,w)로 바꾸면, 그 차이가 정확히 TD 오차 δt가 된다. 이 한 번의 대체로 알고리즘은 완전히 온라인·증분적이 된다 — 상태·행동·보상이 발생할 때마다 즉시 처리하고 다시 방문하지 않는다.
크리틱은 가치를 평가해 액터의 행동 선택을 "비평"하고, 액터는 그 비평(δt의 부호와 크기)에 따라 정책을 다듬는다. δt>0이면 "예상보다 좋았다" — 그 행동의 확률을 높인다. δt<0이면 낮춘다.
# 입력: 미분 가능한 π(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연속 행동과 지속 문제 — 마지막 일반화
연속 행동. 정책 기반 방법의 가장 실용적인 미덕은, 무한히 많은 행동을 가진 연속 공간을 자연스럽게 다룬다는 것이다. 각 행동의 확률을 따로 계산하는 대신, 확률 분포의 통계량을 배운다. 행동이 실수이고 정규(가우시안) 분포에서 뽑힌다고 하자.
이렇게 정의하면, 이 장의 모든 알고리즘 — REINFORCE, 기준선 REINFORCE, 액터-크리틱 — 을 그대로 실수값 행동 선택을 배우는 데 쓸 수 있다. 정책이 탐색의 정도(σ)까지 스스로 배운다는 점이 특히 우아하다.
지속 문제. 에피소드 경계가 없는 지속(continuing) 문제에서는 성과를 평균 보상률로 정의한다 — J(θ) = r(π) = limh→∞ (1/h) Σ 𝔼[Rt]. 가치는 미분 반환값(differential return)으로 정의하고, TD 오차에 평균 보상 추정치 R̄를 빼는 항을 둔다. 놀랍게도, 이 대체 정의 아래에서도 정책 경사 정리는 그대로 성립한다 — 전개 보기와 역방향 보기 방정식도 동일하다.