Silver RL·Lecture 4·Question List

Silver RL Lecture 4 — Question List

Updated 2026-08-03

2026-08-03 harvest: Lecture 4 슬라이드의 Zotero annotation 19개 전부를 확인해, 막혔던 것을 10개 Q&A로 묶고 중요 표시를 압축했다.
원본: David Silver - RL Course (UCL 2015) · 이전: Silver RL Lecture 3 — Question List

먼저 잡을 한 문장

Lecture 4는 같은 vπv_\pi를 배우는 네 방법을 한 지도에 놓는다.

Method Model의 expectation을 전개하나? 실제 sample을 쓰나? 다른 estimate로 bootstrap하나? 기다리는 깊이
DP ✓ ✗ ✓ one-step
TD(0) ✗ ✓ ✓ one-step
nn-step TD ✗ ✓ ✓ nn-step
MC ✗ ✓ ✗ episode 끝

핵심 식도 하나다.

V(St)←V(St)+α(targett−V(St)).V(S_t) \leftarrow V(S_t)+\alpha\big(\text{target}_t-V(S_t)\big).

Method마다 다른 것은 target이다.

TD(0):Rt+1+γV(St+1),n-step TD:Gt(n),MC:Gt.\begin{aligned} \text{TD(0)} &: R_{t+1}+\gamma V(S_{t+1}),\\ n\text{-step TD} &: G_t^{(n)},\\ \text{MC} &: G_t. \end{aligned}

목차

❓ 막혔던 것들

Q1. Bootstrapping이 정확히 무슨 뜻인가

슬라이드: Monte-Carlo Reinforcement Learning · Zotero p.4
내 코멘트: “bootstrapping이 무슨 말이지”

여기서 bootstrapping은 update target 안에 현재 학습 중인 다른 estimate를 넣는 것이다.

TD(0)의 target은

Rt+1+γV(St+1)R_{t+1}+\gamma V(S_{t+1})

이고, V(St+1)V(S_{t+1})는 아직 exact value가 아니라 현재 estimate다. 즉 한 guess를 다른 guess로 고친다. DP도 vk+1=Tπvkv_{k+1}=T^\pi v_k처럼 이전 estimate vkv_k를 쓰므로 bootstrap한다.

반면 MC target은 episode가 실제로 만든 return

Gt=∑k=0T−t−1γkRt+k+1G_t=\sum_{k=0}^{T-t-1}\gamma^kR_{t+k+1}

이다. GtG_t 안에는 VV estimate가 없으므로 bootstrap하지 않는다. 대가는 terminal state까지 기다려야 한다는 것. 그래서 classical MC prediction은 episodic MDP에만 바로 적용되고, 모든 episode가 terminate해야 한다.

Bootstrap은 “sample을 쓴다”와 다른 축이다. TD와 MC는 둘 다 sample을 쓰지만, TD만 bootstrap한다. DP는 bootstrap하지만 sample 대신 model의 full expectation을 쓴다.


Q2. Non-stationary problem과 α\alpha — 중간에 바꿔도 되나

슬라이드: Incremental Monte-Carlo Updates · Zotero p.11 · Random Walk: MC vs. TD · p.20
내 코멘트: “non-stationary problems?” · “α\alpha가 크면 초반 error가 빨리 줄지만 나중엔 증가하는데, 중간에 바꾸면 안 되나?”

Non-stationary는 같은 state의 return distribution 자체가 시간에 따라 변하는 문제다. 예를 들어 robot dynamics가 payload·마찰·battery 상태 때문에 바뀌면, 오래전 sample과 지금 sample을 같은 비중으로 평균내는 1/N(s)1/N(s) update가 변화 추적을 방해한다.

Constant step-size update

Vk+1=Vk+α(Gk−Vk)V_{k+1}=V_k+\alpha(G_k-V_k)

를 펼치면

Vk=(1−α)kV0+α∑i=0k−1(1−α)k−1−iGi.V_k=(1-\alpha)^kV_0+\alpha\sum_{i=0}^{k-1}(1-\alpha)^{k-1-i}G_i.

즉 최근 sample일수록 큰 exponentially decaying weight를 받는다. 큰 α\alpha는 빨리 적응하지만 steady-state noise가 크고, 작은 α\alpha는 안정적이지만 느리다.

중간에 바꿔도 된다. Stationary problem에서 초반 속도와 최종 accuracy를 함께 원하면 decaying schedule αk\alpha_k가 표준적이다. Tabular stochastic approximation의 대표 sufficient condition은

∑k=1∞αk=∞,∑k=1∞αk2<∞.\sum_{k=1}^{\infty}\alpha_k=\infty, \qquad \sum_{k=1}^{\infty}\alpha_k^2<\infty.

αk=1/k\alpha_k=1/k는 이를 만족한다. 반대로 environment가 계속 변하면 α\alpha를 00으로 보내지 않고 작은 constant로 두어야 새 dynamics를 계속 추적할 수 있다.

p.20 graph의 curve가 말하는 것도 이것이다.

  • 큰 α\alpha: initial error는 빨리 죽지만 sample noise에 계속 크게 흔들려 error floor가 높아지거나 late error가 다시 커질 수 있다.
  • 작은 α\alpha: 초반은 느리지만 오래 돌리면 더 낮은 error에 갈 수 있다.
  • graph는 여러 run과 state에 걸친 RMS error이므로, 한 episode의 error가 단조 감소해야 한다는 뜻은 아니다.

Q3. Batch MC는 V(A)=0V(A)=0, TD는 V(A)=0.75V(A)=0.75인 이유

슬라이드: Certainty Equivalence · Zotero p.24 · Advantages and Disadvantages of MC vs. TD (3) · p.25
내 코멘트: “I don't understand” · “좀 더 구체적인 설명 필요”

Dataset은 다음 정보를 준다.

  • AA를 본 것은 한 번뿐: A→0B→0terminalA\xrightarrow{0}B\xrightarrow{0}\text{terminal}
  • BB에서는 총 8번 중 reward 11이 6번, 00이 2번 관찰됨

p.24의 두 model-estimation 식 해부

먼저 전체 dataset을 transition tuple로 쓰자.

D={(Stk,Atk,Rt+1k,St+1k)  |  k=1,…,K,  t=0,…,Tk−1}.\mathcal D =\left\{ (S_t^k,A_t^k,R_{t+1}^k,S_{t+1}^k) \;\middle|\; k=1,\ldots,K,\;t=0,\ldots,T_k-1 \right\}.
  • kk: 몇 번째 episode인지 나타내는 index
  • KK: 전체 episode 수
  • tt: 그 episode 안의 time-step index
  • TkT_k: kk번째 episode의 terminal time. Episode마다 길이가 다를 수 있어서 subscript kk가 붙음
  • Slide는 t=1,…,Tkt=1,\ldots,T_k와 rtkr_t^k를 쓰지만, 여기서는 앞부분 강의와 맞춰 t=0,…,Tk−1t=0,\ldots,T_k-1와 Rt+1kR_{t+1}^k를 썼다. 단순한 index shift라 내용은 같다.
  • 1{C}\mathbf 1\{C\}: condition CC가 true면 11, 아니면 00인 indicator

State–action pair (s,a)(s,a)를 본 총횟수는

N(s,a)=∑k=1K∑t=0Tk−11{Stk=s,  Atk=a}.N(s,a) =\sum_{k=1}^{K}\sum_{t=0}^{T_k-1} \mathbf 1\{S_t^k=s,\;A_t^k=a\}.

Slide의 transition 식은

P^ss′a=1N(s,a)∑k=1K∑t=0Tk−11{Stk=s,  Atk=a,  St+1k=s′}.\hat{\mathcal P}_{ss'}^a =\frac{1}{N(s,a)} \sum_{k=1}^{K}\sum_{t=0}^{T_k-1} \mathbf 1\{S_t^k=s,\;A_t^k=a,\;S_{t+1}^k=s'\}.

분자의 indicator는 dataset의 모든 transition을 훑으면서

(Stk,Atk,St+1k)=(s,a,s′)(S_t^k,A_t^k,S_{t+1}^k)=(s,a,s')

인 경우에만 11을 더한다. 따라서 분자는 (s,a)(s,a)에서 출발해 s′s'에 도착한 횟수, 분모는 (s,a)(s,a)에서 출발한 전체 횟수다. 결국

P^ss′a=#{(s,a)→s′}#{(s,a)}\hat{\mathcal P}_{ss'}^a =\frac{\#\{(s,a)\to s'\}}{\#\{(s,a)\}}

라는 empirical transition frequency다. 같은 (s,a)(s,a)에 대해 s′s' 전체로 합하면 11이 된다.

Reward 식은

R^sa=1N(s,a)∑k=1K∑t=0Tk−11{Stk=s,  Atk=a}Rt+1k.\hat{\mathcal R}_s^a =\frac{1}{N(s,a)} \sum_{k=1}^{K}\sum_{t=0}^{T_k-1} \mathbf 1\{S_t^k=s,\;A_t^k=a\}R_{t+1}^k.

Indicator가 (s,a)(s,a)에서 출발한 transition만 남기고, 거기서 받은 Rt+1kR_{t+1}^k를 모두 더한다. 즉

R^sa=empirical mean of Rt+1 conditioned on St=s,At=a.\hat{\mathcal R}_s^a =\text{empirical mean of }R_{t+1} \text{ conditioned on }S_t=s,A_t=a.

여기서 R^sa\hat{\mathcal R}_s^a는 complete return GtG_t가 아니라 immediate reward의 mean이다. 이렇게 data로 P^,R^\hat{\mathcal P},\hat{\mathcal R}을 만든 뒤, fitted MDP의 Bellman equation을 푸는 것이 slide가 말하는 certainty equivalence다.

AB example에는 action choice가 없으므로 aa를 생략할 수 있다.

N(A)=1,P^AB=11=1,R^A=01=0.N(A)=1, \qquad \hat{\mathcal P}_{AB}=\frac{1}{1}=1, \qquad \hat{\mathcal R}_A=\frac{0}{1}=0.

BB는 첫 episode 안에서 한 번, BB에서 시작한 짧은 episode들에서 일곱 번 관찰되어 총 8번이다. Reward는 11이 6번, 00이 2번이므로

N(B)=8,P^B,terminal=88=1,R^B=68=0.75.N(B)=8, \qquad \hat{\mathcal P}_{B,\mathrm{terminal}}=\frac{8}{8}=1, \qquad \hat{\mathcal R}_B=\frac{6}{8}=0.75.

따라서 V(terminal)=0V(\mathrm{terminal})=0, γ=1\gamma=1인 fitted Markov model에서는

V^(B)=R^B+P^B,terminalV(terminal)=0.75,V^(A)=R^A+P^ABV^(B)=0+1⋅0.75=0.75.\begin{aligned} \hat V(B) &=\hat{\mathcal R}_B +\hat{\mathcal P}_{B,\mathrm{terminal}}V(\mathrm{terminal}) =0.75,\\ \hat V(A) &=\hat{\mathcal R}_A +\hat{\mathcal P}_{AB}\hat V(B) =0+1\cdot0.75 =0.75. \end{aligned}
식을 읽는 한 문장

첫 식은 “(s,a)(s,a) 다음에 어디로 갔나?”를 비율로 세고, 둘째 식은 “(s,a)(s,a)에서 reward를 평균 얼마 받았나?”를 계산한다.

MC가 mean-squared error를 minimize한다는 식은 왜 나왔나

이 식은 MC를 새 optimization algorithm으로 정의하려고 나온 것이 아니다. Finite dataset을 batch replay했을 때 MC update가 수렴하는 fixed point를 다른 방식으로 표현한 것이다.

State ss에서 관찰한 return들을

g1(s),g2(s),…,gNs(s)g_1^{(s)},g_2^{(s)},\ldots,g_{N_s}^{(s)}

라 하자. Tabular MC는 이 sample들의 mean을 value estimate로 쓴다.

Tabular는 뭐고 지금 알아야 하나?

State마다 independent scalar를 하나씩 lookup table에 저장한다는 뜻이다. 이 예제라면 V[A], V[B] 두 칸이 전부다. Neural network처럼 여러 state가 parameter를 공유하는 function approximation의 반대말이다. 지금은 **“각 state의 값을 별개 숫자로 저장한다”**만 알고 넘어가면 충분하고, function approximation은 Lecture 6에서 배운다.

VMC(s)=1Ns∑i=1Nsgi(s).V_{\mathrm{MC}}(s) =\frac{1}{N_s}\sum_{i=1}^{N_s}g_i^{(s)}.

그런데 squared-error objective

Js(v)=∑i=1Ns(gi(s)−v)2J_s(v)=\sum_{i=1}^{N_s}\left(g_i^{(s)}-v\right)^2

를 가장 작게 만드는 scalar vv도 정확히 같은 sample mean이다. Derivative를 00으로 두면

dJsdv=−2∑i=1Ns(gi(s)−v)=0,Nsv=∑i=1Nsgi(s),v=1Ns∑i=1Nsgi(s).\begin{aligned} \frac{dJ_s}{dv} &=-2\sum_{i=1}^{N_s}\left(g_i^{(s)}-v\right)=0,\\ N_s v &=\sum_{i=1}^{N_s}g_i^{(s)},\\ v &=\frac{1}{N_s}\sum_{i=1}^{N_s}g_i^{(s)}. \end{aligned}

Batch MC update 자체에서도 같은 관계가 바로 보인다. Dataset 전체를 한 번 replay해 ss에 대한 update를 합치면

ΔV(s)=α∑i=1Ns(gi(s)−V(s))=−α2dJsdV(s).\Delta V(s) =\alpha\sum_{i=1}^{N_s}\left(g_i^{(s)}-V(s)\right) =-\frac{\alpha}{2}\frac{dJ_s}{dV(s)}.

즉 batch MC의 total update는 empirical squared error의 negative gradient 방향이다. 충분히 작은 step-size로 같은 finite dataset을 반복 replay해 update가 더 이상 움직이지 않는 fixed point에 도달하면

ΔV(s)=0  ⟺  V(s)=1Ns∑i=1Nsgi(s)  ⟺  V(s)=arg⁡min⁡vJs(v).\Delta V(s)=0 \iff V(s)=\frac{1}{N_s}\sum_{i=1}^{N_s}g_i^{(s)} \iff V(s)=\arg\min_v J_s(v).

Slide의 전체 식

∑k=1K∑t=0Tk−1(Gtk−V(Stk))2\sum_{k=1}^{K}\sum_{t=0}^{T_k-1} \left(G_t^k-V(S_t^k)\right)^2

도 같은 objective를 모든 state의 visit에 대해 한꺼번에 쓴 것이다. Tabular setting에서는 V[A], V[B]처럼 각 V(s)V(s)가 separate parameter라 state별 problem으로 분리된다. First-visit MC라면 episode마다 첫 visit의 return만 sample set에 넣고, every-visit MC라면 모든 visit을 넣는다는 차이만 있다.

AB example에 직접 넣으면 더 단순하다. AA에서 관찰한 return은 단 하나, 00이므로

JA(v)=(0−v)2⇒VMC(A)=0.J_A(v)=(0-v)^2 \quad\Rightarrow\quad V_{\mathrm{MC}}(A)=0.

BB에서 관찰한 return은 11이 6개, 00이 2개이므로

JB(v)=6(1−v)2+2(0−v)2,dJBdv=16v−12=0,VMC(B)=1216=68=0.75.\begin{aligned} J_B(v) &=6(1-v)^2+2(0-v)^2,\\ \frac{dJ_B}{dv} &=16v-12=0,\\ V_{\mathrm{MC}}(B) &=\frac{12}{16}=\frac{6}{8}=0.75. \end{aligned}

여기서 중요한 한계: 이것은 finite dataset의 observed returns에 대한 empirical MSE minimizer다. Finite data에서는 true vπv_\pi와 다를 수 있다. Data가 무한히 쌓이면 law of large numbers에 의해 sample mean이 vπv_\pi로 간다.

그래서 p.24가 이 식을 넣은 목적은 finite data에서 MC와 TD가 서로 다른 답을 내는 이유를 대비하려는 것이다.

  • MC: 각 state에서 직접 관찰한 return에 best fit → V(A)=0V(A)=0
  • TD: data로 P^,R^\hat{\mathcal P},\hat{\mathcal R}을 만들고 Markov structure를 공유 → V(A)=0.75V(A)=0.75

TD가 AA에서 보지 못한 reward 11을 invent한 것이 아니다. “현재 BB에 도달하면, 과거 어떤 episode에서 왔는지는 future에 필요 없다”는 Markov property를 이용해 다른 episode에서 얻은 BB의 evidence를 AA에도 전달한 것이다.

그래서 Markov assumption이 맞으면 TD가 보통 sample-efficient하다. 반대로 observation이 true state가 아니어서 hidden history가 future를 바꾸는 non-Markov setting이면, MC의 complete return이 model misspecification에 덜 속을 수 있다.


Q4. Unified View — sampling·bootstrapping과 수렴은 별개다

슬라이드: Bootstrapping and Sampling · Zotero p.29 · Unified View of Reinforcement Learning · p.30
내 코멘트: “다시 설명좀. 그럼 DP, TD는 참값에 도달할 수 없는 거임?”

Unified View의 두 axis는 다음이다.

  • vertical: sample backup ↔ full backup. 한 transition sample만 쓰는가, model로 가능한 successor 전체의 expectation을 계산하는가.
  • horizontal: shallow ↔ deep backup. 몇 step 뒤에서 bootstrap하는가. TD(0)는 one-step, nn-step TD는 중간, MC는 terminal까지 간다.

따라서 네 corner는 TD(sample+shallow), MC(sample+deep), DP(full+shallow), exhaustive search(full+deep)다. λ\lambda는 shallow/deep 사이를 연속적으로 조절한다.

Bootstrap한다고 exact value에 못 가는 것은 아니다. “Target이 현재는 biased”와 “algorithm의 limit가 biased”를 구분해야 한다.

  • DP: finite discounted MDP에서 TπT^\pi는 γ\gamma-contraction이므로 vk→vπv_k\to v_\pi. 일반적으로 finite iteration에 exact equality를 찍지는 않고 asymptotically approach한다. Direct linear solve는 별도 방법이다.
  • Tabular TD(0): fixed policy, Markov sampling, 모든 relevant state의 충분한 visit, 적절한 diminishing step-size 같은 조건에서 Vk→vπV_k\to v_\pi almost surely.
  • MC: 같은 coverage와 sample-mean 조건에서 law of large numbers로 Vk→vπV_k\to v_\pi almost surely.

현실의 finite data·finite precision에서는 보통 tolerance 안에 들어오면 “수렴했다”고 한다. Constant α\alpha를 쓰면 TD와 MC 모두 stochastic noise 때문에 exact point에 정착하지 않고 그 근처를 계속 움직인다. Function approximation·off-policy learning을 붙이면 tabular convergence 결과를 그대로 적용할 수도 없다.


Q5. nn-step Random Walk graph는 어떻게 읽나

슬라이드: Large Random Walk Example · Zotero p.33
내 코멘트: “?”

각 curve의 label은 backup depth nn, horizontal axis는 α\alpha, vertical axis는 처음 10 episode 동안의 average RMS error다. 위는 online update, 아래는 offline update다.

여기서 bias는 무슨 뜻인가

Bias는 target이 항상 “높다”거나 “낮다”는 일상적 표현이 아니다. State St=sS_t=s에서 같은 experiment를 무한히 반복했을 때 target의 expectation이 true value vπ(s)v_\pi(s)에서 얼마나 벗어나는가다.

Bias⁡ ⁣[Gt(n)∣St=s]:=Eπ ⁣[Gt(n)∣St=s]−vπ(s).\operatorname{Bias}\!\left[G_t^{(n)}\mid S_t=s\right] := \mathbb E_\pi\!\left[G_t^{(n)}\mid S_t=s\right]-v_\pi(s).

nn-step target은

Gt(n)=∑k=0n−1γkRt+k+1+γnV(St+n)G_t^{(n)} =\sum_{k=0}^{n-1}\gamma^kR_{t+k+1} +\gamma^nV(S_{t+n})

이고, true value도 같은 지점에서

vπ(s)=Eπ ⁣[∑k=0n−1γkRt+k+1+γnvπ(St+n)  |  St=s]v_\pi(s) =\mathbb E_\pi\!\left[ \sum_{k=0}^{n-1}\gamma^kR_{t+k+1} +\gamma^n v_\pi(S_{t+n}) \;\middle|\;S_t=s \right]

로 분해된다. 두 식을 빼면 reward 부분은 cancel되고 bootstrap estimate의 error만 남는다.

Bias⁡ ⁣[Gt(n)∣St=s]=γnEπ ⁣[V(St+n)−vπ(St+n)  |  St=s].\operatorname{Bias}\!\left[G_t^{(n)}\mid S_t=s\right] =\gamma^n \mathbb E_\pi\!\left[ V(S_{t+n})-v_\pi(S_{t+n}) \;\middle|\;S_t=s \right].

즉 bias의 출처는 아직 틀릴 수 있는 V(St+n)V(S_{t+n})로 bootstrap하는 것이다.

  • 현재 V=vπV=v_\pi라면 어떤 nn에서도 bias는 00이다.
  • n=1n=1이면 바로 다음 state의 estimate error를 target에 넣는다.
  • nn이 커질수록 실제 reward를 더 보고 더 먼 state에서만 bootstrap한다.
  • Episode 끝까지 가면 bootstrap term이 사라져 MC return GtG_t가 되고, on-policy episodic setting에서 Eπ[Gt∣St=s]=vπ(s)\mathbb E_\pi[G_t\mid S_t=s]=v_\pi(s)라 bias는 00이다.

0≤γ<10\le\gamma<1이면 다음 bound도 있다.

∣Bias⁡ ⁣[Gt(n)∣St=s]∣≤γn∥V−vπ∥∞.\left| \operatorname{Bias}\!\left[G_t^{(n)}\mid S_t=s\right] \right| \le \gamma^n\lVert V-v_\pi\rVert_\infty.
여기서는 matrix norm이 아니라 value-error vector의 ∞\infty-norm

State별 error를 하나의 vector로 보면

∥V−vπ∥∞=max⁡s∈S∣V(s)−vπ(s)∣,\lVert V-v_\pi\rVert_\infty =\max_{s\in\mathcal S}\left|V(s)-v_\pi(s)\right|,

즉 모든 state 중 가장 큰 absolute error다. 반면 matrix AA의 induced ∞\infty-norm은

∥A∥∞=max⁡i∑j∣aij∣,\lVert A\rVert_\infty=\max_i\sum_j|a_{ij}|,

즉 absolute row sum의 maximum이다. 기억법은 vector → max element, matrix → max row sum. 둘은 ∥Ax∥∞≤∥A∥∞∥x∥∞\lVert Ax\rVert_\infty\le\lVert A\rVert_\infty\lVert x\rVert_\infty를 만족하도록 연결된다. → Matrix Norms › 4. Vector norm에서 induced matrix norm으로

단, 이 bound가 nn에 따라 줄어드는 것은 γ<1\gamma<1일 때다. 이 Random Walk는 γ=1\gamma=1인 episodic task라 γn\gamma^n 자체가 bias를 줄여주지는 않는다. 대신 nn이 terminal horizon에 도달하면 bootstrap term이 없어져 bias가 정확히 00이 된다. 중간 nn에서 actual bias가 반드시 monotonic하게 감소한다는 보장도 없다. 여러 state의 signed error가 expectation 안에서 cancel될 수 있기 때문이다.

반대편의 variance는 trajectory randomness에서 온다. nn이 커지면 더 많은 random reward와 transition을 직접 합치므로 target이 run마다 더 흔들릴 수 있다. 그래서 보통

small n  :  more bootstrap bias, lower variance,large n  :  less bootstrap, higher variance\text{small }n \;:\; \text{more bootstrap bias, lower variance}, \qquad \text{large }n \;:\; \text{less bootstrap, higher variance}

라는 trade-off가 생긴다. 다만 p.33의 vertical axis는 target bias만 그린 것이 아니라 실제 learning 후의 RMS value error라 step-size와 update timing까지 함께 반영한다.

Online update와 offline update의 차이

여기서 online/offline은 같은 trajectory를 언제 VV에 반영하는가의 차이다.

Online nn-step TD

  • Transition이 들어오는 동안 episode 안에서 update한다.
  • Time t+nt+n에 Rt+1,…,Rt+n,St+nR_{t+1},\ldots,R_{t+n},S_{t+n}이 관찰되면 Gt(n)G_t^{(n)}을 계산할 수 있으므로 즉시
V(St)←V(St)+α(Gt(n)−V(St))V(S_t) \leftarrow V(S_t)+\alpha\left(G_t^{(n)}-V(S_t)\right)

를 적용한다.

  • n=1n=1이면 transition 하나 뒤에 바로 update한다. n>1n>1이면 해당 state의 update가 nn step만큼 delayed되지만 episode 종료까지 기다릴 필요는 없다.
  • Episode 뒤쪽의 target과 update는 앞에서 이미 바뀐 VV의 영향을 받을 수 있다. 같은 state를 다시 방문하면 이 차이가 직접 드러난다.

Offline nn-step TD

  • Episode 시작 시점의 value estimate를 V−V^-라고 하자.
  • Episode 안에서는 V−V^-를 바꾸지 않고 모든 update increment를 계산·accumulate한다.
Δ(s)=∑t:St=sα(Gt(n)(V−)−V−(s)).\Delta(s) =\sum_{t:S_t=s} \alpha\left(G_t^{(n)}(V^-)-V^-(s)\right).
  • Episode가 끝난 뒤 한꺼번에
V(s)←V−(s)+Δ(s)V(s)\leftarrow V^-(s)+\Delta(s)

를 적용한다.

  • 같은 episode의 모든 target이 같은 V−V^-를 기준으로 하므로 analysis가 단순하지만, episode가 끝날 때까지 새 information을 value에 반영하지 못한다.
현대의 offline RL과 다른 뜻

이 slide의 offline은 “logged dataset만으로 policy를 학습한다”는 현대의 offline RL이 아니다. 한 episode의 update를 끝에서 batch 적용하는 구현 방식만 뜻한다.

아주 짧은 n=2n=2 timeline으로 보면:

S0→R1S1→R2S2→R3⋯S_0\xrightarrow{R_1}S_1\xrightarrow{R_2}S_2\xrightarrow{R_3}\cdots

Time 22가 되어 S2S_2까지 봐야

G0(2)=R1+γR2+γ2V(S2)G_0^{(2)}=R_1+\gamma R_2+\gamma^2V(S_2)

가 완성된다.

  • Online: time 22에 곧바로 V(S0)V(S_0) update
  • Offline: 이 increment를 저장하고 episode 끝에서 V(S0)V(S_0) update

이제 p.33 graph 다시 읽기

  • n=1n=1: bootstrap estimate를 일찍 쓰므로 target variance는 낮은 편이지만 current VV error의 영향을 빨리 받는다.
  • 큰 nn: 실제 reward를 더 많이 보므로 terminal horizon에서는 bootstrap bias가 사라지지만 target variance는 커질 수 있다.
  • 너무 큰 α\alpha: online/offline 어느 쪽이든 update가 지나치게 커져 RMS error가 증가할 수 있다.
  • Offline은 한 episode의 increment를 batch로 합치므로 stable한 α\alpha scale이 online과 다르다. 두 panel의 같은 α\alpha를 완전히 동일한 effective update로 보면 안 된다.
  • 이 experiment의 첫 10 episode에서는 online curve가 대체로 더 낮은 error를 보이지만, online이 모든 problem에서 항상 우월하다는 theorem은 아니다.
  • 최적의 (n,α)(n,\alpha)는 problem과 update timing에 따라 달라진다.

따라서 서로 다른 nn 중 하나를 고정하는 대신 전부 geometric mixture하자는 질문이 p.34의 λ\lambda-return으로 이어진다.


Q6. 왜 λ\lambda-return에 geometric weights를 쓰나

슬라이드: λ\lambda-return · Zotero p.35 · TD(λ\lambda) Weighting Function · p.36
내 코멘트: “왜 굳이 geometric weights를 사용하는 거지?”

Continuing form은

Gtλ=(1−λ)∑n=1∞λn−1Gt(n),0≤λ<1.G_t^\lambda=(1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}G_t^{(n)}, \qquad 0\le\lambda<1.

Weight (1−λ)λn−1(1-\lambda)\lambda^{n-1}는 합이 11인 geometric distribution이다. 그래서 GtλG_t^\lambda는 여러 nn-step return의 convex combination이다.

Geometric weight가 유용한 이유는 세 가지다.

  1. 한 parameter로 depth 조절: λ=0\lambda=0이면 1-step TD, λ→1\lambda\to1이면 긴 return과 MC 쪽으로 간다.
  2. 최근성에 대한 memoryless decay: 한 step 멀어질 때마다 정확히 λ\lambda배만 남는다. Effective horizon은 대략 1/(1−λ)1/(1-\lambda) step이다.
  3. Efficient backward recursion: geometric decay 덕분에 미래의 모든 nn-step return을 다시 계산하지 않고
Et(s)=γλEt−1(s)+1{St=s}E_t(s)=\gamma\lambda E_{t-1}(s)+\mathbf 1\{S_t=s\}

라는 eligibility trace 하나로 같은 total credit을 online에 전달할 수 있다.

즉 geometric weighting이 가능한 유일한 mixture는 아니다. 하지만 정규화된 smooth interpolation과 simple recursion을 동시에 주는 선택이라 TD(λ\lambda)의 forward/backward equivalence가 생긴다.


Q7. Finite episode에서 마지막 weight만 다른 이유

슬라이드: λ\lambda-return · Zotero p.35 · TD(λ\lambda) Weighting Function · p.36
내 코멘트: “n→∞n\to\infty와 종료시점 TT가 같아야 하는 거 아님? λT−t−1\lambda^{T-t-1}은 뭐고 왜 (1−λ)(1-\lambda)가 없음?”

nn은 lookahead step 수, TT는 terminal time index라 같은 변수는 아니다. Time tt에서 terminal까지 남은 transition 수를

N=T−tN=T-t

라 두자. Terminal 이후에는 reward가 없고 V(ST)=0V(S_T)=0이므로, n≥Nn\ge N인 모든 nn-step return은 같은 full MC return GtG_t가 된다.

Infinite mixture의 tail을 묶으면

Gtλ=(1−λ)∑n=1N−1λn−1Gt(n)+(1−λ)∑n=N∞λn−1Gt=(1−λ)∑n=1N−1λn−1Gt(n)+λN−1Gt=(1−λ)∑n=1T−t−1λn−1Gt(n)+λT−t−1Gt.\begin{aligned} G_t^\lambda &=(1-\lambda)\sum_{n=1}^{N-1}\lambda^{n-1}G_t^{(n)} +(1-\lambda)\sum_{n=N}^{\infty}\lambda^{n-1}G_t\\ &=(1-\lambda)\sum_{n=1}^{N-1}\lambda^{n-1}G_t^{(n)} +\lambda^{N-1}G_t\\ &=(1-\lambda)\sum_{n=1}^{T-t-1}\lambda^{n-1}G_t^{(n)} +\lambda^{T-t-1}G_t. \end{aligned}

마지막 weight에 (1−λ)(1-\lambda)가 없는 이유는 한 항의 weight가 아니라, n=N,N+1,…n=N,N+1,\ldots인 infinite tail 전체의 weight를 합친 것이기 때문이다.

(1−λ)∑n=N∞λn−1=λN−1.(1-\lambda)\sum_{n=N}^{\infty}\lambda^{n-1}=\lambda^{N-1}.

이 finite-episode weight도 전부 합하면 정확히 11이다.


Q8. Forward view와 Backward view는 각각 뭘 하나

슬라이드: Backward View TD(λ\lambda) · Zotero p.39
내 코멘트: “Forward view·Backward view 뒤 슬라이드까지 자세히 설명 필요”

둘은 다른 objective가 아니라, 같은 multi-step credit assignment를 보는 두 방향이다.

Backward view는 모든 ss를 update하는가, past states에만 뿌리는가? Forward view와 같이 실행하는가? Theorem의 ss는 무엇인가? → Forward and Backward Views of TD Lambda

Forward view는 time tt에 서서 미래를 본다.

  1. Gt(1),Gt(2),…G_t^{(1)},G_t^{(2)},\ldots를 만든다.
  2. 이를 geometric mixture해 GtλG_t^\lambda를 만든다.
  3. V(St)V(S_t)를 그 target 쪽으로 update한다.

이 view는 “TD(λ\lambda)가 어느 target을 학습하는가?”를 설명하므로 theory에 좋다. Classical episodic forward view는 future reward가 필요하므로 episode가 끝나야 정확한 GtλG_t^\lambda를 계산할 수 있다.

Backward view는 transition이 하나 나올 때마다 과거를 본다.

  1. 현재 one-step TD error를 계산한다.
δt=Rt+1+γV(St+1)−V(St).\delta_t=R_{t+1}+\gamma V(S_{t+1})-V(S_t).
  1. 과거 state들이 얼마나 “아직 credit 받을 자격이 있는지” eligibility trace Et(s)E_t(s)에 유지한다.
  2. 같은 δt\delta_t를 모든 state에 Et(s)E_t(s)만큼 나눠 보낸다.
V(s)←V(s)+αδtEt(s).V(s)\leftarrow V(s)+\alpha\delta_tE_t(s).

그래서 backward view는 incomplete sequence에서도 step마다 실행 가능한 mechanism이다. 미래 return을 직접 저장·재계산하지 않아도, 나중에 생긴 TD error가 trace를 따라 과거로 전달된다.


Q9. Eligibility trace의 식과 graph

슬라이드: Eligibility Traces · Zotero p.40
내 코멘트: “수식이랑 graph 설명좀”

Accumulating trace는

E0(s)=0,Et(s)=γλEt−1(s)+1{St=s}.E_{0}(s)=0, \qquad E_t(s)=\gamma\lambda E_{t-1}(s)+\mathbf 1\{S_t=s\}.
  • St=sS_t=s이면 indicator가 11이라 trace가 한 칸 올라간다.
  • 그 state를 다시 방문하지 않으면 매 step γλ\gamma\lambda배로 decay한다.
  • 자주 방문하면 decay하기 전에 11이 계속 더해져 trace가 크게 쌓인다.

그래서 graph의 vertical jump는 visit, 내려가는 exponential curve는 recency decay다. Frequency heuristic과 recency heuristic이 동시에 들어 있다.

Bell/light/shock 예제에서 shock 직전에 자주 울렸고 최근에도 울린 bell state는 큰 EtE_t를 가진다. Shock가 만든 큰 negative δt\delta_t가 오면

ΔV(s)=αδtEt(s)\Delta V(s)=\alpha\delta_tE_t(s)

이므로 그 state의 value가 더 크게 내려간다. Eligibility trace가 causality를 증명하는 것은 아니다. 최근·빈번한 predecessor에 credit을 배분하는 temporal heuristic이다.

λ\lambda의 역할도 여기서 보인다.

  • λ=0\lambda=0: 과거 trace가 즉시 사라져 current state만 update → TD(0).
  • 큰 λ\lambda: credit이 더 오래 전 state까지 전달.
  • γ<1\gamma<1: 먼 future reward 자체의 discount와 일관되게 trace도 더 빨리 decay.

Q10. TD(λ\lambda) = MC는 어떤 조건에서 맞나

슬라이드: TD(λ\lambda) and MC · Zotero p.43 이후 equivalence 섹션
내 코멘트: “뭔 소린지 쉽게 이해시켜줘.”

p.43–51의 theorem·credit matrix·offline/online 숫자 예제를 한 흐름으로 다시 보기 → Forward and Backward Views of TD Lambda

핵심은 TD error 여러 개를 더하면 중간 VV 항이 cancel된다는 것이다. State SkS_k가 한 번 방문됐고 episode 동안 VV를 고정한다고 하자. λ=1\lambda=1이면

∑t=kT−1γt−kδt=Gk−V(Sk),\sum_{t=k}^{T-1}\gamma^{t-k}\delta_t =G_k-V(S_k),

왜냐하면

δk+γδk+1+γ2δk+2+⋯=(Rk+1+γV(Sk+1)−V(Sk))+γ(Rk+2+γV(Sk+2)−V(Sk+1))+⋯\begin{aligned} &\delta_k+\gamma\delta_{k+1}+\gamma^2\delta_{k+2}+\cdots\\ &=\big(R_{k+1}+\gamma V(S_{k+1})-V(S_k)\big)\\ &\quad+\gamma\big(R_{k+2}+\gamma V(S_{k+2})-V(S_{k+1})\big)+\cdots \end{aligned}

에서 +γV(Sk+1)+\gamma V(S_{k+1})와 −γV(Sk+1)-\gamma V(S_{k+1}), 그다음 항들도 전부 telescope하고, terminal value V(ST)=0V(S_T)=0만 남기 때문이다. 오른쪽 Gk−V(Sk)G_k-V(S_k)는 정확히 MC error다.

일반 λ\lambda에서도

Gkλ−V(Sk)=∑t=kT−1(γλ)t−kδtG_k^\lambda-V(S_k) =\sum_{t=k}^{T-1}(\gamma\lambda)^{t-k}\delta_t

가 되어, forward-view λ\lambda-error와 backward-view trace가 같은 total credit을 만든다.

단, equivalence의 조건을 흘리면 안 된다.

  • Classical theorem: episodic task에서 offline update, 즉 episode 안에서는 update들을 accumulate하고 끝에서 한꺼번에 적용하면 forward/backward TD(λ\lambda)의 total update가 정확히 같다.
  • Classical backward TD(λ\lambda)가 step마다 VV를 즉시 바꾸는 online setting에서는 뒤의 target과 TD error도 바뀌므로 classical forward view와 일반적으로 exact equality가 아니다.
  • λ=1\lambda=1에서 offline TD(1)의 episode-total update는 every-visit MC와 같다. Online 중간 trajectory까지 MC와 같다는 뜻은 아니다.
  • **True Online TD(λ\lambda)**는 수정된 trace와 correction을 써서 online에서도 대응 forward view와 exact equivalence를 만든다.

그래서 p.37의 “Forward view는 complete episode가 필요”와 p.39의 “Backward view는 incomplete sequence에서 online update 가능”는 모순이 아니다. 같은 최종 credit assignment를 이론적으로 정의하는 방식과, 그것을 실시간으로 구현하는 방식의 차이다.


⭐ 중요 표시해둔 것들

  • MC prediction: vπ(s)=Eπ[Gt∣St=s]v_\pi(s)=\mathbb E_\pi[G_t\mid S_t=s]의 expectation 대신 observed return의 empirical mean을 쓴다. First-visit와 every-visit 모두 tabular 조건에서 consistent하다.
  • MC의 적용 범위: classical form은 complete episode가 필요하므로 episodic MDP 전용. “Model-free”와 “continuing task 가능”은 같은 말이 아니다.
  • TD target의 variance 조건: exact target Yt=Rt+1+γvπ(St+1)Y_t=R_{t+1}+\gamma v_\pi(S_{t+1})는 GtG_t를 immediate transition에 condition한 expectation이므로 Var⁡(Yt∣St)≤Var⁡(Gt∣St)\operatorname{Var}(Y_t\mid S_t)\le\operatorname{Var}(G_t\mid S_t). Learned VV를 넣은 target은 보통 더 낮은 variance를 노리지만, arbitrary approximation error가 있으면 이 inequality가 항상 보장되지는 않으며 finite-time bias도 생긴다.
  • Bias–variance는 convergence와 동일하지 않음: Tabular TD(0)는 target이 finite-time에 biased여도 적절한 조건에서 vπv_\pi로 수렴한다.
  • nn-step TD: TD(0)와 MC 사이의 discrete bridge. Gt(n)G_t^{(n)}은 nn개의 실제 reward 뒤에 γnV(St+n)\gamma^nV(S_{t+n})로 bootstrap한다.
  • λ\lambda-return: 모든 nn-step return을 geometric mixture한 continuous bridge. λ\lambda가 클수록 effective backup depth가 깊어진다.
  • Forward view: target의 의미를 보여주는 theory. Classical episodic form은 complete episode가 필요.
  • Backward view: one-step TD error + eligibility trace로 같은 credit을 과거에 online 전달하는 mechanism.
  • Lecture 4의 결론: MC·TD·DP는 서로 완전히 다른 아이디어가 아니라, sample vs expectation과 backup depth 두 axis 위의 서로 다른 점이다.

✅ Annotation coverage

Zotero item WNBKCHAI, attachment 2Y5BZHLB의 annotation 19개를 전부 대조했다.

Page Count 처리
4 3 Q1 + 중요 표시(MC·episodic·mean return)
5 1 중요 표시(empirical mean)
11 1 Q2(non-stationary)
17 1 중요 표시(TD target variance)
20 1 Q2(α\alpha graph)
24 1 Q3(certainty equivalence)
25 1 Q3(Markov property)
29 1 Q4(bootstrapping·sampling·convergence)
30 1 Q4(Unified View)
33 1 Q5(nn-step graph)
34 1 Q5→Q6(all time-steps)
35 1 Q7(finite λ\lambda-return)
36 1 Q6·Q7(geometric weights)
37 1 Q8(complete episode)
39 1 Q8(forward/backward)
40 1 Q9(eligibility trace)
43 1 Q10(TD(λ\lambda)·MC equivalence)
합계 19 누락 없음

📌 다음 액션

  • Lecture 5에서 prediction을 control로 바꾸면서 V(s)V(s)가 아니라 Q(s,a)Q(s,a)를 배우는 이유를 확인: model 없이 greedy action을 고르려면 QQ가 필요하다.
  • Formal ingest를 할 때 David Silver - RL Course (UCL 2015)의 Lecture 4 학습 진행과 Learning Log에 이 Q&A를 연결한다.
rlsilver-coursequestionsharvestmonte-carlotemporal-difference