Skip to content

Commit 74c935a

Browse files
committed
dp : 4.4
1 parent 97a2d29 commit 74c935a

File tree

4 files changed

+205
-151
lines changed

4 files changed

+205
-151
lines changed

_posts/2025-08-20-finite_mdp.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -461,15 +461,15 @@ $$
461461
### 3.5.2 some articles
462462

463463
이 주제에 대해 몇몇 읽을만한 글들이 있어서 읽어봤다.
464-
[Aswin Rao](https://web.stanford.edu/class/cme241/lecture_slides/OptimalPolicyExistence.pdf)는 말로서 적절히 optimal policy의 존재성을 증명하고 있다.
464+
[Ashwin Rao](https://web.stanford.edu/class/cme241/lecture_slides/OptimalPolicyExistence.pdf)는 말로서 적절히 optimal policy의 존재성을 증명하고 있다.
465465
다음과 같이 쓰고 있다.
466466

467-
![lemma_f]({{site.url}}\images\2025-08-20-finite_mdp\aswin_rao.png){: .img-90-center}
467+
![lemma_f]({{site.url}}\images\2025-08-20-finite_mdp\ashwin_rao.png){: .img-90-center}
468468

469469
이 증명을 적절히 비슷하게 서술하면 어쨌든 optimal policy가 존재함을 증명하는 듯이 서술하고 넘어갈 수도 있다.
470470
하지만, 문제는 내 스스로가 잘 와닿지 않는다는 점이다.
471471

472-
다른 곳에서는 ([Alireza Modirshanechi](https://medium.com/data-science/why-does-the-optimal-policy-exist-29f30fd51f8c)의 설명) 정책이 한 걸음 더 나아갈 수 있음을 아주 멋지게 설명한 자료가 있는데 (Theorem 1) 이를 통해 optimal policy의 존재성을 증명하고 있지는 않다.
472+
[Alireza Modirshanechi](https://medium.com/data-science/why-does-the-optimal-policy-exist-29f30fd51f8c)정책이 한 걸음 더 나아갈 수 있음을 아주 멋지게 설명하고 있는데 (Theorem 1) 이를 통해 optimal policy의 존재성을 증명하고 있지는 않다.
473473

474474
---
475475

_posts/2025-09-03-bellman_optimal_equation.md

Lines changed: 0 additions & 148 deletions
This file was deleted.

_posts/2025-09-18-dp.md

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
---
2+
layout: single
3+
title: "(Sutton, 4장) Dynamic Programming"
4+
categories: machine-learning
5+
tags: [reinforcement learing, Bellman optimal equation, partial order]
6+
use_math: true
7+
published: true
8+
author_profile: false
9+
toc: true
10+
---
11+
12+
이전 포스트에 이어 Sutton의 책을 읽어가보자.
13+
늘 그렇듯 책에 생략된 내용에 대해서는 자료를 찾거나 직접 계산 또는 증명해서 채워나갈 것이다.
14+
dynamic programming은, 이 책에서는 가장 기본적인 강화학습 알고리즘으로 소개된다.
15+
환경모델이 완전히 주어진 상태에서 쓸 수 있는 가장 기본적인 알고리즘이라고 할만하다.
16+
17+
공부를 하면 할수록 강화학습의 fundamental이 되는 이 계산들이나 정리들이 꽤 만만치 않음을 느낀다.
18+
이런 어려움은 나만 겪는 것이 아니라고도 생각해본다.
19+
사람들이 때로, 아주 간단한 식에도 나처럼 심각하게 고민한 것을 [](https://mathoverflow.net/q/321701/573437) [](https://stats.stackexchange.com/q/385713/398741) 봤다.
20+
21+
Sutton의 3장은 꽤 책의 내용과 비슷하게 썼다.
22+
하지만 내가 관심있는 수학적인 부분은 책에 자세하게 설명되지 않고 있기 때문에 책 외의 내용이 많이 적힐 예정이다.
23+
식번호는 책의 것을 그대로 따랐으나, 절은 다르게 썼다.
24+
25+
이 포스트에서 꼭 다루고자 하는 것은 Bellman operator와 contraction principle로 policy evaluation이 유효한 것임을 증명하는 것이다.
26+
이에 관해서는 이미 [Ishwin Rao](https://web.stanford.edu/class/cme241/lecture_slides/BellmanOperators.pdf)[Carl Fredricksson](https://cfml.se/bellman-operators-are-contractions/)이 잘 써놨는데 아마 조금씩 참고할 것 같다.
27+
28+
# 4. Dynamic Programming
29+
30+
## 4.1 Bellman optimal equation revisited
31+
32+
Bellman optimal equation도 다시 적어보자.
33+
optimal value $v_\ast$, $q_\ast$에 대한 optimal equation들은 다음과 같다.
34+
35+
$$
36+
\begin{align*}
37+
v_\ast(s)
38+
&=\max_a\mathbb E\left[R_{t+1}+\gamma v_\ast(S_{t+1})|S_t=s, A_t=a\right]\\
39+
&=\max_a\sum_{s',r}p(s',r|s,a)\left[r+\gamma v_\ast(s')\right]\tag{4.1}\\
40+
q_\ast(s,a)
41+
&=\mathbb E\left[R_{t+1}+\gamma\max_{a'}q_\ast(S_{t+1},a')|S_t=s, A_t=a\right]\\
42+
&=\sum_{s',r}p(s',r|s,a)\left[r+\gamma\max_{a'}q_\ast(s',a')\right]\tag{4.2}
43+
\end{align*}
44+
$$
45+
46+
## 4.2 Bellman equation revisited
47+
48+
책의 4.1절에 가장 먼저 보이는 식은 $v$에 대한 Bellman equation
49+
50+
$$
51+
\begin{align*}
52+
v_\pi(s)
53+
&=\mathbb E_\pi\left[G_t|S_t=s\right]\\
54+
&=\mathbb E_\pi\left[R_{t+1}+\gamma G_{t+1}|S_t=s\right]\\
55+
&=\mathbb E_\pi\left[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s\right]\tag{4.3}\\
56+
&=\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)\left[r+\gamma v_\pi(s')\right]\tag{4.4}
57+
\end{align*}
58+
$$
59+
60+
이다.
61+
첫번째 줄과 두번째줄이 같다는 것, 그리고 그것이 네번째 줄과 같다는 것은 이전 포스트에서 증명했고, 그것을 Bellman equation이라고 했었다.
62+
그러나 세번째 줄은 조금 뜬금없어보인다.
63+
그래, 의미상으로는 당연히 그럴 것 같은데 왜 그런 지는 그렇게까지 쉽게 설명되지 않는다.
64+
그러니, 세번째 줄로부터 시작하여 네번째 줄로 도출되는 계산을 해보려 한다.
65+
66+
다음과 같다.
67+
68+
$$
69+
\begin{align*}
70+
&\mathbb E\left[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s\right]\\
71+
=&\sum_a\pi(a|s)\mathbb E\left[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s,A_t=a\right]\\
72+
=&\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)\mathbb E\left[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s,A_t=a,R_{t+1}=r,S_{t+1}=s'\right]\\
73+
=&\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)\mathbb E\left[r+\gamma v_\pi(S_{t+1})|S_{t+1}=s'\right]\\
74+
=&\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)\mathbb E\left[r+\gamma v_\pi(s')\right]\\
75+
\end{align*}
76+
$$
77+
78+
## 4.3 policy evaluation
79+
80+
책의 4.1절에서 다루는 것은, 주어진 정책 $\pi$에 대하여 이에 대한 가치함수 $v_\pi$를 얻어내는 것이다.
81+
즉 정책을 평가하는(policy evaluation, prediction problem) 것으로서 DP를 포함한 모든 강화학습에서의 주요한 두 과정 중 하나이다.
82+
83+
가치함수를 얻어내는 방식은 식 (4.4)을
84+
85+
$$
86+
v_{k+1}(s)=\sum_a\sum_{s',r}p(s',r|s,a)\left[r+\gamma v_k(s')\right]\tag{4.5}
87+
$$
88+
89+
와 같이 변형해 가치함수들의 수열 $v_0, v_1, v_2, \cdots$을 만들어나가는 것이다.
90+
$v_0$가 임의의 함수(e.g. $v_0\equiv0$)이고 $v_\pi$가 존재한다는 조건 하에 수열 $\\{v_i\\}$가 $v_\pi$로 수렴하는 것이 알려져 있고, 이를 증명하려 한다.
91+
92+
## 4.4 Bellman operation
93+
94+
먼저 할 것은 식 (4.4) 버전의 Bellman equation을 Bellman operation으로 표현하는 것이다.
95+
기본적으로 Carl Fredricksson의 자료를 따라갔다.
96+
97+
많은 계산들, 특히 marginalization이 포함되어 있으므로 천천히 계산하기 위해 일단 두 값 $A$, $B$로 분리하면
98+
99+
$$
100+
\begin{align*}
101+
v_\pi(s)
102+
&=\sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)\left[r+\gamma v_\pi(s')\right]\\
103+
&=\sum_{a,s',r}r\pi(a|s)p(s',r|s,a)+\gamma\sum_{a,s',r}v_\pi(s')\pi(a|s)p(s',r|s,a)\\
104+
&=A+\gamma B
105+
\end{align*}
106+
$$
107+
108+
이다.
109+
먼저 $A$를 계산하면
110+
111+
$$
112+
\begin{align*}
113+
A&=\sum_{a,s',r}r\pi(a|s)p(s',r|s,a)\\
114+
&=\sum_{a,s',r}r\frac{P\left(S_t=s,A_t=a\right)}{P\left(S_t=s\right)}\times
115+
\frac{P\left(S_t=s,A_t=a,S_{t+1}=s',R_{t+1}=r\right)}{P\left(S_t=s,A_t=a\right)}\\
116+
&=\sum_r r\sum_{a,s'}\frac{P\left(S_t=s,A_t=a,S_{t+1}=s',R_{t+1}=r\right)}{P\left(S_t=s\right)}\\
117+
&=\sum_r r\frac{P\left(S_t=s,R_{t+1}=r\right)}{P\left(S_t=s\right)}\\
118+
&=\sum_r r{P\left(R_{t+1}=r|S_t=s\right)}\\
119+
&=\mathbb E\left[R_{t+1}|S_t=s\right]\\
120+
&=r_\pi(s)
121+
\end{align*}
122+
$$
123+
124+
이다.
125+
두번째 줄은 두 표현 $\pi(\cdot|\cdot)$, $p(\cdot,\cdot|\cdot,\cdot)$ 정의, 세번째 줄은 통분, 네번째 줄은 두 변수에 $a$, $s'$에 대한 marginalization, 다섯번째 줄과 여섯번째 줄은 각각 조건부확률과 조건부기댓값의 정의에 의해 계산되었다.
126+
마지막 줄은 새롭게 $r_\pi$라는 함수를 정의한 것이다.
127+
128+
다음으로 $B$를 계산하는데 통분과 같은 과정은 빠르게 넘어가면서 계산해보려 한다.
129+
계산해보면
130+
131+
$$
132+
\begin{align*}
133+
B
134+
&=\sum_{a,s',r}v_\pi(s')\pi(a|s)p(s',r|s,a)\\
135+
&=\sum_{s'}v_\pi(s')\sum_{a,r}P\left(S_t=s,A_t=a,S_{t+1}=s',R_{t+1}=r|S_t=s\right)\\
136+
&=\sum_{s'}v_\pi(s')P\left(S_{t+1}=s'|S_t=s\right)
137+
\end{align*}
138+
$$
139+
140+
와 같다.
141+
두번째 줄은 기호의 정의와 통분, 세번째 줄은 marginalization에 의해 계산되었다.
142+
마지막 식은 $\mathbb E\left[S_{t+1}|S_t=s\right]$로도 쓸 수 있지만 위의 계산결과까지만 사용할 것이다.
143+
즉 Bellman equation을 다시 쓰면
144+
145+
$$
146+
v_\pi(s)=r_\pi(s)+\gamma\sum_{s'}v_\pi(s')P\left(S_{t+1}=s'|S_t=s\right)
147+
$$
148+
149+
이 된다.
150+
이전 포스트에도 언급했고, 책의 4장에도 다시 강조되지만 Bellman equation의 본질은 연립방정식, 그것도 선형(affine)연립방정식이다.
151+
state space $\mathcal S$를 $\mathcal S=\\{s_1,\cdots,s_n\\}$으로 두고 위 식을 다시 쓰면 모든 $i$에 대하여 ($1\le i\le n)$
152+
153+
$$
154+
v_\pi(s_j)=r_\pi(s_i)+\gamma\sum_{i=1}^nv_\pi(s_i)P\left(S_{t+1}=s_i|S_t=s_j\right)
155+
$$
156+
157+
이 성립하는 것이다.
158+
선형(affine)방정식이니, 벡터와 행렬로 표현하면 가장 적절하다.
159+
행렬 $P$를
160+
161+
$$
162+
P=
163+
\begin{bmatrix}
164+
P\left(S_{t+1}=s_1|S_t=s_1\right)&\cdots&P\left(S_{t+1}=s_1|S_t=s_n\right)\\
165+
\vdots&\ddots&\vdots\\
166+
P\left(S_{t+1}=s_n|S_t=s_1\right)&\cdots&P\left(S_{t+1}=s_n|S_t=s_n\right)
167+
\end{bmatrix}
168+
$$
169+
170+
로 정의하고 벡터 $v_\pi$, $r_\pi$을
171+
172+
$$
173+
v_\pi=
174+
\begin{bmatrix}
175+
v_\pi(s_1)\\
176+
\vdots\\
177+
v_\pi(s_n)
178+
\end{bmatrix}
179+
,\quad
180+
r_\pi=
181+
\begin{bmatrix}
182+
r_\pi(s_1)\\
183+
\vdots\\
184+
r_\pi(s_n)
185+
\end{bmatrix}
186+
$$
187+
188+
으로 두면 Bellman equation은
189+
190+
$$v_\pi=r_\pi+Pv_\pi$$
191+
192+
가 된다.
193+
이런 관점에서 Bellman operation $\mathcal T^\pi$를
194+
195+
$$\mathcal T^\pi(v)=r_\pi+Pv$$
196+
197+
로 정의할 수 있고 Bellman equation도 간단히 $v_\pi=\mathcal T^\pi(v_\pi)$로 쓰일 수 있다.
198+
그리고 policy evaluation 식 (4.5)도
199+
200+
$$v_{k+1}=\mathcal T^\pi(v_k)\tag{4.5*}$$
201+
202+
로 표현될 수 있다.
File renamed without changes.

0 commit comments

Comments
 (0)