Skip to content

Commit 6ca688d

Browse files
committed
📝 第九章润色完成
1 parent 7ffdb1b commit 6ca688d

18 files changed

Lines changed: 580 additions & 154 deletions

.history/README_20260409233914.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<div align="center">
2+
3+
<h2>
4+
<a href="https://wgyhhh.top/Mathematical-Foundations-of-Reinforcement-Learning-Notes/">
5+
🚀 立即在线阅读
6+
</a>
7+
</h2>
8+
<h3>🤖 《强化学习中的数学原理》-个人笔记与思考总结</h3>
9+
<p><em>理解强化学习的数学原理,并通过实例深入掌握核心算法</em></p>
10+
</div>
11+
12+
<!-- ### &#8627; Stargazers -->
13+
<!-- [![Stargazers repo roster for @wgyhhhh/Mathematical-Foundations-of-Reinforcement-Learning-Notes](https://reporoster.com/stars/wgyhhhh/Mathematical-Foundations-of-Reinforcement-Learning-Notes)](https://github.com/wgyhhhh/Mathematical-Foundations-of-Reinforcement-Learning-Notes/stargazers) -->
14+
15+
## 🎯 笔记介绍
16+
17+
&emsp;&emsp;本笔记是对赵世钰老师所著《强化学习中的数学原理》的个人思考与总结,**笔者将其做成了网页模式,方便大家随时随地在掌上设备阅读**。在此基础上,我还补充了对书中核心算法的实现,以便读者能获得更直观的理解。书中首先从基础概念入手,讲解Bellman公式和Bellman最优公式,接着扩展到基于模型(model-based)和无模型(model-free)的强化学习算法,最终推广到基于函数逼近的强化学习算法。若读者在强化学习方面没有背景知识,只需具备一定的线性代数和概率论基础即可阅读本书。而对于已有一些强化学习知识背景的读者,本笔记则可以帮助深入理解相关问题。
18+
19+
## 📖 内容导航
20+
21+
| 章节 | 关键内容 | 状态 |
22+
| --- | --- | --- |
23+
| [前言](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Preface1/) | 本笔记的缘起、背景及阅读建议 ||
24+
| [第一章 基本概念](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-1/intro/) | 强化学习的基本概念 ||
25+
| [第二章 状态值与贝尔曼方程](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-2/intro/) | 回报、状态值、Bellman方程 ||
26+
| [第三章 最优状态值与贝尔曼最优方程](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-3/intro/) | 最优状态值、最优策略、Bellman最优方程 ||
27+
| [第四章 值迭代与策略迭代](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-4/intro/) | 值迭代算法、策略迭代算法、截断策略迭代算法 ||
28+
| [第五章 蒙特卡罗方法](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-5/intro/) | MC Basic、MC Exploring Starts、MC-Greedy ||
29+
| [第六章 随机近似算法](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-6/intro/) | Robbins-Monro算法、Dvoretzky定理、随机梯度下降 ||
30+
| [第七章 时序差分算法](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-7/intro/) | Sarsa、n步Sarsa、Q-learning、 Off-policy、On-policy||
31+
| [第八章 值函数方法](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-8/intro/) | 基于值函数的TD算法、Sarsa、Q-learning ||
32+
| [第九章 策略梯度方法](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-9/intro/) | 策略梯度、REINFORCE ||
33+
| [第十章 演员-评论家算法](https://wgyhhhh.github.io/Mathematical-Foundations-of-Reinforcement-Learning-Notes/Chapter-10/intro/) | 优势演员-评论家、异策略演员-评论家、确定性演员-评论家 | 🚧(润色中) |
34+
| 算法实现详解 | 核心算法Python实现 | 🚧 |
35+
36+
### 🚧 算法实现详解
37+
38+
笔者正在使用Python实现本书中的部分核心算法,读者可以通过结合阅读,获得更直观的理解。同时笔者正在同步实现近年来RL4LLM的一些算法理论知识和代码复现的讲解。
39+
40+
41+
## 🤝 如何贡献
42+
43+
如果你对强化学习感兴趣,可以参与到该笔记的完善中!❤️
44+
45+
- 💡**内容完善** - 帮助改进笔记内容
46+
- 📝**报告问题** - 发现问题请提交 Issue
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
在本章中,我们将继续研究时序差分方法,但采用不同的方法来表示状态/行动值。到目前为止,本书内容均采用**表格形式**表示状态/行动值。虽然表格表示法直观易懂,但在处理大型状态空间或动作空间时效率不高。本章将引入**函数**来表示状态值/行动值,这种方法已成为当今强化学习的主流方法。神经网络作为很好的函数近似器,也是人工神经网络进入强化学习的原因。因此本章将用值来表示值,下一章将用函数来表示策略。
2+
3+
![](../img/chapter/chapter-8.png)
4+
> 图$8.1$: 本章在全书中的位置。
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
title: 9.1 策略表示:从表格到函数
3+
comments: true # 开启评论
4+
---
5+
6+
在本书之前的所有章节中,策略都用表格来表示:所有状态的行动概率都存储在一个表格中,如表$9.1$。实际上,策略也可以用函数来表示,记为$\pi(a|s, \theta)$,其中$\theta \in \mathbb{R}^m$为参数向量。该策略函数也可以写成其他形式,例如$\pi_\theta(a|s)$、$\pi_\theta(a, s)$或$\pi(a,s,\theta)$。
7+
8+
![](../img/09/2.png)
9+
10+
> 表$9.1$:策略的表格化表示。该表包含$9$个状态,每个状态对应$5$个行动。
11+
12+
我们首先说明表格法和函数法之间的区别。
13+
14+
- 首先,定义最优策略的方式不同?
15+
当以表格形式表示策略时时,最优策略的定义是它能够最大化所有状态的状态值,即其状态值大于或等于其他任意策略的状态值。当以函数形式表示策略时时,最优策略的定义是它能够最大化一个标量目标函数。置于什么是标量目标函数。后面将详细介绍。
16+
17+
!!! note
18+
在之前,一个策略\(\pi^*\)是最优的,如果对所有\(s\in \mathcal{S}\)和任何其他策略\(\pi\)\(v_{\pi^*}(s)\geq v_\pi(s)\)\(\pi^*\)的状态值是最优状态值。
19+
20+
- 第二,策略的更新方式不同
21+
当策略以表格形式展示时,可以通过直接改变表格中的元素来直接更新选择某些动作的概率。而当用函数描述策略时,不能再以这种方式更新策略,而只能通过改变函数参数$\theta$来间接更新选择某些动作的概率。
22+
23+
- 第三,获取行动概率的方式不同
24+
当用表格描述策略时,可以直接通过查看表格中对应的元素来获得某个行动的概率。而用函数描述策略时,我们需要将状态-行动对$(s, a)$输入函数中,通过计算函数来获得其概率(见图$9.2(a)$)。当然,根据函数的结构也多种多样。我们也可以仅输入一个状态$s$,然后输出所有动作的概率(见图$9.2(b)$)。
25+
26+
![](../img/09/3.png)
27+
28+
> 图$9.2$:用函数来表示策略。这些函数可能具有不同的结构。
29+
30+
上面的几点不同使得用函数表示策略具有诸多优势,例如它在处理大型状态-行动空间时更加高效,也具有更强的泛化能力。其原因与用函数表示值是类似的,这里不再赘述。
31+
32+
当用函数表示策略时,我们的任务是最大化一个标量目标函数$J(\theta)$,其中$\theta$代表策略函数的参数。不同的参数对应于不同的目标函数值,因此我们需要找到最优的参数从而优化该目标函数。最简单的优化方法是梯度上升:
33+
34+
$$\theta_{t+1}=\theta_t+\alpha\nabla_\theta J(\theta_t),$$
35+
36+
其中$\nabla_\theta J$表示$J$关于$\theta$的梯度,$t$为时间步长,$\alpha$为优化速率。
37+
38+
这实际上就是策略梯度方法的基本思想,虽然这个基本思想非常简单,但是想要理解其中的细节还是要花一点时间的。我们将在本章后续部分回答以下三个问题。
39+
40+
- 应该使用什么目标函数?(第$9.2$节)
41+
- 如何计算目标函数的梯度?(第$9.3$节)
42+
- 如何利用经验样本计算梯度并优化目标函数?(第$9.4$节)
43+
44+
---
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
---
2+
title: 9.2 目标函数:定义最优策略
3+
comments: true # 开启评论
4+
---
5+
6+
在策略梯度方法中,用于定义最优策略的目标函数有以下两种。
7+
8+
#### 目标函数1:平均状态值(Average state value)
9+
10+
第一个常见的目标函数是*平均状态值*。其定义为
11+
12+
$$\bar{v}_\pi=\sum_{s\in\mathcal{S}}d(s)v_\pi(s),$$
13+
14+
其中$d(s)$表示状态$s$的权重。它满足对于任意$s \in S$,有$d(s) \geq0$且$\sum_{s\in S} d(s) =1$。因此,权重$d(s)$也可以解释为状态$s$的概率分布。那么该目标函数可以重写为
15+
16+
$$\bar{v}_\pi=\mathbb{E}_{S\sim d}[v_\pi(S)].$$
17+
18+
$\bar{v}_\pi$是所有状态值的加权平均,不同的$\theta$将导致不同的$\bar{v}_\pi$值,我们的任务为找到一个最优策略(最优的$\theta$)来最大化$\bar{v}_\pi$。
19+
20+
如何选择$d$的概率分布?有如下两种常见情况。
21+
22+
- 第一种情况,$d$与策略$\pi$无关。此时该目标函数对策略参数求梯度不需要考虑$d$,在这个情况下,我们用$d_0$来代替$d$,用$\bar{v}^0_\pi$代替$\bar{v}_\pi$,以表明该概率分布于策略无关。
23+
24+
例如,如果我们认为所有状态的重要性相同,可以选择$d_0(s) =1/|\mathcal{S}|$,如果我们仅关注特定状态$s_0$时(例如智能体总是从$s_0$出发),那么可以设计
25+
26+
$$d_0(s_0)=1,\quad d_0(s\neq s_0)=0.$$
27+
28+
此时$\bar{v}_\pi=v_\pi(s_0)$,优化该目标函数就是优化从$s_0$出发的回报期望值。
29+
30+
- 第二种情况,$d$与策略$\pi$。此时常见的选择$d$设为$d_\pi$,即在$\pi$下的稳态分布。如何理解这一选择呢?平稳分布反映了马尔可夫决策过程的长期行为。如果一个状态在长期内经常被访问,则其重要性高,应该拥有更高的权重;如果一个状态很少被访问,则其重要性较低,应赋予较小权重。
31+
32+
$d^\pi$的一个基本性质是$d_\pi^TP_\pi=d_\pi^T,$其中$P_\pi$为状态转移概率矩阵。关于平稳分布的更多信息可参阅Box $8.1$。
33+
34+
接下来我们介绍$\bar{v}_\pi$的另外两种重要等价表达式。特别是第一个表达式,大家在阅读文献时会经常遇到。
35+
36+
37+
- 等价表达式1:假设智能体根据给定策略 $\pi(\theta)$收集了一个奖励序列 $\{R_{t+1}\}_{t=0}^\infty$。大家会经常在文献中看到如下目标函数:
38+
39+
$$J(\theta)=\lim_{n\to\infty}\mathbb{E}\left[\sum_{t=0}^n\gamma^tR_{t+1}\right]=\mathbb{E}\left[\sum_{t=0}^\infty\gamma^tR_{t+1}\right].\tag{9.1}$$
40+
41+
虽然这个目标函数初看可能不易理解。但实际上它就是平均状态值$\bar{v}_\pi$,这是因为
42+
43+
$$\begin{aligned}\mathbb{E}\left[\sum_{t=0}^{\infty}\gamma^{t}R_{t+1}\right]&=\sum_{s\in\mathcal{S}}d(s)\mathbb{E}\left[\sum_{t=0}^{\infty}\gamma^{t}R_{t+1}|S_{0}=s\right]\\&=\sum_{s\in\mathcal{S}}d(s)v_{\pi}(s)\\&=\bar{v}_{\pi}.\end{aligned}$$
44+
45+
上式中的第一个等式由全期望定律(law of total expectation)得出;第二个等号则基于状态值的定义。
46+
47+
- 等价表达式2:目标函数$\bar{v}_\pi$也可以表示为两个向量的内积。令
48+
49+
$$v_{\pi}=[\ldots,v_{\pi}(s),\ldots]^{T}\in\mathbb{R}^{|\mathcal{S}|},d=[\ldots,d(s),\ldots]^{T}\in\mathbb{R}^{|\mathcal{S}|}.$$
50+
51+
于是我们得到
52+
53+
$$\bar{v}_\pi=d^Tv_\pi.$$
54+
55+
该表达式在分析其梯度时将十分有用。
56+
57+
#### 指标2:平均奖励(Average reward)
58+
59+
第二个指标是**平均奖励(average reward)**[2,64,65],其定义为
60+
61+
$$\begin{gathered}\bar{r}_{\pi}\doteq\sum_{s\in\mathcal{S}}d_{\pi}(s)r_{\pi}(s)\\=\mathbb{E}_{S\sim d_{\pi}}[r_{\pi}(S)],\end{gathered}\tag{9.2}$$
62+
63+
其中$d_\pi$为平稳分布,且
64+
65+
$$r_\pi(s)\doteq\sum_{a\in\mathcal{A}}\pi(a|s,\theta)r(s,a)=\mathbb{E}_{A\sim\pi(s,\theta)}[r(s,A)|s]\tag{9.3}$$
66+
67+
这是从状态$s$出发的即时奖励的期望值。其中,$r(s, a) = \mathbb{E}[R|s, a] = \sum rp(r|s, a)$。
68+
69+
接下来我们给出$\bar{r}_\pi$的另外两种重要等价表达式。特别注意第一个表达式。
70+
71+
- 等价表达式1:假设智能体遵循给定策略$\pi(\theta)$收集到一个奖励序列$\{R_{t+1}\}_{t=0}^\infty$。大家可能经常在文献中看到如下目标函数:
72+
73+
$$J(\theta)=\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{t=0}^{n-1}R_{t+1}\right].\tag{9.4}$$
74+
75+
虽然这个目标函数乍看很复杂,特别是其中还涉及到求极限,但它实际上就是平均奖励$\bar{r}_\pi$,这是因为:
76+
77+
$$\lim_{n\to\infty}\frac{1}{n}\mathbb{E}\left[\sum_{t=0}^{n-1}R_{t+1}\right]=\sum_{s\in\mathcal{S}}d_{\pi}(s)r_{\pi}(s)=\bar{r}_{\pi}.\tag{9.5}$$
78+
79+
$(9.5)$式的证明见Box 9.1。
80+
81+
- 等价表达式2:平均奖励$\bar{r}_\pi$也可表示为两个向量的内积。令
82+
83+
$$r_{\pi}=[\ldots,r_{\pi}(s),\ldots]^{T}\in\mathbb{R}^{|S|},d_{\pi}=[\ldots,d_{\pi}(s),\ldots]^{T}\in\mathbb{R}^{|S|},$$
84+
85+
其中$r_\pi(s)$由式$(9.3)$定义。显然,
86+
87+
$$\bar{r}_\pi=\sum_{s\in\mathcal{S}}d_\pi(s)r_\pi(s)=d_\pi^Tr_\pi.$$
88+
89+
该表达式在推导其梯度时将非常有用。
90+
91+
#### 小结
92+
93+
![](../img/09/1.png)
94+
95+
> 表$9.2$:$\bar{v}_\pi$与$\bar{r}_\pi$不同但等价表达式的汇总。
96+
97+
截至目前,我们已经介绍了两种目标函数:$\bar{v}_\pi$和$\bar{r}_\pi$。每种目标函数都有几种形式不同但等价的表达式,见表$9.2$。我们有时用$\bar{v}_\pi$特指状态分布为平稳分布$d_\pi$的情形,而$\bar{v}^0_\pi$表示$d_0$与$\pi$无关的的情形。关于这些目标函数的补充说明如下:
98+
99+
- 第一,所有这些目标函数都是$\pi$的函数。由于$\pi$是由 $\theta$参数化,这些目标函数也是$\theta$的函数。换言之,不同的$\theta$值会生成不同的目标函数值。因此,我们可以通过搜索参数$\theta$的最优值来最大化这些目标函数。这正是策略梯度方法的基本思想。
100+
101+
- 在折扣因子$\gamma<1$的情况下,两个指标$\bar{v}_\pi$与$\bar{r}_\pi$是等价的(而非相等)的。这是因为:
102+
103+
$$\bar{r}_{\pi}=(1-\gamma)\bar{v}_{\pi}.$$
104+
105+
上述方程表明这两个指标可以同时被最大化。因此我们不需要纠结该选择哪个目标函数。该方程的证明将在后续引理9.1中给出。
106+
107+
!!! note
108+
$\bar{r}_\pi$似乎看起来更加短视,因为他只考虑即时奖励,但是$\bar{v}_\pi$考虑整个步骤的总回报。
109+
---

0 commit comments

Comments
 (0)